~ubuntu-branches/ubuntu/raring/muse/raring-proposed

« back to all changes in this revision

Viewing changes to muse/arranger/pcanvas.cpp

  • Committer: Package Import Robot
  • Author(s): Alessio Treglia
  • Date: 2012-11-22 01:16:59 UTC
  • mto: This revision was merged to the branch mainline in revision 23.
  • Revision ID: package-import@ubuntu.com-20121122011659-a2fwbf33ceqe1s0t
Tags: upstream-2.1~rc1
ImportĀ upstreamĀ versionĀ 2.1~rc1

Show diffs side-by-side

added added

removed removed

Lines of Context:
237
237
                  switch(track->type()) {
238
238
                        case MusECore::Track::MIDI:
239
239
                        case MusECore::Track::DRUM:
 
240
                        case MusECore::Track::NEW_DRUM:
240
241
                              {
241
242
                              MusECore::MidiPart* part = new MusECore::MidiPart((MusECore::MidiTrack*)track);
242
243
                              part->setTick(pos[1]);
265
266
//   update
266
267
//---------------------------------------------------------
267
268
 
268
 
void PartCanvas::updateSong(DragType t, int flags)
 
269
void PartCanvas::updateSong(DragType t, MusECore::SongChangedFlags_t flags)
269
270
      {
270
271
      MusEGlobal::song->update(flags | ((t == MOVE_COPY || t == MOVE_CLONE)
271
272
         ? SC_PART_INSERTED : SC_PART_MODIFIED));
542
543
      switch(track->type()) {
543
544
            case MusECore::Track::MIDI:
544
545
            case MusECore::Track::DRUM:
 
546
            case MusECore::Track::NEW_DRUM:
545
547
                  pa = new MusECore::MidiPart((MusECore::MidiTrack*)track);
546
548
                  pa->setTick(x);
547
549
                  pa->setLenTick(0);
674
676
      partPopup->addSeparator();
675
677
      switch(trackType) {
676
678
            case MusECore::Track::MIDI: {
677
 
                  partPopup->addAction(MusEGlobal::muse->arranger()->parentWin->startPianoEditAction);
678
 
                  partPopup->addMenu(MusEGlobal::muse->arranger()->parentWin->scoreSubmenu);
679
 
                  partPopup->addAction(MusEGlobal::muse->arranger()->parentWin->startScoreEditAction);
680
 
                  partPopup->addAction(MusEGlobal::muse->arranger()->parentWin->startListEditAction);
 
679
                  partPopup->addAction(MusEGlobal::muse->arranger()->parentWin()->startPianoEditAction);
 
680
                  partPopup->addMenu(MusEGlobal::muse->arranger()->parentWin()->scoreSubmenu);
 
681
                  partPopup->addAction(MusEGlobal::muse->arranger()->parentWin()->startScoreEditAction);
 
682
                  partPopup->addAction(MusEGlobal::muse->arranger()->parentWin()->startListEditAction);
681
683
                  QAction *act_mexport = partPopup->addAction(tr("save part to disk"));
682
684
                  act_mexport->setData(16);
683
685
                  }
684
686
                  break;
 
687
            case MusECore::Track::NEW_DRUM:
685
688
            case MusECore::Track::DRUM: {
686
 
                  partPopup->addAction(MusEGlobal::muse->arranger()->parentWin->startDrumEditAction);
687
 
                  partPopup->addAction(MusEGlobal::muse->arranger()->parentWin->startListEditAction);
 
689
                  partPopup->addAction(MusEGlobal::muse->arranger()->parentWin()->startDrumEditAction);
 
690
                  partPopup->addAction(MusEGlobal::muse->arranger()->parentWin()->startListEditAction);
688
691
                  QAction *act_dexport = partPopup->addAction(tr("save part to disk"));
689
692
                  act_dexport->setData(16);
690
693
                  }
1316
1319
            //  else track is midi
1317
1320
 
1318
1321
            switch (track->type()) {
 
1322
                  case MusECore::Track::NEW_DRUM:
1319
1323
                  case MusECore::Track::DRUM:
1320
1324
                        type = 3;
1321
1325
                        break;
2329
2333
 
2330
2334
              for (MusECore::iEvent i = events->lower_bound(from); i != ito; ++i) {
2331
2335
                    MusECore::EventType type = i->second.type();
 
2336
                    int a = i->second.dataA() | 0xff;
2332
2337
                    if (
2333
2338
                      ((MusEGlobal::config.canvasShowPartEvent & 1) && (type == MusECore::Note))
2334
 
                      || ((MusEGlobal::config.canvasShowPartEvent & 2) && (type == MusECore::PAfter))
2335
 
                      || ((MusEGlobal::config.canvasShowPartEvent & 4) && (type == MusECore::Controller))
2336
 
                      || ((MusEGlobal::config.canvasShowPartEvent &16) && (type == MusECore::CAfter))
2337
 
                      || ((MusEGlobal::config.canvasShowPartEvent &64) && (type == MusECore::Sysex || type == MusECore::Meta))
 
2339
                      || ((MusEGlobal::config.canvasShowPartEvent & (2 | 4)) == (2 | 4) &&
 
2340
                           type == MusECore::Controller && a == MusECore::CTRL_POLYAFTER)
 
2341
                      || ((MusEGlobal::config.canvasShowPartEvent & 4) && (type == MusECore::Controller) &&
 
2342
                          (a != MusECore::CTRL_POLYAFTER  || (MusEGlobal::config.canvasShowPartEvent & 2)) &&
 
2343
                          (a != MusECore::CTRL_AFTERTOUCH || (MusEGlobal::config.canvasShowPartEvent & 16)))
 
2344
                      || ((MusEGlobal::config.canvasShowPartEvent & (16 | 4)) == (16 | 4) &&
 
2345
                          type == MusECore::Controller && a == MusECore::CTRL_AFTERTOUCH)
 
2346
                      || ((MusEGlobal::config.canvasShowPartEvent & 64) && (type == MusECore::Sysex || type == MusECore::Meta))
2338
2347
                      ) {
2339
2348
                          int t = i->first + pTick;
2340
2349
                          int th = mt->height();
2349
2358
      using std::pair;
2350
2359
      
2351
2360
      MusECore::iEvent ito(events->lower_bound(to));
2352
 
      bool isdrum = (mt->type() == MusECore::Track::DRUM);
 
2361
      bool isdrum = (mt->type() == MusECore::Track::DRUM  ||  mt->type() == MusECore::Track::NEW_DRUM);
2353
2362
 
2354
2363
      // draw controllers ------------------------------------------
2355
2364
      p.setPen(QColor(192,192,color_brightness/2));
2825
2834
            }
2826
2835
      MusECore::Pos p(tick, true);
2827
2836
      MusEGlobal::song->setPos(0, p);
2828
 
 
2829
 
      //---------------------------------------------------
2830
 
      //    read tmp file into QTextDrag Object
2831
 
      //---------------------------------------------------
2832
 
 
2833
 
      fflush(tmp);
2834
 
      struct stat f_stat;
2835
 
      if (fstat(fileno(tmp), &f_stat) == -1) {
2836
 
            fprintf(stderr, "PartCanvas::copy() fstat failed:<%s>\n",
2837
 
               strerror(errno));
2838
 
            fclose(tmp);
2839
 
            return;
2840
 
            }
2841
 
      int n = f_stat.st_size;
2842
 
      char* fbuf  = (char*)mmap(0, n+1, PROT_READ|PROT_WRITE,
2843
 
         MAP_PRIVATE, fileno(tmp), 0);
2844
 
      fbuf[n] = 0;
2845
 
      
2846
 
      QByteArray data(fbuf);
2847
 
      QMimeData* md = new QMimeData();
2848
 
      
2849
 
      
2850
 
      if(midi && wave)
2851
 
        md->setData("text/x-muse-mixedpartlist", data);   // By T356. Support mixed .mpt files.
2852
 
      else
2853
 
      if(midi)
2854
 
        md->setData("text/x-muse-midipartlist", data);
2855
 
      else
2856
 
      if(wave)
2857
 
        md->setData("text/x-muse-wavepartlist", data);
2858
 
        
2859
 
      QApplication::clipboard()->setMimeData(md, QClipboard::Clipboard);
2860
 
      
2861
 
      munmap(fbuf, n);
 
2837
      QString mimeString = "text/x-muse-mixedpartlist";
 
2838
      if (!midi)
 
2839
          mimeString = "text/x-muse-wavepartlist";
 
2840
      else if (!wave)
 
2841
          mimeString = "text/x-muse-midipartlist";
 
2842
      QMimeData *mimeData =  MusECore::file_to_mimedata(tmp, mimeString );
 
2843
      QApplication::clipboard()->setMimeData(mimeData, QClipboard::Clipboard);
2862
2844
      fclose(tmp);
2863
2845
      }
2864
2846
 
3204
3186
            
3205
3187
            if (text.endsWith(".wav",Qt::CaseInsensitive) || 
3206
3188
                text.endsWith(".ogg",Qt::CaseInsensitive) || 
 
3189
                text.endsWith(".flac",Qt::CaseInsensitive) || 
3207
3190
                text.endsWith(".mpt", Qt::CaseInsensitive) )
3208
3191
            {
3209
3192
 
3220
3203
                }
3221
3204
                if (track->type() == MusECore::Track::WAVE &&
3222
3205
                        (text.endsWith(".wav", Qt::CaseInsensitive) || 
3223
 
                          (text.endsWith(".ogg", Qt::CaseInsensitive))))
 
3206
                          text.endsWith(".ogg", Qt::CaseInsensitive) ||
 
3207
                          (text.endsWith(".flac", Qt::CaseInsensitive)) ))
3224
3208
                        {
3225
3209
                        unsigned tick = x;
3226
3210
                        MusEGlobal::muse->importWaveToTrack(text, tick, track);