Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Static Private Member Functions | Private Attributes

# DriverFactoryBase Class Reference

Base for all driver factories. More...

`#include <driver.h>`

Inheritance diagram for DriverFactoryBase:

## 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.

## Detailed Description

Base for all driver factories.

Definition at line 60 of file driver.h.

## Constructor & Destructor Documentation

DriverFactoryBase::DriverFactoryBase | ( | Driver::Type | type,
|  | int | priority,
|  | const char * | name,
|  | const char * | description |
| ) |  |  | `[protected]`

Construct a new DriverFactory.

Parameters:

  | 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().

## Member Function Documentation

virtual Driver* DriverFactoryBase::CreateInstance | ( |  | ) | const`[pure virtual]`

Create an instance of this driver-class.

Returns:
  The instance.

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.

Parameters:

  | type | The type to get the driver for.

Returns:
  The active driver.

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.

Returns:
  The description.

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.

Parameters:

  | p | The buffer to write to.
  | last | The last element in the buffer.

Returns:
  The end of the written 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.

Parameters:

  | type | The type of driver to get the name of.

Returns:
  The name of the type.

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.

Parameters:

  | name | the driver to select.
  | type | the type of driver to select

Postcondition:
  Sets the driver so GetCurrentDriver() returns it too.

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().

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

- src/driver.h
- src/driver.cpp