85 lines
2.4 KiB
C++
85 lines
2.4 KiB
C++
//=============================================================================
|
|
// MuseScore
|
|
// Music Composition & Notation
|
|
//
|
|
// Copyright (C) 2002-2011 Werner Schweer
|
|
//
|
|
// 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 __UTILS_H__
|
|
#define __UTILS_H__
|
|
|
|
#include "mscore.h"
|
|
#include "interval.h"
|
|
|
|
namespace Ms {
|
|
|
|
//---------------------------------------------------------
|
|
// cycles
|
|
//---------------------------------------------------------
|
|
|
|
/*static inline unsigned long long cycles()
|
|
{
|
|
unsigned long long rv;
|
|
__asm__ __volatile__("rdtsc" : "=A" (rv));
|
|
return rv;
|
|
}*/
|
|
|
|
|
|
class Measure;
|
|
class Segment;
|
|
class System;
|
|
class Element;
|
|
class Note;
|
|
enum class ClefType : signed char;
|
|
|
|
extern QRectF handleRect(const QPointF& pos);
|
|
|
|
extern int getStaff(System* system, const QPointF& p);
|
|
extern int pitchKeyAdjust(int note, int key);
|
|
extern int line2pitch(int line, ClefType clef, int key);
|
|
extern int y2pitch(qreal y, ClefType clef, qreal spatium);
|
|
extern int quantizeLen(int, int);
|
|
extern void selectNoteMessage();
|
|
extern void selectNoteRestMessage();
|
|
extern void selectNoteSlurMessage();
|
|
extern void selectStavesMessage();
|
|
extern QString pitch2string(int v);
|
|
extern void transposeInterval(int pitch, int tpc, int* rpitch, int* rtpc,
|
|
Interval, bool useDoubleSharpsFlats);
|
|
extern int transposeTpc(int tpc, Interval interval, bool useDoubleSharpsFlats);
|
|
|
|
extern Interval intervalList[26];
|
|
extern int searchInterval(int steps, int semitones);
|
|
extern int chromatic2diatonic(int val);
|
|
|
|
int diatonicUpDown(int /*clef*/, int pitch, int steps);
|
|
|
|
extern int version();
|
|
extern int majorVersion();
|
|
extern int minorVersion();
|
|
extern int updateVersion();
|
|
|
|
extern Segment* nextSeg1(Segment* s, int& track);
|
|
extern Segment* prevSeg1(Segment* seg, int& track);
|
|
|
|
extern Note* searchTieNote(Note* note);
|
|
extern Note* searchTieNote114(Note* note);
|
|
|
|
extern int absStep(int pitch);
|
|
extern int absStep(int tpc, int pitch);
|
|
|
|
extern int absStep(int line, ClefType clef);
|
|
extern int relStep(int line, ClefType clef);
|
|
extern int relStep(int pitch, int tpc, ClefType clef);
|
|
extern int pitch2step(int pitch);
|
|
extern int step2pitch(int step);
|
|
|
|
|
|
} // namespace Ms
|
|
#endif
|
|
|