diff options
| author | LarsAC <LarsAC@e10066b5-e1e2-0310-b819-94efdf66514b> | 2005-01-23 13:03:34 +0000 |
|---|---|---|
| committer | LarsAC <LarsAC@e10066b5-e1e2-0310-b819-94efdf66514b> | 2005-01-23 13:03:34 +0000 |
| commit | ec8c7eca5af284858016d573b03f82952e9e094c (patch) | |
| tree | b810d3a415d618e0be2de9a6a95e636c60d9d843 /muggle-plugin/vdr_decoder.c | |
| parent | 5a628da787cdb0738efc8fbba006544252f20912 (diff) | |
| download | vdr-plugin-muggle-ec8c7eca5af284858016d573b03f82952e9e094c.tar.gz vdr-plugin-muggle-ec8c7eca5af284858016d573b03f82952e9e094c.tar.bz2 | |
Merged branches osd_extensions and flac_player for new release, yet untested
git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk@386 e10066b5-e1e2-0310-b819-94efdf66514b
Diffstat (limited to 'muggle-plugin/vdr_decoder.c')
| -rw-r--r-- | muggle-plugin/vdr_decoder.c | 49 |
1 files changed, 32 insertions, 17 deletions
diff --git a/muggle-plugin/vdr_decoder.c b/muggle-plugin/vdr_decoder.c index 9b47fa8..9a7bb7c 100644 --- a/muggle-plugin/vdr_decoder.c +++ b/muggle-plugin/vdr_decoder.c @@ -23,7 +23,14 @@ #include "vdr_decoder.h" #include "vdr_decoder_mp3.h" + +#ifdef HAVE_VORBISFILE #include "vdr_decoder_ogg.h" +#endif + +#ifdef HAVE_FLAC +#include "vdr_decoder_flac.h" +#endif #include "mg_db.h" @@ -34,8 +41,7 @@ mgMediaType mgDecoders::getMediaType (std::string s) { - mgMediaType - mt = MT_UNKNOWN; + mgMediaType mt = MT_UNKNOWN; // TODO: currently handles only mp3. LVW char * @@ -56,6 +62,13 @@ mgMediaType mgDecoders::getMediaType (std::string s) { mt = MT_OGG; } + else + { + if (!strcmp (p, ".flac")) + { + mt = MT_FLAC; + } + } } return mt; } @@ -76,17 +89,21 @@ mgDecoders::findDecoder (mgContentItem * item) } switch (getMediaType (filename)) { - case MT_MP3: - { - decoder = new mgMP3Decoder (item); - } - break; + case MT_MP3: + { + decoder = new mgMP3Decoder (item); + } break; #ifdef HAVE_VORBISFILE - case MT_OGG: - { - decoder = new mgOggDecoder (item); - } - break; + case MT_OGG: + { + decoder = new mgOggDecoder (item); + } break; +#endif +#ifdef HAVE_FLAC + case MT_FLAC: + { + decoder = new mgFlacDecoder( item ); + } break; #endif /* case MT_MP3_STREAM: decoder = new mgMP3StreamDecoder(full); break; @@ -124,23 +141,21 @@ mgDecoder::mgDecoder (mgContentItem * item) m_playing = false; } - mgDecoder::~mgDecoder () { } - void mgDecoder::lock (bool urgent) { m_locklock.Lock (); if (urgent && m_locked) - { + { m_urgentLock = true; // signal other locks to release quickly - } + } m_locked++; - + m_locklock.Unlock (); // don't hold the "locklock" when locking "lock", may cause a deadlock m_lock.Lock (); m_urgentLock = false; |
