char *host;
};
+struct pulse_source {
+ cnode n;
+ int idx;
+ char *name;
+ uint channels;
+ uint volume;
+ uint base_volume;
+ bool mute;
+ bool suspended;
+ char *active_port;
+};
+
struct pulse_sink {
cnode n;
int idx;
int noct_group_idx; // Used by the high-level logic below
};
-extern clist pulse_client_list, pulse_sink_list, pulse_sink_input_list;
+extern clist pulse_client_list, pulse_source_list, pulse_sink_list, pulse_sink_input_list;
void pulse_init(void);
void pulse_dump(void);
bool pulse_is_ready(void);
+struct pulse_source *pulse_source_by_name(const char *name);
+struct pulse_source *pulse_source_by_idx(int idx);
+void pulse_source_set_volume(int idx, pa_cvolume *cvol);
+void pulse_source_set_mute(int idx, bool mute);
+void pulse_source_set_port(int idx, const char *port);
struct pulse_sink *pulse_sink_by_name(const char *name);
struct pulse_sink *pulse_sink_by_idx(int idx);
void pulse_sink_set_volume(int idx, pa_cvolume *cvol);