-- | Network manager interface. module NM (newClient ,getDevices ,networkingEnabled ,setNetworkingEnabled ,wirelessEnabled ,setWirelessEnabled ,wirelessHardwareEnabled ,managerRunning ,getActiveConnections ,module NM.Types) where import GLib import NM.Internal import NM.Types -- | Make a new client. newClient :: IO Client newClient = nm_client_new -- | Get a list of devices. getDevices :: Client -- ^ The client. -> IO [Device] getDevices client = do devices <- nm_client_get_devices client len <- g_ptr_array_size devices return (replicate (fromIntegral len) (Device ())) -- | Is networking enabled? networkingEnabled :: Client -- ^ The client. -> IO Bool networkingEnabled = nm_client_networking_get_enabled -- | Enable networking. setNetworkingEnabled :: Client -- ^ The client. -> Bool -- ^ Enabled? -> IO () setNetworkingEnabled = nm_client_networking_set_enabled -- | Is wireless enabled? wirelessEnabled :: Client -- ^ The client. -> IO Bool wirelessEnabled = nm_client_wireless_get_enabled -- | Enable wireless. setWirelessEnabled :: Client -- ^ The client. -> Bool -- ^ Enabled? -> IO () setWirelessEnabled = nm_client_wireless_set_enabled -- | Is the wireless enabled via hardware? (The little button on your -- laptop, typically.) wirelessHardwareEnabled :: Client -- ^ The client. -> IO Bool wirelessHardwareEnabled = nm_client_wireless_hardware_get_enabled -- | Is there a network manager actually running? managerRunning :: Client -- ^ The client. -> IO Bool managerRunning = nm_client_get_manager_running -- | Get a list of active connections. getActiveConnections :: Client -- ^ The client. -> IO [Connection] getActiveConnections client = do devices <- nm_client_get_active_connections client len <- g_ptr_array_size devices return (replicate (fromIntegral len) (Connection ()))