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