summaryrefslogtreecommitdiff
path: root/src/libsink
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2025-02-19 17:38:59 -0500
committerAndrew Opalach <andrew@akon.city> 2025-02-19 17:45:26 -0500
commit152bf64d7da624dd6401e6529300bfc4b817dbbe (patch)
tree1b1b138eed8a9ac4ea560b514d08f2da028b441d /src/libsink
parent2bee71a7e032c0972418e324bb1d7e6b02330b18 (diff)
downloadcamu-152bf64d7da624dd6401e6529300bfc4b817dbbe.tar.gz
camu-152bf64d7da624dd6401e6529300bfc4b817dbbe.tar.bz2
camu-152bf64d7da624dd6401e6529300bfc4b817dbbe.zip
Small fixes and update deps
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/libsink')
-rw-r--r--src/libsink/sink.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/libsink/sink.c b/src/libsink/sink.c
index 0eca9f5..4aa1d51 100644
--- a/src/libsink/sink.c
+++ b/src/libsink/sink.c
@@ -308,6 +308,8 @@ static void handle_sink_cmd(struct camu_sink *sink, struct camu_sink_cmd *cmd)
if (sink->video.state == SINK_PLAYING) {
sink->callback(sink->userdata, CAMU_SINK_STOP, CAMU_SINK_VIDEO, NULL);
sink->video.state = SINK_PAUSED;
+ } else {
+ sink->callback(sink->userdata, CAMU_SINK_REFRESH_VIDEO, 0, NULL);
}
break;
#endif
@@ -743,7 +745,7 @@ static void switch_to(struct camu_sink *sink, struct camu_sink_entry *target)
sink->current = target;
sink->current->audio.ignore_paused = false;
if (!sink->current->buffers_paused) {
- camu_audio_buffer_unpause(&sink->current->audio.buf);
+ camu_audio_buffer_resync(&sink->current->audio.buf);
}
}
@@ -1438,7 +1440,7 @@ static bool set_command_callback(void *userdata, struct nn_rpc_connection *conn,
if (entry != current) {
switch_to(sink, entry);
} else {
- camu_audio_buffer_unpause(&entry->audio.buf);
+ camu_audio_buffer_resync(&entry->audio.buf);
}
camu_clock_resume(&entry->clock, at);
break;
@@ -1471,7 +1473,7 @@ static bool set_command_callback(void *userdata, struct nn_rpc_connection *conn,
sink->target = entry;
} else {
sink->target = NULL;
- camu_audio_buffer_unpause(&entry->audio.buf);
+ camu_audio_buffer_resync(&entry->audio.buf);
}
camu_clock_pause(&prev_target->clock, at);
} else {
@@ -1528,7 +1530,7 @@ static bool pause_command_callback(void *userdata, struct nn_rpc_connection *con
entry->buffers_paused = false;
camu_clock_resume(&entry->clock, at);
if (!AUDIO_EMPTY(entry)) {
- camu_audio_buffer_unpause(&entry->audio.buf);
+ camu_audio_buffer_resync(&entry->audio.buf);
queue_cmd(entry->sink, (struct camu_sink_cmd){
.op = START,
.value.i = CAMU_SINK_AUDIO