summaryrefslogtreecommitdiff
path: root/src/liana/handlers/handler.h
blob: 48fcef3d9384c13d40b114abdf2c04c0292ed8c6 (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
28
29
30
31
32
33
34
#pragma once

#include <nnwt/packet.h>

#include "../../cache/handle.h"
#include "../../codec/codec.h"

enum {
    LIANA_PACKET_DATA = 0,
    LIANA_PACKET_EOF,
    LIANA_PACKET_ERROR
};

struct lia_server_handler {
    bool (*init)(struct lia_server_handler *, struct cch_handle *);
    void (*write_info)(struct lia_server_handler *, struct nn_packet *);
    void (*subscribe)(struct lia_server_handler *, u32);
    u64 (*get_duration)(struct lia_server_handler *);
    bool (*seek)(struct lia_server_handler *, u64);
    void (*step)(struct lia_server_handler *);
    void (*write_packet)(struct lia_server_handler *, struct nn_packet *);
    void (*free)(struct lia_server_handler **);
    s32 status;
};

struct lia_client_handler {
    bool (*init)(struct lia_client_handler *, struct camu_renderer *, struct camu_codec_stream *);
    bool (*handle_packet)(struct lia_client_handler *, struct nn_packet *);
    void (*flush)(struct lia_client_handler *);
    void (*free)(struct lia_client_handler **);
    struct camu_codec_stream *stream;
    void (*callback)(void *, u8, struct camu_codec_stream *stream, void *);
    void *userdata;
};