aboutsummaryrefslogtreecommitdiff
path: root/audio/fmopl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'audio/fmopl.cpp')
-rw-r--r--audio/fmopl.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/audio/fmopl.cpp b/audio/fmopl.cpp
index 3756d98123..3a003c80d9 100644
--- a/audio/fmopl.cpp
+++ b/audio/fmopl.cpp
@@ -43,6 +43,12 @@ namespace ALSA {
} // End of namespace ALSA
#endif // USE_ALSA
+#ifdef ENABLE_OPL2LPT
+namespace OPL2LPT {
+ OPL *create();
+} // End of namespace OPL2LPT
+#endif // ENABLE_OPL2LPT
+
// Config implementation
enum OplEmulator {
@@ -50,7 +56,8 @@ enum OplEmulator {
kMame = 1,
kDOSBox = 2,
kALSA = 3,
- kNuked = 4
+ kNuked = 4,
+ kOPL2LPT = 5
};
OPL::OPL() {
@@ -71,6 +78,9 @@ const Config::EmulatorDescription Config::_drivers[] = {
#ifdef USE_ALSA
{ "alsa", _s("ALSA Direct FM"), kALSA, kFlagOpl2 | kFlagDualOpl2 | kFlagOpl3 },
#endif
+#ifdef ENABLE_OPL2LPT
+ { "opl2lpt", _s("OPL2LPT"), kOPL2LPT, kFlagOpl2 },
+#endif
{ 0, 0, 0, 0 }
};
@@ -193,6 +203,15 @@ OPL *Config::create(DriverId driver, OplType type) {
return ALSA::create(type);
#endif
+#ifdef ENABLE_OPL2LPT
+ case kOPL2LPT:
+ if (type == kOpl2)
+ return OPL2LPT::create();
+ else
+ warning("OPL2LPT only supports OPL2");
+ return 0;
+#endif
+
default:
warning("Unsupported OPL emulator %d", driver);
// TODO: Maybe we should add some dummy emulator too, which just outputs