libobs: Buffer scene item visibility actions

This buffers scene item visibility actions so that if
obs_sceneitem_set_visible to true or false, that it will ensure that the
action is mapped to the exact sample point time in which
obs_sceneitem_set_visible is called.  Mapping to the exact sample point
isn't necessary, but it's a nice thing to have.
This commit is contained in:
jp9000
2015-12-25 01:01:12 -08:00
parent 247a42c2a1
commit 3c68196c5c
2 changed files with 215 additions and 26 deletions

View File

@@ -23,12 +23,19 @@
/* how obs scene! */
struct item_action {
bool visible;
uint64_t timestamp;
};
struct obs_scene_item {
volatile long ref;
volatile bool removed;
struct obs_scene *parent;
struct obs_source *source;
volatile long active_refs;
bool user_visible;
bool visible;
bool selected;
@@ -51,6 +58,9 @@ struct obs_scene_item {
obs_hotkey_pair_id toggle_visibility;
pthread_mutex_t actions_mutex;
DARRAY(struct item_action) audio_actions;
/* would do **prev_next, but not really great for reordering */
struct obs_scene_item *prev;
struct obs_scene_item *next;