moved variable "dc" to decode.h
Now that "dc" is available here, we don't have to pass it to decoder_is_idle() and decoder_is_starting() anymore.
This commit is contained in:
parent
9521c92f66
commit
1c03c721ea
26
src/decode.h
26
src/decode.h
@ -44,7 +44,7 @@ enum decoder_command {
|
||||
#define DECODE_ERROR_UNKTYPE 10
|
||||
#define DECODE_ERROR_FILE 20
|
||||
|
||||
typedef struct _DecoderControl {
|
||||
struct decoder_control {
|
||||
Notify notify;
|
||||
|
||||
volatile enum decoder_state state;
|
||||
@ -57,29 +57,31 @@ typedef struct _DecoderControl {
|
||||
Song *current_song;
|
||||
Song *volatile next_song;
|
||||
volatile float totalTime;
|
||||
} DecoderControl;
|
||||
};
|
||||
|
||||
extern struct decoder_control dc;
|
||||
|
||||
void decoderInit(void);
|
||||
|
||||
static inline int decoder_is_idle(DecoderControl *dc)
|
||||
static inline int decoder_is_idle(void)
|
||||
{
|
||||
return dc->state == DECODE_STATE_STOP &&
|
||||
dc->command != DECODE_COMMAND_START;
|
||||
return dc.state == DECODE_STATE_STOP &&
|
||||
dc.command != DECODE_COMMAND_START;
|
||||
}
|
||||
|
||||
static inline int decoder_is_starting(DecoderControl *dc)
|
||||
static inline int decoder_is_starting(void)
|
||||
{
|
||||
return dc->command == DECODE_COMMAND_START ||
|
||||
dc->state == DECODE_STATE_START;
|
||||
return dc.command == DECODE_COMMAND_START ||
|
||||
dc.state == DECODE_STATE_START;
|
||||
}
|
||||
|
||||
static inline Song *decoder_current_song(DecoderControl *dc)
|
||||
static inline Song *decoder_current_song(void)
|
||||
{
|
||||
if (dc->state == DECODE_STATE_STOP ||
|
||||
dc->error != DECODE_ERROR_NOERROR)
|
||||
if (dc.state == DECODE_STATE_STOP ||
|
||||
dc.error != DECODE_ERROR_NOERROR)
|
||||
return NULL;
|
||||
|
||||
return dc->current_song;
|
||||
return dc.current_song;
|
||||
}
|
||||
|
||||
void dc_command_wait(Notify *notify);
|
||||
|
@ -19,6 +19,7 @@
|
||||
|
||||
#include "decoder_internal.h"
|
||||
#include "decoder_list.h"
|
||||
#include "decode.h"
|
||||
#include "audio.h"
|
||||
|
||||
#include "utils.h"
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "replayGain.h"
|
||||
#include "tag.h"
|
||||
#include "playerData.h"
|
||||
#include "decode.h"
|
||||
|
||||
|
||||
/* valid values for streamTypes in the InputPlugin struct: */
|
||||
|
@ -17,7 +17,8 @@
|
||||
*/
|
||||
|
||||
#include "decode.h"
|
||||
#include "playerData.h"
|
||||
|
||||
struct decoder_control dc;
|
||||
|
||||
void dc_command_wait(Notify *notify)
|
||||
{
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "conf.h"
|
||||
#include "path.h"
|
||||
#include "playerData.h"
|
||||
#include "decode.h"
|
||||
#include "stats.h"
|
||||
#include "sig_handlers.h"
|
||||
#include "audio.h"
|
||||
|
@ -17,6 +17,7 @@
|
||||
*/
|
||||
|
||||
#include "playerData.h"
|
||||
#include "decode.h"
|
||||
#include "conf.h"
|
||||
#include "log.h"
|
||||
#include "utils.h"
|
||||
@ -26,7 +27,6 @@
|
||||
|
||||
unsigned int buffered_before_play;
|
||||
PlayerControl pc;
|
||||
DecoderControl dc;
|
||||
OutputBuffer ob;
|
||||
|
||||
void initPlayerData(void)
|
||||
|
@ -20,12 +20,10 @@
|
||||
#define PLAYER_DATA_H
|
||||
|
||||
#include "player.h"
|
||||
#include "decode.h"
|
||||
#include "outputBuffer.h"
|
||||
|
||||
extern unsigned int buffered_before_play;
|
||||
extern PlayerControl pc;
|
||||
extern DecoderControl dc;
|
||||
extern OutputBuffer ob;
|
||||
|
||||
void initPlayerData(void);
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
#include "player_thread.h"
|
||||
#include "playerData.h"
|
||||
#include "decode.h"
|
||||
#include "audio.h"
|
||||
#include "pcm_utils.h"
|
||||
#include "path.h"
|
||||
@ -65,7 +66,7 @@ static int decodeSeek(int *decodeWaitedOn, int *next)
|
||||
int ret = -1;
|
||||
double where;
|
||||
|
||||
if (decoder_current_song(&dc) != pc.next_song) {
|
||||
if (decoder_current_song() != pc.next_song) {
|
||||
dc_stop(&pc.notify);
|
||||
*next = -1;
|
||||
ob_clear();
|
||||
@ -224,7 +225,7 @@ static void do_play(void)
|
||||
pc.error = PLAYER_ERROR_FILE;
|
||||
break;
|
||||
}
|
||||
else if (!decoder_is_starting(&dc)) {
|
||||
else if (!decoder_is_starting()) {
|
||||
/* the decoder is ready and ok */
|
||||
decodeWaitedOn = 0;
|
||||
if(openAudioDevice(&(ob.audioFormat))<0) {
|
||||
@ -256,7 +257,7 @@ static void do_play(void)
|
||||
}
|
||||
}
|
||||
|
||||
if (decoder_is_idle(&dc) &&
|
||||
if (decoder_is_idle() &&
|
||||
pc.queueState == PLAYER_QUEUE_FULL &&
|
||||
pc.queueLockState == PLAYER_QUEUE_UNLOCKED) {
|
||||
/* the decoder has finished the current song;
|
||||
@ -267,7 +268,7 @@ static void do_play(void)
|
||||
wakeup_main_task();
|
||||
}
|
||||
if (next >= 0 && do_xfade == XFADE_UNKNOWN &&
|
||||
!decoder_is_starting(&dc)) {
|
||||
!decoder_is_starting()) {
|
||||
/* enable cross fading in this song? if yes,
|
||||
calculate how many chunks will be required
|
||||
for it */
|
||||
@ -313,7 +314,7 @@ static void do_play(void)
|
||||
} else {
|
||||
/* there are not enough
|
||||
decoded chunks yet */
|
||||
if (decoder_is_idle(&dc)) {
|
||||
if (decoder_is_idle()) {
|
||||
/* the decoder isn't
|
||||
running, abort
|
||||
cross fading */
|
||||
@ -361,7 +362,7 @@ static void do_play(void)
|
||||
|
||||
pc.queueState = PLAYER_QUEUE_EMPTY;
|
||||
wakeup_main_task();
|
||||
} else if (decoder_is_idle(&dc)) {
|
||||
} else if (decoder_is_idle()) {
|
||||
break;
|
||||
} else {
|
||||
/*DEBUG("waiting for decoded audio, play silence\n");*/
|
||||
|
Loading…
Reference in New Issue
Block a user