aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/decode.h26
-rw-r--r--src/decoder_api.c1
-rw-r--r--src/decoder_api.h1
-rw-r--r--src/decoder_control.c3
-rw-r--r--src/main.c1
-rw-r--r--src/playerData.c2
-rw-r--r--src/playerData.h2
-rw-r--r--src/player_thread.c13
8 files changed, 27 insertions, 22 deletions
diff --git a/src/decode.h b/src/decode.h
index ba6193a9..9922cd81 100644
--- a/src/decode.h
+++ b/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);
diff --git a/src/decoder_api.c b/src/decoder_api.c
index 360df282..6d8ce087 100644
--- a/src/decoder_api.c
+++ b/src/decoder_api.c
@@ -19,6 +19,7 @@
#include "decoder_internal.h"
#include "decoder_list.h"
+#include "decode.h"
#include "audio.h"
#include "utils.h"
diff --git a/src/decoder_api.h b/src/decoder_api.h
index 7a77bc93..9c998f0a 100644
--- a/src/decoder_api.h
+++ b/src/decoder_api.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: */
diff --git a/src/decoder_control.c b/src/decoder_control.c
index 1c92ba52..7fc04de7 100644
--- a/src/decoder_control.c
+++ b/src/decoder_control.c
@@ -17,7 +17,8 @@
*/
#include "decode.h"
-#include "playerData.h"
+
+struct decoder_control dc;
void dc_command_wait(Notify *notify)
{
diff --git a/src/main.c b/src/main.c
index 53b204e7..2d9f6239 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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"
diff --git a/src/playerData.c b/src/playerData.c
index 441fe883..81c6f7fe 100644
--- a/src/playerData.c
+++ b/src/playerData.c
@@ -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)
diff --git a/src/playerData.h b/src/playerData.h
index 0695c95e..81b80cf7 100644
--- a/src/playerData.h
+++ b/src/playerData.h
@@ -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);
diff --git a/src/player_thread.c b/src/player_thread.c
index 482b9d4e..ab7074ad 100644
--- a/src/player_thread.c
+++ b/src/player_thread.c
@@ -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");*/