Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
A DeviceProvider
subclass is provided by a plugin that handles devices
if there is a way to programatically list connected devices. It can also
optionally provide updates to the list of connected devices.
Each DeviceProvider
subclass is a singleton, a plugin should
normally provide a single subclass for all devices.
Applications would normally use a DeviceMonitor
to monitor devices
from all relevant providers.
- newtype DeviceProvider = DeviceProvider (ManagedPtr DeviceProvider)
- class GObject o => IsDeviceProvider o
- toDeviceProvider :: IsDeviceProvider o => o -> IO DeviceProvider
- noDeviceProvider :: Maybe DeviceProvider
- data DeviceProviderCanMonitorMethodInfo
- deviceProviderCanMonitor :: (HasCallStack, MonadIO m, IsDeviceProvider a) => a -> m Bool
- data DeviceProviderDeviceAddMethodInfo
- deviceProviderDeviceAdd :: (HasCallStack, MonadIO m, IsDeviceProvider a, IsDevice b) => a -> b -> m ()
- data DeviceProviderDeviceRemoveMethodInfo
- deviceProviderDeviceRemove :: (HasCallStack, MonadIO m, IsDeviceProvider a, IsDevice b) => a -> b -> m ()
- data DeviceProviderGetBusMethodInfo
- deviceProviderGetBus :: (HasCallStack, MonadIO m, IsDeviceProvider a) => a -> m Bus
- data DeviceProviderGetDevicesMethodInfo
- deviceProviderGetDevices :: (HasCallStack, MonadIO m, IsDeviceProvider a) => a -> m [Device]
- data DeviceProviderGetFactoryMethodInfo
- deviceProviderGetFactory :: (HasCallStack, MonadIO m, IsDeviceProvider a) => a -> m DeviceProviderFactory
- data DeviceProviderGetHiddenProvidersMethodInfo
- deviceProviderGetHiddenProviders :: (HasCallStack, MonadIO m, IsDeviceProvider a) => a -> m [Text]
- data DeviceProviderHideProviderMethodInfo
- deviceProviderHideProvider :: (HasCallStack, MonadIO m, IsDeviceProvider a) => a -> Text -> m ()
- deviceProviderRegister :: (HasCallStack, MonadIO m, IsPlugin a) => Maybe a -> Text -> Word32 -> GType -> m Bool
- data DeviceProviderStartMethodInfo
- deviceProviderStart :: (HasCallStack, MonadIO m, IsDeviceProvider a) => a -> m Bool
- data DeviceProviderStopMethodInfo
- deviceProviderStop :: (HasCallStack, MonadIO m, IsDeviceProvider a) => a -> m ()
- data DeviceProviderUnhideProviderMethodInfo
- deviceProviderUnhideProvider :: (HasCallStack, MonadIO m, IsDeviceProvider a) => a -> Text -> m ()
- type C_DeviceProviderProviderHiddenCallback = Ptr () -> CString -> Ptr () -> IO ()
- type DeviceProviderProviderHiddenCallback = Text -> IO ()
- data DeviceProviderProviderHiddenSignalInfo
- afterDeviceProviderProviderHidden :: (GObject a, MonadIO m) => a -> DeviceProviderProviderHiddenCallback -> m SignalHandlerId
- genClosure_DeviceProviderProviderHidden :: DeviceProviderProviderHiddenCallback -> IO Closure
- mk_DeviceProviderProviderHiddenCallback :: C_DeviceProviderProviderHiddenCallback -> IO (FunPtr C_DeviceProviderProviderHiddenCallback)
- noDeviceProviderProviderHiddenCallback :: Maybe DeviceProviderProviderHiddenCallback
- onDeviceProviderProviderHidden :: (GObject a, MonadIO m) => a -> DeviceProviderProviderHiddenCallback -> m SignalHandlerId
- wrap_DeviceProviderProviderHiddenCallback :: DeviceProviderProviderHiddenCallback -> Ptr () -> CString -> Ptr () -> IO ()
- type C_DeviceProviderProviderUnhiddenCallback = Ptr () -> CString -> Ptr () -> IO ()
- type DeviceProviderProviderUnhiddenCallback = Text -> IO ()
- data DeviceProviderProviderUnhiddenSignalInfo
- afterDeviceProviderProviderUnhidden :: (GObject a, MonadIO m) => a -> DeviceProviderProviderUnhiddenCallback -> m SignalHandlerId
- genClosure_DeviceProviderProviderUnhidden :: DeviceProviderProviderUnhiddenCallback -> IO Closure
- mk_DeviceProviderProviderUnhiddenCallback :: C_DeviceProviderProviderUnhiddenCallback -> IO (FunPtr C_DeviceProviderProviderUnhiddenCallback)
- noDeviceProviderProviderUnhiddenCallback :: Maybe DeviceProviderProviderUnhiddenCallback
- onDeviceProviderProviderUnhidden :: (GObject a, MonadIO m) => a -> DeviceProviderProviderUnhiddenCallback -> m SignalHandlerId
- wrap_DeviceProviderProviderUnhiddenCallback :: DeviceProviderProviderUnhiddenCallback -> Ptr () -> CString -> Ptr () -> IO ()
Exported types
newtype DeviceProvider Source #
GObject DeviceProvider Source # | |
IsObject DeviceProvider Source # | |
IsObject DeviceProvider Source # | |
IsDeviceProvider DeviceProvider Source # | |
((~) * info (ResolveDeviceProviderMethod t DeviceProvider), MethodInfo * info DeviceProvider p) => IsLabel t (DeviceProvider -> p) Source # | |
((~) * info (ResolveDeviceProviderMethod t DeviceProvider), MethodInfo * info DeviceProvider p) => IsLabelProxy t (DeviceProvider -> p) Source # | |
HasAttributeList * DeviceProvider Source # | |
type AttributeList DeviceProvider Source # | |
type SignalList DeviceProvider Source # | |
class GObject o => IsDeviceProvider o Source #
toDeviceProvider :: IsDeviceProvider o => o -> IO DeviceProvider Source #
Methods
canMonitor
data DeviceProviderCanMonitorMethodInfo Source #
((~) * signature (m Bool), MonadIO m, IsDeviceProvider a) => MethodInfo * DeviceProviderCanMonitorMethodInfo a signature Source # | |
deviceProviderCanMonitor :: (HasCallStack, MonadIO m, IsDeviceProvider a) => a -> m Bool Source #
No description available in the introspection data.
deviceAdd
data DeviceProviderDeviceAddMethodInfo Source #
((~) * signature (b -> m ()), MonadIO m, IsDeviceProvider a, IsDevice b) => MethodInfo * DeviceProviderDeviceAddMethodInfo a signature Source # | |
deviceProviderDeviceAdd Source #
:: (HasCallStack, MonadIO m, IsDeviceProvider a, IsDevice b) | |
=> a |
|
-> b |
|
-> m () |
Posts a message on the provider's Bus
to inform applications that
a new device has been added.
This is for use by subclasses.
Since: 1.4
deviceRemove
data DeviceProviderDeviceRemoveMethodInfo Source #
((~) * signature (b -> m ()), MonadIO m, IsDeviceProvider a, IsDevice b) => MethodInfo * DeviceProviderDeviceRemoveMethodInfo a signature Source # | |
deviceProviderDeviceRemove Source #
:: (HasCallStack, MonadIO m, IsDeviceProvider a, IsDevice b) | |
=> a |
|
-> b |
|
-> m () |
Posts a message on the provider's Bus
to inform applications that
a device has been removed.
This is for use by subclasses.
Since: 1.4
getBus
data DeviceProviderGetBusMethodInfo Source #
((~) * signature (m Bus), MonadIO m, IsDeviceProvider a) => MethodInfo * DeviceProviderGetBusMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsDeviceProvider a) | |
=> a |
|
-> m Bus | Returns: a |
Gets the Bus
of this DeviceProvider
Since: 1.4
getDevices
data DeviceProviderGetDevicesMethodInfo Source #
((~) * signature (m [Device]), MonadIO m, IsDeviceProvider a) => MethodInfo * DeviceProviderGetDevicesMethodInfo a signature Source # | |
deviceProviderGetDevices Source #
:: (HasCallStack, MonadIO m, IsDeviceProvider a) | |
=> a |
|
-> m [Device] |
Gets a list of devices that this provider understands. This may actually probe the hardware if the provider is not currently started.
Since: 1.4
getFactory
data DeviceProviderGetFactoryMethodInfo Source #
((~) * signature (m DeviceProviderFactory), MonadIO m, IsDeviceProvider a) => MethodInfo * DeviceProviderGetFactoryMethodInfo a signature Source # | |
deviceProviderGetFactory Source #
:: (HasCallStack, MonadIO m, IsDeviceProvider a) | |
=> a |
|
-> m DeviceProviderFactory | Returns: the |
Retrieves the factory that was used to create this device provider.
Since: 1.4
getHiddenProviders
data DeviceProviderGetHiddenProvidersMethodInfo Source #
((~) * signature (m [Text]), MonadIO m, IsDeviceProvider a) => MethodInfo * DeviceProviderGetHiddenProvidersMethodInfo a signature Source # | |
deviceProviderGetHiddenProviders Source #
:: (HasCallStack, MonadIO m, IsDeviceProvider a) | |
=> a |
|
-> m [Text] | Returns:
a list of hidden providers factory names or |
Get the provider factory names of the DeviceProvider
instances that
are hidden by provider
.
Since: 1.6
hideProvider
data DeviceProviderHideProviderMethodInfo Source #
((~) * signature (Text -> m ()), MonadIO m, IsDeviceProvider a) => MethodInfo * DeviceProviderHideProviderMethodInfo a signature Source # | |
deviceProviderHideProvider Source #
:: (HasCallStack, MonadIO m, IsDeviceProvider a) | |
=> a |
|
-> Text |
|
-> m () |
Make provider
hide the devices from the factory with name
.
This function is used when provider
will also provide the devices reported
by provider factory name
. A monitor should stop monitoring the
device provider with name
to avoid duplicate devices.
Since: 1.6
register
deviceProviderRegister Source #
:: (HasCallStack, MonadIO m, IsPlugin a) | |
=> Maybe a |
|
-> Text |
|
-> Word32 |
|
-> GType |
|
-> m Bool |
Create a new device providerfactory capable of instantiating objects of the
type
and add the factory to plugin
.
Since: 1.4
start
data DeviceProviderStartMethodInfo Source #
((~) * signature (m Bool), MonadIO m, IsDeviceProvider a) => MethodInfo * DeviceProviderStartMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsDeviceProvider a) | |
=> a |
|
-> m Bool | Returns: |
Starts providering the devices. This will cause GST_MESSAGE_DEVICE_ADDED
and GST_MESSAGE_DEVICE_REMOVED
messages to be posted on the provider's bus
when devices are added or removed from the system.
Since the DeviceProvider
is a singleton,
deviceProviderStart
may already have been called by another
user of the object, deviceProviderStop
needs to be called the same
number of times.
Since: 1.4
stop
data DeviceProviderStopMethodInfo Source #
((~) * signature (m ()), MonadIO m, IsDeviceProvider a) => MethodInfo * DeviceProviderStopMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsDeviceProvider a) | |
=> a |
|
-> m () |
Decreases the use-count by one. If the use count reaches zero, this
DeviceProvider
will stop providering the devices. This needs to be
called the same number of times that deviceProviderStart
was called.
Since: 1.4
unhideProvider
data DeviceProviderUnhideProviderMethodInfo Source #
((~) * signature (Text -> m ()), MonadIO m, IsDeviceProvider a) => MethodInfo * DeviceProviderUnhideProviderMethodInfo a signature Source # | |
deviceProviderUnhideProvider Source #
:: (HasCallStack, MonadIO m, IsDeviceProvider a) | |
=> a |
|
-> Text |
|
-> m () |
Make provider
unhide the devices from factory name
.
This function is used when provider
will no longer provide the devices
reported by provider factory name
. A monitor should start
monitoring the devices from provider factory name
in order to see
all devices again.
Since: 1.6
Signals
providerHidden
type DeviceProviderProviderHiddenCallback = Text -> IO () Source #
afterDeviceProviderProviderHidden :: (GObject a, MonadIO m) => a -> DeviceProviderProviderHiddenCallback -> m SignalHandlerId Source #
genClosure_DeviceProviderProviderHidden :: DeviceProviderProviderHiddenCallback -> IO Closure Source #
mk_DeviceProviderProviderHiddenCallback :: C_DeviceProviderProviderHiddenCallback -> IO (FunPtr C_DeviceProviderProviderHiddenCallback) Source #
onDeviceProviderProviderHidden :: (GObject a, MonadIO m) => a -> DeviceProviderProviderHiddenCallback -> m SignalHandlerId Source #
wrap_DeviceProviderProviderHiddenCallback :: DeviceProviderProviderHiddenCallback -> Ptr () -> CString -> Ptr () -> IO () Source #
providerUnhidden
GObject a, MonadIO m) => a -> DeviceProviderProviderUnhiddenCallback -> m SignalHandlerId Source #
:: (C_DeviceProviderProviderUnhiddenCallback -> IO (FunPtr C_DeviceProviderProviderUnhiddenCallback) Source #
::GObject a, MonadIO m) => a -> DeviceProviderProviderUnhiddenCallback -> m SignalHandlerId Source #
:: (