summaryrefslogtreecommitdiff
path: root/src/libsink/desktop.h
blob: ab0e4183c92ca23fcf16c8c25069500cbfcdbce1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once

#include <al/types.h>
#include <al/str.h>
#include <nnwt/event_loop.h>

#include "../screen/screen.h"
#include "../render/renderer.h"
#include "../mixer/mixer.h"
#include "../libsink/sink.h"

struct camu_desktop {
    struct nn_event_loop *loop;
    u32 should_quit;
    struct camu_screen scr;
    struct camu_renderer *renderer;
    struct camu_mixer mixer;
    struct camu_sink sink;
    void (*exit_callback)(void *, struct camu_desktop *);
    void *userdata;
};

bool camu_desktop_open(struct camu_desktop *c, char *window_name);
bool camu_desktop_connect(struct camu_desktop *c, str *name, struct nn_event_loop *loop, u8 type, str *addr, u16 port);
bool camu_desktop_tick(struct camu_desktop *c);
void camu_desktop_stop(struct camu_desktop *c);
void camu_desktop_free(struct camu_desktop *c);