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

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

  ViewVC Help
Powered by ViewVC