libsidplayfp 3.0.0
exsid-emu.h
1/***************************************************************************
2 exsid-emu.h - exSID support interface.
3 -------------------
4 Based on hardsid-emu.h (C) 2000-2002 Simon White, (C) 2001-2002 Jarno Paananen
5
6 copyright : (C) 2015 Thibaut VARENE
7 ***************************************************************************/
8/***************************************************************************
9 * *
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License version 2 as *
12 * published by the Free Software Foundation. *
13 * *
14 ***************************************************************************/
15
16#ifndef EXSID_EMU_H
17#define EXSID_EMU_H
18
19#include "sidemu.h"
20#include "Event.h"
21#include "EventScheduler.h"
22#include "sidplayfp/siddefs.h"
23
24#include "sidcxx11.h"
25
26#ifdef HAVE_CONFIG_H
27# include "config.h"
28#endif
29
30namespace libsidplayfp
31{
32
33/***************************************************************************
34 * exSID SID Specialisation
35 ***************************************************************************/
36class exSID final : public sidemu
37{
38private:
39 //friend class HardSIDBuilder;
40
41 // exSID specific data
42 static unsigned int sid;
43 void * exsid;
44
45 bool readflag;
46
47 uint8_t busValue;
48
50
51private:
52 unsigned int delay();
53
54public:
55 static const char* getCredits();
56
57public:
58 explicit exSID(sidbuilder *builder);
59 ~exSID() override;
60
61 bool getStatus() const { return m_status; }
62
63 uint8_t read(uint_least8_t addr) override;
64 void write(uint_least8_t addr, uint8_t data) override;
65
66 // c64sid functions
67 void reset(uint8_t volume) override;
68
69 // Standard SID functions
70 void clock() override;
71
72 void model(SidConfig::sid_model_t model, bool digiboost) override;
73
74 void sampling(float systemclock, float freq,
75 SidConfig::sampling_method_t method) override;
76
77 // exSID specific
78 void flush();
79};
80
81}
82
83#endif // EXSID_EMU_H
sid_model_t
SID chip model.
Definition SidConfig.h:44
sampling_method_t
Sampling method.
Definition SidConfig.h:77
void clock() override
Definition exsid-emu.cpp:96
void model(SidConfig::sid_model_t model, bool digiboost) override
Definition exsid-emu.cpp:142
Definition sidbuilder.h:41