~ubuntu-branches/ubuntu/saucy/muse/saucy

« back to all changes in this revision

Viewing changes to muse/widgets/mtrackinfo.cpp

  • Committer: Package Import Robot
  • Author(s): Alessio Treglia
  • Date: 2013-01-07 10:27:14 UTC
  • mfrom: (1.1.14)
  • Revision ID: package-import@ubuntu.com-20130107102714-fajkwjbz02aqupbh
Tags: 2.1-1
* New upstream release.
* Refresh 1001-buildsystem.patch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
90
90
  setupUi(this); 
91
91
  _midiDetect = false; 
92
92
  heartBeatCounter = 0;
 
93
  _blockHeartbeatCount = 0;
93
94
  
94
95
  selected = sel_track;
95
96
  
278
279
void MidiTrackInfo::heartBeat()
279
280
{
280
281
  ///if(!showTrackinfoFlag || !selected)
281
 
  if(!isVisible() || !isEnabled() || !selected)
 
282
  if(_blockHeartbeatCount < 0)  // error
 
283
  {
 
284
    fprintf(stderr, "ERROR: MidiTrackInfo::heartBeat: _blockHeartbeatCount is < 0, resetting to 0\n");
 
285
    _blockHeartbeatCount = 0;
 
286
  }
 
287
  
 
288
  if(_blockHeartbeatCount > 0 || !isVisible() || !isEnabled() || !selected)
282
289
    return;
283
290
  switch(selected->type()) 
284
291
  {
407
414
        else
408
415
        {
409
416
          MusECore::MidiInstrument* instr = mp->instrument();
410
 
          QString name = instr->getPatchName(outChannel, nprogram, track->isDrumTrack());
 
417
          const QString name = instr->getPatchName(outChannel, nprogram, track->isDrumTrack());
411
418
          if(name.isEmpty())
412
419
          {
413
420
            const QString n("???");
448
455
              //else 
449
456
              //{
450
457
                    MusECore::MidiInstrument* instr = mp->instrument();
451
 
                    QString name = instr->getPatchName(outChannel, program, track->isDrumTrack());
 
458
                    const QString name = instr->getPatchName(outChannel, program, track->isDrumTrack());
452
459
                    if(iPatch->text() != name)
453
460
                      iPatch->setText(name);
454
461
  
674
681
        return;
675
682
      MusECore::MidiTrack* track = (MusECore::MidiTrack*)selected;
676
683
      if (channel != track->outChannel()) {
 
684
            ++_blockHeartbeatCount;
677
685
            // Changed by T356.
678
686
            //track->setOutChannel(channel);
679
687
            MusEGlobal::audio->msgIdle(true);
687
695
            MusEGlobal::audio->msgUpdateSoloStates();                   // p4.0.14
688
696
            //MusEGlobal::song->update(SC_MIDI_TRACK_PROP | SC_ROUTE);  //
689
697
            MusEGlobal::song->update(SC_MIDI_TRACK_PROP);               //
 
698
            --_blockHeartbeatCount;
690
699
            }
691
700
      }
692
701
 
704
713
      MusECore::MidiTrack* track = (MusECore::MidiTrack*)selected;
705
714
      if (port_num == track->outPort())
706
715
            return;
 
716
      ++_blockHeartbeatCount;
707
717
      // Changed by T356.
708
718
      //track->setOutPort(port_num);
709
719
      MusEGlobal::audio->msgIdle(true);
715
725
      MusEGlobal::audio->msgUpdateSoloStates();                   // p4.0.14
716
726
      //MusEGlobal::song->update(SC_MIDI_TRACK_PROP | SC_ROUTE);  //
717
727
      MusEGlobal::song->update(SC_MIDI_TRACK_PROP);               //
 
728
      --_blockHeartbeatCount;
718
729
      }
719
730
 
720
731
//---------------------------------------------------------
785
796
      if(prog == 0xff && hbank == 0xff && lbank == 0xff)
786
797
      {
787
798
        program = MusECore::CTRL_VAL_UNKNOWN;
 
799
        ++_blockHeartbeatCount;
788
800
        if(mp->hwCtrlState(channel, MusECore::CTRL_PROGRAM) != MusECore::CTRL_VAL_UNKNOWN)
789
801
          MusEGlobal::audio->msgSetHwCtrlState(mp, channel, MusECore::CTRL_PROGRAM, MusECore::CTRL_VAL_UNKNOWN);
 
802
        --_blockHeartbeatCount;
790
803
        return;  
791
804
      }
792
805
      
 
806
      ++_blockHeartbeatCount;
793
807
      int np = mp->hwCtrlState(channel, MusECore::CTRL_PROGRAM);
794
808
      if(np == MusECore::CTRL_VAL_UNKNOWN)
795
809
      {
829
843
      MusECore::MidiInstrument* instr = mp->instrument();
830
844
      iPatch->setText(instr->getPatchName(channel, program, track->isDrumTrack()));
831
845
//      updateTrackInfo();
 
846
      
 
847
      --_blockHeartbeatCount;
832
848
      }
833
849
 
834
850
//---------------------------------------------------------
863
879
      if(prog == 0xff && hbank == 0xff && lbank == 0xff)
864
880
      {
865
881
        program = MusECore::CTRL_VAL_UNKNOWN;
 
882
        ++_blockHeartbeatCount;
866
883
        if(mp->hwCtrlState(channel, MusECore::CTRL_PROGRAM) != MusECore::CTRL_VAL_UNKNOWN)
867
884
          MusEGlobal::audio->msgSetHwCtrlState(mp, channel, MusECore::CTRL_PROGRAM, MusECore::CTRL_VAL_UNKNOWN);
 
885
        --_blockHeartbeatCount;
868
886
        return;  
869
887
      }
870
888
      
 
889
      ++_blockHeartbeatCount;
871
890
      int np = mp->hwCtrlState(channel, MusECore::CTRL_PROGRAM);
872
891
      if(np == MusECore::CTRL_VAL_UNKNOWN)
873
892
      {
907
926
      MusECore::MidiInstrument* instr = mp->instrument();
908
927
      iPatch->setText(instr->getPatchName(channel, program, track->isDrumTrack()));
909
928
//      updateTrackInfo();
 
929
      
 
930
      --_blockHeartbeatCount;
910
931
      }
911
932
 
912
933
//---------------------------------------------------------
940
961
      MusECore::MidiPort *mp = &MusEGlobal::midiPorts[port];
941
962
      if(prog == 0xff)
942
963
      {
 
964
        ++_blockHeartbeatCount;
943
965
        program = MusECore::CTRL_VAL_UNKNOWN;
944
966
        iHBank->blockSignals(true);
945
967
        iLBank->blockSignals(true);
950
972
        
951
973
        if(mp->hwCtrlState(channel, MusECore::CTRL_PROGRAM) != MusECore::CTRL_VAL_UNKNOWN)
952
974
          MusEGlobal::audio->msgSetHwCtrlState(mp, channel, MusECore::CTRL_PROGRAM, MusECore::CTRL_VAL_UNKNOWN);
953
 
        return;  
 
975
        --_blockHeartbeatCount;
 
976
        return;
954
977
      }
955
978
      else
956
979
      {
 
980
        ++_blockHeartbeatCount;
957
981
        int np = mp->hwCtrlState(channel, MusECore::CTRL_PROGRAM);
958
982
        if(np == MusECore::CTRL_VAL_UNKNOWN)
959
983
        {
984
1008
        
985
1009
        MusECore::MidiInstrument* instr = mp->instrument();
986
1010
        iPatch->setText(instr->getPatchName(channel, program, track->isDrumTrack()));
 
1011
        
 
1012
        --_blockHeartbeatCount;
987
1013
      }
988
1014
        
989
1015
//      updateTrackInfo();
1129
1155
      MusECore::MidiTrack* track = (MusECore::MidiTrack*)selected;
1130
1156
      int channel = track->outChannel();
1131
1157
      int port    = track->outPort();
 
1158
      ++_blockHeartbeatCount;
1132
1159
      MusECore::MidiPlayEvent ev(0, port, channel, MusECore::ME_CONTROLLER, MusECore::CTRL_PROGRAM, rv);
1133
1160
      MusEGlobal::audio->msgPlayMidiEvent(&ev);
1134
1161
      updateTrackInfo(-1);
 
1162
      --_blockHeartbeatCount;
1135
1163
    }  
1136
1164
  }
1137
1165
}
1167
1195
        int rv = act->data().toInt();
