More hacking

Add beginnings of Xv plugin
Add Poll event
Clean up props handling
V4l2 add beginnings of poll event
This commit is contained in:
Wim Taymans 2016-07-07 09:30:18 +02:00
parent a1a27328e2
commit a31eb56663
14 changed files with 842 additions and 79 deletions

View file

@ -47,7 +47,7 @@ struct _MixerBuffer {
typedef struct {
bool valid;
SpaAudioMixerPortProps props;
SpaAudioMixerPortProps props[2];
SpaPortInfo info;
SpaPortStatus status;
SpaBuffer *buffer;
@ -60,8 +60,7 @@ typedef struct {
struct _SpaAudioMixer {
SpaHandle handle;
SpaAudioMixerProps props;
SpaAudioMixerProps tmp_props;
SpaAudioMixerProps props[2];
SpaEventCallback event_cb;
void *user_data;
@ -98,8 +97,8 @@ spa_audiomixer_node_get_props (SpaHandle *handle,
if (handle == NULL || props == NULL)
return SPA_RESULT_INVALID_ARGUMENTS;
memcpy (&this->tmp_props, &this->props, sizeof (this->tmp_props));
*props = &this->tmp_props.props;
memcpy (&this->props[0], &this->props[1], sizeof (this->props[1]));
*props = &this->props[0].props;
return SPA_RESULT_OK;
}
@ -109,7 +108,7 @@ spa_audiomixer_node_set_props (SpaHandle *handle,
const SpaProps *props)
{
SpaAudioMixer *this = (SpaAudioMixer *) handle;
SpaAudioMixerProps *p = &this->props;
SpaAudioMixerProps *p = &this->props[1];
SpaResult res;
if (handle == NULL)
@ -724,11 +723,11 @@ spa_audiomixer_new (void)
handle->get_interface = spa_audiomixer_get_interface;
this = (SpaAudioMixer *) handle;
this->props.props.n_prop_info = PROP_ID_LAST;
this->props.props.prop_info = prop_info;
this->props.props.set_prop = spa_props_generic_set_prop;
this->props.props.get_prop = spa_props_generic_get_prop;
reset_audiomixer_props (&this->props);
this->props[1].props.n_prop_info = PROP_ID_LAST;
this->props[1].props.prop_info = prop_info;
this->props[1].props.set_prop = spa_props_generic_set_prop;
this->props[1].props.get_prop = spa_props_generic_get_prop;
reset_audiomixer_props (&this->props[1]);
this->ports[0].valid = true;
this->ports[0].info.flags = SPA_PORT_INFO_FLAG_CAN_GIVE_BUFFER |