summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>2007-01-06 02:24:11 +0000
committerDieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>2007-01-06 02:24:11 +0000
commit8f9342e733730ac36f296140367e7b6b21d941c6 (patch)
tree5050953f2d5e3f0a6b97fa1918a1b71061f3cbec
parenta92938f1dfcaf9b3be3258e46ab984c863153d58 (diff)
downloadvdr-plugin-live-8f9342e733730ac36f296140367e7b6b21d941c6.tar.gz
vdr-plugin-live-8f9342e733730ac36f296140367e7b6b21d941c6.tar.bz2
added recordings_items.ecpp; Updated html structure for recordings
-rw-r--r--.cvsignore1
-rw-r--r--httpd/.cvsignore1
-rw-r--r--pages/Makefile3
-rw-r--r--pages/recordings.ecpp36
-rw-r--r--pages/recordings_item.ecpp34
-rw-r--r--recordings.cpp22
-rw-r--r--recordings.h11
7 files changed, 75 insertions, 33 deletions
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>
</%args>
<{
-
-
}>
<html>
<head>
@@ -22,7 +20,7 @@ using namespace vdrlive;
<body>
<div class="left_area">
<img src="logo.png" alt="VDR Live!" border="0" />
-<& menu >
+<& menu &>
</div>
<div class="inhalt">
<div class="head_box">
@@ -36,38 +34,14 @@ using namespace vdrlive;
<td class="head"><$ tr("Structure") $></td>
<td class="head"><$ tr("Date") $></td>
<td class="head"><$ tr("Time") $></td>
- <td class="head"><$ tr("Levels") $></td>
<td class="head"><$ tr("Name") $></td>
</tr>
+ </table>
% RecordingsTree recordingsTree;
<div class="recordings">
- <ul>
-<{
- bool active = false;
- RecordingsTree::Map::iterator iter;
- for (iter = recordingsTree.begin(); iter != recordingsTree.end(); iter++) {
- RecordingsTree::RecordingsItemPtr recItem = iter->second;
- active = !active;
-}>
- <table class="recording" cellspacing="0" cellpadding="0">
- <tr class="<? active ? "active" ?>">
- <td>&nbsp;</td>
-% if (recItem->IsDir()) {
- <td><$ recItem->StartTime() $></td>
- <td><$ recItem->StartTime() $></td>
-% } else {
- <td>&nbsp;</td>
- <td><$ FormatDateTime(tr("%a, %b %d"), recItem->StartTime()) $></td>
- <td><$ FormatDateTime(tr("%I:%M %p"), recItem->StartTime()) $></td>
-% }
- <td><$ recItem->Name() $></td>
- </tr>
- </table>
-<{
- }
- }
-}>
- </table>
+<& recordings_item &>
+ </div>
+% }
</div>
</body>
</html>
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;
+
+</%pre>
+<%args>
+</%args>
+<ul class="recordingslist">
+<{
+RecordingsTree& recordingsTree = LiveRecordingsTree();
+bool active = false;
+RecordingsTree::Map::iterator iter;
+for (iter = recordingsTree.begin(); iter != recordingsTree.end(); iter++) {
+ RecordingsTree::RecordingsItemPtr recItem = iter->second;
+ active = !active;
+}>
+ <li class="recording <? active ? "active" ?>">
+% if (recItem->IsDir()) {
+ <span class="recordingexpand"></span>
+ <span class="recordingdate"><$ recItem->StartTime() $></span>
+ <span class="recordingtime"><$ recItem->StartTime() $></span>
+% } else {
+ <span class="recordingexpand">FileIcon</span>
+ <span class="recordingdate"><$ FormatDateTime(tr("%a, %b %d"), recItem->StartTime()) $></span>
+ <span class="recordingtime"><$ FormatDateTime(tr("%I:%M %p"), recItem->StartTime()) $></span>
+% }
+ <span class="recordingname"><$ recItem->Name() $></span>
+ </li>
+<(
+}
+}>
+</ul>
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