renatofilho@320: #include renatofilho@320: renatofilho@320: #include "gmyth_backendinfo.h" renatofilho@320: #include "gmyth_remote_util.h" renatofilho@320: #include "gmyth_query.h" renatofilho@320: #include "gmyth_epg.h" renatofilho@320: #include "gmyth_common.h" renatofilho@320: renatofilho@320: renatofilho@320: static gboolean renatofilho@320: test_recorder_availability (GMythBackendInfo *backend_info) renatofilho@320: { renatofilho@320: GMythRecorder* recorder; renatofilho@320: GMythSocket *socket = gmyth_socket_new (); renatofilho@320: renatofilho@320: if (gmyth_socket_connect_to_backend (socket, renatofilho@320: gmyth_backend_info_get_hostname (backend_info), renatofilho@320: gmyth_backend_info_get_port (backend_info), TRUE) == FALSE) { renatofilho@320: g_debug ("Test recorder failed: Connection failed"); renatofilho@320: return FALSE; renatofilho@320: } renatofilho@320: renatofilho@320: recorder = remote_request_next_free_recorder (socket, -1); renatofilho@320: gmyth_socket_close_connection (socket); renatofilho@320: if (recorder == NULL) { renatofilho@320: g_debug ("Recorder not available\n"); renatofilho@320: return FALSE; renatofilho@320: } renatofilho@320: renatofilho@320: g_debug ("Recorder found (num): %d", recorder->recorder_num); renatofilho@320: renatofilho@320: return TRUE; renatofilho@320: } renatofilho@320: renatofilho@320: static gboolean renatofilho@320: test_recorder_setup (GMythBackendInfo *backend_info) renatofilho@320: { renatofilho@320: GMythQuery *query = gmyth_query_new (); renatofilho@320: renatofilho@320: if (gmyth_query_connect_with_timeout (query, backend_info, 3) == TRUE) { renatofilho@320: g_debug ("Mysql connection success"); renatofilho@320: return TRUE; renatofilho@320: } else { renatofilho@320: g_debug ("Mysql connection failed"); renatofilho@320: return FALSE; renatofilho@320: } renatofilho@320: renatofilho@320: } renatofilho@320: renatofilho@320: static gboolean renatofilho@320: test_recorder_check_channels (GMythBackendInfo *backend_info) renatofilho@320: { renatofilho@320: GMythRecorder* recorder; renatofilho@320: GMythSocket *socket = gmyth_socket_new (); renatofilho@320: GMythEPG *epg = gmyth_epg_new (); renatofilho@320: GList *clist; renatofilho@320: gint i, length; renatofilho@320: renatofilho@320: // Gets the free recorder renatofilho@320: if (gmyth_socket_connect_to_backend (socket, renatofilho@320: gmyth_backend_info_get_hostname (backend_info), renatofilho@320: gmyth_backend_info_get_port (backend_info), TRUE) == FALSE) { renatofilho@320: g_debug ("Test recorder failed: Connection failed"); renatofilho@320: return FALSE; renatofilho@320: } renatofilho@320: renatofilho@320: recorder = remote_request_next_free_recorder (socket, -1); renatofilho@320: gmyth_socket_close_connection (socket); renatofilho@320: if (recorder == NULL) { renatofilho@320: g_debug ("[%s] Recorder not available", __FUNCTION__); renatofilho@320: return FALSE; renatofilho@320: } renatofilho@320: renatofilho@320: // Connects the recorder socket renatofilho@320: gmyth_recorder_setup (recorder); renatofilho@320: renatofilho@320: // Gets the list of channels renatofilho@320: if (!gmyth_epg_connect (epg, backend_info)) { renatofilho@320: g_debug ("%s: Not connected\n", __FUNCTION__); renatofilho@320: return FALSE; renatofilho@320: } renatofilho@320: renatofilho@320: length = gmyth_epg_get_channel_list (epg, &clist); renatofilho@320: gmyth_epg_disconnect (epg); renatofilho@320: g_object_unref (epg); renatofilho@320: renatofilho@320: g_print ("==== Verifying the %d channels found in the EPG ====\n", length); renatofilho@320: for (i=0; ichannel_ID); renatofilho@320: g_debug ("Channel %d %s", channel_info->channel_ID, res ? "Found" : "Not found"); renatofilho@320: } renatofilho@320: renatofilho@320: g_list_free (clist); renatofilho@320: renatofilho@320: } renatofilho@320: renatofilho@320: renatofilho@320: int renatofilho@320: main (int args, const char **argv) renatofilho@320: { renatofilho@320: const char* uri = argv[1]; renatofilho@320: renatofilho@320: GMythBackendInfo *backend_info; renatofilho@320: g_type_init (); renatofilho@320: g_thread_init (NULL); renatofilho@320: renatofilho@320: backend_info = gmyth_backend_info_new_with_uri (argv[1]); renatofilho@320: renatofilho@320: printf ("******** Testing recorder availability ***********\n"); renatofilho@320: test_recorder_availability (backend_info); renatofilho@320: renatofilho@320: printf ("******** Testing recorder check channels function ***********\n"); renatofilho@320: test_recorder_check_channels (backend_info); renatofilho@320: } renatofilho@320: renatofilho@320: renatofilho@320: renatofilho@320: renatofilho@320: