summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/examples/media-session.c41
1 files changed, 9 insertions, 32 deletions
diff --git a/src/examples/media-session.c b/src/examples/media-session.c
index 02084178..093e90e5 100644
--- a/src/examples/media-session.c
+++ b/src/examples/media-session.c
@@ -121,16 +121,13 @@ struct node {
enum pw_direction direction;
#define NODE_TYPE_UNKNOWN 0
#define NODE_TYPE_STREAM 1
-#define NODE_TYPE_DSP 2
-#define NODE_TYPE_DEVICE 3
+#define NODE_TYPE_DEVICE 2
uint32_t type;
char *media;
uint32_t media_type;
uint32_t media_subtype;
struct spa_audio_info_raw format;
-
- struct spa_audio_info_raw profile_format;
};
struct port {
@@ -255,13 +252,6 @@ static int on_node_idle(struct impl *impl, struct node *node)
return 0;
switch (node->type) {
- case NODE_TYPE_DSP:
- pw_log_debug(NAME" %p: dsp idle for session %d", impl, sess->id);
- sess->busy = false;
- sess->exclusive = false;
- add_idle_timeout(sess);
- break;
-
case NODE_TYPE_DEVICE:
pw_log_debug(NAME" %p: device idle for session %d", impl, sess->id);
sess->busy = false;
@@ -282,11 +272,6 @@ static int on_node_running(struct impl *impl, struct node *node)
return 0;
switch (node->type) {
- case NODE_TYPE_DSP:
- pw_log_debug(NAME" %p: dsp running for session %d", impl, sess->id);
- remove_idle_timeout(sess);
- break;
-
case NODE_TYPE_DEVICE:
pw_log_debug(NAME" %p: device running or session %d", impl, sess->id);
remove_idle_timeout(sess);
@@ -340,6 +325,7 @@ static void node_event_param(void *object, int seq,
return;
spa_pod_object_fixate((struct spa_pod_object*)param);
+ spa_debug_pod(2, NULL, param);
if (spa_format_audio_raw_parse(param, &info) < 0)
goto error;
@@ -398,8 +384,6 @@ static void node_proxy_destroy(void *data)
}
if (n->manager) {
switch (n->type) {
- case NODE_TYPE_DSP:
- break;
case NODE_TYPE_DEVICE:
remove_session(impl, n->manager);
n->manager = NULL;
@@ -484,11 +468,8 @@ handle_node(struct impl *impl, uint32_t id, uint32_t parent_id,
direction = PW_DIRECTION_OUTPUT;
else if (strcmp(media_class, "Source") == 0)
direction = PW_DIRECTION_INPUT;
- else {
- if (strstr(media_class, "DSP/") == media_class)
- node->type = NODE_TYPE_DSP;
+ else
return 0;
- }
sess = calloc(1, sizeof(struct session));
sess->impl = impl;
@@ -616,8 +597,6 @@ handle_port(struct impl *impl, uint32_t id, uint32_t parent_id, uint32_t type,
if (props != NULL && (str = spa_dict_lookup(props, PW_KEY_FORMAT_DSP)) != NULL)
port->flags |= PORT_FLAG_DSP;
- if (node->type == NODE_TYPE_DSP && !(port->flags & PORT_FLAG_DSP))
- port->flags |= PORT_FLAG_SKIP;
pw_proxy_add_listener(p, &port->obj.listener, &port_proxy_events, port);
pw_proxy_add_object_listener(p, &port->listener, &port_events, port);
@@ -917,7 +896,7 @@ static int rescan_node(struct impl *impl, struct node *node)
char buf[1024];
int n_links = 0;
- if (node->type == NODE_TYPE_DSP || node->type == NODE_TYPE_DEVICE)
+ if (node->type == NODE_TYPE_DEVICE)
return 0;
if (node->session != NULL)
@@ -1094,19 +1073,17 @@ static int rescan_node(struct impl *impl, struct node *node)
if (!exclusive) {
do_link_profile:
- audio_info = peer->profile_format;
+ audio_info = peer->format;
if (direction == PW_DIRECTION_INPUT)
- audio_info.channels = SPA_MIN(peer->format.channels, node->format.channels);
+ audio_info.channels = SPA_MIN(audio_info.channels, node->format.channels);
else
- audio_info.channels = SPA_MAX(peer->format.channels, node->format.channels);
+ audio_info.channels = SPA_MAX(audio_info.channels, node->format.channels);
- pw_log_debug(NAME" %p: channels: %d %d -> %d", impl,
- peer->format.channels, node->format.channels,
- audio_info.channels);
+ pw_log_debug(NAME" %p: channels: %d -> %d", impl,
+ node->format.channels, audio_info.channels);
audio_info.rate = DEFAULT_SAMPLERATE;
- node->profile_format = audio_info;
spa_pod_builder_init(&b, buf, sizeof(buf));
param = spa_format_audio_raw_build(&b, SPA_PARAM_Format, &audio_info);