summaryrefslogtreecommitdiff
path: root/muse_qt4_evolution/muse/midiedit/miditracker.h
blob: 5e6d706ac17490bb3a80bd95f9e88d36ea0aaeb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
//=================================================================
//  miditracker
//  midi editor a la soundtracker
//    miditracker.h
//  (C) Copyright 2006 Nil Geisweiller (a_lin@user.sourceforge.net)
//=================================================================

#ifndef __MTEDITOR_H__
#define __MTEDITOR_H__

#include "midieditor.h"
#include "trackpattern.h"
#include "quantcombo.h"
#include <vector>


class QuantCombo;

namespace AL {
      class Xml;
      };
using AL::Xml;

//---------------------------------------------------------
//   MidiTrackerEditor
//---------------------------------------------------------

class MidiTrackerEditor : public MidiEditor {
  Q_OBJECT

 private:
  int _quant;
  QuantCombo* _quantCombo;
  //int _numVisibleRows;
  //QSpinBox* _nvrSpinBox;

  QMenu* menuView;
  bool _follow;
  void setFollow(bool);

  std::vector<TrackPattern*> _trackPatterns;
  TimingPattern* _timingPattern;

 private slots:
  void updateMoveCurrentRow(unsigned);
  virtual void cmd(QAction*);

 protected slots:
  virtual void songChanged(int);

 public:
  MidiTrackerEditor(PartList*, bool);
  ~MidiTrackerEditor() {}

  void setQuant(int rpm);
  int getQuant();
  void updateQuant(); //update the gui

  void setNumVisibleRows(int nvr);
  int getNumVisibleRows();
  void updateNumVisibleRows(); //update the gui

  static const bool INIT_FOLLOW  = false;
  static const bool INIT_SPEAKER = true;
  static const bool INIT_SREC    = false;
  static const bool INIT_MIDIIN  = false;

 protected:
  //void resizeEvent(QResizeEvent *event);

 signals:
  void signalMoveCurrentRow(unsigned);
  void signalSongChanged(int);
};

#endif