From 5d66e825f79753f2b1a3da4fd3f7d431a8a37b15 Mon Sep 17 00:00:00 2001 From: Christian Wieninger Date: Sat, 5 Feb 2011 14:30:42 +0100 Subject: read entries in VDR's folders.conf --- HISTORY | 2 ++ HISTORY.DE | 2 ++ doc-src/en/epgsearch.4.txt | 1 + menu_dirselect.c | 17 +++++++++++++++++ menu_dirselect.h | 3 +++ 5 files changed, 25 insertions(+) diff --git a/HISTORY b/HISTORY index ec8b50b..9c08678 100644 --- a/HISTORY +++ b/HISTORY @@ -16,6 +16,8 @@ new: http://projects.vdr-developer.org/git/?p=vdr-plugin-epgsearch.git many thanks to the maintainers of projects.vdr-developer.org, especially Tobias Grimm +- directory entries from VDR's folders.conf are now also read and offered in the + directory selection of the timer menu. - Search timer support for content descriptors as introduced in vdr-1.7.11. This lets you search for broadcasts by their type, like "Movie/Drama", "Documentation",... - Search timers now have a new action "Announce and switch". This announces the diff --git a/HISTORY.DE b/HISTORY.DE index 0c66d3d..45dd4f6 100644 --- a/HISTORY.DE +++ b/HISTORY.DE @@ -15,6 +15,8 @@ neu: Web-git: http://projects.vdr-developer.org/git/?p=vdr-plugin-epgsearch.git Vielen Dank an die Leute von projects.vdr-developer.org, besonders an Tobias Grimm +- Verzeichnis-Einträge in VDR's folders.conf werden nun ausgelesen und in der Verzeichnis- + auswahl der Timerprogrammierung angeboten. - Suchtimer unterstützen nun content descriptors, die in vdr-1.7.11 eingeführt wurden. Damit können Sendungen nach ihrem Typ gesucht werden, z.B. "Film/Drama", "Dokumentation",... - Suchtimer haben nun eine neue Aktion "Ankündigen und Umschalten". Damit wird eine Sendung diff --git a/doc-src/en/epgsearch.4.txt b/doc-src/en/epgsearch.4.txt index 7db3858..642e8c8 100644 --- a/doc-src/en/epgsearch.4.txt +++ b/doc-src/en/epgsearch.4.txt @@ -275,6 +275,7 @@ sources: * directories used in search timers * directories specified in F, see C + * entries in VDR's folders.conf The menu merges theses directories and displays only distinct directories. With key 'yellow' one can change the depth of the diff --git a/menu_dirselect.c b/menu_dirselect.c index da90a10..387815f 100644 --- a/menu_dirselect.c +++ b/menu_dirselect.c @@ -173,6 +173,12 @@ void cMenuDirSelect::CreateDirSet(bool extraDirs) free(dir); } +#if APIVERSNUM >= 10712 + // add distinct directories from folders.conf + for(cNestedItem* item = Folders.First(); item; item = Folders.Next(item)) + AddVDRFolders(item); +#endif + if (extraDirs) { cMutexLock SearchExtsLock(&SearchExts); @@ -202,6 +208,17 @@ void cMenuDirSelect::CreateDirSet(bool extraDirs) } } +#if APIVERSNUM >= 10712 +void cMenuDirSelect::AddVDRFolders(cNestedItem* folder, string parentDirectory) +{ + if (folder == NULL) return; + string folderDirectory = string((parentDirectory.size() == 0)?"":parentDirectory + "~") + folder->Text(); + directorySet.insert(folderDirectory); + if (folder->SubItems() == NULL) return; + for(cNestedItem* subfolder = folder->SubItems()->First(); subfolder; subfolder = folder->SubItems()->Next(subfolder)) + AddVDRFolders(subfolder, folderDirectory); +} +#endif void cMenuDirSelect::Load() { diff --git a/menu_dirselect.h b/menu_dirselect.h index 7491d6d..a260d16 100644 --- a/menu_dirselect.h +++ b/menu_dirselect.h @@ -63,6 +63,9 @@ private: ~cMenuDirSelect(); void Load(); void AddDistinct(const char* szText); +#if APIVERSNUM >= 10712 + static void AddVDRFolders(cNestedItem* folder, string parentDirectory = ""); +#endif virtual eOSState ProcessKey(eKeys Key); int Level(const char* szDir); void ReplaceDirVars(); -- cgit v1.2.3