decoder.c
branchtrunk
changeset 33 65ed49cbc08b
parent 29 640ce9201139
child 34 afc13760179b
     1.1 --- a/decoder.c	Sat Oct 24 11:31:53 2009 +0800
     1.2 +++ b/decoder.c	Fri Nov 13 19:27:36 2009 +0800
     1.3 @@ -36,6 +36,7 @@
     1.4  #include "decoder-mp3-stream.h"
     1.5  #include "decoder-snd.h"
     1.6  #include "decoder-ogg.h"
     1.7 +#include "decoder-ogg-stream.h"
     1.8  
     1.9  #define CACHEFILENAME     "id3info.cache"
    1.10  #define CACHESAVETIMEOUT  120 // secs
    1.11 @@ -258,6 +259,7 @@
    1.12  #endif
    1.13  #ifdef HAVE_VORBISFILE
    1.14          case DEC_OGG:  decoder=new cOggDecoder(full); break;
    1.15 +        case DEC_OGGS: decoder=new cOggStreamDecoder(full); break;
    1.16  #endif
    1.17          default:       esyslog("ERROR: bad DecoderID '%s' from info cache: %s",cDecoders::ID2Str(dat->DecoderID),full); break;
    1.18          }
    1.19 @@ -281,6 +283,10 @@
    1.20        decoder=new cOggDecoder(full);
    1.21        if(!decoder || !decoder->Valid()) { delete decoder; decoder=0; }
    1.22        }
    1.23 +    if(!decoder) {
    1.24 +      decoder=new cOggStreamDecoder(full);
    1.25 +      if(!decoder || !decoder->Valid()) { delete decoder; decoder=0; }
    1.26 +      }
    1.27  #endif
    1.28      if(!decoder) {
    1.29        decoder=new cMP3StreamDecoder(full);
    1.30 @@ -302,6 +308,7 @@
    1.31      case DEC_MP3S: return DEC_MP3S_STR;
    1.32      case DEC_SND:  return DEC_SND_STR;
    1.33      case DEC_OGG:  return DEC_OGG_STR;
    1.34 +    case DEC_OGGS: return DEC_OGGS_STR;
    1.35      }
    1.36    return 0;
    1.37  }
    1.38 @@ -312,6 +319,7 @@
    1.39    else if(!strcmp(str,DEC_MP3S_STR)) return DEC_MP3S;
    1.40    else if(!strcmp(str,DEC_SND_STR )) return DEC_SND;
    1.41    else if(!strcmp(str,DEC_OGG_STR )) return DEC_OGG;
    1.42 +  else if(!strcmp(str,DEC_OGGS_STR)) return DEC_OGGS;
    1.43    return 0;
    1.44  }
    1.45