control: clean up some control includes

Remove control from channelmix, it's not used
Add control metadata
Add OSC control type
Improve some docs
This commit is contained in:
Wim Taymans 2019-09-16 15:49:46 +02:00
parent 8b85cc225e
commit 4381e79632
14 changed files with 20 additions and 57 deletions

View file

@ -30,6 +30,7 @@ extern "C" {
#endif
#include <spa/utils/defs.h>
#include <spa/pod/pod.h>
/** \page page_meta Metadata
*
@ -42,6 +43,8 @@ enum spa_meta_type {
SPA_META_VideoDamage,
SPA_META_Bitmap,
SPA_META_Cursor,
SPA_META_Control, /**< metadata contains a spa_pod_sequence
* associated with the data */
SPA_META_LAST, /**< not part of ABI/API */
};
@ -134,6 +137,11 @@ struct spa_meta_cursor {
* struct spa_meta_bitmap at the offset. */
};
/** a timed set of events associated with the buffer */
struct spa_meta_control {
struct spa_pod_sequence sequence;
};
#ifdef __cplusplus
} /* extern "C" */
#endif

View file

@ -39,8 +39,10 @@ extern "C" {
/** Different Control types */
enum spa_control_type {
SPA_CONTROL_Invalid,
SPA_CONTROL_Properties,
SPA_CONTROL_Midi,
SPA_CONTROL_Properties, /**< data contains a SPA_TYPE_OBJECT_Props */
SPA_CONTROL_Midi, /**< data contains a spa_pod_bytes with raw midi data */
SPA_CONTROL_OSC, /**< data contains a spa_pod_bytes with an OSC packet */
SPA_CONTROL_LAST, /**< not part of ABI */
};

View file

@ -41,6 +41,7 @@ static const struct spa_type_info spa_type_control[] = {
{ SPA_CONTROL_Invalid, SPA_TYPE_Int, SPA_TYPE_INFO_CONTROL_BASE "Invalid", NULL },
{ SPA_CONTROL_Properties, SPA_TYPE_Int, SPA_TYPE_INFO_CONTROL_BASE "Properties", NULL },
{ SPA_CONTROL_Midi, SPA_TYPE_Int, SPA_TYPE_INFO_CONTROL_BASE "Midi", NULL },
{ SPA_CONTROL_OSC, SPA_TYPE_Int, SPA_TYPE_INFO_CONTROL_BASE "OSC", NULL },
{ 0, 0, NULL, NULL },
};

View file

@ -46,8 +46,12 @@ enum spa_io_type {
SPA_IO_Range, /**< expected byte range */
SPA_IO_Clock, /**< area to update clock information */
SPA_IO_Latency, /**< latency reporting */
SPA_IO_Control, /**< area for control messages */
SPA_IO_Notify, /**< area for notify messages */
SPA_IO_Control, /**< area for control messages, control messages
* contain an input spa_pod_sequence of timed
* events. */
SPA_IO_Notify, /**< area for notify messages, notify messages
* contain an output spa_pod_sequence of timed
* events to be sent to listeners. */
SPA_IO_Position, /**< position information in the graph */
SPA_IO_RateMatch, /**< rate matching between nodes */
};
@ -104,7 +108,7 @@ struct spa_io_latency {
uint64_t max; /**< max latency */
};
/** control stream */
/** control stream, io area for SPA_IO_Control and SPA_IO_Notify */
struct spa_io_sequence {
struct spa_pod_sequence sequence; /**< sequence of timed events */
};