libsidplayfp 1.0.3
SidConfig.h
00001 /*
00002  * This file is part of libsidplayfp, a SID player engine.
00003  *
00004  * Copyright 2011-2013 Leandro Nini <drfiemost@users.sourceforge.net>
00005  * Copyright 2007-2010 Antti Lankila
00006  * Copyright 2000-2001 Simon White
00007  *
00008  * This program is free software; you can redistribute it and/or modify
00009  * it under the terms of the GNU General Public License as published by
00010  * the Free Software Foundation; either version 2 of the License, or
00011  * (at your option) any later version.
00012  *
00013  * This program is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016  * GNU General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU General Public License
00019  * along with this program; if not, write to the Free Software
00020  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
00021  */
00022 
00023 #ifndef SIDCONFIG_H
00024 #define SIDCONFIG_H
00025 
00026 #include <stdint.h>
00027 
00028 #include "sidplayfp/siddefs.h"
00029 
00030 
00031 class sidbuilder;
00032 
00039 class SID_EXTERN SidConfig
00040 {
00041 public:  
00042     typedef enum {MONO = 1,  STEREO} playback_t;
00043     typedef enum {MOS6581, MOS8580} sid_model_t;
00044     typedef enum {PAL, NTSC, OLD_NTSC, DREAN} c64_model_t;
00045     typedef enum {INTERPOLATE, RESAMPLE_INTERPOLATE} sampling_method_t;
00046 
00047 public:
00053     static const uint_least16_t MAX_POWER_ON_DELAY = 0x1FFF;
00054     static const uint_least16_t DEFAULT_POWER_ON_DELAY = MAX_POWER_ON_DELAY + 1;
00055 
00056     static const uint_least32_t DEFAULT_SAMPLING_FREQ  = 44100;
00057 
00058 public:
00066     c64_model_t defaultC64Model;
00067 
00071     bool forceC64Model;
00072 
00078     sid_model_t defaultSidModel;
00079 
00083     bool forceSidModel;
00084 
00090     playback_t playback;
00091 
00095     uint_least32_t frequency;
00096 
00100     uint_least16_t secondSidAddress;
00101 
00106     sidbuilder *sidEmulation;
00107 
00111     uint_least32_t leftVolume;
00112 
00116     uint_least32_t rightVolume;
00117 
00121     uint_least16_t powerOnDelay;
00122 
00128     sampling_method_t samplingMethod;
00129 
00134     bool fastSampling;
00135 
00136 public:
00137     SidConfig();
00138 };
00139 
00140 #endif // SIDCONFIG_H