summaryrefslogtreecommitdiff
path: root/libs/mediaScan/src/VdrRecording.cc
diff options
context:
space:
mode:
authorgeronimo <geronimo013@gmx.de>2012-07-30 09:19:12 +0200
committergeronimo <geronimo013@gmx.de>2012-07-30 09:19:12 +0200
commit41922cdaf9c8db57c6b51f090eefe95b0008a0fb (patch)
treedbedbef06a7419552b7be90ac97b48417fda1fa1 /libs/mediaScan/src/VdrRecording.cc
parent05bf6a9b1be1c03ed33df638d3f7d0fddf968ebc (diff)
downloadcmp-41922cdaf9c8db57c6b51f090eefe95b0008a0fb.tar.gz
cmp-41922cdaf9c8db57c6b51f090eefe95b0008a0fb.tar.bz2
former libfsScan now contains only media related stuff, so renamed lib to libmediaScan
Diffstat (limited to 'libs/mediaScan/src/VdrRecording.cc')
-rw-r--r--libs/mediaScan/src/VdrRecording.cc103
1 files changed, 103 insertions, 0 deletions
diff --git a/libs/mediaScan/src/VdrRecording.cc b/libs/mediaScan/src/VdrRecording.cc
new file mode 100644
index 0000000..03abccf
--- /dev/null
+++ b/libs/mediaScan/src/VdrRecording.cc
@@ -0,0 +1,103 @@
+/**
+ * ======================== legal notice ======================
+ *
+ * File: VdrRecording.cc
+ * Created: 3. Juli 2012, 08
+ * Author: <a href="mailto:geronimo013@gmx.de">Geronimo</a>
+ * Project: libfsScan: mediatypes and filesystem scanning
+ *
+ * CMP - compound media player
+ *
+ * is a client/server mediaplayer intended to play any media from any workstation
+ * without the need to export or mount shares. cmps is an easy to use backend
+ * with a (ready to use) HTML-interface. Additionally the backend supports
+ * authentication via HTTP-digest authorization.
+ * cmpc is a client with vdr-like osd-menues.
+ *
+ * Copyright (c) 2012 Reinhard Mantey, some rights reserved!
+ * published under Creative Commons by-sa
+ * For details see http://creativecommons.org/licenses/by-sa/3.0/
+ *
+ * The cmp project's homepage is at http://projects.vdr-developer.org/projects/cmp
+ *
+ * --------------------------------------------------------------
+ */
+#include <VdrRecording.h>
+#include <StringBuilder.h>
+#include <File.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#define FILE_MASK "/%05d.ts"
+
+cVdrRecording::cVdrRecording(const cFile &File)
+ : cAbstractMultiFileMovie(File, "video/mpeg", VdrRecording)
+{
+ cStringBuilder sb;
+ cFile *parent = File.Parent();
+
+ sb.Append(parent->Name());
+ sb.Append(" (").Append(File.Name()).Append(")");
+ delete parent;
+ SetName(sb.toString());
+ bufSize = 10;
+}
+
+cVdrRecording::~cVdrRecording()
+{
+}
+
+void cVdrRecording::Refresh(void)
+{
+ size_t total = 0;
+ cFile *tmp;
+
+ if (!checkBuffer()) return;
+ movieFiles = 0;
+ for (int fileNo = 1;; ++fileNo) {
+ sprintf(buf, FILE_MASK, fileNo);
+ tmp = new cFile(KeyPath(), buf);
+
+ if (!tmp || !tmp->Exists()) {
+ movieFiles = fileNo - 1;
+ delete tmp;
+ break;
+ }
+ total += tmp->Size();
+ delete tmp;
+ }
+ SetSize(total);
+}
+
+const char *cVdrRecording::FirstFile(void)
+{
+ if (!checkBuffer()) return NULL;
+ curFileNo = 1;
+ sprintf(buf, FILE_MASK, curFileNo);
+ cFile *tmp = new cFile(KeyPath(), buf);
+ const char *rv = NULL;
+
+ if (tmp) {
+ rv = tmp->AbsolutePath();
+ delete tmp;
+ }
+ return rv;
+}
+
+const char *cVdrRecording::NextFile(void)
+{
+ if (++curFileNo < movieFiles) {
+ if (!checkBuffer()) return NULL;
+ sprintf(buf, FILE_MASK, curFileNo);
+ cFile *tmp = new cFile(KeyPath(), buf);
+ const char *rv = NULL;
+
+ if (tmp) {
+ rv = tmp->AbsolutePath();
+ delete tmp;
+
+ return rv;
+ }
+ }
+ return NULL;
+}