Base for all driver factories. More...
#include <driver.h>
Public Member Functions | |
const char * | GetDescription () const |
Get a nice description of the driver-class. | |
virtual Driver * | CreateInstance () const =0 |
Create an instance of this driver-class. | |
Static Public Member Functions | |
static void | ShutdownDrivers () |
Shuts down all active drivers. | |
static Driver * | SelectDriver (const char *name, Driver::Type type) |
Find the requested driver and return its class. | |
static char * | GetDriversInfo (char *p, const char *last) |
Build a human readable list of available drivers, grouped by type. | |
Protected Member Functions | |
DriverFactoryBase (Driver::Type type, int priority, const char *name, const char *description) | |
Construct a new DriverFactory. | |
virtual | ~DriverFactoryBase () |
Frees memory used for this->name. | |
Private Types | |
typedef std::map< const char *, DriverFactoryBase *, StringCompare > | Drivers |
Type for a map of drivers. | |
Static Private Member Functions | |
static Drivers & | GetDrivers () |
Get the map with drivers. | |
static Driver ** | GetActiveDriver (Driver::Type type) |
Get the active driver for the given type. | |
static const char * | GetDriverTypeName (Driver::Type type) |
Get the driver type name. | |
Private Attributes | |
Driver::Type | type |
The type of driver. | |
int | priority |
The priority of this factory. | |
const char * | name |
The name of the drivers of this factory. | |
const char * | description |
The description of this driver. |
Base for all driver factories.
Definition at line 60 of file driver.h.
DriverFactoryBase::DriverFactoryBase | ( | Driver::Type | type, | |
int | priority, | |||
const char * | name, | |||
const char * | description | |||
) | [protected] |
Construct a new DriverFactory.
type | The type of driver. | |
priority | The priority within the driver class. | |
name | The name of the driver. | |
description | A long-ish description of the driver. |
Definition at line 201 of file driver.cpp.
References GetDrivers(), GetDriverTypeName(), lastof, and strecpy().
virtual Driver* DriverFactoryBase::CreateInstance | ( | ) | const [pure virtual] |
Create an instance of this driver-class.
Implemented in FMusicDriver_Allegro, FMusicDriver_BeMidi, FMusicDriver_Cocoa, FMusicDriver_DMusic, FMusicDriver_ExtMidi, FMusicDriver_LibTimidity, FMusicDriver_Null, FMusicDriver_OS2, FMusicDriver_QtMidi, FMusicDriver_Win32, FSoundDriver_Allegro, FSoundDriver_Cocoa, FSoundDriver_Null, FSoundDriver_SDL, FSoundDriver_Win32, FVideoDriver_Allegro, FVideoDriver_Cocoa, FVideoDriver_Dedicated, FVideoDriver_Null, FVideoDriver_SDL, and FVideoDriver_Win32.
Referenced by SelectDriver().
static Driver** DriverFactoryBase::GetActiveDriver | ( | Driver::Type | type | ) | [inline, static, private] |
Get the active driver for the given type.
type | The type to get the driver for. |
Definition at line 83 of file driver.h.
Referenced by SelectDriver().
const char* DriverFactoryBase::GetDescription | ( | ) | const [inline] |
Get a nice description of the driver-class.
Definition at line 124 of file driver.h.
Referenced by GetDriversInfo().
char * DriverFactoryBase::GetDriversInfo | ( | char * | p, | |
const char * | last | |||
) | [static] |
Build a human readable list of available drivers, grouped by type.
p | The buffer to write to. | |
last | The last element in the buffer. |
Definition at line 173 of file driver.cpp.
References Driver::DT_BEGIN, GetDescription(), GetDrivers(), GetDriverTypeName(), name, priority, seprintf(), and type.
Referenced by ShowHelp().
static const char* DriverFactoryBase::GetDriverTypeName | ( | Driver::Type | type | ) | [inline, static, private] |
Get the driver type name.
type | The type of driver to get the name of. |
Definition at line 94 of file driver.h.
Referenced by DriverFactoryBase(), GetDriversInfo(), SelectDriver(), and ~DriverFactoryBase().
Driver * DriverFactoryBase::SelectDriver | ( | const char * | name, | |
Driver::Type | type | |||
) | [static] |
Find the requested driver and return its class.
name | the driver to select. | |
type | the type of driver to select |
Definition at line 89 of file driver.cpp.
References CreateInstance(), DEBUG, GetActiveDriver(), GetDrivers(), GetDriverTypeName(), lastof, lengthof, name, priority, Driver::Start(), strecpy(), StrEmpty(), type, and usererror().
Referenced by openttd_main().