aboutsummaryrefslogtreecommitdiffstats
path: root/src/output_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/output_internal.h')
-rw-r--r--src/output_internal.h32
1 files changed, 25 insertions, 7 deletions
diff --git a/src/output_internal.h b/src/output_internal.h
index 7102ea5cd..9d975d789 100644
--- a/src/output_internal.h
+++ b/src/output_internal.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2003-2010 The Music Player Daemon Project
+ * Copyright (C) 2003-2011 The Music Player Daemon Project
* http://www.musicpd.org
*
* This program is free software; you can redistribute it and/or modify
@@ -27,6 +27,8 @@
#include <time.h>
+struct config_param;
+
enum audio_output_command {
AO_COMMAND_NONE = 0,
AO_COMMAND_ENABLE,
@@ -64,12 +66,6 @@ struct audio_output {
const struct audio_output_plugin *plugin;
/**
- * The plugin's internal data. It is passed to every plugin
- * method.
- */
- void *data;
-
- /**
* The #mixer object associated with this audio output device.
* May be NULL if none is available, or if software volume is
* configured.
@@ -217,6 +213,12 @@ struct audio_output {
GCond *cond;
/**
+ * The player_control object which "owns" this output. This
+ * object is needed to signal command completion.
+ */
+ struct player_control *player_control;
+
+ /**
* The #music_chunk which is currently being played. All
* chunks before this one may be returned to the
* #music_buffer, because they are not going to be used by
@@ -248,4 +250,20 @@ audio_output_command_is_finished(const struct audio_output *ao)
return ao->command == AO_COMMAND_NONE;
}
+struct audio_output *
+audio_output_new(const struct config_param *param,
+ struct player_control *pc,
+ GError **error_r);
+
+bool
+ao_base_init(struct audio_output *ao,
+ const struct audio_output_plugin *plugin,
+ const struct config_param *param, GError **error_r);
+
+void
+ao_base_finish(struct audio_output *ao);
+
+void
+audio_output_free(struct audio_output *ao);
+
#endif