/[svn]/qsampler/trunk/src/qsamplerChannelStrip.ui.h
ViewVC logotype

Diff of /qsampler/trunk/src/qsamplerChannelStrip.ui.h

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

revision 264 by capela, Wed Sep 29 13:12:45 2004 UTC revision 302 by capela, Wed Nov 17 17:17:18 2004 UTC
# Line 25  Line 25 
25  #include <qfileinfo.h>  #include <qfileinfo.h>
26  #include <qtooltip.h>  #include <qtooltip.h>
27  #include <qpopupmenu.h>  #include <qpopupmenu.h>
28    #include <qobjectlist.h>
29    
30  #include <math.h>  #include <math.h>
31    
# Line 70  void qsamplerChannelStrip::setup ( qsamp Line 71  void qsamplerChannelStrip::setup ( qsamp
71      // Create a new one...      // Create a new one...
72      m_pChannel = new qsamplerChannel(pMainForm);      m_pChannel = new qsamplerChannel(pMainForm);
73      // And set appropriate settings.      // And set appropriate settings.
74      if (m_pChannel) {      if (m_pChannel && iChannelID >= 0) {
75          m_pChannel->setChannelID(iChannelID);          m_pChannel->setChannelID(iChannelID);
76          m_iDirtyChange = 0;          m_iDirtyChange = 0;
77      }      }
78    
79        // Stabilize this around.
80        updateChannelInfo();
81  }  }
82    
83  // Channel secriptor accessor.  // Channel secriptor accessor.
# Line 98  void qsamplerChannelStrip::setDisplayFon Line 102  void qsamplerChannelStrip::setDisplayFon
102  }  }
103    
104    
105  // Channel setup dialog slot.  // Channel display background effect.
106  void qsamplerChannelStrip::channelSetup (void)  void qsamplerChannelStrip::setDisplayEffect ( bool bDisplayEffect )
107  {  {
108      showChannelSetup(false);      QPixmap pm;
109        if (bDisplayEffect)
110            pm = QPixmap::fromMimeSource("displaybg1.png");
111        setDisplayBackground(pm);
112    }
113    
114    
115    // Update main display background pixmap.
116    void qsamplerChannelStrip::setDisplayBackground ( const QPixmap& pm )
117    {
118        // Set the main origin...
119        ChannelInfoFrame->setPaletteBackgroundPixmap(pm);
120    
121        // Iterate for every child text label...
122        QObjectList *pList = ChannelInfoFrame->queryList("QLabel");
123        if (pList) {
124            for (QLabel *pLabel = (QLabel *) pList->first(); pLabel; pLabel = (QLabel *) pList->next())
125                pLabel->setPaletteBackgroundPixmap(pm);
126            delete pList;
127        }
128        
129        // And this standalone too.
130        StreamVoiceCountTextLabel->setPaletteBackgroundPixmap(pm);
131  }  }
132    
133    
134  // Channel setup dialog.  // Channel setup dialog slot.
135  void qsamplerChannelStrip::showChannelSetup ( bool bNew )  bool qsamplerChannelStrip::channelSetup (void)
136  {  {
137        bool bResult = false;
138    
139      qsamplerChannelForm *pChannelForm = new qsamplerChannelForm(this);      qsamplerChannelForm *pChannelForm = new qsamplerChannelForm(this);
140      if (pChannelForm) {      if (pChannelForm) {
141          pChannelForm->setup(m_pChannel, bNew);          pChannelForm->setup(m_pChannel);
142          if (pChannelForm->exec()) {          bResult = pChannelForm->exec();
             updateChannelInfo();  
             emit channelChanged(this);  
         }  
143          delete pChannelForm;          delete pChannelForm;
144      }      }
145    
146        if (bResult)
147            emit channelChanged(this);
148    
149        return bResult;
150  }  }
151    
152    
153  // Update whole channel info state.  // Update whole channel info state.
154  void qsamplerChannelStrip::updateChannelInfo (void)  bool qsamplerChannelStrip::updateChannelInfo (void)
155  {  {
156      if (m_pChannel == NULL)      if (m_pChannel == NULL)
157          return;          return false;
158                    
159      // Update strip caption.      // Update strip caption.
160      QString sText = tr("Channel %1").arg(m_pChannel->channelID());      QString sText = m_pChannel->channelName();
161      setCaption(sText);      setCaption(sText);
162      ChannelSetupPushButton->setText(sText);      ChannelSetupPushButton->setText(sText);
163    
164      // Check if we're up and connected.      // Check if we're up and connected.
165      if (m_pChannel->client() == NULL)      if (m_pChannel->client() == NULL)
166          return;          return false;
167    
168      // Read actual channel information.      // Read actual channel information.
169      m_pChannel->updateChannelInfo();      m_pChannel->updateChannelInfo();
# Line 151  void qsamplerChannelStrip::updateChannel Line 181  void qsamplerChannelStrip::updateChannel
181      if (m_pChannel->instrumentFile().isEmpty())      if (m_pChannel->instrumentFile().isEmpty())
182          InstrumentNameTextLabel->setText(sIndent + tr("(No instrument)"));          InstrumentNameTextLabel->setText(sIndent + tr("(No instrument)"));
183      else      else
184          InstrumentNameTextLabel->setText(sIndent + QString("%1 [%2]")          InstrumentNameTextLabel->setText(sIndent + qsamplerChannel::getInstrumentName(m_pChannel->instrumentFile(), m_pChannel->instrumentNr()));
             .arg(QFileInfo(m_pChannel->instrumentFile()).fileName()).arg(m_pChannel->instrumentNr()));  
185    
186      // Instrument status...      // Instrument status...
187      int iInstrumentStatus = m_pChannel->instrumentStatus();      int iInstrumentStatus = m_pChannel->instrumentStatus();
# Line 165  void qsamplerChannelStrip::updateChannel Line 194  void qsamplerChannelStrip::updateChannel
194      }      }
195    
196      // MIDI Port/Channel...      // MIDI Port/Channel...
197      if (m_pChannel->midiChannel() > 0)      if (m_pChannel->midiChannel() == LSCP_MIDI_CHANNEL_ALL)
         MidiPortChannelTextLabel->setText(QString("%1 / %2").arg(m_pChannel->midiPort()).arg(m_pChannel->midiChannel()));  
     else  
