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

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

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

revision 429 by capela, Tue Mar 8 14:56:05 2005 UTC revision 430 by capela, Tue Mar 8 17:23:29 2005 UTC
# Line 1  Line 1 
1  // qsamplerDevice.cpp  // qsamplerDevice.cpp
2  //  //
3  /****************************************************************************  /****************************************************************************
4     Copyright (C) 2003-2005, rncbc aka Rui Nuno Capela. All rights reserved.     Copyright (C) 2005, rncbc aka Rui Nuno Capela. All rights reserved.
5    
6     This program is free software; you can redistribute it and/or     This program is free software; you can redistribute it and/or
7     modify it under the terms of the GNU General Public License     modify it under the terms of the GNU General Public License
# Line 117  qsamplerDevice::~qsamplerDevice (void) Line 117  qsamplerDevice::~qsamplerDevice (void)
117  void qsamplerDevice::setDevice ( lscp_client_t *pClient,  void qsamplerDevice::setDevice ( lscp_client_t *pClient,
118          qsamplerDeviceType deviceType, int iDeviceID )          qsamplerDeviceType deviceType, int iDeviceID )
119  {  {
120          if (pClient == NULL || iDeviceID < 0)          // Device id and type should be always set.
121              return;          m_iDeviceID   = iDeviceID;
122                        m_deviceType  = deviceType;
123    
124            // Retrieve device info, if any.
125            QString sDeviceType;
126          lscp_device_info_t *pDeviceInfo = NULL;          lscp_device_info_t *pDeviceInfo = NULL;
127          switch (deviceType) {          switch (deviceType) {
128            case qsamplerDevice::Audio:            case qsamplerDevice::Audio:
129                  m_sDeviceName = QObject::tr("Audio");              sDeviceType = QObject::tr("Audio");
130              pDeviceInfo = ::lscp_get_audio_device_info(pClient, iDeviceID);              pDeviceInfo = ::lscp_get_audio_device_info(pClient, iDeviceID);
131                  break;                  break;
132            case qsamplerDevice::Midi:            case qsamplerDevice::Midi:
133                  m_sDeviceName = QObject::tr("MIDI");              sDeviceType = QObject::tr("MIDI");
134                  pDeviceInfo = ::lscp_get_midi_device_info(pClient, iDeviceID);                  pDeviceInfo = ::lscp_get_midi_device_info(pClient, iDeviceID);
135                  break;                  break;
136          }          }
137          if (pDeviceInfo == NULL)          
138            // If we're bogus, bail out...
139            if (pDeviceInfo == NULL) {
140                    m_sDriverName = QString::null;
141                    m_sDeviceName = QObject::tr("New %1 device").arg(sDeviceType);
142              return;              return;
143            }
         // Device properties...  
         m_iDeviceID   = iDeviceID;  
         m_deviceType  = deviceType;  
         m_sDriverName = pDeviceInfo->driver;  
144                    
145          // Complete fake device name...          // Other device properties...
146          m_sDeviceName += ' ' + m_sDriverName + ' ';          m_sDriverName = pDeviceInfo->driver;
147          m_sDeviceName += QObject::tr("Device %1").arg(m_iDeviceID);          m_sDeviceName = m_sDriverName + ' '
148                    + QObject::tr("Device %1").arg(m_iDeviceID);
149    
150          // Grab device/driver parameters...          // Grab device/driver parameters...
151          m_params.clear();          m_params.clear();
# Line 196  void qsamplerDevice::refresh (void) Line 200  void qsamplerDevice::refresh (void)
200  {  {
201  }  }
202    
203  // Device enumerator.  // Device ids enumerator.
204  int *qsamplerDevice::getDevices ( lscp_client_t *pClient,  int *qsamplerDevice::getDevices ( lscp_client_t *pClient,
205          qsamplerDeviceType deviceType )          qsamplerDeviceType deviceType )
206  {  {
# Line 212  int *qsamplerDevice::getDevices ( lscp_c Line 216  int *qsamplerDevice::getDevices ( lscp_c
216          return piDeviceIDs;          return piDeviceIDs;
217  }  }
218    
219    
220    // Driver names enumerator.
221    QStringList qsamplerDevice::getDrivers ( lscp_client_t *pClient,
222            qsamplerDeviceType deviceType )
223    {
224            QStringList drivers;
225            
226            const char **ppszDrivers = NULL;
227            switch (deviceType) {
228              case qsamplerDevice::Audio:
229                ppszDrivers = ::lscp_get_available_audio_drivers(pClient);
230                    break;
231              case qsamplerDevice::Midi:
232                ppszDrivers = ::lscp_get_available_midi_drivers(pClient);
233                    break;
234            }
235            
236        for (int iDriver = 0; ppszDrivers[iDriver]; iDriver++)
237            drivers.append(ppszDrivers[iDriver]);
238    
239            return drivers;
240    }
241    
242    
243  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
244  // qsamplerDeviceItem - QListView device item.  // qsamplerDeviceItem - QListView device item.
245  //  //

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

  ViewVC Help
Powered by ViewVC