diff options
author | horchi <vdr@jwendel.de> | 2019-11-01 15:06:22 +0100 |
---|---|---|
committer | horchi <vdr@jwendel.de> | 2019-11-01 15:06:22 +0100 |
commit | 8695dac6a305c0e0abe6966ad164490471a84067 (patch) | |
tree | 27815482bfc5b09a063fb0673d7abb88126ae6d0 | |
parent | f429ad502778c53ce4eee8560df99386ad38a0ff (diff) | |
download | vdr-plugin-epg2vdr-8695dac6a305c0e0abe6966ad164490471a84067.tar.gz vdr-plugin-epg2vdr-8695dac6a305c0e0abe6966ad164490471a84067.tar.bz2 |
dev
-rw-r--r-- | menu.c | 6 | ||||
-rw-r--r-- | menu.h | 1 | ||||
-rw-r--r-- | menurec.c | 13 |
3 files changed, 11 insertions, 9 deletions
@@ -53,6 +53,7 @@ cMenuDb::~cMenuDb() cDbFieldDef startTimeDef("starttime", "starttime", cDBS::ffInt, 0, cDBS::ftData); cDbFieldDef timerStateDef("state", "state", cDBS::ffAscii, 100, cDBS::ftData); cDbFieldDef timerActionDef("action", "action", cDBS::ffAscii, 100, cDBS::ftData); +cDbFieldDef groupCountDef("GROUP_COUNT", "count(1)", cDBS::ffUInt, 0, cDBS::ftData); //*************************************************************************** // initDb / exitDb @@ -331,18 +332,21 @@ int cMenuDb::initDb() status += selectRecordings->prepare(); - // select category, genre + // select category, genre, count(1) // from recordinglist // where // (state <> 'D' or state is null) // group by ifnull(category, 'unknown'), ifnull(genre, 'unknown') // order by ifnull(category, 'unknown'), ifnull(genre, 'unknown') + groupCount.setField(&groupCountDef); + selectRecordingsGrouped = new cDbStatement(recordingListDb); selectRecordingsGrouped->build("select "); selectRecordingsGrouped->bind("CATEGORY", cDBS::bndOut); selectRecordingsGrouped->bind("GENRE", cDBS::bndOut, ", "); + selectRecordingsGrouped->bind(&groupCount, cDBS::bndOut, ", "); selectRecordingsGrouped->build(" from %s where ", recordingListDb->TableName()); selectRecordingsGrouped->build(" (%s <> 'D' or %s is null)", recordingListDb->getField("STATE")->getDbName(), @@ -143,6 +143,7 @@ class cMenuDb : public cParameters cDbValue valueStartTime; cDbValue timerState; cDbValue timerAction; + cDbValue groupCount; class cTimerInfo : public cListObject { @@ -96,7 +96,7 @@ class cMenuDbRecordingFolderItem : public cMenuDbRecordingItemBase { public: - cMenuDbRecordingFolderItem(cMenuDb* db, const char* title); + cMenuDbRecordingFolderItem(cMenuDb* db, const char* title, int count); virtual ~cMenuDbRecordingFolderItem(); // void IncrementCounter(bool New); @@ -113,10 +113,12 @@ class cMenuDbRecordingFolderItem : public cMenuDbRecordingItemBase cMenuDb* menuDb {nullptr}; }; -cMenuDbRecordingFolderItem::cMenuDbRecordingFolderItem(cMenuDb* db, const char* title) +cMenuDbRecordingFolderItem::cMenuDbRecordingFolderItem(cMenuDb* db, const char* title, int count) { menuDb = db; name = strdup(title); + totalEntries = count; + newEntries = 0; if (tmpRecording) { @@ -128,11 +130,6 @@ cMenuDbRecordingFolderItem::cMenuDbRecordingFolderItem(cMenuDb* db, const char* asprintf(&dummy, "\t%s/%s", name, "2000-01-01.00.00.0-0.rec"); tmpRecording = new cRecording(dummy); - - totalEntries++; - // newEntries++; - - // SetText(tmpRecording->Title()); SetText(cString::sprintf("%d\t\t%d\t%s", totalEntries, newEntries, name)); free(dummy); @@ -250,7 +247,7 @@ void cMenuDbRecordings::LoadGrouped(bool Refresh) menuDb->recordingListDb->getValue("GENRE")->isNull() ? "unknown" : menuDb->recordingListDb->getStrValue("GENRE")); tell(0, "Added recording folder '%s'", folderTitle); - Add(new cMenuDbRecordingFolderItem(menuDb, folderTitle)); + Add(new cMenuDbRecordingFolderItem(menuDb, folderTitle, menuDb->groupCount.getIntValue())); free(folderTitle); } |