ALBA
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
albaDevice Class Reference

#include <albaDevice.h>

Inheritance diagram for albaDevice:
Inheritance graph
[legend]
Collaboration diagram for albaDevice:
Collaboration graph
[legend]

Public Types

enum  DEVICE_MINIMUM_ID { MIN_DEVICE_ID =1000000 }
 
enum  DEVICE_WIDGET_ID {
  ID_NAME =MINID , ID_ACTIVATE , ID_SHUTDOWN , ID_AUTO_START ,
  ID_LAST
}
 
- Public Types inherited from albaAgentEventQueue
enum  DispatchModalities { SelfProcessMode = 0 , BroadcastMode }
 
enum  PopModalities { SingleEventMode = 0 , MultipleEventMode }
 
enum  PushModalities { DispatchEventMode =0 , PollingMode }
 

Public Member Functions

 albaTypeMacro (albaDevice, albaAgentThreaded)
 
unsigned long GetID ()
 
void SetID (unsigned long id)
 
virtual void SetName (const char *name)
 
void SetAutoStart (bool flag)
 
bool GetAutoStart ()
 
void AutoStartOn ()
 
void AutoStartOff ()
 
virtual int Start ()
 
virtual void Stop ()
 
virtual int StartUp ()
 
void SetPersistentFlag (bool flag)
 
bool GetPersistentFlag ()
 
bool IsPersistent ()
 
albaGUIGetGui ()
 
virtual void UpdateGui ()
 
virtual void OnEvent (albaEventBase *event)
 
 ALBA_ID_DEC (DEVICE_STARTED)
 
 ALBA_ID_DEC (DEVICE_STOPPED)
 
- Public Member Functions inherited from albaAgentThreaded
 ALBA_ID_DEC (AGENT_ASYNC_DISPATCH)
 
 albaTypeMacro (albaAgentThreaded, albaAgentEventQueue)
 
int GetThreaded ()
 
void SetThreaded (int flag)
 
int Update ()
 
virtual void OnEvent (albaEventBase *event)
 
void AsyncSendEvent (albaObserver *target, albaEventBase *event, albaID channel=MCH_UP)
 
void AsyncSendEvent (albaObserver *target, void *sender, albaID id, albaID channel=MCH_UP, void *data=NULL)
 
void AsyncInvokeEvent (albaEventBase *event, albaID channel=MCH_UP)
 
void AsyncInvokeEvent (albaID id, albaID channel=MCH_UP, void *data=NULL)
 
- Public Member Functions inherited from albaAgentEventQueue
 ALBA_ID_DEC (EVENT_DISPATCH)
 
 albaTypeMacro (albaAgentEventQueue, albaAgent)
 
bool PushEvent (albaEventBase &event)
 
virtual bool PushEvent (albaEventBase *event)
 
bool PushEvent (albaID event_id, void *sender, void *data=NULL)
 
albaEventBasePeekEvent ()
 
albaEventBasePeekLastEvent ()
 
int GetQueueSize ()
 
bool IsQueueEmpty ()
 
virtual bool DispatchEvents ()
 
void SetDequeueMode (int mode)
 
int GetDequeueMode ()
 
void SetDequeueModeToMultipleEvent ()
 
void SetDequeueModeToSingleEvent ()
 
void SetDispatchMode (int mode)
 
int GetDispatchMode ()
 
void SetDispatchModeToSelfProcess ()
 
void SetDispatchModeToBroadcast ()
 
void SetPushMode (int mode)
 
int GetPushMode ()
 
void SetPushModeToDispatchEvent ()
 
void SetPushModeToPolling ()
 
- Public Member Functions inherited from albaAgent
 albaAbstractTypeMacro (albaAgent, albaReferenceCounted)
 
 ALBA_ID_DEC (AGENT_INITIALIZE)
 
void AddObserver (albaObserver *listener, albaID channel=MCH_UP)
 
void RemoveObserver (albaObserver *listener)
 
void RemoveAllObservers ()
 
virtual void OnEvent (albaEventBase *event)
 
bool HasObservers (albaID channel)
 
void GetObservers (albaID channel, std::vector< albaObserver * > &olist)
 
int Initialize ()
 
void Shutdown ()
 
int IsInitialized ()
 
virtual void SetName (const char *name)
 
const char * GetName ()
 
