OSDL::CommonModule Class Reference

Root of all OSDL modules. More...

#include <OSDLBasic.h>

Collaboration diagram for OSDL::CommonModule:

Collaboration graph
[legend]

List of all members.

Public Types

typedef Ceylan::Sint32 BackendReturnCode
 Data type of back-end return code:.

Public Member Functions

virtual bool hasVideoModule () const
 Tells whether a video module is available.
virtual Video::VideoModulegetVideoModule () const
 Returns current video module.
virtual bool hasEventsModule () const
 Tells whether a video module is available.
virtual Events::EventsModulegetEventsModule () const
 Returns current events module.
virtual bool hasAudioModule () const
 Tells whether a video module is available.
virtual Audio::AudioModulegetAudioModule () const
 Returns current audio module.
virtual Ceylan::Flags getFlags () const
 Returns flags used for this common module.
virtual bool hasCDROMDriveHandler () const
 Tells whether a CD-ROM drive handler is available.
virtual CDROMDriveHandlergetCDROMDriveHandler () const
 Returns current CD-ROM handler.
virtual const std::string toString (Ceylan::VerbosityLevels level=Ceylan::high) const
 Returns an user-friendly description of the state of this object.

Static Public Member Functions

static std::string InterpretFlags (Ceylan::Flags flags)
 Describes specified top-level flags used to initialize the SDL back-end.
static std::string DescribeEnvironmentVariables ()
 Returns a summary about the possible use of general-purpose* environment variables, for the selected back-end, expressed in specified format.
static bool IsBackendInitialized ()
 Tells whether the back-end is initialized.

Static Public Attributes

static const BackendReturnCode BackendSuccess = 0
 Exported logical value for back-end success.
static const BackendReturnCode BackendError = -1
 Exported logical value for back-end success/.
static const Ceylan::Flags UseTimer = 0x00000001
 Initializes the timer subsystem.
static const Ceylan::Flags UseAudio = 0x00000010
 Initializes the audio subsystem.
static const Ceylan::Flags UseVideo = 0x00000020
 Initializes the video subsystem.
static const Ceylan::Flags UseCDROM = 0x00000100
 Initializes the CD-ROM subsystem.
static const Ceylan::Flags UseJoystick = 0x00000200
 Initializes the joystick subsystem, implies initializing the video (UseVideo).
static const Ceylan::Flags UseKeyboard = 0x4000
 Initializes the keyboard subsystem, implies initializing the video (UseVideo).
static const Ceylan::Flags UseMouse = 0x8000
 Initializes the mouse subsystem, implies initializing the video (UseVideo).
static const Ceylan::Flags UseEvents
 Initializes the events subsystem, implies initializing the video (UseVideo).
static const Ceylan::Flags UseEverything = 0x0000FFFF
 Initializes all above subsystems.
static const Ceylan::Flags NoParachute = 0x00100000
 Do not catch fatal signals.
static const Ceylan::Flags UseEventThread = 0x01000000
 Initializes the event thread.

Static Protected Member Functions

static Ceylan::Flags AutoCorrectFlags (Ceylan::Flags inputFlags)
 Corrects the input flags, formatted as parameters used to create the common module, so that they can be retain directly, without further change.

Protected Attributes

Video::VideoModule_video
 Pointer to the current video module used, if any.
Events::EventsModule_events
 Pointer to the current events module used, if any.
Audio::AudioModule_audio
 Pointer to the current video module used, if any.
Ceylan::Flags _flags
 Flags used for this common module.
CDROMDriveHandler_cdromHandler
 Pointer to the current CD-ROM drive handler used, if any.

Static Protected Attributes

static bool _BackendInitialized = false
 Tells whether the back-end used by OSDL is initialized.
static CommonModule_CurrentCommonModule = 0
 The common module being currently used, if any.
static const std::string _SDLEnvironmentVariables [] = {}
 Array of all known general purpose environment variables, for SDL back-end.

Private Member Functions

 CommonModule (Ceylan::Flags flags)
 Initializes OSDL system common module.
virtual ~CommonModule () throw ()
 Stops OSDL system common module.

Friends

OSDL_DLL friend CommonModulegetCommonModule (Ceylan::Flags flags)
 This friend function is intended to be the initial means of getting a reference to the common module: this is the entry point to the whole OSDL system.
OSDL_DLL friend bool hasExistingCommonModule ()
 Tells whether there already exists a common module.
OSDL_DLL friend CommonModulegetExistingCommonModule ()
 This friend function is intended to be the usual means of getting a reference to the common module, which must already exist.
OSDL_DLL friend void stop ()
 This friend function allows to shutdown all OSDL services.


Detailed Description

Root of all OSDL modules.

From this common module, all other modules can be triggered.

Definition at line 129 of file OSDLBasic.h.


Member Typedef Documentation

typedef Ceylan::Sint32 OSDL::CommonModule::BackendReturnCode

Data type of back-end return code:.

Definition at line 196 of file OSDLBasic.h.


Constructor & Destructor Documentation

OSDL::CommonModule::CommonModule ( Ceylan::Flags  flags  )  [explicit, private]

Initializes OSDL system common module.

