diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2005-07-29 15:33:27 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2005-07-29 15:33:27 +0000 |
| commit | 244459c4b2588ac9ca4b3fcbac05a2f8a7ee1641 (patch) | |
| tree | a3f9a884c61a8d8e9579613cd0d2837eb34a243a /lib/dvb/metaparser.cpp | |
| parent | d5e22a275d2ecdf3205bfefa927be6e125ac27b8 (diff) | |
| download | enigma2-244459c4b2588ac9ca4b3fcbac05a2f8a7ee1641.tar.gz enigma2-244459c4b2588ac9ca4b3fcbac05a2f8a7ee1641.zip | |
- split out meta parser
- movie selection works now
- service information for pvr services work
Diffstat (limited to 'lib/dvb/metaparser.cpp')
| -rw-r--r-- | lib/dvb/metaparser.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/lib/dvb/metaparser.cpp b/lib/dvb/metaparser.cpp new file mode 100644 index 00000000..8c1f0cfd --- /dev/null +++ b/lib/dvb/metaparser.cpp @@ -0,0 +1,44 @@ +#include <lib/dvb/metaparser.h> +#include <errno.h> + +int eDVBMetaParser::parseFile(const std::string &tsname) +{ + /* if it's a PVR channel, recover service id. */ + std::string filename = tsname + ".meta"; + + FILE *f = fopen(filename.c_str(), "r"); + if (!f) + return -ENOENT; + + int linecnt = 0; + + while (1) + { + char line[1024]; + if (!fgets(line, 1024, f)) + break; + if (*line && line[strlen(line)-1] == '\n') + line[strlen(line)-1] = 0; + + if (*line && line[strlen(line)-1] == '\r') + line[strlen(line)-1] = 0; + + switch (linecnt) + { + case 0: + m_ref = (eServiceReferenceDVB&)eServiceReference(line); + break; + case 1: + m_name = line; + break; + case 2: + m_description = line; + break; + default: + break; + } + ++linecnt; + } + fclose(f); + return 0; +} |
