blob: 8f8f26365a861c84469a6de2d350dfbc98998294 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
/***************************************************************************
resid.h - ReSid Builder
-------------------
begin : Fri Apr 4 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 _resid_h_
#define _resid_h_
/* Since ReSID is not part of this project we are actually
* creating a wrapper instead of implementing a SID emulation
*/
#include <sidplay/sidbuilder.h>
#include <sidplay/event.h>
/***************************************************************************
* ReSID Builder Class
***************************************************************************/
// Create the SID builder object
class ReSIDBuilder: public sidbuilder
{
private:
static const char *ERR_FILTER_DEFINITION;
char m_errorBuffer[100];
const char *m_error;
enum { MAX_SIDOBJS = 10 };
sidemu * sidobjs[MAX_SIDOBJS];
int n_sidobjs;
public:
sidemu *getsidemu (int i) {
if (i >= n_sidobjs) {
return NULL;
}
return sidobjs[i];
}
ReSIDBuilder (const char * const name);
~ReSIDBuilder (void);
// true will give you the number of used devices.
// return values: 0 none, positive is used sids
// false will give you all available sids.
// return values: 0 endless, positive is available sids.
// use bool operator to determine error
uint devices (bool used);
uint create (uint sids);
sidemu *lock (c64env *env, sid2_model_t model);
void unlock (sidemu *device);
void remove (void);
const char *error (void) const { return m_error; }
const char *credits (void);
// Settings that effect all SIDs
void filter (bool enable);
void filter (const sid_filter_t *filter);
void sampling (uint_least32_t freq);
};
#endif // _resid_h_
|