(svn r26107) -Codechange/cleanup: remove some coding bloat and simplify the driver factory instatiations

This commit is contained in:
rubidium
2013-11-25 14:26:46 +00:00
parent a399fc667c
commit 6996b441d9
27 changed files with 101 additions and 208 deletions

View File

@@ -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 */

View File

@@ -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 */

View File

@@ -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 */

View File

@@ -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 */

View File

@@ -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 */

View File

@@ -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 */

View File

@@ -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;

View File

@@ -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 */

View File

@@ -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 */

View File

@@ -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 */

View File

@@ -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 */