6#ifdef USE_STB_IMAGE_WRITE
7#define STB_IMAGE_WRITE_IMPLEMENTATION
8#include <stb_image_write.h>
10static void WriteImage(
const char* filename,
const uint8_t* data,
11 const uint32_t width,
const uint32_t height)
13 stbi_write_png(filename, width, height, 3, data, width * 3);
50 puts(
"Connecting to server...");
53 puts(
"Conencted to server");
57 puts(
"Failed to connect to server");
60 puts(
"Failed to request certificate");
64 puts(
"Conencted to server");
68 puts(
"Failed to connect to server");
70 std::this_thread::sleep_for(std::chrono::seconds(1));
74static bool RequestRooms(
context_s& context)
79static bool JoinRoom(
context_s& context,
const char *roomName)
95 puts(
"Server authenticated your connection");
99 printf(
"Server failed(%d) to authenticate your connection", response);
104 reinterpret_cast<context_s*
>(opaque)->serverState = state;
113 printf(
"Room(%s) with ID(%d) announced\n", roomName, roomID);
117 const void* optionalData,
const uint32_t optionalDataSize,
122 if (optionalData && optionalDataSize ==
sizeof(uint16_t)) {
123 context->
clientRoomID = *
reinterpret_cast<const uint16_t*
>(optionalData);
125 printf(
"Joined room and got asigned ID(%d)\n", context->
clientRoomID);
129 puts(
"Failed to join room");
133 printf(
"Failed(%d) to join room on command(%d)\n", response, request);
141 printf(
"Client(%d) with name(%s) added to room\n", clientID, userName);
145 printf(
"Client(%d) removed from room\n", clientID);
149 puts(
"Video mode changed");
153 puts(
"Video options changed");
157#ifdef USE_STB_IMAGE_WRITE
163 const uint32_t dataSize,
void* opaque ) {
177 const uint8_t* data,
const uint32_t size,
179 printf(
"Room(%d) preview image received with format(%d) and size(%d)\n", roomID, imageFormat, size);
183 switch (context.
state) {
196 puts(
"Server authenticated your connection");
200 puts(
"Server failed to authenticate your connection");
201 std::this_thread::sleep_for(std::chrono::seconds(5));
219 std::this_thread::sleep_for(std::chrono::milliseconds(100));
@ RoomJoinedStateReceivedList
@ StateRequestRoomsPending
@ StateRequestJoinRoomPending
@ RequestRoomListSubscribe
int DeviceCapabilityValue
@ AuthenticationResponseSuccess
@ ServerStateAuthenticateError
@ ServerStateConnectedAndAuthenticated
@ DeviceCapabilityDisplay
uint8_t UserCapabilityValue
void SetEncodedStreamCallback(EncodedStreamFunc func, void *opaque=nullptr)
Encoded Frame or stream callback.
void SetRoomClientRemovedCallback(RoomClientRemovedFunc func, void *opaque=nullptr)
Server room client removed callback.
void SetRoomPreviewImageCallback(RoomPreviewImageFunc func, void *opaque=nullptr)
Room Preview Image callback.
void SetAuthenticateResponseCallback(AuthenticateResponseFunc func, void *opaque=nullptr)
SetAuthenticateResponseCallback callback.
Status SendRequestStr(const Request request, const char *str, const char *option=nullptr)
Sends request string to ASMIRA server.
void SetVideoModeCallback(VideoModeFunc func, void *opaque=nullptr)
Video Mode callback.
void SetFrameCallback(FrameFunc func, void *opaque=nullptr)
Video/Photo Frame callback.
void SetServerStateCallback(ServerStateFunc func, void *opaque=nullptr)
Server state callback.
void SetRoomResponseCallback(RoomResponseFunc func, void *opaque=nullptr)
Server room response callback.
Status SendRequest(const Request request)
Sends request to ASMIRA server.
Status RequestCertificate(const char *address, const uint16_t port, const char *userName, const char *password, CertificateState *certificateStateOut, certificate_t *certificateOut, const int timeout=3000)
Request certificate from ASMIRA server.
Status ConnectSecured(const char *ip, const uint16_t port, const uint32_t timeout, const bool highLatency, const char *username, const char *password, const UserCapabilityValue userCapability, const DeviceCapabilityValue deviceCapability, const char *certificate, const char *displayName=nullptr)
Connect to ASMIRA server.
Status Connect(const char *ip, const uint16_t port, const uint32_t timeout, const bool highLatency, const char *username, const char *password, const UserCapabilityValue userCapability, const DeviceCapabilityValue deviceCapability, const char *displayName=nullptr)
Connect to ASMIRA server.
void SetRoomClientAddedCallback(RoomClientAddedFunc func, void *opaque=nullptr)
Server room client added callback.
void SetRoomAnnounceCallback(RoomAnnounceFunc func, void *opaque=nullptr)
Server room announce callback.
void SetVideoOptionsCallback(VideoOptionsFunc func, void *opaque=nullptr)
Video Options callback.
asdk::ServerState serverState
RoomJoinedState roomJoinedState