summaryrefslogtreecommitdiff
path: root/plugins/sid/sidplay-libs/libsidplay/include/sidplay/sid2types.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/sid/sidplay-libs/libsidplay/include/sidplay/sid2types.h')
-rw-r--r--plugins/sid/sidplay-libs/libsidplay/include/sidplay/sid2types.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/plugins/sid/sidplay-libs/libsidplay/include/sidplay/sid2types.h b/plugins/sid/sidplay-libs/libsidplay/include/sidplay/sid2types.h
new file mode 100644
index 00000000..55cbe75c
--- /dev/null
+++ b/plugins/sid/sidplay-libs/libsidplay/include/sidplay/sid2types.h
@@ -0,0 +1,87 @@
+/***************************************************************************
+ sid2types.h - sidplay2 specific types
+ -------------------
+ begin : Fri Aug 10 2001
+ copyright : (C) 2001 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. *
+ * *
+ ***************************************************************************/
+
+#ifndef _sid2types_h_
+#define _sid2types_h_
+
+#include "sidtypes.h"
+#include "event.h"
+
+class sidbuilder;
+struct SidTuneInfo;
+
+typedef enum {sid2_playing = 0, sid2_paused, sid2_stopped} sid2_player_t;
+typedef enum {sid2_left = 0, sid2_mono, sid2_stereo, sid2_right} sid2_playback_t;
+typedef enum {sid2_envPS = 0, sid2_envTP, sid2_envBS, sid2_envR,
+ sid2_envTR} sid2_env_t;
+typedef enum {SID2_MODEL_CORRECT, SID2_MOS6581, SID2_MOS8580} sid2_model_t;
+typedef enum {SID2_CLOCK_CORRECT, SID2_CLOCK_PAL, SID2_CLOCK_NTSC} sid2_clock_t;
+
+typedef enum
+{ // Soundcard sample format
+ SID2_LITTLE_SIGNED,
+ SID2_LITTLE_UNSIGNED,
+ SID2_BIG_SIGNED,
+ SID2_BIG_UNSIGNED
+} sid2_sample_t;
+
+/* Environment Modes
+sid2_envPS = Playsid
+sid2_envTP = Sidplay - Transparent Rom
+sid2_envBS = Sidplay - Bankswitching
+sid2_envR = Sidplay2 - Real C64 Environment
+*/
+
+struct sid2_config_t
+{
+ sid2_clock_t clockDefault; // Intended tune speed when unknown
+ bool clockForced;
+ sid2_clock_t clockSpeed; // User requested emulation speed
+ sid2_env_t environment;
+ bool forceDualSids;
+ uint_least32_t frequency;
+ uint_least8_t optimisation;
+ sid2_playback_t playback;
+ int precision;
+ sid2_model_t sidDefault; // Intended sid model when unknown
+ sidbuilder *sidEmulation;
+ sid2_model_t sidModel; // User requested sid model
+ bool sidSamples;
+ uint_least32_t leftVolume;
+ uint_least32_t rightVolume;
+ sid2_sample_t sampleFormat;
+};
+
+struct sid2_info_t
+{
+ const char **credits;
+ uint channels;
+ uint_least16_t driverAddr;
+ uint_least16_t driverLength;
+ const char *name;
+ const SidTuneInfo *tuneInfo; // May not need this
+ const char *version;
+ // load, config and stop calls will reset this
+ // and remove all pending events! 10th sec resolution.
+ EventContext *eventContext;
+ uint maxsids;
+ sid2_env_t environment;
+ // Random delay used before starting the sid
+ uint_least16_t rnddelay;
+};
+
+#endif // _sid2types_h_