Parameters:
flags parameters to initialize SDL.
Note:
To have the common module created, use getCommonModule.
Exceptions:
OSDL::Exception if the creation failed.

CommonModule::~CommonModule (  )  throw () [private, virtual]

Stops OSDL system common module.

See also:
SDL_Quit defined in http://sdldoc.csn.ul.ie/sdlquit.php.

Definition at line 471 of file OSDLBasic.cc.

References _audio, _cdromHandler, _events, and _video.


Member Function Documentation

static Ceylan::Flags OSDL::CommonModule::AutoCorrectFlags ( Ceylan::Flags  inputFlags  )  [static, protected]

Corrects the input flags, formatted as parameters used to create the common module, so that they can be retain directly, without further change.

For example, if an event source such as a joystick is selected, then the video module must be activated, even if not explicitly selected, otherwise no event at all will be available. Thus the method will fix the flags so that they are consistent.

string CommonModule::DescribeEnvironmentVariables (  )  [static]

Returns a summary about the possible use of general-purpose* environment variables, for the selected back-end, expressed in specified format.

Note:
The SDL back-end can be partly driven by a set of environment variables.

Definition at line 758 of file OSDLBasic.cc.

References _SDLEnvironmentVariables, and toString().

Audio::AudioModule & CommonModule::getAudioModule (  )  const [virtual]

Returns current audio module.

Exceptions:
OSDL::Exception is not audio module is available.

Definition at line 653 of file OSDLBasic.cc.

References _audio.

Referenced by OSDL::Audio::getExistingAudioModule().

CDROMDriveHandler & CommonModule::getCDROMDriveHandler (  )  const [virtual]

Returns current CD-ROM handler.

Exceptions:
OSDL::Exception is not CD-ROM handler is available.

Definition at line 683 of file OSDLBasic.cc.

References _cdromHandler.

Events::EventsModule & CommonModule::getEventsModule (  )  const [virtual]

Returns current events module.

Exceptions:
OSDL::Exception is not events module is available.

Definition at line 631 of file OSDLBasic.cc.

References _events.

Referenced by OSDL::Engine::Scheduler::schedule().

Flags CommonModule::getFlags (  )  const [virtual]

Returns flags used for this common module.

Definition at line 666 of file OSDLBasic.cc.

References _flags.

Video::VideoModule & CommonModule::getVideoModule (  )  const [virtual]

bool CommonModule::hasAudioModule (  )  const [virtual]

Tells whether a video module is available.

Definition at line 644 of file OSDLBasic.cc.

References _audio.

bool CommonModule::hasCDROMDriveHandler (  )  const [virtual]

Tells whether a CD-ROM drive handler is available.

Definition at line 675 of file OSDLBasic.cc.

References _cdromHandler.

bool CommonModule::hasEventsModule (  )  const [virtual]

Tells whether a video module is available.

Definition at line 622 of file OSDLBasic.cc.

References _events.

bool CommonModule::hasVideoModule (  )  const [virtual]

static std::string OSDL::CommonModule::InterpretFlags ( Ceylan::Flags  flags  )  [static]

Describes specified top-level flags used to initialize the SDL back-end.

Parameters:
flags 
Note:
One shall not call this method on flags used with setMode or for a surface. Use VideoModule::interpretFlags or Surface::interpretFlags instead, since their meaning is different.

Referenced by toString().

bool CommonModule::IsBackendInitialized (  )  [static]

Tells whether the back-end is initialized.

Definition at line 819 of file OSDLBasic.cc.

References _BackendInitialized.

Referenced by OSDL::Events::EventsModule::enterMainLoop(), and OSDL::Events::EventsModule::GetMillisecondsSinceStartup().

const string CommonModule::toString ( Ceylan::VerbosityLevels  level = Ceylan::high  )  const [virtual]

Returns an user-friendly description of the state of this object.

Parameters:
level the requested verbosity level.
Note:
Text output format is determined from overall settings.
See also:
Ceylan::TextDisplayable

Definition at line 696 of file OSDLBasic.cc.

References _audio, _cdromHandler, _events, _flags, _video, OSDL::GetVersion(), InterpretFlags(), and OSDL::Video::Pixels::toString().

Referenced by DescribeEnvironmentVariables().


Friends And Related Function Documentation

OSDL_DLL friend CommonModule& getCommonModule ( Ceylan::Flags  flags  )  [friend]

This friend function is intended to be the initial means of getting a reference to the common module: this is the entry point to the whole OSDL system.

Parameters:
flags The requested flags for this common root module, any OR'd combination of CommonModule static flags, so that associated subsystems are instanciated.
See also:
UseTimer, UseAudio, UseVideo, UseCDROM, UseJoystick, UseEverything, NoParachute, UseEventThread, etc.
Note:
UseVideo is required to start the event loop, so it is implied by the UseJoystick flag.

This method is not static to avoid pitfalls of static initializer ordering.

OSDL_DLL friend CommonModule& getExistingCommonModule (  )  [friend]

This friend function is intended to be the usual means of getting a reference to the common module, which must already exist.

If not, a fatal error will be triggered (not an exception to avoid handling it in all user methods).

