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

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

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

revision 1510 by capela, Thu Nov 22 14:17:24 2007 UTC revision 1668 by schoenebeck, Tue Feb 5 15:42:33 2008 UTC
# Line 2  Line 2 
2  //  //
3  /****************************************************************************  /****************************************************************************
4     Copyright (C) 2004-2007, rncbc aka Rui Nuno Capela. All rights reserved.     Copyright (C) 2004-2007, rncbc aka Rui Nuno Capela. All rights reserved.
5     Copyright (C) 2007, Christian Schoenebeck     Copyright (C) 2007, 2008 Christian Schoenebeck
6    
7     This program is free software; you can redistribute it and/or     This program is free software; you can redistribute it and/or
8     modify it under the terms of the GNU General Public License     modify it under the terms of the GNU General Public License
# Line 34  Line 34 
34  #include "gig.h"  #include "gig.h"
35  #endif  #endif
36    
37    namespace QSampler {
38    
39  #define QSAMPLER_INSTRUMENT_MAX 100  #define QSAMPLER_INSTRUMENT_MAX 100
40    
41  #define UNICODE_RIGHT_ARROW     QChar(char(0x92), char(0x21))  #define UNICODE_RIGHT_ARROW     QChar(char(0x92), char(0x21))
42    
43    
 using namespace QSampler;  
   
44  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
45  // qsamplerChannel - Sampler channel structure.  // QSampler::Channel - Sampler channel structure.
46  //  //
47    
48  // Constructor.  // Constructor.
49  qsamplerChannel::qsamplerChannel ( int iChannelID )  Channel::Channel ( int iChannelID )
50  {  {
51          m_iChannelID = iChannelID;          m_iChannelID = iChannelID;
52    
# Line 68  qsamplerChannel::qsamplerChannel ( int i Line 68  qsamplerChannel::qsamplerChannel ( int i
68  }  }
69    
70  // Default destructor.  // Default destructor.
71  qsamplerChannel::~qsamplerChannel (void)  Channel::~Channel (void)
72  {  {
73  }  }
74    
75    
76  // Create a new sampler channel, if not already.  // Create a new sampler channel, if not already.
77  bool qsamplerChannel::addChannel (void)  bool Channel::addChannel (void)
78  {  {
79          MainForm* pMainForm = MainForm::getInstance();          MainForm* pMainForm = MainForm::getInstance();
80          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 99  bool qsamplerChannel::addChannel (void) Line 99  bool qsamplerChannel::addChannel (void)
99    
100    
101  // Remove sampler channel.  // Remove sampler channel.
102  bool qsamplerChannel::removeChannel (void)  bool Channel::removeChannel (void)
103  {  {
104          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
105          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 125  bool qsamplerChannel::removeChannel (voi Line 125  bool qsamplerChannel::removeChannel (voi
125    
126    
127  // Channel-ID (aka Sammpler-Channel) accessors.  // Channel-ID (aka Sammpler-Channel) accessors.
128  int qsamplerChannel::channelID (void) const  int Channel::channelID (void) const
129  {  {
130          return m_iChannelID;          return m_iChannelID;
131  }  }
132    
133  void qsamplerChannel::setChannelID ( int iChannelID )  void Channel::setChannelID ( int iChannelID )
134  {  {
135          m_iChannelID = iChannelID;          m_iChannelID = iChannelID;
136  }  }
137    
138    
139  // Readable channel name.  // Readable channel name.
140  QString qsamplerChannel::channelName (void) const  QString Channel::channelName (void) const
141  {  {
142          return (m_iChannelID < 0 ? QObject::tr("New Channel") : QObject::tr("Channel %1").arg(m_iChannelID));          return (m_iChannelID < 0 ? QObject::tr("New Channel") : QObject::tr("Channel %1").arg(m_iChannelID));
143  }  }
144    
145    
146  // Engine name accessors.  // Engine name accessors.
147  const QString& qsamplerChannel::engineName (void) const  const QString& Channel::engineName (void) const
148  {  {
149          return m_sEngineName;          return m_sEngineName;
150  }  }
151    
152  bool qsamplerChannel::loadEngine ( const QString& sEngineName )  bool Channel::loadEngine ( const QString& sEngineName )
153  {  {
154          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
155          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 173  bool qsamplerChannel::loadEngine ( const Line 173  bool qsamplerChannel::loadEngine ( const
173    
174    
175  // Instrument filename accessor.  // Instrument filename accessor.
176  const QString& qsamplerChannel::instrumentFile (void) const  const QString& Channel::instrumentFile (void) const
177  {  {
178          return m_sInstrumentFile;          return m_sInstrumentFile;
179  }  }
180    
181  // Instrument index accessor.  // Instrument index accessor.
182  int qsamplerChannel::instrumentNr (void) const  int Channel::instrumentNr (void) const
183  {  {
184          return m_iInstrumentNr;          return m_iInstrumentNr;
185  }  }
186    
187  // Instrument name accessor.  // Instrument name accessor.
188  const QString& qsamplerChannel::instrumentName (void) const  const QString& Channel::instrumentName (void) const
189  {  {
190          return m_sInstrumentName;          return m_sInstrumentName;
191  }  }
192    
193  // Instrument status accessor.  // Instrument status accessor.
194  int qsamplerChannel::instrumentStatus (void) const  int Channel::instrumentStatus (void) const
195  {  {
196          return m_iInstrumentStatus;          return m_iInstrumentStatus;
197  }  }
198    
199  // Instrument file loader.  // Instrument file loader.
200  bool qsamplerChannel::loadInstrument ( const QString& sInstrumentFile, int iInstrumentNr )  bool Channel::loadInstrument ( const QString& sInstrumentFile, int iInstrumentNr )
201  {  {
202          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
203          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 229  bool qsamplerChannel::loadInstrument ( c Line 229  bool qsamplerChannel::loadInstrument ( c
229    
230    
231  // Special instrument file/name/number settler.  // Special instrument file/name/number settler.
232  bool qsamplerChannel::setInstrument ( const QString& sInstrumentFile, int iInstrumentNr )  bool Channel::setInstrument ( const QString& sInstrumentFile, int iInstrumentNr )
233  {  {
234          m_sInstrumentFile = sInstrumentFile;          m_sInstrumentFile = sInstrumentFile;
235          m_iInstrumentNr = iInstrumentNr;          m_iInstrumentNr = iInstrumentNr;
# Line 245  bool qsamplerChannel::setInstrument ( co Line 245  bool qsamplerChannel::setInstrument ( co
245    
246    
247  // MIDI driver type accessors (DEPRECATED).  // MIDI driver type accessors (DEPRECATED).
248  const QString& qsamplerChannel::midiDriver (void) const  const QString& Channel::midiDriver (void) const
249  {  {
250          return m_sMidiDriver;          return m_sMidiDriver;
251  }  }
252    
253  bool qsamplerChannel::setMidiDriver ( const QString& sMidiDriver )  bool Channel::setMidiDriver ( const QString& sMidiDriver )
254  {  {
255          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
256          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 274  bool qsamplerChannel::setMidiDriver ( co Line 274  bool qsamplerChannel::setMidiDriver ( co
274    
275    
276  // MIDI device accessors.  // MIDI device accessors.
277  int qsamplerChannel::midiDevice (void) const  int Channel::midiDevice (void) const
278  {  {
279          return m_iMidiDevice;          return m_iMidiDevice;
280  }  }
281    
282  bool qsamplerChannel::setMidiDevice ( int iMidiDevice )  bool Channel::setMidiDevice ( int iMidiDevice )
283  {  {
284          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
285          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 302  bool qsamplerChannel::setMidiDevice ( in Line 302  bool qsamplerChannel::setMidiDevice ( in
302    
303    
304  // MIDI port number accessor.  // MIDI port number accessor.
305  int qsamplerChannel::midiPort (void) const  int Channel::midiPort (void) const
306  {  {
307          return m_iMidiPort;          return m_iMidiPort;
308  }  }
309    
310  bool qsamplerChannel::setMidiPort ( int iMidiPort )  bool Channel::setMidiPort ( int iMidiPort )
311  {  {
312          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
313          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 330  bool qsamplerChannel::setMidiPort ( int Line 330  bool qsamplerChannel::setMidiPort ( int
330    
331    
332  // MIDI channel accessor.  // MIDI channel accessor.
333  int qsamplerChannel::midiChannel (void) const  int Channel::midiChannel (void) const
334  {  {
335          return m_iMidiChannel;          return m_iMidiChannel;
336  }  }
337    
338  bool qsamplerChannel::setMidiChannel ( int iMidiChannel )  bool Channel::setMidiChannel ( int iMidiChannel )
339  {  {
340          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
341          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 358  bool qsamplerChannel::setMidiChannel ( i Line 358  bool qsamplerChannel::setMidiChannel ( i
358    
359    
360  // MIDI instrument map accessor.  // MIDI instrument map accessor.
361  int qsamplerChannel::midiMap (void) const  int Channel::midiMap (void) const
362  {  {
363          return m_iMidiMap;          return m_iMidiMap;
364  }  }
365    
366  bool qsamplerChannel::setMidiMap ( int iMidiMap )  bool Channel::setMidiMap ( int iMidiMap )
367  {  {
368          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
369          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 386  bool qsamplerChannel::setMidiMap ( int i Line 386  bool qsamplerChannel::setMidiMap ( int i
386    
387    
388  // Audio device accessor.  // Audio device accessor.
389  int qsamplerChannel::audioDevice (void) const  int Channel::audioDevice (void) const
390  {  {
391          return m_iAudioDevice;          return m_iAudioDevice;
392  }  }
393    
394  bool qsamplerChannel::setAudioDevice ( int iAudioDevice )  bool Channel::setAudioDevice ( int iAudioDevice )
395  {  {
396          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
397          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 414  bool qsamplerChannel::setAudioDevice ( i Line 414  bool qsamplerChannel::setAudioDevice ( i
414    
415    
416  // Audio driver type accessors (DEPRECATED).  // Audio driver type accessors (DEPRECATED).
417  const QString& qsamplerChannel::audioDriver (void) const  const QString& Channel::audioDriver (void) const
418  {  {
419          return m_sAudioDriver;          return m_sAudioDriver;
420  }  }
421    
422  bool qsamplerChannel::setAudioDriver ( const QString& sAudioDriver )  bool Channel::setAudioDriver ( const QString& sAudioDriver )
423  {  {
424          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
425          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 443  bool qsamplerChannel::setAudioDriver ( c Line 443  bool qsamplerChannel::setAudioDriver ( c
443    
444    
445  // Channel volume accessors.  // Channel volume accessors.
446  float qsamplerChannel::volume (void) const  float Channel::volume (void) const
447  {  {
448          return m_fVolume;          return m_fVolume;
449  }  }
450    
451  bool qsamplerChannel::setVolume ( float fVolume )  bool Channel::setVolume ( float fVolume )
452  {  {
453          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
454          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 471  bool qsamplerChannel::setVolume ( float Line 471  bool qsamplerChannel::setVolume ( float
471    
472    
473  // Sampler channel mute state.  // Sampler channel mute state.
474  bool qsamplerChannel::channelMute (void) const  bool Channel::channelMute (void) const
475  {  {
476          return m_bMute;          return m_bMute;
477  }  }
478    
479  bool qsamplerChannel::setChannelMute ( bool bMute )  bool Channel::setChannelMute ( bool bMute )
480  {  {
481          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
482          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 501  bool qsamplerChannel::setChannelMute ( b Line 501  bool qsamplerChannel::setChannelMute ( b
501    
502    
503  // Sampler channel solo state.  // Sampler channel solo state.
504  bool qsamplerChannel::channelSolo (void) const  bool Channel::channelSolo (void) const
505  {  {
506          return m_bSolo;          return m_bSolo;
507  }  }
508    
509  bool qsamplerChannel::setChannelSolo ( bool bSolo )  bool Channel::setChannelSolo ( bool bSolo )
510  {  {
511          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
512          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 531  bool qsamplerChannel::setChannelSolo ( b Line 531  bool qsamplerChannel::setChannelSolo ( b
531    
532    
533  // Audio routing accessors.  // Audio routing accessors.
534  int qsamplerChannel::audioChannel ( int iAudioOut ) const  int Channel::audioChannel ( int iAudioOut ) const
535  {  {
536          return m_audioRouting[iAudioOut];          return m_audioRouting[iAudioOut];
537  }  }
538    
539  bool qsamplerChannel::setAudioChannel ( int iAudioOut, int iAudioIn )  bool Channel::setAudioChannel ( int iAudioOut, int iAudioIn )
540  {  {
541          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
542          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 561  bool qsamplerChannel::setAudioChannel ( Line 561  bool qsamplerChannel::setAudioChannel (
561  }  }
562    
563  // The audio routing map itself.  // The audio routing map itself.
564  const qsamplerChannelRoutingMap& qsamplerChannel::audioRouting (void) const  const ChannelRoutingMap& Channel::audioRouting (void) const
565  {  {
566          return m_audioRouting;          return m_audioRouting;
567  }  }
568    
569    
570  // Istrument name remapper.  // Istrument name remapper.
571  void qsamplerChannel::updateInstrumentName (void)  void Channel::updateInstrumentName (void)
572  {  {
573  #ifndef CONFIG_INSTRUMENT_NAME  #ifndef CONFIG_INSTRUMENT_NAME
574          m_sInstrumentName = getInstrumentName(m_sInstrumentFile,          m_sInstrumentName = getInstrumentName(m_sInstrumentFile,
# Line 578  void qsamplerChannel::updateInstrumentNa Line 578  void qsamplerChannel::updateInstrumentNa
578    
579    
580  // Update whole channel info state.  // Update whole channel info state.
581  bool qsamplerChannel::updateChannelInfo (void)  bool Channel::updateChannelInfo (void)
582  {  {
583          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
584          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 672  bool qsamplerChannel::updateChannelInfo Line 672  bool qsamplerChannel::updateChannelInfo
672    
673    
674  // Reset channel method.  // Reset channel method.
675  bool qsamplerChannel::channelReset (void)  bool Channel::channelReset (void)
676  {  {
677          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
678          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 692  bool qsamplerChannel::channelReset (void Line 692  bool qsamplerChannel::channelReset (void
692    
693    
694  // Spawn instrument editor method.  // Spawn instrument editor method.
695  bool qsamplerChannel::editChannel (void)  bool Channel::editChannel (void)
696  {  {
697  #ifdef CONFIG_EDIT_INSTRUMENT  #ifdef CONFIG_EDIT_INSTRUMENT
698    
# Line 707  bool qsamplerChannel::editChannel (void) Line 707  bool qsamplerChannel::editChannel (void)
707                  appendMessagesClient("lscp_edit_channel_instrument");                  appendMessagesClient("lscp_edit_channel_instrument");
708                  appendMessagesError(QObject::tr(                  appendMessagesError(QObject::tr(
709                          "Could not launch an appropriate instrument editor "                          "Could not launch an appropriate instrument editor "
710                          "for the given instrument!\n"                          "for the given instrument!\n\n"
711                          "Make sure you have an appropriate "                          "Make sure you have an appropriate "
712                          "instrument editor like 'gigedit' installed\n"                          "instrument editor like 'gigedit' installed "
713                          "and that it placed its mandatory DLL file "                          "and that it placed its mandatory DLL file "
714                          "into the sampler's plugin directory.")                          "into the sampler's plugin directory.")
715                  );                  );
# Line 724  bool qsamplerChannel::editChannel (void) Line 724  bool qsamplerChannel::editChannel (void)
724    
725          appendMessagesError(QObject::tr(          appendMessagesError(QObject::tr(
726                  "Sorry, QSampler was compiled for a version of liblscp "                  "Sorry, QSampler was compiled for a version of liblscp "
727                  "which lacks this feature.\n"                  "which lacks this feature.\n\n"
728                  "You may want to update liblscp and recompile QSampler afterwards.")                  "You may want to update liblscp and recompile QSampler afterwards.")
729          );          );
730    
# Line 735  bool qsamplerChannel::editChannel (void) Line 735  bool qsamplerChannel::editChannel (void)
735    
736    
737  // Channel setup dialog form.  // Channel setup dialog form.
738  bool qsamplerChannel::channelSetup ( QWidget *pParent )  bool Channel::channelSetup ( QWidget *pParent )
739  {  {
740          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
741          if (pMainForm == NULL)          if (pMainForm == NULL)
# Line 757  bool qsamplerChannel::channelSetup ( QWi Line 757  bool qsamplerChannel::channelSetup ( QWi
757    
758    
759  // Redirected messages output methods.  // Redirected messages output methods.
760  void qsamplerChannel::appendMessages( const QString& s ) const  void Channel::appendMessages( const QString& s ) const
761  {  {
762          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
763          if (pMainForm)          if (pMainForm)
764                  pMainForm->appendMessages(channelName() + ' ' + s);                  pMainForm->appendMessages(channelName() + ' ' + s);
765  }  }
766    
767  void qsamplerChannel::appendMessagesColor( const QString& s,  void Channel::appendMessagesColor( const QString& s,
768          const QString& c ) const          const QString& c ) const
769  {  {
770          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
# Line 772  void qsamplerChannel::appendMessagesColo Line 772  void qsamplerChannel::appendMessagesColo
772                  pMainForm->appendMessagesColor(channelName() + ' ' + s, c);                  pMainForm->appendMessagesColor(channelName() + ' ' + s, c);
773  }  }
774    
775  void qsamplerChannel::appendMessagesText( const QString& s ) const  void Channel::appendMessagesText( const QString& s ) const
776  {  {
777          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
778          if (pMainForm)          if (pMainForm)
779                  pMainForm->appendMessagesText(channelName() + ' ' + s);                  pMainForm->appendMessagesText(channelName() + ' ' + s);
780  }  }
781    
782  void qsamplerChannel::appendMessagesError( const QString& s ) const  void Channel::appendMessagesError( const QString& s ) const
783  {  {
784          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
785          if (pMainForm)          if (pMainForm)
786                  pMainForm->appendMessagesError(channelName() + "\n\n" + s);                  pMainForm->appendMessagesError(channelName() + "\n\n" + s);
787  }  }
788    
789  void qsamplerChannel::appendMessagesClient( const QString& s ) const  void Channel::appendMessagesClient( const QString& s ) const
790  {  {
791          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
792          if (pMainForm)          if (pMainForm)
# Line 795  void qsamplerChannel::appendMessagesClie Line 795  void qsamplerChannel::appendMessagesClie
795    
796    
797  // Context menu event handler.  // Context menu event handler.
798  void qsamplerChannel::contextMenuEvent( QContextMenuEvent *pEvent )  void Channel::contextMenuEvent( QContextMenuEvent *pEvent )
799  {  {
800          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
801          if (pMainForm)          if (pMainForm)
# Line 804  void qsamplerChannel::contextMenuEvent( Line 804  void qsamplerChannel::contextMenuEvent(
804    
805    
806  // FIXME: Check whether a given file is an instrument file.  // FIXME: Check whether a given file is an instrument file.
807  bool qsamplerChannel::isInstrumentFile ( const QString& sInstrumentFile )  bool Channel::isInstrumentFile ( const QString& sInstrumentFile )
808  {  {
809          bool bResult = false;          bool bResult = false;
810    
# Line 823  bool qsamplerChannel::isInstrumentFile ( Line 823  bool qsamplerChannel::isInstrumentFile (
823    
824    
825  // Retrieve the instrument list of a instrument file (.gig).  // Retrieve the instrument list of a instrument file (.gig).
826  QStringList qsamplerChannel::getInstrumentList( const QString& sInstrumentFile,  QStringList Channel::getInstrumentList( const QString& sInstrumentFile,
827          bool bInstrumentNames )          bool bInstrumentNames )
828  {  {
829          QString sInstrumentName = QFileInfo(sInstrumentFile).fileName();          QString sInstrumentName = QFileInfo(sInstrumentFile).fileName();
# Line 835  QStringList qsamplerChannel::getInstrume Line 835  QStringList qsamplerChannel::getInstrume
835                          RIFF::File *pRiff                          RIFF::File *pRiff
836                                  = new RIFF::File(sInstrumentFile.toUtf8().constData());                                  = new RIFF::File(sInstrumentFile.toUtf8().constData());
837                          gig::File  *pGig  = new gig::File(pRiff);                          gig::File  *pGig  = new gig::File(pRiff);
838    #if HAVE_LIBGIG_SETAUTOLOAD
839                            // prevent sleepy response time on large .gig files
840                            pGig->SetAutoLoad(false);
841    #endif
842                          gig::Instrument *pInstrument = pGig->GetFirstInstrument();                          gig::Instrument *pInstrument = pGig->GetFirstInstrument();
843                          while (pInstrument) {                          while (pInstrument) {
844                                  instlist.append((pInstrument->pInfo)->Name.c_str());                                  instlist.append((pInstrument->pInfo)->Name.c_str());
# Line 855  QStringList qsamplerChannel::getInstrume Line 859  QStringList qsamplerChannel::getInstrume
859    
860    
861  // Retrieve the spacific instrument name of a instrument file (.gig), given its index.  // Retrieve the spacific instrument name of a instrument file (.gig), given its index.
862  QString qsamplerChannel::getInstrumentName( const QString& sInstrumentFile,  QString Channel::getInstrumentName( const QString& sInstrumentFile,
863          int iInstrumentNr, bool bInstrumentNames )          int iInstrumentNr, bool bInstrumentNames )
864  {  {
865          QString sInstrumentName;          QString sInstrumentName;
# Line 867  QString qsamplerChannel::getInstrumentNa Line 871  QString qsamplerChannel::getInstrumentNa
871                          RIFF::File *pRiff                          RIFF::File *pRiff
872                                  = new RIFF::File(sInstrumentFile.toUtf8().constData());                                  = new RIFF::File(sInstrumentFile.toUtf8().constData());
873                          gig::File *pGig = new gig::File(pRiff);                          gig::File *pGig = new gig::File(pRiff);
874    #if HAVE_LIBGIG_SETAUTOLOAD
875                            // prevent sleepy response time on large .gig files
876                            pGig->SetAutoLoad(false);
877    #endif
878                          int iIndex = 0;                          int iIndex = 0;
879                          gig::Instrument *pInstrument = pGig->GetFirstInstrument();                          gig::Instrument *pInstrument = pGig->GetFirstInstrument();
880                          while (pInstrument) {                          while (pInstrument) {
# Line 891  QString qsamplerChannel::getInstrumentNa Line 899  QString qsamplerChannel::getInstrumentNa
899    
900    
901  // Common invalid name-helpers.  // Common invalid name-helpers.
902  QString qsamplerChannel::noEngineName (void)  QString Channel::noEngineName (void)
903  {  {
904          return QObject::tr("(No engine)");          return QObject::tr("(No engine)");
905  }  }
906    
907  QString qsamplerChannel::noInstrumentName (void)  QString Channel::noInstrumentName (void)
908  {  {
909          return QObject::tr("(No instrument)");          return QObject::tr("(No instrument)");
910  }  }
911    
912  QString qsamplerChannel::loadingInstrument (void) {  QString Channel::loadingInstrument (void) {
913          return QObject::tr("(Loading instrument...)");          return QObject::tr("(Loading instrument...)");
914  }  }
915    
916    
917  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
918  // ChannelRoutingModel - data model for audio routing (used for QTableView)  // QSampler::ChannelRoutingModel - data model for audio routing
919  //  //                                 (used for QTableView)
920    
921  ChannelRoutingModel::ChannelRoutingModel ( QObject *pParent )  ChannelRoutingModel::ChannelRoutingModel ( QObject *pParent )
922          : QAbstractTableModel(pParent), m_pDevice(NULL)          : QAbstractTableModel(pParent), m_pDevice(NULL)
# Line 918  ChannelRoutingModel::ChannelRoutingModel Line 926  ChannelRoutingModel::ChannelRoutingModel
926    
927  int ChannelRoutingModel::rowCount ( const QModelIndex& /*parent*/) const  int ChannelRoutingModel::rowCount ( const QModelIndex& /*parent*/) const
928  {  {
929          return m_routing.size();          return (m_pDevice) ? m_routing.size() : 0;
930  }  }
931    
932    
# Line 959  QVariant ChannelRoutingModel::data ( con Line 967  QVariant ChannelRoutingModel::data ( con
967          ChannelRoutingItem item;          ChannelRoutingItem item;
968    
969          // The common device port item list.          // The common device port item list.
970          qsamplerDevicePortList& ports = m_pDevice->ports();          DevicePortList& ports = m_pDevice->ports();
971          QListIterator<qsamplerDevicePort *> iter(ports);          QListIterator<DevicePort *> iter(ports);
972          while (iter.hasNext()) {          while (iter.hasNext()) {
973                  qsamplerDevicePort *pPort = iter.next();                  DevicePort *pPort = iter.next();
974                  item.options.append(                  item.options.append(
975                          m_pDevice->deviceTypeName()                          m_pDevice->deviceTypeName()
976                          + ' ' + m_pDevice->driverName()                          + ' ' + m_pDevice->driverName()
# Line 986  QVariant ChannelRoutingModel::headerData Line 994  QVariant ChannelRoutingModel::headerData
994                  case Qt::Horizontal:                  case Qt::Horizontal:
995                          return UNICODE_RIGHT_ARROW + QObject::tr(" Device Channel");                          return UNICODE_RIGHT_ARROW + QObject::tr(" Device Channel");
996                  case Qt::Vertical:                  case Qt::Vertical:
997                          return QObject::tr("Sampler Channel ") +                          return QObject::tr("Audio Channel ") +
998                                  QString::number(section) + " " + UNICODE_RIGHT_ARROW;                                  QString::number(section) + " " + UNICODE_RIGHT_ARROW;
999                  default:                  default:
1000                          return QVariant();                          return QVariant();
# Line 994  QVariant ChannelRoutingModel::headerData Line 1002  QVariant ChannelRoutingModel::headerData
1002  }  }
1003    
1004    
1005  void ChannelRoutingModel::refresh ( qsamplerDevice *pDevice,  void ChannelRoutingModel::refresh ( Device *pDevice,
1006          const qsamplerChannelRoutingMap& routing )          const ChannelRoutingMap& routing )
1007  {  {
1008          m_pDevice = pDevice;          m_pDevice = pDevice;
1009          m_routing = routing;          m_routing = routing;
# Line 1005  void ChannelRoutingModel::refresh ( qsam Line 1013  void ChannelRoutingModel::refresh ( qsam
1013    
1014    
1015  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
1016  // ChannelRoutingDelegate - table cell renderer for audio routing  // QSampler::ChannelRoutingDelegate - table cell renderer for audio routing
1017  //  //
1018    
1019  ChannelRoutingDelegate::ChannelRoutingDelegate ( QObject *pParent )  ChannelRoutingDelegate::ChannelRoutingDelegate ( QObject *pParent )
# Line 1058  void ChannelRoutingDelegate::updateEdito Line 1066  void ChannelRoutingDelegate::updateEdito
1066          pEditor->setGeometry(option.rect);          pEditor->setGeometry(option.rect);
1067  }  }
1068    
1069    } // namespace QSampler
1070    
1071    
1072  // end of qsamplerChannel.cpp  // end of qsamplerChannel.cpp

Legend:
Removed from v.1510  
changed lines
  Added in v.1668

  ViewVC Help
Powered by ViewVC