- Public Member Functions inherited from albaReferenceCounted
 albaReferenceCounted ()
 
virtual ~albaReferenceCounted ()
 
 albaAbstractTypeMacro (albaReferenceCounted, albaObject)
 
virtual void Delete ()
 
void Register (void *obj)
 
virtual void UnRegister (void *obj)
 
int GetReferenceCount ()
 
void SetReferenceCount (int)
 
- Public Member Functions inherited from albaObject
 albaObject ()
 
virtual ~albaObject ()
 
virtual void Delete ()
 
virtual const char * GetTypeName () const
 
virtual bool IsA (const char *type_name) const
 
virtual bool IsA (const albaTypeID &type_id) const
 
virtual albaObjectNewObjectInstance () const =0
 
virtual const albaTypeIDGetTypeId () const
 
virtual void Print (std::ostream &os, const int indent=0) const
 
 albaObject (const albaObject &c)
 
- Public Member Functions inherited from albaObserver
 albaObserver ()
 
virtual ~albaObserver ()
 
virtual void OnEvent (albaEventBase *e)=0
 
- Public Member Functions inherited from albaEventBroadcaster
 albaEventBroadcaster (void *owner=NULL)
 
virtual ~albaEventBroadcaster ()
 
 albaEventBroadcaster (const albaEventBroadcaster &c)
 
void AddObserver (albaObserver *obj)
 
void AddObserver (albaObserver &obj)
 
albaObserverCallbackAddObserverCallback (void(*f)(void *sender, albaID eid, void *clientdata, void *calldata))
 
bool RemoveObserver (albaObserver *obj)
 
void RemoveAllObservers ()
 
bool IsObserver (albaObserver *obj)
 
bool HasObservers ()
 
void GetObservers (std::vector< albaObserver * > &olist)
 
void InvokeEvent (albaEventBase &e)
 
void InvokeEvent (albaEventBase *e)
 
void InvokeEvent (void *sender, albaID id=ID_NO_EVENT, void *data=NULL)
 
void SetChannel (albaID ch)
 
albaID GetChannel ()
 
virtual void SetListener (albaObserver *o)
 
- Public Member Functions inherited from albaEventSender
 albaEventSender ()
 
virtual void SetListener (albaObserver *o)
 
virtual albaObserverGetListener ()
 
virtual bool HasListener ()
 
virtual void InvokeEvent (albaEventBase &e)
 
virtual void InvokeEvent (albaEventBase *e)
 
virtual void InvokeEvent (void *sender, albaID id=ID_NO_EVENT, void *data=NULL)
 
- Public Member Functions inherited from albaStorable
 albaStorable ()
 
int Store (albaStorageElement *element)
 
int Restore (albaStorageElement *element)
 
albaObjectCastToObject ()
 
bool IsStorable ()
 

Protected Member Functions

 albaDevice ()
 
virtual ~albaDevice ()
 
virtual int InternalInitialize ()
 
virtual void CreateGui ()
 
virtual int InternalStore (albaStorageElement *node)
 
virtual int InternalRestore (albaStorageElement *node)
 
- Protected Member Functions inherited from albaAgentThreaded
 albaAgentThreaded ()
 
virtual ~albaAgentThreaded ()
 
virtual void RequestForDispatching ()
 
void StopThread ()
 
virtual int InternalInitialize ()
 
virtual void InternalShutdown ()
 
virtual int InternalUpdate ()
 
int GetActiveFlag ()
 
void SignalNewMessage ()
 
void WaitForNewMessage ()
 
- Protected Member Functions inherited from albaAgentEventQueue
 albaAgentEventQueue ()
 
virtual ~albaAgentEventQueue ()
 
albaEventBasePopEvent ()
 
int PopEvent (albaEventBase &event)
 
virtual int PopEvent (albaEventBase *&event)
 
bool GetDispatched ()
 
void SetDispatched (bool value=true)
 
virtual void RequestForDispatching ()
 
- Protected Member Functions inherited from albaAgent
 albaAgent ()
 
virtual ~albaAgent ()
 
virtual int InternalInitialize ()
 
virtual void InternalShutdown ()
 
void InvokeEvent (albaEventBase &event, albaID channel=-1)
 
void InvokeEvent (albaEventBase *event, albaID channel=-1)
 
