summaryrefslogtreecommitdiff
path: root/src/server/common.h
blob: 82d5f3d98b2f018c6edb946062b5b138a6ccee13 (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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#pragma once

#include <al/str.h>

#define CAMU_PORT 14356
#define CAMU_MULTIPLEX_RPC     0x53
#define CAMU_MULTIPLEX_CONTROL 0x17
#define CAMU_MULTIPLEX_LIANA   0x85

AL_STATIC_ASSERT(rpc_not_head,     CAMU_MULTIPLEX_RPC,     !=, 0x48); // HEAD
AL_STATIC_ASSERT(rpc_not_get,      CAMU_MULTIPLEX_RPC,     !=, 0x47); // GET
AL_STATIC_ASSERT(rpc_not_post,     CAMU_MULTIPLEX_RPC,     !=, 0x50); // POST
AL_STATIC_ASSERT(control_not_head, CAMU_MULTIPLEX_CONTROL, !=, 0x48);
AL_STATIC_ASSERT(control_not_get,  CAMU_MULTIPLEX_CONTROL, !=, 0x47);
AL_STATIC_ASSERT(control_not_post, CAMU_MULTIPLEX_CONTROL, !=, 0x50);
AL_STATIC_ASSERT(liana_not_head,   CAMU_MULTIPLEX_LIANA,   !=, 0x48);
AL_STATIC_ASSERT(liana_not_get,    CAMU_MULTIPLEX_LIANA,   !=, 0x47);
AL_STATIC_ASSERT(liana_not_post,   CAMU_MULTIPLEX_LIANA,   !=, 0x50);

//#define CAMU_DIRECT_MODE

enum {
    CAMU_NODE = 0,
    CAMU_CLIENT,
    CAMU_SINK
};

enum {
    CAMU_SERVER_IDENTIFY = 0,
    CAMU_SERVER_CLIENT_COMMAND,
    CAMU_SERVER_LIST_ACTION
};

enum {
    CAMU_CLIENT_CREATE_LIST = 0,
    CAMU_CLIENT_TOGGLE_SINK,
    CAMU_CLIENT_CREATE_SEARCH,
    CAMU_CLIENT_GET_PAGE,
    CAMU_CLIENT_REQUEST_VISUAL_DATA
};

enum {
    CAMU_LIST_ADD = 0,
    CAMU_LIST_SKIP,
    CAMU_LIST_SKIPTO,
    CAMU_LIST_TOGGLE_PAUSE,
    CAMU_LIST_SEEK,
    CAMU_LIST_SHUFFLE,
    CAMU_LIST_UNSET,
    CAMU_LIST_END
};

static inline bool camu_is_http_url(str *s, u32 i)
{
    return (al_str_cmp(s, &al_str_c("https://"), i, 8) == 0) ||
        (al_str_cmp(s, &al_str_c("http://"), i, 7) == 0);
}