#include <stdio.h>
#include <errno.h>
#include <signal.h>
#include <math.h>
struct data {
int res;
};
static void do_quit(void *userdata, int signal_number)
{
struct data *data = userdata;
}
int main(int argc, char *argv[])
{
struct data data = { 0, };
const char *dev = "hw:0";
if (argc > 1)
dev = argv[1];
NULL), 0);
if (data.core == NULL) {
fprintf(stderr, "can't connect: %m\n");
data.res = -errno;
goto cleanup;
}
"Spa:Pod:Object:Param:Props:live", "false",
NULL);
"spa-node-factory",
"api.alsa.path", dev,
"priority.driver", "1000",
NULL);
"spa-node-factory",
while (true) {
break;
}
"link-factory",
cleanup:
return data.res;
}
void pw_context_destroy(struct pw_context *context)
destroy a context object, all resources except the main_loop will be destroyed
Definition context.c:389
struct pw_context * pw_context_new(struct pw_loop *main_loop, struct pw_properties *props, size_t user_data_size)
Make a new context object for a given main_loop.
Definition context.c:175
struct pw_core * pw_context_connect_self(struct pw_context *context, struct pw_properties *properties, size_t user_data_size)
Connect to a given PipeWire instance.
Definition core.c:443
static void * pw_core_create_object(struct pw_core *core, const char *factory_name, const char *type, uint32_t version, const struct spa_dict *props, size_t user_data_size)
Definition core.h:434
struct pw_impl_module * pw_context_load_module(struct pw_context *context, const char *name, const char *args, struct pw_properties *properties)
Load a module.
Definition impl-module.c:138
#define PW_KEY_LINK_INPUT_NODE
input node id of a link
Definition keys.h:310
#define PW_KEY_CONFIG_NAME
a config file name
Definition keys.h:85
#define PW_KEY_LINK_OUTPUT_NODE
output node id of a link
Definition keys.h:314
#define PW_KEY_NODE_NAME
node name
Definition keys.h:187
#define PW_TYPE_INTERFACE_Link
Definition link.h:37
#define PW_VERSION_LINK
Definition link.h:43
#define pw_loop_iterate(l,...)
Definition loop.h:55
#define pw_loop_add_signal(l,...)
Definition loop.h:65
int pw_main_loop_quit(struct pw_main_loop *loop)
Quit a main loop.
Definition main-loop.c:106
void pw_main_loop_destroy(struct pw_main_loop *loop)
Destroy a loop.
Definition main-loop.c:71
int pw_main_loop_run(struct pw_main_loop *loop)
Run a main loop.
Definition main-loop.c:120
struct pw_main_loop * pw_main_loop_new(const struct spa_dict *props)
Create a new main loop.
Definition main-loop.c:61
struct pw_loop * pw_main_loop_get_loop(struct pw_main_loop *loop)
Get the loop implementation.
Definition main-loop.c:94
#define PW_TYPE_INTERFACE_Node
Definition node.h:35
#define PW_VERSION_NODE
Definition node.h:41
void pw_init(int *argc, char **argv[])
Initialize PipeWire.
Definition pipewire.c:489
void pw_deinit(void)
Deinitialize PipeWire.
Definition pipewire.c:601
void pw_properties_free(struct pw_properties *properties)
Free a properties object.
Definition properties.c:351
struct pw_properties * pw_properties_new(const char *key,...)
Make a new properties object.
Definition properties.c:85
int pw_properties_setf(struct pw_properties *properties, const char *key, const char *format,...)
Set a property value by format.
Definition properties.c:453
void pw_properties_clear(struct pw_properties *properties)
Clear a properties object.
Definition properties.c:264
uint32_t pw_proxy_get_bound_id(struct pw_proxy *proxy)
Get the global id bound to this proxy of SPA_ID_INVALID when not bound to a global.
Definition proxy.c:150
#define SPA_KEY_FACTORY_NAME
the name of a factory
Definition plugin.h:202
#define SPA_KEY_LIBRARY_NAME
the name of a library.
Definition plugin.h:211
#define SPA_NAME_API_ALSA_PCM_SINK
an alsa Node interface for playback PCM
Definition names.h:109
#define SPA_ID_INVALID
Definition defs.h:240
Definition properties.h:33
struct spa_dict dict
dictionary of key/values
Definition properties.h:34