00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef SIDPLAYFP_H
00024 #define SIDPLAYFP_H
00025
00026 #include <stdint.h>
00027 #include <stdio.h>
00028
00029 #include "sidplayfp/siddefs.h"
00030 #include "sidplayfp/sidversion.h"
00031
00032 class SidConfig;
00033 class SidTune;
00034 class SidInfo;
00035 class EventContext;
00036 class SidTuneInfo;
00037
00038
00039 namespace SIDPLAYFP_NAMESPACE
00040 {
00041 class Player;
00042 }
00043
00047 class SID_EXTERN sidplayfp
00048 {
00049 private:
00050 SIDPLAYFP_NAMESPACE::Player &sidplayer;
00051
00052 public:
00053 sidplayfp();
00054 ~sidplayfp();
00055
00061 const SidConfig &config() const;
00062
00068 const SidInfo &info() const;
00069
00077 bool config(const SidConfig &cfg);
00078
00084 const char *error() const;
00085
00091 bool fastForward(unsigned int percent);
00092
00100 bool load(SidTune *tune);
00101
00109 uint_least32_t play(short *buffer, uint_least32_t count);
00110
00116 bool isPlaying() const;
00117
00121 void stop();
00122
00131 void debug(bool enable, FILE *out);
00132
00140 void mute(unsigned int sidNum, unsigned int voice, bool enable);
00141
00147 uint_least32_t time() const;
00148
00157 void setRoms(const uint8_t* kernal, const uint8_t* basic=0, const uint8_t* character=0);
00158
00164 EventContext *getEventContext();
00165
00169 uint_least16_t getCia1TimerA() const;
00170 };
00171
00172 #endif // SIDPLAYFP_H