aboutsummaryrefslogtreecommitdiff
path: root/xbmc/interfaces/json-rpc/PlaylistOperations.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/interfaces/json-rpc/PlaylistOperations.cpp')
-rw-r--r--xbmc/interfaces/json-rpc/PlaylistOperations.cpp96
1 files changed, 57 insertions, 39 deletions
diff --git a/xbmc/interfaces/json-rpc/PlaylistOperations.cpp b/xbmc/interfaces/json-rpc/PlaylistOperations.cpp
index 49955bc68f..f98cf46c94 100644
--- a/xbmc/interfaces/json-rpc/PlaylistOperations.cpp
+++ b/xbmc/interfaces/json-rpc/PlaylistOperations.cpp
@@ -23,21 +23,22 @@
#include "utils/Variant.h"
using namespace JSONRPC;
+using namespace KODI;
JSONRPC_STATUS CPlaylistOperations::GetPlaylists(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result)
{
result = CVariant(CVariant::VariantTypeArray);
CVariant playlist = CVariant(CVariant::VariantTypeObject);
- playlist["playlistid"] = PLAYLIST::TYPE_MUSIC;
+ playlist["playlistid"] = static_cast<int>(PLAYLIST::Id::TYPE_MUSIC);
playlist["type"] = "audio";
result.append(playlist);
- playlist["playlistid"] = PLAYLIST::TYPE_VIDEO;
+ playlist["playlistid"] = static_cast<int>(PLAYLIST::Id::TYPE_VIDEO);
playlist["type"] = "video";
result.append(playlist);
- playlist["playlistid"] = PLAYLIST::TYPE_PICTURE;
+ playlist["playlistid"] = static_cast<int>(PLAYLIST::Id::TYPE_PICTURE);
playlist["type"] = "picture";
result.append(playlist);
@@ -68,16 +69,21 @@ JSONRPC_STATUS CPlaylistOperations::GetItems(const std::string &method, ITranspo
switch (playlistId)
{
- case PLAYLIST::TYPE_VIDEO:
- case PLAYLIST::TYPE_MUSIC:
- CServiceBroker::GetAppMessenger()->SendMsg(TMSG_PLAYLISTPLAYER_GET_ITEMS, playlistId, -1,
+ case PLAYLIST::Id::TYPE_VIDEO:
+ case PLAYLIST::Id::TYPE_MUSIC:
+ CServiceBroker::GetAppMessenger()->SendMsg(TMSG_PLAYLISTPLAYER_GET_ITEMS,
+ static_cast<int>(playlistId), -1,
static_cast<void*>(&list));
break;
- case PLAYLIST::TYPE_PICTURE:
+ case PLAYLIST::Id::TYPE_PICTURE:
+ {
CSlideShowDelegator& slideShow = CServiceBroker::GetSlideShowDelegator();
slideShow.GetSlideShowContents(list);
break;
+ }
+ default:
+ break;
}
HandleFileItemList("id", true, "items", list, parameterObject, result);
@@ -89,11 +95,13 @@ bool CPlaylistOperations::CheckMediaParameter(PLAYLIST::Id playlistId, const CVa
{
if (itemObject.isMember("media") && itemObject["media"].asString().compare("files") != 0)
{
- if (playlistId == PLAYLIST::TYPE_VIDEO && itemObject["media"].asString().compare("video") != 0)
+ if (playlistId == PLAYLIST::Id::TYPE_VIDEO &&
+ itemObject["media"].asString().compare("video") != 0)
return false;
- if (playlistId == PLAYLIST::TYPE_MUSIC && itemObject["media"].asString().compare("music") != 0)
+ if (playlistId == PLAYLIST::Id::TYPE_MUSIC &&
+ itemObject["media"].asString().compare("music") != 0)
return false;
- if (playlistId == PLAYLIST::TYPE_PICTURE &&
+ if (playlistId == PLAYLIST::Id::TYPE_PICTURE &&
itemObject["media"].asString().compare("video") != 0 &&
itemObject["media"].asString().compare("pictures") != 0)
return false;
@@ -111,16 +119,16 @@ JSONRPC_STATUS CPlaylistOperations::Add(const std::string &method, ITransportLay
switch (playlistId)
{
- case PLAYLIST::TYPE_VIDEO:
- case PLAYLIST::TYPE_MUSIC:
+ case PLAYLIST::Id::TYPE_VIDEO:
+ case PLAYLIST::Id::TYPE_MUSIC:
{
auto tmpList = new CFileItemList();
tmpList->Copy(list);
- CServiceBroker::GetAppMessenger()->PostMsg(TMSG_PLAYLISTPLAYER_ADD, playlistId, -1,
- static_cast<void*>(tmpList));
+ CServiceBroker::GetAppMessenger()->PostMsg(
+ TMSG_PLAYLISTPLAYER_ADD, static_cast<int>(playlistId), -1, static_cast<void*>(tmpList));
break;
}
- case PLAYLIST::TYPE_PICTURE:
+ case PLAYLIST::Id::TYPE_PICTURE:
{
CSlideShowDelegator& slideShow = CServiceBroker::GetSlideShowDelegator();
for (int index = 0; index < list.Size(); index++)
@@ -144,7 +152,7 @@ JSONRPC_STATUS CPlaylistOperations::Add(const std::string &method, ITransportLay
JSONRPC_STATUS CPlaylistOperations::Insert(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result)
{
PLAYLIST::Id playlistId = GetPlaylist(parameterObject["playlistid"]);
- if (playlistId == PLAYLIST::TYPE_PICTURE)
+ if (playlistId == PLAYLIST::Id::TYPE_PICTURE)
return FailedToExecute;
CFileItemList list;
@@ -154,7 +162,7 @@ JSONRPC_STATUS CPlaylistOperations::Insert(const std::string &method, ITransport
auto tmpList = new CFileItemList();
tmpList->Copy(list);
CServiceBroker::GetAppMessenger()->PostMsg(
- TMSG_PLAYLISTPLAYER_INSERT, playlistId,
+ TMSG_PLAYLISTPLAYER_INSERT, static_cast<int>(playlistId),
static_cast<int>(parameterObject["position"].asInteger()), static_cast<void*>(tmpList));
return ACK;
@@ -163,7 +171,7 @@ JSONRPC_STATUS CPlaylistOperations::Insert(const std::string &method, ITransport
JSONRPC_STATUS CPlaylistOperations::Remove(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result)
{
PLAYLIST::Id playlistId = GetPlaylist(parameterObject["playlistid"]);
- if (playlistId == PLAYLIST::TYPE_PICTURE)
+ if (playlistId == PLAYLIST::Id::TYPE_PICTURE)
return FailedToExecute;
int position = (int)parameterObject["position"].asInteger();
@@ -171,7 +179,8 @@ JSONRPC_STATUS CPlaylistOperations::Remove(const std::string &method, ITransport
CServiceBroker::GetPlaylistPlayer().GetCurrentItemIdx() == position)
return InvalidParams;
- CServiceBroker::GetAppMessenger()->PostMsg(TMSG_PLAYLISTPLAYER_REMOVE, playlistId, position);
+ CServiceBroker::GetAppMessenger()->PostMsg(TMSG_PLAYLISTPLAYER_REMOVE,
+ static_cast<int>(playlistId), position);
return ACK;
}
@@ -181,18 +190,23 @@ JSONRPC_STATUS CPlaylistOperations::Clear(const std::string &method, ITransportL
PLAYLIST::Id playlistId = GetPlaylist(parameterObject["playlistid"]);
switch (playlistId)
{
- case PLAYLIST::TYPE_MUSIC:
- case PLAYLIST::TYPE_VIDEO:
- CServiceBroker::GetAppMessenger()->PostMsg(TMSG_PLAYLISTPLAYER_CLEAR, playlistId);
+ case PLAYLIST::Id::TYPE_MUSIC:
+ case PLAYLIST::Id::TYPE_VIDEO:
+ CServiceBroker::GetAppMessenger()->PostMsg(TMSG_PLAYLISTPLAYER_CLEAR,
+ static_cast<int>(playlistId));
break;
- case PLAYLIST::TYPE_PICTURE:
+ case PLAYLIST::Id::TYPE_PICTURE:
+ {
CSlideShowDelegator& slideShow = CServiceBroker::GetSlideShowDelegator();
//! @todo: Stop should be a delegator method to void GUI coupling! Same goes for other player controls.
CServiceBroker::GetAppMessenger()->PostMsg(TMSG_GUI_ACTION, WINDOW_SLIDESHOW, -1,
static_cast<void*>(new CAction(ACTION_STOP)));
slideShow.Reset();
break;
+ }
+ default:
+ break;
}
return ACK;
@@ -201,25 +215,26 @@ JSONRPC_STATUS CPlaylistOperations::Clear(const std::string &method, ITransportL
JSONRPC_STATUS CPlaylistOperations::Swap(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant &parameterObject, CVariant &result)
{
PLAYLIST::Id playlistId = GetPlaylist(parameterObject["playlistid"]);
- if (playlistId == PLAYLIST::TYPE_PICTURE)
+ if (playlistId == PLAYLIST::Id::TYPE_PICTURE)
return FailedToExecute;
auto tmpVec = new std::vector<int>();
tmpVec->push_back(static_cast<int>(parameterObject["position1"].asInteger()));
tmpVec->push_back(static_cast<int>(parameterObject["position2"].asInteger()));
- CServiceBroker::GetAppMessenger()->PostMsg(TMSG_PLAYLISTPLAYER_SWAP, playlistId, -1,
- static_cast<void*>(tmpVec));
+ CServiceBroker::GetAppMessenger()->PostMsg(TMSG_PLAYLISTPLAYER_SWAP, static_cast<int>(playlistId),
+ -1, static_cast<void*>(tmpVec));
return ACK;
}
PLAYLIST::Id CPlaylistOperations::GetPlaylist(const CVariant& playlist)
{
- PLAYLIST::Id playlistId = playlist.asInteger(PLAYLIST::TYPE_NONE);
- if (playlistId != PLAYLIST::TYPE_NONE)
+ PLAYLIST::Id playlistId =
+ PLAYLIST::Id{playlist.asInteger32(static_cast<int>(PLAYLIST::Id::TYPE_NONE))};
+ if (playlistId != PLAYLIST::Id::TYPE_NONE)
return playlistId;
- return PLAYLIST::TYPE_NONE;
+ return PLAYLIST::Id::TYPE_NONE;
}
JSONRPC_STATUS CPlaylistOperations::GetPropertyValue(PLAYLIST::Id playlistId,
@@ -230,15 +245,15 @@ JSONRPC_STATUS CPlaylistOperations::GetPropertyValue(PLAYLIST::Id playlistId,
{
switch (playlistId)
{
- case PLAYLIST::TYPE_MUSIC:
+ case PLAYLIST::Id::TYPE_MUSIC:
result = "audio";
break;
- case PLAYLIST::TYPE_VIDEO:
+ case PLAYLIST::Id::TYPE_VIDEO:
result = "video";
break;
- case PLAYLIST::TYPE_PICTURE:
+ case PLAYLIST::Id::TYPE_PICTURE:
result = "pictures";
break;
@@ -252,15 +267,16 @@ JSONRPC_STATUS CPlaylistOperations::GetPropertyValue(PLAYLIST::Id playlistId,
CFileItemList list;
switch (playlistId)
{
- case PLAYLIST::TYPE_MUSIC:
- case PLAYLIST::TYPE_VIDEO:
+ case PLAYLIST::Id::TYPE_MUSIC:
+ case PLAYLIST::Id::TYPE_VIDEO:
{
- CServiceBroker::GetAppMessenger()->SendMsg(TMSG_PLAYLISTPLAYER_GET_ITEMS, playlistId, -1,
+ CServiceBroker::GetAppMessenger()->SendMsg(TMSG_PLAYLISTPLAYER_GET_ITEMS,
+ static_cast<int>(playlistId), -1,
static_cast<void*>(&list));
result = list.Size();
break;
}
- case PLAYLIST::TYPE_PICTURE:
+ case PLAYLIST::Id::TYPE_PICTURE:
{
CSlideShowDelegator& slideShow = CServiceBroker::GetSlideShowDelegator();
const int numSlides = slideShow.NumSlides();
@@ -301,15 +317,17 @@ bool CPlaylistOperations::HandleItemsParameter(PLAYLIST::Id playlistId,
switch (playlistId)
{
- case PLAYLIST::TYPE_VIDEO:
+ case PLAYLIST::Id::TYPE_VIDEO:
itemIt["media"] = "video";
break;
- case PLAYLIST::TYPE_MUSIC:
+ case PLAYLIST::Id::TYPE_MUSIC:
itemIt["media"] = "music";
break;
- case PLAYLIST::TYPE_PICTURE:
+ case PLAYLIST::Id::TYPE_PICTURE:
itemIt["media"] = "pictures";
break;
+ default:
+ break;
}
success |= FillFileItemList(itemIt, items);