(svn r26107) -Codechange/cleanup: remove some coding bloat and simplify the driver factory instatiations
This commit is contained in:
@@ -32,20 +32,18 @@ public:
|
||||
};
|
||||
|
||||
/** Factory for allegro's music player. */
|
||||
class FMusicDriver_Allegro: public MusicDriverFactory<FMusicDriver_Allegro> {
|
||||
class FMusicDriver_Allegro : public DriverFactoryBase {
|
||||
public:
|
||||
#if !defined(WITH_SDL) && defined(WITH_ALLEGRO)
|
||||
/* If SDL is not compiled in but Allegro is, chances are quite big
|
||||
* that Allegro is going to be used. Then favour this sound driver
|
||||
* over extmidi because with extmidi we get crashes. */
|
||||
static const int priority = 9;
|
||||
static const int PRIORITY = 9;
|
||||
#else
|
||||
static const int priority = 2;
|
||||
static const int PRIORITY = 2;
|
||||
#endif
|
||||
|
||||
/* virtual */ const char *GetName() { return "allegro"; }
|
||||
/* virtual */ const char *GetDescription() { return "Allegro MIDI Driver"; }
|
||||
/* virtual */ Driver *CreateInstance() { return new MusicDriver_Allegro(); }
|
||||
FMusicDriver_Allegro() : DriverFactoryBase(Driver::DT_MUSIC, PRIORITY, "allegro", "Allegro MIDI Driver") {}
|
||||
/* virtual */ Driver *CreateInstance() const { return new MusicDriver_Allegro(); }
|
||||
};
|
||||
|
||||
#endif /* MUSIC_ALLEGRO_H */
|
||||
|
@@ -32,12 +32,10 @@ public:
|
||||
};
|
||||
|
||||
/** Factory for the BeOS midi player. */
|
||||
class FMusicDriver_BeMidi: public MusicDriverFactory<FMusicDriver_BeMidi> {
|
||||
class FMusicDriver_BeMidi : public DriverFactoryBase {
|
||||
public:
|
||||
static const int priority = 10;
|
||||
/* virtual */ const char *GetName() { return "bemidi"; }
|
||||
/* virtual */ const char *GetDescription() { return "BeOS MIDI Driver"; }
|
||||
/* virtual */ Driver *CreateInstance() { return new MusicDriver_BeMidi(); }
|
||||
FMusicDriver_BeMidi() : DriverFactoryBase(Driver::DT_MUSIC, 10, "bemidi", "BeOS MIDI Driver") {}
|
||||
/* virtual */ Driver *CreateInstance() const { return new MusicDriver_BeMidi(); }
|
||||
};
|
||||
|
||||
#endif /* MUSIC_BEMIDI_H */
|
||||
|
@@ -30,12 +30,10 @@ public:
|
||||
/* virtual */ const char *GetName() const { return "cocoa"; }
|
||||
};
|
||||
|
||||
class FMusicDriver_Cocoa: public MusicDriverFactory<FMusicDriver_Cocoa> {
|
||||
class FMusicDriver_Cocoa : public DriverFactoryBase {
|
||||
public:
|
||||
static const int priority = 10;
|
||||
/* virtual */ const char *GetName() { return "cocoa"; }
|
||||
/* virtual */ const char *GetDescription() { return "Cocoa MIDI Driver"; }
|
||||
/* virtual */ Driver *CreateInstance() { return new MusicDriver_Cocoa(); }
|
||||
FMusicDriver_Cocoa() : DriverFactoryBase(Driver::DT_MUSIC, 10, "cocoa", "Cocoa MIDI Driver") {}
|
||||
/* virtual */ Driver *CreateInstance() const { return new MusicDriver_Cocoa(); }
|
||||
};
|
||||
|
||||
#endif /* MUSIC_MACOSX_COCOA_H */
|
||||
|
@@ -34,12 +34,10 @@ public:
|
||||
};
|
||||
|
||||
/** Factory for the DirectX music player. */
|
||||
class FMusicDriver_DMusic: public MusicDriverFactory<FMusicDriver_DMusic> {
|
||||
class FMusicDriver_DMusic : public DriverFactoryBase {
|
||||
public:
|
||||
static const int priority = 10;
|
||||
/* virtual */ const char *GetName() { return "dmusic"; }
|
||||
/* virtual */ const char *GetDescription() { return "DirectMusic MIDI Driver"; }
|
||||
/* virtual */ Driver *CreateInstance() { return new MusicDriver_DMusic(); }
|
||||
FMusicDriver_DMusic() : DriverFactoryBase(Driver::DT_MUSIC, 10, "dmusic", "DirectMusic MIDI Driver") {}
|
||||
/* virtual */ Driver *CreateInstance() const { return new MusicDriver_DMusic(); }
|
||||
};
|
||||
|
||||
#endif /* MUSIC_DMUSIC_H */
|
||||
|
@@ -38,12 +38,10 @@ public:
|
||||
/* virtual */ const char *GetName() const { return "extmidi"; }
|
||||
};
|
||||
|
||||
class FMusicDriver_ExtMidi: public MusicDriverFactory<FMusicDriver_ExtMidi> {
|
||||
class FMusicDriver_ExtMidi : public DriverFactoryBase {
|
||||
public:
|
||||
static const int priority = 3;
|
||||
/* virtual */ const char *GetName() { return "extmidi"; }
|
||||
/* virtual */ const char *GetDescription() { return "External MIDI Driver"; }
|
||||
/* virtual */ Driver *CreateInstance() { return new MusicDriver_ExtMidi(); }
|
||||
FMusicDriver_ExtMidi() : DriverFactoryBase(Driver::DT_MUSIC, 3, "extmidi", "External MIDI Driver") {}
|
||||
/* virtual */ Driver *CreateInstance() const { return new MusicDriver_ExtMidi(); }
|
||||
};
|
||||
|
||||
#endif /* MUSIC_EXTERNAL_H */
|
||||
|
@@ -32,12 +32,10 @@ public:
|
||||
};
|
||||
|
||||
/** Factory for the libtimidity driver. */
|
||||
class FMusicDriver_LibTimidity: public MusicDriverFactory<FMusicDriver_LibTimidity> {
|
||||
class FMusicDriver_LibTimidity : public DriverFactoryBase {
|
||||
public:
|
||||
static const int priority = 5;
|
||||
/* virtual */ const char *GetName() { return "libtimidity"; }
|
||||
/* virtual */ const char *GetDescription() { return "LibTimidity MIDI Driver"; }
|
||||
/* virtual */ Driver *CreateInstance() { return new MusicDriver_LibTimidity(); }
|
||||
FMusicDriver_LibTimidity() : DriverFactoryBase(Driver::DT_MUSIC, 5, "libtimidity", "LibTimidity MIDI Driver") {}
|
||||
/* virtual */ Driver *CreateInstance() const { return new MusicDriver_LibTimidity(); }
|
||||
};
|
||||
|
||||
#endif /* MUSIC_LIBTIMIDITY_H */
|
||||
|
@@ -41,25 +41,6 @@ public:
|
||||
virtual void SetVolume(byte vol) = 0;
|
||||
};
|
||||
|
||||
/** Base of the factory for the music drivers. */
|
||||
class MusicDriverFactoryBase: public DriverFactoryBase {
|
||||
};
|
||||
|
||||
/**
|
||||
* Factory for the music drivers.
|
||||
* @tparam T The type of the music factory to register.
|
||||
*/
|
||||
template <class T>
|
||||
class MusicDriverFactory: public MusicDriverFactoryBase {
|
||||
public:
|
||||
MusicDriverFactory() { this->RegisterDriver(((T *)this)->GetName(), Driver::DT_MUSIC, ((T *)this)->priority); }
|
||||
|
||||
/**
|
||||
* Get the long, human readable, name for the Driver-class.
|
||||
*/
|
||||
const char *GetName();
|
||||
};
|
||||
|
||||
extern MusicDriver *_music_driver;
|
||||
extern char *_ini_musicdriver;
|
||||
|
||||
|
@@ -32,12 +32,10 @@ public:
|
||||
};
|
||||
|
||||
/** Factory for the null music player. */
|
||||
class FMusicDriver_Null: public MusicDriverFactory<FMusicDriver_Null> {
|
||||
class FMusicDriver_Null : public DriverFactoryBase {
|
||||
public:
|
||||
static const int priority = 1;
|
||||
/* virtual */ const char *GetName() { return "null"; }
|
||||
/* virtual */ const char *GetDescription() { return "Null Music Driver"; }
|
||||
/* virtual */ Driver *CreateInstance() { return new MusicDriver_Null(); }
|
||||
FMusicDriver_Null() : DriverFactoryBase(Driver::DT_MUSIC, 1, "null", "Null Music Driver") {}
|
||||
/* virtual */ Driver *CreateInstance() const { return new MusicDriver_Null(); }
|
||||
};
|
||||
|
||||
#endif /* MUSIC_NULL_H */
|
||||
|
@@ -32,12 +32,10 @@ public:
|
||||
};
|
||||
|
||||
/** Factory for OS/2's music player. */
|
||||
class FMusicDriver_OS2: public MusicDriverFactory<FMusicDriver_OS2> {
|
||||
class FMusicDriver_OS2 : public DriverFactoryBase {
|
||||
public:
|
||||
static const int priority = 10;
|
||||
/* virtual */ const char *GetName() { return "os2"; }
|
||||
/* virtual */ const char *GetDescription() { return "OS/2 Music Driver"; }
|
||||
/* virtual */ Driver *CreateInstance() { return new MusicDriver_OS2(); }
|
||||
FMusicDriver_OS2() : DriverFactoryBase(Driver::DT_MUSIC, 10, "os2", "OS/2 Music Driver") {}
|
||||
/* virtual */ Driver *CreateInstance() const { return new MusicDriver_OS2(); }
|
||||
};
|
||||
|
||||
#endif /* MUSIC_OS2_H */
|
||||
|
@@ -30,12 +30,10 @@ public:
|
||||
/* virtual */ const char *GetName() const { return "qt"; }
|
||||
};
|
||||
|
||||
class FMusicDriver_QtMidi: public MusicDriverFactory<FMusicDriver_QtMidi> {
|
||||
class FMusicDriver_QtMidi : public DriverFactoryBase {
|
||||
public:
|
||||
static const int priority = 5;
|
||||
/* virtual */ const char *GetName() { return "qt"; }
|
||||
/* virtual */ const char *GetDescription() { return "QuickTime MIDI Driver"; }
|
||||
/* virtual */ Driver *CreateInstance() { return new MusicDriver_QtMidi(); }
|
||||
FMusicDriver_QtMidi() : DriverFactoryBase(Driver::DT_MUSIC, 5, "qt", "QuickTime MIDI Driver") {}
|
||||
/* virtual */ Driver *CreateInstance() const { return new MusicDriver_QtMidi(); }
|
||||
};
|
||||
|
||||
#endif /* MUSIC_MACOSX_QUICKTIME_H */
|
||||
|
@@ -32,12 +32,10 @@ public:
|
||||
};
|
||||
|
||||
/** Factory for Windows' music player. */
|
||||
class FMusicDriver_Win32: public MusicDriverFactory<FMusicDriver_Win32> {
|
||||
class FMusicDriver_Win32 : public DriverFactoryBase {
|
||||
public:
|
||||
static const int priority = 5;
|
||||
/* virtual */ const char *GetName() { return "win32"; }
|
||||
/* virtual */ const char *GetDescription() { return "Win32 Music Driver"; }
|
||||
/* virtual */ Driver *CreateInstance() { return new MusicDriver_Win32(); }
|
||||
FMusicDriver_Win32() : DriverFactoryBase(Driver::DT_MUSIC, 5, "win32", "Win32 Music Driver") {}
|
||||
/* virtual */ Driver *CreateInstance() const { return new MusicDriver_Win32(); }
|
||||
};
|
||||
|
||||
#endif /* MUSIC_WIN32_H */
|
||||
|
Reference in New Issue
Block a user