diff options
Diffstat (limited to 'src/seq.c')
-rw-r--r-- | src/seq.c | 60 |
1 files changed, 60 insertions, 0 deletions
@@ -139,6 +139,56 @@ error_malloc_ev: return -1; } +int xas_seq_add_set_heading(xas_seq *seq, + xas_spatial_object *object, + struct timeval timestamp, + xas_spatial_coord heading) { + xas_seq_event *ev; + + if ((ev = malloc(sizeof(*ev))) == NULL) { + goto error_malloc_ev; + } + + ev->type = XAS_SEQ_EVENT_SET_HEADING; + ev->objtype = XAS_SEQ_OBJECT_ANY; + ev->object = object; + ev->timestamp = timestamp; + ev->heading = heading; + ev->next = NULL; + + add_event(seq, ev); + + return 0; + +error_malloc_ev: + return -1; +} + +int xas_seq_add_set_speed(xas_seq *seq, + xas_spatial_object *object, + struct timeval timestamp, + float speed) { + xas_seq_event *ev; + + if ((ev = malloc(sizeof(*ev))) == NULL) { + goto error_malloc_ev; + } + + ev->type = XAS_SEQ_EVENT_SET_SPEED; + ev->objtype = XAS_SEQ_OBJECT_ANY; + ev->object = object; + ev->timestamp = timestamp; + ev->speed = speed; + ev->next = NULL; + + add_event(seq, ev); + + return 0; + +error_malloc_ev: + return -1; +} + int xas_seq_add_set_gain(xas_seq *seq, xas_spatial_object *object, struct timeval timestamp, @@ -254,6 +304,16 @@ static int event_trigger(xas_spatial_scene *scene, xas_seq_event *ev) { break; + case XAS_SEQ_EVENT_SET_HEADING: + ev->object->heading = ev->heading; + + break; + + case XAS_SEQ_EVENT_SET_SPEED: + ev->object->speed = ev->speed; + + break; + case XAS_SEQ_EVENT_SET_GAIN: xas_object_set_gain(ev->object->ctx, ev->gain); |