You need to sign in or sign up before continuing.
Commit 1c03c721 authored by Max Kellermann's avatar Max Kellermann

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.
parent 9521c92f
......@@ -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");*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment