#include <pulse/pulseaudio.h>
+#define SET_STRING(_field, _val) do { if (!_field || strcmp(_field, _val)) { xfree(_field); _field = xstrdup(_val); } } while (0)
+
/* ursary.c */
void schedule_update(void);
cnode n;
int idx;
char *name;
- uns channels;
- uns volume;
- uns base_volume;
+ uint channels;
+ uint volume;
+ uint base_volume;
int mute;
};
char *name;
int client_idx;
int sink_idx;
- uns channels;
- uns volume;
- uns mute;
+ uint channels;
+ uint volume;
+ uint mute;
int noct_client_idx; // Used by the high-level logic below
};
extern struct pa_mainloop_api pmain_api;
void pmain_init(void);
+
+/* mpd.c */
+
+enum mpd_state {
+ MPD_OFFLINE,
+ MPD_CONNECTING,
+ MPD_WAIT_GREETING,
+ MPD_ONLINE,
+};
+
+extern enum mpd_state mpd_state;
+
+void mpd_init(void);
+const char *mpd_get_player_state(void);
+void mpd_play(void);
+void mpd_stop(void);
+void mpd_pause(int arg);