本文整理汇总了C++中CVariant::append方法的典型用法代码示例。如果您正苦于以下问题:C++ CVariant::append方法的具体用法?C++ CVariant::append怎么用?C++ CVariant::append使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CVariant
的用法示例。
在下文中一共展示了CVariant::append方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetActivePlayers
JSONRPC_STATUS CPlayerOperations::GetActivePlayers(const CStdString &method, ITransportLayer *transport, IClient *client, const CVariant ¶meterObject, CVariant &result)
{
int activePlayers = GetActivePlayers();
result = CVariant(CVariant::VariantTypeArray);
if (activePlayers & Video)
{
CVariant video = CVariant(CVariant::VariantTypeObject);
video["playerid"] = GetPlaylist(Video);
video["type"] = "video";
result.append(video);
}
if (activePlayers & Audio)
{
CVariant audio = CVariant(CVariant::VariantTypeObject);
audio["playerid"] = GetPlaylist(Audio);
audio["type"] = "audio";
result.append(audio);
}
if (activePlayers & Picture)
{
CVariant picture = CVariant(CVariant::VariantTypeObject);
picture["playerid"] = GetPlaylist(Picture);
picture["type"] = "picture";
result.append(picture);
}
return OK;
}
示例2: GetPlaylists
JSONRPC_STATUS CPlaylistOperations::GetPlaylists(const CStdString &method, ITransportLayer *transport, IClient *client, const CVariant ¶meterObject, CVariant &result)
{
result = CVariant(CVariant::VariantTypeArray);
CVariant playlist = CVariant(CVariant::VariantTypeObject);
playlist["playlistid"] = PLAYLIST_MUSIC;
playlist["type"] = "audio";
result.append(playlist);
playlist["playlistid"] = PLAYLIST_VIDEO;
playlist["type"] = "video";
result.append(playlist);
playlist["playlistid"] = PLAYLIST_PICTURE;
playlist["type"] = "picture";
result.append(playlist);
return OK;
}
示例3: GetPropertyValue
JSONRPC_STATUS CApplicationOperations::GetPropertyValue(const std::string &property, CVariant &result)
{
if (property == "volume")
result = static_cast<int>(g_application.GetVolume());
else if (property == "muted")
result = g_application.IsMuted();
else if (property == "name")
result = CCompileInfo::GetAppName();
else if (property == "version")
{
result = CVariant(CVariant::VariantTypeObject);
result["major"] = CCompileInfo::GetMajor();
result["minor"] = CCompileInfo::GetMinor();
result["revision"] = CCompileInfo::GetSCMID();
std::string tag = CCompileInfo::GetSuffix();
if (StringUtils::StartsWithNoCase(tag, "alpha"))
{
result["tag"] = "alpha";
result["tagversion"] = StringUtils::Mid(tag, 5);
}
else if (StringUtils::StartsWithNoCase(tag, "beta"))
{
result["tag"] = "beta";
result["tagversion"] = StringUtils::Mid(tag, 4);
}
else if (StringUtils::StartsWithNoCase(tag, "rc"))
{
result["tag"] = "releasecandidate";
result["tagversion"] = StringUtils::Mid(tag, 2);
}
else if (tag.empty())
result["tag"] = "stable";
else
result["tag"] = "prealpha";
}
else if (property == "sorttokens")
{
result = CVariant(CVariant::VariantTypeArray); // Ensure no tokens returns as []
std::set<std::string> sortTokens = g_langInfo.GetSortTokens();
for (const auto& token : sortTokens)
result.append(token);
}
else if (property == "language")
result = g_langInfo.GetLocale().ToShortString();
else
return InvalidParams;
return OK;
}
示例4: FillDetails
void CAddonsOperations::FillDetails(AddonPtr addon, const CVariant& fields, CVariant &result, CAddonDatabase &addondb, bool append /* = false */)
{
if (addon.get() == NULL)
return;
CVariant addonInfo = Serialize(addon);
CVariant object;
object["addonid"] = addonInfo["addonid"];
object["type"] = addonInfo["type"];
for (unsigned int index = 0; index < fields.size(); index++)
{
std::string field = fields[index].asString();
// we need to manually retrieve the enabled / installed state of every addon
// from the addon database because it can't be read from addon.xml
if (field == "enabled")
{
object[field] = !CServiceBroker::GetAddonMgr().IsAddonDisabled(addon->ID());
}
else if (field == "installed")
{
object[field] = CServiceBroker::GetAddonMgr().IsAddonInstalled(addon->ID());
}
else if (field == "fanart" || field == "thumbnail")
{
std::string url = addonInfo[field].asString();
// We need to check the existence of fanart and thumbnails as the addon simply
// holds where the art will be, not whether it exists.
bool needsRecaching;
std::string image = CTextureCache::GetInstance().CheckCachedImage(url, needsRecaching);
if (!image.empty() || CFile::Exists(url))
object[field] = CTextureUtils::GetWrappedImageURL(url);
else
object[field] = "";
}
else if (addonInfo.isMember(field))
object[field] = addonInfo[field];
}
if (append)
result.append(object);
else
result = object;
}
示例5: FillChannelGroupDetails
void CPVROperations::FillChannelGroupDetails(const CPVRChannelGroupPtr &channelGroup, const CVariant ¶meterObject, CVariant &result, bool append /* = false */)
{
if (channelGroup == NULL)
return;
CVariant object(CVariant::VariantTypeObject);
object["channelgroupid"] = channelGroup->GroupID();
object["channeltype"] = channelGroup->IsRadio() ? "radio" : "tv";
object["label"] = channelGroup->GroupName();
if (append)
result.append(object);
else
{
CFileItemList channels;
channelGroup->GetMembers(channels);
object["channels"] = CVariant(CVariant::VariantTypeArray);
HandleFileItemList("channelid", false, "channels", channels, parameterObject["channels"], object, false);
result = object;
}
}
示例6: GetPropertyValue
//.........这里部分代码省略.........
result["codec"] = g_application.m_pPlayer->GetAudioCodecName();
result["bitrate"] = g_application.m_pPlayer->GetAudioBitrate();
result["channels"] = g_application.m_pPlayer->GetChannels();
}
else
result = CVariant(CVariant::VariantTypeNull);
break;
case Picture:
default:
result = CVariant(CVariant::VariantTypeNull);
break;
}
}
else if (property.Equals("audiostreams"))
{
result = CVariant(CVariant::VariantTypeArray);
switch (player)
{
case Video:
if (g_application.m_pPlayer)
{
for (int index = 0; index < g_application.m_pPlayer->GetAudioStreamCount(); index++)
{
CVariant audioStream(CVariant::VariantTypeObject);
audioStream["index"] = index;
CStdString value;
g_application.m_pPlayer->GetAudioStreamName(index, value);
audioStream["name"] = value;
value.Empty();
g_application.m_pPlayer->GetAudioStreamLanguage(index, value);
audioStream["language"] = value;
result.append(audioStream);
}
}
break;
case Audio:
case Picture:
default:
break;
}
}
else if (property.Equals("subtitleenabled"))
{
switch (player)
{
case Video:
if (g_application.m_pPlayer)
result = g_application.m_pPlayer->GetSubtitleVisible();
break;
case Audio:
case Picture:
default:
result = false;
break;
}
}
else if (property.Equals("currentsubtitle"))
{
switch (player)
{
case Video:
if (g_application.m_pPlayer)
示例7: GetPropertyValue
//.........这里部分代码省略.........
}
}
else
result = CVariant(CVariant::VariantTypeNull);
break;
case Picture:
default:
result = CVariant(CVariant::VariantTypeNull);
break;
}
}
else if (property == "audiostreams")
{
result = CVariant(CVariant::VariantTypeArray);
switch (player)
{
case Video:
if (g_application.m_pPlayer->HasPlayer())
{
for (int index = 0; index < g_application.m_pPlayer->GetAudioStreamCount(); index++)
{
SPlayerAudioStreamInfo info;
g_application.m_pPlayer->GetAudioStreamInfo(index, info);
CVariant audioStream(CVariant::VariantTypeObject);
audioStream["index"] = index;
audioStream["name"] = info.name;
audioStream["language"] = info.language;
audioStream["codec"] = info.audioCodecName;
audioStream["bitrate"] = info.bitrate;
audioStream["channels"] = info.channels;
result.append(audioStream);
}
}
break;
case Audio:
case Picture:
default:
break;
}
}
else if (property == "currentvideostream")
{
switch (player)
{
case Video:
{
int index = g_application.m_pPlayer->GetVideoStream();
if (index >= 0)
{
result = CVariant(CVariant::VariantTypeObject);
SPlayerVideoStreamInfo info;
g_application.m_pPlayer->GetVideoStreamInfo(index, info);
result["index"] = index;
result["name"] = info.name;
result["language"] = info.language;
result["codec"] = info.videoCodecName;
result["width"] = info.width;
result["height"] = info.height;
}
else
result = CVariant(CVariant::VariantTypeNull);