void InvokeEvent (void *sender, int id, albaID channel=MCH_UP, void *data=NULL)
 
virtual int InternalStore (albaStorageElement *node)=0
 
virtual int InternalRestore (albaStorageElement *node)=0
 

Protected Attributes

albaGUIm_Gui
 
albaID m_ID
 
int m_AutoStart
 
int m_Start
 
bool m_Locked
 
bool m_PersistentFalg
 
- Protected Attributes inherited from albaAgentThreaded
albaMultiThreaderm_Threader
 
mmuThreadInfoStructm_ThreadData
 
int m_ThreadId
 
int m_Threaded
 
int m_ActiveFlag
 
albaMutexLockm_Gate
 
- Protected Attributes inherited from albaAgentEventQueue
InternalEventQueue * m_EventQueue
 
albaMutexLockm_Mutex
 
int m_DispatchMode
 
int m_DequeueMode
 
int m_PushMode
 
bool m_Dispatched
 
- Protected Attributes inherited from albaAgent
albaString m_Name
 
bool m_Initialized
 
std::vector< albaEventBroadcaster * > m_Channels
 
- Protected Attributes inherited from albaReferenceCounted
int m_ReferenceCount
 
- Protected Attributes inherited from albaObject
bool m_HeapFlag
 
- Protected Attributes inherited from albaEventBroadcaster
albaObserversList m_Observers
 
albaID m_Channel
 
- Protected Attributes inherited from albaEventSender
albaObserverm_Listener
 
- Protected Attributes inherited from albaStorable
bool m_Storable
 

Additional Inherited Members

- Static Public Member Functions inherited from albaObject
static const char * GetStaticTypeName ()
 
static bool IsStaticType (const char *type_name)
 
static bool IsStaticType (const albaTypeID &type_id)
 
static const albaTypeIDGetStaticTypeId ()
 
static albaObjectSafeDownCast (albaObject *o)
 
- Static Public Member Functions inherited from albaStorable
static albaStorableSafeCastToObject (albaObject *o)
 
- Protected Types inherited from albaEventBroadcaster
typedef std::list< albaObserver * > albaObserversList
 
- Static Protected Member Functions inherited from albaAgentThreaded
static void UpdateLoop (mmuThreadInfoStruct *data)
 

Detailed Description

This abstract class manages function calls coming from devices and issue specific events to interactors.

Usually all evetns sent by devices are synchronized with the application by sending a request for dispatching to the device manager. Devices are typically managed by the device manager object, whose responsible for keeping a list of the allocated devices, storing this list and all devices configurations, and restoring all devices from a saved file. Devices are devided in two cathegories, persistent and non persistent. The first ones are not saved and restored, but have a life span corresponding to the application's one.

See also
albaDeviceManger
Todo:
  • check about ID restoring

Definition at line 39 of file albaDevice.h.

Member Enumeration Documentation

◆ DEVICE_MINIMUM_ID

non persistent device IDs start from ALBA_MIN_DEVICE_ID.

This means I cannot have more then MIN_DEVICE_ID persistent devices (i.e. devices defined by application, e.g. Mouse and remote devices...)

Enumerator
MIN_DEVICE_ID 

Definition at line 45 of file albaDevice.h.

◆ DEVICE_WIDGET_ID

Enumerator
ID_NAME 
ID_ACTIVATE 
ID_SHUTDOWN 
ID_AUTO_START 
ID_LAST 

Definition at line 60 of file albaDevice.h.

Constructor & Destructor Documentation

◆ albaDevice()

albaDevice::albaDevice ( )
protected

◆ ~albaDevice()

virtual albaDevice::~albaDevice ( )
protectedvirtual

Member Function Documentation

◆ albaTypeMacro()

albaDevice::albaTypeMacro ( albaDevice  ,
albaAgentThreaded   
)

◆ GetID()

unsigned long albaDevice::GetID ( )
inline

Get the ID for this device.

This is usually set by albaDeviceSet

Definition at line 73 of file albaDevice.h.

◆ SetID()

void albaDevice::SetID ( unsigned long  id)
inline

Set ID for this device.

This is usually set by albaDeviceSet

Definition at line 77 of file albaDevice.h.

◆ SetName()

virtual void albaDevice::SetName ( const char *  name)
virtual

