static void ConnectionHandler(ConIcConnection *connection, ConIcConnectionEvent *event, gpointer data) { Network *manager=static_cast<Network*>(data); assert(manager!=NULL); ConIcConnectionStatus status=con_ic_connection_event_get_status(event); ConIcConnectionError error=con_ic_connection_event_get_error(event); switch (status) { case CON_IC_STATUS_NETWORK_UP: std::cout << "Connecting..."<< std::endl; manager->SetNetworkState(Network::NetworkStateConnecting); break; case CON_IC_STATUS_CONNECTED: std::cout << "Connected!" << std::endl; manager->SetNetworkState(Network::NetworkStateConnected); break; case CON_IC_STATUS_DISCONNECTING: std::cout << "Disconnecting..." <<std::endl; manager->SetNetworkState(Network::NetworkStateDisconnecting); break; case CON_IC_STATUS_DISCONNECTED: std::cout << "Disconnected (" << error << ")!" << std::endl; manager->SetNetworkState(Network::NetworkStateDisconnected); break; } }
/* * This signal will be received from icd when the connection status changes. * Unfortunately, it is not really accurate (when switching from GPRS to * wireless for example). * */ static void connection_change(ConIcConnection *connection, ConIcConnectionEvent *event, gpointer user_data) { Q_UNUSED(connection); RZLWidget *w = (RZLWidget*)user_data; ConIcConnectionStatus status = con_ic_connection_event_get_status(event); switch(status) { case CON_IC_STATUS_CONNECTED: w->setConnection(QString(con_ic_event_get_bearer_type(CON_IC_EVENT(event)))); break; case CON_IC_STATUS_DISCONNECTING: w->setConnection("offline"); break; case CON_IC_STATUS_DISCONNECTED: w->setConnection("offline"); break; default: qDebug("Unknown connection status received"); } }