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);
}
|