Now that "dc" is available here, we don't have to pass it to
decoder_is_idle() and decoder_is_starting() anymore.
---

 src/decode.h          |   26 ++++++++++++++------------
 src/decoder_api.c     |    1 +
 src/decoder_api.h     |    1 +
 src/decoder_control.c |    3 ++-
 src/main.c            |    1 +
 src/playerData.c      |    2 +-
 src/playerData.h      |    2 --
 src/player_thread.c   |   13 +++++++------
 8 files changed, 27 insertions(+), 22 deletions(-)

diff --git a/src/decode.h b/src/decode.h
index ba6193a..9922cd8 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 360df28..6d8ce08 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 7a77bc9..9c998f0 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 1c92ba5..7fc04de 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 53b204e..2d9f623 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 441fe88..81c6f7f 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 0695c95..81b80cf 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 482b9d4..ab7074a 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");*/


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team

Reply via email to