summaryrefslogtreecommitdiff
path: root/sid/sidplay-libs-2.1.0/libsidplay/src/sidplay2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sid/sidplay-libs-2.1.0/libsidplay/src/sidplay2.cpp')
-rw-r--r--sid/sidplay-libs-2.1.0/libsidplay/src/sidplay2.cpp131
1 files changed, 131 insertions, 0 deletions
diff --git a/sid/sidplay-libs-2.1.0/libsidplay/src/sidplay2.cpp b/sid/sidplay-libs-2.1.0/libsidplay/src/sidplay2.cpp
new file mode 100644
index 00000000..e3535ddb
--- /dev/null
+++ b/sid/sidplay-libs-2.1.0/libsidplay/src/sidplay2.cpp
@@ -0,0 +1,131 @@
+/***************************************************************************
+ sidplayer.cpp - Wrapper to hide private
+ header files (see below)
+ -------------------
+ begin : Fri Jun 9 2000
+ copyright : (C) 2000 by Simon White
+ email : s_a_white@email.com
+ ***************************************************************************/
+/***************************************************************************
+ * *
+ * This program 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; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+/***************************************************************************
+ * $Log: sidplay2.cpp,v $
+ * Revision 1.15 2002/03/04 19:05:49 s_a_white
+ * Fix C++ use of nothrow.
+ *
+ * Revision 1.14 2001/12/13 08:28:08 s_a_white
+ * Added namespace support to fix problems with xsidplay.
+ *
+ * Revision 1.13 2001/12/11 19:24:15 s_a_white
+ * More GCC3 Fixes.
+ *
+ * Revision 1.12 2001/09/17 19:03:58 s_a_white
+ * 2.1.0 interface stabalisation.
+ *
+ * Revision 1.11 2001/09/01 11:16:12 s_a_white
+ * Renamed configure to config.
+ *
+ * Revision 1.10 2001/07/25 17:01:13 s_a_white
+ * Support for new configuration interface.
+ *
+ * Revision 1.9 2001/07/14 16:46:16 s_a_white
+ * Sync with sidbuilder class project.
+ *
+ * Revision 1.8 2001/07/14 12:57:38 s_a_white
+ * Added credits and debug functions. Removed external filter.
+ *
+ * Revision 1.7 2001/03/21 22:31:22 s_a_white
+ * Filter redefinition support.
+ *
+ * Revision 1.6 2001/03/01 23:46:37 s_a_white
+ * Support for sample mode to be selected at runtime.
+ *
+ * Revision 1.5 2001/02/21 21:49:21 s_a_white
+ * Now uses new player::getErrorString function.
+ *
+ * Revision 1.4 2001/02/13 21:32:35 s_a_white
+ * Windows DLL export fix.
+ *
+ * Revision 1.3 2001/02/07 20:57:08 s_a_white
+ * New SID_EXPORT define. Supports SidTune now.
+ *
+ * Revision 1.2 2001/01/23 21:26:28 s_a_white
+ * Only way to load a tune now is by passing in a sidtune object. This is
+ * required for songlength database support.
+ *
+ * Revision 1.1 2000/12/12 19:14:44 s_a_white
+ * Library wrapper.
+ *
+ ***************************************************************************/
+
+//---------------------------------------------------------------------------------------------
+//---------------------------------------------------------------------------------------------
+// Redirection to private version of sidplayer (This method is called Cheshire Cat)
+// [ms: which is J. Carolan's name for a degenerate 'bridge']
+// This interface can be directly replaced with a libsidplay1 or C interface wrapper.
+//---------------------------------------------------------------------------------------------
+//---------------------------------------------------------------------------------------------
+
+#include "config.h"
+#include "player.h"
+
+#ifdef HAVE_EXCEPTIONS
+# include <new>
+#endif
+
+sidplay2::sidplay2 ()
+#ifdef HAVE_EXCEPTIONS
+: sidplayer (*(new(std::nothrow) SIDPLAY2_NAMESPACE::Player))
+#else
+: sidplayer (*(new SIDPLAY2_NAMESPACE::Player))
+#endif
+{
+}
+
+sidplay2::~sidplay2 ()
+{ if (&sidplayer) delete &sidplayer; }
+
+int sidplay2::config (const sid2_config_t &cfg)
+{ return sidplayer.config (cfg); }
+
+const sid2_config_t &sidplay2::config (void) const
+{ return sidplayer.config (); }
+
+void sidplay2::stop (void)
+{ sidplayer.stop (); }
+
+void sidplay2::pause (void)
+{ sidplayer.pause (); }
+
+uint_least32_t sidplay2::play (void *buffer, uint_least32_t length)
+{ return sidplayer.play (buffer, length); }
+
+int sidplay2::load (SidTune *tune)
+{ return sidplayer.load (tune); }
+
+const sid2_info_t &sidplay2::info () const
+{ return sidplayer.info (); }
+
+uint_least32_t sidplay2::time (void) const
+{ return sidplayer.time (); }
+
+uint_least32_t sidplay2::mileage (void) const
+{ return sidplayer.mileage (); }
+
+const char *sidplay2::error (void) const
+{ return sidplayer.error (); }
+
+int sidplay2::fastForward (uint percent)
+{ return sidplayer.fastForward (percent); }
+
+void sidplay2::debug (bool enable)
+{ sidplayer.debug (enable); }
+
+sid2_player_t sidplay2::state (void) const
+{ return sidplayer.state (); }