Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mpd
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Иван Мажукин
mpd
Commits
1c03c721
Commit
1c03c721
authored
Aug 26, 2008
by
Max Kellermann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
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
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
27 additions
and
22 deletions
+27
-22
decode.h
src/decode.h
+14
-12
decoder_api.c
src/decoder_api.c
+1
-0
decoder_api.h
src/decoder_api.h
+1
-0
decoder_control.c
src/decoder_control.c
+2
-1
main.c
src/main.c
+1
-0
playerData.c
src/playerData.c
+1
-1
playerData.h
src/playerData.h
+0
-2
player_thread.c
src/player_thread.c
+7
-6
No files found.
src/decode.h
View file @
1c03c721
...
...
@@ -44,7 +44,7 @@ enum decoder_command {
#define DECODE_ERROR_UNKTYPE 10
#define DECODE_ERROR_FILE 20
typedef
struct
_DecoderC
ontrol
{
struct
decoder_c
ontrol
{
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
);
...
...
src/decoder_api.c
View file @
1c03c721
...
...
@@ -19,6 +19,7 @@
#include "decoder_internal.h"
#include "decoder_list.h"
#include "decode.h"
#include "audio.h"
#include "utils.h"
...
...
src/decoder_api.h
View file @
1c03c721
...
...
@@ -30,6 +30,7 @@
#include "replayGain.h"
#include "tag.h"
#include "playerData.h"
#include "decode.h"
/* valid values for streamTypes in the InputPlugin struct: */
...
...
src/decoder_control.c
View file @
1c03c721
...
...
@@ -17,7 +17,8 @@
*/
#include "decode.h"
#include "playerData.h"
struct
decoder_control
dc
;
void
dc_command_wait
(
Notify
*
notify
)
{
...
...
src/main.c
View file @
1c03c721
...
...
@@ -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"
...
...
src/playerData.c
View file @
1c03c721
...
...
@@ -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
)
...
...
src/playerData.h
View file @
1c03c721
...
...
@@ -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
);
...
...
src/player_thread.c
View file @
1c03c721
...
...
@@ -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");*/
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment