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

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

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

revision 2038 by capela, Thu Jan 7 18:42:26 2010 UTC revision 2108 by capela, Thu Jul 15 08:03:32 2010 UTC
# Line 105  namespace QSampler { Line 105  namespace QSampler {
105  #define QSAMPLER_STATUS_SESSION 3       // Current session modification state.  #define QSAMPLER_STATUS_SESSION 3       // Current session modification state.
106    
107    
108    // Specialties for thread-callback comunication.
109    #define QSAMPLER_LSCP_EVENT   QEvent::Type(QEvent::User + 1)
110    #define QSAMPLER_SAVE_EVENT   QEvent::Type(QEvent::User + 2)
111    
112    
113  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
114  // CustomEvent -- specialty for callback comunication.  // LscpEvent -- specialty for LSCP callback comunication.
115    
 #define QSAMPLER_CUSTOM_EVENT   QEvent::Type(QEvent::User + 0)  
116    
117  class CustomEvent : public QEvent  class LscpEvent : public QEvent
118  {  {
119  public:  public:
120    
121          // Constructor.          // Constructor.
122          CustomEvent(lscp_event_t event, const char *pchData, int cchData)          LscpEvent(lscp_event_t event, const char *pchData, int cchData)
123                  : QEvent(QSAMPLER_CUSTOM_EVENT)                  : QEvent(QSAMPLER_LSCP_EVENT)
124          {          {
125                  m_event = event;                  m_event = event;
126                  m_data  = QString::fromUtf8(pchData, cchData);                  m_data  = QString::fromUtf8(pchData, cchData);
# Line 136  private: Line 140  private:
140    
141    
142  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
143    // LADISH Level 1 support stuff.
144    
145    void qsampler_on_sigusr1 ( int /*signo*/ )
146    {
147            QApplication::postEvent(
148                    MainForm::getInstance(),
149                    new QEvent(QSAMPLER_SAVE_EVENT));
150    }
151    
152    
153    //-------------------------------------------------------------------------
154  // qsamplerMainForm -- Main window form implementation.  // qsamplerMainForm -- Main window form implementation.
155    
156  // Kind of singleton reference.  // Kind of singleton reference.
# Line 172  MainForm::MainForm ( QWidget *pParent ) Line 187  MainForm::MainForm ( QWidget *pParent )
187  #ifdef HAVE_SIGNAL_H  #ifdef HAVE_SIGNAL_H
188          // Set to ignore any fatal "Broken pipe" signals.          // Set to ignore any fatal "Broken pipe" signals.
189          ::signal(SIGPIPE, SIG_IGN);          ::signal(SIGPIPE, SIG_IGN);
190            // LADISH Level 1 suport.
191            ::signal(SIGUSR1, qsampler_on_sigusr1);
192  #endif  #endif
193    
194  #ifdef CONFIG_VOLUME  #ifdef CONFIG_VOLUME
# Line 435  void MainForm::setup ( Options *pOptions Line 452  void MainForm::setup ( Options *pOptions
452          }          }
453    
454          // Try to restore old window positioning and initial visibility.          // Try to restore old window positioning and initial visibility.
455          m_pOptions->loadWidgetGeometry(this);          m_pOptions->loadWidgetGeometry(this, true);
456          m_pOptions->loadWidgetGeometry(m_pInstrumentListForm);          m_pOptions->loadWidgetGeometry(m_pInstrumentListForm);
457          m_pOptions->loadWidgetGeometry(m_pDeviceForm);          m_pOptions->loadWidgetGeometry(m_pDeviceForm);
458    
# Line 479  bool MainForm::queryClose (void) Line 496  bool MainForm::queryClose (void)
496                          // And the children, and the main windows state,.                          // And the children, and the main windows state,.
497                          m_pOptions->saveWidgetGeometry(m_pDeviceForm);                          m_pOptions->saveWidgetGeometry(m_pDeviceForm);
498                          m_pOptions->saveWidgetGeometry(m_pInstrumentListForm);                          m_pOptions->saveWidgetGeometry(m_pInstrumentListForm);
499                          m_pOptions->saveWidgetGeometry(this);                          m_pOptions->saveWidgetGeometry(this, true);
500                          // Close popup widgets.                          // Close popup widgets.
501                          if (m_pInstrumentListForm)                          if (m_pInstrumentListForm)
502                                  m_pInstrumentListForm->close();                                  m_pInstrumentListForm->close();
# Line 528  void MainForm::dropEvent ( QDropEvent* p Line 545  void MainForm::dropEvent ( QDropEvent* p
545                  QListIterator<QUrl> iter(pMimeData->urls());                  QListIterator<QUrl> iter(pMimeData->urls());
546                  while (iter.hasNext()) {                  while (iter.hasNext()) {
547                          const QString& sPath = iter.next().toLocalFile();                          const QString& sPath = iter.next().toLocalFile();
548                          if (Channel::isInstrumentFile(sPath)) {                  //      if (Channel::isDlsInstrumentFile(sPath)) {
549                            if (QFileInfo(sPath).exists()) {
550                                  // Try to create a new channel from instrument file...                                  // Try to create a new channel from instrument file...
551                                  Channel *pChannel = new Channel();                                  Channel *pChannel = new Channel();
552                                  if (pChannel == NULL)                                  if (pChannel == NULL)
# Line 562  void MainForm::dropEvent ( QDropEvent* p Line 580  void MainForm::dropEvent ( QDropEvent* p
580    
581    
582  // Custome event handler.  // Custome event handler.
583  void MainForm::customEvent(QEvent* pCustomEvent)  void MainForm::customEvent ( QEvent* pEvent )
584  {  {
585          // For the time being, just pump it to messages.          // For the time being, just pump it to messages.
586          if (pCustomEvent->type() == QSAMPLER_CUSTOM_EVENT) {          if (pEvent->type() == QSAMPLER_LSCP_EVENT) {
587                  CustomEvent *pEvent = static_cast<CustomEvent *> (pCustomEvent);                  LscpEvent *pLscpEvent = static_cast<LscpEvent *> (pEvent);
588                  switch (pEvent->event()) {                  switch (pLscpEvent->event()) {
589                          case LSCP_EVENT_CHANNEL_COUNT:                          case LSCP_EVENT_CHANNEL_COUNT:
590                                  updateAllChannelStrips(true);                                  updateAllChannelStrips(true);
591                                  break;                                  break;
592                          case LSCP_EVENT_CHANNEL_INFO: {                          case LSCP_EVENT_CHANNEL_INFO: {
593                                  int iChannelID = pEvent->data().toInt();                                  int iChannelID = pLscpEvent->data().toInt();
594                                  ChannelStrip *pChannelStrip = channelStrip(iChannelID);                                  ChannelStrip *pChannelStrip = channelStrip(iChannelID);
595                                  if (pChannelStrip)                                  if (pChannelStrip)
596                                          channelStripChanged(pChannelStrip);                                          channelStripChanged(pChannelStrip);
# Line 585  void MainForm::customEvent(QEvent* pCust Line 603  void MainForm::customEvent(QEvent* pCust
603                                  break;                                  break;
604                          case LSCP_EVENT_MIDI_INPUT_DEVICE_INFO: {                          case LSCP_EVENT_MIDI_INPUT_DEVICE_INFO: {
605                                  if (m_pDeviceForm) m_pDeviceForm->refreshDevices();                                  if (m_pDeviceForm) m_pDeviceForm->refreshDevices();
606                                  const int iDeviceID = pEvent->data().section(' ', 0, 0).toInt();                                  const int iDeviceID = pLscpEvent->data().section(' ', 0, 0).toInt();
607                                  DeviceStatusForm::onDeviceChanged(iDeviceID);                                  DeviceStatusForm::onDeviceChanged(iDeviceID);
608                                  break;                                  break;
609                          }                          }
# Line 597  void MainForm::customEvent(QEvent* pCust Line 615  void MainForm::customEvent(QEvent* pCust
615                                  break;                                  break;
616                  #if CONFIG_EVENT_CHANNEL_MIDI                  #if CONFIG_EVENT_CHANNEL_MIDI
617                          case LSCP_EVENT_CHANNEL_MIDI: {                          case LSCP_EVENT_CHANNEL_MIDI: {
618                                  const int iChannelID = pEvent->data().section(' ', 0, 0).toInt();                                  const int iChannelID = pLscpEvent->data().section(' ', 0, 0).toInt();
619                                  ChannelStrip *pChannelStrip = channelStrip(iChannelID);                                  ChannelStrip *pChannelStrip = channelStrip(iChannelID);
620                                  if (pChannelStrip)                                  if (pChannelStrip)
621                                          pChannelStrip->midiActivityLedOn();                                          pChannelStrip->midiActivityLedOn();
# Line 606  void MainForm::customEvent(QEvent* pCust Line 624  void MainForm::customEvent(QEvent* pCust
624                  #endif                  #endif
625                  #if CONFIG_EVENT_DEVICE_MIDI                  #if CONFIG_EVENT_DEVICE_MIDI
626                          case LSCP_EVENT_DEVICE_MIDI: {                          case LSCP_EVENT_DEVICE_MIDI: {
627                                  const int iDeviceID = pEvent->data().section(' ', 0, 0).toInt();                                  const int iDeviceID = pLscpEvent->data().section(' ', 0, 0).toInt();
628                                  const int iPortID   = pEvent->data().section(' ', 1, 1).toInt();                                  const int iPortID   = pLscpEvent->data().section(' ', 1, 1).toInt();
629                                  DeviceStatusForm *pDeviceStatusForm                                  DeviceStatusForm *pDeviceStatusForm
630                                          = DeviceStatusForm::getInstance(iDeviceID);                                          = DeviceStatusForm::getInstance(iDeviceID);
631                                  if (pDeviceStatusForm)                                  if (pDeviceStatusForm)
# Line 616  void MainForm::customEvent(QEvent* pCust Line 634  void MainForm::customEvent(QEvent* pCust
634                          }                          }
635                  #endif                  #endif
636                          default:                          default:
637                                  appendMessagesColor(tr("Notify event: %1 data: %2")                                  appendMessagesColor(tr("LSCP Event: %1 data: %2")
638                                          .arg(::lscp_event_to_text(pEvent->event()))                                          .arg(::lscp_event_to_text(pLscpEvent->event()))
639                                          .arg(pEvent->data()), "#996699");                                          .arg(pLscpEvent->data()), "#996699");
640                  }                  }
641          }          }       // LADISH1 Level 1 support...
642            else if (pEvent->type() == QSAMPLER_SAVE_EVENT)
643                    saveSession(false);
644  }  }
645    
646    
# Line 2702  lscp_status_t qsampler_client_callback ( Line 2722  lscp_status_t qsampler_client_callback (
2722          // as this is run under some other thread context.          // as this is run under some other thread context.
2723          // A custom event must be posted here...          // A custom event must be posted here...
2724          QApplication::postEvent(pMainForm,          QApplication::postEvent(pMainForm,
2725                  new CustomEvent(event, pchData, cchData));                  new LscpEvent(event, pchData, cchData));
2726    
2727          return LSCP_OK;          return LSCP_OK;
2728  }  }

Legend:
Removed from v.2038  
changed lines
  Added in v.2108

  ViewVC Help
Powered by ViewVC