1168
1196
        if(rv != -1)
1169
1197
        {
 
1198
          ++_blockHeartbeatCount;
1170
1199
          MusECore::MidiPlayEvent ev(0, port, channel, MusECore::ME_CONTROLLER, MusECore::CTRL_PROGRAM, rv);
1171
1200
          MusEGlobal::audio->msgPlayMidiEvent(&ev);
1172
1201
          updateTrackInfo(-1);
 
1202
          --_blockHeartbeatCount;
1173
1203
        }  
1174
1204
      }
1175
1205
            
1227
1257
        //  kiv = mctrl->maxVal();
1228
1258
        //kiv += mctrl->bias();
1229
1259
      //}    
1230
 
      
 
1260
 
 
1261
      ++_blockHeartbeatCount;
1231
1262
      //MusECore::MidiPlayEvent ev(0, port, chan, MusECore::ME_CONTROLLER, num, kiv);
1232
1263
      MusECore::MidiPlayEvent ev(0, port, chan, MusECore::ME_CONTROLLER, MusECore::CTRL_PROGRAM, kiv);
1233
1264
      MusEGlobal::audio->msgPlayMidiEvent(&ev);
 
1265
      --_blockHeartbeatCount;
1234
1266
    }
1235
1267
    else
1236
1268
    {
1241
1273
//       else
1242
1274
//         lastv |= 0xff0000;
1243
1275
      
 
1276
      ++_blockHeartbeatCount;
1244
1277
      MusECore::MidiPlayEvent ev(0, port, chan, MusECore::ME_CONTROLLER, MusECore::CTRL_PROGRAM, lastv);
1245
1278
      MusEGlobal::audio->msgPlayMidiEvent(&ev);
 
1279
      --_blockHeartbeatCount;
1246
1280
    }