Set the Device name and rise an event to advise consumers.

Reimplemented from albaAgent.

◆ SetAutoStart()

void albaDevice::SetAutoStart ( bool  flag)
inline

Set the AutoStart flag.

This makes the device automatically restart net time the application is started

Definition at line 84 of file albaDevice.h.

◆ GetAutoStart()

bool albaDevice::GetAutoStart ( )
inline

Definition at line 85 of file albaDevice.h.

◆ AutoStartOn()

void albaDevice::AutoStartOn ( )
inline

Enable autostarting of this device.

Definition at line 89 of file albaDevice.h.

◆ AutoStartOff()

void albaDevice::AutoStartOff ( )
inline

Disable autostarting of this device.

Definition at line 93 of file albaDevice.h.

◆ Start()

virtual int albaDevice::Start ( )
virtual

use this function to start (initialize) the device

◆ Stop()

virtual void albaDevice::Stop ( )
virtual

use this function to stop (shutdown) the device

◆ StartUp()

virtual int albaDevice::StartUp ( )
inlinevirtual

This checks AutoStart flag and if true Initialize the device Return false if AutoStart is OFF or initialization failed.

Definition at line 104 of file albaDevice.h.

◆ SetPersistentFlag()

void albaDevice::SetPersistentFlag ( bool  flag)
inline

set peristent flag: a persistent device is not stored/restored and neither removed when settings are loaded from disk.

It's created by application logic and not by user! Example of persistent devices are mouse and remote devices

Definition at line 111 of file albaDevice.h.

◆ GetPersistentFlag()

bool albaDevice::GetPersistentFlag ( )
inline

Definition at line 112 of file albaDevice.h.

◆ IsPersistent()

bool albaDevice::IsPersistent ( )
inline

return true if it's a persistent device.

See also
SetPersistentFlag()

Definition at line 115 of file albaDevice.h.

◆ GetGui()

albaGUI * albaDevice::GetGui ( )

Return pointer to the GUI.

◆ UpdateGui()

virtual void albaDevice::UpdateGui ( )
virtual

used to force Gui to update its content

Reimplemented in albaDeviceButtonsPadTracker.

◆ OnEvent()

virtual void albaDevice::OnEvent ( albaEventBase event)
virtual

process events sent to the device

Reimplemented from albaAgentThreaded.

Reimplemented in albaDeviceButtonsPadMouse, albaDeviceButtonsPadTracker, and albaDeviceSet.

◆ InternalInitialize()

virtual int albaDevice::InternalInitialize ( )
protectedvirtual

◆ CreateGui()

virtual void albaDevice::CreateGui ( )
protectedvirtual

Create the dialog that show the interface for settings.

Reimplemented in albaDeviceButtonsPadTracker.

◆ InternalStore()

virtual int albaDevice::InternalStore ( albaStorageElement node)
protectedvirtual

This is used to allow nested serialization of subclasses.

This function is called by Store and is reimplemented in subclasses. Each subclass can store its own subelements which are closed inside the "Device" element. Reimplemented functions should first call Superclass implementation.

Implements albaStorable.

Reimplemented in albaDeviceButtonsPadTracker, and albaDeviceSet.

◆ InternalRestore()

virtual int albaDevice::InternalRestore ( albaStorageElement node)
protectedvirtual

This function fills in the device with settings restored from the node.

Subclasses should reimplement it to restore custom settings. Reimplemented functions should first call Superclass implementation.

Implements albaStorable.

Reimplemented in albaDeviceButtonsPadTracker, and albaDeviceSet.

Member Data Documentation

◆ m_Gui

albaGUI* albaDevice::m_Gui
protected

Definition at line 150 of file albaDevice.h.

◆ m_ID

albaID albaDevice::m_ID
protected

Definition at line 151 of file albaDevice.h.

◆ m_AutoStart

int albaDevice::m_AutoStart
protected

Definition at line 152 of file albaDevice.h.

◆ m_Start

int albaDevice::m_Start
protected

Definition at line 153 of file albaDevice.h.

◆ m_Locked

bool albaDevice::m_Locked
protected

Definition at line 154 of file albaDevice.h.

◆ m_PersistentFalg

bool albaDevice::m_PersistentFalg
protected

Definition at line 155 of file albaDevice.h.


The documentation for this class was generated from the following file: