123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- /*
- This file is part of QTau
- Copyright (C) 2013-2018 Tobias "Tomoko" Platen <tplaten@posteo.de>
- Copyright (C) 2013 digited <https://github.com/digited>
- Copyright (C) 2010-2013 HAL@ShurabaP <https://github.com/haruneko>
- QTau is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- SPDX-License-Identifier: GPL-3.0+
- */
- #ifndef UTILS_H
- #define UTILS_H
- #include <QObject>
- #include <QVector>
- #include <QString>
- #include <QPoint>
- #include <QSize>
- #include <QPair>
- #include <QVariant>
- #define STR(x) QVariant(x).toString()
- void __devlog__(QString logtype,QString filename,int line,QString msg);
- #define DEVLOG_ERROR(msg) {if(__devloglevel__>=1) __devlog__ ("ERROR",__FILE__,__LINE__,msg);}
- #define DEVLOG_WARNING(msg) {if(__devloglevel__>=2) __devlog__ ("WARNING",__FILE__,__LINE__,msg);}
- #define DEVLOG_DEBUG(msg) {if(__devloglevel__>=3) __devlog__ ("DEBUG",__FILE__,__LINE__,msg);}
- #define DEVLOG_INFO(msg) {if(__devloglevel__>=4) __devlog__ ("INFO",__FILE__,__LINE__,msg);}
- const QString c_qtau_name = QStringLiteral("QTau");
- const QString c_qtau_ver = QStringLiteral("α1");
- /* Pulses Per Quarter note - standard timing resolution of a MIDI sequencer,
- needs to be divisible by 16 and 3 to support 1/64 notes and triplets.
- Used to determine note offset (in bars/seconds) and duration */
- const int c_midi_ppq = 480;
- const int c_zoom_num = 17;
- const int cdef_zoom_index = 4;
- const int cdef_note_height = 14;
- const int c_zoom_note_widths[c_zoom_num] = {16, 32, 48, 64, 80,
- 96, 112, 128, 144, 160,
- 176, 208, 240, 304, 368, 480, 608};
- class TempoMap;
- struct SNoteSetup {
- QSize note; // gui dimensions (in pixels)
- int baseOctave;
- int numOctaves;
- int numBars;
- //int noteLength; // denominator of note length 1
- //int notesInBar; // noteLength=4 and notesInBar=4 means music time signature 4/4
- //int tempo; // bpm
- //QMap <int,STimeSignature*> times;
- TempoMap* tmap;
-
- int quantize; // 1/x note length, used as unit of offset for singing notes
- int length; // 1/x singing note length unit (len=4 means 1/4, 2/4 etc +1/4)
- int barWidth;
- int octHeight;
- SNoteSetup() : note(c_zoom_note_widths[cdef_zoom_index], cdef_note_height),
- baseOctave(1), numOctaves(8),numBars(128), tmap(0), quantize(32), length(32),
- barWidth(note.width() * /*notesInBar*/4), octHeight(note.height() * 12) {}
- };
- //----------------------------------------------------
- enum class ELog : char {
- none,
- info,
- debug,
- error,
- success
- };
- enum class EColor : char {
- none,
- green,
- red
- };
- #define MAXRECENTFILES 8
- //#define DEFAULT_SAMPLERATE 44100
- #endif // UTILS_H
|