Note:
This function is mainly useful for the OSDL internals, if sub-modules, such as the event module, needed access to the common module.
See also:
hasCommonModule()
Note:
This method is not static to avoid pitfalls of static initializer ordering.

OSDL_DLL friend bool hasExistingCommonModule (  )  [friend]

Tells whether there already exists a common module.

OSDL_DLL friend void stop (  )  [friend]

This friend function allows to shutdown all OSDL services.


Member Data Documentation

Pointer to the current video module used, if any.

Definition at line 467 of file OSDLBasic.h.

Referenced by getAudioModule(), hasAudioModule(), toString(), and ~CommonModule().

bool CommonModule::_BackendInitialized = false [static, protected]

Tells whether the back-end used by OSDL is initialized.

Definition at line 487 of file OSDLBasic.h.

Referenced by IsBackendInitialized().

Pointer to the current CD-ROM drive handler used, if any.

Definition at line 477 of file OSDLBasic.h.

Referenced by getCDROMDriveHandler(), hasCDROMDriveHandler(), toString(), and ~CommonModule().

The common module being currently used, if any.

Definition at line 491 of file OSDLBasic.h.

Pointer to the current events module used, if any.

Definition at line 462 of file OSDLBasic.h.

Referenced by getEventsModule(), hasEventsModule(), toString(), and ~CommonModule().

Ceylan::Flags OSDL::CommonModule::_flags [protected]

Flags used for this common module.

Definition at line 472 of file OSDLBasic.h.

Referenced by getFlags(), and toString().

const string CommonModule::_SDLEnvironmentVariables = {} [static, protected]

Array of all known general purpose environment variables, for SDL back-end.

Definition at line 500 of file OSDLBasic.h.

Referenced by DescribeEnvironmentVariables().

Pointer to the current video module used, if any.

Definition at line 457 of file OSDLBasic.h.

Referenced by getVideoModule(), hasVideoModule(), toString(), and ~CommonModule().

Exported logical value for back-end success/.

Prefer only testing against SDLSuccess: if ( [...] != BackendSuccess ) ...

Definition at line 212 of file OSDLBasic.h.

const Ceylan::Flags CommonModule::NoParachute = 0x00100000 [static]

Do not catch fatal signals.

By default fatal signals are caught, so that if your program crashes, the resulting exception will be intercepted in order to clean up and return the display to a usable state.

However this system does not behave nicely with debuggers, so it might be disabled (mostly for debugging purpose) with this flag.

Note:
If this flag is used, fatal signals will not be caught which may, on some platforms, force the user to reboot. For instance, if a X11 fullscreen application crashes or exits without quitting properly, using the 'NoParachute' flag leaves the desktop to the fullscreen application resolution, that is often far lower than the original desktop resolution, which annoys the user.

Definition at line 426 of file OSDLBasic.h.

const Ceylan::Flags CommonModule::UseAudio = 0x00000010 [static]

Initializes the audio subsystem.

Definition at line 355 of file OSDLBasic.h.

Referenced by OSDL::Audio::AudioModule::AudioModule(), and OSDL::Audio::AudioModule::~AudioModule().

const Ceylan::Flags CommonModule::UseCDROM = 0x00000100 [static]

Initializes the CD-ROM subsystem.

Definition at line 363 of file OSDLBasic.h.

Referenced by OSDL::CDROMDriveHandler::CDROMDriveHandler(), and OSDL::CDROMDriveHandler::~CDROMDriveHandler().

const Ceylan::Flags CommonModule::UseEvents [static]

Initial value:

Initializes the events subsystem, implies initializing the video (UseVideo).

This is just a convenience flag gathering all event-related flags (UseJoystick, UseKeyboard, UseMouse, etc.)

Definition at line 399 of file OSDLBasic.h.

const Ceylan::Flags CommonModule::UseEventThread = 0x01000000 [static]

Initializes the event thread.

Definition at line 430 of file OSDLBasic.h.

const Ceylan::Flags CommonModule::UseEverything = 0x0000FFFF [static]

Initializes all above subsystems.

Definition at line 403 of file OSDLBasic.h.

const Ceylan::Flags CommonModule::UseJoystick = 0x00000200 [static]

Initializes the joystick subsystem, implies initializing the video (UseVideo).

Definition at line 372 of file OSDLBasic.h.

Referenced by OSDL::Events::JoystickHandler::~JoystickHandler().

const Ceylan::Flags CommonModule::UseKeyboard = 0x4000 [static]

Initializes the keyboard subsystem, implies initializing the video (UseVideo).

Definition at line 380 of file OSDLBasic.h.

const Ceylan::Flags CommonModule::UseMouse = 0x8000 [static]

Initializes the mouse subsystem, implies initializing the video (UseVideo).

Definition at line 388 of file OSDLBasic.h.

const Ceylan::Flags CommonModule::UseTimer = 0x00000001 [static]

Initializes the timer subsystem.

Definition at line 351 of file OSDLBasic.h.

const Ceylan::Flags CommonModule::UseVideo = 0x00000020 [static]


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

Generated on Thu Jun 4 21:07:17 2009 for OSDL by  doxygen 1.5.8