kodi
PlaylistOperations.h
1 /*
2  * Copyright (C) 2005-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "FileItemHandler.h"
12 #include "JSONRPC.h"
13 
14 class CFileItemList;
15 class CVariant;
16 
17 namespace PLAYLIST
18 {
19 using Id = int;
20 } // namespace PLAYLIST
21 
22 namespace JSONRPC
23 {
25  {
26  public:
27  static JSONRPC_STATUS GetPlaylists(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result);
28  static JSONRPC_STATUS GetProperties(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result);
29 
30  static JSONRPC_STATUS GetItems(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result);
31  static JSONRPC_STATUS Add(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result);
32  static JSONRPC_STATUS Remove(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result);
33  static JSONRPC_STATUS Insert(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result);
34  static JSONRPC_STATUS Clear(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result);
35  static JSONRPC_STATUS Swap(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result);
36  private:
37  static PLAYLIST::Id GetPlaylist(const CVariant& playlist);
38  static JSONRPC_STATUS GetPropertyValue(PLAYLIST::Id playlistId,
39  const std::string& property,
40  CVariant& result);
41  static bool CheckMediaParameter(PLAYLIST::Id playlistId, const CVariant& itemObject);
42  static bool HandleItemsParameter(PLAYLIST::Id playlistId,
43  const CVariant& itemParam,
44  CFileItemList& items);
45  };
46 }
Definition: Application.h:62
Represents a list of files.
Definition: FileItem.h:702
Definition: AddonsOperations.h:23
Definition: Variant.h:31
Definition: FileItemHandler.h:25
JSONRPC_STATUS
Possible statuc codes of a response to a JSON-RPC request.
Definition: JSONRPCUtils.h:29
Definition: ITransportLayer.h:27
Definition: IClient.h:13
Definition: PlaylistOperations.h:24