#include #include Evas_Object *win, *connbox; static Eina_Bool _cb_conn_data(void *data, int type, Ecore_Con_Event_Server_Data *ev) { Evas_Object *btn; struct packet *p; char name[32]; int i; printf("data received:\n"); for (i=0; i < ev->size; i++){ printf("%2.2x ", ((u_char *)ev->data)[i]); if( (i%15 == 0 && i!=0) || i==ev->size-1 ) printf("\n"); } p = ev->data; switch(p->type) { case PACKET_NEWCONN: printf(" type PACKET_NEWCONN\n"); printf(" newconn_id %d\n", p->newconn_id); printf(" newconn_src %4x\n", ntohl(p->newconn_src)); printf(" newconn_dst %4x\n", ntohl(p->newconn_dst)); printf(" newconn_proto %d\n", p->newconn_proto); printf(" newconn_size %d\n", ntohs(p->newconn_size)); btn = elm_button_add(win); snprintf(name, sizeof(name), "%d: %x -> %x - %d", p->newconn_id, ntohl(p->newconn_src), ntohl(p->newconn_dst), p->newconn_proto); elm_object_text_set(btn, name); elm_box_pack_end(connbox, btn); evas_object_show(btn); break; case PACKET_DELCONN: printf(" type PACKET_DELCONN\n"); printf(" delconn_id %d\n", p->delconn_id); break; case PACKET_DATA: printf(" type PACKET_DATA\n"); printf(" data_connid %d\n", p->data_connid); printf(" data_size %d\n", ntohs(p->data_size)); break; case PACKET_NAME: printf(" type PACKET_NAME\n"); printf(" name_addr %4x\n", ntohl(p->name_addr)); printf(" name_len %d\n", p->name_len); printf(" name_name_fqdn %s\n", p->name_fqdn); break; } return ECORE_CALLBACK_RENEW; } static void _cb_on_done(void *data, Evas_Object *obj, void *event_info) { elm_exit(); } EAPI_MAIN int elm_main(int argc, char **argv) { Evas_Object *box, *lab, *btn, *bg; Ecore_Con_Server *conn; win = elm_win_util_standard_add("hello", "Hello"); evas_object_smart_callback_add(win, "delete,request", _cb_on_done, NULL); bg = elm_bg_add(win); evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bg); evas_object_show(bg); box = elm_box_add(win); elm_box_horizontal_set(box, EINA_TRUE); elm_win_resize_object_add(win, box); evas_object_show(box); lab = elm_label_add(win); elm_object_text_set(lab, "Welcome to glouglou_efl"); elm_box_pack_end(box, lab); evas_object_show(lab); btn = elm_button_add(win); elm_object_text_set(btn, "Quit"); elm_box_pack_end(box, btn); evas_object_show(btn); evas_object_smart_callback_add(btn, "clicked", _cb_on_done, NULL); connbox = elm_box_add(win); evas_object_show(connbox); evas_object_show(win); ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DATA, (Ecore_Event_Handler_Cb)_cb_conn_data, NULL); conn = ecore_con_server_connect(ECORE_CON_REMOTE_UDP, "127.0.0.1", 4430, NULL); ecore_con_server_send(conn, "hello", 5); ecore_con_server_flush(conn); elm_run(); elm_shutdown(); return 0; } ELM_MAIN()