GUIDOLib  1.7.7
Guido Engine Internal Documentation
PianoRollTrajectory.h
1 /*
2  GUIDO Library
3  Copyright (C) 2014 Grame
4 
5  This Source Code Form is subject to the terms of the Mozilla Public
6  License, v. 2.0. If a copy of the MPL was not distributed with this
7  file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 
9  Grame Research Laboratory, 11, cours de Verdun Gensoul 69002 Lyon - France
10  research@grame.fr
11 
12 */
13 
14 #ifndef PianoRollTrajectory__
15 #define PianoRollTrajectory__
16 
17 #include "PianoRoll.h"
18 
20 {
21 public:
22  PianoRollTrajectory(ARMusic *arMusic) : PianoRoll(arMusic), fCurrentDate(0) {}
23  PianoRollTrajectory(const char *midiFileName) : PianoRoll(midiFileName), fCurrentDate(0) {}
24  virtual ~PianoRollTrajectory() {}
25 
26 private:
27  typedef struct {
28  float x;
29  float y;
30  VGColor color;
31  bool isRest;
32  } EventInfos;
33 
34  EventInfos createNoteInfos(float x, float y, VGColor &color) const;
35  EventInfos createRestInfos(float x) const;
36 
37  /**** Chords ****/
38  /* Computes if some rights chords points have several links towards them */
39  /*
40  bool isTherePointOverlap(int x, int y);
41  void sortPoints();
42  std::vector<EventInfos> *sortList(std::vector<EventInfos> *listToSort);
43  */
44  /****************/
45 
46  std::vector<EventInfos> fPreviousEventInfos;
47  std::vector<EventInfos> fCurrentEventInfos;
48 
49 protected:
50  void init();
51 
52 // void DrawVoice(ARMusicalVoice* v, const DrawParams &drawParams);
53 // void DrawNote (int pitch, double date, double dur, const DrawParams &drawParams);
54  void DrawLinks(const DrawParams &drawParams) const;
55  void DrawFinalEvent(double dur, const DrawParams &drawParams);
56  void DrawAllLinksBetweenTwoEvents(const DrawParams &drawParams) const;
57  void DrawLinkBetween(PianoRollTrajectory::EventInfos leftEvent, PianoRollTrajectory::EventInfos rightEvent, const DrawParams &drawParams) const;
58 
59  void handleRest (double date, const DrawParams &drawParams);
60 
61 #ifdef MIDIEXPORT
62 // void DrawMidiSeq(MidiSeqPtr seq, int tpqn, const DrawParams &drawParams);
63 #endif
64 
65  double fCurrentDate;
66 };
67 
68 #endif
PianoRollTrajectory::DrawLinkBetween
void DrawLinkBetween(PianoRollTrajectory::EventInfos leftEvent, PianoRollTrajectory::EventInfos rightEvent, const DrawParams &drawParams) const
PianoRollTrajectory::~PianoRollTrajectory
virtual ~PianoRollTrajectory()
Definition: PianoRollTrajectory.h:24
PianoRollTrajectory
Definition: PianoRollTrajectory.h:19
PianoRollTrajectory::DrawFinalEvent
void DrawFinalEvent(double dur, const DrawParams &drawParams)
PianoRollTrajectory::PianoRollTrajectory
PianoRollTrajectory(const char *midiFileName)
Definition: PianoRollTrajectory.h:23
PianoRollTrajectory::fCurrentDate
double fCurrentDate
Definition: PianoRollTrajectory.h:65
PianoRollTrajectory::PianoRollTrajectory
PianoRollTrajectory(ARMusic *arMusic)
Definition: PianoRollTrajectory.h:22
VGColor
Generic class to manipulate device independant colors.
Definition: VGColor.h:34
PianoRollTrajectory::DrawAllLinksBetweenTwoEvents
void DrawAllLinksBetweenTwoEvents(const DrawParams &drawParams) const
PianoRollTrajectory::handleRest
void handleRest(double date, const DrawParams &drawParams)
PianoRollTrajectory::init
void init()
PianoRoll
Definition: PianoRoll.h:45
ARMusic
Translation of a GUIDO Segment into a class.
Definition: ARMusic.h:31
PianoRollTrajectory::DrawLinks
void DrawLinks(const DrawParams &drawParams) const

Guido Project Copyright © 2019 Grame-CNCM