#pragma once #include #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); }