4 * This file is part of OpenTTD.
5 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
6 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
7 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
10 /** @file sound_driver.hpp Base for all sound drivers. */
12 #ifndef SOUND_SOUND_DRIVER_HPP
13 #define SOUND_SOUND_DRIVER_HPP
15 #include "../driver.h"
17 /** Base for all sound drivers. */
18 class SoundDriver
: public Driver
, public SharedDriverSystem
<SoundDriver
> {
20 static char *ini
; ///< The sound driver as stored in the configuration file.
22 /** Get the name of this type of driver. */
23 static CONSTEXPR
const char *GetSystemName (void)
28 /** Called once every tick */
29 virtual void MainLoop() {}
32 /** Sound driver factory. */
34 class SoundDriverFactory
: DriverFactory
<SoundDriver
, D
> {
37 * Construct a new SoundDriverFactory.
38 * @param priority The priority within the driver class.
39 * @param name The name of the driver.
40 * @param description A long-ish description of the driver.
42 SoundDriverFactory (int priority
, const char *name
, const char *description
)
43 : DriverFactory
<SoundDriver
, D
> (priority
, name
, description
)
48 #endif /* SOUND_SOUND_DRIVER_HPP */