enum {
CURRENT_STATUS_MAINMENU,
CURRENT_STATUS_TERMINATE,
+ CURRENT_STATUS_QUIT,
/* webrtc common */
- CURRENT_STATUS_SET_STUN_SERVER = TEST_MENU_WEBRTC_COMMON | 0x01,
- CURRENT_STATUS_ADD_TURN_SERVER = TEST_MENU_WEBRTC_COMMON | 0x02,
- CURRENT_STATUS_SET_BUNDLE_POLICY = TEST_MENU_WEBRTC_COMMON | 0x03,
- CURRENT_STATUS_SET_ICE_TRANSPORT_POLICY = TEST_MENU_WEBRTC_COMMON | 0x04,
- CURRENT_STATUS_SET_LOCAL_DESCRIPTION = TEST_MENU_WEBRTC_COMMON | 0x05,
- CURRENT_STATUS_SET_RTP_PACKET_DROP_PROBABILITY = TEST_MENU_WEBRTC_COMMON | 0x06,
- CURRENT_STATUS_GET_RTP_PACKET_DROP_PROBABILITY = TEST_MENU_WEBRTC_COMMON | 0x07,
+ CURRENT_STATUS_CREATE = TEST_MENU_WEBRTC_COMMON | 0x01,
+ CURRENT_STATUS_START = TEST_MENU_WEBRTC_COMMON | 0x02,
+ CURRENT_STATUS_STOP = TEST_MENU_WEBRTC_COMMON | 0x03,
+ CURRENT_STATUS_DESTROY = TEST_MENU_WEBRTC_COMMON | 0x04,
+ CURRENT_STATUS_GET_STATE = TEST_MENU_WEBRTC_COMMON | 0x05,
+ CURRENT_STATUS_SET_STUN_SERVER = TEST_MENU_WEBRTC_COMMON | 0x06,
+ CURRENT_STATUS_GET_STUN_SERVER = TEST_MENU_WEBRTC_COMMON | 0x07,
+ CURRENT_STATUS_ADD_TURN_SERVER = TEST_MENU_WEBRTC_COMMON | 0x08,
+ CURRENT_STATUS_GET_TURN_SERVERS = TEST_MENU_WEBRTC_COMMON | 0x09,
+ CURRENT_STATUS_SET_BUNDLE_POLICY = TEST_MENU_WEBRTC_COMMON | 0x0A,
+ CURRENT_STATUS_GET_BUNDLE_POLICY = TEST_MENU_WEBRTC_COMMON | 0x0B,
+ CURRENT_STATUS_SET_ICE_TRANSPORT_POLICY = TEST_MENU_WEBRTC_COMMON | 0x0C,
+ CURRENT_STATUS_GET_ICE_TRANSPORT_POLICY = TEST_MENU_WEBRTC_COMMON | 0x0D,
+ CURRENT_STATUS_CREATE_OFFER = TEST_MENU_WEBRTC_COMMON | 0x0E,
+ CURRENT_STATUS_CREATE_ANSWER = TEST_MENU_WEBRTC_COMMON | 0x0F,
+ CURRENT_STATUS_CREATE_OFFER_ASYNC = TEST_MENU_WEBRTC_COMMON | 0x10,
+ CURRENT_STATUS_CREATE_ANSWER_ASYNC = TEST_MENU_WEBRTC_COMMON | 0x11,
+ CURRENT_STATUS_SET_LOCAL_DESCRIPTION = TEST_MENU_WEBRTC_COMMON | 0x12,
+ CURRENT_STATUS_SET_REMOTE_DESCRIPTION = TEST_MENU_WEBRTC_COMMON | 0x13,
+ CURRENT_STATUS_ADD_ICE_CANDIDATE = TEST_MENU_WEBRTC_COMMON | 0x14,
+ CURRENT_STATUS_SET_ALL_CALLBACKS = TEST_MENU_WEBRTC_COMMON | 0x15,
+ CURRENT_STATUS_UNSET_ALL_CALLBACKS = TEST_MENU_WEBRTC_COMMON | 0x16,
+ CURRENT_STATUS_GET_ALL_NEGOTIATION_STATES = TEST_MENU_WEBRTC_COMMON | 0x17,
+ CURRENT_STATUS_SET_RTP_PACKET_DROP_PROBABILITY = TEST_MENU_WEBRTC_COMMON | 0x18,
+ CURRENT_STATUS_GET_RTP_PACKET_DROP_PROBABILITY = TEST_MENU_WEBRTC_COMMON | 0x19,
/* webrtc media source */
CURRENT_STATUS_ADD_MEDIA_SOURCE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x01,
CURRENT_STATUS_REMOVE_MEDIA_SOURCE = TEST_MENU_WEBRTC_MEDIA_SOURCE | 0x02,
CURRENT_STATUS_GET_DISPLAY_MODE = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x03,
CURRENT_STATUS_SET_DISPLAY_VISIBLE = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x04,
CURRENT_STATUS_GET_DISPLAY_VISIBLE = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x05,
- CURRENT_STATUS_MEDIA_SOURCE_SET_AUDIO_LOOPBACK = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x06,
- CURRENT_STATUS_MEDIA_SOURCE_UNSET_AUDIO_LOOPBACK = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x07,
- CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_LOOPBACK = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x08,
- CURRENT_STATUS_MEDIA_SOURCE_UNSET_VIDEO_LOOPBACK = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x09,
+ CURRENT_STATUS_SET_ENCODED_AUDIO_FRAME_CB = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x06,
+ CURRENT_STATUS_UNSET_ENCODED_AUDIO_FRAME_CB = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x07,
+ CURRENT_STATUS_SET_ENCODED_VIDEO_FRAME_CB = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x08,
+ CURRENT_STATUS_UNSET_ENCODED_VIDEO_FRAME_CB = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x09,
+ CURRENT_STATUS_MEDIA_SOURCE_SET_AUDIO_LOOPBACK = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x0A,
+ CURRENT_STATUS_MEDIA_SOURCE_UNSET_AUDIO_LOOPBACK = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x0B,
+ CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_LOOPBACK = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x0C,
+ CURRENT_STATUS_MEDIA_SOURCE_UNSET_VIDEO_LOOPBACK = TEST_MENU_WEBRTC_MEDIA_RENDER | 0x0D,
/* webrtc data channel */
- CURRENT_STATUS_DATA_CHANNEL_SEND_STRING = TEST_MENU_WEBRTC_DATA_CHANNEL | 0x01,
- CURRENT_STATUS_DATA_CHANNEL_SEND_STRING_AS_BYTES = TEST_MENU_WEBRTC_DATA_CHANNEL | 0x02,
- CURRENT_STATUS_DATA_CHANNEL_SEND_FILE = TEST_MENU_WEBRTC_DATA_CHANNEL | 0x03,
- CURRENT_STATUS_DATA_CHANNEL_SET_BUFFERED_AMOUNT_LOW_CB = TEST_MENU_WEBRTC_DATA_CHANNEL | 0x04,
+ CURRENT_STATUS_DATA_CHANNEL_CREATE = TEST_MENU_WEBRTC_DATA_CHANNEL | 0x01,
+ CURRENT_STATUS_DATA_CHANNEL_DESTROY = TEST_MENU_WEBRTC_DATA_CHANNEL | 0x02,
+ CURRENT_STATUS_DATA_CHANNEL_GET_LABEL = TEST_MENU_WEBRTC_DATA_CHANNEL | 0x03,
+ CURRENT_STATUS_DATA_CHANNEL_SEND_STRING = TEST_MENU_WEBRTC_DATA_CHANNEL | 0x04,
+ CURRENT_STATUS_DATA_CHANNEL_SEND_STRING_AS_BYTES = TEST_MENU_WEBRTC_DATA_CHANNEL | 0x05,
+ CURRENT_STATUS_DATA_CHANNEL_SEND_FILE = TEST_MENU_WEBRTC_DATA_CHANNEL | 0x06,
+ CURRENT_STATUS_DATA_CHANNEL_SET_BUFFERED_AMOUNT_LOW_CB = TEST_MENU_WEBRTC_DATA_CHANNEL | 0x07,
+ CURRENT_STATUS_DATA_CHANNEL_UNSET_BUFFERED_AMOUNT_LOW_CB = TEST_MENU_WEBRTC_DATA_CHANNEL | 0x08,
+ CURRENT_STATUS_DATA_CHANNEL_GET_BUFFERED_AMOUNT_LOW_THRESHOLD = TEST_MENU_WEBRTC_DATA_CHANNEL | 0x09,
+ CURRENT_STATUS_DATA_CHANNEL_GET_BUFFERED_AMOUNT = TEST_MENU_WEBRTC_DATA_CHANNEL | 0x0A,
/* webrtc stats */
CURRENT_STATUS_FOREACH_STATS = TEST_MENU_WEBRTC_STATS | 0x01,
/* app. setting & signaling */
CURRENT_STATUS_SETTING_SIGNALING_SERVER = TEST_MENU_APP_SIGNALING | 0x01,
- CURRENT_STATUS_SETTING_PROXY = TEST_MENU_APP_SIGNALING | 0x02,
- CURRENT_STATUS_REQUEST_SESSION = TEST_MENU_APP_SIGNALING | 0x03,
- CURRENT_STATUS_REQUEST_JOIN_ROOM = TEST_MENU_APP_SIGNALING | 0x04,
- CURRENT_STATUS_SEND_LOCAL_DESCRIPTION = TEST_MENU_APP_SIGNALING | 0x05,
- CURRENT_STATUS_CREATE_PRIVATE_SIGNALING_SERVER = TEST_MENU_APP_SIGNALING | 0x06,
- CURRENT_STATUS_CONNECT_TO_PRIVATE_SIGNALING_SERVER = TEST_MENU_APP_SIGNALING | 0x07,
+ CURRENT_STATUS_CONNECT_SIGNALING_SERVER = TEST_MENU_APP_SIGNALING | 0x02,
+ CURRENT_STATUS_SETTING_PROXY = TEST_MENU_APP_SIGNALING | 0x03,
+ CURRENT_STATUS_REQUEST_SESSION = TEST_MENU_APP_SIGNALING | 0x04,
+ CURRENT_STATUS_REQUEST_JOIN_ROOM = TEST_MENU_APP_SIGNALING | 0x05,
+ CURRENT_STATUS_SEND_LOCAL_DESCRIPTION = TEST_MENU_APP_SIGNALING | 0x06,
+ CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_CREATE = TEST_MENU_APP_SIGNALING | 0x07,
+ CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_DESTROY = TEST_MENU_APP_SIGNALING | 0x08,
+ CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_START = TEST_MENU_APP_SIGNALING | 0x09,
+ CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_STOP = TEST_MENU_APP_SIGNALING | 0x0A,
+ CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_CONNECT = TEST_MENU_APP_SIGNALING | 0x0B,
+ CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_DISCONNECT = TEST_MENU_APP_SIGNALING | 0x0C,
+};
+
+typedef struct {
+ const char *cmd;
+ int status;
+ bool key_input_needed;
+} menu_info_s;
+
+menu_info_s g_menu_infos[] = {
+ { "none", CURRENT_STATUS_MAINMENU, false },
+ { "none", CURRENT_STATUS_TERMINATE, false },
+ { "q", CURRENT_STATUS_QUIT, false },
+ /* webrtc common */
+ { "c", CURRENT_STATUS_CREATE, false },
+ { "s", CURRENT_STATUS_START, false },
+ { "t", CURRENT_STATUS_STOP, false },
+ { "d", CURRENT_STATUS_DESTROY, false },
+ { "g", CURRENT_STATUS_GET_STATE, false },
+ { "st", CURRENT_STATUS_SET_STUN_SERVER, true },
+ { "gt", CURRENT_STATUS_GET_STUN_SERVER, false },
+ { "su", CURRENT_STATUS_ADD_TURN_SERVER, true },
+ { "gu", CURRENT_STATUS_GET_TURN_SERVERS, false },
+ { "sbp", CURRENT_STATUS_SET_BUNDLE_POLICY, true },
+ { "gbp", CURRENT_STATUS_GET_BUNDLE_POLICY, false },
+ { "stp", CURRENT_STATUS_SET_ICE_TRANSPORT_POLICY, true },
+ { "gtp", CURRENT_STATUS_GET_ICE_TRANSPORT_POLICY, false },
+ { "co", CURRENT_STATUS_CREATE_OFFER, false },
+ { "ca", CURRENT_STATUS_CREATE_ANSWER, false },
+ { "coa", CURRENT_STATUS_CREATE_OFFER_ASYNC, false },
+ { "caa", CURRENT_STATUS_CREATE_ANSWER_ASYNC, false },
+ { "sl", CURRENT_STATUS_SET_LOCAL_DESCRIPTION, true },
+ { "sr", CURRENT_STATUS_SET_REMOTE_DESCRIPTION, false },
+ { "ac", CURRENT_STATUS_ADD_ICE_CANDIDATE, false },
+ { "sac", CURRENT_STATUS_SET_ALL_CALLBACKS, false },
+ { "uac", CURRENT_STATUS_UNSET_ALL_CALLBACKS, false },
+ { "gan", CURRENT_STATUS_GET_ALL_NEGOTIATION_STATES, false },
+ { "sdp", CURRENT_STATUS_SET_RTP_PACKET_DROP_PROBABILITY, true },
+ { "gdp", CURRENT_STATUS_GET_RTP_PACKET_DROP_PROBABILITY, true },
+ /* webrtc media source */
+ { "a", CURRENT_STATUS_ADD_MEDIA_SOURCE, true },
+ { "r", CURRENT_STATUS_REMOVE_MEDIA_SOURCE, true },
+ { "td", CURRENT_STATUS_MEDIA_SOURCE_SET_TRANSCEIVER_DIRECTION, true },
+ { "gd", CURRENT_STATUS_MEDIA_SOURCE_GET_TRANSCEIVER_DIRECTION, true },
+ { "p", CURRENT_STATUS_MEDIA_SOURCE_SET_PAUSE, true },
+ { "o", CURRENT_STATUS_MEDIA_SOURCE_GET_PAUSE, true },
+ { "mu", CURRENT_STATUS_MEDIA_SOURCE_SET_MUTE, true },
+ { "mg", CURRENT_STATUS_MEDIA_SOURCE_GET_MUTE, true },
+ { "v", CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_RESOLUTION, true },
+ { "l", CURRENT_STATUS_MEDIA_SOURCE_GET_VIDEO_RESOLUTION, true },
+ { "f", CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_FRAMERATE, true },
+ { "m", CURRENT_STATUS_MEDIA_SOURCE_GET_VIDEO_FRAMERATE, true },
+ { "pa", CURRENT_STATUS_FILE_SOURCE_SET_PATH, true },
+ { "sfl", CURRENT_STATUS_FILE_SOURCE_SET_LOOPING, true },
+ { "gfl", CURRENT_STATUS_FILE_SOURCE_GET_LOOPING, true },
+ { "sf", CURRENT_STATUS_MEDIA_PACKET_SOURCE_SET_FORMAT, true },
+ { "sm", CURRENT_STATUS_MEDIA_PACKET_SOURCE_SET_BUFFER_STATE_CHANGED_CB, true },
+ { "um", CURRENT_STATUS_MEDIA_PACKET_SOURCE_UNSET_BUFFER_STATE_CHANGED_CB, true },
+ { "sp", CURRENT_STATUS_START_PUSHING_PACKET_TO_MEDIA_PACKET_SOURCE, true },
+ { "tp", CURRENT_STATUS_STOP_PUSHING_PACKET_TO_MEDIA_PACKET_SOURCE, true },
+ { "scs", CURRENT_STATUS_SET_CROP_SCREEN_SOURCE, true },
+ { "ucs", CURRENT_STATUS_UNSET_CROP_SCREEN_SOURCE, true },
+ /* webrtc media render */
+ { "dt", CURRENT_STATUS_SET_DISPLAY_TYPE, true },
+ { "dm", CURRENT_STATUS_SET_DISPLAY_MODE, true },
+ { "gm", CURRENT_STATUS_GET_DISPLAY_MODE, true },
+ { "dv", CURRENT_STATUS_SET_DISPLAY_VISIBLE, true },
+ { "gv", CURRENT_STATUS_GET_DISPLAY_VISIBLE, true },
+ { "sa", CURRENT_STATUS_SET_ENCODED_AUDIO_FRAME_CB, false },
+ { "ua", CURRENT_STATUS_UNSET_ENCODED_AUDIO_FRAME_CB, false },
+ { "sv", CURRENT_STATUS_SET_ENCODED_VIDEO_FRAME_CB, false },
+ { "uv", CURRENT_STATUS_UNSET_ENCODED_VIDEO_FRAME_CB, false },
+ { "al", CURRENT_STATUS_MEDIA_SOURCE_SET_AUDIO_LOOPBACK, true },
+ { "ual", CURRENT_STATUS_MEDIA_SOURCE_UNSET_AUDIO_LOOPBACK, true },
+ { "vl", CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_LOOPBACK, true },
+ { "uvl", CURRENT_STATUS_MEDIA_SOURCE_UNSET_VIDEO_LOOPBACK, true },
+ /* webrtc data channel */
+ { "cd", CURRENT_STATUS_DATA_CHANNEL_CREATE, false },
+ { "dd", CURRENT_STATUS_DATA_CHANNEL_DESTROY, false },
+ { "dl", CURRENT_STATUS_DATA_CHANNEL_GET_LABEL, false },
+ { "zs", CURRENT_STATUS_DATA_CHANNEL_SEND_STRING, true },
+ { "zb", CURRENT_STATUS_DATA_CHANNEL_SEND_STRING_AS_BYTES, true },
+ { "zf", CURRENT_STATUS_DATA_CHANNEL_SEND_FILE, true },
+ { "sbc", CURRENT_STATUS_DATA_CHANNEL_SET_BUFFERED_AMOUNT_LOW_CB, true },
+ { "ubc", CURRENT_STATUS_DATA_CHANNEL_UNSET_BUFFERED_AMOUNT_LOW_CB, false },
+ { "gbt", CURRENT_STATUS_DATA_CHANNEL_GET_BUFFERED_AMOUNT_LOW_THRESHOLD, false },
+ { "ba", CURRENT_STATUS_DATA_CHANNEL_GET_BUFFERED_AMOUNT, false },
+ /* webrtc stats */
+ { "sts", CURRENT_STATUS_FOREACH_STATS, true },
+ /* app. setting & signaling */
+ { "ss", CURRENT_STATUS_SETTING_SIGNALING_SERVER, true },
+ { "cs", CURRENT_STATUS_CONNECT_SIGNALING_SERVER, false },
+ { "px", CURRENT_STATUS_SETTING_PROXY, true },
+ { "rs", CURRENT_STATUS_REQUEST_SESSION, true },
+ { "rj", CURRENT_STATUS_REQUEST_JOIN_ROOM, true },
+ { "sd", CURRENT_STATUS_SEND_LOCAL_DESCRIPTION, true },
+ { "ssc", CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_CREATE, true },
+ { "ssd", CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_DESTROY, false },
+ { "sss", CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_START, false },
+ { "sst", CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_STOP, false },
+ { "scc", CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_CONNECT, true },
+ { "scd", CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_DISCONNECT, false },
+ { NULL, -1, false },
};
enum {
static Evas_Object *g_text_eo_mine;
typedef struct {
+ GHashTable *menu_items;
Evas_Object *win;
int win_width;
int win_height;
int i;
Evas_Object **eo;
+ ad->menu_items = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL);
+ for (i = 0; g_menu_infos[i].cmd != NULL; i++) {
+ if (g_strcmp0(g_menu_infos[i].cmd, "none") == 0)
+ continue;
+ if (!g_hash_table_insert(ad->menu_items, (gpointer)g_menu_infos[i].cmd, &g_menu_infos[i])) {
+ g_printerr("should not be reached here, cmd[%s] already exist", g_menu_infos[i].cmd);
+ continue;
+ }
+ }
+
/* use gl backend */
elm_config_accel_preference_set("opengl");
ad->win = NULL;
+ g_hash_table_destroy(ad->menu_items);
+ ad->menu_items = NULL;
+
return 0;
}
g_print("webrtc_media_packet_source_unset_buffer_state_changed_cb() success\n");
}
+static void _webrtc_set_all_cbs(int index)
+{
+ int i;
+
+ _webrtc_set_all_basic_cbs(index);
+ _webrtc_set_all_negotiation_state_change_cbs(index);
+
+ for (i = 0; i < MAX_MEDIA_PACKET_SOURCE_LEN; i++) {
+ if (g_conns[index].packet_sources[i].source_id > 0)
+ _webrtc_media_packet_source_set_buffer_state_changed_cb(0, g_conns[index].packet_sources[i].source_id);
+ }
+}
+
+static void _webrtc_unset_all_cbs(int index)
+{
+ int i;
+
+ _webrtc_unset_all_basic_cbs(index);
+ _webrtc_unset_all_negotiation_state_change_cbs(index);
+
+ for (i = 0; i < MAX_MEDIA_PACKET_SOURCE_LEN; i++) {
+ if (g_conns[index].packet_sources[i].source_id > 0)
+ _webrtc_media_packet_source_unset_buffer_state_changed_cb(0, g_conns[index].packet_sources[i].source_id);
+ }
+}
+
static void _webrtc_create_data_channel(int index)
{
int ret = WEBRTC_ERROR_NONE;
elm_exit();
}
-static void change_menu_state_1(char *cmd)
-{
- if (!cmd)
- return;
-
- if (strncmp(cmd, "c", 1) == 0)
- _webrtc_create(0);
-
- else if (strncmp(cmd, "a", 1) == 0)
- g_menu_state = CURRENT_STATUS_ADD_MEDIA_SOURCE;
-
- else if (strncmp(cmd, "r", 1) == 0)
- g_menu_state = CURRENT_STATUS_REMOVE_MEDIA_SOURCE;
-
- else if (strncmp(cmd, "p", 1) == 0)
- g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_SET_PAUSE;
-
- else if (strncmp(cmd, "o", 1) == 0)
- g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_GET_PAUSE;
-
- else if (strncmp(cmd, "v", 1) == 0)
- g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_RESOLUTION;
-
- else if (strncmp(cmd, "l", 1) == 0)
- g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_GET_VIDEO_RESOLUTION;
-
- else if (strncmp(cmd, "f", 1) == 0)
- g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_FRAMERATE;
-
- else if (strncmp(cmd, "m", 1) == 0)
- g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_GET_VIDEO_FRAMERATE;
-
- else if (strncmp(cmd, "s", 1) == 0)
- _webrtc_start(0);
-
- else if (strncmp(cmd, "t", 1) == 0)
- _webrtc_stop(0);
-
- else if (strncmp(cmd, "d", 1) == 0)
- _webrtc_destroy(0);
-
- else if (strncmp(cmd, "g", 1) == 0)
- _webrtc_get_state(0);
-
- else if (strncmp(cmd, "q", 1) == 0)
- quit_program();
-
- else
- g_print("%s() > unknown menu[%s]\n", __FUNCTION__, cmd);
-
-}
-
-static void change_menu_state_2(char *cmd)
-{
- if (!cmd)
- return;
-
- if (strncmp(cmd, "sf", 2) == 0)
- g_menu_state = CURRENT_STATUS_MEDIA_PACKET_SOURCE_SET_FORMAT;
-
- else if (strncmp(cmd, "td", 2) == 0)
- g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_SET_TRANSCEIVER_DIRECTION;
-
- else if (strncmp(cmd, "gd", 2) == 0)
- g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_GET_TRANSCEIVER_DIRECTION;
-
- else if (strncmp(cmd, "mu", 2) == 0)
- g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_SET_MUTE;
-
- else if (strncmp(cmd, "mg", 2) == 0)
- g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_GET_MUTE;
-
- else if (strncmp(cmd, "dt", 2) == 0)
- g_menu_state = CURRENT_STATUS_SET_DISPLAY_TYPE;
-
- else if (strncmp(cmd, "dm", 2) == 0)
- g_menu_state = CURRENT_STATUS_SET_DISPLAY_MODE;
-
- else if (strncmp(cmd, "gm", 2) == 0)
- g_menu_state = CURRENT_STATUS_GET_DISPLAY_MODE;
-
- else if (strncmp(cmd, "dv", 2) == 0)
- g_menu_state = CURRENT_STATUS_SET_DISPLAY_VISIBLE;
-
- else if (strncmp(cmd, "gv", 2) == 0)
- g_menu_state = CURRENT_STATUS_GET_DISPLAY_VISIBLE;
-
- else if (strncmp(cmd, "al", 2) == 0)
- g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_SET_AUDIO_LOOPBACK;
-
- else if (strncmp(cmd, "vl", 2) == 0)
- g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_LOOPBACK;
-
- else if (strncmp(cmd, "cd", 2) == 0)
- _webrtc_create_data_channel(0);
-
- else if (strncmp(cmd, "dd", 2) == 0)
- _webrtc_destroy_data_channel(0);
-
- else if (strncmp(cmd, "dl", 2) == 0)
- _webrtc_data_channel_get_label(0);
-
- else if (strncmp(cmd, "zs", 2) == 0)
- g_menu_state = CURRENT_STATUS_DATA_CHANNEL_SEND_STRING;
-
- else if (strncmp(cmd, "zb", 2) == 0)
- g_menu_state = CURRENT_STATUS_DATA_CHANNEL_SEND_STRING_AS_BYTES;
-
- else if (strncmp(cmd, "zf", 2) == 0)
- g_menu_state = CURRENT_STATUS_DATA_CHANNEL_SEND_FILE;
-
- else if (strncmp(cmd, "ba", 2) == 0)
- _webrtc_data_channel_get_buffered_amount(0);
-
- else if (strncmp(cmd, "sa", 2) == 0)
- _webrtc_set_encoded_audio_frame_cb(0);
-
- else if (strncmp(cmd, "ua", 2) == 0)
- _webrtc_unset_encoded_audio_frame_cb(0);
-
- else if (strncmp(cmd, "sv", 2) == 0)
- _webrtc_set_encoded_video_frame_cb(0);
-
- else if (strncmp(cmd, "uv", 2) == 0)
- _webrtc_unset_encoded_video_frame_cb(0);
-
- else if (strncmp(cmd, "sm", 2) == 0)
- g_menu_state = CURRENT_STATUS_MEDIA_PACKET_SOURCE_SET_BUFFER_STATE_CHANGED_CB;
-
- else if (strncmp(cmd, "um", 2) == 0)
- g_menu_state = CURRENT_STATUS_MEDIA_PACKET_SOURCE_UNSET_BUFFER_STATE_CHANGED_CB;
-
- else if (strncmp(cmd, "co", 2) == 0)
- _webrtc_create_offer(&g_conns[0], false);
-
- else if (strncmp(cmd, "ca", 2) == 0)
- _webrtc_create_answer(&g_conns[0], false);
-
- else if (strncmp(cmd, "sl", 2) == 0)
- g_menu_state = CURRENT_STATUS_SET_LOCAL_DESCRIPTION;
-
- else if (strncmp(cmd, "sr", 2) == 0)
- _webrtc_set_remote_description(&g_conns[0]);
-
- else if (strncmp(cmd, "st", 2) == 0)
- g_menu_state = CURRENT_STATUS_SET_STUN_SERVER;
-
- else if (strncmp(cmd, "gt", 2) == 0)
- _webrtc_get_stun_server(0);
-
- else if (strncmp(cmd, "su", 2) == 0)
- g_menu_state = CURRENT_STATUS_ADD_TURN_SERVER;
-
- else if (strncmp(cmd, "gu", 2) == 0)
- _webrtc_get_turn_servers(0);
-
- else if (strncmp(cmd, "ss", 2) == 0)
- g_menu_state = CURRENT_STATUS_SETTING_SIGNALING_SERVER;
-
- else if (strncmp(cmd, "px", 2) == 0)
- g_menu_state = CURRENT_STATUS_SETTING_PROXY;
-
- else if (strncmp(cmd, "cs", 2) == 0)
- _connect_signaling_server();
-
- else if (strncmp(cmd, "rs", 2) == 0)
- g_menu_state = CURRENT_STATUS_REQUEST_SESSION;
-
- else if (strncmp(cmd, "rj", 2) == 0)
- g_menu_state = CURRENT_STATUS_REQUEST_JOIN_ROOM;
-
- else if (strncmp(cmd, "sd", 2) == 0)
- g_menu_state = CURRENT_STATUS_SEND_LOCAL_DESCRIPTION;
-
- else if (strncmp(cmd, "sp", 2) == 0)
- g_menu_state = CURRENT_STATUS_START_PUSHING_PACKET_TO_MEDIA_PACKET_SOURCE;
-
- else if (strncmp(cmd, "tp", 2) == 0)
- g_menu_state = CURRENT_STATUS_STOP_PUSHING_PACKET_TO_MEDIA_PACKET_SOURCE;
-
- else if (strncmp(cmd, "pa", 2) == 0)
- g_menu_state = CURRENT_STATUS_FILE_SOURCE_SET_PATH;
-
- else if (strncmp(cmd, "ac", 2) == 0)
- _webrtc_add_ice_candidate(&g_conns[0], NULL);
-
- else
- g_print("%s() > unknown menu[%s]\n", __FUNCTION__, cmd);
-
-}
-
-static void change_menu_state_3(char *cmd)
-{
- if (!cmd)
- return;
-
- if (strncmp(cmd, "ual", 3) == 0) {
- g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_UNSET_AUDIO_LOOPBACK;
-
- } else if (strncmp(cmd, "uvl", 3) == 0) {
- g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_UNSET_VIDEO_LOOPBACK;
-
- } else if (strncmp(cmd, "sac", 3) == 0) {
- int i;
-
- _webrtc_set_all_basic_cbs(0);
- _webrtc_set_all_negotiation_state_change_cbs(0);
-
- for (i = 0; i < MAX_MEDIA_PACKET_SOURCE_LEN; i++) {
- if (g_conns[0].packet_sources[i].source_id > 0)
- _webrtc_media_packet_source_set_buffer_state_changed_cb(0, g_conns[0].packet_sources[i].source_id);
- }
-
- } else if (strncmp(cmd, "uac", 3) == 0) {
- int i;
-
- _webrtc_unset_all_basic_cbs(0);
- _webrtc_unset_all_negotiation_state_change_cbs(0);
-
- for (i = 0; i < MAX_MEDIA_PACKET_SOURCE_LEN; i++) {
- if (g_conns[0].packet_sources[i].source_id > 0)
- _webrtc_media_packet_source_unset_buffer_state_changed_cb(0, g_conns[0].packet_sources[i].source_id);
- }
-
- } else if (strncmp(cmd, "gan", 3) == 0) {
- _webrtc_get_all_negotiation_states(0);
-
- } else if (strncmp(cmd, "coa", 3) == 0) {
- _webrtc_create_offer(&g_conns[0], true);
-
- } else if (strncmp(cmd, "caa", 3) == 0) {
- _webrtc_create_answer(&g_conns[0], true);
-
- } else if (strncmp(cmd, "sbp", 3) == 0) {
- g_menu_state = CURRENT_STATUS_SET_BUNDLE_POLICY;
-
- } else if (strncmp(cmd, "gbp", 3) == 0) {
- _webrtc_get_bundle_policy(0);
-
- } else if (strncmp(cmd, "stp", 3) == 0) {
- g_menu_state = CURRENT_STATUS_SET_ICE_TRANSPORT_POLICY;
-
- } else if (strncmp(cmd, "gtp", 3) == 0) {
- _webrtc_get_ice_transport_policy(0);
-
- } else if (strncmp(cmd, "sdp", 3) == 0) {
- g_menu_state = CURRENT_STATUS_SET_RTP_PACKET_DROP_PROBABILITY;
-
- } else if (strncmp(cmd, "gdp", 3) == 0) {
- g_menu_state = CURRENT_STATUS_GET_RTP_PACKET_DROP_PROBABILITY;
-
- } else if (strncmp(cmd, "ssc", 3) == 0) {
- g_menu_state = CURRENT_STATUS_CREATE_PRIVATE_SIGNALING_SERVER;
-
- } else if (strncmp(cmd, "ssd", 3) == 0) {
- _webrtc_signaling_server_destroy();
-
- } else if (strncmp(cmd, "sss", 3) == 0) {
- _webrtc_signaling_server_start();
-
- } else if (strncmp(cmd, "sst", 3) == 0) {
- _webrtc_signaling_server_stop();
-
- } else if (strncmp(cmd, "scc", 3) == 0) {
- g_menu_state = CURRENT_STATUS_CONNECT_TO_PRIVATE_SIGNALING_SERVER;
-
- } else if (strncmp(cmd, "scd", 3) == 0) {
- _webrtc_signaling_disconnect();
-
- } else if (strncmp(cmd, "scs", 3) == 0) {
- g_menu_state = CURRENT_STATUS_SET_CROP_SCREEN_SOURCE;
-
- } else if (strncmp(cmd, "ucs", 3) == 0) {
- g_menu_state = CURRENT_STATUS_UNSET_CROP_SCREEN_SOURCE;
-
- } else if (strncmp(cmd, "sfl", 3) == 0) {
- g_menu_state = CURRENT_STATUS_FILE_SOURCE_SET_LOOPING;
-
- } else if (strncmp(cmd, "gfl", 3) == 0) {
- g_menu_state = CURRENT_STATUS_FILE_SOURCE_GET_LOOPING;
-
- } else if (strncmp(cmd, "sbc", 3) == 0) {
- g_menu_state = CURRENT_STATUS_DATA_CHANNEL_SET_BUFFERED_AMOUNT_LOW_CB;
-
- } else if (strncmp(cmd, "gbt", 3) == 0) {
- _webrtc_data_channel_get_buffered_amount_low_threshold(0);
-
- } else if (strncmp(cmd, "ubc", 3) == 0) {
- _webrtc_data_channel_unset_buffered_amount_low_cb(0);
-
- } else if (strncmp(cmd, "sts", 3) == 0) {
- g_menu_state = CURRENT_STATUS_FOREACH_STATS;
-
- } else {
- g_print("%s() > unknown menu[%s]\n", __FUNCTION__, cmd);
- }
-}
-
-static void interpret_main_menu_cmd(char *cmd)
+static bool interpret_main_menu_cmd(char *cmd)
{
int len;
if (!cmd)
- return;
+ return true;
len = strlen(cmd);
switch (len) {
- case 0:
- /* '\0' case */
- break;
- case 1:
- change_menu_state_1(cmd);
- break;
- case 2:
- change_menu_state_2(cmd);
- break;
- case 3:
- change_menu_state_3(cmd);
- break;
+ case 0: /* '\0' case */
+ return true;
+ case 1 ... 3: {
+ menu_info_s *menu_info = g_hash_table_lookup(g_ad.menu_items, cmd);
+ if (!menu_info)
+ break;
+ g_menu_state = menu_info->status;
+ return menu_info->key_input_needed;
+ }
default:
- g_print("%s() > unknown menu[%s]\n", __FUNCTION__, cmd);
break;
}
+
+ g_print("%s() > unknown menu[%s]\n", __FUNCTION__, cmd);
+ return true;
}
static void display_handle_status(int index)
g_print("scd. *Disconnect from signaling server\n");
g_print("-----------------------------------------------------------------------------------------\n");
g_print("=========================================================================================\n");
+ g_print(" >>> ");
}
static void display_menu_webrtc_common(void)
g_print("*** input side.(1:sender, 2:receiver)\n");
break;
}
+ g_print(" >>> ");
}
static void display_menu_webrtc_media_source(void)
g_print("*** input source id.\n");
break;
}
+ g_print(" >>> ");
}
static void display_menu_webrtc_media_render(void)
g_print("*** input source id.\n");
break;
}
+ g_print(" >>> ");
}
static void display_menu_webrtc_data_channel(void)
g_print("*** input data channel buffered amount low threshold.\n");
break;
}
+ g_print(" >>> ");
}
static void display_menu_webrtc_stats(void)
g_print("*** input stats type.(1:all, 2:codec, 3:inbound-rtp/remote-outbound-rtp, 4:outbound-rtp/remote-inbound-rtp)\n");
break;
}
+ g_print(" >>> ");
}
static void display_menu_app_signaling(void)
case CURRENT_STATUS_SEND_LOCAL_DESCRIPTION:
g_print("*** input type of local description to send to the server.(1:offer, 2:answer)\n");
break;
- case CURRENT_STATUS_CREATE_PRIVATE_SIGNALING_SERVER:
+ case CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_CREATE:
g_print("*** input port.\n");
break;
- case CURRENT_STATUS_CONNECT_TO_PRIVATE_SIGNALING_SERVER:
+ case CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_CONNECT:
if (g_cnt == 0)
g_print("*** input server ip.\n");
else if (g_cnt == 1)
g_print("*** input port.\n");
break;
}
+ g_print(" >>> ");
}
static void displaymenu(void)
quit_program();
}
}
- g_print(" >>> ");
}
static gboolean timeout_menu_display_cb(void *data)
int value;
switch (g_menu_state) {
+ case CURRENT_STATUS_CREATE:
+ _webrtc_create(0);
+ reset_menu_state();
+ break;
+ case CURRENT_STATUS_START:
+ _webrtc_start(0);
+ reset_menu_state();
+ break;
+ case CURRENT_STATUS_STOP:
+ _webrtc_stop(0);
+ reset_menu_state();
+ break;
+ case CURRENT_STATUS_DESTROY:
+ _webrtc_destroy(0);
+ reset_menu_state();
+ break;
+ case CURRENT_STATUS_GET_STATE:
+ _webrtc_get_state(0);
+ reset_menu_state();
+ break;
case CURRENT_STATUS_SET_STUN_SERVER: {
_webrtc_set_stun_server(0, cmd);
reset_menu_state();
break;
}
+ case CURRENT_STATUS_GET_STUN_SERVER: {
+ _webrtc_get_stun_server(0);
+ reset_menu_state();
+ break;
+ }
case CURRENT_STATUS_ADD_TURN_SERVER: {
_webrtc_add_turn_server(0, cmd);
reset_menu_state();
break;
}
+ case CURRENT_STATUS_GET_TURN_SERVERS: {
+ _webrtc_get_turn_servers(0);
+ reset_menu_state();
+ break;
+ }
case CURRENT_STATUS_SET_BUNDLE_POLICY: {
value = atoi(cmd);
_webrtc_set_bundle_policy(0, value);
reset_menu_state();
break;
}
+ case CURRENT_STATUS_GET_BUNDLE_POLICY: {
+ value = atoi(cmd);
+ _webrtc_get_bundle_policy(0);
+ reset_menu_state();
+ break;
+ }
case CURRENT_STATUS_SET_ICE_TRANSPORT_POLICY: {
value = atoi(cmd);
_webrtc_set_ice_transport_policy(0, value);
reset_menu_state();
break;
}
+ case CURRENT_STATUS_GET_ICE_TRANSPORT_POLICY: {
+ _webrtc_get_ice_transport_policy(0);
+ reset_menu_state();
+ break;
+ }
+ case CURRENT_STATUS_CREATE_OFFER:
+ case CURRENT_STATUS_CREATE_OFFER_ASYNC: {
+ _webrtc_create_offer(&g_conns[0], g_menu_state == CURRENT_STATUS_CREATE_OFFER ? false : true);
+ reset_menu_state();
+ break;
+ }
+ case CURRENT_STATUS_CREATE_ANSWER:
+ case CURRENT_STATUS_CREATE_ANSWER_ASYNC: {
+ _webrtc_create_answer(&g_conns[0], g_menu_state == CURRENT_STATUS_CREATE_ANSWER ? false: true);
+ reset_menu_state();
+ break;
+ }
case CURRENT_STATUS_SET_LOCAL_DESCRIPTION: {
value = atoi(cmd);
if (value == 1)
reset_menu_state();
break;
}
+ case CURRENT_STATUS_SET_REMOTE_DESCRIPTION: {
+ _webrtc_set_remote_description(&g_conns[0]);
+ reset_menu_state();
+ break;
+ }
+ case CURRENT_STATUS_ADD_ICE_CANDIDATE: {
+ _webrtc_add_ice_candidate(&g_conns[0], NULL);
+ reset_menu_state();
+ break;
+ }
+ case CURRENT_STATUS_SET_ALL_CALLBACKS: {
+ _webrtc_set_all_cbs(0);
+ reset_menu_state();
+ break;
+ }
+ case CURRENT_STATUS_UNSET_ALL_CALLBACKS: {
+ _webrtc_unset_all_cbs(0);
+ reset_menu_state();
+ break;
+ }
+ case CURRENT_STATUS_GET_ALL_NEGOTIATION_STATES: {
+ _webrtc_get_all_negotiation_states(0);
+ reset_menu_state();
+ break;
+ }
case CURRENT_STATUS_SET_RTP_PACKET_DROP_PROBABILITY: {
static bool sender;
switch (g_cnt) {
reset_menu_state();
break;
}
+ case CURRENT_STATUS_SET_ENCODED_AUDIO_FRAME_CB: {
+ _webrtc_set_encoded_audio_frame_cb(0);
+ reset_menu_state();
+ break;
+ }
+ case CURRENT_STATUS_UNSET_ENCODED_AUDIO_FRAME_CB: {
+ _webrtc_unset_encoded_audio_frame_cb(0);
+ reset_menu_state();
+ break;
+ }
+ case CURRENT_STATUS_SET_ENCODED_VIDEO_FRAME_CB: {
+ _webrtc_set_encoded_video_frame_cb(0);
+ reset_menu_state();
+ break;
+ }
+ case CURRENT_STATUS_UNSET_ENCODED_VIDEO_FRAME_CB: {
+ _webrtc_unset_encoded_video_frame_cb(0);
+ reset_menu_state();
+ break;
+ }
case CURRENT_STATUS_MEDIA_SOURCE_SET_AUDIO_LOOPBACK: {
value = atoi(cmd);
_webrtc_media_source_set_audio_loopback(0, value);
static void test_webrtc_data_channel(char *cmd)
{
switch (g_menu_state) {
+ case CURRENT_STATUS_DATA_CHANNEL_CREATE: {
+ _webrtc_create_data_channel(0);
+ reset_menu_state();
+ break;
+ }
+ case CURRENT_STATUS_DATA_CHANNEL_DESTROY: {
+ _webrtc_destroy_data_channel(0);
+ reset_menu_state();
+ break;
+ }
+ case CURRENT_STATUS_DATA_CHANNEL_GET_LABEL: {
+ _webrtc_data_channel_get_label(0);
+ reset_menu_state();
+ break;
+ }
case CURRENT_STATUS_DATA_CHANNEL_SEND_STRING: {
_webrtc_data_channel_send_string(cmd, false);
reset_menu_state();
reset_menu_state();
break;
}
+ case CURRENT_STATUS_DATA_CHANNEL_UNSET_BUFFERED_AMOUNT_LOW_CB: {
+ _webrtc_data_channel_unset_buffered_amount_low_cb(0);
+ reset_menu_state();
+ break;
+ }
+ case CURRENT_STATUS_DATA_CHANNEL_GET_BUFFERED_AMOUNT_LOW_THRESHOLD: {
+ _webrtc_data_channel_get_buffered_amount_low_threshold(0);
+ reset_menu_state();
+ break;
+ }
+ case CURRENT_STATUS_DATA_CHANNEL_GET_BUFFERED_AMOUNT: {
+ _webrtc_data_channel_get_buffered_amount(0);
+ reset_menu_state();
+ break;
+ }
}
}
reset_menu_state();
break;
}
+ case CURRENT_STATUS_CONNECT_SIGNALING_SERVER: {
+ _connect_signaling_server();
+ reset_menu_state();
+ break;
+ }
case CURRENT_STATUS_REQUEST_SESSION: {
value = atoi(cmd);
_request_session(value);
reset_menu_state();
break;
}
- case CURRENT_STATUS_CREATE_PRIVATE_SIGNALING_SERVER: {
+ case CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_CREATE: {
value = atoi(cmd);
_webrtc_signaling_server_create(value);
reset_menu_state();
break;
}
- case CURRENT_STATUS_CONNECT_TO_PRIVATE_SIGNALING_SERVER: {
+ case CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_DESTROY: {
+ _webrtc_signaling_server_destroy();
+ reset_menu_state();
+ break;
+ }
+ case CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_START: {
+ _webrtc_signaling_server_start();
+ reset_menu_state();
+ break;
+ }
+ case CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_STOP: {
+ _webrtc_signaling_server_stop();
+ reset_menu_state();
+ break;
+ }
+ case CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_CONNECT: {
static char *ip = NULL;
if (strlen(g_signaling_server.url) > 0) {
}
break;
}
+ case CURRENT_STATUS_PRIVATE_SIGNALING_SERVER_DISCONNECT: {
+ _webrtc_signaling_disconnect();
+ reset_menu_state();
+ break;
+ }
}
}
return;
if (g_menu_state == CURRENT_STATUS_MAINMENU) {
- interpret_main_menu_cmd(cmd);
+ if (interpret_main_menu_cmd(cmd))
+ goto out;
+ }
- } else {
- if (g_menu_state & TEST_MENU_WEBRTC_COMMON)
- test_webrtc_common(cmd);
+ if (g_menu_state & TEST_MENU_WEBRTC_COMMON)
+ test_webrtc_common(cmd);
- else if (g_menu_state & TEST_MENU_WEBRTC_MEDIA_SOURCE)
- test_webrtc_media_source(cmd);
+ else if (g_menu_state & TEST_MENU_WEBRTC_MEDIA_SOURCE)
+ test_webrtc_media_source(cmd);
- else if (g_menu_state & TEST_MENU_WEBRTC_MEDIA_RENDER)
- test_webrtc_media_render(cmd);
+ else if (g_menu_state & TEST_MENU_WEBRTC_MEDIA_RENDER)
+ test_webrtc_media_render(cmd);
- else if (g_menu_state & TEST_MENU_WEBRTC_DATA_CHANNEL)
- test_webrtc_data_channel(cmd);
+ else if (g_menu_state & TEST_MENU_WEBRTC_DATA_CHANNEL)
+ test_webrtc_data_channel(cmd);
- else if (g_menu_state & TEST_MENU_WEBRTC_STATS)
- test_webrtc_stats(cmd);
+ else if (g_menu_state & TEST_MENU_WEBRTC_STATS)
+ test_webrtc_stats(cmd);
- else if (g_menu_state & TEST_MENU_APP_SIGNALING)
- app_setting_and_signaling(cmd);
- }
+ else if (g_menu_state & TEST_MENU_APP_SIGNALING)
+ app_setting_and_signaling(cmd);
+
+ else if (g_menu_state == CURRENT_STATUS_QUIT)
+ quit_program();
+out:
if (g_menu_state != CURRENT_STATUS_TERMINATE)
g_timeout_add(100, timeout_menu_display_cb, 0);
}
int main(int argc, char *argv[])
{
- GIOChannel *stdin_channel;
- stdin_channel = g_io_channel_unix_new(0);
+ GIOChannel *stdin_channel = g_io_channel_unix_new(0);
g_io_channel_set_flags(stdin_channel, G_IO_FLAG_NONBLOCK, NULL);
g_io_add_watch(stdin_channel, G_IO_IN, input_watch_cb, NULL);