diff options
| author | Werner Schweer <ws.seh.de> | 2006-07-28 17:14:58 +0000 | 
|---|---|---|
| committer | Werner Schweer <ws.seh.de> | 2006-07-28 17:14:58 +0000 | 
| commit | d6797341cbfbd1abefefe4759fef64f5bc281172 (patch) | |
| tree | d3258d0ddbc05526760f76ab689bb5d6e7218984 | |
| parent | 8745d5818130299595ff1265fd18f1dbb14ccedc (diff) | |
updates
| -rw-r--r-- | muse/muse/audio.cpp | 24 | ||||
| -rw-r--r-- | muse/muse/audioprefetch.cpp | 5 | ||||
| -rw-r--r-- | muse/muse/cobject.h | 2 | ||||
| -rw-r--r-- | muse/muse/fifo.cpp | 113 | ||||
| -rw-r--r-- | muse/muse/fifo.h | 55 | ||||
| -rw-r--r-- | muse/muse/master/masteredit.cpp | 6 | ||||
| -rw-r--r-- | muse/muse/midiedit/drumedit.cpp | 8 | ||||
| -rw-r--r-- | muse/muse/midiedit/ecanvas.cpp | 6 | ||||
| -rw-r--r-- | muse/muse/midiedit/ecanvas.h | 3 | ||||
| -rw-r--r-- | muse/muse/midiedit/pianoroll.cpp | 8 | ||||
| -rw-r--r-- | muse/muse/muse.cpp | 2 | ||||
| -rw-r--r-- | muse/muse/preferences.cpp | 4 | ||||
| -rw-r--r-- | muse/muse/route.cpp | 2 | ||||
| -rw-r--r-- | muse/muse/songfile.cpp | 2 | ||||
| -rw-r--r-- | muse/muse/waveedit/waveedit.cpp | 26 | ||||
| -rw-r--r-- | muse/muse/waveedit/waveedit.h | 7 | ||||
| -rw-r--r-- | muse/muse/waveedit/waveview.cpp | 79 | ||||
| -rw-r--r-- | muse/muse/waveedit/waveview.h | 7 | ||||
| -rw-r--r-- | muse/muse/widgets/bigtime.cpp | 4 | 
19 files changed, 182 insertions, 181 deletions
diff --git a/muse/muse/audio.cpp b/muse/muse/audio.cpp index c42a91e8..42cd3255 100644 --- a/muse/muse/audio.cpp +++ b/muse/muse/audio.cpp @@ -479,24 +479,24 @@ void Audio::process(unsigned frames)                    bool msg = true;                    do {  	                  unsigned fifoPos = fifo->readPos(); -                  	if (fifoPos != framePos) { +                  	if (fifoPos == framePos) { +                  		_curReadIndex = fifo->readIndex(); +                              break; +                              } +                        else {                                if (msg) {  	                              printf("Muse::Audio: wrong prefetch data 0x%x, expected 0x%x\n",        	                     	   fifoPos, framePos);                                	msg = false;                                      } -                              if (fifoPos > framePos) +                              if (fifoPos > framePos) { +                                    // discard whole prefetch buffer +                                    seek(_pos + frames);                                      break; -                              fifo->get();      // discard buffer +                                    } +                              fifo->pop();      // discard buffer                                } -                        else { -                  		_curReadIndex = fifo->ridx; -                              break; -                        	}                		} while (fifo->count()); -                  if (_curReadIndex == -1) { -                        seek(_pos + frames); -                        }                    }              }        for (iWaveTrack i = wl->begin(); i != wl->end(); ++i) { @@ -534,8 +534,8 @@ void Audio::process(unsigned frames)                    // consume prefetch buffer                    //                    if (_curReadIndex != -1) { -                        audioPrefetch->getFifo()->get(); -			      audioPrefetch->msgTick(); +                        audioPrefetch->getFifo()->pop(); +			      audioPrefetch->msgTick();  // wakeup prefetch thread                          }                    }              if (recording && (_bounce == 0 || _bounce == 1)) diff --git a/muse/muse/audioprefetch.cpp b/muse/muse/audioprefetch.cpp index e498169e..f9853f6a 100644 --- a/muse/muse/audioprefetch.cpp +++ b/muse/muse/audioprefetch.cpp @@ -90,7 +90,6 @@ void AudioPrefetch::processMsg1(const void* m)        const PrefetchMsg* msg = (PrefetchMsg*)m;        switch(msg->id) {              case PREFETCH_TICK: -// printf("!");fflush(stdout);                    prefetch(false);                    seekPos = ~0;     // invalidate cached last seek position                    break; @@ -175,11 +174,11 @@ void AudioPrefetch::prefetch(bool seekFlag)                    WaveTrack* track = *it;                    if (!seekFlag && ((audio->isRecording() && track->recordFlag()) || !audio->isPlaying()))                        continue; -                  int ch = track->channels(); +                  // int ch = track->channels();                    track->fetchData(writePos, segmentSize, widx);                    }              writePos += segmentSize; -            fifo.put(); +            fifo.push();              }        } diff --git a/muse/muse/cobject.h b/muse/muse/cobject.h index 89e725e6..0dcbdf9d 100644 --- a/muse/muse/cobject.h +++ b/muse/muse/cobject.h @@ -33,7 +33,7 @@ using AL::Xml;  class TopWin : public QMainWindow        {        Q_OBJECT -      Q_PROPERTY(bool  muse) +      Q_PROPERTY(bool  muse)        // hack: start MusE property list        Q_PROPERTY(QRect geometry READ geometry WRITE setGeometry)     public: diff --git a/muse/muse/fifo.cpp b/muse/muse/fifo.cpp index fbad5544..5c42a4f8 100644 --- a/muse/muse/fifo.cpp +++ b/muse/muse/fifo.cpp @@ -22,6 +22,37 @@  #include "globals.h"  //--------------------------------------------------------- +//   clear +//--------------------------------------------------------- + +void FifoBase::clear() +	{ +	ridx    = 0; +      widx    = 0; +      counter = 0; +      } + +//--------------------------------------------------------- +//   push +//--------------------------------------------------------- + +void FifoBase::push() +      { +      widx = (widx + 1) % FIFO_BUFFER; +      q_atomic_increment(&counter); +      } + +//--------------------------------------------------------- +//   pop +//--------------------------------------------------------- + +void FifoBase::pop() +      { +      ridx = (ridx + 1) % FIFO_BUFFER; +      q_atomic_decrement(&counter); +      } + +//---------------------------------------------------------  //   Fifo  //--------------------------------------------------------- @@ -42,17 +73,6 @@ Fifo::~Fifo()        }  //--------------------------------------------------------- -//   clear -//--------------------------------------------------------- - -void Fifo::clear() -	{ -	ridx = 0; -      widx = 0; -      counter = 0; -      } - -//---------------------------------------------------------  //   put  //    return true if fifo full  //--------------------------------------------------------- @@ -76,7 +96,7 @@ bool Fifo::put(int segs, unsigned long samples, float** src, unsigned pos)        b->pos  = pos;        for (int i = 0; i < segs; ++i)              memcpy(b->buffer + i * samples, src[i], samples * sizeof(float)); -      add(); +      push();        return false;        } @@ -104,12 +124,12 @@ bool Fifo::get(int segs, unsigned long samples, float** dst, unsigned pos)  //            if (errMsg)  			printf("Fifo %p::get(0x%x) n=%d, discard wrong prefetch block(s) 0x%x\n",                       this, pos, counter, b->pos); -            remove(); +            pop();              errMsg = false;              }        for (int i = 0; i < segs; ++i)              dst[i] = b->buffer + samples * (i % b->segs); -      remove(); +      pop();        return false;        } @@ -128,21 +148,11 @@ bool Fifo::get(int segs, unsigned long samples, float** dst)    	b = buffer[ridx];        for (int i = 0; i < segs; ++i)              dst[i] = b->buffer + samples * (i % b->segs); -      remove(); +      pop();        return false;        }  //--------------------------------------------------------- -//   remove -//--------------------------------------------------------- - -void Fifo::remove() -      { -      ridx = (ridx + 1) % nbuffer; -      q_atomic_decrement(&counter); -      } - -//---------------------------------------------------------  //   getWriteBuffer  //    return true, if no more buffer available  //    (overflow) @@ -168,56 +178,3 @@ bool Fifo::getWriteBuffer(int segs, unsigned long samples, float** buf, unsigned        return false;        } -//--------------------------------------------------------- -//   add -//--------------------------------------------------------- - -void Fifo::add() -      { -      widx = (widx + 1) % nbuffer; -      q_atomic_increment(&counter); -      } - -//--------------------------------------------------------- -//   Fifo1 -//--------------------------------------------------------- - -Fifo1::Fifo1() -      { -      clear(); -      } - -Fifo1::~Fifo1() -      { -      } - -//--------------------------------------------------------- -//   clear -//--------------------------------------------------------- - -void Fifo1::clear() -	{ -	ridx = 0; -      widx = 0; -      counter = 0; -      } - -//--------------------------------------------------------- -//   put -//--------------------------------------------------------- - -void Fifo1::put() -      { -      widx = (widx + 1) % FIFO_BUFFER; -      q_atomic_increment(&counter); -      } - -//--------------------------------------------------------- -//   get -//--------------------------------------------------------- - -void Fifo1::get() -      { -      ridx = (ridx + 1) % FIFO_BUFFER; -      q_atomic_decrement(&counter); -      } diff --git a/muse/muse/fifo.h b/muse/muse/fifo.h index ed6d27e5..e719d813 100644 --- a/muse/muse/fifo.h +++ b/muse/muse/fifo.h @@ -44,49 +44,64 @@ struct FifoBuffer {              }        }; -class Fifo { -      int nbuffer; -      int ridx;               // read index; only touched by reader -      int widx;               // write index; only touched by writer -      volatile int counter;   // buffer count; writer increments, reader decrements +//--------------------------------------------------------- +//   FifoBase +//    - works only for one reader/writer +//    - reader writes ridx +//    - writer writes widx +//    - reader decrements counter +//    - writer increments counter +//    - counter increment/decrement must be atomic +//--------------------------------------------------------- + +class FifoBase { + +   protected: +      int ridx;               // read index +      int widx;               // write index +      volatile int counter;   // objects in fifo + +   public: +      FifoBase()          { clear(); } +      virtual ~FifoBase() {} +      void clear(); +      virtual void push();    // put object on fifo +      virtual void pop();     // remove object from fifo +      int count() const     { return counter; } +      int readIndex() const { return ridx; } +      }; + +//--------------------------------------------------------- +//   Fifo +//--------------------------------------------------------- + +class Fifo : public FifoBase { +      int nbuffer;            // max buffer size (fifo-size)        FifoBuffer** buffer;     public:        Fifo();        ~Fifo(); -      void clear();        bool put(int, unsigned long, float** buffer, unsigned pos);        bool getWriteBuffer(int, unsigned long, float** buffer, unsigned pos); -      void add();        bool get(int, unsigned long, float** buffer, unsigned pos);        bool get(int, unsigned long, float** buffer); -      void remove(); -      int count() const { return counter; }        }; -  //---------------------------------------------------------  //   Fifo1  //--------------------------------------------------------- -class Fifo1 { +class Fifo1 : public FifoBase {     public:        unsigned positions[FIFO_BUFFER]; -      int ridx;               // read index; only touched by reader -      int widx;               // write index; only touched by writer -      volatile int counter;  // buffer count; writer increments, reader decrements -      Fifo1(); -      ~Fifo1(); -      void clear(); +      Fifo1() : FifoBase() {}        int setWritePos(unsigned pos) {              positions[widx] = pos;              return widx;              } -      int count() const        { return counter; }        unsigned readPos() const { return positions[ridx]; } -      void put(); -      void get();        };  #endif diff --git a/muse/muse/master/masteredit.cpp b/muse/muse/master/masteredit.cpp index 97873a2b..a86e0426 100644 --- a/muse/muse/master/masteredit.cpp +++ b/muse/muse/master/masteredit.cpp @@ -58,10 +58,10 @@ MasterEdit::MasterEdit()           PointerTool | PencilTool | RubberTool);        addToolBar(tools2); -      QToolBar* enableMaster = addToolBar(tr("EnableMaster")); -      enableMasterAction = enableMaster->addAction(tr("Enable")); +      QToolBar* enableMaster = addToolBar(tr("EnableTempomap")); +      enableMasterAction = enableMaster->addAction(tr("Tempomap"));        enableMasterAction->setCheckable(true); -      enableMasterAction->setToolTip(tr("Enable usage of master track")); +      enableMasterAction->setToolTip(tr("Enable use of tempo map"));        enableMasterAction->setChecked(song->masterFlag());        connect(enableMasterAction, SIGNAL(triggered(bool)), song, SLOT(setMasterFlag(bool))); diff --git a/muse/muse/midiedit/drumedit.cpp b/muse/muse/midiedit/drumedit.cpp index 1f5de7aa..344af693 100644 --- a/muse/muse/midiedit/drumedit.cpp +++ b/muse/muse/midiedit/drumedit.cpp @@ -147,10 +147,10 @@ DrumEdit::DrumEdit(PartList* pl, bool init)        setWindowTitle(canvas()->getCaption()); -      int st, e; -      canvas()->range(&st, &e); -      e += AL::sigmap.ticksMeasure(e);  // show one more measure -      canvas()->setTimeRange(st, e); +      Pos p1(0, AL::TICKS), p2(0, AL::TICKS); +      canvas()->range(p1, p2); +      p2 += AL::sigmap.ticksMeasure(p2.tick());  // show one more measure +      canvas()->setTimeRange(p1, p2);        // connect toolbar        connect(canvas(), SIGNAL(cursorPos(const AL::Pos&,bool)), toolbar, SLOT(setTime(const AL::Pos&,bool))); diff --git a/muse/muse/midiedit/ecanvas.cpp b/muse/muse/midiedit/ecanvas.cpp index 4c15e308..757856fe 100644 --- a/muse/muse/midiedit/ecanvas.cpp +++ b/muse/muse/midiedit/ecanvas.cpp @@ -63,10 +63,10 @@ EventCanvas::EventCanvas(MidiEditor* pr, TimeCanvasType type)  //   range  //--------------------------------------------------------- -void EventCanvas::range(int* s, int* e) const +void EventCanvas::range(AL::Pos& s, AL::Pos& e) const        { -      *s = startTick; -      *e = endTick; +      s.setTick(startTick); +      e.setTick(endTick);        }  //--------------------------------------------------------- diff --git a/muse/muse/midiedit/ecanvas.h b/muse/muse/midiedit/ecanvas.h index ab328785..6602ee05 100644 --- a/muse/muse/midiedit/ecanvas.h +++ b/muse/muse/midiedit/ecanvas.h @@ -21,6 +21,7 @@  #ifndef __ECANVAS_H__  #define __ECANVAS_H__ +#include "al/pos.h"  #include "awl/tcanvas.h"  #include "widgets/noteinfo.h"  #include "citem.h" @@ -150,7 +151,7 @@ class EventCanvas : public TimeCanvas {        MidiTrack* track() const;        Part* part() const       	{ return curPart; }        QString getCaption() const; -      void range(int* s, int* e) const; +      void range(AL::Pos& s, AL::Pos& e) const;        void selectFirst();        virtual void modifySelected(NoteInfo::ValType, int) {}        virtual void keyPress(QKeyEvent*); diff --git a/muse/muse/midiedit/pianoroll.cpp b/muse/muse/midiedit/pianoroll.cpp index f5d1aa42..f0ba5c32 100644 --- a/muse/muse/midiedit/pianoroll.cpp +++ b/muse/muse/midiedit/pianoroll.cpp @@ -229,10 +229,10 @@ PianoRoll::PianoRoll(PartList* pl, bool init)        info->setEnabled(false);        setWindowTitle(canvas()->getCaption()); -      int s1, e; -      canvas()->range(&s1, &e); -      e += AL::sigmap.ticksMeasure(e);  // show one more measure -      canvas()->setTimeRange(s1, e); +      Pos p1(0, AL::TICKS), p2(0, AL::TICKS); +      canvas()->range(p1, p2); +      p2 += AL::sigmap.ticksMeasure(p2.tick());  // show one more measure +      canvas()->setTimeRange(p1, p2);        // connect to toolbar        connect(canvas(), SIGNAL(pitchChanged(int)), toolbar, SLOT(setPitch(int))); diff --git a/muse/muse/muse.cpp b/muse/muse/muse.cpp index d2b153ad..67832ac9 100644 --- a/muse/muse/muse.cpp +++ b/muse/muse/muse.cpp @@ -1596,7 +1596,7 @@ void MusE::startWaveEditor()  void MusE::startWaveEditor(PartList* pl)        { -      WaveEdit* waveEditor = new WaveEdit(pl); +      WaveEdit* waveEditor = new WaveEdit(pl, false);        waveEditor->show();        connect(muse, SIGNAL(configChanged()), waveEditor, SLOT(configChanged()));        } diff --git a/muse/muse/preferences.cpp b/muse/muse/preferences.cpp index 59ab5173..c509d609 100644 --- a/muse/muse/preferences.cpp +++ b/muse/muse/preferences.cpp @@ -371,6 +371,10 @@ PreferencesDialog::PreferencesDialog(Arranger* a, QWidget* parent)        drumEditorWidth->setValue(DrumEdit::initWidth);        drumEditorHeight->setValue(DrumEdit::initHeight); +      waveEditorWidth->setValue(WaveEdit::initWidth); +      waveEditorHeight->setValue(WaveEdit::initHeight); + +        connect(recordStop,         SIGNAL(clicked(bool)), SLOT(recordStopToggled(bool)));        connect(recordRecord,       SIGNAL(clicked(bool)), SLOT(recordRecordToggled(bool)));        connect(recordGotoLeftMark, SIGNAL(clicked(bool)), SLOT(recordGotoLeftMarkToggled(bool))); diff --git a/muse/muse/route.cpp b/muse/muse/route.cpp index 40479bc3..118b75d3 100644 --- a/muse/muse/route.cpp +++ b/muse/muse/route.cpp @@ -412,7 +412,7 @@ void Song::readRoute(QDomNode node)              stype = Route::SYNTIPORT;        else {              printf("Song::readRoute(): unknown type <%s>\n", dt.toLatin1().data()); -            dtype = Route::TRACK; +            stype = Route::TRACK;              }        if (dt == "TRACK") diff --git a/muse/muse/songfile.cpp b/muse/muse/songfile.cpp index e45616b3..efd30fcb 100644 --- a/muse/muse/songfile.cpp +++ b/muse/muse/songfile.cpp @@ -106,7 +106,7 @@ void MusE::readToplevels(QDomNode node)                    markerView->read(node);                    }              else if (tag == "WaveEdit") { -                  WaveEdit* waveEditor = new WaveEdit(pl); +                  WaveEdit* waveEditor = new WaveEdit(pl, true);                    waveEditor->show();                    connect(muse, SIGNAL(configChanged()), waveEditor, SLOT(configChanged()));                    waveEditor->read(node); diff --git a/muse/muse/waveedit/waveedit.cpp b/muse/muse/waveedit/waveedit.cpp index 8e94a134..295f0814 100644 --- a/muse/muse/waveedit/waveedit.cpp +++ b/muse/muse/waveedit/waveedit.cpp @@ -17,14 +17,14 @@  #include "part.h"  #include "muse.h" -int WaveEdit::_widthInit = 600; -int WaveEdit::_heightInit = 400; +int WaveEdit::initWidth  = WaveEdit::INIT_WIDTH; +int WaveEdit::initHeight = WaveEdit::INIT_HEIGHT;  //---------------------------------------------------------  //   WaveEdit  //--------------------------------------------------------- -WaveEdit::WaveEdit(PartList* pl) +WaveEdit::WaveEdit(PartList* pl, bool init)     : Editor()        {        _parts = pl; @@ -109,13 +109,15 @@ WaveEdit::WaveEdit(PartList* pl)        //    Rest        //--------------------------------------------------- -      if (!parts()->empty()) { // Roughly match total size of part -            Part* firstPart = parts()->begin()->second; +//      if (!parts()->empty()) { // Roughly match total size of part +//            Part* firstPart = parts()->begin()->second;  //            xscale = 0 - firstPart->lenFrame()/_widthInit; -            } +//            }        view = new WaveView(this);        view->setRaster(0); +      view->setFollow(INIT_FOLLOW); +        connect(song, SIGNAL(posChanged(int,const AL::Pos&,bool)), view, SLOT(setLocatorPos(int,const AL::Pos&,bool)));        view->setLocatorPos(0, song->cpos(), true);        view->setLocatorPos(1, song->lpos(), false); @@ -124,10 +126,22 @@ WaveEdit::WaveEdit(PartList* pl)        connect(view, SIGNAL(posChanged(int,const AL::Pos&)), song, SLOT(setPos(int,const AL::Pos&)));        setCentralWidget(view); +      view->setCornerWidget(new QSizeGrip(view));        setWindowTitle(view->getCaption()); +      Pos p1(0, AL::FRAMES), p2(0, AL::FRAMES); +      view->range(p1, p2); +      p2 += AL::sigmap.ticksMeasure(p2.tick());  // show one more measure +      view->setTimeRange(p1, p2); +        configChanged();  //      initSettings(); + +      if (init) +            ;  // initFromPart(); +      else { +	      resize(initWidth, initHeight); +            }        }  //--------------------------------------------------------- diff --git a/muse/muse/waveedit/waveedit.h b/muse/muse/waveedit/waveedit.h index 010bc95a..11c93cd8 100644 --- a/muse/muse/waveedit/waveedit.h +++ b/muse/muse/waveedit/waveedit.h @@ -51,7 +51,7 @@ class WaveEdit : public Editor {        void configChanged();     public: -      WaveEdit(PartList*); +      WaveEdit(PartList*, bool);        ~WaveEdit();        PartList* parts() const { return _parts; } @@ -59,7 +59,12 @@ class WaveEdit : public Editor {               CMD_GAIN_FREE, CMD_GAIN_200, CMD_GAIN_150, CMD_GAIN_75, CMD_GAIN_50, CMD_GAIN_25,               CMD_EDIT_EXTERNAL,               CMD_SELECT_ALL, CMD_SELECT_NONE }; +      static int initWidth, initHeight; +      static const int INIT_WIDTH  = 650; +      static const int INIT_HEIGHT = 450;        }; +static const bool INIT_FOLLOW = false; +  #endif diff --git a/muse/muse/waveedit/waveview.cpp b/muse/muse/waveedit/waveview.cpp index 863a34dd..38d9f052 100644 --- a/muse/muse/waveedit/waveview.cpp +++ b/muse/muse/waveedit/waveview.cpp @@ -25,23 +25,24 @@  WaveView::WaveView(WaveEdit* pr)     : TimeCanvas(TIME_CANVAS)        { -      curPart = 0;        selectionStart = 0;        selectionStop  = 0; -      lastGainvalue = 100; -      editor = pr; +      lastGainvalue  = 100; +      editor         = pr;        if (editor->parts()->empty()) {              curPart = 0; -            curPartId = -1;              }        else {              curPart   = editor->parts()->begin()->second;              } +      songChanged(SC_TRACK_INSERTED); +#if 0        int start = curPart->frame();        int end   = start + curPart->lenFrame();        setTimeRange(start, end); +#endif        }  //--------------------------------------------------------- @@ -50,7 +51,7 @@ WaveView::WaveView(WaveEdit* pr)  void WaveView::paint(QPainter&, QRect)        { -      printf("paint\n"); +//      printf("paint\n");        }  //--------------------------------------------------------- @@ -209,44 +210,37 @@ QString WaveView::getCaption() const  void WaveView::songChanged(int flags)        { -#if 0 -      if (flags & SC_SELECTION) { -            startSample  = MAXINT; -            endSample    = 0; -            curPart      = 0; +      if (flags & ~SC_SELECTION) { +            startFrame  = MAXINT; +            endFrame    = 0;              for (iPart p = editor->parts()->begin(); p != editor->parts()->end(); ++p) {                    Part* part = p->second; -                  if (part->sn() == curPartId) -                        curPart = part; -                  int ssample = part->frame(); -                  int esample = ssample + part->lenFrame(); -                  if (ssample < startSample) { -                        startSample = ssample; -                        //printf("startSample = %d\n", startSample); -                        } -                  if (esample > endSample) { -                        endSample = esample; -                        //printf("endSample = %d\n", endSample); -                        } +                  int sframe = part->frame(); +                  int eframe = sframe + part->lenFrame(); +                  if (sframe < startFrame) +                        startFrame = sframe; +                  if (eframe > endFrame) +                        endFrame = eframe;                    }              } -      if (flags & SC_CLIP_MODIFIED) { -            update(); // Boring, but the only thing possible to do -            } -      if (flags & SC_TEMPO) { +//      if (flags & SC_CLIP_MODIFIED) { +//            update(); // Boring, but the only thing possible to do +//            } +/*      if (flags & SC_TEMPO) {              setPos(0, song->cpos(), false);              setPos(1, song->lpos(), false);              setPos(2, song->rpos(), false);              } -      update(); -#endif +*/ +      setPart(*curPart, curPart->end()); +      widget()->update();        }  //---------------------------------------------------------  //   viewMousePressEvent  //--------------------------------------------------------- -void WaveView::viewMousePressEvent(QMouseEvent* event) +void WaveView::viewMousePressEvent(QMouseEvent* /*event*/)        {  #if 0        button = event->button(); @@ -295,7 +289,7 @@ void WaveView::viewMouseReleaseEvent(QMouseEvent*)  //   viewMouseMoveEvent  //--------------------------------------------------------- -void WaveView::viewMouseMoveEvent(QMouseEvent* event) +void WaveView::viewMouseMoveEvent(QMouseEvent* /*event*/)        {  #if 0        unsigned x = event->x(); @@ -334,7 +328,7 @@ void WaveView::viewMouseMoveEvent(QMouseEvent* event)  //   cmd  //--------------------------------------------------------- -void WaveView::cmd(int n) +void WaveView::cmd(int /*n*/)        {  #if 0        int modifyoperation = -1; @@ -440,7 +434,7 @@ void WaveView::cmd(int n)  //   getSelection  //--------------------------------------------------------- -WaveSelectionList WaveView::getSelection(unsigned startpos, unsigned stoppos) +WaveSelectionList WaveView::getSelection(unsigned /*startpos*/, unsigned /*stoppos*/)        {        WaveSelectionList selection;  #if 0 @@ -489,7 +483,7 @@ WaveSelectionList WaveView::getSelection(unsigned startpos, unsigned stoppos)  //   modifySelection  //--------------------------------------------------------- -void WaveView::modifySelection(int operation, unsigned startpos, unsigned stoppos, double paramA) +void WaveView::modifySelection(int /*operation*/, unsigned /*startpos*/, unsigned /*stoppos*/, double /*paramA*/)        {  #if 0           song->startUndo(); @@ -593,7 +587,7 @@ void WaveView::modifySelection(int operation, unsigned startpos, unsigned stoppo  //   muteSelection  //--------------------------------------------------------- -void WaveView::muteSelection(unsigned channels, float** data, unsigned length) +void WaveView::muteSelection(unsigned /*channels*/, float** /*data*/, unsigned /*length*/)        {  #if 0        // Set everything to 0! @@ -609,7 +603,7 @@ void WaveView::muteSelection(unsigned channels, float** data, unsigned length)  //   normalizeSelection  //--------------------------------------------------------- -void WaveView::normalizeSelection(unsigned channels, float** data, unsigned length) +void WaveView::normalizeSelection(unsigned /*channels*/, float** /*data*/, unsigned /*length*/)        {  #if 0        float loudest = 0.0; @@ -635,7 +629,7 @@ void WaveView::normalizeSelection(unsigned channels, float** data, unsigned leng  //   fadeInSelection  //--------------------------------------------------------- -void WaveView::fadeInSelection(unsigned channels, float** data, unsigned length) +void WaveView::fadeInSelection(unsigned /*channels*/, float** /*data*/, unsigned /*length*/)        {  #if 0        for (unsigned i=0; i<channels; i++) { @@ -651,7 +645,7 @@ void WaveView::fadeInSelection(unsigned channels, float** data, unsigned length)  //   fadeOutSelection  //--------------------------------------------------------- -void WaveView::fadeOutSelection(unsigned channels, float** data, unsigned length) +void WaveView::fadeOutSelection(unsigned /*channels*/, float** /*data*/, unsigned /*length*/)        {  #if 0        for (unsigned i=0; i<channels; i++) { @@ -797,3 +791,14 @@ bool WaveView::getUniqueTmpfileName(QString& newFilename)        printf("Could not find a suitable tmpfilename (more than 10000 tmpfiles in tmpdir - clean up!\n");        return false;        } + +//--------------------------------------------------------- +//   range +//--------------------------------------------------------- + +void WaveView::range(AL::Pos& s, AL::Pos& e) const +      { +      s.setFrame(startFrame); +      e.setFrame(endFrame); +      } + diff --git a/muse/muse/waveedit/waveview.h b/muse/muse/waveedit/waveview.h index dc3e5016..bf63dffb 100644 --- a/muse/muse/waveedit/waveview.h +++ b/muse/muse/waveedit/waveview.h @@ -8,6 +8,7 @@  #ifndef WAVE_VIEW_H  #define WAVE_VIEW_H +#include "al/pos.h"  #include "wave.h"  #include "awl/tcanvas.h" @@ -38,11 +39,10 @@ typedef std::list<WaveEventSelection>::iterator iWaveSelection;  class WaveView : public TimeCanvas {        WaveEdit* editor; -      int startSample; -      int endSample; +      int startFrame; +      int endFrame;        Part* curPart; -      int curPartId;        enum { NORMAL, DRAG } mode;        enum { MUTE = 0, NORMALIZE, FADE_IN, FADE_OUT, REVERSE, GAIN, EDIT_EXTERNAL }; //!< Modify operations @@ -83,6 +83,7 @@ class WaveView : public TimeCanvas {        WaveView(WaveEdit*);        QString getCaption() const;        void cmd(int n); +      void range(AL::Pos&, AL::Pos&) const;        };  #endif diff --git a/muse/muse/widgets/bigtime.cpp b/muse/muse/widgets/bigtime.cpp index d7458dbc..3d1c7b21 100644 --- a/muse/muse/widgets/bigtime.cpp +++ b/muse/muse/widgets/bigtime.cpp @@ -18,12 +18,12 @@  //  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  //============================================================================= -#include "al/al.h"  #include "globals.h"  #include "bigtime.h"  #include "song.h" -// #include "app.h"  #include "gconfig.h" + +#include "al/al.h"  #include "al/sig.h"  #include "al/tempo.h"  | 
