/[svn]/qsampler/trunk/src/qsamplerDevice.h
ViewVC logotype

Diff of /qsampler/trunk/src/qsamplerDevice.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 428 by capela, Mon Mar 7 11:09:32 2005 UTC revision 429 by capela, Tue Mar 8 14:56:05 2005 UTC
# Line 22  Line 22 
22  #ifndef __qsamplerDevice_h  #ifndef __qsamplerDevice_h
23  #define __qsamplerDevice_h  #define __qsamplerDevice_h
24    
25    #include <qlistview.h>
26  #include <qtable.h>  #include <qtable.h>
27    
28  #include <lscp/client.h>  #include <lscp/client.h>
# Line 30  Line 31 
31  #include "qsamplerOptions.h"  #include "qsamplerOptions.h"
32    
33    
34    // Special QListViewItem::rtti() return values.
35    #define QSAMPLER_DEVICE_ITEM    1001
36    
37    
38    //-------------------------------------------------------------------------
39    // qsamplerDeviceParam - MIDI/Audio Device parameter structure.
40    //
41    class qsamplerDeviceParam
42    {
43    public:
44    
45        // Constructor.
46        qsamplerDeviceParam(lscp_param_info_t *pParamInfo = NULL,
47                    const char *pszValue = NULL);
48        // Default destructor.
49        ~qsamplerDeviceParam();
50    
51            // Initializer.
52            void setParam(lscp_param_info_t *pParamInfo,
53                    const char *pszValue = NULL);
54    
55        // Info structure field members.
56        lscp_type_t type;
57        QString     description;
58        bool        mandatory;
59        bool        fix;
60        bool        multiplicity;
61        QStringList depends;
62        QString     defaultv;
63        QString     range_min;
64        QString     range_max;
65        QStringList possibilities;
66        // The current parameter value.
67        QString     value;
68    };
69    
70    // A typedef'd parameter QMap.
71    typedef QMap<QString, qsamplerDeviceParam> qsamplerDeviceParamMap;
72    
73    
74  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
75  // qsamplerDeviceParameterTable - Device parameter view table.  // qsamplerDevice - MIDI/Audio Device structure.
76  //  //
77    
78  class qsamplerDeviceParameterTable : public QTable  class qsamplerDevice
79    {
80    public:
81    
82        // We use the same class for MIDI and audio device management
83        enum qsamplerDeviceType { Midi, Audio };
84    
85        // Constructor.
86        qsamplerDevice(lscp_client_t *pClient,
87                    qsamplerDeviceType deviceType, int iDeviceID = -1);
88        // Default destructor.
89        ~qsamplerDevice();
90    
91            // Initializer.
92            void setDevice(lscp_client_t *pClient,
93                    qsamplerDeviceType deviceType, int iDeviceID = -1);
94                    
95            // Device property accessors.
96        int                 deviceID()   const;
97        qsamplerDeviceType  deviceType() const;
98        const QString&      driverName() const;
99        const QString&      deviceName() const;
100    
101            // Device parameters accessor.
102            qsamplerDeviceParamMap& params();
103    
104            // Update/refresh device/driver data.
105            void refresh();
106    
107            // Device enumerator.
108        static int *getDevices(lscp_client_t *pClient,
109                    qsamplerDeviceType deviceType);
110    
111    private:
112    
113            // Instance variables.
114        int                m_iDeviceID;
115        qsamplerDeviceType m_deviceType;
116        QString            m_sDriverName;
117        QString            m_sDeviceName;
118    
119            // Device parameter list.
120            qsamplerDeviceParamMap m_params;
121    };
122    
123    
124    //-------------------------------------------------------------------------
125    // qsamplerDeviceItem - QListView device item.
126    //
127    
128    class qsamplerDeviceItem : public QListViewItem
129    {
130    public:
131    
132        // Constructors.
133        qsamplerDeviceItem(QListView *pListView, lscp_client_t *pClient,
134                    qsamplerDevice::qsamplerDeviceType deviceType);
135        qsamplerDeviceItem(QListViewItem *pItem, lscp_client_t *pClient,
136                    qsamplerDevice::qsamplerDeviceType deviceType, int iDeviceID);
137        // Default destructor.
138        ~qsamplerDeviceItem();
139    
140        // Instance accessors.
141        const qsamplerDevice& device();
142    
143        // To virtually distinguish between list view items.
144        virtual int rtti() const;
145    
146    private:
147    
148        // Instance variables.
149        qsamplerDevice m_device;
150    };
151    
152    
153    //-------------------------------------------------------------------------
154    // qsamplerDeviceParamTable - Device parameter view table.
155    //
156    
157    class qsamplerDeviceParamTable : public QTable
158  {  {
159      Q_OBJECT      Q_OBJECT
160    
161  public:  public:
162    
163      // Constructor.      // Constructor.
164      qsamplerDeviceParameterTable(QWidget *pParent = 0, const char *pszName = 0);      qsamplerDeviceParamTable(QWidget *pParent = 0, const char *pszName = 0);
165      // Default destructor.      // Default destructor.
166      ~qsamplerDeviceParameterTable();      ~qsamplerDeviceParamTable();
   
     // LSCP client descriptor accessor.  
     void setClient(lscp_client_t *pClient);  
     lscp_client_t * client();  
167    
168        // Client/device descriptor selector.
169            void setDevice(lscp_client_t *pClient,
170                    qsamplerDevice::qsamplerDeviceType deviceType, int iDeviceID = -1);
171    
172        // Client/device descriptor accessors.
173            lscp_client_t *client();
174            int deviceID();
175    
176            // The main table refresher.
177            void refresh();
178            
179  private:  private:
180    
181      // LSCP client reference.      // LSCP client/device references.
182      lscp_client_t *m_pClient;      lscp_client_t *m_pClient;
183        qsamplerDevice::qsamplerDeviceType m_deviceType;
184        int m_iDeviceID;
185  };  };
186    
187    

Legend:
Removed from v.428  
changed lines
  Added in v.429

  ViewVC Help
Powered by ViewVC