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

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

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

revision 1704 by capela, Tue Feb 19 09:18:45 2008 UTC revision 2036 by capela, Wed Jan 6 09:52:32 2010 UTC
# Line 1  Line 1 
1  // qsamplerChannelStrip.cpp  // qsamplerChannelStrip.cpp
2  //  //
3  /****************************************************************************  /****************************************************************************
4     Copyright (C) 2004-2007, rncbc aka Rui Nuno Capela. All rights reserved.     Copyright (C) 2004-2010, rncbc aka Rui Nuno Capela. All rights reserved.
5     Copyright (C) 2007, 2008 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
# Line 29  Line 29 
29    
30  #include <QMessageBox>  #include <QMessageBox>
31  #include <QDragEnterEvent>  #include <QDragEnterEvent>
32    #include <QTimer>
33  #include <QUrl>  #include <QUrl>
34    
 #define MIDI_OFF_COLOR                  Qt::darkGreen  
 #define MIDI_ON_COLOR                   Qt::green  
35    
36  // Channel status/usage usage limit control.  // Channel status/usage usage limit control.
37  #define QSAMPLER_ERROR_LIMIT    3  #define QSAMPLER_ERROR_LIMIT    3
# Line 57  namespace QSampler { Line 56  namespace QSampler {
56  // QSampler::ChannelStrip -- Channel strip form implementation.  // QSampler::ChannelStrip -- Channel strip form implementation.
57  //  //
58    
59    // MIDI activity pixmap common resources.
60    int      ChannelStrip::g_iMidiActivityRefCount = 0;
61    QPixmap *ChannelStrip::g_pMidiActivityLedOn    = NULL;
62    QPixmap *ChannelStrip::g_pMidiActivityLedOff   = NULL;
63    
64  // Channel strip activation/selection.  // Channel strip activation/selection.
65  ChannelStrip *ChannelStrip::g_pSelectedStrip = NULL;  ChannelStrip *ChannelStrip::g_pSelectedStrip = NULL;
66    
# Line 70  ChannelStrip::ChannelStrip ( QWidget* pP Line 74  ChannelStrip::ChannelStrip ( QWidget* pP
74          m_iDirtyChange = 0;          m_iDirtyChange = 0;
75          m_iErrorCount  = 0;          m_iErrorCount  = 0;
76    
77            if (++g_iMidiActivityRefCount == 1) {
78                    g_pMidiActivityLedOn  = new QPixmap(":/icons/ledon1.png");
79                    g_pMidiActivityLedOff = new QPixmap(":/icons/ledoff1.png");
80            }
81    
82            m_ui.MidiActivityLabel->setPixmap(*g_pMidiActivityLedOff);
83    
84    #ifndef CONFIG_EVENT_CHANNEL_MIDI
85            m_ui.MidiActivityLabel->setToolTip("MIDI activity (disabled)");
86    #endif
87    
88            m_pMidiActivityTimer = new QTimer(this);
89            m_pMidiActivityTimer->setSingleShot(true);
90    
91            QObject::connect(m_pMidiActivityTimer,
92                    SIGNAL(timeout()),
93                    SLOT(midiActivityLedOff())
94            );
95    
96          // Try to restore normal window positioning.          // Try to restore normal window positioning.
97          adjustSize();          adjustSize();
98    
# Line 95  ChannelStrip::ChannelStrip ( QWidget* pP Line 118  ChannelStrip::ChannelStrip ( QWidget* pP
118                  SIGNAL(clicked()),                  SIGNAL(clicked()),
119                  SLOT(channelFxEdit()));                  SLOT(channelFxEdit()));
120    
         pMidiActivityTimer = new QTimer(this);  
         pMidiActivityTimer->setSingleShot(true);  
         QObject::connect(  
                 pMidiActivityTimer, SIGNAL(timeout()),  
                 this, SLOT(midiDataCeased())  
         );  
   
 #if CONFIG_EVENT_CHANNEL_MIDI  
         m_ui.MidiActivityLabel->setPalette(MIDI_OFF_COLOR);  
         m_ui.MidiActivityLabel->setAutoFillBackground(true);  
 #else  
         m_ui.MidiActivityLabel->setText("X");  
         m_ui.MidiActivityLabel->setToolTip("MIDI Activity Disabled");  
 #endif  
   
121          setSelected(false);          setSelected(false);
122  }  }
123    
# Line 122  ChannelStrip::~ChannelStrip (void) Line 130  ChannelStrip::~ChannelStrip (void)
130          if (m_pChannel)          if (m_pChannel)
131                  delete m_pChannel;                  delete m_pChannel;
132          m_pChannel = NULL;          m_pChannel = NULL;
133    
134            if (--g_iMidiActivityRefCount == 0) {
135                    if (g_pMidiActivityLedOn)
136                            delete g_pMidiActivityLedOn;
137                    g_pMidiActivityLedOn = NULL;
138                    if (g_pMidiActivityLedOff)
139                            delete g_pMidiActivityLedOff;
140                    g_pMidiActivityLedOff = NULL;
141            }
142  }  }
143    
144    
# Line 549  void ChannelStrip::volumeChanged ( int i Line 566  void ChannelStrip::volumeChanged ( int i
566          }          }
567  }  }
568    
 void ChannelStrip::midiArrived() {  
         m_ui.MidiActivityLabel->setPalette(MIDI_ON_COLOR);  
         pMidiActivityTimer->start(50);  
 }  
569    
570  // Context menu event handler.  // Context menu event handler.
571  void ChannelStrip::contextMenuEvent( QContextMenuEvent *pEvent )  void ChannelStrip::contextMenuEvent( QContextMenuEvent *pEvent )
# Line 564  void ChannelStrip::contextMenuEvent( QCo Line 577  void ChannelStrip::contextMenuEvent( QCo
577          m_pChannel->contextMenuEvent(pEvent);          m_pChannel->contextMenuEvent(pEvent);
578  }  }
579    
580  void ChannelStrip::midiDataCeased() {  
581          m_ui.MidiActivityLabel->setPalette(MIDI_OFF_COLOR);  void ChannelStrip::midiActivityLedOn (void)
582    {
583            m_ui.MidiActivityLabel->setPixmap(*g_pMidiActivityLedOn);
584            m_pMidiActivityTimer->start(50);
585    }
586    
587    
588    void ChannelStrip::midiActivityLedOff (void)
589    {
590            m_ui.MidiActivityLabel->setPixmap(*g_pMidiActivityLedOff);
591  }  }
592    
593    
594  // Error count hackish accessors.  // Error count hackish accessors.
595  void ChannelStrip::resetErrorCount (void)  void ChannelStrip::resetErrorCount (void)
596  {  {

Legend:
Removed from v.1704  
changed lines
  Added in v.2036

  ViewVC Help
Powered by ViewVC