MuseScore/libmscore/noteevent.h

59 lines
1.7 KiB
C
Raw Normal View History

2012-05-26 14:26:10 +02:00
//=============================================================================
// MuseScore
// Music Composition & Notation
//
2012-11-19 10:08:15 +01:00
// Copyright (C) 2010-2012 Werner Schweer
2012-05-26 14:26:10 +02:00
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2
// as published by the Free Software Foundation and appearing in
// the file LICENCE.GPL
//=============================================================================
#ifndef __NOTEEVENT_H__
#define __NOTEEVENT_H__
2013-05-13 18:49:17 +02:00
namespace Ms {
2016-11-19 11:51:21 +01:00
class XmlWriter;
2013-01-11 18:10:18 +01:00
class XmlReader;
2012-05-26 14:26:10 +02:00
//---------------------------------------------------------
// NoteEvent
//---------------------------------------------------------
class NoteEvent {
2012-11-20 20:51:18 +01:00
int _pitch; // relative pitch to note pitch
int _ontime; // 1/1000 of nominal note len
int _len; // 1/1000 of nominal note len
2012-05-26 14:26:10 +02:00
public:
NoteEvent() : _pitch(0), _ontime(0), _len(1000) {}
NoteEvent(int a, int b, int c) : _pitch(a), _ontime(b), _len(c) {}
2013-01-11 18:10:18 +01:00
void read(XmlReader&);
2016-11-19 11:51:21 +01:00
void write(XmlWriter&) const;
2012-05-26 14:26:10 +02:00
2012-11-20 20:51:18 +01:00
int pitch() const { return _pitch; }
2012-05-26 14:26:10 +02:00
int ontime() const { return _ontime; }
int offtime() const { return _ontime + _len; }
int len() const { return _len; }
void setPitch(int v) { _pitch = v; }
void setOntime(int v) { _ontime = v; }
void setLen(int v) { _len = v; }
2012-11-20 20:51:18 +01:00
bool operator==(const NoteEvent&) const;
2012-05-26 14:26:10 +02:00
};
2012-11-19 10:08:15 +01:00
//---------------------------------------------------------
// NoteEventList
//---------------------------------------------------------
class NoteEventList : public QList<NoteEvent> {
public:
NoteEventList();
};
2012-05-26 14:26:10 +02:00
2013-05-13 18:49:17 +02:00
} // namespace Ms
2012-05-26 14:26:10 +02:00
#endif