mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-06 13:30:01 -05:00
Implement subscription with a signal
Use a signal for subscription events Work on handling OOM errors and other errors.
This commit is contained in:
parent
1b66bbcffd
commit
85d375e4bb
32 changed files with 531 additions and 176 deletions
|
|
@ -173,19 +173,25 @@ pinos_stream_new (PinosContext *context,
|
|||
PinosStream *this;
|
||||
|
||||
impl = calloc (1, sizeof (PinosStreamImpl));
|
||||
if (impl == NULL)
|
||||
return NULL;
|
||||
|
||||
this = &impl->this;
|
||||
pinos_log_debug ("stream %p: new", impl);
|
||||
|
||||
this->context = context;
|
||||
this->name = strdup (name);
|
||||
|
||||
if (props == NULL) {
|
||||
props = pinos_properties_new ("media.name", name, NULL);
|
||||
} else if (!pinos_properties_get (props, "media.name")) {
|
||||
pinos_properties_set (props, "media.name", name);
|
||||
}
|
||||
if (props == NULL)
|
||||
goto no_mem;
|
||||
|
||||
this->properties = props;
|
||||
|
||||
this->context = context;
|
||||
this->name = strdup (name);
|
||||
|
||||
pinos_signal_init (&this->destroy_signal);
|
||||
pinos_signal_init (&this->state_changed);
|
||||
pinos_signal_init (&this->format_changed);
|
||||
|
|
@ -206,6 +212,10 @@ pinos_stream_new (PinosContext *context,
|
|||
spa_list_insert (&context->stream_list, &this->link);
|
||||
|
||||
return this;
|
||||
|
||||
no_mem:
|
||||
free (impl);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue