diff options
Diffstat (limited to 'src/sink')
| -rw-r--r-- | src/sink/desktop.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/sink/desktop.c b/src/sink/desktop.c index cb5e7c6..6fe6001 100644 --- a/src/sink/desktop.c +++ b/src/sink/desktop.c @@ -17,12 +17,20 @@ static u8 sink_callback(void *userdata, u8 op, u8 type, void *opaque) { struct camu_desktop *c = (struct camu_desktop *)userdata; + + if (op == CAMU_SINK_MOCK_CLOSE) { + c->should_quit = 1; + camu_screen_wake(&c->scr); + return CAMU_SINK_OK; + } + if (!camu_default_sink_callback(&c->scr, &c->mixer, op, type, opaque)) { camu_sink_close(&c->sink); if (c->exit_callback) { c->exit_callback(c->userdata, c); } } + return CAMU_SINK_OK; } @@ -108,7 +116,7 @@ bool camu_desktop_connect(struct camu_desktop *c, u8 type, struct nn_event_loop al_str_from(&c->sink.default_list, "default"); c->sink.callback = sink_callback; c->sink.userdata = c; - return camu_sink_connect(&c->sink, type, addr, port, al_str_c("desktop")); + return camu_sink_connect(&c->sink, type, addr, port, &al_str_c("desktop")); } bool camu_desktop_tick(struct camu_desktop *c) |