/[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 430 by capela, Tue Mar 8 17:23:29 2005 UTC revision 463 by capela, Tue Mar 15 15:32:29 2005 UTC
# Line 34  Line 34 
34  // Special QListViewItem::rtti() unique return value.  // Special QListViewItem::rtti() unique return value.
35  #define QSAMPLER_DEVICE_ITEM    1001  #define QSAMPLER_DEVICE_ITEM    1001
36    
37    // Early forward declaration.
38    class qsamplerDevicePort;
39    
40    
41  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
42  // qsamplerDeviceParam - MIDI/Audio Device parameter structure.  // qsamplerDeviceParam - MIDI/Audio Device parameter structure.
# Line 42  class qsamplerDeviceParam Line 45  class qsamplerDeviceParam
45  {  {
46  public:  public:
47    
48      // Constructor.          // Constructor.
49      qsamplerDeviceParam(lscp_param_info_t *pParamInfo = NULL,          qsamplerDeviceParam(lscp_param_info_t *pParamInfo = NULL,
50                  const char *pszValue = NULL);                  const char *pszValue = NULL);
51      // Default destructor.          // Default destructor.
52      ~qsamplerDeviceParam();          ~qsamplerDeviceParam();
53    
54          // Initializer.          // Initializer.
55          void setParam(lscp_param_info_t *pParamInfo,          void setParam(lscp_param_info_t *pParamInfo,
56                  const char *pszValue = NULL);                  const char *pszValue = NULL);
57    
58      // Info structure field members.          // Info structure field members.
59      lscp_type_t type;          lscp_type_t     type;
60      QString     description;          QString         description;
61      bool        mandatory;          bool            mandatory;
62      bool        fix;          bool            fix;
63      bool        multiplicity;          bool            multiplicity;
64      QStringList depends;          QStringList depends;
65      QString     defaultv;          QString         defaultv;
66      QString     range_min;          QString         range_min;
67      QString     range_max;          QString         range_max;
68      QStringList possibilities;          QStringList possibilities;
69      // The current parameter value.          // The current parameter value.
70      QString     value;          QString         value;
71  };  };
72    
73  // A typedef'd parameter QMap.  // Typedef'd parameter QMap.
74  typedef QMap<QString, qsamplerDeviceParam> qsamplerDeviceParamMap;  typedef QMap<QString, qsamplerDeviceParam> qsamplerDeviceParamMap;
75    
76    // Typedef'd device port/channels QptrList.
77    typedef QPtrList<qsamplerDevicePort> qsamplerDevicePortList;
78    
79    
80  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
81  // qsamplerDevice - MIDI/Audio Device structure.  // qsamplerDevice - MIDI/Audio Device structure.
# Line 79  class qsamplerDevice Line 85  class qsamplerDevice
85  {  {
86  public:  public:
87    
88      // We use the same class for MIDI and audio device management          // We use the same class for MIDI and audio device management
89      enum qsamplerDeviceType { Midi, Audio };          enum qsamplerDeviceType { None, Midi, Audio };
90    
91      // Constructor.          // Constructor.
92      qsamplerDevice(lscp_client_t *pClient,          qsamplerDevice(lscp_client_t *pClient,
93                  qsamplerDeviceType deviceType, int iDeviceID = -1);                  qsamplerDeviceType deviceType, int iDeviceID = -1);
94      // Default destructor.          // Default destructor.
95      ~qsamplerDevice();          ~qsamplerDevice();
96    
97          // Initializer.          // Initializer.
98          void setDevice(lscp_client_t *pClient,          void setDevice(lscp_client_t *pClient,
99                  qsamplerDeviceType deviceType, int iDeviceID = -1);                  qsamplerDeviceType deviceType, int iDeviceID = -1);
100                    
101            // Driver name initializer.
102            void setDriver(lscp_client_t *pClient,
103                    const QString& sDriverName);
104    
105          // Device property accessors.          // Device property accessors.
106      int                 deviceID()   const;          int                 deviceID()   const;
107      qsamplerDeviceType  deviceType() const;          qsamplerDeviceType  deviceType() const;
108      const QString&      driverName() const;          const QString&      deviceTypeName() const;
109      const QString&      deviceName() const;          const QString&      driverName() const;
110            const QString&      deviceName() const;
111    
112            // Set the proper device parameter value.
113            void setParam (const QString& sParam, const QString& sValue);
114    
115          // Device parameters accessor.          // Device parameters accessor.
116          qsamplerDeviceParamMap& params();          const qsamplerDeviceParamMap& params() const;
117    
118          // Update/refresh device/driver data.          // Device port/channel list accessor.
119          void refresh();          qsamplerDevicePortList& ports();
120    
121            // Device port/channel list refreshner.
122            void refresh(lscp_client_t *pClient);
123            
124          // Device ids enumerator.          // Device ids enumerator.
125      static int *getDevices(lscp_client_t *pClient,          static int *getDevices(lscp_client_t *pClient,
126                  qsamplerDeviceType deviceType);                  qsamplerDeviceType deviceType);
127    
128          // Driver names enumerator.          // Driver names enumerator.
129      static QStringList getDrivers(lscp_client_t *pClient,          static QStringList getDrivers(lscp_client_t *pClient,
130                  qsamplerDeviceType deviceType);                  qsamplerDeviceType deviceType);
131    
132  private:  private:
133    
134          // Instance variables.          // Instance variables.
135      int                m_iDeviceID;          int                m_iDeviceID;
136      qsamplerDeviceType m_deviceType;          qsamplerDeviceType m_deviceType;
137      QString            m_sDriverName;          QString            m_sDeviceType;
138      QString            m_sDeviceName;          QString            m_sDriverName;
139            QString            m_sDeviceName;
140    
141          // Device parameter list.          // Device parameter list.
142          qsamplerDeviceParamMap m_params;          qsamplerDeviceParamMap m_params;
143            
144            // Device port/channel list.
145            qsamplerDevicePortList m_ports;
146    };
147    
148    
149    //-------------------------------------------------------------------------
150    // qsamplerDevicePort - MIDI/Audio Device port/channel structure.
151    //
152    
153    class qsamplerDevicePort
154    {
155    public:
156    
157            // Constructor.
158            qsamplerDevicePort(lscp_client_t *pClient,
159                    const qsamplerDevice& device, int iPortID);
160            // Default destructor.
161            ~qsamplerDevicePort();
162    
163            // Initializer.
164            void setDevicePort(lscp_client_t *pClient,
165                    const qsamplerDevice& device, int iPortID);
166    
167            // Device port property accessors.
168            int            portID()   const;
169            const QString& portName() const;
170    
171            // Device port parameters accessor.
172            const qsamplerDeviceParamMap& params() const;
173    
174            // Set the proper device port/channel parameter value.
175            void setParam (const QString& sParam, const QString& sValue);
176    
177    private:
178    
179            // Instance variables.
180            int     m_iPortID;
181            QString m_sPortName;
182    
183            // Device port parameter list.
184            qsamplerDeviceParamMap m_params;
185  };  };
186    
187    
# Line 133  class qsamplerDeviceItem : public QListV Line 193  class qsamplerDeviceItem : public QListV
193  {  {
194  public:  public:
195    
196      // Constructors.          // Constructors.
197      qsamplerDeviceItem(QListView *pListView, lscp_client_t *pClient,          qsamplerDeviceItem(QListView *pListView, lscp_client_t *pClient,
198                  qsamplerDevice::qsamplerDeviceType deviceType);                  qsamplerDevice::qsamplerDeviceType deviceType);
199      qsamplerDeviceItem(QListViewItem *pItem, lscp_client_t *pClient,          qsamplerDeviceItem(QListViewItem *pItem, lscp_client_t *pClient,
200                  qsamplerDevice::qsamplerDeviceType deviceType, int iDeviceID);                  qsamplerDevice::qsamplerDeviceType deviceType, int iDeviceID);
201      // Default destructor.          // Default destructor.
202      ~qsamplerDeviceItem();          ~qsamplerDeviceItem();
203    
204      // Instance accessors.          // Instance accessors.
205      const qsamplerDevice& device();          qsamplerDevice& device();
206    
207      // To virtually distinguish between list view items.          // To virtually distinguish between list view items.
208      virtual int rtti() const;          virtual int rtti() const;
209    
210  private:  private:
211    
212      // Instance variables.          // Instance variables.
213      qsamplerDevice m_device;          qsamplerDevice m_device;
214  };  };
215    
216    
# Line 160  private: Line 220  private:
220    
221  class qsamplerDeviceParamTable : public QTable  class qsamplerDeviceParamTable : public QTable
222  {  {
223      Q_OBJECT          Q_OBJECT
224    
225  public:  public:
226    
227      // Constructor.          // Constructor.
228      qsamplerDeviceParamTable(QWidget *pParent = 0, const char *pszName = 0);          qsamplerDeviceParamTable(QWidget *pParent = 0, const char *pszName = 0);
229      // Default destructor.          // Default destructor.
230      ~qsamplerDeviceParamTable();          ~qsamplerDeviceParamTable();
231    
232      // Client/device descriptor selector.          // Common parameter table renderer.
233          void setDevice(lscp_client_t *pClient,          void refresh(const qsamplerDeviceParamMap& params, bool bEditable);
234                  qsamplerDevice::qsamplerDeviceType deviceType, int iDeviceID = -1);  };
235    
     // Client/device descriptor accessors.  
         lscp_client_t *client();  
         int deviceID();  
236    
237          // The main table refresher.  //-------------------------------------------------------------------------
238          void refresh();  // qsamplerDeviceParamTableSpinBox - Custom spin box for parameter table.
239            //
240    
241    class qsamplerDeviceParamTableSpinBox : public QTableItem
242    {
243    public:
244    
245            // Constructor.
246            qsamplerDeviceParamTableSpinBox (QTable *pTable, EditType editType,
247                    const QString& sText);
248    
249            // Public accessors.
250            void setMinValue(int iMinValue);
251            void setMaxValue(int iMaxValue);
252            void setValue(int iValue);
253    
254    protected:
255    
256            // Virtual implemetations.
257            QWidget *createEditor() const;
258            void setContentFromEditor(QWidget *pWidget);
259    
260  private:  private:
261    
262      // LSCP client/device references.          // Initial value holders.
263      lscp_client_t *m_pClient;          int m_iValue;
264      qsamplerDevice::qsamplerDeviceType m_deviceType;          int m_iMinValue;
265      int m_iDeviceID;          int m_iMaxValue;
266    };
267    
268    
269    //-------------------------------------------------------------------------
270    // qsamplerDeviceParamTableEditBox - Custom edit box for parameter table.
271    //
272    
273    class qsamplerDeviceParamTableEditBox : public QTableItem
274    {
275    public:
276    
277            // Constructor.
278            qsamplerDeviceParamTableEditBox (QTable *pTable, EditType editType,
279                    const QString& sText);
280    
281    protected:
282    
283            // Virtual implemetations.
284            QWidget *createEditor() const;
285            void setContentFromEditor(QWidget *pWidget);
286  };  };
287    
288    

Legend:
Removed from v.430  
changed lines
  Added in v.463

  ViewVC Help
Powered by ViewVC