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
|
//=========================================================
// MusE
// Linux Music Editor
// $Id: pitchedit.cpp,v 1.1.1.1 2003/10/29 10:06:21 wschweer Exp $
// (C) Copyright 2001 Werner Schweer (ws@seh.de)
//=========================================================
#include "pitchedit.h"
#include <qstyle.h>
#include <qapplication.h>
extern bool hIsB;
static const char* vall[] = {
"c","c#","d","d#","e","f","f#","g","g#","a","a#","h"
};
static const char* valu[] = {
"C","C#","D","D#","E","F","F#","G","G#","A","A#","H"
};
//---------------------------------------------------------
// pitch2string
//---------------------------------------------------------
QString pitch2string(int v)
{
if (v < 0 || v > 127)
return QString("----");
int octave = (v / 12) - 2;
QString o;
o.sprintf("%d", octave);
int i = v % 12;
QString s(octave < 0 ? valu[i] : vall[i]);
if (hIsB) {
if (s == "h")
s = "b";
else if (s == "H")
s = "B";
}
return s + o;
}
//---------------------------------------------------------
// PitchEdit
//---------------------------------------------------------
PitchEdit::PitchEdit(QWidget* parent, const char* name)
: QSpinBox(0, 127, 1, parent, name)
{
}
//---------------------------------------------------------
// mapValueToText
//---------------------------------------------------------
QString PitchEdit::mapValueToText(int v)
{
return pitch2string(v);
}
//---------------------------------------------------------
// mapTextToValue
//---------------------------------------------------------
int PitchEdit::mapTextToValue(bool* ok)
{
printf("PitchEdit: mapTextToValue: not impl.\n");
if (ok)
*ok = false;
return 0;
}
|