aboutsummaryrefslogtreecommitdiff
path: root/lib/base/rawfile.h
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2006-03-03 03:13:13 +0000
committerFelix Domke <tmbinc@elitedvb.net>2006-03-03 03:13:13 +0000
commit8ef240801bf66e543cdea9df3b32fc09cebcc7e5 (patch)
tree5518ec66c8b24014faa47659591f0d47f8816155 /lib/base/rawfile.h
parent13e74ce7d8fcccc12bed3ce65c4f35987f206799 (diff)
downloadenigma2-8ef240801bf66e543cdea9df3b32fc09cebcc7e5.tar.gz
enigma2-8ef240801bf66e543cdea9df3b32fc09cebcc7e5.zip
enable playback of multifile (split) movies
Diffstat (limited to 'lib/base/rawfile.h')
-rw-r--r--lib/base/rawfile.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/base/rawfile.h b/lib/base/rawfile.h
new file mode 100644
index 00000000..5d15e85d
--- /dev/null
+++ b/lib/base/rawfile.h
@@ -0,0 +1,30 @@
+#ifndef __lib_base_rawfile_h
+#define __lib_base_rawfile_h
+
+#include <string>
+
+class eRawFile
+{
+public:
+ eRawFile();
+ ~eRawFile();
+
+ int open(const char *filename);
+ void setfd(int fd);
+ off_t lseek(off_t offset, int whence);
+ int close();
+ ssize_t read(void *buf, size_t count); /* NOTE: you must be able to handle short reads! */
+ off_t length();
+ int valid();
+private:
+ int m_fd;
+ std::string m_basename;
+ off_t m_splitsize, m_totallength, m_current_offset, m_base_offset;
+ int m_nrfiles;
+ void scan();
+ int m_current_file;
+ int switchOffset(off_t off);
+ int openFile(int nr);
+};
+
+#endif