player_control: removed the global variable "pc"

Allocate a player_control object where needed, and pass it around.
Each "client" object is associated with a "player_control" instance.

This prepares multi-player support.
This commit is contained in:
Max Kellermann
2009-11-03 21:08:48 +01:00
parent 715844fd08
commit b6995ca011
42 changed files with 753 additions and 583 deletions

View File

@@ -27,6 +27,8 @@
#include <assert.h>
struct player_control;
enum decoder_state {
DECODE_STATE_STOP = 0,
DECODE_STATE_START,
@@ -42,6 +44,12 @@ enum decoder_state {
};
struct decoder_control {
/**
* The player thread which calls us. This pointer is used to
* signal command completion.
*/
struct player_control *player_control;
/** the handle of the decoder thread, or NULL if the decoder
thread isn't running */
GThread *thread;
@@ -98,7 +106,7 @@ struct decoder_control {
};
void
dc_init(struct decoder_control *dc);
dc_init(struct decoder_control *dc, struct player_control *pc);
void
dc_deinit(struct decoder_control *dc);