From 8f9342e733730ac36f296140367e7b6b21d941c6 Mon Sep 17 00:00:00 2001 From: Dieter Hametner Date: Sat, 6 Jan 2007 02:24:11 +0000 Subject: added recordings_items.ecpp; Updated html structure for recordings --- .cvsignore | 1 + httpd/.cvsignore | 1 + pages/Makefile | 3 ++- pages/recordings.ecpp | 36 +++++------------------------------- pages/recordings_item.ecpp | 34 ++++++++++++++++++++++++++++++++++ recordings.cpp | 22 ++++++++++++++++++++++ recordings.h | 11 ++++++++++- 7 files changed, 75 insertions(+), 33 deletions(-) create mode 100644 httpd/.cvsignore create mode 100644 pages/recordings_item.ecpp diff --git a/.cvsignore b/.cvsignore index 53f675a..148f2fa 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,4 +1,5 @@ .git .gitignore .libs +.dependencies debian \ No newline at end of file diff --git a/httpd/.cvsignore b/httpd/.cvsignore new file mode 100644 index 0000000..42864ae --- /dev/null +++ b/httpd/.cvsignore @@ -0,0 +1 @@ +.dependencies diff --git a/pages/Makefile b/pages/Makefile index 246a6c5..5c96adc 100644 --- a/pages/Makefile +++ b/pages/Makefile @@ -17,7 +17,8 @@ VDRDIR ?= ../../../.. OBJS = menu.o event_widget.o channels.o recordings.o schedule.o \ screenshot.o timers.o whats_on_now.o whats_on_next.o \ - keypress.o remote.o channels_widget.o edit_timer.o + keypress.o remote.o channels_widget.o edit_timer.o \ + recordings_item.o ### Default rules: diff --git a/pages/recordings.ecpp b/pages/recordings.ecpp index ea5c02b..6a3a8cf 100644 --- a/pages/recordings.ecpp +++ b/pages/recordings.ecpp @@ -11,8 +11,6 @@ using namespace vdrlive; <%args> <{ - - }> @@ -22,7 +20,7 @@ using namespace vdrlive;
VDR Live! -<& menu > +<& menu &>
@@ -36,38 +34,14 @@ using namespace vdrlive; <$ tr("Structure") $> <$ tr("Date") $> <$ tr("Time") $> - <$ tr("Levels") $> <$ tr("Name") $> + % RecordingsTree recordingsTree;
-
    -<{ - bool active = false; - RecordingsTree::Map::iterator iter; - for (iter = recordingsTree.begin(); iter != recordingsTree.end(); iter++) { - RecordingsTree::RecordingsItemPtr recItem = iter->second; - active = !active; -}> - - "> - -% if (recItem->IsDir()) { - - -% } else { - - - -% } - - -
     <$ recItem->StartTime() $><$ recItem->StartTime() $> <$ FormatDateTime(tr("%a, %b %d"), recItem->StartTime()) $><$ FormatDateTime(tr("%I:%M %p"), recItem->StartTime()) $><$ recItem->Name() $>
    -<{ - } - } -}> - +<& recordings_item &> +
+% }
diff --git a/pages/recordings_item.ecpp b/pages/recordings_item.ecpp new file mode 100644 index 0000000..bb96d53 --- /dev/null +++ b/pages/recordings_item.ecpp @@ -0,0 +1,34 @@ +<%pre> +#include "recordings.h" +#include "tools.h" + +using namespace vdrlive; + + +<%args> + + diff --git a/recordings.cpp b/recordings.cpp index 08dd4cc..8290f80 100644 --- a/recordings.cpp +++ b/recordings.cpp @@ -4,12 +4,18 @@ namespace vdrlive { + RecordingsTree::RecordingsTree* RecordingsTree::globalInstance = 0; + RecordingsTree::RecordingsTree() : m_maxLevel(0), m_root(new RecordingsItemDir()), m_recordingsLock(&Recordings) { + if (globalInstance != 0) { + // TODO: report ERROR and fail. + } + for ( cRecording* recording = Recordings.First(); recording != 0; recording = Recordings.Next( recording ) ) { if (m_maxLevel < recording->HierarchyLevels()) { m_maxLevel = recording->HierarchyLevels(); @@ -39,10 +45,17 @@ namespace vdrlive { } } while (pos != string::npos); } + + globalInstance = this; } RecordingsTree::~RecordingsTree() { + if (globalInstance != this) + { + // TODO: report ERROR and fail + } + globalInstance = 0; } RecordingsTree::RecordingsItem::RecordingsItem() : @@ -84,4 +97,13 @@ namespace vdrlive { return m_recording->start; } + RecordingsTree& LiveRecordingsTree() + { + if (RecordingsTree::globalInstance == 0) + { + // TODO: report ERROR and fail! + } + return *RecordingsTree::globalInstance; + } + } // namespace vdrlive diff --git a/recordings.h b/recordings.h index d350bbd..748b832 100644 --- a/recordings.h +++ b/recordings.h @@ -13,6 +13,8 @@ namespace vdrlive { class RecordingsTree { + friend RecordingsTree& LiveRecordingsTree(); + public: class RecordingsItem; @@ -26,6 +28,7 @@ namespace vdrlive { public: virtual ~RecordingsItem(); + virtual time_t StartTime() const = 0; virtual bool IsDir() const = 0; virtual const char* Name() const = 0; @@ -41,9 +44,10 @@ namespace vdrlive { { public: RecordingsItemDir(); - virtual ~RecordingsItemDir(); RecordingsItemDir(const string& name, int level); + virtual ~RecordingsItemDir(); + virtual time_t StartTime() const { return 0; } virtual bool IsDir() const { return true; } virtual const char* Name() const { return m_name.c_str(); } @@ -57,6 +61,7 @@ namespace vdrlive { { public: RecordingsItemRec(cRecording* recording); + virtual ~RecordingsItemRec(); virtual time_t StartTime() const; @@ -68,6 +73,7 @@ namespace vdrlive { }; RecordingsTree(); + virtual ~RecordingsTree(); Map::iterator begin() { return m_root->m_entries.begin(); } @@ -79,8 +85,11 @@ namespace vdrlive { int m_maxLevel; RecordingsItemPtr m_root; cThreadLock m_recordingsLock; + + static RecordingsTree* globalInstance; }; + RecordingsTree& LiveRecordingsTree(); } // namespace vdrlive #endif // VDR_LIVE_RECORDINGS_H -- cgit v1.2.3