198          MidiPortChannelTextLabel->setText(QString("%1 / *").arg(m_pChannel->midiPort()));          MidiPortChannelTextLabel->setText(QString("%1 / *").arg(m_pChannel->midiPort()));
199        else
200            MidiPortChannelTextLabel->setText(QString("%1 / %2").arg(m_pChannel->midiPort()).arg(m_pChannel->midiChannel() + 1));
201    
202      // And update the both GUI volume elements.      // And update the both GUI volume elements.
203      updateChannelVolume();      return updateChannelVolume();
204  }  }
205    
206    
207  // Do the dirty volume change.  // Do the dirty volume change.
208  void qsamplerChannelStrip::updateChannelVolume (void)  bool qsamplerChannelStrip::updateChannelVolume (void)
209  {  {
210      if (m_pChannel == NULL)      if (m_pChannel == NULL)
211          return;          return false;
212    
213      // Convert...      // Convert...
214  #ifdef CONFIG_ROUND  #ifdef CONFIG_ROUND
# Line 204  void qsamplerChannelStrip::updateChannel Line 233  void qsamplerChannelStrip::updateChannel
233      VolumeSlider->setValue(iVolume);      VolumeSlider->setValue(iVolume);
234      VolumeSpinBox->setValue(iVolume);      VolumeSpinBox->setValue(iVolume);
235      m_iDirtyChange--;      m_iDirtyChange--;
236        
237        return true;
238  }  }
239    
240    
241  // Update whole channel usage state.  // Update whole channel usage state.
242  void qsamplerChannelStrip::updateChannelUsage (void)  bool qsamplerChannelStrip::updateChannelUsage (void)
243  {  {
244      if (m_pChannel == NULL)      if (m_pChannel == NULL)
245          return;          return false;
246      if (m_pChannel->client() == NULL)      if (m_pChannel->client() == NULL)
247          return;          return false;
248    
249      // Conditionally update whole channel status info.      // Update whole channel status info,
250      if (m_pChannel->instrumentStatus() >= 0 && m_pChannel->instrumentStatus() < 100) {      // if instrument load is still pending...
251        if (m_pChannel->instrumentStatus() < 100) {
252          updateChannelInfo();          updateChannelInfo();
253          // Once we get a complete instrument load, try a implied reset channel....          // Check (updated) status again...
254          if (m_pChannel->instrumentStatus() == 100)          if (m_pChannel->instrumentStatus() < 100)
255              m_pChannel->resetChannel();              return false;
256            // Once we get a complete instrument load,
257            // we'll try an implied channel reset...
258            m_pChannel->resetChannel();
259      }      }
260      // Leave, if we still have an erroneus or incomplete instrument load.      
261        // Check again that we're clean.
262      if (m_pChannel->instrumentStatus() < 100)      if (m_pChannel->instrumentStatus() < 100)
263          return;          return false;
264    
265      // Get current channel voice count.      // Get current channel voice count.
266      int iVoiceCount  = ::lscp_get_channel_voice_count(m_pChannel->client(), m_pChannel->channelID());      int iVoiceCount  = ::lscp_get_channel_voice_count(m_pChannel->client(), m_pChannel->channelID());
# Line 238  void qsamplerChannelStrip::updateChannel Line 274  void qsamplerChannelStrip::updateChannel
274      // Update the GUI elements...      // Update the GUI elements...
275      StreamUsageProgressBar->setProgress(iStreamUsage);      StreamUsageProgressBar->setProgress(iStreamUsage);
276      StreamVoiceCountTextLabel->setText(QString("%1 / %2").arg(iStreamCount).arg(iVoiceCount));      StreamVoiceCountTextLabel->setText(QString("%1 / %2").arg(iStreamCount).arg(iVoiceCount));
277        
278        // We're clean.
279        return true;
280  }  }
281    
282    

Legend:
Removed from v.264  
changed lines
  Added in v.302

  ViewVC Help
Powered by ViewVC