mp3: converted the MUTEFRAME_ macros to an enum

Also introduce MUTEFRAME_NONE; previously, the code used "0".
This commit is contained in:
Max Kellermann 2008-08-26 08:27:14 +02:00
parent 95fff55d7e
commit 4515ac5ecb

View File

@ -41,8 +41,11 @@ enum mp3_action {
DECODE_OK = 0 DECODE_OK = 0
}; };
#define MUTEFRAME_SKIP 1 enum muteframe {
#define MUTEFRAME_SEEK 2 MUTEFRAME_NONE,
MUTEFRAME_SKIP,
MUTEFRAME_SEEK
};
/* the number of samples of silence the decoder inserts at start */ /* the number of samples of silence the decoder inserts at start */
#define DECODERDELAY 529 #define DECODERDELAY 529
@ -153,7 +156,7 @@ typedef struct _mp3DecodeData {
mpd_sint16 outputBuffer[MP3_DATA_OUTPUT_BUFFER_SIZE]; mpd_sint16 outputBuffer[MP3_DATA_OUTPUT_BUFFER_SIZE];
float totalTime; float totalTime;
float elapsedTime; float elapsedTime;
int muteFrame; enum muteframe muteFrame;
long *frameOffset; long *frameOffset;
mad_timer_t *times; mad_timer_t *times;
unsigned long highestFrame; unsigned long highestFrame;
@ -176,7 +179,7 @@ typedef struct _mp3DecodeData {
static void initMp3DecodeData(mp3DecodeData * data, struct decoder *decoder, static void initMp3DecodeData(mp3DecodeData * data, struct decoder *decoder,
InputStream * inStream) InputStream * inStream)
{ {
data->muteFrame = 0; data->muteFrame = MUTEFRAME_NONE;
data->highestFrame = 0; data->highestFrame = 0;
data->maxFrames = 0; data->maxFrames = 0;
data->frameOffset = NULL; data->frameOffset = NULL;
@ -861,16 +864,16 @@ mp3Read(mp3DecodeData * data, ReplayGainInfo ** replayGainInfo)
switch (data->muteFrame) { switch (data->muteFrame) {
case MUTEFRAME_SKIP: case MUTEFRAME_SKIP:
data->muteFrame = 0; data->muteFrame = MUTEFRAME_NONE;
break; break;
case MUTEFRAME_SEEK: case MUTEFRAME_SEEK:
if (decoder_seek_where(decoder) <= data->elapsedTime) { if (decoder_seek_where(decoder) <= data->elapsedTime) {
decoder_clear(decoder); decoder_clear(decoder);
data->muteFrame = 0; data->muteFrame = MUTEFRAME_NONE;
decoder_command_finished(decoder); decoder_command_finished(decoder);
} }
break; break;
default: case MUTEFRAME_NONE:
mad_synth_frame(&data->synth, &data->frame); mad_synth_frame(&data->synth, &data->frame);
if (!data->foundFirstFrame) { if (!data->foundFirstFrame) {
@ -974,7 +977,7 @@ mp3Read(mp3DecodeData * data, ReplayGainInfo ** replayGainInfo)
decoder_command_finished(decoder); decoder_command_finished(decoder);
} else } else
decoder_seek_error(decoder); decoder_seek_error(decoder);
data->muteFrame = 0; data->muteFrame = MUTEFRAME_NONE;
} }
} else if (decoder_get_command(decoder) == DECODE_COMMAND_SEEK && } else if (decoder_get_command(decoder) == DECODE_COMMAND_SEEK &&
!data->inStream->seekable) { !data->inStream->seekable) {
@ -992,7 +995,7 @@ mp3Read(mp3DecodeData * data, ReplayGainInfo ** replayGainInfo)
break; break;
else if (ret == DECODE_SKIP) else if (ret == DECODE_SKIP)
skip = 1; skip = 1;
if (!data->muteFrame) { if (data->muteFrame == MUTEFRAME_NONE) {
while ((ret = decodeNextFrame(data)) == DECODE_CONT && while ((ret = decodeNextFrame(data)) == DECODE_CONT &&
decoder_get_command(decoder) == DECODE_COMMAND_NONE) ; decoder_get_command(decoder) == DECODE_COMMAND_NONE) ;
if (ret == DECODE_BREAK || if (ret == DECODE_BREAK ||