11 #include "media/MediaType.h" 20 enum class VideoDbContentType;
102 FieldNumberOfEpisodes,
103 FieldNumberOfWatchedEpisodes,
109 FieldEpisodeNumberSpecialSort,
110 FieldSeasonSpecialSort,
120 FieldVideoResolution,
121 FieldVideoAspectRatio,
126 FieldSubtitleLanguage,
143 FieldClientChannelOrder,
156 typedef std::set<Field> Fields;
157 typedef std::vector<Field> FieldList;
160 DatabaseQueryPartSelect,
161 DatabaseQueryPartWhere,
162 DatabaseQueryPartOrderBy,
165 typedef std::map<Field, CVariant> DatabaseResult;
166 typedef std::vector<DatabaseResult> DatabaseResults;
171 static MediaType MediaTypeFromVideoContentType(VideoDbContentType videoContentType);
173 static std::string GetField(Field field,
const MediaType &mediaType, DatabaseQueryPart queryPart);
174 static int GetField(Field field,
const MediaType &mediaType);
175 static int GetFieldIndex(Field field,
const MediaType &mediaType);
176 static bool GetSelectFields(
const Fields &fields,
const MediaType &mediaType, FieldList &selectFields);
179 static bool GetDatabaseResults(
const MediaType &mediaType,
const FieldList &fields,
const std::unique_ptr<dbiplus::Dataset> &dataset, DatabaseResults &results);
181 static std::string BuildLimitClause(
int end,
int start = 0);
182 static std::string BuildLimitClauseOnly(
int end,
int start = 0);
183 static size_t GetLimitCount(
int end,
int start);
186 static int GetField(Field field,
const MediaType &mediaType,
bool asIndex);
Definition: Database.h:11
Definition: DatabaseUtils.h:168