summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhorchi <vdr@jwendel.de>2019-11-01 15:06:22 +0100
committerhorchi <vdr@jwendel.de>2019-11-01 15:06:22 +0100
commit8695dac6a305c0e0abe6966ad164490471a84067 (patch)
tree27815482bfc5b09a063fb0673d7abb88126ae6d0
parentf429ad502778c53ce4eee8560df99386ad38a0ff (diff)
downloadvdr-plugin-epg2vdr-8695dac6a305c0e0abe6966ad164490471a84067.tar.gz
vdr-plugin-epg2vdr-8695dac6a305c0e0abe6966ad164490471a84067.tar.bz2
dev
-rw-r--r--menu.c6
-rw-r--r--menu.h1
-rw-r--r--menurec.c13
3 files changed, 11 insertions, 9 deletions
diff --git a/menu.c b/menu.c
index 062355a..d9e6dd1 100644
--- a/menu.c
+++ b/menu.c
@@ -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(),
diff --git a/menu.h b/menu.h
index cf85be7..b4241af 100644
--- a/menu.h
+++ b/menu.h
@@ -143,6 +143,7 @@ class cMenuDb : public cParameters
cDbValue valueStartTime;
cDbValue timerState;
cDbValue timerAction;
+ cDbValue groupCount;
class cTimerInfo : public cListObject
{
diff --git a/menurec.c b/menurec.c
index 3423697..85a09fa 100644
--- a/menurec.c
+++ b/menurec.c
@@ -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);
}