Skip to content

Commit

Permalink
Merge pull request #8333 from TonyPh12345/tonyph12345
Browse files Browse the repository at this point in the history
  • Loading branch information
jenkins4kodi committed Dec 5, 2015
2 parents d641811 + db9d5ca commit 70cd30f
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 1 deletion.
12 changes: 11 additions & 1 deletion addons/resource.language.en_gb/resources/strings.po
Expand Up @@ -12615,7 +12615,17 @@ msgctxt "#21480"
msgid "Use"
msgstr ""

#empty strings from id 21481 to 21601
#: xbmc/playlist/SmartPlayList.cpp
msgctxt "#21481"
msgid "Audio track count"
msgstr ""

#: xbmc/playlist/SmartPlayList.cpp
msgctxt "#21482"
msgid "Subtitle track count"
msgstr ""

#empty strings from id 21483 to 21601

#: xbmc/Util.cpp
msgctxt "#21602"
Expand Down
8 changes: 8 additions & 0 deletions xbmc/playlists/SmartPlayList.cpp
Expand Up @@ -103,6 +103,8 @@ static const translateField fields[] = {
{ "audiochannels", FieldAudioChannels, CDatabaseQueryRule::NUMERIC_FIELD, NULL, false, 21444 },
{ "audiocodec", FieldAudioCodec, CDatabaseQueryRule::TEXTIN_FIELD, NULL, false, 21446 },
{ "audiolanguage", FieldAudioLanguage, CDatabaseQueryRule::TEXTIN_FIELD, NULL, false, 21447 },
{ "audiocount", FieldAudioCount, CDatabaseQueryRule::NUMERIC_FIELD, StringValidation::IsPositiveInteger, false, 21481 },
{ "subtitlecount", FieldSubtitleCount, CDatabaseQueryRule::NUMERIC_FIELD, StringValidation::IsPositiveInteger, false, 21482 },
{ "subtitlelanguage", FieldSubtitleLanguage, CDatabaseQueryRule::TEXTIN_FIELD, NULL, false, 21448 },
{ "random", FieldRandom, CDatabaseQueryRule::TEXT_FIELD, NULL, false, 590 },
{ "playlist", FieldPlaylist, CDatabaseQueryRule::PLAYLIST_FIELD, NULL, true, 559 },
Expand Down Expand Up @@ -430,6 +432,8 @@ std::vector<Field> CSmartPlaylistRule::GetFields(const std::string &type)
{
fields.push_back(FieldVideoResolution);
fields.push_back(FieldAudioChannels);
fields.push_back(FieldAudioCount);
fields.push_back(FieldSubtitleCount);
fields.push_back(FieldVideoCodec);
fields.push_back(FieldAudioCodec);
fields.push_back(FieldAudioLanguage);
Expand Down Expand Up @@ -850,6 +854,10 @@ std::string CSmartPlaylistRule::FormatWhereClause(const std::string &negate, con
query = negate + " EXISTS (SELECT 1 FROM streamdetails WHERE streamdetails.idFile = " + table + ".idFile AND strSubtitleLanguage " + parameter + ")";
else if (m_field == FieldVideoAspectRatio)
query = negate + " EXISTS (SELECT 1 FROM streamdetails WHERE streamdetails.idFile = " + table + ".idFile AND fVideoAspect " + parameter + ")";
else if (m_field == FieldAudioCount)
query = db.PrepareSQL(negate + " EXISTS (SELECT 1 FROM streamdetails WHERE streamdetails.idFile = " + table + ".idFile AND streamdetails.iStreamtype = %i GROUP BY streamdetails.idFile HAVING COUNT(streamdetails.iStreamType) " + parameter + ")",CStreamDetail::AUDIO);
else if (m_field == FieldSubtitleCount)
query = db.PrepareSQL(negate + " EXISTS (SELECT 1 FROM streamdetails WHERE streamdetails.idFile = " + table + ".idFile AND streamdetails.iStreamType = %i GROUP BY streamdetails.idFile HAVING COUNT(streamdetails.iStreamType) " + parameter + ")",CStreamDetail::SUBTITLE);
if (m_field == FieldPlaycount && strType != "songs" && strType != "albums" && strType != "tvshows")
{ // playcount IS stored as NULL OR number IN video db
if ((m_operator == OPERATOR_EQUALS && param == "0") ||
Expand Down
2 changes: 2 additions & 0 deletions xbmc/utils/DatabaseUtils.h
Expand Up @@ -59,6 +59,8 @@ typedef enum {
FieldVirtualFolder,
FieldRandom,
FieldDateTaken,
FieldAudioCount,
FieldSubtitleCount,

// fields retrievable from the database
FieldId,
Expand Down

0 comments on commit 70cd30f

Please sign in to comment.