19 const char *
GetDriverParam(
const char *
const *parm,
const char *name);
31 virtual const char *
Start(
const char *
const *parm) = 0;
36 virtual void Stop() = 0;
53 virtual const char *
GetName()
const = 0;
71 typedef std::map<const char *, DriverFactoryBase *, StringCompare>
Drivers;
76 static Drivers &GetDrivers()
78 static Drivers &s_drivers = *
new Drivers();
89 static Driver *s_driver[3] = { NULL, NULL, NULL };
90 return &s_driver[type];
100 static const char *
const driver_type_name[] = {
"music",
"sound",
"video" };
101 return driver_type_name[type];
104 static bool SelectDriverImpl(
const char *name,
Driver::Type type);
107 DriverFactoryBase(
Driver::Type type,
int priority,
const char *name,
const char *description);
109 virtual ~DriverFactoryBase();
115 static void ShutdownDrivers()
118 Driver *driver = *GetActiveDriver(dt);
119 if (driver != NULL) driver->
Stop();
123 static void SelectDriver(
const char *name,
Driver::Type type);
124 static char *GetDriversInfo(
char *p,
const char *last);
130 const char *GetDescription()
const
132 return this->description;
139 virtual Driver *CreateInstance()
const = 0;