1247
1281
  }  
1248
1282
  else
1263
1297
//       curv |= 0xff0000;
1264
1298
    
1265
1299
    if(mp->hwCtrlState(chan, MusECore::CTRL_PROGRAM) != MusECore::CTRL_VAL_UNKNOWN)
 
1300
    {
 
1301
      ++_blockHeartbeatCount;
1266
1302
      MusEGlobal::audio->msgSetHwCtrlState(mp, chan, MusECore::CTRL_PROGRAM, MusECore::CTRL_VAL_UNKNOWN);
 
1303
      --_blockHeartbeatCount;
 
1304
    }
1267
1305
//     MusECore::MidiPlayEvent ev(0, port, chan, MusECore::ME_CONTROLLER, MusECore::CTRL_PROGRAM, curv);
1268
1306
//     MusEGlobal::audio->msgPlayMidiEvent(&ev);
1269
1307
  }
1557
1595
      if(!selected)
1558
1596
        return;
1559
1597
      MusECore::MidiTrack* track = (MusECore::MidiTrack*)selected;
 
1598
 
 
1599
      ++_blockHeartbeatCount;
1560
1600
      
1561
1601
      setLabelText();
1562
1602
      setLabelFont();
1651
1691
          
1652
1692
          program = MusECore::CTRL_VAL_UNKNOWN;
1653
1693
          nprogram = mp->lastValidHWCtrlState(outChannel, MusECore::CTRL_PROGRAM);
1654
 
          if(nprogram == MusECore::CTRL_VAL_UNKNOWN) 
 
1694
          if(nprogram == MusECore::CTRL_VAL_UNKNOWN)
1655
1695
            //iPatch->setText(QString("<unknown>"));
1656
1696
            iPatch->setText(tr("<unknown>"));
1657
1697
          else
1737
1777
        iPan->blockSignals(false);
1738
1778
      //}
1739
1779
      
 
1780
      --_blockHeartbeatCount;
1740
1781
}
1741
1782
 
1742
1783
//---------------------------------------------------------