00001 #ifndef foobrowserhfoo
00002 #define foobrowserhfoo
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <pulse/mainloop-api.h>
00026 #include <pulse/sample.h>
00027 #include <pulse/channelmap.h>
00028 #include <pulse/cdecl.h>
00029
00033 PA_C_DECL_BEGIN
00034
00036 typedef struct pa_browser pa_browser;
00037
00039 typedef enum pa_browse_opcode {
00040 PA_BROWSE_NEW_SERVER = 0,
00041 PA_BROWSE_NEW_SINK,
00042 PA_BROWSE_NEW_SOURCE,
00043 PA_BROWSE_REMOVE_SERVER,
00044 PA_BROWSE_REMOVE_SINK,
00045 PA_BROWSE_REMOVE_SOURCE
00046 } pa_browse_opcode_t;
00047
00048 typedef enum pa_browse_flags {
00049 PA_BROWSE_FOR_SERVERS = 1,
00050 PA_BROWSE_FOR_SINKS = 2,
00051 PA_BROWSE_FOR_SOURCES = 4
00052 } pa_browse_flags_t;
00053
00055 pa_browser *pa_browser_new(pa_mainloop_api *mainloop);
00056
00058 pa_browser *pa_browser_new_full(pa_mainloop_api *mainloop, pa_browse_flags_t flags, const char **error_string);
00059
00061 pa_browser *pa_browser_ref(pa_browser *z);
00062
00064 void pa_browser_unref(pa_browser *z);
00065
00067 typedef struct pa_browse_info {
00068 const char *name;
00070 const char *server;
00071 const char *server_version;
00072 const char *user_name;
00073 const char *fqdn;
00074 const uint32_t *cookie;
00075
00076 const char *device;
00077 const char *description;
00078 const pa_sample_spec *sample_spec;
00079 } pa_browse_info;
00080
00082 typedef void (*pa_browse_cb_t)(pa_browser *z, pa_browse_opcode_t c, const pa_browse_info *i, void *userdata);
00083
00085 void pa_browser_set_callback(pa_browser *z, pa_browse_cb_t cb, void *userdata);
00086
00088 typedef void (*pa_browser_error_cb_t)(pa_browser *z, const char *error_string, void *userdata);
00089
00094 void pa_browser_set_error_callback(pa_browser *z, pa_browser_error_cb_t, void *userdata);
00095
00096 PA_C_DECL_END
00097
00098 #endif