diff options
| author | Tim E. Real <termtech@rogers.com> | 2010-12-28 01:39:32 +0000 | 
|---|---|---|
| committer | Tim E. Real <termtech@rogers.com> | 2010-12-28 01:39:32 +0000 | 
| commit | 23e94059c7670c7d4f3a67a86a9f233e81cfe478 (patch) | |
| tree | 893926d8fe79782a3cbaede216ee45c01531c20a /muse2/muse | |
| parent | d849feb0672d27243dc7c958bfc6b341cf6f9264 (diff) | |
Some more arranger + pianoroll trackinfo synchronization fixes.
Diffstat (limited to 'muse2/muse')
| -rw-r--r-- | muse2/muse/arranger/arranger.cpp | 1 | ||||
| -rw-r--r-- | muse2/muse/arranger/tlist.cpp | 6 | ||||
| -rw-r--r-- | muse2/muse/audiotrack.cpp | 1 | ||||
| -rw-r--r-- | muse2/muse/midiedit/pianoroll.cpp | 15 | ||||
| -rw-r--r-- | muse2/muse/mixer/amixer.cpp | 2 | ||||
| -rw-r--r-- | muse2/muse/song.h | 2 | ||||
| -rw-r--r-- | muse2/muse/widgets/mtrackinfo.cpp | 68 | ||||
| -rw-r--r-- | muse2/muse/widgets/mtrackinfo.h | 3 | 
8 files changed, 57 insertions, 41 deletions
| diff --git a/muse2/muse/arranger/arranger.cpp b/muse2/muse/arranger/arranger.cpp index 76d2dab7..6af69f8d 100644 --- a/muse2/muse/arranger/arranger.cpp +++ b/muse2/muse/arranger/arranger.cpp @@ -966,7 +966,6 @@ void Arranger::genTrackInfo(QWidget* parent)        trackInfo->addWidget(0, 2);  ///      genMidiTrackInfo(); -      connect(midiTrackInfo, SIGNAL(outputPortChanged(int)), list, SLOT(redraw()));        }  //--------------------------------------------------------- diff --git a/muse2/muse/arranger/tlist.cpp b/muse2/muse/arranger/tlist.cpp index 44e9f2b5..d419866a 100644 --- a/muse2/muse/arranger/tlist.cpp +++ b/muse2/muse/arranger/tlist.cpp @@ -93,7 +93,7 @@ TList::TList(Header* hdr, QWidget* parent, const char* name)  void TList::songChanged(int flags)        {        if (flags & (SC_MUTE | SC_SOLO | SC_RECFLAG | SC_TRACK_INSERTED -         | SC_TRACK_REMOVED | SC_TRACK_MODIFIED | SC_ROUTE | SC_CHANNELS | SC_MIDI_CHANNEL)) +         | SC_TRACK_REMOVED | SC_TRACK_MODIFIED | SC_ROUTE | SC_CHANNELS | SC_MIDI_TRACK_PROP))              redraw();        if (flags & (SC_TRACK_INSERTED | SC_TRACK_REMOVED | SC_TRACK_MODIFIED))              adjustScrollbar(); @@ -1068,7 +1068,7 @@ void TList::mousePressEvent(QMouseEvent* ev)                              // may result in adding/removing mixer strip:                              //song->update(-1);                              //song->update(SC_CHANNELS); -                            song->update(SC_MIDI_CHANNEL); +                            song->update(SC_MIDI_TRACK_PROP);                        }                      }                      else @@ -1327,7 +1327,7 @@ void TList::wheelEvent(QWheelEvent* ev)                                // may result in adding/removing mixer strip:                                //song->update(-1); -                              song->update(SC_MIDI_CHANNEL); +                              song->update(SC_MIDI_TRACK_PROP);                                }                          }                    else { diff --git a/muse2/muse/audiotrack.cpp b/muse2/muse/audiotrack.cpp index 959ce7f2..1d92e811 100644 --- a/muse2/muse/audiotrack.cpp +++ b/muse2/muse/audiotrack.cpp @@ -1628,6 +1628,7 @@ bool AudioTrack::prepareRecording()              return false;              } +      return true;        }  double AudioTrack::auxSend(int idx) const        { diff --git a/muse2/muse/midiedit/pianoroll.cpp b/muse2/muse/midiedit/pianoroll.cpp index d2bc27b6..7561cc37 100644 --- a/muse2/muse/midiedit/pianoroll.cpp +++ b/muse2/muse/midiedit/pianoroll.cpp @@ -354,7 +354,7 @@ PianoRoll::PianoRoll(PartList* pl, QWidget* parent, const char* name, unsigned i        midiTrackInfo       = new MidiTrackInfo(mainw);                int mtiw = midiTrackInfo->width(); // Save this. -      //midiTrackInfo->setMinimumWidth(105);    +      midiTrackInfo->setMinimumWidth(100);           //midiTrackInfo->setMaximumWidth(150);           midiTrackInfo->setSizePolicy(QSizePolicy(QSizePolicy::Ignored, QSizePolicy::Expanding)); @@ -462,7 +462,6 @@ PianoRoll::PianoRoll(PartList* pl, QWidget* parent, const char* name, unsigned i        connect(tools2, SIGNAL(toolChanged(int)), canvas,   SLOT(setTool(int))); -      //connect(midiTrackInfo, SIGNAL(outputPortChanged(int)), list, SLOT(redraw()));        connect(ctrl, SIGNAL(clicked()), SLOT(addCtrl()));        //connect(trackInfoButton, SIGNAL(clicked()), SLOT(toggleTrackInfo()));  Tim.        connect(info, SIGNAL(valueChanged(NoteInfo::ValType, int)), SLOT(noteinfoChanged(NoteInfo::ValType, int))); @@ -559,7 +558,9 @@ void PianoRoll::songChanged1(int bits)          }                songChanged(bits);          //trackInfo->songChanged(bits); -        updateTrackInfo();  // ccharrett +        // We'll receive SC_SELECTION if a different part is selected. +        if (bits & SC_SELECTION) +          updateTrackInfo();          }  //--------------------------------------------------------- @@ -592,12 +593,12 @@ void PianoRoll::updateHScrollRange()          hscroll->setRange(s, e);  } -void PianoRoll::updateTrackInfo()  // ccharrett +void PianoRoll::updateTrackInfo()    {        selected = curCanvasPart()->track();        if (selected->isMidiTrack()) {              midiTrackInfo->setTrack(selected); -            midiTrackInfo->updateTrackInfo(-1); +            ///midiTrackInfo->updateTrackInfo(-1);        }  } @@ -1355,8 +1356,9 @@ void PianoRoll::execUserScript(int id)  //   newCanvasWidth  //--------------------------------------------------------- -void PianoRoll::newCanvasWidth(int w) +void PianoRoll::newCanvasWidth(int /*w*/)        { +/*              int nw = w + (vscroll->width() - 18); // 18 is the fixed width of the CtlEdit VScale widget.        if(nw < 1)          nw = 1; @@ -1369,6 +1371,7 @@ void PianoRoll::newCanvasWidth(int w)              }        updateHScrollRange(); +*/              }  //--------------------------------------------------------- diff --git a/muse2/muse/mixer/amixer.cpp b/muse2/muse/mixer/amixer.cpp index a9345b8a..7fb406f3 100644 --- a/muse2/muse/mixer/amixer.cpp +++ b/muse2/muse/mixer/amixer.cpp @@ -536,7 +536,7 @@ void AudioMixerApp::songChanged(int flags)              action = STRIP_REMOVED;        else if (flags & SC_TRACK_INSERTED)              action = STRIP_INSERTED; -      else if (flags & SC_MIDI_CHANNEL) +      else if (flags & SC_MIDI_TRACK_PROP)              action = UPDATE_MIDI;        if (action != NO_UPDATE)              updateMixer(action); diff --git a/muse2/muse/song.h b/muse2/muse/song.h index da987e90..632d60c4 100644 --- a/muse2/muse/song.h +++ b/muse2/muse/song.h @@ -73,7 +73,7 @@ class AudioDevice;  #define SC_RACK               0x2000000   // mixer rack changed  #define SC_CLIP_MODIFIED      0x4000000  #define SC_MIDI_CONTROLLER_ADD 0x8000000   // a hardware midi controller was added or deleted -#define SC_MIDI_CHANNEL        0x10000000  // a midi track's channel changed +#define SC_MIDI_TRACK_PROP    0x10000000   // a midi track's properties changed (channel, compression etc)  #define SC_SONG_TYPE          0x20000000   // the midi song type (mtype) changed  #define REC_NOTE_FIFO_SIZE    16 diff --git a/muse2/muse/widgets/mtrackinfo.cpp b/muse2/muse/widgets/mtrackinfo.cpp index 66222519..3c358765 100644 --- a/muse2/muse/widgets/mtrackinfo.cpp +++ b/muse2/muse/widgets/mtrackinfo.cpp @@ -172,12 +172,12 @@ void MidiTrackInfo::heartBeat()        MidiPort* mp = &midiPorts[outPort];        // Set record echo. -      if(recEchoButton->isChecked() != track->recEcho()) -      { -        recEchoButton->blockSignals(true); -        recEchoButton->setChecked(track->recEcho()); -        recEchoButton->blockSignals(false); -      } +      //if(recEchoButton->isChecked() != track->recEcho()) +      //{ +      //  recEchoButton->blockSignals(true); +      //  recEchoButton->setChecked(track->recEcho()); +      //  recEchoButton->blockSignals(false); +      //}        // Check for detection of midi general activity on chosen channels...        int mpt = 0; @@ -524,7 +524,7 @@ void MidiTrackInfo::iOutputChannelChanged(int channel)              // may result in adding/removing mixer strip:              //song->update(-1); -            song->update(SC_MIDI_CHANNEL); +            song->update(SC_MIDI_TRACK_PROP);              }        } @@ -546,8 +546,7 @@ void MidiTrackInfo::iOutputPortChanged(int index)        track->setOutPortAndUpdate(index);        audio->msgIdle(false); -      ///list->redraw(); -      emit outputPortChanged(index);   +      song->update(SC_MIDI_TRACK_PROP);          }  //--------------------------------------------------------- @@ -915,6 +914,7 @@ void MidiTrackInfo::iTranspChanged(int val)          return;        MidiTrack* track = (MidiTrack*)selected;        track->transposition = val; +      song->update(SC_MIDI_TRACK_PROP);          }  //--------------------------------------------------------- @@ -927,6 +927,7 @@ void MidiTrackInfo::iAnschlChanged(int val)          return;        MidiTrack* track = (MidiTrack*)selected;        track->velocity = val; +      song->update(SC_MIDI_TRACK_PROP);          }  //--------------------------------------------------------- @@ -939,6 +940,7 @@ void MidiTrackInfo::iVerzChanged(int val)          return;        MidiTrack* track = (MidiTrack*)selected;        track->delay = val; +      song->update(SC_MIDI_TRACK_PROP);          }  //--------------------------------------------------------- @@ -951,6 +953,7 @@ void MidiTrackInfo::iLenChanged(int val)          return;        MidiTrack* track = (MidiTrack*)selected;        track->len = val; +      song->update(SC_MIDI_TRACK_PROP);          }  //--------------------------------------------------------- @@ -963,6 +966,7 @@ void MidiTrackInfo::iKomprChanged(int val)          return;        MidiTrack* track = (MidiTrack*)selected;        track->compression = val; +      song->update(SC_MIDI_TRACK_PROP);          }  //--------------------------------------------------------- @@ -1041,8 +1045,7 @@ void MidiTrackInfo::recEchoToggled(bool v)      return;    MidiTrack* track = (MidiTrack*)selected;    track->setRecEcho(v); -   -  //song->update(SC_???); +  song->update(SC_MIDI_TRACK_PROP);    }  //--------------------------------------------------------- @@ -1229,6 +1232,8 @@ void MidiTrackInfo::updateTrackInfo(int flags)        // Is it simply a midi controller value adjustment? Forget it.        if(flags == SC_MIDI_CONTROLLER)          return; +      if(flags == SC_SELECTION) +        return;        if(!selected)          return; @@ -1246,13 +1251,31 @@ void MidiTrackInfo::updateTrackInfo(int flags)        setLabelText();        setLabelFont(); -      //{ +      if(flags & (SC_MIDI_TRACK_PROP))   +      { +        iTransp->blockSignals(true); +        iAnschl->blockSignals(true); +        iVerz->blockSignals(true); +        iLen->blockSignals(true); +        iKompr->blockSignals(true); +        iTransp->setValue(track->transposition); +        iAnschl->setValue(track->velocity); +        iVerz->setValue(track->delay); +        iLen->setValue(track->len); +        iKompr->setValue(track->compression); +        iTransp->blockSignals(false); +        iAnschl->blockSignals(false); +        iVerz->blockSignals(false); +        iLen->blockSignals(false); +        iKompr->blockSignals(false); +                  int outChannel = track->outChannel();          ///int inChannel  = track->inChannelMask();          int outPort    = track->outPort();          //int inPort     = track->inPortMask();          ///unsigned int inPort     = track->inPortMask(); +        iOutput->blockSignals(true);          //iInput->clear();          iOutput->clear(); @@ -1263,6 +1286,8 @@ void MidiTrackInfo::updateTrackInfo(int flags)                if (i == outPort)                      iOutput->setCurrentIndex(i);                } +        iOutput->blockSignals(false); +                  //iInput->setText(bitmap2String(inPort));          ///iInput->setText(u32bitmap2String(inPort)); @@ -1274,7 +1299,9 @@ void MidiTrackInfo::updateTrackInfo(int flags)          //      iName->home(false);          //      } +        iOutputChannel->blockSignals(true);          iOutputChannel->setValue(outChannel+1); +        iOutputChannel->blockSignals(false);          ///iInputChannel->setText(bitmap2String(inChannel));          // Set record echo. @@ -1284,7 +1311,10 @@ void MidiTrackInfo::updateTrackInfo(int flags)            recEchoButton->setChecked(track->recEcho());            recEchoButton->blockSignals(false);          } +      } +        int outChannel = track->outChannel(); +        int outPort    = track->outPort();          MidiPort* mp = &midiPorts[outPort];          int nprogram = mp->hwCtrlState(outChannel, CTRL_PROGRAM);          if(nprogram == CTRL_VAL_UNKNOWN) @@ -1387,20 +1417,6 @@ void MidiTrackInfo::updateTrackInfo(int flags)          iPan->blockSignals(false);        //} -       -      // Does it include a midi controller value adjustment? Then handle it... -      //if(flags & SC_MIDI_CONTROLLER) -      //  seek(); - -      // Is it simply a midi controller value adjustment? Forget it. -      //if(flags != SC_MIDI_CONTROLLER) -      //{ -        iTransp->setValue(track->transposition); -        iAnschl->setValue(track->velocity); -        iVerz->setValue(track->delay); -        iLen->setValue(track->len); -        iKompr->setValue(track->compression); -      //}  }  //--------------------------------------------------------- diff --git a/muse2/muse/widgets/mtrackinfo.h b/muse2/muse/widgets/mtrackinfo.h index 8db91797..4e06f1d0 100644 --- a/muse2/muse/widgets/mtrackinfo.h +++ b/muse2/muse/widgets/mtrackinfo.h @@ -52,9 +52,6 @@ class MidiTrackInfo : public QWidget, public Ui::MidiTrackInfoBase     protected slots:        virtual void heartBeat(); -   signals: -      void outputPortChanged(int);   -        public slots:        void setTrack(Track*);         void configChanged(); | 
