libsidplayfp  0.3.5
hardsid.h
1 /***************************************************************************
2  hardsid.h - Hardsid support interface.
3  Created from Jarno's original
4  Sidplay2 patch
5  -------------------
6  begin : Fri Dec 15 2000
7  copyright : (C) 2000-2002 by Simon White
8  email : s_a_white@email.com
9  ***************************************************************************/
10 /***************************************************************************
11  * *
12  * This program is free software; you can redistribute it and/or modify *
13  * it under the terms of the GNU General Public License as published by *
14  * the Free Software Foundation; either version 2 of the License, or *
15  * (at your option) any later version. *
16  * *
17  ***************************************************************************/
18 /***************************************************************************
19  * $Log: hardsid.h,v $
20  * Revision 1.4 2004/05/05 23:47:50 s_a_white
21  * Detect available sid devices on Unix system.
22  *
23  * Revision 1.3 2003/01/23 17:48:17 s_a_white
24  * Added missed return parameter for init function prototype.
25  *
26  * Revision 1.2 2002/01/30 01:42:08 jpaana
27  * Don't include config.h as it isn't always available and is included elsewhere already
28  *
29  * Revision 1.1 2002/01/28 22:35:20 s_a_white
30  * Initial Release.
31  *
32  *
33  ***************************************************************************/
34 
35 #ifndef _hardsid_h_
36 #define _hardsid_h_
37 
38 #include <vector>
39 #include "sidplayfp/sidbuilder.h"
40 
44 class SID_EXTERN HardSIDBuilder: public sidbuilder
45 {
46 private:
47  static bool m_initialised;
48  char m_errorBuffer[100];
49  std::vector<sidemu *> sidobjs;
50 
51 #ifndef _WIN32
52  static uint m_count;
53 #endif
54 
55  int init (void);
56 
57 public:
58  HardSIDBuilder (const char * const name);
59  ~HardSIDBuilder (void);
60 
68  uint devices (bool used);
69  sidemu *lock (c64env *env, sid2_model_t model);
70  void unlock (sidemu *device);
71  void remove (void);
72  const char *error (void) const { return m_errorBuffer; }
73  const char *credits (void);
74  void flush (void);
75  void filter (bool enable);
76 
77  uint create (uint sids);
78 };
79 
80 #endif // _hardsid_h_