diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/NEWYamitracker/Yamitracker/build/Desktop-Debug/.qtc_clangd/compile_commands.json b/NEWYamitracker/Yamitracker/build/Desktop-Debug/.qtc_clangd/compile_commands.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/NEWYamitracker/Yamitracker/build/Desktop-Debug/.qtc_clangd/compile_commands.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Yamitracker/Yamitracker.pro.user b/OtherPush/yamitraherIlyaEdit/Yamitracker/.qtcreator/Yamitracker.pro.user similarity index 100% rename from Yamitracker/Yamitracker.pro.user rename to OtherPush/yamitraherIlyaEdit/Yamitracker/.qtcreator/Yamitracker.pro.user diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/Yamitracker.pro b/OtherPush/yamitraherIlyaEdit/Yamitracker/Yamitracker.pro new file mode 100644 index 0000000..d5d042f --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/Yamitracker.pro @@ -0,0 +1,22 @@ +QT += core gui widgets multimedia + +CONFIG += c++17 + +SOURCES += \ + main.cpp \ + yamitracker.cpp \ + simplewavwriter.cpp \ + brrconverter.cpp + +HEADERS += \ + yamitracker.h \ + simplewavwriter.h \ + brrconverter.h + +FORMS += \ + yamitracker.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target \ No newline at end of file diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/Yamitracker.pro.user b/OtherPush/yamitraherIlyaEdit/Yamitracker/Yamitracker.pro.user new file mode 100644 index 0000000..fcac744 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/Yamitracker.pro.user @@ -0,0 +1,263 @@ + + + + + + EnvironmentId + {6395eb3f-fc2a-4125-bb4f-a9c51f02958b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {0acbc229-4897-4c6e-a23f-ae7c45394b0c} + 0 + 0 + 0 + + 0 + /home/acer1117/build-Yamitracker-Desktop-Debug + /home/acer1117/build-Yamitracker-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/acer1117/build-Yamitracker-Desktop-Release + /home/acer1117/build-Yamitracker-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/acer1117/build-Yamitracker-Desktop-Profile + /home/acer1117/build-Yamitracker-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro + /home/acer1117/Yamitracker/Yamitracker.pro + false + true + true + false + true + /home/acer1117/build-Yamitracker-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/Yamitracker/Yamitracker_ru_RU.ts b/OtherPush/yamitraherIlyaEdit/Yamitracker/Yamitracker_ru_RU.ts similarity index 100% rename from Yamitracker/Yamitracker_ru_RU.ts rename to OtherPush/yamitraherIlyaEdit/Yamitracker/Yamitracker_ru_RU.ts diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/brrconverter.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/brrconverter.cpp new file mode 100644 index 0000000..eed5c96 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/brrconverter.cpp @@ -0,0 +1,340 @@ +#include "brrconverter.h" +#include + +BrrConverter::BrrConverter(QObject *parent) : QObject(parent) +{ +} + +bool BrrConverter::convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath) +{ + QFile wavFile(wavFilePath); + if (!wavFile.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open WAV file:" << wavFilePath; + return false; + } + + int sampleRate, channels, bitsPerSample, dataSize; + if (!decodeWavHeader(wavFile, sampleRate, channels, bitsPerSample, dataSize)) { + qDebug() << "Invalid WAV file format"; + wavFile.close(); + return false; + } + + // Читаем аудиоданные + QByteArray audioData = wavFile.read(dataSize); + wavFile.close(); + + // Конвертируем в 16-bit моно + QVector samples; + int bytesPerSample = bitsPerSample / 8; + int totalSamples = dataSize / (bytesPerSample * channels); + + for (int i = 0; i < totalSamples; ++i) { + int32_t sample = 0; + + for (int ch = 0; ch < channels; ++ch) { + int32_t channelSample = 0; + int offset = (i * channels + ch) * bytesPerSample; + + if (bitsPerSample == 8) { + channelSample = (int8_t)audioData[offset]; + channelSample = (channelSample - 128) * 256; + } else if (bitsPerSample == 16) { + channelSample = (int16_t)((audioData[offset + 1] << 8) | audioData[offset]); + } else if (bitsPerSample == 24) { + channelSample = (int32_t)((audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + if (channelSample & 0x800000) channelSample |= 0xFF000000; + channelSample >>= 8; + } else if (bitsPerSample == 32) { + channelSample = (int32_t)((audioData[offset + 3] << 24) | + (audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + channelSample >>= 16; + } + + sample += channelSample; + } + + // Микшируем каналы + sample /= channels; + samples.append(clamp16(sample)); + } + + // Понижаем частоту дискретизации для SNES (макс 32kHz -> 16kHz) + if (sampleRate > 16000) { + int ratio = sampleRate / 16000; + QVector downsampled; + for (int i = 0; i < samples.size(); i += ratio) { + downsampled.append(samples[i]); + } + samples = downsampled; + } else if (sampleRate < 16000) { + // Если частота ниже, повышаем (простое повторение) + int ratio = 16000 / sampleRate; + QVector upsampled; + for (int i = 0; i < samples.size(); ++i) { + for (int j = 0; j < ratio; ++j) { + upsampled.append(samples[i]); + } + } + samples = upsampled; + } + + // Открываем BRR файл для записи + QFile brrFile(brrFilePath); + if (!brrFile.open(QIODevice::WriteOnly)) { + qDebug() << "Cannot open BRR file for writing:" << brrFilePath; + return false; + } + + ADPCMState state; + QVector blockSamples; + + // Конвертируем в BRR блоками по 16 сэмплов + for (int i = 0; i < samples.size(); ++i) { + int encoded = encodeADPCMNibble(samples[i], state); + blockSamples.append(encoded); + + if (blockSamples.size() == 32) { // 32 ниббла = 16 сэмплов + writeBrrBlock(brrFile, blockSamples, false); + blockSamples.clear(); + } + } + + // Записываем последний неполный блок + if (!blockSamples.isEmpty()) { + // Дополняем до 32 нибблов + while (blockSamples.size() < 32) { + blockSamples.append(0); + } + writeBrrBlock(brrFile, blockSamples, true); // Последний блок с флагом loop + } else if (samples.size() > 0) { + // Если был полный последний блок, помечаем его как loop + brrFile.seek(brrFile.size() - BRR_BLOCK_SIZE); + unsigned char header = 0x03; // Фильтр 0, loop flag = 1 + brrFile.write((char*)&header, 1); + } + + brrFile.close(); + qDebug() << "BRR file created:" << brrFilePath << "samples:" << samples.size() << "sample rate:" << sampleRate; + return true; +} + +bool BrrConverter::convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath) +{ + qDebug() << "MIDI to BRR conversion requires MIDI synthesizer"; + qDebug() << "Please convert MIDI to WAV first, then use WAV to BRR"; + + return false; +} + +bool BrrConverter::decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize) +{ + char buffer[44]; + if (file.read(buffer, 44) != 44) { + return false; + } + + // Проверяем RIFF заголовок + if (buffer[0] != 'R' || buffer[1] != 'I' || buffer[2] != 'F' || buffer[3] != 'F') { + return false; + } + + // Проверяем WAVE формат + if (buffer[8] != 'W' || buffer[9] != 'A' || buffer[10] != 'V' || buffer[11] != 'E') { + return false; + } + + // Проверяем fmt chunk + if (buffer[12] != 'f' || buffer[13] != 'm' || buffer[14] != 't' || buffer[15] != ' ') { + return false; + } + + // Читаем параметры + int fmtSize = *(int*)(buffer + 16); + if (fmtSize < 16) return false; + + int audioFormat = *(short*)(buffer + 20); + if (audioFormat != 1) return false; // Только PCM + + channels = *(short*)(buffer + 22); + sampleRate = *(int*)(buffer + 24); + bitsPerSample = *(short*)(buffer + 34); + + // Ищем data chunk + int offset = 36; + while (offset < file.size()) { + file.seek(offset); + char chunkId[4]; + if (file.read(chunkId, 4) != 4) break; + + int chunkSize; + if (file.read((char*)&chunkSize, 4) != 4) break; + + if (chunkId[0] == 'd' && chunkId[1] == 'a' && chunkId[2] == 't' && chunkId[3] == 'a') { + dataSize = chunkSize; + file.seek(offset + 8); + return true; + } + + offset += 8 + chunkSize; + } + + return false; +} + +int16_t BrrConverter::clamp16(int sample) +{ + if (sample > 32767) return 32767; + if (sample < -32768) return -32768; + return (int16_t)sample; +} + +int BrrConverter::encodeADPCMNibble(int sample, ADPCMState &state) +{ + int diff = sample - state.prev_sample; + int step = step_table[state.prev_index]; + + // Квантование + int nibble = 0; + int predicted = state.prev_sample; + + // Применяем фильтр (простейший - без фильтра) + int filtered = predicted; + + diff = sample - filtered; + + // Находим наилучший nibble + int best_nibble = 0; + int best_error = INT_MAX; + + for (int n = 0; n < 16; ++n) { + int step_index = state.prev_index + ((n & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (n & 8) ? -current_step : current_step; + + int current_sample = filtered + delta; + int error = abs(sample - current_sample); + + if (error < best_error) { + best_error = error; + best_nibble = n; + } + } + + // Декодируем выбранный nibble для обновления состояния + int step_index = state.prev_index + ((best_nibble & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (best_nibble & 8) ? -current_step : current_step; + + state.prev_sample = filtered + delta; + state.prev_index = step_index; + + // Ограничиваем индекс + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + // Ограничиваем сэмпл + state.prev_sample = clamp16(state.prev_sample); + + return best_nibble; +} + +void BrrConverter::writeBrrBlock(QFile &file, const QVector &samples, bool loop) +{ + if (samples.size() != 32) { + qDebug() << "Invalid sample count for BRR block:" << samples.size(); + return; + } + + unsigned char header = 0x00; + if (loop) { + header = 0x03; // Фильтр 0 + loop + } + + file.write((char*)&header, 1); + + // Упаковываем 32 ниббла в 8 байт + for (int i = 0; i < 16; ++i) { + unsigned char byte = (samples[i * 2] << 4) | (samples[i * 2 + 1] & 0x0F); + file.write((char*)&byte, 1); + } +} + +int BrrConverter::decodeADPCMNibble(int nibble, ADPCMState &state) +{ + int step = step_table[state.prev_index]; + int delta = step >> 3; + + if (nibble & 1) delta += step >> 2; + if (nibble & 2) delta += step >> 1; + if (nibble & 4) delta += step; + + if (nibble & 8) delta = -delta; + + // Применяем фильтр (простейший) + int sample = state.prev_sample + delta; + + // Ограничиваем + sample = clamp16(sample); + + // Обновляем индекс + state.prev_index += ((nibble & 7) * 2 - 7); + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + state.prev_sample = sample; + + return sample; +} + +QVector BrrConverter::decodeBrrFile(const QString &brrFilePath) +{ + QVector samples; + QFile file(brrFilePath); + + if (!file.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open BRR file for reading:" << brrFilePath; + return samples; + } + + ADPCMState state; + + while (!file.atEnd()) { + unsigned char header; + if (file.read((char*)&header, 1) != 1) break; + + unsigned char data[8]; + if (file.read((char*)data, 8) != 8) break; + + // Извлекаем нибблы + for (int i = 0; i < 8; ++i) { + unsigned char byte = data[i]; + int nibble1 = (byte >> 4) & 0x0F; + int nibble2 = byte & 0x0F; + + int sample1 = decodeADPCMNibble(nibble1, state); + int sample2 = decodeADPCMNibble(nibble2, state); + + samples.append(sample1); + samples.append(sample2); + } + + // Проверяем конец + if (header & 0x01) { + break; // Конец сэмпла + } + } + + file.close(); + return samples; +} \ No newline at end of file diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/brrconverter.h b/OtherPush/yamitraherIlyaEdit/Yamitracker/brrconverter.h new file mode 100644 index 0000000..175879a --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/brrconverter.h @@ -0,0 +1,54 @@ +#ifndef BRRCONVERTER_H +#define BRRCONVERTER_H + +#include +#include +#include +#include +#include + +class BrrConverter : public QObject +{ + Q_OBJECT + +public: + BrrConverter(QObject *parent = nullptr); + + bool convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath); + bool convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath); + +private: + struct ADPCMState { + int prev_sample; + int prev_index; + + ADPCMState() : prev_sample(0), prev_index(0) {} + }; + + struct BRRBlock { + unsigned char header; + unsigned char data[8]; + }; + + bool decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize); + int16_t clamp16(int sample); + int encodeADPCMNibble(int sample, ADPCMState &state); + void writeBrrBlock(QFile &file, const QVector &samples, bool loop = false); + int decodeADPCMNibble(int nibble, ADPCMState &state); + QVector decodeBrrFile(const QString &brrFilePath); + + static const int BRR_BLOCK_SIZE = 9; + static const int SAMPLES_PER_BLOCK = 16; + static const int FILTER_TYPES = 4; + + const int step_table[89] = { + 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, + 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, + 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, + 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327, + 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, + 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 + }; +}; + +#endif \ No newline at end of file diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/.qmake.stash b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/Makefile b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/Makefile new file mode 100644 index 0000000..40ccdcb --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/Makefile @@ -0,0 +1,458 @@ +############################################################################# +# Makefile for building: Yamitracker +# Generated by qmake (3.1) (Qt 5.15.13) +# Project: ../Yamitracker.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Yamitracker1.0.0 +DISTDIR = /home/sofft328/progs/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/.tmp/Yamitracker1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Multimedia.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Network.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp moc_yamitracker.cpp \ + moc_simplewavwriter.cpp \ + moc_brrconverter.cpp +OBJECTS = main.o \ + yamitracker.o \ + simplewavwriter.o \ + brrconverter.o \ + moc_yamitracker.o \ + moc_simplewavwriter.o \ + moc_brrconverter.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../Yamitracker.pro ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp +QMAKE_TARGET = Yamitracker +DESTDIR = +TARGET = Yamitracker + + +first: all +####### Build rules + +Yamitracker: ui_yamitracker.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../Yamitracker.pro + $(QMAKE) -o Makefile ../Yamitracker.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../Yamitracker.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../Yamitracker.pro + +qmake_all: FORCE + + +all: Makefile Yamitracker + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.h ../simplewavwriter.h ../brrconverter.h $(DISTDIR)/ + $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplewavwriter.cpp ../brrconverter.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_yamitracker.cpp moc_simplewavwriter.cpp moc_brrconverter.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_yamitracker.cpp moc_simplewavwriter.cpp moc_brrconverter.cpp +moc_yamitracker.cpp: ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp + +moc_simplewavwriter.cpp: ../simplewavwriter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../simplewavwriter.h -o moc_simplewavwriter.cpp + +moc_brrconverter.cpp: ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../brrconverter.h -o moc_brrconverter.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_yamitracker.h +compiler_uic_clean: + -$(DEL_FILE) ui_yamitracker.h +ui_yamitracker.h: ../yamitracker.ui \ + /usr/lib/qt5/bin/uic + /usr/lib/qt5/bin/uic ../yamitracker.ui -o ui_yamitracker.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: ../main.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp + +yamitracker.o: ../yamitracker.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + ui_yamitracker.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp + +simplewavwriter.o: ../simplewavwriter.cpp ../simplewavwriter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplewavwriter.o ../simplewavwriter.cpp + +brrconverter.o: ../brrconverter.cpp ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o brrconverter.o ../brrconverter.cpp + +moc_yamitracker.o: moc_yamitracker.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp + +moc_simplewavwriter.o: moc_simplewavwriter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_simplewavwriter.o moc_simplewavwriter.cpp + +moc_brrconverter.o: moc_brrconverter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_brrconverter.o moc_brrconverter.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin + $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/Yamitracker b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/Yamitracker new file mode 100644 index 0000000..153aed1 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/Yamitracker differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/a.s b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/a.s new file mode 100644 index 0000000..0225c2e --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/a.s @@ -0,0 +1,139 @@ +; Generated by Yamitracker +; Date: 2025-12-17 14:14:41 +; Tracks: 2 + +music_inst_table: + INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2 + INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2 + +pently_patterns: + .addr PPDAT_track0 + .addr PPDAT_track1 + +PPDAT_track0: + .byt D_D8 + .byt D_D8 + .byt D_D8 + .byt D_D2 + .byt N_EH|D_D2 + .byt N_EH|D_D8 + .byt D_D4 + .byt N_GH|D_D2 + .byt N_GH|D_D8 + .byt N_EH|D_D2 + .byt N_EH|D_D8 + .byt D_D8 + .byt D_1 + .byt N_GH|D_D2 + .byt N_GH|D_D8 + .byt D_D4 + .byt N_EH|D_D2 + .byt N_EH|D_D8 + .byt D_D4 + .byt N_GH|D_D2 + .byt N_GH|D_D8 + .byt D_D8 + .byt D_D4 + .byt N_EH|D_D2 + .byt N_EH|D_D8 + .byt D_D8 + .byt D_D2 + .byt N_GH|D_D2 + .byt N_GH|D_D8 + .byt PATEND + +PPDAT_track1: + .byt D_D8 + .byt D_D8 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_D2 + .byt N_AH|D_1 + .byt N_AH|D_D2 + .byt D_1 + .byt N_AH|D_D2 + .byt N_AH|D_D4 + .byt D_1 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_1 + .byt N_AH|D_D2 + .byt N_AH|D_D4 + .byt D_1 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_1 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_D2 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_D2 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_D2 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_1 + .byt N_AH|D_D2 + .byt N_AH|D_D8 + .byt D_D2 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_1 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_1 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_D2 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_D8 + .byt D_D8 + .byt D_D2 + .byt N_AH|D_D2 + .byt N_AH|D_D4 + .byt D_D8 + .byt D_D2 + .byt N_AH|D_D8 + .byt N_AH|D_D2 + .byt D_D8 + .byt D_D4 + .byt N_AH|D_D2 + .byt N_AH|D_D8 + .byt D_D8 + .byt D_D2 + .byt N_AH|D_D2 + .byt N_AH|D_D4 + .byt D_D8 + .byt D_D4 + .byt N_AH|D_D2 + .byt N_AH|D_D4 + .byt D_D8 + .byt D_D4 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_D8 + .byt D_D8 + .byt D_D4 + .byt N_AH|D_D2 + .byt N_AH|D_D4 + .byt PATEND + +pently_songs: + .addr PSDAT_main_song + +PSDAT_main_song: + setTempo 1000 + playPat 0, 0, 23, PLING_8 + playPat 1, 1, 23, PLING_8 + waitRows 255 + stopPat 0 + stopPat 1 + dalSegno + +; ОГРАНИЧЕНИЯ PENTLY: +; - Максимальная длительность задержки: D_D8 (255 тиков) +; - Максимальный waitRows: 255 тиков +; - Длительные паузы разбиваются на несколько D_D8 diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/brrconverter.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/brrconverter.o new file mode 100644 index 0000000..149ec06 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/brrconverter.o differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/main.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/main.o new file mode 100644 index 0000000..ff2db7a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/main.o differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_brrconverter.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_brrconverter.cpp new file mode 100644 index 0000000..a11b9fc --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_brrconverter.cpp @@ -0,0 +1,95 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'brrconverter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../brrconverter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'brrconverter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_BrrConverter_t { + QByteArrayData data[1]; + char stringdata0[13]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_BrrConverter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_BrrConverter_t qt_meta_stringdata_BrrConverter = { + { +QT_MOC_LITERAL(0, 0, 12) // "BrrConverter" + + }, + "BrrConverter" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_BrrConverter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void BrrConverter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject BrrConverter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_BrrConverter.data, + qt_meta_data_BrrConverter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *BrrConverter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *BrrConverter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_BrrConverter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int BrrConverter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_brrconverter.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_brrconverter.o new file mode 100644 index 0000000..fa3b784 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_brrconverter.o differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_predefs.h b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_predefs.h new file mode 100644 index 0000000..f29ad61 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_predefs.h @@ -0,0 +1,464 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __cpp_nontype_template_parameter_auto 201606L +#define __UINT_LEAST16_MAX__ 0xffff +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __ATOMIC_ACQUIRE 2 +#define __FLT128_MAX_10_EXP__ 4932 +#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __cpp_aggregate_nsdmi 201304L +#define __UINT_LEAST8_TYPE__ unsigned char +#define __SIZEOF_FLOAT80__ 16 +#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 0xff +#define __SCHAR_WIDTH__ 8 +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 201411L +#define __BFLT16_MIN_10_EXP__ (-37) +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __WCHAR_MAX__ 0x7fffffff +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __cpp_binary_literals 201304L +#define __FLT64_DECIMAL_DIG__ 17 +#define __CET__ 3 +#define __cpp_noexcept_function_type 201510L +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __cpp_variadic_templates 200704L +#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __cpp_variable_templates 201304L +#define __FLT32X_MAX_EXP__ 1024 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __FLT32_HAS_DENORM__ 1 +#define __UINT_FAST8_MAX__ 0xff +#define __cpp_rvalue_reference 200610L +#define __cpp_nested_namespace_definitions 201411L +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __LDBL_HAS_INFINITY__ 1 +#define __INT_LEAST8_WIDTH__ 8 +#define __cpp_variadic_using 201611L +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL +#define __INT_LEAST8_MAX__ 0x7f +#define __cpp_attributes 200809L +#define __cpp_capture_star_this 201603L +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __FLT64X_MAX_10_EXP__ 4932 +#define __cpp_if_constexpr 201606L +#define __BFLT16_MAX_10_EXP__ 38 +#define __BFLT16_MAX_EXP__ 128 +#define __LDBL_IS_IEC_60559__ 1 +#define __FLT64X_HAS_QUIET_NAN__ 1 +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +#define __UINTMAX_TYPE__ long unsigned int +#define __cpp_nsdmi 200809L +#define __BFLT16_DECIMAL_DIG__ 4 +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __OPTIMIZE__ 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +#define __FLT128_MIN_EXP__ (-16381) +#define __WINT_MIN__ 0U +#define __FLT128_MIN_10_EXP__ (-4931) +#define __FLT32X_IS_IEC_60559__ 1 +#define __INT_LEAST16_WIDTH__ 16 +#define __SCHAR_MAX__ 0x7f +#define __FLT128_MANT_DIG__ 113 +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __INT64_C(c) c ## L +#define __SSP_STRONG__ 3 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __ATOMIC_SEQ_CST 5 +#define _FORTIFY_SOURCE 3 +#define __unix 1 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MANT_DIG__ 53 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __cpp_aligned_new 201606L +#define __FLT32_MAX_10_EXP__ 38 +#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +#define __STDC_HOSTED__ 1 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype_auto 201304L +#define __DBL_DIG__ 15 +#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __FLT32_IS_IEC_60559__ 1 +#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +#define __DBL_IS_IEC_60559__ 1 +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806L +#define __cpp_enumerator_attributes 201411L +#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +#define __FLT32X_HAS_INFINITY__ 1 +#define __unix__ 1 +#define __INT_WIDTH__ 32 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __DECIMAL_DIG__ 21 +#define __STDC_IEC_559_COMPLEX__ 1 +#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +#define __gnu_linux__ 1 +#define __INT16_MAX__ 0x7fff +#define __FLT64_MIN_EXP__ (-1021) +#define __FLT64X_MIN_10_EXP__ (-4931) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __cpp_return_type_deduction 201304L +#define __FLT16_MIN_EXP__ (-13) +#define __FLT64_MANT_DIG__ 53 +#define __FLT64X_MANT_DIG__ 64 +#define __BFLT16_DIG__ 2 +#define __GNUC__ 13 +#define __GXX_RTTI 1 +#define __pie__ 2 +#define __MMX__ 1 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __BIGGEST_ALIGNMENT__ 16 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __BFLT16_IS_IEC_60559__ 0 +#define __FLT16_MAX_10_EXP__ 4 +#define __cpp_delegating_constructors 200604L +#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __cpp_raw_strings 200710L +#define __INT_FAST32_MAX__ 0x7fffffffffffffffL +#define __DBL_HAS_INFINITY__ 1 +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __SIZEOF_FLOAT__ 4 +#define __HAVE_SPECULATION_SAFE_VALUE 1 +#define __cpp_fold_expressions 201603L +#define __DEC32_MIN_EXP__ (-94) +#define __INTPTR_WIDTH__ 64 +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ long int +#define __MMX_WITH_SSE__ 1 +#define __LDBL_HAS_DENORM__ 1 +#define __SEG_GS 1 +#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +#define __cplusplus 201703L +#define __cpp_ref_qualifiers 200710L +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610L +#define __DBL_MAX_EXP__ 1024 +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __FLT16_DECIMAL_DIG__ 5 +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 0x7fffffffffffffffL +#define __amd64 1 +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __GNUG__ 13 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 8 +#define __BFLT16_HAS_INFINITY__ 1 +#define __FLT64X_MIN_EXP__ (-16381) +#define __SIZEOF_WINT_T__ 4 +#define __FLT32X_DIG__ 15 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806L +#define __FLT32_MAX_EXP__ 128 +#define __cpp_hex_float 201603L +#define __GXX_ABI_VERSION 1018 +#define __FLT_MIN_EXP__ (-125) +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __x86_64 1 +#define __cpp_lambdas 200907L +#define __INT_FAST64_TYPE__ long int +#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +#define __cpp_template_auto 201606L +#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __SIZEOF_POINTER__ 8 +#define __SIZE_TYPE__ long unsigned int +#define __LP64__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +#define __LDBL_MAX_EXP__ 16384 +#define __DECIMAL_BID_FORMAT__ 1 +#define __FLT64_MIN_10_EXP__ (-307) +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT64X_DECIMAL_DIG__ 21 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __FLT128_HAS_INFINITY__ 1 +#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __FLT_DIG__ 6 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 21 +#define __VERSION__ "13.3.0" +#define __UINT64_C(c) c ## UL +#define __cpp_unicode_characters 201411L +#define _STDC_PREDEF_H 1 +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT128_MAX_EXP__ 16384 +#define __FLT32_MANT_DIG__ 24 +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT32X_MIN_EXP__ (-1021) +#define __STDC_IEC_60559_COMPLEX__ 201404L +#define __cpp_aggregate_bases 201603L +#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +#define __FLT128_HAS_DENORM__ 1 +#define __FLT32_DECIMAL_DIG__ 9 +#define __FLT128_DIG__ 33 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __DEC128_MAX_EXP__ 6145 +#define unix 1 +#define __DBL_HAS_DENORM__ 1 +#define __cpp_rtti 199711L +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __FLT_IS_IEC_60559__ 1 +#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +#define __FLT64X_DIG__ 18 +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309L +#define __ELF__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __UINT32_TYPE__ unsigned int +#define __BFLT16_HAS_QUIET_NAN__ 1 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +#define __UINTMAX_C(c) c ## UL +#define __FLT16_DIG__ 3 +#define __k8 1 +#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __cpp_constexpr 201603L +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +#define __STDC_IEC_60559_BFP__ 201404L +#define __SIZEOF_PTRDIFF_T__ 8 +#define __FLT64X_HAS_INFINITY__ 1 +#define __SIZEOF_LONG__ 8 +#define __LDBL_DIG__ 18 +#define __FLT64_IS_IEC_60559__ 1 +#define __x86_64__ 1 +#define __FLT16_IS_IEC_60559__ 1 +#define __FLT16_MAX_EXP__ 16 +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __INT_FAST16_MAX__ 0x7fffffffffffffffL +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __LONG_MAX__ 0x7fffffffffffffffL +#define __FLT64X_HAS_DENORM__ 1 +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" +#define __cpp_unicode_literals 200710L +#define __UINT_FAST16_TYPE__ long unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __INT_FAST32_WIDTH__ 64 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __SIZE_WIDTH__ 64 +#define __SEG_FS 1 +#define __INT_LEAST16_MAX__ 0x7fff +#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __DEC64_MANT_DIG__ 16 +#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +#define __cpp_structured_bindings 201606L +#define __SIZEOF_INT__ 4 +#define __DEC32_MAX_EXP__ 97 +#define __INT_FAST8_MAX__ 0x7f +#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __INTPTR_MAX__ 0x7fffffffffffffffL +#define __cpp_sized_deallocation 201309L +#define __cpp_guaranteed_copy_elision 201606L +#define linux 1 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __EXCEPTIONS 1 +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 64 +#define __LDBL_MANT_DIG__ 64 +#define __cpp_range_based_for 201603L +#define __INT_FAST16_WIDTH__ 64 +#define __FLT64_HAS_INFINITY__ 1 +#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __FLT16_HAS_INFINITY__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __cpp_nontype_template_args 201411L +#define __DEC32_MANT_DIG__ 7 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __pic__ 2 +#define __UINTPTR_MAX__ 0xffffffffffffffffUL +#define __INT_FAST64_WIDTH__ 64 +#define __cpp_decltype 200707L +#define __INT_FAST64_MAX__ 0x7fffffffffffffffL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +#define __FLT32_HAS_INFINITY__ 1 +#define __FLT64X_MAX_EXP__ 16384 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __cpp_inline_variables 201606L +#define __BFLT16_MIN_EXP__ (-125) +#define __INT_MAX__ 0x7fffffff +#define __linux__ 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __cpp_inheriting_constructors 201511L +#define __SIZEOF_FLOAT128__ 16 +#define __BFLT16_MANT_DIG__ 8 +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __amd64__ 1 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST64_WIDTH__ 64 +#define __FLT32X_MAX_10_EXP__ 308 +#define __cpp_namespace_attributes 201411L +#define __SIZEOF_INT128__ 16 +#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +#define __FLT64X_IS_IEC_60559__ 1 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +#define __INT_LEAST32_TYPE__ int +#define _LP64 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __SIZEOF_WCHAR_T__ 4 +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __FLT128_HAS_QUIET_NAN__ 1 +#define __INTMAX_MAX__ 0x7fffffffffffffffL +#define __INT_FAST8_TYPE__ signed char +#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +#define __STDCPP_THREADS__ 1 +#define __BFLT16_HAS_DENORM__ 1 +#define __GNUC_STDC_INLINE__ 1 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +#define __FLT16_HAS_DENORM__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __FXSR__ 1 +#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __INTMAX_WIDTH__ 64 +#define __cpp_runtime_arrays 198712L +#define __FLT32_DIG__ 6 +#define __UINT64_TYPE__ long unsigned int +#define __UINT32_C(c) c ## U +#define __cpp_alias_templates 200704L +#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +#define __FLT128_IS_IEC_60559__ 1 +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 64 +#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +#define __PIC__ 2 +#define __INT32_MAX__ 0x7fffffff +#define __UINT_FAST32_TYPE__ long unsigned int +#define __FLT16_MANT_DIG__ 11 +#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F +#define __SSE2__ 1 +#define __cpp_deduction_guides 201703L +#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711L +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long int +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 3 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __UINTMAX_MAX__ 0xffffffffffffffffUL +#define __PIE__ 2 +#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +#define __cpp_template_template_args 201611L +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +#define __INT16_C(c) c +#define __STDC__ 1 +#define __PTRDIFF_TYPE__ long int +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __cpp_generic_lambdas 201304L +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809L +#define __FLT128_DECIMAL_DIG__ 36 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL +#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __SIZE_MAX__ 0xffffffffffffffffUL +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __cpp_init_captures 201304L +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_simplewavwriter.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_simplewavwriter.cpp new file mode 100644 index 0000000..cde09b3 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_simplewavwriter.cpp @@ -0,0 +1,155 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'simplewavwriter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../simplewavwriter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'simplewavwriter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SimpleWavWriter_t { + QByteArrayData data[6]; + char stringdata0[69]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SimpleWavWriter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SimpleWavWriter_t qt_meta_stringdata_SimpleWavWriter = { + { +QT_MOC_LITERAL(0, 0, 15), // "SimpleWavWriter" +QT_MOC_LITERAL(1, 16, 12), // "trackUpdated" +QT_MOC_LITERAL(2, 29, 0), // "" +QT_MOC_LITERAL(3, 30, 5), // "track" +QT_MOC_LITERAL(4, 36, 22), // "recordingStatusChanged" +QT_MOC_LITERAL(5, 59, 9) // "recording" + + }, + "SimpleWavWriter\0trackUpdated\0\0track\0" + "recordingStatusChanged\0recording" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SimpleWavWriter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 2, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 2, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 1, 24, 2, 0x06 /* Public */, + 4, 1, 27, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::Int, 3, + QMetaType::Void, QMetaType::Bool, 5, + + 0 // eod +}; + +void SimpleWavWriter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->trackUpdated((*reinterpret_cast< int(*)>(_a[1]))); break; + case 1: _t->recordingStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SimpleWavWriter::*)(int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SimpleWavWriter::trackUpdated)) { + *result = 0; + return; + } + } + { + using _t = void (SimpleWavWriter::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SimpleWavWriter::recordingStatusChanged)) { + *result = 1; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SimpleWavWriter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SimpleWavWriter.data, + qt_meta_data_SimpleWavWriter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SimpleWavWriter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SimpleWavWriter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SimpleWavWriter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int SimpleWavWriter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 2) + qt_static_metacall(this, _c, _id, _a); + _id -= 2; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 2) + *reinterpret_cast(_a[0]) = -1; + _id -= 2; + } + return _id; +} + +// SIGNAL 0 +void SimpleWavWriter::trackUpdated(int _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SimpleWavWriter::recordingStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_simplewavwriter.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_simplewavwriter.o new file mode 100644 index 0000000..5291ccc Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_simplewavwriter.o differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_yamitracker.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_yamitracker.cpp new file mode 100644 index 0000000..08ee157 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_yamitracker.cpp @@ -0,0 +1,503 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'yamitracker.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../yamitracker.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'yamitracker.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SerialReader_t { + QByteArrayData data[13]; + char stringdata0[145]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SerialReader_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = { + { +QT_MOC_LITERAL(0, 0, 12), // "SerialReader" +QT_MOC_LITERAL(1, 13, 14), // "noteOnReceived" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 4), // "data" +QT_MOC_LITERAL(4, 34, 8), // "velocity" +QT_MOC_LITERAL(5, 43, 15), // "noteOffReceived" +QT_MOC_LITERAL(6, 59, 5), // "error" +QT_MOC_LITERAL(7, 65, 7), // "message" +QT_MOC_LITERAL(8, 73, 23), // "connectionStatusChanged" +QT_MOC_LITERAL(9, 97, 9), // "connected" +QT_MOC_LITERAL(10, 107, 18), // "deviceInfoReceived" +QT_MOC_LITERAL(11, 126, 12), // "manufacturer" +QT_MOC_LITERAL(12, 139, 5) // "model" + + }, + "SerialReader\0noteOnReceived\0\0data\0" + "velocity\0noteOffReceived\0error\0message\0" + "connectionStatusChanged\0connected\0" + "deviceInfoReceived\0manufacturer\0model" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SerialReader[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 5, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 2, 39, 2, 0x06 /* Public */, + 5, 1, 44, 2, 0x06 /* Public */, + 6, 1, 47, 2, 0x06 /* Public */, + 8, 1, 50, 2, 0x06 /* Public */, + 10, 2, 53, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, QMetaType::Bool, 9, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 11, 12, + + 0 // eod +}; + +void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->noteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->noteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->error((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->connectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: _t->deviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SerialReader::*)(const QString & , int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOnReceived)) { + *result = 0; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOffReceived)) { + *result = 1; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::error)) { + *result = 2; + return; + } + } + { + using _t = void (SerialReader::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::connectionStatusChanged)) { + *result = 3; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & , const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::deviceInfoReceived)) { + *result = 4; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SerialReader::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SerialReader.data, + qt_meta_data_SerialReader, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SerialReader::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SerialReader::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0)) + return static_cast(this); + return QThread::qt_metacast(_clname); +} + +int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QThread::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} + +// SIGNAL 0 +void SerialReader::noteOnReceived(const QString & _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SerialReader::noteOffReceived(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void SerialReader::error(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void SerialReader::connectionStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} + +// SIGNAL 4 +void SerialReader::deviceInfoReceived(const QString & _t1, const QString & _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 4, _a); +} +struct qt_meta_stringdata_Yamitracker_t { + QByteArrayData data[51]; + char stringdata0[896]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_Yamitracker_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = { + { +QT_MOC_LITERAL(0, 0, 11), // "Yamitracker" +QT_MOC_LITERAL(1, 12, 13), // "onPlayClicked" +QT_MOC_LITERAL(2, 26, 0), // "" +QT_MOC_LITERAL(3, 27, 14), // "onPauseClicked" +QT_MOC_LITERAL(4, 42, 13), // "onStopClicked" +QT_MOC_LITERAL(5, 56, 22), // "onSaveRecordingClicked" +QT_MOC_LITERAL(6, 79, 21), // "onConvertToBrrClicked" +QT_MOC_LITERAL(7, 101, 22), // "onSaveMusicFileClicked" +QT_MOC_LITERAL(8, 124, 23), // "onRefreshDevicesClicked" +QT_MOC_LITERAL(9, 148, 21), // "onLoadMidiFileClicked" +QT_MOC_LITERAL(10, 170, 21), // "onPlayMidiFileClicked" +QT_MOC_LITERAL(11, 192, 20), // "onRecordFromMidiFile" +QT_MOC_LITERAL(12, 213, 25), // "onSelectedMidiFileChanged" +QT_MOC_LITERAL(13, 239, 25), // "onSelectFileForConversion" +QT_MOC_LITERAL(14, 265, 23), // "onSelectFileForPlayback" +QT_MOC_LITERAL(15, 289, 16), // "onNoteOnReceived" +QT_MOC_LITERAL(16, 306, 4), // "data" +QT_MOC_LITERAL(17, 311, 8), // "velocity" +QT_MOC_LITERAL(18, 320, 17), // "onNoteOffReceived" +QT_MOC_LITERAL(19, 338, 25), // "onConnectionStatusChanged" +QT_MOC_LITERAL(20, 364, 9), // "connected" +QT_MOC_LITERAL(21, 374, 7), // "onError" +QT_MOC_LITERAL(22, 382, 7), // "message" +QT_MOC_LITERAL(23, 390, 20), // "onDeviceInfoReceived" +QT_MOC_LITERAL(24, 411, 12), // "manufacturer" +QT_MOC_LITERAL(25, 424, 5), // "model" +QT_MOC_LITERAL(26, 430, 21), // "onCurrentTrackChanged" +QT_MOC_LITERAL(27, 452, 5), // "index" +QT_MOC_LITERAL(28, 458, 17), // "onAddTrackClicked" +QT_MOC_LITERAL(29, 476, 20), // "onRemoveTrackClicked" +QT_MOC_LITERAL(30, 497, 19), // "onClearTrackClicked" +QT_MOC_LITERAL(31, 517, 18), // "onCopyTrackClicked" +QT_MOC_LITERAL(32, 536, 20), // "onMergeTracksClicked" +QT_MOC_LITERAL(33, 557, 23), // "onLoadWavToTrackClicked" +QT_MOC_LITERAL(34, 581, 18), // "onPlayTrackClicked" +QT_MOC_LITERAL(35, 600, 22), // "onPlayAllTracksClicked" +QT_MOC_LITERAL(36, 623, 21), // "onStopPlaybackClicked" +QT_MOC_LITERAL(37, 645, 18), // "onPlaybackFinished" +QT_MOC_LITERAL(38, 664, 18), // "onMuteTrackClicked" +QT_MOC_LITERAL(39, 683, 18), // "onSoloTrackClicked" +QT_MOC_LITERAL(40, 702, 20), // "onTrackVolumeChanged" +QT_MOC_LITERAL(41, 723, 5), // "value" +QT_MOC_LITERAL(42, 729, 18), // "onTrackNameChanged" +QT_MOC_LITERAL(43, 748, 24), // "onTrackInstrumentChanged" +QT_MOC_LITERAL(44, 773, 22), // "onPlaybackSpeedChanged" +QT_MOC_LITERAL(45, 796, 19), // "onBassVolumeChanged" +QT_MOC_LITERAL(46, 816, 16), // "attemptReconnect" +QT_MOC_LITERAL(47, 833, 23), // "handleAudioStateChanged" +QT_MOC_LITERAL(48, 857, 13), // "QAudio::State" +QT_MOC_LITERAL(49, 871, 5), // "state" +QT_MOC_LITERAL(50, 877, 18) // "clearStatusMessage" + + }, + "Yamitracker\0onPlayClicked\0\0onPauseClicked\0" + "onStopClicked\0onSaveRecordingClicked\0" + "onConvertToBrrClicked\0onSaveMusicFileClicked\0" + "onRefreshDevicesClicked\0onLoadMidiFileClicked\0" + "onPlayMidiFileClicked\0onRecordFromMidiFile\0" + "onSelectedMidiFileChanged\0" + "onSelectFileForConversion\0" + "onSelectFileForPlayback\0onNoteOnReceived\0" + "data\0velocity\0onNoteOffReceived\0" + "onConnectionStatusChanged\0connected\0" + "onError\0message\0onDeviceInfoReceived\0" + "manufacturer\0model\0onCurrentTrackChanged\0" + "index\0onAddTrackClicked\0onRemoveTrackClicked\0" + "onClearTrackClicked\0onCopyTrackClicked\0" + "onMergeTracksClicked\0onLoadWavToTrackClicked\0" + "onPlayTrackClicked\0onPlayAllTracksClicked\0" + "onStopPlaybackClicked\0onPlaybackFinished\0" + "onMuteTrackClicked\0onSoloTrackClicked\0" + "onTrackVolumeChanged\0value\0" + "onTrackNameChanged\0onTrackInstrumentChanged\0" + "onPlaybackSpeedChanged\0onBassVolumeChanged\0" + "attemptReconnect\0handleAudioStateChanged\0" + "QAudio::State\0state\0clearStatusMessage" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_Yamitracker[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 39, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 0, 209, 2, 0x08 /* Private */, + 3, 0, 210, 2, 0x08 /* Private */, + 4, 0, 211, 2, 0x08 /* Private */, + 5, 0, 212, 2, 0x08 /* Private */, + 6, 0, 213, 2, 0x08 /* Private */, + 7, 0, 214, 2, 0x08 /* Private */, + 8, 0, 215, 2, 0x08 /* Private */, + 9, 0, 216, 2, 0x08 /* Private */, + 10, 0, 217, 2, 0x08 /* Private */, + 11, 0, 218, 2, 0x08 /* Private */, + 12, 0, 219, 2, 0x08 /* Private */, + 13, 0, 220, 2, 0x08 /* Private */, + 14, 0, 221, 2, 0x08 /* Private */, + 15, 2, 222, 2, 0x08 /* Private */, + 18, 1, 227, 2, 0x08 /* Private */, + 19, 1, 230, 2, 0x08 /* Private */, + 21, 1, 233, 2, 0x08 /* Private */, + 23, 2, 236, 2, 0x08 /* Private */, + 26, 1, 241, 2, 0x08 /* Private */, + 28, 0, 244, 2, 0x08 /* Private */, + 29, 0, 245, 2, 0x08 /* Private */, + 30, 0, 246, 2, 0x08 /* Private */, + 31, 0, 247, 2, 0x08 /* Private */, + 32, 0, 248, 2, 0x08 /* Private */, + 33, 0, 249, 2, 0x08 /* Private */, + 34, 0, 250, 2, 0x08 /* Private */, + 35, 0, 251, 2, 0x08 /* Private */, + 36, 0, 252, 2, 0x08 /* Private */, + 37, 0, 253, 2, 0x08 /* Private */, + 38, 0, 254, 2, 0x08 /* Private */, + 39, 0, 255, 2, 0x08 /* Private */, + 40, 1, 256, 2, 0x08 /* Private */, + 42, 0, 259, 2, 0x08 /* Private */, + 43, 1, 260, 2, 0x08 /* Private */, + 44, 1, 263, 2, 0x08 /* Private */, + 45, 1, 266, 2, 0x08 /* Private */, + 46, 0, 269, 2, 0x08 /* Private */, + 47, 1, 270, 2, 0x08 /* Private */, + 50, 0, 273, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::QString, QMetaType::Int, 16, 17, + QMetaType::Void, QMetaType::QString, 16, + QMetaType::Void, QMetaType::Bool, 20, + QMetaType::Void, QMetaType::QString, 22, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 24, 25, + QMetaType::Void, QMetaType::Int, 27, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 41, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 27, + QMetaType::Void, QMetaType::Int, 41, + QMetaType::Void, QMetaType::Int, 41, + QMetaType::Void, + QMetaType::Void, 0x80000000 | 48, 49, + QMetaType::Void, + + 0 // eod +}; + +void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onPlayClicked(); break; + case 1: _t->onPauseClicked(); break; + case 2: _t->onStopClicked(); break; + case 3: _t->onSaveRecordingClicked(); break; + case 4: _t->onConvertToBrrClicked(); break; + case 5: _t->onSaveMusicFileClicked(); break; + case 6: _t->onRefreshDevicesClicked(); break; + case 7: _t->onLoadMidiFileClicked(); break; + case 8: _t->onPlayMidiFileClicked(); break; + case 9: _t->onRecordFromMidiFile(); break; + case 10: _t->onSelectedMidiFileChanged(); break; + case 11: _t->onSelectFileForConversion(); break; + case 12: _t->onSelectFileForPlayback(); break; + case 13: _t->onNoteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 14: _t->onNoteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 15: _t->onConnectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 16: _t->onError((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 17: _t->onDeviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + case 18: _t->onCurrentTrackChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 19: _t->onAddTrackClicked(); break; + case 20: _t->onRemoveTrackClicked(); break; + case 21: _t->onClearTrackClicked(); break; + case 22: _t->onCopyTrackClicked(); break; + case 23: _t->onMergeTracksClicked(); break; + case 24: _t->onLoadWavToTrackClicked(); break; + case 25: _t->onPlayTrackClicked(); break; + case 26: _t->onPlayAllTracksClicked(); break; + case 27: _t->onStopPlaybackClicked(); break; + case 28: _t->onPlaybackFinished(); break; + case 29: _t->onMuteTrackClicked(); break; + case 30: _t->onSoloTrackClicked(); break; + case 31: _t->onTrackVolumeChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 32: _t->onTrackNameChanged(); break; + case 33: _t->onTrackInstrumentChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 34: _t->onPlaybackSpeedChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 35: _t->onBassVolumeChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 36: _t->attemptReconnect(); break; + case 37: _t->handleAudioStateChanged((*reinterpret_cast< QAudio::State(*)>(_a[1]))); break; + case 38: _t->clearStatusMessage(); break; + default: ; + } + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + switch (_id) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 37: + switch (*reinterpret_cast(_a[1])) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 0: + *reinterpret_cast(_a[0]) = qRegisterMetaType< QAudio::State >(); break; + } + break; + } + } +} + +QT_INIT_METAOBJECT const QMetaObject Yamitracker::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_Yamitracker.data, + qt_meta_data_Yamitracker, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *Yamitracker::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *Yamitracker::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 39) + qt_static_metacall(this, _c, _id, _a); + _id -= 39; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 39) + qt_static_metacall(this, _c, _id, _a); + _id -= 39; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_yamitracker.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_yamitracker.o new file mode 100644 index 0000000..ed24d47 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_yamitracker.o differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/music_20251217_102436.s b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/music_20251217_102436.s new file mode 100644 index 0000000..2aba0bd --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/music_20251217_102436.s @@ -0,0 +1,137 @@ +; Generated by Yamitracker +; Date: 2025-12-17 10:24:38 +; Tracks: 2 + +music_inst_table: + INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2 + INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2 + +pently_patterns: + .addr PPDAT_track0 + .addr PPDAT_track1 + +PPDAT_track0: + .byt D_D2 + .byt N_C|D_D4 + .byt N_C|D_D16 + .byt D_2 + .byt N_D|D_D16 + .byt N_D|D_D4 + .byt N_E|D_D16 + .byt N_E|D_D4 + .byt N_F|D_D16 + .byt N_F|D_D4 + .byt N_G|D_D2 + .byt N_G|D_D16 + .byt D_D4 + .byt N_A|D_D16 + .byt N_A|D_D4 + .byt N_B|D_D16 + .byt N_B|D_D4 + .byt N_CH|D_D16 + .byt N_CH|D_D4 + .byt D_D4 + .byt N_CH|D_D16 + .byt N_CH|D_D8 + .byt N_B|D_D16 + .byt N_B|D_D4 + .byt N_A|D_D16 + .byt N_A|D_D2 + .byt D_4 + .byt N_G|D_D16 + .byt N_G|D_D2 + .byt N_F|D_D16 + .byt N_F|D_2 + .byt D_D4 + .byt N_F|D_D16 + .byt N_F|D_D4 + .byt N_E|D_D16 + .byt N_E|D_D4 + .byt N_D|D_D16 + .byt N_D|D_D4 + .byt N_C|D_D16 + .byt N_C|D_D4 + .byt PATEND + +PPDAT_track1: + .byt D_2 + .byt N_DSH|D_D16 + .byt N_DSH|D_D8 + .byt N_CSH|D_D16 + .byt N_CSH|D_D8 + .byt N_FS|D_D8 + .byt N_FS|D_D16 + .byt D_D4 + .byt N_AS|D_D16 + .byt N_AS|D_D8 + .byt N_FSH|D_D16 + .byt N_FSH|D_D16 + .byt D_D4 + .byt N_FSH|D_D16 + .byt N_FSH|D_D8 + .byt N_AS|D_D16 + .byt N_AS|D_D8 + .byt D_D4 + .byt N_DSH|D_D16 + .byt N_DSH|D_D8 + .byt N_CSH|D_D16 + .byt N_CSH|D_D8 + .byt D_2 + .byt N_FS|D_D16 + .byt N_FS|D_D8 + .byt D_D8 + .byt N_AS|D_D16 + .byt N_AS|D_D8 + .byt N_FSH|D_D16 + .byt N_FSH|D_D16 + .byt D_D8 + .byt N_FSH|D_D8 + .byt N_FSH|D_D16 + .byt N_AS|D_D8 + .byt N_AS|D_D16 + .byt D_D4 + .byt N_DSH|D_D16 + .byt N_DSH|D_D8 + .byt N_CSH|D_D16 + .byt N_CSH|D_D8 + .byt N_FS|D_D16 + .byt N_FS|D_D8 + .byt D_D8 + .byt N_FSH|D_D16 + .byt N_FSH|D_D8 + .byt N_AS|D_D16 + .byt N_AS|D_D8 + .byt D_D8 + .byt N_DS|D_D4 + .byt N_DS|D_D16 + .byt D_D8 + .byt N_FSH|D_D16 + .byt N_FSH|D_D8 + .byt N_AS|D_D16 + .byt N_AS|D_D8 + .byt D_D8 + .byt N_CS|D_D16 + .byt N_CS|D_D4 + .byt D_D4 + .byt N_AS|D_D16 + .byt N_AS|D_D8 + .byt N_FH|D_D16 + .byt N_FH|D_D8 + .byt D_D8 + .byt N_FH|D_D16 + .byt N_FH|D_D8 + .byt N_AS|D_D16 + .byt N_AS|D_D16 + .byt PATEND + +pently_songs: + .addr PSDAT_main_song + +PSDAT_main_song: + setTempo 1000 + playPat 0, 0, 23, PLING_8 + playPat 1, 1, 23, PLING_8 + waitRows 19320 + stopPat 0 + stopPat 1 + dalSegno diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102051.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102051.wav new file mode 100644 index 0000000..21dc0bd Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102051.wav differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102218.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102218.wav new file mode 100644 index 0000000..96888a4 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102218.wav differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102347.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102347.wav new file mode 100644 index 0000000..39758e6 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102347.wav differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/simplewavwriter.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/simplewavwriter.o new file mode 100644 index 0000000..1478c0f Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/simplewavwriter.o differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/ui_yamitracker.h b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/ui_yamitracker.h new file mode 100644 index 0000000..3c73051 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/ui_yamitracker.h @@ -0,0 +1,930 @@ +/******************************************************************************** +** Form generated from reading UI file 'yamitracker.ui' +** +** Created by: Qt User Interface Compiler version 5.15.13 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_YAMITRACKER_H +#define UI_YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Yamitracker +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QHBoxLayout *horizontalLayout; + QLabel *statusLabel; + QSpacerItem *horizontalSpacer; + QLabel *deviceLabel; + QHBoxLayout *horizontalLayout_2; + QLabel *keysInfoLabel; + QProgressBar *volumeBar; + QGroupBox *groupBox; + QHBoxLayout *horizontalLayout_3; + QPushButton *playButton; + QPushButton *pauseButton; + QPushButton *stopButton; + QPushButton *saveRecordingButton; + QPushButton *convertButton; + QPushButton *saveMusicButton; + QGroupBox *groupBox_4; + QHBoxLayout *horizontalLayout_7; + QPushButton *playTrackButton; + QPushButton *playAllButton; + QPushButton *stopPlaybackButton; + QSpacerItem *horizontalSpacer_13; + QPushButton *loadWavButton; + QGroupBox *groupBox_3; + QHBoxLayout *horizontalLayout_6; + QLabel *label_3; + QComboBox *trackComboBox; + QPushButton *addTrackButton; + QPushButton *removeTrackButton; + QPushButton *clearTrackButton; + QPushButton *copyTrackButton; + QPushButton *mergeTrackButton; + QSpacerItem *horizontalSpacer_12; + QLabel *trackInfoLabel; + QScrollArea *scrollArea; + QWidget *scrollAreaWidgetContents; + QVBoxLayout *verticalLayout_4; + QLabel *label_4; + QGroupBox *groupBox_2; + QVBoxLayout *verticalLayout_3; + QHBoxLayout *horizontalLayout_4; + QLabel *label; + QComboBox *instrumentComboBox; + QSpacerItem *horizontalSpacer_20; + QLabel *speedLabel; + QSlider *playbackSpeedSlider; + QLabel *volumeLabel; + QSlider *bassVolumeSlider; + QPushButton *refreshDevicesButton; + QHBoxLayout *horizontalLayout_5; + QPushButton *loadMidiButton; + QPushButton *playMidiButton; + QPushButton *recordFromMidiButton; + QPushButton *selectFileButton; + QPushButton *playFileButton; + QLabel *label_2; + QListWidget *midiFilesList; + QWidget *pianoWidget; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *whiteKeysLayout; + QPushButton *key_C1; + QPushButton *key_D1; + QPushButton *key_E1; + QPushButton *key_F1; + QPushButton *key_G1; + QPushButton *key_A1; + QPushButton *key_B1; + QPushButton *key_C2; + QPushButton *key_D2; + QPushButton *key_E2; + QPushButton *key_F2; + QPushButton *key_G2; + QPushButton *key_A2; + QPushButton *key_B2; + QPushButton *key_C3; + QPushButton *key_D3; + QPushButton *key_E3; + QPushButton *key_F3; + QPushButton *key_G3; + QPushButton *key_A3; + QPushButton *key_B3; + QPushButton *key_C4; + QPushButton *key_D4; + QPushButton *key_E4; + QPushButton *key_F4; + QPushButton *key_G4; + QPushButton *key_A4; + QPushButton *key_B4; + QPushButton *key_C5; + QPushButton *key_D5; + QPushButton *key_E5; + QPushButton *key_F5; + QPushButton *key_G5; + QPushButton *key_A5; + QPushButton *key_B5; + QPushButton *key_C6; + QHBoxLayout *blackKeysLayout; + QSpacerItem *horizontalSpacer_1; + QPushButton *key_Cs1; + QPushButton *key_Ds1; + QSpacerItem *horizontalSpacer_22; + QPushButton *key_Fs1; + QPushButton *key_Gs1; + QPushButton *key_As1; + QSpacerItem *horizontalSpacer_3; + QPushButton *key_Cs2; + QPushButton *key_Ds2; + QSpacerItem *horizontalSpacer_4; + QPushButton *key_Fs2; + QPushButton *key_Gs2; + QPushButton *key_As2; + QSpacerItem *horizontalSpacer_5; + QPushButton *key_Cs3; + QPushButton *key_Ds3; + QSpacerItem *horizontalSpacer_6; + QPushButton *key_Fs3; + QPushButton *key_Gs3; + QPushButton *key_As3; + QSpacerItem *horizontalSpacer_7; + QPushButton *key_Cs4; + QPushButton *key_Ds4; + QSpacerItem *horizontalSpacer_8; + QPushButton *key_Fs4; + QPushButton *key_Gs4; + QPushButton *key_As4; + QSpacerItem *horizontalSpacer_9; + QPushButton *key_Cs5; + QPushButton *key_Ds5; + QSpacerItem *horizontalSpacer_10; + QPushButton *key_Fs5; + QPushButton *key_Gs5; + QPushButton *key_As5; + QSpacerItem *horizontalSpacer_11; + + void setupUi(QMainWindow *Yamitracker) + { + if (Yamitracker->objectName().isEmpty()) + Yamitracker->setObjectName(QString::fromUtf8("Yamitracker")); + Yamitracker->resize(1400, 1000); + centralwidget = new QWidget(Yamitracker); + centralwidget->setObjectName(QString::fromUtf8("centralwidget")); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + statusLabel = new QLabel(centralwidget); + statusLabel->setObjectName(QString::fromUtf8("statusLabel")); + + horizontalLayout->addWidget(statusLabel); + + horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout->addItem(horizontalSpacer); + + deviceLabel = new QLabel(centralwidget); + deviceLabel->setObjectName(QString::fromUtf8("deviceLabel")); + + horizontalLayout->addWidget(deviceLabel); + + + verticalLayout->addLayout(horizontalLayout); + + horizontalLayout_2 = new QHBoxLayout(); + horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2")); + keysInfoLabel = new QLabel(centralwidget); + keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel")); + + horizontalLayout_2->addWidget(keysInfoLabel); + + volumeBar = new QProgressBar(centralwidget); + volumeBar->setObjectName(QString::fromUtf8("volumeBar")); + volumeBar->setValue(0); + + horizontalLayout_2->addWidget(volumeBar); + + + verticalLayout->addLayout(horizontalLayout_2); + + groupBox = new QGroupBox(centralwidget); + groupBox->setObjectName(QString::fromUtf8("groupBox")); + horizontalLayout_3 = new QHBoxLayout(groupBox); + horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3")); + playButton = new QPushButton(groupBox); + playButton->setObjectName(QString::fromUtf8("playButton")); + + horizontalLayout_3->addWidget(playButton); + + pauseButton = new QPushButton(groupBox); + pauseButton->setObjectName(QString::fromUtf8("pauseButton")); + pauseButton->setEnabled(false); + + horizontalLayout_3->addWidget(pauseButton); + + stopButton = new QPushButton(groupBox); + stopButton->setObjectName(QString::fromUtf8("stopButton")); + + horizontalLayout_3->addWidget(stopButton); + + saveRecordingButton = new QPushButton(groupBox); + saveRecordingButton->setObjectName(QString::fromUtf8("saveRecordingButton")); + + horizontalLayout_3->addWidget(saveRecordingButton); + + convertButton = new QPushButton(groupBox); + convertButton->setObjectName(QString::fromUtf8("convertButton")); + + horizontalLayout_3->addWidget(convertButton); + + saveMusicButton = new QPushButton(groupBox); + saveMusicButton->setObjectName(QString::fromUtf8("saveMusicButton")); + + horizontalLayout_3->addWidget(saveMusicButton); + + + verticalLayout->addWidget(groupBox); + + groupBox_4 = new QGroupBox(centralwidget); + groupBox_4->setObjectName(QString::fromUtf8("groupBox_4")); + horizontalLayout_7 = new QHBoxLayout(groupBox_4); + horizontalLayout_7->setObjectName(QString::fromUtf8("horizontalLayout_7")); + playTrackButton = new QPushButton(groupBox_4); + playTrackButton->setObjectName(QString::fromUtf8("playTrackButton")); + + horizontalLayout_7->addWidget(playTrackButton); + + playAllButton = new QPushButton(groupBox_4); + playAllButton->setObjectName(QString::fromUtf8("playAllButton")); + + horizontalLayout_7->addWidget(playAllButton); + + stopPlaybackButton = new QPushButton(groupBox_4); + stopPlaybackButton->setObjectName(QString::fromUtf8("stopPlaybackButton")); + + horizontalLayout_7->addWidget(stopPlaybackButton); + + horizontalSpacer_13 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_7->addItem(horizontalSpacer_13); + + loadWavButton = new QPushButton(groupBox_4); + loadWavButton->setObjectName(QString::fromUtf8("loadWavButton")); + + horizontalLayout_7->addWidget(loadWavButton); + + + verticalLayout->addWidget(groupBox_4); + + groupBox_3 = new QGroupBox(centralwidget); + groupBox_3->setObjectName(QString::fromUtf8("groupBox_3")); + horizontalLayout_6 = new QHBoxLayout(groupBox_3); + horizontalLayout_6->setObjectName(QString::fromUtf8("horizontalLayout_6")); + label_3 = new QLabel(groupBox_3); + label_3->setObjectName(QString::fromUtf8("label_3")); + + horizontalLayout_6->addWidget(label_3); + + trackComboBox = new QComboBox(groupBox_3); + trackComboBox->setObjectName(QString::fromUtf8("trackComboBox")); + + horizontalLayout_6->addWidget(trackComboBox); + + addTrackButton = new QPushButton(groupBox_3); + addTrackButton->setObjectName(QString::fromUtf8("addTrackButton")); + + horizontalLayout_6->addWidget(addTrackButton); + + removeTrackButton = new QPushButton(groupBox_3); + removeTrackButton->setObjectName(QString::fromUtf8("removeTrackButton")); + + horizontalLayout_6->addWidget(removeTrackButton); + + clearTrackButton = new QPushButton(groupBox_3); + clearTrackButton->setObjectName(QString::fromUtf8("clearTrackButton")); + + horizontalLayout_6->addWidget(clearTrackButton); + + copyTrackButton = new QPushButton(groupBox_3); + copyTrackButton->setObjectName(QString::fromUtf8("copyTrackButton")); + + horizontalLayout_6->addWidget(copyTrackButton); + + mergeTrackButton = new QPushButton(groupBox_3); + mergeTrackButton->setObjectName(QString::fromUtf8("mergeTrackButton")); + + horizontalLayout_6->addWidget(mergeTrackButton); + + horizontalSpacer_12 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_6->addItem(horizontalSpacer_12); + + trackInfoLabel = new QLabel(groupBox_3); + trackInfoLabel->setObjectName(QString::fromUtf8("trackInfoLabel")); + + horizontalLayout_6->addWidget(trackInfoLabel); + + + verticalLayout->addWidget(groupBox_3); + + scrollArea = new QScrollArea(centralwidget); + scrollArea->setObjectName(QString::fromUtf8("scrollArea")); + scrollArea->setWidgetResizable(true); + scrollAreaWidgetContents = new QWidget(); + scrollAreaWidgetContents->setObjectName(QString::fromUtf8("scrollAreaWidgetContents")); + scrollAreaWidgetContents->setGeometry(QRect(0, 0, 1380, 300)); + verticalLayout_4 = new QVBoxLayout(scrollAreaWidgetContents); + verticalLayout_4->setObjectName(QString::fromUtf8("verticalLayout_4")); + label_4 = new QLabel(scrollAreaWidgetContents); + label_4->setObjectName(QString::fromUtf8("label_4")); + + verticalLayout_4->addWidget(label_4); + + scrollArea->setWidget(scrollAreaWidgetContents); + + verticalLayout->addWidget(scrollArea); + + groupBox_2 = new QGroupBox(centralwidget); + groupBox_2->setObjectName(QString::fromUtf8("groupBox_2")); + verticalLayout_3 = new QVBoxLayout(groupBox_2); + verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3")); + horizontalLayout_4 = new QHBoxLayout(); + horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4")); + label = new QLabel(groupBox_2); + label->setObjectName(QString::fromUtf8("label")); + + horizontalLayout_4->addWidget(label); + + instrumentComboBox = new QComboBox(groupBox_2); + instrumentComboBox->setObjectName(QString::fromUtf8("instrumentComboBox")); + + horizontalLayout_4->addWidget(instrumentComboBox); + + horizontalSpacer_20 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_4->addItem(horizontalSpacer_20); + + speedLabel = new QLabel(groupBox_2); + speedLabel->setObjectName(QString::fromUtf8("speedLabel")); + + horizontalLayout_4->addWidget(speedLabel); + + playbackSpeedSlider = new QSlider(groupBox_2); + playbackSpeedSlider->setObjectName(QString::fromUtf8("playbackSpeedSlider")); + playbackSpeedSlider->setOrientation(Qt::Horizontal); + playbackSpeedSlider->setMinimum(50); + playbackSpeedSlider->setMaximum(200); + playbackSpeedSlider->setValue(100); + + horizontalLayout_4->addWidget(playbackSpeedSlider); + + volumeLabel = new QLabel(groupBox_2); + volumeLabel->setObjectName(QString::fromUtf8("volumeLabel")); + + horizontalLayout_4->addWidget(volumeLabel); + + bassVolumeSlider = new QSlider(groupBox_2); + bassVolumeSlider->setObjectName(QString::fromUtf8("bassVolumeSlider")); + bassVolumeSlider->setOrientation(Qt::Horizontal); + bassVolumeSlider->setMinimum(100); + bassVolumeSlider->setMaximum(400); + bassVolumeSlider->setValue(200); + + horizontalLayout_4->addWidget(bassVolumeSlider); + + refreshDevicesButton = new QPushButton(groupBox_2); + refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton")); + + horizontalLayout_4->addWidget(refreshDevicesButton); + + + verticalLayout_3->addLayout(horizontalLayout_4); + + horizontalLayout_5 = new QHBoxLayout(); + horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5")); + loadMidiButton = new QPushButton(groupBox_2); + loadMidiButton->setObjectName(QString::fromUtf8("loadMidiButton")); + + horizontalLayout_5->addWidget(loadMidiButton); + + playMidiButton = new QPushButton(groupBox_2); + playMidiButton->setObjectName(QString::fromUtf8("playMidiButton")); + + horizontalLayout_5->addWidget(playMidiButton); + + recordFromMidiButton = new QPushButton(groupBox_2); + recordFromMidiButton->setObjectName(QString::fromUtf8("recordFromMidiButton")); + + horizontalLayout_5->addWidget(recordFromMidiButton); + + selectFileButton = new QPushButton(groupBox_2); + selectFileButton->setObjectName(QString::fromUtf8("selectFileButton")); + + horizontalLayout_5->addWidget(selectFileButton); + + playFileButton = new QPushButton(groupBox_2); + playFileButton->setObjectName(QString::fromUtf8("playFileButton")); + + horizontalLayout_5->addWidget(playFileButton); + + + verticalLayout_3->addLayout(horizontalLayout_5); + + label_2 = new QLabel(groupBox_2); + label_2->setObjectName(QString::fromUtf8("label_2")); + + verticalLayout_3->addWidget(label_2); + + midiFilesList = new QListWidget(groupBox_2); + midiFilesList->setObjectName(QString::fromUtf8("midiFilesList")); + + verticalLayout_3->addWidget(midiFilesList); + + + verticalLayout->addWidget(groupBox_2); + + pianoWidget = new QWidget(centralwidget); + pianoWidget->setObjectName(QString::fromUtf8("pianoWidget")); + verticalLayout_2 = new QVBoxLayout(pianoWidget); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + whiteKeysLayout = new QHBoxLayout(); + whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout")); + key_C1 = new QPushButton(pianoWidget); + key_C1->setObjectName(QString::fromUtf8("key_C1")); + + whiteKeysLayout->addWidget(key_C1); + + key_D1 = new QPushButton(pianoWidget); + key_D1->setObjectName(QString::fromUtf8("key_D1")); + + whiteKeysLayout->addWidget(key_D1); + + key_E1 = new QPushButton(pianoWidget); + key_E1->setObjectName(QString::fromUtf8("key_E1")); + + whiteKeysLayout->addWidget(key_E1); + + key_F1 = new QPushButton(pianoWidget); + key_F1->setObjectName(QString::fromUtf8("key_F1")); + + whiteKeysLayout->addWidget(key_F1); + + key_G1 = new QPushButton(pianoWidget); + key_G1->setObjectName(QString::fromUtf8("key_G1")); + + whiteKeysLayout->addWidget(key_G1); + + key_A1 = new QPushButton(pianoWidget); + key_A1->setObjectName(QString::fromUtf8("key_A1")); + + whiteKeysLayout->addWidget(key_A1); + + key_B1 = new QPushButton(pianoWidget); + key_B1->setObjectName(QString::fromUtf8("key_B1")); + + whiteKeysLayout->addWidget(key_B1); + + key_C2 = new QPushButton(pianoWidget); + key_C2->setObjectName(QString::fromUtf8("key_C2")); + + whiteKeysLayout->addWidget(key_C2); + + key_D2 = new QPushButton(pianoWidget); + key_D2->setObjectName(QString::fromUtf8("key_D2")); + + whiteKeysLayout->addWidget(key_D2); + + key_E2 = new QPushButton(pianoWidget); + key_E2->setObjectName(QString::fromUtf8("key_E2")); + + whiteKeysLayout->addWidget(key_E2); + + key_F2 = new QPushButton(pianoWidget); + key_F2->setObjectName(QString::fromUtf8("key_F2")); + + whiteKeysLayout->addWidget(key_F2); + + key_G2 = new QPushButton(pianoWidget); + key_G2->setObjectName(QString::fromUtf8("key_G2")); + + whiteKeysLayout->addWidget(key_G2); + + key_A2 = new QPushButton(pianoWidget); + key_A2->setObjectName(QString::fromUtf8("key_A2")); + + whiteKeysLayout->addWidget(key_A2); + + key_B2 = new QPushButton(pianoWidget); + key_B2->setObjectName(QString::fromUtf8("key_B2")); + + whiteKeysLayout->addWidget(key_B2); + + key_C3 = new QPushButton(pianoWidget); + key_C3->setObjectName(QString::fromUtf8("key_C3")); + + whiteKeysLayout->addWidget(key_C3); + + key_D3 = new QPushButton(pianoWidget); + key_D3->setObjectName(QString::fromUtf8("key_D3")); + + whiteKeysLayout->addWidget(key_D3); + + key_E3 = new QPushButton(pianoWidget); + key_E3->setObjectName(QString::fromUtf8("key_E3")); + + whiteKeysLayout->addWidget(key_E3); + + key_F3 = new QPushButton(pianoWidget); + key_F3->setObjectName(QString::fromUtf8("key_F3")); + + whiteKeysLayout->addWidget(key_F3); + + key_G3 = new QPushButton(pianoWidget); + key_G3->setObjectName(QString::fromUtf8("key_G3")); + + whiteKeysLayout->addWidget(key_G3); + + key_A3 = new QPushButton(pianoWidget); + key_A3->setObjectName(QString::fromUtf8("key_A3")); + + whiteKeysLayout->addWidget(key_A3); + + key_B3 = new QPushButton(pianoWidget); + key_B3->setObjectName(QString::fromUtf8("key_B3")); + + whiteKeysLayout->addWidget(key_B3); + + key_C4 = new QPushButton(pianoWidget); + key_C4->setObjectName(QString::fromUtf8("key_C4")); + + whiteKeysLayout->addWidget(key_C4); + + key_D4 = new QPushButton(pianoWidget); + key_D4->setObjectName(QString::fromUtf8("key_D4")); + + whiteKeysLayout->addWidget(key_D4); + + key_E4 = new QPushButton(pianoWidget); + key_E4->setObjectName(QString::fromUtf8("key_E4")); + + whiteKeysLayout->addWidget(key_E4); + + key_F4 = new QPushButton(pianoWidget); + key_F4->setObjectName(QString::fromUtf8("key_F4")); + + whiteKeysLayout->addWidget(key_F4); + + key_G4 = new QPushButton(pianoWidget); + key_G4->setObjectName(QString::fromUtf8("key_G4")); + + whiteKeysLayout->addWidget(key_G4); + + key_A4 = new QPushButton(pianoWidget); + key_A4->setObjectName(QString::fromUtf8("key_A4")); + + whiteKeysLayout->addWidget(key_A4); + + key_B4 = new QPushButton(pianoWidget); + key_B4->setObjectName(QString::fromUtf8("key_B4")); + + whiteKeysLayout->addWidget(key_B4); + + key_C5 = new QPushButton(pianoWidget); + key_C5->setObjectName(QString::fromUtf8("key_C5")); + + whiteKeysLayout->addWidget(key_C5); + + key_D5 = new QPushButton(pianoWidget); + key_D5->setObjectName(QString::fromUtf8("key_D5")); + + whiteKeysLayout->addWidget(key_D5); + + key_E5 = new QPushButton(pianoWidget); + key_E5->setObjectName(QString::fromUtf8("key_E5")); + + whiteKeysLayout->addWidget(key_E5); + + key_F5 = new QPushButton(pianoWidget); + key_F5->setObjectName(QString::fromUtf8("key_F5")); + + whiteKeysLayout->addWidget(key_F5); + + key_G5 = new QPushButton(pianoWidget); + key_G5->setObjectName(QString::fromUtf8("key_G5")); + + whiteKeysLayout->addWidget(key_G5); + + key_A5 = new QPushButton(pianoWidget); + key_A5->setObjectName(QString::fromUtf8("key_A5")); + + whiteKeysLayout->addWidget(key_A5); + + key_B5 = new QPushButton(pianoWidget); + key_B5->setObjectName(QString::fromUtf8("key_B5")); + + whiteKeysLayout->addWidget(key_B5); + + key_C6 = new QPushButton(pianoWidget); + key_C6->setObjectName(QString::fromUtf8("key_C6")); + + whiteKeysLayout->addWidget(key_C6); + + + verticalLayout_2->addLayout(whiteKeysLayout); + + blackKeysLayout = new QHBoxLayout(); + blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout")); + horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_1); + + key_Cs1 = new QPushButton(pianoWidget); + key_Cs1->setObjectName(QString::fromUtf8("key_Cs1")); + + blackKeysLayout->addWidget(key_Cs1); + + key_Ds1 = new QPushButton(pianoWidget); + key_Ds1->setObjectName(QString::fromUtf8("key_Ds1")); + + blackKeysLayout->addWidget(key_Ds1); + + horizontalSpacer_22 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_22); + + key_Fs1 = new QPushButton(pianoWidget); + key_Fs1->setObjectName(QString::fromUtf8("key_Fs1")); + + blackKeysLayout->addWidget(key_Fs1); + + key_Gs1 = new QPushButton(pianoWidget); + key_Gs1->setObjectName(QString::fromUtf8("key_Gs1")); + + blackKeysLayout->addWidget(key_Gs1); + + key_As1 = new QPushButton(pianoWidget); + key_As1->setObjectName(QString::fromUtf8("key_As1")); + + blackKeysLayout->addWidget(key_As1); + + horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_3); + + key_Cs2 = new QPushButton(pianoWidget); + key_Cs2->setObjectName(QString::fromUtf8("key_Cs2")); + + blackKeysLayout->addWidget(key_Cs2); + + key_Ds2 = new QPushButton(pianoWidget); + key_Ds2->setObjectName(QString::fromUtf8("key_Ds2")); + + blackKeysLayout->addWidget(key_Ds2); + + horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_4); + + key_Fs2 = new QPushButton(pianoWidget); + key_Fs2->setObjectName(QString::fromUtf8("key_Fs2")); + + blackKeysLayout->addWidget(key_Fs2); + + key_Gs2 = new QPushButton(pianoWidget); + key_Gs2->setObjectName(QString::fromUtf8("key_Gs2")); + + blackKeysLayout->addWidget(key_Gs2); + + key_As2 = new QPushButton(pianoWidget); + key_As2->setObjectName(QString::fromUtf8("key_As2")); + + blackKeysLayout->addWidget(key_As2); + + horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_5); + + key_Cs3 = new QPushButton(pianoWidget); + key_Cs3->setObjectName(QString::fromUtf8("key_Cs3")); + + blackKeysLayout->addWidget(key_Cs3); + + key_Ds3 = new QPushButton(pianoWidget); + key_Ds3->setObjectName(QString::fromUtf8("key_Ds3")); + + blackKeysLayout->addWidget(key_Ds3); + + horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_6); + + key_Fs3 = new QPushButton(pianoWidget); + key_Fs3->setObjectName(QString::fromUtf8("key_Fs3")); + + blackKeysLayout->addWidget(key_Fs3); + + key_Gs3 = new QPushButton(pianoWidget); + key_Gs3->setObjectName(QString::fromUtf8("key_Gs3")); + + blackKeysLayout->addWidget(key_Gs3); + + key_As3 = new QPushButton(pianoWidget); + key_As3->setObjectName(QString::fromUtf8("key_As3")); + + blackKeysLayout->addWidget(key_As3); + + horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_7); + + key_Cs4 = new QPushButton(pianoWidget); + key_Cs4->setObjectName(QString::fromUtf8("key_Cs4")); + + blackKeysLayout->addWidget(key_Cs4); + + key_Ds4 = new QPushButton(pianoWidget); + key_Ds4->setObjectName(QString::fromUtf8("key_Ds4")); + + blackKeysLayout->addWidget(key_Ds4); + + horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_8); + + key_Fs4 = new QPushButton(pianoWidget); + key_Fs4->setObjectName(QString::fromUtf8("key_Fs4")); + + blackKeysLayout->addWidget(key_Fs4); + + key_Gs4 = new QPushButton(pianoWidget); + key_Gs4->setObjectName(QString::fromUtf8("key_Gs4")); + + blackKeysLayout->addWidget(key_Gs4); + + key_As4 = new QPushButton(pianoWidget); + key_As4->setObjectName(QString::fromUtf8("key_As4")); + + blackKeysLayout->addWidget(key_As4); + + horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_9); + + key_Cs5 = new QPushButton(pianoWidget); + key_Cs5->setObjectName(QString::fromUtf8("key_Cs5")); + + blackKeysLayout->addWidget(key_Cs5); + + key_Ds5 = new QPushButton(pianoWidget); + key_Ds5->setObjectName(QString::fromUtf8("key_Ds5")); + + blackKeysLayout->addWidget(key_Ds5); + + horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_10); + + key_Fs5 = new QPushButton(pianoWidget); + key_Fs5->setObjectName(QString::fromUtf8("key_Fs5")); + + blackKeysLayout->addWidget(key_Fs5); + + key_Gs5 = new QPushButton(pianoWidget); + key_Gs5->setObjectName(QString::fromUtf8("key_Gs5")); + + blackKeysLayout->addWidget(key_Gs5); + + key_As5 = new QPushButton(pianoWidget); + key_As5->setObjectName(QString::fromUtf8("key_As5")); + + blackKeysLayout->addWidget(key_As5); + + horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_11); + + + verticalLayout_2->addLayout(blackKeysLayout); + + + verticalLayout->addWidget(pianoWidget); + + Yamitracker->setCentralWidget(centralwidget); + + retranslateUi(Yamitracker); + + QMetaObject::connectSlotsByName(Yamitracker); + } // setupUi + + void retranslateUi(QMainWindow *Yamitracker) + { + Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor - Multitrack Recording", nullptr)); + statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr)); + deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr)); + keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr)); + groupBox->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\267\320\260\320\277\320\270\321\201\321\214\321\216", nullptr)); + playButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\227\320\260\320\277\320\270\321\201\321\214 \321\201 \321\201\320\270\320\275\321\202\320\265\320\267\320\260\321\202\320\276\321\200\320\260", nullptr)); + pauseButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\270 \320\237\320\260\321\203\320\267\320\260", nullptr)); + stopButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\271 \320\241\321\202\320\276\320\277", nullptr)); + saveRecordingButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\222\276 \320\241\320\276\321\205\321\200\320\260\320\275\320\270\321\202\321\214 \320\267\320\260\320\277\320\270\321\201\321\214", nullptr)); + convertButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\204 \320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr)); + saveMusicButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\216\265 \320\241\320\276\321\205\321\200\320\260\320\275\320\270\321\202\321\214 \320\274\321\203\320\267\321\213\320\272\321\203 (Pently)", nullptr)); + groupBox_4->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\262\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\274", nullptr)); + playTrackButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\242\320\265\320\272\321\203\321\211\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260", nullptr)); + playAllButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266\342\226\266 \320\222\321\201\320\265 \320\264\320\276\321\200\320\276\320\266\320\272\320\270", nullptr)); + stopPlaybackButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\271 \320\241\321\202\320\276\320\277 \320\262\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\320\264\320\265\320\275\320\270\320\265", nullptr)); + loadWavButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\202 \320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214 WAV \320\262 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + groupBox_3->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\264\320\276\321\200\320\276\320\266\320\272\320\260\320\274\320\270", nullptr)); + label_3->setText(QCoreApplication::translate("Yamitracker", "\320\242\320\265\320\272\321\203\321\211\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260:", nullptr)); + addTrackButton->setText(QCoreApplication::translate("Yamitracker", "\342\236\225 \320\235\320\276\320\262\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260", nullptr)); + removeTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\227\221 \320\243\320\264\320\260\320\273\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + clearTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\227\221 \320\236\321\207\320\270\321\201\321\202\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + copyTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\213 \320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + mergeTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\200 \320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\320\270", nullptr)); + trackInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\224\320\276\321\200\320\276\320\266\320\272\320\260 1: 0 \320\275\320\276\321\202", nullptr)); + label_4->setText(QCoreApplication::translate("Yamitracker", "\320\237\320\260\320\275\320\265\320\273\321\214 \321\203\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260\320\274\320\270:", nullptr)); + groupBox_2->setTitle(QCoreApplication::translate("Yamitracker", "\320\240\320\260\320\261\320\276\321\202\320\260 \321\201 MIDI \321\204\320\260\320\271\320\273\320\260\320\274\320\270", nullptr)); + label->setText(QCoreApplication::translate("Yamitracker", "\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202:", nullptr)); + speedLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\320\272\320\276\321\200\320\276\321\201\321\202\321\214: 100%", nullptr)); + volumeLabel->setText(QCoreApplication::translate("Yamitracker", "\320\221\320\260\321\201: 200%", nullptr)); + refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\203 \320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr)); + loadMidiButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\202 \320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214 MIDI \321\204\320\260\320\271\320\273", nullptr)); + playMidiButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\222\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\321\201\321\202\320\270 MIDI", nullptr)); + recordFromMidiButton->setText(QCoreApplication::translate("Yamitracker", "\342\227\217 \320\227\320\260\320\277\320\270\321\201\320\260\321\202\321\214 \320\270\320\267 MIDI", nullptr)); + selectFileButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\201 \320\222\321\213\320\261\321\200\320\260\321\202\321\214 \321\204\320\260\320\271\320\273 \320\264\320\273\321\217 \320\272\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\320\270", nullptr)); + playFileButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\222\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\321\201\321\202\320\270 WAV", nullptr)); + label_2->setText(QCoreApplication::translate("Yamitracker", "\320\224\320\276\321\201\321\202\321\203\320\277\320\275\321\213\320\265 MIDI \321\204\320\260\320\271\320\273\321\213:", nullptr)); + key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr)); + key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr)); + key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr)); + key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr)); + key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr)); + key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr)); + key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr)); + key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr)); + key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr)); + key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr)); + key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr)); + key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr)); + key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr)); + key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr)); + key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr)); + key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr)); + key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr)); + key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr)); + key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr)); + key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr)); + key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr)); + key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr)); + key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr)); + key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr)); + key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr)); + key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr)); + key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr)); + key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr)); + key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr)); + key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr)); + key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr)); + key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr)); + key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr)); + key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr)); + key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr)); + key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr)); + key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr)); + key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr)); + key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr)); + key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr)); + key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr)); + key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr)); + key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr)); + key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr)); + key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr)); + key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr)); + key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr)); + key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr)); + key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr)); + key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr)); + key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr)); + key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr)); + key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr)); + key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr)); + key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr)); + key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr)); + key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr)); + key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr)); + key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr)); + key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr)); + key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class Yamitracker: public Ui_Yamitracker {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_YAMITRACKER_H diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/yamitracker.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/yamitracker.o new file mode 100644 index 0000000..5b084d9 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/yamitracker.o differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/.qmake.stash b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/Makefile b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/Makefile new file mode 100644 index 0000000..d726afa --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/Makefile @@ -0,0 +1,442 @@ +############################################################################# +# Makefile for building: Yamitracker +# Generated by qmake (3.1) (Qt 5.15.13) +# Project: ../Yamitracker.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Yamitracker1.0.0 +DISTDIR = /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/.tmp/Yamitracker1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp moc_yamitracker.cpp \ + moc_brrconverter.cpp +OBJECTS = main.o \ + yamitracker.o \ + simplewavwriter.o \ + brrconverter.o \ + moc_yamitracker.o \ + moc_brrconverter.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../Yamitracker.pro ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp +QMAKE_TARGET = Yamitracker +DESTDIR = +TARGET = Yamitracker + + +first: all +####### Build rules + +Yamitracker: ui_yamitracker.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../Yamitracker.pro + $(QMAKE) -o Makefile ../Yamitracker.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../Yamitracker.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../Yamitracker.pro + +qmake_all: FORCE + + +all: Makefile Yamitracker + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.h ../simplewavwriter.h ../brrconverter.h $(DISTDIR)/ + $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplewavwriter.cpp ../brrconverter.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_yamitracker.cpp moc_brrconverter.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_yamitracker.cpp moc_brrconverter.cpp +moc_yamitracker.cpp: ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp + +moc_brrconverter.cpp: ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../brrconverter.h -o moc_brrconverter.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_yamitracker.h +compiler_uic_clean: + -$(DEL_FILE) ui_yamitracker.h +ui_yamitracker.h: ../yamitracker.ui \ + /usr/lib/qt5/bin/uic + /usr/lib/qt5/bin/uic ../yamitracker.ui -o ui_yamitracker.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: ../main.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp + +yamitracker.o: ../yamitracker.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + ui_yamitracker.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp + +simplewavwriter.o: ../simplewavwriter.cpp ../simplewavwriter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplewavwriter.o ../simplewavwriter.cpp + +brrconverter.o: ../brrconverter.cpp ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o brrconverter.o ../brrconverter.cpp + +moc_yamitracker.o: moc_yamitracker.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp + +moc_brrconverter.o: moc_brrconverter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_brrconverter.o moc_brrconverter.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin + $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/Yamitracker b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/Yamitracker new file mode 100644 index 0000000..984eec7 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/Yamitracker differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/brrconverter.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/brrconverter.o new file mode 100644 index 0000000..149ec06 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/brrconverter.o differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/main.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/main.o new file mode 100644 index 0000000..edc2e30 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/main.o differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_brrconverter.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_brrconverter.cpp new file mode 100644 index 0000000..a11b9fc --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_brrconverter.cpp @@ -0,0 +1,95 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'brrconverter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../brrconverter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'brrconverter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_BrrConverter_t { + QByteArrayData data[1]; + char stringdata0[13]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_BrrConverter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_BrrConverter_t qt_meta_stringdata_BrrConverter = { + { +QT_MOC_LITERAL(0, 0, 12) // "BrrConverter" + + }, + "BrrConverter" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_BrrConverter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void BrrConverter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject BrrConverter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_BrrConverter.data, + qt_meta_data_BrrConverter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *BrrConverter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *BrrConverter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_BrrConverter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int BrrConverter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_brrconverter.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_brrconverter.o new file mode 100644 index 0000000..fa3b784 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_brrconverter.o differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_predefs.h b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_predefs.h new file mode 100644 index 0000000..f29ad61 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_predefs.h @@ -0,0 +1,464 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __cpp_nontype_template_parameter_auto 201606L +#define __UINT_LEAST16_MAX__ 0xffff +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __ATOMIC_ACQUIRE 2 +#define __FLT128_MAX_10_EXP__ 4932 +#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __cpp_aggregate_nsdmi 201304L +#define __UINT_LEAST8_TYPE__ unsigned char +#define __SIZEOF_FLOAT80__ 16 +#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 0xff +#define __SCHAR_WIDTH__ 8 +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 201411L +#define __BFLT16_MIN_10_EXP__ (-37) +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __WCHAR_MAX__ 0x7fffffff +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __cpp_binary_literals 201304L +#define __FLT64_DECIMAL_DIG__ 17 +#define __CET__ 3 +#define __cpp_noexcept_function_type 201510L +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __cpp_variadic_templates 200704L +#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __cpp_variable_templates 201304L +#define __FLT32X_MAX_EXP__ 1024 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __FLT32_HAS_DENORM__ 1 +#define __UINT_FAST8_MAX__ 0xff +#define __cpp_rvalue_reference 200610L +#define __cpp_nested_namespace_definitions 201411L +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __LDBL_HAS_INFINITY__ 1 +#define __INT_LEAST8_WIDTH__ 8 +#define __cpp_variadic_using 201611L +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL +#define __INT_LEAST8_MAX__ 0x7f +#define __cpp_attributes 200809L +#define __cpp_capture_star_this 201603L +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __FLT64X_MAX_10_EXP__ 4932 +#define __cpp_if_constexpr 201606L +#define __BFLT16_MAX_10_EXP__ 38 +#define __BFLT16_MAX_EXP__ 128 +#define __LDBL_IS_IEC_60559__ 1 +#define __FLT64X_HAS_QUIET_NAN__ 1 +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +#define __UINTMAX_TYPE__ long unsigned int +#define __cpp_nsdmi 200809L +#define __BFLT16_DECIMAL_DIG__ 4 +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __OPTIMIZE__ 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +#define __FLT128_MIN_EXP__ (-16381) +#define __WINT_MIN__ 0U +#define __FLT128_MIN_10_EXP__ (-4931) +#define __FLT32X_IS_IEC_60559__ 1 +#define __INT_LEAST16_WIDTH__ 16 +#define __SCHAR_MAX__ 0x7f +#define __FLT128_MANT_DIG__ 113 +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __INT64_C(c) c ## L +#define __SSP_STRONG__ 3 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __ATOMIC_SEQ_CST 5 +#define _FORTIFY_SOURCE 3 +#define __unix 1 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MANT_DIG__ 53 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __cpp_aligned_new 201606L +#define __FLT32_MAX_10_EXP__ 38 +#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +#define __STDC_HOSTED__ 1 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype_auto 201304L +#define __DBL_DIG__ 15 +#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __FLT32_IS_IEC_60559__ 1 +#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +#define __DBL_IS_IEC_60559__ 1 +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806L +#define __cpp_enumerator_attributes 201411L +#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +#define __FLT32X_HAS_INFINITY__ 1 +#define __unix__ 1 +#define __INT_WIDTH__ 32 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __DECIMAL_DIG__ 21 +#define __STDC_IEC_559_COMPLEX__ 1 +#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +#define __gnu_linux__ 1 +#define __INT16_MAX__ 0x7fff +#define __FLT64_MIN_EXP__ (-1021) +#define __FLT64X_MIN_10_EXP__ (-4931) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __cpp_return_type_deduction 201304L +#define __FLT16_MIN_EXP__ (-13) +#define __FLT64_MANT_DIG__ 53 +#define __FLT64X_MANT_DIG__ 64 +#define __BFLT16_DIG__ 2 +#define __GNUC__ 13 +#define __GXX_RTTI 1 +#define __pie__ 2 +#define __MMX__ 1 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __BIGGEST_ALIGNMENT__ 16 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __BFLT16_IS_IEC_60559__ 0 +#define __FLT16_MAX_10_EXP__ 4 +#define __cpp_delegating_constructors 200604L +#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __cpp_raw_strings 200710L +#define __INT_FAST32_MAX__ 0x7fffffffffffffffL +#define __DBL_HAS_INFINITY__ 1 +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __SIZEOF_FLOAT__ 4 +#define __HAVE_SPECULATION_SAFE_VALUE 1 +#define __cpp_fold_expressions 201603L +#define __DEC32_MIN_EXP__ (-94) +#define __INTPTR_WIDTH__ 64 +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ long int +#define __MMX_WITH_SSE__ 1 +#define __LDBL_HAS_DENORM__ 1 +#define __SEG_GS 1 +#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +#define __cplusplus 201703L +#define __cpp_ref_qualifiers 200710L +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610L +#define __DBL_MAX_EXP__ 1024 +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __FLT16_DECIMAL_DIG__ 5 +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 0x7fffffffffffffffL +#define __amd64 1 +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __GNUG__ 13 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 8 +#define __BFLT16_HAS_INFINITY__ 1 +#define __FLT64X_MIN_EXP__ (-16381) +#define __SIZEOF_WINT_T__ 4 +#define __FLT32X_DIG__ 15 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806L +#define __FLT32_MAX_EXP__ 128 +#define __cpp_hex_float 201603L +#define __GXX_ABI_VERSION 1018 +#define __FLT_MIN_EXP__ (-125) +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __x86_64 1 +#define __cpp_lambdas 200907L +#define __INT_FAST64_TYPE__ long int +#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +#define __cpp_template_auto 201606L +#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __SIZEOF_POINTER__ 8 +#define __SIZE_TYPE__ long unsigned int +#define __LP64__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +#define __LDBL_MAX_EXP__ 16384 +#define __DECIMAL_BID_FORMAT__ 1 +#define __FLT64_MIN_10_EXP__ (-307) +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT64X_DECIMAL_DIG__ 21 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __FLT128_HAS_INFINITY__ 1 +#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __FLT_DIG__ 6 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 21 +#define __VERSION__ "13.3.0" +#define __UINT64_C(c) c ## UL +#define __cpp_unicode_characters 201411L +#define _STDC_PREDEF_H 1 +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT128_MAX_EXP__ 16384 +#define __FLT32_MANT_DIG__ 24 +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT32X_MIN_EXP__ (-1021) +#define __STDC_IEC_60559_COMPLEX__ 201404L +#define __cpp_aggregate_bases 201603L +#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +#define __FLT128_HAS_DENORM__ 1 +#define __FLT32_DECIMAL_DIG__ 9 +#define __FLT128_DIG__ 33 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __DEC128_MAX_EXP__ 6145 +#define unix 1 +#define __DBL_HAS_DENORM__ 1 +#define __cpp_rtti 199711L +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __FLT_IS_IEC_60559__ 1 +#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +#define __FLT64X_DIG__ 18 +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309L +#define __ELF__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __UINT32_TYPE__ unsigned int +#define __BFLT16_HAS_QUIET_NAN__ 1 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +#define __UINTMAX_C(c) c ## UL +#define __FLT16_DIG__ 3 +#define __k8 1 +#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __cpp_constexpr 201603L +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +#define __STDC_IEC_60559_BFP__ 201404L +#define __SIZEOF_PTRDIFF_T__ 8 +#define __FLT64X_HAS_INFINITY__ 1 +#define __SIZEOF_LONG__ 8 +#define __LDBL_DIG__ 18 +#define __FLT64_IS_IEC_60559__ 1 +#define __x86_64__ 1 +#define __FLT16_IS_IEC_60559__ 1 +#define __FLT16_MAX_EXP__ 16 +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __INT_FAST16_MAX__ 0x7fffffffffffffffL +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __LONG_MAX__ 0x7fffffffffffffffL +#define __FLT64X_HAS_DENORM__ 1 +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" +#define __cpp_unicode_literals 200710L +#define __UINT_FAST16_TYPE__ long unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __INT_FAST32_WIDTH__ 64 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __SIZE_WIDTH__ 64 +#define __SEG_FS 1 +#define __INT_LEAST16_MAX__ 0x7fff +#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __DEC64_MANT_DIG__ 16 +#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +#define __cpp_structured_bindings 201606L +#define __SIZEOF_INT__ 4 +#define __DEC32_MAX_EXP__ 97 +#define __INT_FAST8_MAX__ 0x7f +#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __INTPTR_MAX__ 0x7fffffffffffffffL +#define __cpp_sized_deallocation 201309L +#define __cpp_guaranteed_copy_elision 201606L +#define linux 1 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __EXCEPTIONS 1 +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 64 +#define __LDBL_MANT_DIG__ 64 +#define __cpp_range_based_for 201603L +#define __INT_FAST16_WIDTH__ 64 +#define __FLT64_HAS_INFINITY__ 1 +#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __FLT16_HAS_INFINITY__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __cpp_nontype_template_args 201411L +#define __DEC32_MANT_DIG__ 7 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __pic__ 2 +#define __UINTPTR_MAX__ 0xffffffffffffffffUL +#define __INT_FAST64_WIDTH__ 64 +#define __cpp_decltype 200707L +#define __INT_FAST64_MAX__ 0x7fffffffffffffffL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +#define __FLT32_HAS_INFINITY__ 1 +#define __FLT64X_MAX_EXP__ 16384 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __cpp_inline_variables 201606L +#define __BFLT16_MIN_EXP__ (-125) +#define __INT_MAX__ 0x7fffffff +#define __linux__ 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __cpp_inheriting_constructors 201511L +#define __SIZEOF_FLOAT128__ 16 +#define __BFLT16_MANT_DIG__ 8 +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __amd64__ 1 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST64_WIDTH__ 64 +#define __FLT32X_MAX_10_EXP__ 308 +#define __cpp_namespace_attributes 201411L +#define __SIZEOF_INT128__ 16 +#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +#define __FLT64X_IS_IEC_60559__ 1 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +#define __INT_LEAST32_TYPE__ int +#define _LP64 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __SIZEOF_WCHAR_T__ 4 +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __FLT128_HAS_QUIET_NAN__ 1 +#define __INTMAX_MAX__ 0x7fffffffffffffffL +#define __INT_FAST8_TYPE__ signed char +#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +#define __STDCPP_THREADS__ 1 +#define __BFLT16_HAS_DENORM__ 1 +#define __GNUC_STDC_INLINE__ 1 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +#define __FLT16_HAS_DENORM__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __FXSR__ 1 +#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __INTMAX_WIDTH__ 64 +#define __cpp_runtime_arrays 198712L +#define __FLT32_DIG__ 6 +#define __UINT64_TYPE__ long unsigned int +#define __UINT32_C(c) c ## U +#define __cpp_alias_templates 200704L +#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +#define __FLT128_IS_IEC_60559__ 1 +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 64 +#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +#define __PIC__ 2 +#define __INT32_MAX__ 0x7fffffff +#define __UINT_FAST32_TYPE__ long unsigned int +#define __FLT16_MANT_DIG__ 11 +#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F +#define __SSE2__ 1 +#define __cpp_deduction_guides 201703L +#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711L +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long int +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 3 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __UINTMAX_MAX__ 0xffffffffffffffffUL +#define __PIE__ 2 +#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +#define __cpp_template_template_args 201611L +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +#define __INT16_C(c) c +#define __STDC__ 1 +#define __PTRDIFF_TYPE__ long int +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __cpp_generic_lambdas 201304L +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809L +#define __FLT128_DECIMAL_DIG__ 36 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL +#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __SIZE_MAX__ 0xffffffffffffffffUL +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __cpp_init_captures 201304L +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_yamitracker.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_yamitracker.cpp new file mode 100644 index 0000000..868459e --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_yamitracker.cpp @@ -0,0 +1,360 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'yamitracker.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../yamitracker.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'yamitracker.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SerialReader_t { + QByteArrayData data[13]; + char stringdata0[145]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SerialReader_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = { + { +QT_MOC_LITERAL(0, 0, 12), // "SerialReader" +QT_MOC_LITERAL(1, 13, 14), // "noteOnReceived" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 4), // "note" +QT_MOC_LITERAL(4, 34, 8), // "velocity" +QT_MOC_LITERAL(5, 43, 15), // "noteOffReceived" +QT_MOC_LITERAL(6, 59, 5), // "error" +QT_MOC_LITERAL(7, 65, 7), // "message" +QT_MOC_LITERAL(8, 73, 23), // "connectionStatusChanged" +QT_MOC_LITERAL(9, 97, 9), // "connected" +QT_MOC_LITERAL(10, 107, 18), // "deviceInfoReceived" +QT_MOC_LITERAL(11, 126, 12), // "manufacturer" +QT_MOC_LITERAL(12, 139, 5) // "model" + + }, + "SerialReader\0noteOnReceived\0\0note\0" + "velocity\0noteOffReceived\0error\0message\0" + "connectionStatusChanged\0connected\0" + "deviceInfoReceived\0manufacturer\0model" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SerialReader[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 5, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 2, 39, 2, 0x06 /* Public */, + 5, 1, 44, 2, 0x06 /* Public */, + 6, 1, 47, 2, 0x06 /* Public */, + 8, 1, 50, 2, 0x06 /* Public */, + 10, 2, 53, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, QMetaType::Bool, 9, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 11, 12, + + 0 // eod +}; + +void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->noteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->noteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->error((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->connectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: _t->deviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SerialReader::*)(const QString & , int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOnReceived)) { + *result = 0; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOffReceived)) { + *result = 1; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::error)) { + *result = 2; + return; + } + } + { + using _t = void (SerialReader::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::connectionStatusChanged)) { + *result = 3; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & , const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::deviceInfoReceived)) { + *result = 4; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SerialReader::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SerialReader.data, + qt_meta_data_SerialReader, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SerialReader::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SerialReader::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0)) + return static_cast(this); + return QThread::qt_metacast(_clname); +} + +int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QThread::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} + +// SIGNAL 0 +void SerialReader::noteOnReceived(const QString & _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SerialReader::noteOffReceived(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void SerialReader::error(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void SerialReader::connectionStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} + +// SIGNAL 4 +void SerialReader::deviceInfoReceived(const QString & _t1, const QString & _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 4, _a); +} +struct qt_meta_stringdata_Yamitracker_t { + QByteArrayData data[19]; + char stringdata0[264]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_Yamitracker_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = { + { +QT_MOC_LITERAL(0, 0, 11), // "Yamitracker" +QT_MOC_LITERAL(1, 12, 16), // "onNoteOnReceived" +QT_MOC_LITERAL(2, 29, 0), // "" +QT_MOC_LITERAL(3, 30, 4), // "note" +QT_MOC_LITERAL(4, 35, 8), // "velocity" +QT_MOC_LITERAL(5, 44, 17), // "onNoteOffReceived" +QT_MOC_LITERAL(6, 62, 7), // "onError" +QT_MOC_LITERAL(7, 70, 7), // "message" +QT_MOC_LITERAL(8, 78, 13), // "onPlayClicked" +QT_MOC_LITERAL(9, 92, 13), // "onStopClicked" +QT_MOC_LITERAL(10, 106, 21), // "onConvertToBrrClicked" +QT_MOC_LITERAL(11, 128, 18), // "clearStatusMessage" +QT_MOC_LITERAL(12, 147, 25), // "onConnectionStatusChanged" +QT_MOC_LITERAL(13, 173, 9), // "connected" +QT_MOC_LITERAL(14, 183, 16), // "attemptReconnect" +QT_MOC_LITERAL(15, 200, 20), // "onDeviceInfoReceived" +QT_MOC_LITERAL(16, 221, 12), // "manufacturer" +QT_MOC_LITERAL(17, 234, 5), // "model" +QT_MOC_LITERAL(18, 240, 23) // "onRefreshDevicesClicked" + + }, + "Yamitracker\0onNoteOnReceived\0\0note\0" + "velocity\0onNoteOffReceived\0onError\0" + "message\0onPlayClicked\0onStopClicked\0" + "onConvertToBrrClicked\0clearStatusMessage\0" + "onConnectionStatusChanged\0connected\0" + "attemptReconnect\0onDeviceInfoReceived\0" + "manufacturer\0model\0onRefreshDevicesClicked" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_Yamitracker[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 11, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 2, 69, 2, 0x08 /* Private */, + 5, 1, 74, 2, 0x08 /* Private */, + 6, 1, 77, 2, 0x08 /* Private */, + 8, 0, 80, 2, 0x08 /* Private */, + 9, 0, 81, 2, 0x08 /* Private */, + 10, 0, 82, 2, 0x08 /* Private */, + 11, 0, 83, 2, 0x08 /* Private */, + 12, 1, 84, 2, 0x08 /* Private */, + 14, 0, 87, 2, 0x08 /* Private */, + 15, 2, 88, 2, 0x08 /* Private */, + 18, 0, 93, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Bool, 13, + QMetaType::Void, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 16, 17, + QMetaType::Void, + + 0 // eod +}; + +void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onNoteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->onNoteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->onError((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->onPlayClicked(); break; + case 4: _t->onStopClicked(); break; + case 5: _t->onConvertToBrrClicked(); break; + case 6: _t->clearStatusMessage(); break; + case 7: _t->onConnectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 8: _t->attemptReconnect(); break; + case 9: _t->onDeviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + case 10: _t->onRefreshDevicesClicked(); break; + default: ; + } + } +} + +QT_INIT_METAOBJECT const QMetaObject Yamitracker::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_Yamitracker.data, + qt_meta_data_Yamitracker, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *Yamitracker::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *Yamitracker::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 11) + qt_static_metacall(this, _c, _id, _a); + _id -= 11; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 11) + *reinterpret_cast(_a[0]) = -1; + _id -= 11; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_yamitracker.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_yamitracker.o new file mode 100644 index 0000000..94c6f3d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_yamitracker.o differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130314.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130314.wav new file mode 100644 index 0000000..3e8acba Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130314.wav differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130330.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130330.wav new file mode 100644 index 0000000..9d43abb Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130330.wav differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130335.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130335.wav new file mode 100644 index 0000000..f7ef2a0 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130335.wav differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130350.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130350.wav new file mode 100644 index 0000000..2ec0a92 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130350.wav differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133027.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133027.wav new file mode 100644 index 0000000..7f87b07 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133027.wav differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133032.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133032.wav new file mode 100644 index 0000000..fde0bfe Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133032.wav differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133042.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133042.wav new file mode 100644 index 0000000..1097ef8 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133042.wav differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133048.brr b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133048.brr new file mode 100644 index 0000000..a475539 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133048.brr differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133048.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133048.wav new file mode 100644 index 0000000..c296e1b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133048.wav differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133558.brr b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133558.brr new file mode 100644 index 0000000..940aec5 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133558.brr differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133558.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133558.wav new file mode 100644 index 0000000..512d392 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133558.wav differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/simplewavwriter.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/simplewavwriter.o new file mode 100644 index 0000000..46d7f52 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/simplewavwriter.o differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/ui_yamitracker.h b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/ui_yamitracker.h new file mode 100644 index 0000000..b1f1096 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/ui_yamitracker.h @@ -0,0 +1,625 @@ +/******************************************************************************** +** Form generated from reading UI file 'yamitracker.ui' +** +** Created by: Qt User Interface Compiler version 5.15.13 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_YAMITRACKER_H +#define UI_YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Yamitracker +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QLabel *statusLabel; + QLabel *deviceLabel; + QLabel *keysInfoLabel; + QProgressBar *volumeBar; + QHBoxLayout *controlLayout; + QPushButton *playButton; + QPushButton *stopButton; + QPushButton *convertButton; + QPushButton *refreshDevicesButton; + QWidget *pianoWidget; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *whiteKeysLayout; + QPushButton *key_C1; + QPushButton *key_D1; + QPushButton *key_E1; + QPushButton *key_F1; + QPushButton *key_G1; + QPushButton *key_A1; + QPushButton *key_B1; + QPushButton *key_C2; + QPushButton *key_D2; + QPushButton *key_E2; + QPushButton *key_F2; + QPushButton *key_G2; + QPushButton *key_A2; + QPushButton *key_B2; + QPushButton *key_C3; + QPushButton *key_D3; + QPushButton *key_E3; + QPushButton *key_F3; + QPushButton *key_G3; + QPushButton *key_A3; + QPushButton *key_B3; + QPushButton *key_C4; + QPushButton *key_D4; + QPushButton *key_E4; + QPushButton *key_F4; + QPushButton *key_G4; + QPushButton *key_A4; + QPushButton *key_B4; + QPushButton *key_C5; + QPushButton *key_D5; + QPushButton *key_E5; + QPushButton *key_F5; + QPushButton *key_G5; + QPushButton *key_A5; + QPushButton *key_B5; + QPushButton *key_C6; + QHBoxLayout *blackKeysLayout; + QSpacerItem *horizontalSpacer_1; + QPushButton *key_Cs1; + QPushButton *key_Ds1; + QSpacerItem *horizontalSpacer_2; + QPushButton *key_Fs1; + QPushButton *key_Gs1; + QPushButton *key_As1; + QSpacerItem *horizontalSpacer_3; + QPushButton *key_Cs2; + QPushButton *key_Ds2; + QSpacerItem *horizontalSpacer_4; + QPushButton *key_Fs2; + QPushButton *key_Gs2; + QPushButton *key_As2; + QSpacerItem *horizontalSpacer_5; + QPushButton *key_Cs3; + QPushButton *key_Ds3; + QSpacerItem *horizontalSpacer_6; + QPushButton *key_Fs3; + QPushButton *key_Gs3; + QPushButton *key_As3; + QSpacerItem *horizontalSpacer_7; + QPushButton *key_Cs4; + QPushButton *key_Ds4; + QSpacerItem *horizontalSpacer_8; + QPushButton *key_Fs4; + QPushButton *key_Gs4; + QPushButton *key_As4; + QSpacerItem *horizontalSpacer_9; + QPushButton *key_Cs5; + QPushButton *key_Ds5; + QSpacerItem *horizontalSpacer_10; + QPushButton *key_Fs5; + QPushButton *key_Gs5; + QPushButton *key_As5; + QSpacerItem *horizontalSpacer_11; + + void setupUi(QMainWindow *Yamitracker) + { + if (Yamitracker->objectName().isEmpty()) + Yamitracker->setObjectName(QString::fromUtf8("Yamitracker")); + Yamitracker->resize(1200, 600); + centralwidget = new QWidget(Yamitracker); + centralwidget->setObjectName(QString::fromUtf8("centralwidget")); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + statusLabel = new QLabel(centralwidget); + statusLabel->setObjectName(QString::fromUtf8("statusLabel")); + + verticalLayout->addWidget(statusLabel); + + deviceLabel = new QLabel(centralwidget); + deviceLabel->setObjectName(QString::fromUtf8("deviceLabel")); + + verticalLayout->addWidget(deviceLabel); + + keysInfoLabel = new QLabel(centralwidget); + keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel")); + + verticalLayout->addWidget(keysInfoLabel); + + volumeBar = new QProgressBar(centralwidget); + volumeBar->setObjectName(QString::fromUtf8("volumeBar")); + volumeBar->setValue(0); + + verticalLayout->addWidget(volumeBar); + + controlLayout = new QHBoxLayout(); + controlLayout->setObjectName(QString::fromUtf8("controlLayout")); + playButton = new QPushButton(centralwidget); + playButton->setObjectName(QString::fromUtf8("playButton")); + + controlLayout->addWidget(playButton); + + stopButton = new QPushButton(centralwidget); + stopButton->setObjectName(QString::fromUtf8("stopButton")); + + controlLayout->addWidget(stopButton); + + convertButton = new QPushButton(centralwidget); + convertButton->setObjectName(QString::fromUtf8("convertButton")); + + controlLayout->addWidget(convertButton); + + refreshDevicesButton = new QPushButton(centralwidget); + refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton")); + + controlLayout->addWidget(refreshDevicesButton); + + + verticalLayout->addLayout(controlLayout); + + pianoWidget = new QWidget(centralwidget); + pianoWidget->setObjectName(QString::fromUtf8("pianoWidget")); + verticalLayout_2 = new QVBoxLayout(pianoWidget); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + whiteKeysLayout = new QHBoxLayout(); + whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout")); + key_C1 = new QPushButton(pianoWidget); + key_C1->setObjectName(QString::fromUtf8("key_C1")); + + whiteKeysLayout->addWidget(key_C1); + + key_D1 = new QPushButton(pianoWidget); + key_D1->setObjectName(QString::fromUtf8("key_D1")); + + whiteKeysLayout->addWidget(key_D1); + + key_E1 = new QPushButton(pianoWidget); + key_E1->setObjectName(QString::fromUtf8("key_E1")); + + whiteKeysLayout->addWidget(key_E1); + + key_F1 = new QPushButton(pianoWidget); + key_F1->setObjectName(QString::fromUtf8("key_F1")); + + whiteKeysLayout->addWidget(key_F1); + + key_G1 = new QPushButton(pianoWidget); + key_G1->setObjectName(QString::fromUtf8("key_G1")); + + whiteKeysLayout->addWidget(key_G1); + + key_A1 = new QPushButton(pianoWidget); + key_A1->setObjectName(QString::fromUtf8("key_A1")); + + whiteKeysLayout->addWidget(key_A1); + + key_B1 = new QPushButton(pianoWidget); + key_B1->setObjectName(QString::fromUtf8("key_B1")); + + whiteKeysLayout->addWidget(key_B1); + + key_C2 = new QPushButton(pianoWidget); + key_C2->setObjectName(QString::fromUtf8("key_C2")); + + whiteKeysLayout->addWidget(key_C2); + + key_D2 = new QPushButton(pianoWidget); + key_D2->setObjectName(QString::fromUtf8("key_D2")); + + whiteKeysLayout->addWidget(key_D2); + + key_E2 = new QPushButton(pianoWidget); + key_E2->setObjectName(QString::fromUtf8("key_E2")); + + whiteKeysLayout->addWidget(key_E2); + + key_F2 = new QPushButton(pianoWidget); + key_F2->setObjectName(QString::fromUtf8("key_F2")); + + whiteKeysLayout->addWidget(key_F2); + + key_G2 = new QPushButton(pianoWidget); + key_G2->setObjectName(QString::fromUtf8("key_G2")); + + whiteKeysLayout->addWidget(key_G2); + + key_A2 = new QPushButton(pianoWidget); + key_A2->setObjectName(QString::fromUtf8("key_A2")); + + whiteKeysLayout->addWidget(key_A2); + + key_B2 = new QPushButton(pianoWidget); + key_B2->setObjectName(QString::fromUtf8("key_B2")); + + whiteKeysLayout->addWidget(key_B2); + + key_C3 = new QPushButton(pianoWidget); + key_C3->setObjectName(QString::fromUtf8("key_C3")); + + whiteKeysLayout->addWidget(key_C3); + + key_D3 = new QPushButton(pianoWidget); + key_D3->setObjectName(QString::fromUtf8("key_D3")); + + whiteKeysLayout->addWidget(key_D3); + + key_E3 = new QPushButton(pianoWidget); + key_E3->setObjectName(QString::fromUtf8("key_E3")); + + whiteKeysLayout->addWidget(key_E3); + + key_F3 = new QPushButton(pianoWidget); + key_F3->setObjectName(QString::fromUtf8("key_F3")); + + whiteKeysLayout->addWidget(key_F3); + + key_G3 = new QPushButton(pianoWidget); + key_G3->setObjectName(QString::fromUtf8("key_G3")); + + whiteKeysLayout->addWidget(key_G3); + + key_A3 = new QPushButton(pianoWidget); + key_A3->setObjectName(QString::fromUtf8("key_A3")); + + whiteKeysLayout->addWidget(key_A3); + + key_B3 = new QPushButton(pianoWidget); + key_B3->setObjectName(QString::fromUtf8("key_B3")); + + whiteKeysLayout->addWidget(key_B3); + + key_C4 = new QPushButton(pianoWidget); + key_C4->setObjectName(QString::fromUtf8("key_C4")); + + whiteKeysLayout->addWidget(key_C4); + + key_D4 = new QPushButton(pianoWidget); + key_D4->setObjectName(QString::fromUtf8("key_D4")); + + whiteKeysLayout->addWidget(key_D4); + + key_E4 = new QPushButton(pianoWidget); + key_E4->setObjectName(QString::fromUtf8("key_E4")); + + whiteKeysLayout->addWidget(key_E4); + + key_F4 = new QPushButton(pianoWidget); + key_F4->setObjectName(QString::fromUtf8("key_F4")); + + whiteKeysLayout->addWidget(key_F4); + + key_G4 = new QPushButton(pianoWidget); + key_G4->setObjectName(QString::fromUtf8("key_G4")); + + whiteKeysLayout->addWidget(key_G4); + + key_A4 = new QPushButton(pianoWidget); + key_A4->setObjectName(QString::fromUtf8("key_A4")); + + whiteKeysLayout->addWidget(key_A4); + + key_B4 = new QPushButton(pianoWidget); + key_B4->setObjectName(QString::fromUtf8("key_B4")); + + whiteKeysLayout->addWidget(key_B4); + + key_C5 = new QPushButton(pianoWidget); + key_C5->setObjectName(QString::fromUtf8("key_C5")); + + whiteKeysLayout->addWidget(key_C5); + + key_D5 = new QPushButton(pianoWidget); + key_D5->setObjectName(QString::fromUtf8("key_D5")); + + whiteKeysLayout->addWidget(key_D5); + + key_E5 = new QPushButton(pianoWidget); + key_E5->setObjectName(QString::fromUtf8("key_E5")); + + whiteKeysLayout->addWidget(key_E5); + + key_F5 = new QPushButton(pianoWidget); + key_F5->setObjectName(QString::fromUtf8("key_F5")); + + whiteKeysLayout->addWidget(key_F5); + + key_G5 = new QPushButton(pianoWidget); + key_G5->setObjectName(QString::fromUtf8("key_G5")); + + whiteKeysLayout->addWidget(key_G5); + + key_A5 = new QPushButton(pianoWidget); + key_A5->setObjectName(QString::fromUtf8("key_A5")); + + whiteKeysLayout->addWidget(key_A5); + + key_B5 = new QPushButton(pianoWidget); + key_B5->setObjectName(QString::fromUtf8("key_B5")); + + whiteKeysLayout->addWidget(key_B5); + + key_C6 = new QPushButton(pianoWidget); + key_C6->setObjectName(QString::fromUtf8("key_C6")); + + whiteKeysLayout->addWidget(key_C6); + + + verticalLayout_2->addLayout(whiteKeysLayout); + + blackKeysLayout = new QHBoxLayout(); + blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout")); + horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_1); + + key_Cs1 = new QPushButton(pianoWidget); + key_Cs1->setObjectName(QString::fromUtf8("key_Cs1")); + + blackKeysLayout->addWidget(key_Cs1); + + key_Ds1 = new QPushButton(pianoWidget); + key_Ds1->setObjectName(QString::fromUtf8("key_Ds1")); + + blackKeysLayout->addWidget(key_Ds1); + + horizontalSpacer_2 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_2); + + key_Fs1 = new QPushButton(pianoWidget); + key_Fs1->setObjectName(QString::fromUtf8("key_Fs1")); + + blackKeysLayout->addWidget(key_Fs1); + + key_Gs1 = new QPushButton(pianoWidget); + key_Gs1->setObjectName(QString::fromUtf8("key_Gs1")); + + blackKeysLayout->addWidget(key_Gs1); + + key_As1 = new QPushButton(pianoWidget); + key_As1->setObjectName(QString::fromUtf8("key_As1")); + + blackKeysLayout->addWidget(key_As1); + + horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_3); + + key_Cs2 = new QPushButton(pianoWidget); + key_Cs2->setObjectName(QString::fromUtf8("key_Cs2")); + + blackKeysLayout->addWidget(key_Cs2); + + key_Ds2 = new QPushButton(pianoWidget); + key_Ds2->setObjectName(QString::fromUtf8("key_Ds2")); + + blackKeysLayout->addWidget(key_Ds2); + + horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_4); + + key_Fs2 = new QPushButton(pianoWidget); + key_Fs2->setObjectName(QString::fromUtf8("key_Fs2")); + + blackKeysLayout->addWidget(key_Fs2); + + key_Gs2 = new QPushButton(pianoWidget); + key_Gs2->setObjectName(QString::fromUtf8("key_Gs2")); + + blackKeysLayout->addWidget(key_Gs2); + + key_As2 = new QPushButton(pianoWidget); + key_As2->setObjectName(QString::fromUtf8("key_As2")); + + blackKeysLayout->addWidget(key_As2); + + horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_5); + + key_Cs3 = new QPushButton(pianoWidget); + key_Cs3->setObjectName(QString::fromUtf8("key_Cs3")); + + blackKeysLayout->addWidget(key_Cs3); + + key_Ds3 = new QPushButton(pianoWidget); + key_Ds3->setObjectName(QString::fromUtf8("key_Ds3")); + + blackKeysLayout->addWidget(key_Ds3); + + horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_6); + + key_Fs3 = new QPushButton(pianoWidget); + key_Fs3->setObjectName(QString::fromUtf8("key_Fs3")); + + blackKeysLayout->addWidget(key_Fs3); + + key_Gs3 = new QPushButton(pianoWidget); + key_Gs3->setObjectName(QString::fromUtf8("key_Gs3")); + + blackKeysLayout->addWidget(key_Gs3); + + key_As3 = new QPushButton(pianoWidget); + key_As3->setObjectName(QString::fromUtf8("key_As3")); + + blackKeysLayout->addWidget(key_As3); + + horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_7); + + key_Cs4 = new QPushButton(pianoWidget); + key_Cs4->setObjectName(QString::fromUtf8("key_Cs4")); + + blackKeysLayout->addWidget(key_Cs4); + + key_Ds4 = new QPushButton(pianoWidget); + key_Ds4->setObjectName(QString::fromUtf8("key_Ds4")); + + blackKeysLayout->addWidget(key_Ds4); + + horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_8); + + key_Fs4 = new QPushButton(pianoWidget); + key_Fs4->setObjectName(QString::fromUtf8("key_Fs4")); + + blackKeysLayout->addWidget(key_Fs4); + + key_Gs4 = new QPushButton(pianoWidget); + key_Gs4->setObjectName(QString::fromUtf8("key_Gs4")); + + blackKeysLayout->addWidget(key_Gs4); + + key_As4 = new QPushButton(pianoWidget); + key_As4->setObjectName(QString::fromUtf8("key_As4")); + + blackKeysLayout->addWidget(key_As4); + + horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_9); + + key_Cs5 = new QPushButton(pianoWidget); + key_Cs5->setObjectName(QString::fromUtf8("key_Cs5")); + + blackKeysLayout->addWidget(key_Cs5); + + key_Ds5 = new QPushButton(pianoWidget); + key_Ds5->setObjectName(QString::fromUtf8("key_Ds5")); + + blackKeysLayout->addWidget(key_Ds5); + + horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_10); + + key_Fs5 = new QPushButton(pianoWidget); + key_Fs5->setObjectName(QString::fromUtf8("key_Fs5")); + + blackKeysLayout->addWidget(key_Fs5); + + key_Gs5 = new QPushButton(pianoWidget); + key_Gs5->setObjectName(QString::fromUtf8("key_Gs5")); + + blackKeysLayout->addWidget(key_Gs5); + + key_As5 = new QPushButton(pianoWidget); + key_As5->setObjectName(QString::fromUtf8("key_As5")); + + blackKeysLayout->addWidget(key_As5); + + horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_11); + + + verticalLayout_2->addLayout(blackKeysLayout); + + + verticalLayout->addWidget(pianoWidget); + + Yamitracker->setCentralWidget(centralwidget); + + retranslateUi(Yamitracker); + + QMetaObject::connectSlotsByName(Yamitracker); + } // setupUi + + void retranslateUi(QMainWindow *Yamitracker) + { + Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor", nullptr)); + statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr)); + deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr)); + keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr)); + playButton->setText(QCoreApplication::translate("Yamitracker", "\320\227\320\260\320\277\320\270\321\201\321\214 (Play)", nullptr)); + stopButton->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\276\320\277", nullptr)); + convertButton->setText(QCoreApplication::translate("Yamitracker", "\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr)); + refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr)); + key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr)); + key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr)); + key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr)); + key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr)); + key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr)); + key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr)); + key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr)); + key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr)); + key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr)); + key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr)); + key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr)); + key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr)); + key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr)); + key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr)); + key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr)); + key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr)); + key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr)); + key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr)); + key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr)); + key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr)); + key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr)); + key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr)); + key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr)); + key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr)); + key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr)); + key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr)); + key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr)); + key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr)); + key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr)); + key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr)); + key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr)); + key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr)); + key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr)); + key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr)); + key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr)); + key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr)); + key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr)); + key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr)); + key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr)); + key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr)); + key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr)); + key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr)); + key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr)); + key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr)); + key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr)); + key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr)); + key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr)); + key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr)); + key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr)); + key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr)); + key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr)); + key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr)); + key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr)); + key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr)); + key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr)); + key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr)); + key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr)); + key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr)); + key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr)); + key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr)); + key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class Yamitracker: public Ui_Yamitracker {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_YAMITRACKER_H diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/yamitracker.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/yamitracker.o new file mode 100644 index 0000000..f0f9d45 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/yamitracker.o differ diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/main.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/main.cpp new file mode 100644 index 0000000..742d76f --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/main.cpp @@ -0,0 +1,11 @@ +// main.cpp +#include "yamitracker.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + Yamitracker w; + w.show(); + return a.exec(); +} \ No newline at end of file diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/music_20251210_151146.s b/OtherPush/yamitraherIlyaEdit/Yamitracker/music_20251210_151146.s new file mode 100644 index 0000000..450ec43 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/music_20251210_151146.s @@ -0,0 +1,329 @@ +; Музыкальная композиция, сгенерированная Yamitracker +; Формат: Pently-like с дорожками +; Время создания: 2025-12-10 15:11:48 + +.include "pentlyseq.inc" +.segment "SPCIMAGE" + +; Таблица инструментов +music_inst_table: + ; name lv rv frq smp att dec sus lvl + INST KICK, 11, 10, 3, 6, 31, 17, 0, 8 + INST SNARE, 10, 15, 3, 7, 31, 17, 0, 8 + INST HAT, 3, 5, 3, 5, 31, 17, 0, 8 + INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2 + INST PLING_4, 7, 7, 1, 1, 31, 19, 15, 2 + INST PLING_2, 9, 6, 1, 2, 31, 17, 15, 2 + INST BASSGUITAR, 12, 12, 1, 4, 31, 17, 15, 8 + INST BASSCLAR, 12, 12, 1, 2, 21, 21, 27, 4 + INST HORNBLAT, 3, 9, 1, 0, 21, 21, 27, 4 + INST XYLSHORT, 10, 6, 1, 2, 31, 23, 20, 2 + INST XYLMED, 10, 6, 1, 2, 31, 19, 17, 2 + +pently_patterns: +PPDAT_track0_pattern0: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern1: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern2: + .byt N_F|D_16 + .byt PATEND +PPDAT_track0_pattern3: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern4: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern5: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern6: + .byt N_C|D_D32 + .byt PATEND +PPDAT_track0_pattern7: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern8: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern9: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern10: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern11: + .byt N_F|D_16 + .byt N_C|D_D32 + .byt PATEND +PPDAT_track0_pattern12: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern13: + .byt N_F|D_16 + .byt PATEND +PPDAT_track0_pattern14: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern15: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern16: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern17: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern18: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern19: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern20: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern21: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern22: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern23: + .byt N_F|D_16 + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern24: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern25: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern26: + .byt N_C|D_D32 + .byt PATEND +PPDAT_track0_pattern27: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern28: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern29: + .byt N_C|D_D32 + .byt PATEND +PPDAT_track0_pattern30: + .byt N_E|D_32 + .byt PATEND +PPDAT_track1_pattern0: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern1: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern2: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern3: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern4: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern5: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern6: + .byt N_A|D_16 + .byt PATEND +PPDAT_track1_pattern7: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern8: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern9: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern10: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern11: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern12: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern13: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern14: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern15: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern16: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern17: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern18: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern19: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern20: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern21: + .byt N_A|D_32 + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern22: + .byt N_A|D_32 + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern23: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern24: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern25: + .byt N_A|D_32 + .byt PATEND + +pently_songs: +.addr PSDAT_composition + +; Композиция +PSDAT_composition: + setTempo 300 + playPat 0, 0, 0, PLING_2 + waitRows 16 + playPat 0, 1, 0, PLING_2 + waitRows 16 + playPat 0, 2, 0, PLING_2 + waitRows 16 + playPat 0, 3, 0, PLING_2 + waitRows 16 + playPat 0, 4, 0, PLING_2 + waitRows 16 + playPat 0, 5, 0, PLING_2 + waitRows 16 + playPat 0, 6, 0, PLING_2 + waitRows 16 + playPat 0, 7, 0, PLING_2 + waitRows 16 + playPat 0, 8, 0, PLING_2 + waitRows 16 + playPat 0, 9, 0, PLING_2 + waitRows 16 + playPat 0, 10, 0, PLING_2 + waitRows 16 + playPat 0, 11, 0, PLING_2 + waitRows 16 + playPat 0, 12, 0, PLING_2 + waitRows 16 + playPat 0, 13, 0, PLING_2 + waitRows 16 + playPat 0, 14, 0, PLING_2 + waitRows 16 + playPat 0, 15, 0, PLING_2 + waitRows 16 + playPat 0, 16, 0, PLING_2 + waitRows 16 + playPat 0, 17, 0, PLING_2 + waitRows 16 + playPat 0, 18, 0, PLING_2 + waitRows 16 + playPat 0, 19, 0, PLING_2 + waitRows 16 + playPat 0, 20, 0, PLING_2 + waitRows 16 + playPat 0, 21, 0, PLING_2 + waitRows 16 + playPat 0, 22, 0, PLING_2 + waitRows 16 + playPat 0, 23, 0, PLING_2 + waitRows 16 + playPat 0, 24, 0, PLING_2 + waitRows 16 + playPat 0, 25, 0, PLING_2 + waitRows 16 + playPat 0, 26, 0, PLING_2 + waitRows 16 + playPat 0, 27, 0, PLING_2 + waitRows 16 + playPat 0, 28, 0, PLING_2 + waitRows 16 + playPat 0, 29, 0, PLING_2 + waitRows 16 + playPat 0, 30, 0, PLING_2 + waitRows 16 + playPat 1, 31, 0, PLING_2 + waitRows 16 + playPat 1, 32, 0, PLING_2 + waitRows 16 + playPat 1, 33, 0, PLING_2 + waitRows 16 + playPat 1, 34, 0, PLING_2 + waitRows 16 + playPat 1, 35, 0, PLING_2 + waitRows 16 + playPat 1, 36, 0, PLING_2 + waitRows 16 + playPat 1, 37, 0, PLING_2 + waitRows 16 + playPat 1, 38, 0, PLING_2 + waitRows 16 + playPat 1, 39, 0, PLING_2 + waitRows 16 + playPat 1, 40, 0, PLING_2 + waitRows 16 + playPat 1, 41, 0, PLING_2 + waitRows 16 + playPat 1, 42, 0, PLING_2 + waitRows 16 + playPat 1, 43, 0, PLING_2 + waitRows 16 + playPat 1, 44, 0, PLING_2 + waitRows 16 + playPat 1, 45, 0, PLING_2 + waitRows 16 + playPat 1, 46, 0, PLING_2 + waitRows 16 + playPat 1, 47, 0, PLING_2 + waitRows 16 + playPat 1, 48, 0, PLING_2 + waitRows 16 + playPat 1, 49, 0, PLING_2 + waitRows 16 + playPat 1, 50, 0, PLING_2 + waitRows 16 + playPat 1, 51, 0, PLING_2 + waitRows 16 + playPat 1, 52, 0, PLING_2 + waitRows 16 + playPat 1, 53, 0, PLING_2 + waitRows 16 + playPat 1, 54, 0, PLING_2 + waitRows 16 + playPat 1, 55, 0, PLING_2 + waitRows 16 + playPat 1, 56, 0, PLING_2 + waitRows 16 + fine diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/simplewavwriter.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/simplewavwriter.cpp new file mode 100644 index 0000000..b8c420e --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/simplewavwriter.cpp @@ -0,0 +1,885 @@ +#include "simplewavwriter.h" +#include +#include +#include +#include +#include + +SimpleWavWriter::SimpleWavWriter(QObject *parent) + : QObject(parent), recording(false), paused(false), playbackSpeed(1.0), bassVolumeMultiplier(2.0) +{ + // Инициализируем дорожки + tracks.resize(MAX_TRACKS); + for (int i = 0; i < MAX_TRACKS; i++) { + tracks[i] = Track(i); // Используем конструктор с индексом + tracks[i].instrument = 1; // По умолчанию Grand Piano + tracks[i].volume = 1.0; + tracks[i].muted = false; + tracks[i].solo = false; + } + + // Настраиваем формат аудио + format.setSampleRate(SAMPLE_RATE); + format.setChannelCount(1); // Моно + format.setSampleSize(BIT_DEPTH); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); +} + +bool SimpleWavWriter::startRecording(int sampleRate) +{ + if (recording) return false; + + format.setSampleRate(sampleRate); + recording = true; + paused = false; + + emit recordingStatusChanged(true); + return true; +} + +void SimpleWavWriter::stopRecording() +{ + recording = false; + paused = false; + emit recordingStatusChanged(false); +} + +void SimpleWavWriter::pauseRecording() +{ + if (recording && !paused) { + paused = true; + } +} + +void SimpleWavWriter::resumeRecording() +{ + if (recording && paused) { + paused = false; + } +} + +void SimpleWavWriter::addNote(int track, double time, int note, int velocity, double duration, int instrument) +{ + if (track < 0 || track >= MAX_TRACKS) return; + + // Применяем множитель громкости для басовых инструментов + double volume = velocity / 127.0; + static QSet bassInstruments = {28, 33, 39, 40, 29, 37, 38}; + if (bassInstruments.contains(instrument)) { + volume *= bassVolumeMultiplier; + volume = qMin(volume, 1.0); // Ограничиваем максимальную громкость + } + + tracks[track].events.append(NoteEvent(time, note, velocity, duration, instrument, volume)); + tracks[track].instrument = instrument; + + emit trackUpdated(track); +} + +void SimpleWavWriter::clearTrack(int track) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].events.clear(); + emit trackUpdated(track); + } +} + +void SimpleWavWriter::clearAllTracks() +{ + for (int i = 0; i < MAX_TRACKS; i++) { + tracks[i].events.clear(); + emit trackUpdated(i); + } +} + +QString SimpleWavWriter::getTrackName(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].name; + } + return QString(); +} + +void SimpleWavWriter::setTrackName(int track, const QString &name) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].name = name; + emit trackUpdated(track); + } +} + +int SimpleWavWriter::getEventCount(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].events.size(); + } + return 0; +} + +int SimpleWavWriter::getTrackInstrument(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].instrument; + } + return 1; +} + +void SimpleWavWriter::setTrackInstrument(int track, int instrument) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].instrument = instrument; + emit trackUpdated(track); + } +} + +double SimpleWavWriter::getTrackVolume(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].volume; + } + return 1.0; +} + +void SimpleWavWriter::setTrackVolume(int track, double volume) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].volume = qBound(0.0, volume, 2.0); + emit trackUpdated(track); + } +} + +bool SimpleWavWriter::isTrackMuted(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].muted; + } + return false; +} + +void SimpleWavWriter::muteTrack(int track, bool muted) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].muted = muted; + emit trackUpdated(track); + } +} + +bool SimpleWavWriter::isTrackSolo(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].solo; + } + return false; +} + +void SimpleWavWriter::soloTrack(int track, bool solo) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].solo = solo; + emit trackUpdated(track); + } +} + +QByteArray SimpleWavWriter::getTrackAudioData(int track, bool mix) +{ + if (track < 0 || track >= MAX_TRACKS) return QByteArray(); + + if (mix) { + // Смешиваем все дорожки + QVector allTracks; + for (int i = 0; i < MAX_TRACKS; i++) { + allTracks.append(i); + } + return mixTracks(allTracks); + } + + return mixTracks(QVector{track}); +} + +QByteArray SimpleWavWriter::getAllTracksAudioData() +{ + // Собираем индексы всех дорожек, которые не заглушены и имеют данные + QVector activeTracks; + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].muted && !tracks[i].events.isEmpty()) { + activeTracks.append(i); + } + } + + if (activeTracks.isEmpty()) { + return QByteArray(); + } + + return mixTracks(activeTracks); +} + +bool SimpleWavWriter::loadWavToTrack(const QString &filename, int track) +{ + // Временно заглушка - в реальной реализации нужно парсить WAV файл + QFile file(filename); + if (!file.open(QIODevice::ReadOnly)) return false; + + // Пропускаем заголовок WAV (44 байта) + file.seek(44); + QByteArray audioData = file.readAll(); + file.close(); + + // Создаем событие для импортированного аудио + if (!audioData.isEmpty()) { + // Очищаем дорожку и добавляем специальное событие + tracks[track].events.clear(); + // Здесь нужно добавить логику для импорта WAV + emit trackUpdated(track); + return true; + } + + return false; +} + +void SimpleWavWriter::copyTrack(int fromTrack, int toTrack) +{ + if (fromTrack < 0 || fromTrack >= MAX_TRACKS || + toTrack < 0 || toTrack >= MAX_TRACKS || fromTrack == toTrack) { + return; + } + + tracks[toTrack] = tracks[fromTrack]; + tracks[toTrack].name = QString("Копия %1").arg(tracks[fromTrack].name); + emit trackUpdated(toTrack); +} + +void SimpleWavWriter::mergeTrack(int fromTrack, int toTrack) +{ + if (fromTrack < 0 || fromTrack >= MAX_TRACKS || + toTrack < 0 || toTrack >= MAX_TRACKS || fromTrack == toTrack) { + return; + } + + tracks[toTrack].events.append(tracks[fromTrack].events); + // Сортируем события по времени + std::sort(tracks[toTrack].events.begin(), tracks[toTrack].events.end(), + [](const NoteEvent &a, const NoteEvent &b) { return a.time < b.time; }); + + emit trackUpdated(toTrack); +} + +void SimpleWavWriter::setPlaybackSpeed(double speed) +{ + playbackSpeed = qBound(0.5, speed, 2.0); +} + +void SimpleWavWriter::setBassVolumeMultiplier(double multiplier) +{ + bassVolumeMultiplier = qBound(1.0, multiplier, 4.0); +} + +QByteArray SimpleWavWriter::generateNoteAudio(int note, int velocity, double duration, int instrument, double volume) +{ + double frequency = noteToFrequency(note); + double amplitude = (velocity / 127.0) * volume; + + return generateInstrumentWave(instrument, frequency, duration, amplitude); +} + +QByteArray SimpleWavWriter::generateSilence(double duration) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray silence(samples * sizeof(qint16), 0); + return silence; +} + +void SimpleWavWriter::writeWavHeader(QFile &file, quint32 dataSize) +{ + // RIFF header + file.write("RIFF"); + file.write(intToBytes(36 + dataSize)); + file.write("WAVE"); + + // fmt chunk + file.write("fmt "); + file.write(intToBytes(16)); // chunk size + file.write(shortToBytes(1)); // audio format (PCM) + file.write(shortToBytes(format.channelCount())); // channels + file.write(intToBytes(format.sampleRate())); // sample rate + file.write(intToBytes(format.sampleRate() * format.channelCount() * format.sampleSize() / 8)); // byte rate + file.write(shortToBytes(format.channelCount() * format.sampleSize() / 8)); // block align + file.write(shortToBytes(format.sampleSize())); // bits per sample + + // data chunk + file.write("data"); + file.write(intToBytes(dataSize)); +} + +bool SimpleWavWriter::saveToFile(const QString &filename) +{ + // Получаем аудиоданные всех активных дорожек + QByteArray audioData = getAllTracksAudioData(); + if (audioData.isEmpty()) { + qDebug() << "Нет данных для сохранения - все дорожки пусты или заглушены"; + return false; + } + + QFile file(filename); + if (!file.open(QIODevice::WriteOnly)) { + qDebug() << "Не удалось открыть файл для записи:" << filename; + return false; + } + + // Записываем WAV заголовок + writeWavHeader(file, audioData.size()); + + // Записываем аудиоданные + qint64 bytesWritten = file.write(audioData); + file.close(); + + if (bytesWritten != audioData.size()) { + qDebug() << "Ошибка записи файла: записано" << bytesWritten << "байт из" << audioData.size(); + return false; + } + + // Выводим информацию о каждой дорожке + qDebug() << "Информация о дорожках"; + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].events.isEmpty()) { + qDebug() << "Дорожка" << i << ":" + << "нот:" << tracks[i].events.size() + << "время начала:" << tracks[i].events.first().time + << "время конца:" << (tracks[i].events.last().time + tracks[i].events.last().duration); + } + } + + return true; + + // Выводим информацию о сохраненном файле + double duration = audioData.size() / (2.0 * SAMPLE_RATE); // байты / (2 байта на сэмпл * частота) + int activeTracks = 0; + int totalNotes = 0; + + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].muted && !tracks[i].events.isEmpty()) { + activeTracks++; + totalNotes += tracks[i].events.size(); + } + } + + qDebug() << "Файл успешно сохранен:"; + qDebug() << " Имя файла:" << filename; + qDebug() << " Размер:" << audioData.size() << "байт"; + qDebug() << " Частота дискретизации:" << SAMPLE_RATE << "Гц"; + qDebug() << " Битрейт:" << (SAMPLE_RATE * 2 * 8) / 1000 << "кбит/с"; + qDebug() << " Длительность:" << duration << "секунд"; + qDebug() << " Активных дорожек:" << activeTracks; + qDebug() << " Всего нот:" << totalNotes; + + return true; +} + +// НОВЫЙ МЕТОД: Конвертирует время в секундах в тики Pently (базовый темп 1000) +int SimpleWavWriter::secondsToPentlyTicks(double seconds) const +{ + // Базовый темп: 1000 тиков в секунде + return static_cast(seconds * 1000.0); +} + +// НОВЫЙ МЕТОД: Конвертирует тики в строку задержки +QString SimpleWavWriter::ticksToDelayString(int ticks) const +{ + if (ticks <= 0) return QString(); + + // Определяем наилучшее представление задержки + if (ticks >= 2000) return QString("D_2"); + if (ticks >= 1000) return QString("D_1"); + if (ticks >= 500) return QString("D_D2"); + if (ticks >= 250) return QString("D_D4"); + if (ticks >= 125) return QString("D_D8"); + if (ticks >= 62) return QString("D_D16"); + if (ticks >= 31) return QString("D_2"); + if (ticks >= 16) return QString("D_4"); + if (ticks >= 8) return QString("D_8"); + if (ticks >= 4) return QString("D_16"); + if (ticks >= 2) return QString("D_32"); + + return QString("D_32"); +} + +// НОВЫЙ МЕТОД: Создает паттерн из событий дорожки +QString SimpleWavWriter::generatePattern(int trackIndex) const +{ + if (trackIndex < 0 || trackIndex >= tracks.size()) return QString(); + + const Track& track = tracks[trackIndex]; + if (track.events.isEmpty()) return QString(); + + QString pattern; + + // Сортируем события по времени + QVector sortedEvents = track.events; + std::sort(sortedEvents.begin(), sortedEvents.end(), + [](const NoteEvent &a, const NoteEvent &b) { return a.time < b.time; }); + + double lastTime = 0; + for (const NoteEvent &event : sortedEvents) { + // Вычисляем задержку от предыдущего события + double delay = event.time - lastTime; + if (delay > 0) { + int delayTicks = secondsToPentlyTicks(delay); + QString delayCmd = ticksToDelayString(delayTicks); + if (!delayCmd.isEmpty()) { + pattern += QString(" .byt %1\n").arg(delayCmd); + } + } + + // Добавляем ноту с ее длительностью + QString noteStr = noteToPentlyNote(event.note); + int durationTicks = secondsToPentlyTicks(event.duration); + QString durationStr = ticksToDelayString(durationTicks); + + pattern += QString(" .byt %1|%2\n").arg(noteStr).arg(durationStr); + + lastTime = event.time + event.duration; + } + + return pattern; +} + +// ИСПРАВЛЕННЫЙ МЕТОД: Сохранение в музыкальный файл Pently +bool SimpleWavWriter::saveToMusicFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { + qDebug() << "Не удалось открыть файл для записи:" << filename; + return false; + } + + QTextStream out(&file); + out.setCodec("UTF-8"); + + // 1. Проверяем, есть ли данные для сохранения + int trackCount = 0; + QVector trackIndices; + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].events.isEmpty()) { + trackCount++; + trackIndices.append(i); + } + } + + if (trackCount == 0) { + out << "; Нет данных для сохранения\n"; + file.close(); + return false; + } + + qDebug() << "Сохранение музыки: найдено" << trackCount << "дорожек с данными"; + + // 2. Заголовок файла + out << "; Generated by Yamitracker\n"; + out << "; Date: " << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss") << "\n"; + out << "; Tracks: " << trackCount << "\n\n"; + + // 3. Таблица инструментов + out << "music_inst_table:\n"; + + // Карта преобразования инструментов GM в Pently + QMap pentlyInstruments = { + {1, "PLING_8"}, // Grand Piano + {2, "PLING_4"}, // Bright Piano + {3, "PLING_2"}, // Harpsichord + {6, "PLING_2"}, // Harpsichord 2 + + // Bass instruments + {28, "BASSGUITAR"}, + {33, "BASSGUITAR"}, + {39, "BASSGUITAR"}, + {40, "BASSGUITAR"}, + + // Guitar/Overdrive + {29, "XYLSHORT"}, + {37, "XYLSHORT"}, + {38, "XYLSHORT"}, + + // Strings + {48, "XYLMED"}, + {49, "XYLMED"}, + + // Sax/Horn + {81, "HORNBLAT"}, + + // Bright + {95, "XYLSHORT"}, + {96, "XYLSHORT"}, + {100, "XYLSHORT"} + }; + + // Карта параметров инструментов Pently (lv, rv, frq, smp, att, dec, sus, lvl) + QMap instrumentParams = { + {"PLING_8", " 3, 10, 1, 0, 31, 19, 15, 2"}, + {"PLING_4", " 7, 7, 1, 1, 31, 19, 15, 2"}, + {"PLING_2", " 9, 6, 1, 2, 31, 17, 15, 2"}, + {"BASSGUITAR", "12, 12, 1, 4, 31, 17, 15, 8"}, + {"BASSCLAR", "12, 12, 1, 2, 21, 21, 27, 4"}, + {"HORNBLAT", " 3, 9, 1, 0, 21, 21, 27, 4"}, + {"XYLSHORT", "10, 6, 1, 2, 31, 23, 20, 2"}, + {"XYLMED", "10, 6, 1, 2, 31, 19, 17, 2"}, + {"STRING", "10, 6, 1, 2, 31, 23, 20, 2"} + }; + + // Генерируем уникальные инструменты для каждой дорожки + QMap trackInstruments; + for (int trackIndex : trackIndices) { + int gmInstrument = tracks[trackIndex].instrument; + QString pentlyInst = pentlyInstruments.value(gmInstrument, "PLING_8"); + trackInstruments[trackIndex] = pentlyInst; + + QString params = instrumentParams.value(pentlyInst, "10, 10, 1, 1, 31, 17, 15, 8"); + out << " INST " << pentlyInst << "," << params << "\n"; + } + + out << "\n"; + + // 4. Таблица паттернов + out << "pently_patterns:\n"; + for (int trackIndex : trackIndices) { + out << " .addr PPDAT_track" << trackIndex << "\n"; + } + + // 5. Данные паттернов + for (int trackIndex : trackIndices) { + out << "\nPPDAT_track" << trackIndex << ":\n"; + QString patternData = generatePattern(trackIndex); + if (patternData.isEmpty()) { + out << " .byt PATEND\n"; + } else { + out << patternData; + out << " .byt PATEND\n"; + } + } + + // 6. Таблица песен (теперь только ОДНА песня) + out << "\npently_songs:\n"; + out << " .addr PSDAT_main_song\n\n"; + + // 7. Создаем ОДНУ главную песню, которая управляет всеми дорожками + out << "PSDAT_main_song:\n"; + + // Определяем общую длительность композиции + double maxDuration = 0; + for (int trackIndex : trackIndices) { + const Track& track = tracks[trackIndex]; + for (const NoteEvent &event : track.events) { + double endTime = event.time + event.duration; + if (endTime > maxDuration) { + maxDuration = endTime; + } + } + } + + int totalTicks = secondsToPentlyTicks(maxDuration); + if (totalTicks < 1) totalTicks = 100; // Минимальная длительность + + qDebug() << "Общая длительность:" << maxDuration << "секунд =" << totalTicks << "тиков"; + + // Устанавливаем темп + out << " setTempo 1000\n"; + + // Запускаем все паттерны одновременно + int channel = 0; + for (int trackIndex : trackIndices) { + QString instName = trackInstruments[trackIndex]; + out << QString(" playPat %1, %2, 23, %3\n") + .arg(channel).arg(trackIndex).arg(instName); + channel++; + } + + // Ждем полную длительность композиции + out << QString(" waitRows %1\n").arg(totalTicks); + + // Останавливаем все паттерны + for (int i = 0; i < channel; i++) { + out << QString(" stopPat %1\n").arg(i); + } + + // Зацикливаем + out << " dalSegno\n"; + + file.close(); + + qDebug() << "Музыкальный файл сохранен:" << filename; + qDebug() << "Треков:" << trackCount; + qDebug() << "Максимальная длительность:" << maxDuration << "сек"; + qDebug() << "В тиках:" << totalTicks; + + return true; +} + +QByteArray SimpleWavWriter::mixTracks(const QVector &trackIndices) +{ + double maxDuration = 0; + for (int trackIndex : trackIndices) { + if (trackIndex < 0 || trackIndex >= MAX_TRACKS) continue; + const Track &track = tracks[trackIndex]; + for (const NoteEvent &event : track.events) { + double endTime = event.time + event.duration; + if (endTime > maxDuration) { + maxDuration = endTime; + } + } + } + + if (maxDuration <= 0) { + return QByteArray(); + } + + // Создаем буфер для микширования + int totalSamples = static_cast(maxDuration * format.sampleRate()); + QVector mixBuffer(totalSamples, 0); // Используем qint32 для предотвращения клиппинга + + // Обрабатываем каждую дорожку + for (int trackIndex : trackIndices) { + if (trackIndex < 0 || trackIndex >= MAX_TRACKS) continue; + const Track &track = tracks[trackIndex]; + + // Проверяем mute/solo + if (track.muted) continue; + + double trackVolume = track.volume; + + // Обрабатываем каждое событие в дорожке + for (const NoteEvent &event : track.events) { + // Генерируем аудио для ноты + QByteArray noteAudio = generateNoteAudio( + event.note, + event.velocity, + event.duration, + event.instrument, + event.volume * trackVolume + ); + + // Вычисляем начальный сэмпл (на основе абсолютного времени) + int startSample = static_cast(event.time * format.sampleRate()); + const qint16 *noteData = reinterpret_cast(noteAudio.constData()); + int noteSamples = noteAudio.size() / sizeof(qint16); + + // Микшируем ноту в общий буфер + for (int i = 0; i < noteSamples && startSample + i < totalSamples; i++) { + // Прибавляем ноту к миксу (используем qint32) + qint32 mixed = mixBuffer[startSample + i] + noteData[i]; + mixBuffer[startSample + i] = mixed; + } + } + } + + // Конвертируем буфер в QByteArray с ограничением (clamping) + QByteArray result; + result.resize(totalSamples * sizeof(qint16)); + qint16 *resultData = reinterpret_cast(result.data()); + for (int i = 0; i < totalSamples; i++) { + // Ограничиваем значение для предотвращения клиппинга + qint32 sample = mixBuffer[i]; + if (sample > 32767) sample = 32767; + if (sample < -32768) sample = -32768; + resultData[i] = static_cast(sample); + } + return result; +} + +double SimpleWavWriter::noteToFrequency(int note) const +{ + // Формула для преобразования ноты в частоту + return 440.0 * pow(2.0, (note - 69) / 12.0); +} + +QByteArray SimpleWavWriter::generateSineWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double angularFreq = 2.0 * M_PI * frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double value = sin(angularFreq * t); + buffer[i] = static_cast(value * maxAmplitude); + } + + return data; +} + +QByteArray SimpleWavWriter::generateSquareWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double period = 1.0 / frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double phase = fmod(t, period) / period; + buffer[i] = static_cast((phase < 0.5 ? maxAmplitude : -maxAmplitude)); + } + + return data; +} + +QByteArray SimpleWavWriter::generateSawtoothWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double period = 1.0 / frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double phase = fmod(t, period) / period; + buffer[i] = static_cast((2.0 * phase - 1.0) * maxAmplitude); + } + + return data; +} + +QByteArray SimpleWavWriter::generateTriangleWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double period = 1.0 / frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double phase = fmod(t, period) / period; + double value; + + if (phase < 0.25) { + value = 4.0 * phase; + } else if (phase < 0.75) { + value = 2.0 - 4.0 * phase; + } else { + value = 4.0 * phase - 4.0; + } + + buffer[i] = static_cast(value * maxAmplitude); + } + + return data; +} + +QByteArray SimpleWavWriter::generateInstrumentWave(int instrument, double frequency, double duration, double amplitude) +{ + // Выбираем форму волны в зависимости от инструмента + static QMap waveTypes = { + {1, "sine"}, {2, "sine"}, // Piano + {3, "square"}, {6, "square"}, // Harpsichord + {28, "sawtooth"}, {33, "sawtooth"}, {39, "sawtooth"}, {40, "square"}, // Bass + {29, "square"}, {37, "square"}, {38, "square"}, // Guitar + {48, "sine"}, {49, "sine"}, // Strings + {81, "sine"}, // Sax + {95, "triangle"}, {96, "triangle"}, {100, "triangle"} // Bright + }; + + QString waveType = waveTypes.value(instrument, "sine"); + + if (waveType == "square") { + return generateSquareWave(frequency, duration, amplitude); + } else if (waveType == "sawtooth") { + return generateSawtoothWave(frequency, duration, amplitude); + } else if (waveType == "triangle") { + return generateTriangleWave(frequency, duration, amplitude); + } else { + return generateSineWave(frequency, duration, amplitude); + } +} + +QByteArray SimpleWavWriter::intToBytes(qint32 value) +{ + QByteArray bytes(4, 0); + bytes[0] = static_cast(value & 0xFF); + bytes[1] = static_cast((value >> 8) & 0xFF); + bytes[2] = static_cast((value >> 16) & 0xFF); + bytes[3] = static_cast((value >> 24) & 0xFF); + return bytes; +} + +QByteArray SimpleWavWriter::shortToBytes(qint16 value) +{ + QByteArray bytes(2, 0); + bytes[0] = static_cast(value & 0xFF); + bytes[1] = static_cast((value >> 8) & 0xFF); + return bytes; +} + +QString SimpleWavWriter::noteToPentlyNote(int note) const +{ + // Преобразуем MIDI номер ноты в формат Pently + // MIDI: 60 = C4, 61 = C#4, 62 = D4, и т.д. + + int octave = note / 12; + int noteInOctave = note % 12; + + // Базовые названия нот + QString noteName; + switch (noteInOctave) { + case 0: noteName = "N_C"; break; + case 1: noteName = "N_CS"; break; + case 2: noteName = "N_D"; break; + case 3: noteName = "N_DS"; break; + case 4: noteName = "N_E"; break; + case 5: noteName = "N_F"; break; + case 6: noteName = "N_FS"; break; + case 7: noteName = "N_G"; break; + case 8: noteName = "N_GS"; break; + case 9: noteName = "N_A"; break; + case 10: noteName = "N_AS"; break; + case 11: noteName = "N_B"; break; + } + + // Добавляем октаву + if (octave == 4) { + // Средняя октава (C4-B4) - без суффикса в Pently + return noteName; + } else if (octave == 5) { + // Высокая октава (C5-B5) - добавляем H + return noteName + "H"; + } else if (octave == 3) { + // Низкая октава (C3-B3) - добавляем суффикс октавы + return noteName + "|OCTAVE_1"; + } else if (octave == 2) { + // Очень низкая октава (C2-B2) - добавляем суффикс + return noteName + "L"; + } else if (octave == 6) { + // Очень высокая октава (C6+) - добавляем суффикс + return noteName + "H|OCTAVE_1"; + } + + // По умолчанию возвращаем базовое имя + return noteName; +} + +QString SimpleWavWriter::durationToPentlyDuration(double duration) const +{ + // Конвертируем длительность в секундах в формат Pently + int ticks = secondsToPentlyTicks(duration); + return ticksToDelayString(ticks); +} + +QString SimpleWavWriter::instrumentToPentlyInstrument(int instrument) const +{ + static QMap instMap = { + {1, "PLING_8"}, {2, "PLING_4"}, {3, "PLING_2"}, {6, "PLING_2"}, + {28, "BASSGUITAR"}, {33, "BASSGUITAR"}, {39, "BASSGUITAR"}, {40, "BASSGUITAR"}, + {29, "XYLSHORT"}, {37, "XYLSHORT"}, {38, "XYLSHORT"}, + {48, "XYLMED"}, {49, "XYLMED"}, {81, "HORNBLAT"}, + {95, "XYLSHORT"}, {96, "XYLSHORT"}, {100, "XYLSHORT"} + }; + + return instMap.value(instrument, "PLING_8"); +} \ No newline at end of file diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/simplewavwriter.h b/OtherPush/yamitraherIlyaEdit/Yamitracker/simplewavwriter.h new file mode 100644 index 0000000..fa6eb87 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/simplewavwriter.h @@ -0,0 +1,133 @@ +// simplewavwriter.h +#ifndef SIMPLEWAVWRITER_H +#define SIMPLEWAVWRITER_H + +#include +#include +#include +#include +#include +#include + +struct NoteEvent { + double time; // Время начала в секундах + int note; // Номер ноты (0-127) + int velocity; // Сила нажатия (0-127) + double duration; // Длительность в секундах + int instrument; // Номер инструмента + double volume; // Громкость ноты (0.0-1.0) + + NoteEvent(double t = 0, int n = 0, int v = 100, double d = 0, int i = 1, double vol = 1.0) + : time(t), note(n), velocity(v), duration(d), instrument(i), volume(vol) {} +}; + +class SimpleWavWriter : public QObject +{ + Q_OBJECT + +public: + static const int MAX_TRACKS = 7; // ИЗМЕНЕНО: было 16, стало 7 + static const int SAMPLE_RATE = 44100; // Улучшенное качество + static const int BIT_DEPTH = 16; + + explicit SimpleWavWriter(QObject *parent = nullptr); + + bool startRecording(int sampleRate = SAMPLE_RATE); + void stopRecording(); + bool isRecording() const { return recording; } + bool isPaused() const { return paused; } + void pauseRecording(); + void resumeRecording(); + + void addNote(int track, double time, int note, int velocity, double duration, int instrument = 1); + void clearTrack(int track); + void clearAllTracks(); + + bool saveToFile(const QString &filename); + bool saveToMusicFile(const QString &filename); + + // Работа с дорожками + QString getTrackName(int track) const; + void setTrackName(int track, const QString &name); + int getEventCount(int track) const; + int getTrackInstrument(int track) const; + void setTrackInstrument(int track, int instrument); + double getTrackVolume(int track) const; + void setTrackVolume(int track, double volume); + bool isTrackMuted(int track) const; + void muteTrack(int track, bool muted); + bool isTrackSolo(int track) const; + void soloTrack(int track, bool solo); + + // Работа с аудиоданными + QByteArray getTrackAudioData(int track, bool mix = false); + QByteArray getAllTracksAudioData(); + + // Загрузка/сохранение дорожек + bool loadWavToTrack(const QString &filename, int track); + void copyTrack(int fromTrack, int toTrack); + void mergeTrack(int fromTrack, int toTrack); + + // Эффекты и настройки + void setPlaybackSpeed(double speed); + void setBassVolumeMultiplier(double multiplier); + + // Генерация звука + QByteArray generateNoteAudio(int note, int velocity, double duration, int instrument, double volume = 1.0); + QByteArray generateSilence(double duration); + +signals: + void trackUpdated(int track); + void recordingStatusChanged(bool recording); + +private: + struct Track { + QString name; + QVector events; + int instrument; + double volume; + bool muted; + bool solo; + int index; // Добавляем индекс дорожки + + Track() : instrument(1), volume(1.0), muted(false), solo(false), index(0) { + } + + // Конструктор с индексом + Track(int idx) : instrument(1), volume(1.0), muted(false), solo(false), index(idx) { + name = QString("Дорожка %1").arg(idx + 1); + } + }; + + bool recording; + bool paused; + QVector tracks; + QAudioFormat format; + double playbackSpeed; + double bassVolumeMultiplier; + + void writeWavHeader(QFile &file, quint32 dataSize); + QByteArray mixTracks(const QVector &trackIndices); + double noteToFrequency(int note) const; + QByteArray generateSineWave(double frequency, double duration, double amplitude); + QByteArray generateSquareWave(double frequency, double duration, double amplitude); + QByteArray generateSawtoothWave(double frequency, double duration, double amplitude); + QByteArray generateTriangleWave(double frequency, double duration, double amplitude); + QByteArray generateInstrumentWave(int instrument, double frequency, double duration, double amplitude); + + // Инструменты для форматирования данных + QByteArray intToBytes(qint32 value); + QByteArray shortToBytes(qint16 value); + + // Форматирование для .s файла + QString noteToPentlyNote(int note) const; + QString durationToPentlyDuration(double duration) const; + QString instrumentToPentlyInstrument(int instrument) const; + + // НОВЫЕ МЕТОДЫ для конвертации в Pently формат + int secondsToPentlyTicks(double seconds) const; + QString ticksToDelayString(int ticks) const; + QString generatePattern(int trackIndex) const; +}; + +#endif // SIMPLEWAVWRITER_H \ No newline at end of file diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/yamitracker.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/yamitracker.cpp new file mode 100644 index 0000000..16b2837 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/yamitracker.cpp @@ -0,0 +1,1730 @@ +#include "yamitracker.h" +#include "ui_yamitracker.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Глобальная переменная для управления громкостью баса +double bassVolumeMultiplier = 2.0; // Увеличение громкости баса в 2 раза + +// Инструменты басового типа для усиления громкости +QSet bassInstruments = { + 28, // FngrBass (Фингер-бас) + 33, // FngrBass (Фингер-бас) - другой тип + 39, // FngrBass (Фингер-бас) - еще тип + 40, // SlapBas (Слэп-бас) + 38, // DstGtr (Дисторшн-гитара) - тоже можно усилить + 29, // Ovrdrive (Овердрайв-гитара) + 37 // Ovrdrive (Овердрайв-гитара) - другой тип +}; + +void SerialReader::run() +{ + while (!shouldStop) { + int fd = open(currentDevice.toUtf8().constData(), O_RDWR | O_NOCTTY); + if (fd < 0) { + emit error(QString("Cannot open %1").arg(currentDevice)); + emit connectionStatusChanged(false); + sleep(2); + continue; + } + + emit connectionStatusChanged(true); + + QString manufacturer = "Unknown"; + QString model = "Unknown"; + + if (currentDevice.contains("yamaha", Qt::CaseInsensitive) || + currentDevice.contains("psr", Qt::CaseInsensitive)) { + manufacturer = "Yamaha"; + model = "PSR Series"; + } else if (currentDevice.contains("dmmidi")) { + manufacturer = "Yamaha"; + model = "PSR-E333 (Direct MIDI)"; + } + + emit deviceInfoReceived(manufacturer, model); + + struct termios tty; + tcgetattr(fd, &tty); + cfsetospeed(&tty, B115200); + cfsetispeed(&tty, B115200); + tty.c_cflag |= (CLOCAL | CREAD | CS8); + tty.c_cc[VMIN] = 1; + tcsetattr(fd, TCSANOW, &tty); + + unsigned char byte; + while (!shouldStop && read(fd, &byte, 1) > 0) { + if (byte == 0xF8 || byte == 0xFE) { + continue; + } + + if (byte & 0x80) { + if ((byte & 0xF0) == 0x90) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + + if (velocity == 0) + emit noteOffReceived(hexNote); + else + emit noteOnReceived(hexNote, velocity); + } + } + else if ((byte & 0xF0) == 0x80) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + emit noteOffReceived(hexNote); + } + } + } + } + + close(fd); + emit connectionStatusChanged(false); + + if (!shouldStop) { + emit error(QString("Connection lost to %1. Attempting to reconnect...").arg(currentDevice)); + sleep(2); + } + } +} + +Yamitracker::Yamitracker(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::Yamitracker) + , serialReader(new SerialReader(this)) + , reconnectTimer(new QTimer(this)) + , isConnected(false) + , wavWriter(new SimpleWavWriter(this)) + , recordingStartTime(0) + , brrConverter(new BrrConverter(this)) + , audioPlayerProcess(new QProcess(this)) + , playbackSpeedSlider(nullptr) + , bassVolumeSlider(nullptr) + , speedLabel(nullptr) + , volumeLabel(nullptr) + , audioOutput(nullptr) + , audioBuffer(nullptr) + , playbackTimer(new QTimer(this)) + , isPlayingBack(false) + , currentPlaybackTrack(-1) + , currentTrack(0) + , globalRecordingStartTime(0) + , isGlobalRecording(false) +{ + ui->setupUi(this); + + deviceLabel = ui->deviceLabel; + refreshDevicesButton = ui->refreshDevicesButton; + midiFilesList = ui->midiFilesList; + instrumentComboBox = ui->instrumentComboBox; + trackComboBox = ui->trackComboBox; + + // Ищем элементы в UI + playbackSpeedSlider = findChild("playbackSpeedSlider"); + bassVolumeSlider = findChild("bassVolumeSlider"); + speedLabel = findChild("speedLabel"); + volumeLabel = findChild("volumeLabel"); + + // Настраиваем слайдеры, если они найдены + if (playbackSpeedSlider) { + playbackSpeedSlider->setRange(50, 200); // 50% - 200% + playbackSpeedSlider->setValue(100); // 100% по умолчанию + playbackSpeedSlider->setTickInterval(10); + playbackSpeedSlider->setTickPosition(QSlider::TicksBelow); + } + + if (bassVolumeSlider) { + bassVolumeSlider->setRange(100, 400); // 100% - 400% + bassVolumeSlider->setValue(200); // 200% по умолчанию + bassVolumeSlider->setTickInterval(50); + bassVolumeSlider->setTickPosition(QSlider::TicksBelow); + } + + // Инициализируем дорожки + initializeTracks(); + initializeTrackControls(); + + // Обновляем метки + updateSpeedLabel(); + updateVolumeLabel(); + updateTrackInfo(); + + // Подключаем сигналы + if (playbackSpeedSlider) { + connect(playbackSpeedSlider, &QSlider::valueChanged, this, &Yamitracker::onPlaybackSpeedChanged); + } + if (bassVolumeSlider) { + connect(bassVolumeSlider, &QSlider::valueChanged, this, &Yamitracker::onBassVolumeChanged); + } + + // Заполняем комбобокс инструментами + QList instrumentIds = instruments.keys(); + std::sort(instrumentIds.begin(), instrumentIds.end()); + for (int id : instrumentIds) { + QString instrumentName = instruments[id]; + // Добавляем пометку для басовых инструментов + if (bassInstruments.contains(id)) { + instrumentName += " [БАС - усилено]"; + } + instrumentComboBox->addItem(QString("%1: %2").arg(id).arg(instrumentName), id); + } + + initializeKeyButtons(); + initializeDeviceDetection(); + + // Подключаем сигналы серийного порта + connect(serialReader, &SerialReader::noteOnReceived, this, &Yamitracker::onNoteOnReceived); + connect(serialReader, &SerialReader::noteOffReceived, this, &Yamitracker::onNoteOffReceived); + connect(serialReader, &SerialReader::error, this, &Yamitracker::onError); + connect(serialReader, &SerialReader::connectionStatusChanged, this, &Yamitracker::onConnectionStatusChanged); + connect(serialReader, &SerialReader::deviceInfoReceived, this, &Yamitracker::onDeviceInfoReceived); + + // Подключаем кнопки управления записью + connect(ui->playButton, &QPushButton::clicked, this, &Yamitracker::onPlayClicked); + connect(ui->pauseButton, &QPushButton::clicked, this, &Yamitracker::onPauseClicked); + connect(ui->stopButton, &QPushButton::clicked, this, &Yamitracker::onStopClicked); + connect(ui->convertButton, &QPushButton::clicked, this, &Yamitracker::onConvertToBrrClicked); + connect(refreshDevicesButton, &QPushButton::clicked, this, &Yamitracker::onRefreshDevicesClicked); + connect(ui->loadMidiButton, &QPushButton::clicked, this, &Yamitracker::onLoadMidiFileClicked); + connect(ui->selectFileButton, &QPushButton::clicked, this, &Yamitracker::onSelectFileForConversion); + connect(ui->playFileButton, &QPushButton::clicked, this, &Yamitracker::onSelectFileForPlayback); + connect(ui->saveRecordingButton, &QPushButton::clicked, this, &Yamitracker::onSaveRecordingClicked); + connect(ui->playMidiButton, &QPushButton::clicked, this, &Yamitracker::onPlayMidiFileClicked); + connect(ui->recordFromMidiButton, &QPushButton::clicked, this, &Yamitracker::onRecordFromMidiFile); + connect(midiFilesList, &QListWidget::itemSelectionChanged, this, &Yamitracker::onSelectedMidiFileChanged); + connect(ui->saveMusicButton, &QPushButton::clicked, this, &Yamitracker::onSaveMusicFileClicked); + connect(ui->addTrackButton, &QPushButton::clicked, this, &Yamitracker::onAddTrackClicked); + connect(ui->removeTrackButton, &QPushButton::clicked, this, &Yamitracker::onRemoveTrackClicked); + connect(ui->clearTrackButton, &QPushButton::clicked, this, &Yamitracker::onClearTrackClicked); + connect(trackComboBox, QOverload::of(&QComboBox::currentIndexChanged), this, &Yamitracker::onCurrentTrackChanged); + + // Подключаем новые кнопки + connect(ui->playTrackButton, &QPushButton::clicked, this, &Yamitracker::onPlayTrackClicked); + connect(ui->playAllButton, &QPushButton::clicked, this, &Yamitracker::onPlayAllTracksClicked); + connect(ui->stopPlaybackButton, &QPushButton::clicked, this, &Yamitracker::onStopPlaybackClicked); + connect(ui->loadWavButton, &QPushButton::clicked, this, &Yamitracker::onLoadWavToTrackClicked); + connect(ui->copyTrackButton, &QPushButton::clicked, this, &Yamitracker::onCopyTrackClicked); + connect(ui->mergeTrackButton, &QPushButton::clicked, this, &Yamitracker::onMergeTracksClicked); + + // Подключаем сигналы от wavWriter + connect(wavWriter, &SimpleWavWriter::trackUpdated, this, [this](int track) { + if (track == currentTrack) { + updateTrackInfo(); + } + }); + + connect(wavWriter, &SimpleWavWriter::recordingStatusChanged, this, [this](bool recording) { + if (recording) { + ui->statusLabel->setText("Запись активна"); + ui->playButton->setEnabled(false); + ui->stopButton->setEnabled(true); + ui->pauseButton->setEnabled(true); + } else { + ui->statusLabel->setText("Запись остановлена"); + ui->playButton->setEnabled(true); + ui->stopButton->setEnabled(false); + ui->pauseButton->setEnabled(false); + ui->pauseButton->setText("⏸ Пауза"); + } + }); + + connect(reconnectTimer, &QTimer::timeout, this, &Yamitracker::attemptReconnect); + reconnectTimer->start(5000); + + connect(audioPlayerProcess, QOverload::of(&QProcess::finished), + this, [this](int exitCode, QProcess::ExitStatus exitStatus) { + Q_UNUSED(exitCode); + if (exitStatus == QProcess::NormalExit) { + ui->statusLabel->setText("Воспроизведение завершено"); + } + }); + + // Подключаем таймер воспроизведения + connect(playbackTimer, &QTimer::timeout, this, &Yamitracker::onPlaybackFinished); + // СИГНАЛЫ varWriter выше не + // как в предыдущей версии + + // ОБНОВЛЕННЫЙ СТИЛЬ - черный текст на белом фоне для панели управления дорожками + // Остальные элементы остаются с белым текстом на темном фоне + setStyleSheet( + "QMainWindow { background-color: #2b2b2b; }" + "QLabel { color: #ffffff; font-size: 14px; font-weight: bold; }" + "QGroupBox { color: #ffffff; font-weight: bold; border: 2px solid #555; border-radius: 5px; margin-top: 10px; }" + "QGroupBox::title { color: #ffffff; subcontrol-origin: margin; left: 10px; padding: 0 5px 0 5px; }" + "QPushButton { background-color: #4a4a4a; color: #ffffff; border: 1px solid #555; border-radius: 3px; padding: 5px; font-weight: bold; }" + "QPushButton:hover { background-color: #5a5a5a; }" + "QPushButton:pressed { background-color: #3a3a3a; }" + "QPushButton[whiteKey=true] { background-color: white; color: black; border: 1px solid #ccc; font-size: 8pt; }" + "QPushButton[whiteKey=true]:pressed { background-color: #ff4444; color: white; }" + "QPushButton[blackKey=true] { background-color: black; color: white; font-size: 7pt; }" + "QPushButton[blackKey=true]:pressed { background-color: #ff4444; }" + "QProgressBar { border: 1px solid #555; background: #333; color: white; }" + "QProgressBar::chunk { background: #4CAF50; }" + "QListWidget { background-color: #333; color: #ffffff; border: 1px solid #555; selection-background-color: #555; }" + "QComboBox { background-color: #333; color: #ffffff; border: 1px solid #555; padding: 5px; }" + "QComboBox QAbstractItemView { background-color: #333; color: #ffffff; selection-background-color: #555; }" + "QComboBox::drop-down { border: none; }" + "QComboBox::down-arrow { image: none; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid white; }" + "QSlider::groove:horizontal { border: 1px solid #555; height: 8px; background: #333; margin: 2px 0; }" + "QSlider::handle:horizontal { background: #4CAF50; border: 1px solid #5f5f5f; width: 18px; margin: -2px 0; border-radius: 3px; }" + "QLineEdit { background-color: #ffffff; color: #000000; border: 1px solid #555; padding: 3px; }" // Изменено: белый фон, черный текст + "QCheckBox { color: #ffffff; }" + "QCheckBox::indicator { width: 16px; height: 16px; }" + // Стили для панели управления дорожками + "QScrollArea { background-color: white; }" + "QScrollArea QGroupBox { background-color: white; color: #000000; border: 2px solid #aaa; }" + "QScrollArea QGroupBox::title { color: #000000; }" + "QScrollArea QLabel { color: #000000; }" + "QScrollArea QComboBox { background-color: white; color: #000000; border: 1px solid #aaa; }" + "QScrollArea QComboBox QAbstractItemView { background-color: white; color: #000000; selection-background-color: #ddd; }" + "QScrollArea QPushButton { background-color: #e0e0e0; color: #000000; border: 1px solid #aaa; }" + "QScrollArea QPushButton:hover { background-color: #d0d0d0; }" + "QScrollArea QPushButton:pressed { background-color: #b0b0b0; }" + "QScrollArea QSlider::groove:horizontal { border: 1px solid #aaa; height: 8px; background: #ddd; }" + "QScrollArea QSlider::handle:horizontal { background: #4CAF50; border: 1px solid #5f5f5f; }" + ); + + QTimer::singleShot(1000, this, &Yamitracker::autoDetectAndConnect); + setWindowTitle("Yamaha PSR-E333 Monitor - Multitrack Recording"); + + // Сканируем MIDI файлы при запуске + scanMidiFiles(); + + // Информация о басовых инструментах + qDebug() << "Бас-инструменты усилены в" << bassVolumeMultiplier << "раз"; + qDebug() << "Бас-инструменты: FngrBass(28,33,39), SlapBas(40), Ovrdrive(29,37), DstGtr(38)"; +} + +void Yamitracker::initializeTracks() +{ + trackComboBox->clear(); + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { // Используем MAX_TRACKS + QString trackName = wavWriter->getTrackName(i); + trackComboBox->addItem(trackName, i); + } + trackComboBox->setCurrentIndex(0); + currentTrack = 0; +} + +void Yamitracker::initializeTrackControls() +{ + // Получаем ScrollArea для управления дорожками + QScrollArea* scrollArea = findChild("scrollArea"); + if (!scrollArea) return; + + QWidget* scrollContent = new QWidget(); + QVBoxLayout* tracksLayout = new QVBoxLayout(scrollContent); + + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + QGroupBox* trackGroup = new QGroupBox(QString("Дорожка %1").arg(i + 1), scrollContent); + trackGroup->setProperty("trackIndex", i); + + QHBoxLayout* trackLayout = new QHBoxLayout(trackGroup); + + // Название дорожки + QLineEdit* nameEdit = new QLineEdit(wavWriter->getTrackName(i), trackGroup); + nameEdit->setProperty("trackIndex", i); + nameEdit->setObjectName(QString("trackNameEdit_%1").arg(i)); + nameEdit->setMaximumWidth(150); + connect(nameEdit, &QLineEdit::textChanged, this, &Yamitracker::onTrackNameChanged); + trackNameEdits.append(nameEdit); + + // Инструмент дорожки + QComboBox* instrumentBox = new QComboBox(trackGroup); + instrumentBox->setProperty("trackIndex", i); + instrumentBox->setObjectName(QString("trackInstrumentBox_%1").arg(i)); + instrumentBox->setMaximumWidth(150); + + QList instrumentIds = instruments.keys(); + std::sort(instrumentIds.begin(), instrumentIds.end()); + for (int id : instrumentIds) { + QString instrumentName = instruments[id]; + if (bassInstruments.contains(id)) { + instrumentName += " [БАС]"; + } + instrumentBox->addItem(instrumentName, id); + } + + // Устанавливаем текущий инструмент + int currentInstrument = wavWriter->getTrackInstrument(i); + int index = instrumentBox->findData(currentInstrument); + if (index >= 0) { + instrumentBox->setCurrentIndex(index); + } + + connect(instrumentBox, QOverload::of(&QComboBox::currentIndexChanged), + this, &Yamitracker::onTrackInstrumentChanged); + trackInstrumentComboBoxes.append(instrumentBox); + + // Громкость + QSlider* volumeSlider = new QSlider(Qt::Horizontal, trackGroup); + volumeSlider->setProperty("trackIndex", i); + volumeSlider->setObjectName(QString("trackVolumeSlider_%1").arg(i)); + volumeSlider->setRange(0, 200); + volumeSlider->setValue(static_cast(wavWriter->getTrackVolume(i) * 100)); + volumeSlider->setMaximumWidth(100); + connect(volumeSlider, &QSlider::valueChanged, this, &Yamitracker::onTrackVolumeChanged); + trackVolumeSliders.append(volumeSlider); + + QLabel* volumeLabel = new QLabel(QString("%1%").arg(volumeSlider->value()), trackGroup); + volumeLabel->setProperty("trackIndex", i); + volumeLabel->setObjectName(QString("trackVolumeLabel_%1").arg(i)); + volumeLabel->setMaximumWidth(40); + + // Кнопка Mute + QPushButton* muteButton = new QPushButton(wavWriter->isTrackMuted(i) ? "🔇" : "🔊", trackGroup); + muteButton->setProperty("trackIndex", i); + muteButton->setObjectName(QString("trackMuteButton_%1").arg(i)); + muteButton->setMaximumWidth(40); + connect(muteButton, &QPushButton::clicked, this, &Yamitracker::onMuteTrackClicked); + trackMuteButtons.append(muteButton); + + // Кнопка Solo + QPushButton* soloButton = new QPushButton("🎧", trackGroup); + soloButton->setProperty("trackIndex", i); + soloButton->setObjectName(QString("trackSoloButton_%1").arg(i)); + soloButton->setMaximumWidth(40); + connect(soloButton, &QPushButton::clicked, this, &Yamitracker::onSoloTrackClicked); + trackSoloButtons.append(soloButton); + + // Информация о дорожке + QLabel* infoLabel = new QLabel(QString("%1 нот").arg(wavWriter->getEventCount(i)), trackGroup); + infoLabel->setProperty("trackIndex", i); + infoLabel->setObjectName(QString("trackInfoLabel_%1").arg(i)); + + // Кнопка выбора для одновременного воспроизведения + QCheckBox* selectCheck = new QCheckBox("Воспр.", trackGroup); + selectCheck->setProperty("trackIndex", i); + selectCheck->setObjectName(QString("trackSelectCheck_%1").arg(i)); // MAYBE ЭТОТ БЛОК КОДА ВСЕ ЛОМАЕТ ПО ПРИЧИНЕ ОДНОВРЕМЕНОГО ПРОИЗВЕДЕНИЯ, ТК У НАС ИДЕТ ПАРАЛЛЕЛЬНАЯ ЗАПИСЬ + selectCheck->setChecked(true); + connect(selectCheck, &QCheckBox::stateChanged, this, &Yamitracker::onTrackSelectChanged); + trackSelectChecks.append(selectCheck); + + // Добавляем элементы в layout + trackLayout->addWidget(new QLabel("Название:", trackGroup)); + trackLayout->addWidget(nameEdit); + trackLayout->addWidget(new QLabel("Инструмент:", trackGroup)); + trackLayout->addWidget(instrumentBox); + trackLayout->addWidget(new QLabel("Громкость:", trackGroup)); + trackLayout->addWidget(volumeSlider); + trackLayout->addWidget(volumeLabel); + trackLayout->addWidget(muteButton); + trackLayout->addWidget(soloButton); + trackLayout->addWidget(selectCheck); + trackLayout->addWidget(infoLabel); + + tracksLayout->addWidget(trackGroup); + } + + // Добавляем растягивающийся спейсер в конец + tracksLayout->addStretch(); + + scrollArea->setWidget(scrollContent); + scrollArea->setWidgetResizable(true); +} + +void Yamitracker::updateTrackControls() +{ + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i < trackNameEdits.size()) { + trackNameEdits[i]->setText(wavWriter->getTrackName(i)); + } + + if (i < trackInstrumentComboBoxes.size()) { + int currentInstrument = wavWriter->getTrackInstrument(i); + int index = trackInstrumentComboBoxes[i]->findData(currentInstrument); + if (index >= 0) { + trackInstrumentComboBoxes[i]->setCurrentIndex(index); + } + } + + if (i < trackVolumeSliders.size()) { + trackVolumeSliders[i]->setValue(static_cast(wavWriter->getTrackVolume(i) * 100)); + } + + if (i < trackMuteButtons.size()) { + trackMuteButtons[i]->setText(wavWriter->isTrackMuted(i) ? "🔇" : "🔊"); + } + + if (i < trackSoloButtons.size()) { + // Обновляем текст кнопки solo при необходимости + } + + // Обновляем информацию о дорожке + QLabel* infoLabel = findChild(QString("trackInfoLabel_%1").arg(i)); + if (infoLabel) { + infoLabel->setText(QString("%1 нот").arg(wavWriter->getEventCount(i))); + } + + // Обновляем метку громкости + QLabel* volumeLabel = findChild(QString("trackVolumeLabel_%1").arg(i)); + if (volumeLabel) { + volumeLabel->setText(QString("%1%").arg(trackVolumeSliders[i]->value())); + } + } +} + +void Yamitracker::updateTrackInfo() +{ + int eventCount = wavWriter->getEventCount(currentTrack); + QString trackName = wavWriter->getTrackName(currentTrack); + ui->trackInfoLabel->setText(QString("%1: %2 нот").arg(trackName).arg(eventCount)); +} + +void Yamitracker::onCurrentTrackChanged(int index) +{ + if (wavWriter->isRecording() && isGlobalRecording) { + QMessageBox::warning(this, "Переключение дорожки", + "Переключение дорожки во время записи может привести к рассинхронизации. " + "Все дорожки используют общее время записи."); + } + + currentTrack = trackComboBox->itemData(index).toInt(); + updateTrackInfo(); +} + +void Yamitracker::onPlaybackSpeedChanged(int value) +{ + double speedPercent = value / 100.0; + wavWriter->setPlaybackSpeed(speedPercent); + updateSpeedLabel(); +} + +void Yamitracker::onBassVolumeChanged(int value) +{ + double volumeMultiplier = value / 100.0; + wavWriter->setBassVolumeMultiplier(volumeMultiplier); + bassVolumeMultiplier = volumeMultiplier; + updateVolumeLabel(); +} + +void Yamitracker::updateSpeedLabel() +{ + if (speedLabel && playbackSpeedSlider) { + int speed = playbackSpeedSlider->value(); + speedLabel->setText(QString("Скорость: %1%").arg(speed)); + } +} + +void Yamitracker::updateVolumeLabel() +{ + if (volumeLabel && bassVolumeSlider) { + int volume = bassVolumeSlider->value(); + volumeLabel->setText(QString("Бас: %1%").arg(volume)); + } +} + +void Yamitracker::onSaveMusicFileClicked() +{ + QString defaultName = "music_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".s"; + QString filename = QFileDialog::getSaveFileName(this, "Сохранить музыкальный файл", defaultName, "ASM файлы (*.s);;Все файлы (*)"); + + if (!filename.isEmpty()) { + saveMusicFile(filename); + } +} + +void Yamitracker::saveMusicFile(const QString &filename) +{ + if (wavWriter->saveToMusicFile(filename)) { + ui->statusLabel->setText(QString("Музыкальный файл сохранен: %1").arg(filename)); + + // Показываем информацию о сохраненном файле + QFileInfo fileInfo(filename); + QString info = QString("Музыкальный файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Pently-style assembler") + .arg(filename) + .arg(fileInfo.size()); + QMessageBox::information(this, "Файл сохранен", info); + + // Открываем файл для просмотра + QDesktopServices::openUrl(QUrl::fromLocalFile(filename)); + } else { + ui->statusLabel->setText("Ошибка сохранения музыкального файла"); + QMessageBox::warning(this, "Ошибка", "Не удалось сохранить музыкальный файл"); + } +} + +void Yamitracker::onAddTrackClicked() +{ + // Создаем новую дорожку + int newTrack = -1; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (wavWriter->getEventCount(i) == 0 && wavWriter->getTrackName(i).startsWith("Дорожка")) { + newTrack = i; + break; + } + } + + if (newTrack == -1) { + QMessageBox::warning(this, "Ошибка", "Достигнуто максимальное количество дорожек"); + return; + } + + // Устанавливаем название новой дорожки + QString newName = QString("Дорожка %1").arg(newTrack + 1); + wavWriter->setTrackName(newTrack, newName); + + // Переключаемся на новую дорожку + trackComboBox->setCurrentIndex(newTrack); + currentTrack = newTrack; + + ui->statusLabel->setText(QString("Создана новая дорожка %1").arg(newTrack + 1)); + updateTrackControls(); + updateTrackInfo(); +} + +void Yamitracker::onRemoveTrackClicked() +{ + if (wavWriter->getEventCount(currentTrack) == 0) { + QMessageBox::warning(this, "Ошибка", "Дорожка уже пуста"); + return; + } + + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Удаление дорожки", + QString("Вы уверены, что хотите удалить дорожку %1?\nВсе данные будут потеряны.") + .arg(currentTrack + 1), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + wavWriter->clearTrack(currentTrack); + ui->statusLabel->setText(QString("Дорожка %1 очищена").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onClearTrackClicked() +{ + if (wavWriter->getEventCount(currentTrack) == 0) { + ui->statusLabel->setText("Дорожка уже пуста"); + return; + } + + wavWriter->clearTrack(currentTrack); + ui->statusLabel->setText(QString("Дорожка %1 очищена").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); +} + +void Yamitracker::onPlayTrackClicked() +{ + playTrack(currentTrack); +} + +void Yamitracker::onPlayAllTracksClicked() +{ + playAllTracks(); +} + +void Yamitracker::onStopPlaybackClicked() +{ + stopPlayback(); +} + +void Yamitracker::playTrack(int track) +{ + if (isPlayingBack) { + stopPlayback(); + } + + QByteArray audioData = wavWriter->getTrackAudioData(track, false); + if (audioData.isEmpty()) { + ui->statusLabel->setText(QString("Дорожка %1 пуста").arg(track + 1)); + return; + } + + // Настраиваем аудиовыход с высоким качеством + QAudioFormat format; + format.setSampleRate(44100); // Высокое качество + format.setChannelCount(2); // Стерео + format.setSampleSize(16); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(format)) { + format = info.nearestFormat(format); + } + + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + } + if (audioBuffer) { + delete audioBuffer; + } + + audioOutput = new QAudioOutput(format, this); + + // Конвертируем моно в стерео для лучшего качества + QByteArray stereoData = convertMonoToStereo(audioData); + audioBuffer = new QBuffer(this); + audioBuffer->setData(stereoData); + audioBuffer->open(QIODevice::ReadOnly); + + connect(audioOutput, &QAudioOutput::stateChanged, this, &Yamitracker::handleAudioStateChanged); + + currentPlaybackTrack = track; + isPlayingBack = true; + ui->statusLabel->setText(QString("Воспроизведение дорожки %1...").arg(track + 1)); + + audioOutput->start(audioBuffer); + + // Запускаем таймер для отслеживания завершения воспроизведения + playbackTimer->start(100); +} + +void Yamitracker::playAllTracks() +{ + if (isPlayingBack) { + stopPlayback(); + } + + // Получаем аудиоданные всех дорожек (уже микшированные) + QByteArray audioData = wavWriter->getAllTracksAudioData(); + if (audioData.isEmpty()) { + ui->statusLabel->setText("Нет данных для воспроизведения"); + return; + } + + // Настраиваем аудиовыход с высоким качеством + QAudioFormat format; + format.setSampleRate(44100); // Высокое качество + format.setChannelCount(2); // Стерео + format.setSampleSize(16); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(format)) { + format = info.nearestFormat(format); + } + + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + } + if (audioBuffer) { + delete audioBuffer; + } + + audioOutput = new QAudioOutput(format, this); + + // Конвертируем моно в стерео для лучшего качества + QByteArray stereoData = convertMonoToStereo(audioData); + audioBuffer = new QBuffer(this); + audioBuffer->setData(stereoData); + audioBuffer->open(QIODevice::ReadOnly); + + connect(audioOutput, &QAudioOutput::stateChanged, this, &Yamitracker::handleAudioStateChanged); + + currentPlaybackTrack = -1; // Все дорожки + isPlayingBack = true; + + // Получаем количество активных дорожек + int activeTracks = 0; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (!wavWriter->isTrackMuted(i) && wavWriter->getEventCount(i) > 0) { + activeTracks++; + } + } + + ui->statusLabel->setText(QString("Воспроизведение всех дорожек (%1 активных)...").arg(activeTracks)); + + audioOutput->start(audioBuffer); + + // Запускаем таймер для отслеживания завершения воспроизведения + playbackTimer->start(100); +} + +QByteArray Yamitracker::mixSelectedTracks(const QVector &trackIndices) +{ + // Создаем временный WAV writer для микширования + SimpleWavWriter tempWriter; + + // Копируем данные из выбранных дорожек + for (int trackIndex : trackIndices) { + // Копируем события из оригинальной дорожки + // Здесь нужно добавить логику копирования событий + // Временно используем getAllTracksAudioData + } + + return wavWriter->getAllTracksAudioData(); +} + +QByteArray Yamitracker::convertMonoToStereo(const QByteArray &monoData) +{ + // Конвертируем моно 16-битные данные в стерео + const qint16 *monoSamples = reinterpret_cast(monoData.constData()); + int monoCount = monoData.size() / sizeof(qint16); + + QByteArray stereoData(monoCount * 2 * sizeof(qint16), 0); + qint16 *stereoSamples = reinterpret_cast(stereoData.data()); + + for (int i = 0; i < monoCount; i++) { + stereoSamples[i * 2] = monoSamples[i]; // Левый канал + stereoSamples[i * 2 + 1] = monoSamples[i]; // Правый канал + } + + return stereoData; +} + +void Yamitracker::stopPlayback() +{ + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + audioOutput = nullptr; + } + + if (audioBuffer) { + audioBuffer->close(); + delete audioBuffer; + audioBuffer = nullptr; + } + + isPlayingBack = false; + currentPlaybackTrack = -1; + ui->statusLabel->setText("Воспроизведение остановлено"); + playbackTimer->stop(); +} + +void Yamitracker::handleAudioStateChanged(QAudio::State state) +{ + switch (state) { + case QAudio::IdleState: + // Воспроизведение завершено + onPlaybackFinished(); + break; + case QAudio::StoppedState: + if (audioOutput && audioOutput->error() != QAudio::NoError) { + ui->statusLabel->setText("Ошибка воспроизведения"); + } + break; + default: + break; + } +} + +void Yamitracker::onPlaybackFinished() +{ + isPlayingBack = false; + + if (currentPlaybackTrack >= 0) { + ui->statusLabel->setText(QString("Воспроизведение дорожки %1 завершено").arg(currentPlaybackTrack + 1)); + } else if (currentPlaybackTrack == -1) { + ui->statusLabel->setText("Воспроизведение всех дорожек завершено"); + } else { + ui->statusLabel->setText("Воспроизведение завершено"); + } + + currentPlaybackTrack = -1; + playbackTimer->stop(); +} + +void Yamitracker::onLoadWavToTrackClicked() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + if (wavWriter->loadWavToTrack(filename, currentTrack)) { + ui->statusLabel->setText(QString("WAV файл загружен в дорожку %1").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); + } else { + ui->statusLabel->setText("Ошибка загрузки WAV файла"); + } + } +} + +void Yamitracker::onCopyTrackClicked() +{ + bool ok; + int targetTrack = QInputDialog::getInt(this, "Копирование дорожки", + "Введите номер целевой дорожки (1-7):", + currentTrack + 1, 1, 7, 1, &ok); + + if (ok && targetTrack - 1 != currentTrack) { + wavWriter->copyTrack(currentTrack, targetTrack - 1); + ui->statusLabel->setText(QString("Дорожка %1 скопирована в дорожку %2") + .arg(currentTrack + 1).arg(targetTrack)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onMergeTracksClicked() +{ + bool ok; + int targetTrack = QInputDialog::getInt(this, "Объединение дорожек", + "Введите номер дорожки для объединения (1-7):", + currentTrack + 1, 1, 7, 1, &ok); + + if (ok && targetTrack - 1 != currentTrack) { + wavWriter->mergeTrack(currentTrack, targetTrack - 1); + ui->statusLabel->setText(QString("Дорожка %1 объединена с дорожкой %2") + .arg(currentTrack + 1).arg(targetTrack)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onMuteTrackClicked() +{ + QPushButton* button = qobject_cast(sender()); + if (!button) return; + + int track = button->property("trackIndex").toInt(); + bool muted = wavWriter->isTrackMuted(track); + wavWriter->muteTrack(track, !muted); + + button->setText(!muted ? "🔇" : "🔊"); + ui->statusLabel->setText(QString("Дорожка %1 %2") + .arg(track + 1) + .arg(!muted ? "заглушена" : "включена")); +} + +void Yamitracker::onSoloTrackClicked() +{ + QPushButton* button = qobject_cast(sender()); + if (!button) return; + + int soloTrack = button->property("trackIndex").toInt(); + + // Выключаем все дорожки кроме выбранной + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + wavWriter->muteTrack(i, i != soloTrack); + if (i < trackMuteButtons.size()) { + trackMuteButtons[i]->setText(i == soloTrack ? "🔊" : "🔇"); + } + } + + ui->statusLabel->setText(QString("Только дорожка %1 воспроизводится").arg(soloTrack + 1)); +} + +void Yamitracker::onTrackVolumeChanged(int value) +{ + QSlider* slider = qobject_cast(sender()); + if (!slider) return; + + int track = slider->property("trackIndex").toInt(); + wavWriter->setTrackVolume(track, value / 100.0); + + // Обновляем метку громкости + QLabel* volumeLabel = findChild(QString("trackVolumeLabel_%1").arg(track)); + if (volumeLabel) { + volumeLabel->setText(QString("%1%").arg(value)); + } +} + +void Yamitracker::onTrackNameChanged() +{ + QLineEdit* edit = qobject_cast(sender()); + if (!edit) return; + + int track = edit->property("trackIndex").toInt(); + wavWriter->setTrackName(track, edit->text()); + + // Обновляем комбобокс дорожек + if (track == currentTrack) { + trackComboBox->setItemText(trackComboBox->currentIndex(), edit->text()); + } +} + +void Yamitracker::onTrackInstrumentChanged(int index) +{ + QComboBox* combo = qobject_cast(sender()); + if (!combo) return; + + int track = combo->property("trackIndex").toInt(); + int instrument = combo->itemData(index).toInt(); + wavWriter->setTrackInstrument(track, instrument); + + ui->statusLabel->setText(QString("Инструмент дорожки %1 изменен на %2") + .arg(track + 1) + .arg(instruments.value(instrument, "Неизвестный"))); +} + +void Yamitracker::initializeKeyButtons() +{ + QList whiteKeys = { + ui->key_C1, ui->key_D1, ui->key_E1, ui->key_F1, ui->key_G1, ui->key_A1, ui->key_B1, + ui->key_C2, ui->key_D2, ui->key_E2, ui->key_F2, ui->key_G2, ui->key_A2, ui->key_B2, + ui->key_C3, ui->key_D3, ui->key_E3, ui->key_F3, ui->key_G3, ui->key_A3, ui->key_B3, + ui->key_C4, ui->key_D4, ui->key_E4, ui->key_F4, ui->key_G4, ui->key_A4, ui->key_B4, + ui->key_C5, ui->key_D5, ui->key_E5, ui->key_F5, ui->key_G5, ui->key_A5, ui->key_B5, + ui->key_C6 + }; + + for (QPushButton *key : whiteKeys) { + key->setProperty("whiteKey", true); + keyButtons[key->text()] = key; + } + + QList blackKeys = { + ui->key_Cs1, ui->key_Ds1, ui->key_Fs1, ui->key_Gs1, ui->key_As1, + ui->key_Cs2, ui->key_Ds2, ui->key_Fs2, ui->key_Gs2, ui->key_As2, + ui->key_Cs3, ui->key_Ds3, ui->key_Fs3, ui->key_Gs3, ui->key_As3, + ui->key_Cs4, ui->key_Ds4, ui->key_Fs4, ui->key_Gs4, ui->key_As4, + ui->key_Cs5, ui->key_Ds5, ui->key_Fs5, ui->key_Gs5, ui->key_As5 + }; + + for (QPushButton *key : blackKeys) { + key->setProperty("blackKey", true); + keyButtons[key->text()] = key; + } +} + +QString Yamitracker::getInstrumentName(int program) +{ + return instruments.contains(program) ? instruments[program] : QString("Unknown (%1)").arg(program); +} + +void Yamitracker::onNoteOnReceived(const QString &data, int velocity) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.insert(note); + highlightKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + int volume = (velocity * 100) / 127; + ui->volumeBar->setValue(volume); + + if (isGlobalRecording) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - globalRecordingStartTime; + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + // ТОЛЬКО сохраняем время начала, не добавляем ноту + noteStartTimes[data] = currentTime; + noteVelocities[data] = velocity; // Сохраняем velocity + noteInstruments[data] = instrumentComboBox->currentData().toInt(); // Сохраняем инструмент + noteTracks[data] = currentTrack; // Сохраняем текущую дорожку + } + } +} + +void Yamitracker::onNoteOffReceived(const QString &data) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.remove(note); + clearKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + if (currentlyPressedKeys.isEmpty()) { + ui->volumeBar->setValue(0); + } + + if (isGlobalRecording && noteStartTimes.contains(data)) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - globalRecordingStartTime; + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + double noteStartTime = noteStartTimes[data]; + double duration = currentTime - noteStartTime; + int noteVelocity = noteVelocities.value(data, 100); + int currentInstrument = noteInstruments.value(data, instrumentComboBox->currentData().toInt()); + int track = noteTracks.value(data, currentTrack); + + // Добавляем ноту ОДИН РАЗ с правильными параметрами + wavWriter->addNote(track, noteStartTime, noteNumber, noteVelocity, duration, currentInstrument); + + noteStartTimes.remove(data); + noteVelocities.remove(data); + noteInstruments.remove(data); + noteTracks.remove(data); + + updateTrackInfo(); + updateTrackControls(); + } + } +} + +void Yamitracker::onConnectionStatusChanged(bool connected) +{ + isConnected = connected; + if (connected) { + ui->statusLabel->setText("Статус: Подключено к синтезатору"); + } else { + ui->statusLabel->setText("Статус: Отключено (переподключение...)"); + } +} + +void Yamitracker::attemptReconnect() +{ + if (!isConnected && (!serialReader || !serialReader->isRunning())) { + qDebug() << "Attempting to reconnect..."; + startSerialReader(); + } +} + +void Yamitracker::onError(const QString &message) +{ + // НЕ показываем всплывающее окно с ошибкой подключения + // Просто обновляем статус в строке состояния + ui->statusLabel->setText("Ошибка: " + message); + + // Показываем окно только для критических ошибок (не связанных с подключением) + if (!message.contains("Cannot open", Qt::CaseInsensitive) && + !message.contains("Connection lost", Qt::CaseInsensitive) && + !message.contains("reconnect", Qt::CaseInsensitive)) { + QMessageBox::warning(this, "Ошибка", message); + } +} + +void Yamitracker::onPlayClicked() +{ + // Получаем выбранный инструмент + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Запись с синтезатора [БАС x%1]...").arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText("Запись с синтезатора..."); + } + + noteStartTimes.clear(); + currentlyPressedKeys.clear(); + clearAllHighlights(); + + // Если это первая запись в сессии, начинаем глобальную запись + if (!isGlobalRecording) { + globalRecordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + isGlobalRecording = true; + qDebug() << "Начало глобальной записи. Все дорожки будут синхронизированы."; + } + + // Начинаем запись с высоким качеством + if (wavWriter->startRecording(44100)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started WAV recording from synthesizer, track:" << currentTrack + << "sample rate: 44100, instrument:" << currentInstrument; + if (isBassInstrument) { + qDebug() << "Bass instrument detected - volume will be increased"; + } + + // Активируем кнопку паузы + ui->pauseButton->setEnabled(true); + } +} + +void Yamitracker::onPauseClicked() +{ + if (wavWriter->isRecording()) { + if (wavWriter->isPaused()) { + wavWriter->resumeRecording(); + ui->statusLabel->setText("Запись возобновлена..."); + ui->pauseButton->setText("⏸ Пауза"); + } else { + wavWriter->pauseRecording(); + ui->statusLabel->setText("Запись приостановлена"); + ui->pauseButton->setText("▶ Продолжить"); + } + } +} + +void Yamitracker::onStopClicked() +{ + ui->statusLabel->setText("Запись остановлена"); + + clearAllHighlights(); + currentlyPressedKeys.clear(); + ui->keysInfoLabel->setText("Нажато клавиш: 0"); + ui->volumeBar->setValue(0); + + if (wavWriter->isRecording()) { + wavWriter->stopRecording(); + + // Деактивируем кнопку паузы + ui->pauseButton->setEnabled(false); + ui->pauseButton->setText("⏸ Пауза"); + + // Предлагаем сохранить запись, если это последняя дорожка + bool hasMoreTracks = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i != currentTrack && wavWriter->getEventCount(i) == 0) { + hasMoreTracks = true; + break; + } + } + + if (!hasMoreTracks) { + onSaveRecordingClicked(); + } + } + + noteStartTimes.clear(); +} + +void Yamitracker::onSaveRecordingClicked() +{ + QString defaultName = "recording_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".wav"; + QString filename = QFileDialog::getSaveFileName(this, "Сохранить запись", defaultName, "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + saveWavFile(filename); + + // Сбрасываем глобальную запись + isGlobalRecording = false; + globalRecordingStartTime = 0; + } +} + +void Yamitracker::saveWavFile(const QString &filename) +{ + // Проверяем, есть ли данные для сохранения + bool hasData = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (wavWriter->getEventCount(i) > 0) { + hasData = true; + break; + } + } + + if (!hasData) { + QMessageBox::warning(this, "Ошибка", + "Нет данных для сохранения. Запишите хотя бы одну ноту на любой дорожке."); + return; + } + + if (wavWriter->saveToFile(filename)) { + lastRecordedWavFile = filename; + ui->statusLabel->setText(QString("Сохранено: %1").arg(filename)); + + // Показываем информацию о сохраненном файле + QFileInfo fileInfo(filename); + QString info = QString("WAV файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: 44100 Гц, 16 бит, моно\n" + "Все дорожки микшированы для параллельного воспроизведения") + .arg(filename) + .arg(fileInfo.size()); + QMessageBox::information(this, "Файл сохранен", info); + + // Активируем кнопку конвертации + ui->convertButton->setEnabled(true); + ui->saveMusicButton->setEnabled(true); + + // Предлагаем воспроизвести файл + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Запись завершена", + QString("WAV файл сохранен:\n%1\n\nВоспроизвести файл?").arg(filename), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + playWavExternal(lastRecordedWavFile); + } + } else { + ui->statusLabel->setText("Ошибка сохранения WAV файла"); + QMessageBox::warning(this, "Ошибка", + "Не удалось сохранить WAV файл. Возможно:\n" + "1. Нет данных для записи\n" + "2. Недостаточно прав для записи\n" + "3. Диск переполнен"); + } +} + +void Yamitracker::onConvertToBrrClicked() +{ + if (lastRecordedWavFile.isEmpty() || !QFile::exists(lastRecordedWavFile)) { + onSelectFileForConversion(); + return; + } + + QString baseName = QFileInfo(lastRecordedWavFile).completeBaseName(); + QString brrFile = QFileDialog::getSaveFileName(this, "Сохранить BRR файл", baseName + ".brr", "BRR файлы (*.brr)"); + + if (brrFile.isEmpty()) return; + + ui->statusLabel->setText("Конвертация WAV -> BRR..."); + QApplication::processEvents(); + + if (brrConverter->convertWavToBrr(lastRecordedWavFile, brrFile)) { + ui->statusLabel->setText(QString("Конвертация завершена: %1").arg(brrFile)); + + QFileInfo brrInfo(brrFile); + if (brrInfo.exists()) { + QString info = QString("BRR файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Nintendo SNES ADPCM") + .arg(brrFile) + .arg(brrInfo.size()); + QMessageBox::information(this, "Конвертация завершена", info); + } + } else { + ui->statusLabel->setText("Ошибка конвертации WAV -> BRR"); + QMessageBox::warning(this, "Ошибка", "Не удалось преобразовать WAV в BRR формат"); + } +} + +void Yamitracker::onSelectFileForConversion() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл для конвертации", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + lastRecordedWavFile = filename; + onConvertToBrrClicked(); + } +} + +void Yamitracker::onSelectFileForPlayback() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл для воспроизведения", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + playWavExternal(filename); + } +} + +void Yamitracker::playWavExternal(const QString &wavFile) +{ + QStringList players = { + "aplay", "paplay", "play", "ffplay" + }; + + QString player; + + for (const QString &p : players) { + QProcess checkProcess; + checkProcess.start("which", QStringList() << p); + checkProcess.waitForFinished(); + if (checkProcess.exitCode() == 0) { + player = p; + break; + } + } + + if (player.isEmpty()) { + QMessageBox::warning(this, "Воспроизведение", + "Не найден аудиоплеер. Установите один из:\n" + "aplay, paplay, sox или ffmpeg"); + return; + } + + ui->statusLabel->setText("Воспроизведение WAV файла..."); + + audioPlayerProcess->start(player, QStringList() << wavFile); + + if (!audioPlayerProcess->waitForStarted(3000)) { + ui->statusLabel->setText("Не удалось запустить аудиоплеер"); + QMessageBox::warning(this, "Ошибка", + QString("Не удалось запустить %1. Убедитесь, что он установлен.").arg(player)); + } +} + +void Yamitracker::scanMidiFiles() +{ + QDir currentDir = QDir::current(); + QStringList filters; + filters << "*.txt"; + QStringList files = currentDir.entryList(filters, QDir::Files); + + midiFilesList->clear(); + for (const QString &file : files) { + // Проверяем, является ли файл MIDI логом + if (file.contains("midi_log_") || + file.contains("CrandPno") || + file.contains("BritePno") || + file.contains("Harpsi") || + file.contains("FngrBass") || + file.contains("Ovrdrive") || + file.contains("Bright")) { + + QFileInfo fileInfo(file); + QListWidgetItem *item = new QListWidgetItem(fileInfo.fileName()); + item->setData(Qt::UserRole, fileInfo.absoluteFilePath()); + midiFilesList->addItem(item); + } + } + + if (midiFilesList->count() == 0) { + QListWidgetItem *item = new QListWidgetItem("MIDI файлы не найдены"); + item->setFlags(item->flags() & ~Qt::ItemIsSelectable); + midiFilesList->addItem(item); + } +} + +void Yamitracker::onLoadMidiFileClicked() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите MIDI лог файл", "", "Текстовые файлы (*.txt);;Все файлы (*)"); + + if (!filename.isEmpty()) { + loadMidiFile(filename); + } +} + +void Yamitracker::loadMidiFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QMessageBox::warning(this, "Ошибка", "Не удалось открыть файл: " + filename); + return; + } + + QTextStream in(&file); + QString content = in.readAll(); + file.close(); + + currentMidiFilePath = filename; + parseMidiLog(content); + + ui->statusLabel->setText(QString("Загружен файл: %1").arg(QFileInfo(filename).fileName())); +} + +void Yamitracker::parseMidiLog(const QString &content) +{ + QStringList lines = content.split('\n'); + int program = 1; // По умолчанию + + for (const QString &line : lines) { + if (line.contains("PROGRAM_CHANGE: Program=")) { + // Извлекаем номер программы + QRegularExpression re("Program=(\\d+)"); + QRegularExpressionMatch match = re.match(line); + if (match.hasMatch()) { + program = match.captured(1).toInt(); + // Обновляем выбранный инструмент в комбобоксе + int index = instrumentComboBox->findData(program); + if (index >= 0) { + instrumentComboBox->setCurrentIndex(index); + } + } + } + } + + // Показываем информацию о загруженном файле + QString info = QString("Файл загружен\nИнструмент: %1\nСтрок: %2") + .arg(getInstrumentName(program)) + .arg(lines.count()); + + QMessageBox::information(this, "MIDI файл загружен", info); +} + +void Yamitracker::onPlayMidiFileClicked() +{ + if (currentMidiFilePath.isEmpty()) { + QMessageBox::information(this, "Воспроизведение", "Сначала загрузите MIDI файл"); + return; + } + + // Проверяем, является ли инструмент басовым + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Симуляция MIDI файла [БАС x%1]...").arg(bassVolumeMultiplier)); + QApplication::processEvents(); + + QMessageBox::information(this, "Симуляция MIDI (БАС)", + QString("Симуляция воспроизведения MIDI файла с БАС-инструментом:\n" + "Файл: %1\n" + "Инструмент: %2\n" + "Громкость усилена в %3 раза\n\n" + "В реальной версии бас будет звучать громче.") + .arg(QFileInfo(currentMidiFilePath).fileName()) + .arg(getInstrumentName(currentInstrument)) + .arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText("Симуляция MIDI файла..."); + QApplication::processEvents(); + + QMessageBox::information(this, "Симуляция MIDI", + QString("Симуляция воспроизведения MIDI файла:\n%1\n\nВ реальной версии здесь будет воспроизведение нот.") + .arg(QFileInfo(currentMidiFilePath).fileName())); + } + + ui->statusLabel->setText("Симуляция завершена"); +} + +void Yamitracker::simulateNote(int note, int velocity, double duration) +{ + if (wavWriter->isRecording()) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + wavWriter->addNote(currentTrack, currentTime, note, velocity, duration); + } +} + +void Yamitracker::onSelectedMidiFileChanged() +{ + QList selectedItems = midiFilesList->selectedItems(); + if (!selectedItems.isEmpty()) { + QString filePath = selectedItems.first()->data(Qt::UserRole).toString(); + loadMidiFile(filePath); + } +} + +void Yamitracker::onRecordFromMidiFile() +{ + if (currentMidiFilePath.isEmpty()) { + QMessageBox::information(this, "Запись", "Сначала загрузите MIDI файл"); + return; + } + + // Получаем выбранный инструмент + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Запись из MIDI файла [БАС x%1]...").arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText(QString("Запись из MIDI файла [Инструмент: %1]...").arg(getInstrumentName(currentInstrument))); + } + + // Если это первая запись в сессии, начинаем глобальную запись + if (!isGlobalRecording) { + globalRecordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + isGlobalRecording = true; + } + + // Начинаем запись с высоким качеством + if (wavWriter->startRecording(44100)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started WAV recording from MIDI file, instrument:" << currentInstrument << "track:" << currentTrack; + + // Генерируем мелодию в зависимости от инструмента + generateInstrumentMelody(currentInstrument); + + wavWriter->stopRecording(); + + // Предлагаем сохранить, если это последняя дорожка + bool hasMoreTracks = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i != currentTrack && wavWriter->getEventCount(i) == 0) { + hasMoreTracks = true; + break; + } + } + + if (!hasMoreTracks) { + onSaveRecordingClicked(); + } + } +} + +void Yamitracker::generateInstrumentMelody(int instrument) +{ + double volumeMultiplier = bassInstruments.contains(instrument) ? bassVolumeMultiplier : 1.0; + + // Время относительно глобального начала записи + double currentGlobalTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - globalRecordingStartTime; + + // Разные мелодии для разных инструментов + switch (instrument) { + case 1: // CrandPno (Гранд-пианино) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 1.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.5, 64, 80 * volumeMultiplier, 0.5, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 67, 90 * volumeMultiplier, 1.0, instrument); // G4 + wavWriter->addNote(currentTrack, currentGlobalTime + 2.0, 72, 100 * volumeMultiplier, 1.0, instrument); // C5 + break; + + case 2: // BritePno (Яркое пианино) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 0.3, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.1, 64, 90 * volumeMultiplier, 0.3, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.2, 67, 80 * volumeMultiplier, 0.3, instrument); // G4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 72, 100 * volumeMultiplier, 0.5, instrument); // C5 + break; + + case 3: // Harpsi (Клавесин) + case 6: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 0.1, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.1, 62, 90 * volumeMultiplier, 0.1, instrument); // D4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.2, 64, 100 * volumeMultiplier, 0.1, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 65, 90 * volumeMultiplier, 0.1, instrument); // F4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.4, 67, 100 * volumeMultiplier, 0.2, instrument); // G4 + break; + + case 28: // FngrBass (Фингер-бас) + case 33: + case 39: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 36, 120 * volumeMultiplier, 1.0, instrument); // C2 (бас) + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 40, 100 * volumeMultiplier, 0.5, instrument); // E2 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.5, 43, 110 * volumeMultiplier, 1.0, instrument); // G2 + wavWriter->addNote(currentTrack, currentGlobalTime + 2.5, 48, 100 * volumeMultiplier, 0.5, instrument); // C3 + break; + + case 40: // SlapBas (Слэп-бас) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 36, 150 * volumeMultiplier, 0.2, instrument); // C2 (щелчок) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 40, 120 * volumeMultiplier, 0.3, instrument); // E2 (пул) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.7, 43, 140 * volumeMultiplier, 0.2, instrument); // G2 (щелчок) + break; + + case 29: // Ovrdrive (Овердрайв-гитара) + case 37: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 40, 100 * volumeMultiplier, 1.5, instrument); // E2 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.5, 43, 90 * volumeMultiplier, 1.0, instrument); // G2 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 45, 100 * volumeMultiplier, 0.5, instrument); // A2 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.5, 47, 110 * volumeMultiplier, 1.0, instrument); // B2 + break; + + case 48: // String (Струнные) + case 49: // SlowStr (Медленные струнные) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 80 * volumeMultiplier, 2.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.5, 64, 70 * volumeMultiplier, 1.5, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 67, 75 * volumeMultiplier, 2.0, instrument); // G4 + break; + + case 81: // LeadSx (Саксофон) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 65, 90 * volumeMultiplier, 1.5, instrument); // F4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 67, 85 * volumeMultiplier, 0.5, instrument); // G4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.8, 69, 95 * volumeMultiplier, 2.0, instrument); // A4 + break; + + case 95: // Bright (Яркий звук) + case 96: + case 100: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 72, 100 * volumeMultiplier, 0.2, instrument); // C5 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.2, 76, 90 * volumeMultiplier, 0.2, instrument); // E5 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.4, 79, 100 * volumeMultiplier, 0.2, instrument); // G5 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.6, 84, 110 * volumeMultiplier, 0.3, instrument); // C6 + break; + + default: + // Стандартная мелодия для неизвестных инструментов + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 1.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 64, 80 * volumeMultiplier, 1.0, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 2.0, 67, 90 * volumeMultiplier, 1.0, instrument); // G4 + break; + } +} + +void Yamitracker::highlightKey(const QString ¬e) +{ + if (keyButtons.contains(note)) { + QPushButton *key = keyButtons[note]; + key->setStyleSheet("background-color: #ff4444; color: white; border: 2px solid red;"); + } +} + +void Yamitracker::clearKey(const QString ¬e) +{ + if (!keyButtons.contains(note)) return; + QPushButton *key = keyButtons[note]; + if (key->property("whiteKey").toBool()) + key->setStyleSheet("background-color: white; color: black; border: 1px solid #ccc;"); + else + key->setStyleSheet("background-color: black; color: white;"); +} + +void Yamitracker::clearAllHighlights() +{ + for (auto i = keyButtons.begin(); i != keyButtons.end(); ++i) { + clearKey(i.key()); + } +} + +void Yamitracker::clearStatusMessage() +{ + ui->statusLabel->setText("Статус: Готов"); +} + +void Yamitracker::initializeDeviceDetection() +{ + deviceLabel->setText("Устройство: Поиск..."); +} + +void Yamitracker::autoDetectAndConnect() +{ + QString device = "/dev/dmmidi1"; + serialReader->setDevice(device); + deviceLabel->setText(QString("Устройство: %1").arg(device)); + qDebug() << "Using device:" << device; + + startSerialReader(); +} + +void Yamitracker::onDeviceInfoReceived(const QString &manufacturer, const QString &model) +{ + deviceLabel->setText(QString("Устройство: %1 %2").arg(manufacturer, model)); + + setWindowTitle(QString("Yamitracker - %1 %2").arg(manufacturer, model)); +} + +void Yamitracker::onRefreshDevicesClicked() +{ + deviceLabel->setText("Устройство: Обновление..."); + + autoDetectAndConnect(); +} + +void Yamitracker::startSerialReader() +{ + if (serialReader && !serialReader->isRunning()) { + serialReader->start(); + } +} + +Yamitracker::~Yamitracker() +{ + stopPlayback(); + + if (serialReader) { + serialReader->stop(); + if (serialReader->isRunning()) { + serialReader->terminate(); + serialReader->wait(); + } + } + + delete ui; +} \ No newline at end of file diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/yamitracker.h b/OtherPush/yamitraherIlyaEdit/Yamitracker/yamitracker.h new file mode 100644 index 0000000..3796406 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/yamitracker.h @@ -0,0 +1,212 @@ +// yamitracker.h +#ifndef YAMITRACKER_H +#define YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "simplewavwriter.h" +#include "brrconverter.h" + +QT_BEGIN_NAMESPACE +namespace Ui { class Yamitracker; } +QT_END_NAMESPACE + +class SerialReader : public QThread +{ + Q_OBJECT + +public: + SerialReader(QObject *parent = nullptr) : QThread(parent), shouldStop(false) {} + void setDevice(const QString &device) { currentDevice = device; } + void stop() { shouldStop = true; } + +signals: + void noteOnReceived(const QString &data, int velocity); + void noteOffReceived(const QString &data); + void error(const QString &message); + void connectionStatusChanged(bool connected); + void deviceInfoReceived(const QString &manufacturer, const QString &model); + +protected: + void run() override; + +private: + QString currentDevice; + bool shouldStop; +}; + +class Yamitracker : public QMainWindow +{ + Q_OBJECT + +public: + Yamitracker(QWidget *parent = nullptr); + ~Yamitracker(); + +private slots: + // Основные слоты + void onPlayClicked(); + void onPauseClicked(); + void onStopClicked(); + void onSaveRecordingClicked(); + void onConvertToBrrClicked(); + void onSaveMusicFileClicked(); + + // Слоты для устройств и MIDI + void onRefreshDevicesClicked(); + void onLoadMidiFileClicked(); + void onPlayMidiFileClicked(); + void onRecordFromMidiFile(); + void onSelectedMidiFileChanged(); + + // Слоты для файлов + void onSelectFileForConversion(); + void onSelectFileForPlayback(); + + // Слоты для клавиш и устройств + void onNoteOnReceived(const QString &data, int velocity); + void onNoteOffReceived(const QString &data); + void onConnectionStatusChanged(bool connected); + void onError(const QString &message); + void onDeviceInfoReceived(const QString &manufacturer, const QString &model); + + // Слоты для управления дорожками + void onCurrentTrackChanged(int index); + void onAddTrackClicked(); + void onRemoveTrackClicked(); + void onClearTrackClicked(); + void onCopyTrackClicked(); + void onMergeTracksClicked(); + void onLoadWavToTrackClicked(); + + // Слоты для воспроизведения + void onPlayTrackClicked(); + void onPlayAllTracksClicked(); + void onStopPlaybackClicked(); + void onPlaybackFinished(); + + // Слоты для управления элементами дорожек + void onMuteTrackClicked(); + void onSoloTrackClicked(); + void onTrackVolumeChanged(int value); + void onTrackNameChanged(); + void onTrackInstrumentChanged(int index); + + // Слоты для эффектов + void onPlaybackSpeedChanged(int value); + void onBassVolumeChanged(int value); + + // Вспомогательные слоты + void attemptReconnect(); + void handleAudioStateChanged(QAudio::State state); + void clearStatusMessage(); + +private: + Ui::Yamitracker *ui; + SerialReader *serialReader; + QTimer *reconnectTimer; + bool isConnected; + SimpleWavWriter *wavWriter; + double recordingStartTime; + BrrConverter *brrConverter; + QProcess *audioPlayerProcess; + QTimer *playbackTimer; + + // Элементы UI + QSlider *playbackSpeedSlider; + QSlider *bassVolumeSlider; + QLabel *speedLabel; + QLabel *volumeLabel; + QLabel *deviceLabel; + QPushButton *refreshDevicesButton; + QListWidget *midiFilesList; + QComboBox *instrumentComboBox; + QComboBox *trackComboBox; + + // Аудио воспроизведение + QAudioOutput *audioOutput; + QBuffer *audioBuffer; + bool isPlayingBack; + int currentPlaybackTrack; + int currentTrack; + + // Данные + QString lastRecordedWavFile; + QString currentMidiFilePath; + QHash keyButtons; + QSet currentlyPressedKeys; + QHash noteStartTimes; + QHash noteVelocities; // НОВОЕ + QHash noteInstruments; // НОВОЕ + QHash noteTracks; // НОВОЕ + + // Управление дорожками + QVector trackNameEdits; + QVector trackInstrumentComboBoxes; + QVector trackVolumeSliders; + QVector trackVolumeLabels; + QVector trackMuteButtons; + QVector trackSoloButtons; + + // Вспомогательные методы + void initializeTracks(); + void initializeTrackControls(); + void updateTrackControls(); + void updateTrackInfo(); + void updateSpeedLabel(); + void updateVolumeLabel(); + + void initializeKeyButtons(); + void initializeDeviceDetection(); + void autoDetectAndConnect(); + void startSerialReader(); + + void highlightKey(const QString ¬e); + void clearKey(const QString ¬e); + void clearAllHighlights(); + + void scanMidiFiles(); + void loadMidiFile(const QString &filename); + void parseMidiLog(const QString &content); + void generateInstrumentMelody(int instrument); + void simulateNote(int note, int velocity, double duration); + + void saveWavFile(const QString &filename); + void saveMusicFile(const QString &filename); + void playWavExternal(const QString &wavFile); + void playTrack(int track); + void playAllTracks(); + void stopPlayback(); + + QByteArray mixSelectedTracks(const QVector &trackIndices); + QByteArray convertMonoToStereo(const QByteArray &monoData); + + QString getInstrumentName(int program); + + // Карта инструментов + QMap instruments = { + {1, "CrandPno"}, {2, "BritePno"}, {3, "Harpsi"}, {6, "Harpsi2"}, + {28, "FngrBass"}, {33, "FngrBass2"}, {39, "FngrBass3"}, {40, "SlapBas"}, + {29, "Ovrdrive"}, {37, "Ovrdrive2"}, {38, "DstGtr"}, + {48, "String"}, {49, "SlowStr"}, {81, "LeadSx"}, + {95, "Bright"}, {96, "Bright2"}, {100, "Bright3"} + }; + + // Флаг для отслеживания относительного времени записи + double globalRecordingStartTime; + bool isGlobalRecording; +}; + +#endif // YAMITRACKER_H \ No newline at end of file diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/yamitracker.ui b/OtherPush/yamitraherIlyaEdit/Yamitracker/yamitracker.ui new file mode 100644 index 0000000..c447570 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/yamitracker.ui @@ -0,0 +1,1000 @@ + + + Yamitracker + + + + 0 + 0 + 1400 + 1000 + + + + Yamaha PSR-E333 Monitor - Multitrack Recording + + + + + + + + + Статус: Готов + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Устройство: Не подключено + + + + + + + + + + + Нажато клавиш: 0 + + + + + + + 0 + + + + + + + + + Управление записью + + + + + + ▶ Запись с синтезатора + + + + + + + ⏸ Пауза + + + false + + + + + + + ⏹ Стоп + + + + + + + 💾 Сохранить запись + + + + + + + 🔄 Конвертировать в BRR + + + + + + + 🎵 Сохранить музыку (Pently) + + + + + + + + + + Управление воспроизведением + + + + + + ▶ Текущая дорожка + + + + + + + ▶▶ Все дорожки + + + + + + + ⏹ Стоп воспроизведение + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 📂 Загрузить WAV в дорожку + + + + + + + + + + Управление дорожками + + + + + + Текущая дорожка: + + + + + + + + + + ➕ Новая дорожка + + + + + + + 🗑 Удалить дорожку + + + + + + + 🗑 Очистить дорожку + + + + + + + 📋 Копировать дорожку + + + + + + + 🔀 Объединить дорожки + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Дорожка 1: 0 нот + + + + + + + + + + true + + + + + 0 + 0 + 1380 + 300 + + + + + + + Панель управления дорожками: + + + + + + + + + + + Работа с MIDI файлами + + + + + + + + Инструмент: + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Скорость: 100% + + + + + + + Qt::Horizontal + + + 50 + + + 200 + + + 100 + + + + + + + Бас: 200% + + + + + + + Qt::Horizontal + + + 100 + + + 400 + + + 200 + + + + + + + 🔃 Обновить устройства + + + + + + + + + + + 📂 Загрузить MIDI файл + + + + + + + ▶ Воспроизвести MIDI + + + + + + + ● Записать из MIDI + + + + + + + 📁 Выбрать файл для конвертации + + + + + + + ▶ Воспроизвести WAV + + + + + + + + + Доступные MIDI файлы: + + + + + + + + + + + + + + + + + + + C1 + + + + + + + D1 + + + + + + + E1 + + + + + + + F1 + + + + + + + G1 + + + + + + + A1 + + + + + + + B1 + + + + + + + C2 + + + + + + + D2 + + + + + + + E2 + + + + + + + F2 + + + + + + + G2 + + + + + + + A2 + + + + + + + B2 + + + + + + + C3 + + + + + + + D3 + + + + + + + E3 + + + + + + + F3 + + + + + + + G3 + + + + + + + A3 + + + + + + + B3 + + + + + + + C4 + + + + + + + D4 + + + + + + + E4 + + + + + + + F4 + + + + + + + G4 + + + + + + + A4 + + + + + + + B4 + + + + + + + C5 + + + + + + + D5 + + + + + + + E5 + + + + + + + F5 + + + + + + + G5 + + + + + + + A5 + + + + + + + B5 + + + + + + + C6 + + + + + + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#1 + + + + + + + D#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#1 + + + + + + + G#1 + + + + + + + A#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#2 + + + + + + + D#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#2 + + + + + + + G#2 + + + + + + + A#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#3 + + + + + + + D#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#3 + + + + + + + G#3 + + + + + + + A#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#4 + + + + + + + D#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#4 + + + + + + + G#4 + + + + + + + A#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#5 + + + + + + + D#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#5 + + + + + + + G#5 + + + + + + + A#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qmake.stash b/OtherPush/yamitraherIlyaEdit/tester/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/tester/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/FILE.h.79AEFC497861DFC5.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/FILE.h.79AEFC497861DFC5.idx new file mode 100644 index 0000000..d1d54d5 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/FILE.h.79AEFC497861DFC5.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QCoreApplication.6224FEF584D878E0.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QCoreApplication.6224FEF584D878E0.idx new file mode 100644 index 0000000..5524b3a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QCoreApplication.6224FEF584D878E0.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QDateTime.2BBC4430F7938909.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QDateTime.2BBC4430F7938909.idx new file mode 100644 index 0000000..8842788 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QDateTime.2BBC4430F7938909.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QDebug.FCC2E817CCEB6959.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QDebug.FCC2E817CCEB6959.idx new file mode 100644 index 0000000..c348159 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QDebug.FCC2E817CCEB6959.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QMap.58619F7F978A6527.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QMap.58619F7F978A6527.idx new file mode 100644 index 0000000..57397f9 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QMap.58619F7F978A6527.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QObject.AAFCCBFA0D3A3FFB.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QObject.AAFCCBFA0D3A3FFB.idx new file mode 100644 index 0000000..05573fb Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QObject.AAFCCBFA0D3A3FFB.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QSet.AF90CFD35287FD1E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QSet.AF90CFD35287FD1E.idx new file mode 100644 index 0000000..cef6f17 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QSet.AF90CFD35287FD1E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QString.53730FABE9A9060A.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QString.53730FABE9A9060A.idx new file mode 100644 index 0000000..5528f71 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QString.53730FABE9A9060A.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QTextStream.C0557BFCD6902EA2.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QTextStream.C0557BFCD6902EA2.idx new file mode 100644 index 0000000..ef9dc44 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QTextStream.C0557BFCD6902EA2.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QTimer.5D2F0A12553716CE.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QTimer.5D2F0A12553716CE.idx new file mode 100644 index 0000000..350ba98 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/QTimer.5D2F0A12553716CE.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__FILE.h.3324F85E382E036A.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__FILE.h.3324F85E382E036A.idx new file mode 100644 index 0000000..184a657 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__FILE.h.3324F85E382E036A.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__fpos64_t.h.23C43F442076149A.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__fpos64_t.h.23C43F442076149A.idx new file mode 100644 index 0000000..665fc72 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__fpos64_t.h.23C43F442076149A.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__fpos_t.h.ECFBE9EEDAAB6648.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__fpos_t.h.ECFBE9EEDAAB6648.idx new file mode 100644 index 0000000..b309fcb Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__fpos_t.h.ECFBE9EEDAAB6648.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__locale_t.h.40EA38A2DCA58618.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__locale_t.h.40EA38A2DCA58618.idx new file mode 100644 index 0000000..9fdec3f Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__locale_t.h.40EA38A2DCA58618.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__mbstate_t.h.6C32CF66236653D7.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__mbstate_t.h.6C32CF66236653D7.idx new file mode 100644 index 0000000..82a7a92 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__mbstate_t.h.6C32CF66236653D7.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__sigset_t.h.72131E8056C7E284.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__sigset_t.h.72131E8056C7E284.idx new file mode 100644 index 0000000..1519b7e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__sigset_t.h.72131E8056C7E284.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg___gnuc_va_list.h.9CC5F2E48BD83148.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg___gnuc_va_list.h.9CC5F2E48BD83148.idx new file mode 100644 index 0000000..1e1dde3 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg___gnuc_va_list.h.9CC5F2E48BD83148.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg___va_copy.h.14461A1A31B8F874.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg___va_copy.h.14461A1A31B8F874.idx new file mode 100644 index 0000000..6e3850f Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg___va_copy.h.14461A1A31B8F874.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg_header_macro.h.551D34A49D3CE963.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg_header_macro.h.551D34A49D3CE963.idx new file mode 100644 index 0000000..027bcac Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg_header_macro.h.551D34A49D3CE963.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg_va_arg.h.55BC8E5C344094E9.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg_va_arg.h.55BC8E5C344094E9.idx new file mode 100644 index 0000000..561c55b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg_va_arg.h.55BC8E5C344094E9.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg_va_copy.h.DE4CFF5C1E210336.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg_va_copy.h.DE4CFF5C1E210336.idx new file mode 100644 index 0000000..9692cdd Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg_va_copy.h.DE4CFF5C1E210336.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg_va_list.h.4028E9A8D637650E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg_va_list.h.4028E9A8D637650E.idx new file mode 100644 index 0000000..0b7f83a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stdarg_va_list.h.4028E9A8D637650E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_header_macro.h.7A0A7BDC7C918B9E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_header_macro.h.7A0A7BDC7C918B9E.idx new file mode 100644 index 0000000..bafbcf0 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_header_macro.h.7A0A7BDC7C918B9E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_max_align_t.h.E4485FBF505BBFB2.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_max_align_t.h.E4485FBF505BBFB2.idx new file mode 100644 index 0000000..c1ac9ad Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_max_align_t.h.E4485FBF505BBFB2.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_null.h.B1043DD116DDED43.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_null.h.B1043DD116DDED43.idx new file mode 100644 index 0000000..1f5aed4 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_null.h.B1043DD116DDED43.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_nullptr_t.h.230C047905BEBADE.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_nullptr_t.h.230C047905BEBADE.idx new file mode 100644 index 0000000..48e5ccd Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_nullptr_t.h.230C047905BEBADE.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_offsetof.h.AAF33C3F6AE9327B.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_offsetof.h.AAF33C3F6AE9327B.idx new file mode 100644 index 0000000..a212f98 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_offsetof.h.AAF33C3F6AE9327B.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_ptrdiff_t.h.B8165BC51699FAF3.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_ptrdiff_t.h.B8165BC51699FAF3.idx new file mode 100644 index 0000000..4ca72c7 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_ptrdiff_t.h.B8165BC51699FAF3.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_size_t.h.7896A01C817D0EB1.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_size_t.h.7896A01C817D0EB1.idx new file mode 100644 index 0000000..b93fb3d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_size_t.h.7896A01C817D0EB1.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_wchar_t.h.0BFF0E7A92E16CCE.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_wchar_t.h.0BFF0E7A92E16CCE.idx new file mode 100644 index 0000000..4688521 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/__stddef_wchar_t.h.0BFF0E7A92E16CCE.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/algorithm.BB1DD98A0283BBD2.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/algorithm.BB1DD98A0283BBD2.idx new file mode 100644 index 0000000..54c778b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/algorithm.BB1DD98A0283BBD2.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/algorithmfwd.h.BAFC720F76AE0D66.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/algorithmfwd.h.BAFC720F76AE0D66.idx new file mode 100644 index 0000000..05acb3b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/algorithmfwd.h.BAFC720F76AE0D66.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/align.h.F538AF5501CF5C99.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/align.h.F538AF5501CF5C99.idx new file mode 100644 index 0000000..76ec368 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/align.h.F538AF5501CF5C99.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/aligned_buffer.h.EF40936234B53958.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/aligned_buffer.h.EF40936234B53958.idx new file mode 100644 index 0000000..f075ff6 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/aligned_buffer.h.EF40936234B53958.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/alloc_traits.h.3F20844836B92A92.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/alloc_traits.h.3F20844836B92A92.idx new file mode 100644 index 0000000..e1982ad Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/alloc_traits.h.3F20844836B92A92.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/alloc_traits.h.AA4FE26E446B6537.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/alloc_traits.h.AA4FE26E446B6537.idx new file mode 100644 index 0000000..9da355c Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/alloc_traits.h.AA4FE26E446B6537.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/alloca.h.793370BF9878CFB6.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/alloca.h.793370BF9878CFB6.idx new file mode 100644 index 0000000..3b5264c Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/alloca.h.793370BF9878CFB6.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/allocated_ptr.h.3AE783F1E0C3EEEE.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/allocated_ptr.h.3AE783F1E0C3EEEE.idx new file mode 100644 index 0000000..f90e94a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/allocated_ptr.h.3AE783F1E0C3EEEE.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/allocator.h.78872CA87148A759.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/allocator.h.78872CA87148A759.idx new file mode 100644 index 0000000..f06d954 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/allocator.h.78872CA87148A759.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/assert.h.9895EEC17E1D2A2B.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/assert.h.9895EEC17E1D2A2B.idx new file mode 100644 index 0000000..efdea8d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/assert.h.9895EEC17E1D2A2B.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/assertions.h.1A28C16DCCBB9FAF.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/assertions.h.1A28C16DCCBB9FAF.idx new file mode 100644 index 0000000..f5aaa20 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/assertions.h.1A28C16DCCBB9FAF.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomic.E2087D4778A6BCBA.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomic.E2087D4778A6BCBA.idx new file mode 100644 index 0000000..f927066 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomic.E2087D4778A6BCBA.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomic_base.h.D53C548BA8BCAB95.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomic_base.h.D53C548BA8BCAB95.idx new file mode 100644 index 0000000..c94154e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomic_base.h.D53C548BA8BCAB95.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomic_lockfree_defines.h.C0F25667B591B578.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomic_lockfree_defines.h.C0F25667B591B578.idx new file mode 100644 index 0000000..2330911 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomic_lockfree_defines.h.C0F25667B591B578.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomic_wide_counter.h.397D66B6BECC0AA2.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomic_wide_counter.h.397D66B6BECC0AA2.idx new file mode 100644 index 0000000..add09ba Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomic_wide_counter.h.397D66B6BECC0AA2.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomic_word.h.A29017D9E7F3291A.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomic_word.h.A29017D9E7F3291A.idx new file mode 100644 index 0000000..df6ef94 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomic_word.h.A29017D9E7F3291A.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomicity.h.54F003D10E2AD619.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomicity.h.54F003D10E2AD619.idx new file mode 100644 index 0000000..a2e113f Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/atomicity.h.54F003D10E2AD619.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/auto_ptr.h.DA028A6E3E20C44E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/auto_ptr.h.DA028A6E3E20C44E.idx new file mode 100644 index 0000000..ae45777 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/auto_ptr.h.DA028A6E3E20C44E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/basic_string.h.C9633CFCF816289A.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/basic_string.h.C9633CFCF816289A.idx new file mode 100644 index 0000000..3eead46 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/basic_string.h.C9633CFCF816289A.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/basic_string.tcc.978F9F7C1DF18622.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/basic_string.tcc.978F9F7C1DF18622.idx new file mode 100644 index 0000000..a48f542 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/basic_string.tcc.978F9F7C1DF18622.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/binders.h.135FCA0EE8FB7493.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/binders.h.135FCA0EE8FB7493.idx new file mode 100644 index 0000000..674bde0 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/binders.h.135FCA0EE8FB7493.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/bit.28B2F856B1DB85EA.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/bit.28B2F856B1DB85EA.idx new file mode 100644 index 0000000..3ad2c0b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/bit.28B2F856B1DB85EA.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/bitsperlong.h.5E13F0A4313F78B3.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/bitsperlong.h.5E13F0A4313F78B3.idx new file mode 100644 index 0000000..581a2d5 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/bitsperlong.h.5E13F0A4313F78B3.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/bitsperlong.h.B267C684FE143FB5.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/bitsperlong.h.B267C684FE143FB5.idx new file mode 100644 index 0000000..3b36471 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/bitsperlong.h.B267C684FE143FB5.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/byteswap.h.E57FF553A16DFAFC.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/byteswap.h.E57FF553A16DFAFC.idx new file mode 100644 index 0000000..7eb2082 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/byteswap.h.E57FF553A16DFAFC.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/c++allocator.h.A4D928DAE285FFAF.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/c++allocator.h.A4D928DAE285FFAF.idx new file mode 100644 index 0000000..963a578 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/c++allocator.h.A4D928DAE285FFAF.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/c++config.h.E55A0FAFEAE7A158.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/c++config.h.E55A0FAFEAE7A158.idx new file mode 100644 index 0000000..d0abf2b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/c++config.h.E55A0FAFEAE7A158.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/c++locale.h.2618C896A1896386.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/c++locale.h.2618C896A1896386.idx new file mode 100644 index 0000000..012136c Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/c++locale.h.2618C896A1896386.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cctype.EAC08B603DD03C24.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cctype.EAC08B603DD03C24.idx new file mode 100644 index 0000000..e45486f Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cctype.EAC08B603DD03C24.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cdefs.h.E4D450DF98C1338F.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cdefs.h.E4D450DF98C1338F.idx new file mode 100644 index 0000000..b9fba6d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cdefs.h.E4D450DF98C1338F.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cerrno.1D1A36417D84D43E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cerrno.1D1A36417D84D43E.idx new file mode 100644 index 0000000..e24ae11 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cerrno.1D1A36417D84D43E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/char_traits.h.B275C9D19643BC12.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/char_traits.h.B275C9D19643BC12.idx new file mode 100644 index 0000000..3983074 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/char_traits.h.B275C9D19643BC12.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/charconv.h.F641103DCF1F42B1.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/charconv.h.F641103DCF1F42B1.idx new file mode 100644 index 0000000..ba847bf Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/charconv.h.F641103DCF1F42B1.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/chrono.7A460892D7C2396D.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/chrono.7A460892D7C2396D.idx new file mode 100644 index 0000000..5c04668 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/chrono.7A460892D7C2396D.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/chrono.h.836A7D82EB499E6D.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/chrono.h.836A7D82EB499E6D.idx new file mode 100644 index 0000000..2bd8245 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/chrono.h.836A7D82EB499E6D.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/clocale.FA601010F856C9C7.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/clocale.FA601010F856C9C7.idx new file mode 100644 index 0000000..88140a6 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/clocale.FA601010F856C9C7.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/clock_t.h.65AFE5BA7329BCD4.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/clock_t.h.65AFE5BA7329BCD4.idx new file mode 100644 index 0000000..b386ef9 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/clock_t.h.65AFE5BA7329BCD4.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/clockid_t.h.5545878511E5BAF1.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/clockid_t.h.5545878511E5BAF1.idx new file mode 100644 index 0000000..b6dd0ec Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/clockid_t.h.5545878511E5BAF1.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/close_range.h.68EB8BD04293AE47.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/close_range.h.68EB8BD04293AE47.idx new file mode 100644 index 0000000..2b03ea0 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/close_range.h.68EB8BD04293AE47.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/concept_check.h.9FA668F44F92F11C.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/concept_check.h.9FA668F44F92F11C.idx new file mode 100644 index 0000000..ecb7856 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/concept_check.h.9FA668F44F92F11C.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/concurrence.h.C9FC2A8163370AFC.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/concurrence.h.C9FC2A8163370AFC.idx new file mode 100644 index 0000000..1a343d2 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/concurrence.h.C9FC2A8163370AFC.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/confname.h.ACD47B58EFD02DD6.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/confname.h.ACD47B58EFD02DD6.idx new file mode 100644 index 0000000..152593a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/confname.h.ACD47B58EFD02DD6.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cookie_io_functions_t.h.5A08066DC7F05542.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cookie_io_functions_t.h.5A08066DC7F05542.idx new file mode 100644 index 0000000..2206e4a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cookie_io_functions_t.h.5A08066DC7F05542.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cpp_type_traits.h.E10BE2C4CA45C8EE.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cpp_type_traits.h.E10BE2C4CA45C8EE.idx new file mode 100644 index 0000000..84d6ad4 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cpp_type_traits.h.E10BE2C4CA45C8EE.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cpu-set.h.B40F3E2869BE4FF9.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cpu-set.h.B40F3E2869BE4FF9.idx new file mode 100644 index 0000000..87fe205 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cpu-set.h.B40F3E2869BE4FF9.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cpu_defines.h.8B227B6531C4DEEE.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cpu_defines.h.8B227B6531C4DEEE.idx new file mode 100644 index 0000000..3d3fbe3 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cpu_defines.h.8B227B6531C4DEEE.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cstddef.533DFD42AE9DF6A3.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cstddef.533DFD42AE9DF6A3.idx new file mode 100644 index 0000000..7c25c22 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cstddef.533DFD42AE9DF6A3.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cstdint.60074C3C51C51FCB.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cstdint.60074C3C51C51FCB.idx new file mode 100644 index 0000000..bda74a8 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cstdint.60074C3C51C51FCB.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cstdio.005601FBE291F299.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cstdio.005601FBE291F299.idx new file mode 100644 index 0000000..a33699c Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cstdio.005601FBE291F299.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cstdlib.91A0639FE71A041B.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cstdlib.91A0639FE71A041B.idx new file mode 100644 index 0000000..8c61ed5 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cstdlib.91A0639FE71A041B.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ctime.D80ED26B7EFB6367.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ctime.D80ED26B7EFB6367.idx new file mode 100644 index 0000000..527224b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ctime.D80ED26B7EFB6367.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ctype.h.B268CEA0CECCFC59.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ctype.h.B268CEA0CECCFC59.idx new file mode 100644 index 0000000..257476c Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ctype.h.B268CEA0CECCFC59.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cwchar.9BBFFEFB1B47793B.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cwchar.9BBFFEFB1B47793B.idx new file mode 100644 index 0000000..1c25f01 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cwchar.9BBFFEFB1B47793B.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cxxabi_forced.h.39654E71E8A80657.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cxxabi_forced.h.39654E71E8A80657.idx new file mode 100644 index 0000000..8d57a87 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cxxabi_forced.h.39654E71E8A80657.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cxxabi_init_exception.h.3992AA317DDA00A7.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cxxabi_init_exception.h.3992AA317DDA00A7.idx new file mode 100644 index 0000000..4891b35 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/cxxabi_init_exception.h.3992AA317DDA00A7.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/debug.h.487B6441ED001EE6.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/debug.h.487B6441ED001EE6.idx new file mode 100644 index 0000000..57db75c Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/debug.h.487B6441ED001EE6.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/endian.h.1FC6A4D6D2846204.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/endian.h.1FC6A4D6D2846204.idx new file mode 100644 index 0000000..19832fb Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/endian.h.1FC6A4D6D2846204.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/endian.h.20F8E286A486EE09.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/endian.h.20F8E286A486EE09.idx new file mode 100644 index 0000000..7381437 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/endian.h.20F8E286A486EE09.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/endianness.h.F2D2CC6251A4EAFA.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/endianness.h.F2D2CC6251A4EAFA.idx new file mode 100644 index 0000000..59aaf5f Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/endianness.h.F2D2CC6251A4EAFA.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/environments.h.AA09E46153D7F6D9.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/environments.h.AA09E46153D7F6D9.idx new file mode 100644 index 0000000..b8de595 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/environments.h.AA09E46153D7F6D9.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/erase_if.h.CE2BA3A5A917F3AC.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/erase_if.h.CE2BA3A5A917F3AC.idx new file mode 100644 index 0000000..be0567d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/erase_if.h.CE2BA3A5A917F3AC.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno-base.h.23FC55A99C73A727.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno-base.h.23FC55A99C73A727.idx new file mode 100644 index 0000000..5229ede Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno-base.h.23FC55A99C73A727.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno.h.063064A523A47758.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno.h.063064A523A47758.idx new file mode 100644 index 0000000..714c8e7 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno.h.063064A523A47758.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno.h.10013861918E601A.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno.h.10013861918E601A.idx new file mode 100644 index 0000000..9c5fe92 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno.h.10013861918E601A.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno.h.19BCCCD58DA5623E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno.h.19BCCCD58DA5623E.idx new file mode 100644 index 0000000..8a29af8 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno.h.19BCCCD58DA5623E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno.h.3F8ECD84FB880B64.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno.h.3F8ECD84FB880B64.idx new file mode 100644 index 0000000..14496e3 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno.h.3F8ECD84FB880B64.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno.h.F248BDE3D519052A.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno.h.F248BDE3D519052A.idx new file mode 100644 index 0000000..a3c144e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/errno.h.F248BDE3D519052A.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/error_constants.h.4FA778F20895A791.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/error_constants.h.4FA778F20895A791.idx new file mode 100644 index 0000000..06f6435 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/error_constants.h.4FA778F20895A791.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/error_t.h.58D3895A591B592D.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/error_t.h.58D3895A591B592D.idx new file mode 100644 index 0000000..77d6464 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/error_t.h.58D3895A591B592D.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/exception.6B89E2FE29CCB363.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/exception.6B89E2FE29CCB363.idx new file mode 100644 index 0000000..00773e9 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/exception.6B89E2FE29CCB363.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/exception.h.419F08EE1A528659.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/exception.h.419F08EE1A528659.idx new file mode 100644 index 0000000..ebf1073 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/exception.h.419F08EE1A528659.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/exception_defines.h.D5DD63B05A609061.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/exception_defines.h.D5DD63B05A609061.idx new file mode 100644 index 0000000..48d3e90 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/exception_defines.h.D5DD63B05A609061.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/exception_ptr.h.9B06C068E0F33DA4.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/exception_ptr.h.9B06C068E0F33DA4.idx new file mode 100644 index 0000000..cdad0b0 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/exception_ptr.h.9B06C068E0F33DA4.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/falloc.h.5C586ED1D55FF40E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/falloc.h.5C586ED1D55FF40E.idx new file mode 100644 index 0000000..9d5ad8d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/falloc.h.5C586ED1D55FF40E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/fcntl-linux.h.B59A22F1AA8971F5.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/fcntl-linux.h.B59A22F1AA8971F5.idx new file mode 100644 index 0000000..176a74d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/fcntl-linux.h.B59A22F1AA8971F5.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/fcntl.h.B275FA9E57415C0F.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/fcntl.h.B275FA9E57415C0F.idx new file mode 100644 index 0000000..460a342 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/fcntl.h.B275FA9E57415C0F.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/fcntl.h.FAA28F3AAA9C8758.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/fcntl.h.FAA28F3AAA9C8758.idx new file mode 100644 index 0000000..ece7b7e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/fcntl.h.FAA28F3AAA9C8758.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/features-time64.h.BFBA8D3CA0316037.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/features-time64.h.BFBA8D3CA0316037.idx new file mode 100644 index 0000000..d0714e5 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/features-time64.h.BFBA8D3CA0316037.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/features.h.5A4ED7C80201A723.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/features.h.5A4ED7C80201A723.idx new file mode 100644 index 0000000..d60e199 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/features.h.5A4ED7C80201A723.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/floatn-common.h.0FE8C4DDCB84E088.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/floatn-common.h.0FE8C4DDCB84E088.idx new file mode 100644 index 0000000..8abeb6a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/floatn-common.h.0FE8C4DDCB84E088.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/floatn.h.DA21C738CC1B6ABF.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/floatn.h.DA21C738CC1B6ABF.idx new file mode 100644 index 0000000..b3003c2 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/floatn.h.DA21C738CC1B6ABF.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/functexcept.h.6A2E89F17310DE95.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/functexcept.h.6A2E89F17310DE95.idx new file mode 100644 index 0000000..52339a5 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/functexcept.h.6A2E89F17310DE95.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/functional.EBD8D92EE2685F2E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/functional.EBD8D92EE2685F2E.idx new file mode 100644 index 0000000..7a8c266 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/functional.EBD8D92EE2685F2E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/functional_hash.h.7C1C671B84E9A052.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/functional_hash.h.7C1C671B84E9A052.idx new file mode 100644 index 0000000..cf2dc54 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/functional_hash.h.7C1C671B84E9A052.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/getopt_core.h.D7307CF3828B57B6.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/getopt_core.h.D7307CF3828B57B6.idx new file mode 100644 index 0000000..4e881f9 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/getopt_core.h.D7307CF3828B57B6.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/getopt_posix.h.EAB1D9CAA7EB87EE.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/getopt_posix.h.EAB1D9CAA7EB87EE.idx new file mode 100644 index 0000000..6d864e9 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/getopt_posix.h.EAB1D9CAA7EB87EE.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/gthr-default.h.B4399EDA94C1DBA8.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/gthr-default.h.B4399EDA94C1DBA8.idx new file mode 100644 index 0000000..6487c0e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/gthr-default.h.B4399EDA94C1DBA8.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/gthr.h.163104A5B09814C3.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/gthr.h.163104A5B09814C3.idx new file mode 100644 index 0000000..5f9cdfd Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/gthr.h.163104A5B09814C3.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/hash_bytes.h.5DA111BE3DBDA86B.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/hash_bytes.h.5DA111BE3DBDA86B.idx new file mode 100644 index 0000000..e16650e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/hash_bytes.h.5DA111BE3DBDA86B.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/initializer_list.0F8FB75E68F1322D.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/initializer_list.0F8FB75E68F1322D.idx new file mode 100644 index 0000000..f4e7fc3 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/initializer_list.0F8FB75E68F1322D.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/int-ll64.h.AE74C618A4956C59.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/int-ll64.h.AE74C618A4956C59.idx new file mode 100644 index 0000000..2fb752e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/int-ll64.h.AE74C618A4956C59.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/invoke.h.4DE14F00D80C8CB5.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/invoke.h.4DE14F00D80C8CB5.idx new file mode 100644 index 0000000..d6d0a2b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/invoke.h.4DE14F00D80C8CB5.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ios_base.h.29FE44CB0EBD9887.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ios_base.h.29FE44CB0EBD9887.idx new file mode 100644 index 0000000..0154069 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ios_base.h.29FE44CB0EBD9887.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/iosfwd.D1495D7D8DC7F071.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/iosfwd.D1495D7D8DC7F071.idx new file mode 100644 index 0000000..7a0ddb5 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/iosfwd.D1495D7D8DC7F071.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/iterator.AD004068EF8F8235.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/iterator.AD004068EF8F8235.idx new file mode 100644 index 0000000..bb5f87e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/iterator.AD004068EF8F8235.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/libc-header-start.h.E88219B53B0B0BF5.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/libc-header-start.h.E88219B53B0B0BF5.idx new file mode 100644 index 0000000..b736f32 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/libc-header-start.h.E88219B53B0B0BF5.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/limits.F1E01A923CBD84EA.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/limits.F1E01A923CBD84EA.idx new file mode 100644 index 0000000..313b4e8 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/limits.F1E01A923CBD84EA.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/limits.h.1DFE7D0FE6434B13.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/limits.h.1DFE7D0FE6434B13.idx new file mode 100644 index 0000000..0158ef7 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/limits.h.1DFE7D0FE6434B13.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/limits.h.37EB7A5A45E8E51F.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/limits.h.37EB7A5A45E8E51F.idx new file mode 100644 index 0000000..8a38155 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/limits.h.37EB7A5A45E8E51F.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/limits.h.C293B8934AC926BB.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/limits.h.C293B8934AC926BB.idx new file mode 100644 index 0000000..de32693 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/limits.h.C293B8934AC926BB.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/list.CD88FE111C2D2B92.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/list.CD88FE111C2D2B92.idx new file mode 100644 index 0000000..b3d361d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/list.CD88FE111C2D2B92.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/list.tcc.F828FFC74BE3C6B9.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/list.tcc.F828FFC74BE3C6B9.idx new file mode 100644 index 0000000..5bba5b2 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/list.tcc.F828FFC74BE3C6B9.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/local_lim.h.2CFD657F256B117E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/local_lim.h.2CFD657F256B117E.idx new file mode 100644 index 0000000..e011fae Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/local_lim.h.2CFD657F256B117E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/locale.h.E3C63D05A4E78516.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/locale.h.E3C63D05A4E78516.idx new file mode 100644 index 0000000..d5e54d9 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/locale.h.E3C63D05A4E78516.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/locale.h.F1B51844858762D2.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/locale.h.F1B51844858762D2.idx new file mode 100644 index 0000000..35f90d8 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/locale.h.F1B51844858762D2.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/locale_classes.h.78EEDF5119140059.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/locale_classes.h.78EEDF5119140059.idx new file mode 100644 index 0000000..92b3f43 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/locale_classes.h.78EEDF5119140059.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/locale_classes.tcc.ECD52E05F047CAC6.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/locale_classes.tcc.ECD52E05F047CAC6.idx new file mode 100644 index 0000000..df76e8b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/locale_classes.tcc.ECD52E05F047CAC6.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/locale_t.h.557516A6B361170F.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/locale_t.h.557516A6B361170F.idx new file mode 100644 index 0000000..915846d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/locale_t.h.557516A6B361170F.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/localefwd.h.BD8637AD0ECADD37.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/localefwd.h.BD8637AD0ECADD37.idx new file mode 100644 index 0000000..46c95bd Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/localefwd.h.BD8637AD0ECADD37.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/long-double.h.ACD735A1862B6BF8.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/long-double.h.ACD735A1862B6BF8.idx new file mode 100644 index 0000000..d9c90b7 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/long-double.h.ACD735A1862B6BF8.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/map.DE97978A3D328246.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/map.DE97978A3D328246.idx new file mode 100644 index 0000000..4b7e76e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/map.DE97978A3D328246.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/mbstate_t.h.F9237FB65FF84D5A.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/mbstate_t.h.F9237FB65FF84D5A.idx new file mode 100644 index 0000000..e472bcd Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/mbstate_t.h.F9237FB65FF84D5A.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/memory.4C32146D9B4E31E4.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/memory.4C32146D9B4E31E4.idx new file mode 100644 index 0000000..c2b5b08 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/memory.4C32146D9B4E31E4.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/memoryfwd.h.2916FFF118FE7461.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/memoryfwd.h.2916FFF118FE7461.idx new file mode 100644 index 0000000..3cc414f Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/memoryfwd.h.2916FFF118FE7461.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/move.h.F68CE1A1252A72E2.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/move.h.F68CE1A1252A72E2.idx new file mode 100644 index 0000000..d7fcc79 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/move.h.F68CE1A1252A72E2.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/nested_exception.h.A121E9D338080312.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/nested_exception.h.A121E9D338080312.idx new file mode 100644 index 0000000..75c651d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/nested_exception.h.A121E9D338080312.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/new.887BB2C83B5C2EC3.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/new.887BB2C83B5C2EC3.idx new file mode 100644 index 0000000..7c764ff Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/new.887BB2C83B5C2EC3.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/new_allocator.h.EA4A6D67D72040EF.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/new_allocator.h.EA4A6D67D72040EF.idx new file mode 100644 index 0000000..a6a3f6a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/new_allocator.h.EA4A6D67D72040EF.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/numeric.DDB77E73C6A4241A.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/numeric.DDB77E73C6A4241A.idx new file mode 100644 index 0000000..2214280 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/numeric.DDB77E73C6A4241A.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/numeric_traits.h.DBEB651AF0B4D178.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/numeric_traits.h.DBEB651AF0B4D178.idx new file mode 100644 index 0000000..e2b69a7 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/numeric_traits.h.DBEB651AF0B4D178.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/os_defines.h.F9186670C5153E45.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/os_defines.h.F9186670C5153E45.idx new file mode 100644 index 0000000..f7c66ed Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/os_defines.h.F9186670C5153E45.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ostream_insert.h.AD996E301A7D9206.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ostream_insert.h.AD996E301A7D9206.idx new file mode 100644 index 0000000..b80967f Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ostream_insert.h.AD996E301A7D9206.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/parse_numbers.h.9EB9A233B7E5240D.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/parse_numbers.h.9EB9A233B7E5240D.idx new file mode 100644 index 0000000..d582b1d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/parse_numbers.h.9EB9A233B7E5240D.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/pedal_tester.cpp.3D3B1779727593B2.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/pedal_tester.cpp.3D3B1779727593B2.idx new file mode 100644 index 0000000..039825d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/pedal_tester.cpp.3D3B1779727593B2.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix1_lim.h.D94E4687FC9359FF.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix1_lim.h.D94E4687FC9359FF.idx new file mode 100644 index 0000000..233fd0d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix1_lim.h.D94E4687FC9359FF.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix2_lim.h.430DA38A1F301F29.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix2_lim.h.430DA38A1F301F29.idx new file mode 100644 index 0000000..3a5d49d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix2_lim.h.430DA38A1F301F29.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix_opt.h.1A6B676984A189EC.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix_opt.h.1A6B676984A189EC.idx new file mode 100644 index 0000000..ff34d1f Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix_opt.h.1A6B676984A189EC.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix_types.h.6FF29373B7D6D92A.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix_types.h.6FF29373B7D6D92A.idx new file mode 100644 index 0000000..56945e4 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix_types.h.6FF29373B7D6D92A.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix_types.h.825B0F552923DCCC.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix_types.h.825B0F552923DCCC.idx new file mode 100644 index 0000000..6d310d6 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix_types.h.825B0F552923DCCC.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix_types.h.8EBBF1FC83D6AE77.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix_types.h.8EBBF1FC83D6AE77.idx new file mode 100644 index 0000000..a243a08 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix_types.h.8EBBF1FC83D6AE77.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix_types_64.h.90EEA81235A75C1A.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix_types_64.h.90EEA81235A75C1A.idx new file mode 100644 index 0000000..377286b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/posix_types_64.h.90EEA81235A75C1A.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/postypes.h.A34B9F6AE501999F.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/postypes.h.A34B9F6AE501999F.idx new file mode 100644 index 0000000..398c3db Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/postypes.h.A34B9F6AE501999F.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/predefined_ops.h.C255C666336A3121.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/predefined_ops.h.C255C666336A3121.idx new file mode 100644 index 0000000..1b41acd Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/predefined_ops.h.C255C666336A3121.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/pthread.h.022320E0CE01A46D.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/pthread.h.022320E0CE01A46D.idx new file mode 100644 index 0000000..76d5952 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/pthread.h.022320E0CE01A46D.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/pthread_stack_min-dynamic.h.6F432801F0DF58B7.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/pthread_stack_min-dynamic.h.6F432801F0DF58B7.idx new file mode 100644 index 0000000..0a6456e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/pthread_stack_min-dynamic.h.6F432801F0DF58B7.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/pthreadtypes-arch.h.9E138C411BE448A0.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/pthreadtypes-arch.h.9E138C411BE448A0.idx new file mode 100644 index 0000000..391db24 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/pthreadtypes-arch.h.9E138C411BE448A0.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/pthreadtypes.h.BAA8217B62BB6E86.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/pthreadtypes.h.BAA8217B62BB6E86.idx new file mode 100644 index 0000000..0ea9dd9 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/pthreadtypes.h.BAA8217B62BB6E86.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ptr_traits.h.B3383B435CA2BEB5.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ptr_traits.h.B3383B435CA2BEB5.idx new file mode 100644 index 0000000..088c082 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ptr_traits.h.B3383B435CA2BEB5.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qalgorithms.h.FD2ECFF5676E6790.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qalgorithms.h.FD2ECFF5676E6790.idx new file mode 100644 index 0000000..1790805 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qalgorithms.h.FD2ECFF5676E6790.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qarraydata.h.59BE31F3BBA8ED3E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qarraydata.h.59BE31F3BBA8ED3E.idx new file mode 100644 index 0000000..3a38372 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qarraydata.h.59BE31F3BBA8ED3E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qatomic.h.F27F4B16AB53D9F8.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qatomic.h.F27F4B16AB53D9F8.idx new file mode 100644 index 0000000..c5bfb60 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qatomic.h.F27F4B16AB53D9F8.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qatomic_cxx11.h.69F2114361242273.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qatomic_cxx11.h.69F2114361242273.idx new file mode 100644 index 0000000..7f9e8d9 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qatomic_cxx11.h.69F2114361242273.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qbasicatomic.h.A2BFD15B643C1404.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qbasicatomic.h.A2BFD15B643C1404.idx new file mode 100644 index 0000000..479076a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qbasicatomic.h.A2BFD15B643C1404.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qbasictimer.h.9F693E7DCCB7540B.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qbasictimer.h.9F693E7DCCB7540B.idx new file mode 100644 index 0000000..68b75d0 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qbasictimer.h.9F693E7DCCB7540B.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qbytearray.h.3E258E5BF8C780EA.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qbytearray.h.3E258E5BF8C780EA.idx new file mode 100644 index 0000000..d71214e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qbytearray.h.3E258E5BF8C780EA.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qbytearraylist.h.E2E8090DE1F836AD.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qbytearraylist.h.E2E8090DE1F836AD.idx new file mode 100644 index 0000000..2f82b02 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qbytearraylist.h.E2E8090DE1F836AD.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qchar.h.AA0A3CD3BD472DA0.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qchar.h.AA0A3CD3BD472DA0.idx new file mode 100644 index 0000000..cbf9c85 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qchar.h.AA0A3CD3BD472DA0.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcompilerdetection.h.7273FAC81D36B620.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcompilerdetection.h.7273FAC81D36B620.idx new file mode 100644 index 0000000..de33ee5 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcompilerdetection.h.7273FAC81D36B620.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qconfig.h.F68B1AFB5E4EF498.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qconfig.h.F68B1AFB5E4EF498.idx new file mode 100644 index 0000000..e1bef7f Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qconfig.h.F68B1AFB5E4EF498.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcontainerfwd.h.A8D45E2A7296D1C8.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcontainerfwd.h.A8D45E2A7296D1C8.idx new file mode 100644 index 0000000..7b5fd7e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcontainerfwd.h.A8D45E2A7296D1C8.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcontainertools_impl.h.7644E4C51B877567.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcontainertools_impl.h.7644E4C51B877567.idx new file mode 100644 index 0000000..412fbd0 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcontainertools_impl.h.7644E4C51B877567.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcontiguouscache.h.96CDCFCA5BFAC6D4.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcontiguouscache.h.96CDCFCA5BFAC6D4.idx new file mode 100644 index 0000000..3b5a37e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcontiguouscache.h.96CDCFCA5BFAC6D4.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcoreapplication.h.0A5B8B7796FFF62E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcoreapplication.h.0A5B8B7796FFF62E.idx new file mode 100644 index 0000000..8a7c723 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcoreapplication.h.0A5B8B7796FFF62E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcoreevent.h.F3CEEB53B346C550.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcoreevent.h.F3CEEB53B346C550.idx new file mode 100644 index 0000000..a09043b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qcoreevent.h.F3CEEB53B346C550.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qdatetime.h.DE66ECAA5A39E68C.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qdatetime.h.DE66ECAA5A39E68C.idx new file mode 100644 index 0000000..b61bcc9 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qdatetime.h.DE66ECAA5A39E68C.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qdebug.h.6635384F1CA468C8.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qdebug.h.6635384F1CA468C8.idx new file mode 100644 index 0000000..119b36a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qdebug.h.6635384F1CA468C8.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qeventloop.h.634AE2F88E9E40CC.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qeventloop.h.634AE2F88E9E40CC.idx new file mode 100644 index 0000000..b16c421 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qeventloop.h.634AE2F88E9E40CC.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qflags.h.759D8986082A8255.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qflags.h.759D8986082A8255.idx new file mode 100644 index 0000000..52c1743 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qflags.h.759D8986082A8255.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qgenericatomic.h.D2595E9059CE3E6F.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qgenericatomic.h.D2595E9059CE3E6F.idx new file mode 100644 index 0000000..0e76f38 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qgenericatomic.h.D2595E9059CE3E6F.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qglobal.h.80C5986D0C867ACE.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qglobal.h.80C5986D0C867ACE.idx new file mode 100644 index 0000000..f41a982 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qglobal.h.80C5986D0C867ACE.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qglobalstatic.h.B90F9758F0EF15A9.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qglobalstatic.h.B90F9758F0EF15A9.idx new file mode 100644 index 0000000..35f44e9 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qglobalstatic.h.B90F9758F0EF15A9.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qhash.h.C345BB5A3DCF91DD.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qhash.h.C345BB5A3DCF91DD.idx new file mode 100644 index 0000000..137d069 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qhash.h.C345BB5A3DCF91DD.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qhashfunctions.h.7524BE336D4E70AF.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qhashfunctions.h.7524BE336D4E70AF.idx new file mode 100644 index 0000000..ee9c356 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qhashfunctions.h.7524BE336D4E70AF.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qiodevice.h.86919C8F00908C87.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qiodevice.h.86919C8F00908C87.idx new file mode 100644 index 0000000..e3ceb16 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qiodevice.h.86919C8F00908C87.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qiterator.h.A52C38FD59FD21C6.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qiterator.h.A52C38FD59FD21C6.idx new file mode 100644 index 0000000..1a4103e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qiterator.h.A52C38FD59FD21C6.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qlist.h.A54757BEE4315CE6.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qlist.h.A54757BEE4315CE6.idx new file mode 100644 index 0000000..48a3989 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qlist.h.A54757BEE4315CE6.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qlocale.h.7E7DB33F1A299A16.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qlocale.h.7E7DB33F1A299A16.idx new file mode 100644 index 0000000..6ecb301 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qlocale.h.7E7DB33F1A299A16.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qlogging.h.88C32C1FE85F3443.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qlogging.h.88C32C1FE85F3443.idx new file mode 100644 index 0000000..7a728f4 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qlogging.h.88C32C1FE85F3443.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qmap.h.8CA468BD1FBCE665.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qmap.h.8CA468BD1FBCE665.idx new file mode 100644 index 0000000..7b6d426 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qmap.h.8CA468BD1FBCE665.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qmetatype.h.541E34D6E6760512.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qmetatype.h.541E34D6E6760512.idx new file mode 100644 index 0000000..d5c7af1 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qmetatype.h.541E34D6E6760512.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qnamespace.h.EC3FC28536503AF1.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qnamespace.h.EC3FC28536503AF1.idx new file mode 100644 index 0000000..98763c9 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qnamespace.h.EC3FC28536503AF1.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qnumeric.h.A66D4612F55B13BE.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qnumeric.h.A66D4612F55B13BE.idx new file mode 100644 index 0000000..f6ce8fb Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qnumeric.h.A66D4612F55B13BE.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qobject.h.8D479A7B3FDCD700.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qobject.h.8D479A7B3FDCD700.idx new file mode 100644 index 0000000..82cae46 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qobject.h.8D479A7B3FDCD700.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qobject_impl.h.310F998ABFD21C29.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qobject_impl.h.310F998ABFD21C29.idx new file mode 100644 index 0000000..bf928f3 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qobject_impl.h.310F998ABFD21C29.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.A64CF055117FDFF7.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.A64CF055117FDFF7.idx new file mode 100644 index 0000000..098de83 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.A64CF055117FDFF7.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.D522895027B56D10.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.D522895027B56D10.idx new file mode 100644 index 0000000..182bbc7 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.D522895027B56D10.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qobjectdefs_impl.h.7990AFD078F8EA35.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qobjectdefs_impl.h.7990AFD078F8EA35.idx new file mode 100644 index 0000000..2ecb44f Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qobjectdefs_impl.h.7990AFD078F8EA35.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qpair.h.9DEE0C3D7A14D2D0.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qpair.h.9DEE0C3D7A14D2D0.idx new file mode 100644 index 0000000..2b670a4 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qpair.h.9DEE0C3D7A14D2D0.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qprocessordetection.h.F5198DD5442AFC6E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qprocessordetection.h.F5198DD5442AFC6E.idx new file mode 100644 index 0000000..9b5e7e6 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qprocessordetection.h.F5198DD5442AFC6E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qrefcount.h.6BCA9FE7BAF3DF25.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qrefcount.h.6BCA9FE7BAF3DF25.idx new file mode 100644 index 0000000..0408f64 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qrefcount.h.6BCA9FE7BAF3DF25.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qregexp.h.8088EF7E18743A13.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qregexp.h.8088EF7E18743A13.idx new file mode 100644 index 0000000..ad0aa33 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qregexp.h.8088EF7E18743A13.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qscopedpointer.h.447CA7EB36AE21C6.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qscopedpointer.h.447CA7EB36AE21C6.idx new file mode 100644 index 0000000..be540e6 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qscopedpointer.h.447CA7EB36AE21C6.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qset.h.C15D12837355DC57.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qset.h.C15D12837355DC57.idx new file mode 100644 index 0000000..93d6b4c Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qset.h.C15D12837355DC57.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qshareddata.h.1613C0F5A4F18669.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qshareddata.h.1613C0F5A4F18669.idx new file mode 100644 index 0000000..3b337c5 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qshareddata.h.1613C0F5A4F18669.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qsharedpointer.h.9FB2460B773F76C5.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qsharedpointer.h.9FB2460B773F76C5.idx new file mode 100644 index 0000000..d3f17ba Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qsharedpointer.h.9FB2460B773F76C5.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qsharedpointer_impl.h.901DC4E517036607.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qsharedpointer_impl.h.901DC4E517036607.idx new file mode 100644 index 0000000..f75beb6 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qsharedpointer_impl.h.901DC4E517036607.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstring.h.D18E3F7143B0C176.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstring.h.D18E3F7143B0C176.idx new file mode 100644 index 0000000..3ffcd34 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstring.h.D18E3F7143B0C176.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstringalgorithms.h.BCB989669B8CD32D.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstringalgorithms.h.BCB989669B8CD32D.idx new file mode 100644 index 0000000..c31e7a4 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstringalgorithms.h.BCB989669B8CD32D.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstringlist.h.B03A2F9985D050E5.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstringlist.h.B03A2F9985D050E5.idx new file mode 100644 index 0000000..22983bc Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstringlist.h.B03A2F9985D050E5.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstringliteral.h.0A066A3902B9CE30.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstringliteral.h.0A066A3902B9CE30.idx new file mode 100644 index 0000000..acdfb4c Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstringliteral.h.0A066A3902B9CE30.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstringmatcher.h.7D870B6147C84076.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstringmatcher.h.7D870B6147C84076.idx new file mode 100644 index 0000000..8349ac2 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstringmatcher.h.7D870B6147C84076.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstringview.h.A67B8B8FF41BFF55.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstringview.h.A67B8B8FF41BFF55.idx new file mode 100644 index 0000000..2a85823 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qstringview.h.A67B8B8FF41BFF55.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qsysinfo.h.8EF4D5AF4D751B51.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qsysinfo.h.8EF4D5AF4D751B51.idx new file mode 100644 index 0000000..ef49031 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qsysinfo.h.8EF4D5AF4D751B51.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qsystemdetection.h.8329D2CD97522D7C.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qsystemdetection.h.8329D2CD97522D7C.idx new file mode 100644 index 0000000..86080bc Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qsystemdetection.h.8329D2CD97522D7C.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qtcore-config.h.0C11AA7F7C9F0EA4.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qtcore-config.h.0C11AA7F7C9F0EA4.idx new file mode 100644 index 0000000..92e67ae Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qtcore-config.h.0C11AA7F7C9F0EA4.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qtextstream.h.657A421F4C0DCB14.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qtextstream.h.657A421F4C0DCB14.idx new file mode 100644 index 0000000..bbfbdf6 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qtextstream.h.657A421F4C0DCB14.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qtimer.h.C2F7D19836B703AB.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qtimer.h.C2F7D19836B703AB.idx new file mode 100644 index 0000000..0472277 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qtimer.h.C2F7D19836B703AB.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qtypeinfo.h.5160790443A251D4.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qtypeinfo.h.5160790443A251D4.idx new file mode 100644 index 0000000..45dde45 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qtypeinfo.h.5160790443A251D4.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qvariant.h.4C476E0F61671237.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qvariant.h.4C476E0F61671237.idx new file mode 100644 index 0000000..f239759 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qvariant.h.4C476E0F61671237.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qvarlengtharray.h.7FE8B531C3A3B76F.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qvarlengtharray.h.7FE8B531C3A3B76F.idx new file mode 100644 index 0000000..8e2062f Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qvarlengtharray.h.7FE8B531C3A3B76F.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qvector.h.D123A02691F2B7AD.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qvector.h.D123A02691F2B7AD.idx new file mode 100644 index 0000000..0cf922c Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qvector.h.D123A02691F2B7AD.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qversiontagging.h.3C43080618F516BF.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qversiontagging.h.3C43080618F516BF.idx new file mode 100644 index 0000000..938cd64 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/qversiontagging.h.3C43080618F516BF.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/range_access.h.0774A268C1E21ADB.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/range_access.h.0774A268C1E21ADB.idx new file mode 100644 index 0000000..e9a88d8 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/range_access.h.0774A268C1E21ADB.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ratio.79E904F0AD06E0DF.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ratio.79E904F0AD06E0DF.idx new file mode 100644 index 0000000..41ad8d2 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ratio.79E904F0AD06E0DF.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/refwrap.h.6A39B8A186163A76.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/refwrap.h.6A39B8A186163A76.idx new file mode 100644 index 0000000..5ed3e42 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/refwrap.h.6A39B8A186163A76.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/requires_hosted.h.EFA849A463F299CF.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/requires_hosted.h.EFA849A463F299CF.idx new file mode 100644 index 0000000..728d86b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/requires_hosted.h.EFA849A463F299CF.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/sched.h.A585A48500495348.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/sched.h.A585A48500495348.idx new file mode 100644 index 0000000..ed0ab4d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/sched.h.A585A48500495348.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/sched.h.E8530EF262253892.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/sched.h.E8530EF262253892.idx new file mode 100644 index 0000000..b8d8a4a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/sched.h.E8530EF262253892.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/select.h.BA57472D13519767.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/select.h.BA57472D13519767.idx new file mode 100644 index 0000000..8e2f4bd Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/select.h.BA57472D13519767.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/select.h.E19325D0BE3592A0.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/select.h.E19325D0BE3592A0.idx new file mode 100644 index 0000000..440e339 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/select.h.E19325D0BE3592A0.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/setjmp.h.71DEFB3DCC800794.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/setjmp.h.71DEFB3DCC800794.idx new file mode 100644 index 0000000..d1413d9 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/setjmp.h.71DEFB3DCC800794.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/shared_ptr.h.7BBE4D20A8FEB01E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/shared_ptr.h.7BBE4D20A8FEB01E.idx new file mode 100644 index 0000000..2f4bfa5 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/shared_ptr.h.7BBE4D20A8FEB01E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/shared_ptr_atomic.h.7E22A741D516A08B.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/shared_ptr_atomic.h.7E22A741D516A08B.idx new file mode 100644 index 0000000..220ff01 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/shared_ptr_atomic.h.7E22A741D516A08B.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/shared_ptr_base.h.F831AC839E2ACB54.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/shared_ptr_base.h.F831AC839E2ACB54.idx new file mode 100644 index 0000000..d75a39d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/shared_ptr_base.h.F831AC839E2ACB54.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/sigset_t.h.32273C537A103809.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/sigset_t.h.32273C537A103809.idx new file mode 100644 index 0000000..08e4c84 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/sigset_t.h.32273C537A103809.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/single_threaded.h.918E7314A6EC8DC0.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/single_threaded.h.918E7314A6EC8DC0.idx new file mode 100644 index 0000000..50ae877 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/single_threaded.h.918E7314A6EC8DC0.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stat.h.86C3C850450F2AF6.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stat.h.86C3C850450F2AF6.idx new file mode 100644 index 0000000..e2f040c Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stat.h.86C3C850450F2AF6.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/std_abs.h.C0886288BA2C0B45.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/std_abs.h.C0886288BA2C0B45.idx new file mode 100644 index 0000000..9889c88 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/std_abs.h.C0886288BA2C0B45.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/std_function.h.59116F6C185B90E3.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/std_function.h.59116F6C185B90E3.idx new file mode 100644 index 0000000..6cca244 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/std_function.h.59116F6C185B90E3.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdarg.h.36D06E2BE7022BC1.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdarg.h.36D06E2BE7022BC1.idx new file mode 100644 index 0000000..e8182b9 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdarg.h.36D06E2BE7022BC1.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdc-predef.h.9EA93D70716BF84B.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdc-predef.h.9EA93D70716BF84B.idx new file mode 100644 index 0000000..7402c94 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdc-predef.h.9EA93D70716BF84B.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stddef.h.530C0A7BAC1383A3.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stddef.h.530C0A7BAC1383A3.idx new file mode 100644 index 0000000..71c3463 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stddef.h.530C0A7BAC1383A3.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stddef.h.573E230AE7BF71F3.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stddef.h.573E230AE7BF71F3.idx new file mode 100644 index 0000000..c37b9e2 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stddef.h.573E230AE7BF71F3.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdexcept.65C5A6293DB475E2.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdexcept.65C5A6293DB475E2.idx new file mode 100644 index 0000000..9b40c23 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdexcept.65C5A6293DB475E2.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdint-intn.h.EE0939E700184847.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdint-intn.h.EE0939E700184847.idx new file mode 100644 index 0000000..a35d0a0 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdint-intn.h.EE0939E700184847.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdint-least.h.A0CB5BC401DAC650.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdint-least.h.A0CB5BC401DAC650.idx new file mode 100644 index 0000000..c2ea0c7 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdint-least.h.A0CB5BC401DAC650.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdint-uintn.h.B3EA113168048B57.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdint-uintn.h.B3EA113168048B57.idx new file mode 100644 index 0000000..43d3977 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdint-uintn.h.B3EA113168048B57.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdint.h.22B451C129B23D79.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdint.h.22B451C129B23D79.idx new file mode 100644 index 0000000..145a68c Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdint.h.22B451C129B23D79.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdint.h.3C9040AFD7D52CFD.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdint.h.3C9040AFD7D52CFD.idx new file mode 100644 index 0000000..b7d4b71 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdint.h.3C9040AFD7D52CFD.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdio.h.6919C07CB89D47AD.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdio.h.6919C07CB89D47AD.idx new file mode 100644 index 0000000..53185ac Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdio.h.6919C07CB89D47AD.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdio_lim.h.09E79B5FC5C8DF86.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdio_lim.h.09E79B5FC5C8DF86.idx new file mode 100644 index 0000000..921cfa3 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdio_lim.h.09E79B5FC5C8DF86.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdlib-float.h.126E8959FAE2A511.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdlib-float.h.126E8959FAE2A511.idx new file mode 100644 index 0000000..e2d589c Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdlib-float.h.126E8959FAE2A511.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdlib.h.61AA7B9EED10C430.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdlib.h.61AA7B9EED10C430.idx new file mode 100644 index 0000000..eca31ed Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdlib.h.61AA7B9EED10C430.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdlib.h.B8DCE457E3619A0A.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdlib.h.B8DCE457E3619A0A.idx new file mode 100644 index 0000000..d917f0a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stdlib.h.B8DCE457E3619A0A.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_algo.h.59FD8545765E537E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_algo.h.59FD8545765E537E.idx new file mode 100644 index 0000000..df47a88 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_algo.h.59FD8545765E537E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_algobase.h.AB9590E9F48BE0F9.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_algobase.h.AB9590E9F48BE0F9.idx new file mode 100644 index 0000000..bc9890b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_algobase.h.AB9590E9F48BE0F9.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_bvector.h.CD3CD6C7584E6B76.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_bvector.h.CD3CD6C7584E6B76.idx new file mode 100644 index 0000000..e063b07 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_bvector.h.CD3CD6C7584E6B76.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_construct.h.7315C52DAB15556E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_construct.h.7315C52DAB15556E.idx new file mode 100644 index 0000000..89dbe11 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_construct.h.7315C52DAB15556E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_function.h.01F1D612B15DA15C.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_function.h.01F1D612B15DA15C.idx new file mode 100644 index 0000000..ea1460e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_function.h.01F1D612B15DA15C.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_heap.h.88E34651FBAA1756.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_heap.h.88E34651FBAA1756.idx new file mode 100644 index 0000000..844f706 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_heap.h.88E34651FBAA1756.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_iterator.h.F0D8C774B50F004F.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_iterator.h.F0D8C774B50F004F.idx new file mode 100644 index 0000000..4a53604 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_iterator.h.F0D8C774B50F004F.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_iterator_base_funcs.h.F9092E60F2D2E40D.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_iterator_base_funcs.h.F9092E60F2D2E40D.idx new file mode 100644 index 0000000..8fcb010 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_iterator_base_funcs.h.F9092E60F2D2E40D.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_iterator_base_types.h.EB1A61C6BBEC2835.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_iterator_base_types.h.EB1A61C6BBEC2835.idx new file mode 100644 index 0000000..6ba69ec Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_iterator_base_types.h.EB1A61C6BBEC2835.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_list.h.60A07D9C4D2B1141.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_list.h.60A07D9C4D2B1141.idx new file mode 100644 index 0000000..43f0d22 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_list.h.60A07D9C4D2B1141.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_map.h.F3D08576AE6A2834.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_map.h.F3D08576AE6A2834.idx new file mode 100644 index 0000000..aa7c12e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_map.h.F3D08576AE6A2834.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_multimap.h.1B6D9788DD7D07DD.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_multimap.h.1B6D9788DD7D07DD.idx new file mode 100644 index 0000000..c5453f1 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_multimap.h.1B6D9788DD7D07DD.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_numeric.h.5523D89033F7E412.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_numeric.h.5523D89033F7E412.idx new file mode 100644 index 0000000..f592cec Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_numeric.h.5523D89033F7E412.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_pair.h.ABC47F820F129412.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_pair.h.ABC47F820F129412.idx new file mode 100644 index 0000000..360ec30 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_pair.h.ABC47F820F129412.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_raw_storage_iter.h.B6F3D1B2AA10F664.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_raw_storage_iter.h.B6F3D1B2AA10F664.idx new file mode 100644 index 0000000..cfa0a52 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_raw_storage_iter.h.B6F3D1B2AA10F664.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_relops.h.24BFDE02B00E3621.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_relops.h.24BFDE02B00E3621.idx new file mode 100644 index 0000000..f6585b0 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_relops.h.24BFDE02B00E3621.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_tempbuf.h.AE733D0801C156D7.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_tempbuf.h.AE733D0801C156D7.idx new file mode 100644 index 0000000..6a502b5 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_tempbuf.h.AE733D0801C156D7.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_tree.h.BE2F1A89DED77BC9.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_tree.h.BE2F1A89DED77BC9.idx new file mode 100644 index 0000000..1e75b8d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_tree.h.BE2F1A89DED77BC9.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_uninitialized.h.7FC5838335418811.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_uninitialized.h.7FC5838335418811.idx new file mode 100644 index 0000000..db646cf Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_uninitialized.h.7FC5838335418811.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_vector.h.36C1AB8BB6AC3AF3.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_vector.h.36C1AB8BB6AC3AF3.idx new file mode 100644 index 0000000..e6651b0 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stl_vector.h.36C1AB8BB6AC3AF3.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stream_iterator.h.B2666EF6CEB449A8.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stream_iterator.h.B2666EF6CEB449A8.idx new file mode 100644 index 0000000..146bf1c Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stream_iterator.h.B2666EF6CEB449A8.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/streambuf.E7F6935DB46FD4B8.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/streambuf.E7F6935DB46FD4B8.idx new file mode 100644 index 0000000..9c20637 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/streambuf.E7F6935DB46FD4B8.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/streambuf.tcc.13CF298819F0CF69.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/streambuf.tcc.13CF298819F0CF69.idx new file mode 100644 index 0000000..1d39657 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/streambuf.tcc.13CF298819F0CF69.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/streambuf_iterator.h.5699D874BFFFDB9E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/streambuf_iterator.h.5699D874BFFFDB9E.idx new file mode 100644 index 0000000..4a8a66a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/streambuf_iterator.h.5699D874BFFFDB9E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/string.D37ED2A68566F1D5.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/string.D37ED2A68566F1D5.idx new file mode 100644 index 0000000..03333da Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/string.D37ED2A68566F1D5.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/string.h.979B97B48AB27554.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/string.h.979B97B48AB27554.idx new file mode 100644 index 0000000..0117e80 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/string.h.979B97B48AB27554.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/string_conversions.h.75A058B07D5B6058.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/string_conversions.h.75A058B07D5B6058.idx new file mode 100644 index 0000000..7b03e4b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/string_conversions.h.75A058B07D5B6058.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stringfwd.h.6B3FAF8075248E7D.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stringfwd.h.6B3FAF8075248E7D.idx new file mode 100644 index 0000000..cf049f4 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stringfwd.h.6B3FAF8075248E7D.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/strings.h.9EB46A34EB89BB5D.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/strings.h.9EB46A34EB89BB5D.idx new file mode 100644 index 0000000..44ce684 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/strings.h.9EB46A34EB89BB5D.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_FILE.h.2B6C435DE91D3DF8.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_FILE.h.2B6C435DE91D3DF8.idx new file mode 100644 index 0000000..33ba04b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_FILE.h.2B6C435DE91D3DF8.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct___jmp_buf_tag.h.C41AC0386D4A06C8.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct___jmp_buf_tag.h.C41AC0386D4A06C8.idx new file mode 100644 index 0000000..13028c1 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct___jmp_buf_tag.h.C41AC0386D4A06C8.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_iovec.h.2D76C8EFEB1B5ED0.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_iovec.h.2D76C8EFEB1B5ED0.idx new file mode 100644 index 0000000..c17deb9 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_iovec.h.2D76C8EFEB1B5ED0.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_itimerspec.h.7F2AA6FE7224B30F.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_itimerspec.h.7F2AA6FE7224B30F.idx new file mode 100644 index 0000000..d776f2e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_itimerspec.h.7F2AA6FE7224B30F.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_mutex.h.A62EF32C01DB3505.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_mutex.h.A62EF32C01DB3505.idx new file mode 100644 index 0000000..193a05e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_mutex.h.A62EF32C01DB3505.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_rwlock.h.76DF445C3AA414C9.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_rwlock.h.76DF445C3AA414C9.idx new file mode 100644 index 0000000..190201a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_rwlock.h.76DF445C3AA414C9.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_sched_param.h.B3F662015F7067C8.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_sched_param.h.B3F662015F7067C8.idx new file mode 100644 index 0000000..ef1da12 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_sched_param.h.B3F662015F7067C8.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_stat.h.E75EF7EFBCB3A8A2.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_stat.h.E75EF7EFBCB3A8A2.idx new file mode 100644 index 0000000..6ef5d36 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_stat.h.E75EF7EFBCB3A8A2.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_timespec.h.0E09B6677A8D6A08.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_timespec.h.0E09B6677A8D6A08.idx new file mode 100644 index 0000000..c1f2c5b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_timespec.h.0E09B6677A8D6A08.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_timeval.h.4A17C4CCB9EE5883.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_timeval.h.4A17C4CCB9EE5883.idx new file mode 100644 index 0000000..85186fa Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_timeval.h.4A17C4CCB9EE5883.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_tm.h.472DDF26D5924DB0.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_tm.h.472DDF26D5924DB0.idx new file mode 100644 index 0000000..cbd93d3 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/struct_tm.h.472DDF26D5924DB0.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stubs-64.h.C743FD695F310B00.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stubs-64.h.C743FD695F310B00.idx new file mode 100644 index 0000000..83d53cc Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stubs-64.h.C743FD695F310B00.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stubs.h.07D09A29AEBA877C.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stubs.h.07D09A29AEBA877C.idx new file mode 100644 index 0000000..a15824d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/stubs.h.07D09A29AEBA877C.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/system_error.B42E23DBEA5ED881.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/system_error.B42E23DBEA5ED881.idx new file mode 100644 index 0000000..dc9d512 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/system_error.B42E23DBEA5ED881.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-baud.h.32B8F616B6773CB4.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-baud.h.32B8F616B6773CB4.idx new file mode 100644 index 0000000..8fe881a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-baud.h.32B8F616B6773CB4.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-c_cc.h.38553586AFDFC21B.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-c_cc.h.38553586AFDFC21B.idx new file mode 100644 index 0000000..d36981a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-c_cc.h.38553586AFDFC21B.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-c_cflag.h.8C64D6D25BBE3E95.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-c_cflag.h.8C64D6D25BBE3E95.idx new file mode 100644 index 0000000..f47106d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-c_cflag.h.8C64D6D25BBE3E95.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-c_iflag.h.C95D64964218EE77.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-c_iflag.h.C95D64964218EE77.idx new file mode 100644 index 0000000..93f4738 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-c_iflag.h.C95D64964218EE77.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-c_lflag.h.AF676EB863CA8E60.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-c_lflag.h.AF676EB863CA8E60.idx new file mode 100644 index 0000000..d35b04e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-c_lflag.h.AF676EB863CA8E60.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-c_oflag.h.395B2C451F9BE0B7.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-c_oflag.h.395B2C451F9BE0B7.idx new file mode 100644 index 0000000..f2657c6 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-c_oflag.h.395B2C451F9BE0B7.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-cbaud.h.C4C9A91359CF9375.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-cbaud.h.C4C9A91359CF9375.idx new file mode 100644 index 0000000..0d49ffb Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-cbaud.h.C4C9A91359CF9375.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-misc.h.418CF731D3112C2B.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-misc.h.418CF731D3112C2B.idx new file mode 100644 index 0000000..a68b02f Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-misc.h.418CF731D3112C2B.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-struct.h.5E01E6E34C788D15.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-struct.h.5E01E6E34C788D15.idx new file mode 100644 index 0000000..006925d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-struct.h.5E01E6E34C788D15.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-tcflow.h.990A75D85E4E7F16.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-tcflow.h.990A75D85E4E7F16.idx new file mode 100644 index 0000000..31236d9 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios-tcflow.h.990A75D85E4E7F16.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios.h.13717E37BDE03149.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios.h.13717E37BDE03149.idx new file mode 100644 index 0000000..1158cb3 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios.h.13717E37BDE03149.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios.h.ACC1BC42401E6F68.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios.h.ACC1BC42401E6F68.idx new file mode 100644 index 0000000..2beb28b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/termios.h.ACC1BC42401E6F68.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/thread-shared-types.h.D988ADBA7666A8DD.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/thread-shared-types.h.D988ADBA7666A8DD.idx new file mode 100644 index 0000000..ad01a39 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/thread-shared-types.h.D988ADBA7666A8DD.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/time.h.E3714B647728C2FE.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/time.h.E3714B647728C2FE.idx new file mode 100644 index 0000000..acd6f10 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/time.h.E3714B647728C2FE.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/time.h.EDC06F0AFB6EC7EC.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/time.h.EDC06F0AFB6EC7EC.idx new file mode 100644 index 0000000..24630d6 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/time.h.EDC06F0AFB6EC7EC.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/time64.h.1807D6F5124100A2.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/time64.h.1807D6F5124100A2.idx new file mode 100644 index 0000000..b2a1d08 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/time64.h.1807D6F5124100A2.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/time_t.h.CAA645D29A7A0EF9.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/time_t.h.CAA645D29A7A0EF9.idx new file mode 100644 index 0000000..8a1de32 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/time_t.h.CAA645D29A7A0EF9.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/timer_t.h.3EFB88CBA2B5B801.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/timer_t.h.3EFB88CBA2B5B801.idx new file mode 100644 index 0000000..5b3d329 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/timer_t.h.3EFB88CBA2B5B801.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/timesize.h.44719E86E09400E4.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/timesize.h.44719E86E09400E4.idx new file mode 100644 index 0000000..b5f4e1d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/timesize.h.44719E86E09400E4.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/timex.h.F2D36E17192C32F0.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/timex.h.F2D36E17192C32F0.idx new file mode 100644 index 0000000..313498c Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/timex.h.F2D36E17192C32F0.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ttydefaults.h.C98530E4C2DE508E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ttydefaults.h.C98530E4C2DE508E.idx new file mode 100644 index 0000000..db3d8e4 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/ttydefaults.h.C98530E4C2DE508E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/tuple.EA25F1157ED7DA3D.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/tuple.EA25F1157ED7DA3D.idx new file mode 100644 index 0000000..35c6516 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/tuple.EA25F1157ED7DA3D.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/type_traits.B5260392D7506FDF.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/type_traits.B5260392D7506FDF.idx new file mode 100644 index 0000000..28df0bb Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/type_traits.B5260392D7506FDF.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/type_traits.h.1107E36AFD96CC43.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/type_traits.h.1107E36AFD96CC43.idx new file mode 100644 index 0000000..ed2b2c4 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/type_traits.h.1107E36AFD96CC43.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/typeinfo.8B4361F429E21213.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/typeinfo.8B4361F429E21213.idx new file mode 100644 index 0000000..85db188 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/typeinfo.8B4361F429E21213.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.21D9DEB46A9E0272.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.21D9DEB46A9E0272.idx new file mode 100644 index 0000000..74bef8c Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.21D9DEB46A9E0272.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.3AD5A0D016060D25.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.3AD5A0D016060D25.idx new file mode 100644 index 0000000..5d9bbec Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.3AD5A0D016060D25.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.BB07396DFADEEB89.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.BB07396DFADEEB89.idx new file mode 100644 index 0000000..6ac873d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.BB07396DFADEEB89.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.CAF4DC91124A326D.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.CAF4DC91124A326D.idx new file mode 100644 index 0000000..94adc0b Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.CAF4DC91124A326D.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.E5A59583DBE28918.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.E5A59583DBE28918.idx new file mode 100644 index 0000000..a18024a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.E5A59583DBE28918.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.E5E7FE6DA0F78AF5.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.E5E7FE6DA0F78AF5.idx new file mode 100644 index 0000000..a4adee3 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/types.h.E5E7FE6DA0F78AF5.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/typesizes.h.A6E116B64E63B90B.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/typesizes.h.A6E116B64E63B90B.idx new file mode 100644 index 0000000..a1874bd Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/typesizes.h.A6E116B64E63B90B.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/uintn-identity.h.CB86545C6FF94BB3.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/uintn-identity.h.CB86545C6FF94BB3.idx new file mode 100644 index 0000000..fd4b0d1 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/uintn-identity.h.CB86545C6FF94BB3.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/uio_lim.h.DF584C6AE54BEA07.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/uio_lim.h.DF584C6AE54BEA07.idx new file mode 100644 index 0000000..14326bb Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/uio_lim.h.DF584C6AE54BEA07.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/uniform_int_dist.h.537A0A4438989FF3.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/uniform_int_dist.h.537A0A4438989FF3.idx new file mode 100644 index 0000000..0889103 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/uniform_int_dist.h.537A0A4438989FF3.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/unique_ptr.h.4355FA4900B65F20.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/unique_ptr.h.4355FA4900B65F20.idx new file mode 100644 index 0000000..92effa4 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/unique_ptr.h.4355FA4900B65F20.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/unistd.h.4957E2CBEF0B97CE.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/unistd.h.4957E2CBEF0B97CE.idx new file mode 100644 index 0000000..e5684db Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/unistd.h.4957E2CBEF0B97CE.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/unistd_ext.h.19E02BEC0B72F7D2.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/unistd_ext.h.19E02BEC0B72F7D2.idx new file mode 100644 index 0000000..46f8657 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/unistd_ext.h.19E02BEC0B72F7D2.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/uses_allocator.h.ABD29684E1303EF9.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/uses_allocator.h.ABD29684E1303EF9.idx new file mode 100644 index 0000000..4994c1e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/uses_allocator.h.ABD29684E1303EF9.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/utility.0191A478BB7CF219.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/utility.0191A478BB7CF219.idx new file mode 100644 index 0000000..425368d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/utility.0191A478BB7CF219.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/utility.h.AAFC7DB6DCE683E3.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/utility.h.AAFC7DB6DCE683E3.idx new file mode 100644 index 0000000..9643e49 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/utility.h.AAFC7DB6DCE683E3.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/vector.19A0304396FDE700.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/vector.19A0304396FDE700.idx new file mode 100644 index 0000000..840b6a4 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/vector.19A0304396FDE700.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/vector.tcc.EB92608F25B88A68.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/vector.tcc.EB92608F25B88A68.idx new file mode 100644 index 0000000..7c5fd0a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/vector.tcc.EB92608F25B88A68.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/version.h.8B5F774406BC230E.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/version.h.8B5F774406BC230E.idx new file mode 100644 index 0000000..c0d9b3d Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/version.h.8B5F774406BC230E.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/waitflags.h.8046C5530CD87302.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/waitflags.h.8046C5530CD87302.idx new file mode 100644 index 0000000..cb6d60a Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/waitflags.h.8046C5530CD87302.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/waitstatus.h.D7C4F06852D51050.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/waitstatus.h.D7C4F06852D51050.idx new file mode 100644 index 0000000..7d7fb8e Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/waitstatus.h.D7C4F06852D51050.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/wchar.h.27C0562D93BBAA12.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/wchar.h.27C0562D93BBAA12.idx new file mode 100644 index 0000000..9250706 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/wchar.h.27C0562D93BBAA12.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/wchar.h.83BD995621576773.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/wchar.h.83BD995621576773.idx new file mode 100644 index 0000000..ed2ccf2 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/wchar.h.83BD995621576773.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/wint_t.h.DAC5928CF0BA7895.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/wint_t.h.DAC5928CF0BA7895.idx new file mode 100644 index 0000000..4c76b74 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/wint_t.h.DAC5928CF0BA7895.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/wordsize.h.23D8030BEC81E6F1.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/wordsize.h.23D8030BEC81E6F1.idx new file mode 100644 index 0000000..114b3dc Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/wordsize.h.23D8030BEC81E6F1.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/xopen_lim.h.E4E4BC8C11167D14.idx b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/xopen_lim.h.E4E4BC8C11167D14.idx new file mode 100644 index 0000000..d5bc954 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/.cache/clangd/index/xopen_lim.h.E4E4BC8C11167D14.idx differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/compile_commands.json b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/compile_commands.json new file mode 100644 index 0000000..aac16a6 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd/compile_commands.json @@ -0,0 +1 @@ +[{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-std=gnu++11","-Wall","-Wextra","-D_REENTRANT","-fPIC","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_NO_DEBUG","-DQT_GUI_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester","-I/usr/include/x86_64-linux-gnu/qt5","-I/usr/include/x86_64-linux-gnu/qt5/QtGui","-I/usr/include/x86_64-linux-gnu/qt5/QtCore","-I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++","/home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.cpp"],"directory":"/home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.cpp"},{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-std=gnu++11","-Wall","-Wextra","-D_REENTRANT","-fPIC","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_NO_DEBUG","-DQT_GUI_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester","-I/usr/include/x86_64-linux-gnu/qt5","-I/usr/include/x86_64-linux-gnu/qt5/QtGui","-I/usr/include/x86_64-linux-gnu/qt5/QtCore","-I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++","/home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.cpp"],"directory":"/home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.cpp"}] \ No newline at end of file diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtcreator/pedal_tester.pro.user b/OtherPush/yamitraherIlyaEdit/tester/.qtcreator/pedal_tester.pro.user new file mode 100644 index 0000000..1d0fcf5 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/tester/.qtcreator/pedal_tester.pro.user @@ -0,0 +1,467 @@ + + + + + + EnvironmentId + {89b8cbb4-bbd9-44d4-86fc-4f76722e0ba9} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + true + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 0 + 80 + true + true + 1 + 0 + false + true + false + 2 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + false + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 4 + true + + + + true + + 0 + + + + ProjectExplorer.Project.Target.0 + + Desktop + true + Qt 5.15.17 в PATH (qt5) + Qt 5.15.17 в PATH (qt5) + {8352aa05-543b-406d-b656-24220d53535f} + 0 + 0 + 0 + + /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester + + + true + QtProjectManager.QMakeBuildStep + QMAKE_CXX=g++ + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск (imported) + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + Qt4ProjectManager.Qt4RunConfiguration: + /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.pro + false + + true + true + true + %{RunConfig:Executable:Path} + + 1 + 0 + + 1 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + Qt4ProjectManager.Qt4RunConfiguration: + /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.pro + false + + true + true + true + %{RunConfig:Executable:Path} + + 1 + + + + ProjectExplorer.Project.Target.1 + + Desktop + true + Qt 5.15.17 в PATH (qt5) + Qt 5.15.17 в PATH (qt5) + {f3523bf7-d735-48ed-89ab-eb9a2e6ff3eb} + 0 + 0 + 0 + + 0 + /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug + /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка (imported) + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + + true + true + %{RunConfig:Executable:Path} + + 1 + 2 + + 1 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + + true + true + %{RunConfig:Executable:Path} + + 1 + + + + ProjectExplorer.Project.Target.2 + + Desktop + true + Qt 6.9.2 (qt6) + Qt 6.9.2 (qt6) + {0494a808-493d-4899-9a00-f8709ce249f5} + 0 + 0 + 0 + + 0 + /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/build/Qt_6_9_2_qt6-Debug + /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/build/Qt_6_9_2_qt6-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + + true + true + %{RunConfig:Executable:Path} + + 1 + 2 + + 1 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + + true + true + %{RunConfig:Executable:Path} + + 1 + + + + ProjectExplorer.Project.TargetCount + 3 + + + Version + 22 + + diff --git a/OtherPush/yamitraherIlyaEdit/tester/.qtcreator/pedal_tester.pro.user.70d3de3 b/OtherPush/yamitraherIlyaEdit/tester/.qtcreator/pedal_tester.pro.user.70d3de3 new file mode 100644 index 0000000..957d997 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/tester/.qtcreator/pedal_tester.pro.user.70d3de3 @@ -0,0 +1,349 @@ + + + + + + EnvironmentId + {70d3de3f-e4a2-402a-9f20-20438673c5e3} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + 0 + false + true + false + 2 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 2 + true + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {8b3c465b-e298-4739-b6a5-d8f8782f1972} + 0 + 0 + 0 + + 0 + /home/ryzer/tester/build/Desktop-Debug + /home/ryzer/tester/build/Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/ryzer/tester/build/Desktop-Release + /home/ryzer/tester/build/Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/ryzer/tester/build/Desktop-Profile + /home/ryzer/tester/build/Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + Qt4ProjectManager.Qt4RunConfiguration:/home/ryzer/tester/pedal_tester.pro + /home/ryzer/tester/pedal_tester.pro + false + true + true + true + /home/ryzer/tester/build/Desktop-Debug + + 1 + + + + ProjectExplorer.Project.Target.1 + + Desktop + Python 3.12.3 + Python 3.12.3 + {230bbf2a-31c9-45e5-988e-dcf2272a31ae} + 0 + 0 + 0 + + /home/ryzer/tester + /home/ryzer/tester + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + 1 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + true + true + + 1 + + + + ProjectExplorer.Project.TargetCount + 2 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/OtherPush/yamitraherIlyaEdit/tester/Makefile b/OtherPush/yamitraherIlyaEdit/tester/Makefile new file mode 100644 index 0000000..db25de5 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/tester/Makefile @@ -0,0 +1,393 @@ +############################################################################# +# Makefile for building: pedal_tester +# Generated by qmake (3.1) (Qt 5.15.17) +# Project: pedal_tester.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile pedal_tester.pro QMAKE_CXX=g++ +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = clang +CXX = clang++ +DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++11 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = pedal_tester1.0.0 +DISTDIR = /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/.tmp/pedal_tester1.0.0 +LINK = clang++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = pedal_tester.cpp moc_pedal_tester.cpp +OBJECTS = pedal_tester.o \ + moc_pedal_tester.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + pedal_tester.pro pedal_tester.cpp pedal_tester.cpp +QMAKE_TARGET = pedal_tester +DESTDIR = +TARGET = pedal_tester + + +first: all +####### Build rules + +pedal_tester: $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: pedal_tester.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + pedal_tester.pro + $(QMAKE) -o Makefile pedal_tester.pro QMAKE_CXX=g++ +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +pedal_tester.pro: +qmake: FORCE + @$(QMAKE) -o Makefile pedal_tester.pro QMAKE_CXX=g++ + +qmake_all: FORCE + + +all: Makefile pedal_tester + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents pedal_tester.cpp $(DISTDIR)/ + $(COPY_FILE) --parents pedal_tester.cpp $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + clang++ -pipe -O2 -std=gnu++11 -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_pedal_tester.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_pedal_tester.cpp +moc_pedal_tester.cpp: pedal_tester.cpp \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include pedal_tester.cpp -o moc_pedal_tester.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: pedal_tester.moc +compiler_moc_source_clean: + -$(DEL_FILE) pedal_tester.moc +pedal_tester.moc: pedal_tester.cpp \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include pedal_tester.cpp -o pedal_tester.moc + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_moc_source_clean + +####### Compile + +pedal_tester.o: pedal_tester.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o pedal_tester.o pedal_tester.cpp + +moc_pedal_tester.o: moc_pedal_tester.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_pedal_tester.o moc_pedal_tester.cpp + +####### Install + +install: FORCE + +uninstall: FORCE + +FORCE: + diff --git a/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug/Makefile b/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug/Makefile new file mode 100644 index 0000000..8939e6d --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug/Makefile @@ -0,0 +1,394 @@ +############################################################################# +# Makefile for building: pedal_tester +# Generated by qmake (3.1) (Qt 5.15.17) +# Project: ../../pedal_tester.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../../pedal_tester.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = clang +CXX = clang++ +DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++11 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../../../tester -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = pedal_tester1.0.0 +DISTDIR = /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug/.tmp/pedal_tester1.0.0 +LINK = clang++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../../pedal_tester.cpp moc_pedal_tester.cpp +OBJECTS = pedal_tester.o \ + moc_pedal_tester.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../../../../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../../../pedal_tester.pro ../../pedal_tester.cpp ../../pedal_tester.cpp +QMAKE_TARGET = pedal_tester +DESTDIR = +TARGET = pedal_tester + + +first: all +####### Build rules + +pedal_tester: $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../../pedal_tester.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../pedal_tester.pro + $(QMAKE) -o Makefile ../../pedal_tester.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +../../.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../../pedal_tester.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../../pedal_tester.pro + +qmake_all: FORCE + + +all: Makefile pedal_tester + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../../pedal_tester.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../../pedal_tester.cpp $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + clang++ -pipe -O2 -std=gnu++11 -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_pedal_tester.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_pedal_tester.cpp +moc_pedal_tester.cpp: ../../pedal_tester.cpp \ + ../../moc_pedal_tester.cpp \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../../pedal_tester.cpp -o moc_pedal_tester.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: pedal_tester.moc +compiler_moc_source_clean: + -$(DEL_FILE) pedal_tester.moc +pedal_tester.moc: ../../pedal_tester.cpp \ + ../../moc_pedal_tester.cpp \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../../pedal_tester.cpp -o pedal_tester.moc + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_moc_source_clean + +####### Compile + +pedal_tester.o: ../../pedal_tester.cpp ../../moc_pedal_tester.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o pedal_tester.o ../../pedal_tester.cpp + +moc_pedal_tester.o: moc_pedal_tester.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_pedal_tester.o moc_pedal_tester.cpp + +####### Install + +install: FORCE + +uninstall: FORCE + +FORCE: + diff --git a/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug/moc_pedal_tester.cpp b/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug/moc_pedal_tester.cpp new file mode 100644 index 0000000..79c7b4f --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug/moc_pedal_tester.cpp @@ -0,0 +1,94 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'pedal_tester.cpp' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.17) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'pedal_tester.cpp' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.17. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_MidiPedalTester_t { + QByteArrayData data[1]; + char stringdata0[16]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_MidiPedalTester_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_MidiPedalTester_t qt_meta_stringdata_MidiPedalTester = { + { +QT_MOC_LITERAL(0, 0, 15) // "MidiPedalTester" + + }, + "MidiPedalTester" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_MidiPedalTester[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void MidiPedalTester::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject MidiPedalTester::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_MidiPedalTester.data, + qt_meta_data_MidiPedalTester, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *MidiPedalTester::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *MidiPedalTester::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_MidiPedalTester.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int MidiPedalTester::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug/moc_predefs.h b/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug/moc_predefs.h new file mode 100644 index 0000000..84d65ac --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug/moc_predefs.h @@ -0,0 +1,439 @@ +#define _GNU_SOURCE 1 +#define _LP64 1 +#define __ATOMIC_ACQUIRE 2 +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_CONSUME 1 +#define __ATOMIC_RELAXED 0 +#define __ATOMIC_RELEASE 3 +#define __ATOMIC_SEQ_CST 5 +#define __BIGGEST_ALIGNMENT__ 16 +#define __BITINT_MAXWIDTH__ 8388608 +#define __BOOL_WIDTH__ 8 +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __CHAR16_TYPE__ unsigned short +#define __CHAR32_TYPE__ unsigned int +#define __CHAR_BIT__ 8 +#define __CLANG_ATOMIC_BOOL_LOCK_FREE 2 +#define __CLANG_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __CLANG_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __CLANG_ATOMIC_CHAR_LOCK_FREE 2 +#define __CLANG_ATOMIC_INT_LOCK_FREE 2 +#define __CLANG_ATOMIC_LLONG_LOCK_FREE 2 +#define __CLANG_ATOMIC_LONG_LOCK_FREE 2 +#define __CLANG_ATOMIC_POINTER_LOCK_FREE 2 +#define __CLANG_ATOMIC_SHORT_LOCK_FREE 2 +#define __CLANG_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __CONSTANT_CFSTRINGS__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 +#define __DBL_DIG__ 15 +#define __DBL_EPSILON__ 2.2204460492503131e-16 +#define __DBL_HAS_DENORM__ 1 +#define __DBL_HAS_INFINITY__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __DBL_MANT_DIG__ 53 +#define __DBL_MAX_10_EXP__ 308 +#define __DBL_MAX_EXP__ 1024 +#define __DBL_MAX__ 1.7976931348623157e+308 +#define __DBL_MIN_10_EXP__ (-307) +#define __DBL_MIN_EXP__ (-1021) +#define __DBL_MIN__ 2.2250738585072014e-308 +#define __DBL_NORM_MAX__ 1.7976931348623157e+308 +#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ +#define __DEPRECATED 1 +#define __ELF__ 1 +#define __EXCEPTIONS 1 +#define __FINITE_MATH_ONLY__ 0 +#define __FLOAT128__ 1 +#define __FLT16_DECIMAL_DIG__ 5 +#define __FLT16_DENORM_MIN__ 5.9604644775390625e-8F16 +#define __FLT16_DIG__ 3 +#define __FLT16_EPSILON__ 9.765625e-4F16 +#define __FLT16_HAS_DENORM__ 1 +#define __FLT16_HAS_INFINITY__ 1 +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __FLT16_MANT_DIG__ 11 +#define __FLT16_MAX_10_EXP__ 4 +#define __FLT16_MAX_EXP__ 16 +#define __FLT16_MAX__ 6.5504e+4F16 +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT16_MIN_EXP__ (-13) +#define __FLT16_MIN__ 6.103515625e-5F16 +#define __FLT16_NORM_MAX__ 6.5504e+4F16 +#define __FLT_DECIMAL_DIG__ 9 +#define __FLT_DENORM_MIN__ 1.40129846e-45F +#define __FLT_DIG__ 6 +#define __FLT_EPSILON__ 1.19209290e-7F +#define __FLT_HAS_DENORM__ 1 +#define __FLT_HAS_INFINITY__ 1 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MANT_DIG__ 24 +#define __FLT_MAX_10_EXP__ 38 +#define __FLT_MAX_EXP__ 128 +#define __FLT_MAX__ 3.40282347e+38F +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT_MIN_EXP__ (-125) +#define __FLT_MIN__ 1.17549435e-38F +#define __FLT_NORM_MAX__ 3.40282347e+38F +#define __FLT_RADIX__ 2 +#define __FPCLASS_NEGINF 0x0004 +#define __FPCLASS_NEGNORMAL 0x0008 +#define __FPCLASS_NEGSUBNORMAL 0x0010 +#define __FPCLASS_NEGZERO 0x0020 +#define __FPCLASS_POSINF 0x0200 +#define __FPCLASS_POSNORMAL 0x0100 +#define __FPCLASS_POSSUBNORMAL 0x0080 +#define __FPCLASS_POSZERO 0x0040 +#define __FPCLASS_QNAN 0x0002 +#define __FPCLASS_SNAN 0x0001 +#define __FXSR__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __GNUC_GNU_INLINE__ 1 +#define __GNUC_MINOR__ 2 +#define __GNUC_PATCHLEVEL__ 1 +#define __GNUC__ 4 +#define __GNUG__ 4 +#define __GXX_ABI_VERSION 1002 +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __GXX_RTTI 1 +#define __GXX_WEAK__ 1 +#define __INT16_C_SUFFIX__ +#define __INT16_FMTd__ "hd" +#define __INT16_FMTi__ "hi" +#define __INT16_MAX__ 32767 +#define __INT16_TYPE__ short +#define __INT32_C_SUFFIX__ +#define __INT32_FMTd__ "d" +#define __INT32_FMTi__ "i" +#define __INT32_MAX__ 2147483647 +#define __INT32_TYPE__ int +#define __INT64_C_SUFFIX__ L +#define __INT64_FMTd__ "ld" +#define __INT64_FMTi__ "li" +#define __INT64_MAX__ 9223372036854775807L +#define __INT64_TYPE__ long int +#define __INT8_C_SUFFIX__ +#define __INT8_FMTd__ "hhd" +#define __INT8_FMTi__ "hhi" +#define __INT8_MAX__ 127 +#define __INT8_TYPE__ signed char +#define __INTMAX_C_SUFFIX__ L +#define __INTMAX_FMTd__ "ld" +#define __INTMAX_FMTi__ "li" +#define __INTMAX_MAX__ 9223372036854775807L +#define __INTMAX_TYPE__ long int +#define __INTMAX_WIDTH__ 64 +#define __INTPTR_FMTd__ "ld" +#define __INTPTR_FMTi__ "li" +#define __INTPTR_MAX__ 9223372036854775807L +#define __INTPTR_TYPE__ long int +#define __INTPTR_WIDTH__ 64 +#define __INT_FAST16_FMTd__ "hd" +#define __INT_FAST16_FMTi__ "hi" +#define __INT_FAST16_MAX__ 32767 +#define __INT_FAST16_TYPE__ short +#define __INT_FAST16_WIDTH__ 16 +#define __INT_FAST32_FMTd__ "d" +#define __INT_FAST32_FMTi__ "i" +#define __INT_FAST32_MAX__ 2147483647 +#define __INT_FAST32_TYPE__ int +#define __INT_FAST32_WIDTH__ 32 +#define __INT_FAST64_FMTd__ "ld" +#define __INT_FAST64_FMTi__ "li" +#define __INT_FAST64_MAX__ 9223372036854775807L +#define __INT_FAST64_TYPE__ long int +#define __INT_FAST64_WIDTH__ 64 +#define __INT_FAST8_FMTd__ "hhd" +#define __INT_FAST8_FMTi__ "hhi" +#define __INT_FAST8_MAX__ 127 +#define __INT_FAST8_TYPE__ signed char +#define __INT_FAST8_WIDTH__ 8 +#define __INT_LEAST16_FMTd__ "hd" +#define __INT_LEAST16_FMTi__ "hi" +#define __INT_LEAST16_MAX__ 32767 +#define __INT_LEAST16_TYPE__ short +#define __INT_LEAST16_WIDTH__ 16 +#define __INT_LEAST32_FMTd__ "d" +#define __INT_LEAST32_FMTi__ "i" +#define __INT_LEAST32_MAX__ 2147483647 +#define __INT_LEAST32_TYPE__ int +#define __INT_LEAST32_WIDTH__ 32 +#define __INT_LEAST64_FMTd__ "ld" +#define __INT_LEAST64_FMTi__ "li" +#define __INT_LEAST64_MAX__ 9223372036854775807L +#define __INT_LEAST64_TYPE__ long int +#define __INT_LEAST64_WIDTH__ 64 +#define __INT_LEAST8_FMTd__ "hhd" +#define __INT_LEAST8_FMTi__ "hhi" +#define __INT_LEAST8_MAX__ 127 +#define __INT_LEAST8_TYPE__ signed char +#define __INT_LEAST8_WIDTH__ 8 +#define __INT_MAX__ 2147483647 +#define __INT_WIDTH__ 32 +#define __LDBL_DECIMAL_DIG__ 21 +#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L +#define __LDBL_DIG__ 18 +#define __LDBL_EPSILON__ 1.08420217248550443401e-19L +#define __LDBL_HAS_DENORM__ 1 +#define __LDBL_HAS_INFINITY__ 1 +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __LDBL_MANT_DIG__ 64 +#define __LDBL_MAX_10_EXP__ 4932 +#define __LDBL_MAX_EXP__ 16384 +#define __LDBL_MAX__ 1.18973149535723176502e+4932L +#define __LDBL_MIN_10_EXP__ (-4931) +#define __LDBL_MIN_EXP__ (-16381) +#define __LDBL_MIN__ 3.36210314311209350626e-4932L +#define __LDBL_NORM_MAX__ 1.18973149535723176502e+4932L +#define __LITTLE_ENDIAN__ 1 +#define __LLONG_WIDTH__ 64 +#define __LONG_LONG_MAX__ 9223372036854775807LL +#define __LONG_MAX__ 9223372036854775807L +#define __LONG_WIDTH__ 64 +#define __LP64__ 1 +#define __MEMORY_SCOPE_DEVICE 1 +#define __MEMORY_SCOPE_SINGLE 4 +#define __MEMORY_SCOPE_SYSTEM 0 +#define __MEMORY_SCOPE_WRKGRP 2 +#define __MEMORY_SCOPE_WVFRNT 3 +#define __MMX__ 1 +#define __NO_MATH_INLINES 1 +#define __OBJC_BOOL_IS_BOOL 0 +#define __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES 3 +#define __OPENCL_MEMORY_SCOPE_DEVICE 2 +#define __OPENCL_MEMORY_SCOPE_SUB_GROUP 4 +#define __OPENCL_MEMORY_SCOPE_WORK_GROUP 1 +#define __OPENCL_MEMORY_SCOPE_WORK_ITEM 0 +#define __OPTIMIZE__ 1 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __ORDER_PDP_ENDIAN__ 3412 +#define __PIC__ 2 +#define __PIE__ 2 +#define __POINTER_WIDTH__ 64 +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __PTRDIFF_FMTd__ "ld" +#define __PTRDIFF_FMTi__ "li" +#define __PTRDIFF_MAX__ 9223372036854775807L +#define __PTRDIFF_TYPE__ long int +#define __PTRDIFF_WIDTH__ 64 +#define __REGISTER_PREFIX__ +#define __SCHAR_MAX__ 127 +#define __SEG_FS 1 +#define __SEG_GS 1 +#define __SHRT_MAX__ 32767 +#define __SHRT_WIDTH__ 16 +#define __SIG_ATOMIC_MAX__ 2147483647 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __SIZEOF_DOUBLE__ 8 +#define __SIZEOF_FLOAT128__ 16 +#define __SIZEOF_FLOAT__ 4 +#define __SIZEOF_INT128__ 16 +#define __SIZEOF_INT__ 4 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __SIZEOF_LONG_LONG__ 8 +#define __SIZEOF_LONG__ 8 +#define __SIZEOF_POINTER__ 8 +#define __SIZEOF_PTRDIFF_T__ 8 +#define __SIZEOF_SHORT__ 2 +#define __SIZEOF_SIZE_T__ 8 +#define __SIZEOF_WCHAR_T__ 4 +#define __SIZEOF_WINT_T__ 4 +#define __SIZE_FMTX__ "lX" +#define __SIZE_FMTo__ "lo" +#define __SIZE_FMTu__ "lu" +#define __SIZE_FMTx__ "lx" +#define __SIZE_MAX__ 18446744073709551615UL +#define __SIZE_TYPE__ long unsigned int +#define __SIZE_WIDTH__ 64 +#define __SSE2_MATH__ 1 +#define __SSE2__ 1 +#define __SSE_MATH__ 1 +#define __SSE__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16UL +#define __STDCPP_THREADS__ 1 +#define __STDC_EMBED_EMPTY__ 2 +#define __STDC_EMBED_FOUND__ 1 +#define __STDC_EMBED_NOT_FOUND__ 0 +#define __STDC_HOSTED__ 1 +#define __STDC_UTF_16__ 1 +#define __STDC_UTF_32__ 1 +#define __STDC__ 1 +#define __UINT16_C_SUFFIX__ +#define __UINT16_FMTX__ "hX" +#define __UINT16_FMTo__ "ho" +#define __UINT16_FMTu__ "hu" +#define __UINT16_FMTx__ "hx" +#define __UINT16_MAX__ 65535 +#define __UINT16_TYPE__ unsigned short +#define __UINT32_C_SUFFIX__ U +#define __UINT32_FMTX__ "X" +#define __UINT32_FMTo__ "o" +#define __UINT32_FMTu__ "u" +#define __UINT32_FMTx__ "x" +#define __UINT32_MAX__ 4294967295U +#define __UINT32_TYPE__ unsigned int +#define __UINT64_C_SUFFIX__ UL +#define __UINT64_FMTX__ "lX" +#define __UINT64_FMTo__ "lo" +#define __UINT64_FMTu__ "lu" +#define __UINT64_FMTx__ "lx" +#define __UINT64_MAX__ 18446744073709551615UL +#define __UINT64_TYPE__ long unsigned int +#define __UINT8_C_SUFFIX__ +#define __UINT8_FMTX__ "hhX" +#define __UINT8_FMTo__ "hho" +#define __UINT8_FMTu__ "hhu" +#define __UINT8_FMTx__ "hhx" +#define __UINT8_MAX__ 255 +#define __UINT8_TYPE__ unsigned char +#define __UINTMAX_C_SUFFIX__ UL +#define __UINTMAX_FMTX__ "lX" +#define __UINTMAX_FMTo__ "lo" +#define __UINTMAX_FMTu__ "lu" +#define __UINTMAX_FMTx__ "lx" +#define __UINTMAX_MAX__ 18446744073709551615UL +#define __UINTMAX_TYPE__ long unsigned int +#define __UINTMAX_WIDTH__ 64 +#define __UINTPTR_FMTX__ "lX" +#define __UINTPTR_FMTo__ "lo" +#define __UINTPTR_FMTu__ "lu" +#define __UINTPTR_FMTx__ "lx" +#define __UINTPTR_MAX__ 18446744073709551615UL +#define __UINTPTR_TYPE__ long unsigned int +#define __UINTPTR_WIDTH__ 64 +#define __UINT_FAST16_FMTX__ "hX" +#define __UINT_FAST16_FMTo__ "ho" +#define __UINT_FAST16_FMTu__ "hu" +#define __UINT_FAST16_FMTx__ "hx" +#define __UINT_FAST16_MAX__ 65535 +#define __UINT_FAST16_TYPE__ unsigned short +#define __UINT_FAST32_FMTX__ "X" +#define __UINT_FAST32_FMTo__ "o" +#define __UINT_FAST32_FMTu__ "u" +#define __UINT_FAST32_FMTx__ "x" +#define __UINT_FAST32_MAX__ 4294967295U +#define __UINT_FAST32_TYPE__ unsigned int +#define __UINT_FAST64_FMTX__ "lX" +#define __UINT_FAST64_FMTo__ "lo" +#define __UINT_FAST64_FMTu__ "lu" +#define __UINT_FAST64_FMTx__ "lx" +#define __UINT_FAST64_MAX__ 18446744073709551615UL +#define __UINT_FAST64_TYPE__ long unsigned int +#define __UINT_FAST8_FMTX__ "hhX" +#define __UINT_FAST8_FMTo__ "hho" +#define __UINT_FAST8_FMTu__ "hhu" +#define __UINT_FAST8_FMTx__ "hhx" +#define __UINT_FAST8_MAX__ 255 +#define __UINT_FAST8_TYPE__ unsigned char +#define __UINT_LEAST16_FMTX__ "hX" +#define __UINT_LEAST16_FMTo__ "ho" +#define __UINT_LEAST16_FMTu__ "hu" +#define __UINT_LEAST16_FMTx__ "hx" +#define __UINT_LEAST16_MAX__ 65535 +#define __UINT_LEAST16_TYPE__ unsigned short +#define __UINT_LEAST32_FMTX__ "X" +#define __UINT_LEAST32_FMTo__ "o" +#define __UINT_LEAST32_FMTu__ "u" +#define __UINT_LEAST32_FMTx__ "x" +#define __UINT_LEAST32_MAX__ 4294967295U +#define __UINT_LEAST32_TYPE__ unsigned int +#define __UINT_LEAST64_FMTX__ "lX" +#define __UINT_LEAST64_FMTo__ "lo" +#define __UINT_LEAST64_FMTu__ "lu" +#define __UINT_LEAST64_FMTx__ "lx" +#define __UINT_LEAST64_MAX__ 18446744073709551615UL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __UINT_LEAST8_FMTX__ "hhX" +#define __UINT_LEAST8_FMTo__ "hho" +#define __UINT_LEAST8_FMTu__ "hhu" +#define __UINT_LEAST8_FMTx__ "hhx" +#define __UINT_LEAST8_MAX__ 255 +#define __UINT_LEAST8_TYPE__ unsigned char +#define __USER_LABEL_PREFIX__ +#define __VERSION__ "Debian Clang 19.1.7 (10.1)" +#define __WCHAR_MAX__ 2147483647 +#define __WCHAR_TYPE__ int +#define __WCHAR_WIDTH__ 32 +#define __WINT_MAX__ 4294967295U +#define __WINT_TYPE__ unsigned int +#define __WINT_UNSIGNED__ 1 +#define __WINT_WIDTH__ 32 +#define __amd64 1 +#define __amd64__ 1 +#define __clang__ 1 +#define __clang_literal_encoding__ "UTF-8" +#define __clang_major__ 19 +#define __clang_minor__ 1 +#define __clang_patchlevel__ 7 +#define __clang_version__ "19.1.7 (10.1)" +#define __clang_wide_literal_encoding__ "UTF-32" +#define __code_model_small__ 1 +#define __cplusplus 201103L +#define __cpp_alias_templates 200704L +#define __cpp_attributes 200809L +#define __cpp_constexpr 200704 +#define __cpp_constexpr_in_decltype 201711L +#define __cpp_decltype 200707L +#define __cpp_delegating_constructors 200604L +#define __cpp_deleted_function 202403L +#define __cpp_exceptions 199711L +#define __cpp_impl_destroying_delete 201806L +#define __cpp_inheriting_constructors 201511L +#define __cpp_initializer_lists 200806L +#define __cpp_lambdas 200907L +#define __cpp_named_character_escapes 202207L +#define __cpp_nsdmi 200809L +#define __cpp_pack_indexing 202311L +#define __cpp_placeholder_variables 202306L +#define __cpp_range_based_for 200907 +#define __cpp_raw_strings 200710L +#define __cpp_ref_qualifiers 200710L +#define __cpp_rtti 199711L +#define __cpp_rvalue_references 200610L +#define __cpp_static_assert 200410 +#define __cpp_static_call_operator 202207L +#define __cpp_template_template_args 201611L +#define __cpp_threadsafe_static_init 200806L +#define __cpp_unicode_characters 200704L +#define __cpp_unicode_literals 200710L +#define __cpp_user_defined_literals 200809L +#define __cpp_variadic_templates 200704L +#define __gnu_linux__ 1 +#define __k8 1 +#define __k8__ 1 +#define __linux 1 +#define __linux__ 1 +#define __llvm__ 1 +#define __pic__ 2 +#define __pie__ 2 +#define __private_extern__ extern +#define __seg_fs __attribute__((address_space(257))) +#define __seg_gs __attribute__((address_space(256))) +#define __tune_k8__ 1 +#define __unix 1 +#define __unix__ 1 +#define __x86_64 1 +#define __x86_64__ 1 +#define linux 1 +#define unix 1 diff --git a/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug/pedal_tester.o b/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug/pedal_tester.o new file mode 100644 index 0000000..2c69907 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug/pedal_tester.o differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/moc_pedal_tester.cpp b/OtherPush/yamitraherIlyaEdit/tester/moc_pedal_tester.cpp new file mode 100644 index 0000000..79c7b4f --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/tester/moc_pedal_tester.cpp @@ -0,0 +1,94 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'pedal_tester.cpp' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.17) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'pedal_tester.cpp' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.17. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_MidiPedalTester_t { + QByteArrayData data[1]; + char stringdata0[16]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_MidiPedalTester_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_MidiPedalTester_t qt_meta_stringdata_MidiPedalTester = { + { +QT_MOC_LITERAL(0, 0, 15) // "MidiPedalTester" + + }, + "MidiPedalTester" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_MidiPedalTester[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void MidiPedalTester::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject MidiPedalTester::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_MidiPedalTester.data, + qt_meta_data_MidiPedalTester, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *MidiPedalTester::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *MidiPedalTester::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_MidiPedalTester.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int MidiPedalTester::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/OtherPush/yamitraherIlyaEdit/tester/moc_predefs.h b/OtherPush/yamitraherIlyaEdit/tester/moc_predefs.h new file mode 100644 index 0000000..84d65ac --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/tester/moc_predefs.h @@ -0,0 +1,439 @@ +#define _GNU_SOURCE 1 +#define _LP64 1 +#define __ATOMIC_ACQUIRE 2 +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_CONSUME 1 +#define __ATOMIC_RELAXED 0 +#define __ATOMIC_RELEASE 3 +#define __ATOMIC_SEQ_CST 5 +#define __BIGGEST_ALIGNMENT__ 16 +#define __BITINT_MAXWIDTH__ 8388608 +#define __BOOL_WIDTH__ 8 +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __CHAR16_TYPE__ unsigned short +#define __CHAR32_TYPE__ unsigned int +#define __CHAR_BIT__ 8 +#define __CLANG_ATOMIC_BOOL_LOCK_FREE 2 +#define __CLANG_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __CLANG_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __CLANG_ATOMIC_CHAR_LOCK_FREE 2 +#define __CLANG_ATOMIC_INT_LOCK_FREE 2 +#define __CLANG_ATOMIC_LLONG_LOCK_FREE 2 +#define __CLANG_ATOMIC_LONG_LOCK_FREE 2 +#define __CLANG_ATOMIC_POINTER_LOCK_FREE 2 +#define __CLANG_ATOMIC_SHORT_LOCK_FREE 2 +#define __CLANG_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __CONSTANT_CFSTRINGS__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 +#define __DBL_DIG__ 15 +#define __DBL_EPSILON__ 2.2204460492503131e-16 +#define __DBL_HAS_DENORM__ 1 +#define __DBL_HAS_INFINITY__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __DBL_MANT_DIG__ 53 +#define __DBL_MAX_10_EXP__ 308 +#define __DBL_MAX_EXP__ 1024 +#define __DBL_MAX__ 1.7976931348623157e+308 +#define __DBL_MIN_10_EXP__ (-307) +#define __DBL_MIN_EXP__ (-1021) +#define __DBL_MIN__ 2.2250738585072014e-308 +#define __DBL_NORM_MAX__ 1.7976931348623157e+308 +#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__ +#define __DEPRECATED 1 +#define __ELF__ 1 +#define __EXCEPTIONS 1 +#define __FINITE_MATH_ONLY__ 0 +#define __FLOAT128__ 1 +#define __FLT16_DECIMAL_DIG__ 5 +#define __FLT16_DENORM_MIN__ 5.9604644775390625e-8F16 +#define __FLT16_DIG__ 3 +#define __FLT16_EPSILON__ 9.765625e-4F16 +#define __FLT16_HAS_DENORM__ 1 +#define __FLT16_HAS_INFINITY__ 1 +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __FLT16_MANT_DIG__ 11 +#define __FLT16_MAX_10_EXP__ 4 +#define __FLT16_MAX_EXP__ 16 +#define __FLT16_MAX__ 6.5504e+4F16 +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT16_MIN_EXP__ (-13) +#define __FLT16_MIN__ 6.103515625e-5F16 +#define __FLT16_NORM_MAX__ 6.5504e+4F16 +#define __FLT_DECIMAL_DIG__ 9 +#define __FLT_DENORM_MIN__ 1.40129846e-45F +#define __FLT_DIG__ 6 +#define __FLT_EPSILON__ 1.19209290e-7F +#define __FLT_HAS_DENORM__ 1 +#define __FLT_HAS_INFINITY__ 1 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MANT_DIG__ 24 +#define __FLT_MAX_10_EXP__ 38 +#define __FLT_MAX_EXP__ 128 +#define __FLT_MAX__ 3.40282347e+38F +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT_MIN_EXP__ (-125) +#define __FLT_MIN__ 1.17549435e-38F +#define __FLT_NORM_MAX__ 3.40282347e+38F +#define __FLT_RADIX__ 2 +#define __FPCLASS_NEGINF 0x0004 +#define __FPCLASS_NEGNORMAL 0x0008 +#define __FPCLASS_NEGSUBNORMAL 0x0010 +#define __FPCLASS_NEGZERO 0x0020 +#define __FPCLASS_POSINF 0x0200 +#define __FPCLASS_POSNORMAL 0x0100 +#define __FPCLASS_POSSUBNORMAL 0x0080 +#define __FPCLASS_POSZERO 0x0040 +#define __FPCLASS_QNAN 0x0002 +#define __FPCLASS_SNAN 0x0001 +#define __FXSR__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __GNUC_GNU_INLINE__ 1 +#define __GNUC_MINOR__ 2 +#define __GNUC_PATCHLEVEL__ 1 +#define __GNUC__ 4 +#define __GNUG__ 4 +#define __GXX_ABI_VERSION 1002 +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __GXX_RTTI 1 +#define __GXX_WEAK__ 1 +#define __INT16_C_SUFFIX__ +#define __INT16_FMTd__ "hd" +#define __INT16_FMTi__ "hi" +#define __INT16_MAX__ 32767 +#define __INT16_TYPE__ short +#define __INT32_C_SUFFIX__ +#define __INT32_FMTd__ "d" +#define __INT32_FMTi__ "i" +#define __INT32_MAX__ 2147483647 +#define __INT32_TYPE__ int +#define __INT64_C_SUFFIX__ L +#define __INT64_FMTd__ "ld" +#define __INT64_FMTi__ "li" +#define __INT64_MAX__ 9223372036854775807L +#define __INT64_TYPE__ long int +#define __INT8_C_SUFFIX__ +#define __INT8_FMTd__ "hhd" +#define __INT8_FMTi__ "hhi" +#define __INT8_MAX__ 127 +#define __INT8_TYPE__ signed char +#define __INTMAX_C_SUFFIX__ L +#define __INTMAX_FMTd__ "ld" +#define __INTMAX_FMTi__ "li" +#define __INTMAX_MAX__ 9223372036854775807L +#define __INTMAX_TYPE__ long int +#define __INTMAX_WIDTH__ 64 +#define __INTPTR_FMTd__ "ld" +#define __INTPTR_FMTi__ "li" +#define __INTPTR_MAX__ 9223372036854775807L +#define __INTPTR_TYPE__ long int +#define __INTPTR_WIDTH__ 64 +#define __INT_FAST16_FMTd__ "hd" +#define __INT_FAST16_FMTi__ "hi" +#define __INT_FAST16_MAX__ 32767 +#define __INT_FAST16_TYPE__ short +#define __INT_FAST16_WIDTH__ 16 +#define __INT_FAST32_FMTd__ "d" +#define __INT_FAST32_FMTi__ "i" +#define __INT_FAST32_MAX__ 2147483647 +#define __INT_FAST32_TYPE__ int +#define __INT_FAST32_WIDTH__ 32 +#define __INT_FAST64_FMTd__ "ld" +#define __INT_FAST64_FMTi__ "li" +#define __INT_FAST64_MAX__ 9223372036854775807L +#define __INT_FAST64_TYPE__ long int +#define __INT_FAST64_WIDTH__ 64 +#define __INT_FAST8_FMTd__ "hhd" +#define __INT_FAST8_FMTi__ "hhi" +#define __INT_FAST8_MAX__ 127 +#define __INT_FAST8_TYPE__ signed char +#define __INT_FAST8_WIDTH__ 8 +#define __INT_LEAST16_FMTd__ "hd" +#define __INT_LEAST16_FMTi__ "hi" +#define __INT_LEAST16_MAX__ 32767 +#define __INT_LEAST16_TYPE__ short +#define __INT_LEAST16_WIDTH__ 16 +#define __INT_LEAST32_FMTd__ "d" +#define __INT_LEAST32_FMTi__ "i" +#define __INT_LEAST32_MAX__ 2147483647 +#define __INT_LEAST32_TYPE__ int +#define __INT_LEAST32_WIDTH__ 32 +#define __INT_LEAST64_FMTd__ "ld" +#define __INT_LEAST64_FMTi__ "li" +#define __INT_LEAST64_MAX__ 9223372036854775807L +#define __INT_LEAST64_TYPE__ long int +#define __INT_LEAST64_WIDTH__ 64 +#define __INT_LEAST8_FMTd__ "hhd" +#define __INT_LEAST8_FMTi__ "hhi" +#define __INT_LEAST8_MAX__ 127 +#define __INT_LEAST8_TYPE__ signed char +#define __INT_LEAST8_WIDTH__ 8 +#define __INT_MAX__ 2147483647 +#define __INT_WIDTH__ 32 +#define __LDBL_DECIMAL_DIG__ 21 +#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L +#define __LDBL_DIG__ 18 +#define __LDBL_EPSILON__ 1.08420217248550443401e-19L +#define __LDBL_HAS_DENORM__ 1 +#define __LDBL_HAS_INFINITY__ 1 +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __LDBL_MANT_DIG__ 64 +#define __LDBL_MAX_10_EXP__ 4932 +#define __LDBL_MAX_EXP__ 16384 +#define __LDBL_MAX__ 1.18973149535723176502e+4932L +#define __LDBL_MIN_10_EXP__ (-4931) +#define __LDBL_MIN_EXP__ (-16381) +#define __LDBL_MIN__ 3.36210314311209350626e-4932L +#define __LDBL_NORM_MAX__ 1.18973149535723176502e+4932L +#define __LITTLE_ENDIAN__ 1 +#define __LLONG_WIDTH__ 64 +#define __LONG_LONG_MAX__ 9223372036854775807LL +#define __LONG_MAX__ 9223372036854775807L +#define __LONG_WIDTH__ 64 +#define __LP64__ 1 +#define __MEMORY_SCOPE_DEVICE 1 +#define __MEMORY_SCOPE_SINGLE 4 +#define __MEMORY_SCOPE_SYSTEM 0 +#define __MEMORY_SCOPE_WRKGRP 2 +#define __MEMORY_SCOPE_WVFRNT 3 +#define __MMX__ 1 +#define __NO_MATH_INLINES 1 +#define __OBJC_BOOL_IS_BOOL 0 +#define __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES 3 +#define __OPENCL_MEMORY_SCOPE_DEVICE 2 +#define __OPENCL_MEMORY_SCOPE_SUB_GROUP 4 +#define __OPENCL_MEMORY_SCOPE_WORK_GROUP 1 +#define __OPENCL_MEMORY_SCOPE_WORK_ITEM 0 +#define __OPTIMIZE__ 1 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __ORDER_PDP_ENDIAN__ 3412 +#define __PIC__ 2 +#define __PIE__ 2 +#define __POINTER_WIDTH__ 64 +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __PTRDIFF_FMTd__ "ld" +#define __PTRDIFF_FMTi__ "li" +#define __PTRDIFF_MAX__ 9223372036854775807L +#define __PTRDIFF_TYPE__ long int +#define __PTRDIFF_WIDTH__ 64 +#define __REGISTER_PREFIX__ +#define __SCHAR_MAX__ 127 +#define __SEG_FS 1 +#define __SEG_GS 1 +#define __SHRT_MAX__ 32767 +#define __SHRT_WIDTH__ 16 +#define __SIG_ATOMIC_MAX__ 2147483647 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __SIZEOF_DOUBLE__ 8 +#define __SIZEOF_FLOAT128__ 16 +#define __SIZEOF_FLOAT__ 4 +#define __SIZEOF_INT128__ 16 +#define __SIZEOF_INT__ 4 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __SIZEOF_LONG_LONG__ 8 +#define __SIZEOF_LONG__ 8 +#define __SIZEOF_POINTER__ 8 +#define __SIZEOF_PTRDIFF_T__ 8 +#define __SIZEOF_SHORT__ 2 +#define __SIZEOF_SIZE_T__ 8 +#define __SIZEOF_WCHAR_T__ 4 +#define __SIZEOF_WINT_T__ 4 +#define __SIZE_FMTX__ "lX" +#define __SIZE_FMTo__ "lo" +#define __SIZE_FMTu__ "lu" +#define __SIZE_FMTx__ "lx" +#define __SIZE_MAX__ 18446744073709551615UL +#define __SIZE_TYPE__ long unsigned int +#define __SIZE_WIDTH__ 64 +#define __SSE2_MATH__ 1 +#define __SSE2__ 1 +#define __SSE_MATH__ 1 +#define __SSE__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16UL +#define __STDCPP_THREADS__ 1 +#define __STDC_EMBED_EMPTY__ 2 +#define __STDC_EMBED_FOUND__ 1 +#define __STDC_EMBED_NOT_FOUND__ 0 +#define __STDC_HOSTED__ 1 +#define __STDC_UTF_16__ 1 +#define __STDC_UTF_32__ 1 +#define __STDC__ 1 +#define __UINT16_C_SUFFIX__ +#define __UINT16_FMTX__ "hX" +#define __UINT16_FMTo__ "ho" +#define __UINT16_FMTu__ "hu" +#define __UINT16_FMTx__ "hx" +#define __UINT16_MAX__ 65535 +#define __UINT16_TYPE__ unsigned short +#define __UINT32_C_SUFFIX__ U +#define __UINT32_FMTX__ "X" +#define __UINT32_FMTo__ "o" +#define __UINT32_FMTu__ "u" +#define __UINT32_FMTx__ "x" +#define __UINT32_MAX__ 4294967295U +#define __UINT32_TYPE__ unsigned int +#define __UINT64_C_SUFFIX__ UL +#define __UINT64_FMTX__ "lX" +#define __UINT64_FMTo__ "lo" +#define __UINT64_FMTu__ "lu" +#define __UINT64_FMTx__ "lx" +#define __UINT64_MAX__ 18446744073709551615UL +#define __UINT64_TYPE__ long unsigned int +#define __UINT8_C_SUFFIX__ +#define __UINT8_FMTX__ "hhX" +#define __UINT8_FMTo__ "hho" +#define __UINT8_FMTu__ "hhu" +#define __UINT8_FMTx__ "hhx" +#define __UINT8_MAX__ 255 +#define __UINT8_TYPE__ unsigned char +#define __UINTMAX_C_SUFFIX__ UL +#define __UINTMAX_FMTX__ "lX" +#define __UINTMAX_FMTo__ "lo" +#define __UINTMAX_FMTu__ "lu" +#define __UINTMAX_FMTx__ "lx" +#define __UINTMAX_MAX__ 18446744073709551615UL +#define __UINTMAX_TYPE__ long unsigned int +#define __UINTMAX_WIDTH__ 64 +#define __UINTPTR_FMTX__ "lX" +#define __UINTPTR_FMTo__ "lo" +#define __UINTPTR_FMTu__ "lu" +#define __UINTPTR_FMTx__ "lx" +#define __UINTPTR_MAX__ 18446744073709551615UL +#define __UINTPTR_TYPE__ long unsigned int +#define __UINTPTR_WIDTH__ 64 +#define __UINT_FAST16_FMTX__ "hX" +#define __UINT_FAST16_FMTo__ "ho" +#define __UINT_FAST16_FMTu__ "hu" +#define __UINT_FAST16_FMTx__ "hx" +#define __UINT_FAST16_MAX__ 65535 +#define __UINT_FAST16_TYPE__ unsigned short +#define __UINT_FAST32_FMTX__ "X" +#define __UINT_FAST32_FMTo__ "o" +#define __UINT_FAST32_FMTu__ "u" +#define __UINT_FAST32_FMTx__ "x" +#define __UINT_FAST32_MAX__ 4294967295U +#define __UINT_FAST32_TYPE__ unsigned int +#define __UINT_FAST64_FMTX__ "lX" +#define __UINT_FAST64_FMTo__ "lo" +#define __UINT_FAST64_FMTu__ "lu" +#define __UINT_FAST64_FMTx__ "lx" +#define __UINT_FAST64_MAX__ 18446744073709551615UL +#define __UINT_FAST64_TYPE__ long unsigned int +#define __UINT_FAST8_FMTX__ "hhX" +#define __UINT_FAST8_FMTo__ "hho" +#define __UINT_FAST8_FMTu__ "hhu" +#define __UINT_FAST8_FMTx__ "hhx" +#define __UINT_FAST8_MAX__ 255 +#define __UINT_FAST8_TYPE__ unsigned char +#define __UINT_LEAST16_FMTX__ "hX" +#define __UINT_LEAST16_FMTo__ "ho" +#define __UINT_LEAST16_FMTu__ "hu" +#define __UINT_LEAST16_FMTx__ "hx" +#define __UINT_LEAST16_MAX__ 65535 +#define __UINT_LEAST16_TYPE__ unsigned short +#define __UINT_LEAST32_FMTX__ "X" +#define __UINT_LEAST32_FMTo__ "o" +#define __UINT_LEAST32_FMTu__ "u" +#define __UINT_LEAST32_FMTx__ "x" +#define __UINT_LEAST32_MAX__ 4294967295U +#define __UINT_LEAST32_TYPE__ unsigned int +#define __UINT_LEAST64_FMTX__ "lX" +#define __UINT_LEAST64_FMTo__ "lo" +#define __UINT_LEAST64_FMTu__ "lu" +#define __UINT_LEAST64_FMTx__ "lx" +#define __UINT_LEAST64_MAX__ 18446744073709551615UL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __UINT_LEAST8_FMTX__ "hhX" +#define __UINT_LEAST8_FMTo__ "hho" +#define __UINT_LEAST8_FMTu__ "hhu" +#define __UINT_LEAST8_FMTx__ "hhx" +#define __UINT_LEAST8_MAX__ 255 +#define __UINT_LEAST8_TYPE__ unsigned char +#define __USER_LABEL_PREFIX__ +#define __VERSION__ "Debian Clang 19.1.7 (10.1)" +#define __WCHAR_MAX__ 2147483647 +#define __WCHAR_TYPE__ int +#define __WCHAR_WIDTH__ 32 +#define __WINT_MAX__ 4294967295U +#define __WINT_TYPE__ unsigned int +#define __WINT_UNSIGNED__ 1 +#define __WINT_WIDTH__ 32 +#define __amd64 1 +#define __amd64__ 1 +#define __clang__ 1 +#define __clang_literal_encoding__ "UTF-8" +#define __clang_major__ 19 +#define __clang_minor__ 1 +#define __clang_patchlevel__ 7 +#define __clang_version__ "19.1.7 (10.1)" +#define __clang_wide_literal_encoding__ "UTF-32" +#define __code_model_small__ 1 +#define __cplusplus 201103L +#define __cpp_alias_templates 200704L +#define __cpp_attributes 200809L +#define __cpp_constexpr 200704 +#define __cpp_constexpr_in_decltype 201711L +#define __cpp_decltype 200707L +#define __cpp_delegating_constructors 200604L +#define __cpp_deleted_function 202403L +#define __cpp_exceptions 199711L +#define __cpp_impl_destroying_delete 201806L +#define __cpp_inheriting_constructors 201511L +#define __cpp_initializer_lists 200806L +#define __cpp_lambdas 200907L +#define __cpp_named_character_escapes 202207L +#define __cpp_nsdmi 200809L +#define __cpp_pack_indexing 202311L +#define __cpp_placeholder_variables 202306L +#define __cpp_range_based_for 200907 +#define __cpp_raw_strings 200710L +#define __cpp_ref_qualifiers 200710L +#define __cpp_rtti 199711L +#define __cpp_rvalue_references 200610L +#define __cpp_static_assert 200410 +#define __cpp_static_call_operator 202207L +#define __cpp_template_template_args 201611L +#define __cpp_threadsafe_static_init 200806L +#define __cpp_unicode_characters 200704L +#define __cpp_unicode_literals 200710L +#define __cpp_user_defined_literals 200809L +#define __cpp_variadic_templates 200704L +#define __gnu_linux__ 1 +#define __k8 1 +#define __k8__ 1 +#define __linux 1 +#define __linux__ 1 +#define __llvm__ 1 +#define __pic__ 2 +#define __pie__ 2 +#define __private_extern__ extern +#define __seg_fs __attribute__((address_space(257))) +#define __seg_gs __attribute__((address_space(256))) +#define __tune_k8__ 1 +#define __unix 1 +#define __unix__ 1 +#define __x86_64 1 +#define __x86_64__ 1 +#define linux 1 +#define unix 1 diff --git a/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.cpp b/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.cpp new file mode 100644 index 0000000..02ff8f3 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.cpp @@ -0,0 +1,303 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Системные заголовки Linux для работы с последовательным портом +#include +#include +#include +#include + +// Структура для отслеживания активной ноты +struct ActiveNote { + int noteNumber; + qint64 startTime; + bool isHeldByPedal; // true, если клавиша отпущена, но педаль держит звук +}; + +class MidiPedalTester : public QObject { + Q_OBJECT + +public: + MidiPedalTester(QObject *parent = nullptr) : QObject(parent) { + fd = -1; + shouldStop = false; + sustainPedalPressed = false; + + // Карта названий нот для красивого вывода + noteNames = { + {0, "C-1"}, {1, "C#-1"}, {2, "D-1"}, {3, "D#-1"}, {4, "E-1"}, {5, "F-1"}, + {6, "F#-1"}, {7, "G-1"}, {8, "G#-1"}, {9, "A-1"}, {10, "A#-1"}, {11, "B-1"}, + {12, "C0"}, {13, "C#0"}, {14, "D0"}, {15, "D#0"}, {16, "E0"}, {17, "F0"}, + {18, "F#0"}, {19, "G0"}, {20, "G#0"}, {21, "A0"}, {22, "A#0"}, {23, "B0"}, + {24, "C1"}, {25, "C#1"}, {26, "D1"}, {27, "D#1"}, {28, "E1"}, {29, "F1"}, + {30, "F#1"}, {31, "G1"}, {32, "G#1"}, {33, "A1"}, {34, "A#1"}, {35, "B1"}, + {36, "C2"}, {37, "C#2"}, {38, "D2"}, {39, "D#2"}, {40, "E2"}, {41, "F2"}, + {42, "F#2"}, {43, "G2"}, {44, "G#2"}, {45, "A2"}, {46, "A#2"}, {47, "B2"}, + {48, "C3"}, {49, "C#3"}, {50, "D3"}, {51, "D#3"}, {52, "E3"}, {53, "F3"}, + {54, "F#3"}, {55, "G3"}, {56, "G#3"}, {57, "A3"}, {58, "A#3"}, {59, "B3"}, + {60, "C4"}, {61, "C#4"}, {62, "D4"}, {63, "D#4"}, {64, "E4"}, {65, "F4"}, + {66, "F#4"}, {67, "G4"}, {68, "G#4"}, {69, "A4"}, {70, "A#4"}, {71, "B4"}, + {72, "C5"}, {73, "C#5"}, {74, "D5"}, {75, "D#5"}, {76, "E5"}, {77, "F5"}, + {78, "F#5"}, {79, "G5"}, {80, "G#5"}, {81, "A5"}, {82, "A#5"}, {83, "B5"}, + {84, "C6"} + }; + } + + ~MidiPedalTester() { + stop(); + } + + void start(const QString &devicePath) { + device = devicePath; + QTimer::singleShot(100, this, &MidiPedalTester::runLoop); + } + + void stop() { + shouldStop = true; + if (fd >= 0) { + close(fd); + fd = -1; + } + } + +private: + int fd; + QString device; + bool shouldStop; + bool sustainPedalPressed; + + // Хранит активные ноты: Key = номер ноты, Value = структура состояния + QMap activeNotes; + + // Множество нот, которые ждут затухания (отпущены пальцем, но держатся педалью) + QSet notesWaitingForDecay; + + QMap noteNames; + + QString getNoteName(int note) { + return noteNames.value(note, QString("Note %1").arg(note)); + } + + void openPort() { + if (fd >= 0) return; + + fd = open(device.toUtf8().constData(), O_RDWR | O_NOCTTY); + if (fd < 0) { + qWarning() << "Не удалось открыть порт:" << device + << ". Проверьте права доступа (sudo chmod 666" << device << ") или подключение."; + return; + } + + struct termios tty; + tcgetattr(fd, &tty); + cfsetospeed(&tty, B115200); + cfsetispeed(&tty, B115200); + tty.c_cflag |= (CLOCAL | CREAD | CS8); + tty.c_cc[VMIN] = 1; + tcsetattr(fd, TCSANOW, &tty); + + qDebug() << "Подключено к:" << device; + qDebug() << "--- Начало мониторинга MIDI (Нажмите Ctrl+C для выхода) ---"; + qDebug() << "Формат: [Статус] Нота - Описание"; + } + + void runLoop() { + openPort(); + if (fd < 0) { + QTimer::singleShot(2000, this, &MidiPedalTester::runLoop); // Попытка reconnect + return; + } + + unsigned char byte; + unsigned char lastStatus = 0; + + while (!shouldStop) { + // Используем select для таймаута, чтобы можно было проверить флаг shouldStop + fd_set set; + struct timeval timeout; + FD_ZERO(&set); + FD_SET(fd, &set); + timeout.tv_sec = 0; + timeout.tv_usec = 10000; // 10ms timeout + + int rv = select(fd + 1, &set, NULL, NULL, &timeout); + if (rv > 0) { + if (read(fd, &byte, 1) > 0) { + processMidiByte(byte, lastStatus); + } + } else if (rv == 0) { + // Таймаут, ничего не пришло + } else { + // Ошибка select + break; + } + + if (shouldStop) break; + } + + if (!shouldStop) { + QTimer::singleShot(10, this, &MidiPedalTester::runLoop); + } + } + + void processMidiByte(unsigned char byte, unsigned char &lastStatus) { + if (byte == 0xF8 || byte == 0xFE) return; // Игнорируем Timing Clock + + if (byte & 0x80) { + lastStatus = byte; + } else { + if (lastStatus == 0) return; + } + + unsigned char status = lastStatus; + unsigned char type = status & 0xF0; + + // Обработка Note On (0x90 - 0x9F) + if (type == 0x90) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + handleNoteOn(note, velocity); + } + } + // Обработка Note Off (0x80 - 0x8F) + else if (type == 0x80) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + handleNoteOff(note); + } + } + // Обработка Control Change (0xB0 - 0xBF) + else if (type == 0xB0) { + unsigned char controller, value; + if (read(fd, &controller, 1) > 0 && read(fd, &value, 1) > 0) { + handleControlChange(controller, value); + } + } + } + + void handleNoteOn(int note, int velocity) { + if (velocity == 0) { + handleNoteOff(note); + return; + } + + QString name = getNoteName(note); + QString pedalMark = sustainPedalPressed ? "(П)" : ""; + QString logLine = QString("[0x90] %1 (%2) - Клавиша %3 нажата %4") + .arg(note, 2, 16, QChar('0')).toUpper() + .arg(velocity) + .arg(name) + .arg(pedalMark); + + qDebug() << logLine; + + // Добавляем в активные ноты + ActiveNote an; + an.noteNumber = note; + an.startTime = QDateTime::currentMSecsSinceEpoch(); + an.isHeldByPedal = false; + activeNotes[note] = an; + + // Если эта нота была в ожидании затухания, убираем её оттуда (повторное нажатие) + notesWaitingForDecay.remove(note); + } + + void handleNoteOff(int note) { + QString name = getNoteName(note); + + if (sustainPedalPressed) { + // Педаль нажата: звук продолжается, нота переходит в режим ожидания + notesWaitingForDecay.insert(note); + + // Обновляем статус активной ноты + if (activeNotes.contains(note)) { + activeNotes[note].isHeldByPedal = true; + } + + qDebug() << QString("[0x80] %1 - Клавиша %2 отпущена (П) [Удерживается педалью]") + .arg(note, 2, 16, QChar('0')).toUpper() + .arg(name); + } else { + // Педаль отпущена: звук прекращается сразу + finalizeNoteDecay(note, false); + + qDebug() << QString("[0x80] %1 - Клавиша %2 отпущена") + .arg(note, 2, 16, QChar('0')).toUpper() + .arg(name); + } + } + + void handleControlChange(int controller, int value) { + // Контроллер 64 - Sustain Pedal + if (controller == 64) { + bool pressed = (value >= 64); + + if (pressed != sustainPedalPressed) { + sustainPedalPressed = pressed; + + if (!pressed) { + // Педаль только что отпущена! + // Все ноты, которые ждали затухания, должны затухнуть сейчас + qDebug() << "--- ПЕДАЛЬ ОТПУЩЕНА ---"; + + // Копируем множество, так как будем модифицировать его в цикле + QSet toDecay = notesWaitingForDecay; + for (int note : toDecay) { + finalizeNoteDecay(note, true); + } + notesWaitingForDecay.clear(); + } else { + qDebug() << "--- ПЕДАЛЬ НАЖАТА ---"; + } + } + } + } + + void finalizeNoteDecay(int note, bool byPedalRelease) { + QString name = getNoteName(note); + QString suffix = byPedalRelease ? "(П)" : ""; + + qDebug() << QString("[DECAY] %1 - Клавиша %2 затухла %3") + .arg(note, 2, 16, QChar('0')).toUpper() + .arg(name) + .arg(suffix); + + if (activeNotes.contains(note)) { + qint64 duration = QDateTime::currentMSecsSinceEpoch() - activeNotes[note].startTime; + qDebug() << " Длительность звучания:" << duration << "мс"; + activeNotes.remove(note); + } + } +}; + +int main(int argc, char *argv[]) +{ + QCoreApplication app(argc, argv); + + QString device = "/dev/dmmidi1"; + if (argc > 1) { + device = argv[1]; + } + + qDebug() << "Yamaha PSR-E333 Pedal Tester"; + qDebug() << "Используемое устройство:" << device; + + + MidiPedalTester tester; + + QObject::connect(&app, &QCoreApplication::aboutToQuit, [&tester]() { + tester.stop(); + }); + + tester.start(device); + + return app.exec(); +} +#include "moc_pedal_tester.cpp" diff --git a/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.o b/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.o new file mode 100644 index 0000000..33020d0 Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.o differ diff --git a/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.pro b/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.pro new file mode 100644 index 0000000..37a1e93 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.pro @@ -0,0 +1,11 @@ +QT += core +QMAKE_CXX = clang++ +QMAKE_CC = clang +QMAKE_LINK = clang++ +CONFIG += console c++11 +TARGET = pedal_tester +TEMPLATE = app + +SOURCES += pedal_tester.cpp +HEADERS += pedal_tester.cpp + diff --git a/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.pro.user b/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.pro.user new file mode 100644 index 0000000..1d0fcf5 --- /dev/null +++ b/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.pro.user @@ -0,0 +1,467 @@ + + + + + + EnvironmentId + {89b8cbb4-bbd9-44d4-86fc-4f76722e0ba9} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + true + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 0 + 80 + true + true + 1 + 0 + false + true + false + 2 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + false + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 4 + true + + + + true + + 0 + + + + ProjectExplorer.Project.Target.0 + + Desktop + true + Qt 5.15.17 в PATH (qt5) + Qt 5.15.17 в PATH (qt5) + {8352aa05-543b-406d-b656-24220d53535f} + 0 + 0 + 0 + + /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester + + + true + QtProjectManager.QMakeBuildStep + QMAKE_CXX=g++ + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск (imported) + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + Qt4ProjectManager.Qt4RunConfiguration: + /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.pro + false + + true + true + true + %{RunConfig:Executable:Path} + + 1 + 0 + + 1 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + Qt4ProjectManager.Qt4RunConfiguration: + /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/pedal_tester.pro + false + + true + true + true + %{RunConfig:Executable:Path} + + 1 + + + + ProjectExplorer.Project.Target.1 + + Desktop + true + Qt 5.15.17 в PATH (qt5) + Qt 5.15.17 в PATH (qt5) + {f3523bf7-d735-48ed-89ab-eb9a2e6ff3eb} + 0 + 0 + 0 + + 0 + /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug + /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/build/Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка (imported) + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + + true + true + %{RunConfig:Executable:Path} + + 1 + 2 + + 1 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + + true + true + %{RunConfig:Executable:Path} + + 1 + + + + ProjectExplorer.Project.Target.2 + + Desktop + true + Qt 6.9.2 (qt6) + Qt 6.9.2 (qt6) + {0494a808-493d-4899-9a00-f8709ce249f5} + 0 + 0 + 0 + + 0 + /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/build/Qt_6_9_2_qt6-Debug + /home/soffti/progs/Yami/Yamitracker/OtherPush/yamitraherIlyaEdit/tester/build/Qt_6_9_2_qt6-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + + true + true + %{RunConfig:Executable:Path} + + 1 + 2 + + 1 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + + true + true + %{RunConfig:Executable:Path} + + 1 + + + + ProjectExplorer.Project.TargetCount + 3 + + + Version + 22 + + diff --git a/Yamitracker-reoload/.gitignore b/Yamitracker-reoload/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/Yamitracker-reoload/Bright_95.txt b/Yamitracker-reoload/Bright_95.txt new file mode 100644 index 0000000..4e9ab86 --- /dev/null +++ b/Yamitracker-reoload/Bright_95.txt @@ -0,0 +1,157 @@ +[2025-12-10 11:00:39] STATUS: Запуск логгирования MIDI данных +[2025-12-10 11:00:39] STATUS: Устройство: /dev/dmmidi1 +[2025-12-10 11:00:39] STATUS: Устройство успешно открыто +[2025-12-10 11:00:39] STATUS: Настройка порта завершена, скорость: 115200 бод +[2025-12-10 11:00:45] CONTROL: Controller=0x00 Value=0 +[2025-12-10 11:00:45] CONTROL: Controller=0x20 Value=112 +[2025-12-10 11:00:45] PROGRAM_CHANGE: Program=100 +[2025-12-10 11:00:45] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 11:00:45] STATUS: Данные без статуса: 0x43 +[2025-12-10 11:00:45] STATUS: Данные без статуса: 0x10 +[2025-12-10 11:00:45] STATUS: Данные без статуса: 0x4C +[2025-12-10 11:00:45] STATUS: Данные без статуса: 0x08 +[2025-12-10 11:00:45] STATUS: Данные без статуса: 0x00 +[2025-12-10 11:00:45] STATUS: Данные без статуса: 0x0D +[2025-12-10 11:00:45] STATUS: Данные без статуса: 0x40 +[2025-12-10 11:00:45] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 11:00:45] CONTROL: Controller=0x00 Value=0 +[2025-12-10 11:00:45] CONTROL: Controller=0x20 Value=66 +[2025-12-10 11:00:45] PROGRAM_CHANGE: Program=96 +[2025-12-10 11:00:45] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 11:00:45] STATUS: Данные без статуса: 0x43 +[2025-12-10 11:00:45] STATUS: Данные без статуса: 0x10 +[2025-12-10 11:00:45] STATUS: Данные без статуса: 0x4C +[2025-12-10 11:00:45] STATUS: Данные без статуса: 0x08 +[2025-12-10 11:00:45] STATUS: Данные без статуса: 0x01 +[2025-12-10 11:00:45] STATUS: Данные без статуса: 0x0D +[2025-12-10 11:00:45] STATUS: Данные без статуса: 0x40 +[2025-12-10 11:00:45] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 11:00:45] CONTROL: Controller=0x07 (Volume) Value=80 +[2025-12-10 11:00:45] CONTROL: Controller=0x5B Value=40 +[2025-12-10 11:00:45] CONTROL: Controller=0x5D Value=40 +[2025-12-10 11:00:45] CONTROL: Controller=0x07 (Volume) Value=70 +[2025-12-10 11:00:45] CONTROL: Controller=0x5B Value=40 +[2025-12-10 11:00:45] CONTROL: Controller=0x5D Value=0 +[2025-12-10 11:00:53] NOTE_ON: Hex=24 Note=C1 Velocity=67 +[2025-12-10 11:00:54] NOTE_OFF: Hex=24 Note=C1 +[2025-12-10 11:00:54] NOTE_ON: Hex=25 Note=C#1 Velocity=57 +[2025-12-10 11:00:55] NOTE_OFF: Hex=25 Note=C#1 +[2025-12-10 11:00:55] NOTE_ON: Hex=26 Note=D1 Velocity=41 +[2025-12-10 11:00:56] NOTE_OFF: Hex=26 Note=D1 +[2025-12-10 11:00:56] NOTE_ON: Hex=27 Note=D#1 Velocity=67 +[2025-12-10 11:00:57] NOTE_OFF: Hex=27 Note=D#1 +[2025-12-10 11:00:57] NOTE_ON: Hex=28 Note=E1 Velocity=49 +[2025-12-10 11:00:57] NOTE_OFF: Hex=28 Note=E1 +[2025-12-10 11:00:58] NOTE_ON: Hex=29 Note=F1 Velocity=55 +[2025-12-10 11:00:58] NOTE_OFF: Hex=29 Note=F1 +[2025-12-10 11:00:58] NOTE_ON: Hex=2A Note=F#1 Velocity=53 +[2025-12-10 11:00:59] NOTE_OFF: Hex=2A Note=F#1 +[2025-12-10 11:00:59] NOTE_ON: Hex=2B Note=G1 Velocity=49 +[2025-12-10 11:01:00] NOTE_OFF: Hex=2B Note=G1 +[2025-12-10 11:01:00] NOTE_ON: Hex=2C Note=G#1 Velocity=55 +[2025-12-10 11:01:01] NOTE_OFF: Hex=2C Note=G#1 +[2025-12-10 11:01:01] NOTE_ON: Hex=2D Note=A1 Velocity=55 +[2025-12-10 11:01:01] NOTE_OFF: Hex=2D Note=A1 +[2025-12-10 11:01:01] NOTE_ON: Hex=2E Note=A#1 Velocity=54 +[2025-12-10 11:01:02] NOTE_OFF: Hex=2E Note=A#1 +[2025-12-10 11:01:02] NOTE_ON: Hex=2F Note=B1 Velocity=55 +[2025-12-10 11:01:03] NOTE_OFF: Hex=2F Note=B1 +[2025-12-10 11:01:03] NOTE_ON: Hex=30 Note=C2 Velocity=55 +[2025-12-10 11:01:04] NOTE_OFF: Hex=30 Note=C2 +[2025-12-10 11:01:04] NOTE_ON: Hex=31 Note=C#2 Velocity=57 +[2025-12-10 11:01:04] NOTE_OFF: Hex=31 Note=C#2 +[2025-12-10 11:01:05] NOTE_ON: Hex=32 Note=D2 Velocity=37 +[2025-12-10 11:01:05] NOTE_OFF: Hex=32 Note=D2 +[2025-12-10 11:01:05] NOTE_ON: Hex=33 Note=D#2 Velocity=64 +[2025-12-10 11:01:06] NOTE_OFF: Hex=33 Note=D#2 +[2025-12-10 11:01:06] NOTE_ON: Hex=34 Note=E2 Velocity=67 +[2025-12-10 11:01:07] NOTE_OFF: Hex=34 Note=E2 +[2025-12-10 11:01:07] NOTE_ON: Hex=35 Note=F2 Velocity=60 +[2025-12-10 11:01:07] NOTE_OFF: Hex=35 Note=F2 +[2025-12-10 11:01:07] NOTE_ON: Hex=36 Note=F#2 Velocity=36 +[2025-12-10 11:01:08] NOTE_OFF: Hex=36 Note=F#2 +[2025-12-10 11:01:08] NOTE_ON: Hex=37 Note=G2 Velocity=41 +[2025-12-10 11:01:09] NOTE_OFF: Hex=37 Note=G2 +[2025-12-10 11:01:09] NOTE_ON: Hex=38 Note=G#2 Velocity=59 +[2025-12-10 11:01:09] NOTE_OFF: Hex=38 Note=G#2 +[2025-12-10 11:01:10] NOTE_ON: Hex=39 Note=A2 Velocity=47 +[2025-12-10 11:01:10] NOTE_OFF: Hex=39 Note=A2 +[2025-12-10 11:01:10] NOTE_ON: Hex=3A Note=A#2 Velocity=64 +[2025-12-10 11:01:11] NOTE_OFF: Hex=3A Note=A#2 +[2025-12-10 11:01:11] NOTE_ON: Hex=3B Note=B2 Velocity=41 +[2025-12-10 11:01:11] NOTE_OFF: Hex=3B Note=B2 +[2025-12-10 11:01:12] NOTE_ON: Hex=3C Note=C3 Velocity=52 +[2025-12-10 11:01:12] NOTE_OFF: Hex=3C Note=C3 +[2025-12-10 11:01:12] NOTE_ON: Hex=3D Note=C#3 Velocity=55 +[2025-12-10 11:01:13] NOTE_OFF: Hex=3D Note=C#3 +[2025-12-10 11:01:13] NOTE_ON: Hex=3E Note=D3 Velocity=52 +[2025-12-10 11:01:13] NOTE_OFF: Hex=3E Note=D3 +[2025-12-10 11:01:14] NOTE_ON: Hex=3F Note=D#3 Velocity=53 +[2025-12-10 11:01:14] NOTE_OFF: Hex=3F Note=D#3 +[2025-12-10 11:01:14] NOTE_ON: Hex=40 Note=E3 Velocity=45 +[2025-12-10 11:01:15] NOTE_OFF: Hex=40 Note=E3 +[2025-12-10 11:01:15] NOTE_ON: Hex=41 Note=F3 Velocity=54 +[2025-12-10 11:01:15] NOTE_OFF: Hex=41 Note=F3 +[2025-12-10 11:01:15] NOTE_ON: Hex=42 Note=F#3 Velocity=57 +[2025-12-10 11:01:16] NOTE_OFF: Hex=42 Note=F#3 +[2025-12-10 11:01:16] NOTE_ON: Hex=43 Note=G3 Velocity=57 +[2025-12-10 11:01:16] NOTE_OFF: Hex=43 Note=G3 +[2025-12-10 11:01:17] NOTE_ON: Hex=44 Note=G#3 Velocity=60 +[2025-12-10 11:01:17] NOTE_OFF: Hex=44 Note=G#3 +[2025-12-10 11:01:17] NOTE_ON: Hex=45 Note=A3 Velocity=59 +[2025-12-10 11:01:17] NOTE_OFF: Hex=45 Note=A3 +[2025-12-10 11:01:18] NOTE_ON: Hex=46 Note=A#3 Velocity=57 +[2025-12-10 11:01:18] NOTE_OFF: Hex=46 Note=A#3 +[2025-12-10 11:01:18] NOTE_ON: Hex=47 Note=B3 Velocity=57 +[2025-12-10 11:01:19] NOTE_OFF: Hex=47 Note=B3 +[2025-12-10 11:01:19] NOTE_ON: Hex=48 Note=C4 Velocity=59 +[2025-12-10 11:01:19] NOTE_OFF: Hex=48 Note=C4 +[2025-12-10 11:01:20] NOTE_ON: Hex=49 Note=C#4 Velocity=58 +[2025-12-10 11:01:20] NOTE_OFF: Hex=49 Note=C#4 +[2025-12-10 11:01:20] NOTE_ON: Hex=4A Note=D4 Velocity=57 +[2025-12-10 11:01:21] NOTE_OFF: Hex=4A Note=D4 +[2025-12-10 11:01:21] NOTE_ON: Hex=4B Note=D#4 Velocity=51 +[2025-12-10 11:01:21] NOTE_OFF: Hex=4B Note=D#4 +[2025-12-10 11:01:21] NOTE_ON: Hex=4C Note=E4 Velocity=57 +[2025-12-10 11:01:22] NOTE_OFF: Hex=4C Note=E4 +[2025-12-10 11:01:22] NOTE_ON: Hex=4D Note=F4 Velocity=57 +[2025-12-10 11:01:22] NOTE_OFF: Hex=4D Note=F4 +[2025-12-10 11:01:23] NOTE_ON: Hex=4E Note=F#4 Velocity=47 +[2025-12-10 11:01:23] NOTE_OFF: Hex=4E Note=F#4 +[2025-12-10 11:01:23] NOTE_ON: Hex=4F Note=G4 Velocity=52 +[2025-12-10 11:01:24] NOTE_OFF: Hex=4F Note=G4 +[2025-12-10 11:01:24] NOTE_ON: Hex=50 Note=G#4 Velocity=57 +[2025-12-10 11:01:24] NOTE_OFF: Hex=50 Note=G#4 +[2025-12-10 11:01:24] NOTE_ON: Hex=51 Note=A4 Velocity=59 +[2025-12-10 11:01:25] NOTE_OFF: Hex=51 Note=A4 +[2025-12-10 11:01:25] NOTE_ON: Hex=52 Note=A#4 Velocity=62 +[2025-12-10 11:01:25] NOTE_OFF: Hex=52 Note=A#4 +[2025-12-10 11:01:25] NOTE_ON: Hex=53 Note=B4 Velocity=58 +[2025-12-10 11:01:26] NOTE_OFF: Hex=53 Note=B4 +[2025-12-10 11:01:26] NOTE_ON: Hex=54 Note=C5 Velocity=58 +[2025-12-10 11:01:26] NOTE_OFF: Hex=54 Note=C5 +[2025-12-10 11:01:26] NOTE_ON: Hex=55 Note=C#5 Velocity=61 +[2025-12-10 11:01:27] NOTE_OFF: Hex=55 Note=C#5 +[2025-12-10 11:01:27] NOTE_ON: Hex=56 Note=D5 Velocity=53 +[2025-12-10 11:01:27] NOTE_OFF: Hex=56 Note=D5 +[2025-12-10 11:01:28] NOTE_ON: Hex=57 Note=D#5 Velocity=60 +[2025-12-10 11:01:28] NOTE_OFF: Hex=57 Note=D#5 +[2025-12-10 11:01:28] NOTE_ON: Hex=58 Note=E5 Velocity=55 +[2025-12-10 11:01:28] NOTE_OFF: Hex=58 Note=E5 +[2025-12-10 11:01:29] NOTE_ON: Hex=59 Note=F5 Velocity=72 +[2025-12-10 11:01:29] NOTE_OFF: Hex=59 Note=F5 +[2025-12-10 11:01:29] NOTE_ON: Hex=5A Note=F#5 Velocity=72 +[2025-12-10 11:01:29] NOTE_OFF: Hex=5A Note=F#5 +[2025-12-10 11:01:30] NOTE_ON: Hex=5B Note=G5 Velocity=63 +[2025-12-10 11:01:30] NOTE_OFF: Hex=5B Note=G5 +[2025-12-10 11:01:30] NOTE_ON: Hex=5C Note=G#5 Velocity=66 +[2025-12-10 11:01:30] NOTE_OFF: Hex=5C Note=G#5 +[2025-12-10 11:01:31] NOTE_ON: Hex=5D Note=A5 Velocity=78 +[2025-12-10 11:01:31] NOTE_OFF: Hex=5D Note=A5 +[2025-12-10 11:01:31] NOTE_ON: Hex=5E Note=A#5 Velocity=63 +[2025-12-10 11:01:31] NOTE_OFF: Hex=5E Note=A#5 +[2025-12-10 11:01:32] NOTE_ON: Hex=5F Note=B5 Velocity=73 +[2025-12-10 11:01:32] NOTE_OFF: Hex=5F Note=B5 +[2025-12-10 11:01:32] NOTE_ON: Hex=60 Note=C6 Velocity=97 +[2025-12-10 11:01:32] NOTE_OFF: Hex=60 Note=C6 +[2025-12-10 11:01:34] STATUS: Логгирование остановлено diff --git a/Yamitracker-reoload/BritePno_2.txt b/Yamitracker-reoload/BritePno_2.txt new file mode 100644 index 0000000..f067c1e --- /dev/null +++ b/Yamitracker-reoload/BritePno_2.txt @@ -0,0 +1,152 @@ +[2025-12-10 10:56:08] STATUS: Запуск логгирования MIDI данных +[2025-12-10 10:56:08] STATUS: Устройство: /dev/dmmidi1 +[2025-12-10 10:56:08] STATUS: Устройство успешно открыто +[2025-12-10 10:56:08] STATUS: Настройка порта завершена, скорость: 115200 бод +[2025-12-10 10:56:12] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:56:12] CONTROL: Controller=0x20 Value=112 +[2025-12-10 10:56:12] PROGRAM_CHANGE: Program=1 +[2025-12-10 10:56:12] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:56:12] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:56:12] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:56:12] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:56:12] STATUS: Данные без статуса: 0x08 +[2025-12-10 10:56:12] STATUS: Данные без статуса: 0x00 +[2025-12-10 10:56:12] STATUS: Данные без статуса: 0x0C +[2025-12-10 10:56:12] STATUS: Данные без статуса: 0x40 +[2025-12-10 10:56:12] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:56:12] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:56:12] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:56:12] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:56:12] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:56:12] STATUS: Данные без статуса: 0x08 +[2025-12-10 10:56:12] STATUS: Данные без статуса: 0x00 +[2025-12-10 10:56:12] STATUS: Данные без статуса: 0x0D +[2025-12-10 10:56:12] STATUS: Данные без статуса: 0x40 +[2025-12-10 10:56:12] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:56:12] CONTROL: Controller=0x07 (Volume) Value=100 +[2025-12-10 10:56:12] CONTROL: Controller=0x5B Value=18 +[2025-12-10 10:56:12] CONTROL: Controller=0x07 (Volume) Value=48 +[2025-12-10 10:56:12] CONTROL: Controller=0x5B Value=35 +[2025-12-10 10:56:37] NOTE_ON: Hex=24 Note=C1 Velocity=64 +[2025-12-10 10:56:37] NOTE_OFF: Hex=24 Note=C1 +[2025-12-10 10:56:37] NOTE_ON: Hex=25 Note=C#1 Velocity=81 +[2025-12-10 10:56:38] NOTE_OFF: Hex=25 Note=C#1 +[2025-12-10 10:56:38] NOTE_ON: Hex=26 Note=D1 Velocity=67 +[2025-12-10 10:56:38] NOTE_OFF: Hex=26 Note=D1 +[2025-12-10 10:56:39] NOTE_ON: Hex=27 Note=D#1 Velocity=57 +[2025-12-10 10:56:39] NOTE_OFF: Hex=27 Note=D#1 +[2025-12-10 10:56:39] NOTE_ON: Hex=28 Note=E1 Velocity=62 +[2025-12-10 10:56:40] NOTE_OFF: Hex=28 Note=E1 +[2025-12-10 10:56:40] NOTE_ON: Hex=29 Note=F1 Velocity=73 +[2025-12-10 10:56:40] NOTE_OFF: Hex=29 Note=F1 +[2025-12-10 10:56:41] NOTE_ON: Hex=2A Note=F#1 Velocity=70 +[2025-12-10 10:56:41] NOTE_OFF: Hex=2A Note=F#1 +[2025-12-10 10:56:41] NOTE_ON: Hex=2B Note=G1 Velocity=46 +[2025-12-10 10:56:41] NOTE_OFF: Hex=2B Note=G1 +[2025-12-10 10:56:42] NOTE_ON: Hex=2C Note=G#1 Velocity=59 +[2025-12-10 10:56:42] NOTE_OFF: Hex=2C Note=G#1 +[2025-12-10 10:56:42] NOTE_ON: Hex=2D Note=A1 Velocity=64 +[2025-12-10 10:56:43] NOTE_OFF: Hex=2D Note=A1 +[2025-12-10 10:56:43] NOTE_ON: Hex=2E Note=A#1 Velocity=58 +[2025-12-10 10:56:43] NOTE_OFF: Hex=2E Note=A#1 +[2025-12-10 10:56:44] NOTE_ON: Hex=2F Note=B1 Velocity=58 +[2025-12-10 10:56:44] NOTE_OFF: Hex=2F Note=B1 +[2025-12-10 10:56:44] NOTE_ON: Hex=30 Note=C2 Velocity=69 +[2025-12-10 10:56:45] NOTE_OFF: Hex=30 Note=C2 +[2025-12-10 10:56:45] NOTE_ON: Hex=31 Note=C#2 Velocity=78 +[2025-12-10 10:56:45] NOTE_OFF: Hex=31 Note=C#2 +[2025-12-10 10:56:46] NOTE_ON: Hex=32 Note=D2 Velocity=78 +[2025-12-10 10:56:46] NOTE_OFF: Hex=32 Note=D2 +[2025-12-10 10:56:46] NOTE_ON: Hex=33 Note=D#2 Velocity=83 +[2025-12-10 10:56:47] NOTE_OFF: Hex=33 Note=D#2 +[2025-12-10 10:56:47] NOTE_ON: Hex=34 Note=E2 Velocity=84 +[2025-12-10 10:56:47] NOTE_OFF: Hex=34 Note=E2 +[2025-12-10 10:56:48] NOTE_ON: Hex=35 Note=F2 Velocity=83 +[2025-12-10 10:56:48] NOTE_OFF: Hex=35 Note=F2 +[2025-12-10 10:56:48] NOTE_ON: Hex=36 Note=F#2 Velocity=77 +[2025-12-10 10:56:48] NOTE_OFF: Hex=36 Note=F#2 +[2025-12-10 10:56:49] NOTE_ON: Hex=37 Note=G2 Velocity=88 +[2025-12-10 10:56:49] NOTE_OFF: Hex=37 Note=G2 +[2025-12-10 10:56:49] NOTE_ON: Hex=38 Note=G#2 Velocity=60 +[2025-12-10 10:56:50] NOTE_OFF: Hex=38 Note=G#2 +[2025-12-10 10:56:50] NOTE_ON: Hex=39 Note=A2 Velocity=74 +[2025-12-10 10:56:50] NOTE_OFF: Hex=39 Note=A2 +[2025-12-10 10:56:51] NOTE_ON: Hex=3A Note=A#2 Velocity=84 +[2025-12-10 10:56:51] NOTE_OFF: Hex=3A Note=A#2 +[2025-12-10 10:56:51] NOTE_ON: Hex=3B Note=B2 Velocity=78 +[2025-12-10 10:56:51] NOTE_OFF: Hex=3B Note=B2 +[2025-12-10 10:56:52] NOTE_ON: Hex=3C Note=C3 Velocity=78 +[2025-12-10 10:56:52] NOTE_OFF: Hex=3C Note=C3 +[2025-12-10 10:56:52] NOTE_ON: Hex=3D Note=C#3 Velocity=84 +[2025-12-10 10:56:53] NOTE_OFF: Hex=3D Note=C#3 +[2025-12-10 10:56:53] NOTE_ON: Hex=3E Note=D3 Velocity=90 +[2025-12-10 10:56:53] NOTE_OFF: Hex=3E Note=D3 +[2025-12-10 10:56:54] NOTE_ON: Hex=3F Note=D#3 Velocity=84 +[2025-12-10 10:56:54] NOTE_OFF: Hex=3F Note=D#3 +[2025-12-10 10:56:54] NOTE_ON: Hex=40 Note=E3 Velocity=86 +[2025-12-10 10:56:54] NOTE_OFF: Hex=40 Note=E3 +[2025-12-10 10:56:55] NOTE_ON: Hex=41 Note=F3 Velocity=83 +[2025-12-10 10:56:55] NOTE_OFF: Hex=41 Note=F3 +[2025-12-10 10:56:55] NOTE_ON: Hex=42 Note=F#3 Velocity=83 +[2025-12-10 10:56:55] NOTE_ON: Hex=43 Note=G3 Velocity=78 +[2025-12-10 10:56:55] NOTE_OFF: Hex=42 Note=F#3 +[2025-12-10 10:56:55] NOTE_OFF: Hex=43 Note=G3 +[2025-12-10 10:56:59] NOTE_ON: Hex=44 Note=G#3 Velocity=67 +[2025-12-10 10:56:59] NOTE_OFF: Hex=44 Note=G#3 +[2025-12-10 10:57:00] NOTE_ON: Hex=45 Note=A3 Velocity=67 +[2025-12-10 10:57:00] NOTE_OFF: Hex=45 Note=A3 +[2025-12-10 10:57:00] NOTE_ON: Hex=46 Note=A#3 Velocity=79 +[2025-12-10 10:57:01] NOTE_OFF: Hex=46 Note=A#3 +[2025-12-10 10:57:01] NOTE_ON: Hex=47 Note=B3 Velocity=73 +[2025-12-10 10:57:01] NOTE_OFF: Hex=47 Note=B3 +[2025-12-10 10:57:02] NOTE_ON: Hex=48 Note=C4 Velocity=86 +[2025-12-10 10:57:02] NOTE_OFF: Hex=48 Note=C4 +[2025-12-10 10:57:02] NOTE_ON: Hex=49 Note=C#4 Velocity=86 +[2025-12-10 10:57:02] NOTE_OFF: Hex=49 Note=C#4 +[2025-12-10 10:57:03] NOTE_ON: Hex=4A Note=D4 Velocity=81 +[2025-12-10 10:57:03] NOTE_OFF: Hex=4A Note=D4 +[2025-12-10 10:57:03] NOTE_ON: Hex=4B Note=D#4 Velocity=78 +[2025-12-10 10:57:03] NOTE_OFF: Hex=4B Note=D#4 +[2025-12-10 10:57:04] NOTE_ON: Hex=4C Note=E4 Velocity=74 +[2025-12-10 10:57:04] NOTE_OFF: Hex=4C Note=E4 +[2025-12-10 10:57:04] NOTE_ON: Hex=4D Note=F4 Velocity=83 +[2025-12-10 10:57:04] NOTE_OFF: Hex=4D Note=F4 +[2025-12-10 10:57:05] NOTE_ON: Hex=4E Note=F#4 Velocity=79 +[2025-12-10 10:57:05] NOTE_OFF: Hex=4E Note=F#4 +[2025-12-10 10:57:05] NOTE_ON: Hex=4F Note=G4 Velocity=69 +[2025-12-10 10:57:05] NOTE_OFF: Hex=4F Note=G4 +[2025-12-10 10:57:06] NOTE_ON: Hex=50 Note=G#4 Velocity=67 +[2025-12-10 10:57:06] NOTE_OFF: Hex=50 Note=G#4 +[2025-12-10 10:57:06] NOTE_ON: Hex=51 Note=A4 Velocity=74 +[2025-12-10 10:57:06] NOTE_OFF: Hex=51 Note=A4 +[2025-12-10 10:57:07] NOTE_ON: Hex=52 Note=A#4 Velocity=83 +[2025-12-10 10:57:07] NOTE_OFF: Hex=52 Note=A#4 +[2025-12-10 10:57:07] NOTE_ON: Hex=53 Note=B4 Velocity=79 +[2025-12-10 10:57:07] NOTE_OFF: Hex=53 Note=B4 +[2025-12-10 10:57:08] NOTE_ON: Hex=54 Note=C5 Velocity=77 +[2025-12-10 10:57:08] NOTE_OFF: Hex=54 Note=C5 +[2025-12-10 10:57:08] NOTE_ON: Hex=55 Note=C#5 Velocity=77 +[2025-12-10 10:57:08] NOTE_OFF: Hex=55 Note=C#5 +[2025-12-10 10:57:08] NOTE_ON: Hex=56 Note=D5 Velocity=70 +[2025-12-10 10:57:09] NOTE_OFF: Hex=56 Note=D5 +[2025-12-10 10:57:09] NOTE_ON: Hex=57 Note=D#5 Velocity=79 +[2025-12-10 10:57:09] NOTE_OFF: Hex=57 Note=D#5 +[2025-12-10 10:57:09] NOTE_ON: Hex=58 Note=E5 Velocity=86 +[2025-12-10 10:57:09] NOTE_OFF: Hex=58 Note=E5 +[2025-12-10 10:57:10] NOTE_ON: Hex=59 Note=F5 Velocity=72 +[2025-12-10 10:57:10] NOTE_OFF: Hex=59 Note=F5 +[2025-12-10 10:57:10] NOTE_ON: Hex=5A Note=F#5 Velocity=58 +[2025-12-10 10:57:10] NOTE_OFF: Hex=5A Note=F#5 +[2025-12-10 10:57:11] NOTE_ON: Hex=5B Note=G5 Velocity=61 +[2025-12-10 10:57:11] NOTE_OFF: Hex=5B Note=G5 +[2025-12-10 10:57:11] NOTE_ON: Hex=5C Note=G#5 Velocity=66 +[2025-12-10 10:57:11] NOTE_OFF: Hex=5C Note=G#5 +[2025-12-10 10:57:11] NOTE_ON: Hex=5D Note=A5 Velocity=69 +[2025-12-10 10:57:12] NOTE_OFF: Hex=5D Note=A5 +[2025-12-10 10:57:12] NOTE_ON: Hex=5E Note=A#5 Velocity=63 +[2025-12-10 10:57:12] NOTE_OFF: Hex=5E Note=A#5 +[2025-12-10 10:57:12] NOTE_ON: Hex=5F Note=B5 Velocity=79 +[2025-12-10 10:57:12] NOTE_OFF: Hex=5F Note=B5 +[2025-12-10 10:57:13] NOTE_ON: Hex=60 Note=C6 Velocity=90 +[2025-12-10 10:57:13] NOTE_OFF: Hex=60 Note=C6 +[2025-12-10 10:57:14] STATUS: Логгирование остановлено diff --git a/Yamitracker-reoload/CrandPno_1.txt b/Yamitracker-reoload/CrandPno_1.txt new file mode 100644 index 0000000..cf54e62 --- /dev/null +++ b/Yamitracker-reoload/CrandPno_1.txt @@ -0,0 +1,518 @@ +[2025-12-10 10:47:07] STATUS: Запуск логгирования MIDI данных +[2025-12-10 10:47:07] STATUS: Устройство: /dev/dmmidi1 +[2025-12-10 10:47:07] STATUS: Устройство успешно открыто +[2025-12-10 10:47:07] STATUS: Настройка порта завершена, скорость: 115200 бод +[2025-12-10 10:47:08] NOTE_ON: Hex=24 Note=C1 Velocity=42 +[2025-12-10 10:47:09] NOTE_ON: Hex=25 Note=C#1 Velocity=22 +[2025-12-10 10:47:09] NOTE_OFF: Hex=24 Note=C1 +[2025-12-10 10:47:10] NOTE_OFF: Hex=25 Note=C#1 +[2025-12-10 10:47:10] NOTE_ON: Hex=26 Note=D1 Velocity=53 +[2025-12-10 10:47:11] NOTE_OFF: Hex=26 Note=D1 +[2025-12-10 10:47:11] NOTE_ON: Hex=27 Note=D#1 Velocity=47 +[2025-12-10 10:47:11] NOTE_OFF: Hex=27 Note=D#1 +[2025-12-10 10:47:12] NOTE_ON: Hex=28 Note=E1 Velocity=66 +[2025-12-10 10:47:12] NOTE_OFF: Hex=28 Note=E1 +[2025-12-10 10:47:13] NOTE_ON: Hex=29 Note=F1 Velocity=74 +[2025-12-10 10:47:13] NOTE_OFF: Hex=29 Note=F1 +[2025-12-10 10:47:13] NOTE_ON: Hex=2A Note=F#1 Velocity=78 +[2025-12-10 10:47:14] NOTE_OFF: Hex=2A Note=F#1 +[2025-12-10 10:47:14] NOTE_ON: Hex=2B Note=G1 Velocity=55 +[2025-12-10 10:47:14] NOTE_OFF: Hex=2B Note=G1 +[2025-12-10 10:47:15] NOTE_ON: Hex=2C Note=G#1 Velocity=60 +[2025-12-10 10:47:15] NOTE_OFF: Hex=2C Note=G#1 +[2025-12-10 10:47:15] NOTE_ON: Hex=2D Note=A1 Velocity=73 +[2025-12-10 10:47:16] NOTE_OFF: Hex=2D Note=A1 +[2025-12-10 10:47:16] NOTE_ON: Hex=2E Note=A#1 Velocity=66 +[2025-12-10 10:47:16] NOTE_OFF: Hex=2E Note=A#1 +[2025-12-10 10:47:16] NOTE_ON: Hex=2F Note=B1 Velocity=78 +[2025-12-10 10:47:17] NOTE_OFF: Hex=2F Note=B1 +[2025-12-10 10:47:17] NOTE_ON: Hex=30 Note=C2 Velocity=77 +[2025-12-10 10:47:17] NOTE_OFF: Hex=30 Note=C2 +[2025-12-10 10:47:18] NOTE_ON: Hex=31 Note=C#2 Velocity=81 +[2025-12-10 10:47:18] NOTE_OFF: Hex=31 Note=C#2 +[2025-12-10 10:47:18] NOTE_ON: Hex=32 Note=D2 Velocity=78 +[2025-12-10 10:47:19] NOTE_OFF: Hex=32 Note=D2 +[2025-12-10 10:47:19] NOTE_ON: Hex=33 Note=D#2 Velocity=70 +[2025-12-10 10:47:19] NOTE_OFF: Hex=33 Note=D#2 +[2025-12-10 10:47:19] NOTE_ON: Hex=34 Note=E2 Velocity=77 +[2025-12-10 10:47:20] NOTE_OFF: Hex=34 Note=E2 +[2025-12-10 10:47:20] NOTE_ON: Hex=35 Note=F2 Velocity=70 +[2025-12-10 10:47:20] NOTE_OFF: Hex=35 Note=F2 +[2025-12-10 10:47:21] NOTE_ON: Hex=36 Note=F#2 Velocity=60 +[2025-12-10 10:47:21] NOTE_OFF: Hex=36 Note=F#2 +[2025-12-10 10:47:21] NOTE_ON: Hex=37 Note=G2 Velocity=86 +[2025-12-10 10:47:21] NOTE_OFF: Hex=37 Note=G2 +[2025-12-10 10:47:22] NOTE_ON: Hex=38 Note=G#2 Velocity=88 +[2025-12-10 10:47:22] NOTE_OFF: Hex=38 Note=G#2 +[2025-12-10 10:47:22] NOTE_ON: Hex=39 Note=A2 Velocity=78 +[2025-12-10 10:47:22] NOTE_OFF: Hex=39 Note=A2 +[2025-12-10 10:47:23] NOTE_ON: Hex=3A Note=A#2 Velocity=84 +[2025-12-10 10:47:23] NOTE_OFF: Hex=3A Note=A#2 +[2025-12-10 10:47:23] NOTE_ON: Hex=3B Note=B2 Velocity=83 +[2025-12-10 10:47:23] NOTE_OFF: Hex=3B Note=B2 +[2025-12-10 10:47:24] NOTE_ON: Hex=3C Note=C3 Velocity=83 +[2025-12-10 10:47:24] NOTE_OFF: Hex=3C Note=C3 +[2025-12-10 10:47:24] NOTE_ON: Hex=3D Note=C#3 Velocity=84 +[2025-12-10 10:47:25] NOTE_OFF: Hex=3D Note=C#3 +[2025-12-10 10:47:25] NOTE_ON: Hex=3E Note=D3 Velocity=84 +[2025-12-10 10:47:25] NOTE_OFF: Hex=3E Note=D3 +[2025-12-10 10:47:26] NOTE_ON: Hex=3F Note=D#3 Velocity=88 +[2025-12-10 10:47:26] NOTE_OFF: Hex=3F Note=D#3 +[2025-12-10 10:47:26] NOTE_ON: Hex=40 Note=E3 Velocity=84 +[2025-12-10 10:47:26] NOTE_OFF: Hex=40 Note=E3 +[2025-12-10 10:47:27] NOTE_ON: Hex=41 Note=F3 Velocity=78 +[2025-12-10 10:47:27] NOTE_OFF: Hex=41 Note=F3 +[2025-12-10 10:47:27] NOTE_ON: Hex=42 Note=F#3 Velocity=67 +[2025-12-10 10:47:27] NOTE_OFF: Hex=42 Note=F#3 +[2025-12-10 10:47:28] NOTE_ON: Hex=43 Note=G3 Velocity=73 +[2025-12-10 10:47:28] NOTE_OFF: Hex=43 Note=G3 +[2025-12-10 10:47:28] NOTE_ON: Hex=44 Note=G#3 Velocity=63 +[2025-12-10 10:47:29] NOTE_OFF: Hex=44 Note=G#3 +[2025-12-10 10:47:29] NOTE_ON: Hex=45 Note=A3 Velocity=70 +[2025-12-10 10:47:29] NOTE_OFF: Hex=45 Note=A3 +[2025-12-10 10:47:29] NOTE_ON: Hex=46 Note=A#3 Velocity=84 +[2025-12-10 10:47:30] NOTE_OFF: Hex=46 Note=A#3 +[2025-12-10 10:47:30] NOTE_ON: Hex=47 Note=B3 Velocity=66 +[2025-12-10 10:47:30] NOTE_OFF: Hex=47 Note=B3 +[2025-12-10 10:47:31] NOTE_ON: Hex=48 Note=C4 Velocity=83 +[2025-12-10 10:47:31] NOTE_OFF: Hex=48 Note=C4 +[2025-12-10 10:47:31] NOTE_ON: Hex=49 Note=C#4 Velocity=78 +[2025-12-10 10:47:31] NOTE_OFF: Hex=49 Note=C#4 +[2025-12-10 10:47:32] NOTE_ON: Hex=4A Note=D4 Velocity=64 +[2025-12-10 10:47:32] NOTE_OFF: Hex=4A Note=D4 +[2025-12-10 10:47:32] NOTE_ON: Hex=4B Note=D#4 Velocity=74 +[2025-12-10 10:47:32] NOTE_OFF: Hex=4B Note=D#4 +[2025-12-10 10:47:33] NOTE_ON: Hex=4C Note=E4 Velocity=77 +[2025-12-10 10:47:33] NOTE_OFF: Hex=4C Note=E4 +[2025-12-10 10:47:33] NOTE_ON: Hex=4D Note=F4 Velocity=72 +[2025-12-10 10:47:33] NOTE_OFF: Hex=4D Note=F4 +[2025-12-10 10:47:34] NOTE_ON: Hex=4E Note=F#4 Velocity=77 +[2025-12-10 10:47:34] NOTE_OFF: Hex=4E Note=F#4 +[2025-12-10 10:47:34] NOTE_ON: Hex=4F Note=G4 Velocity=67 +[2025-12-10 10:47:34] NOTE_OFF: Hex=4F Note=G4 +[2025-12-10 10:47:35] NOTE_ON: Hex=50 Note=G#4 Velocity=66 +[2025-12-10 10:47:35] NOTE_OFF: Hex=50 Note=G#4 +[2025-12-10 10:47:35] NOTE_ON: Hex=51 Note=A4 Velocity=64 +[2025-12-10 10:47:35] NOTE_OFF: Hex=51 Note=A4 +[2025-12-10 10:47:36] NOTE_ON: Hex=52 Note=A#4 Velocity=60 +[2025-12-10 10:47:36] NOTE_OFF: Hex=52 Note=A#4 +[2025-12-10 10:47:36] NOTE_ON: Hex=53 Note=B4 Velocity=64 +[2025-12-10 10:47:36] NOTE_OFF: Hex=53 Note=B4 +[2025-12-10 10:47:37] NOTE_ON: Hex=54 Note=C5 Velocity=74 +[2025-12-10 10:47:37] NOTE_OFF: Hex=54 Note=C5 +[2025-12-10 10:47:37] NOTE_ON: Hex=55 Note=C#5 Velocity=64 +[2025-12-10 10:47:38] NOTE_OFF: Hex=55 Note=C#5 +[2025-12-10 10:47:38] NOTE_ON: Hex=56 Note=D5 Velocity=77 +[2025-12-10 10:47:38] NOTE_OFF: Hex=56 Note=D5 +[2025-12-10 10:47:38] NOTE_ON: Hex=57 Note=D#5 Velocity=74 +[2025-12-10 10:47:38] NOTE_OFF: Hex=57 Note=D#5 +[2025-12-10 10:47:39] NOTE_ON: Hex=58 Note=E5 Velocity=64 +[2025-12-10 10:47:39] NOTE_OFF: Hex=58 Note=E5 +[2025-12-10 10:47:39] NOTE_ON: Hex=59 Note=F5 Velocity=64 +[2025-12-10 10:47:39] NOTE_OFF: Hex=59 Note=F5 +[2025-12-10 10:47:40] NOTE_ON: Hex=5A Note=F#5 Velocity=70 +[2025-12-10 10:47:40] NOTE_OFF: Hex=5A Note=F#5 +[2025-12-10 10:47:40] NOTE_ON: Hex=5B Note=G5 Velocity=63 +[2025-12-10 10:47:40] NOTE_OFF: Hex=5B Note=G5 +[2025-12-10 10:47:41] NOTE_ON: Hex=5C Note=G#5 Velocity=62 +[2025-12-10 10:47:41] NOTE_OFF: Hex=5C Note=G#5 +[2025-12-10 10:47:41] NOTE_ON: Hex=5D Note=A5 Velocity=73 +[2025-12-10 10:47:41] NOTE_OFF: Hex=5D Note=A5 +[2025-12-10 10:47:42] NOTE_ON: Hex=5E Note=A#5 Velocity=69 +[2025-12-10 10:47:42] NOTE_OFF: Hex=5E Note=A#5 +[2025-12-10 10:47:42] NOTE_ON: Hex=5F Note=B5 Velocity=77 +[2025-12-10 10:47:42] NOTE_OFF: Hex=5F Note=B5 +[2025-12-10 10:47:42] NOTE_ON: Hex=60 Note=C6 Velocity=97 +[2025-12-10 10:47:43] NOTE_OFF: Hex=60 Note=C6 +[2025-12-10 10:47:50] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:47:50] CONTROL: Controller=0x20 Value=113 +[2025-12-10 10:47:50] PROGRAM_CHANGE: Program=49 +[2025-12-10 10:47:50] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:47:50] CONTROL: Controller=0x20 Value=8 +[2025-12-10 10:47:50] PROGRAM_CHANGE: Program=40 +[2025-12-10 10:47:50] CONTROL: Controller=0x07 (Volume) Value=78 +[2025-12-10 10:47:50] CONTROL: Controller=0x5B Value=40 +[2025-12-10 10:47:50] CONTROL: Controller=0x07 (Volume) Value=60 +[2025-12-10 10:47:50] CONTROL: Controller=0x5B Value=40 +[2025-12-10 10:47:51] NOTE_ON: Hex=4C Note=E4 Velocity=49 +[2025-12-10 10:47:51] NOTE_ON: Hex=4A Note=D4 Velocity=49 +[2025-12-10 10:47:51] NOTE_ON: Hex=48 Note=C4 Velocity=60 +[2025-12-10 10:47:51] NOTE_OFF: Hex=4C Note=E4 +[2025-12-10 10:47:51] NOTE_OFF: Hex=4A Note=D4 +[2025-12-10 10:47:52] NOTE_ON: Hex=4A Note=D4 Velocity=25 +[2025-12-10 10:47:52] NOTE_ON: Hex=4C Note=E4 Velocity=31 +[2025-12-10 10:47:52] NOTE_ON: Hex=45 Note=A3 Velocity=26 +[2025-12-10 10:47:52] NOTE_OFF: Hex=4C Note=E4 +[2025-12-10 10:47:52] NOTE_OFF: Hex=4A Note=D4 +[2025-12-10 10:47:52] NOTE_OFF: Hex=48 Note=C4 +[2025-12-10 10:47:52] NOTE_OFF: Hex=45 Note=A3 +[2025-12-10 10:47:53] NOTE_ON: Hex=48 Note=C4 Velocity=30 +[2025-12-10 10:47:53] NOTE_ON: Hex=47 Note=B3 Velocity=43 +[2025-12-10 10:47:53] NOTE_ON: Hex=45 Note=A3 Velocity=33 +[2025-12-10 10:47:54] NOTE_ON: Hex=4A Note=D4 Velocity=17 +[2025-12-10 10:47:54] NOTE_OFF: Hex=45 Note=A3 +[2025-12-10 10:47:54] NOTE_OFF: Hex=47 Note=B3 +[2025-12-10 10:47:54] NOTE_OFF: Hex=48 Note=C4 +[2025-12-10 10:47:54] NOTE_OFF: Hex=4A Note=D4 +[2025-12-10 10:47:55] NOTE_ON: Hex=48 Note=C4 Velocity=32 +[2025-12-10 10:47:55] NOTE_ON: Hex=47 Note=B3 Velocity=36 +[2025-12-10 10:47:55] NOTE_ON: Hex=45 Note=A3 Velocity=39 +[2025-12-10 10:47:55] NOTE_OFF: Hex=48 Note=C4 +[2025-12-10 10:47:55] NOTE_OFF: Hex=47 Note=B3 +[2025-12-10 10:47:55] NOTE_OFF: Hex=45 Note=A3 +[2025-12-10 10:47:56] NOTE_ON: Hex=48 Note=C4 Velocity=42 +[2025-12-10 10:47:56] NOTE_ON: Hex=47 Note=B3 Velocity=30 +[2025-12-10 10:47:56] NOTE_ON: Hex=45 Note=A3 Velocity=24 +[2025-12-10 10:47:56] NOTE_ON: Hex=43 Note=G3 Velocity=22 +[2025-12-10 10:47:58] NOTE_OFF: Hex=48 Note=C4 +[2025-12-10 10:47:58] NOTE_OFF: Hex=47 Note=B3 +[2025-12-10 10:47:58] NOTE_OFF: Hex=45 Note=A3 +[2025-12-10 10:47:58] NOTE_OFF: Hex=43 Note=G3 +[2025-12-10 10:48:00] NOTE_ON: Hex=3E Note=D3 Velocity=32 +[2025-12-10 10:48:00] NOTE_ON: Hex=40 Note=E3 Velocity=22 +[2025-12-10 10:48:00] NOTE_ON: Hex=3C Note=C3 Velocity=16 +[2025-12-10 10:48:00] NOTE_OFF: Hex=40 Note=E3 +[2025-12-10 10:48:00] NOTE_OFF: Hex=3E Note=D3 +[2025-12-10 10:48:00] NOTE_OFF: Hex=3C Note=C3 +[2025-12-10 10:48:01] NOTE_ON: Hex=3C Note=C3 Velocity=30 +[2025-12-10 10:48:01] NOTE_ON: Hex=3B Note=B2 Velocity=43 +[2025-12-10 10:48:01] NOTE_OFF: Hex=3B Note=B2 +[2025-12-10 10:48:01] NOTE_OFF: Hex=3C Note=C3 +[2025-12-10 10:48:01] NOTE_ON: Hex=3C Note=C3 Velocity=49 +[2025-12-10 10:48:02] NOTE_ON: Hex=3B Note=B2 Velocity=43 +[2025-12-10 10:48:02] NOTE_OFF: Hex=3C Note=C3 +[2025-12-10 10:48:02] NOTE_OFF: Hex=3B Note=B2 +[2025-12-10 10:48:02] NOTE_ON: Hex=3C Note=C3 Velocity=51 +[2025-12-10 10:48:03] NOTE_OFF: Hex=3C Note=C3 +[2025-12-10 10:48:03] NOTE_ON: Hex=3B Note=B2 Velocity=53 +[2025-12-10 10:48:03] NOTE_OFF: Hex=3B Note=B2 +[2025-12-10 10:48:04] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:04] CONTROL: Controller=0x20 Value=112 +[2025-12-10 10:48:04] PROGRAM_CHANGE: Program=49 +[2025-12-10 10:48:04] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:04] CONTROL: Controller=0x20 Value=112 +[2025-12-10 10:48:04] PROGRAM_CHANGE: Program=48 +[2025-12-10 10:48:04] CONTROL: Controller=0x07 (Volume) Value=90 +[2025-12-10 10:48:04] CONTROL: Controller=0x07 (Volume) Value=74 +[2025-12-10 10:48:05] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:05] CONTROL: Controller=0x20 Value=112 +[2025-12-10 10:48:05] PROGRAM_CHANGE: Program=48 +[2025-12-10 10:48:05] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:05] CONTROL: Controller=0x20 Value=113 +[2025-12-10 10:48:05] PROGRAM_CHANGE: Program=89 +[2025-12-10 10:48:05] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:48:05] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:48:05] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:48:05] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:48:05] STATUS: Данные без статуса: 0x08 +[2025-12-10 10:48:05] STATUS: Данные без статуса: 0x01 +[2025-12-10 10:48:05] STATUS: Данные без статуса: 0x0D +[2025-12-10 10:48:05] STATUS: Данные без статуса: 0x42 +[2025-12-10 10:48:05] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:48:05] CONTROL: Controller=0x07 (Volume) Value=66 +[2025-12-10 10:48:05] CONTROL: Controller=0x07 (Volume) Value=100 +[2025-12-10 10:48:06] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:06] CONTROL: Controller=0x20 Value=113 +[2025-12-10 10:48:06] PROGRAM_CHANGE: Program=39 +[2025-12-10 10:48:06] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:06] CONTROL: Controller=0x20 Value=112 +[2025-12-10 10:48:06] PROGRAM_CHANGE: Program=81 +[2025-12-10 10:48:06] CONTROL: Controller=0x07 (Volume) Value=52 +[2025-12-10 10:48:06] CONTROL: Controller=0x5B Value=8 +[2025-12-10 10:48:06] CONTROL: Controller=0x5D Value=30 +[2025-12-10 10:48:06] CONTROL: Controller=0x07 (Volume) Value=44 +[2025-12-10 10:48:06] CONTROL: Controller=0x5B Value=8 +[2025-12-10 10:48:06] CONTROL: Controller=0x5D Value=30 +[2025-12-10 10:48:06] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:48:06] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:48:06] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:48:06] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:48:06] STATUS: Данные без статуса: 0x02 +[2025-12-10 10:48:06] STATUS: Данные без статуса: 0x01 +[2025-12-10 10:48:06] STATUS: Данные без статуса: 0x20 +[2025-12-10 10:48:06] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:48:06] STATUS: Данные без статуса: 0x11 +[2025-12-10 10:48:06] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:48:07] NOTE_ON: Hex=2F Note=B1 Velocity=42 +[2025-12-10 10:48:08] NOTE_OFF: Hex=2F Note=B1 +[2025-12-10 10:48:08] NOTE_ON: Hex=10 Note=Unknown Velocity=57 +[2025-12-10 10:48:08] NOTE_ON: Hex=11 Note=Unknown Velocity=49 +[2025-12-10 10:48:09] NOTE_OFF: Hex=11 Note=Unknown +[2025-12-10 10:48:09] NOTE_OFF: Hex=10 Note=Unknown +[2025-12-10 10:48:09] NOTE_ON: Hex=10 Note=Unknown Velocity=60 +[2025-12-10 10:48:09] NOTE_ON: Hex=11 Note=Unknown Velocity=64 +[2025-12-10 10:48:09] NOTE_ON: Hex=13 Note=Unknown Velocity=21 +[2025-12-10 10:48:10] NOTE_OFF: Hex=13 Note=Unknown +[2025-12-10 10:48:10] NOTE_OFF: Hex=11 Note=Unknown +[2025-12-10 10:48:10] NOTE_OFF: Hex=10 Note=Unknown +[2025-12-10 10:48:10] NOTE_ON: Hex=13 Note=Unknown Velocity=81 +[2025-12-10 10:48:10] NOTE_ON: Hex=11 Note=Unknown Velocity=77 +[2025-12-10 10:48:10] NOTE_ON: Hex=10 Note=Unknown Velocity=22 +[2025-12-10 10:48:10] NOTE_OFF: Hex=11 Note=Unknown +[2025-12-10 10:48:10] NOTE_OFF: Hex=13 Note=Unknown +[2025-12-10 10:48:10] NOTE_OFF: Hex=10 Note=Unknown +[2025-12-10 10:48:10] NOTE_ON: Hex=10 Note=Unknown Velocity=73 +[2025-12-10 10:48:10] NOTE_ON: Hex=11 Note=Unknown Velocity=64 +[2025-12-10 10:48:10] NOTE_ON: Hex=13 Note=Unknown Velocity=47 +[2025-12-10 10:48:11] NOTE_OFF: Hex=13 Note=Unknown +[2025-12-10 10:48:11] NOTE_OFF: Hex=11 Note=Unknown +[2025-12-10 10:48:11] NOTE_OFF: Hex=10 Note=Unknown +[2025-12-10 10:48:11] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:11] CONTROL: Controller=0x20 Value=113 +[2025-12-10 10:48:11] PROGRAM_CHANGE: Program=38 +[2025-12-10 10:48:11] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:11] CONTROL: Controller=0x20 Value=115 +[2025-12-10 10:48:11] PROGRAM_CHANGE: Program=81 +[2025-12-10 10:48:11] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:48:11] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:48:11] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:48:11] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:48:11] STATUS: Данные без статуса: 0x08 +[2025-12-10 10:48:11] STATUS: Данные без статуса: 0x01 +[2025-12-10 10:48:11] STATUS: Данные без статуса: 0x0D +[2025-12-10 10:48:11] STATUS: Данные без статуса: 0x40 +[2025-12-10 10:48:11] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:48:11] CONTROL: Controller=0x07 (Volume) Value=70 +[2025-12-10 10:48:11] CONTROL: Controller=0x5D Value=23 +[2025-12-10 10:48:11] CONTROL: Controller=0x07 (Volume) Value=50 +[2025-12-10 10:48:11] CONTROL: Controller=0x5D Value=80 +[2025-12-10 10:48:11] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:48:11] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:48:11] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:48:11] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:48:11] STATUS: Данные без статуса: 0x02 +[2025-12-10 10:48:11] STATUS: Данные без статуса: 0x01 +[2025-12-10 10:48:11] STATUS: Данные без статуса: 0x20 +[2025-12-10 10:48:11] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:48:11] STATUS: Данные без статуса: 0x08 +[2025-12-10 10:48:11] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:48:12] NOTE_ON: Hex=10 Note=Unknown Velocity=31 +[2025-12-10 10:48:12] NOTE_ON: Hex=11 Note=Unknown Velocity=51 +[2025-12-10 10:48:12] NOTE_ON: Hex=13 Note=Unknown Velocity=39 +[2025-12-10 10:48:12] NOTE_OFF: Hex=11 Note=Unknown +[2025-12-10 10:48:12] NOTE_OFF: Hex=10 Note=Unknown +[2025-12-10 10:48:12] NOTE_OFF: Hex=13 Note=Unknown +[2025-12-10 10:48:12] NOTE_ON: Hex=10 Note=Unknown Velocity=53 +[2025-12-10 10:48:12] NOTE_ON: Hex=11 Note=Unknown Velocity=53 +[2025-12-10 10:48:12] NOTE_ON: Hex=13 Note=Unknown Velocity=31 +[2025-12-10 10:48:12] NOTE_OFF: Hex=11 Note=Unknown +[2025-12-10 10:48:12] NOTE_OFF: Hex=10 Note=Unknown +[2025-12-10 10:48:12] NOTE_OFF: Hex=13 Note=Unknown +[2025-12-10 10:48:13] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:13] CONTROL: Controller=0x20 Value=112 +[2025-12-10 10:48:13] PROGRAM_CHANGE: Program=38 +[2025-12-10 10:48:13] CONTROL: Controller=0x07 (Volume) Value=56 +[2025-12-10 10:48:13] CONTROL: Controller=0x5D Value=50 +[2025-12-10 10:48:13] CONTROL: Controller=0x07 (Volume) Value=54 +[2025-12-10 10:48:13] CONTROL: Controller=0x5D Value=60 +[2025-12-10 10:48:13] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:48:13] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:48:13] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:48:13] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:48:13] STATUS: Данные без статуса: 0x02 +[2025-12-10 10:48:13] STATUS: Данные без статуса: 0x01 +[2025-12-10 10:48:13] STATUS: Данные без статуса: 0x20 +[2025-12-10 10:48:13] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:48:13] STATUS: Данные без статуса: 0x11 +[2025-12-10 10:48:13] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:48:13] NOTE_ON: Hex=15 Note=Unknown Velocity=42 +[2025-12-10 10:48:13] NOTE_ON: Hex=13 Note=Unknown Velocity=44 +[2025-12-10 10:48:13] NOTE_ON: Hex=17 Note=Unknown Velocity=40 +[2025-12-10 10:48:14] NOTE_OFF: Hex=17 Note=Unknown +[2025-12-10 10:48:14] NOTE_OFF: Hex=15 Note=Unknown +[2025-12-10 10:48:14] NOTE_OFF: Hex=13 Note=Unknown +[2025-12-10 10:48:14] NOTE_ON: Hex=15 Note=Unknown Velocity=53 +[2025-12-10 10:48:14] NOTE_ON: Hex=13 Note=Unknown Velocity=45 +[2025-12-10 10:48:14] NOTE_ON: Hex=17 Note=Unknown Velocity=57 +[2025-12-10 10:48:14] NOTE_OFF: Hex=17 Note=Unknown +[2025-12-10 10:48:14] NOTE_OFF: Hex=15 Note=Unknown +[2025-12-10 10:48:14] NOTE_OFF: Hex=13 Note=Unknown +[2025-12-10 10:48:14] NOTE_ON: Hex=17 Note=Unknown Velocity=52 +[2025-12-10 10:48:14] NOTE_ON: Hex=15 Note=Unknown Velocity=49 +[2025-12-10 10:48:14] NOTE_ON: Hex=13 Note=Unknown Velocity=45 +[2025-12-10 10:48:14] NOTE_OFF: Hex=15 Note=Unknown +[2025-12-10 10:48:14] NOTE_OFF: Hex=17 Note=Unknown +[2025-12-10 10:48:14] NOTE_OFF: Hex=13 Note=Unknown +[2025-12-10 10:48:14] NOTE_ON: Hex=17 Note=Unknown Velocity=47 +[2025-12-10 10:48:14] NOTE_ON: Hex=13 Note=Unknown Velocity=38 +[2025-12-10 10:48:14] NOTE_ON: Hex=15 Note=Unknown Velocity=46 +[2025-12-10 10:48:15] NOTE_OFF: Hex=15 Note=Unknown +[2025-12-10 10:48:15] NOTE_OFF: Hex=17 Note=Unknown +[2025-12-10 10:48:15] NOTE_OFF: Hex=13 Note=Unknown +[2025-12-10 10:48:17] NOTE_ON: Hex=13 Note=Unknown Velocity=42 +[2025-12-10 10:48:17] NOTE_ON: Hex=15 Note=Unknown Velocity=46 +[2025-12-10 10:48:17] NOTE_ON: Hex=17 Note=Unknown Velocity=57 +[2025-12-10 10:48:17] NOTE_OFF: Hex=15 Note=Unknown +[2025-12-10 10:48:17] NOTE_OFF: Hex=13 Note=Unknown +[2025-12-10 10:48:17] NOTE_OFF: Hex=17 Note=Unknown +[2025-12-10 10:48:17] NOTE_ON: Hex=2D Note=A1 Velocity=30 +[2025-12-10 10:48:18] NOTE_OFF: Hex=2D Note=A1 +[2025-12-10 10:48:18] NOTE_ON: Hex=15 Note=Unknown Velocity=16 +[2025-12-10 10:48:18] NOTE_ON: Hex=17 Note=Unknown Velocity=16 +[2025-12-10 10:48:18] NOTE_ON: Hex=13 Note=Unknown Velocity=19 +[2025-12-10 10:48:18] NOTE_OFF: Hex=17 Note=Unknown +[2025-12-10 10:48:18] NOTE_OFF: Hex=13 Note=Unknown +[2025-12-10 10:48:18] NOTE_OFF: Hex=15 Note=Unknown +[2025-12-10 10:48:18] NOTE_ON: Hex=17 Note=Unknown Velocity=44 +[2025-12-10 10:48:18] NOTE_ON: Hex=15 Note=Unknown Velocity=48 +[2025-12-10 10:48:18] NOTE_ON: Hex=13 Note=Unknown Velocity=49 +[2025-12-10 10:48:18] NOTE_OFF: Hex=17 Note=Unknown +[2025-12-10 10:48:18] NOTE_OFF: Hex=15 Note=Unknown +[2025-12-10 10:48:18] NOTE_OFF: Hex=13 Note=Unknown +[2025-12-10 10:48:19] NOTE_ON: Hex=17 Note=Unknown Velocity=46 +[2025-12-10 10:48:19] NOTE_ON: Hex=15 Note=Unknown Velocity=49 +[2025-12-10 10:48:19] NOTE_ON: Hex=13 Note=Unknown Velocity=46 +[2025-12-10 10:48:19] NOTE_OFF: Hex=15 Note=Unknown +[2025-12-10 10:48:19] NOTE_OFF: Hex=17 Note=Unknown +[2025-12-10 10:48:19] NOTE_OFF: Hex=13 Note=Unknown +[2025-12-10 10:48:19] NOTE_ON: Hex=13 Note=Unknown Velocity=34 +[2025-12-10 10:48:19] NOTE_ON: Hex=17 Note=Unknown Velocity=30 +[2025-12-10 10:48:19] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x02 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x01 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x00 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x01 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:48:19] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:48:19] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x02 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x01 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x20 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x42 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x11 +[2025-12-10 10:48:19] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:48:19] CONTROL: Controller=0x07 (Volume) Value=33 +[2025-12-10 10:48:19] CONTROL: Controller=0x0A (Pan) Value=84 +[2025-12-10 10:48:19] CONTROL: Controller=0x5B Value=54 +[2025-12-10 10:48:19] CONTROL: Controller=0x07 (Volume) Value=38 +[2025-12-10 10:48:19] CONTROL: Controller=0x5B Value=50 +[2025-12-10 10:48:19] CONTROL: Controller=0x00 Value=127 +[2025-12-10 10:48:19] CONTROL: Controller=0x20 Value=0 +[2025-12-10 10:48:19] PROGRAM_CHANGE: Program=1 +[2025-12-10 10:48:19] CONTROL: Controller=0x07 (Volume) Value=41 +[2025-12-10 10:48:19] CONTROL: Controller=0x5D Value=0 +[2025-12-10 10:48:19] CONTROL: Controller=0x07 (Volume) Value=27 +[2025-12-10 10:48:19] CONTROL: Controller=0x0A (Pan) Value=38 +[2025-12-10 10:48:19] CONTROL: Controller=0x5B Value=50 +[2025-12-10 10:48:19] CONTROL: Controller=0x5D Value=10 +[2025-12-10 10:48:19] CONTROL: Controller=0x4A Value=68 +[2025-12-10 10:48:19] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:19] CONTROL: Controller=0x20 Value=117 +[2025-12-10 10:48:19] PROGRAM_CHANGE: Program=27 +[2025-12-10 10:48:19] CONTROL: Controller=0x07 (Volume) Value=29 +[2025-12-10 10:48:19] CONTROL: Controller=0x0A (Pan) Value=64 +[2025-12-10 10:48:19] CONTROL: Controller=0x5B Value=16 +[2025-12-10 10:48:19] CONTROL: Controller=0x5D Value=0 +[2025-12-10 10:48:19] CONTROL: Controller=0x4A Value=72 +[2025-12-10 10:48:19] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:19] CONTROL: Controller=0x20 Value=112 +[2025-12-10 10:48:19] PROGRAM_CHANGE: Program=0 +[2025-12-10 10:48:19] CONTROL: Controller=0x07 (Volume) Value=31 +[2025-12-10 10:48:19] CONTROL: Controller=0x0A (Pan) Value=55 +[2025-12-10 10:48:19] CONTROL: Controller=0x5B Value=60 +[2025-12-10 10:48:19] CONTROL: Controller=0x47 Value=40 +[2025-12-10 10:48:19] CONTROL: Controller=0x4A Value=34 +[2025-12-10 10:48:19] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:19] CONTROL: Controller=0x20 Value=0 +[2025-12-10 10:48:19] PROGRAM_CHANGE: Program=48 +[2025-12-10 10:48:19] CONTROL: Controller=0x07 (Volume) Value=38 +[2025-12-10 10:48:19] CONTROL: Controller=0x0A (Pan) Value=90 +[2025-12-10 10:48:19] CONTROL: Controller=0x5B Value=20 +[2025-12-10 10:48:19] CONTROL: Controller=0x5D Value=10 +[2025-12-10 10:48:19] CONTROL: Controller=0x48 Value=40 +[2025-12-10 10:48:19] CONTROL: Controller=0x4A Value=70 +[2025-12-10 10:48:19] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:19] CONTROL: Controller=0x20 Value=112 +[2025-12-10 10:48:19] PROGRAM_CHANGE: Program=25 +[2025-12-10 10:48:19] NOTE_ON: Hex=15 Note=Unknown Velocity=29 +[2025-12-10 10:48:19] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x02 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x01 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x20 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x42 +[2025-12-10 10:48:19] STATUS: Данные без статуса: 0x11 +[2025-12-10 10:48:19] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:48:19] NOTE_OFF: Hex=17 Note=Unknown +[2025-12-10 10:48:19] NOTE_OFF: Hex=15 Note=Unknown +[2025-12-10 10:48:19] NOTE_OFF: Hex=13 Note=Unknown +[2025-12-10 10:48:20] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x02 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x01 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x00 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x01 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x11 +[2025-12-10 10:48:20] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:48:20] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x02 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x01 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x20 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x42 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x11 +[2025-12-10 10:48:20] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:48:20] CONTROL: Controller=0x07 (Volume) Value=31 +[2025-12-10 10:48:20] CONTROL: Controller=0x0A (Pan) Value=44 +[2025-12-10 10:48:20] CONTROL: Controller=0x5B Value=36 +[2025-12-10 10:48:20] CONTROL: Controller=0x5D Value=0 +[2025-12-10 10:48:20] CONTROL: Controller=0x48 Value=64 +[2025-12-10 10:48:20] CONTROL: Controller=0x4A Value=88 +[2025-12-10 10:48:20] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:20] CONTROL: Controller=0x20 Value=113 +[2025-12-10 10:48:20] PROGRAM_CHANGE: Program=25 +[2025-12-10 10:48:20] CONTROL: Controller=0x07 (Volume) Value=31 +[2025-12-10 10:48:20] CONTROL: Controller=0x5D Value=18 +[2025-12-10 10:48:20] CONTROL: Controller=0x4A Value=58 +[2025-12-10 10:48:20] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:20] CONTROL: Controller=0x20 Value=0 +[2025-12-10 10:48:20] PROGRAM_CHANGE: Program=33 +[2025-12-10 10:48:20] CONTROL: Controller=0x07 (Volume) Value=34 +[2025-12-10 10:48:20] CONTROL: Controller=0x0A (Pan) Value=64 +[2025-12-10 10:48:20] CONTROL: Controller=0x5B Value=52 +[2025-12-10 10:48:20] CONTROL: Controller=0x5B Value=58 +[2025-12-10 10:48:20] CONTROL: Controller=0x00 Value=127 +[2025-12-10 10:48:20] CONTROL: Controller=0x20 Value=0 +[2025-12-10 10:48:20] PROGRAM_CHANGE: Program=0 +[2025-12-10 10:48:20] CONTROL: Controller=0x07 (Volume) Value=29 +[2025-12-10 10:48:20] CONTROL: Controller=0x0A (Pan) Value=64 +[2025-12-10 10:48:20] CONTROL: Controller=0x5B Value=61 +[2025-12-10 10:48:20] CONTROL: Controller=0x5D Value=20 +[2025-12-10 10:48:20] CONTROL: Controller=0x47 Value=64 +[2025-12-10 10:48:20] CONTROL: Controller=0x49 Value=70 +[2025-12-10 10:48:20] CONTROL: Controller=0x4A Value=52 +[2025-12-10 10:48:20] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:20] CONTROL: Controller=0x20 Value=0 +[2025-12-10 10:48:20] PROGRAM_CHANGE: Program=49 +[2025-12-10 10:48:20] CONTROL: Controller=0x07 (Volume) Value=43 +[2025-12-10 10:48:20] CONTROL: Controller=0x0A (Pan) Value=86 +[2025-12-10 10:48:20] CONTROL: Controller=0x5B Value=96 +[2025-12-10 10:48:20] CONTROL: Controller=0x5D Value=35 +[2025-12-10 10:48:20] CONTROL: Controller=0x47 Value=68 +[2025-12-10 10:48:20] CONTROL: Controller=0x4A Value=64 +[2025-12-10 10:48:20] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:48:20] CONTROL: Controller=0x20 Value=96 +[2025-12-10 10:48:20] PROGRAM_CHANGE: Program=25 +[2025-12-10 10:48:20] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x02 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x01 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x00 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x01 +[2025-12-10 10:48:20] STATUS: Данные без статуса: 0x11 +[2025-12-10 10:48:20] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:48:26] STATUS: Логгирование остановлено diff --git a/Yamitracker-reoload/FngrBass_39.txt b/Yamitracker-reoload/FngrBass_39.txt new file mode 100644 index 0000000..bb868bb --- /dev/null +++ b/Yamitracker-reoload/FngrBass_39.txt @@ -0,0 +1,155 @@ +[2025-12-10 10:58:22] STATUS: Запуск логгирования MIDI данных +[2025-12-10 10:58:22] STATUS: Устройство: /dev/dmmidi1 +[2025-12-10 10:58:22] STATUS: Устройство успешно открыто +[2025-12-10 10:58:22] STATUS: Настройка порта завершена, скорость: 115200 бод +[2025-12-10 10:58:23] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:58:23] CONTROL: Controller=0x20 Value=112 +[2025-12-10 10:58:23] PROGRAM_CHANGE: Program=33 +[2025-12-10 10:58:23] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:58:23] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:58:23] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:58:23] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:58:23] STATUS: Данные без статуса: 0x08 +[2025-12-10 10:58:23] STATUS: Данные без статуса: 0x00 +[2025-12-10 10:58:23] STATUS: Данные без статуса: 0x0C +[2025-12-10 10:58:23] STATUS: Данные без статуса: 0x40 +[2025-12-10 10:58:23] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:58:23] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:58:23] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:58:23] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:58:23] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:58:23] STATUS: Данные без статуса: 0x08 +[2025-12-10 10:58:23] STATUS: Данные без статуса: 0x00 +[2025-12-10 10:58:23] STATUS: Данные без статуса: 0x0D +[2025-12-10 10:58:23] STATUS: Данные без статуса: 0x40 +[2025-12-10 10:58:23] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:58:23] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:58:23] CONTROL: Controller=0x20 Value=112 +[2025-12-10 10:58:23] PROGRAM_CHANGE: Program=28 +[2025-12-10 10:58:23] CONTROL: Controller=0x07 (Volume) Value=68 +[2025-12-10 10:58:23] CONTROL: Controller=0x5B Value=8 +[2025-12-10 10:58:23] CONTROL: Controller=0x07 (Volume) Value=68 +[2025-12-10 10:58:23] CONTROL: Controller=0x5B Value=8 +[2025-12-10 10:58:27] NOTE_ON: Hex=0C Note=Unknown Velocity=58 +[2025-12-10 10:58:27] NOTE_OFF: Hex=0C Note=Unknown +[2025-12-10 10:58:28] NOTE_ON: Hex=0D Note=Unknown Velocity=61 +[2025-12-10 10:58:28] NOTE_OFF: Hex=0D Note=Unknown +[2025-12-10 10:58:29] NOTE_ON: Hex=0E Note=Unknown Velocity=72 +[2025-12-10 10:58:29] NOTE_OFF: Hex=0E Note=Unknown +[2025-12-10 10:58:30] NOTE_ON: Hex=0F Note=Unknown Velocity=59 +[2025-12-10 10:58:30] NOTE_OFF: Hex=0F Note=Unknown +[2025-12-10 10:58:31] NOTE_ON: Hex=10 Note=Unknown Velocity=74 +[2025-12-10 10:58:31] NOTE_OFF: Hex=10 Note=Unknown +[2025-12-10 10:58:32] NOTE_ON: Hex=11 Note=Unknown Velocity=67 +[2025-12-10 10:58:32] NOTE_OFF: Hex=11 Note=Unknown +[2025-12-10 10:58:33] NOTE_ON: Hex=12 Note=Unknown Velocity=69 +[2025-12-10 10:58:33] NOTE_OFF: Hex=12 Note=Unknown +[2025-12-10 10:58:34] NOTE_ON: Hex=13 Note=Unknown Velocity=45 +[2025-12-10 10:58:34] NOTE_OFF: Hex=13 Note=Unknown +[2025-12-10 10:58:35] NOTE_ON: Hex=14 Note=Unknown Velocity=49 +[2025-12-10 10:58:35] NOTE_OFF: Hex=14 Note=Unknown +[2025-12-10 10:58:36] NOTE_ON: Hex=15 Note=Unknown Velocity=63 +[2025-12-10 10:58:36] NOTE_OFF: Hex=15 Note=Unknown +[2025-12-10 10:58:37] NOTE_ON: Hex=16 Note=Unknown Velocity=57 +[2025-12-10 10:58:37] NOTE_OFF: Hex=16 Note=Unknown +[2025-12-10 10:58:38] NOTE_ON: Hex=17 Note=Unknown Velocity=44 +[2025-12-10 10:58:38] NOTE_OFF: Hex=17 Note=Unknown +[2025-12-10 10:58:39] NOTE_ON: Hex=18 Note=Unknown Velocity=49 +[2025-12-10 10:58:39] NOTE_OFF: Hex=18 Note=Unknown +[2025-12-10 10:58:40] NOTE_ON: Hex=19 Note=Unknown Velocity=48 +[2025-12-10 10:58:40] NOTE_OFF: Hex=19 Note=Unknown +[2025-12-10 10:58:41] NOTE_ON: Hex=1A Note=Unknown Velocity=46 +[2025-12-10 10:58:41] NOTE_OFF: Hex=1A Note=Unknown +[2025-12-10 10:58:42] NOTE_ON: Hex=1B Note=Unknown Velocity=39 +[2025-12-10 10:58:42] NOTE_OFF: Hex=1B Note=Unknown +[2025-12-10 10:58:43] NOTE_ON: Hex=1C Note=Unknown Velocity=45 +[2025-12-10 10:58:43] NOTE_OFF: Hex=1C Note=Unknown +[2025-12-10 10:58:44] NOTE_ON: Hex=1D Note=Unknown Velocity=43 +[2025-12-10 10:58:44] NOTE_OFF: Hex=1D Note=Unknown +[2025-12-10 10:58:45] NOTE_ON: Hex=1E Note=Unknown Velocity=32 +[2025-12-10 10:58:45] NOTE_OFF: Hex=1E Note=Unknown +[2025-12-10 10:58:46] NOTE_ON: Hex=1F Note=Unknown Velocity=45 +[2025-12-10 10:58:46] NOTE_OFF: Hex=1F Note=Unknown +[2025-12-10 10:58:47] NOTE_ON: Hex=20 Note=Unknown Velocity=57 +[2025-12-10 10:58:47] NOTE_OFF: Hex=20 Note=Unknown +[2025-12-10 10:58:47] NOTE_ON: Hex=21 Note=Unknown Velocity=53 +[2025-12-10 10:58:48] NOTE_OFF: Hex=21 Note=Unknown +[2025-12-10 10:58:48] NOTE_ON: Hex=22 Note=Unknown Velocity=73 +[2025-12-10 10:58:49] NOTE_OFF: Hex=22 Note=Unknown +[2025-12-10 10:58:49] NOTE_ON: Hex=23 Note=Unknown Velocity=57 +[2025-12-10 10:58:50] NOTE_OFF: Hex=23 Note=Unknown +[2025-12-10 10:58:50] NOTE_ON: Hex=24 Note=C1 Velocity=59 +[2025-12-10 10:58:51] NOTE_OFF: Hex=24 Note=C1 +[2025-12-10 10:58:51] NOTE_ON: Hex=25 Note=C#1 Velocity=77 +[2025-12-10 10:58:52] NOTE_OFF: Hex=25 Note=C#1 +[2025-12-10 10:58:52] NOTE_ON: Hex=26 Note=D1 Velocity=64 +[2025-12-10 10:58:53] NOTE_OFF: Hex=26 Note=D1 +[2025-12-10 10:58:53] NOTE_ON: Hex=27 Note=D#1 Velocity=59 +[2025-12-10 10:58:53] NOTE_OFF: Hex=27 Note=D#1 +[2025-12-10 10:58:54] NOTE_ON: Hex=28 Note=E1 Velocity=50 +[2025-12-10 10:58:54] NOTE_OFF: Hex=28 Note=E1 +[2025-12-10 10:58:55] NOTE_ON: Hex=29 Note=F1 Velocity=77 +[2025-12-10 10:58:55] NOTE_OFF: Hex=29 Note=F1 +[2025-12-10 10:58:55] NOTE_ON: Hex=2A Note=F#1 Velocity=47 +[2025-12-10 10:58:56] NOTE_OFF: Hex=2A Note=F#1 +[2025-12-10 10:58:56] NOTE_ON: Hex=2B Note=G1 Velocity=50 +[2025-12-10 10:58:57] NOTE_OFF: Hex=2B Note=G1 +[2025-12-10 10:58:57] NOTE_ON: Hex=2C Note=G#1 Velocity=57 +[2025-12-10 10:58:58] NOTE_OFF: Hex=2C Note=G#1 +[2025-12-10 10:58:58] NOTE_ON: Hex=2D Note=A1 Velocity=63 +[2025-12-10 10:58:58] NOTE_OFF: Hex=2D Note=A1 +[2025-12-10 10:58:59] NOTE_ON: Hex=2E Note=A#1 Velocity=55 +[2025-12-10 10:58:59] NOTE_OFF: Hex=2E Note=A#1 +[2025-12-10 10:59:00] NOTE_ON: Hex=2F Note=B1 Velocity=64 +[2025-12-10 10:59:00] NOTE_OFF: Hex=2F Note=B1 +[2025-12-10 10:59:00] NOTE_ON: Hex=30 Note=C2 Velocity=69 +[2025-12-10 10:59:01] NOTE_OFF: Hex=30 Note=C2 +[2025-12-10 10:59:01] NOTE_ON: Hex=31 Note=C#2 Velocity=62 +[2025-12-10 10:59:02] NOTE_OFF: Hex=31 Note=C#2 +[2025-12-10 10:59:02] NOTE_ON: Hex=32 Note=D2 Velocity=67 +[2025-12-10 10:59:03] NOTE_OFF: Hex=32 Note=D2 +[2025-12-10 10:59:03] NOTE_ON: Hex=33 Note=D#2 Velocity=66 +[2025-12-10 10:59:03] NOTE_OFF: Hex=33 Note=D#2 +[2025-12-10 10:59:04] NOTE_ON: Hex=34 Note=E2 Velocity=62 +[2025-12-10 10:59:04] NOTE_OFF: Hex=34 Note=E2 +[2025-12-10 10:59:05] NOTE_ON: Hex=35 Note=F2 Velocity=58 +[2025-12-10 10:59:05] NOTE_OFF: Hex=35 Note=F2 +[2025-12-10 10:59:06] NOTE_ON: Hex=36 Note=F#2 Velocity=61 +[2025-12-10 10:59:06] NOTE_OFF: Hex=36 Note=F#2 +[2025-12-10 10:59:07] NOTE_ON: Hex=37 Note=G2 Velocity=54 +[2025-12-10 10:59:07] NOTE_OFF: Hex=37 Note=G2 +[2025-12-10 10:59:07] NOTE_ON: Hex=38 Note=G#2 Velocity=55 +[2025-12-10 10:59:08] NOTE_OFF: Hex=38 Note=G#2 +[2025-12-10 10:59:08] NOTE_ON: Hex=39 Note=A2 Velocity=57 +[2025-12-10 10:59:09] NOTE_OFF: Hex=39 Note=A2 +[2025-12-10 10:59:09] NOTE_ON: Hex=3A Note=A#2 Velocity=62 +[2025-12-10 10:59:10] NOTE_OFF: Hex=3A Note=A#2 +[2025-12-10 10:59:10] NOTE_ON: Hex=3B Note=B2 Velocity=58 +[2025-12-10 10:59:10] NOTE_OFF: Hex=3B Note=B2 +[2025-12-10 10:59:11] NOTE_ON: Hex=3C Note=C3 Velocity=57 +[2025-12-10 10:59:11] NOTE_OFF: Hex=3C Note=C3 +[2025-12-10 10:59:12] NOTE_ON: Hex=3D Note=C#3 Velocity=46 +[2025-12-10 10:59:12] NOTE_OFF: Hex=3D Note=C#3 +[2025-12-10 10:59:12] NOTE_ON: Hex=3E Note=D3 Velocity=55 +[2025-12-10 10:59:13] NOTE_OFF: Hex=3E Note=D3 +[2025-12-10 10:59:13] NOTE_ON: Hex=3F Note=D#3 Velocity=55 +[2025-12-10 10:59:14] NOTE_OFF: Hex=3F Note=D#3 +[2025-12-10 10:59:14] NOTE_ON: Hex=40 Note=E3 Velocity=63 +[2025-12-10 10:59:15] NOTE_OFF: Hex=40 Note=E3 +[2025-12-10 10:59:15] NOTE_ON: Hex=41 Note=F3 Velocity=49 +[2025-12-10 10:59:15] NOTE_OFF: Hex=41 Note=F3 +[2025-12-10 10:59:16] NOTE_ON: Hex=42 Note=F#3 Velocity=63 +[2025-12-10 10:59:16] NOTE_OFF: Hex=42 Note=F#3 +[2025-12-10 10:59:16] NOTE_ON: Hex=43 Note=G3 Velocity=70 +[2025-12-10 10:59:17] NOTE_OFF: Hex=43 Note=G3 +[2025-12-10 10:59:17] NOTE_ON: Hex=44 Note=G#3 Velocity=66 +[2025-12-10 10:59:17] NOTE_OFF: Hex=44 Note=G#3 +[2025-12-10 10:59:18] NOTE_ON: Hex=45 Note=A3 Velocity=79 +[2025-12-10 10:59:18] NOTE_OFF: Hex=45 Note=A3 +[2025-12-10 10:59:18] NOTE_ON: Hex=46 Note=A#3 Velocity=79 +[2025-12-10 10:59:19] NOTE_OFF: Hex=46 Note=A#3 +[2025-12-10 10:59:19] NOTE_ON: Hex=47 Note=B3 Velocity=81 +[2025-12-10 10:59:20] NOTE_OFF: Hex=47 Note=B3 +[2025-12-10 10:59:20] NOTE_ON: Hex=48 Note=C4 Velocity=102 +[2025-12-10 10:59:21] NOTE_OFF: Hex=48 Note=C4 +[2025-12-10 10:59:23] STATUS: Логгирование остановлено diff --git a/Yamitracker-reoload/Harpsi_3.txt b/Yamitracker-reoload/Harpsi_3.txt new file mode 100644 index 0000000..6eaf26c --- /dev/null +++ b/Yamitracker-reoload/Harpsi_3.txt @@ -0,0 +1,156 @@ +[2025-12-10 10:57:19] STATUS: Запуск логгирования MIDI данных +[2025-12-10 10:57:19] STATUS: Устройство: /dev/dmmidi1 +[2025-12-10 10:57:19] STATUS: Устройство успешно открыто +[2025-12-10 10:57:19] STATUS: Настройка порта завершена, скорость: 115200 бод +[2025-12-10 10:57:25] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:57:25] CONTROL: Controller=0x20 Value=112 +[2025-12-10 10:57:25] PROGRAM_CHANGE: Program=6 +[2025-12-10 10:57:25] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:57:25] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:57:25] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:57:25] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:57:25] STATUS: Данные без статуса: 0x08 +[2025-12-10 10:57:25] STATUS: Данные без статуса: 0x00 +[2025-12-10 10:57:25] STATUS: Данные без статуса: 0x0C +[2025-12-10 10:57:25] STATUS: Данные без статуса: 0x00 +[2025-12-10 10:57:25] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:57:25] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:57:25] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:57:25] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:57:25] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:57:25] STATUS: Данные без статуса: 0x08 +[2025-12-10 10:57:25] STATUS: Данные без статуса: 0x00 +[2025-12-10 10:57:25] STATUS: Данные без статуса: 0x0D +[2025-12-10 10:57:25] STATUS: Данные без статуса: 0x72 +[2025-12-10 10:57:25] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:57:25] CONTROL: Controller=0x07 (Volume) Value=70 +[2025-12-10 10:57:25] CONTROL: Controller=0x5B Value=26 +[2025-12-10 10:57:25] CONTROL: Controller=0x07 (Volume) Value=52 +[2025-12-10 10:57:25] CONTROL: Controller=0x5B Value=50 +[2025-12-10 10:57:29] NOTE_ON: Hex=24 Note=C1 Velocity=67 +[2025-12-10 10:57:30] NOTE_OFF: Hex=24 Note=C1 +[2025-12-10 10:57:30] NOTE_ON: Hex=25 Note=C#1 Velocity=83 +[2025-12-10 10:57:30] NOTE_OFF: Hex=25 Note=C#1 +[2025-12-10 10:57:31] NOTE_ON: Hex=26 Note=D1 Velocity=79 +[2025-12-10 10:57:31] NOTE_OFF: Hex=26 Note=D1 +[2025-12-10 10:57:31] NOTE_ON: Hex=27 Note=D#1 Velocity=78 +[2025-12-10 10:57:32] NOTE_OFF: Hex=27 Note=D#1 +[2025-12-10 10:57:32] NOTE_ON: Hex=28 Note=E1 Velocity=72 +[2025-12-10 10:57:32] NOTE_OFF: Hex=28 Note=E1 +[2025-12-10 10:57:33] NOTE_ON: Hex=29 Note=F1 Velocity=70 +[2025-12-10 10:57:33] NOTE_OFF: Hex=29 Note=F1 +[2025-12-10 10:57:33] NOTE_ON: Hex=2A Note=F#1 Velocity=74 +[2025-12-10 10:57:34] NOTE_OFF: Hex=2A Note=F#1 +[2025-12-10 10:57:34] NOTE_ON: Hex=2B Note=G1 Velocity=70 +[2025-12-10 10:57:34] NOTE_OFF: Hex=2B Note=G1 +[2025-12-10 10:57:34] NOTE_ON: Hex=2C Note=G#1 Velocity=67 +[2025-12-10 10:57:35] NOTE_OFF: Hex=2C Note=G#1 +[2025-12-10 10:57:35] NOTE_ON: Hex=2D Note=A1 Velocity=70 +[2025-12-10 10:57:36] NOTE_OFF: Hex=2D Note=A1 +[2025-12-10 10:57:36] NOTE_ON: Hex=2E Note=A#1 Velocity=57 +[2025-12-10 10:57:36] NOTE_OFF: Hex=2E Note=A#1 +[2025-12-10 10:57:37] NOTE_ON: Hex=2F Note=B1 Velocity=57 +[2025-12-10 10:57:37] NOTE_OFF: Hex=2F Note=B1 +[2025-12-10 10:57:37] NOTE_ON: Hex=30 Note=C2 Velocity=55 +[2025-12-10 10:57:38] NOTE_OFF: Hex=30 Note=C2 +[2025-12-10 10:57:38] NOTE_ON: Hex=31 Note=C#2 Velocity=62 +[2025-12-10 10:57:38] NOTE_OFF: Hex=31 Note=C#2 +[2025-12-10 10:57:39] NOTE_ON: Hex=32 Note=D2 Velocity=61 +[2025-12-10 10:57:39] NOTE_OFF: Hex=32 Note=D2 +[2025-12-10 10:57:39] NOTE_ON: Hex=33 Note=D#2 Velocity=55 +[2025-12-10 10:57:40] NOTE_OFF: Hex=33 Note=D#2 +[2025-12-10 10:57:40] NOTE_ON: Hex=34 Note=E2 Velocity=64 +[2025-12-10 10:57:40] NOTE_OFF: Hex=34 Note=E2 +[2025-12-10 10:57:41] NOTE_ON: Hex=35 Note=F2 Velocity=60 +[2025-12-10 10:57:41] NOTE_OFF: Hex=35 Note=F2 +[2025-12-10 10:57:41] NOTE_ON: Hex=36 Note=F#2 Velocity=63 +[2025-12-10 10:57:42] NOTE_OFF: Hex=36 Note=F#2 +[2025-12-10 10:57:42] NOTE_ON: Hex=37 Note=G2 Velocity=77 +[2025-12-10 10:57:42] NOTE_OFF: Hex=37 Note=G2 +[2025-12-10 10:57:43] NOTE_ON: Hex=38 Note=G#2 Velocity=66 +[2025-12-10 10:57:43] NOTE_OFF: Hex=38 Note=G#2 +[2025-12-10 10:57:43] NOTE_ON: Hex=39 Note=A2 Velocity=69 +[2025-12-10 10:57:43] NOTE_OFF: Hex=39 Note=A2 +[2025-12-10 10:57:44] NOTE_ON: Hex=3A Note=A#2 Velocity=79 +[2025-12-10 10:57:44] NOTE_OFF: Hex=3A Note=A#2 +[2025-12-10 10:57:45] NOTE_ON: Hex=3B Note=B2 Velocity=63 +[2025-12-10 10:57:45] NOTE_OFF: Hex=3B Note=B2 +[2025-12-10 10:57:45] NOTE_ON: Hex=3C Note=C3 Velocity=57 +[2025-12-10 10:57:46] NOTE_OFF: Hex=3C Note=C3 +[2025-12-10 10:57:46] NOTE_ON: Hex=3D Note=C#3 Velocity=63 +[2025-12-10 10:57:46] NOTE_OFF: Hex=3D Note=C#3 +[2025-12-10 10:57:47] NOTE_ON: Hex=3E Note=D3 Velocity=57 +[2025-12-10 10:57:47] NOTE_OFF: Hex=3E Note=D3 +[2025-12-10 10:57:47] NOTE_ON: Hex=3F Note=D#3 Velocity=46 +[2025-12-10 10:57:48] NOTE_OFF: Hex=3F Note=D#3 +[2025-12-10 10:57:48] NOTE_ON: Hex=40 Note=E3 Velocity=40 +[2025-12-10 10:57:48] NOTE_ON: Hex=3E Note=D3 Velocity=40 +[2025-12-10 10:57:48] NOTE_OFF: Hex=3E Note=D3 +[2025-12-10 10:57:48] NOTE_OFF: Hex=40 Note=E3 +[2025-12-10 10:57:49] NOTE_ON: Hex=40 Note=E3 Velocity=32 +[2025-12-10 10:57:50] NOTE_OFF: Hex=40 Note=E3 +[2025-12-10 10:57:50] NOTE_ON: Hex=41 Note=F3 Velocity=34 +[2025-12-10 10:57:51] NOTE_OFF: Hex=41 Note=F3 +[2025-12-10 10:57:51] NOTE_ON: Hex=42 Note=F#3 Velocity=55 +[2025-12-10 10:57:51] NOTE_OFF: Hex=42 Note=F#3 +[2025-12-10 10:57:52] NOTE_ON: Hex=43 Note=G3 Velocity=57 +[2025-12-10 10:57:52] NOTE_OFF: Hex=43 Note=G3 +[2025-12-10 10:57:52] NOTE_ON: Hex=44 Note=G#3 Velocity=53 +[2025-12-10 10:57:52] NOTE_OFF: Hex=44 Note=G#3 +[2025-12-10 10:57:53] NOTE_ON: Hex=45 Note=A3 Velocity=58 +[2025-12-10 10:57:53] NOTE_OFF: Hex=45 Note=A3 +[2025-12-10 10:57:53] NOTE_ON: Hex=46 Note=A#3 Velocity=51 +[2025-12-10 10:57:54] NOTE_OFF: Hex=46 Note=A#3 +[2025-12-10 10:57:54] NOTE_ON: Hex=47 Note=B3 Velocity=63 +[2025-12-10 10:57:54] NOTE_OFF: Hex=47 Note=B3 +[2025-12-10 10:57:55] NOTE_ON: Hex=48 Note=C4 Velocity=69 +[2025-12-10 10:57:55] NOTE_OFF: Hex=48 Note=C4 +[2025-12-10 10:57:55] NOTE_ON: Hex=49 Note=C#4 Velocity=57 +[2025-12-10 10:57:55] NOTE_OFF: Hex=49 Note=C#4 +[2025-12-10 10:57:56] NOTE_ON: Hex=4A Note=D4 Velocity=59 +[2025-12-10 10:57:56] NOTE_OFF: Hex=4A Note=D4 +[2025-12-10 10:57:56] NOTE_ON: Hex=4B Note=D#4 Velocity=57 +[2025-12-10 10:57:57] NOTE_OFF: Hex=4B Note=D#4 +[2025-12-10 10:57:57] NOTE_ON: Hex=4C Note=E4 Velocity=70 +[2025-12-10 10:57:57] NOTE_OFF: Hex=4C Note=E4 +[2025-12-10 10:57:58] NOTE_ON: Hex=4D Note=F4 Velocity=83 +[2025-12-10 10:57:58] NOTE_OFF: Hex=4D Note=F4 +[2025-12-10 10:57:58] NOTE_ON: Hex=4E Note=F#4 Velocity=83 +[2025-12-10 10:57:58] NOTE_OFF: Hex=4E Note=F#4 +[2025-12-10 10:57:59] NOTE_ON: Hex=4F Note=G4 Velocity=64 +[2025-12-10 10:57:59] NOTE_OFF: Hex=4F Note=G4 +[2025-12-10 10:57:59] NOTE_ON: Hex=50 Note=G#4 Velocity=66 +[2025-12-10 10:57:59] NOTE_OFF: Hex=50 Note=G#4 +[2025-12-10 10:58:00] NOTE_ON: Hex=51 Note=A4 Velocity=72 +[2025-12-10 10:58:00] NOTE_OFF: Hex=51 Note=A4 +[2025-12-10 10:58:01] NOTE_ON: Hex=52 Note=A#4 Velocity=63 +[2025-12-10 10:58:01] NOTE_OFF: Hex=52 Note=A#4 +[2025-12-10 10:58:01] NOTE_ON: Hex=53 Note=B4 Velocity=73 +[2025-12-10 10:58:01] NOTE_OFF: Hex=53 Note=B4 +[2025-12-10 10:58:02] NOTE_ON: Hex=54 Note=C5 Velocity=78 +[2025-12-10 10:58:02] NOTE_OFF: Hex=54 Note=C5 +[2025-12-10 10:58:02] NOTE_ON: Hex=55 Note=C#5 Velocity=67 +[2025-12-10 10:58:02] NOTE_OFF: Hex=55 Note=C#5 +[2025-12-10 10:58:03] NOTE_ON: Hex=56 Note=D5 Velocity=72 +[2025-12-10 10:58:03] NOTE_OFF: Hex=56 Note=D5 +[2025-12-10 10:58:03] NOTE_ON: Hex=57 Note=D#5 Velocity=60 +[2025-12-10 10:58:03] NOTE_OFF: Hex=57 Note=D#5 +[2025-12-10 10:58:04] NOTE_ON: Hex=58 Note=E5 Velocity=83 +[2025-12-10 10:58:04] NOTE_OFF: Hex=58 Note=E5 +[2025-12-10 10:58:04] NOTE_ON: Hex=59 Note=F5 Velocity=78 +[2025-12-10 10:58:04] NOTE_OFF: Hex=59 Note=F5 +[2025-12-10 10:58:05] NOTE_ON: Hex=5A Note=F#5 Velocity=66 +[2025-12-10 10:58:05] NOTE_OFF: Hex=5A Note=F#5 +[2025-12-10 10:58:05] NOTE_ON: Hex=5B Note=G5 Velocity=60 +[2025-12-10 10:58:05] NOTE_OFF: Hex=5B Note=G5 +[2025-12-10 10:58:06] NOTE_ON: Hex=5C Note=G#5 Velocity=53 +[2025-12-10 10:58:06] NOTE_OFF: Hex=5C Note=G#5 +[2025-12-10 10:58:06] NOTE_ON: Hex=5D Note=A5 Velocity=64 +[2025-12-10 10:58:06] NOTE_OFF: Hex=5D Note=A5 +[2025-12-10 10:58:07] NOTE_ON: Hex=5E Note=A#5 Velocity=64 +[2025-12-10 10:58:07] NOTE_OFF: Hex=5E Note=A#5 +[2025-12-10 10:58:07] NOTE_ON: Hex=5F Note=B5 Velocity=77 +[2025-12-10 10:58:07] NOTE_OFF: Hex=5F Note=B5 +[2025-12-10 10:58:07] NOTE_ON: Hex=60 Note=C6 Velocity=99 +[2025-12-10 10:58:07] NOTE_OFF: Hex=60 Note=C6 +[2025-12-10 10:58:10] STATUS: Логгирование остановлено diff --git a/Yamitracker-reoload/NEWYamitracker/Yamitracker/.gitignore b/Yamitracker-reoload/NEWYamitracker/Yamitracker/.gitignore new file mode 100644 index 0000000..aa3808c --- /dev/null +++ b/Yamitracker-reoload/NEWYamitracker/Yamitracker/.gitignore @@ -0,0 +1,82 @@ +# This file is used to ignore files which are generated +# ---------------------------------------------------------------------------- + +*~ +*.autosave +*.a +*.core +*.moc +*.o +*.obj +*.orig +*.rej +*.so +*.so.* +*_pch.h.cpp +*_resource.rc +*.qm +.#* +*.*# +core +!core/ +tags +.DS_Store +.directory +*.debug +Makefile* +*.prl +*.app +moc_*.cpp +ui_*.h +qrc_*.cpp +Thumbs.db +*.res +*.rc +/.qmake.cache +/.qmake.stash + +# qtcreator generated files +*.pro.user* +*.qbs.user* +CMakeLists.txt.user* + +# xemacs temporary files +*.flc + +# Vim temporary files +.*.swp + +# Visual Studio generated files +*.ib_pdb_index +*.idb +*.ilk +*.pdb +*.sln +*.suo +*.vcproj +*vcproj.*.*.user +*.ncb +*.sdf +*.opensdf +*.vcxproj +*vcxproj.* + +# MinGW generated files +*.Debug +*.Release + +# Python byte code +*.pyc + +# Binaries +# -------- +*.dll +*.exe + +# Directories with generated files +.moc/ +.obj/ +.pch/ +.rcc/ +.uic/ +/build*/ diff --git a/Yamitracker-reoload/NEWYamitracker/Yamitracker/Yamitracker.pro b/Yamitracker-reoload/NEWYamitracker/Yamitracker/Yamitracker.pro new file mode 100644 index 0000000..61f02db --- /dev/null +++ b/Yamitracker-reoload/NEWYamitracker/Yamitracker/Yamitracker.pro @@ -0,0 +1,42 @@ +QT += core gui multimedia serialport + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +# Добавляем пути для include +INCLUDEPATH += /usr/include/rtmidi +INCLUDEPATH += src +INCLUDEPATH += converter +INCLUDEPATH += format/midi +INCLUDEPATH += detected +INCLUDEPATH += style/qcss +INCLUDEPATH += style/qt +INCLUDEPATH += src/groupButton +INCLUDEPATH += ui + +LIBS += -lrtmidi -lasound + +CONFIG += c++17 + +SOURCES += \ + detected/detecteddevaice.cpp \ + main.cpp \ + src/groupButton/buttonGroupY.cpp \ + src/yamitracker.cpp \ + style/qt/styleButton.cpp + +HEADERS += \ + detected/detecteddevaice.h \ + format/midi/Midi.h \ + format/midi/midiEventList.h \ + src/groupButton/buttonGroupY.h \ + src/yamitracker.h \ + style/qcss/styleListButton.h \ + style/qt/styleButton.h + +FORMS += \ + ui/yamitracker.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target diff --git a/Yamitracker-reoload/NEWYamitracker/Yamitracker/detected/detecteddevaice.cpp b/Yamitracker-reoload/NEWYamitracker/Yamitracker/detected/detecteddevaice.cpp new file mode 100644 index 0000000..370cced --- /dev/null +++ b/Yamitracker-reoload/NEWYamitracker/Yamitracker/detected/detecteddevaice.cpp @@ -0,0 +1,304 @@ +// #include "detecteddevaice.h" +// #include +// #include +// #include +// #include +// #include +// #include + +// DetectedDevaice::DetectedDevaice(QObject *parent) +// : QObject(parent) +// , m_detectionTimer(new QTimer(this)) +// , m_midiProcess(new QProcess(this)) +// , m_readTimer(new QTimer(this)) +// , m_isConnected(false) +// { +// // Настройка таймера обнаружения +// m_detectionTimer->setSingleShot(false); +// connect(m_detectionTimer, &QTimer::timeout, this, &DetectedDevaice::checkDevices); + +// // Настройка процесса для чтения MIDI данных +// m_midiProcess->setProcessChannelMode(QProcess::MergedChannels); +// connect(m_midiProcess, &QProcess::readyReadStandardOutput, this, &DetectedDevaice::onMidiDataReady); +// connect(m_midiProcess, QOverload::of(&QProcess::finished), +// this, &DetectedDevaice::onProcessFinished); + +// // Таймер для периодического чтения данных +// m_readTimer->setInterval(100); +// m_readTimer->setSingleShot(false); +// connect(m_readTimer, &QTimer::timeout, this, &DetectedDevaice::onMidiDataReady); + +// // Первоначальная проверка устройств +// QTimer::singleShot(1000, this, &DetectedDevaice::checkDevices); +// } + +// DetectedDevaice::~DetectedDevaice() +// { +// stopDetection(); +// disconnectDevice(); +// } + +// void DetectedDevaice::startDetection(int intervalMs) +// { +// m_detectionTimer->start(intervalMs); +// } + +// void DetectedDevaice::stopDetection() +// { +// m_detectionTimer->stop(); +// } + +// void DetectedDevaice::forceReconnect() +// { +// disconnectDevice(); +// checkDevices(); +// } + +// void DetectedDevaice::checkDevices() +// { +// // Если уже подключены, проверяем доступность текущего порта +// if (m_isConnected) { +// QSerialPortInfo info(m_currentPort); +// if (!info.isValid()) { +// qDebug() << "Device disconnected:" << m_currentPort; +// disconnectDevice(); +// } +// return; +// } + +// // Ищем новые MIDI устройства +// detectMIDIDevices(); +// } + +// void DetectedDevaice::detectMIDIDevices() +// { +// qDebug() << "Scanning for MIDI devices..."; + +// // Метод 1: Проверка через ALSA (наиболее надежно для Linux) +// QDir seqDir("/dev/snd/"); +// QStringList midiDevices; + +// // Поиск MIDI устройств в /dev/snd/ +// if (seqDir.exists()) { +// QStringList filters; +// filters << "midi*" << "seq"; +// QFileInfoList devices = seqDir.entryInfoList(filters, QDir::System | QDir::Files); + +// foreach (const QFileInfo &device, devices) { +// QString devPath = device.absoluteFilePath(); +// qDebug() << "Found potential MIDI device:" << devPath; + +// if (testMIDIDevice(devPath)) { +// midiDevices.append(devPath); +// } +// } +// } + +// // Метод 2: Проверка через aconnect (ALSA) +// QProcess aconnectProcess; +// aconnectProcess.start("aconnect", QStringList() << "-i" << "-l"); +// if (aconnectProcess.waitForFinished(2000)) { +// QString output = QString::fromLocal8Bit(aconnectProcess.readAllStandardOutput()); +// QRegularExpression regex("client\\s+(\\d+):\\s+'([^']+)'"); +// QRegularExpressionMatchIterator matches = regex.globalMatch(output); + +// while (matches.hasNext()) { +// QRegularExpressionMatch match = matches.next(); +// QString clientId = match.captured(1); +// QString clientName = match.captured(2); + +// qDebug() << "ALSA MIDI client found:" << clientId << clientName; + +// // Проверяем, есть ли у клиента выходные порты +// if (output.contains(QString("client %1").arg(clientId)) && +// output.contains("Output")) { + +// // Формируем виртуальное устройство ALSA +// QString alsaDevice = QString("virtual:%1").arg(clientId); +// if (testMIDIDevice(alsaDevice)) { +// midiDevices.append(alsaDevice); +// m_deviceName = clientName; +// } +// } +// } +// } + +// // Метод 3: Проверка через /proc/asound/ (альтернативный метод) +// QFile cardsFile("/proc/asound/cards"); +// if (cardsFile.open(QIODevice::ReadOnly | QIODevice::Text)) { +// QTextStream in(&cardsFile); +// QString cardsData = in.readAll(); +// cardsFile.close(); + +// QRegularExpression regex("\\[(.*?)\\]"); +// QRegularExpressionMatchIterator matches = regex.globalMatch(cardsData); + +// while (matches.hasNext()) { +// QRegularExpressionMatch match = matches.next(); +// QString cardName = match.captured(1).trimmed(); +// if (!cardName.isEmpty()) { +// qDebug() << "Sound card found:" << cardName; +// } +// } +// } + +// // Подключаемся к первому найденному устройству +// if (!midiDevices.isEmpty()) { +// connectToDevice(midiDevices.first()); +// } else { +// qDebug() << "No MIDI devices found"; +// } +// } + +// bool DetectedDevaice::testMIDIDevice(const QString &device) +// { +// // Для ALSA виртуальных устройств +// if (device.startsWith("virtual:")) { +// // Проверяем доступность через aconnect +// QProcess checkProcess; +// checkProcess.start("aconnect", QStringList() << "-i" << "-l"); +// if (checkProcess.waitForFinished(2000)) { +// QString output = checkProcess.readAllStandardOutput(); +// QString clientId = device.mid(8); // Убираем "virtual:" + +// return output.contains(QString("client %1").arg(clientId)); +// } +// return false; +// } + +// // Для физических устройств +// QFile deviceFile(device); +// if (deviceFile.exists() && deviceFile.permission(QFile::ReadUser | QFile::WriteUser)) { +// // Пробуем открыть устройство для теста +// if (deviceFile.open(QIODevice::ReadWrite | QIODevice::Unbuffered)) { +// deviceFile.close(); +// return true; +// } +// } + +// return false; +// } + +// void DetectedDevaice::connectToDevice(const QString &device) +// { +// if (m_isConnected && m_currentPort == device) { +// return; // Уже подключены к этому устройству +// } + +// disconnectDevice(); + +// qDebug() << "Connecting to MIDI device:" << device; + +// m_currentPort = device; +// m_deviceName = getDeviceFriendlyName(device); + +// // Для физических устройств используем cat для чтения +// if (!device.startsWith("virtual:")) { +// m_midiProcess->start("cat", QStringList() << device); +// } else { +// // Для ALSA виртуальных устройств используем arecordmidi +// QString clientId = device.mid(8); +// m_midiProcess->start("arecordmidi", QStringList() << "-p" << clientId << "/dev/null"); +// } + +// if (m_midiProcess->waitForStarted(2000)) { +// m_isConnected = true; +// m_readTimer->start(); +// emit deviceConnected(m_currentPort, m_deviceName); +// qDebug() << "Successfully connected to:" << m_deviceName << "on" << m_currentPort; +// } else { +// QString error = QString("Failed to connect to device: %1").arg(m_midiProcess->errorString()); +// qDebug() << error; +// emit deviceError(error); +// disconnectDevice(); +// } +// } + +// void DetectedDevaice::disconnectDevice() +// { +// if (m_midiProcess->state() != QProcess::NotRunning) { +// m_midiProcess->terminate(); +// m_midiProcess->waitForFinished(1000); +// if (m_midiProcess->state() != QProcess::NotRunning) { +// m_midiProcess->kill(); +// } +// } + +// m_readTimer->stop(); +// m_isConnected = false; +// m_currentPort.clear(); +// m_deviceName.clear(); + +// emit deviceDisconnected(); +// qDebug() << "Device disconnected"; +// } + +// QString DetectedDevaice::getDeviceFriendlyName(const QString &device) +// { +// // Для физических устройств пытаемся получить понятное имя +// if (device.startsWith("/dev/snd/")) { +// // Пробуем найти相关信息 в /proc/asound/ +// QFile infoFile("/proc/asound/cards"); +// if (infoFile.open(QIODevice::ReadOnly | QIODevice::Text)) { +// QTextStream in(&infoFile); +// QString line; +// while (in.readLineInto(&line)) { +// if (line.contains(device.section('/', -1))) { +// QRegularExpression regex("\\[(.*?)\\]"); +// QRegularExpressionMatch match = regex.match(line); +// if (match.hasMatch()) { +// QString name = match.captured(1); +// infoFile.close(); +// return name; +// } +// } +// } +// infoFile.close(); +// } +// } +// // Для ALSA виртуальных устройств +// else if (device.startsWith("virtual:")) { +// QProcess nameProcess; +// nameProcess.start("aconnect", QStringList() << "-i" << "-l"); +// if (nameProcess.waitForFinished(2000)) { +// QString output = nameProcess.readAllStandardOutput(); +// QString clientId = device.mid(8); +// QRegularExpression regex(QString("client\\s+%1:\\s+'([^']+)'").arg(clientId)); +// QRegularExpressionMatch match = regex.match(output); +// if (match.hasMatch()) { +// return match.captured(1); +// } +// } +// } + +// // Проверяем известных производителей +// foreach (const QString &vendor, m_knownVendors) { +// if (device.contains(vendor, Qt::CaseInsensitive)) { +// return vendor + " Synthesizer"; +// } +// } + +// // Возвращаем базовое имя файла, если ничего не найдено +// return device.section('/', -1); +// } + +// void DetectedDevaice::onMidiDataReady() +// { +// if (!m_isConnected || m_midiProcess->state() != QProcess::Running) { +// return; +// } + +// QByteArray data = m_midiProcess->readAllStandardOutput(); +// if (!data.isEmpty()) { +// qDebug() << "MIDI data received:" << data.toHex(); +// emit midiEvent(data); +// } +// } + +// void DetectedDevaice::onProcessFinished() +// { +// if (m_isConnected) { +// qDebug() << "MIDI process finished unexpectedly"; +// disconnectDevice(); +// } +// } diff --git a/Yamitracker-reoload/NEWYamitracker/Yamitracker/detected/detecteddevaice.h b/Yamitracker-reoload/NEWYamitracker/Yamitracker/detected/detecteddevaice.h new file mode 100644 index 0000000..8bb2445 --- /dev/null +++ b/Yamitracker-reoload/NEWYamitracker/Yamitracker/detected/detecteddevaice.h @@ -0,0 +1,59 @@ +// #ifndef DETECTEDDEVAICE_H +// #define DETECTEDDEVAICE_H + +// #include +// #include +// #include +// #include +// #include + +// class DetectedDevaice : QObject{ +// Q_OBJECT + +// public: +// explicit DetectedDevaice(QObject *parent = nullptr); +// ~DetectedDevaice(); + +// // Статус подключения +// bool isConnected() const { return m_isConnected; } +// QString getCurrentPort() const { return m_currentPort; } +// QString getDeviceName() const { return m_deviceName; } + +// // Управление +// void startDetection(int intervalMs = 5000); +// void stopDetection(); +// void forceReconnect(); + +// signals: +// void deviceConnected(const QString &port, const QString &deviceName); +// void deviceDisconnected(); +// void deviceError(const QString &error); +// void midiEvent(const QByteArray &data); + +// public slots: +// void checkDevices(); + +// private slots: +// void onMidiDataReady(); +// void onProcessFinished(); + +// private: +// void detectMIDIDevices(); +// bool testMIDIDevice(const QString &device); +// void connectToDevice(const QString &device); +// void disconnectDevice(); +// QString getDeviceFriendlyName(const QString &device); + +// QTimer *m_detectionTimer; +// QProcess *m_midiProcess; +// QTimer *m_readTimer; + +// bool m_isConnected; +// QString m_currentPort; +// QString m_deviceName; + +// // Известные производители MIDI устройств +// const QStringList m_knownVendors = {"Yamaha", "Roland", "Korg", "Casio", "MIDI"}; +// }; + +// #endif // DETECTEDDEVAICE_H diff --git a/Yamitracker-reoload/NEWYamitracker/Yamitracker/format/midi/Midi.h b/Yamitracker-reoload/NEWYamitracker/Yamitracker/format/midi/Midi.h new file mode 100644 index 0000000..a80f6de --- /dev/null +++ b/Yamitracker-reoload/NEWYamitracker/Yamitracker/format/midi/Midi.h @@ -0,0 +1,4 @@ +#ifndef MIDI_H +#define MIDI_H + +#endif // MIDI_H diff --git a/Yamitracker-reoload/NEWYamitracker/Yamitracker/format/midi/midiEventList.h b/Yamitracker-reoload/NEWYamitracker/Yamitracker/format/midi/midiEventList.h new file mode 100644 index 0000000..3c8ccf5 --- /dev/null +++ b/Yamitracker-reoload/NEWYamitracker/Yamitracker/format/midi/midiEventList.h @@ -0,0 +1,107 @@ +#ifndef MIDIEVENTLIST_H +#define MIDIEVENTLIST_H +#include +#include + + +QMap noteNames = { + {0, "C-1"}, {1, "C#-1"}, {2, "D-1"}, {3, "D#-1"}, {4, "E-1"}, {5, "F-1"}, + {6, "F#-1"}, {7, "G-1"}, {8, "G#-1"}, {9, "A-1"}, {10, "A#-1"}, {11, "B-1"}, + {12, "C0"}, {13, "C#0"}, {14, "D0"}, {15, "D#0"}, {16, "E0"}, {17, "F0"}, + {18, "F#0"}, {19, "G0"}, {20, "G#0"}, {21, "A0"}, {22, "A#0"}, {23, "B0"}, + {24, "C1"}, {25, "C#1"}, {26, "D1"}, {27, "D#1"}, {28, "E1"}, {29, "F1"}, + {30, "F#1"}, {31, "G1"}, {32, "G#1"}, {33, "A1"}, {34, "A#1"}, {35, "B1"}, + {36, "C2"}, {37, "C#2"}, {38, "D2"}, {39, "D#2"}, {40, "E2"}, {41, "F2"}, + {42, "F#2"}, {43, "G2"}, {44, "G#2"}, {45, "A2"}, {46, "A#2"}, {47, "B2"}, + {48, "C3"}, {49, "C#3"}, {50, "D3"}, {51, "D#3"}, {52, "E3"}, {53, "F3"}, + {54, "F#3"}, {55, "G3"}, {56, "G#3"}, {57, "A3"}, {58, "A#3"}, {59, "B3"}, + {60, "C4"}, {61, "C#4"}, {62, "D4"}, {63, "D#4"}, {64, "E4"}, {65, "F4"}, + {66, "F#4"}, {67, "G4"}, {68, "G#4"}, {69, "A4"}, {70, "A#4"}, {71, "B4"}, + {72, "C5"}, {73, "C#5"}, {74, "D5"}, {75, "D#5"}, {76, "E5"}, {77, "F5"}, + {78, "F#5"}, {79, "G5"}, {80, "G#5"}, {81, "A5"}, {82, "A#5"}, {83, "B5"}, + {84, "C6"} +}; + + +// MIDI Message Types +enum class MidiStatus : unsigned char { + // Канальные сообщения (Channel Voice Messages) + NoteOff = 0x80, // 1000nnnn 0kkkkkkk 0vvvvvvv - отпускание клавиши + NoteOn = 0x90, // 1001nnnn 0kkkkkkk 0vvvvvvv - нажатие клавиши + PolyAftertouch = 0xA0, // 1010nnnn 0kkkkkkk 0vvvvvvv - полифоническое послекасание + ControlChange = 0xB0, // 1011nnnn 0ccccccc 0vvvvvvv - изменение контроллера + ProgramChange = 0xC0, // 1100nnnn 0ppppppp - смена программы/инструмента + ChannelAftertouch = 0xD0, // 1101nnnn 0vvvvvvv - канальное послекасание + PitchBend = 0xE0, // 1110nnnn 0lllllll 0mmmmmmm - колесо высоты тона + + // Системные сообщения (System Messages) + SysEx = 0xF0, // 11110000 - начало System Exclusive + TimeCodeQuarter = 0xF1, // 11110001 - MIDI Time Code Quarter Frame + SongPosition = 0xF2, // 11110010 - Song Position Pointer + SongSelect = 0xF3, // 11110011 - Song Select + TuneRequest = 0xF6, // 11110110 - Tune Request + SysExEnd = 0xF7, // 11110111 - конец System Exclusive + + // Системные реального времени (System Real-Time) + TimingClock = 0xF8, // 11111000 - Timing Clock + Start = 0xFA, // 11111010 - Start + Continue = 0xFB, // 11111011 - Continue + Stop = 0xFC, // 11111100 - Stop + ActiveSensing = 0xFE, // 11111110 - Active Sensing + SystemReset = 0xFF, // 11111111 - System Reset +}; + +// Стандартные MIDI контроллеры +enum class MidiController : unsigned char { + // Педали + SustainPedal = 0x40, // 64 - педаль сустейна (как в вашем коде) + PortamentoPedal = 0x41, // 65 - педаль портаменто + SostenutoPedal = 0x42, // 66 - педаль сотенуто + SoftPedal = 0x43, // 67 - мягкая педаль + Hold2 = 0x45, // 69 - Hold 2 + + // Управление звуком + Volume = 0x07, // 7 - громкость канала + Pan = 0x0A, // 10 - панорама + Expression = 0x0B, // 11 - экспрессия + ReverbSend = 0x5B, // 91 - посыл на ревербератор + ChorusSend = 0x5D, // 93 - посыл на хорус + + // Wheel/Levers + ModulationWheel = 0x01, // 1 - колесо модуляции + BreathControl = 0x02, // 2 - дыхание + FootControl = 0x04, // 4 - ножной контроллер + PortamentoTime = 0x05, // 5 - время портаменто + + // RPN/NRPN + RPN_MSB = 0x65, // 101 - Registered Parameter Number MSB + RPN_LSB = 0x64, // 100 - Registered Parameter Number LSB + NRPN_MSB = 0x63, // 99 - Non-Registered Parameter Number MSB + NRPN_LSB = 0x62, // 98 - Non-Registered Parameter Number LSB + DataEntry_MSB = 0x06, // 6 - Data Entry MSB + DataEntry_LSB = 0x26, // 38 - Data Entry LSB + + // Yamaha PSR-E333 специфичные + FilterCutoff = 0x4A, // 74 - Cutoff (яркость) на Yamaha + FilterResonance = 0x47, // 71 - Resonance (гармоники) на Yamaha + Attack = 0x49, // 73 - Attack (атака) + Release = 0x48, // 72 - Release (затухание) +}; + +// Номера нот октавы (для справки) +enum class MidiNoteOctave : int { + C = 0, + CSharp = 1, + D = 2, + DSharp = 3, + E = 4, + F = 5, + FSharp = 6, + G = 7, + GSharp = 8, + A = 9, + ASharp = 10, + B = 11 +}; + +#endif // MIDIEVENTLIST_H diff --git a/Yamitracker-reoload/NEWYamitracker/Yamitracker/main.cpp b/Yamitracker-reoload/NEWYamitracker/Yamitracker/main.cpp new file mode 100644 index 0000000..a2c8a50 --- /dev/null +++ b/Yamitracker-reoload/NEWYamitracker/Yamitracker/main.cpp @@ -0,0 +1,11 @@ +#include "yamitracker.h" + +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + yamitracker w; + w.show(); + return a.exec(); +} diff --git a/Yamitracker-reoload/NEWYamitracker/Yamitracker/src/groupButton/buttonGroupY.cpp b/Yamitracker-reoload/NEWYamitracker/Yamitracker/src/groupButton/buttonGroupY.cpp new file mode 100644 index 0000000..b60cc5d --- /dev/null +++ b/Yamitracker-reoload/NEWYamitracker/Yamitracker/src/groupButton/buttonGroupY.cpp @@ -0,0 +1,85 @@ +#include "buttonGroupY.h" +#include "ui_yamitracker.h" + +QButtonGroup* createTrackGroup(Ui::yamitracker *ui, QObject *parent) { + QButtonGroup *trackGroup = new QButtonGroup(parent); + trackGroup->addButton(ui->track_button_1, 1); + trackGroup->addButton(ui->track_button_2, 2); + trackGroup->addButton(ui->track_button_3, 3); + trackGroup->addButton(ui->track_button_4, 4); + trackGroup->addButton(ui->track_button_5, 5); + trackGroup->addButton(ui->track_button_6, 6); + trackGroup->addButton(ui->track_button_7, 7); + trackGroup->setExclusive(true); + return trackGroup; +} + + +QButtonGroup* createDeleteTrackGroup(Ui::yamitracker *ui, QObject *parent){ + QButtonGroup *deleteTrackGroup = new QButtonGroup(parent); + deleteTrackGroup->addButton(ui->delete_track_button_1, 1); + deleteTrackGroup->addButton(ui->delete_track_button_2, 2); + deleteTrackGroup->addButton(ui->delete_track_button_3, 3); + deleteTrackGroup->addButton(ui->delete_track_button_4, 4); + deleteTrackGroup->addButton(ui->delete_track_button_5, 5); + deleteTrackGroup->addButton(ui->delete_track_button_6, 6); + deleteTrackGroup->addButton(ui->delete_track_button_7, 7); + return deleteTrackGroup; +} + + +QButtonGroup* createSelectTrackGroup(Ui::yamitracker *ui, QObject *parent){ + QButtonGroup *selectTrackGroup = new QButtonGroup(parent); + selectTrackGroup->addButton(ui->select_button_1, 1); + selectTrackGroup->addButton(ui->select_button_2, 2); + selectTrackGroup->addButton(ui->select_button_3, 3); + selectTrackGroup->addButton(ui->select_button_4, 4); + selectTrackGroup->addButton(ui->select_button_5, 5); + selectTrackGroup->addButton(ui->select_button_6, 6); + selectTrackGroup->addButton(ui->select_button_7, 7); + selectTrackGroup->setExclusive(false); + return selectTrackGroup; +} +//key_[A-G][1-5] 36 +QButtonGroup* createWhiteNoteGroup(Ui::yamitracker *ui, QObject *parent){ + QButtonGroup *whiteNoteGroup = new QButtonGroup(parent); + + for (int i = 1; i < 6; i++){ + for (int j = 0; j < 7; j++){ + QString nameButton = QString("key_%1%2").arg(QChar('A' + j)).arg(i); + QPushButton *button = ui->centralwidget->findChild(nameButton); + if (button){ + whiteNoteGroup->addButton(button); + } + } + + } + whiteNoteGroup->addButton(ui->key_C6); + return whiteNoteGroup; +} + +QButtonGroup* createBlackNoteGroup(Ui::yamitracker *ui, QObject *parent){ + QButtonGroup *blackNoteGroup = new QButtonGroup(parent); + + for (int i = 1; i < 6; i++){ + for (int j = 0; j < 7; j++){ + QString nameButton = QString("key_%1s%2").arg(QChar('A' + j)).arg(i); + QPushButton *button = ui->centralwidget->findChild(nameButton); + if (button){ + blackNoteGroup->addButton(button); + } + } + } + return blackNoteGroup; +} + + + + +QButtonGroup* createPlayStopGroup(Ui::yamitracker *ui, QObject *parent){ + QButtonGroup *playStopGroup = new QButtonGroup(parent); + playStopGroup->addButton(ui->STOP_button, 1); + playStopGroup->addButton(ui->START_button, 2); + playStopGroup->setExclusive(false); + return playStopGroup; +} diff --git a/Yamitracker-reoload/NEWYamitracker/Yamitracker/src/groupButton/buttonGroupY.h b/Yamitracker-reoload/NEWYamitracker/Yamitracker/src/groupButton/buttonGroupY.h new file mode 100644 index 0000000..b734389 --- /dev/null +++ b/Yamitracker-reoload/NEWYamitracker/Yamitracker/src/groupButton/buttonGroupY.h @@ -0,0 +1,16 @@ +#ifndef BUTTONGROUPY_H +#define BUTTONGROUPY_H + +#include +#include +#include "ui_yamitracker.h" + +QButtonGroup* createTrackGroup(Ui::yamitracker *ui, QObject *parent); +QButtonGroup* createDeleteTrackGroup(Ui::yamitracker *ui, QObject *parent); +QButtonGroup* createSelectTrackGroup(Ui::yamitracker *ui, QObject *parent); +// QButtonGroup* createWhiteNoteGroup(Ui::yamitracker *ui, QObject *parent); +QButtonGroup* createPlayStopGroup(Ui::yamitracker *ui, QObject *parent); +QButtonGroup* createWhiteNoteGroup(Ui::yamitracker *ui, QObject *parent); +QButtonGroup* createBlackNoteGroup(Ui::yamitracker *ui, QObject *parent); + +#endif // BUTTONGROUPY_H diff --git a/Yamitracker-reoload/NEWYamitracker/Yamitracker/src/yamitracker.cpp b/Yamitracker-reoload/NEWYamitracker/Yamitracker/src/yamitracker.cpp new file mode 100644 index 0000000..6efd5cd --- /dev/null +++ b/Yamitracker-reoload/NEWYamitracker/Yamitracker/src/yamitracker.cpp @@ -0,0 +1,145 @@ +#include "yamitracker.h" +#include "ui_yamitracker.h" +#include "styleButton.h" +#include "buttonGroupY.h" +#include "styleListButton.h" + +yamitracker::yamitracker(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::yamitracker) +{ + ui->setupUi(this); +//Группы кнопок + trackGroup = createTrackGroup(ui, this); + deleteTrackGroup = createDeleteTrackGroup(ui, this); + selectTrackGroup = createSelectTrackGroup(ui, this); + playStopGroup = createPlayStopGroup(ui, this); + whiteNoteGroup = createWhiteNoteGroup(ui, this); + blackNoteGroup = createBlackNoteGroup(ui, this); + +//Стили + setTarckButtonStyles(); + setSelectTrackButtonStules(); + setDeleteTarckButtonStyles(); + ui->START_button->setStyleSheet(checkPlayStop); + ui->STOP_button->setStyleSheet(checkPlayStop); + styleButton::setStyleFromQString(getButtonsFromGroup(blackNoteGroup), clickBlack); + + +//Дебаг подключение + connect(trackGroup, QOverload::of(&QButtonGroup::buttonClicked), + this, &yamitracker::onTrackSelected); + connect(deleteTrackGroup, QOverload::of(&QButtonGroup::buttonClicked), + this, &yamitracker::onDeleteTrackSelected); + connect(whiteNoteGroup, QOverload::of(&QButtonGroup::buttonClicked), + this, &yamitracker::clickNoteButtonDebag); + connect(blackNoteGroup, QOverload::of(&QButtonGroup::buttonClicked), + this, &yamitracker::clickNoteButtonDebag); + + +//Старт стоп клик + connect(playStopGroup, QOverload::of(&QButtonGroup::buttonClicked), + this, &yamitracker::playStopClicked); + +} + + +QList yamitracker::getButtonsFromGroup(QButtonGroup* group) { + QList result; + for (auto* btn : group->buttons()) { + if (auto* pushBtn = qobject_cast(btn)) { + result << pushBtn; + } + } + return result; +} + +bool yamitracker::isRecording(){ + return ui->START_button->isChecked(); +} +bool yamitracker::isPause(){ + return ui->START_button->isChecked(); +} + +void yamitracker::playStopClicked(QAbstractButton *button){ + if(button == ui->START_button){ + if(isRecording()){ + qDebug() << "Play Strat"; + button->setText("■ Стоп"); + } + else{ + qDebug() << "End recording"; + button->setText("▶ Старт"); + ui->STOP_button->setChecked(false); + ui->STOP_button->setText("⏸ Пауза"); + } + } + + else{ //ui->STOP_button + if(isRecording()){ + if(button->isChecked()){ + qDebug() << "Pause recording"; + button->setText("▶ Продолжить"); + } + else{ + qDebug() << "Continuation recording"; + button->setText("⏸ Пауза"); + } + } + else{ + button->setChecked(false); + } + } + +} + +void yamitracker::clickNoteButtonDebag(QAbstractButton* button){ + qDebug() << "Нажата клавиша: " << button->text(); +} + +void yamitracker::onDeleteTrackSelected(QAbstractButton *button){ + qDebug() << "Выбрана дорожка: " << button->text() << " " << getDeleteTrackGroup(button); +} + +void yamitracker::onTrackSelected(QAbstractButton *button) +{ + qDebug() << "Выбрана дорожка: " << button->text(); +} + +void yamitracker::setDeleteTarckButtonStyles(){ + styleButton::buttonClick(getButtonsFromGroup(deleteTrackGroup)); +} + +void yamitracker::setSelectTrackButtonStules(){ + styleButton::buttonCheck(getButtonsFromGroup(selectTrackGroup)); +} + +void yamitracker::setTarckButtonStyles() +{ + styleButton::buttonCheck(getButtonsFromGroup(trackGroup)); +} + +yamitracker::~yamitracker() +{ + delete ui; +} + +void yamitracker::on_select_all_trackbutton_clicked() +{ + QList buttons = getButtonsFromGroup(selectTrackGroup); + + + bool allChecked = true; + for (QPushButton* btn : buttons){ + if(!btn->isChecked()){ + allChecked = false; + break; + } + } + + for (QPushButton* btn : buttons){ + btn->setChecked(!allChecked); + } + +} + diff --git a/Yamitracker-reoload/NEWYamitracker/Yamitracker/src/yamitracker.h b/Yamitracker-reoload/NEWYamitracker/Yamitracker/src/yamitracker.h new file mode 100644 index 0000000..78c286f --- /dev/null +++ b/Yamitracker-reoload/NEWYamitracker/Yamitracker/src/yamitracker.h @@ -0,0 +1,56 @@ +#ifndef YAMITRACKER_H +#define YAMITRACKER_H + +#include +#include +#include +#include "QPushButton" + + + +QT_BEGIN_NAMESPACE +namespace Ui { +class yamitracker; +} +QT_END_NAMESPACE + +class yamitracker : public QMainWindow +{ + Q_OBJECT + +public: + yamitracker(QWidget *parent = nullptr); + ~yamitracker(); + void onTrackSelected(QAbstractButton *button); + void onDeleteTrackSelected(QAbstractButton *button); + void onSelectTrackSelect(QAbstractButton *button); + void setTarckButtonStyles(); + void setDeleteTarckButtonStyles(); + void setSelectTrackButtonStules(); + void notChekedIfNotStrat(); + + bool isRecording(); + bool isPause(); + + void playStopClicked(QAbstractButton *button); + void clickNoteButtonDebag(QAbstractButton *button); + int getDeleteTrackGroup(QAbstractButton *button){return deleteTrackGroup->id(button);} + int getSelectTrackGroup(QAbstractButton *button){return selectTrackGroup->id(button);} + + QList getButtonsFromGroup(QButtonGroup* group); + + +private slots: + void on_select_all_trackbutton_clicked(); + + +private: + Ui::yamitracker *ui; + QButtonGroup *trackGroup; + QButtonGroup *deleteTrackGroup; + QButtonGroup *selectTrackGroup; + QButtonGroup *playStopGroup; + QButtonGroup *whiteNoteGroup; + QButtonGroup *blackNoteGroup; +}; +#endif // YAMITRACKER_H diff --git a/Yamitracker-reoload/NEWYamitracker/Yamitracker/style/qcss/styleListButton.h b/Yamitracker-reoload/NEWYamitracker/Yamitracker/style/qcss/styleListButton.h new file mode 100644 index 0000000..09e8c00 --- /dev/null +++ b/Yamitracker-reoload/NEWYamitracker/Yamitracker/style/qcss/styleListButton.h @@ -0,0 +1,50 @@ +#ifndef STYLELISTTOP_H +#define STYLELISTTOP_H +#include + +QString const blackB = + "background-color: #262626"; + +QString const clickButton = + "QPushButton:hover {" + " background-color: #D3D3D3;" + " color: #000000" + "}" + "QPushButton:click {" + " background-color: #4CAF50;" + " color: white;" + " border: 2px solid #45a049;" + "}"; + +QString const checkButton = + "QPushButton:hover {" + " background-color: #D3D3D3;" + " color: #000000" + "}" + "QPushButton:checked {" + " background-color: #4CAF50;" + " color: white;" + " border: 2px solid #45a049;" + "}"; + +//Стиль клавишь, нажатия на кнопку синтезатора + +QString const clickBlack = + "QPushButton {" + "background-color: #050505;" + "}" + "QPushButton:pressed {" + " background-color: #1c1c1c;" + " color: white;" + " border: 2px solid red;" + "}"; + +//Нажатие на клавишу старт и её отрисовка +QString const checkPlayStop = + "QPushButton:checked {" + " background-color: red;" + " color: black;" + " border: 2px solid black;" + "}"; + +#endif // STYLELISTTOP_H diff --git a/Yamitracker-reoload/NEWYamitracker/Yamitracker/style/qt/styleButton.cpp b/Yamitracker-reoload/NEWYamitracker/Yamitracker/style/qt/styleButton.cpp new file mode 100644 index 0000000..3edbefe --- /dev/null +++ b/Yamitracker-reoload/NEWYamitracker/Yamitracker/style/qt/styleButton.cpp @@ -0,0 +1,39 @@ +#include "styleButton.h" +#include "styleListButton.h" + +void styleButton::buttonClick(QList button){ + if (button.empty()){ + return; + } + for (QPushButton* btn : button){ + btn->setStyleSheet(clickButton); + } +} + +void styleButton::buttonCheck(QList button){ + if (button.empty()){ + return; + } + for (QPushButton *btn : button){ + btn->setCheckable(true); + btn->setStyleSheet(checkButton); + } +} + +void styleButton::buttonBlack(QList button){ + if (button.empty()){ + return; + } + for (QPushButton* btn : button){ + btn->setStyleSheet(blackB); + } +} + +void styleButton::setStyleFromQString(QList button, QString style){ + if (button.empty()){ + return; + } + for (auto *btn : button){ + btn->setStyleSheet(style); + } +} diff --git a/Yamitracker-reoload/NEWYamitracker/Yamitracker/style/qt/styleButton.h b/Yamitracker-reoload/NEWYamitracker/Yamitracker/style/qt/styleButton.h new file mode 100644 index 0000000..dc4255d --- /dev/null +++ b/Yamitracker-reoload/NEWYamitracker/Yamitracker/style/qt/styleButton.h @@ -0,0 +1,22 @@ +#ifndef STYLEBUTTONTOP_H +#define STYLEBUTTONTOP_H +#include "qpushbutton.h" +#include +#include +namespace styleButton { + //Top(Start, Stop...) + + void buttonClick(QList button); + void buttonCheck(QList button); + void buttonBlack(QList button); + void noteBlack(QList button); + + +//общие стили для любой кнопки, не заисимо от того QPushButton или QCheckBox и люболь стиль, не связанный стандартом каким-либо и (её перегрузки функции для разных кнопок будет сдеано в будущем) + void setStyleFromQString(QList button, QString style); +} + + + + +#endif // STYLEBUTTONTOP_H diff --git a/Yamitracker-reoload/NEWYamitracker/Yamitracker/ui/yamitracker.ui b/Yamitracker-reoload/NEWYamitracker/Yamitracker/ui/yamitracker.ui new file mode 100644 index 0000000..54a2d16 --- /dev/null +++ b/Yamitracker-reoload/NEWYamitracker/Yamitracker/ui/yamitracker.ui @@ -0,0 +1,2372 @@ + + + yamitracker + + + + 0 + 0 + 1462 + 674 + + + + yamitracker + + + background-color: #363636; + + + + + + + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + background-color: "#262626" + + + Track 1 + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + background-color: "#262626" + + + Track 2 + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + background-color: "#262626" + + + Trakc 3 + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + background-color: "#262626" + + + Track 4 + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + background-color: "#262626" + + + Track 5 + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + background-color: "#262626" + + + Track 6 + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + background-color: "#262626" + + + Track 7 + + + + + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 250 + 200 + + + + 0 + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 250 + 200 + + + + 0 + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 250 + 200 + + + + 0 + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 250 + 200 + + + + 0 + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 250 + 200 + + + + 0 + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 250 + 200 + + + + 0 + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 250 + 200 + + + + 0 + + + + + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Select + + + true + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Select + + + true + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Select + + + true + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Select + + + true + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Select + + + true + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Select + + + true + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Select + + + true + + + + + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Delete + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Delete + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Delete + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Delete + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Delete + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Delete + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Delete + + + + + + + + + + + 0 + + + + + + 0 + 0 + + + + + 87 + 10 + + + + Select all track + + + + + + + + 0 + 0 + + + + + 87 + 10 + + + + P + + + + + + + + + + + + + 0 + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + C1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + D1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + E1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + F1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + G1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + A1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + B1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + C2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + D2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + E2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + F2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + G2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + A2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + B2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + C3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + D3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + E3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + F3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + G3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + A3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + B3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + C4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + D4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + E4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + F4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + G4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + A4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + B4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + C5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + D5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + E5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + F5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + A5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + G5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + B5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#DFDFDF"; color: black; + + + C6 + + + + + + + + + 0 + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + C#1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + D#1 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + F#1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + G#1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + A#1 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + C#2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + D#2 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + F#2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + G#2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + A#2 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + C#3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + D#3 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + F#3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + G#3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + A#3 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + C#4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + D#4 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + F#4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + G#4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + A#4 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + C#5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + D#5 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + F#5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + G#5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + background-color: "#050505" + + + A#5 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + Menu + + + + + + + + + + + + + QLayout::SizeConstraint::SetMinimumSize + + + 11 + + + + + + 0 + 0 + + + + + 15 + + + + ▶ старт + + + true + + + + + + + + 0 + 0 + + + + + 15 + + + + ⏸ Пауза + + + true + + + + + + + + 0 + 0 + + + + SAVE + + + + + + + + + + + + 0 + 0 + + + + Start all + + + + + + + + 0 + 0 + + + + Start only selected + + + + + + + + 0 + 0 + + + + PushButton + + + + + + + + + + + + + 0 + 0 + 1462 + 23 + + + + + + + + diff --git a/Yamitracker-reoload/Other/lorom-template-master.zip b/Yamitracker-reoload/Other/lorom-template-master.zip new file mode 100644 index 0000000..6c03b6c Binary files /dev/null and b/Yamitracker-reoload/Other/lorom-template-master.zip differ diff --git a/Yamitracker-reoload/Other/lorom-template-master/.gitignore b/Yamitracker-reoload/Other/lorom-template-master/.gitignore new file mode 100644 index 0000000..715ea42 --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/.gitignore @@ -0,0 +1,22 @@ +*.sw[a-p] +*.o +*.brr +*~ +*.chrgb +*.chrsfc +/obj/snes/*.s +/obj/snes/*.wav +/zip.in +/map.txt +/spcmap.txt +/lorom-template.sfc +/lorom-template.spc +/lorom-template.dbg +/lorom-template-*.zip +__pycache__/ +*.pyc + +# this is Super NES homebrew, not DSiWare +*.DS_Store + + diff --git a/Yamitracker-reoload/Other/lorom-template-master/CHANGES.txt b/Yamitracker-reoload/Other/lorom-template-master/CHANGES.txt new file mode 100644 index 0000000..ff81921 --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/CHANGES.txt @@ -0,0 +1,72 @@ +0.06 (2016-11-17) +* wav2brr: option to produce a looped BRR +* wav2brr: option to skip pre- and de-emphasis filtering +* spc-ca65.inc: instructions that use DEFAULT_ABS work in + .proc blocks +* Added Karplus-Strong synthesizer to tools +* Sets DSP registers based on note number and instrument number, + which could form the basis for a music engine +* Converted all Python tools to Python 3 +* Extra explanation for OBSEL, nmi_handler, pseudo hi-res, + and interlace (requested by nicklausw) +* snes.inc has doc comments for seta/setxy (requested by Pokun) +* Experimental checksum correction tool, not enabled by default +* Now on GitHub + +0.05 (2015-02-13): The "Ho-ly-$#!+" Code Review +* fixed branch bug in collision introduced during translation + from 6502 to "idiomatic" 65816 (reported by thefox) +* added overall map of source code to README.md + (requested by Espozo) +* comment readability improvements +* added doc comments before more functions (requested by Espozo) +* more consistent use of seta/setxy macros + to change processor word size +* split code related to the background and the player + into separate files (requested by Espozo) +* compensated for missing background line 0 +* explained unfamiliar register names +* renamed .h files to .inc so as not to confuse with C headers + (requested by koitsu) +* rewrote init code based on koitsu's InitializeSNES macro +* indented forward branches (requested by Espozo) +* moved ROM segments to $808000 to allow use of fast ROM + (requested by koitsu) +* imported the direct page base address as a symbol + (requested by koitsu) +* broke snes.inc into functional groups +* added register name aliases from Martin Korth's fullsnes.htm + (requested by koitsu) + +0.04a (2015-01-28) +* corrected missing lorom256k.cfg file + +0.04 (2014-11-09): +* expanded to 256 KiB to demonstrate far operation +* moved parts into separate banks to show use of multiple banks +* snesheader: added symbolic names for mappers, regions, and + memory sizes and speeds +* wav2brr.py: added proper command line options including + decompression of BRR back to WAV +* spcimage.s: fixed stya macro (reported by doppel) + +0.03 (2014-10-03): +* wav2brr.py: made NumPy dependency optional +* added other explanatory comments to main.s +* Corrected some errors related to BSS in linker config file +* snes.h: macros for controlling accumulator and index width + (requested by Bisqwit) +* snes.h: macro for nametable X, Y location (requested by Bisqwit) +* New template for SPC files + +0.02 (2014-09-24): +* converted README to Markdown +* added instructions for installing build environment to README + (requested by whicker) +* corrected a few factual errors in README related to differences + between the NES and the Super NES +* added a wav file and wav to BRR converter +* removed Encyclopedia Dramatica "goes where" meme from index.txt + +0.01 (2014-09-21): +* initial release diff --git a/Yamitracker-reoload/Other/lorom-template-master/LICENSE b/Yamitracker-reoload/Other/lorom-template-master/LICENSE new file mode 100644 index 0000000..843382c --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/LICENSE @@ -0,0 +1,22 @@ +The zlib License +================ + +Copyright (c) 2017 Damian Yerrick + +This software is provided 'as-is', without any express or implied warranty. In +no event will the authors be held liable for any damages arising from the use of +this software. + +Permission is granted to anyone to use this software for any purpose, including +commercial applications, and to alter it and redistribute it freely, subject to +the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim + that you wrote the original software. If you use this software in a product, + an acknowledgment in the product documentation would be appreciated but is + not required. + +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. diff --git a/Yamitracker-reoload/Other/lorom-template-master/README.md b/Yamitracker-reoload/Other/lorom-template-master/README.md new file mode 100644 index 0000000..1eb57b7 --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/README.md @@ -0,0 +1,132 @@ +IF THIS FILE HAS NO LINE BREAKS: View it in a web browser. +(Some text editors do not understand UNIX-style line breaks.) + +LoROM template +============== + +This is a minimal working program for the Super Nintendo +Entertainment System using the LoROM (mode $20) mapper. + +Concepts illustrated: + +* internal header (with correct checksum) and init code +* setting up a static background +* loading data from multiple 32 KiB banks in a LoROM +* structure of a game loop +* automatic controller reading +* 8.8 fixed-point arithmetic +* acceleration-based character movement physics +* sprite drawing and animation, with horizontal flipping +* makefile-controlled conversion of graphics to tile data in + both 2-bit-per-pixel and 4-bit-per-pixel formats +* booting the S-SMP (SPC700 audio CPU) +* writing SPC700 code using 65C02 syntax using blargg's + [SPC700 macro pack] for ca65 +* use of SPC700 timers to control playback +* reading a sequence of pitches and converting them to frequencies +* makefile-controlled compression of sampled sound to BRR format +* creating an SPC700 state file for SPC music players + +Concepts not illustrated: + +* a 512-byte header for obsolete floppy-based copiers +* S-CPU/S-SMP communication to play sound effects or change songs + +[SPC700 macro pack]: http://forums.nesdev.com/viewtopic.php?p=121690#p121690 + +Setting up the build environment +-------------------------------- +Building this demo requires cc65, Python, Pillow, GNU Make, and GNU +Coreutils. For detailed instructions to set up a build environment, +see [nrom-template]. + +[nrom-template]: https://github.com/pinobatch/nrom-template + +Organization of the program +--------------------------- + +### Include files + +* `snes.inc`: Register definitions and useful macros for the S-CPU +* `global.inc`: S-CPU global variable and function declarations +* `spc-ca65.inc`: Macro library to produce SPC700 instructions +* `spc-65c02.inc`: Macro library to use 65C02 syntax with the SPC700 + +### Source code files (65816) + +* `snesheader.s`: Super NES internal header +* `init.s`: PPU and CPU I/O initialization code +* `main.s`: Main program +* `bg.s`: Background graphics setup +* `player.s`: Player sprite graphics setup and movement +* `ppuclear.s`: Useful subroutines for interacting with the S-PPU +* `blarggapu.s`: Send a sound driver to the S-SMP + +### Source code files (SPC700) + +* `spcheader.s`: Header for the `.spc` file; unused in `.sfc` +* `spcimage.s`: Sound driver + +Each source code file is made up of subroutines that start with +`.proc` and end with `.endproc`. See the [ca65 Users Guide] for +what these mean. + +[ca65 Users Guide]: http://cc65.github.io/doc/ca65.html + +The tools +--------- +The `tools` folder contains a few essential command-line programs +written in Python to convert asset data (graphics, audio, etc.) into +a form usable by the Super NES. The makefile contains instructions +to run these programs whenever the original asset data changes. + +* `pilbmp2nes.py` converts bitmap images in PNG or BMP format + into tile data usable by several classic video game consoles. + It has several options to control the data format; use + `pilbmp2nes.py --help` from the command prompt to see them all. +* `wav2brr.py` converts an uncompressed wave file to the BRR (bit + rate reduction) format, a lossy audio codec based on ADPCM used + by the S-DSP (the audio chip in the Super NES). +* `karplus.py` generates a plucked string sound, used for the + bass sample. +* `hihat.py` generates a noise sample. + +Greets +------ + +* [Super Nintendo Development Wiki] contributors +* Martin Korth (nocash) for [Fullsnes] doc and [NO$SNS] emulator +* Shay Green (blargg) for APU examples and SPC700 macro pack +* Jeremy Chadwick (koitsu) for more code organization tips + +[Super Nintendo Development Wiki]: http://wiki.superfamicom.org/ +[Fullsnes]: http://problemkaputt.de/fullsnes.htm +[NO$SNS]: http://problemkaputt.de/sns.htm + +Legal +----- +The demo is distributed under the zlib License, reproduced below: + +> Copyright 2017 Damian Yerrick +> +> This software is provided 'as-is', without any express or implied +> warranty. In no event will the authors be held liable for any +> damages arising from the use of this software. +> +> Permission is granted to anyone to use this software for any +> purpose, including commercial applications, and to alter it and +> redistribute it freely, subject to the following restrictions: +> +> 1. The origin of this software must not be misrepresented; you must +> not claim that you wrote the original software. If you use this +> software in a product, an acknowledgment in the product +> documentation would be appreciated but is not required. +> +> 2. Altered source versions must be plainly marked as such, and must +> not be misrepresented as being the original software. +> +> 3. This notice may not be removed or altered from any source +> distribution. + +A work's "source" form is the preferred form of a work for making +modifications to it. \ No newline at end of file diff --git a/Yamitracker-reoload/Other/lorom-template-master/audio/decentsnare.wav b/Yamitracker-reoload/Other/lorom-template-master/audio/decentsnare.wav new file mode 100644 index 0000000..d1413e1 Binary files /dev/null and b/Yamitracker-reoload/Other/lorom-template-master/audio/decentsnare.wav differ diff --git a/Yamitracker-reoload/Other/lorom-template-master/audio/karplusbassloop.wav b/Yamitracker-reoload/Other/lorom-template-master/audio/karplusbassloop.wav new file mode 100644 index 0000000..9e65d1a Binary files /dev/null and b/Yamitracker-reoload/Other/lorom-template-master/audio/karplusbassloop.wav differ diff --git a/Yamitracker-reoload/Other/lorom-template-master/audio/kickgen.wav b/Yamitracker-reoload/Other/lorom-template-master/audio/kickgen.wav new file mode 100644 index 0000000..2ec0a92 Binary files /dev/null and b/Yamitracker-reoload/Other/lorom-template-master/audio/kickgen.wav differ diff --git a/Yamitracker-reoload/Other/lorom-template-master/audio/selnow.wav b/Yamitracker-reoload/Other/lorom-template-master/audio/selnow.wav new file mode 100644 index 0000000..1b611fc Binary files /dev/null and b/Yamitracker-reoload/Other/lorom-template-master/audio/selnow.wav differ diff --git a/Yamitracker-reoload/Other/lorom-template-master/docs/init.txt b/Yamitracker-reoload/Other/lorom-template-master/docs/init.txt new file mode 100644 index 0000000..0f05f3d --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/docs/init.txt @@ -0,0 +1,86 @@ +A valid Super NES program must write to all writable ports in the +S-CPU I/O and S-PPU at the start of a program. This way, the +machine starts in a known state. The code in init.s establishes +the following initial state: + +S-CPU registers + +A, X, Y: unspecified +Program bank: main >> 16 +Data bank: unspecified (programs might want to PHK PLB) +P: decimal mode off, width 16-bit +S: $01FF +D: $0000 + +S-CPU I/O + +4200=00 Disable vblank NMI and htime/vtime IRQ +4201=FF Set pin 6 of controller ports high +4202=00 Multiply 0 by 0 +4203=00 +4204=00 Divide 0 by 0 (OH SHI--) +4205=00 +4206=00 +4207=00 htime = top of picture +4208=00 +4209=00 vtime = left side of scanline +420A=00 +420B=00 Stop DMA copies +420C=00 Stop HDMA +420D=00 or 01 Access $808000-$FFFFFF as slow or fast ROM + (depending on value in internal header) + +S-PPU + +2100=80 Forced blanking +2101=00 Sprites 8x8 and 16x16, patterns at $0000-$1FFF +2102=00 OAM address: $0000 +2103=00 +2104: skip OAM write port +2105=00 Background mode 0, all layers using 8x8 pixel tiles +2106=00 Mosaic off +2107=00 BG1 nametable at $0000, 1x1 screen +2108=00 BG2 nametable at $0000, 1x1 screen +2109=00 BG3 nametable at $0000, 1x1 screen +210A=00 BG4 nametable at $0000, 1x1 screen +210B=00 BG1 and BG2 tiles at $0000 +210C=00 BG3 and BG4 tiles at $0000 +210D=00 00 BG1 scroll at (0, 1). The S-PPU skips the first line +210E=00 00 of the picture, so Y=0 means start at line 1 of BG. +210F=00 00 BG2 scroll at (0, 1) +2110=00 00 +2111=00 00 BG3 scroll at (0, 1) +2112=00 00 +2113=00 00 BG4 scroll at (0, 1) +2114=00 00 +2115=80 Add 1 word to VRAM address after high byte write +2116=00 VRAM address starts at 0 +2117=00 +2118-9: skip VRAM write port +211A=00 +211B=00 01 Set the mode 7 matrix to the identity matrix +211C=00 00 [ 1.0 0.0 ] +211D=00 00 [ 0.0 1.0 ] +211E=00 01 +211F=00 00 Mode 7 scroll at (0, 0) +2120=00 00 +2121=00 CGRAM address = 0 +2122: skip CGRAM write port +2123=00 Disable windows on BG1 and BG2 +2124=00 Disable windows on BG3 and BG4 +2125=00 Disable windows on sprites and blending +2126=00 Window 1 left side = 0 +2127=00 Window 1 right side = 0 +2128=00 Window 2 left side = 0 +2129=00 Window 2 right side = 0 +212A=00 Combine background windows using OR logic +212B=00 Combine sprites and blending using OR logic +212C=00 Enable no layers on main screen +212D=00 Enable no layers on sub screen +212E=00 Disable no layers on main screen within the window +212F=00 Disable no layers on sub screen within the window +2130=30 Disable blending and 332 palette +2131=00 Disable blending for all layers +2132=E0 Set entire COLDATA to 0 +2133=00 Disable interlace and pseudo-hires, 224 lines + diff --git a/Yamitracker-reoload/Other/lorom-template-master/docs/repocard.xcf b/Yamitracker-reoload/Other/lorom-template-master/docs/repocard.xcf new file mode 100644 index 0000000..240e111 Binary files /dev/null and b/Yamitracker-reoload/Other/lorom-template-master/docs/repocard.xcf differ diff --git a/Yamitracker-reoload/Other/lorom-template-master/lorom-template.srm b/Yamitracker-reoload/Other/lorom-template-master/lorom-template.srm new file mode 100644 index 0000000..171fa2b --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/lorom-template.srm @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Yamitracker-reoload/Other/lorom-template-master/lorom256k.cfg b/Yamitracker-reoload/Other/lorom-template-master/lorom256k.cfg new file mode 100644 index 0000000..8e10e90 --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/lorom256k.cfg @@ -0,0 +1,70 @@ +# ca65 linker config for 256 KiB (2 Mbit) sfc file + +# Physical areas of memory +MEMORY { + # I usually reserve $000000-$00000F for local variables + # allocated just below the .proc statement of a subroutine. + # The rest is open for global variables. + ZEROPAGE: start = $000010, size = $00F0; + + # Make sure to change BSS based on where you put + # the stack and how big you expect it to get. + # Unlike on the NES, we include shadow OAM in BSS here + # because there's not as much of a benefit to having it + # page-aligned. + BSS: start = $000200, size = $1E00; + BSS7E: start = $7E2000, size = $E000; + BSS7F: start = $7F0000, size =$10000; + + # The fast ROM area starts at $808000. + # It's mirrored into the slow ROM area. + ROM0: start = $808000, size = $8000, type = ro, file = %O, fill=yes, fillval=$FF; + ROM1: start = $818000, size = $8000, type = ro, file = %O, fill=yes, fillval=$FF; + ROM2: start = $828000, size = $8000, type = ro, file = %O, fill=yes, fillval=$FF; + ROM3: start = $838000, size = $8000, type = ro, file = %O, fill=yes, fillval=$FF; + ROM4: start = $848000, size = $8000, type = ro, file = %O, fill=yes, fillval=$FF; + ROM5: start = $858000, size = $8000, type = ro, file = %O, fill=yes, fillval=$FF; + ROM6: start = $868000, size = $8000, type = ro, file = %O, fill=yes, fillval=$FF; + ROM7: start = $878000, size = $8000, type = ro, file = %O, fill=yes, fillval=$FF; + + + # The sound processor has its own address space + SPCZEROPAGE:start = $0010, size = $00E0; + SPCRAM: start = $0200, size = $FDC0; +} + +# Logical areas code/data can be put into. +SEGMENTS { + # Read-only areas for main CPU + CODE: load = ROM0, type = ro, align = $100; + RODATA: load = ROM0, type = ro, align = $100; + SNESHEADER: load = ROM0, type = ro, start = $80FFB0; + CODE1: load = ROM1, type = ro, align = $100, optional=yes; + RODATA1: load = ROM1, type = ro, align = $100, optional=yes; + CODE2: load = ROM2, type = ro, align = $100, optional=yes; + RODATA2: load = ROM2, type = ro, align = $100, optional=yes; + CODE3: load = ROM3, type = ro, align = $100, optional=yes; + RODATA3: load = ROM3, type = ro, align = $100, optional=yes; + CODE4: load = ROM4, type = ro, align = $100, optional=yes; + RODATA4: load = ROM4, type = ro, align = $100, optional=yes; + CODE5: load = ROM5, type = ro, align = $100, optional=yes; + RODATA5: load = ROM5, type = ro, align = $100, optional=yes; + CODE6: load = ROM6, type = ro, align = $100, optional=yes; + RODATA6: load = ROM6, type = ro, align = $100, optional=yes; + CODE7: load = ROM7, type = ro, align = $100, optional=yes; + RODATA7: load = ROM7, type = ro, align = $100, optional=yes; + + # Read-only areas for sound CPU + SPCIMAGE: load = ROM7, run=SPCRAM, align = $100, define=yes; + + # Areas for variables for main CPU + ZEROPAGE: load = ZEROPAGE, type = zp, define=yes; + BSS: load = BSS, type = bss, align = $100, optional=yes; + BSS7E: load = BSS7E, type = bss, align = $100, optional=yes; + BSS7F: load = BSS7F, type = bss, align = $100, optional=yes; + + # Areas for variables for sound CPU + SPCZEROPAGE:load = SPCZEROPAGE, type=zp, optional=yes; + SPCBSS: load = SPCRAM, type = bss, align = $100, optional=yes; + +} diff --git a/Yamitracker-reoload/Other/lorom-template-master/makefile b/Yamitracker-reoload/Other/lorom-template-master/makefile new file mode 100644 index 0000000..1f0cd3b --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/makefile @@ -0,0 +1,152 @@ +#!/usr/bin/make -f +# +# Makefile for LoROM template +# Copyright 2014-2015 Damian Yerrick +# +# Copying and distribution of this file, with or without +# modification, are permitted in any medium without royalty +# provided the copyright notice and this notice are preserved. +# This file is offered as-is, without any warranty. +# + +# These are used in the title of the SFC program and the zip file. +title = lorom-template +version = 0.06 + +# Space-separated list of asm files without .s extension +# (use a backslash to continue on the next line) +objlist = \ + snesheader init main bg player \ + ppuclear blarggapu spcimage musicseq +objlistspc = \ + spcheader spcimage musicseq +brrlist = \ + karplusbassloop hat kickgen decentsnare + +AS65 := ca65 +LD65 := ld65 +CFLAGS65 := -g +objdir := obj/snes +srcdir := src +imgdir := tilesets + +# If it's not bsnes, it's just BS. But I acknowledge that being +# stuck on an old Atom laptop is BS. Atom N450 can't run bsnes at +# full speed, but the Atom-based Pentium N3710 can. +ifndef SNESEMU +#SNESEMU := xterm -e zsnes -d +SNESEMU := bsnes +endif + +# game-music-emu by blargg et al. +# Using paplay-based wrapper from +# https://forums.nesdev.com/viewtopic.php?f=6&t=16218 +SPCPLAY := gmeplay + +ifdef COMSPEC +PY := py.exe +else +PY := +endif + +# Calculate the current directory as Wine applications would see it. +# yep, that's 8 backslashes. Apparently, there are 3 layers of escaping: +# one for the shell that executes sed, one for sed, and one for the shell +# that executes wine +# TODO: convert to use winepath -w +wincwd := $(shell pwd | sed -e "s'/'\\\\\\\\'g") + +# .PHONY means these targets aren't actual filenames +.PHONY: all run nocash-run spcrun dist clean + +# When you type make without a target name, make will try +# to build the first target. So unless you're trying to run +# NO$SNS in Wine, you should move run above nocash-run. +run: $(title).sfc + $(SNESEMU) $< + +# Per Martin Korth on 2014-09-16: NO$SNS requires absolute +# paths because he screwed up and made the filename processing +# too clever. +# Not default +nocash-run: $(title).sfc + wine "C:\\Program Files (x86)\\nocash\\no\$$sns.exe" "Z:$(wincwd)\\$(title).sfc" + +# Special target for just the SPC700 image +spcrun: $(title).spc + $(SPCPLAY) $< + +all: $(title).sfc $(title).spc + +clean: + -rm $(objdir)/*.o $(objdir)/*.chrsfc $(objdir)/*.chrgb + -rm $(objdir)/*.wav $(objdir)/*.brr $(objdir)/*.s + +dist: zip +zip: $(title)-$(version).zip +$(title)-$(version).zip: zip.in all README.md $(objdir)/index.txt + $(PY) tools/zipup.py $< $(title)-$(version) -o $@ + -advzip -z3 $@ + +# Build zip.in from the list of files in the Git tree +zip.in: + git ls-files | grep -e "^[^.]" > $@ + echo zip.in >> $@ + echo $(title).sfc >> $@ + echo $(title).spc >> $@ + +$(objdir)/index.txt: makefile + echo "Files produced by build tools go here. (This file's existence forces the unzip tool to create this folder.)" > $@ + +# Rules for ROM + +objlisto = $(foreach o,$(objlist),$(objdir)/$(o).o) +objlistospc = $(foreach o,$(objlistspc),$(objdir)/$(o).o) +brrlisto = $(foreach o,$(brrlist),$(objdir)/$(o).brr) + +map.txt $(title).sfc: lorom256k.cfg $(objlisto) + $(LD65) -o $(title).sfc --dbgfile $(title).dbg -m map.txt -C $^ + $(PY) tools/fixchecksum.py $(title).sfc + +spcmap.txt $(title).spc: spc.cfg $(objlistospc) + $(LD65) -o $(title).spc -m spcmap.txt -C $^ + +$(objdir)/%.o: $(srcdir)/%.s $(srcdir)/snes.inc $(srcdir)/global.inc + $(AS65) $(CFLAGS65) $< -o $@ + +$(objdir)/%.o: $(objdir)/%.s + $(AS65) $(CFLAGS65) $< -o $@ + +$(objdir)/mktables.s: tools/mktables.py + $< > $@ + +# Files that depend on extra included files +$(objdir)/bg.o: \ + $(objdir)/bggfx.chrgb +$(objdir)/player.o: \ + $(objdir)/swinging2.chrsfc +$(objdir)/spcimage.o: $(brrlisto) +$(objdir)/musicseq.o $(objdir)/spcimage.o: src/pentlyseq.inc + +# Rules for CHR data + +# .chrgb (CHR data for Game Boy) denotes the 2-bit tile format +# used by Game Boy and Game Boy Color, as well as Super NES +# mode 0 (all planes), mode 1 (third plane), and modes 4 and 5 +# (second plane). +$(objdir)/%.chrgb: tilesets/%.png + $(PY) tools/pilbmp2nes.py --planes=0,1 $< $@ + +$(objdir)/%.chrsfc: tilesets/%.png + $(PY) tools/pilbmp2nes.py "--planes=0,1;2,3" $< $@ + +# Rules for audio +$(objdir)/%.brr: audio/%.wav + $(PY) tools/wav2brr.py $< $@ +$(objdir)/%.brr: $(objdir)/%.wav + $(PY) tools/wav2brr.py $< $@ +$(objdir)/%loop.brr: audio/%.wav + $(PY) tools/wav2brr.py --loop $< $@ +$(objdir)/%loop.brr: $(objdir)/%.wav + $(PY) tools/wav2brr.py --loop $< $@ + diff --git a/Yamitracker-reoload/Other/lorom-template-master/music_20251213_125748.s b/Yamitracker-reoload/Other/lorom-template-master/music_20251213_125748.s new file mode 100644 index 0000000..4e02c28 --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/music_20251213_125748.s @@ -0,0 +1,382 @@ +; Generated by Yamitracker +; Date: 2025-12-13 12:57:51 + +music_inst_table: + INST CrandPno, 11, 10, 3, 6, 31, 17, 0, 8 + INST CrandPno, 11, 10, 3, 6, 31, 17, 0, 8 + +pently_patterns: + .addr PPDAT_track0 + .addr PPDAT_track1 + +PPDAT_track0: + .byt D_D2 + .byt N_FH|D_D4 + .byt N_FH|D_D16 + .byt D_D8 + .byt N_FH|OCTAVE_1|D_D4 + .byt N_FH|OCTAVE_1|D_D16 + .byt D_D4 + .byt N_FH|D_D16 + .byt N_FH|D_D4 + .byt D_8 + .byt N_FH|OCTAVE_1|D_D16 + .byt N_FH|OCTAVE_1|D_D4 + .byt D_2 + .byt N_FH|D_D16 + .byt N_FH|D_D4 + .byt N_FH|OCTAVE_1|D_D16 + .byt N_FH|OCTAVE_1|D_D4 + .byt D_2 + .byt N_FH|D_D16 + .byt N_FH|D_D4 + .byt D_2 + .byt N_FH|OCTAVE_1|D_D16 + .byt N_FH|OCTAVE_1|D_D8 + .byt D_D8 + .byt N_EH|D_D16 + .byt N_EH|D_D4 + .byt D_2 + .byt N_DH|OCTAVE_1|D_D4 + .byt N_DH|OCTAVE_1|D_D16 + .byt D_D4 + .byt N_EH|D_D16 + .byt N_EH|D_D4 + .byt N_DH|OCTAVE_1|D_D16 + .byt N_DH|OCTAVE_1|D_D4 + .byt D_2 + .byt N_EH|D_D16 + .byt N_EH|D_D4 + .byt N_DH|OCTAVE_1|D_D16 + .byt N_DH|OCTAVE_1|D_D4 + .byt D_2 + .byt N_EH|D_D16 + .byt N_EH|D_D4 + .byt N_DH|OCTAVE_1|D_D16 + .byt N_DH|OCTAVE_1|D_D8 + .byt D_D8 + .byt N_CH|D_D16 + .byt N_CH|D_D4 + .byt D_2 + .byt N_CH|OCTAVE_1|D_D16 + .byt N_CH|OCTAVE_1|D_D8 + .byt D_D16 + .byt N_CH|D_D16 + .byt N_CH|D_D4 + .byt D_2 + .byt N_CH|OCTAVE_1|D_D16 + .byt N_CH|OCTAVE_1|D_D4 + .byt D_2 + .byt N_CH|D_D16 + .byt N_CH|D_D4 + .byt N_CH|OCTAVE_1|D_D16 + .byt N_CH|OCTAVE_1|D_D4 + .byt D_2 + .byt N_CH|D_D16 + .byt N_CH|D_D4 + .byt N_CH|OCTAVE_1|D_D16 + .byt N_CH|OCTAVE_1|D_D4 + .byt D_D4 + .byt N_DH|D_D16 + .byt N_DH|D_D8 + .byt D_D16 + .byt N_EH|D_D16 + .byt N_EH|D_D4 + .byt N_EH|OCTAVE_1|D_D16 + .byt N_EH|OCTAVE_1|D_D4 + .byt D_D8 + .byt N_EH|D_D4 + .byt N_EH|D_D16 + .byt D_D4 + .byt N_EH|OCTAVE_1|D_D16 + .byt N_EH|OCTAVE_1|D_D4 + .byt D_2 + .byt N_EH|D_D16 + .byt N_EH|D_D4 + .byt D_2 + .byt N_EH|OCTAVE_1|D_D16 + .byt N_EH|OCTAVE_1|D_D4 + .byt D_2 + .byt N_EH|D_D4 + .byt N_EH|D_D16 + .byt D_D8 + .byt N_EH|OCTAVE_1|D_D16 + .byt N_EH|OCTAVE_1|D_D8 + .byt D_D8 + .byt N_DH|D_D16 + .byt N_DH|D_D4 + .byt N_DH|OCTAVE_1|D_D16 + .byt N_DH|OCTAVE_1|D_D4 + .byt D_D16 + .byt N_DH|D_D16 + .byt N_DH|D_D4 + .byt N_DH|OCTAVE_1|D_D4 + .byt N_DH|OCTAVE_1|D_D16 + .byt D_D4 + .byt N_DH|D_D16 + .byt N_DH|D_D4 + .byt N_DH|OCTAVE_1|D_D16 + .byt N_DH|OCTAVE_1|D_D4 + .byt D_D16 + .byt N_DH|D_D16 + .byt N_DH|D_D4 + .byt N_DH|OCTAVE_1|D_D16 + .byt N_DH|OCTAVE_1|D_D8 + .byt D_D8 + .byt N_CH|D_D16 + .byt N_CH|D_D4 + .byt D_2 + .byt N_CH|OCTAVE_1|D_D16 + .byt N_CH|OCTAVE_1|D_D8 + .byt D_D16 + .byt N_CH|D_D16 + .byt N_CH|D_D4 + .byt N_CH|OCTAVE_1|D_D16 + .byt N_CH|OCTAVE_1|D_D4 + .byt D_D16 + .byt N_CH|D_D4 + .byt N_CH|D_D16 + .byt D_D8 + .byt N_CH|OCTAVE_1|D_D16 + .byt N_CH|OCTAVE_1|D_D4 + .byt D_2 + .byt N_CH|D_D16 + .byt N_CH|D_D4 + .byt N_CH|OCTAVE_1|D_D16 + .byt N_CH|OCTAVE_1|D_D8 + .byt D_D4 + .byt N_DH|D_D4 + .byt N_DH|D_D16 + .byt D_D4 + .byt N_DH|OCTAVE_1|D_D16 + .byt N_DH|OCTAVE_1|D_D8 + .byt D_D4 + .byt N_EH|D_D16 + .byt N_EH|D_D4 + .byt N_EH|OCTAVE_1|D_D16 + .byt N_EH|OCTAVE_1|D_D4 + .byt D_D4 + .byt N_FH|D_D16 + .byt N_FH|D_D4 + .byt N_FH|OCTAVE_1|D_D8 + .byt N_FH|OCTAVE_1|D_D16 + .byt D_D4 + .byt N_GH|D_D16 + .byt N_GH|D_D4 + .byt N_GH|OCTAVE_1|D_D16 + .byt N_GH|OCTAVE_1|D_D4 + .byt D_D2 + .byt N_FH|OCTAVE_1|D_D16 + .byt N_FH|OCTAVE_1|D_D2 + .byt D_4 + .byt N_FH|D_D16 + .byt N_FH|D_D2 + .byt D_D4 + .byt N_DSH|OCTAVE_1|D_D16 + .byt N_DSH|OCTAVE_1|D_1 + .byt N_DSH|D_D16 + .byt N_DSH|D_1 + .byt D_D4 + .byt N_CSH|D_D16 + .byt N_CSH|D_D2 + .byt N_CSH|OCTAVE_1|D_D16 + .byt N_CSH|OCTAVE_1|D_D2 + .byt D_D16 + .byt N_CSH|D_D2 + .byt N_CSH|D_D16 + .byt D_D2 + .byt N_CSH|OCTAVE_1|D_D16 + .byt N_CSH|OCTAVE_1|D_D4 + .byt D_D4 + .byt N_FSH|D_D16 + .byt N_FSH|D_D2 + .byt D_D8 + .byt N_ASH|D_D16 + .byt N_ASH|D_D2 + .byt D_D8 + .byt N_FSH|D_D16 + .byt N_FSH|D_D2 + .byt D_2 + .byt N_ASH|D_D16 + .byt N_ASH|D_D2 + .byt D_D8 + .byt N_DSH|D_D16 + .byt N_DSH|D_D2 + .byt N_GSH|D_D16 + .byt N_GSH|D_D2 + .byt D_D16 + .byt N_DSH|D_D16 + .byt N_DSH|D_D2 + .byt D_4 + .byt N_GSH|D_D16 + .byt N_GSH|D_D4 + .byt PATEND + +PPDAT_track1: + .byt D_2 + .byt N_DH|D_D4 + .byt N_DH|D_D16 + .byt D_D2 + .byt N_DH|D_D4 + .byt N_DH|D_D16 + .byt D_D8 + .byt N_EH|D_D16 + .byt N_EH|D_D4 + .byt N_FH|D_D16 + .byt N_FH|D_D4 + .byt N_GH|D_D16 + .byt N_GH|D_D8 + .byt D_D16 + .byt N_GH|D_D16 + .byt N_GH|D_D8 + .byt N_FH|D_D16 + .byt N_FH|D_D4 + .byt N_EH|D_D4 + .byt N_EH|D_D16 + .byt D_D8 + .byt N_DH|D_D16 + .byt N_DH|D_D4 + .byt N_CH|D_D16 + .byt N_CH|D_D8 + .byt D_D16 + .byt N_DH|D_D16 + .byt N_DH|D_D2 + .byt D_2 + .byt N_EH|D_D16 + .byt N_EH|D_D2 + .byt N_DH|D_D16 + .byt N_DH|D_D2 + .byt D_D4 + .byt N_DH|D_D16 + .byt N_DH|D_D4 + .byt N_EH|D_D16 + .byt N_EH|D_D4 + .byt N_FH|D_D16 + .byt N_FH|D_D4 + .byt D_D8 + .byt N_GH|D_D16 + .byt N_GH|D_D8 + .byt D_D8 + .byt N_FH|D_D16 + .byt N_FH|D_D4 + .byt N_GH|D_D16 + .byt N_GH|D_D16 + .byt D_D8 + .byt N_EH|D_D16 + .byt N_EH|D_D4 + .byt N_DH|D_D16 + .byt N_DH|D_D4 + .byt D_D8 + .byt N_CH|D_D16 + .byt N_CH|D_D4 + .byt D_D8 + .byt N_DH|D_D16 + .byt N_DH|D_D4 + .byt D_D16 + .byt N_EH|D_D16 + .byt N_EH|D_D4 + .byt N_DH|D_D16 + .byt N_DH|D_D2 + .byt D_2 + .byt N_DH|D_D16 + .byt N_DH|D_D4 + .byt N_EH|D_D16 + .byt N_EH|D_D8 + .byt N_FH|D_D16 + .byt N_FH|D_D8 + .byt D_2 + .byt N_GH|D_D16 + .byt N_GH|D_D8 + .byt D_1 + .byt N_AH|D_D16 + .byt N_AH|D_D4 + .byt D_2 + .byt N_GH|D_D16 + .byt N_GH|D_D4 + .byt N_FH|D_D16 + .byt N_FH|D_D8 + .byt N_EH|D_D16 + .byt N_EH|D_D4 + .byt D_D4 + .byt N_DH|D_D16 + .byt N_DH|D_D4 + .byt D_D8 + .byt N_FH|D_D16 + .byt N_FH|D_D4 + .byt N_GH|D_D4 + .byt N_GH|D_D16 + .byt D_D4 + .byt N_FH|D_D16 + .byt N_FH|D_D4 + .byt D_D2 + .byt N_C|D_D16 + .byt N_C|D_D8 + .byt D_2 + .byt N_D|D_D16 + .byt N_D|D_D16 + .byt D_D8 + .byt N_E|D_D16 + .byt N_E|D_D4 + .byt D_D8 + .byt N_C|D_D16 + .byt N_C|D_D8 + .byt D_D16 + .byt N_D|D_D16 + .byt N_D|D_D16 + .byt D_D8 + .byt N_E|D_D16 + .byt N_E|D_D4 + .byt D_D8 + .byt N_C|D_D16 + .byt N_C|D_D8 + .byt N_D|D_D16 + .byt N_D|D_D8 + .byt D_D8 + .byt N_E|D_D16 + .byt N_E|D_D16 + .byt D_D8 + .byt N_D|D_D16 + .byt N_D|D_D8 + .byt D_D8 + .byt N_E|D_D16 + .byt N_E|D_D4 + .byt D_D8 + .byt N_D|D_D16 + .byt N_D|D_D8 + .byt D_D4 + .byt N_FH|D_D16 + .byt N_FH|D_D8 + .byt D_2 + .byt N_GH|D_D16 + .byt N_GH|D_D16 + .byt D_D8 + .byt N_AH|D_D16 + .byt N_AH|D_D4 + .byt D_D8 + .byt N_FH|D_D16 + .byt N_FH|D_D8 + .byt D_2 + .byt N_GH|D_D16 + .byt N_GH|D_D8 + .byt D_D8 + .byt N_AH|D_D16 + .byt N_AH|D_D4 + .byt D_D8 + .byt N_GH|D_D16 + .byt N_GH|D_D2 + .byt PATEND + +pently_songs: +.addr PSDAT_track0, PSDAT_track1, + +PSDAT_track0: + setTempo 1000 + playPat 0, 0, 23, CrandPno + waitRows 255 + dalSegno + +PSDAT_track1: + setTempo 1000 + playPat 1, 1, 23, CrandPno + waitRows 255 + dalSegno diff --git a/Yamitracker-reoload/Other/lorom-template-master/music_20251213_140039.s b/Yamitracker-reoload/Other/lorom-template-master/music_20251213_140039.s new file mode 100644 index 0000000..08c7f91 --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/music_20251213_140039.s @@ -0,0 +1,9 @@ +; Generated by Yamitracker +; Date: 2025-12-13 14:00:40 + +music_inst_table: + +pently_patterns: + +pently_songs: +.addr diff --git a/Yamitracker-reoload/Other/lorom-template-master/music_20251213_140645.s b/Yamitracker-reoload/Other/lorom-template-master/music_20251213_140645.s new file mode 100644 index 0000000..4b4b0f1 --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/music_20251213_140645.s @@ -0,0 +1,157 @@ +; Generated by Yamitracker +; Date: 2025-12-13 14:06:47 + +music_inst_table: + INST CrandPno, 11, 10, 3, 6, 31, 17, 0, 8 + INST CrandPno, 11, 10, 3, 6, 31, 17, 0, 8 + +pently_patterns: + .addr PPDAT_track0 + .addr PPDAT_track1 + +PPDAT_track0: + .byt D_1 + .byt N_CH|D_D8 + .byt N_CH|D_D16 + .byt D_D4 + .byt N_CH|D_D16 + .byt N_CH|D_D8 + .byt D_D8 + .byt N_DH|D_D16 + .byt N_DH|D_D8 + .byt D_D4 + .byt N_EH|D_D16 + .byt N_EH|D_D8 + .byt D_D4 + .byt N_FH|D_D16 + .byt N_FH|D_D8 + .byt D_D4 + .byt N_CH|D_D16 + .byt N_CH|D_D8 + .byt D_D8 + .byt N_CH|D_D16 + .byt N_CH|D_D8 + .byt D_D8 + .byt N_DH|D_D16 + .byt N_DH|D_D8 + .byt D_D8 + .byt N_EH|D_D16 + .byt N_EH|D_D8 + .byt D_D4 + .byt N_FH|D_D16 + .byt N_FH|D_D8 + .byt D_D8 + .byt N_CH|D_D16 + .byt N_CH|D_D8 + .byt D_D8 + .byt N_CH|D_D16 + .byt N_CH|D_D8 + .byt D_D8 + .byt N_DH|D_D16 + .byt N_DH|D_D16 + .byt D_D4 + .byt N_EH|D_D16 + .byt N_EH|D_D16 + .byt D_D4 + .byt N_FH|D_D16 + .byt N_FH|D_D8 + .byt D_D4 + .byt N_CH|D_D16 + .byt N_CH|D_D16 + .byt PATEND + +PPDAT_track1: + .byt D_2 + .byt N_F|D_D8 + .byt N_F|D_D16 + .byt D_D16 + .byt N_G|D_D8 + .byt N_G|D_D16 + .byt D_D8 + .byt N_A|D_D16 + .byt N_A|D_D8 + .byt D_D8 + .byt N_B|D_D16 + .byt N_B|D_D16 + .byt D_D8 + .byt N_C|D_D16 + .byt N_C|D_D8 + .byt D_D8 + .byt N_F|D_D16 + .byt N_F|D_D8 + .byt D_D16 + .byt N_G|D_D16 + .byt N_G|D_D16 + .byt D_D8 + .byt N_A|D_D16 + .byt N_A|D_D8 + .byt D_D8 + .byt N_B|D_D16 + .byt N_B|D_D16 + .byt D_D8 + .byt N_C|D_D16 + .byt N_C|D_D16 + .byt D_D8 + .byt N_F|D_D16 + .byt N_F|D_D8 + .byt D_D16 + .byt N_G|D_D16 + .byt N_G|D_D16 + .byt D_D8 + .byt N_A|D_D16 + .byt N_A|D_D16 + .byt D_D8 + .byt N_B|D_D16 + .byt N_B|D_D8 + .byt D_D8 + .byt N_C|D_D16 + .byt N_C|D_D8 + .byt D_D8 + .byt N_F|D_D16 + .byt N_F|D_D8 + .byt D_D8 + .byt N_G|D_D16 + .byt N_G|D_D8 + .byt D_D8 + .byt N_A|D_D16 + .byt N_A|D_D16 + .byt D_D8 + .byt N_B|D_D16 + .byt N_B|D_D8 + .byt D_D8 + .byt N_C|D_D8 + .byt N_C|D_D16 + .byt D_D8 + .byt N_F|D_D16 + .byt N_F|D_D8 + .byt D_D4 + .byt N_G|D_D16 + .byt N_G|D_D8 + .byt D_D8 + .byt N_A|D_D16 + .byt N_A|D_D8 + .byt D_D8 + .byt N_B|D_D16 + .byt N_B|D_D8 + .byt D_D8 + .byt N_C|D_D16 + .byt N_C|D_D4 + .byt D_D4 + .byt N_F|D_D16 + .byt N_F|D_D8 + .byt PATEND + +pently_songs: +.addr PSDAT_track0, PSDAT_track1, + +PSDAT_track0: + setTempo 1000 + playPat 0, 0, 23, CrandPno + waitRows 255 + dalSegno + +PSDAT_track1: + setTempo 1000 + playPat 1, 1, 23, CrandPno + waitRows 255 + dalSegno diff --git a/Yamitracker-reoload/Other/lorom-template-master/obj/snes/index.txt b/Yamitracker-reoload/Other/lorom-template-master/obj/snes/index.txt new file mode 100644 index 0000000..c5c8c2c --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/obj/snes/index.txt @@ -0,0 +1 @@ +Files produced by build tools go here. (This file's existence forces the unzip tool to create this folder.) diff --git a/Yamitracker-reoload/Other/lorom-template-master/obj/snes/map.txt b/Yamitracker-reoload/Other/lorom-template-master/obj/snes/map.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/obj/snes/map.txt @@ -0,0 +1 @@ +1 diff --git a/Yamitracker-reoload/Other/lorom-template-master/spc.cfg b/Yamitracker-reoload/Other/lorom-template-master/spc.cfg new file mode 100644 index 0000000..b89c9ce --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/spc.cfg @@ -0,0 +1,18 @@ +# ca65 linker config for SPC file (Super NES music) + +# Physical areas of memory +MEMORY { + SPCZEROPAGE: start=$0010, size=$00E0; + SPCHEADER: start=$0000, size=$0300, fill=yes, fillval=$00; + SPCRAM: start=$0200, size=$FE00, fill=yes, fillval=$00; + SPCFOOTER: start=$0000, size=$0100, fill=yes, fillval=$00; +} + +# Logical areas code/data can be put into. +SEGMENTS { + SPCZEROPAGE: load = SPCZEROPAGE, type=zp; + SPCHEADER: load = SPCHEADER; + SPCIMAGE: load = SPCRAM, align = $100; + SPCBSS: load = SPCRAM, type = bss, align = $100, optional=yes; + SPCFOOTER: load = SPCFOOTER, align = $100; +} diff --git a/Yamitracker-reoload/Other/lorom-template-master/src/bg.s b/Yamitracker-reoload/Other/lorom-template-master/src/bg.s new file mode 100644 index 0000000..ef073cd --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/src/bg.s @@ -0,0 +1,147 @@ +.include "snes.inc" +.include "global.inc" +.smart + +.segment "CODE5" +.proc load_bg_tiles + phb ; Save old program bank and push new bank + phk + plb + + ; Copy background palette to the S-PPU. + ; We perform the copy using DMA (direct memory access), which has + ; four steps: + ; 1. Set the destination address in the desired area of memory, + ; be it CGRAM (palette), OAM (sprites), or VRAM (tile data and + ; background maps). + ; 2. Tell the DMA controller which area of memory to copy to. + ; 3. Tell the DMA controller the starting address to copy from. + ; 4. Tell the DMA controller how big the data is in bytes. + ; ppu_copy uses the current data bank as the source bank + ; for the copy, so set the source bank. + seta8 + stz CGADDR ; Seek to the start of CGRAM + setaxy16 + lda #DMAMODE_CGDATA + ldx #palette & $FFFF + ldy #palette_size + jsl ppu_copy + + ; This demo uses background mode 0, in which each of four 2bpp + ; layers gets its own palette, at word offsets $00-$1F, $20-$3F, + ; $40-$5F, and $60-$7F in CGRAM. (The other modes with 2bpp + ; backgrounds use only $00-$1F.) We just finished copying the + ; main palette to $00; also copy it to $20 for the second layer + ; in demo modes that use it. The palettes could be different, + ; but in this demo they're the same. + seta8 + lda #$20 + sta CGADDR + setaxy16 + lda #DMAMODE_CGDATA + ldx #layer1_palette & $FFFF + ldy #layer1_palette_size + jsl ppu_copy + + ; Copy background tiles to PPU. + ; PPU memory is also word addressed because the low and high bytes + ; are actually on separate SRAM chips. + ; In background mode 0, all background tiles are 2 bits per pixel, + ; which take 16 bytes or 8 words per tile. + setaxy16 + stz PPUADDR ; we will start video memory at $0000 + lda #DMAMODE_PPUDATA + ldy #chr_bin_size + ldx #chr_bin & $FFFF + jsl ppu_copy + + plb + rtl +.endproc + +.proc draw_bg + ; This demo's background tile set includes glyphs at ASCII code + ; points $20 (space) through $5F (underscore). Clear the map + ; to all spaces. + setaxy16 + ldx #$6000 + ldy #' ' | (1 << 10) + jsl ppu_clear_nt + + ; The screen spans rows 0-27, of which rows 23-27 are the ground. + ; Draw the top of the ground using a grass tile + setaxy16 + lda #$6000|NTXY(0, 23) + sta PPUADDR + lda #$000B + ldx #32 +floorloop1: + sta PPUDATA + dex + bne floorloop1 + + ; Draw areas buried under the floor as solid color + lda #$0001 + ldx #4*32 +floorloop2: + sta PPUDATA + dex + bne floorloop2 + + ; Draw blocks on the sides, in vertical columns + seta8 + lda #VRAM_DOWN|INC_DATAHI + sta PPUCTRL + setaxy16 + + ; At position (2, 19) (VRAM $6262) and (28, 19) (VRAM $627C), + ; draw two columns of two blocks each, each block being 4 tiles: + ; 0C 0D + ; 0E 0F + ldx #2 + +colloop: + txa + ora #$6000 | NTXY(0, 19) + sta PPUADDR + + ; Draw $0C $0E $0C $0E or $0D $0F $0D $0F depending on column + and #$0001 + ora #$040C ; palette 1 + ldy #4 +tileloop: + sta PPUDATA + eor #$02 + dey + bne tileloop + + ; Columns 2, 3, 28, and 29 only + inx + cpx #4 ; Skip columns 4 through 27 + bne not4 + ldx #28 +not4: + cpx #30 + bcc colloop + + ; The Super NES has no attribute table. Yay. + + seta8 + lda #INC_DATAHI ; Set the data direction back to how + sta PPUCTRL ; the rest of the program expects it + rtl +.endproc + +.segment "RODATA5" +chr_bin: + .incbin "obj/snes/bggfx.chrgb" +chr_bin_size = * - chr_bin + +; The background palette +palette: + .word RGB(15,23,31),RGB(12,12, 0),RGB(14,23, 0),RGB(16,31, 0) + .word RGB( 0, 0,15),RGB(15,15, 0),RGB(23,23, 8),RGB(31,31,16) +palette_size = * - palette + +layer1_palette := palette +layer1_palette_size = palette_size diff --git a/Yamitracker-reoload/Other/lorom-template-master/src/blarggapu.s b/Yamitracker-reoload/Other/lorom-template-master/src/blarggapu.s new file mode 100644 index 0000000..793b579 --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/src/blarggapu.s @@ -0,0 +1,139 @@ +; High-level interface to SPC-700 bootloader +; Originally by "blargg" (Shay Green) +; https://wiki.superfamicom.org/how-to-write-to-dsp-registers-without-any-spc-700-code +; +; 1. Call spc_wait_boot +; 2. To upload data: +; A. Call spc_begin_upload +; B. Call spc_upload_byte any number of times +; C. Go back to A to upload to different addr +; 3. To begin execution, call spc_execute +; +; Have your SPC code jump to $FFC0 to re-run bootloader. +; Be sure to call spc_wait_boot after that. + +.include "snes.inc" +.smart +.i16 + +.segment "CODE2" + +; Waits for SPC to finish booting. Call before first +; using SPC or after bootrom has been re-run. +; Preserved: X, Y +.proc spc_wait_boot + ; Clear command port in case it already has $CC at reset + seta8 + stz APU0 + + ; Wait for the SPC to signal it's ready with APU0=$AA, APU1=$BB + seta16 + lda #$BBAA +waitBBAA: + cmp APU0 + bne waitBBAA + seta8 + rts +.endproc + +; Starts upload to SPC addr Y and sets Y to +; 0 for use as index with spc_upload_byte. +; Preserved: X +.proc spc_begin_upload + seta8 + sty APU2 + + ; Tell the SPC to set the start address. The first value written + ; to APU0 must be $CC, and each subsequent value must be nonzero + ; and at least $02 above the index LSB previously written to $00. + ; Adding $22 always works because APU0 starts at $AA. + lda APU0 + clc + adc #$22 + bne @skip ; ensure nonzero, as zero means start execution + inc a +@skip: + sta APU1 + sta APU0 + + ; Wait for acknowledgement +@wait: + cmp APU0 + bne @wait + + ; Initialize index into block + ldy #0 + rts +.endproc + +; Uploads byte A to SPC and increments Y. The low byte of Y +; must not change between calls, as it +; Preserved: X +.proc spc_upload_byte + sta APU1 + + ; Signal that it's ready + tya + sta APU0 + iny + + ; Wait for acknowledgement +@wait: + cmp APU0 + bne @wait + rts +.endproc + +; Starts executing at SPC addr Y +; Preserved: X, Y +.proc spc_execute + sty APU2 + stz APU1 + lda APU0 + clc + adc #$22 + sta APU0 + + ; Wait for acknowledgement +@wait: + cmp APU0 + bne @wait + rts +.endproc + +.export spc_write_dsp, spc_boot_apu + +; Writes high byte of X to SPC-700 DSP register in low byte of X +.proc spc_write_dsp + phx + ; Just do a two-byte upload to $00F2-$00F3, so we + ; set the DSP address, then write the byte into that. + ldy #$00F2 + jsr spc_begin_upload + pla + jsr spc_upload_byte ; low byte of X to $F2 + pla + jsr spc_upload_byte ; high byte of X to $F3 + rtl +.endproc + +.import spc_entry +.import __SPCIMAGE_RUN__, __SPCIMAGE_LOAD__, __SPCIMAGE_SIZE__ + +.proc spc_boot_apu + jsr spc_wait_boot + + ; Upload sample to SPC at $200 + ldy #__SPCIMAGE_RUN__ + jsr spc_begin_upload +: + tyx + lda f:__SPCIMAGE_LOAD__,x + jsr spc_upload_byte + cpy #__SPCIMAGE_SIZE__ + bne :- + ldy #spc_entry + jsr spc_execute + rtl +.endproc + diff --git a/Yamitracker-reoload/Other/lorom-template-master/src/global.inc b/Yamitracker-reoload/Other/lorom-template-master/src/global.inc new file mode 100644 index 0000000..6fa9d53 --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/src/global.inc @@ -0,0 +1,19 @@ +; main.s +.global main, nmi_handler, irq_handler +.globalzp oam_used + +; ppuclear.s +.global ppu_copy_oam, ppu_pack_oamhi, ppu_clear_oam +.global ppu_copy, ppu_clear_nt, ppu_vsync +.global OAM, OAMHI + +; bg.s +.global load_bg_tiles, draw_bg + +; player.s +.global load_player_tiles, move_player, draw_player_sprite +.globalzp player_xlo, player_xhi, player_dxlo, player_yhi +.globalzp player_frame_sub, player_frame, player_facing + +; blarggapu.s +.global spc_boot_apu diff --git a/Yamitracker-reoload/Other/lorom-template-master/src/init.s b/Yamitracker-reoload/Other/lorom-template-master/src/init.s new file mode 100644 index 0000000..48f5f0d --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/src/init.s @@ -0,0 +1,141 @@ +.p816 +.export resetstub +.import main, nmi_handler, __ZEROPAGE_RUN__ +.smart + +; Mask off low byte to allow use of $000000-$00000F as local variables +ZEROPAGE_BASE := __ZEROPAGE_RUN__ & $FF00 + +; Make sure these conform to the linker script (e.g. lorom256.cfg). +STACK_BASE := $0100 +STACK_SIZE = $0100 +LAST_STACK_ADDR := STACK_BASE + STACK_SIZE - 1 + +PPU_BASE := $2100 +CPUIO_BASE := $4200 + +; MMIO is mirrored into $21xx, $42xx, and $43xx of all banks $00-$3F +; and $80-$BF. To make it work no matter the current data bank, we +; can use a long address in a nonzero bank. +; Bit 0 of MEMSEL enables fast ROM access above $808000. +MEMSEL := $80420D + +; Bit 4 of the byte at $FFD5 in the cartridge header specifies +; whether a game should be manufactured with slow or fast ROM. +; The init code enables fast ROM if this bit is true. +map_mode := $00FFD5 + +; A tiny stub in bank $00 needs to set interrupt priority to 1, +; leave 6502 emulation mode, and long jump to the rest of init code +; in another bank. This should set 16-bit mode, turn off decimal +; mode, set the stack pointer, load a predictable state into writable +; MMIO ports of the S-PPU and S-CPU, and set the direct page base. +; For explanation of the values that this writes, see docs/init.txt +; +; For advanced users: Long stretches of STZ are a useful place to +; shuffle code when watermarking your binary. + +.segment "CODE" +.proc resetstub + sei ; turn off IRQs + clc + xce ; turn off 6502 emulation mode + cld ; turn off decimal ADC/SBC + jml reset_fastrom ; Bank $00 is not fast, but its mirror $80 is +.endproc + +.segment "CODE7" +.proc reset_fastrom + rep #$30 ; 16-bit AXY + ldx #LAST_STACK_ADDR + txs ; set the stack pointer + + ; Initialize the CPU I/O registers to predictable values + lda #CPUIO_BASE + tad ; temporarily move direct page to S-CPU I/O area + lda #$FF00 + sta $00 ; disable NMI and HVIRQ; don't drive controller port pin 6 + stz $02 ; clear multiplier factors + stz $04 ; clear dividend + stz $06 ; clear divisor and low byte of hcount + stz $08 ; clear high bit of hcount and low byte of vcount + stz $0A ; clear high bit of vcount and disable DMA copy + stz $0C ; disable HDMA and fast ROM + + ; Initialize the PPU registers to predictable values + lda #PPU_BASE + tad ; temporarily move direct page to PPU I/O area + + ; first clear the regs that take a 16-bit write + lda #$0080 + sta $00 ; Forced blank, brightness 0, sprite size 8/16 from VRAM $0000 + stz $02 ; OAM address = 0 + stz $05 ; BG mode 0, no mosaic + stz $07 ; BG 1-2 map 32x32 from VRAM $0000 + stz $09 ; BG 3-4 map 32x32 from VRAM $0000 + stz $0B ; BG tiles from $0000 + stz $16 ; VRAM address $0000 + stz $23 ; disable BG window + stz $26 ; clear window 1 x range + stz $28 ; clear window 2 x range + stz $2A ; clear window mask logic + stz $2C ; disable all layers on main and sub + stz $2E ; disable all layers on main and sub in window + ldx #$0030 + stx $30 ; disable color math and mode 3/4/7 direct color + ldy #$00E0 + sty $32 ; clear RGB components of COLDATA; disable interlace+pseudo hires + + ; now clear the regs that need 8-bit writes + sep #$20 + sta $15 ; still $80: add 1 to VRAM pointer after high byte write + stz $1A ; enable mode 7 wrapping and disable flipping + stz $21 ; set CGRAM address to color 0 + stz $25 ; disable obj and math window + + ; The scroll registers $210D-$2114 need double 8-bit writes + .repeat 8, I + stz $0D+I + stz $0D+I + .endrepeat + + ; As do the mode 7 registers, which we set to the identity matrix + ; [ $0100 $0000 ] + ; [ $0000 $0100 ] + lda #$01 + stz $1B + sta $1B + stz $1C + stz $1C + stz $1D + stz $1D + stz $1E + sta $1E + stz $1F + stz $1F + stz $20 + stz $20 + + ; Set fast ROM if the internal header so requests + lda f:map_mode + and #$10 + beq not_fastrom + inc a + not_fastrom: + sta MEMSEL + + rep #$20 + lda #ZEROPAGE_BASE + tad ; return direct page to real zero page + + ; Unlike on the NES, we don't have to wait 2 vblanks to do + ; any of the following remaining tasks. + ; * Fill or clear areas of VRAM that will be used + ; * Clear areas of WRAM that will be used + ; * Load palette data into CGRAM + ; * Fill shadow OAM and then copy it to OAM + ; * Boot the S-SMP + ; The main routine can do these in any order. + jml main +.endproc + diff --git a/Yamitracker-reoload/Other/lorom-template-master/src/main.s b/Yamitracker-reoload/Other/lorom-template-master/src/main.s new file mode 100644 index 0000000..5993f8b --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/src/main.s @@ -0,0 +1,183 @@ +.include "snes.inc" +.include "global.inc" +.smart +.export main, nmi_handler + +USE_PSEUDOHIRES = 0 +USE_INTERLACE = 0 +USE_AUDIO = 1 + +.segment "ZEROPAGE" +nmis: .res 1 +oam_used: .res 2 + +.segment "BSS" + +OAM: .res 512 +OAMHI: .res 512 +; OAMHI contains bit 8 of X (the horizontal position) and the size +; bit for each sprite. It's a bit wasteful of memory, as the +; 512-byte OAMHI needs to be packed by software into 32 bytes before +; being sent to the PPU, but it makes sprite drawing code much +; simpler. The OBC1 coprocessor used in the game Metal Combat: +; Falcon's Revenge performs the same packing function in hardware, +; possibly as a copy protection method. + +.segment "CODE" +;; +; Minimalist NMI handler that only acknowledges NMI and signals +; to the main thread that NMI has occurred. +.proc nmi_handler + ; Because the INC and BIT instructions can't use 24-bit (f:) + ; addresses, set the data bank to one that can access low RAM + ; ($0000-$1FFF) and the PPU ($2100-$213F) with a 16-bit address. + ; Only banks $00-$3F and $80-$BF can do this, not $40-$7D or + ; $C0-$FF. ($7E can access low RAM but not the PPU.) But in a + ; LoROM program no larger than 16 Mbit, the CODE segment is in a + ; bank that can, so point the data bank at the program bank. + phb + phk + plb + + seta8 + inc a:nmis ; Increase NMI count to notify main thread + bit a:NMISTATUS ; Acknowledge NMI + + ; And restore the previous data bank value. + plb + rti +.endproc + +;; +; This program doesn't use IRQs either. +.proc irq_handler + rti +.endproc + +.segment "CODE1" +; init.s sends us here +.proc main + + ; In the same way that the CPU of the Commodore 64 computer can + ; interact with a floppy disk only through the CPU in the 1541 disk + ; drive, the main CPU of the Super NES can interact with the audio + ; hardware only through the sound CPU. When the system turns on, + ; the sound CPU is running the IPL (initial program load), which is + ; designed to receive data from the main CPU through communication + ; ports at $2140-$2143. Load a program and start it running. + .if ::USE_AUDIO + jsl spc_boot_apu + .endif + + jsl load_bg_tiles ; fill pattern table + jsl draw_bg ; fill nametable + jsl load_player_tiles + + ; In LoROM no larger than 16 Mbit, all program banks can reach + ; the system area (low RAM, PPU ports, and DMA ports). + ; This isn't true of larger LoROM or of HiROM (without tricks). + phk + plb + + ; Program the PPU for the display mode + seta8 + stz BGMODE ; mode 0 (four 2-bit BGs) with 8x8 tiles + stz BGCHRADDR ; bg planes 0-1 CHR at $0000 + + ; OBSEL needs the start of the sprite pattern table in $2000-word + ; units. In other words, bits 14 and 13 of the address go in bits + ; 1 and 0 of OBSEL. + lda #$4000 >> 13 + sta OBSEL ; sprite CHR at $4000, sprites are 8x8 and 16x16 + lda #>$6000 + sta NTADDR+0 ; plane 0 nametable at $6000 + sta NTADDR+1 ; plane 1 nametable also at $6000 + ; set up plane 0's scroll + stz BGSCROLLX+0 + stz BGSCROLLX+0 + lda #$FF + sta BGSCROLLY+0 ; The PPU displays lines 1-224, so set scroll to + sta BGSCROLLY+0 ; $FF so that the first displayed line is line 0 + + ; Pseudo hi-res and interlace are optional hardware features. + ; This demo doesn't use them much, but you can enable them when + ; building it to see what they look like. They're described at + ; https://wiki.superfamicom.org/registers + +.if ::USE_PSEUDOHIRES + ; set up plane 1's scroll, offset by 4 pixels, to show + ; the half-pixels of pseudohires + lda #4 + sta BGSCROLLX+2 + stz BGSCROLLX+2 + lda #$FF + sta BGSCROLLY+2 + sta BGSCROLLY+2 + lda #%00000010 ; enable plane 1 for left halves + sta BLENDSUB +phbit = SUB_HIRES ; split horizontal pixels +.else +phbit = 0 +.endif + +.if ::USE_INTERLACE +ilbit = INTERLACE +.else +ilbit = 0 +.endif + + lda #phbit|ilbit + sta PPURES + lda #%00010001 ; enable sprites and plane 0 + sta BLENDMAIN + lda #VBLANK_NMI|AUTOREAD ; but disable htime/vtime IRQ + sta PPUNMI + + ; Set up game variables, as if it were the start of a new level. + stz player_facing + stz player_dxlo + lda #184 + sta player_yhi + setaxy16 + stz player_frame_sub + lda #48 << 8 + sta player_xlo + +forever: + + jsl move_player + + ; Draw the player to a display list in main memory + setaxy16 + stz oam_used + jsl draw_player_sprite + + ; Mark remaining sprites as offscreen, then convert sprite size + ; data from the convenient-to-manipulate format described by + ; psycopathicteen to the packed format that the PPU actually uses. + ldx oam_used + jsl ppu_clear_oam + jsl ppu_pack_oamhi + + ; Backgrounds and OAM can be modified only during vertical blanking. + ; Wait for vertical blanking and copy prepared data to OAM. + jsl ppu_vsync + jsl ppu_copy_oam + seta8 + lda #$0F + sta PPUBRIGHT ; turn on rendering + + ; wait for control reading to finish + lda #$01 +padwait: + bit VBLSTATUS + bne padwait + + ; This is where you'd usually update the scroll position. + ; The scrolling registers are write-twice: first write bits 7-0 + ; then write bits 9-8 to the same address. + stz BGSCROLLX + stz BGSCROLLX + + jmp forever +.endproc diff --git a/Yamitracker-reoload/Other/lorom-template-master/src/musicseq.s b/Yamitracker-reoload/Other/lorom-template-master/src/musicseq.s new file mode 100644 index 0000000..924b0a1 --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/src/musicseq.s @@ -0,0 +1,318 @@ +.include "pentlyseq.inc" +.segment "SPCIMAGE" + +; Music data ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; TODO: Make a version of pentlyas.py that can output this format + +music_inst_table: + ; name lv rv frq smp att dec sus lvl + INST KICK, 11, 10, 3, 6, 31, 17, 0, 8 + INST SNARE, 10, 15, 3, 7, 31, 17, 0, 8 + INST HAT, 3, 5, 3, 5, 31, 17, 0, 8 + INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2 + INST PLING_4, 7, 7, 1, 1, 31, 19, 15, 2 + INST PLING_2, 9, 6, 1, 2, 31, 17, 15, 2 + INST BASSGUITAR, 12, 12, 1, 4, 31, 17, 15, 8 + INST BASSCLAR, 12, 12, 1, 2, 21, 21, 27, 4 + INST HORNBLAT, 3, 9, 1, 0, 21, 21, 27, 4 + INST XYLSHORT, 10, 6, 1, 2, 31, 23, 20, 2 + INST XYLMED, 10, 6, 1, 2, 31, 19, 17, 2 + +pently_patterns: + ; patterns 0-4: 2 AM + .addr PPDAT_0200_sq1, PPDAT_0200_sq2, PPDAT_0200_bass, PPDAT_0200_drums + ; pattern 4: cleared + .addr PPDAT_round_clear_sq1 + ; patterns 5-9: 3 AM + .addr PPDAT_0300_sq1, PPDAT_0300_sq2, PPDAT_0300_bass + .addr PPDAT_0300_drums + ; patterns 10-14: 4 AM + .addr PPDAT_0400_sq1, PPDAT_0400_sq2, PPDAT_0400_drums, PPDAT_0400_drums_2 + ; patterns 15-18: 4 PM + .addr PPDAT_1600__sq1, PPDAT_1600__sq2, PPDAT_1600__tri, PPDAT_1600__drums + ; patterns 19-22: 5 AM + .addr PPDAT_0500_sqloop, PPDAT_0500_triloop, PPDAT_0500_melody + .addr PPDAT_restore_vol + +pently_songs: +.addr PSDAT_0300, PSDAT_0500, PSDAT_0200, PSDAT_0400, PSDAT_round_clear, PSDAT_1600 + +;____________________________________________________________________ +; 2am theme +; This is the famous first eight bars of the second movement of +; Beethoven's "Pathetique" done in 9/8 like ACWW 2am. + +PSDAT_0200: + setTempo 1000 + playPat 0, 0, 23, PLING_8 + waitRows 200 + stopPat 0 + playPat 1, 1, 18, 4 + + ; playDrumPat 3, 3 + waitRows 144 + + + playPat 2, 2, 23, 4 + playPat 1, 1, 18, 4 + waitRows 255 + stopPat 1 + stopPat 2 + dalSegno + +PPDAT_0200_sq1: + .byt N_C|D_1, N_C|D_1, N_C|D_1 + .byt N_C|D_D2, N_C|D_D2, N_C|D_D2 + .byt N_D|D_2, N_D|D_2, N_D|D_2 + .byt N_D|D_D4, N_D|D_D4, N_D|D_D4 + .byt N_D|D_4, N_D|D_4, N_D|D_4 + .byt N_DS|D_4, N_DS|D_4, N_DS|D_4 + .byt N_DS|D_D8, N_DS|D_D8, N_DS|D_D8 + .byt N_DS|D_D8, N_DS|D_D8, N_DS|D_D8 + .byt N_E|D_D8, N_E|D_D8, N_E|D_D8 + .byt N_E|D_8, N_E|D_8, N_E|D_8 + .byt N_F|D_8, N_F|D_8, N_F|D_8 + .byt N_F|D_8, N_F|D_8, N_F|D_8 + .byt N_F|D_8, N_F|D_8, N_F|D_8 + + + + .byt PATEND + +PPDAT_0200_sq2: + + .byt N_C|D_8, N_CS|D_1, N_C|D_1 + .byt N_CS|D_8, N_C|D_1, N_C|D_1 + .byt N_C|D_8, N_CS|D_1, N_C|D_1 + .byt N_CS|D_8, N_C|D_1, N_C|D_1 + .byt N_C|D_8, N_CS|D_1, N_C|D_1 + +PPDAT_0200_bass: + .byt N_DS|D_2, N_DS|D_2, N_DS|D_2 + .byt PATEND + +PPDAT_0200_drums: + .byt PD_KICK|D_D8, PD_HAT|D_8, PD_HAT, PD_HAT|D_D8, PD_SNARE|D_D8, PD_HAT|D_D4 + .byt PATEND + + +;____________________________________________________________________ +; Dry Hands - C418 (Minecraft) + +PSDAT_0300: + setTempo 120 + playPat 0, 5, 32, PLING_8 + playPat 1, 6, 12, PLING_4 + playPat 2, 7, 0, PLING_4 + waitRows 32 + playDrumPat 3, 8 + segno + waitRows 96 + dalSegno + +PPDAT_0300_sq1: + ; Основная мелодия Dry Hands - правая рука + ; Первый мотив (A-E-F-G) + .byt N_A|D_4, N_E|D_4, N_F|D_4, N_G|D_4 + .byt N_F|D_4, N_E|D_4, N_D|D_4, N_E|D_4 + ; Повтор с вариацией + .byt N_A|D_4, N_E|D_4, N_F|D_4, N_G|D_4 + .byt N_F|D_4, N_E|D_4, N_D|D_4, N_C|D_4 + ; Второй мотив (C-D-E-F) + .byt N_C|D_4, N_D|D_4, N_E|D_4, N_F|D_4 + .byt N_E|D_4, N_D|D_4, N_C|D_4, N_D|D_4 + ; Возврат к первому мотиву + .byt N_A|D_4, N_E|D_4, N_F|D_4, N_G|D_4 + .byt N_F|D_4, N_E|D_4, N_D|D_4, N_E|D_4 + .byt PATEND + +PPDAT_0300_sq2: + ; Аккомпанемент - левая рука (аккорды Am, G, F, E) + ; Am аккорд (A-C-E) + + .byt N_A|D_2, N_C|D_2, N_E|D_2, N_A|D_2 + ; G аккорд (G-B-D) + .byt N_G|D_2, N_B|D_2, N_D|D_2, N_G|D_2 + ; F аккорд (F-A-C) + .byt N_F|D_2, N_A|D_2, N_C|D_2, N_F|D_2 + ; E аккорд (E-G#-B) - в оригинале E major, но для простоты E5 + .byt N_E|D_2, N_G|D_2, N_B|D_2, N_E|D_2 + ; Повтор + .byt N_A|D_2, N_C|D_2, N_E|D_2, N_A|D_2 + .byt N_G|D_2, N_B|D_2, N_D|D_2, N_G|D_2 + .byt N_F|D_2, N_A|D_2, N_C|D_2, N_F|D_2 + .byt N_E|D_2, N_G|D_2, N_B|D_2, N_E|D_2 + .byt PATEND + +PPDAT_0300_bass: + ; Басовая линия - простые долгие ноты + ; Тон Am + + .byt N_A|D_1, REST|D_2 + .byt N_A|D_1, REST|D_2 + ; Тон G + .byt N_G|D_1, REST|D_2 + .byt N_G|D_1, REST|D_2 + ; Тон F + .byt N_F|D_1, REST|D_2 + .byt N_F|D_1, REST|D_2 + ; Тон E + .byt N_E|D_1, REST|D_2 + .byt N_E|D_1, REST|D_2 + .byt PATEND + +PPDAT_0300_drums: + ; Очень мягкие ударные для атмосферы (не в оригинале, но для заполнения) + .byt PD_HAT|D_D8, REST|D_D8, PD_HAT|D_D8, REST|D_D8 + .byt PD_HAT|D_D8, REST|D_D8, PD_HAT|D_D8, REST|D_D8 + .byt PD_HAT|D_D8, REST|D_D8, PD_HAT|D_D8, REST|D_D8 + .byt PD_HAT|D_D8, REST|D_D8, PD_HAT|D_D8, REST|D_D8 + .byt PATEND + +;____________________________________________________________________ +; 4am theme + +PSDAT_0400: + setTempo 300 + playPat 1, 11, 12, XYLSHORT + playPat 2, 12, 12, XYLSHORT + waitRows 6 + playDrumPat 0, 13 + waitRows 84 + playDrumPat 0, 14 + segno + waitRows 192 + dalSegno + +PPDAT_0400_sq1: + .byt INSTRUMENT, XYLSHORT, N_FH|D_8, N_EH|D_4, N_DH|D_D8 + .byt INSTRUMENT, HORNBLAT, N_DH, REST|D_2, REST|D_D4 + .byt INSTRUMENT, XYLSHORT, N_EH|D_8, N_DH|D_4, N_CH|D_D8 + .byt INSTRUMENT, HORNBLAT, N_CH, REST|D_2, REST|D_D4 + .byt INSTRUMENT, XYLSHORT, N_DH|D_8, N_CH|D_4, N_BB|D_D8 + .byt INSTRUMENT, HORNBLAT, N_BB, REST|D_2, REST|D_D4 + .byt INSTRUMENT, XYLSHORT, N_BB|D_8, N_A|D_4, N_G|D_D8 + .byt INSTRUMENT, HORNBLAT, N_DH, REST|D_2, REST|D_D4 + .byt $FF +PPDAT_0400_sq2: + .byt INSTRUMENT, XYLSHORT, N_AH|D_D8, N_GH|D_D8, N_FH|D_D8 + .byt INSTRUMENT, HORNBLAT, N_FH, REST|D_2, REST|D_D4 + .byt INSTRUMENT, XYLSHORT, N_GH|D_D8, N_FH|D_D8, N_EH|D_D8 + .byt INSTRUMENT, HORNBLAT, N_EH, REST|D_2, REST|D_D4 + .byt INSTRUMENT, XYLSHORT, N_FH|D_D8, N_EH|D_D8, N_DH|D_D8 + .byt INSTRUMENT, HORNBLAT, N_DH, REST|D_2, REST|D_D4 + .byt INSTRUMENT, XYLSHORT, N_DH|D_D8, N_CH|D_D8, N_B|D_D8 + .byt INSTRUMENT, HORNBLAT, N_GH, REST|D_2, REST|D_D4 + .byt $FF +PPDAT_0400_drums_2: + .byt PD_KICK|D_D8, PD_HAT|D_D8, PD_SNARE|D_D8, PD_HAT|D_8, PD_KICK +PPDAT_0400_drums: + .byt PD_KICK|D_D8, PD_HAT|D_D4, PD_HAT|D_8, PD_KICK + .byt $FF + +;____________________________________________________________________ +; 5am theme +; +; This is melodies from the third movement of Beethoven's +; "Pathetique" combined with rhythms from ACPG 5am. +; At the time I transcribed this, there were about 400 bytes left +; in the RODATA segment of the PRG ROM. + +PSDAT_0500: + setTempo 300 + playDrumPat 3, 2 + playPat 3, 13, 13, PLING_4 + playPat 2, 5, 24, PLING_4 + playDrumPat 1, 4 + playPat 1, 10, 19, PLING_4 + waitRows 96 + playPat 4, 21, 24, XYLMED + playPat 3, 20, 0, BASSCLAR + waitRows 190 + playPat 2, 22, 24, PLING_4 + playPat 1, 22, 19, PLING_4 + waitRows 2 + stopPat 3 + stopPat 4 + dalSegno + +PPDAT_restore_vol: + .byt CHVOLUME, 4, REST|D_D2 + .byt PATEND + +PPDAT_0500_sqloop: + .byt INSTRUMENT, PLING_4 + .byt REST|D_8, N_E, N_A|D_8, N_B, N_CSH|D_8, REST, N_DH|D_8, N_B|D_8 + .byt INSTRUMENT, PLING_8 + .byt REST, N_E, N_A|D_8, N_B, N_CSH|D_8, REST, N_DH|D_8, N_B|D_8 + .byt REST, REST|D_D4, REST|D_1 + .byt INSTRUMENT, PLING_4 + .byt REST|D_8, N_E, N_A|D_8, N_B, N_CSH|D_8, REST, N_B|D_8, N_G|D_8 + .byt INSTRUMENT, PLING_8 + .byt REST, N_E, N_A|D_8, N_B, N_CSH|D_8, REST, N_B|D_8, N_G|D_8 + .byt REST, REST|D_D4, CHVOLUME, 3, REST|D_1 + .byt PATEND +PPDAT_0500_triloop: + .byt N_A|D_8, REST, N_G|D_8, N_FS|D_8, REST, N_G|D_8, REST|D_2 + .byt N_FS|D_8, REST, N_F|D_8, N_E|D_8 + .byt REST|D_D8, REST|D_4, REST|D_1 + .byt PATEND +PPDAT_0500_melody: + .byt REST, N_CSH, N_DH, N_CSH, N_B, N_CSH, N_DH, N_EH|D_8, N_EH|D_8, N_EH|D_D8 + .byt REST|D_8, REST|D_1, REST|D_1 + .byt N_EH|D_8, N_CSH, N_DH|D_8, N_EH|D_D8, N_DH, N_CSH|D_8, N_FSH|D_D8 + .byt REST|D_8, REST|D_1, REST|D_1 + .byt N_CSH|D_8, N_A, N_B|D_8, N_CSH|D_D8, N_B, N_A|D_8, N_DH|D_D8 + .byt REST|D_8, REST|D_1, REST|D_1 + .byt N_E|D_D8, N_E|D_D8, N_E|D_D8, N_E|D_8, N_A|D_D8 + .byt REST|D_8, REST|D_1, REST|D_1 + .byt PATEND + +;____________________________________________________________________ +; round cleared theme + +PSDAT_round_clear: + setTempo 60 + playPat 0, 4, 12, PLING_2 + playPat 1, 4, 21, PLING_2 + waitRows 5 + fine + +PPDAT_round_clear_sq1: + .byt N_F, N_A, N_G, N_C|D_8 + .byt PATEND + +;____________________________________________________________________ +; 4pm theme + +PSDAT_1600: + setTempo 300 + playPat 1, 15, 12, XYLSHORT + playPat 2, 16, 12, XYLSHORT + playPat 3, 17, 0, BASSGUITAR + playDrumPat 0, 18 + waitRows 48 + dalSegno + +PPDAT_1600__sq2: + .byt N_FH|D_D8, N_CH|D_D8, N_FH|D_D8, N_CH|D_8, N_FH + .byt N_EBH|D_D8, N_BB|D_D8, N_EBH|D_D8, N_BB|D_8, N_EBH + .byt N_FH|D_D8, N_DH|D_D8, N_FH|D_D8, N_DH|D_8, N_FH + .byt N_GH|D_D8, N_DH|D_D8, N_GH|D_D8, N_CH|D_8, N_GH + .byt PATEND +PPDAT_1600__sq1: + .byt N_AH|D_D4, N_AH|D_D4 + .byt N_AH|D_D4, N_AH|D_D4 + .byt N_AH|D_D4, N_AH|D_4, N_TIE, N_AH + .byt N_BBH|D_D4, N_BBH|D_4, N_TIE, N_BBH + .byt PATEND +PPDAT_1600__tri: + .byt N_FH|D_8, REST|D_D4, N_CH|D_8, REST|D_8 + .byt N_EBH|D_8, REST|D_D4, N_BB|D_8, REST|D_8 + .byt N_DH|D_8, REST|D_D4, N_A|D_8, REST|D_8 + .byt N_GH|D_8, REST|D_D4, N_CH|D_8, REST|D_8 + .byt PATEND +PPDAT_1600__drums: + .byt PD_KICK|D_D8, PD_SNARE|D_D8, PD_HAT|D_8, PD_KICK, PD_SNARE|D_D8 + .byt PATEND diff --git a/Yamitracker-reoload/Other/lorom-template-master/src/pentlyseq.inc b/Yamitracker-reoload/Other/lorom-template-master/src/pentlyseq.inc new file mode 100644 index 0000000..9a9eca8 --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/src/pentlyseq.inc @@ -0,0 +1,129 @@ +.ifndef PENTLYSEQ_INC +PENTLYSEQ_INC = 1 + +; Instrument format +; $00: Left volume (bit 7-4) and right volume (bit 3-0), +; used for balance and panning +; $01: Length of period in 16-sample units, or note 24 freq / 4186 Hz +; $02: Sample number +; $03: Attack and decay rates +; $04: Sustain threshold and rate +; $05-$07: Not used yet +.macro INST name, lvol, rvol, freqscale, samplenum, attack, decay, sustain, sustainlevel +name = (* - music_inst_table) / 8 +.ident(.concat("PD_", .string(name))) = (* - music_inst_table) + .assert (0 <= (lvol) && (lvol) <= 15), error, "left volume must be 0-15" + .assert (0 <= (rvol) && (rvol) <= 15), error, "right volume must be 0-15" + .assert (0 <= (rvol) && (rvol) <= 15), error, "right volume must be 0-15" + .assert (1 <= (attack) && (attack) <= 31), error, "attack must be 1-31" + .assert (attack & 1), error, "attack must be odd" + .assert (16 <= (decay) && (decay) <= 31), error, "decay must be 17-31" + .assert (0 <= (sustain) && (sustain) <= 31), error, "sustain must be 0-31" + .assert (1 <= (sustainlevel) && (sustainlevel) <= 8), error, "sustainlevel must be 1-8" + .byte ((lvol) << 4) | (rvol) + .byte freqscale + .byte samplenum + .byte ((attack) >> 1) | (((decay) >> 1) << 4) + .byte (sustain) | (((sustainlevel) - 1) << 5) + .byte $00,$00,$00 +.endmacro + +CON_PLAYPAT = $00 ; next: pattern, transpose, instrument +CON_WAITROWS = $20 ; next: number of rows to wait minus 1 +CON_FINE = $21 ; stop music now +CON_SEGNO = $22 ; set loop point +CON_DALSEGNO = $23 ; jump to loop point. if no point was set, jump to start of song. +CON_NOTEON = $28 +CON_SETTEMPO = $30 ; low bits: bits 10-8 of tempo in rows/min; next: bits 7-0 of tempo + +; Conductor macros +.macro playPat ch, patid, transpose, instrument + .byt CON_PLAYPAT|ch, patid, transpose, instrument +.endmacro +.macro playDrumPat ch, patid + .byt CON_PLAYPAT|ch, patid, $80, $80 +.endmacro +.macro stopPat ch + .byt CON_PLAYPAT|ch, 255, 0, 0 +.endmacro +.macro waitRows n + .byt CON_WAITROWS, (n)-1 +.endmacro +.macro fine + .byt CON_FINE +.endmacro +.macro segno + .byt CON_SEGNO +.endmacro +.macro dalSegno + .byt CON_DALSEGNO +.endmacro +.macro setTempo rowsPerMin +.local irpm +irpm = rowsPerMin + .byt CON_SETTEMPO|>irpm, 32 on a line) since the last vblank end +; +-------- 1: sliver overflow (>34 on a line) since the last vblank end +; this parallels bit 5 of $2002 on NES + +PPUSTATUS2 := $213F +; 76543210 PPU compositor status +; || |++++- PPU2 version (1-3, not counting minor versions of 3) +; || +----- 1: PPU is configured for 50 Hz (PAL) +; |+------- 1: GETXY has happened since last PPUSTATUS2 read +; +-------- Toggles every vblank; reflects top/bottom interlace field + +; S-PPU sprites ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +OBSEL := $2101 +; 76543210 +; ||||| ++- Sprite main pattern table (0=$0000, 1=$2000, 2=$4000, 3=$6000) +; |||++---- Alt pattern table offset (0=$1000, 1=$2000, 2=$3000, 3=$4000) +; +++------ 0: 8/16; 1: 8/32; 2: 8/64; 3: 16/32; 4: 16/32; 5: 32/64 +; (all sprites are square and 2D-mapped) +OBSIZE_8_16 = $00 +OBSIZE_8_32 = $20 +OBSIZE_8_64 = $40 +OBSIZE_16_32 = $60 +OBSIZE_16_64 = $80 +OBSIZE_32_64 = $A0 + +OAMADDR := $2102 ; 16-bit, 128 sprites followed by high-X/size table +OAMDATA := $2104 +OAMDATARD := $2138 +; Parallels NES $2003, except apparently word-addressed. +; OAM random access is working here, unlike on NES. +; If bit 15 is set, value at start of frame apparently also +; controls which sprites are in front + +; S-PPU background configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +BGMODE := $2105 +; 76543210 +; |||||+++- 0: 4 planes 2 bpp +; ||||| 1: 2 planes 4 bpp, 1 plane 2 bpp +; ||||| 2: 2 planes 4 bpp, OPT +; ||||| 3: 1 plane 8 bpp, 1 plane 4 bpp +; ||||| 4: 1 plane 8 bpp, 1 plane 2 bpp, OPT +; ||||| 5: 1 plane 4 bpp, 1 plane 2 bpp, hires +; ||||| 6: 1 plane 4 bpp, OPT, hires +; ||||| 7: 1 plane rot/scale +; ||||+---- In mode 1, set plane 2 high-prio in front of all others +; |||+----- Plane 0 tile size (0: 8x8, 1: 16x16) +; ||+------ Plane 1 tile size (0: 8x8, 1: 16x16) +; |+------- Plane 2 tile size (0: 8x8, 1: 16x16) +; +-------- Plane 3 tile size (0: 8x8, 1: 16x16) +; Modes 5 and 6 use 16x8 instead of 8x8 +; Mode 7 always uses 8x8 + +MOSAIC := $2106 +; 76543210 +; |||||||+- Apply mosaic to plane 0 (or mode 7 high-prio horizontal) +; ||||||+-- Apply mosaic to plane 1 (or mode 7 high-prio vertical) +; |||||+--- Apply mosaic to plane 2 +; ||||+---- Apply mosaic to plane 3 +; ++++----- Pixel size minus 1 (0=1x1, 15=16x16) + +NTADDR := $2107 ; through $210A +; 76543210 +; ||||||+- Nametable width (0: 1 screen, 1: 2 screens) +; |||||+-- Nametable height (0: 1 screen, 1: 2 screens) +; +++++--- Nametable base address in $400 units +; Each nametable in modes 0-6 is 32 rows, each 32 spaces long. +.define NTXY(xc,yc) ((xc)|((yc)<<5)) + +BGCHRADDR := $210B +; FEDCBA98 76543210 +; ||| ||| ||| +++- Pattern table base address for plane 0 +; ||| ||| +++----- Same for plane 1 +; ||| +++---------- Same for plane 2 +; +++-------------- Same for plane 3 + +M7SEL := $211A +; 76543210 +; || || +; || |+- Flip screen horizontally +; || +-- Flip screen vertically +; ++------- 0: repeat entire mode 7 plane +; 2: transparent outside; 3: tile $00 repeating outside +M7_HFLIP = $01 +M7_VFLIP = $02 +M7_WRAP = $00 +M7_NOWRAP = $80 +M7_BORDER00 = $C0 + +; S-PPU scrolling ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +BGSCROLLX := $210D ; double write low then high (000-3FF m0-6, 000-7FF m7) +BGSCROLLY := $210E ; similar. reg 210F-2114 are same for other planes +; Hi-res scrolling in modes 5-6 moves by whole (sub+main) pixels in X +; but half scanlines in Y. +; The top visible line is the line below the value written here. +; For example, in 224-line mode, if 12 is written, lines 13 through +; 237 of the background are visible. This differs from the NES. +; +; Mode 7 uses this value as the center of rotation. This differs +; from the GBA, which fixes the center of rotation at the top left. + +; 211B-2120 control mode 7 matrix; to be documented later + +; S-PPU VRAM data port ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +PPUCTRL := $2115 +; 76543210 +; | ||++- VRAM address increment (1, 32, 128, 128) +; | ++--- Rotate low bits of address left by 3 (off, 8, 9, or 10) +; +-------- 0: Increment after low data port access; 1: after high +; Corresponds to bit 2 of $2000 on NES +VRAM_DOWN = $01 +VRAM_M7DOWN = $02 +INC_DATAHI = $80 + +PPUADDR := $2116 ; Word address, not double-write anymore +PPUDATA := $2118 +PPUDATAHI := $2119 +PPUDATARD := $2139 ; Same dummy read as on NES is needed +PPUDATARDHI := $213A + +; S-PPU palette ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +CGADDR := $2121 +CGDATA := $2122 ; 5-bit BGR, write twice, low byte first +CGDATARD := $213B ; 5-bit BGR, read twice, low byte first +.define RGB(r,g,b) ((r)|((g)<<5)|((b)<<10)) + +; S-PPU window ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +BG12WINDOW := $2123 +BG34WINDOW := $2124 +OBJWINDOW := $2125 +; 76543210 +; ||||||++- 0: disable window 1 on BG1/BG3/OBJ; 2: enable; 3: enable outside +; ||||++--- 0: disable window 2 on BG1/BG3/OBJ; 2: enable; 3: enable outside +; ||++----- 0: disable window 1 on BG2/BG4; 2: enable; 3: enable outside +; ++------- 0: disable window 2 on BG2/BG4; 2: enable; 3: enable outside + +WINDOW1L := $2126 +WINDOW1R := $2127 +WINDOW2L := $2128 +WINDOW2R := $2129 + +BGWINDOP := $212A ; Window op is how windows are combined when both +OBJWINDOP := $212B ; windows 1 and 2 are enabled. +; 76543210 +; ||||||++- Window op for plane 0 or sprites (0: or, 1: and, 2: xor, 3: xnor) +; ||||++--- Window op for plane 1 or color window +; ||++----- Window op for plane 2 +; ++------- Window op for plane 3 + +; S-PPU blending (or "color math") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; The main layer enable reg, corresponding to PPUMASK on the NES, +; is BLENDMAIN. +BLENDMAIN := $212C ; Layers enabled for main input of blending +BLENDSUB := $212D ; Layers enabled for sub input of blending +WINDOWMAIN := $212E ; Windows enabled for main input of blending +WINDOWSUB := $212F ; Windows enabled for sub input of blending +; 76543210 +; ||||+- plane 0 +; |||+-- plane 1 +; ||+--- plane 2 +; |+---- plane 3 +; +----- sprites +; BLENDMAIN roughly parallels NES $2001 bits 4-3, +; except that turning off both bits doesn't disable rendering. +; (Use PPUBRIGHT for that.) + +; PPU1 appears to generate a stream of (main, sub) pairs, which +; PPU2 combines to form output colors. + +; Blending parameters not documented yet. Wait for a future demo. + +; When BGMODE is 0-6 (or during vblank in mode 7), a fast 16x8 +; signed multiply is available, finishing by the next CPU cycle. +M7MCAND := $211B ; write low then high +M7MUL := $211C ; 8-bit factor +M7PRODLO := $2134 +M7PRODHI := $2135 +M7PRODBANK := $2136 + +GETXY := $2137 ; read while $4201 D7 is set: populate x and y coords +XCOORD := $213C ; used with light guns, read twice +YCOORD := $213D ; also read twice + +; SPC700 communication ports ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +APU0 := $2140 +APU1 := $2141 +APU2 := $2142 +APU3 := $2143 + +; S-CPU interrupt control ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +PPUNMI := $4200 +; 76543210 +; | || +- Automatically read controllers in first 4 lines of vblank +; | ++----- 0: no IRQ (and acknowledge any pending); 1: IRQs at HTIME; +; | 2: one IRQ at (0, VTIME); 3: one IRQ at (HTIME, VTIME) +; +-------- 1: Enable NMI at start of vblank +VBLANK_NMI = $80 +HTIME_IRQ = $10 +VTIME_IRQ = $20 +HVTIME_IRQ = $30 +AUTOREAD = $01 + +HTIME := $4207 +HTIMEHI := $4208 +VTIME := $4209 +VTIMEHI := $420A + +NMISTATUS := $4210 ; read to acknowledge NMI +; 76543210 +; | |||| +; | ++++- DMA controller version (1, 2) where v1 has an HDMA glitch +; +-------- 1: Vblank has started since last read (like $2002.d7 on NES) + +TIMESTATUS := $4211 ; bit 7: htime/vtime IRQ occurred since last read; + ; read to acknowledge + +VBLSTATUS := $4212 +; 76543210 +; || +- 0: Controller reading finished; 1: busy +; |+------- 1: In hblank (including hblank of vblank) +; +-------- 1: In vblank + +ROMSPEED := $420D ; 0: slow ROM everywhere; 1: fast ROM in banks 80-FF + ; (requires 120ns or faster PRG ROM) + +; S-CPU controller I/O ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; Manual controller reading behaves almost exactly as on Famicom. +; For games using up to 2 standard controllers, these aren't needed, +; as you can enable controller autoreading along with vblank NMIs. +; But for games using (multitap, mouse, etc.), you will need to +; read the extra bits separately after the autoreader finishes. +JOY0 := $4016 +JOY1 := $4017 + +; In addition to the common strobe, each controller port has an +; additional output bit that can be used as, say, a chip select +; for SPI peripherals. +JOYOUT := $4201 +; 76543210 +; |+------- Controller 1 pin 6 output +; +-------- Controller 2 pin 6 output + +; Results of the autoreader +JOY1CUR := $4218 ; Bit 0: used by standard controllers +JOY2CUR := $421A +JOY1B1CUR := $421C ; Bit 1: used by multitap and a few oddball +JOY2B1CUR := $421E ; input devices +; FEDCBA98 76543210 +; BYSRUDLR AXLRTTTT +; |||||||| ||||++++- controller type (0: controller, 1: mouse) +; |||||||| ||++----- shoulder buttons +; ++-------++------- right face buttons +; ||++++---------- Control Pad +; ++-------------- center face buttons +KEY_B = $8000 +KEY_Y = $4000 +KEY_SELECT = $2000 +KEY_START = $1000 +KEY_UP = $0800 +KEY_DOWN = $0400 +KEY_LEFT = $0200 +KEY_RIGHT = $0100 +KEY_A = $0080 +KEY_X = $0040 +KEY_L = $0020 +KEY_R = $0010 + +; It is also possible to read the controller by reading only the +; upper 8 bits in 8-bit mode (m=1). This may be the path of least +; resistance for porting NES software to the Super NES. Be careful +; not to mix _HI addresses with non-_HI constants or vice versa. +; A, X, L, and R cannot be read this way. +JOY1CUR_HI := JOY1CUR + 1 +JOY2CUR_HI := JOY2CUR + 1 +KEY_HI_B = .hibyte(KEY_B) +KEY_HI_Y = .hibyte(KEY_Y) +KEY_HI_SELECT = .hibyte(KEY_SELECT) +KEY_HI_START = .hibyte(KEY_START) +KEY_HI_UP = .hibyte(KEY_UP) +KEY_HI_DOWN = .hibyte(KEY_DOWN) +KEY_HI_LEFT = .hibyte(KEY_LEFT) +KEY_HI_RIGHT = .hibyte(KEY_RIGHT) + +; S-CPU multiply and divide ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; Multiply unit. Also good for shifting pixels when drawing +; text in a proportional font. +CPUMCAND := $4202 ; unchanged by multiplications +CPUMUL := $4203 ; write here to fill CPUPROD 8 cycles later +CPUPROD := $4216 +CPUPRODHI := $4217 + +; Divide unit +CPUNUM := $4204 +CPUNUMHI := $4205 +CPUDEN := $4206 ; write divisor to fill CPUQUOT/CPUREM 16 cycles later +CPUQUOT := $4214 +CPUQUOTHI := $4215 +CPUREM := CPUPROD +CPUREMHI := CPUPRODHI + +; S-CPU DMA ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +COPYSTART := $420B ; writes of 1 << n start a DMA copy on channel n +HDMASTART := $420C ; writes of 1 << n start HDMA on channel n +; Don't run a DMA copy while HDMA is enabled, or you might run into +; a defect in revision 1 of the S-CPU that causes crashing. + +; There are 8 DMA channels. +; Registers for channels 1-7 start at $4310, $4320, ... +DMAMODE := $4300 +; 76543210 +; || ||+++- PPU address offset pattern +; || || 0: 0 1: 01 2: 00 3: 0011 4: 0123 5: 0101 +; || ++---- Memcpy only: 0: increment; 1: fixed; 2: decrement +; |+------- HDMA only: 1: Table contains pointers +; +-------- Direction (0: read CPU write PPU; 1: read PPU write CPU) +DMA_LINEAR = $00 +DMA_01 = $01 +DMA_00 = $02 ; For HDMA to double write ports; copies can use linear +DMA_0011 = $03 ; For HDMA to scroll positions and mode 7 matrices +DMA_0123 = $04 ; For HDMA to window registers +DMA_0101 = $05 ; Not sure how this would be useful for HDMA +DMA_FORWARD = $00 +DMA_CONST = $08 +DMA_BACKWARD = $10 +DMA_INDIRECT = $40 +DMA_READPPU = $80 + +DMAPPUREG := $4301 +DMAADDR := $4302 +DMAADDRHI := $4303 +DMAADDRBANK := $4304 +DMALEN := $4305 ; number of bytes, not number of transfers; 0 means 65536 +DMALENHI := $4306 + +; A future demo that includes HDMA effects would include port definitions. +;HDMAINDBANK := $4307 +;HDMATABLELO := $4308 +;HDMATABLEHI := $4309 +;HDMALINE := $430A + +; composite values for use with 16-bit writes to DMAMODE +DMAMODE_PPULOFILL = (= -128 && @distance <= 127, error, "branch out of range" + .byte <@distance +@next: +.endmacro + +.macro _op_branch inst, target + _branch_offset {.byte inst}, target +.endmacro + +.macro bbs val, target + _branch_offset {_op_bit $03, $20, val}, target +.endmacro + +.macro bbc val, target + _branch_offset {_op_bit $13, $20, val}, target +.endmacro + +.macro dbnz val, target + .if .xmatch ({val}, y) + _op_branch $fe, target + .else + _op_branch {$6e, val}, (target) + .endif +.endmacro + +.macro cbne val, target + .if .xmatch (.right (2, {val}), +x) + _branch_offset {.byte $de, .left (.tcount ({val})-2, {val})}, target + .else + _branch_offset {.byte $2e, val}, target + .endif +.endmacro + +.define bpl _op_branch $10, ; target +.define bra _op_branch $2f, ; target +.define bmi _op_branch $30, ; target +.define bvc _op_branch $50, ; target +.define bvs _op_branch $70, ; target +.define bcc _op_branch $90, ; target +.define bcs _op_branch $B0, ; target +.define bne _op_branch $D0, ; target +.define beq _op_branch $f0, ; target + +;**** OP !abs + +.macro _op_abs op, val; **** + .if .xmatch (.left (1, {val}), !) + .byte op + .word .right (.tcount ({val})-1, {val}) + .elseif ::DEFAULT_ABS && (!.xmatch (.left (1, {val}), <)) + _op_warn_default_abs + .byte op + .word val + .else + .assert 0, error, "unsupported addressing mode" + .endif +.endmacro + +.define tset1 _op_abs $0E, ; abs +.define tclr1 _op_abs $4E, ; abs +.define call _op_abs $3F, ; abs + +.macro jmp_ val; **** + .if .xmatch (.left (2, {val}), [!) && .xmatch (.right (3, {val}), +x]) + .byte $1f + .word .mid (2, .tcount ({val})-5, {val}) + .elseif ::DEFAULT_ABS && .xmatch (.left (1, {val}), [) && .xmatch (.right (3, {val}), +x]) + _op_warn_default_abs + .byte $1f + .word .mid (1, .tcount ({val})-4, {val}) + .else + _op_abs $5f, val + .endif +.endmacro + +;**** $1FFF.bit + +.macro _op_mbit op, val + .local @begin, @addr +@begin: + .repeat .tcount ({val}), i + .if .xmatch (.mid (i, 1, {val}), .) + @addr = .left (i, {val}) + .assert 0 <= @addr && @addr <= $1FFF, error, "address exceeds 13 bits" + .byte op + .word (.right (.tcount ({val})-(i+1), {val}))*$2000 + @addr + .endif + .endrepeat + ; TODO: report error during assembly rather than linking + .assert (*-@begin) = 3, error, "unsupported addressing mode" +.endmacro + +.macro _op_mbit_c op, carry, val + .if .xmatch (carry, c) + _op_mbit op, val + .else + .assert 0, error, "destination must be C" + .endif +.endmacro + +.macro _op_mbit_inv op, carry, val + .if .xmatch (.left (1, {val}), /) + _op_mbit_c op+$20, carry, .right (.tcount ({val})-1, {val}) + .else + _op_mbit_c op, carry, val + .endif +.endmacro + +.define not1 _op_mbit $EA, ; abs.bit +.define or1 _op_mbit_inv $0A, ; abs.bit +.define and1 _op_mbit_inv $4A, ; abs.bit +.define eor1 _op_mbit_inv $8A, ; abs.bit + +.macro mov1 dest, src + .if .xmatch ({src}, c) + _op_mbit_c $CA, src, dest + .else + _op_mbit_c $AA, dest, src + .endif +.endmacro + +;**** OP dp + +.macro _op_dp op, dp + .byte op, (dp) +.endmacro + +.define decw _op_dp $1a, ; dp +.define incw _op_dp $3a, ; dp + +;**** OP reg + +.macro _op_one_reg op, reg, err, val + .if .xmatch ({val}, reg) + .byte op + .else + .assert 0, error, err + .endif +.endmacro + +.macro _op_w op, reg, val + _op_one_reg op, ya, "only supports ya", reg + .byte val +.endmacro + +.define cmpw _op_w $5A, ; dp +.define addw _op_w $7A, ; dp +.define subw _op_w $9A, ; dp + +.macro movw dest, src + .if .xmatch ({src}, ya) + _op_w $DA, src, dest + .else + _op_w $BA, dest, src + .endif +.endmacro + +.macro div dest, src + .if .xmatch ({dest}, ya) && .xmatch ({src}, x) + .byte $9e + .else + .assert 0, error, "only supports ya, x" + .endif +.endmacro + +.define xcn _op_one_reg $9f, a, "only supports a", +.define das _op_one_reg $BE, a, "only supports a", +.define daa _op_one_reg $DF, a, "only supports a", +.define mul _op_one_reg $CF, ya, "only supports ya", + +;**** Unique + +.macro tcall val + .assert 0 <= (val) && (val) <= 15, error, "invalid value" + .byte (val)*$10 + $01 +.endmacro + +.macro pcall val + .byte $4f, (val) +.endmacro + +;**** Implied + +.macro _op_implied op + .byte op +.endmacro + +.define nop _op_implied $00 +.define brk _op_implied $0f +.define clrp _op_implied $20 +.define setp _op_implied $40 +.define clrc _op_implied $60 +.define ret _op_implied $6f +.define reti _op_implied $7f +.define setc _op_implied $80 +.define ei _op_implied $A0 +.define di _op_implied $C0 +.define clrv _op_implied $E0 +.define notc _op_implied $ED +.define sleep _op_implied $ef +.define stop _op_implied $ff + +.ifndef CASPC_65XX + .define and and_ + .define eor eor_ + .define adc adc_ + .define sbc sbc_ + .define cmp cmp_ + + .define dec dec_ + .define inc inc_ + .define lsr lsr_ + .define asl asl_ + .define rol rol_ + .define ror ror_ + + .define jmp jmp_ +.endif + +;.endif diff --git a/Yamitracker-reoload/Other/lorom-template-master/src/spcheader.s b/Yamitracker-reoload/Other/lorom-template-master/src/spcheader.s new file mode 100644 index 0000000..2996470 --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/src/spcheader.s @@ -0,0 +1,48 @@ +; +; This file contains the metadata for an SPC700 save state file, as +; used by Super NES music players for PC. It is not used at all in +; the .sfc file. +; +.import spc_entry +HAS_TITLE = 1 + +.segment "SPCHEADER" +spcheaderstart: + .byte "SNES-SPC700 Sound File Data v0.30", 26, 26 + .if HAS_TITLE + .byte 26 + .else + .byte 27 + .endif + .byte 30 ; format version + .assert *-spcheaderstart = $25, error, "magic wrong size" + + .addr spc_entry + .byte 0, 0, 0, 0, $EF ; A, X, Y, P, S + .assert *-spcheaderstart = $2C, error, "registers wrong size" + + .if HAS_TITLE + .res (spcheaderstart + $2E - *) +tracktitle: .byte "Selnow" + .res (spcheaderstart + $4E - *) +albumtitle: .byte "Pino's LoROM template" + .res (spcheaderstart + $6E - *) +rippername: .byte "Pino P" + .res (spcheaderstart + $7E - *) +tracksubtitle: .byte 0 + .res (spcheaderstart + $9E - *) +builddate: .byte 0 + .res (spcheaderstart + $A9 - *) +tracktime_s: .byte "100" + .res (spcheaderstart + $AC - *) +fadetime_ms: .byte "0" + .res (spcheaderstart + $B1 - *) +artistname: .byte "Pino P" + .res (spcheaderstart + $D1 - *) +muted_ch: .byte %00000000 +emulator: .byte 0 ; 0=other, 1=zsnes, 2=snes9x + .endif + +.segment "SPCFOOTER" + .res 128, $00 ; dsp regs + diff --git a/Yamitracker-reoload/Other/lorom-template-master/src/spcimage.s b/Yamitracker-reoload/Other/lorom-template-master/src/spcimage.s new file mode 100644 index 0000000..e9ee3d5 --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/src/spcimage.s @@ -0,0 +1,778 @@ +.setcpu "none" +.include "spc-65c02.inc" +.include "pentlyseq.inc" + +.macro stya addr +.local addr1 +addr1 = addr + .assert addr <= $00FE, error, "stya works only in zero page" + movw sample_dir + stya DSPADDR + + lda #8000/TIMER_HZ ; S-Pently will use 125 Hz + sta TIMERPERIOD + lda #%10000001 + sta TIMEREN + lda TIMERVAL + rts +.endproc + +.proc pently_start_music + pha + ; Start the song + lda #<300 + ldy #>300 + stya music_tempoLo + lda #0 + sta conductorWaitRows + + pla + asl a + tax + lda pently_songs,x + sta conductorPos + sta conductorSegnoLo + lda pently_songs+1,x + sta conductorPos+1 + sta conductorSegnoHi + ; falls through +.endproc + +.proc pently_stop_all_tracks + ldx #NUM_CHANNELS - 1 + initpatternloop: + lda #silentPattern + sta (60 * TIMER_HZ) + sta tempo_counter+1 + + jsr play_conductor + ldx #NUM_CHANNELS - 1 + : + lda defaultGraceTime,x + sta graceTime,x + bne nr_notGraceTime + jsr processTrackPattern + nr_notGraceTime: + dex + bpl :- + jmp keyoff_ready_notes + +between_rows: + ldx #NUM_CHANNELS - 1 + : +.if 1 + lda graceTime,x + beq br_notGraceTime + sec + sbc #1 + sta graceTime,x + bne br_notGraceTime + jsr processTrackPattern +.endif + br_notGraceTime: + dex + bpl :- + jmp keyoff_ready_notes +.endproc + +.proc play_conductor + lda silentPattern + sta = 64, the playback frequency is unspecified. +; @param X voice ID (0-7) +; @param A pitch scale (BRR blocks per period) +; @param Y semitone number +; @return A, Y, $00 trashed; X preserved +.proc ch_set_pitch +pitchhi = $00 + sta pitchhi + txa + xcn a + ora #DSP_CFREQLO + sta DSPADDR + tya +octave_loop: + cmp #12 + bcc octave_done + sbc #12 + asl pitchhi + jmp octave_loop +octave_done: + tay + lda notefreqs_lowbyte,y + ldy pitchhi + mul ya + sta DSPDATA + inc DSPADDR + ;clc ; octave_loop always ends with carry clear + tya + adc pitchhi + sta DSPDATA + rts +.endproc + +;; +; Sets volume, sample ID, and envelope of channel X to instrument A. +; @param X channel number (0-7) +; @param A instrument number +; @return $02: pointer to instrument; $04: channel volume; +; A: instrument's pitch scale; Y trashed; X preserved +.proc ch_set_inst +instptr = $02 +chvolalt = $04 + ldy #8 + mul ya + clc + adc #music_inst_table + sta instptr+1 + txa + xcn a + sta DSPADDR + + ; Set left channel volume + ldy #0 + lda (instptr),y + pha + xcn a + and #$0F ; 0 to 15 + ldy len(doubled): + continue + if doubled[csaddress - 7] & 0xEF == mode: + using_mode, using_modename = mode, modename + if args.verbose: + print("%sautodetected %s ($%02x) mapping mode" + % (errpfx, modename, doubled[csaddress - 7]), + file=sys.stderr) + break + if using_mode is None: + print(errpfx+"could not detect mapping mode as lorom, hirom, or exhirom", + file=sys.stderr) + sys.exit(1) + mode_from_file = doubled[csaddress - 7] + modediff = (using_mode ^ mode_from_file) & 0xEF + if modediff: + if args.verbose: + print("%swarning: %s ($%02x) mapping mode doesn't match $%02x mode in file" + % (errpfx, modename, doubled[csaddress - 7]), + file=sys.stderr) + + # Actually calculate the checksum + doubled[csaddress:csaddress + 4] = [0, 0, 255, 255] + bytesum = sum(doubled) + doubled[csaddress + 2] = bytesum & 0xFF + doubled[csaddress + 3] = (bytesum >> 8) & 0xFF + doubled[csaddress + 0] = doubled[csaddress + 2] ^ 0xFF + doubled[csaddress + 1] = doubled[csaddress + 3] ^ 0xFF + if args.verbose: + print("%ssum of bytes is %s ($%08x)" + % (errpfx, bytesum, bytesum), file=sys.stderr) + tcsum = ' '.join('%02x' % b for b in doubled[csaddress:csaddress + 4]) + print("%schecksum bytes are %s" + % (errpfx, tcsum), file=sys.stderr) + + if not args.double: + del doubled[len(data):] + with open(outfilename, 'wb') as outfp: + outfp.write(doubled) + +if __name__=='__main__': +## try: +## main('fixchecksum.py --help'.split()) +## except SystemExit: +## print("then it'd exit. Good.") +## else: +## assert False +## try: +## main('fixchecksum.py --version'.split()) +## except SystemExit: +## print("then it'd exit. Good.") +## else: +## assert False +## main('fixchecksum.py -v ../lorom-template.sfc fixed.sfc --mode 20'.split()) + main() diff --git a/Yamitracker-reoload/Other/lorom-template-master/tools/getpalette.py b/Yamitracker-reoload/Other/lorom-template-master/tools/getpalette.py new file mode 100755 index 0000000..a346f98 --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/tools/getpalette.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 +""" +Spits out the indexed palette of an image in some format + +Copyright 2019 Damian Yerrick +Copying and distribution of this file, with or without +modification, are permitted in any medium without royalty +provided the copyright notice and this notice are preserved. +This file is offered as-is, without any warranty. +""" +import sys +import argparse +from PIL import Image + +def get_bgr555(rgbtuples): + return [ + ((b & 0xF8) << 7) | ((g & 0xF8) << 2) | ((r & 0xF8) >> 3) + for r, g, b in rgbtuples + ] + +def format_bgr555_le(rgbtuples): + out = bytearray() + for word in get_bgr555(rgbtuples): + out.append(word & 0xFF) + out.append((word >> 8) & 0xFF) + return bytes(out) + +def format_wordsperline(words, prefix="", n=8): + lines = [] + wordsperline = 8 + for i in range(0, len(words), wordsperline): + lines.append("%s%s\n" % (prefix, ",".join(words[i:i + wordsperline]))) + return "".join(lines) + +def format_bgr555_ca65(rgbtuples): + words = ["$%04x" % r for r in get_bgr555(rgbtuples)] + return format_wordsperline(words, " .word ", 8) + +def format_bgr555_rgbasm(rgbtuples): + words = ["$%04x" % r for r in get_bgr555(rgbtuples)] + return format_wordsperline(words, " dw ", 8) + +def format_hextriplet(rgbtuples): + return "".join("#%02x%02x%02x\n" % r for r in rgbtuples) + +formats = { + "bgr555-le": format_bgr555_le, + "bgr555-ca65": format_bgr555_ca65, + "bgr555-rgbasm": format_bgr555_rgbasm, + "hextriplet": format_hextriplet +} + +def parse_slice(s): + s = s.split(':', 1) + if not all(x.isdigit() for x in s): + raise ValueError("nondigits in slice %s" % args.slice) + rside = int(s[-1]) + lside = int(s[0]) if len(s) >= 2 else 0 + out = (lside, rside) + if lside > rside: + raise ValueError("slice %d:%d not ascending" % out) + if rside >= 256: + raise ValueError("slice %d:%d beyond 256" % out) + return out + +def parse_argv(argv): + p = argparse.ArgumentParser() + formatchoices = sorted(formats) + p.add_argument("image", + help="half-open interval of palette entries to keep (e.g. 3:9 for 3, 4, ..., 8)") + p.add_argument("-f", "--format", + help="choose format", + choices=formatchoices, default="hextriplet") + p.add_argument("-n", "--slice", + help="count or half-open interval of palette entries to write (e.g. 8 for 0, 1, 2, ..., 7; or 3:11 for 3, 4, 5, ..., 10)", + type=parse_slice, default=(0, 256)) + p.add_argument("-o", "--output", + help="write (default: standard output)", + default="-") + return p.parse_args(argv[1:]) + +def main(argv=None): + args = parse_argv(argv or sys.argv) + im = Image.open(args.image) + if im.mode != 'P': + raise ValueError("%s: does not use indexed color" % args.image) + + palette = im.getpalette() + palette = [tuple(palette[i:i + 3]) for i in range(0, len(palette), 3)] + palette = palette[args.slice[0]:args.slice[1]] + + out = formats[args.format](palette) + out_byteslike = hasattr(out, "decode") + if args.output == '-': + if out_byteslike: + sys.stdout.buffer.write(out) + else: + sys.stdout.write(out) + else: + with open(args.output, "wb" if out_byteslike else "w") as outfp: + outfp.write(out) + +if __name__=='__main__': +## main(["getpalette.py", "../tilesets/EWJ2cover.png", "-n", "48", "-f", "bgr555-ca65"]) + main() + diff --git a/Yamitracker-reoload/Other/lorom-template-master/tools/pilbmp2nes.py b/Yamitracker-reoload/Other/lorom-template-master/tools/pilbmp2nes.py new file mode 100755 index 0000000..a586842 --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/tools/pilbmp2nes.py @@ -0,0 +1,225 @@ +#!/usr/bin/env python3 +# +# Bitmap to multi-console CHR converter using Pillow, the +# Python Imaging Library +# +# Copyright 2014-2025 Damian Yerrick +# Copying and distribution of this file, with or without +# modification, are permitted in any medium without royalty +# provided the copyright notice and this notice are preserved. +# This file is offered as-is, without any warranty. +# +from __future__ import with_statement, print_function, unicode_literals +from PIL import Image +from time import sleep + +def formatTilePlanar(tile, planemap, hflip=False, little=False): + """Turn a tile into bitplanes. + +Planemap opcodes: +10 -- bit 1 then bit 0 of each tile +0,1 -- planar interleaved by rows +0;1 -- planar interlaved by planes +0,1;2,3 -- SNES/PCE format + +""" + hflip = 7 if hflip else 0 + if (tile.size != (8, 8)): + return None + pixels = list(tile.getdata()) + pixelrows = [pixels[i:i + 8] for i in range(0, 64, 8)] + if hflip: + for row in pixelrows: + row.reverse() + out = bytearray() + + planemap = [[[int(c) for c in row] + for row in plane.split(',')] + for plane in planemap.split(';')] + # format: [tile-plane number][plane-within-row number][bit number] + + # we have five (!) nested loops + # outermost: separate planes + # within separate planes: pixel rows + # within pixel rows: row planes + # within row planes: pixels + # within pixels: bits + for plane in planemap: + for pxrow in pixelrows: + for rowplane in plane: + rowbits = 1 + thisrow = bytearray() + for px in pxrow: + for bitnum in rowplane: + rowbits = (rowbits << 1) | ((px >> bitnum) & 1) + if rowbits >= 0x100: + thisrow.append(rowbits & 0xFF) + rowbits = 1 + out.extend(thisrow[::-1] if little else thisrow) + return bytes(out) + +def pilbmp2chr(im, tileWidth=8, tileHeight=8, + formatTile=lambda im: formatTilePlanar(im, "0;1")): + """Convert a bitmap image into a list of byte strings representing tiles.""" + im.load() + (w, h) = im.size + outdata = [] + for mt_y in range(0, h, tileHeight): + for mt_x in range(0, w, tileWidth): + metatile = im.crop((mt_x, mt_y, + mt_x + tileWidth, mt_y + tileHeight)) + for tile_y in range(0, tileHeight, 8): + for tile_x in range(0, tileWidth, 8): + tile = metatile.crop((tile_x, tile_y, + tile_x + 8, tile_y + 8)) + data = formatTile(tile) + outdata.append(data) + return outdata + +def parse_argv(argv): + # optparse is still used because of how it supports mixing + # named arguments (-i and -o) with positional arguments + from optparse import OptionParser + parser = OptionParser(usage="usage: %prog [options] [-i] INFILE [-o] OUTFILE") + parser.add_option("-i", "--image", dest="infilename", + help="read image from INFILE", metavar="INFILE") + parser.add_option("-o", "--output", dest="outfilename", + help="write CHR data to OUTFILE", metavar="OUTFILE") + parser.add_option("-W", "--tile-width", dest="tileWidth", + help="set width of metatiles", metavar="HEIGHT", + type="int", default=8) + parser.add_option("--packbits", dest="packbits", + help="use Apple PackBits RLE compression if available", + action="store_true", default=False) + parser.add_option("--pb8", dest="use_pb8", + help="use PB8 RLE compression if available", + action="store_true", default=False) + parser.add_option("-H", "--tile-height", dest="tileHeight", + help="set height of metatiles", metavar="HEIGHT", + type="int", default=8) + parser.add_option("-1", dest="planes", + help="set 1bpp mode (default: 2bpp NES)", + action="store_const", const="0", default="0;1") + parser.add_option("-p", "--planes", dest="planes", + help="set the plane map (1bpp: 0) (NES: 0;1) (GB: 0,1) (SMS:0,1,2,3) (TG16/SNES: 0,1;2,3) (MD: 3210)") + parser.add_option("--hflip", dest="hflip", + help="horizontally flip all tiles (most significant pixel on right)", + action="store_true", default=False) + parser.add_option("--little", dest="little", + help="reverse the bytes within each row-plane (needed for GBA and a few others)", + action="store_true", default=False) + parser.add_option("--add", dest="addamt", + help="value to add to each pixel", + type="int", default=0) + parser.add_option("--add0", dest="addamt0", + help="value to add to pixels of color 0 (if different)", + type="int", default=None) + (options, args) = parser.parse_args(argv[1:]) + + tileWidth = int(options.tileWidth) + if tileWidth <= 0: + raise ValueError("tile width '%d' must be positive" % tileWidth) + + tileHeight = int(options.tileHeight) + if tileHeight <= 0: + raise ValueError("tile height '%d' must be positive" % tileHeight) + + # Fill unfilled roles with positional arguments + argsreader = iter(args) + try: + infilename = options.infilename + if infilename is None: + infilename = next(argsreader) + except StopIteration: + raise ValueError("not enough filenames") + + outfilename = options.outfilename + if outfilename is None: + try: + outfilename = next(argsreader) + except StopIteration: + outfilename = '-' + if outfilename == '-': + import sys + if sys.stdout.isatty(): + raise ValueError("cannot write CHR to terminal") + + addamt, addamt0 = options.addamt, options.addamt0 + if addamt0 is None: addamt0 = addamt + + return (infilename, outfilename, tileWidth, tileHeight, + options.planes, options.hflip, options.little, + options.packbits, options.use_pb8, addamt, addamt0) + +argvTestingMode = True + +def make_stdout_binary(): + """Ensure that sys.stdout is in binary mode, with no newline translation.""" + + # Recipe from + # http://code.activestate.com/recipes/65443-sending-binary-data-to-stdout-under-windows/ + # via http://stackoverflow.com/a/2374507/2738262 + if sys.platform == "win32": + import os, msvcrt + msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) + +def main(argv=None): + import sys + if argv is None: + argv = sys.argv + if (argvTestingMode and len(argv) < 2 + and sys.stdin.isatty() and sys.stdout.isatty()): + argv.extend(input('args:').split()) + try: + (infilename, outfilename, tileWidth, tileHeight, + planes, hflip, little, + usePackBits, use_pb8, addamt, addamt0) = parse_argv(argv) + except Exception as e: + sys.stderr.write("%s: %s\n" % (argv[0], str(e))) + sys.exit(1) + + im = Image.open(infilename) + im.load() + if len(im.getbands()) > 1: + print("%s: %s: image must be indexed (not mode %s)" + % (argv[0], infilename, im.mode), file=sys.stderr) + sys.exit(1) + + # Subpalette shift + if addamt or addamt0: + px = bytearray(im.getdata()) + for i in range(len(px)): + thispixel = px[i] + px[i] = thispixel + (addamt if thispixel else addamt0) + im.putdata(px) + + outdata = pilbmp2chr(im, tileWidth, tileHeight, + lambda im: formatTilePlanar(im, planes, hflip, little)) + outdata = b''.join(outdata) + im = None + if use_pb8: + from pb8 import pb8 + outdata = pb8(outdata) + elif usePackBits: + from packbits import PackBits + sz = len(outdata) % 0x10000 + outdata = PackBits(outdata).flush().tobytes() + outdata = b''.join([chr(sz >> 8), chr(sz & 0xFF), outdata]) + + # Write output file + outfp = None + try: + if outfilename != '-': + outfp = open(outfilename, 'wb') + else: + outfp = sys.stdout + make_stdout_binary() + outfp.write(outdata) + finally: + if outfp and outfilename != '-': + outfp.close() + +if __name__=='__main__': + main() +## main(['pilbmp2nes.py', '../tilesets/char_pinocchio.png', 'char_pinocchio.chr']) +## main(['pilbmp2nes.py', '--packbits', '../tilesets/char_pinocchio.png', 'char_pinocchio.pkb']) diff --git a/Yamitracker-reoload/Other/lorom-template-master/tools/wav2brr.py b/Yamitracker-reoload/Other/lorom-template-master/tools/wav2brr.py new file mode 100755 index 0000000..ed332da --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/tools/wav2brr.py @@ -0,0 +1,307 @@ +#!/usr/bin/env python3 +# +# Wave to BRR converter +# Copyright 2014, 2021 Damian Yerrick +# +# Copying and distribution of this file, with or without +# modification, are permitted in any medium without royalty +# provided the copyright notice and this notice are preserved. +# This file is offered as-is, without any warranty. + +from contextlib import closing +import array, wave, sys, os, optparse +try: + import numpy as np +except ImportError: + using_numpy = False +else: + using_numpy = True + +def naive_convolve(fircoeffs, wavdata): + lside = len(fircoeffs) - 1 + rside = len(fircoeffs) - lside + return [sum(a * b + for a, b in zip(fircoeffs[max(lside - i, 0):], + wavdata[max(i - lside, 0): i + rside])) + for i in range(len(wavdata) + len(fircoeffs) - 1)] + +convolve = np.convolve if using_numpy else naive_convolve + +def convolve_test(): + fircoeffs = [1/16, 4/16, 6/16, 4/16, 1/16] + data = [0, 1, 0, 0, 0, 1, 2, 3, 4, 5] + naive_result = naive_convolve(fircoeffs, data) + assert len(fircoeffs) + len(data) == len(naive_result) + 1 + print(naive_result) + print(list(np.convolve(fircoeffs, data))) + +def load_wave_as_mono_s16(filename): + little = array.array('H', b'\x01\x00')[0] == 1 + with closing(wave.open(filename, "rb")) as infp: + bytedepth = infp.getsampwidth() + if bytedepth not in (1, 2): + raise ValueError("unsupported sampwidth") + n_ch = infp.getnchannels() + datatype = 'h' if bytedepth == 2 else 'B' + freq = infp.getframerate() + length = infp.getnframes() + data = array.array(datatype, infp.readframes(length)) + if datatype == 'B': + # Expand 8 to 16 bit + data = array.array('h', ((c - 128) << 8 for c in data)) + elif not little: + # 16-bit data is little-endian in the wave file; it needs to + # be byteswapped for big-endian platforms + data.byteswap() + if n_ch > 1: + # average all channels + data = array.array('h', (int(round(sum(data[i:i + n_ch]) / n_ch)) + for i in range(0, len(data), n_ch))) + return (freq, data) + +def save_wave_as_mono_s16(filename, freq, data): + data = array.array('h', (min(max(s, -32767), 32767) for s in data)) + little = array.array('H', b'\x01\x00')[0] == 1 + if not little: + data.byteswap() + with closing(wave.open(filename, "wb")) as outfp: + outfp.setnchannels(1) + outfp.setsampwidth(2) + outfp.setframerate(freq) + outfp.writeframes(data.tobytes()) + +def brr_preemphasize(wavdata): + """Emphasize a sample's highs to compensate for S-DSP Gaussian interpolation.""" + preem = \ + [0.00417456, -0.017636, 0.03906008, -0.06200069, 0.07113042, + -0.0255472, -0.26998287, 1.52160339, -0.26998287, -0.0255472, + 0.07113042, -0.06200069, 0.03906008, -0.017636, 0.00417456] + return [int(round(s)) for s in convolve(preem, wavdata)[7:-7]] + +def brr_deemphasize(wavdata): + """Approximate the effect of Gaussian interpolation.""" + deem = \ + [372/2048, 1304/2048, 372/2048] + return [int(round(s)) for s in convolve(deem, wavdata)[1:-1]] + + +brr_filters = [ + (0, 0), + (0, 0.9375), + (-0.9375, 1.90625), + (-0.8125, 1.796875) +] + +def enfilter(wav, coeffs, prevs=[], quant=None): + """Calculates residuals from an IIR predictive filter. + +wav: iterable of sample values +prevs: previous block of quantized and decoded samples +quant: None during test filtering; 2 to 4096 during encoding + +""" + prevs = list(prevs)[-len(coeffs):] + if len(prevs) < len(coeffs): + prevs = ([0] * len(coeffs) + prevs)[-len(coeffs):] + out = [] + for c in wav: + pred = sum(coeff * prev + for coeff, prev in zip(coeffs, prevs[-len(coeffs):])) + rescaled = resid = (c - pred) + if quant: + resid = int(round(resid / quant)) + resid = max(-8, min(7, resid)) + rescaled = resid * quant + out.append(resid) + prevs.append(rescaled + pred) + return out, prevs[-len(coeffs):] + +def defilter(wav, coeffs, prevs=[], quant=1): + """Applies an IIR predictive filter to residuals. + +wav: block of unpacked residuals +prevs: previous block of decoded samples +quant: number by which all residuals shall be multiplied + +""" + prevs = list(prevs)[-len(coeffs):] + if len(prevs) < len(coeffs): + prevs = ([0] * len(coeffs) + prevs)[-len(coeffs):] + out = [] + for resid in wav: + rescaled = resid * quant + pred = sum(coeff * prev + for coeff, prev in zip(coeffs, prevs[-len(coeffs):])) + c = (rescaled + int(round(pred))) + out.append(c) + prevs.append(c) + return out + +CLIP_MAX = 32000 + +def encode_brr(wav, looped=False): + prevs = [] + out = bytearray() + for t in range(0, len(wav), 16): + piece = wav[t:t + 16] + + # Occasionally, treble boost may cause a sample to clip. + peak = max(abs(c) for c in piece) + if peak > CLIP_MAX: +## print("clip peak %d at time %d" % (peak, t)) + piece = [max(min(c, CLIP_MAX), -CLIP_MAX) for c in piece] + + if prevs: + # Calculate the peak residual for this piece with + # each filter, then choose the smallest + trials = [max(abs(resid) + for resid in enfilter(piece, coeffs, prevs)[0]) + for coeffs in brr_filters] + peak, filterid = min((r, i) for (i, r) in enumerate(trials)) + else: + # first block always uses filter 0 + peak = max(abs(resid) for resid in piece) + filterid = 0 + + logquant = 0 + while logquant < 12 and peak >= (7 << logquant): + logquant += 1 + resids, prevs = enfilter(piece, brr_filters[filterid], + prevs or [], 1 << (logquant + 0)) + resids.extend([0] * (16 - len(resids))) + byte0 = (logquant << 4) | (filterid << 2) + if t + 16 >= len(wav): + byte0 = byte0 | (3 if looped else 1) +## print("filter #%d, scale %d,\nresids %s\n%s" +## % (filterid, 1 << logquant, repr(resids), repr(list(piece)))) + out.append(byte0) + for i in range(0, len(resids), 2): + hinibble = resids[i] & 0x0F + lonibble = resids[i + 1] & 0x0F + out.append((hinibble << 4) | lonibble) + return bytes(out) + +def decode_brr(brrdata): + prevs = [0, 0] + out = [] + for i in range(0, len(brrdata), 9): + piece = bytes(brrdata[i:i + 9]) + logquant = piece[0] >> 4 + filterid = (piece[0] >> 2) & 0x03 + resids = [((b >> i & 0x0F) ^ 8) - 8 + for b in piece[1:] for i in (4, 0)] + decoded = defilter(resids, brr_filters[filterid], + prevs, 1 << (logquant + 0)) +## print("filter #%d, scale %d,\nresids %s\n%s" +## % (filterid, 1 << logquant, repr(resids), repr(decoded))) + out.extend(decoded) + prevs = decoded + return out + +# Command line parsing and help ##################################### +# +# Easy is hard. It takes a lot of code and a lot of text to make a +# program self-documenting and resilient to bad input. + +usageText = "usage: %prog [options] [-i] INFILE [-o] OUTFILE" +versionText = """wav2brr 0.04 + +Copyright 2014, 2021 Damian Yerrick +Copying and distribution of this file, with or without +modification, are permitted in any medium without royalty provided +the copyright notice and this notice are preserved in all source +code copies. This file is offered as-is, without any warranty. +""" +descriptionText = """ +Audio converter for Super NES S-DSP. +""".strip() + +# 8372 Hz is concert middle C times 32 samples (two BRR blocks) per cycle +DEFAULT_RATE = 8372 + +def parse_argv(argv): + parser = optparse.OptionParser(usage=usageText, version=versionText, + description=descriptionText) + parser.add_option("-i", "--input", dest="infilename", + help="read from INFILE", + metavar="INFILE") + parser.add_option("-o", "--output", dest="outfilename", + help="write output to OUTFILE", + metavar="OUTFILE") + parser.add_option("-d", "--decompress", + action="store_true", dest="decompress", default=False, + help="decompress BRR to wave (default: compress wave to BRR)") + parser.add_option("--emphasize", + action="store_true", dest="emph", default=False, + help="read wave, write preemphasized (treble boosted) wave") + parser.add_option("--deemphasize", + action="store_true", dest="deemph", default=False, + help="read wave, write deemphasized wave") + parser.add_option("-r", "--rate", dest="rate", + metavar="RATE", type="int", default=None, + help="sample rate in Hz when writing wave file " + "(default: %d for -d; equal to input rate for --emph and --deemph)" + % (DEFAULT_RATE,)) + parser.add_option("--loop", + action="store_true", dest="loop", default=False, + help="set the BRR's loop bit") + parser.add_option("--skip-filter", + action="store_true", dest="skipfilter", default=False, + help="skip (de)emphasis when (de)compressing") + + (options, pos) = parser.parse_args(argv[1:]) + + if options.rate is not None and not 10 <= options.rate <= 128000: + parser.error("output sample rate must be 10 to 128000 Hz") + + # Fill unfilled roles with positional arguments + pos = iter(pos) + try: + options.infilename = options.infilename or next(pos) + except StopIteration: + parser.error("no input file; try %s --help" + % os.path.basename(sys.argv[0])) + try: + options.outfilename = options.outfilename or next(pos) + except StopIteration: + parser.error("no output file") + + # make sure no trailing arguments + try: + next(pos) + parser.error("too many filenames") + except StopIteration: + pass + return options + +def main(argv=None): + opts = parse_argv(argv or sys.argv) + if opts.emph: + freq, wave = load_wave_as_mono_s16(opts.infilename) + wave = brr_preemphasize(wave) + save_wave_as_mono_s16(opts.outfilename, opts.rate or freq, wave) + elif opts.deemph: + freq, wave = load_wave_as_mono_s16(opts.infilename) + wave = brr_deeemphasize(wave) + save_wave_as_mono_s16(opts.outfilename, opts.rate or freq, wave) + elif opts.decompress: + with open(opts.infilename, 'rb') as infp: + brrdata = infp.read() + out = decode_brr(brrdata) + if not opts.skipfilter: + out = brr_deemphasize(out) + save_wave_as_mono_s16(opts.outfilename, opts.rate or DEFAULT_RATE, out) + else: + freq, wave = load_wave_as_mono_s16(opts.infilename) + if not opts.skipfilter: + wave = brr_preemphasize(wave) + brrdata = encode_brr(wave, looped=opts.loop) + with open(opts.outfilename, 'wb') as outfp: + outfp.write(brrdata) + +if __name__=='__main__': + if "idlelib" in sys.modules: + main() + else: + main() +## convolve_test() diff --git a/Yamitracker-reoload/Other/lorom-template-master/tools/zipup.py b/Yamitracker-reoload/Other/lorom-template-master/tools/zipup.py new file mode 100755 index 0000000..e85a013 --- /dev/null +++ b/Yamitracker-reoload/Other/lorom-template-master/tools/zipup.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python3 +# Zipfile packing tool +# +# Copyright 2014-2015 Damian Yerrick +# Copying and distribution of this file, with or without +# modification, are permitted in any medium without royalty +# provided the copyright notice and this notice are preserved. +# This file is offered as-is, without any warranty. +# +import sys +import os +import argparse +import zipfile +import tarfile + +def make_zipfile(outname, filenames, prefix): + with zipfile.ZipFile(outname, "w", zipfile.ZIP_DEFLATED) as z: + for filename in filenames: + z.write(filename, prefix+filename) + +def make_tarfile(outname, filenames, prefix, mode="w"): + with tarfile.open(outname, "w", zipfile.ZIP_DEFLATED) as z: + for filename in filenames: + z.add(filename, prefix+filename) + +def make_tarfile_gz(outname, filenames, prefix): + return make_tarfile(outname, filenames, prefix, mode="w:gz") + +def make_tarfile_bz2(outname, filenames, foldername): + return make_tarfile(outname, filenames, prefix, mode="w:bz2") + +def make_tarfile_xz(outname, filenames, foldername): + return make_tarfile(outname, filenames, prefix, mode="w:xz") + +formathandlers = [ + (".zip", make_zipfile), + (".tar", make_tarfile), + (".tgz", make_tarfile_gz), + (".tar.gz", make_tarfile_gz), + (".tbz", make_tarfile_bz2), + (".tar.bz2", make_tarfile_bz2), + (".txz", make_tarfile_xz), + (".tar.xz", make_tarfile_xz), +] + +tophelptext = """ +Make a zip or tar archive containing specified files without a tar bomb. +""" +bottomhelptext = """ + +Supported output formats: """+", ".join(x[0] for x in formathandlers) + +def parse_argv(argv): + p = argparse.ArgumentParser( + description=tophelptext, epilog=bottomhelptext + ) + p.add_argument("filelist", + help="name of file containing newline-separated relative " + "paths to files to include, or - for standard input") + p.add_argument("foldername", + help="name of folder in archive (e.g. hello-1.2.5)") + p.add_argument("-o", "--output", + help="path of archive (default: foldername + .zip)") + return p.parse_args(argv[1:]) + +def get_writerfunc(outname): + outbaselower = os.path.basename(outname).lower() + for ext, writerfunc in formathandlers: + if outbaselower.endswith(ext): + return writerfunc + raise KeyError(os.path.splitext(outbaselower)[1]) + +def main(argv=None): + args = parse_argv(argv or sys.argv) + if args.filelist == '-': + filenames = set(sys.stdin) + else: + with open(args.filelist, "r") as infp: + filenames = set(infp) + filenames = set(x.strip() for x in filenames) + filenames = sorted(x for x in filenames if x) + + outname = args.output or args.foldername + ".zip" + writerfunc = get_writerfunc(outname) + writerfunc(outname, filenames, args.foldername+"/") + +if __name__=='__main__': + main() diff --git a/Yamitracker-reoload/Ovrdrive_37.txt b/Yamitracker-reoload/Ovrdrive_37.txt new file mode 100644 index 0000000..d22d8b2 --- /dev/null +++ b/Yamitracker-reoload/Ovrdrive_37.txt @@ -0,0 +1,157 @@ +[2025-12-10 10:59:26] STATUS: Запуск логгирования MIDI данных +[2025-12-10 10:59:26] STATUS: Устройство: /dev/dmmidi1 +[2025-12-10 10:59:26] STATUS: Устройство успешно открыто +[2025-12-10 10:59:26] STATUS: Настройка порта завершена, скорость: 115200 бод +[2025-12-10 10:59:34] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:59:34] CONTROL: Controller=0x20 Value=112 +[2025-12-10 10:59:34] PROGRAM_CHANGE: Program=29 +[2025-12-10 10:59:34] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:59:34] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:59:34] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:59:34] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:59:34] STATUS: Данные без статуса: 0x08 +[2025-12-10 10:59:34] STATUS: Данные без статуса: 0x00 +[2025-12-10 10:59:34] STATUS: Данные без статуса: 0x0D +[2025-12-10 10:59:34] STATUS: Данные без статуса: 0x42 +[2025-12-10 10:59:34] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:59:34] CONTROL: Controller=0x00 Value=0 +[2025-12-10 10:59:34] CONTROL: Controller=0x20 Value=112 +[2025-12-10 10:59:34] PROGRAM_CHANGE: Program=81 +[2025-12-10 10:59:34] STATUS: Неизвестное MIDI сообщение: 0xF0 +[2025-12-10 10:59:34] STATUS: Данные без статуса: 0x43 +[2025-12-10 10:59:34] STATUS: Данные без статуса: 0x10 +[2025-12-10 10:59:34] STATUS: Данные без статуса: 0x4C +[2025-12-10 10:59:34] STATUS: Данные без статуса: 0x08 +[2025-12-10 10:59:34] STATUS: Данные без статуса: 0x01 +[2025-12-10 10:59:34] STATUS: Данные без статуса: 0x0D +[2025-12-10 10:59:34] STATUS: Данные без статуса: 0x42 +[2025-12-10 10:59:34] STATUS: Неизвестное MIDI сообщение: 0xF7 +[2025-12-10 10:59:34] CONTROL: Controller=0x07 (Volume) Value=76 +[2025-12-10 10:59:34] CONTROL: Controller=0x5B Value=30 +[2025-12-10 10:59:34] CONTROL: Controller=0x5D Value=60 +[2025-12-10 10:59:34] CONTROL: Controller=0x07 (Volume) Value=92 +[2025-12-10 10:59:34] CONTROL: Controller=0x5B Value=30 +[2025-12-10 10:59:34] CONTROL: Controller=0x5D Value=60 +[2025-12-10 10:59:38] NOTE_ON: Hex=18 Note=Unknown Velocity=78 +[2025-12-10 10:59:38] NOTE_OFF: Hex=18 Note=Unknown +[2025-12-10 10:59:39] NOTE_ON: Hex=19 Note=Unknown Velocity=73 +[2025-12-10 10:59:39] NOTE_OFF: Hex=19 Note=Unknown +[2025-12-10 10:59:40] NOTE_ON: Hex=1A Note=Unknown Velocity=66 +[2025-12-10 10:59:40] NOTE_OFF: Hex=1A Note=Unknown +[2025-12-10 10:59:41] NOTE_ON: Hex=1B Note=Unknown Velocity=60 +[2025-12-10 10:59:41] NOTE_OFF: Hex=1B Note=Unknown +[2025-12-10 10:59:42] NOTE_ON: Hex=1C Note=Unknown Velocity=63 +[2025-12-10 10:59:42] NOTE_OFF: Hex=1C Note=Unknown +[2025-12-10 10:59:43] NOTE_ON: Hex=1D Note=Unknown Velocity=77 +[2025-12-10 10:59:44] NOTE_OFF: Hex=1D Note=Unknown +[2025-12-10 10:59:44] NOTE_ON: Hex=1E Note=Unknown Velocity=64 +[2025-12-10 10:59:45] NOTE_OFF: Hex=1E Note=Unknown +[2025-12-10 10:59:45] NOTE_ON: Hex=1F Note=Unknown Velocity=74 +[2025-12-10 10:59:46] NOTE_OFF: Hex=1F Note=Unknown +[2025-12-10 10:59:46] NOTE_ON: Hex=20 Note=Unknown Velocity=57 +[2025-12-10 10:59:47] NOTE_OFF: Hex=20 Note=Unknown +[2025-12-10 10:59:47] NOTE_ON: Hex=21 Note=Unknown Velocity=61 +[2025-12-10 10:59:48] NOTE_OFF: Hex=21 Note=Unknown +[2025-12-10 10:59:48] NOTE_ON: Hex=22 Note=Unknown Velocity=57 +[2025-12-10 10:59:49] NOTE_OFF: Hex=22 Note=Unknown +[2025-12-10 10:59:49] NOTE_ON: Hex=23 Note=Unknown Velocity=63 +[2025-12-10 10:59:50] NOTE_OFF: Hex=23 Note=Unknown +[2025-12-10 10:59:50] NOTE_ON: Hex=24 Note=C1 Velocity=67 +[2025-12-10 10:59:51] NOTE_OFF: Hex=24 Note=C1 +[2025-12-10 10:59:51] NOTE_ON: Hex=25 Note=C#1 Velocity=47 +[2025-12-10 10:59:52] NOTE_OFF: Hex=25 Note=C#1 +[2025-12-10 10:59:52] NOTE_ON: Hex=26 Note=D1 Velocity=45 +[2025-12-10 10:59:52] NOTE_OFF: Hex=26 Note=D1 +[2025-12-10 10:59:53] NOTE_ON: Hex=27 Note=D#1 Velocity=44 +[2025-12-10 10:59:53] NOTE_OFF: Hex=27 Note=D#1 +[2025-12-10 10:59:54] NOTE_ON: Hex=28 Note=E1 Velocity=48 +[2025-12-10 10:59:54] NOTE_OFF: Hex=28 Note=E1 +[2025-12-10 10:59:55] NOTE_ON: Hex=29 Note=F1 Velocity=49 +[2025-12-10 10:59:55] NOTE_OFF: Hex=29 Note=F1 +[2025-12-10 10:59:56] NOTE_ON: Hex=2A Note=F#1 Velocity=58 +[2025-12-10 10:59:56] NOTE_OFF: Hex=2A Note=F#1 +[2025-12-10 10:59:56] NOTE_ON: Hex=2B Note=G1 Velocity=47 +[2025-12-10 10:59:57] NOTE_OFF: Hex=2B Note=G1 +[2025-12-10 10:59:57] NOTE_ON: Hex=2C Note=G#1 Velocity=44 +[2025-12-10 10:59:58] NOTE_OFF: Hex=2C Note=G#1 +[2025-12-10 10:59:58] NOTE_ON: Hex=2D Note=A1 Velocity=58 +[2025-12-10 10:59:59] NOTE_OFF: Hex=2D Note=A1 +[2025-12-10 10:59:59] NOTE_ON: Hex=2E Note=A#1 Velocity=36 +[2025-12-10 11:00:00] NOTE_OFF: Hex=2E Note=A#1 +[2025-12-10 11:00:00] NOTE_ON: Hex=2F Note=B1 Velocity=46 +[2025-12-10 11:00:00] NOTE_OFF: Hex=2F Note=B1 +[2025-12-10 11:00:01] NOTE_ON: Hex=30 Note=C2 Velocity=49 +[2025-12-10 11:00:01] NOTE_OFF: Hex=30 Note=C2 +[2025-12-10 11:00:01] NOTE_ON: Hex=31 Note=C#2 Velocity=47 +[2025-12-10 11:00:02] NOTE_OFF: Hex=31 Note=C#2 +[2025-12-10 11:00:02] NOTE_ON: Hex=32 Note=D2 Velocity=46 +[2025-12-10 11:00:03] NOTE_OFF: Hex=32 Note=D2 +[2025-12-10 11:00:03] NOTE_ON: Hex=33 Note=D#2 Velocity=55 +[2025-12-10 11:00:04] NOTE_OFF: Hex=33 Note=D#2 +[2025-12-10 11:00:04] NOTE_ON: Hex=34 Note=E2 Velocity=55 +[2025-12-10 11:00:04] NOTE_OFF: Hex=34 Note=E2 +[2025-12-10 11:00:05] NOTE_ON: Hex=35 Note=F2 Velocity=43 +[2025-12-10 11:00:05] NOTE_OFF: Hex=35 Note=F2 +[2025-12-10 11:00:06] NOTE_ON: Hex=36 Note=F#2 Velocity=59 +[2025-12-10 11:00:06] NOTE_OFF: Hex=36 Note=F#2 +[2025-12-10 11:00:06] NOTE_ON: Hex=37 Note=G2 Velocity=61 +[2025-12-10 11:00:07] NOTE_OFF: Hex=37 Note=G2 +[2025-12-10 11:00:07] NOTE_ON: Hex=38 Note=G#2 Velocity=33 +[2025-12-10 11:00:07] NOTE_OFF: Hex=38 Note=G#2 +[2025-12-10 11:00:08] NOTE_ON: Hex=39 Note=A2 Velocity=51 +[2025-12-10 11:00:08] NOTE_OFF: Hex=39 Note=A2 +[2025-12-10 11:00:09] NOTE_ON: Hex=3A Note=A#2 Velocity=47 +[2025-12-10 11:00:09] NOTE_OFF: Hex=3A Note=A#2 +[2025-12-10 11:00:09] NOTE_ON: Hex=3B Note=B2 Velocity=44 +[2025-12-10 11:00:10] NOTE_OFF: Hex=3B Note=B2 +[2025-12-10 11:00:10] NOTE_ON: Hex=3C Note=C3 Velocity=54 +[2025-12-10 11:00:10] NOTE_OFF: Hex=3C Note=C3 +[2025-12-10 11:00:11] NOTE_ON: Hex=3D Note=C#3 Velocity=58 +[2025-12-10 11:00:11] NOTE_OFF: Hex=3D Note=C#3 +[2025-12-10 11:00:11] NOTE_ON: Hex=3E Note=D3 Velocity=61 +[2025-12-10 11:00:12] NOTE_OFF: Hex=3E Note=D3 +[2025-12-10 11:00:12] NOTE_ON: Hex=3F Note=D#3 Velocity=60 +[2025-12-10 11:00:13] NOTE_OFF: Hex=3F Note=D#3 +[2025-12-10 11:00:13] NOTE_ON: Hex=40 Note=E3 Velocity=57 +[2025-12-10 11:00:13] NOTE_OFF: Hex=40 Note=E3 +[2025-12-10 11:00:14] NOTE_ON: Hex=41 Note=F3 Velocity=53 +[2025-12-10 11:00:14] NOTE_OFF: Hex=41 Note=F3 +[2025-12-10 11:00:14] NOTE_ON: Hex=42 Note=F#3 Velocity=58 +[2025-12-10 11:00:15] NOTE_OFF: Hex=42 Note=F#3 +[2025-12-10 11:00:15] NOTE_ON: Hex=43 Note=G3 Velocity=57 +[2025-12-10 11:00:15] NOTE_OFF: Hex=43 Note=G3 +[2025-12-10 11:00:16] NOTE_ON: Hex=44 Note=G#3 Velocity=53 +[2025-12-10 11:00:16] NOTE_OFF: Hex=44 Note=G#3 +[2025-12-10 11:00:16] NOTE_ON: Hex=45 Note=A3 Velocity=58 +[2025-12-10 11:00:17] NOTE_OFF: Hex=45 Note=A3 +[2025-12-10 11:00:17] NOTE_ON: Hex=46 Note=A#3 Velocity=63 +[2025-12-10 11:00:17] NOTE_OFF: Hex=46 Note=A#3 +[2025-12-10 11:00:18] NOTE_ON: Hex=47 Note=B3 Velocity=49 +[2025-12-10 11:00:18] NOTE_OFF: Hex=47 Note=B3 +[2025-12-10 11:00:18] NOTE_ON: Hex=48 Note=C4 Velocity=63 +[2025-12-10 11:00:19] NOTE_OFF: Hex=48 Note=C4 +[2025-12-10 11:00:19] NOTE_ON: Hex=49 Note=C#4 Velocity=57 +[2025-12-10 11:00:20] NOTE_OFF: Hex=49 Note=C#4 +[2025-12-10 11:00:20] NOTE_ON: Hex=4A Note=D4 Velocity=59 +[2025-12-10 11:00:20] NOTE_OFF: Hex=4A Note=D4 +[2025-12-10 11:00:20] NOTE_ON: Hex=4B Note=D#4 Velocity=58 +[2025-12-10 11:00:21] NOTE_OFF: Hex=4B Note=D#4 +[2025-12-10 11:00:21] NOTE_ON: Hex=4C Note=E4 Velocity=59 +[2025-12-10 11:00:21] NOTE_OFF: Hex=4C Note=E4 +[2025-12-10 11:00:22] NOTE_ON: Hex=4D Note=F4 Velocity=55 +[2025-12-10 11:00:22] NOTE_OFF: Hex=4D Note=F4 +[2025-12-10 11:00:22] NOTE_ON: Hex=4E Note=F#4 Velocity=64 +[2025-12-10 11:00:23] NOTE_OFF: Hex=4E Note=F#4 +[2025-12-10 11:00:23] NOTE_ON: Hex=4F Note=G4 Velocity=47 +[2025-12-10 11:00:23] NOTE_OFF: Hex=4F Note=G4 +[2025-12-10 11:00:24] NOTE_ON: Hex=50 Note=G#4 Velocity=60 +[2025-12-10 11:00:24] NOTE_OFF: Hex=50 Note=G#4 +[2025-12-10 11:00:24] NOTE_ON: Hex=51 Note=A4 Velocity=53 +[2025-12-10 11:00:25] NOTE_OFF: Hex=51 Note=A4 +[2025-12-10 11:00:25] NOTE_ON: Hex=52 Note=A#4 Velocity=63 +[2025-12-10 11:00:25] NOTE_OFF: Hex=52 Note=A#4 +[2025-12-10 11:00:26] NOTE_ON: Hex=53 Note=B4 Velocity=53 +[2025-12-10 11:00:26] NOTE_OFF: Hex=53 Note=B4 +[2025-12-10 11:00:26] NOTE_ON: Hex=54 Note=C5 Velocity=72 +[2025-12-10 11:00:27] NOTE_OFF: Hex=54 Note=C5 +[2025-12-10 11:00:29] STATUS: Логгирование остановлено diff --git a/README.md b/Yamitracker-reoload/README.md similarity index 100% rename from README.md rename to Yamitracker-reoload/README.md diff --git a/Yamitracker-reoload/Yamitracker/.qtcreator/Yamitracker.pro.user b/Yamitracker-reoload/Yamitracker/.qtcreator/Yamitracker.pro.user new file mode 100644 index 0000000..fcac744 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker/.qtcreator/Yamitracker.pro.user @@ -0,0 +1,263 @@ + + + + + + EnvironmentId + {6395eb3f-fc2a-4125-bb4f-a9c51f02958b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {0acbc229-4897-4c6e-a23f-ae7c45394b0c} + 0 + 0 + 0 + + 0 + /home/acer1117/build-Yamitracker-Desktop-Debug + /home/acer1117/build-Yamitracker-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/acer1117/build-Yamitracker-Desktop-Release + /home/acer1117/build-Yamitracker-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/acer1117/build-Yamitracker-Desktop-Profile + /home/acer1117/build-Yamitracker-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro + /home/acer1117/Yamitracker/Yamitracker.pro + false + true + true + false + true + /home/acer1117/build-Yamitracker-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/Yamitracker/Yamitracker.pro b/Yamitracker-reoload/Yamitracker/Yamitracker.pro similarity index 78% rename from Yamitracker/Yamitracker.pro rename to Yamitracker-reoload/Yamitracker/Yamitracker.pro index 0d6b060..039802e 100644 --- a/Yamitracker/Yamitracker.pro +++ b/Yamitracker-reoload/Yamitracker/Yamitracker.pro @@ -6,10 +6,12 @@ CONFIG += c++11 SOURCES += \ main.cpp \ - yamitracker.cpp + yamitracker.cpp \ + simplemidiwriter.cpp HEADERS += \ - yamitracker.h + yamitracker.h \ + simplemidiwriter.h FORMS += \ yamitracker.ui diff --git a/Yamitracker-reoload/Yamitracker/Yamitracker.pro.user b/Yamitracker-reoload/Yamitracker/Yamitracker.pro.user new file mode 100644 index 0000000..fcac744 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker/Yamitracker.pro.user @@ -0,0 +1,263 @@ + + + + + + EnvironmentId + {6395eb3f-fc2a-4125-bb4f-a9c51f02958b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {0acbc229-4897-4c6e-a23f-ae7c45394b0c} + 0 + 0 + 0 + + 0 + /home/acer1117/build-Yamitracker-Desktop-Debug + /home/acer1117/build-Yamitracker-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/acer1117/build-Yamitracker-Desktop-Release + /home/acer1117/build-Yamitracker-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/acer1117/build-Yamitracker-Desktop-Profile + /home/acer1117/build-Yamitracker-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro + /home/acer1117/Yamitracker/Yamitracker.pro + false + true + true + false + true + /home/acer1117/build-Yamitracker-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker/Yamitracker_ru_RU.ts b/Yamitracker-reoload/Yamitracker/Yamitracker_ru_RU.ts new file mode 100644 index 0000000..743f57f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker/Yamitracker_ru_RU.ts @@ -0,0 +1,3 @@ + + + diff --git a/Yamitracker/main.cpp b/Yamitracker-reoload/Yamitracker/main.cpp similarity index 100% rename from Yamitracker/main.cpp rename to Yamitracker-reoload/Yamitracker/main.cpp diff --git a/Yamitracker-reoload/Yamitracker/simplemidiwriter.cpp b/Yamitracker-reoload/Yamitracker/simplemidiwriter.cpp new file mode 100644 index 0000000..8c79dcf --- /dev/null +++ b/Yamitracker-reoload/Yamitracker/simplemidiwriter.cpp @@ -0,0 +1,149 @@ +#include "simplemidiwriter.h" +#include +#include + +SimpleMidiWriter::SimpleMidiWriter() + : m_isRecording(false) + , m_startTime(0) +{ +} + +SimpleMidiWriter::~SimpleMidiWriter() +{ +} + +bool SimpleMidiWriter::startRecording(const QString &filename) +{ + if (m_isRecording) { + stopRecording(); + } + + m_events.clear(); + m_isRecording = true; + m_startTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + + qDebug() << "Started MIDI recording"; + return true; +} + +bool SimpleMidiWriter::stopRecording() +{ + if (!m_isRecording) { + return false; + } + + m_isRecording = false; + qDebug() << "Stopped MIDI recording, events count:" << m_events.size(); + return true; +} + +bool SimpleMidiWriter::saveToFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::WriteOnly)) { + qDebug() << "Cannot open file for writing:" << filename; + return false; + } + + QDataStream stream(&file); + stream.setByteOrder(QDataStream::BigEndian); + + writeMidiHeader(stream); + + writeMidiTrack(stream); + + file.close(); + qDebug() << "MIDI file saved:" << filename; + return true; +} + +void SimpleMidiWriter::addNoteOn(double time, int channel, int note, int velocity) +{ + if (!m_isRecording) return; + + MidiEvent event; + event.time = time; + event.type = 0x90; + event.channel = channel; + event.note = note; + event.velocity = velocity; + + m_events.append(event); +} + +void SimpleMidiWriter::addNoteOff(double time, int channel, int note) +{ + if (!m_isRecording) return; + + MidiEvent event; + event.time = time; + event.type = 0x80; + event.channel = channel; + event.note = note; + event.velocity = 0; + + m_events.append(event); +} + +void SimpleMidiWriter::clear() +{ + m_events.clear(); + m_isRecording = false; +} + +void SimpleMidiWriter::writeVariableLength(QDataStream &stream, quint32 value) +{ + quint32 buffer = value & 0x7F; + + while ((value >>= 7) > 0) { + buffer <<= 8; + buffer |= 0x80; + buffer += (value & 0x7F); + } + + while (true) { + stream << (quint8)(buffer & 0xFF); + if (buffer & 0x80) { + buffer >>= 8; + } else { + break; + } + } +} + +void SimpleMidiWriter::writeMidiHeader(QDataStream &stream) +{ + stream.writeRawData("MThd", 4); + stream << (quint32)6; + stream << (quint16)1; + stream << (quint16)1; + stream << (quint16)480; +} + +void SimpleMidiWriter::writeMidiTrack(QDataStream &stream) +{ + QByteArray trackData; + QDataStream trackStream(&trackData, QIODevice::WriteOnly); + trackStream.setByteOrder(QDataStream::BigEndian); + + double lastTime = 0; + + for (const MidiEvent &event : m_events) { + quint32 deltaTime = (event.time - lastTime) * 480; + lastTime = event.time; + + writeVariableLength(trackStream, deltaTime); + + quint8 statusByte = event.type | (event.channel & 0x0F); + trackStream << statusByte; + trackStream << (quint8)event.note; + trackStream << (quint8)event.velocity; + } + + writeVariableLength(trackStream, 0); + trackStream.writeRawData("\xFF\x2F\x00", 3); + + stream.writeRawData("MTrk", 4); + stream << (quint32)trackData.size(); + stream.writeRawData(trackData.constData(), trackData.size()); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker/simplemidiwriter.h b/Yamitracker-reoload/Yamitracker/simplemidiwriter.h new file mode 100644 index 0000000..d940c0b --- /dev/null +++ b/Yamitracker-reoload/Yamitracker/simplemidiwriter.h @@ -0,0 +1,43 @@ +#ifndef SIMPLEMIDIWRITER_H +#define SIMPLEMIDIWRITER_H + +#include +#include +#include +#include + +struct MidiEvent { + double time; + int type; + int channel; + int note; + int velocity; +}; + +class SimpleMidiWriter +{ +public: + SimpleMidiWriter(); + ~SimpleMidiWriter(); + + bool startRecording(const QString &filename); + bool stopRecording(); + bool saveToFile(const QString &filename); + + void addNoteOn(double time, int channel, int note, int velocity); + void addNoteOff(double time, int channel, int note); + + bool isRecording() const { return m_isRecording; } + void clear(); + +private: + QVector m_events; + bool m_isRecording; + double m_startTime; + + void writeVariableLength(QDataStream &stream, quint32 value); + void writeMidiHeader(QDataStream &stream); + void writeMidiTrack(QDataStream &stream); +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker/simplifiedmidiwriter.h b/Yamitracker-reoload/Yamitracker/simplifiedmidiwriter.h new file mode 100644 index 0000000..f2b21de --- /dev/null +++ b/Yamitracker-reoload/Yamitracker/simplifiedmidiwriter.h @@ -0,0 +1,22 @@ + // simplifiedmidiwriter.h +#include "midifile.h" +#include + +class SimplifiedMidiWriter +{ +public: + SimplifiedMidiWriter(); + ~SimplifiedMidiWriter(); + + bool startRecording(const QString &filename); + bool stopRecording(); + + void addNoteOn(double time, int channel, int note, int velocity); + void addNoteOff(double time, int channel, int note); + void addControlChange(double time, int channel, int controller, int value); + +private: + smf::MidiFile m_midiFile; + int m_track; + bool m_isRecording; +}; \ No newline at end of file diff --git a/Yamitracker/yamitracker.cpp b/Yamitracker-reoload/Yamitracker/yamitracker.cpp similarity index 58% rename from Yamitracker/yamitracker.cpp rename to Yamitracker-reoload/Yamitracker/yamitracker.cpp index d61c7c9..420793a 100644 --- a/Yamitracker/yamitracker.cpp +++ b/Yamitracker-reoload/Yamitracker/yamitracker.cpp @@ -7,58 +7,75 @@ #include #include #include +#include void SerialReader::run() { - int fd = open("/dev/dmmidi1", O_RDWR | O_NOCTTY); - if (fd < 0) { - emit error("Cannot open /dev/dmmidi1"); - return; - } - - struct termios tty; - tcgetattr(fd, &tty); - cfsetospeed(&tty, B115200); - cfsetispeed(&tty, B115200); - tty.c_cflag |= (CLOCAL | CREAD | CS8); - tty.c_cc[VMIN] = 1; - tcsetattr(fd, TCSANOW, &tty); - - unsigned char byte; - while (read(fd, &byte, 1) > 0) { - if (byte == 0xF8 || byte == 0xFE) { + while (!shouldStop) { + int fd = open("/dev/dmmidi1", O_RDWR | O_NOCTTY); + if (fd < 0) { + emit error("Cannot open /dev/dmmidi1"); + emit connectionStatusChanged(false); + sleep(2); continue; } - if (byte & 0x80) { - if ((byte & 0xF0) == 0x90) { - unsigned char note, velocity; - if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { - QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + emit connectionStatusChanged(true); - if (velocity == 0) - emit noteOffReceived(hexNote); - else - emit noteOnReceived(hexNote, velocity); - } + struct termios tty; + tcgetattr(fd, &tty); + cfsetospeed(&tty, B115200); + cfsetispeed(&tty, B115200); + tty.c_cflag |= (CLOCAL | CREAD | CS8); + tty.c_cc[VMIN] = 1; + tcsetattr(fd, TCSANOW, &tty); + + unsigned char byte; + while (!shouldStop && read(fd, &byte, 1) > 0) { + if (byte == 0xF8 || byte == 0xFE) { + continue; } - else if ((byte & 0xF0) == 0x80) { - unsigned char note, velocity; - if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { - QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); - emit noteOffReceived(hexNote); + + if (byte & 0x80) { + if ((byte & 0xF0) == 0x90) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + + if (velocity == 0) + emit noteOffReceived(hexNote); + else + emit noteOnReceived(hexNote, velocity); + } + } + else if ((byte & 0xF0) == 0x80) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + emit noteOffReceived(hexNote); + } } } } - } - close(fd); + close(fd); + emit connectionStatusChanged(false); + + if (!shouldStop) { + emit error("Connection lost. Attempting to reconnect..."); + sleep(2); + } + } } Yamitracker::Yamitracker(QWidget *parent) : QMainWindow(parent) , ui(new Ui::Yamitracker) , serialReader(new SerialReader(this)) + , reconnectTimer(new QTimer(this)) + , isConnected(false) + , midiWriter(new SimpleMidiWriter()) + , recordingStartTime(0) { ui->setupUi(this); initializeKeyButtons(); @@ -66,8 +83,12 @@ Yamitracker::Yamitracker(QWidget *parent) connect(serialReader, &SerialReader::noteOnReceived, this, &Yamitracker::onNoteOnReceived); connect(serialReader, &SerialReader::noteOffReceived, this, &Yamitracker::onNoteOffReceived); connect(serialReader, &SerialReader::error, this, &Yamitracker::onError); + connect(serialReader, &SerialReader::connectionStatusChanged, this, &Yamitracker::onConnectionStatusChanged); connect(ui->playButton, &QPushButton::clicked, this, &Yamitracker::onPlayClicked); connect(ui->stopButton, &QPushButton::clicked, this, &Yamitracker::onStopClicked); + + connect(reconnectTimer, &QTimer::timeout, this, &Yamitracker::attemptReconnect); + reconnectTimer->start(5000); setStyleSheet( "QMainWindow { background-color: #2b2b2b; color: white; }" @@ -81,19 +102,30 @@ Yamitracker::Yamitracker(QWidget *parent) "QProgressBar::chunk { background: #4CAF50; }" ); - serialReader->start(); + startSerialReader(); setWindowTitle("Yamaha PSR-E333 Monitor"); } Yamitracker::~Yamitracker() { - if (serialReader && serialReader->isRunning()) { - serialReader->terminate(); - serialReader->wait(); + if (serialReader) { + serialReader->stop(); + if (serialReader->isRunning()) { + serialReader->terminate(); + serialReader->wait(); + } } + delete midiWriter; delete ui; } +void Yamitracker::startSerialReader() +{ + if (serialReader && !serialReader->isRunning()) { + serialReader->start(); + } +} + void Yamitracker::initializeKeyButtons() { QList whiteKeys = { @@ -146,6 +178,15 @@ void Yamitracker::onNoteOnReceived(const QString &data, int velocity) int volume = (velocity * 100) / 127; ui->volumeBar->setValue(volume); + if (midiWriter->isRecording()) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + midiWriter->addNoteOn(currentTime, 0, noteNumber, velocity); + } + } } void Yamitracker::onNoteOffReceived(const QString &data) @@ -171,25 +212,75 @@ void Yamitracker::onNoteOffReceived(const QString &data) ui->volumeBar->setValue(0); } + if (midiWriter->isRecording()) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + midiWriter->addNoteOff(currentTime, 0, noteNumber); + } + } } + +void Yamitracker::onConnectionStatusChanged(bool connected) +{ + isConnected = connected; + if (connected) { + ui->statusLabel->setText("Статус: Подключено к синтезатору"); + ui->statusLabel->setStyleSheet("color: green;"); + } else { + ui->statusLabel->setText("Статус: Отключено (переподключение...)"); + ui->statusLabel->setStyleSheet("color: red;"); + } +} + +void Yamitracker::attemptReconnect() +{ + if (!isConnected && (!serialReader || !serialReader->isRunning())) { + qDebug() << "Attempting to reconnect..."; + startSerialReader(); + } +} + void Yamitracker::onError(const QString &message) { ui->statusLabel->setText("Ошибка: " + message); - QMessageBox::warning(this, "Ошибка", message); + ui->statusLabel->setStyleSheet("color: orange;"); + if (!message.contains("reconnect", Qt::CaseInsensitive)) { + QMessageBox::warning(this, "Ошибка", message); + } } void Yamitracker::onPlayClicked() { ui->statusLabel->setText("Воспроизведение..."); + ui->statusLabel->setStyleSheet("color: blue;"); + + QString filename = "recording_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".mid"; + if (midiWriter->startRecording(filename)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started recording to:" << filename; + } } void Yamitracker::onStopClicked() { ui->statusLabel->setText("Остановлено"); + ui->statusLabel->setStyleSheet("color: white;"); clearAllHighlights(); currentlyPressedKeys.clear(); ui->keysInfoLabel->setText("Нажато клавиш: 0"); ui->volumeBar->setValue(0); + + if (midiWriter->isRecording()) { + midiWriter->stopRecording(); + QString filename = "recording_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".mid"; + if (midiWriter->saveToFile(filename)) { + qDebug() << "MIDI file saved:" << filename; + ui->statusLabel->setText("Сохранено: " + filename); + } + } } void Yamitracker::highlightKey(const QString ¬e) @@ -216,3 +307,9 @@ void Yamitracker::clearAllHighlights() clearKey(i.key()); } } + +void Yamitracker::clearStatusMessage() +{ + ui->statusLabel->setText("Статус: Готов"); + ui->statusLabel->setStyleSheet("color: white;"); +} \ No newline at end of file diff --git a/Yamitracker/yamitracker.h b/Yamitracker-reoload/Yamitracker/yamitracker.h similarity index 62% rename from Yamitracker/yamitracker.h rename to Yamitracker-reoload/Yamitracker/yamitracker.h index a6b487a..a633cf7 100644 --- a/Yamitracker/yamitracker.h +++ b/Yamitracker-reoload/Yamitracker/yamitracker.h @@ -1,3 +1,4 @@ +// yamitracker.h #ifndef YAMITRACKER_H #define YAMITRACKER_H @@ -7,6 +8,8 @@ #include #include #include +#include // Добавьте этот include +#include "simplemidiwriter.h" QT_BEGIN_NAMESPACE namespace Ui { class Yamitracker; } @@ -16,18 +19,30 @@ class SerialReader : public QThread { Q_OBJECT public: - explicit SerialReader(QObject *parent = nullptr) : QThread(parent) {} + explicit SerialReader(QObject *parent = nullptr) : QThread(parent) + { + shouldStop = false; + } + + void stop() + { + shouldStop = true; + } protected: void run() override; +private: + bool shouldStop; + signals: void noteOnReceived(const QString ¬e, int velocity); void noteOffReceived(const QString ¬e); void error(const QString &message); + void connectionStatusChanged(bool connected); }; -class Yamitracker : public QMainWindow +class Yamitracker : public QMainWindow // Убрали неправильное наследование { Q_OBJECT @@ -42,17 +57,24 @@ private slots: void onPlayClicked(); void onStopClicked(); void clearStatusMessage(); + void onConnectionStatusChanged(bool connected); + void attemptReconnect(); private: Ui::Yamitracker *ui; SerialReader *serialReader; QHash keyButtons; QSet currentlyPressedKeys; + QTimer *reconnectTimer; + bool isConnected; + SimpleMidiWriter *midiWriter; // Перенесли сюда + double recordingStartTime; // Перенесли сюда void initializeKeyButtons(); void highlightKey(const QString ¬e); void clearKey(const QString ¬e); void clearAllHighlights(); + void startSerialReader(); }; -#endif // YAMITRACKER_H +#endif // YAMITRACKER_H \ No newline at end of file diff --git a/Yamitracker/yamitracker.ui b/Yamitracker-reoload/Yamitracker/yamitracker.ui similarity index 100% rename from Yamitracker/yamitracker.ui rename to Yamitracker-reoload/Yamitracker/yamitracker.ui diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/.qtcreator/Yamitracker.pro.user b/Yamitracker-reoload/Yamitracker2/Yamitracker/.qtcreator/Yamitracker.pro.user new file mode 100644 index 0000000..fcac744 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/.qtcreator/Yamitracker.pro.user @@ -0,0 +1,263 @@ + + + + + + EnvironmentId + {6395eb3f-fc2a-4125-bb4f-a9c51f02958b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {0acbc229-4897-4c6e-a23f-ae7c45394b0c} + 0 + 0 + 0 + + 0 + /home/acer1117/build-Yamitracker-Desktop-Debug + /home/acer1117/build-Yamitracker-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/acer1117/build-Yamitracker-Desktop-Release + /home/acer1117/build-Yamitracker-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/acer1117/build-Yamitracker-Desktop-Profile + /home/acer1117/build-Yamitracker-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro + /home/acer1117/Yamitracker/Yamitracker.pro + false + true + true + false + true + /home/acer1117/build-Yamitracker-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/Yamitracker.pro b/Yamitracker-reoload/Yamitracker2/Yamitracker/Yamitracker.pro new file mode 100644 index 0000000..da70d24 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/Yamitracker.pro @@ -0,0 +1,22 @@ +QT += core gui widgets + +CONFIG += c++17 + +SOURCES += \ + main.cpp \ + yamitracker.cpp \ + simplewavwriter.cpp \ + brrconverter.cpp + +HEADERS += \ + yamitracker.h \ + simplewavwriter.h \ + brrconverter.h + +FORMS += \ + yamitracker.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/Yamitracker.pro.user b/Yamitracker-reoload/Yamitracker2/Yamitracker/Yamitracker.pro.user new file mode 100644 index 0000000..fcac744 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/Yamitracker.pro.user @@ -0,0 +1,263 @@ + + + + + + EnvironmentId + {6395eb3f-fc2a-4125-bb4f-a9c51f02958b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {0acbc229-4897-4c6e-a23f-ae7c45394b0c} + 0 + 0 + 0 + + 0 + /home/acer1117/build-Yamitracker-Desktop-Debug + /home/acer1117/build-Yamitracker-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/acer1117/build-Yamitracker-Desktop-Release + /home/acer1117/build-Yamitracker-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/acer1117/build-Yamitracker-Desktop-Profile + /home/acer1117/build-Yamitracker-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro + /home/acer1117/Yamitracker/Yamitracker.pro + false + true + true + false + true + /home/acer1117/build-Yamitracker-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/Yamitracker_ru_RU.ts b/Yamitracker-reoload/Yamitracker2/Yamitracker/Yamitracker_ru_RU.ts new file mode 100644 index 0000000..743f57f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/Yamitracker_ru_RU.ts @@ -0,0 +1,3 @@ + + + diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/brrconverter.cpp b/Yamitracker-reoload/Yamitracker2/Yamitracker/brrconverter.cpp new file mode 100644 index 0000000..eed5c96 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/brrconverter.cpp @@ -0,0 +1,340 @@ +#include "brrconverter.h" +#include + +BrrConverter::BrrConverter(QObject *parent) : QObject(parent) +{ +} + +bool BrrConverter::convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath) +{ + QFile wavFile(wavFilePath); + if (!wavFile.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open WAV file:" << wavFilePath; + return false; + } + + int sampleRate, channels, bitsPerSample, dataSize; + if (!decodeWavHeader(wavFile, sampleRate, channels, bitsPerSample, dataSize)) { + qDebug() << "Invalid WAV file format"; + wavFile.close(); + return false; + } + + // Читаем аудиоданные + QByteArray audioData = wavFile.read(dataSize); + wavFile.close(); + + // Конвертируем в 16-bit моно + QVector samples; + int bytesPerSample = bitsPerSample / 8; + int totalSamples = dataSize / (bytesPerSample * channels); + + for (int i = 0; i < totalSamples; ++i) { + int32_t sample = 0; + + for (int ch = 0; ch < channels; ++ch) { + int32_t channelSample = 0; + int offset = (i * channels + ch) * bytesPerSample; + + if (bitsPerSample == 8) { + channelSample = (int8_t)audioData[offset]; + channelSample = (channelSample - 128) * 256; + } else if (bitsPerSample == 16) { + channelSample = (int16_t)((audioData[offset + 1] << 8) | audioData[offset]); + } else if (bitsPerSample == 24) { + channelSample = (int32_t)((audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + if (channelSample & 0x800000) channelSample |= 0xFF000000; + channelSample >>= 8; + } else if (bitsPerSample == 32) { + channelSample = (int32_t)((audioData[offset + 3] << 24) | + (audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + channelSample >>= 16; + } + + sample += channelSample; + } + + // Микшируем каналы + sample /= channels; + samples.append(clamp16(sample)); + } + + // Понижаем частоту дискретизации для SNES (макс 32kHz -> 16kHz) + if (sampleRate > 16000) { + int ratio = sampleRate / 16000; + QVector downsampled; + for (int i = 0; i < samples.size(); i += ratio) { + downsampled.append(samples[i]); + } + samples = downsampled; + } else if (sampleRate < 16000) { + // Если частота ниже, повышаем (простое повторение) + int ratio = 16000 / sampleRate; + QVector upsampled; + for (int i = 0; i < samples.size(); ++i) { + for (int j = 0; j < ratio; ++j) { + upsampled.append(samples[i]); + } + } + samples = upsampled; + } + + // Открываем BRR файл для записи + QFile brrFile(brrFilePath); + if (!brrFile.open(QIODevice::WriteOnly)) { + qDebug() << "Cannot open BRR file for writing:" << brrFilePath; + return false; + } + + ADPCMState state; + QVector blockSamples; + + // Конвертируем в BRR блоками по 16 сэмплов + for (int i = 0; i < samples.size(); ++i) { + int encoded = encodeADPCMNibble(samples[i], state); + blockSamples.append(encoded); + + if (blockSamples.size() == 32) { // 32 ниббла = 16 сэмплов + writeBrrBlock(brrFile, blockSamples, false); + blockSamples.clear(); + } + } + + // Записываем последний неполный блок + if (!blockSamples.isEmpty()) { + // Дополняем до 32 нибблов + while (blockSamples.size() < 32) { + blockSamples.append(0); + } + writeBrrBlock(brrFile, blockSamples, true); // Последний блок с флагом loop + } else if (samples.size() > 0) { + // Если был полный последний блок, помечаем его как loop + brrFile.seek(brrFile.size() - BRR_BLOCK_SIZE); + unsigned char header = 0x03; // Фильтр 0, loop flag = 1 + brrFile.write((char*)&header, 1); + } + + brrFile.close(); + qDebug() << "BRR file created:" << brrFilePath << "samples:" << samples.size() << "sample rate:" << sampleRate; + return true; +} + +bool BrrConverter::convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath) +{ + qDebug() << "MIDI to BRR conversion requires MIDI synthesizer"; + qDebug() << "Please convert MIDI to WAV first, then use WAV to BRR"; + + return false; +} + +bool BrrConverter::decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize) +{ + char buffer[44]; + if (file.read(buffer, 44) != 44) { + return false; + } + + // Проверяем RIFF заголовок + if (buffer[0] != 'R' || buffer[1] != 'I' || buffer[2] != 'F' || buffer[3] != 'F') { + return false; + } + + // Проверяем WAVE формат + if (buffer[8] != 'W' || buffer[9] != 'A' || buffer[10] != 'V' || buffer[11] != 'E') { + return false; + } + + // Проверяем fmt chunk + if (buffer[12] != 'f' || buffer[13] != 'm' || buffer[14] != 't' || buffer[15] != ' ') { + return false; + } + + // Читаем параметры + int fmtSize = *(int*)(buffer + 16); + if (fmtSize < 16) return false; + + int audioFormat = *(short*)(buffer + 20); + if (audioFormat != 1) return false; // Только PCM + + channels = *(short*)(buffer + 22); + sampleRate = *(int*)(buffer + 24); + bitsPerSample = *(short*)(buffer + 34); + + // Ищем data chunk + int offset = 36; + while (offset < file.size()) { + file.seek(offset); + char chunkId[4]; + if (file.read(chunkId, 4) != 4) break; + + int chunkSize; + if (file.read((char*)&chunkSize, 4) != 4) break; + + if (chunkId[0] == 'd' && chunkId[1] == 'a' && chunkId[2] == 't' && chunkId[3] == 'a') { + dataSize = chunkSize; + file.seek(offset + 8); + return true; + } + + offset += 8 + chunkSize; + } + + return false; +} + +int16_t BrrConverter::clamp16(int sample) +{ + if (sample > 32767) return 32767; + if (sample < -32768) return -32768; + return (int16_t)sample; +} + +int BrrConverter::encodeADPCMNibble(int sample, ADPCMState &state) +{ + int diff = sample - state.prev_sample; + int step = step_table[state.prev_index]; + + // Квантование + int nibble = 0; + int predicted = state.prev_sample; + + // Применяем фильтр (простейший - без фильтра) + int filtered = predicted; + + diff = sample - filtered; + + // Находим наилучший nibble + int best_nibble = 0; + int best_error = INT_MAX; + + for (int n = 0; n < 16; ++n) { + int step_index = state.prev_index + ((n & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (n & 8) ? -current_step : current_step; + + int current_sample = filtered + delta; + int error = abs(sample - current_sample); + + if (error < best_error) { + best_error = error; + best_nibble = n; + } + } + + // Декодируем выбранный nibble для обновления состояния + int step_index = state.prev_index + ((best_nibble & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (best_nibble & 8) ? -current_step : current_step; + + state.prev_sample = filtered + delta; + state.prev_index = step_index; + + // Ограничиваем индекс + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + // Ограничиваем сэмпл + state.prev_sample = clamp16(state.prev_sample); + + return best_nibble; +} + +void BrrConverter::writeBrrBlock(QFile &file, const QVector &samples, bool loop) +{ + if (samples.size() != 32) { + qDebug() << "Invalid sample count for BRR block:" << samples.size(); + return; + } + + unsigned char header = 0x00; + if (loop) { + header = 0x03; // Фильтр 0 + loop + } + + file.write((char*)&header, 1); + + // Упаковываем 32 ниббла в 8 байт + for (int i = 0; i < 16; ++i) { + unsigned char byte = (samples[i * 2] << 4) | (samples[i * 2 + 1] & 0x0F); + file.write((char*)&byte, 1); + } +} + +int BrrConverter::decodeADPCMNibble(int nibble, ADPCMState &state) +{ + int step = step_table[state.prev_index]; + int delta = step >> 3; + + if (nibble & 1) delta += step >> 2; + if (nibble & 2) delta += step >> 1; + if (nibble & 4) delta += step; + + if (nibble & 8) delta = -delta; + + // Применяем фильтр (простейший) + int sample = state.prev_sample + delta; + + // Ограничиваем + sample = clamp16(sample); + + // Обновляем индекс + state.prev_index += ((nibble & 7) * 2 - 7); + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + state.prev_sample = sample; + + return sample; +} + +QVector BrrConverter::decodeBrrFile(const QString &brrFilePath) +{ + QVector samples; + QFile file(brrFilePath); + + if (!file.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open BRR file for reading:" << brrFilePath; + return samples; + } + + ADPCMState state; + + while (!file.atEnd()) { + unsigned char header; + if (file.read((char*)&header, 1) != 1) break; + + unsigned char data[8]; + if (file.read((char*)data, 8) != 8) break; + + // Извлекаем нибблы + for (int i = 0; i < 8; ++i) { + unsigned char byte = data[i]; + int nibble1 = (byte >> 4) & 0x0F; + int nibble2 = byte & 0x0F; + + int sample1 = decodeADPCMNibble(nibble1, state); + int sample2 = decodeADPCMNibble(nibble2, state); + + samples.append(sample1); + samples.append(sample2); + } + + // Проверяем конец + if (header & 0x01) { + break; // Конец сэмпла + } + } + + file.close(); + return samples; +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/brrconverter.h b/Yamitracker-reoload/Yamitracker2/Yamitracker/brrconverter.h new file mode 100644 index 0000000..175879a --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/brrconverter.h @@ -0,0 +1,54 @@ +#ifndef BRRCONVERTER_H +#define BRRCONVERTER_H + +#include +#include +#include +#include +#include + +class BrrConverter : public QObject +{ + Q_OBJECT + +public: + BrrConverter(QObject *parent = nullptr); + + bool convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath); + bool convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath); + +private: + struct ADPCMState { + int prev_sample; + int prev_index; + + ADPCMState() : prev_sample(0), prev_index(0) {} + }; + + struct BRRBlock { + unsigned char header; + unsigned char data[8]; + }; + + bool decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize); + int16_t clamp16(int sample); + int encodeADPCMNibble(int sample, ADPCMState &state); + void writeBrrBlock(QFile &file, const QVector &samples, bool loop = false); + int decodeADPCMNibble(int nibble, ADPCMState &state); + QVector decodeBrrFile(const QString &brrFilePath); + + static const int BRR_BLOCK_SIZE = 9; + static const int SAMPLES_PER_BLOCK = 16; + static const int FILTER_TYPES = 4; + + const int step_table[89] = { + 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, + 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, + 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, + 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327, + 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, + 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 + }; +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/.qmake.stash b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/Makefile b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/Makefile new file mode 100644 index 0000000..d8cd5cf --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/Makefile @@ -0,0 +1,442 @@ +############################################################################# +# Makefile for building: Yamitracker +# Generated by qmake (3.1) (Qt 5.15.13) +# Project: ../Yamitracker.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Yamitracker1.0.0 +DISTDIR = /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build/.tmp/Yamitracker1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../main.cpp \ + ../yamitracker.cpp \ + ../simplemidiwriter.cpp \ + ../brrconverter.cpp moc_yamitracker.cpp \ + moc_brrconverter.cpp +OBJECTS = main.o \ + yamitracker.o \ + simplemidiwriter.o \ + brrconverter.o \ + moc_yamitracker.o \ + moc_brrconverter.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../Yamitracker.pro ../yamitracker.h \ + ../simplemidiwriter.h \ + ../brrconverter.h ../main.cpp \ + ../yamitracker.cpp \ + ../simplemidiwriter.cpp \ + ../brrconverter.cpp +QMAKE_TARGET = Yamitracker +DESTDIR = +TARGET = Yamitracker + + +first: all +####### Build rules + +Yamitracker: ui_yamitracker.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../Yamitracker.pro + $(QMAKE) -o Makefile ../Yamitracker.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../Yamitracker.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../Yamitracker.pro + +qmake_all: FORCE + + +all: Makefile Yamitracker + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.h ../simplemidiwriter.h ../brrconverter.h $(DISTDIR)/ + $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplemidiwriter.cpp ../brrconverter.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_yamitracker.cpp moc_brrconverter.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_yamitracker.cpp moc_brrconverter.cpp +moc_yamitracker.cpp: ../yamitracker.h \ + ../simplemidiwriter.h \ + ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp + +moc_brrconverter.cpp: ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../brrconverter.h -o moc_brrconverter.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_yamitracker.h +compiler_uic_clean: + -$(DEL_FILE) ui_yamitracker.h +ui_yamitracker.h: ../yamitracker.ui \ + /usr/lib/qt5/bin/uic + /usr/lib/qt5/bin/uic ../yamitracker.ui -o ui_yamitracker.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: ../main.cpp ../yamitracker.h \ + ../simplemidiwriter.h \ + ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp + +yamitracker.o: ../yamitracker.cpp ../yamitracker.h \ + ../simplemidiwriter.h \ + ../brrconverter.h \ + ui_yamitracker.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp + +simplemidiwriter.o: ../simplemidiwriter.cpp ../simplemidiwriter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplemidiwriter.o ../simplemidiwriter.cpp + +brrconverter.o: ../brrconverter.cpp ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o brrconverter.o ../brrconverter.cpp + +moc_yamitracker.o: moc_yamitracker.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp + +moc_brrconverter.o: moc_brrconverter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_brrconverter.o moc_brrconverter.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin + $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/Yamitracker b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/Yamitracker new file mode 100755 index 0000000..626d770 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/Yamitracker differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/brrconverter.o b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/brrconverter.o new file mode 100644 index 0000000..149ec06 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/main.o b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/main.o new file mode 100644 index 0000000..edc2e30 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/main.o differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/moc_brrconverter.cpp b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/moc_brrconverter.cpp new file mode 100644 index 0000000..a11b9fc --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/moc_brrconverter.cpp @@ -0,0 +1,95 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'brrconverter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../brrconverter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'brrconverter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_BrrConverter_t { + QByteArrayData data[1]; + char stringdata0[13]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_BrrConverter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_BrrConverter_t qt_meta_stringdata_BrrConverter = { + { +QT_MOC_LITERAL(0, 0, 12) // "BrrConverter" + + }, + "BrrConverter" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_BrrConverter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void BrrConverter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject BrrConverter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_BrrConverter.data, + qt_meta_data_BrrConverter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *BrrConverter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *BrrConverter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_BrrConverter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int BrrConverter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/moc_brrconverter.o b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/moc_brrconverter.o new file mode 100644 index 0000000..fa3b784 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/moc_brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/moc_predefs.h b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/moc_predefs.h new file mode 100644 index 0000000..f29ad61 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/moc_predefs.h @@ -0,0 +1,464 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __cpp_nontype_template_parameter_auto 201606L +#define __UINT_LEAST16_MAX__ 0xffff +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __ATOMIC_ACQUIRE 2 +#define __FLT128_MAX_10_EXP__ 4932 +#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __cpp_aggregate_nsdmi 201304L +#define __UINT_LEAST8_TYPE__ unsigned char +#define __SIZEOF_FLOAT80__ 16 +#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 0xff +#define __SCHAR_WIDTH__ 8 +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 201411L +#define __BFLT16_MIN_10_EXP__ (-37) +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __WCHAR_MAX__ 0x7fffffff +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __cpp_binary_literals 201304L +#define __FLT64_DECIMAL_DIG__ 17 +#define __CET__ 3 +#define __cpp_noexcept_function_type 201510L +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __cpp_variadic_templates 200704L +#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __cpp_variable_templates 201304L +#define __FLT32X_MAX_EXP__ 1024 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __FLT32_HAS_DENORM__ 1 +#define __UINT_FAST8_MAX__ 0xff +#define __cpp_rvalue_reference 200610L +#define __cpp_nested_namespace_definitions 201411L +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __LDBL_HAS_INFINITY__ 1 +#define __INT_LEAST8_WIDTH__ 8 +#define __cpp_variadic_using 201611L +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL +#define __INT_LEAST8_MAX__ 0x7f +#define __cpp_attributes 200809L +#define __cpp_capture_star_this 201603L +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __FLT64X_MAX_10_EXP__ 4932 +#define __cpp_if_constexpr 201606L +#define __BFLT16_MAX_10_EXP__ 38 +#define __BFLT16_MAX_EXP__ 128 +#define __LDBL_IS_IEC_60559__ 1 +#define __FLT64X_HAS_QUIET_NAN__ 1 +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +#define __UINTMAX_TYPE__ long unsigned int +#define __cpp_nsdmi 200809L +#define __BFLT16_DECIMAL_DIG__ 4 +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __OPTIMIZE__ 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +#define __FLT128_MIN_EXP__ (-16381) +#define __WINT_MIN__ 0U +#define __FLT128_MIN_10_EXP__ (-4931) +#define __FLT32X_IS_IEC_60559__ 1 +#define __INT_LEAST16_WIDTH__ 16 +#define __SCHAR_MAX__ 0x7f +#define __FLT128_MANT_DIG__ 113 +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __INT64_C(c) c ## L +#define __SSP_STRONG__ 3 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __ATOMIC_SEQ_CST 5 +#define _FORTIFY_SOURCE 3 +#define __unix 1 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MANT_DIG__ 53 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __cpp_aligned_new 201606L +#define __FLT32_MAX_10_EXP__ 38 +#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +#define __STDC_HOSTED__ 1 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype_auto 201304L +#define __DBL_DIG__ 15 +#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __FLT32_IS_IEC_60559__ 1 +#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +#define __DBL_IS_IEC_60559__ 1 +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806L +#define __cpp_enumerator_attributes 201411L +#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +#define __FLT32X_HAS_INFINITY__ 1 +#define __unix__ 1 +#define __INT_WIDTH__ 32 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __DECIMAL_DIG__ 21 +#define __STDC_IEC_559_COMPLEX__ 1 +#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +#define __gnu_linux__ 1 +#define __INT16_MAX__ 0x7fff +#define __FLT64_MIN_EXP__ (-1021) +#define __FLT64X_MIN_10_EXP__ (-4931) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __cpp_return_type_deduction 201304L +#define __FLT16_MIN_EXP__ (-13) +#define __FLT64_MANT_DIG__ 53 +#define __FLT64X_MANT_DIG__ 64 +#define __BFLT16_DIG__ 2 +#define __GNUC__ 13 +#define __GXX_RTTI 1 +#define __pie__ 2 +#define __MMX__ 1 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __BIGGEST_ALIGNMENT__ 16 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __BFLT16_IS_IEC_60559__ 0 +#define __FLT16_MAX_10_EXP__ 4 +#define __cpp_delegating_constructors 200604L +#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __cpp_raw_strings 200710L +#define __INT_FAST32_MAX__ 0x7fffffffffffffffL +#define __DBL_HAS_INFINITY__ 1 +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __SIZEOF_FLOAT__ 4 +#define __HAVE_SPECULATION_SAFE_VALUE 1 +#define __cpp_fold_expressions 201603L +#define __DEC32_MIN_EXP__ (-94) +#define __INTPTR_WIDTH__ 64 +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ long int +#define __MMX_WITH_SSE__ 1 +#define __LDBL_HAS_DENORM__ 1 +#define __SEG_GS 1 +#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +#define __cplusplus 201703L +#define __cpp_ref_qualifiers 200710L +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610L +#define __DBL_MAX_EXP__ 1024 +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __FLT16_DECIMAL_DIG__ 5 +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 0x7fffffffffffffffL +#define __amd64 1 +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __GNUG__ 13 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 8 +#define __BFLT16_HAS_INFINITY__ 1 +#define __FLT64X_MIN_EXP__ (-16381) +#define __SIZEOF_WINT_T__ 4 +#define __FLT32X_DIG__ 15 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806L +#define __FLT32_MAX_EXP__ 128 +#define __cpp_hex_float 201603L +#define __GXX_ABI_VERSION 1018 +#define __FLT_MIN_EXP__ (-125) +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __x86_64 1 +#define __cpp_lambdas 200907L +#define __INT_FAST64_TYPE__ long int +#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +#define __cpp_template_auto 201606L +#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __SIZEOF_POINTER__ 8 +#define __SIZE_TYPE__ long unsigned int +#define __LP64__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +#define __LDBL_MAX_EXP__ 16384 +#define __DECIMAL_BID_FORMAT__ 1 +#define __FLT64_MIN_10_EXP__ (-307) +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT64X_DECIMAL_DIG__ 21 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __FLT128_HAS_INFINITY__ 1 +#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __FLT_DIG__ 6 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 21 +#define __VERSION__ "13.3.0" +#define __UINT64_C(c) c ## UL +#define __cpp_unicode_characters 201411L +#define _STDC_PREDEF_H 1 +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT128_MAX_EXP__ 16384 +#define __FLT32_MANT_DIG__ 24 +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT32X_MIN_EXP__ (-1021) +#define __STDC_IEC_60559_COMPLEX__ 201404L +#define __cpp_aggregate_bases 201603L +#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +#define __FLT128_HAS_DENORM__ 1 +#define __FLT32_DECIMAL_DIG__ 9 +#define __FLT128_DIG__ 33 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __DEC128_MAX_EXP__ 6145 +#define unix 1 +#define __DBL_HAS_DENORM__ 1 +#define __cpp_rtti 199711L +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __FLT_IS_IEC_60559__ 1 +#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +#define __FLT64X_DIG__ 18 +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309L +#define __ELF__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __UINT32_TYPE__ unsigned int +#define __BFLT16_HAS_QUIET_NAN__ 1 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +#define __UINTMAX_C(c) c ## UL +#define __FLT16_DIG__ 3 +#define __k8 1 +#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __cpp_constexpr 201603L +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +#define __STDC_IEC_60559_BFP__ 201404L +#define __SIZEOF_PTRDIFF_T__ 8 +#define __FLT64X_HAS_INFINITY__ 1 +#define __SIZEOF_LONG__ 8 +#define __LDBL_DIG__ 18 +#define __FLT64_IS_IEC_60559__ 1 +#define __x86_64__ 1 +#define __FLT16_IS_IEC_60559__ 1 +#define __FLT16_MAX_EXP__ 16 +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __INT_FAST16_MAX__ 0x7fffffffffffffffL +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __LONG_MAX__ 0x7fffffffffffffffL +#define __FLT64X_HAS_DENORM__ 1 +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" +#define __cpp_unicode_literals 200710L +#define __UINT_FAST16_TYPE__ long unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __INT_FAST32_WIDTH__ 64 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __SIZE_WIDTH__ 64 +#define __SEG_FS 1 +#define __INT_LEAST16_MAX__ 0x7fff +#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __DEC64_MANT_DIG__ 16 +#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +#define __cpp_structured_bindings 201606L +#define __SIZEOF_INT__ 4 +#define __DEC32_MAX_EXP__ 97 +#define __INT_FAST8_MAX__ 0x7f +#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __INTPTR_MAX__ 0x7fffffffffffffffL +#define __cpp_sized_deallocation 201309L +#define __cpp_guaranteed_copy_elision 201606L +#define linux 1 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __EXCEPTIONS 1 +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 64 +#define __LDBL_MANT_DIG__ 64 +#define __cpp_range_based_for 201603L +#define __INT_FAST16_WIDTH__ 64 +#define __FLT64_HAS_INFINITY__ 1 +#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __FLT16_HAS_INFINITY__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __cpp_nontype_template_args 201411L +#define __DEC32_MANT_DIG__ 7 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __pic__ 2 +#define __UINTPTR_MAX__ 0xffffffffffffffffUL +#define __INT_FAST64_WIDTH__ 64 +#define __cpp_decltype 200707L +#define __INT_FAST64_MAX__ 0x7fffffffffffffffL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +#define __FLT32_HAS_INFINITY__ 1 +#define __FLT64X_MAX_EXP__ 16384 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __cpp_inline_variables 201606L +#define __BFLT16_MIN_EXP__ (-125) +#define __INT_MAX__ 0x7fffffff +#define __linux__ 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __cpp_inheriting_constructors 201511L +#define __SIZEOF_FLOAT128__ 16 +#define __BFLT16_MANT_DIG__ 8 +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __amd64__ 1 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST64_WIDTH__ 64 +#define __FLT32X_MAX_10_EXP__ 308 +#define __cpp_namespace_attributes 201411L +#define __SIZEOF_INT128__ 16 +#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +#define __FLT64X_IS_IEC_60559__ 1 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +#define __INT_LEAST32_TYPE__ int +#define _LP64 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __SIZEOF_WCHAR_T__ 4 +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __FLT128_HAS_QUIET_NAN__ 1 +#define __INTMAX_MAX__ 0x7fffffffffffffffL +#define __INT_FAST8_TYPE__ signed char +#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +#define __STDCPP_THREADS__ 1 +#define __BFLT16_HAS_DENORM__ 1 +#define __GNUC_STDC_INLINE__ 1 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +#define __FLT16_HAS_DENORM__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __FXSR__ 1 +#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __INTMAX_WIDTH__ 64 +#define __cpp_runtime_arrays 198712L +#define __FLT32_DIG__ 6 +#define __UINT64_TYPE__ long unsigned int +#define __UINT32_C(c) c ## U +#define __cpp_alias_templates 200704L +#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +#define __FLT128_IS_IEC_60559__ 1 +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 64 +#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +#define __PIC__ 2 +#define __INT32_MAX__ 0x7fffffff +#define __UINT_FAST32_TYPE__ long unsigned int +#define __FLT16_MANT_DIG__ 11 +#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F +#define __SSE2__ 1 +#define __cpp_deduction_guides 201703L +#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711L +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long int +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 3 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __UINTMAX_MAX__ 0xffffffffffffffffUL +#define __PIE__ 2 +#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +#define __cpp_template_template_args 201611L +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +#define __INT16_C(c) c +#define __STDC__ 1 +#define __PTRDIFF_TYPE__ long int +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __cpp_generic_lambdas 201304L +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809L +#define __FLT128_DECIMAL_DIG__ 36 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL +#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __SIZE_MAX__ 0xffffffffffffffffUL +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __cpp_init_captures 201304L +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/moc_yamitracker.cpp b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/moc_yamitracker.cpp new file mode 100644 index 0000000..872a09f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/moc_yamitracker.cpp @@ -0,0 +1,369 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'yamitracker.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../yamitracker.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'yamitracker.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SerialReader_t { + QByteArrayData data[13]; + char stringdata0[145]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SerialReader_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = { + { +QT_MOC_LITERAL(0, 0, 12), // "SerialReader" +QT_MOC_LITERAL(1, 13, 14), // "noteOnReceived" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 4), // "note" +QT_MOC_LITERAL(4, 34, 8), // "velocity" +QT_MOC_LITERAL(5, 43, 15), // "noteOffReceived" +QT_MOC_LITERAL(6, 59, 5), // "error" +QT_MOC_LITERAL(7, 65, 7), // "message" +QT_MOC_LITERAL(8, 73, 23), // "connectionStatusChanged" +QT_MOC_LITERAL(9, 97, 9), // "connected" +QT_MOC_LITERAL(10, 107, 18), // "deviceInfoReceived" +QT_MOC_LITERAL(11, 126, 12), // "manufacturer" +QT_MOC_LITERAL(12, 139, 5) // "model" + + }, + "SerialReader\0noteOnReceived\0\0note\0" + "velocity\0noteOffReceived\0error\0message\0" + "connectionStatusChanged\0connected\0" + "deviceInfoReceived\0manufacturer\0model" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SerialReader[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 5, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 2, 39, 2, 0x06 /* Public */, + 5, 1, 44, 2, 0x06 /* Public */, + 6, 1, 47, 2, 0x06 /* Public */, + 8, 1, 50, 2, 0x06 /* Public */, + 10, 2, 53, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, QMetaType::Bool, 9, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 11, 12, + + 0 // eod +}; + +void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->noteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->noteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->error((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->connectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: _t->deviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SerialReader::*)(const QString & , int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOnReceived)) { + *result = 0; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOffReceived)) { + *result = 1; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::error)) { + *result = 2; + return; + } + } + { + using _t = void (SerialReader::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::connectionStatusChanged)) { + *result = 3; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & , const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::deviceInfoReceived)) { + *result = 4; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SerialReader::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SerialReader.data, + qt_meta_data_SerialReader, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SerialReader::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SerialReader::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0)) + return static_cast(this); + return QThread::qt_metacast(_clname); +} + +int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QThread::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} + +// SIGNAL 0 +void SerialReader::noteOnReceived(const QString & _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SerialReader::noteOffReceived(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void SerialReader::error(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void SerialReader::connectionStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} + +// SIGNAL 4 +void SerialReader::deviceInfoReceived(const QString & _t1, const QString & _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 4, _a); +} +struct qt_meta_stringdata_Yamitracker_t { + QByteArrayData data[23]; + char stringdata0[326]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_Yamitracker_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = { + { +QT_MOC_LITERAL(0, 0, 11), // "Yamitracker" +QT_MOC_LITERAL(1, 12, 16), // "onNoteOnReceived" +QT_MOC_LITERAL(2, 29, 0), // "" +QT_MOC_LITERAL(3, 30, 4), // "note" +QT_MOC_LITERAL(4, 35, 8), // "velocity" +QT_MOC_LITERAL(5, 44, 17), // "onNoteOffReceived" +QT_MOC_LITERAL(6, 62, 7), // "onError" +QT_MOC_LITERAL(7, 70, 7), // "message" +QT_MOC_LITERAL(8, 78, 13), // "onPlayClicked" +QT_MOC_LITERAL(9, 92, 13), // "onStopClicked" +QT_MOC_LITERAL(10, 106, 21), // "onConvertToBrrClicked" +QT_MOC_LITERAL(11, 128, 18), // "clearStatusMessage" +QT_MOC_LITERAL(12, 147, 25), // "onConnectionStatusChanged" +QT_MOC_LITERAL(13, 173, 9), // "connected" +QT_MOC_LITERAL(14, 183, 16), // "attemptReconnect" +QT_MOC_LITERAL(15, 200, 20), // "onDeviceInfoReceived" +QT_MOC_LITERAL(16, 221, 12), // "manufacturer" +QT_MOC_LITERAL(17, 234, 5), // "model" +QT_MOC_LITERAL(18, 240, 23), // "onRefreshDevicesClicked" +QT_MOC_LITERAL(19, 264, 20), // "onConversionFinished" +QT_MOC_LITERAL(20, 285, 8), // "exitCode" +QT_MOC_LITERAL(21, 294, 20), // "QProcess::ExitStatus" +QT_MOC_LITERAL(22, 315, 10) // "exitStatus" + + }, + "Yamitracker\0onNoteOnReceived\0\0note\0" + "velocity\0onNoteOffReceived\0onError\0" + "message\0onPlayClicked\0onStopClicked\0" + "onConvertToBrrClicked\0clearStatusMessage\0" + "onConnectionStatusChanged\0connected\0" + "attemptReconnect\0onDeviceInfoReceived\0" + "manufacturer\0model\0onRefreshDevicesClicked\0" + "onConversionFinished\0exitCode\0" + "QProcess::ExitStatus\0exitStatus" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_Yamitracker[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 12, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 2, 74, 2, 0x08 /* Private */, + 5, 1, 79, 2, 0x08 /* Private */, + 6, 1, 82, 2, 0x08 /* Private */, + 8, 0, 85, 2, 0x08 /* Private */, + 9, 0, 86, 2, 0x08 /* Private */, + 10, 0, 87, 2, 0x08 /* Private */, + 11, 0, 88, 2, 0x08 /* Private */, + 12, 1, 89, 2, 0x08 /* Private */, + 14, 0, 92, 2, 0x08 /* Private */, + 15, 2, 93, 2, 0x08 /* Private */, + 18, 0, 98, 2, 0x08 /* Private */, + 19, 2, 99, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Bool, 13, + QMetaType::Void, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 16, 17, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 0x80000000 | 21, 20, 22, + + 0 // eod +}; + +void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onNoteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->onNoteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->onError((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->onPlayClicked(); break; + case 4: _t->onStopClicked(); break; + case 5: _t->onConvertToBrrClicked(); break; + case 6: _t->clearStatusMessage(); break; + case 7: _t->onConnectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 8: _t->attemptReconnect(); break; + case 9: _t->onDeviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + case 10: _t->onRefreshDevicesClicked(); break; + case 11: _t->onConversionFinished((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QProcess::ExitStatus(*)>(_a[2]))); break; + default: ; + } + } +} + +QT_INIT_METAOBJECT const QMetaObject Yamitracker::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_Yamitracker.data, + qt_meta_data_Yamitracker, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *Yamitracker::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *Yamitracker::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 12) + qt_static_metacall(this, _c, _id, _a); + _id -= 12; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 12) + *reinterpret_cast(_a[0]) = -1; + _id -= 12; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/moc_yamitracker.o b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/moc_yamitracker.o new file mode 100644 index 0000000..7650699 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/moc_yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/recording_20251203_145602.mid b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/recording_20251203_145602.mid new file mode 100644 index 0000000..4fef3ed Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/recording_20251203_145602.mid differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/recording_20251203_150400.mid b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/recording_20251203_150400.mid new file mode 100644 index 0000000..20792c1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/recording_20251203_150400.mid differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/recording_20251203_150641.brr b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/recording_20251203_150641.brr new file mode 100644 index 0000000..45f1399 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/recording_20251203_150641.brr differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/recording_20251203_150641.mid b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/recording_20251203_150641.mid new file mode 100644 index 0000000..0f8d23c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/recording_20251203_150641.mid differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/simplemidiwriter.o b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/simplemidiwriter.o new file mode 100644 index 0000000..5f9e314 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/simplemidiwriter.o differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/ui_yamitracker.h b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/ui_yamitracker.h new file mode 100644 index 0000000..b1f1096 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/ui_yamitracker.h @@ -0,0 +1,625 @@ +/******************************************************************************** +** Form generated from reading UI file 'yamitracker.ui' +** +** Created by: Qt User Interface Compiler version 5.15.13 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_YAMITRACKER_H +#define UI_YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Yamitracker +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QLabel *statusLabel; + QLabel *deviceLabel; + QLabel *keysInfoLabel; + QProgressBar *volumeBar; + QHBoxLayout *controlLayout; + QPushButton *playButton; + QPushButton *stopButton; + QPushButton *convertButton; + QPushButton *refreshDevicesButton; + QWidget *pianoWidget; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *whiteKeysLayout; + QPushButton *key_C1; + QPushButton *key_D1; + QPushButton *key_E1; + QPushButton *key_F1; + QPushButton *key_G1; + QPushButton *key_A1; + QPushButton *key_B1; + QPushButton *key_C2; + QPushButton *key_D2; + QPushButton *key_E2; + QPushButton *key_F2; + QPushButton *key_G2; + QPushButton *key_A2; + QPushButton *key_B2; + QPushButton *key_C3; + QPushButton *key_D3; + QPushButton *key_E3; + QPushButton *key_F3; + QPushButton *key_G3; + QPushButton *key_A3; + QPushButton *key_B3; + QPushButton *key_C4; + QPushButton *key_D4; + QPushButton *key_E4; + QPushButton *key_F4; + QPushButton *key_G4; + QPushButton *key_A4; + QPushButton *key_B4; + QPushButton *key_C5; + QPushButton *key_D5; + QPushButton *key_E5; + QPushButton *key_F5; + QPushButton *key_G5; + QPushButton *key_A5; + QPushButton *key_B5; + QPushButton *key_C6; + QHBoxLayout *blackKeysLayout; + QSpacerItem *horizontalSpacer_1; + QPushButton *key_Cs1; + QPushButton *key_Ds1; + QSpacerItem *horizontalSpacer_2; + QPushButton *key_Fs1; + QPushButton *key_Gs1; + QPushButton *key_As1; + QSpacerItem *horizontalSpacer_3; + QPushButton *key_Cs2; + QPushButton *key_Ds2; + QSpacerItem *horizontalSpacer_4; + QPushButton *key_Fs2; + QPushButton *key_Gs2; + QPushButton *key_As2; + QSpacerItem *horizontalSpacer_5; + QPushButton *key_Cs3; + QPushButton *key_Ds3; + QSpacerItem *horizontalSpacer_6; + QPushButton *key_Fs3; + QPushButton *key_Gs3; + QPushButton *key_As3; + QSpacerItem *horizontalSpacer_7; + QPushButton *key_Cs4; + QPushButton *key_Ds4; + QSpacerItem *horizontalSpacer_8; + QPushButton *key_Fs4; + QPushButton *key_Gs4; + QPushButton *key_As4; + QSpacerItem *horizontalSpacer_9; + QPushButton *key_Cs5; + QPushButton *key_Ds5; + QSpacerItem *horizontalSpacer_10; + QPushButton *key_Fs5; + QPushButton *key_Gs5; + QPushButton *key_As5; + QSpacerItem *horizontalSpacer_11; + + void setupUi(QMainWindow *Yamitracker) + { + if (Yamitracker->objectName().isEmpty()) + Yamitracker->setObjectName(QString::fromUtf8("Yamitracker")); + Yamitracker->resize(1200, 600); + centralwidget = new QWidget(Yamitracker); + centralwidget->setObjectName(QString::fromUtf8("centralwidget")); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + statusLabel = new QLabel(centralwidget); + statusLabel->setObjectName(QString::fromUtf8("statusLabel")); + + verticalLayout->addWidget(statusLabel); + + deviceLabel = new QLabel(centralwidget); + deviceLabel->setObjectName(QString::fromUtf8("deviceLabel")); + + verticalLayout->addWidget(deviceLabel); + + keysInfoLabel = new QLabel(centralwidget); + keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel")); + + verticalLayout->addWidget(keysInfoLabel); + + volumeBar = new QProgressBar(centralwidget); + volumeBar->setObjectName(QString::fromUtf8("volumeBar")); + volumeBar->setValue(0); + + verticalLayout->addWidget(volumeBar); + + controlLayout = new QHBoxLayout(); + controlLayout->setObjectName(QString::fromUtf8("controlLayout")); + playButton = new QPushButton(centralwidget); + playButton->setObjectName(QString::fromUtf8("playButton")); + + controlLayout->addWidget(playButton); + + stopButton = new QPushButton(centralwidget); + stopButton->setObjectName(QString::fromUtf8("stopButton")); + + controlLayout->addWidget(stopButton); + + convertButton = new QPushButton(centralwidget); + convertButton->setObjectName(QString::fromUtf8("convertButton")); + + controlLayout->addWidget(convertButton); + + refreshDevicesButton = new QPushButton(centralwidget); + refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton")); + + controlLayout->addWidget(refreshDevicesButton); + + + verticalLayout->addLayout(controlLayout); + + pianoWidget = new QWidget(centralwidget); + pianoWidget->setObjectName(QString::fromUtf8("pianoWidget")); + verticalLayout_2 = new QVBoxLayout(pianoWidget); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + whiteKeysLayout = new QHBoxLayout(); + whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout")); + key_C1 = new QPushButton(pianoWidget); + key_C1->setObjectName(QString::fromUtf8("key_C1")); + + whiteKeysLayout->addWidget(key_C1); + + key_D1 = new QPushButton(pianoWidget); + key_D1->setObjectName(QString::fromUtf8("key_D1")); + + whiteKeysLayout->addWidget(key_D1); + + key_E1 = new QPushButton(pianoWidget); + key_E1->setObjectName(QString::fromUtf8("key_E1")); + + whiteKeysLayout->addWidget(key_E1); + + key_F1 = new QPushButton(pianoWidget); + key_F1->setObjectName(QString::fromUtf8("key_F1")); + + whiteKeysLayout->addWidget(key_F1); + + key_G1 = new QPushButton(pianoWidget); + key_G1->setObjectName(QString::fromUtf8("key_G1")); + + whiteKeysLayout->addWidget(key_G1); + + key_A1 = new QPushButton(pianoWidget); + key_A1->setObjectName(QString::fromUtf8("key_A1")); + + whiteKeysLayout->addWidget(key_A1); + + key_B1 = new QPushButton(pianoWidget); + key_B1->setObjectName(QString::fromUtf8("key_B1")); + + whiteKeysLayout->addWidget(key_B1); + + key_C2 = new QPushButton(pianoWidget); + key_C2->setObjectName(QString::fromUtf8("key_C2")); + + whiteKeysLayout->addWidget(key_C2); + + key_D2 = new QPushButton(pianoWidget); + key_D2->setObjectName(QString::fromUtf8("key_D2")); + + whiteKeysLayout->addWidget(key_D2); + + key_E2 = new QPushButton(pianoWidget); + key_E2->setObjectName(QString::fromUtf8("key_E2")); + + whiteKeysLayout->addWidget(key_E2); + + key_F2 = new QPushButton(pianoWidget); + key_F2->setObjectName(QString::fromUtf8("key_F2")); + + whiteKeysLayout->addWidget(key_F2); + + key_G2 = new QPushButton(pianoWidget); + key_G2->setObjectName(QString::fromUtf8("key_G2")); + + whiteKeysLayout->addWidget(key_G2); + + key_A2 = new QPushButton(pianoWidget); + key_A2->setObjectName(QString::fromUtf8("key_A2")); + + whiteKeysLayout->addWidget(key_A2); + + key_B2 = new QPushButton(pianoWidget); + key_B2->setObjectName(QString::fromUtf8("key_B2")); + + whiteKeysLayout->addWidget(key_B2); + + key_C3 = new QPushButton(pianoWidget); + key_C3->setObjectName(QString::fromUtf8("key_C3")); + + whiteKeysLayout->addWidget(key_C3); + + key_D3 = new QPushButton(pianoWidget); + key_D3->setObjectName(QString::fromUtf8("key_D3")); + + whiteKeysLayout->addWidget(key_D3); + + key_E3 = new QPushButton(pianoWidget); + key_E3->setObjectName(QString::fromUtf8("key_E3")); + + whiteKeysLayout->addWidget(key_E3); + + key_F3 = new QPushButton(pianoWidget); + key_F3->setObjectName(QString::fromUtf8("key_F3")); + + whiteKeysLayout->addWidget(key_F3); + + key_G3 = new QPushButton(pianoWidget); + key_G3->setObjectName(QString::fromUtf8("key_G3")); + + whiteKeysLayout->addWidget(key_G3); + + key_A3 = new QPushButton(pianoWidget); + key_A3->setObjectName(QString::fromUtf8("key_A3")); + + whiteKeysLayout->addWidget(key_A3); + + key_B3 = new QPushButton(pianoWidget); + key_B3->setObjectName(QString::fromUtf8("key_B3")); + + whiteKeysLayout->addWidget(key_B3); + + key_C4 = new QPushButton(pianoWidget); + key_C4->setObjectName(QString::fromUtf8("key_C4")); + + whiteKeysLayout->addWidget(key_C4); + + key_D4 = new QPushButton(pianoWidget); + key_D4->setObjectName(QString::fromUtf8("key_D4")); + + whiteKeysLayout->addWidget(key_D4); + + key_E4 = new QPushButton(pianoWidget); + key_E4->setObjectName(QString::fromUtf8("key_E4")); + + whiteKeysLayout->addWidget(key_E4); + + key_F4 = new QPushButton(pianoWidget); + key_F4->setObjectName(QString::fromUtf8("key_F4")); + + whiteKeysLayout->addWidget(key_F4); + + key_G4 = new QPushButton(pianoWidget); + key_G4->setObjectName(QString::fromUtf8("key_G4")); + + whiteKeysLayout->addWidget(key_G4); + + key_A4 = new QPushButton(pianoWidget); + key_A4->setObjectName(QString::fromUtf8("key_A4")); + + whiteKeysLayout->addWidget(key_A4); + + key_B4 = new QPushButton(pianoWidget); + key_B4->setObjectName(QString::fromUtf8("key_B4")); + + whiteKeysLayout->addWidget(key_B4); + + key_C5 = new QPushButton(pianoWidget); + key_C5->setObjectName(QString::fromUtf8("key_C5")); + + whiteKeysLayout->addWidget(key_C5); + + key_D5 = new QPushButton(pianoWidget); + key_D5->setObjectName(QString::fromUtf8("key_D5")); + + whiteKeysLayout->addWidget(key_D5); + + key_E5 = new QPushButton(pianoWidget); + key_E5->setObjectName(QString::fromUtf8("key_E5")); + + whiteKeysLayout->addWidget(key_E5); + + key_F5 = new QPushButton(pianoWidget); + key_F5->setObjectName(QString::fromUtf8("key_F5")); + + whiteKeysLayout->addWidget(key_F5); + + key_G5 = new QPushButton(pianoWidget); + key_G5->setObjectName(QString::fromUtf8("key_G5")); + + whiteKeysLayout->addWidget(key_G5); + + key_A5 = new QPushButton(pianoWidget); + key_A5->setObjectName(QString::fromUtf8("key_A5")); + + whiteKeysLayout->addWidget(key_A5); + + key_B5 = new QPushButton(pianoWidget); + key_B5->setObjectName(QString::fromUtf8("key_B5")); + + whiteKeysLayout->addWidget(key_B5); + + key_C6 = new QPushButton(pianoWidget); + key_C6->setObjectName(QString::fromUtf8("key_C6")); + + whiteKeysLayout->addWidget(key_C6); + + + verticalLayout_2->addLayout(whiteKeysLayout); + + blackKeysLayout = new QHBoxLayout(); + blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout")); + horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_1); + + key_Cs1 = new QPushButton(pianoWidget); + key_Cs1->setObjectName(QString::fromUtf8("key_Cs1")); + + blackKeysLayout->addWidget(key_Cs1); + + key_Ds1 = new QPushButton(pianoWidget); + key_Ds1->setObjectName(QString::fromUtf8("key_Ds1")); + + blackKeysLayout->addWidget(key_Ds1); + + horizontalSpacer_2 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_2); + + key_Fs1 = new QPushButton(pianoWidget); + key_Fs1->setObjectName(QString::fromUtf8("key_Fs1")); + + blackKeysLayout->addWidget(key_Fs1); + + key_Gs1 = new QPushButton(pianoWidget); + key_Gs1->setObjectName(QString::fromUtf8("key_Gs1")); + + blackKeysLayout->addWidget(key_Gs1); + + key_As1 = new QPushButton(pianoWidget); + key_As1->setObjectName(QString::fromUtf8("key_As1")); + + blackKeysLayout->addWidget(key_As1); + + horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_3); + + key_Cs2 = new QPushButton(pianoWidget); + key_Cs2->setObjectName(QString::fromUtf8("key_Cs2")); + + blackKeysLayout->addWidget(key_Cs2); + + key_Ds2 = new QPushButton(pianoWidget); + key_Ds2->setObjectName(QString::fromUtf8("key_Ds2")); + + blackKeysLayout->addWidget(key_Ds2); + + horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_4); + + key_Fs2 = new QPushButton(pianoWidget); + key_Fs2->setObjectName(QString::fromUtf8("key_Fs2")); + + blackKeysLayout->addWidget(key_Fs2); + + key_Gs2 = new QPushButton(pianoWidget); + key_Gs2->setObjectName(QString::fromUtf8("key_Gs2")); + + blackKeysLayout->addWidget(key_Gs2); + + key_As2 = new QPushButton(pianoWidget); + key_As2->setObjectName(QString::fromUtf8("key_As2")); + + blackKeysLayout->addWidget(key_As2); + + horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_5); + + key_Cs3 = new QPushButton(pianoWidget); + key_Cs3->setObjectName(QString::fromUtf8("key_Cs3")); + + blackKeysLayout->addWidget(key_Cs3); + + key_Ds3 = new QPushButton(pianoWidget); + key_Ds3->setObjectName(QString::fromUtf8("key_Ds3")); + + blackKeysLayout->addWidget(key_Ds3); + + horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_6); + + key_Fs3 = new QPushButton(pianoWidget); + key_Fs3->setObjectName(QString::fromUtf8("key_Fs3")); + + blackKeysLayout->addWidget(key_Fs3); + + key_Gs3 = new QPushButton(pianoWidget); + key_Gs3->setObjectName(QString::fromUtf8("key_Gs3")); + + blackKeysLayout->addWidget(key_Gs3); + + key_As3 = new QPushButton(pianoWidget); + key_As3->setObjectName(QString::fromUtf8("key_As3")); + + blackKeysLayout->addWidget(key_As3); + + horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_7); + + key_Cs4 = new QPushButton(pianoWidget); + key_Cs4->setObjectName(QString::fromUtf8("key_Cs4")); + + blackKeysLayout->addWidget(key_Cs4); + + key_Ds4 = new QPushButton(pianoWidget); + key_Ds4->setObjectName(QString::fromUtf8("key_Ds4")); + + blackKeysLayout->addWidget(key_Ds4); + + horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_8); + + key_Fs4 = new QPushButton(pianoWidget); + key_Fs4->setObjectName(QString::fromUtf8("key_Fs4")); + + blackKeysLayout->addWidget(key_Fs4); + + key_Gs4 = new QPushButton(pianoWidget); + key_Gs4->setObjectName(QString::fromUtf8("key_Gs4")); + + blackKeysLayout->addWidget(key_Gs4); + + key_As4 = new QPushButton(pianoWidget); + key_As4->setObjectName(QString::fromUtf8("key_As4")); + + blackKeysLayout->addWidget(key_As4); + + horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_9); + + key_Cs5 = new QPushButton(pianoWidget); + key_Cs5->setObjectName(QString::fromUtf8("key_Cs5")); + + blackKeysLayout->addWidget(key_Cs5); + + key_Ds5 = new QPushButton(pianoWidget); + key_Ds5->setObjectName(QString::fromUtf8("key_Ds5")); + + blackKeysLayout->addWidget(key_Ds5); + + horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_10); + + key_Fs5 = new QPushButton(pianoWidget); + key_Fs5->setObjectName(QString::fromUtf8("key_Fs5")); + + blackKeysLayout->addWidget(key_Fs5); + + key_Gs5 = new QPushButton(pianoWidget); + key_Gs5->setObjectName(QString::fromUtf8("key_Gs5")); + + blackKeysLayout->addWidget(key_Gs5); + + key_As5 = new QPushButton(pianoWidget); + key_As5->setObjectName(QString::fromUtf8("key_As5")); + + blackKeysLayout->addWidget(key_As5); + + horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_11); + + + verticalLayout_2->addLayout(blackKeysLayout); + + + verticalLayout->addWidget(pianoWidget); + + Yamitracker->setCentralWidget(centralwidget); + + retranslateUi(Yamitracker); + + QMetaObject::connectSlotsByName(Yamitracker); + } // setupUi + + void retranslateUi(QMainWindow *Yamitracker) + { + Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor", nullptr)); + statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr)); + deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr)); + keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr)); + playButton->setText(QCoreApplication::translate("Yamitracker", "\320\227\320\260\320\277\320\270\321\201\321\214 (Play)", nullptr)); + stopButton->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\276\320\277", nullptr)); + convertButton->setText(QCoreApplication::translate("Yamitracker", "\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr)); + refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr)); + key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr)); + key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr)); + key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr)); + key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr)); + key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr)); + key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr)); + key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr)); + key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr)); + key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr)); + key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr)); + key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr)); + key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr)); + key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr)); + key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr)); + key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr)); + key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr)); + key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr)); + key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr)); + key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr)); + key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr)); + key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr)); + key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr)); + key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr)); + key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr)); + key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr)); + key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr)); + key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr)); + key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr)); + key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr)); + key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr)); + key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr)); + key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr)); + key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr)); + key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr)); + key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr)); + key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr)); + key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr)); + key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr)); + key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr)); + key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr)); + key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr)); + key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr)); + key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr)); + key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr)); + key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr)); + key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr)); + key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr)); + key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr)); + key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr)); + key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr)); + key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr)); + key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr)); + key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr)); + key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr)); + key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr)); + key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr)); + key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr)); + key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr)); + key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr)); + key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr)); + key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class Yamitracker: public Ui_Yamitracker {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_YAMITRACKER_H diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build/yamitracker.o b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/yamitracker.o new file mode 100644 index 0000000..dac2233 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build/yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/.qmake.stash b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/Makefile b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/Makefile new file mode 100644 index 0000000..d726afa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/Makefile @@ -0,0 +1,442 @@ +############################################################################# +# Makefile for building: Yamitracker +# Generated by qmake (3.1) (Qt 5.15.13) +# Project: ../Yamitracker.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Yamitracker1.0.0 +DISTDIR = /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/.tmp/Yamitracker1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp moc_yamitracker.cpp \ + moc_brrconverter.cpp +OBJECTS = main.o \ + yamitracker.o \ + simplewavwriter.o \ + brrconverter.o \ + moc_yamitracker.o \ + moc_brrconverter.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../Yamitracker.pro ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp +QMAKE_TARGET = Yamitracker +DESTDIR = +TARGET = Yamitracker + + +first: all +####### Build rules + +Yamitracker: ui_yamitracker.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../Yamitracker.pro + $(QMAKE) -o Makefile ../Yamitracker.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../Yamitracker.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../Yamitracker.pro + +qmake_all: FORCE + + +all: Makefile Yamitracker + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.h ../simplewavwriter.h ../brrconverter.h $(DISTDIR)/ + $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplewavwriter.cpp ../brrconverter.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_yamitracker.cpp moc_brrconverter.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_yamitracker.cpp moc_brrconverter.cpp +moc_yamitracker.cpp: ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp + +moc_brrconverter.cpp: ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../brrconverter.h -o moc_brrconverter.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_yamitracker.h +compiler_uic_clean: + -$(DEL_FILE) ui_yamitracker.h +ui_yamitracker.h: ../yamitracker.ui \ + /usr/lib/qt5/bin/uic + /usr/lib/qt5/bin/uic ../yamitracker.ui -o ui_yamitracker.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: ../main.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp + +yamitracker.o: ../yamitracker.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + ui_yamitracker.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp + +simplewavwriter.o: ../simplewavwriter.cpp ../simplewavwriter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplewavwriter.o ../simplewavwriter.cpp + +brrconverter.o: ../brrconverter.cpp ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o brrconverter.o ../brrconverter.cpp + +moc_yamitracker.o: moc_yamitracker.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp + +moc_brrconverter.o: moc_brrconverter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_brrconverter.o moc_brrconverter.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin + $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/Yamitracker b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/Yamitracker new file mode 100755 index 0000000..984eec7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/Yamitracker differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/brrconverter.o b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/brrconverter.o new file mode 100644 index 0000000..149ec06 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/main.o b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/main.o new file mode 100644 index 0000000..edc2e30 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/main.o differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/moc_brrconverter.cpp b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/moc_brrconverter.cpp new file mode 100644 index 0000000..a11b9fc --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/moc_brrconverter.cpp @@ -0,0 +1,95 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'brrconverter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../brrconverter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'brrconverter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_BrrConverter_t { + QByteArrayData data[1]; + char stringdata0[13]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_BrrConverter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_BrrConverter_t qt_meta_stringdata_BrrConverter = { + { +QT_MOC_LITERAL(0, 0, 12) // "BrrConverter" + + }, + "BrrConverter" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_BrrConverter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void BrrConverter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject BrrConverter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_BrrConverter.data, + qt_meta_data_BrrConverter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *BrrConverter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *BrrConverter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_BrrConverter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int BrrConverter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/moc_brrconverter.o b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/moc_brrconverter.o new file mode 100644 index 0000000..fa3b784 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/moc_brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/moc_predefs.h b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/moc_predefs.h new file mode 100644 index 0000000..f29ad61 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/moc_predefs.h @@ -0,0 +1,464 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __cpp_nontype_template_parameter_auto 201606L +#define __UINT_LEAST16_MAX__ 0xffff +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __ATOMIC_ACQUIRE 2 +#define __FLT128_MAX_10_EXP__ 4932 +#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __cpp_aggregate_nsdmi 201304L +#define __UINT_LEAST8_TYPE__ unsigned char +#define __SIZEOF_FLOAT80__ 16 +#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 0xff +#define __SCHAR_WIDTH__ 8 +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 201411L +#define __BFLT16_MIN_10_EXP__ (-37) +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __WCHAR_MAX__ 0x7fffffff +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __cpp_binary_literals 201304L +#define __FLT64_DECIMAL_DIG__ 17 +#define __CET__ 3 +#define __cpp_noexcept_function_type 201510L +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __cpp_variadic_templates 200704L +#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __cpp_variable_templates 201304L +#define __FLT32X_MAX_EXP__ 1024 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __FLT32_HAS_DENORM__ 1 +#define __UINT_FAST8_MAX__ 0xff +#define __cpp_rvalue_reference 200610L +#define __cpp_nested_namespace_definitions 201411L +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __LDBL_HAS_INFINITY__ 1 +#define __INT_LEAST8_WIDTH__ 8 +#define __cpp_variadic_using 201611L +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL +#define __INT_LEAST8_MAX__ 0x7f +#define __cpp_attributes 200809L +#define __cpp_capture_star_this 201603L +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __FLT64X_MAX_10_EXP__ 4932 +#define __cpp_if_constexpr 201606L +#define __BFLT16_MAX_10_EXP__ 38 +#define __BFLT16_MAX_EXP__ 128 +#define __LDBL_IS_IEC_60559__ 1 +#define __FLT64X_HAS_QUIET_NAN__ 1 +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +#define __UINTMAX_TYPE__ long unsigned int +#define __cpp_nsdmi 200809L +#define __BFLT16_DECIMAL_DIG__ 4 +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __OPTIMIZE__ 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +#define __FLT128_MIN_EXP__ (-16381) +#define __WINT_MIN__ 0U +#define __FLT128_MIN_10_EXP__ (-4931) +#define __FLT32X_IS_IEC_60559__ 1 +#define __INT_LEAST16_WIDTH__ 16 +#define __SCHAR_MAX__ 0x7f +#define __FLT128_MANT_DIG__ 113 +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __INT64_C(c) c ## L +#define __SSP_STRONG__ 3 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __ATOMIC_SEQ_CST 5 +#define _FORTIFY_SOURCE 3 +#define __unix 1 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MANT_DIG__ 53 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __cpp_aligned_new 201606L +#define __FLT32_MAX_10_EXP__ 38 +#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +#define __STDC_HOSTED__ 1 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype_auto 201304L +#define __DBL_DIG__ 15 +#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __FLT32_IS_IEC_60559__ 1 +#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +#define __DBL_IS_IEC_60559__ 1 +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806L +#define __cpp_enumerator_attributes 201411L +#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +#define __FLT32X_HAS_INFINITY__ 1 +#define __unix__ 1 +#define __INT_WIDTH__ 32 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __DECIMAL_DIG__ 21 +#define __STDC_IEC_559_COMPLEX__ 1 +#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +#define __gnu_linux__ 1 +#define __INT16_MAX__ 0x7fff +#define __FLT64_MIN_EXP__ (-1021) +#define __FLT64X_MIN_10_EXP__ (-4931) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __cpp_return_type_deduction 201304L +#define __FLT16_MIN_EXP__ (-13) +#define __FLT64_MANT_DIG__ 53 +#define __FLT64X_MANT_DIG__ 64 +#define __BFLT16_DIG__ 2 +#define __GNUC__ 13 +#define __GXX_RTTI 1 +#define __pie__ 2 +#define __MMX__ 1 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __BIGGEST_ALIGNMENT__ 16 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __BFLT16_IS_IEC_60559__ 0 +#define __FLT16_MAX_10_EXP__ 4 +#define __cpp_delegating_constructors 200604L +#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __cpp_raw_strings 200710L +#define __INT_FAST32_MAX__ 0x7fffffffffffffffL +#define __DBL_HAS_INFINITY__ 1 +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __SIZEOF_FLOAT__ 4 +#define __HAVE_SPECULATION_SAFE_VALUE 1 +#define __cpp_fold_expressions 201603L +#define __DEC32_MIN_EXP__ (-94) +#define __INTPTR_WIDTH__ 64 +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ long int +#define __MMX_WITH_SSE__ 1 +#define __LDBL_HAS_DENORM__ 1 +#define __SEG_GS 1 +#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +#define __cplusplus 201703L +#define __cpp_ref_qualifiers 200710L +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610L +#define __DBL_MAX_EXP__ 1024 +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __FLT16_DECIMAL_DIG__ 5 +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 0x7fffffffffffffffL +#define __amd64 1 +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __GNUG__ 13 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 8 +#define __BFLT16_HAS_INFINITY__ 1 +#define __FLT64X_MIN_EXP__ (-16381) +#define __SIZEOF_WINT_T__ 4 +#define __FLT32X_DIG__ 15 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806L +#define __FLT32_MAX_EXP__ 128 +#define __cpp_hex_float 201603L +#define __GXX_ABI_VERSION 1018 +#define __FLT_MIN_EXP__ (-125) +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __x86_64 1 +#define __cpp_lambdas 200907L +#define __INT_FAST64_TYPE__ long int +#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +#define __cpp_template_auto 201606L +#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __SIZEOF_POINTER__ 8 +#define __SIZE_TYPE__ long unsigned int +#define __LP64__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +#define __LDBL_MAX_EXP__ 16384 +#define __DECIMAL_BID_FORMAT__ 1 +#define __FLT64_MIN_10_EXP__ (-307) +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT64X_DECIMAL_DIG__ 21 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __FLT128_HAS_INFINITY__ 1 +#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __FLT_DIG__ 6 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 21 +#define __VERSION__ "13.3.0" +#define __UINT64_C(c) c ## UL +#define __cpp_unicode_characters 201411L +#define _STDC_PREDEF_H 1 +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT128_MAX_EXP__ 16384 +#define __FLT32_MANT_DIG__ 24 +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT32X_MIN_EXP__ (-1021) +#define __STDC_IEC_60559_COMPLEX__ 201404L +#define __cpp_aggregate_bases 201603L +#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +#define __FLT128_HAS_DENORM__ 1 +#define __FLT32_DECIMAL_DIG__ 9 +#define __FLT128_DIG__ 33 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __DEC128_MAX_EXP__ 6145 +#define unix 1 +#define __DBL_HAS_DENORM__ 1 +#define __cpp_rtti 199711L +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __FLT_IS_IEC_60559__ 1 +#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +#define __FLT64X_DIG__ 18 +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309L +#define __ELF__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __UINT32_TYPE__ unsigned int +#define __BFLT16_HAS_QUIET_NAN__ 1 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +#define __UINTMAX_C(c) c ## UL +#define __FLT16_DIG__ 3 +#define __k8 1 +#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __cpp_constexpr 201603L +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +#define __STDC_IEC_60559_BFP__ 201404L +#define __SIZEOF_PTRDIFF_T__ 8 +#define __FLT64X_HAS_INFINITY__ 1 +#define __SIZEOF_LONG__ 8 +#define __LDBL_DIG__ 18 +#define __FLT64_IS_IEC_60559__ 1 +#define __x86_64__ 1 +#define __FLT16_IS_IEC_60559__ 1 +#define __FLT16_MAX_EXP__ 16 +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __INT_FAST16_MAX__ 0x7fffffffffffffffL +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __LONG_MAX__ 0x7fffffffffffffffL +#define __FLT64X_HAS_DENORM__ 1 +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" +#define __cpp_unicode_literals 200710L +#define __UINT_FAST16_TYPE__ long unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __INT_FAST32_WIDTH__ 64 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __SIZE_WIDTH__ 64 +#define __SEG_FS 1 +#define __INT_LEAST16_MAX__ 0x7fff +#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __DEC64_MANT_DIG__ 16 +#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +#define __cpp_structured_bindings 201606L +#define __SIZEOF_INT__ 4 +#define __DEC32_MAX_EXP__ 97 +#define __INT_FAST8_MAX__ 0x7f +#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __INTPTR_MAX__ 0x7fffffffffffffffL +#define __cpp_sized_deallocation 201309L +#define __cpp_guaranteed_copy_elision 201606L +#define linux 1 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __EXCEPTIONS 1 +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 64 +#define __LDBL_MANT_DIG__ 64 +#define __cpp_range_based_for 201603L +#define __INT_FAST16_WIDTH__ 64 +#define __FLT64_HAS_INFINITY__ 1 +#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __FLT16_HAS_INFINITY__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __cpp_nontype_template_args 201411L +#define __DEC32_MANT_DIG__ 7 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __pic__ 2 +#define __UINTPTR_MAX__ 0xffffffffffffffffUL +#define __INT_FAST64_WIDTH__ 64 +#define __cpp_decltype 200707L +#define __INT_FAST64_MAX__ 0x7fffffffffffffffL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +#define __FLT32_HAS_INFINITY__ 1 +#define __FLT64X_MAX_EXP__ 16384 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __cpp_inline_variables 201606L +#define __BFLT16_MIN_EXP__ (-125) +#define __INT_MAX__ 0x7fffffff +#define __linux__ 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __cpp_inheriting_constructors 201511L +#define __SIZEOF_FLOAT128__ 16 +#define __BFLT16_MANT_DIG__ 8 +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __amd64__ 1 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST64_WIDTH__ 64 +#define __FLT32X_MAX_10_EXP__ 308 +#define __cpp_namespace_attributes 201411L +#define __SIZEOF_INT128__ 16 +#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +#define __FLT64X_IS_IEC_60559__ 1 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +#define __INT_LEAST32_TYPE__ int +#define _LP64 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __SIZEOF_WCHAR_T__ 4 +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __FLT128_HAS_QUIET_NAN__ 1 +#define __INTMAX_MAX__ 0x7fffffffffffffffL +#define __INT_FAST8_TYPE__ signed char +#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +#define __STDCPP_THREADS__ 1 +#define __BFLT16_HAS_DENORM__ 1 +#define __GNUC_STDC_INLINE__ 1 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +#define __FLT16_HAS_DENORM__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __FXSR__ 1 +#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __INTMAX_WIDTH__ 64 +#define __cpp_runtime_arrays 198712L +#define __FLT32_DIG__ 6 +#define __UINT64_TYPE__ long unsigned int +#define __UINT32_C(c) c ## U +#define __cpp_alias_templates 200704L +#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +#define __FLT128_IS_IEC_60559__ 1 +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 64 +#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +#define __PIC__ 2 +#define __INT32_MAX__ 0x7fffffff +#define __UINT_FAST32_TYPE__ long unsigned int +#define __FLT16_MANT_DIG__ 11 +#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F +#define __SSE2__ 1 +#define __cpp_deduction_guides 201703L +#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711L +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long int +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 3 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __UINTMAX_MAX__ 0xffffffffffffffffUL +#define __PIE__ 2 +#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +#define __cpp_template_template_args 201611L +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +#define __INT16_C(c) c +#define __STDC__ 1 +#define __PTRDIFF_TYPE__ long int +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __cpp_generic_lambdas 201304L +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809L +#define __FLT128_DECIMAL_DIG__ 36 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL +#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __SIZE_MAX__ 0xffffffffffffffffUL +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __cpp_init_captures 201304L +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/moc_yamitracker.cpp b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/moc_yamitracker.cpp new file mode 100644 index 0000000..868459e --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/moc_yamitracker.cpp @@ -0,0 +1,360 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'yamitracker.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../yamitracker.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'yamitracker.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SerialReader_t { + QByteArrayData data[13]; + char stringdata0[145]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SerialReader_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = { + { +QT_MOC_LITERAL(0, 0, 12), // "SerialReader" +QT_MOC_LITERAL(1, 13, 14), // "noteOnReceived" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 4), // "note" +QT_MOC_LITERAL(4, 34, 8), // "velocity" +QT_MOC_LITERAL(5, 43, 15), // "noteOffReceived" +QT_MOC_LITERAL(6, 59, 5), // "error" +QT_MOC_LITERAL(7, 65, 7), // "message" +QT_MOC_LITERAL(8, 73, 23), // "connectionStatusChanged" +QT_MOC_LITERAL(9, 97, 9), // "connected" +QT_MOC_LITERAL(10, 107, 18), // "deviceInfoReceived" +QT_MOC_LITERAL(11, 126, 12), // "manufacturer" +QT_MOC_LITERAL(12, 139, 5) // "model" + + }, + "SerialReader\0noteOnReceived\0\0note\0" + "velocity\0noteOffReceived\0error\0message\0" + "connectionStatusChanged\0connected\0" + "deviceInfoReceived\0manufacturer\0model" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SerialReader[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 5, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 2, 39, 2, 0x06 /* Public */, + 5, 1, 44, 2, 0x06 /* Public */, + 6, 1, 47, 2, 0x06 /* Public */, + 8, 1, 50, 2, 0x06 /* Public */, + 10, 2, 53, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, QMetaType::Bool, 9, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 11, 12, + + 0 // eod +}; + +void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->noteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->noteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->error((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->connectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: _t->deviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SerialReader::*)(const QString & , int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOnReceived)) { + *result = 0; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOffReceived)) { + *result = 1; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::error)) { + *result = 2; + return; + } + } + { + using _t = void (SerialReader::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::connectionStatusChanged)) { + *result = 3; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & , const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::deviceInfoReceived)) { + *result = 4; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SerialReader::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SerialReader.data, + qt_meta_data_SerialReader, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SerialReader::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SerialReader::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0)) + return static_cast(this); + return QThread::qt_metacast(_clname); +} + +int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QThread::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} + +// SIGNAL 0 +void SerialReader::noteOnReceived(const QString & _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SerialReader::noteOffReceived(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void SerialReader::error(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void SerialReader::connectionStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} + +// SIGNAL 4 +void SerialReader::deviceInfoReceived(const QString & _t1, const QString & _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 4, _a); +} +struct qt_meta_stringdata_Yamitracker_t { + QByteArrayData data[19]; + char stringdata0[264]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_Yamitracker_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = { + { +QT_MOC_LITERAL(0, 0, 11), // "Yamitracker" +QT_MOC_LITERAL(1, 12, 16), // "onNoteOnReceived" +QT_MOC_LITERAL(2, 29, 0), // "" +QT_MOC_LITERAL(3, 30, 4), // "note" +QT_MOC_LITERAL(4, 35, 8), // "velocity" +QT_MOC_LITERAL(5, 44, 17), // "onNoteOffReceived" +QT_MOC_LITERAL(6, 62, 7), // "onError" +QT_MOC_LITERAL(7, 70, 7), // "message" +QT_MOC_LITERAL(8, 78, 13), // "onPlayClicked" +QT_MOC_LITERAL(9, 92, 13), // "onStopClicked" +QT_MOC_LITERAL(10, 106, 21), // "onConvertToBrrClicked" +QT_MOC_LITERAL(11, 128, 18), // "clearStatusMessage" +QT_MOC_LITERAL(12, 147, 25), // "onConnectionStatusChanged" +QT_MOC_LITERAL(13, 173, 9), // "connected" +QT_MOC_LITERAL(14, 183, 16), // "attemptReconnect" +QT_MOC_LITERAL(15, 200, 20), // "onDeviceInfoReceived" +QT_MOC_LITERAL(16, 221, 12), // "manufacturer" +QT_MOC_LITERAL(17, 234, 5), // "model" +QT_MOC_LITERAL(18, 240, 23) // "onRefreshDevicesClicked" + + }, + "Yamitracker\0onNoteOnReceived\0\0note\0" + "velocity\0onNoteOffReceived\0onError\0" + "message\0onPlayClicked\0onStopClicked\0" + "onConvertToBrrClicked\0clearStatusMessage\0" + "onConnectionStatusChanged\0connected\0" + "attemptReconnect\0onDeviceInfoReceived\0" + "manufacturer\0model\0onRefreshDevicesClicked" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_Yamitracker[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 11, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 2, 69, 2, 0x08 /* Private */, + 5, 1, 74, 2, 0x08 /* Private */, + 6, 1, 77, 2, 0x08 /* Private */, + 8, 0, 80, 2, 0x08 /* Private */, + 9, 0, 81, 2, 0x08 /* Private */, + 10, 0, 82, 2, 0x08 /* Private */, + 11, 0, 83, 2, 0x08 /* Private */, + 12, 1, 84, 2, 0x08 /* Private */, + 14, 0, 87, 2, 0x08 /* Private */, + 15, 2, 88, 2, 0x08 /* Private */, + 18, 0, 93, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Bool, 13, + QMetaType::Void, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 16, 17, + QMetaType::Void, + + 0 // eod +}; + +void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onNoteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->onNoteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->onError((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->onPlayClicked(); break; + case 4: _t->onStopClicked(); break; + case 5: _t->onConvertToBrrClicked(); break; + case 6: _t->clearStatusMessage(); break; + case 7: _t->onConnectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 8: _t->attemptReconnect(); break; + case 9: _t->onDeviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + case 10: _t->onRefreshDevicesClicked(); break; + default: ; + } + } +} + +QT_INIT_METAOBJECT const QMetaObject Yamitracker::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_Yamitracker.data, + qt_meta_data_Yamitracker, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *Yamitracker::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *Yamitracker::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 11) + qt_static_metacall(this, _c, _id, _a); + _id -= 11; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 11) + *reinterpret_cast(_a[0]) = -1; + _id -= 11; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/moc_yamitracker.o b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/moc_yamitracker.o new file mode 100644 index 0000000..94c6f3d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/moc_yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_130314.wav b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_130314.wav new file mode 100644 index 0000000..3e8acba Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_130314.wav differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_130330.wav b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_130330.wav new file mode 100644 index 0000000..9d43abb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_130330.wav differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_130335.wav b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_130335.wav new file mode 100644 index 0000000..f7ef2a0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_130335.wav differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_130350.wav b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_130350.wav new file mode 100644 index 0000000..2ec0a92 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_130350.wav differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133027.wav b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133027.wav new file mode 100644 index 0000000..7f87b07 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133027.wav differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133032.wav b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133032.wav new file mode 100644 index 0000000..fde0bfe Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133032.wav differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133042.wav b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133042.wav new file mode 100644 index 0000000..1097ef8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133042.wav differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133048.brr b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133048.brr new file mode 100644 index 0000000..a475539 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133048.brr differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133048.wav b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133048.wav new file mode 100644 index 0000000..c296e1b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133048.wav differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133558.brr b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133558.brr new file mode 100644 index 0000000..940aec5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133558.brr differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133558.wav b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133558.wav new file mode 100644 index 0000000..512d392 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/recording_20251206_133558.wav differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/simplewavwriter.o b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/simplewavwriter.o new file mode 100644 index 0000000..46d7f52 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/simplewavwriter.o differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/ui_yamitracker.h b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/ui_yamitracker.h new file mode 100644 index 0000000..b1f1096 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/ui_yamitracker.h @@ -0,0 +1,625 @@ +/******************************************************************************** +** Form generated from reading UI file 'yamitracker.ui' +** +** Created by: Qt User Interface Compiler version 5.15.13 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_YAMITRACKER_H +#define UI_YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Yamitracker +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QLabel *statusLabel; + QLabel *deviceLabel; + QLabel *keysInfoLabel; + QProgressBar *volumeBar; + QHBoxLayout *controlLayout; + QPushButton *playButton; + QPushButton *stopButton; + QPushButton *convertButton; + QPushButton *refreshDevicesButton; + QWidget *pianoWidget; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *whiteKeysLayout; + QPushButton *key_C1; + QPushButton *key_D1; + QPushButton *key_E1; + QPushButton *key_F1; + QPushButton *key_G1; + QPushButton *key_A1; + QPushButton *key_B1; + QPushButton *key_C2; + QPushButton *key_D2; + QPushButton *key_E2; + QPushButton *key_F2; + QPushButton *key_G2; + QPushButton *key_A2; + QPushButton *key_B2; + QPushButton *key_C3; + QPushButton *key_D3; + QPushButton *key_E3; + QPushButton *key_F3; + QPushButton *key_G3; + QPushButton *key_A3; + QPushButton *key_B3; + QPushButton *key_C4; + QPushButton *key_D4; + QPushButton *key_E4; + QPushButton *key_F4; + QPushButton *key_G4; + QPushButton *key_A4; + QPushButton *key_B4; + QPushButton *key_C5; + QPushButton *key_D5; + QPushButton *key_E5; + QPushButton *key_F5; + QPushButton *key_G5; + QPushButton *key_A5; + QPushButton *key_B5; + QPushButton *key_C6; + QHBoxLayout *blackKeysLayout; + QSpacerItem *horizontalSpacer_1; + QPushButton *key_Cs1; + QPushButton *key_Ds1; + QSpacerItem *horizontalSpacer_2; + QPushButton *key_Fs1; + QPushButton *key_Gs1; + QPushButton *key_As1; + QSpacerItem *horizontalSpacer_3; + QPushButton *key_Cs2; + QPushButton *key_Ds2; + QSpacerItem *horizontalSpacer_4; + QPushButton *key_Fs2; + QPushButton *key_Gs2; + QPushButton *key_As2; + QSpacerItem *horizontalSpacer_5; + QPushButton *key_Cs3; + QPushButton *key_Ds3; + QSpacerItem *horizontalSpacer_6; + QPushButton *key_Fs3; + QPushButton *key_Gs3; + QPushButton *key_As3; + QSpacerItem *horizontalSpacer_7; + QPushButton *key_Cs4; + QPushButton *key_Ds4; + QSpacerItem *horizontalSpacer_8; + QPushButton *key_Fs4; + QPushButton *key_Gs4; + QPushButton *key_As4; + QSpacerItem *horizontalSpacer_9; + QPushButton *key_Cs5; + QPushButton *key_Ds5; + QSpacerItem *horizontalSpacer_10; + QPushButton *key_Fs5; + QPushButton *key_Gs5; + QPushButton *key_As5; + QSpacerItem *horizontalSpacer_11; + + void setupUi(QMainWindow *Yamitracker) + { + if (Yamitracker->objectName().isEmpty()) + Yamitracker->setObjectName(QString::fromUtf8("Yamitracker")); + Yamitracker->resize(1200, 600); + centralwidget = new QWidget(Yamitracker); + centralwidget->setObjectName(QString::fromUtf8("centralwidget")); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + statusLabel = new QLabel(centralwidget); + statusLabel->setObjectName(QString::fromUtf8("statusLabel")); + + verticalLayout->addWidget(statusLabel); + + deviceLabel = new QLabel(centralwidget); + deviceLabel->setObjectName(QString::fromUtf8("deviceLabel")); + + verticalLayout->addWidget(deviceLabel); + + keysInfoLabel = new QLabel(centralwidget); + keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel")); + + verticalLayout->addWidget(keysInfoLabel); + + volumeBar = new QProgressBar(centralwidget); + volumeBar->setObjectName(QString::fromUtf8("volumeBar")); + volumeBar->setValue(0); + + verticalLayout->addWidget(volumeBar); + + controlLayout = new QHBoxLayout(); + controlLayout->setObjectName(QString::fromUtf8("controlLayout")); + playButton = new QPushButton(centralwidget); + playButton->setObjectName(QString::fromUtf8("playButton")); + + controlLayout->addWidget(playButton); + + stopButton = new QPushButton(centralwidget); + stopButton->setObjectName(QString::fromUtf8("stopButton")); + + controlLayout->addWidget(stopButton); + + convertButton = new QPushButton(centralwidget); + convertButton->setObjectName(QString::fromUtf8("convertButton")); + + controlLayout->addWidget(convertButton); + + refreshDevicesButton = new QPushButton(centralwidget); + refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton")); + + controlLayout->addWidget(refreshDevicesButton); + + + verticalLayout->addLayout(controlLayout); + + pianoWidget = new QWidget(centralwidget); + pianoWidget->setObjectName(QString::fromUtf8("pianoWidget")); + verticalLayout_2 = new QVBoxLayout(pianoWidget); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + whiteKeysLayout = new QHBoxLayout(); + whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout")); + key_C1 = new QPushButton(pianoWidget); + key_C1->setObjectName(QString::fromUtf8("key_C1")); + + whiteKeysLayout->addWidget(key_C1); + + key_D1 = new QPushButton(pianoWidget); + key_D1->setObjectName(QString::fromUtf8("key_D1")); + + whiteKeysLayout->addWidget(key_D1); + + key_E1 = new QPushButton(pianoWidget); + key_E1->setObjectName(QString::fromUtf8("key_E1")); + + whiteKeysLayout->addWidget(key_E1); + + key_F1 = new QPushButton(pianoWidget); + key_F1->setObjectName(QString::fromUtf8("key_F1")); + + whiteKeysLayout->addWidget(key_F1); + + key_G1 = new QPushButton(pianoWidget); + key_G1->setObjectName(QString::fromUtf8("key_G1")); + + whiteKeysLayout->addWidget(key_G1); + + key_A1 = new QPushButton(pianoWidget); + key_A1->setObjectName(QString::fromUtf8("key_A1")); + + whiteKeysLayout->addWidget(key_A1); + + key_B1 = new QPushButton(pianoWidget); + key_B1->setObjectName(QString::fromUtf8("key_B1")); + + whiteKeysLayout->addWidget(key_B1); + + key_C2 = new QPushButton(pianoWidget); + key_C2->setObjectName(QString::fromUtf8("key_C2")); + + whiteKeysLayout->addWidget(key_C2); + + key_D2 = new QPushButton(pianoWidget); + key_D2->setObjectName(QString::fromUtf8("key_D2")); + + whiteKeysLayout->addWidget(key_D2); + + key_E2 = new QPushButton(pianoWidget); + key_E2->setObjectName(QString::fromUtf8("key_E2")); + + whiteKeysLayout->addWidget(key_E2); + + key_F2 = new QPushButton(pianoWidget); + key_F2->setObjectName(QString::fromUtf8("key_F2")); + + whiteKeysLayout->addWidget(key_F2); + + key_G2 = new QPushButton(pianoWidget); + key_G2->setObjectName(QString::fromUtf8("key_G2")); + + whiteKeysLayout->addWidget(key_G2); + + key_A2 = new QPushButton(pianoWidget); + key_A2->setObjectName(QString::fromUtf8("key_A2")); + + whiteKeysLayout->addWidget(key_A2); + + key_B2 = new QPushButton(pianoWidget); + key_B2->setObjectName(QString::fromUtf8("key_B2")); + + whiteKeysLayout->addWidget(key_B2); + + key_C3 = new QPushButton(pianoWidget); + key_C3->setObjectName(QString::fromUtf8("key_C3")); + + whiteKeysLayout->addWidget(key_C3); + + key_D3 = new QPushButton(pianoWidget); + key_D3->setObjectName(QString::fromUtf8("key_D3")); + + whiteKeysLayout->addWidget(key_D3); + + key_E3 = new QPushButton(pianoWidget); + key_E3->setObjectName(QString::fromUtf8("key_E3")); + + whiteKeysLayout->addWidget(key_E3); + + key_F3 = new QPushButton(pianoWidget); + key_F3->setObjectName(QString::fromUtf8("key_F3")); + + whiteKeysLayout->addWidget(key_F3); + + key_G3 = new QPushButton(pianoWidget); + key_G3->setObjectName(QString::fromUtf8("key_G3")); + + whiteKeysLayout->addWidget(key_G3); + + key_A3 = new QPushButton(pianoWidget); + key_A3->setObjectName(QString::fromUtf8("key_A3")); + + whiteKeysLayout->addWidget(key_A3); + + key_B3 = new QPushButton(pianoWidget); + key_B3->setObjectName(QString::fromUtf8("key_B3")); + + whiteKeysLayout->addWidget(key_B3); + + key_C4 = new QPushButton(pianoWidget); + key_C4->setObjectName(QString::fromUtf8("key_C4")); + + whiteKeysLayout->addWidget(key_C4); + + key_D4 = new QPushButton(pianoWidget); + key_D4->setObjectName(QString::fromUtf8("key_D4")); + + whiteKeysLayout->addWidget(key_D4); + + key_E4 = new QPushButton(pianoWidget); + key_E4->setObjectName(QString::fromUtf8("key_E4")); + + whiteKeysLayout->addWidget(key_E4); + + key_F4 = new QPushButton(pianoWidget); + key_F4->setObjectName(QString::fromUtf8("key_F4")); + + whiteKeysLayout->addWidget(key_F4); + + key_G4 = new QPushButton(pianoWidget); + key_G4->setObjectName(QString::fromUtf8("key_G4")); + + whiteKeysLayout->addWidget(key_G4); + + key_A4 = new QPushButton(pianoWidget); + key_A4->setObjectName(QString::fromUtf8("key_A4")); + + whiteKeysLayout->addWidget(key_A4); + + key_B4 = new QPushButton(pianoWidget); + key_B4->setObjectName(QString::fromUtf8("key_B4")); + + whiteKeysLayout->addWidget(key_B4); + + key_C5 = new QPushButton(pianoWidget); + key_C5->setObjectName(QString::fromUtf8("key_C5")); + + whiteKeysLayout->addWidget(key_C5); + + key_D5 = new QPushButton(pianoWidget); + key_D5->setObjectName(QString::fromUtf8("key_D5")); + + whiteKeysLayout->addWidget(key_D5); + + key_E5 = new QPushButton(pianoWidget); + key_E5->setObjectName(QString::fromUtf8("key_E5")); + + whiteKeysLayout->addWidget(key_E5); + + key_F5 = new QPushButton(pianoWidget); + key_F5->setObjectName(QString::fromUtf8("key_F5")); + + whiteKeysLayout->addWidget(key_F5); + + key_G5 = new QPushButton(pianoWidget); + key_G5->setObjectName(QString::fromUtf8("key_G5")); + + whiteKeysLayout->addWidget(key_G5); + + key_A5 = new QPushButton(pianoWidget); + key_A5->setObjectName(QString::fromUtf8("key_A5")); + + whiteKeysLayout->addWidget(key_A5); + + key_B5 = new QPushButton(pianoWidget); + key_B5->setObjectName(QString::fromUtf8("key_B5")); + + whiteKeysLayout->addWidget(key_B5); + + key_C6 = new QPushButton(pianoWidget); + key_C6->setObjectName(QString::fromUtf8("key_C6")); + + whiteKeysLayout->addWidget(key_C6); + + + verticalLayout_2->addLayout(whiteKeysLayout); + + blackKeysLayout = new QHBoxLayout(); + blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout")); + horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_1); + + key_Cs1 = new QPushButton(pianoWidget); + key_Cs1->setObjectName(QString::fromUtf8("key_Cs1")); + + blackKeysLayout->addWidget(key_Cs1); + + key_Ds1 = new QPushButton(pianoWidget); + key_Ds1->setObjectName(QString::fromUtf8("key_Ds1")); + + blackKeysLayout->addWidget(key_Ds1); + + horizontalSpacer_2 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_2); + + key_Fs1 = new QPushButton(pianoWidget); + key_Fs1->setObjectName(QString::fromUtf8("key_Fs1")); + + blackKeysLayout->addWidget(key_Fs1); + + key_Gs1 = new QPushButton(pianoWidget); + key_Gs1->setObjectName(QString::fromUtf8("key_Gs1")); + + blackKeysLayout->addWidget(key_Gs1); + + key_As1 = new QPushButton(pianoWidget); + key_As1->setObjectName(QString::fromUtf8("key_As1")); + + blackKeysLayout->addWidget(key_As1); + + horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_3); + + key_Cs2 = new QPushButton(pianoWidget); + key_Cs2->setObjectName(QString::fromUtf8("key_Cs2")); + + blackKeysLayout->addWidget(key_Cs2); + + key_Ds2 = new QPushButton(pianoWidget); + key_Ds2->setObjectName(QString::fromUtf8("key_Ds2")); + + blackKeysLayout->addWidget(key_Ds2); + + horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_4); + + key_Fs2 = new QPushButton(pianoWidget); + key_Fs2->setObjectName(QString::fromUtf8("key_Fs2")); + + blackKeysLayout->addWidget(key_Fs2); + + key_Gs2 = new QPushButton(pianoWidget); + key_Gs2->setObjectName(QString::fromUtf8("key_Gs2")); + + blackKeysLayout->addWidget(key_Gs2); + + key_As2 = new QPushButton(pianoWidget); + key_As2->setObjectName(QString::fromUtf8("key_As2")); + + blackKeysLayout->addWidget(key_As2); + + horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_5); + + key_Cs3 = new QPushButton(pianoWidget); + key_Cs3->setObjectName(QString::fromUtf8("key_Cs3")); + + blackKeysLayout->addWidget(key_Cs3); + + key_Ds3 = new QPushButton(pianoWidget); + key_Ds3->setObjectName(QString::fromUtf8("key_Ds3")); + + blackKeysLayout->addWidget(key_Ds3); + + horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_6); + + key_Fs3 = new QPushButton(pianoWidget); + key_Fs3->setObjectName(QString::fromUtf8("key_Fs3")); + + blackKeysLayout->addWidget(key_Fs3); + + key_Gs3 = new QPushButton(pianoWidget); + key_Gs3->setObjectName(QString::fromUtf8("key_Gs3")); + + blackKeysLayout->addWidget(key_Gs3); + + key_As3 = new QPushButton(pianoWidget); + key_As3->setObjectName(QString::fromUtf8("key_As3")); + + blackKeysLayout->addWidget(key_As3); + + horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_7); + + key_Cs4 = new QPushButton(pianoWidget); + key_Cs4->setObjectName(QString::fromUtf8("key_Cs4")); + + blackKeysLayout->addWidget(key_Cs4); + + key_Ds4 = new QPushButton(pianoWidget); + key_Ds4->setObjectName(QString::fromUtf8("key_Ds4")); + + blackKeysLayout->addWidget(key_Ds4); + + horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_8); + + key_Fs4 = new QPushButton(pianoWidget); + key_Fs4->setObjectName(QString::fromUtf8("key_Fs4")); + + blackKeysLayout->addWidget(key_Fs4); + + key_Gs4 = new QPushButton(pianoWidget); + key_Gs4->setObjectName(QString::fromUtf8("key_Gs4")); + + blackKeysLayout->addWidget(key_Gs4); + + key_As4 = new QPushButton(pianoWidget); + key_As4->setObjectName(QString::fromUtf8("key_As4")); + + blackKeysLayout->addWidget(key_As4); + + horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_9); + + key_Cs5 = new QPushButton(pianoWidget); + key_Cs5->setObjectName(QString::fromUtf8("key_Cs5")); + + blackKeysLayout->addWidget(key_Cs5); + + key_Ds5 = new QPushButton(pianoWidget); + key_Ds5->setObjectName(QString::fromUtf8("key_Ds5")); + + blackKeysLayout->addWidget(key_Ds5); + + horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_10); + + key_Fs5 = new QPushButton(pianoWidget); + key_Fs5->setObjectName(QString::fromUtf8("key_Fs5")); + + blackKeysLayout->addWidget(key_Fs5); + + key_Gs5 = new QPushButton(pianoWidget); + key_Gs5->setObjectName(QString::fromUtf8("key_Gs5")); + + blackKeysLayout->addWidget(key_Gs5); + + key_As5 = new QPushButton(pianoWidget); + key_As5->setObjectName(QString::fromUtf8("key_As5")); + + blackKeysLayout->addWidget(key_As5); + + horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_11); + + + verticalLayout_2->addLayout(blackKeysLayout); + + + verticalLayout->addWidget(pianoWidget); + + Yamitracker->setCentralWidget(centralwidget); + + retranslateUi(Yamitracker); + + QMetaObject::connectSlotsByName(Yamitracker); + } // setupUi + + void retranslateUi(QMainWindow *Yamitracker) + { + Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor", nullptr)); + statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr)); + deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr)); + keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr)); + playButton->setText(QCoreApplication::translate("Yamitracker", "\320\227\320\260\320\277\320\270\321\201\321\214 (Play)", nullptr)); + stopButton->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\276\320\277", nullptr)); + convertButton->setText(QCoreApplication::translate("Yamitracker", "\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr)); + refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr)); + key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr)); + key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr)); + key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr)); + key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr)); + key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr)); + key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr)); + key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr)); + key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr)); + key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr)); + key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr)); + key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr)); + key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr)); + key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr)); + key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr)); + key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr)); + key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr)); + key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr)); + key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr)); + key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr)); + key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr)); + key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr)); + key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr)); + key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr)); + key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr)); + key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr)); + key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr)); + key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr)); + key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr)); + key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr)); + key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr)); + key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr)); + key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr)); + key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr)); + key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr)); + key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr)); + key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr)); + key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr)); + key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr)); + key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr)); + key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr)); + key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr)); + key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr)); + key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr)); + key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr)); + key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr)); + key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr)); + key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr)); + key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr)); + key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr)); + key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr)); + key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr)); + key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr)); + key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr)); + key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr)); + key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr)); + key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr)); + key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr)); + key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr)); + key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr)); + key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr)); + key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class Yamitracker: public Ui_Yamitracker {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_YAMITRACKER_H diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/yamitracker.o b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/yamitracker.o new file mode 100644 index 0000000..f0f9d45 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker2/Yamitracker/build_wav/yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/main.cpp b/Yamitracker-reoload/Yamitracker2/Yamitracker/main.cpp new file mode 100644 index 0000000..b2ae5c4 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/main.cpp @@ -0,0 +1,23 @@ +#include "yamitracker.h" + +#include +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + QTranslator translator; + const QStringList uiLanguages = QLocale::system().uiLanguages(); + for (const QString &locale : uiLanguages) { + const QString baseName = "Yamitracker_" + QLocale(locale).name(); + if (translator.load(":/i18n/" + baseName)) { + a.installTranslator(&translator); + break; + } + } + Yamitracker w; + w.show(); + return a.exec(); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/simplewavwriter.cpp b/Yamitracker-reoload/Yamitracker2/Yamitracker/simplewavwriter.cpp new file mode 100644 index 0000000..17929a3 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/simplewavwriter.cpp @@ -0,0 +1,213 @@ +#include "simplewavwriter.h" +#include +#include +#include + +SimpleWavWriter::SimpleWavWriter() + : m_isRecording(false) + , m_startTime(0) + , m_sampleRate(16000) +{ +} + +SimpleWavWriter::~SimpleWavWriter() +{ +} + +bool SimpleWavWriter::startRecording(int sampleRate) +{ + if (m_isRecording) { + stopRecording(); + } + + m_events.clear(); + m_isRecording = true; + m_startTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + m_sampleRate = sampleRate; + + qDebug() << "Started WAV recording, sample rate:" << m_sampleRate; + return true; +} + +bool SimpleWavWriter::stopRecording() +{ + if (!m_isRecording) { + return false; + } + + m_isRecording = false; + qDebug() << "Stopped WAV recording, events count:" << m_events.size(); + return true; +} + +bool SimpleWavWriter::saveToFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::WriteOnly)) { + qDebug() << "Cannot open file for writing:" << filename; + return false; + } + + QDataStream stream(&file); + stream.setByteOrder(QDataStream::LittleEndian); + + // Сначала записываем данные в буфер + QByteArray audioData; + QDataStream audioStream(&audioData, QIODevice::WriteOnly); + audioStream.setByteOrder(QDataStream::LittleEndian); + + writeWavData(audioStream); + + // Теперь записываем заголовок с правильным размером + writeWavHeader(stream, audioData.size()); + + // Записываем аудиоданные + stream.writeRawData(audioData.constData(), audioData.size()); + + file.close(); + qDebug() << "WAV file saved:" << filename << "size:" << audioData.size() << "bytes"; + return true; +} + +void SimpleWavWriter::addNote(double time, int note, int velocity, double duration) +{ + if (!m_isRecording) return; + + WavEvent event; + event.time = time; + event.note = note; + event.velocity = velocity; + event.duration = duration * m_sampleRate; + + m_events.append(event); +} + +void SimpleWavWriter::addSilence(double duration) +{ + if (!m_isRecording) return; + + WavEvent event; + event.time = -1; // Флаг тишины + event.note = 0; + event.velocity = 0; + event.duration = duration * m_sampleRate; + + m_events.append(event); +} + +void SimpleWavWriter::clear() +{ + m_events.clear(); + m_isRecording = false; +} + +void SimpleWavWriter::writeWavHeader(QDataStream &stream, quint32 dataSize) +{ + // RIFF заголовок + stream.writeRawData("RIFF", 4); + quint32 chunkSize = 36 + dataSize; + stream << chunkSize; + stream.writeRawData("WAVE", 4); + + // fmt chunk + stream.writeRawData("fmt ", 4); + quint32 subchunk1Size = 16; + stream << subchunk1Size; + + quint16 audioFormat = 1; // PCM + stream << audioFormat; + + quint16 numChannels = 1; // Моно + stream << numChannels; + + quint32 sampleRate = m_sampleRate; + stream << sampleRate; + + quint32 byteRate = sampleRate * numChannels * 2; // 16-bit = 2 байта + stream << byteRate; + + quint16 blockAlign = numChannels * 2; + stream << blockAlign; + + quint16 bitsPerSample = 16; + stream << bitsPerSample; + + // data chunk + stream.writeRawData("data", 4); + stream << dataSize; +} + +void SimpleWavWriter::writeWavData(QDataStream &stream) +{ + if (m_events.isEmpty()) { + // Если нет событий, создаем короткий тихий фрагмент + for (int i = 0; i < m_sampleRate * 2; i++) { // 2 секунды тишины + short sample = 0; + stream << sample; + } + return; + } + + double totalDuration = 0; + for (const WavEvent &event : m_events) { + if (event.time == -1) { + // Тишина + for (int i = 0; i < event.duration; i++) { + short sample = 0; + stream << sample; + } + totalDuration += (double)event.duration / m_sampleRate; + } else { + // Нота + double frequency = noteToFrequency(event.note); + double amplitude = (event.velocity / 127.0) * 0.7; // Нормализуем громкость + + for (int i = 0; i < event.duration; i++) { + double t = totalDuration + (double)i / m_sampleRate; + short sample = generateSineWave(t, frequency, amplitude); + + // ADSR envelope + double attackTime = 0.05; + double decayTime = 0.1; + double sustainLevel = 0.8; + double releaseTime = 0.2; + + double noteTime = (double)i / m_sampleRate; + double noteDuration = (double)event.duration / m_sampleRate; + double envelope = 1.0; + + if (noteTime < attackTime) { + envelope = noteTime / attackTime; + } else if (noteTime < attackTime + decayTime) { + envelope = 1.0 - ((noteTime - attackTime) / decayTime) * (1.0 - sustainLevel); + } else if (noteTime < noteDuration - releaseTime) { + envelope = sustainLevel; + } else { + envelope = sustainLevel * (1.0 - (noteTime - (noteDuration - releaseTime)) / releaseTime); + } + + sample = sample * envelope; + stream << sample; + } + totalDuration += (double)event.duration / m_sampleRate; + } + } + + // Добавляем немного тишины в конце + for (int i = 0; i < m_sampleRate * 0.5; i++) { // 0.5 секунды тишины + short sample = 0; + stream << sample; + } +} + +double SimpleWavWriter::noteToFrequency(int note) +{ + // A4 = 440Hz, номер MIDI ноты 69 + return 440.0 * pow(2.0, (note - 69) / 12.0); +} + +short SimpleWavWriter::generateSineWave(double time, double frequency, double amplitude) +{ + double value = sin(2.0 * M_PI * frequency * time); + return static_cast(value * amplitude * 32767.0); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/simplewavwriter.h b/Yamitracker-reoload/Yamitracker2/Yamitracker/simplewavwriter.h new file mode 100644 index 0000000..9925d6f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/simplewavwriter.h @@ -0,0 +1,51 @@ +#ifndef SIMPLEWAVWRITER_H +#define SIMPLEWAVWRITER_H + +#include +#include +#include +#include +#include + +struct WavEvent { + double time; + int note; + int velocity; + int duration; // в сэмплах +}; + +class SimpleWavWriter +{ +public: + SimpleWavWriter(); + ~SimpleWavWriter(); + + bool startRecording(int sampleRate = 16000); + bool stopRecording(); + bool saveToFile(const QString &filename); + + void addNote(double time, int note, int velocity, double duration); + void addSilence(double duration); + + bool isRecording() const { return m_isRecording; } + void clear(); + + void setSampleRate(int rate) { m_sampleRate = rate; } + int sampleRate() const { return m_sampleRate; } + +private: + QVector m_events; + bool m_isRecording; + double m_startTime; + int m_sampleRate; + + void writeWavHeader(QDataStream &stream, quint32 dataSize); + void writeWavData(QDataStream &stream); + + // Генерация звука + short generateSineWave(double time, double frequency, double amplitude); + + double noteToFrequency(int note); +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/yamitracker.cpp b/Yamitracker-reoload/Yamitracker2/Yamitracker/yamitracker.cpp new file mode 100644 index 0000000..1ebd224 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/yamitracker.cpp @@ -0,0 +1,514 @@ +#include "yamitracker.h" +#include "ui_yamitracker.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void SerialReader::run() +{ + while (!shouldStop) { + int fd = open(currentDevice.toUtf8().constData(), O_RDWR | O_NOCTTY); + if (fd < 0) { + emit error(QString("Cannot open %1").arg(currentDevice)); + emit connectionStatusChanged(false); + sleep(2); + continue; + } + + emit connectionStatusChanged(true); + + QString manufacturer = "Unknown"; + QString model = "Unknown"; + + if (currentDevice.contains("yamaha", Qt::CaseInsensitive) || + currentDevice.contains("psr", Qt::CaseInsensitive)) { + manufacturer = "Yamaha"; + model = "PSR Series"; + } else if (currentDevice.contains("dmmidi")) { + manufacturer = "Yamaha"; + model = "PSR-E333 (Direct MIDI)"; + } + + emit deviceInfoReceived(manufacturer, model); + + struct termios tty; + tcgetattr(fd, &tty); + cfsetospeed(&tty, B115200); + cfsetispeed(&tty, B115200); + tty.c_cflag |= (CLOCAL | CREAD | CS8); + tty.c_cc[VMIN] = 1; + tcsetattr(fd, TCSANOW, &tty); + + unsigned char byte; + while (!shouldStop && read(fd, &byte, 1) > 0) { + if (byte == 0xF8 || byte == 0xFE) { + continue; + } + + if (byte & 0x80) { + if ((byte & 0xF0) == 0x90) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + + if (velocity == 0) + emit noteOffReceived(hexNote); + else + emit noteOnReceived(hexNote, velocity); + } + } + else if ((byte & 0xF0) == 0x80) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + emit noteOffReceived(hexNote); + } + } + } + } + + close(fd); + emit connectionStatusChanged(false); + + if (!shouldStop) { + emit error(QString("Connection lost to %1. Attempting to reconnect...").arg(currentDevice)); + sleep(2); + } + } +} + +Yamitracker::Yamitracker(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::Yamitracker) + , serialReader(new SerialReader(this)) + , reconnectTimer(new QTimer(this)) + , isConnected(false) + , wavWriter(new SimpleWavWriter()) + , recordingStartTime(0) + , brrConverter(new BrrConverter(this)) + , audioPlayerProcess(new QProcess(this)) +{ + ui->setupUi(this); + + deviceLabel = ui->deviceLabel; + refreshDevicesButton = ui->refreshDevicesButton; + + initializeKeyButtons(); + initializeDeviceDetection(); + + connect(serialReader, &SerialReader::noteOnReceived, this, &Yamitracker::onNoteOnReceived); + connect(serialReader, &SerialReader::noteOffReceived, this, &Yamitracker::onNoteOffReceived); + connect(serialReader, &SerialReader::error, this, &Yamitracker::onError); + connect(serialReader, &SerialReader::connectionStatusChanged, this, &Yamitracker::onConnectionStatusChanged); + connect(serialReader, &SerialReader::deviceInfoReceived, this, &Yamitracker::onDeviceInfoReceived); + connect(ui->playButton, &QPushButton::clicked, this, &Yamitracker::onPlayClicked); + connect(ui->stopButton, &QPushButton::clicked, this, &Yamitracker::onStopClicked); + connect(ui->convertButton, &QPushButton::clicked, this, &Yamitracker::onConvertToBrrClicked); + connect(refreshDevicesButton, &QPushButton::clicked, this, &Yamitracker::onRefreshDevicesClicked); + + connect(reconnectTimer, &QTimer::timeout, this, &Yamitracker::attemptReconnect); + reconnectTimer->start(5000); + + // Вместо воспроизведения по кнопке, добавим контекстное меню или другой способ + // connect(ui->playWavButton, &QPushButton::clicked, this, &Yamitracker::onPlayWavClicked); + + connect(audioPlayerProcess, QOverload::of(&QProcess::finished), + this, [this](int exitCode, QProcess::ExitStatus exitStatus) { + Q_UNUSED(exitCode); + if (exitStatus == QProcess::NormalExit) { + ui->statusLabel->setText("Воспроизведение завершено"); + ui->statusLabel->setStyleSheet("color: white;"); + } + }); + + setStyleSheet( + "QMainWindow { background-color: #2b2b2b; color: white; }" + "QLabel { color: white; font-size: 14px; }" + "QPushButton { border: none; }" + "QPushButton[whiteKey=true] { background-color: white; color: black; border: 1px solid #ccc; font-size: 8pt; }" + "QPushButton[whiteKey=true]:pressed { background-color: #ff4444; }" + "QPushButton[blackKey=true] { background-color: black; color: white; font-size: 7pt; }" + "QPushButton[blackKey=true]:pressed { background-color: #ff4444; }" + "QProgressBar { border: 1px solid #555; background: #333; }" + "QProgressBar::chunk { background: #4CAF50; }" + ); + + QTimer::singleShot(1000, this, &Yamitracker::autoDetectAndConnect); + setWindowTitle("Yamaha PSR-E333 Monitor"); +} + +Yamitracker::~Yamitracker() +{ + if (serialReader) { + serialReader->stop(); + if (serialReader->isRunning()) { + serialReader->terminate(); + serialReader->wait(); + } + } + delete wavWriter; + delete ui; +} + +void Yamitracker::initializeDeviceDetection() +{ + deviceLabel->setText("Устройство: Поиск..."); + deviceLabel->setStyleSheet("color: orange;"); +} + +void Yamitracker::autoDetectAndConnect() +{ + QString device = "/dev/dmmidi1"; + serialReader->setDevice(device); + deviceLabel->setText(QString("Устройство: %1").arg(device)); + deviceLabel->setStyleSheet("color: green;"); + qDebug() << "Using device:" << device; + + startSerialReader(); +} + +void Yamitracker::onDeviceInfoReceived(const QString &manufacturer, const QString &model) +{ + deviceLabel->setText(QString("Устройство: %1 %2").arg(manufacturer, model)); + deviceLabel->setStyleSheet("color: green;"); + + setWindowTitle(QString("Yamitracker - %1 %2").arg(manufacturer, model)); +} + +void Yamitracker::onRefreshDevicesClicked() +{ + deviceLabel->setText("Устройство: Обновление..."); + deviceLabel->setStyleSheet("color: orange;"); + + autoDetectAndConnect(); +} + +void Yamitracker::startSerialReader() +{ + if (serialReader && !serialReader->isRunning()) { + serialReader->start(); + } +} + +void Yamitracker::initializeKeyButtons() +{ + QList whiteKeys = { + ui->key_C1, ui->key_D1, ui->key_E1, ui->key_F1, ui->key_G1, ui->key_A1, ui->key_B1, + ui->key_C2, ui->key_D2, ui->key_E2, ui->key_F2, ui->key_G2, ui->key_A2, ui->key_B2, + ui->key_C3, ui->key_D3, ui->key_E3, ui->key_F3, ui->key_G3, ui->key_A3, ui->key_B3, + ui->key_C4, ui->key_D4, ui->key_E4, ui->key_F4, ui->key_G4, ui->key_A4, ui->key_B4, + ui->key_C5, ui->key_D5, ui->key_E5, ui->key_F5, ui->key_G5, ui->key_A5, ui->key_B5, + ui->key_C6 + }; + + for (QPushButton *key : whiteKeys) { + key->setProperty("whiteKey", true); + keyButtons[key->text()] = key; + } + + QList blackKeys = { + ui->key_Cs1, ui->key_Ds1, ui->key_Fs1, ui->key_Gs1, ui->key_As1, + ui->key_Cs2, ui->key_Ds2, ui->key_Fs2, ui->key_Gs2, ui->key_As2, + ui->key_Cs3, ui->key_Ds3, ui->key_Fs3, ui->key_Gs3, ui->key_As3, + ui->key_Cs4, ui->key_Ds4, ui->key_Fs4, ui->key_Gs4, ui->key_As4, + ui->key_Cs5, ui->key_Ds5, ui->key_Fs5, ui->key_Gs5, ui->key_As5 + }; + + for (QPushButton *key : blackKeys) { + key->setProperty("blackKey", true); + keyButtons[key->text()] = key; + } +} + +void Yamitracker::onNoteOnReceived(const QString &data, int velocity) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.insert(note); + highlightKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + int volume = (velocity * 100) / 127; + ui->volumeBar->setValue(volume); + + if (wavWriter->isRecording()) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + // Запоминаем время начала ноты + noteStartTimes[data] = currentTime; + } + } +} + +void Yamitracker::onNoteOffReceived(const QString &data) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.remove(note); + clearKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + if (currentlyPressedKeys.isEmpty()) { + ui->volumeBar->setValue(0); + } + + if (wavWriter->isRecording() && noteStartTimes.contains(data)) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + double noteStartTime = noteStartTimes[data]; + double duration = currentTime - noteStartTime; + + // Нужно получить velocity из активных нот. + // Для простоты используем среднее значение (например, 100) + int noteVelocity = 100; + + // Добавляем ноту с её длительностью + wavWriter->addNote(noteStartTime, noteNumber, noteVelocity, duration); + + // Удаляем из списка активных нот + noteStartTimes.remove(data); + } + } +} + +void Yamitracker::onConnectionStatusChanged(bool connected) +{ + isConnected = connected; + if (connected) { + ui->statusLabel->setText("Статус: Подключено к синтезатору"); + ui->statusLabel->setStyleSheet("color: green;"); + } else { + ui->statusLabel->setText("Статус: Отключено (переподключение...)"); + ui->statusLabel->setStyleSheet("color: red;"); + } +} + +void Yamitracker::attemptReconnect() +{ + if (!isConnected && (!serialReader || !serialReader->isRunning())) { + qDebug() << "Attempting to reconnect..."; + startSerialReader(); + } +} + +void Yamitracker::onError(const QString &message) +{ + ui->statusLabel->setText("Ошибка: " + message); + ui->statusLabel->setStyleSheet("color: orange;"); + if (!message.contains("reconnect", Qt::CaseInsensitive)) { + QMessageBox::warning(this, "Ошибка", message); + } +} + +void Yamitracker::onPlayClicked() +{ + ui->statusLabel->setText("Запись..."); + ui->statusLabel->setStyleSheet("color: blue;"); + + // Очищаем предыдущие данные + noteStartTimes.clear(); + currentlyPressedKeys.clear(); + clearAllHighlights(); + + // Начинаем запись + if (wavWriter->startRecording(16000)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started WAV recording"; + } +} + +void Yamitracker::onStopClicked() +{ + ui->statusLabel->setText("Остановлено"); + ui->statusLabel->setStyleSheet("color: white;"); + + clearAllHighlights(); + currentlyPressedKeys.clear(); + ui->keysInfoLabel->setText("Нажато клавиш: 0"); + ui->volumeBar->setValue(0); + + if (wavWriter->isRecording()) { + wavWriter->stopRecording(); + + // Сохраняем WAV файл + QString filename = "recording_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".wav"; + saveWavFile(filename); + } + + noteStartTimes.clear(); +} + +void Yamitracker::saveWavFile(const QString &filename) +{ + if (wavWriter->saveToFile(filename)) { + lastRecordedWavFile = filename; + ui->statusLabel->setText(QString("Сохранено: %1").arg(filename)); + ui->statusLabel->setStyleSheet("color: green;"); + + // Активируем кнопку конвертации + ui->convertButton->setEnabled(true); + + // Предлагаем воспроизвести файл + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Запись завершена", + QString("WAV файл сохранен:\n%1\n\nВоспроизвести файл?").arg(filename), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + playWavExternal(lastRecordedWavFile); + } + } else { + ui->statusLabel->setText("Ошибка сохранения WAV файла"); + ui->statusLabel->setStyleSheet("color: red;"); + } +} + +void Yamitracker::onConvertToBrrClicked() +{ + if (lastRecordedWavFile.isEmpty()) { + QMessageBox::information(this, "Конвертация", "Сначала запишите WAV файл"); + return; + } + + if (!QFile::exists(lastRecordedWavFile)) { + QMessageBox::warning(this, "Конвертация", "WAV файл не найден: " + lastRecordedWavFile); + return; + } + + // Создаем имя BRR файла + QString baseName = QFileInfo(lastRecordedWavFile).completeBaseName(); + QString brrFile = baseName + ".brr"; + + ui->statusLabel->setText("Конвертация WAV -> BRR..."); + ui->statusLabel->setStyleSheet("color: blue;"); + QApplication::processEvents(); + + if (brrConverter->convertWavToBrr(lastRecordedWavFile, brrFile)) { + ui->statusLabel->setText(QString("Конвертация завершена: %1").arg(brrFile)); + ui->statusLabel->setStyleSheet("color: green;"); + + // Показываем информацию о BRR файле + QFileInfo brrInfo(brrFile); + if (brrInfo.exists()) { + QString info = QString("BRR файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Nintendo SNES ADPCM") + .arg(brrFile) + .arg(brrInfo.size()); + QMessageBox::information(this, "Конвертация завершена", info); + } + } else { + ui->statusLabel->setText("Ошибка конвертации WAV -> BRR"); + ui->statusLabel->setStyleSheet("color: red;"); + QMessageBox::warning(this, "Ошибка", "Не удалось преобразовать WAV в BRR формат"); + } +} + +void Yamitracker::playWavExternal(const QString &wavFile) +{ + // Пытаемся использовать различные аудиоплееры + QStringList players = { + "aplay", // ALSA плеер (обычно есть в Linux) + "paplay", // PulseAudio плеер + "play", // SoX плеер + "ffplay" // FFmpeg плеер + }; + + QString player; + + for (const QString &p : players) { + QProcess checkProcess; + checkProcess.start("which", QStringList() << p); + checkProcess.waitForFinished(); + if (checkProcess.exitCode() == 0) { + player = p; + break; + } + } + + if (player.isEmpty()) { + QMessageBox::warning(this, "Воспроизведение", + "Не найден аудиоплеер. Установите один из:\n" + "aplay, paplay, sox или ffmpeg"); + return; + } + + ui->statusLabel->setText("Воспроизведение WAV файла..."); + ui->statusLabel->setStyleSheet("color: blue;"); + + audioPlayerProcess->start(player, QStringList() << wavFile); + + if (!audioPlayerProcess->waitForStarted(3000)) { + ui->statusLabel->setText("Не удалось запустить аудиоплеер"); + ui->statusLabel->setStyleSheet("color: red;"); + QMessageBox::warning(this, "Ошибка", + QString("Не удалось запустить %1. Убедитесь, что он установлен.").arg(player)); + } +} + +void Yamitracker::highlightKey(const QString ¬e) +{ + if (keyButtons.contains(note)) { + QPushButton *key = keyButtons[note]; + key->setStyleSheet("background-color: #ff4444; color: white; border: 2px solid red;"); + } +} + +void Yamitracker::clearKey(const QString ¬e) +{ + if (!keyButtons.contains(note)) return; + QPushButton *key = keyButtons[note]; + if (key->property("whiteKey").toBool()) + key->setStyleSheet("background-color: white; color: black; border: 1px solid #ccc;"); + else + key->setStyleSheet("background-color: black; color: white;"); +} + +void Yamitracker::clearAllHighlights() +{ + for (auto i = keyButtons.begin(); i != keyButtons.end(); ++i) { + clearKey(i.key()); + } +} + +void Yamitracker::clearStatusMessage() +{ + ui->statusLabel->setText("Статус: Готов"); + ui->statusLabel->setStyleSheet("color: white;"); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/yamitracker.h b/Yamitracker-reoload/Yamitracker2/Yamitracker/yamitracker.h new file mode 100644 index 0000000..820b716 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/yamitracker.h @@ -0,0 +1,107 @@ +#ifndef YAMITRACKER_H +#define YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "simplewavwriter.h" +#include "brrconverter.h" + +QT_BEGIN_NAMESPACE +namespace Ui { class Yamitracker; } +QT_END_NAMESPACE + +class SerialReader : public QThread +{ + Q_OBJECT +public: + explicit SerialReader(QObject *parent = nullptr) : QThread(parent) + { + shouldStop = false; + currentDevice = "/dev/dmmidi1"; + } + + void stop() + { + shouldStop = true; + } + + void setDevice(const QString& device) { + currentDevice = device; + } + + QString getCurrentDevice() const { + return currentDevice; + } + +protected: + void run() override; + +private: + bool shouldStop; + QString currentDevice; + +signals: + void noteOnReceived(const QString ¬e, int velocity); + void noteOffReceived(const QString ¬e); + void error(const QString &message); + void connectionStatusChanged(bool connected); + void deviceInfoReceived(const QString &manufacturer, const QString &model); +}; + +class Yamitracker : public QMainWindow +{ + Q_OBJECT + +public: + Yamitracker(QWidget *parent = nullptr); + ~Yamitracker(); + +private slots: + void onNoteOnReceived(const QString ¬e, int velocity); + void onNoteOffReceived(const QString ¬e); + void onError(const QString &message); + void onPlayClicked(); + void onStopClicked(); + void onConvertToBrrClicked(); + void clearStatusMessage(); + void onConnectionStatusChanged(bool connected); + void attemptReconnect(); + void onDeviceInfoReceived(const QString &manufacturer, const QString &model); + void onRefreshDevicesClicked(); + +private: + Ui::Yamitracker *ui; + SerialReader *serialReader; + QHash keyButtons; + QSet currentlyPressedKeys; + QTimer *reconnectTimer; + bool isConnected; + SimpleWavWriter *wavWriter; + double recordingStartTime; + QHash noteStartTimes; + QLabel *deviceLabel; + QPushButton *refreshDevicesButton; + BrrConverter *brrConverter; + QProcess *audioPlayerProcess; + QString lastRecordedWavFile; + + void initializeKeyButtons(); + void highlightKey(const QString ¬e); + void clearKey(const QString ¬e); + void clearAllHighlights(); + void startSerialReader(); + void saveWavFile(const QString &filename); + void initializeDeviceDetection(); + void autoDetectAndConnect(); + void convertToBrr(const QString &wavFile, const QString &brrFile); + void playWavExternal(const QString &wavFile); +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker2/Yamitracker/yamitracker.ui b/Yamitracker-reoload/Yamitracker2/Yamitracker/yamitracker.ui new file mode 100644 index 0000000..0b7704d --- /dev/null +++ b/Yamitracker-reoload/Yamitracker2/Yamitracker/yamitracker.ui @@ -0,0 +1,669 @@ + + + Yamitracker + + + + 0 + 0 + 1200 + 600 + + + + Yamaha PSR-E333 Monitor + + + + + + + Статус: Готов + + + + + + + Устройство: Не подключено + + + + + + + Нажато клавиш: 0 + + + + + + + 0 + + + + + + + + + Запись (Play) + + + + + + + Стоп + + + + + + + Конвертировать в BRR + + + + + + + Обновить устройства + + + + + + + + + + + + + + + C1 + + + + + + + D1 + + + + + + + E1 + + + + + + + F1 + + + + + + + G1 + + + + + + + A1 + + + + + + + B1 + + + + + + + C2 + + + + + + + D2 + + + + + + + E2 + + + + + + + F2 + + + + + + + G2 + + + + + + + A2 + + + + + + + B2 + + + + + + + C3 + + + + + + + D3 + + + + + + + E3 + + + + + + + F3 + + + + + + + G3 + + + + + + + A3 + + + + + + + B3 + + + + + + + C4 + + + + + + + D4 + + + + + + + E4 + + + + + + + F4 + + + + + + + G4 + + + + + + + A4 + + + + + + + B4 + + + + + + + C5 + + + + + + + D5 + + + + + + + E5 + + + + + + + F5 + + + + + + + G5 + + + + + + + A5 + + + + + + + B5 + + + + + + + C6 + + + + + + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#1 + + + + + + + D#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#1 + + + + + + + G#1 + + + + + + + A#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#2 + + + + + + + D#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#2 + + + + + + + G#2 + + + + + + + A#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#3 + + + + + + + D#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#3 + + + + + + + G#3 + + + + + + + A#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#4 + + + + + + + D#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#4 + + + + + + + G#4 + + + + + + + A#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#5 + + + + + + + D#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#5 + + + + + + + G#5 + + + + + + + A#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/.qtcreator/Yamitracker.pro.user b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/.qtcreator/Yamitracker.pro.user new file mode 100644 index 0000000..fcac744 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/.qtcreator/Yamitracker.pro.user @@ -0,0 +1,263 @@ + + + + + + EnvironmentId + {6395eb3f-fc2a-4125-bb4f-a9c51f02958b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {0acbc229-4897-4c6e-a23f-ae7c45394b0c} + 0 + 0 + 0 + + 0 + /home/acer1117/build-Yamitracker-Desktop-Debug + /home/acer1117/build-Yamitracker-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/acer1117/build-Yamitracker-Desktop-Release + /home/acer1117/build-Yamitracker-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/acer1117/build-Yamitracker-Desktop-Profile + /home/acer1117/build-Yamitracker-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro + /home/acer1117/Yamitracker/Yamitracker.pro + false + true + true + false + true + /home/acer1117/build-Yamitracker-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/Yamitracker.pro b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/Yamitracker.pro new file mode 100644 index 0000000..da70d24 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/Yamitracker.pro @@ -0,0 +1,22 @@ +QT += core gui widgets + +CONFIG += c++17 + +SOURCES += \ + main.cpp \ + yamitracker.cpp \ + simplewavwriter.cpp \ + brrconverter.cpp + +HEADERS += \ + yamitracker.h \ + simplewavwriter.h \ + brrconverter.h + +FORMS += \ + yamitracker.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/Yamitracker.pro.user b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/Yamitracker.pro.user new file mode 100644 index 0000000..fcac744 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/Yamitracker.pro.user @@ -0,0 +1,263 @@ + + + + + + EnvironmentId + {6395eb3f-fc2a-4125-bb4f-a9c51f02958b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {0acbc229-4897-4c6e-a23f-ae7c45394b0c} + 0 + 0 + 0 + + 0 + /home/acer1117/build-Yamitracker-Desktop-Debug + /home/acer1117/build-Yamitracker-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/acer1117/build-Yamitracker-Desktop-Release + /home/acer1117/build-Yamitracker-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/acer1117/build-Yamitracker-Desktop-Profile + /home/acer1117/build-Yamitracker-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro + /home/acer1117/Yamitracker/Yamitracker.pro + false + true + true + false + true + /home/acer1117/build-Yamitracker-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/Yamitracker_ru_RU.ts b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/Yamitracker_ru_RU.ts new file mode 100644 index 0000000..743f57f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/Yamitracker_ru_RU.ts @@ -0,0 +1,3 @@ + + + diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/brrconverter.cpp b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/brrconverter.cpp new file mode 100644 index 0000000..eed5c96 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/brrconverter.cpp @@ -0,0 +1,340 @@ +#include "brrconverter.h" +#include + +BrrConverter::BrrConverter(QObject *parent) : QObject(parent) +{ +} + +bool BrrConverter::convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath) +{ + QFile wavFile(wavFilePath); + if (!wavFile.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open WAV file:" << wavFilePath; + return false; + } + + int sampleRate, channels, bitsPerSample, dataSize; + if (!decodeWavHeader(wavFile, sampleRate, channels, bitsPerSample, dataSize)) { + qDebug() << "Invalid WAV file format"; + wavFile.close(); + return false; + } + + // Читаем аудиоданные + QByteArray audioData = wavFile.read(dataSize); + wavFile.close(); + + // Конвертируем в 16-bit моно + QVector samples; + int bytesPerSample = bitsPerSample / 8; + int totalSamples = dataSize / (bytesPerSample * channels); + + for (int i = 0; i < totalSamples; ++i) { + int32_t sample = 0; + + for (int ch = 0; ch < channels; ++ch) { + int32_t channelSample = 0; + int offset = (i * channels + ch) * bytesPerSample; + + if (bitsPerSample == 8) { + channelSample = (int8_t)audioData[offset]; + channelSample = (channelSample - 128) * 256; + } else if (bitsPerSample == 16) { + channelSample = (int16_t)((audioData[offset + 1] << 8) | audioData[offset]); + } else if (bitsPerSample == 24) { + channelSample = (int32_t)((audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + if (channelSample & 0x800000) channelSample |= 0xFF000000; + channelSample >>= 8; + } else if (bitsPerSample == 32) { + channelSample = (int32_t)((audioData[offset + 3] << 24) | + (audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + channelSample >>= 16; + } + + sample += channelSample; + } + + // Микшируем каналы + sample /= channels; + samples.append(clamp16(sample)); + } + + // Понижаем частоту дискретизации для SNES (макс 32kHz -> 16kHz) + if (sampleRate > 16000) { + int ratio = sampleRate / 16000; + QVector downsampled; + for (int i = 0; i < samples.size(); i += ratio) { + downsampled.append(samples[i]); + } + samples = downsampled; + } else if (sampleRate < 16000) { + // Если частота ниже, повышаем (простое повторение) + int ratio = 16000 / sampleRate; + QVector upsampled; + for (int i = 0; i < samples.size(); ++i) { + for (int j = 0; j < ratio; ++j) { + upsampled.append(samples[i]); + } + } + samples = upsampled; + } + + // Открываем BRR файл для записи + QFile brrFile(brrFilePath); + if (!brrFile.open(QIODevice::WriteOnly)) { + qDebug() << "Cannot open BRR file for writing:" << brrFilePath; + return false; + } + + ADPCMState state; + QVector blockSamples; + + // Конвертируем в BRR блоками по 16 сэмплов + for (int i = 0; i < samples.size(); ++i) { + int encoded = encodeADPCMNibble(samples[i], state); + blockSamples.append(encoded); + + if (blockSamples.size() == 32) { // 32 ниббла = 16 сэмплов + writeBrrBlock(brrFile, blockSamples, false); + blockSamples.clear(); + } + } + + // Записываем последний неполный блок + if (!blockSamples.isEmpty()) { + // Дополняем до 32 нибблов + while (blockSamples.size() < 32) { + blockSamples.append(0); + } + writeBrrBlock(brrFile, blockSamples, true); // Последний блок с флагом loop + } else if (samples.size() > 0) { + // Если был полный последний блок, помечаем его как loop + brrFile.seek(brrFile.size() - BRR_BLOCK_SIZE); + unsigned char header = 0x03; // Фильтр 0, loop flag = 1 + brrFile.write((char*)&header, 1); + } + + brrFile.close(); + qDebug() << "BRR file created:" << brrFilePath << "samples:" << samples.size() << "sample rate:" << sampleRate; + return true; +} + +bool BrrConverter::convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath) +{ + qDebug() << "MIDI to BRR conversion requires MIDI synthesizer"; + qDebug() << "Please convert MIDI to WAV first, then use WAV to BRR"; + + return false; +} + +bool BrrConverter::decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize) +{ + char buffer[44]; + if (file.read(buffer, 44) != 44) { + return false; + } + + // Проверяем RIFF заголовок + if (buffer[0] != 'R' || buffer[1] != 'I' || buffer[2] != 'F' || buffer[3] != 'F') { + return false; + } + + // Проверяем WAVE формат + if (buffer[8] != 'W' || buffer[9] != 'A' || buffer[10] != 'V' || buffer[11] != 'E') { + return false; + } + + // Проверяем fmt chunk + if (buffer[12] != 'f' || buffer[13] != 'm' || buffer[14] != 't' || buffer[15] != ' ') { + return false; + } + + // Читаем параметры + int fmtSize = *(int*)(buffer + 16); + if (fmtSize < 16) return false; + + int audioFormat = *(short*)(buffer + 20); + if (audioFormat != 1) return false; // Только PCM + + channels = *(short*)(buffer + 22); + sampleRate = *(int*)(buffer + 24); + bitsPerSample = *(short*)(buffer + 34); + + // Ищем data chunk + int offset = 36; + while (offset < file.size()) { + file.seek(offset); + char chunkId[4]; + if (file.read(chunkId, 4) != 4) break; + + int chunkSize; + if (file.read((char*)&chunkSize, 4) != 4) break; + + if (chunkId[0] == 'd' && chunkId[1] == 'a' && chunkId[2] == 't' && chunkId[3] == 'a') { + dataSize = chunkSize; + file.seek(offset + 8); + return true; + } + + offset += 8 + chunkSize; + } + + return false; +} + +int16_t BrrConverter::clamp16(int sample) +{ + if (sample > 32767) return 32767; + if (sample < -32768) return -32768; + return (int16_t)sample; +} + +int BrrConverter::encodeADPCMNibble(int sample, ADPCMState &state) +{ + int diff = sample - state.prev_sample; + int step = step_table[state.prev_index]; + + // Квантование + int nibble = 0; + int predicted = state.prev_sample; + + // Применяем фильтр (простейший - без фильтра) + int filtered = predicted; + + diff = sample - filtered; + + // Находим наилучший nibble + int best_nibble = 0; + int best_error = INT_MAX; + + for (int n = 0; n < 16; ++n) { + int step_index = state.prev_index + ((n & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (n & 8) ? -current_step : current_step; + + int current_sample = filtered + delta; + int error = abs(sample - current_sample); + + if (error < best_error) { + best_error = error; + best_nibble = n; + } + } + + // Декодируем выбранный nibble для обновления состояния + int step_index = state.prev_index + ((best_nibble & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (best_nibble & 8) ? -current_step : current_step; + + state.prev_sample = filtered + delta; + state.prev_index = step_index; + + // Ограничиваем индекс + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + // Ограничиваем сэмпл + state.prev_sample = clamp16(state.prev_sample); + + return best_nibble; +} + +void BrrConverter::writeBrrBlock(QFile &file, const QVector &samples, bool loop) +{ + if (samples.size() != 32) { + qDebug() << "Invalid sample count for BRR block:" << samples.size(); + return; + } + + unsigned char header = 0x00; + if (loop) { + header = 0x03; // Фильтр 0 + loop + } + + file.write((char*)&header, 1); + + // Упаковываем 32 ниббла в 8 байт + for (int i = 0; i < 16; ++i) { + unsigned char byte = (samples[i * 2] << 4) | (samples[i * 2 + 1] & 0x0F); + file.write((char*)&byte, 1); + } +} + +int BrrConverter::decodeADPCMNibble(int nibble, ADPCMState &state) +{ + int step = step_table[state.prev_index]; + int delta = step >> 3; + + if (nibble & 1) delta += step >> 2; + if (nibble & 2) delta += step >> 1; + if (nibble & 4) delta += step; + + if (nibble & 8) delta = -delta; + + // Применяем фильтр (простейший) + int sample = state.prev_sample + delta; + + // Ограничиваем + sample = clamp16(sample); + + // Обновляем индекс + state.prev_index += ((nibble & 7) * 2 - 7); + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + state.prev_sample = sample; + + return sample; +} + +QVector BrrConverter::decodeBrrFile(const QString &brrFilePath) +{ + QVector samples; + QFile file(brrFilePath); + + if (!file.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open BRR file for reading:" << brrFilePath; + return samples; + } + + ADPCMState state; + + while (!file.atEnd()) { + unsigned char header; + if (file.read((char*)&header, 1) != 1) break; + + unsigned char data[8]; + if (file.read((char*)data, 8) != 8) break; + + // Извлекаем нибблы + for (int i = 0; i < 8; ++i) { + unsigned char byte = data[i]; + int nibble1 = (byte >> 4) & 0x0F; + int nibble2 = byte & 0x0F; + + int sample1 = decodeADPCMNibble(nibble1, state); + int sample2 = decodeADPCMNibble(nibble2, state); + + samples.append(sample1); + samples.append(sample2); + } + + // Проверяем конец + if (header & 0x01) { + break; // Конец сэмпла + } + } + + file.close(); + return samples; +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/brrconverter.h b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/brrconverter.h new file mode 100644 index 0000000..175879a --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/brrconverter.h @@ -0,0 +1,54 @@ +#ifndef BRRCONVERTER_H +#define BRRCONVERTER_H + +#include +#include +#include +#include +#include + +class BrrConverter : public QObject +{ + Q_OBJECT + +public: + BrrConverter(QObject *parent = nullptr); + + bool convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath); + bool convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath); + +private: + struct ADPCMState { + int prev_sample; + int prev_index; + + ADPCMState() : prev_sample(0), prev_index(0) {} + }; + + struct BRRBlock { + unsigned char header; + unsigned char data[8]; + }; + + bool decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize); + int16_t clamp16(int sample); + int encodeADPCMNibble(int sample, ADPCMState &state); + void writeBrrBlock(QFile &file, const QVector &samples, bool loop = false); + int decodeADPCMNibble(int nibble, ADPCMState &state); + QVector decodeBrrFile(const QString &brrFilePath); + + static const int BRR_BLOCK_SIZE = 9; + static const int SAMPLES_PER_BLOCK = 16; + static const int FILTER_TYPES = 4; + + const int step_table[89] = { + 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, + 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, + 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, + 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327, + 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, + 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 + }; +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/.qmake.stash b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/Makefile b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/Makefile new file mode 100644 index 0000000..348992c --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/Makefile @@ -0,0 +1,442 @@ +############################################################################# +# Makefile for building: Yamitracker +# Generated by qmake (3.1) (Qt 5.15.13) +# Project: ../Yamitracker.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Yamitracker1.0.0 +DISTDIR = /home/sofft328/progs/Yamitracker/Yamitracker3.1/Yamitracker2/Yamitracker/build/.tmp/Yamitracker1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp moc_yamitracker.cpp \ + moc_brrconverter.cpp +OBJECTS = main.o \ + yamitracker.o \ + simplewavwriter.o \ + brrconverter.o \ + moc_yamitracker.o \ + moc_brrconverter.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../Yamitracker.pro ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp +QMAKE_TARGET = Yamitracker +DESTDIR = +TARGET = Yamitracker + + +first: all +####### Build rules + +Yamitracker: ui_yamitracker.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../Yamitracker.pro + $(QMAKE) -o Makefile ../Yamitracker.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../Yamitracker.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../Yamitracker.pro + +qmake_all: FORCE + + +all: Makefile Yamitracker + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.h ../simplewavwriter.h ../brrconverter.h $(DISTDIR)/ + $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplewavwriter.cpp ../brrconverter.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_yamitracker.cpp moc_brrconverter.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_yamitracker.cpp moc_brrconverter.cpp +moc_yamitracker.cpp: ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker3.1/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp + +moc_brrconverter.cpp: ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker3.1/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../brrconverter.h -o moc_brrconverter.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_yamitracker.h +compiler_uic_clean: + -$(DEL_FILE) ui_yamitracker.h +ui_yamitracker.h: ../yamitracker.ui \ + /usr/lib/qt5/bin/uic + /usr/lib/qt5/bin/uic ../yamitracker.ui -o ui_yamitracker.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: ../main.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp + +yamitracker.o: ../yamitracker.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + ui_yamitracker.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp + +simplewavwriter.o: ../simplewavwriter.cpp ../simplewavwriter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplewavwriter.o ../simplewavwriter.cpp + +brrconverter.o: ../brrconverter.cpp ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o brrconverter.o ../brrconverter.cpp + +moc_yamitracker.o: moc_yamitracker.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp + +moc_brrconverter.o: moc_brrconverter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_brrconverter.o moc_brrconverter.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin + $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/Yamitracker b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/Yamitracker new file mode 100755 index 0000000..7955da9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/Yamitracker differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/brrconverter.o b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/brrconverter.o new file mode 100644 index 0000000..149ec06 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/main.o b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/main.o new file mode 100644 index 0000000..7f01895 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/main.o differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_brrconverter.cpp b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_brrconverter.cpp new file mode 100644 index 0000000..a11b9fc --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_brrconverter.cpp @@ -0,0 +1,95 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'brrconverter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../brrconverter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'brrconverter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_BrrConverter_t { + QByteArrayData data[1]; + char stringdata0[13]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_BrrConverter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_BrrConverter_t qt_meta_stringdata_BrrConverter = { + { +QT_MOC_LITERAL(0, 0, 12) // "BrrConverter" + + }, + "BrrConverter" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_BrrConverter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void BrrConverter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject BrrConverter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_BrrConverter.data, + qt_meta_data_BrrConverter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *BrrConverter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *BrrConverter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_BrrConverter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int BrrConverter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_brrconverter.o b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_brrconverter.o new file mode 100644 index 0000000..fa3b784 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_predefs.h b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_predefs.h new file mode 100644 index 0000000..f29ad61 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_predefs.h @@ -0,0 +1,464 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __cpp_nontype_template_parameter_auto 201606L +#define __UINT_LEAST16_MAX__ 0xffff +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __ATOMIC_ACQUIRE 2 +#define __FLT128_MAX_10_EXP__ 4932 +#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __cpp_aggregate_nsdmi 201304L +#define __UINT_LEAST8_TYPE__ unsigned char +#define __SIZEOF_FLOAT80__ 16 +#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 0xff +#define __SCHAR_WIDTH__ 8 +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 201411L +#define __BFLT16_MIN_10_EXP__ (-37) +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __WCHAR_MAX__ 0x7fffffff +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __cpp_binary_literals 201304L +#define __FLT64_DECIMAL_DIG__ 17 +#define __CET__ 3 +#define __cpp_noexcept_function_type 201510L +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __cpp_variadic_templates 200704L +#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __cpp_variable_templates 201304L +#define __FLT32X_MAX_EXP__ 1024 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __FLT32_HAS_DENORM__ 1 +#define __UINT_FAST8_MAX__ 0xff +#define __cpp_rvalue_reference 200610L +#define __cpp_nested_namespace_definitions 201411L +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __LDBL_HAS_INFINITY__ 1 +#define __INT_LEAST8_WIDTH__ 8 +#define __cpp_variadic_using 201611L +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL +#define __INT_LEAST8_MAX__ 0x7f +#define __cpp_attributes 200809L +#define __cpp_capture_star_this 201603L +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __FLT64X_MAX_10_EXP__ 4932 +#define __cpp_if_constexpr 201606L +#define __BFLT16_MAX_10_EXP__ 38 +#define __BFLT16_MAX_EXP__ 128 +#define __LDBL_IS_IEC_60559__ 1 +#define __FLT64X_HAS_QUIET_NAN__ 1 +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +#define __UINTMAX_TYPE__ long unsigned int +#define __cpp_nsdmi 200809L +#define __BFLT16_DECIMAL_DIG__ 4 +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __OPTIMIZE__ 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +#define __FLT128_MIN_EXP__ (-16381) +#define __WINT_MIN__ 0U +#define __FLT128_MIN_10_EXP__ (-4931) +#define __FLT32X_IS_IEC_60559__ 1 +#define __INT_LEAST16_WIDTH__ 16 +#define __SCHAR_MAX__ 0x7f +#define __FLT128_MANT_DIG__ 113 +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __INT64_C(c) c ## L +#define __SSP_STRONG__ 3 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __ATOMIC_SEQ_CST 5 +#define _FORTIFY_SOURCE 3 +#define __unix 1 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MANT_DIG__ 53 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __cpp_aligned_new 201606L +#define __FLT32_MAX_10_EXP__ 38 +#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +#define __STDC_HOSTED__ 1 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype_auto 201304L +#define __DBL_DIG__ 15 +#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __FLT32_IS_IEC_60559__ 1 +#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +#define __DBL_IS_IEC_60559__ 1 +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806L +#define __cpp_enumerator_attributes 201411L +#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +#define __FLT32X_HAS_INFINITY__ 1 +#define __unix__ 1 +#define __INT_WIDTH__ 32 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __DECIMAL_DIG__ 21 +#define __STDC_IEC_559_COMPLEX__ 1 +#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +#define __gnu_linux__ 1 +#define __INT16_MAX__ 0x7fff +#define __FLT64_MIN_EXP__ (-1021) +#define __FLT64X_MIN_10_EXP__ (-4931) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __cpp_return_type_deduction 201304L +#define __FLT16_MIN_EXP__ (-13) +#define __FLT64_MANT_DIG__ 53 +#define __FLT64X_MANT_DIG__ 64 +#define __BFLT16_DIG__ 2 +#define __GNUC__ 13 +#define __GXX_RTTI 1 +#define __pie__ 2 +#define __MMX__ 1 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __BIGGEST_ALIGNMENT__ 16 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __BFLT16_IS_IEC_60559__ 0 +#define __FLT16_MAX_10_EXP__ 4 +#define __cpp_delegating_constructors 200604L +#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __cpp_raw_strings 200710L +#define __INT_FAST32_MAX__ 0x7fffffffffffffffL +#define __DBL_HAS_INFINITY__ 1 +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __SIZEOF_FLOAT__ 4 +#define __HAVE_SPECULATION_SAFE_VALUE 1 +#define __cpp_fold_expressions 201603L +#define __DEC32_MIN_EXP__ (-94) +#define __INTPTR_WIDTH__ 64 +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ long int +#define __MMX_WITH_SSE__ 1 +#define __LDBL_HAS_DENORM__ 1 +#define __SEG_GS 1 +#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +#define __cplusplus 201703L +#define __cpp_ref_qualifiers 200710L +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610L +#define __DBL_MAX_EXP__ 1024 +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __FLT16_DECIMAL_DIG__ 5 +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 0x7fffffffffffffffL +#define __amd64 1 +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __GNUG__ 13 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 8 +#define __BFLT16_HAS_INFINITY__ 1 +#define __FLT64X_MIN_EXP__ (-16381) +#define __SIZEOF_WINT_T__ 4 +#define __FLT32X_DIG__ 15 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806L +#define __FLT32_MAX_EXP__ 128 +#define __cpp_hex_float 201603L +#define __GXX_ABI_VERSION 1018 +#define __FLT_MIN_EXP__ (-125) +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __x86_64 1 +#define __cpp_lambdas 200907L +#define __INT_FAST64_TYPE__ long int +#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +#define __cpp_template_auto 201606L +#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __SIZEOF_POINTER__ 8 +#define __SIZE_TYPE__ long unsigned int +#define __LP64__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +#define __LDBL_MAX_EXP__ 16384 +#define __DECIMAL_BID_FORMAT__ 1 +#define __FLT64_MIN_10_EXP__ (-307) +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT64X_DECIMAL_DIG__ 21 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __FLT128_HAS_INFINITY__ 1 +#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __FLT_DIG__ 6 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 21 +#define __VERSION__ "13.3.0" +#define __UINT64_C(c) c ## UL +#define __cpp_unicode_characters 201411L +#define _STDC_PREDEF_H 1 +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT128_MAX_EXP__ 16384 +#define __FLT32_MANT_DIG__ 24 +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT32X_MIN_EXP__ (-1021) +#define __STDC_IEC_60559_COMPLEX__ 201404L +#define __cpp_aggregate_bases 201603L +#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +#define __FLT128_HAS_DENORM__ 1 +#define __FLT32_DECIMAL_DIG__ 9 +#define __FLT128_DIG__ 33 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __DEC128_MAX_EXP__ 6145 +#define unix 1 +#define __DBL_HAS_DENORM__ 1 +#define __cpp_rtti 199711L +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __FLT_IS_IEC_60559__ 1 +#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +#define __FLT64X_DIG__ 18 +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309L +#define __ELF__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __UINT32_TYPE__ unsigned int +#define __BFLT16_HAS_QUIET_NAN__ 1 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +#define __UINTMAX_C(c) c ## UL +#define __FLT16_DIG__ 3 +#define __k8 1 +#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __cpp_constexpr 201603L +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +#define __STDC_IEC_60559_BFP__ 201404L +#define __SIZEOF_PTRDIFF_T__ 8 +#define __FLT64X_HAS_INFINITY__ 1 +#define __SIZEOF_LONG__ 8 +#define __LDBL_DIG__ 18 +#define __FLT64_IS_IEC_60559__ 1 +#define __x86_64__ 1 +#define __FLT16_IS_IEC_60559__ 1 +#define __FLT16_MAX_EXP__ 16 +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __INT_FAST16_MAX__ 0x7fffffffffffffffL +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __LONG_MAX__ 0x7fffffffffffffffL +#define __FLT64X_HAS_DENORM__ 1 +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" +#define __cpp_unicode_literals 200710L +#define __UINT_FAST16_TYPE__ long unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __INT_FAST32_WIDTH__ 64 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __SIZE_WIDTH__ 64 +#define __SEG_FS 1 +#define __INT_LEAST16_MAX__ 0x7fff +#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __DEC64_MANT_DIG__ 16 +#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +#define __cpp_structured_bindings 201606L +#define __SIZEOF_INT__ 4 +#define __DEC32_MAX_EXP__ 97 +#define __INT_FAST8_MAX__ 0x7f +#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __INTPTR_MAX__ 0x7fffffffffffffffL +#define __cpp_sized_deallocation 201309L +#define __cpp_guaranteed_copy_elision 201606L +#define linux 1 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __EXCEPTIONS 1 +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 64 +#define __LDBL_MANT_DIG__ 64 +#define __cpp_range_based_for 201603L +#define __INT_FAST16_WIDTH__ 64 +#define __FLT64_HAS_INFINITY__ 1 +#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __FLT16_HAS_INFINITY__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __cpp_nontype_template_args 201411L +#define __DEC32_MANT_DIG__ 7 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __pic__ 2 +#define __UINTPTR_MAX__ 0xffffffffffffffffUL +#define __INT_FAST64_WIDTH__ 64 +#define __cpp_decltype 200707L +#define __INT_FAST64_MAX__ 0x7fffffffffffffffL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +#define __FLT32_HAS_INFINITY__ 1 +#define __FLT64X_MAX_EXP__ 16384 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __cpp_inline_variables 201606L +#define __BFLT16_MIN_EXP__ (-125) +#define __INT_MAX__ 0x7fffffff +#define __linux__ 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __cpp_inheriting_constructors 201511L +#define __SIZEOF_FLOAT128__ 16 +#define __BFLT16_MANT_DIG__ 8 +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __amd64__ 1 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST64_WIDTH__ 64 +#define __FLT32X_MAX_10_EXP__ 308 +#define __cpp_namespace_attributes 201411L +#define __SIZEOF_INT128__ 16 +#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +#define __FLT64X_IS_IEC_60559__ 1 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +#define __INT_LEAST32_TYPE__ int +#define _LP64 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __SIZEOF_WCHAR_T__ 4 +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __FLT128_HAS_QUIET_NAN__ 1 +#define __INTMAX_MAX__ 0x7fffffffffffffffL +#define __INT_FAST8_TYPE__ signed char +#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +#define __STDCPP_THREADS__ 1 +#define __BFLT16_HAS_DENORM__ 1 +#define __GNUC_STDC_INLINE__ 1 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +#define __FLT16_HAS_DENORM__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __FXSR__ 1 +#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __INTMAX_WIDTH__ 64 +#define __cpp_runtime_arrays 198712L +#define __FLT32_DIG__ 6 +#define __UINT64_TYPE__ long unsigned int +#define __UINT32_C(c) c ## U +#define __cpp_alias_templates 200704L +#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +#define __FLT128_IS_IEC_60559__ 1 +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 64 +#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +#define __PIC__ 2 +#define __INT32_MAX__ 0x7fffffff +#define __UINT_FAST32_TYPE__ long unsigned int +#define __FLT16_MANT_DIG__ 11 +#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F +#define __SSE2__ 1 +#define __cpp_deduction_guides 201703L +#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711L +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long int +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 3 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __UINTMAX_MAX__ 0xffffffffffffffffUL +#define __PIE__ 2 +#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +#define __cpp_template_template_args 201611L +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +#define __INT16_C(c) c +#define __STDC__ 1 +#define __PTRDIFF_TYPE__ long int +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __cpp_generic_lambdas 201304L +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809L +#define __FLT128_DECIMAL_DIG__ 36 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL +#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __SIZE_MAX__ 0xffffffffffffffffUL +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __cpp_init_captures 201304L +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_yamitracker.cpp b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_yamitracker.cpp new file mode 100644 index 0000000..10ac10b --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_yamitracker.cpp @@ -0,0 +1,411 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'yamitracker.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../yamitracker.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'yamitracker.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SerialReader_t { + QByteArrayData data[13]; + char stringdata0[145]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SerialReader_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = { + { +QT_MOC_LITERAL(0, 0, 12), // "SerialReader" +QT_MOC_LITERAL(1, 13, 14), // "noteOnReceived" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 4), // "note" +QT_MOC_LITERAL(4, 34, 8), // "velocity" +QT_MOC_LITERAL(5, 43, 15), // "noteOffReceived" +QT_MOC_LITERAL(6, 59, 5), // "error" +QT_MOC_LITERAL(7, 65, 7), // "message" +QT_MOC_LITERAL(8, 73, 23), // "connectionStatusChanged" +QT_MOC_LITERAL(9, 97, 9), // "connected" +QT_MOC_LITERAL(10, 107, 18), // "deviceInfoReceived" +QT_MOC_LITERAL(11, 126, 12), // "manufacturer" +QT_MOC_LITERAL(12, 139, 5) // "model" + + }, + "SerialReader\0noteOnReceived\0\0note\0" + "velocity\0noteOffReceived\0error\0message\0" + "connectionStatusChanged\0connected\0" + "deviceInfoReceived\0manufacturer\0model" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SerialReader[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 5, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 2, 39, 2, 0x06 /* Public */, + 5, 1, 44, 2, 0x06 /* Public */, + 6, 1, 47, 2, 0x06 /* Public */, + 8, 1, 50, 2, 0x06 /* Public */, + 10, 2, 53, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, QMetaType::Bool, 9, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 11, 12, + + 0 // eod +}; + +void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->noteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->noteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->error((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->connectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: _t->deviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SerialReader::*)(const QString & , int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOnReceived)) { + *result = 0; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOffReceived)) { + *result = 1; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::error)) { + *result = 2; + return; + } + } + { + using _t = void (SerialReader::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::connectionStatusChanged)) { + *result = 3; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & , const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::deviceInfoReceived)) { + *result = 4; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SerialReader::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SerialReader.data, + qt_meta_data_SerialReader, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SerialReader::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SerialReader::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0)) + return static_cast(this); + return QThread::qt_metacast(_clname); +} + +int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QThread::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} + +// SIGNAL 0 +void SerialReader::noteOnReceived(const QString & _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SerialReader::noteOffReceived(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void SerialReader::error(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void SerialReader::connectionStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} + +// SIGNAL 4 +void SerialReader::deviceInfoReceived(const QString & _t1, const QString & _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 4, _a); +} +struct qt_meta_stringdata_Yamitracker_t { + QByteArrayData data[31]; + char stringdata0[512]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_Yamitracker_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = { + { +QT_MOC_LITERAL(0, 0, 11), // "Yamitracker" +QT_MOC_LITERAL(1, 12, 16), // "onNoteOnReceived" +QT_MOC_LITERAL(2, 29, 0), // "" +QT_MOC_LITERAL(3, 30, 4), // "note" +QT_MOC_LITERAL(4, 35, 8), // "velocity" +QT_MOC_LITERAL(5, 44, 17), // "onNoteOffReceived" +QT_MOC_LITERAL(6, 62, 7), // "onError" +QT_MOC_LITERAL(7, 70, 7), // "message" +QT_MOC_LITERAL(8, 78, 13), // "onPlayClicked" +QT_MOC_LITERAL(9, 92, 13), // "onStopClicked" +QT_MOC_LITERAL(10, 106, 21), // "onConvertToBrrClicked" +QT_MOC_LITERAL(11, 128, 18), // "clearStatusMessage" +QT_MOC_LITERAL(12, 147, 25), // "onConnectionStatusChanged" +QT_MOC_LITERAL(13, 173, 9), // "connected" +QT_MOC_LITERAL(14, 183, 16), // "attemptReconnect" +QT_MOC_LITERAL(15, 200, 20), // "onDeviceInfoReceived" +QT_MOC_LITERAL(16, 221, 12), // "manufacturer" +QT_MOC_LITERAL(17, 234, 5), // "model" +QT_MOC_LITERAL(18, 240, 23), // "onRefreshDevicesClicked" +QT_MOC_LITERAL(19, 264, 21), // "onLoadMidiFileClicked" +QT_MOC_LITERAL(20, 286, 25), // "onSelectFileForConversion" +QT_MOC_LITERAL(21, 312, 23), // "onSelectFileForPlayback" +QT_MOC_LITERAL(22, 336, 22), // "onSaveRecordingClicked" +QT_MOC_LITERAL(23, 359, 21), // "onPlayMidiFileClicked" +QT_MOC_LITERAL(24, 381, 25), // "onSelectedMidiFileChanged" +QT_MOC_LITERAL(25, 407, 20), // "onRecordFromMidiFile" +QT_MOC_LITERAL(26, 428, 22), // "onPlaybackSpeedChanged" +QT_MOC_LITERAL(27, 451, 5), // "value" +QT_MOC_LITERAL(28, 457, 19), // "onBassVolumeChanged" +QT_MOC_LITERAL(29, 477, 16), // "updateSpeedLabel" +QT_MOC_LITERAL(30, 494, 17) // "updateVolumeLabel" + + }, + "Yamitracker\0onNoteOnReceived\0\0note\0" + "velocity\0onNoteOffReceived\0onError\0" + "message\0onPlayClicked\0onStopClicked\0" + "onConvertToBrrClicked\0clearStatusMessage\0" + "onConnectionStatusChanged\0connected\0" + "attemptReconnect\0onDeviceInfoReceived\0" + "manufacturer\0model\0onRefreshDevicesClicked\0" + "onLoadMidiFileClicked\0onSelectFileForConversion\0" + "onSelectFileForPlayback\0onSaveRecordingClicked\0" + "onPlayMidiFileClicked\0onSelectedMidiFileChanged\0" + "onRecordFromMidiFile\0onPlaybackSpeedChanged\0" + "value\0onBassVolumeChanged\0updateSpeedLabel\0" + "updateVolumeLabel" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_Yamitracker[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 22, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 2, 124, 2, 0x08 /* Private */, + 5, 1, 129, 2, 0x08 /* Private */, + 6, 1, 132, 2, 0x08 /* Private */, + 8, 0, 135, 2, 0x08 /* Private */, + 9, 0, 136, 2, 0x08 /* Private */, + 10, 0, 137, 2, 0x08 /* Private */, + 11, 0, 138, 2, 0x08 /* Private */, + 12, 1, 139, 2, 0x08 /* Private */, + 14, 0, 142, 2, 0x08 /* Private */, + 15, 2, 143, 2, 0x08 /* Private */, + 18, 0, 148, 2, 0x08 /* Private */, + 19, 0, 149, 2, 0x08 /* Private */, + 20, 0, 150, 2, 0x08 /* Private */, + 21, 0, 151, 2, 0x08 /* Private */, + 22, 0, 152, 2, 0x08 /* Private */, + 23, 0, 153, 2, 0x08 /* Private */, + 24, 0, 154, 2, 0x08 /* Private */, + 25, 0, 155, 2, 0x08 /* Private */, + 26, 1, 156, 2, 0x08 /* Private */, + 28, 1, 159, 2, 0x08 /* Private */, + 29, 0, 162, 2, 0x08 /* Private */, + 30, 0, 163, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Bool, 13, + QMetaType::Void, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 16, 17, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 27, + QMetaType::Void, QMetaType::Int, 27, + QMetaType::Void, + QMetaType::Void, + + 0 // eod +}; + +void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onNoteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->onNoteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->onError((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->onPlayClicked(); break; + case 4: _t->onStopClicked(); break; + case 5: _t->onConvertToBrrClicked(); break; + case 6: _t->clearStatusMessage(); break; + case 7: _t->onConnectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 8: _t->attemptReconnect(); break; + case 9: _t->onDeviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + case 10: _t->onRefreshDevicesClicked(); break; + case 11: _t->onLoadMidiFileClicked(); break; + case 12: _t->onSelectFileForConversion(); break; + case 13: _t->onSelectFileForPlayback(); break; + case 14: _t->onSaveRecordingClicked(); break; + case 15: _t->onPlayMidiFileClicked(); break; + case 16: _t->onSelectedMidiFileChanged(); break; + case 17: _t->onRecordFromMidiFile(); break; + case 18: _t->onPlaybackSpeedChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 19: _t->onBassVolumeChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 20: _t->updateSpeedLabel(); break; + case 21: _t->updateVolumeLabel(); break; + default: ; + } + } +} + +QT_INIT_METAOBJECT const QMetaObject Yamitracker::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_Yamitracker.data, + qt_meta_data_Yamitracker, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *Yamitracker::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *Yamitracker::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 22) + qt_static_metacall(this, _c, _id, _a); + _id -= 22; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 22) + *reinterpret_cast(_a[0]) = -1; + _id -= 22; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_yamitracker.o b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_yamitracker.o new file mode 100644 index 0000000..4fccded Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/moc_yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132101.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132101.wav new file mode 100644 index 0000000..3059cff Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132101.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132246.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132246.wav new file mode 100644 index 0000000..d142bd0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132246.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132330.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132330.wav new file mode 100644 index 0000000..1558a90 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132330.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132419.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132419.wav new file mode 100644 index 0000000..ac612eb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132419.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132626.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132626.wav new file mode 100644 index 0000000..5281681 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132626.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132658.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132658.wav new file mode 100644 index 0000000..62ff46c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132658.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132749.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132749.wav new file mode 100644 index 0000000..0c64c0c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132749.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132835.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132835.wav new file mode 100644 index 0000000..bc72352 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132835.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132936.brr b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132936.brr new file mode 100644 index 0000000..c5a7a21 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132936.brr differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132936.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132936.wav new file mode 100644 index 0000000..bc72352 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/recording_20251210_132936.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/simplewavwriter.o b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/simplewavwriter.o new file mode 100644 index 0000000..2cdee73 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/simplewavwriter.o differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/ui_yamitracker.h b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/ui_yamitracker.h new file mode 100644 index 0000000..d9762a4 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/ui_yamitracker.h @@ -0,0 +1,744 @@ +/******************************************************************************** +** Form generated from reading UI file 'yamitracker.ui' +** +** Created by: Qt User Interface Compiler version 5.15.13 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_YAMITRACKER_H +#define UI_YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Yamitracker +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QHBoxLayout *horizontalLayout; + QLabel *statusLabel; + QSpacerItem *horizontalSpacer; + QLabel *deviceLabel; + QHBoxLayout *horizontalLayout_2; + QLabel *keysInfoLabel; + QProgressBar *volumeBar; + QGroupBox *groupBox; + QHBoxLayout *horizontalLayout_3; + QPushButton *playButton; + QPushButton *stopButton; + QPushButton *saveRecordingButton; + QPushButton *convertButton; + QPushButton *selectFileButton; + QPushButton *playFileButton; + QGroupBox *groupBox_2; + QVBoxLayout *verticalLayout_3; + QHBoxLayout *horizontalLayout_4; + QLabel *label; + QComboBox *instrumentComboBox; + QSpacerItem *horizontalSpacer_2; + QPushButton *refreshDevicesButton; + QHBoxLayout *horizontalLayout_5; + QPushButton *loadMidiButton; + QPushButton *playMidiButton; + QPushButton *recordFromMidiButton; + QLabel *label_2; + QListWidget *midiFilesList; + QWidget *pianoWidget; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *whiteKeysLayout; + QPushButton *key_C1; + QPushButton *key_D1; + QPushButton *key_E1; + QPushButton *key_F1; + QPushButton *key_G1; + QPushButton *key_A1; + QPushButton *key_B1; + QPushButton *key_C2; + QPushButton *key_D2; + QPushButton *key_E2; + QPushButton *key_F2; + QPushButton *key_G2; + QPushButton *key_A2; + QPushButton *key_B2; + QPushButton *key_C3; + QPushButton *key_D3; + QPushButton *key_E3; + QPushButton *key_F3; + QPushButton *key_G3; + QPushButton *key_A3; + QPushButton *key_B3; + QPushButton *key_C4; + QPushButton *key_D4; + QPushButton *key_E4; + QPushButton *key_F4; + QPushButton *key_G4; + QPushButton *key_A4; + QPushButton *key_B4; + QPushButton *key_C5; + QPushButton *key_D5; + QPushButton *key_E5; + QPushButton *key_F5; + QPushButton *key_G5; + QPushButton *key_A5; + QPushButton *key_B5; + QPushButton *key_C6; + QHBoxLayout *blackKeysLayout; + QSpacerItem *horizontalSpacer_1; + QPushButton *key_Cs1; + QPushButton *key_Ds1; + QSpacerItem *horizontalSpacer_21; + QPushButton *key_Fs1; + QPushButton *key_Gs1; + QPushButton *key_As1; + QSpacerItem *horizontalSpacer_3; + QPushButton *key_Cs2; + QPushButton *key_Ds2; + QSpacerItem *horizontalSpacer_4; + QPushButton *key_Fs2; + QPushButton *key_Gs2; + QPushButton *key_As2; + QSpacerItem *horizontalSpacer_5; + QPushButton *key_Cs3; + QPushButton *key_Ds3; + QSpacerItem *horizontalSpacer_6; + QPushButton *key_Fs3; + QPushButton *key_Gs3; + QPushButton *key_As3; + QSpacerItem *horizontalSpacer_7; + QPushButton *key_Cs4; + QPushButton *key_Ds4; + QSpacerItem *horizontalSpacer_8; + QPushButton *key_Fs4; + QPushButton *key_Gs4; + QPushButton *key_As4; + QSpacerItem *horizontalSpacer_9; + QPushButton *key_Cs5; + QPushButton *key_Ds5; + QSpacerItem *horizontalSpacer_10; + QPushButton *key_Fs5; + QPushButton *key_Gs5; + QPushButton *key_As5; + QSpacerItem *horizontalSpacer_11; + + void setupUi(QMainWindow *Yamitracker) + { + if (Yamitracker->objectName().isEmpty()) + Yamitracker->setObjectName(QString::fromUtf8("Yamitracker")); + Yamitracker->resize(1200, 800); + centralwidget = new QWidget(Yamitracker); + centralwidget->setObjectName(QString::fromUtf8("centralwidget")); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + statusLabel = new QLabel(centralwidget); + statusLabel->setObjectName(QString::fromUtf8("statusLabel")); + + horizontalLayout->addWidget(statusLabel); + + horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout->addItem(horizontalSpacer); + + deviceLabel = new QLabel(centralwidget); + deviceLabel->setObjectName(QString::fromUtf8("deviceLabel")); + + horizontalLayout->addWidget(deviceLabel); + + + verticalLayout->addLayout(horizontalLayout); + + horizontalLayout_2 = new QHBoxLayout(); + horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2")); + keysInfoLabel = new QLabel(centralwidget); + keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel")); + + horizontalLayout_2->addWidget(keysInfoLabel); + + volumeBar = new QProgressBar(centralwidget); + volumeBar->setObjectName(QString::fromUtf8("volumeBar")); + volumeBar->setValue(0); + + horizontalLayout_2->addWidget(volumeBar); + + + verticalLayout->addLayout(horizontalLayout_2); + + groupBox = new QGroupBox(centralwidget); + groupBox->setObjectName(QString::fromUtf8("groupBox")); + horizontalLayout_3 = new QHBoxLayout(groupBox); + horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3")); + playButton = new QPushButton(groupBox); + playButton->setObjectName(QString::fromUtf8("playButton")); + + horizontalLayout_3->addWidget(playButton); + + stopButton = new QPushButton(groupBox); + stopButton->setObjectName(QString::fromUtf8("stopButton")); + + horizontalLayout_3->addWidget(stopButton); + + saveRecordingButton = new QPushButton(groupBox); + saveRecordingButton->setObjectName(QString::fromUtf8("saveRecordingButton")); + + horizontalLayout_3->addWidget(saveRecordingButton); + + convertButton = new QPushButton(groupBox); + convertButton->setObjectName(QString::fromUtf8("convertButton")); + + horizontalLayout_3->addWidget(convertButton); + + selectFileButton = new QPushButton(groupBox); + selectFileButton->setObjectName(QString::fromUtf8("selectFileButton")); + + horizontalLayout_3->addWidget(selectFileButton); + + playFileButton = new QPushButton(groupBox); + playFileButton->setObjectName(QString::fromUtf8("playFileButton")); + + horizontalLayout_3->addWidget(playFileButton); + + + verticalLayout->addWidget(groupBox); + + groupBox_2 = new QGroupBox(centralwidget); + groupBox_2->setObjectName(QString::fromUtf8("groupBox_2")); + verticalLayout_3 = new QVBoxLayout(groupBox_2); + verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3")); + horizontalLayout_4 = new QHBoxLayout(); + horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4")); + label = new QLabel(groupBox_2); + label->setObjectName(QString::fromUtf8("label")); + + horizontalLayout_4->addWidget(label); + + instrumentComboBox = new QComboBox(groupBox_2); + instrumentComboBox->setObjectName(QString::fromUtf8("instrumentComboBox")); + + horizontalLayout_4->addWidget(instrumentComboBox); + + horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_4->addItem(horizontalSpacer_2); + + refreshDevicesButton = new QPushButton(groupBox_2); + refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton")); + + horizontalLayout_4->addWidget(refreshDevicesButton); + + + verticalLayout_3->addLayout(horizontalLayout_4); + + horizontalLayout_5 = new QHBoxLayout(); + horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5")); + loadMidiButton = new QPushButton(groupBox_2); + loadMidiButton->setObjectName(QString::fromUtf8("loadMidiButton")); + + horizontalLayout_5->addWidget(loadMidiButton); + + playMidiButton = new QPushButton(groupBox_2); + playMidiButton->setObjectName(QString::fromUtf8("playMidiButton")); + + horizontalLayout_5->addWidget(playMidiButton); + + recordFromMidiButton = new QPushButton(groupBox_2); + recordFromMidiButton->setObjectName(QString::fromUtf8("recordFromMidiButton")); + + horizontalLayout_5->addWidget(recordFromMidiButton); + + + verticalLayout_3->addLayout(horizontalLayout_5); + + label_2 = new QLabel(groupBox_2); + label_2->setObjectName(QString::fromUtf8("label_2")); + + verticalLayout_3->addWidget(label_2); + + midiFilesList = new QListWidget(groupBox_2); + midiFilesList->setObjectName(QString::fromUtf8("midiFilesList")); + + verticalLayout_3->addWidget(midiFilesList); + + + verticalLayout->addWidget(groupBox_2); + + pianoWidget = new QWidget(centralwidget); + pianoWidget->setObjectName(QString::fromUtf8("pianoWidget")); + verticalLayout_2 = new QVBoxLayout(pianoWidget); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + whiteKeysLayout = new QHBoxLayout(); + whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout")); + key_C1 = new QPushButton(pianoWidget); + key_C1->setObjectName(QString::fromUtf8("key_C1")); + + whiteKeysLayout->addWidget(key_C1); + + key_D1 = new QPushButton(pianoWidget); + key_D1->setObjectName(QString::fromUtf8("key_D1")); + + whiteKeysLayout->addWidget(key_D1); + + key_E1 = new QPushButton(pianoWidget); + key_E1->setObjectName(QString::fromUtf8("key_E1")); + + whiteKeysLayout->addWidget(key_E1); + + key_F1 = new QPushButton(pianoWidget); + key_F1->setObjectName(QString::fromUtf8("key_F1")); + + whiteKeysLayout->addWidget(key_F1); + + key_G1 = new QPushButton(pianoWidget); + key_G1->setObjectName(QString::fromUtf8("key_G1")); + + whiteKeysLayout->addWidget(key_G1); + + key_A1 = new QPushButton(pianoWidget); + key_A1->setObjectName(QString::fromUtf8("key_A1")); + + whiteKeysLayout->addWidget(key_A1); + + key_B1 = new QPushButton(pianoWidget); + key_B1->setObjectName(QString::fromUtf8("key_B1")); + + whiteKeysLayout->addWidget(key_B1); + + key_C2 = new QPushButton(pianoWidget); + key_C2->setObjectName(QString::fromUtf8("key_C2")); + + whiteKeysLayout->addWidget(key_C2); + + key_D2 = new QPushButton(pianoWidget); + key_D2->setObjectName(QString::fromUtf8("key_D2")); + + whiteKeysLayout->addWidget(key_D2); + + key_E2 = new QPushButton(pianoWidget); + key_E2->setObjectName(QString::fromUtf8("key_E2")); + + whiteKeysLayout->addWidget(key_E2); + + key_F2 = new QPushButton(pianoWidget); + key_F2->setObjectName(QString::fromUtf8("key_F2")); + + whiteKeysLayout->addWidget(key_F2); + + key_G2 = new QPushButton(pianoWidget); + key_G2->setObjectName(QString::fromUtf8("key_G2")); + + whiteKeysLayout->addWidget(key_G2); + + key_A2 = new QPushButton(pianoWidget); + key_A2->setObjectName(QString::fromUtf8("key_A2")); + + whiteKeysLayout->addWidget(key_A2); + + key_B2 = new QPushButton(pianoWidget); + key_B2->setObjectName(QString::fromUtf8("key_B2")); + + whiteKeysLayout->addWidget(key_B2); + + key_C3 = new QPushButton(pianoWidget); + key_C3->setObjectName(QString::fromUtf8("key_C3")); + + whiteKeysLayout->addWidget(key_C3); + + key_D3 = new QPushButton(pianoWidget); + key_D3->setObjectName(QString::fromUtf8("key_D3")); + + whiteKeysLayout->addWidget(key_D3); + + key_E3 = new QPushButton(pianoWidget); + key_E3->setObjectName(QString::fromUtf8("key_E3")); + + whiteKeysLayout->addWidget(key_E3); + + key_F3 = new QPushButton(pianoWidget); + key_F3->setObjectName(QString::fromUtf8("key_F3")); + + whiteKeysLayout->addWidget(key_F3); + + key_G3 = new QPushButton(pianoWidget); + key_G3->setObjectName(QString::fromUtf8("key_G3")); + + whiteKeysLayout->addWidget(key_G3); + + key_A3 = new QPushButton(pianoWidget); + key_A3->setObjectName(QString::fromUtf8("key_A3")); + + whiteKeysLayout->addWidget(key_A3); + + key_B3 = new QPushButton(pianoWidget); + key_B3->setObjectName(QString::fromUtf8("key_B3")); + + whiteKeysLayout->addWidget(key_B3); + + key_C4 = new QPushButton(pianoWidget); + key_C4->setObjectName(QString::fromUtf8("key_C4")); + + whiteKeysLayout->addWidget(key_C4); + + key_D4 = new QPushButton(pianoWidget); + key_D4->setObjectName(QString::fromUtf8("key_D4")); + + whiteKeysLayout->addWidget(key_D4); + + key_E4 = new QPushButton(pianoWidget); + key_E4->setObjectName(QString::fromUtf8("key_E4")); + + whiteKeysLayout->addWidget(key_E4); + + key_F4 = new QPushButton(pianoWidget); + key_F4->setObjectName(QString::fromUtf8("key_F4")); + + whiteKeysLayout->addWidget(key_F4); + + key_G4 = new QPushButton(pianoWidget); + key_G4->setObjectName(QString::fromUtf8("key_G4")); + + whiteKeysLayout->addWidget(key_G4); + + key_A4 = new QPushButton(pianoWidget); + key_A4->setObjectName(QString::fromUtf8("key_A4")); + + whiteKeysLayout->addWidget(key_A4); + + key_B4 = new QPushButton(pianoWidget); + key_B4->setObjectName(QString::fromUtf8("key_B4")); + + whiteKeysLayout->addWidget(key_B4); + + key_C5 = new QPushButton(pianoWidget); + key_C5->setObjectName(QString::fromUtf8("key_C5")); + + whiteKeysLayout->addWidget(key_C5); + + key_D5 = new QPushButton(pianoWidget); + key_D5->setObjectName(QString::fromUtf8("key_D5")); + + whiteKeysLayout->addWidget(key_D5); + + key_E5 = new QPushButton(pianoWidget); + key_E5->setObjectName(QString::fromUtf8("key_E5")); + + whiteKeysLayout->addWidget(key_E5); + + key_F5 = new QPushButton(pianoWidget); + key_F5->setObjectName(QString::fromUtf8("key_F5")); + + whiteKeysLayout->addWidget(key_F5); + + key_G5 = new QPushButton(pianoWidget); + key_G5->setObjectName(QString::fromUtf8("key_G5")); + + whiteKeysLayout->addWidget(key_G5); + + key_A5 = new QPushButton(pianoWidget); + key_A5->setObjectName(QString::fromUtf8("key_A5")); + + whiteKeysLayout->addWidget(key_A5); + + key_B5 = new QPushButton(pianoWidget); + key_B5->setObjectName(QString::fromUtf8("key_B5")); + + whiteKeysLayout->addWidget(key_B5); + + key_C6 = new QPushButton(pianoWidget); + key_C6->setObjectName(QString::fromUtf8("key_C6")); + + whiteKeysLayout->addWidget(key_C6); + + + verticalLayout_2->addLayout(whiteKeysLayout); + + blackKeysLayout = new QHBoxLayout(); + blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout")); + horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_1); + + key_Cs1 = new QPushButton(pianoWidget); + key_Cs1->setObjectName(QString::fromUtf8("key_Cs1")); + + blackKeysLayout->addWidget(key_Cs1); + + key_Ds1 = new QPushButton(pianoWidget); + key_Ds1->setObjectName(QString::fromUtf8("key_Ds1")); + + blackKeysLayout->addWidget(key_Ds1); + + horizontalSpacer_21 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_21); + + key_Fs1 = new QPushButton(pianoWidget); + key_Fs1->setObjectName(QString::fromUtf8("key_Fs1")); + + blackKeysLayout->addWidget(key_Fs1); + + key_Gs1 = new QPushButton(pianoWidget); + key_Gs1->setObjectName(QString::fromUtf8("key_Gs1")); + + blackKeysLayout->addWidget(key_Gs1); + + key_As1 = new QPushButton(pianoWidget); + key_As1->setObjectName(QString::fromUtf8("key_As1")); + + blackKeysLayout->addWidget(key_As1); + + horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_3); + + key_Cs2 = new QPushButton(pianoWidget); + key_Cs2->setObjectName(QString::fromUtf8("key_Cs2")); + + blackKeysLayout->addWidget(key_Cs2); + + key_Ds2 = new QPushButton(pianoWidget); + key_Ds2->setObjectName(QString::fromUtf8("key_Ds2")); + + blackKeysLayout->addWidget(key_Ds2); + + horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_4); + + key_Fs2 = new QPushButton(pianoWidget); + key_Fs2->setObjectName(QString::fromUtf8("key_Fs2")); + + blackKeysLayout->addWidget(key_Fs2); + + key_Gs2 = new QPushButton(pianoWidget); + key_Gs2->setObjectName(QString::fromUtf8("key_Gs2")); + + blackKeysLayout->addWidget(key_Gs2); + + key_As2 = new QPushButton(pianoWidget); + key_As2->setObjectName(QString::fromUtf8("key_As2")); + + blackKeysLayout->addWidget(key_As2); + + horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_5); + + key_Cs3 = new QPushButton(pianoWidget); + key_Cs3->setObjectName(QString::fromUtf8("key_Cs3")); + + blackKeysLayout->addWidget(key_Cs3); + + key_Ds3 = new QPushButton(pianoWidget); + key_Ds3->setObjectName(QString::fromUtf8("key_Ds3")); + + blackKeysLayout->addWidget(key_Ds3); + + horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_6); + + key_Fs3 = new QPushButton(pianoWidget); + key_Fs3->setObjectName(QString::fromUtf8("key_Fs3")); + + blackKeysLayout->addWidget(key_Fs3); + + key_Gs3 = new QPushButton(pianoWidget); + key_Gs3->setObjectName(QString::fromUtf8("key_Gs3")); + + blackKeysLayout->addWidget(key_Gs3); + + key_As3 = new QPushButton(pianoWidget); + key_As3->setObjectName(QString::fromUtf8("key_As3")); + + blackKeysLayout->addWidget(key_As3); + + horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_7); + + key_Cs4 = new QPushButton(pianoWidget); + key_Cs4->setObjectName(QString::fromUtf8("key_Cs4")); + + blackKeysLayout->addWidget(key_Cs4); + + key_Ds4 = new QPushButton(pianoWidget); + key_Ds4->setObjectName(QString::fromUtf8("key_Ds4")); + + blackKeysLayout->addWidget(key_Ds4); + + horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_8); + + key_Fs4 = new QPushButton(pianoWidget); + key_Fs4->setObjectName(QString::fromUtf8("key_Fs4")); + + blackKeysLayout->addWidget(key_Fs4); + + key_Gs4 = new QPushButton(pianoWidget); + key_Gs4->setObjectName(QString::fromUtf8("key_Gs4")); + + blackKeysLayout->addWidget(key_Gs4); + + key_As4 = new QPushButton(pianoWidget); + key_As4->setObjectName(QString::fromUtf8("key_As4")); + + blackKeysLayout->addWidget(key_As4); + + horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_9); + + key_Cs5 = new QPushButton(pianoWidget); + key_Cs5->setObjectName(QString::fromUtf8("key_Cs5")); + + blackKeysLayout->addWidget(key_Cs5); + + key_Ds5 = new QPushButton(pianoWidget); + key_Ds5->setObjectName(QString::fromUtf8("key_Ds5")); + + blackKeysLayout->addWidget(key_Ds5); + + horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_10); + + key_Fs5 = new QPushButton(pianoWidget); + key_Fs5->setObjectName(QString::fromUtf8("key_Fs5")); + + blackKeysLayout->addWidget(key_Fs5); + + key_Gs5 = new QPushButton(pianoWidget); + key_Gs5->setObjectName(QString::fromUtf8("key_Gs5")); + + blackKeysLayout->addWidget(key_Gs5); + + key_As5 = new QPushButton(pianoWidget); + key_As5->setObjectName(QString::fromUtf8("key_As5")); + + blackKeysLayout->addWidget(key_As5); + + horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_11); + + + verticalLayout_2->addLayout(blackKeysLayout); + + + verticalLayout->addWidget(pianoWidget); + + Yamitracker->setCentralWidget(centralwidget); + + retranslateUi(Yamitracker); + + QMetaObject::connectSlotsByName(Yamitracker); + } // setupUi + + void retranslateUi(QMainWindow *Yamitracker) + { + Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor", nullptr)); + statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr)); + deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr)); + keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr)); + groupBox->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\267\320\260\320\277\320\270\321\201\321\214\321\216", nullptr)); + playButton->setText(QCoreApplication::translate("Yamitracker", "\320\227\320\260\320\277\320\270\321\201\321\214 \321\201 \321\201\320\270\320\275\321\202\320\265\320\267\320\260\321\202\320\276\321\200\320\260", nullptr)); + stopButton->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\276\320\277", nullptr)); + saveRecordingButton->setText(QCoreApplication::translate("Yamitracker", "\320\241\320\276\321\205\321\200\320\260\320\275\320\270\321\202\321\214 \320\267\320\260\320\277\320\270\321\201\321\214", nullptr)); + convertButton->setText(QCoreApplication::translate("Yamitracker", "\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr)); + selectFileButton->setText(QCoreApplication::translate("Yamitracker", "\320\222\321\213\320\261\321\200\320\260\321\202\321\214 \321\204\320\260\320\271\320\273 \320\264\320\273\321\217 \320\272\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\320\270", nullptr)); + playFileButton->setText(QCoreApplication::translate("Yamitracker", "\320\222\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\321\201\321\202\320\270 WAV", nullptr)); + groupBox_2->setTitle(QCoreApplication::translate("Yamitracker", "\320\240\320\260\320\261\320\276\321\202\320\260 \321\201 MIDI \321\204\320\260\320\271\320\273\320\260\320\274\320\270", nullptr)); + label->setText(QCoreApplication::translate("Yamitracker", "\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202:", nullptr)); + refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr)); + loadMidiButton->setText(QCoreApplication::translate("Yamitracker", "\320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214 MIDI \321\204\320\260\320\271\320\273", nullptr)); + playMidiButton->setText(QCoreApplication::translate("Yamitracker", "\320\222\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\321\201\321\202\320\270 MIDI", nullptr)); + recordFromMidiButton->setText(QCoreApplication::translate("Yamitracker", "\320\227\320\260\320\277\320\270\321\201\320\260\321\202\321\214 \320\270\320\267 MIDI", nullptr)); + label_2->setText(QCoreApplication::translate("Yamitracker", "\320\224\320\276\321\201\321\202\321\203\320\277\320\275\321\213\320\265 MIDI \321\204\320\260\320\271\320\273\321\213:", nullptr)); + key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr)); + key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr)); + key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr)); + key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr)); + key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr)); + key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr)); + key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr)); + key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr)); + key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr)); + key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr)); + key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr)); + key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr)); + key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr)); + key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr)); + key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr)); + key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr)); + key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr)); + key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr)); + key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr)); + key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr)); + key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr)); + key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr)); + key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr)); + key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr)); + key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr)); + key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr)); + key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr)); + key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr)); + key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr)); + key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr)); + key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr)); + key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr)); + key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr)); + key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr)); + key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr)); + key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr)); + key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr)); + key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr)); + key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr)); + key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr)); + key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr)); + key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr)); + key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr)); + key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr)); + key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr)); + key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr)); + key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr)); + key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr)); + key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr)); + key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr)); + key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr)); + key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr)); + key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr)); + key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr)); + key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr)); + key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr)); + key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr)); + key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr)); + key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr)); + key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr)); + key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class Yamitracker: public Ui_Yamitracker {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_YAMITRACKER_H diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/yamitracker.o b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/yamitracker.o new file mode 100644 index 0000000..ff568e1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build/yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/.qmake.stash b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/Makefile b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/Makefile new file mode 100644 index 0000000..d726afa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/Makefile @@ -0,0 +1,442 @@ +############################################################################# +# Makefile for building: Yamitracker +# Generated by qmake (3.1) (Qt 5.15.13) +# Project: ../Yamitracker.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Yamitracker1.0.0 +DISTDIR = /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/.tmp/Yamitracker1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp moc_yamitracker.cpp \ + moc_brrconverter.cpp +OBJECTS = main.o \ + yamitracker.o \ + simplewavwriter.o \ + brrconverter.o \ + moc_yamitracker.o \ + moc_brrconverter.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../Yamitracker.pro ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp +QMAKE_TARGET = Yamitracker +DESTDIR = +TARGET = Yamitracker + + +first: all +####### Build rules + +Yamitracker: ui_yamitracker.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../Yamitracker.pro + $(QMAKE) -o Makefile ../Yamitracker.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../Yamitracker.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../Yamitracker.pro + +qmake_all: FORCE + + +all: Makefile Yamitracker + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.h ../simplewavwriter.h ../brrconverter.h $(DISTDIR)/ + $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplewavwriter.cpp ../brrconverter.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_yamitracker.cpp moc_brrconverter.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_yamitracker.cpp moc_brrconverter.cpp +moc_yamitracker.cpp: ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp + +moc_brrconverter.cpp: ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../brrconverter.h -o moc_brrconverter.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_yamitracker.h +compiler_uic_clean: + -$(DEL_FILE) ui_yamitracker.h +ui_yamitracker.h: ../yamitracker.ui \ + /usr/lib/qt5/bin/uic + /usr/lib/qt5/bin/uic ../yamitracker.ui -o ui_yamitracker.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: ../main.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp + +yamitracker.o: ../yamitracker.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + ui_yamitracker.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp + +simplewavwriter.o: ../simplewavwriter.cpp ../simplewavwriter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplewavwriter.o ../simplewavwriter.cpp + +brrconverter.o: ../brrconverter.cpp ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o brrconverter.o ../brrconverter.cpp + +moc_yamitracker.o: moc_yamitracker.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp + +moc_brrconverter.o: moc_brrconverter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_brrconverter.o moc_brrconverter.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin + $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/Yamitracker b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/Yamitracker new file mode 100755 index 0000000..984eec7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/Yamitracker differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/brrconverter.o b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/brrconverter.o new file mode 100644 index 0000000..149ec06 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/main.o b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/main.o new file mode 100644 index 0000000..edc2e30 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/main.o differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/moc_brrconverter.cpp b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/moc_brrconverter.cpp new file mode 100644 index 0000000..a11b9fc --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/moc_brrconverter.cpp @@ -0,0 +1,95 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'brrconverter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../brrconverter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'brrconverter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_BrrConverter_t { + QByteArrayData data[1]; + char stringdata0[13]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_BrrConverter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_BrrConverter_t qt_meta_stringdata_BrrConverter = { + { +QT_MOC_LITERAL(0, 0, 12) // "BrrConverter" + + }, + "BrrConverter" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_BrrConverter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void BrrConverter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject BrrConverter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_BrrConverter.data, + qt_meta_data_BrrConverter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *BrrConverter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *BrrConverter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_BrrConverter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int BrrConverter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/moc_brrconverter.o b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/moc_brrconverter.o new file mode 100644 index 0000000..fa3b784 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/moc_brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/moc_predefs.h b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/moc_predefs.h new file mode 100644 index 0000000..f29ad61 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/moc_predefs.h @@ -0,0 +1,464 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __cpp_nontype_template_parameter_auto 201606L +#define __UINT_LEAST16_MAX__ 0xffff +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __ATOMIC_ACQUIRE 2 +#define __FLT128_MAX_10_EXP__ 4932 +#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __cpp_aggregate_nsdmi 201304L +#define __UINT_LEAST8_TYPE__ unsigned char +#define __SIZEOF_FLOAT80__ 16 +#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 0xff +#define __SCHAR_WIDTH__ 8 +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 201411L +#define __BFLT16_MIN_10_EXP__ (-37) +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __WCHAR_MAX__ 0x7fffffff +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __cpp_binary_literals 201304L +#define __FLT64_DECIMAL_DIG__ 17 +#define __CET__ 3 +#define __cpp_noexcept_function_type 201510L +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __cpp_variadic_templates 200704L +#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __cpp_variable_templates 201304L +#define __FLT32X_MAX_EXP__ 1024 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __FLT32_HAS_DENORM__ 1 +#define __UINT_FAST8_MAX__ 0xff +#define __cpp_rvalue_reference 200610L +#define __cpp_nested_namespace_definitions 201411L +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __LDBL_HAS_INFINITY__ 1 +#define __INT_LEAST8_WIDTH__ 8 +#define __cpp_variadic_using 201611L +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL +#define __INT_LEAST8_MAX__ 0x7f +#define __cpp_attributes 200809L +#define __cpp_capture_star_this 201603L +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __FLT64X_MAX_10_EXP__ 4932 +#define __cpp_if_constexpr 201606L +#define __BFLT16_MAX_10_EXP__ 38 +#define __BFLT16_MAX_EXP__ 128 +#define __LDBL_IS_IEC_60559__ 1 +#define __FLT64X_HAS_QUIET_NAN__ 1 +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +#define __UINTMAX_TYPE__ long unsigned int +#define __cpp_nsdmi 200809L +#define __BFLT16_DECIMAL_DIG__ 4 +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __OPTIMIZE__ 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +#define __FLT128_MIN_EXP__ (-16381) +#define __WINT_MIN__ 0U +#define __FLT128_MIN_10_EXP__ (-4931) +#define __FLT32X_IS_IEC_60559__ 1 +#define __INT_LEAST16_WIDTH__ 16 +#define __SCHAR_MAX__ 0x7f +#define __FLT128_MANT_DIG__ 113 +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __INT64_C(c) c ## L +#define __SSP_STRONG__ 3 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __ATOMIC_SEQ_CST 5 +#define _FORTIFY_SOURCE 3 +#define __unix 1 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MANT_DIG__ 53 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __cpp_aligned_new 201606L +#define __FLT32_MAX_10_EXP__ 38 +#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +#define __STDC_HOSTED__ 1 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype_auto 201304L +#define __DBL_DIG__ 15 +#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __FLT32_IS_IEC_60559__ 1 +#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +#define __DBL_IS_IEC_60559__ 1 +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806L +#define __cpp_enumerator_attributes 201411L +#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +#define __FLT32X_HAS_INFINITY__ 1 +#define __unix__ 1 +#define __INT_WIDTH__ 32 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __DECIMAL_DIG__ 21 +#define __STDC_IEC_559_COMPLEX__ 1 +#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +#define __gnu_linux__ 1 +#define __INT16_MAX__ 0x7fff +#define __FLT64_MIN_EXP__ (-1021) +#define __FLT64X_MIN_10_EXP__ (-4931) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __cpp_return_type_deduction 201304L +#define __FLT16_MIN_EXP__ (-13) +#define __FLT64_MANT_DIG__ 53 +#define __FLT64X_MANT_DIG__ 64 +#define __BFLT16_DIG__ 2 +#define __GNUC__ 13 +#define __GXX_RTTI 1 +#define __pie__ 2 +#define __MMX__ 1 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __BIGGEST_ALIGNMENT__ 16 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __BFLT16_IS_IEC_60559__ 0 +#define __FLT16_MAX_10_EXP__ 4 +#define __cpp_delegating_constructors 200604L +#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __cpp_raw_strings 200710L +#define __INT_FAST32_MAX__ 0x7fffffffffffffffL +#define __DBL_HAS_INFINITY__ 1 +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __SIZEOF_FLOAT__ 4 +#define __HAVE_SPECULATION_SAFE_VALUE 1 +#define __cpp_fold_expressions 201603L +#define __DEC32_MIN_EXP__ (-94) +#define __INTPTR_WIDTH__ 64 +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ long int +#define __MMX_WITH_SSE__ 1 +#define __LDBL_HAS_DENORM__ 1 +#define __SEG_GS 1 +#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +#define __cplusplus 201703L +#define __cpp_ref_qualifiers 200710L +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610L +#define __DBL_MAX_EXP__ 1024 +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __FLT16_DECIMAL_DIG__ 5 +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 0x7fffffffffffffffL +#define __amd64 1 +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __GNUG__ 13 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 8 +#define __BFLT16_HAS_INFINITY__ 1 +#define __FLT64X_MIN_EXP__ (-16381) +#define __SIZEOF_WINT_T__ 4 +#define __FLT32X_DIG__ 15 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806L +#define __FLT32_MAX_EXP__ 128 +#define __cpp_hex_float 201603L +#define __GXX_ABI_VERSION 1018 +#define __FLT_MIN_EXP__ (-125) +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __x86_64 1 +#define __cpp_lambdas 200907L +#define __INT_FAST64_TYPE__ long int +#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +#define __cpp_template_auto 201606L +#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __SIZEOF_POINTER__ 8 +#define __SIZE_TYPE__ long unsigned int +#define __LP64__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +#define __LDBL_MAX_EXP__ 16384 +#define __DECIMAL_BID_FORMAT__ 1 +#define __FLT64_MIN_10_EXP__ (-307) +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT64X_DECIMAL_DIG__ 21 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __FLT128_HAS_INFINITY__ 1 +#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __FLT_DIG__ 6 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 21 +#define __VERSION__ "13.3.0" +#define __UINT64_C(c) c ## UL +#define __cpp_unicode_characters 201411L +#define _STDC_PREDEF_H 1 +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT128_MAX_EXP__ 16384 +#define __FLT32_MANT_DIG__ 24 +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT32X_MIN_EXP__ (-1021) +#define __STDC_IEC_60559_COMPLEX__ 201404L +#define __cpp_aggregate_bases 201603L +#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +#define __FLT128_HAS_DENORM__ 1 +#define __FLT32_DECIMAL_DIG__ 9 +#define __FLT128_DIG__ 33 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __DEC128_MAX_EXP__ 6145 +#define unix 1 +#define __DBL_HAS_DENORM__ 1 +#define __cpp_rtti 199711L +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __FLT_IS_IEC_60559__ 1 +#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +#define __FLT64X_DIG__ 18 +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309L +#define __ELF__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __UINT32_TYPE__ unsigned int +#define __BFLT16_HAS_QUIET_NAN__ 1 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +#define __UINTMAX_C(c) c ## UL +#define __FLT16_DIG__ 3 +#define __k8 1 +#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __cpp_constexpr 201603L +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +#define __STDC_IEC_60559_BFP__ 201404L +#define __SIZEOF_PTRDIFF_T__ 8 +#define __FLT64X_HAS_INFINITY__ 1 +#define __SIZEOF_LONG__ 8 +#define __LDBL_DIG__ 18 +#define __FLT64_IS_IEC_60559__ 1 +#define __x86_64__ 1 +#define __FLT16_IS_IEC_60559__ 1 +#define __FLT16_MAX_EXP__ 16 +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __INT_FAST16_MAX__ 0x7fffffffffffffffL +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __LONG_MAX__ 0x7fffffffffffffffL +#define __FLT64X_HAS_DENORM__ 1 +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" +#define __cpp_unicode_literals 200710L +#define __UINT_FAST16_TYPE__ long unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __INT_FAST32_WIDTH__ 64 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __SIZE_WIDTH__ 64 +#define __SEG_FS 1 +#define __INT_LEAST16_MAX__ 0x7fff +#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __DEC64_MANT_DIG__ 16 +#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +#define __cpp_structured_bindings 201606L +#define __SIZEOF_INT__ 4 +#define __DEC32_MAX_EXP__ 97 +#define __INT_FAST8_MAX__ 0x7f +#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __INTPTR_MAX__ 0x7fffffffffffffffL +#define __cpp_sized_deallocation 201309L +#define __cpp_guaranteed_copy_elision 201606L +#define linux 1 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __EXCEPTIONS 1 +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 64 +#define __LDBL_MANT_DIG__ 64 +#define __cpp_range_based_for 201603L +#define __INT_FAST16_WIDTH__ 64 +#define __FLT64_HAS_INFINITY__ 1 +#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __FLT16_HAS_INFINITY__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __cpp_nontype_template_args 201411L +#define __DEC32_MANT_DIG__ 7 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __pic__ 2 +#define __UINTPTR_MAX__ 0xffffffffffffffffUL +#define __INT_FAST64_WIDTH__ 64 +#define __cpp_decltype 200707L +#define __INT_FAST64_MAX__ 0x7fffffffffffffffL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +#define __FLT32_HAS_INFINITY__ 1 +#define __FLT64X_MAX_EXP__ 16384 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __cpp_inline_variables 201606L +#define __BFLT16_MIN_EXP__ (-125) +#define __INT_MAX__ 0x7fffffff +#define __linux__ 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __cpp_inheriting_constructors 201511L +#define __SIZEOF_FLOAT128__ 16 +#define __BFLT16_MANT_DIG__ 8 +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __amd64__ 1 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST64_WIDTH__ 64 +#define __FLT32X_MAX_10_EXP__ 308 +#define __cpp_namespace_attributes 201411L +#define __SIZEOF_INT128__ 16 +#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +#define __FLT64X_IS_IEC_60559__ 1 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +#define __INT_LEAST32_TYPE__ int +#define _LP64 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __SIZEOF_WCHAR_T__ 4 +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __FLT128_HAS_QUIET_NAN__ 1 +#define __INTMAX_MAX__ 0x7fffffffffffffffL +#define __INT_FAST8_TYPE__ signed char +#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +#define __STDCPP_THREADS__ 1 +#define __BFLT16_HAS_DENORM__ 1 +#define __GNUC_STDC_INLINE__ 1 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +#define __FLT16_HAS_DENORM__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __FXSR__ 1 +#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __INTMAX_WIDTH__ 64 +#define __cpp_runtime_arrays 198712L +#define __FLT32_DIG__ 6 +#define __UINT64_TYPE__ long unsigned int +#define __UINT32_C(c) c ## U +#define __cpp_alias_templates 200704L +#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +#define __FLT128_IS_IEC_60559__ 1 +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 64 +#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +#define __PIC__ 2 +#define __INT32_MAX__ 0x7fffffff +#define __UINT_FAST32_TYPE__ long unsigned int +#define __FLT16_MANT_DIG__ 11 +#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F +#define __SSE2__ 1 +#define __cpp_deduction_guides 201703L +#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711L +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long int +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 3 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __UINTMAX_MAX__ 0xffffffffffffffffUL +#define __PIE__ 2 +#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +#define __cpp_template_template_args 201611L +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +#define __INT16_C(c) c +#define __STDC__ 1 +#define __PTRDIFF_TYPE__ long int +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __cpp_generic_lambdas 201304L +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809L +#define __FLT128_DECIMAL_DIG__ 36 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL +#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __SIZE_MAX__ 0xffffffffffffffffUL +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __cpp_init_captures 201304L +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/moc_yamitracker.cpp b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/moc_yamitracker.cpp new file mode 100644 index 0000000..868459e --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/moc_yamitracker.cpp @@ -0,0 +1,360 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'yamitracker.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../yamitracker.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'yamitracker.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SerialReader_t { + QByteArrayData data[13]; + char stringdata0[145]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SerialReader_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = { + { +QT_MOC_LITERAL(0, 0, 12), // "SerialReader" +QT_MOC_LITERAL(1, 13, 14), // "noteOnReceived" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 4), // "note" +QT_MOC_LITERAL(4, 34, 8), // "velocity" +QT_MOC_LITERAL(5, 43, 15), // "noteOffReceived" +QT_MOC_LITERAL(6, 59, 5), // "error" +QT_MOC_LITERAL(7, 65, 7), // "message" +QT_MOC_LITERAL(8, 73, 23), // "connectionStatusChanged" +QT_MOC_LITERAL(9, 97, 9), // "connected" +QT_MOC_LITERAL(10, 107, 18), // "deviceInfoReceived" +QT_MOC_LITERAL(11, 126, 12), // "manufacturer" +QT_MOC_LITERAL(12, 139, 5) // "model" + + }, + "SerialReader\0noteOnReceived\0\0note\0" + "velocity\0noteOffReceived\0error\0message\0" + "connectionStatusChanged\0connected\0" + "deviceInfoReceived\0manufacturer\0model" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SerialReader[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 5, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 2, 39, 2, 0x06 /* Public */, + 5, 1, 44, 2, 0x06 /* Public */, + 6, 1, 47, 2, 0x06 /* Public */, + 8, 1, 50, 2, 0x06 /* Public */, + 10, 2, 53, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, QMetaType::Bool, 9, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 11, 12, + + 0 // eod +}; + +void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->noteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->noteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->error((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->connectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: _t->deviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SerialReader::*)(const QString & , int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOnReceived)) { + *result = 0; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOffReceived)) { + *result = 1; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::error)) { + *result = 2; + return; + } + } + { + using _t = void (SerialReader::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::connectionStatusChanged)) { + *result = 3; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & , const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::deviceInfoReceived)) { + *result = 4; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SerialReader::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SerialReader.data, + qt_meta_data_SerialReader, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SerialReader::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SerialReader::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0)) + return static_cast(this); + return QThread::qt_metacast(_clname); +} + +int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QThread::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} + +// SIGNAL 0 +void SerialReader::noteOnReceived(const QString & _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SerialReader::noteOffReceived(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void SerialReader::error(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void SerialReader::connectionStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} + +// SIGNAL 4 +void SerialReader::deviceInfoReceived(const QString & _t1, const QString & _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 4, _a); +} +struct qt_meta_stringdata_Yamitracker_t { + QByteArrayData data[19]; + char stringdata0[264]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_Yamitracker_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = { + { +QT_MOC_LITERAL(0, 0, 11), // "Yamitracker" +QT_MOC_LITERAL(1, 12, 16), // "onNoteOnReceived" +QT_MOC_LITERAL(2, 29, 0), // "" +QT_MOC_LITERAL(3, 30, 4), // "note" +QT_MOC_LITERAL(4, 35, 8), // "velocity" +QT_MOC_LITERAL(5, 44, 17), // "onNoteOffReceived" +QT_MOC_LITERAL(6, 62, 7), // "onError" +QT_MOC_LITERAL(7, 70, 7), // "message" +QT_MOC_LITERAL(8, 78, 13), // "onPlayClicked" +QT_MOC_LITERAL(9, 92, 13), // "onStopClicked" +QT_MOC_LITERAL(10, 106, 21), // "onConvertToBrrClicked" +QT_MOC_LITERAL(11, 128, 18), // "clearStatusMessage" +QT_MOC_LITERAL(12, 147, 25), // "onConnectionStatusChanged" +QT_MOC_LITERAL(13, 173, 9), // "connected" +QT_MOC_LITERAL(14, 183, 16), // "attemptReconnect" +QT_MOC_LITERAL(15, 200, 20), // "onDeviceInfoReceived" +QT_MOC_LITERAL(16, 221, 12), // "manufacturer" +QT_MOC_LITERAL(17, 234, 5), // "model" +QT_MOC_LITERAL(18, 240, 23) // "onRefreshDevicesClicked" + + }, + "Yamitracker\0onNoteOnReceived\0\0note\0" + "velocity\0onNoteOffReceived\0onError\0" + "message\0onPlayClicked\0onStopClicked\0" + "onConvertToBrrClicked\0clearStatusMessage\0" + "onConnectionStatusChanged\0connected\0" + "attemptReconnect\0onDeviceInfoReceived\0" + "manufacturer\0model\0onRefreshDevicesClicked" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_Yamitracker[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 11, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 2, 69, 2, 0x08 /* Private */, + 5, 1, 74, 2, 0x08 /* Private */, + 6, 1, 77, 2, 0x08 /* Private */, + 8, 0, 80, 2, 0x08 /* Private */, + 9, 0, 81, 2, 0x08 /* Private */, + 10, 0, 82, 2, 0x08 /* Private */, + 11, 0, 83, 2, 0x08 /* Private */, + 12, 1, 84, 2, 0x08 /* Private */, + 14, 0, 87, 2, 0x08 /* Private */, + 15, 2, 88, 2, 0x08 /* Private */, + 18, 0, 93, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Bool, 13, + QMetaType::Void, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 16, 17, + QMetaType::Void, + + 0 // eod +}; + +void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onNoteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->onNoteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->onError((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->onPlayClicked(); break; + case 4: _t->onStopClicked(); break; + case 5: _t->onConvertToBrrClicked(); break; + case 6: _t->clearStatusMessage(); break; + case 7: _t->onConnectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 8: _t->attemptReconnect(); break; + case 9: _t->onDeviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + case 10: _t->onRefreshDevicesClicked(); break; + default: ; + } + } +} + +QT_INIT_METAOBJECT const QMetaObject Yamitracker::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_Yamitracker.data, + qt_meta_data_Yamitracker, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *Yamitracker::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *Yamitracker::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 11) + qt_static_metacall(this, _c, _id, _a); + _id -= 11; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 11) + *reinterpret_cast(_a[0]) = -1; + _id -= 11; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/moc_yamitracker.o b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/moc_yamitracker.o new file mode 100644 index 0000000..94c6f3d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/moc_yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_130314.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_130314.wav new file mode 100644 index 0000000..3e8acba Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_130314.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_130330.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_130330.wav new file mode 100644 index 0000000..9d43abb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_130330.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_130335.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_130335.wav new file mode 100644 index 0000000..f7ef2a0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_130335.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_130350.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_130350.wav new file mode 100644 index 0000000..2ec0a92 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_130350.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133027.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133027.wav new file mode 100644 index 0000000..7f87b07 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133027.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133032.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133032.wav new file mode 100644 index 0000000..fde0bfe Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133032.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133042.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133042.wav new file mode 100644 index 0000000..1097ef8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133042.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133048.brr b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133048.brr new file mode 100644 index 0000000..a475539 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133048.brr differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133048.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133048.wav new file mode 100644 index 0000000..c296e1b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133048.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133558.brr b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133558.brr new file mode 100644 index 0000000..940aec5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133558.brr differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133558.wav b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133558.wav new file mode 100644 index 0000000..512d392 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/recording_20251206_133558.wav differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/simplewavwriter.o b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/simplewavwriter.o new file mode 100644 index 0000000..46d7f52 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/simplewavwriter.o differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/ui_yamitracker.h b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/ui_yamitracker.h new file mode 100644 index 0000000..b1f1096 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/ui_yamitracker.h @@ -0,0 +1,625 @@ +/******************************************************************************** +** Form generated from reading UI file 'yamitracker.ui' +** +** Created by: Qt User Interface Compiler version 5.15.13 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_YAMITRACKER_H +#define UI_YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Yamitracker +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QLabel *statusLabel; + QLabel *deviceLabel; + QLabel *keysInfoLabel; + QProgressBar *volumeBar; + QHBoxLayout *controlLayout; + QPushButton *playButton; + QPushButton *stopButton; + QPushButton *convertButton; + QPushButton *refreshDevicesButton; + QWidget *pianoWidget; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *whiteKeysLayout; + QPushButton *key_C1; + QPushButton *key_D1; + QPushButton *key_E1; + QPushButton *key_F1; + QPushButton *key_G1; + QPushButton *key_A1; + QPushButton *key_B1; + QPushButton *key_C2; + QPushButton *key_D2; + QPushButton *key_E2; + QPushButton *key_F2; + QPushButton *key_G2; + QPushButton *key_A2; + QPushButton *key_B2; + QPushButton *key_C3; + QPushButton *key_D3; + QPushButton *key_E3; + QPushButton *key_F3; + QPushButton *key_G3; + QPushButton *key_A3; + QPushButton *key_B3; + QPushButton *key_C4; + QPushButton *key_D4; + QPushButton *key_E4; + QPushButton *key_F4; + QPushButton *key_G4; + QPushButton *key_A4; + QPushButton *key_B4; + QPushButton *key_C5; + QPushButton *key_D5; + QPushButton *key_E5; + QPushButton *key_F5; + QPushButton *key_G5; + QPushButton *key_A5; + QPushButton *key_B5; + QPushButton *key_C6; + QHBoxLayout *blackKeysLayout; + QSpacerItem *horizontalSpacer_1; + QPushButton *key_Cs1; + QPushButton *key_Ds1; + QSpacerItem *horizontalSpacer_2; + QPushButton *key_Fs1; + QPushButton *key_Gs1; + QPushButton *key_As1; + QSpacerItem *horizontalSpacer_3; + QPushButton *key_Cs2; + QPushButton *key_Ds2; + QSpacerItem *horizontalSpacer_4; + QPushButton *key_Fs2; + QPushButton *key_Gs2; + QPushButton *key_As2; + QSpacerItem *horizontalSpacer_5; + QPushButton *key_Cs3; + QPushButton *key_Ds3; + QSpacerItem *horizontalSpacer_6; + QPushButton *key_Fs3; + QPushButton *key_Gs3; + QPushButton *key_As3; + QSpacerItem *horizontalSpacer_7; + QPushButton *key_Cs4; + QPushButton *key_Ds4; + QSpacerItem *horizontalSpacer_8; + QPushButton *key_Fs4; + QPushButton *key_Gs4; + QPushButton *key_As4; + QSpacerItem *horizontalSpacer_9; + QPushButton *key_Cs5; + QPushButton *key_Ds5; + QSpacerItem *horizontalSpacer_10; + QPushButton *key_Fs5; + QPushButton *key_Gs5; + QPushButton *key_As5; + QSpacerItem *horizontalSpacer_11; + + void setupUi(QMainWindow *Yamitracker) + { + if (Yamitracker->objectName().isEmpty()) + Yamitracker->setObjectName(QString::fromUtf8("Yamitracker")); + Yamitracker->resize(1200, 600); + centralwidget = new QWidget(Yamitracker); + centralwidget->setObjectName(QString::fromUtf8("centralwidget")); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + statusLabel = new QLabel(centralwidget); + statusLabel->setObjectName(QString::fromUtf8("statusLabel")); + + verticalLayout->addWidget(statusLabel); + + deviceLabel = new QLabel(centralwidget); + deviceLabel->setObjectName(QString::fromUtf8("deviceLabel")); + + verticalLayout->addWidget(deviceLabel); + + keysInfoLabel = new QLabel(centralwidget); + keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel")); + + verticalLayout->addWidget(keysInfoLabel); + + volumeBar = new QProgressBar(centralwidget); + volumeBar->setObjectName(QString::fromUtf8("volumeBar")); + volumeBar->setValue(0); + + verticalLayout->addWidget(volumeBar); + + controlLayout = new QHBoxLayout(); + controlLayout->setObjectName(QString::fromUtf8("controlLayout")); + playButton = new QPushButton(centralwidget); + playButton->setObjectName(QString::fromUtf8("playButton")); + + controlLayout->addWidget(playButton); + + stopButton = new QPushButton(centralwidget); + stopButton->setObjectName(QString::fromUtf8("stopButton")); + + controlLayout->addWidget(stopButton); + + convertButton = new QPushButton(centralwidget); + convertButton->setObjectName(QString::fromUtf8("convertButton")); + + controlLayout->addWidget(convertButton); + + refreshDevicesButton = new QPushButton(centralwidget); + refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton")); + + controlLayout->addWidget(refreshDevicesButton); + + + verticalLayout->addLayout(controlLayout); + + pianoWidget = new QWidget(centralwidget); + pianoWidget->setObjectName(QString::fromUtf8("pianoWidget")); + verticalLayout_2 = new QVBoxLayout(pianoWidget); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + whiteKeysLayout = new QHBoxLayout(); + whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout")); + key_C1 = new QPushButton(pianoWidget); + key_C1->setObjectName(QString::fromUtf8("key_C1")); + + whiteKeysLayout->addWidget(key_C1); + + key_D1 = new QPushButton(pianoWidget); + key_D1->setObjectName(QString::fromUtf8("key_D1")); + + whiteKeysLayout->addWidget(key_D1); + + key_E1 = new QPushButton(pianoWidget); + key_E1->setObjectName(QString::fromUtf8("key_E1")); + + whiteKeysLayout->addWidget(key_E1); + + key_F1 = new QPushButton(pianoWidget); + key_F1->setObjectName(QString::fromUtf8("key_F1")); + + whiteKeysLayout->addWidget(key_F1); + + key_G1 = new QPushButton(pianoWidget); + key_G1->setObjectName(QString::fromUtf8("key_G1")); + + whiteKeysLayout->addWidget(key_G1); + + key_A1 = new QPushButton(pianoWidget); + key_A1->setObjectName(QString::fromUtf8("key_A1")); + + whiteKeysLayout->addWidget(key_A1); + + key_B1 = new QPushButton(pianoWidget); + key_B1->setObjectName(QString::fromUtf8("key_B1")); + + whiteKeysLayout->addWidget(key_B1); + + key_C2 = new QPushButton(pianoWidget); + key_C2->setObjectName(QString::fromUtf8("key_C2")); + + whiteKeysLayout->addWidget(key_C2); + + key_D2 = new QPushButton(pianoWidget); + key_D2->setObjectName(QString::fromUtf8("key_D2")); + + whiteKeysLayout->addWidget(key_D2); + + key_E2 = new QPushButton(pianoWidget); + key_E2->setObjectName(QString::fromUtf8("key_E2")); + + whiteKeysLayout->addWidget(key_E2); + + key_F2 = new QPushButton(pianoWidget); + key_F2->setObjectName(QString::fromUtf8("key_F2")); + + whiteKeysLayout->addWidget(key_F2); + + key_G2 = new QPushButton(pianoWidget); + key_G2->setObjectName(QString::fromUtf8("key_G2")); + + whiteKeysLayout->addWidget(key_G2); + + key_A2 = new QPushButton(pianoWidget); + key_A2->setObjectName(QString::fromUtf8("key_A2")); + + whiteKeysLayout->addWidget(key_A2); + + key_B2 = new QPushButton(pianoWidget); + key_B2->setObjectName(QString::fromUtf8("key_B2")); + + whiteKeysLayout->addWidget(key_B2); + + key_C3 = new QPushButton(pianoWidget); + key_C3->setObjectName(QString::fromUtf8("key_C3")); + + whiteKeysLayout->addWidget(key_C3); + + key_D3 = new QPushButton(pianoWidget); + key_D3->setObjectName(QString::fromUtf8("key_D3")); + + whiteKeysLayout->addWidget(key_D3); + + key_E3 = new QPushButton(pianoWidget); + key_E3->setObjectName(QString::fromUtf8("key_E3")); + + whiteKeysLayout->addWidget(key_E3); + + key_F3 = new QPushButton(pianoWidget); + key_F3->setObjectName(QString::fromUtf8("key_F3")); + + whiteKeysLayout->addWidget(key_F3); + + key_G3 = new QPushButton(pianoWidget); + key_G3->setObjectName(QString::fromUtf8("key_G3")); + + whiteKeysLayout->addWidget(key_G3); + + key_A3 = new QPushButton(pianoWidget); + key_A3->setObjectName(QString::fromUtf8("key_A3")); + + whiteKeysLayout->addWidget(key_A3); + + key_B3 = new QPushButton(pianoWidget); + key_B3->setObjectName(QString::fromUtf8("key_B3")); + + whiteKeysLayout->addWidget(key_B3); + + key_C4 = new QPushButton(pianoWidget); + key_C4->setObjectName(QString::fromUtf8("key_C4")); + + whiteKeysLayout->addWidget(key_C4); + + key_D4 = new QPushButton(pianoWidget); + key_D4->setObjectName(QString::fromUtf8("key_D4")); + + whiteKeysLayout->addWidget(key_D4); + + key_E4 = new QPushButton(pianoWidget); + key_E4->setObjectName(QString::fromUtf8("key_E4")); + + whiteKeysLayout->addWidget(key_E4); + + key_F4 = new QPushButton(pianoWidget); + key_F4->setObjectName(QString::fromUtf8("key_F4")); + + whiteKeysLayout->addWidget(key_F4); + + key_G4 = new QPushButton(pianoWidget); + key_G4->setObjectName(QString::fromUtf8("key_G4")); + + whiteKeysLayout->addWidget(key_G4); + + key_A4 = new QPushButton(pianoWidget); + key_A4->setObjectName(QString::fromUtf8("key_A4")); + + whiteKeysLayout->addWidget(key_A4); + + key_B4 = new QPushButton(pianoWidget); + key_B4->setObjectName(QString::fromUtf8("key_B4")); + + whiteKeysLayout->addWidget(key_B4); + + key_C5 = new QPushButton(pianoWidget); + key_C5->setObjectName(QString::fromUtf8("key_C5")); + + whiteKeysLayout->addWidget(key_C5); + + key_D5 = new QPushButton(pianoWidget); + key_D5->setObjectName(QString::fromUtf8("key_D5")); + + whiteKeysLayout->addWidget(key_D5); + + key_E5 = new QPushButton(pianoWidget); + key_E5->setObjectName(QString::fromUtf8("key_E5")); + + whiteKeysLayout->addWidget(key_E5); + + key_F5 = new QPushButton(pianoWidget); + key_F5->setObjectName(QString::fromUtf8("key_F5")); + + whiteKeysLayout->addWidget(key_F5); + + key_G5 = new QPushButton(pianoWidget); + key_G5->setObjectName(QString::fromUtf8("key_G5")); + + whiteKeysLayout->addWidget(key_G5); + + key_A5 = new QPushButton(pianoWidget); + key_A5->setObjectName(QString::fromUtf8("key_A5")); + + whiteKeysLayout->addWidget(key_A5); + + key_B5 = new QPushButton(pianoWidget); + key_B5->setObjectName(QString::fromUtf8("key_B5")); + + whiteKeysLayout->addWidget(key_B5); + + key_C6 = new QPushButton(pianoWidget); + key_C6->setObjectName(QString::fromUtf8("key_C6")); + + whiteKeysLayout->addWidget(key_C6); + + + verticalLayout_2->addLayout(whiteKeysLayout); + + blackKeysLayout = new QHBoxLayout(); + blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout")); + horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_1); + + key_Cs1 = new QPushButton(pianoWidget); + key_Cs1->setObjectName(QString::fromUtf8("key_Cs1")); + + blackKeysLayout->addWidget(key_Cs1); + + key_Ds1 = new QPushButton(pianoWidget); + key_Ds1->setObjectName(QString::fromUtf8("key_Ds1")); + + blackKeysLayout->addWidget(key_Ds1); + + horizontalSpacer_2 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_2); + + key_Fs1 = new QPushButton(pianoWidget); + key_Fs1->setObjectName(QString::fromUtf8("key_Fs1")); + + blackKeysLayout->addWidget(key_Fs1); + + key_Gs1 = new QPushButton(pianoWidget); + key_Gs1->setObjectName(QString::fromUtf8("key_Gs1")); + + blackKeysLayout->addWidget(key_Gs1); + + key_As1 = new QPushButton(pianoWidget); + key_As1->setObjectName(QString::fromUtf8("key_As1")); + + blackKeysLayout->addWidget(key_As1); + + horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_3); + + key_Cs2 = new QPushButton(pianoWidget); + key_Cs2->setObjectName(QString::fromUtf8("key_Cs2")); + + blackKeysLayout->addWidget(key_Cs2); + + key_Ds2 = new QPushButton(pianoWidget); + key_Ds2->setObjectName(QString::fromUtf8("key_Ds2")); + + blackKeysLayout->addWidget(key_Ds2); + + horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_4); + + key_Fs2 = new QPushButton(pianoWidget); + key_Fs2->setObjectName(QString::fromUtf8("key_Fs2")); + + blackKeysLayout->addWidget(key_Fs2); + + key_Gs2 = new QPushButton(pianoWidget); + key_Gs2->setObjectName(QString::fromUtf8("key_Gs2")); + + blackKeysLayout->addWidget(key_Gs2); + + key_As2 = new QPushButton(pianoWidget); + key_As2->setObjectName(QString::fromUtf8("key_As2")); + + blackKeysLayout->addWidget(key_As2); + + horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_5); + + key_Cs3 = new QPushButton(pianoWidget); + key_Cs3->setObjectName(QString::fromUtf8("key_Cs3")); + + blackKeysLayout->addWidget(key_Cs3); + + key_Ds3 = new QPushButton(pianoWidget); + key_Ds3->setObjectName(QString::fromUtf8("key_Ds3")); + + blackKeysLayout->addWidget(key_Ds3); + + horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_6); + + key_Fs3 = new QPushButton(pianoWidget); + key_Fs3->setObjectName(QString::fromUtf8("key_Fs3")); + + blackKeysLayout->addWidget(key_Fs3); + + key_Gs3 = new QPushButton(pianoWidget); + key_Gs3->setObjectName(QString::fromUtf8("key_Gs3")); + + blackKeysLayout->addWidget(key_Gs3); + + key_As3 = new QPushButton(pianoWidget); + key_As3->setObjectName(QString::fromUtf8("key_As3")); + + blackKeysLayout->addWidget(key_As3); + + horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_7); + + key_Cs4 = new QPushButton(pianoWidget); + key_Cs4->setObjectName(QString::fromUtf8("key_Cs4")); + + blackKeysLayout->addWidget(key_Cs4); + + key_Ds4 = new QPushButton(pianoWidget); + key_Ds4->setObjectName(QString::fromUtf8("key_Ds4")); + + blackKeysLayout->addWidget(key_Ds4); + + horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_8); + + key_Fs4 = new QPushButton(pianoWidget); + key_Fs4->setObjectName(QString::fromUtf8("key_Fs4")); + + blackKeysLayout->addWidget(key_Fs4); + + key_Gs4 = new QPushButton(pianoWidget); + key_Gs4->setObjectName(QString::fromUtf8("key_Gs4")); + + blackKeysLayout->addWidget(key_Gs4); + + key_As4 = new QPushButton(pianoWidget); + key_As4->setObjectName(QString::fromUtf8("key_As4")); + + blackKeysLayout->addWidget(key_As4); + + horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_9); + + key_Cs5 = new QPushButton(pianoWidget); + key_Cs5->setObjectName(QString::fromUtf8("key_Cs5")); + + blackKeysLayout->addWidget(key_Cs5); + + key_Ds5 = new QPushButton(pianoWidget); + key_Ds5->setObjectName(QString::fromUtf8("key_Ds5")); + + blackKeysLayout->addWidget(key_Ds5); + + horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_10); + + key_Fs5 = new QPushButton(pianoWidget); + key_Fs5->setObjectName(QString::fromUtf8("key_Fs5")); + + blackKeysLayout->addWidget(key_Fs5); + + key_Gs5 = new QPushButton(pianoWidget); + key_Gs5->setObjectName(QString::fromUtf8("key_Gs5")); + + blackKeysLayout->addWidget(key_Gs5); + + key_As5 = new QPushButton(pianoWidget); + key_As5->setObjectName(QString::fromUtf8("key_As5")); + + blackKeysLayout->addWidget(key_As5); + + horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_11); + + + verticalLayout_2->addLayout(blackKeysLayout); + + + verticalLayout->addWidget(pianoWidget); + + Yamitracker->setCentralWidget(centralwidget); + + retranslateUi(Yamitracker); + + QMetaObject::connectSlotsByName(Yamitracker); + } // setupUi + + void retranslateUi(QMainWindow *Yamitracker) + { + Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor", nullptr)); + statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr)); + deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr)); + keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr)); + playButton->setText(QCoreApplication::translate("Yamitracker", "\320\227\320\260\320\277\320\270\321\201\321\214 (Play)", nullptr)); + stopButton->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\276\320\277", nullptr)); + convertButton->setText(QCoreApplication::translate("Yamitracker", "\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr)); + refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr)); + key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr)); + key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr)); + key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr)); + key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr)); + key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr)); + key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr)); + key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr)); + key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr)); + key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr)); + key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr)); + key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr)); + key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr)); + key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr)); + key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr)); + key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr)); + key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr)); + key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr)); + key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr)); + key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr)); + key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr)); + key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr)); + key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr)); + key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr)); + key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr)); + key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr)); + key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr)); + key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr)); + key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr)); + key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr)); + key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr)); + key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr)); + key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr)); + key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr)); + key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr)); + key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr)); + key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr)); + key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr)); + key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr)); + key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr)); + key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr)); + key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr)); + key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr)); + key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr)); + key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr)); + key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr)); + key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr)); + key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr)); + key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr)); + key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr)); + key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr)); + key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr)); + key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr)); + key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr)); + key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr)); + key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr)); + key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr)); + key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr)); + key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr)); + key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr)); + key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr)); + key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class Yamitracker: public Ui_Yamitracker {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_YAMITRACKER_H diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/yamitracker.o b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/yamitracker.o new file mode 100644 index 0000000..f0f9d45 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/build_wav/yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/main.cpp b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/main.cpp new file mode 100644 index 0000000..b2ae5c4 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/main.cpp @@ -0,0 +1,23 @@ +#include "yamitracker.h" + +#include +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + QTranslator translator; + const QStringList uiLanguages = QLocale::system().uiLanguages(); + for (const QString &locale : uiLanguages) { + const QString baseName = "Yamitracker_" + QLocale(locale).name(); + if (translator.load(":/i18n/" + baseName)) { + a.installTranslator(&translator); + break; + } + } + Yamitracker w; + w.show(); + return a.exec(); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/simplewavwriter.cpp b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/simplewavwriter.cpp new file mode 100644 index 0000000..6afd3a9 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/simplewavwriter.cpp @@ -0,0 +1,419 @@ +#include "simplewavwriter.h" +#include +#include +#include +#include +#include + +SimpleWavWriter::SimpleWavWriter() + : m_isRecording(false) + , m_startTime(0) + , m_sampleRate(16000) + , m_bassVolumeMultiplier(2.0) + , m_playbackSpeed(1.0) +{ + std::srand(std::time(nullptr)); +} + +SimpleWavWriter::~SimpleWavWriter() +{ +} + +bool SimpleWavWriter::startRecording(int sampleRate) +{ + if (m_isRecording) { + stopRecording(); + } + + m_events.clear(); + m_isRecording = true; + m_startTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + m_sampleRate = sampleRate; + + qDebug() << "Started WAV recording, sample rate:" << m_sampleRate; + return true; +} + +bool SimpleWavWriter::stopRecording() +{ + if (!m_isRecording) { + return false; + } + + m_isRecording = false; + qDebug() << "Stopped WAV recording, events count:" << m_events.size(); + return true; +} + +bool SimpleWavWriter::saveToFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::WriteOnly)) { + qDebug() << "Cannot open file for writing:" << filename; + return false; + } + + QDataStream stream(&file); + stream.setByteOrder(QDataStream::LittleEndian); + + QByteArray audioData; + QDataStream audioStream(&audioData, QIODevice::WriteOnly); + audioStream.setByteOrder(QDataStream::LittleEndian); + + writeWavData(audioStream); + + writeWavHeader(stream, audioData.size()); + + stream.writeRawData(audioData.constData(), audioData.size()); + + file.close(); + qDebug() << "WAV file saved:" << filename << "size:" << audioData.size() << "bytes"; + return true; +} + +void SimpleWavWriter::addNote(double time, int note, int velocity, double duration, int instrument) +{ + if (!m_isRecording) return; + + WavEvent event; + event.time = time; + event.note = note; + event.velocity = velocity; + event.duration = duration * m_sampleRate; + event.instrument = instrument; + + m_events.append(event); +} + +void SimpleWavWriter::addSilence(double duration) +{ + if (!m_isRecording) return; + + WavEvent event; + event.time = -1; // Флаг тишины + event.note = 0; + event.velocity = 0; + event.duration = duration * m_sampleRate; + event.instrument = 0; + + m_events.append(event); +} + +void SimpleWavWriter::clear() +{ + m_events.clear(); + m_isRecording = false; +} + +WaveformType SimpleWavWriter::getWaveformForInstrument(int instrument) +{ + // Определяем волновую форму по типу инструмента + if (instrument == 1) return WAVEFORM_SINE; // CrandPno - синус + if (instrument == 2) return WAVEFORM_SQUARE; // BritePno - прямоугольная + if (instrument == 3 || instrument == 6) return WAVEFORM_SQUARE; // Harpsi - прямоугольная + if (instrument == 25 || instrument == 27) return WAVEFORM_TRIANGLE; // Гитары - треугольная + if (instrument >= 28 && instrument <= 40) return WAVEFORM_SAWTOOTH; // Басы - пилообразная + if (instrument == 48 || instrument == 49) return WAVEFORM_SINE; // Струнные - синус + if (instrument == 81) return WAVEFORM_TRIANGLE; // Саксофон - треугольная + if (instrument == 89) return WAVEFORM_SINE; // SoftPad - синус + if (instrument >= 95 && instrument <= 100) return WAVEFORM_SQUARE; // Bright - прямоугольная + + return WAVEFORM_SINE; // По умолчанию +} + +double SimpleWavWriter::getFilterCutoffForInstrument(int instrument) +{ + // Частота среза фильтра + if (instrument >= 28 && instrument <= 40) return 400.0; // Бас - низкие частоты + if (instrument == 1) return 1000.0; // Пианино + if (instrument == 2) return 2000.0; // Яркое пианино + if (instrument == 3 || instrument == 6) return 1500.0; // Клавесин + if (instrument == 25 || instrument == 27) return 800.0; // Гитары + if (instrument == 81) return 600.0; // Саксофон + return 1000.0; // По умолчанию +} + +double SimpleWavWriter::getAttackForInstrument(int instrument) +{ + // Время атаки + if (instrument >= 28 && instrument <= 40) return 0.1; // Бас - медленная атака + if (instrument == 1) return 0.05; // Пианино + if (instrument == 2) return 0.02; // Яркое пианино - быстрая атака + if (instrument == 3 || instrument == 6) return 0.01; // Клавесин - очень быстрая + if (instrument == 81) return 0.08; // Саксофон + return 0.05; +} + +double SimpleWavWriter::getDecayForInstrument(int instrument) +{ + // Время спада + if (instrument >= 28 && instrument <= 40) return 0.2; // Бас + if (instrument == 1) return 0.1; // Пианино + if (instrument == 2) return 0.05; // Яркое пианино + if (instrument == 3 || instrument == 6) return 0.02; // Клавесин + return 0.1; +} + +double SimpleWavWriter::getSustainForInstrument(int instrument) +{ + // Уровень сустейна + if (instrument >= 28 && instrument <= 40) return 0.8; // Бас - высокий сустейн + if (instrument == 1) return 0.7; // Пианино + if (instrument == 2) return 0.6; // Яркое пианино + if (instrument == 3 || instrument == 6) return 0.5; // Клавесин - быстрый спад + if (instrument == 81) return 0.9; // Саксофон - длинный сустейн + return 0.7; +} + +double SimpleWavWriter::getReleaseForInstrument(int instrument) +{ + // Время релиза + if (instrument >= 28 && instrument <= 40) return 0.3; // Бас - длинный релиз + if (instrument == 1) return 0.2; // Пианино + if (instrument == 2) return 0.1; // Яркое пианино + if (instrument == 3 || instrument == 6) return 0.05; // Клавесин - короткий + if (instrument == 81) return 0.4; // Саксофон - длинный + return 0.2; +} + +void SimpleWavWriter::writeWavHeader(QDataStream &stream, quint32 dataSize) +{ + // RIFF заголовок + stream.writeRawData("RIFF", 4); + quint32 chunkSize = 36 + dataSize; + stream << chunkSize; + stream.writeRawData("WAVE", 4); + + // fmt chunk + stream.writeRawData("fmt ", 4); + quint32 subchunk1Size = 16; + stream << subchunk1Size; + + quint16 audioFormat = 1; // PCM + stream << audioFormat; + + quint16 numChannels = 1; // Моно + stream << numChannels; + + quint32 sampleRate = m_sampleRate; + stream << sampleRate; + + quint32 byteRate = sampleRate * numChannels * 2; // 16-bit = 2 байта + stream << byteRate; + + quint16 blockAlign = numChannels * 2; + stream << blockAlign; + + quint16 bitsPerSample = 16; + stream << bitsPerSample; + + // data chunk + stream.writeRawData("data", 4); + stream << dataSize; +} + +void SimpleWavWriter::writeWavData(QDataStream &stream) +{ + if (m_events.isEmpty()) { + for (int i = 0; i < m_sampleRate * 2; i++) { + short sample = 0; + stream << sample; + } + return; + } + + // Применяем скорость воспроизведения + double timeScale = 1.0 / m_playbackSpeed; + + for (const WavEvent &event : m_events) { + if (event.time == -1) { + // Тишина + for (int i = 0; i < event.duration; i++) { + short sample = 0; + stream << sample; + } + } else { + // Нота + double frequency = noteToFrequency(event.note); + + // Определяем усиление для басовых нот + double volumeMultiplier = 1.0; + if (event.instrument >= 28 && event.instrument <= 40) { + volumeMultiplier = m_bassVolumeMultiplier; + } + + double baseAmplitude = (event.velocity / 127.0) * 0.7 * volumeMultiplier; + + // Параметры огибающей для этого инструмента + double attack = getAttackForInstrument(event.instrument); + double decay = getDecayForInstrument(event.instrument); + double sustain = getSustainForInstrument(event.instrument); + double release = getReleaseForInstrument(event.instrument); + + // Генерируем ноту + for (int i = 0; i < event.duration; i++) { + double noteTime = (double)i / m_sampleRate * timeScale; + double noteDuration = (double)event.duration / m_sampleRate * timeScale; + + // Огибающая ADSR + double envelope = adsrEnvelope(noteTime, noteDuration, attack, decay, sustain, release); + + // Амплитуда с учетом огибающей + double amplitude = baseAmplitude * envelope; + + // Ограничиваем амплитуду чтобы не было клиппинга + if (amplitude > 1.0) amplitude = 1.0; + + // Генерируем волну + double t = event.time + noteTime; + short sample = generateWaveform(t, frequency, amplitude, event.instrument); + + stream << sample; + } + } + } + + // Добавляем немного тишины в конце + for (int i = 0; i < m_sampleRate * 0.5; i++) { + short sample = 0; + stream << sample; + } +} + +double SimpleWavWriter::adsrEnvelope(double noteTime, double noteDuration, + double attack, double decay, + double sustain, double release) +{ + double envelope = 1.0; + + if (noteTime < attack) { + // Атака + envelope = noteTime / attack; + } else if (noteTime < attack + decay) { + // Спад + envelope = 1.0 - ((noteTime - attack) / decay) * (1.0 - sustain); + } else if (noteTime < noteDuration - release) { + // Сусгейн + envelope = sustain; + } else if (noteTime < noteDuration) { + // Релиз + double releaseTime = noteTime - (noteDuration - release); + envelope = sustain * (1.0 - releaseTime / release); + } else { + // После релиза + envelope = 0.0; + } + + return envelope; +} + +double SimpleWavWriter::sineWave(double phase) +{ + return sin(2.0 * M_PI * phase); +} + +double SimpleWavWriter::squareWave(double phase) +{ + return sin(2.0 * M_PI * phase) > 0 ? 0.7 : -0.7; +} + +double SimpleWavWriter::sawtoothWave(double phase) +{ + return 2.0 * (phase - floor(phase + 0.5)); +} + +double SimpleWavWriter::triangleWave(double phase) +{ + double x = 2.0 * (phase - floor(phase + 0.5)); + return 2.0 * fabs(x) - 1.0; +} + +double SimpleWavWriter::noiseWave() +{ + return (2.0 * rand() / RAND_MAX) - 1.0; +} + +double SimpleWavWriter::lowPassFilter(double input, double &prev, double cutoff) +{ + double RC = 1.0 / (2.0 * M_PI * cutoff); + double dt = 1.0 / m_sampleRate; + double alpha = dt / (RC + dt); + double output = prev + alpha * (input - prev); + prev = output; + return output; +} + +double SimpleWavWriter::highPassFilter(double input, double &prevInput, double &prevOutput, double cutoff) +{ + double RC = 1.0 / (2.0 * M_PI * cutoff); + double dt = 1.0 / m_sampleRate; + double alpha = RC / (RC + dt); + double output = alpha * (prevOutput + input - prevInput); + prevInput = input; + prevOutput = output; + return output; +} + +double SimpleWavWriter::noteToFrequency(int note) +{ + return 440.0 * pow(2.0, (note - 69) / 12.0); +} + +short SimpleWavWriter::generateWaveform(double time, double frequency, double amplitude, int instrument) +{ + double phase = fmod(time * frequency, 1.0); + double value = 0.0; + + WaveformType waveform = getWaveformForInstrument(instrument); + + switch (waveform) { + case WAVEFORM_SINE: + value = sineWave(phase); + break; + case WAVEFORM_SQUARE: + value = squareWave(phase); + // Добавляем немного гармоник для прямоугольной волны + for (int i = 3; i <= 9; i += 2) { + value += 0.7 / i * sin(2.0 * M_PI * frequency * i * time); + } + break; + case WAVEFORM_SAWTOOTH: + value = sawtoothWave(phase); + // Добавляем гармоники для пилообразной волны + for (int i = 2; i <= 10; i++) { + value += 0.5 / i * sin(2.0 * M_PI * frequency * i * time); + } + break; + case WAVEFORM_TRIANGLE: + value = triangleWave(phase); + // Добавляем нечетные гармоники для треугольной волны + for (int i = 3; i <= 9; i += 2) { + value += 0.8 / (i * i) * sin(2.0 * M_PI * frequency * i * time); + } + break; + case WAVEFORM_NOISE: + value = noiseWave(); + break; + } + + // Применяем фильтр в зависимости от инструмента + static double prevLP = 0; + static double prevHPInput = 0; + static double prevHPOutput = 0; + + double cutoff = getFilterCutoffForInstrument(instrument); + + if (instrument >= 28 && instrument <= 40) { + // Бас - сильный low-pass фильтр + value = lowPassFilter(value, prevLP, cutoff); + } else if (instrument == 3 || instrument == 6) { + // Клавесин - немного high-pass для яркости + value = highPassFilter(value, prevHPInput, prevHPOutput, 500.0); + } + + // Ограничиваем значение чтобы избежать клиппинга + if (value > 1.0) value = 1.0; + if (value < -1.0) value = -1.0; + + return static_cast(value * amplitude * 32767.0); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/simplewavwriter.h b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/simplewavwriter.h new file mode 100644 index 0000000..a3238e9 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/simplewavwriter.h @@ -0,0 +1,91 @@ +#ifndef SIMPLEWAVWRITER_H +#define SIMPLEWAVWRITER_H + +#include +#include +#include +#include +#include + +struct WavEvent { + double time; + int note; + int velocity; + int duration; // в сэмплах + int instrument; // тип инструмента +}; + +// Типы волновых форм +enum WaveformType { + WAVEFORM_SINE = 0, // Синус (чистый тон) + WAVEFORM_SQUARE = 1, // Прямоугольная (клавесин, пианино) + WAVEFORM_SAWTOOTH = 2, // Пилообразная (струнные, бас) + WAVEFORM_TRIANGLE = 3, // Треугольная (флейта, орган) + WAVEFORM_NOISE = 4 // Шум (перкуссия) +}; + +class SimpleWavWriter +{ +public: + SimpleWavWriter(); + ~SimpleWavWriter(); + + bool startRecording(int sampleRate = 16000); + bool stopRecording(); + bool saveToFile(const QString &filename); + + void addNote(double time, int note, int velocity, double duration, int instrument = 0); + void addSilence(double duration); + + bool isRecording() const { return m_isRecording; } + void clear(); + + void setSampleRate(int rate) { m_sampleRate = rate; } + int sampleRate() const { return m_sampleRate; } + + // Настройки инструментов + void setBassVolumeMultiplier(double multiplier) { m_bassVolumeMultiplier = multiplier; } + void setPlaybackSpeed(double speed) { m_playbackSpeed = speed; } + +private: + QVector m_events; + bool m_isRecording; + double m_startTime; + int m_sampleRate; + double m_bassVolumeMultiplier; + double m_playbackSpeed; + + void writeWavHeader(QDataStream &stream, quint32 dataSize); + void writeWavData(QDataStream &stream); + + // Генерация звука с разными волновыми формами + short generateWaveform(double time, double frequency, double amplitude, int instrument); + + // Разные волновые формы + double sineWave(double phase); + double squareWave(double phase); + double sawtoothWave(double phase); + double triangleWave(double phase); + double noiseWave(); + + // Фильтры + double lowPassFilter(double input, double &prev, double cutoff); + double highPassFilter(double input, double &prevInput, double &prevOutput, double cutoff); + + double noteToFrequency(int note); + + // Получение параметров инструмента + WaveformType getWaveformForInstrument(int instrument); + double getFilterCutoffForInstrument(int instrument); + double getAttackForInstrument(int instrument); + double getDecayForInstrument(int instrument); + double getSustainForInstrument(int instrument); + double getReleaseForInstrument(int instrument); + + // Генераторы огибающей + double adsrEnvelope(double noteTime, double noteDuration, + double attack, double decay, + double sustain, double release); +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/yamitracker.cpp b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/yamitracker.cpp new file mode 100644 index 0000000..1fc243c --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/yamitracker.cpp @@ -0,0 +1,903 @@ +#include "yamitracker.h" +#include "ui_yamitracker.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Глобальная переменная для управления громкостью баса +double bassVolumeMultiplier = 2.0; // Увеличение громкости баса в 2 раза + +// Инструменты басового типа для усиления громкости +QSet bassInstruments = { + 28, // FngrBass (Фингер-бас) + 33, // FngrBass (Фингер-бас) - другой тип + 39, // FngrBass (Фингер-бас) - еще тип + 40, // SlapBas (Слэп-бас) + 38, // DstGtr (Дисторшн-гитара) - тоже можно усилить + 29, // Ovrdrive (Овердрайв-гитара) + 37 // Ovrdrive (Овердрайв-гитара) - другой тип +}; + +void SerialReader::run() +{ + while (!shouldStop) { + int fd = open(currentDevice.toUtf8().constData(), O_RDWR | O_NOCTTY); + if (fd < 0) { + emit error(QString("Cannot open %1").arg(currentDevice)); + emit connectionStatusChanged(false); + sleep(2); + continue; + } + + emit connectionStatusChanged(true); + + QString manufacturer = "Unknown"; + QString model = "Unknown"; + + if (currentDevice.contains("yamaha", Qt::CaseInsensitive) || + currentDevice.contains("psr", Qt::CaseInsensitive)) { + manufacturer = "Yamaha"; + model = "PSR Series"; + } else if (currentDevice.contains("dmmidi")) { + manufacturer = "Yamaha"; + model = "PSR-E333 (Direct MIDI)"; + } + + emit deviceInfoReceived(manufacturer, model); + + struct termios tty; + tcgetattr(fd, &tty); + cfsetospeed(&tty, B115200); + cfsetispeed(&tty, B115200); + tty.c_cflag |= (CLOCAL | CREAD | CS8); + tty.c_cc[VMIN] = 1; + tcsetattr(fd, TCSANOW, &tty); + + unsigned char byte; + while (!shouldStop && read(fd, &byte, 1) > 0) { + if (byte == 0xF8 || byte == 0xFE) { + continue; + } + + if (byte & 0x80) { + if ((byte & 0xF0) == 0x90) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + + if (velocity == 0) + emit noteOffReceived(hexNote); + else + emit noteOnReceived(hexNote, velocity); + } + } + else if ((byte & 0xF0) == 0x80) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + emit noteOffReceived(hexNote); + } + } + } + } + + close(fd); + emit connectionStatusChanged(false); + + if (!shouldStop) { + emit error(QString("Connection lost to %1. Attempting to reconnect...").arg(currentDevice)); + sleep(2); + } + } +} + +Yamitracker::Yamitracker(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::Yamitracker) + , serialReader(new SerialReader(this)) + , reconnectTimer(new QTimer(this)) + , isConnected(false) + , wavWriter(new SimpleWavWriter()) + , recordingStartTime(0) + , brrConverter(new BrrConverter(this)) + , audioPlayerProcess(new QProcess(this)) + , playbackSpeedSlider(nullptr) + , bassVolumeSlider(nullptr) + , speedLabel(nullptr) + , volumeLabel(nullptr) +{ + ui->setupUi(this); + + deviceLabel = ui->deviceLabel; + refreshDevicesButton = ui->refreshDevicesButton; + midiFilesList = ui->midiFilesList; + instrumentComboBox = ui->instrumentComboBox; + + // Ищем элементы в UI + playbackSpeedSlider = findChild("playbackSpeedSlider"); + bassVolumeSlider = findChild("bassVolumeSlider"); + speedLabel = findChild("speedLabel"); + volumeLabel = findChild("volumeLabel"); + + // Настраиваем слайдеры, если они найдены + if (playbackSpeedSlider) { + playbackSpeedSlider->setRange(50, 200); // 50% - 200% + playbackSpeedSlider->setValue(100); // 100% по умолчанию + playbackSpeedSlider->setTickInterval(10); + playbackSpeedSlider->setTickPosition(QSlider::TicksBelow); + } + + if (bassVolumeSlider) { + bassVolumeSlider->setRange(100, 400); // 100% - 400% + bassVolumeSlider->setValue(200); // 200% по умолчанию + bassVolumeSlider->setTickInterval(50); + bassVolumeSlider->setTickPosition(QSlider::TicksBelow); + } + + // Обновляем метки + updateSpeedLabel(); + updateVolumeLabel(); + + // Подключаем сигналы + if (playbackSpeedSlider) { + connect(playbackSpeedSlider, &QSlider::valueChanged, this, &Yamitracker::onPlaybackSpeedChanged); + } + if (bassVolumeSlider) { + connect(bassVolumeSlider, &QSlider::valueChanged, this, &Yamitracker::onBassVolumeChanged); + } + + // Заполняем комбобокс инструментами + QList instrumentIds = instruments.keys(); + std::sort(instrumentIds.begin(), instrumentIds.end()); + for (int id : instrumentIds) { + QString instrumentName = instruments[id]; + // Добавляем пометку для басовых инструментов + if (bassInstruments.contains(id)) { + instrumentName += " [БАС - усилено]"; + } + instrumentComboBox->addItem(QString("%1: %2").arg(id).arg(instrumentName), id); + } + + initializeKeyButtons(); + initializeDeviceDetection(); + + connect(serialReader, &SerialReader::noteOnReceived, this, &Yamitracker::onNoteOnReceived); + connect(serialReader, &SerialReader::noteOffReceived, this, &Yamitracker::onNoteOffReceived); + connect(serialReader, &SerialReader::error, this, &Yamitracker::onError); + connect(serialReader, &SerialReader::connectionStatusChanged, this, &Yamitracker::onConnectionStatusChanged); + connect(serialReader, &SerialReader::deviceInfoReceived, this, &Yamitracker::onDeviceInfoReceived); + connect(ui->playButton, &QPushButton::clicked, this, &Yamitracker::onPlayClicked); + connect(ui->stopButton, &QPushButton::clicked, this, &Yamitracker::onStopClicked); + connect(ui->convertButton, &QPushButton::clicked, this, &Yamitracker::onConvertToBrrClicked); + connect(refreshDevicesButton, &QPushButton::clicked, this, &Yamitracker::onRefreshDevicesClicked); + connect(ui->loadMidiButton, &QPushButton::clicked, this, &Yamitracker::onLoadMidiFileClicked); + connect(ui->selectFileButton, &QPushButton::clicked, this, &Yamitracker::onSelectFileForConversion); + connect(ui->playFileButton, &QPushButton::clicked, this, &Yamitracker::onSelectFileForPlayback); + connect(ui->saveRecordingButton, &QPushButton::clicked, this, &Yamitracker::onSaveRecordingClicked); + connect(ui->playMidiButton, &QPushButton::clicked, this, &Yamitracker::onPlayMidiFileClicked); + connect(ui->recordFromMidiButton, &QPushButton::clicked, this, &Yamitracker::onRecordFromMidiFile); + connect(midiFilesList, &QListWidget::itemSelectionChanged, this, &Yamitracker::onSelectedMidiFileChanged); + + connect(reconnectTimer, &QTimer::timeout, this, &Yamitracker::attemptReconnect); + reconnectTimer->start(5000); + + connect(audioPlayerProcess, QOverload::of(&QProcess::finished), + this, [this](int exitCode, QProcess::ExitStatus exitStatus) { + Q_UNUSED(exitCode); + if (exitStatus == QProcess::NormalExit) { + ui->statusLabel->setText("Воспроизведение завершено"); + } + }); + + // ОБНОВЛЕННЫЙ СТИЛЬ - белый текст на темном фоне для лучшей читаемости + setStyleSheet( + "QMainWindow { background-color: #2b2b2b; }" + "QLabel { color: #ffffff; font-size: 14px; font-weight: bold; }" + "QGroupBox { color: #ffffff; font-weight: bold; border: 2px solid #555; border-radius: 5px; margin-top: 10px; }" + "QGroupBox::title { color: #ffffff; subcontrol-origin: margin; left: 10px; padding: 0 5px 0 5px; }" + "QPushButton { background-color: #4a4a4a; color: #ffffff; border: 1px solid #555; border-radius: 3px; padding: 5px; font-weight: bold; }" + "QPushButton:hover { background-color: #5a5a5a; }" + "QPushButton:pressed { background-color: #3a3a3a; }" + "QPushButton[whiteKey=true] { background-color: white; color: black; border: 1px solid #ccc; font-size: 8pt; }" + "QPushButton[whiteKey=true]:pressed { background-color: #ff4444; color: white; }" + "QPushButton[blackKey=true] { background-color: black; color: white; font-size: 7pt; }" + "QPushButton[blackKey=true]:pressed { background-color: #ff4444; }" + "QProgressBar { border: 1px solid #555; background: #333; color: white; }" + "QProgressBar::chunk { background: #4CAF50; }" + "QListWidget { background-color: #333; color: #ffffff; border: 1px solid #555; selection-background-color: #555; }" + "QComboBox { background-color: #333; color: #ffffff; border: 1px solid #555; padding: 5px; }" + "QComboBox QAbstractItemView { background-color: #333; color: #ffffff; selection-background-color: #555; }" + "QComboBox::drop-down { border: none; }" + "QComboBox::down-arrow { image: none; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid white; }" + "QSlider::groove:horizontal { border: 1px solid #555; height: 8px; background: #333; margin: 2px 0; }" + "QSlider::handle:horizontal { background: #4CAF50; border: 1px solid #5f5f5f; width: 18px; margin: -2px 0; border-radius: 3px; }" + ); + + QTimer::singleShot(1000, this, &Yamitracker::autoDetectAndConnect); + setWindowTitle("Yamaha PSR-E333 Monitor - Bass Enhanced"); + + // Сканируем MIDI файлы при запуске + scanMidiFiles(); + + // Информация о басовых инструментах + qDebug() << "Бас-инструменты усилены в" << bassVolumeMultiplier << "раз"; + qDebug() << "Бас-инструменты: FngrBass(28,33,39), SlapBas(40), Ovrdrive(29,37), DstGtr(38)"; +} + + +void Yamitracker::onPlaybackSpeedChanged(int value) +{ + double speedPercent = value / 100.0; + wavWriter->setPlaybackSpeed(speedPercent); + updateSpeedLabel(); +} + +void Yamitracker::onBassVolumeChanged(int value) +{ + double volumeMultiplier = value / 100.0; + wavWriter->setBassVolumeMultiplier(volumeMultiplier); + bassVolumeMultiplier = volumeMultiplier; + updateVolumeLabel(); +} + +void Yamitracker::updateSpeedLabel() +{ + if (speedLabel && playbackSpeedSlider) { + int speed = playbackSpeedSlider->value(); + speedLabel->setText(QString("Скорость: %1%").arg(speed)); + } +} + +void Yamitracker::updateVolumeLabel() +{ + if (volumeLabel && bassVolumeSlider) { + int volume = bassVolumeSlider->value(); + volumeLabel->setText(QString("Бас: %1%").arg(volume)); + } +} + +void Yamitracker::onRecordFromMidiFile() +{ + if (currentMidiFilePath.isEmpty()) { + QMessageBox::information(this, "Запись", "Сначала загрузите MIDI файл"); + return; + } + + // Получаем выбранный инструмент + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Запись из MIDI файла [БАС x%1]...").arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText(QString("Запись из MIDI файла [Инструмент: %1]...").arg(getInstrumentName(currentInstrument))); + } + + // Начинаем запись + if (wavWriter->startRecording(16000)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started WAV recording from MIDI file, instrument:" << currentInstrument; + + // Генерируем мелодию в зависимости от инструмента + generateInstrumentMelody(currentInstrument); + + wavWriter->stopRecording(); + + // Предлагаем сохранить + onSaveRecordingClicked(); + } +} + +void Yamitracker::generateInstrumentMelody(int instrument) +{ + double volumeMultiplier = bassInstruments.contains(instrument) ? bassVolumeMultiplier : 1.0; + + // Разные мелодии для разных инструментов + switch (instrument) { + case 1: // CrandPno (Гранд-пианино) + wavWriter->addNote(0.0, 60, 100 * volumeMultiplier, 1.0, instrument); // C4 + wavWriter->addNote(0.5, 64, 80 * volumeMultiplier, 0.5, instrument); // E4 + wavWriter->addNote(1.0, 67, 90 * volumeMultiplier, 1.0, instrument); // G4 + wavWriter->addNote(2.0, 72, 100 * volumeMultiplier, 1.0, instrument); // C5 + break; + + case 2: // BritePno (Яркое пианино) + wavWriter->addNote(0.0, 60, 100 * volumeMultiplier, 0.3, instrument); // C4 + wavWriter->addNote(0.1, 64, 90 * volumeMultiplier, 0.3, instrument); // E4 + wavWriter->addNote(0.2, 67, 80 * volumeMultiplier, 0.3, instrument); // G4 + wavWriter->addNote(0.3, 72, 100 * volumeMultiplier, 0.5, instrument); // C5 + break; + + case 3: // Harpsi (Клавесин) + case 6: + wavWriter->addNote(0.0, 60, 100 * volumeMultiplier, 0.1, instrument); // C4 + wavWriter->addNote(0.1, 62, 90 * volumeMultiplier, 0.1, instrument); // D4 + wavWriter->addNote(0.2, 64, 100 * volumeMultiplier, 0.1, instrument); // E4 + wavWriter->addNote(0.3, 65, 90 * volumeMultiplier, 0.1, instrument); // F4 + wavWriter->addNote(0.4, 67, 100 * volumeMultiplier, 0.2, instrument); // G4 + break; + + case 28: // FngrBass (Фингер-бас) + case 33: + case 39: + wavWriter->addNote(0.0, 36, 120 * volumeMultiplier, 1.0, instrument); // C2 (бас) + wavWriter->addNote(1.0, 40, 100 * volumeMultiplier, 0.5, instrument); // E2 + wavWriter->addNote(1.5, 43, 110 * volumeMultiplier, 1.0, instrument); // G2 + wavWriter->addNote(2.5, 48, 100 * volumeMultiplier, 0.5, instrument); // C3 + break; + + case 40: // SlapBas (Слэп-бас) + wavWriter->addNote(0.0, 36, 150 * volumeMultiplier, 0.2, instrument); // C2 (щелчок) + wavWriter->addNote(0.3, 40, 120 * volumeMultiplier, 0.3, instrument); // E2 (пул) + wavWriter->addNote(0.7, 43, 140 * volumeMultiplier, 0.2, instrument); // G2 (щелчок) + break; + + case 29: // Ovrdrive (Овердрайв-гитара) + case 37: + wavWriter->addNote(0.0, 40, 100 * volumeMultiplier, 1.5, instrument); // E2 + wavWriter->addNote(0.5, 43, 90 * volumeMultiplier, 1.0, instrument); // G2 + wavWriter->addNote(1.0, 45, 100 * volumeMultiplier, 0.5, instrument); // A2 + wavWriter->addNote(1.5, 47, 110 * volumeMultiplier, 1.0, instrument); // B2 + break; + + case 48: // String (Струнные) + case 49: // SlowStr (Медленные струнные) + wavWriter->addNote(0.0, 60, 80 * volumeMultiplier, 2.0, instrument); // C4 + wavWriter->addNote(0.5, 64, 70 * volumeMultiplier, 1.5, instrument); // E4 + wavWriter->addNote(1.0, 67, 75 * volumeMultiplier, 2.0, instrument); // G4 + break; + + case 81: // LeadSx (Саксофон) + wavWriter->addNote(0.0, 65, 90 * volumeMultiplier, 1.5, instrument); // F4 + wavWriter->addNote(0.3, 67, 85 * volumeMultiplier, 0.5, instrument); // G4 + wavWriter->addNote(0.8, 69, 95 * volumeMultiplier, 2.0, instrument); // A4 + break; + + case 95: // Bright (Яркий звук) + case 96: + case 100: + wavWriter->addNote(0.0, 72, 100 * volumeMultiplier, 0.2, instrument); // C5 + wavWriter->addNote(0.2, 76, 90 * volumeMultiplier, 0.2, instrument); // E5 + wavWriter->addNote(0.4, 79, 100 * volumeMultiplier, 0.2, instrument); // G5 + wavWriter->addNote(0.6, 84, 110 * volumeMultiplier, 0.3, instrument); // C6 + break; + + default: + // Стандартная мелодия для неизвестных инструментов + wavWriter->addNote(0.0, 60, 100 * volumeMultiplier, 1.0, instrument); // C4 + wavWriter->addNote(1.0, 64, 80 * volumeMultiplier, 1.0, instrument); // E4 + wavWriter->addNote(2.0, 67, 90 * volumeMultiplier, 1.0, instrument); // G4 + break; + } +} + +Yamitracker::~Yamitracker() +{ + if (serialReader) { + serialReader->stop(); + if (serialReader->isRunning()) { + serialReader->terminate(); + serialReader->wait(); + } + } + delete wavWriter; + delete ui; +} + +void Yamitracker::initializeDeviceDetection() +{ + deviceLabel->setText("Устройство: Поиск..."); +} + +void Yamitracker::autoDetectAndConnect() +{ + QString device = "/dev/dmmidi1"; + serialReader->setDevice(device); + deviceLabel->setText(QString("Устройство: %1").arg(device)); + qDebug() << "Using device:" << device; + + startSerialReader(); +} + +void Yamitracker::onDeviceInfoReceived(const QString &manufacturer, const QString &model) +{ + deviceLabel->setText(QString("Устройство: %1 %2").arg(manufacturer, model)); + + setWindowTitle(QString("Yamitracker - %1 %2").arg(manufacturer, model)); +} + +void Yamitracker::onRefreshDevicesClicked() +{ + deviceLabel->setText("Устройство: Обновление..."); + + autoDetectAndConnect(); +} + +void Yamitracker::startSerialReader() +{ + if (serialReader && !serialReader->isRunning()) { + serialReader->start(); + } +} + +void Yamitracker::initializeKeyButtons() +{ + QList whiteKeys = { + ui->key_C1, ui->key_D1, ui->key_E1, ui->key_F1, ui->key_G1, ui->key_A1, ui->key_B1, + ui->key_C2, ui->key_D2, ui->key_E2, ui->key_F2, ui->key_G2, ui->key_A2, ui->key_B2, + ui->key_C3, ui->key_D3, ui->key_E3, ui->key_F3, ui->key_G3, ui->key_A3, ui->key_B3, + ui->key_C4, ui->key_D4, ui->key_E4, ui->key_F4, ui->key_G4, ui->key_A4, ui->key_B4, + ui->key_C5, ui->key_D5, ui->key_E5, ui->key_F5, ui->key_G5, ui->key_A5, ui->key_B5, + ui->key_C6 + }; + + for (QPushButton *key : whiteKeys) { + key->setProperty("whiteKey", true); + keyButtons[key->text()] = key; + } + + QList blackKeys = { + ui->key_Cs1, ui->key_Ds1, ui->key_Fs1, ui->key_Gs1, ui->key_As1, + ui->key_Cs2, ui->key_Ds2, ui->key_Fs2, ui->key_Gs2, ui->key_As2, + ui->key_Cs3, ui->key_Ds3, ui->key_Fs3, ui->key_Gs3, ui->key_As3, + ui->key_Cs4, ui->key_Ds4, ui->key_Fs4, ui->key_Gs4, ui->key_As4, + ui->key_Cs5, ui->key_Ds5, ui->key_Fs5, ui->key_Gs5, ui->key_As5 + }; + + for (QPushButton *key : blackKeys) { + key->setProperty("blackKey", true); + keyButtons[key->text()] = key; + } +} + +QString Yamitracker::getInstrumentName(int program) +{ + return instruments.contains(program) ? instruments[program] : QString("Unknown (%1)").arg(program); +} + +void Yamitracker::onNoteOnReceived(const QString &data, int velocity) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.insert(note); + highlightKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + int volume = (velocity * 100) / 127; + ui->volumeBar->setValue(volume); + + if (wavWriter->isRecording()) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + noteStartTimes[data] = currentTime; + } + } +} + +void Yamitracker::onNoteOffReceived(const QString &data) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.remove(note); + clearKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + if (currentlyPressedKeys.isEmpty()) { + ui->volumeBar->setValue(0); + } + + if (wavWriter->isRecording() && noteStartTimes.contains(data)) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + double noteStartTime = noteStartTimes[data]; + double duration = currentTime - noteStartTime; + + int noteVelocity = 100; + + wavWriter->addNote(noteStartTime, noteNumber, noteVelocity, duration); + + noteStartTimes.remove(data); + } + } +} + +void Yamitracker::onConnectionStatusChanged(bool connected) +{ + isConnected = connected; + if (connected) { + ui->statusLabel->setText("Статус: Подключено к синтезатору"); + } else { + ui->statusLabel->setText("Статус: Отключено (переподключение...)"); + } +} + +void Yamitracker::attemptReconnect() +{ + if (!isConnected && (!serialReader || !serialReader->isRunning())) { + qDebug() << "Attempting to reconnect..."; + startSerialReader(); + } +} + +void Yamitracker::onError(const QString &message) +{ + ui->statusLabel->setText("Ошибка: " + message); + if (!message.contains("reconnect", Qt::CaseInsensitive)) { + QMessageBox::warning(this, "Ошибка", message); + } +} + +void Yamitracker::onPlayClicked() +{ + // Получаем выбранный инструмент + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Запись с синтезатора [БАС x%1]...").arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText("Запись с синтезатора..."); + } + + noteStartTimes.clear(); + currentlyPressedKeys.clear(); + clearAllHighlights(); + + if (wavWriter->startRecording(16000)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started WAV recording from synthesizer"; + if (isBassInstrument) { + qDebug() << "Bass instrument detected - volume will be increased"; + } + } +} + +void Yamitracker::onStopClicked() +{ + ui->statusLabel->setText("Остановлено"); + + clearAllHighlights(); + currentlyPressedKeys.clear(); + ui->keysInfoLabel->setText("Нажато клавиш: 0"); + ui->volumeBar->setValue(0); + + if (wavWriter->isRecording()) { + wavWriter->stopRecording(); + + // Предлагаем сохранить запись + onSaveRecordingClicked(); + } + + noteStartTimes.clear(); +} + +void Yamitracker::onSaveRecordingClicked() +{ + QString defaultName = "recording_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".wav"; + QString filename = QFileDialog::getSaveFileName(this, "Сохранить запись", defaultName, "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + saveWavFile(filename); + } +} + +void Yamitracker::saveWavFile(const QString &filename) +{ + if (wavWriter->saveToFile(filename)) { + lastRecordedWavFile = filename; + ui->statusLabel->setText(QString("Сохранено: %1").arg(filename)); + + // Активируем кнопку конвертации + ui->convertButton->setEnabled(true); + + // Предлагаем воспроизвести файл + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Запись завершена", + QString("WAV файл сохранен:\n%1\n\nВоспроизвести файл?").arg(filename), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + playWavExternal(lastRecordedWavFile); + } + } else { + ui->statusLabel->setText("Ошибка сохранения WAV файла"); + } +} + +void Yamitracker::onConvertToBrrClicked() +{ + if (lastRecordedWavFile.isEmpty() || !QFile::exists(lastRecordedWavFile)) { + onSelectFileForConversion(); + return; + } + + QString baseName = QFileInfo(lastRecordedWavFile).completeBaseName(); + QString brrFile = QFileDialog::getSaveFileName(this, "Сохранить BRR файл", baseName + ".brr", "BRR файлы (*.brr)"); + + if (brrFile.isEmpty()) return; + + ui->statusLabel->setText("Конвертация WAV -> BRR..."); + QApplication::processEvents(); + + if (brrConverter->convertWavToBrr(lastRecordedWavFile, brrFile)) { + ui->statusLabel->setText(QString("Конвертация завершена: %1").arg(brrFile)); + + QFileInfo brrInfo(brrFile); + if (brrInfo.exists()) { + QString info = QString("BRR файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Nintendo SNES ADPCM") + .arg(brrFile) + .arg(brrInfo.size()); + QMessageBox::information(this, "Конвертация завершена", info); + } + } else { + ui->statusLabel->setText("Ошибка конвертации WAV -> BRR"); + QMessageBox::warning(this, "Ошибка", "Не удалось преобразовать WAV в BRR формат"); + } +} + +void Yamitracker::onSelectFileForConversion() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл для конвертации", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + lastRecordedWavFile = filename; + onConvertToBrrClicked(); + } +} + +void Yamitracker::onSelectFileForPlayback() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл для воспроизведения", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + playWavExternal(filename); + } +} + +void Yamitracker::playWavExternal(const QString &wavFile) +{ + QStringList players = { + "aplay", "paplay", "play", "ffplay" + }; + + QString player; + + for (const QString &p : players) { + QProcess checkProcess; + checkProcess.start("which", QStringList() << p); + checkProcess.waitForFinished(); + if (checkProcess.exitCode() == 0) { + player = p; + break; + } + } + + if (player.isEmpty()) { + QMessageBox::warning(this, "Воспроизведение", + "Не найден аудиоплеер. Установите один из:\n" + "aplay, paplay, sox или ffmpeg"); + return; + } + + ui->statusLabel->setText("Воспроизведение WAV файла..."); + + audioPlayerProcess->start(player, QStringList() << wavFile); + + if (!audioPlayerProcess->waitForStarted(3000)) { + ui->statusLabel->setText("Не удалось запустить аудиоплеер"); + QMessageBox::warning(this, "Ошибка", + QString("Не удалось запустить %1. Убедитесь, что он установлен.").arg(player)); + } +} + +void Yamitracker::scanMidiFiles() +{ + QDir currentDir = QDir::current(); + QStringList filters; + filters << "*.txt"; + QStringList files = currentDir.entryList(filters, QDir::Files); + + midiFilesList->clear(); + for (const QString &file : files) { + // Проверяем, является ли файл MIDI логом + if (file.contains("midi_log_") || + file.contains("CrandPno") || + file.contains("BritePno") || + file.contains("Harpsi") || + file.contains("FngrBass") || + file.contains("Ovrdrive") || + file.contains("Bright")) { + + QFileInfo fileInfo(file); + QListWidgetItem *item = new QListWidgetItem(fileInfo.fileName()); + item->setData(Qt::UserRole, fileInfo.absoluteFilePath()); + midiFilesList->addItem(item); + } + } + + if (midiFilesList->count() == 0) { + QListWidgetItem *item = new QListWidgetItem("MIDI файлы не найдены"); + item->setFlags(item->flags() & ~Qt::ItemIsSelectable); + midiFilesList->addItem(item); + } +} + +void Yamitracker::onLoadMidiFileClicked() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите MIDI лог файл", "", "Текстовые файлы (*.txt);;Все файлы (*)"); + + if (!filename.isEmpty()) { + loadMidiFile(filename); + } +} + +void Yamitracker::loadMidiFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QMessageBox::warning(this, "Ошибка", "Не удалось открыть файл: " + filename); + return; + } + + QTextStream in(&file); + QString content = in.readAll(); + file.close(); + + currentMidiFilePath = filename; + parseMidiLog(content); + + ui->statusLabel->setText(QString("Загружен файл: %1").arg(QFileInfo(filename).fileName())); +} + +void Yamitracker::parseMidiLog(const QString &content) +{ + QStringList lines = content.split('\n'); + int program = 1; // По умолчанию + + for (const QString &line : lines) { + if (line.contains("PROGRAM_CHANGE: Program=")) { + // Извлекаем номер программы + QRegularExpression re("Program=(\\d+)"); + QRegularExpressionMatch match = re.match(line); + if (match.hasMatch()) { + program = match.captured(1).toInt(); + // Обновляем выбранный инструмент в комбобоксе + int index = instrumentComboBox->findData(program); + if (index >= 0) { + instrumentComboBox->setCurrentIndex(index); + } + } + } + } + + // Показываем информацию о загруженном файле + QString info = QString("Файл загружен\nИнструмент: %1\nСтрок: %2") + .arg(getInstrumentName(program)) + .arg(lines.count()); + + QMessageBox::information(this, "MIDI файл загружен", info); +} + +void Yamitracker::onPlayMidiFileClicked() +{ + if (currentMidiFilePath.isEmpty()) { + QMessageBox::information(this, "Воспроизведение", "Сначала загрузите MIDI файл"); + return; + } + + // Проверяем, является ли инструмент басовым + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Симуляция MIDI файла [БАС x%1]...").arg(bassVolumeMultiplier)); + QApplication::processEvents(); + + QMessageBox::information(this, "Симуляция MIDI (БАС)", + QString("Симуляция воспроизведения MIDI файла с БАС-инструментом:\n" + "Файл: %1\n" + "Инструмент: %2\n" + "Громкость усилена в %3 раза\n\n" + "В реальной версии бас будет звучать громче.") + .arg(QFileInfo(currentMidiFilePath).fileName()) + .arg(getInstrumentName(currentInstrument)) + .arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText("Симуляция MIDI файла..."); + QApplication::processEvents(); + + QMessageBox::information(this, "Симуляция MIDI", + QString("Симуляция воспроизведения MIDI файла:\n%1\n\nВ реальной версии здесь будет воспроизведение нот.") + .arg(QFileInfo(currentMidiFilePath).fileName())); + } + + ui->statusLabel->setText("Симуляция завершена"); +} + +void Yamitracker::simulateNote(int note, int velocity, double duration) +{ + if (wavWriter->isRecording()) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + wavWriter->addNote(currentTime, note, velocity, duration); + } +} + +void Yamitracker::onSelectedMidiFileChanged() +{ + QList selectedItems = midiFilesList->selectedItems(); + if (!selectedItems.isEmpty()) { + QString filePath = selectedItems.first()->data(Qt::UserRole).toString(); + loadMidiFile(filePath); + } +} + +void Yamitracker::highlightKey(const QString ¬e) +{ + if (keyButtons.contains(note)) { + QPushButton *key = keyButtons[note]; + key->setStyleSheet("background-color: #ff4444; color: white; border: 2px solid red;"); + } +} + +void Yamitracker::clearKey(const QString ¬e) +{ + if (!keyButtons.contains(note)) return; + QPushButton *key = keyButtons[note]; + if (key->property("whiteKey").toBool()) + key->setStyleSheet("background-color: white; color: black; border: 1px solid #ccc;"); + else + key->setStyleSheet("background-color: black; color: white;"); +} + +void Yamitracker::clearAllHighlights() +{ + for (auto i = keyButtons.begin(); i != keyButtons.end(); ++i) { + clearKey(i.key()); + } +} + +void Yamitracker::clearStatusMessage() +{ + ui->statusLabel->setText("Статус: Готов"); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/yamitracker.h b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/yamitracker.h new file mode 100644 index 0000000..579a7dd --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/yamitracker.h @@ -0,0 +1,159 @@ +#ifndef YAMITRACKER_H +#define YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "simplewavwriter.h" +#include "brrconverter.h" + +QT_BEGIN_NAMESPACE +namespace Ui { class Yamitracker; } +QT_END_NAMESPACE + +class SerialReader : public QThread +{ + Q_OBJECT +public: + explicit SerialReader(QObject *parent = nullptr) : QThread(parent) + { + shouldStop = false; + currentDevice = "/dev/dmmidi1"; + } + + void stop() + { + shouldStop = true; + } + + void setDevice(const QString& device) { + currentDevice = device; + } + + QString getCurrentDevice() const { + return currentDevice; + } + +protected: + void run() override; + +private: + bool shouldStop; + QString currentDevice; + +signals: + void noteOnReceived(const QString ¬e, int velocity); + void noteOffReceived(const QString ¬e); + void error(const QString &message); + void connectionStatusChanged(bool connected); + void deviceInfoReceived(const QString &manufacturer, const QString &model); +}; + +class Yamitracker : public QMainWindow +{ + Q_OBJECT + +public: + Yamitracker(QWidget *parent = nullptr); + ~Yamitracker(); + +private slots: + void onNoteOnReceived(const QString ¬e, int velocity); + void onNoteOffReceived(const QString ¬e); + void onError(const QString &message); + void onPlayClicked(); + void onStopClicked(); + void onConvertToBrrClicked(); + void clearStatusMessage(); + void onConnectionStatusChanged(bool connected); + void attemptReconnect(); + void onDeviceInfoReceived(const QString &manufacturer, const QString &model); + void onRefreshDevicesClicked(); + void onLoadMidiFileClicked(); + void onSelectFileForConversion(); + void onSelectFileForPlayback(); + void onSaveRecordingClicked(); + void onPlayMidiFileClicked(); + void onSelectedMidiFileChanged(); + void onRecordFromMidiFile(); + void onPlaybackSpeedChanged(int value); + void onBassVolumeChanged(int value); + void updateSpeedLabel(); + void updateVolumeLabel(); + +private: + Ui::Yamitracker *ui; + SerialReader *serialReader; + QHash keyButtons; + QSet currentlyPressedKeys; + QTimer *reconnectTimer; + bool isConnected; + SimpleWavWriter *wavWriter; + double recordingStartTime; + QHash noteStartTimes; + QLabel *deviceLabel; + QPushButton *refreshDevicesButton; + BrrConverter *brrConverter; + QProcess *audioPlayerProcess; + QString lastRecordedWavFile; + QListWidget *midiFilesList; + QComboBox *instrumentComboBox; + QString currentMidiFilePath; + QSlider *playbackSpeedSlider; + QSlider *bassVolumeSlider; + QLabel *speedLabel; + QLabel *volumeLabel; + + // Инструменты (темпы) Yamaha PSR-E333 + QMap instruments = { + {1, "CrandPno (Гранд-пианино)"}, + {2, "BritePno (Яркое пианино)"}, + {3, "Harpsi (Клавесин)"}, + {6, "Harpsi (Клавесин) - другой тип"}, + {25, "ClassicGt (Классическая гитара)"}, + {27, "JazzGtr (Джазовая гитара)"}, + {28, "FngrBass (Фингер-бас)"}, + {29, "Ovrdrive (Овердрайв-гитара)"}, + {33, "FngrBass (Фингер-бас) - другой тип"}, + {37, "Ovrdrive (Овердрайв-гитара) - другой тип"}, + {38, "DstGtr (Дисторшн-гитара)"}, + {39, "FngrBass (Фингер-бас) - другой тип"}, + {40, "SlapBas (Слэп-бас)"}, + {48, "String (Струнные)"}, + {49, "SlowStr (Медленные струнные)"}, + {81, "LeadSx (Саксофон)"}, + {89, "SoftPad (Мягкий пад)"}, + {95, "Bright (Яркий звук)"}, + {96, "Bright (Яркий звук) - другой тип"}, + {100, "Bright (Яркий звук) - еще тип"} + }; + + void initializeKeyButtons(); + void highlightKey(const QString ¬e); + void clearKey(const QString ¬e); + void clearAllHighlights(); + void startSerialReader(); + void saveWavFile(const QString &filename); + void initializeDeviceDetection(); + void autoDetectAndConnect(); + void convertToBrr(const QString &wavFile, const QString &brrFile); + void playWavExternal(const QString &wavFile); + void loadMidiFile(const QString &filename); + void parseMidiLog(const QString &content); + void simulateNote(int note, int velocity, double duration); + void scanMidiFiles(); + QString getInstrumentName(int program); + void generateInstrumentMelody(int instrument); +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/yamitracker.ui b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/yamitracker.ui new file mode 100644 index 0000000..525b686 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3.1/Yamitracker2/Yamitracker/yamitracker.ui @@ -0,0 +1,787 @@ + + + Yamitracker + + + + 0 + 0 + 1200 + 800 + + + + Yamaha PSR-E333 Monitor + + + + + + + + + Статус: Готов + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Устройство: Не подключено + + + + + + + + + + + Нажато клавиш: 0 + + + + + + + 0 + + + + + + + + + Управление записью + + + + + + Запись с синтезатора + + + + + + + Стоп + + + + + + + Сохранить запись + + + + + + + Конвертировать в BRR + + + + + + + Выбрать файл для конвертации + + + + + + + Воспроизвести WAV + + + + + + + + + + Работа с MIDI файлами + + + + + + + + Инструмент: + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Обновить устройства + + + + + + + + + + + Загрузить MIDI файл + + + + + + + Воспроизвести MIDI + + + + + + + Записать из MIDI + + + + + + + + + Доступные MIDI файлы: + + + + + + + + + + + + + + + + + + + C1 + + + + + + + D1 + + + + + + + E1 + + + + + + + F1 + + + + + + + G1 + + + + + + + A1 + + + + + + + B1 + + + + + + + C2 + + + + + + + D2 + + + + + + + E2 + + + + + + + F2 + + + + + + + G2 + + + + + + + A2 + + + + + + + B2 + + + + + + + C3 + + + + + + + D3 + + + + + + + E3 + + + + + + + F3 + + + + + + + G3 + + + + + + + A3 + + + + + + + B3 + + + + + + + C4 + + + + + + + D4 + + + + + + + E4 + + + + + + + F4 + + + + + + + G4 + + + + + + + A4 + + + + + + + B4 + + + + + + + C5 + + + + + + + D5 + + + + + + + E5 + + + + + + + F5 + + + + + + + G5 + + + + + + + A5 + + + + + + + B5 + + + + + + + C6 + + + + + + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#1 + + + + + + + D#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#1 + + + + + + + G#1 + + + + + + + A#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#2 + + + + + + + D#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#2 + + + + + + + G#2 + + + + + + + A#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#3 + + + + + + + D#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#3 + + + + + + + G#3 + + + + + + + A#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#4 + + + + + + + D#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#4 + + + + + + + G#4 + + + + + + + A#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#5 + + + + + + + D#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#5 + + + + + + + G#5 + + + + + + + A#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/.qtcreator/Yamitracker.pro.user b/Yamitracker-reoload/Yamitracker3/Yamitracker/.qtcreator/Yamitracker.pro.user new file mode 100644 index 0000000..fcac744 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/.qtcreator/Yamitracker.pro.user @@ -0,0 +1,263 @@ + + + + + + EnvironmentId + {6395eb3f-fc2a-4125-bb4f-a9c51f02958b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {0acbc229-4897-4c6e-a23f-ae7c45394b0c} + 0 + 0 + 0 + + 0 + /home/acer1117/build-Yamitracker-Desktop-Debug + /home/acer1117/build-Yamitracker-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/acer1117/build-Yamitracker-Desktop-Release + /home/acer1117/build-Yamitracker-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/acer1117/build-Yamitracker-Desktop-Profile + /home/acer1117/build-Yamitracker-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro + /home/acer1117/Yamitracker/Yamitracker.pro + false + true + true + false + true + /home/acer1117/build-Yamitracker-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/Yamitracker.pro b/Yamitracker-reoload/Yamitracker3/Yamitracker/Yamitracker.pro new file mode 100644 index 0000000..6ef2713 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/Yamitracker.pro @@ -0,0 +1,24 @@ +QT += core gui widgets + +CONFIG += c++17 + +SOURCES += \ + main.cpp \ + yamitracker.cpp \ + simplewavwriter.cpp \ + brrconverter.cpp \ + audiosynthesizer.cpp + +HEADERS += \ + yamitracker.h \ + simplewavwriter.h \ + brrconverter.h \ + audiosynthesizer.h + +FORMS += \ + yamitracker.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/Yamitracker.pro.user b/Yamitracker-reoload/Yamitracker3/Yamitracker/Yamitracker.pro.user new file mode 100644 index 0000000..fcac744 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/Yamitracker.pro.user @@ -0,0 +1,263 @@ + + + + + + EnvironmentId + {6395eb3f-fc2a-4125-bb4f-a9c51f02958b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {0acbc229-4897-4c6e-a23f-ae7c45394b0c} + 0 + 0 + 0 + + 0 + /home/acer1117/build-Yamitracker-Desktop-Debug + /home/acer1117/build-Yamitracker-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/acer1117/build-Yamitracker-Desktop-Release + /home/acer1117/build-Yamitracker-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/acer1117/build-Yamitracker-Desktop-Profile + /home/acer1117/build-Yamitracker-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro + /home/acer1117/Yamitracker/Yamitracker.pro + false + true + true + false + true + /home/acer1117/build-Yamitracker-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/Yamitracker_ru_RU.ts b/Yamitracker-reoload/Yamitracker3/Yamitracker/Yamitracker_ru_RU.ts new file mode 100644 index 0000000..743f57f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/Yamitracker_ru_RU.ts @@ -0,0 +1,3 @@ + + + diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/audiosynthesizer.cpp b/Yamitracker-reoload/Yamitracker3/Yamitracker/audiosynthesizer.cpp new file mode 100644 index 0000000..cc082ea --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/audiosynthesizer.cpp @@ -0,0 +1,256 @@ +#include "audiosynthesizer.h" +#include +#include +#include +#include // Добавляем для Q_UNUSED + +AudioSynthesizer::AudioSynthesizer(int sampleRate) + : sampleRate(sampleRate), reverbLevel(0.0f), chorusLevel(0.0f) { + reverbBuffer.resize(sampleRate * 2, 0.0f); // 2 секунды реверберации + reverbPos = 0; + lfoPhase = 0.0; + lfoInc = 5.0 / sampleRate; // LFO 5 Гц + + // Инициализация случайных чисел для детюна + srand(static_cast(time(nullptr))); +} + +AudioSynthesizer::~AudioSynthesizer() { + voices.clear(); +} + +void AudioSynthesizer::addNote(int note, int velocity, int instrument) { + Voice voice; + voice.note = note; + voice.phase = 0.0; + voice.phaseInc = noteToFrequency(note) / sampleRate; + voice.amplitude = velocity / 127.0; + + // Настройки огибающей в зависимости от инструмента + switch(instrument % 4) { + case 0: // Фортепиано + voice.attackTime = 0.01; + voice.decayTime = 0.1; + voice.sustainLevel = 0.7; + voice.releaseTime = 0.5; + voice.waveform = 0; // Синус + break; + case 1: // Скрипка/Струнные + voice.attackTime = 0.05; + voice.decayTime = 0.2; + voice.sustainLevel = 0.8; + voice.releaseTime = 0.8; + voice.waveform = 1; // Пила + break; + case 2: // Флейта/Духовые + voice.attackTime = 0.1; + voice.decayTime = 0.05; + voice.sustainLevel = 0.9; + voice.releaseTime = 0.3; + voice.waveform = 0; // Синус + break; + case 3: // Ударные/Перкуссия + voice.attackTime = 0.001; + voice.decayTime = 0.05; + voice.sustainLevel = 0.0; + voice.releaseTime = 0.1; + voice.waveform = 2; // Квадрат + break; + default: + voice.attackTime = 0.05; + voice.decayTime = 0.15; + voice.sustainLevel = 0.75; + voice.releaseTime = 0.4; + voice.waveform = 0; + } + + voice.envelope = 0.0; + voice.isReleasing = false; + voice.time = 0.0; + + // Случайный детюн для хоруса (-0.01 до 0.01) + voice.detune = (rand() % 200 - 100) / 10000.0; + + // Проверяем, нет ли уже такой ноты + auto it = std::find_if(voices.begin(), voices.end(), + [note](const Voice& v) { return v.note == note; }); + + if (it != voices.end()) { + // Заменяем существующую ноту + *it = voice; + } else { + // Добавляем новую ноту (ограничиваем полифонию 32 голосами) + if (voices.size() < 32) { + voices.push_back(voice); + } + } +} + +void AudioSynthesizer::removeNote(int note) { + for (auto& voice : voices) { + if (voice.note == note && !voice.isReleasing) { + voice.isReleasing = true; + voice.time = 0.0; + } + } +} + +void AudioSynthesizer::clearNotes() { + voices.clear(); +} + +void AudioSynthesizer::setInstrument(int instrument) { + // Обновляем настройки для новых нот + // Существующие ноты продолжают играть с текущими настройками + Q_UNUSED(instrument); +} + +void AudioSynthesizer::setReverbLevel(float level) { + reverbLevel = level < 0.0f ? 0.0f : (level > 1.0f ? 1.0f : level); +} + +void AudioSynthesizer::setChorusLevel(float level) { + chorusLevel = level < 0.0f ? 0.0f : (level > 1.0f ? 1.0f : level); +} + +short AudioSynthesizer::generateSample() { + double sample = 0.0; + + // Удаляем завершившиеся голоса + voices.erase(std::remove_if(voices.begin(), voices.end(), + [](const Voice& v) { + return v.isReleasing && v.envelope <= 0.001; + }), voices.end()); + + // Генерируем звук для каждого активного голоса + for (auto& voice : voices) { + updateEnvelope(voice); + + if (voice.envelope <= 0.001) { + continue; + } + + // Основной тон с возможным детюном + double phase = voice.phase; + + // Добавляем LFO модуляцию для хоруса + if (chorusLevel > 0) { + double lfo = sin(lfoPhase * 2 * M_PI) * chorusLevel * 0.1; + phase += lfo + voice.detune; + } + + // Генерируем волновую форму + double voiceSample = generateWaveform(phase, voice.waveform); + + // Применяем огибающую и амплитуду + voiceSample *= voice.amplitude * voice.envelope; + + sample += voiceSample; + + // Обновляем фазу для следующего сэмпла + voice.phase += voice.phaseInc; + if (voice.phase >= 1.0) { + voice.phase -= 1.0; + } + + voice.time += 1.0 / sampleRate; + } + + // Обновляем LFO фазу + lfoPhase += lfoInc; + if (lfoPhase >= 1.0) { + lfoPhase -= 1.0; + } + + // Применяем реверберацию (простой алгоритм задержки с обратной связью) + if (reverbLevel > 0.01f) { + float wet = static_cast(sample) * reverbLevel; + float dry = static_cast(sample) * (1.0f - reverbLevel * 0.5f); + + // Несколько задержек для более богатого звучания + int delay1 = static_cast(sampleRate * 0.03f); // 30ms + int delay2 = static_cast(sampleRate * 0.05f); // 50ms + int delay3 = static_cast(sampleRate * 0.07f); // 70ms + + size_t bufferSize = reverbBuffer.size(); + + float delayed1 = reverbBuffer[(reverbPos - delay1 + bufferSize) % bufferSize]; + float delayed2 = reverbBuffer[(reverbPos - delay2 + bufferSize) % bufferSize]; + float delayed3 = reverbBuffer[(reverbPos - delay3 + bufferSize) % bufferSize]; + + // Смешиваем задержки + float combinedDelay = delayed1 * 0.4f + delayed2 * 0.35f + delayed3 * 0.25f; + + // Обратная связь с демпфированием + wet = wet * 0.6f + combinedDelay * 0.4f; + + // Сохраняем в буфер реверберации + reverbBuffer[reverbPos] = wet * 0.7f; + reverbPos = (reverbPos + 1) % bufferSize; + + // Смешиваем сухой и мокрый сигналы + sample = dry + wet * 0.5f; + } + + // Ограничиваем амплитуду + if (sample > 1.0) sample = 1.0; + if (sample < -1.0) sample = -1.0; + + // Конвертируем в 16-битный формат + return static_cast(sample * 32767.0); +} + +double AudioSynthesizer::noteToFrequency(int note) { + // Стандартная формула MIDI ноты в частоту + // A4 (нота 69) = 440 Гц + return 440.0 * pow(2.0, (note - 69) / 12.0); +} + +double AudioSynthesizer::generateWaveform(double phase, int waveform) { + switch(waveform) { + case 0: // Синус + return sin(phase * 2 * M_PI); + + case 1: // Пила + return 2.0 * (phase - floor(phase + 0.5)); + + case 2: // Квадрат + return (phase < 0.5) ? 1.0 : -1.0; + + case 3: // Треугольник + return 1.0 - 4.0 * fabs(phase - 0.5); + + default: + return sin(phase * 2 * M_PI); + } +} + +void AudioSynthesizer::updateEnvelope(Voice& voice) { + double elapsed = voice.time; + + if (voice.isReleasing) { + // Фаза релиза + if (elapsed < voice.releaseTime && voice.releaseTime > 0) { + voice.envelope = voice.sustainLevel * (1.0 - elapsed / voice.releaseTime); + } else { + voice.envelope = 0.0; + } + } else { + // ADSR фазы + if (elapsed < voice.attackTime) { + // Атака + voice.envelope = elapsed / voice.attackTime; + } else if (elapsed < voice.attackTime + voice.decayTime) { + // Спад + double decayElapsed = elapsed - voice.attackTime; + voice.envelope = 1.0 - (1.0 - voice.sustainLevel) * (decayElapsed / voice.decayTime); + } else { + // Сустейн + voice.envelope = voice.sustainLevel; + } + } + + // Убеждаемся, что огибающая в допустимых пределах + if (voice.envelope < 0.0) voice.envelope = 0.0; + if (voice.envelope > 1.0) voice.envelope = 1.0; +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/audiosynthesizer.h b/Yamitracker-reoload/Yamitracker3/Yamitracker/audiosynthesizer.h new file mode 100644 index 0000000..7f60ed6 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/audiosynthesizer.h @@ -0,0 +1,56 @@ +#ifndef AUDIOSYNTHESIZER_H +#define AUDIOSYNTHESIZER_H + +#include +#include +#include +#include + +class AudioSynthesizer +{ +public: + AudioSynthesizer(int sampleRate = 44100); + ~AudioSynthesizer(); + + void addNote(int note, int velocity, int instrument = 0); + void removeNote(int note); + void clearNotes(); + + void setInstrument(int instrument); + void setReverbLevel(float level); + void setChorusLevel(float level); + + short generateSample(); + +private: + struct Voice { + int note; + double phase; + double phaseInc; + double amplitude; + double attackTime; + double decayTime; + double sustainLevel; + double releaseTime; + double envelope; + bool isReleasing; + double time; + int waveform; // 0=синус, 1=пила, 2=квадрат, 3=треугольник + double detune; + }; + + int sampleRate; + std::vector voices; + std::vector reverbBuffer; + int reverbPos; + float reverbLevel; + float chorusLevel; + double lfoPhase; + double lfoInc; + + double noteToFrequency(int note); + double generateWaveform(double phase, int waveform); + void updateEnvelope(Voice& voice); +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/brrconverter.cpp b/Yamitracker-reoload/Yamitracker3/Yamitracker/brrconverter.cpp new file mode 100644 index 0000000..5ab84fb --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/brrconverter.cpp @@ -0,0 +1,348 @@ +#include "brrconverter.h" +#include +#include + +BrrConverter::BrrConverter(QObject *parent) : QObject(parent) +{ +} + +bool BrrConverter::convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath) +{ + QFile wavFile(wavFilePath); + if (!wavFile.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open WAV file:" << wavFilePath; + return false; + } + + int sampleRate, channels, bitsPerSample, dataSize; + if (!decodeWavHeader(wavFile, sampleRate, channels, bitsPerSample, dataSize)) { + qDebug() << "Invalid WAV file format"; + wavFile.close(); + return false; + } + + // Читаем аудиоданные + QByteArray audioData = wavFile.read(dataSize); + wavFile.close(); + + // Конвертируем в 16-bit моно + QVector samples; + int bytesPerSample = bitsPerSample / 8; + int totalSamples = dataSize / (bytesPerSample * channels); + + for (int i = 0; i < totalSamples; ++i) { + int32_t sample = 0; + + for (int ch = 0; ch < channels; ++ch) { + int32_t channelSample = 0; + int offset = (i * channels + ch) * bytesPerSample; + + if (bitsPerSample == 8) { + channelSample = (int8_t)audioData[offset]; + channelSample = (channelSample - 128) * 256; + } else if (bitsPerSample == 16) { + channelSample = (int16_t)((audioData[offset + 1] << 8) | audioData[offset]); + } else if (bitsPerSample == 24) { + channelSample = (int32_t)((audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + if (channelSample & 0x800000) channelSample |= 0xFF000000; + channelSample >>= 8; + } else if (bitsPerSample == 32) { + channelSample = (int32_t)((audioData[offset + 3] << 24) | + (audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + channelSample >>= 16; + } + + sample += channelSample; + } + + // Микшируем каналы + sample /= channels; + samples.append(clamp16(sample)); + } + + // Понижаем частоту дискретизации для SNES (макс 32kHz -> 16kHz) + if (sampleRate > 16000) { + int ratio = sampleRate / 16000; + QVector downsampled; + for (int i = 0; i < samples.size(); i += ratio) { + downsampled.append(samples[i]); + } + samples = downsampled; + } else if (sampleRate < 16000) { + // Если частота ниже, повышаем (простое повторение) + int ratio = 16000 / sampleRate; + QVector upsampled; + for (int i = 0; i < samples.size(); ++i) { + for (int j = 0; j < ratio; ++j) { + upsampled.append(samples[i]); + } + } + samples = upsampled; + } + + // Открываем BRR файл для записи + QFile brrFile(brrFilePath); + if (!brrFile.open(QIODevice::WriteOnly)) { + qDebug() << "Cannot open BRR file for writing:" << brrFilePath; + return false; + } + + ADPCMState state; + QVector blockSamples; + + // Конвертируем в BRR блоками по 16 сэмплов + for (int i = 0; i < samples.size(); ++i) { + int encoded = encodeADPCMNibble(samples[i], state); + blockSamples.append(encoded); + + if (blockSamples.size() == 32) { // 32 ниббла = 16 сэмплов + writeBrrBlock(brrFile, blockSamples, false); + blockSamples.clear(); + } + } + + // Записываем последний неполный блок + if (!blockSamples.isEmpty()) { + // Дополняем до 32 нибблов + while (blockSamples.size() < 32) { + blockSamples.append(0); + } + writeBrrBlock(brrFile, blockSamples, true); // Последний блок с флагом loop + } else if (samples.size() > 0) { + // Если был полный последний блок, помечаем его как loop + brrFile.seek(brrFile.size() - BRR_BLOCK_SIZE); + unsigned char header = 0x03; // Фильтр 0, loop flag = 1 + brrFile.write((char*)&header, 1); + } + + brrFile.close(); + qDebug() << "BRR file created:" << brrFilePath << "samples:" << samples.size() << "sample rate:" << sampleRate; + return true; +} + +bool BrrConverter::convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath) +{ + Q_UNUSED(midiFilePath); + Q_UNUSED(brrFilePath); + + qDebug() << "MIDI to BRR conversion requires MIDI synthesizer"; + qDebug() << "Please convert MIDI to WAV first, then use WAV to BRR"; + + return false; +} + +bool BrrConverter::decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize) +{ + char buffer[44]; + if (file.read(buffer, 44) != 44) { + return false; + } + + // Проверяем RIFF заголовок + if (buffer[0] != 'R' || buffer[1] != 'I' || buffer[2] != 'F' || buffer[3] != 'F') { + return false; + } + + // Проверяем WAVE формат + if (buffer[8] != 'W' || buffer[9] != 'A' || buffer[10] != 'V' || buffer[11] != 'E') { + return false; + } + + // Проверяем fmt chunk + if (buffer[12] != 'f' || buffer[13] != 'm' || buffer[14] != 't' || buffer[15] != ' ') { + return false; + } + + // Читаем параметры + int fmtSize = *(int*)(buffer + 16); + if (fmtSize < 16) return false; + + int audioFormat = *(short*)(buffer + 20); + if (audioFormat != 1) return false; // Только PCM + + channels = *(short*)(buffer + 22); + sampleRate = *(int*)(buffer + 24); + bitsPerSample = *(short*)(buffer + 34); + + // Ищем data chunk + int offset = 36; + while (offset < file.size()) { + file.seek(offset); + char chunkId[4]; + if (file.read(chunkId, 4) != 4) break; + + int chunkSize; + if (file.read((char*)&chunkSize, 4) != 4) break; + + if (chunkId[0] == 'd' && chunkId[1] == 'a' && chunkId[2] == 't' && chunkId[3] == 'a') { + dataSize = chunkSize; + file.seek(offset + 8); + return true; + } + + offset += 8 + chunkSize; + } + + return false; +} + +int16_t BrrConverter::clamp16(int sample) +{ + if (sample > 32767) return 32767; + if (sample < -32768) return -32768; + return (int16_t)sample; +} + +int BrrConverter::encodeADPCMNibble(int sample, ADPCMState &state) +{ + // Убираем неиспользуемые переменные или используем Q_UNUSED + int diff = sample - state.prev_sample; + Q_UNUSED(diff); // Помечаем как неиспользуемую + + int step = step_table[state.prev_index]; + Q_UNUSED(step); // Помечаем как неиспользуемую + + // Квантование + int nibble = 0; + Q_UNUSED(nibble); // Помечаем как неиспользуемую + + int predicted = state.prev_sample; + + // Применяем фильтр (простейший - без фильтра) + int filtered = predicted; + + // Находим наилучший nibble + int best_nibble = 0; + int best_error = INT_MAX; + + for (int n = 0; n < 16; ++n) { + int step_index = state.prev_index + ((n & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (n & 8) ? -current_step : current_step; + + int current_sample = filtered + delta; + int error = abs(sample - current_sample); + + if (error < best_error) { + best_error = error; + best_nibble = n; + } + } + + // Декодируем выбранный nibble для обновления состояния + int step_index = state.prev_index + ((best_nibble & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (best_nibble & 8) ? -current_step : current_step; + + state.prev_sample = filtered + delta; + state.prev_index = step_index; + + // Ограничиваем индекс + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + // Ограничиваем сэмпл + state.prev_sample = clamp16(state.prev_sample); + + return best_nibble; +} + +void BrrConverter::writeBrrBlock(QFile &file, const QVector &samples, bool loop) +{ + if (samples.size() != 32) { + qDebug() << "Invalid sample count for BRR block:" << samples.size(); + return; + } + + unsigned char header = 0x00; + if (loop) { + header = 0x03; // Фильтр 0 + loop + } + + file.write((char*)&header, 1); + + // Упаковываем 32 ниббла в 8 байт + for (int i = 0; i < 16; ++i) { + unsigned char byte = (samples[i * 2] << 4) | (samples[i * 2 + 1] & 0x0F); + file.write((char*)&byte, 1); + } +} + +int BrrConverter::decodeADPCMNibble(int nibble, ADPCMState &state) +{ + int step = step_table[state.prev_index]; + int delta = step >> 3; + + if (nibble & 1) delta += step >> 2; + if (nibble & 2) delta += step >> 1; + if (nibble & 4) delta += step; + + if (nibble & 8) delta = -delta; + + // Применяем фильтр (простейший) + int sample = state.prev_sample + delta; + + // Ограничиваем + sample = clamp16(sample); + + // Обновляем индекс + state.prev_index += ((nibble & 7) * 2 - 7); + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + state.prev_sample = sample; + + return sample; +} + +QVector BrrConverter::decodeBrrFile(const QString &brrFilePath) +{ + QVector samples; + QFile file(brrFilePath); + + if (!file.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open BRR file for reading:" << brrFilePath; + return samples; + } + + ADPCMState state; + + while (!file.atEnd()) { + unsigned char header; + if (file.read((char*)&header, 1) != 1) break; + + unsigned char data[8]; + if (file.read((char*)data, 8) != 8) break; + + // Извлекаем нибблы + for (int i = 0; i < 8; ++i) { + unsigned char byte = data[i]; + int nibble1 = (byte >> 4) & 0x0F; + int nibble2 = byte & 0x0F; + + int sample1 = decodeADPCMNibble(nibble1, state); + int sample2 = decodeADPCMNibble(nibble2, state); + + samples.append(sample1); + samples.append(sample2); + } + + // Проверяем конец + if (header & 0x01) { + break; // Конец сэмпла + } + } + + file.close(); + return samples; +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/brrconverter.h b/Yamitracker-reoload/Yamitracker3/Yamitracker/brrconverter.h new file mode 100644 index 0000000..175879a --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/brrconverter.h @@ -0,0 +1,54 @@ +#ifndef BRRCONVERTER_H +#define BRRCONVERTER_H + +#include +#include +#include +#include +#include + +class BrrConverter : public QObject +{ + Q_OBJECT + +public: + BrrConverter(QObject *parent = nullptr); + + bool convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath); + bool convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath); + +private: + struct ADPCMState { + int prev_sample; + int prev_index; + + ADPCMState() : prev_sample(0), prev_index(0) {} + }; + + struct BRRBlock { + unsigned char header; + unsigned char data[8]; + }; + + bool decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize); + int16_t clamp16(int sample); + int encodeADPCMNibble(int sample, ADPCMState &state); + void writeBrrBlock(QFile &file, const QVector &samples, bool loop = false); + int decodeADPCMNibble(int nibble, ADPCMState &state); + QVector decodeBrrFile(const QString &brrFilePath); + + static const int BRR_BLOCK_SIZE = 9; + static const int SAMPLES_PER_BLOCK = 16; + static const int FILTER_TYPES = 4; + + const int step_table[89] = { + 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, + 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, + 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, + 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327, + 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, + 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 + }; +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/.qmake.stash b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/Makefile b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/Makefile new file mode 100644 index 0000000..d8cd5cf --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/Makefile @@ -0,0 +1,442 @@ +############################################################################# +# Makefile for building: Yamitracker +# Generated by qmake (3.1) (Qt 5.15.13) +# Project: ../Yamitracker.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Yamitracker1.0.0 +DISTDIR = /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build/.tmp/Yamitracker1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../main.cpp \ + ../yamitracker.cpp \ + ../simplemidiwriter.cpp \ + ../brrconverter.cpp moc_yamitracker.cpp \ + moc_brrconverter.cpp +OBJECTS = main.o \ + yamitracker.o \ + simplemidiwriter.o \ + brrconverter.o \ + moc_yamitracker.o \ + moc_brrconverter.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../Yamitracker.pro ../yamitracker.h \ + ../simplemidiwriter.h \ + ../brrconverter.h ../main.cpp \ + ../yamitracker.cpp \ + ../simplemidiwriter.cpp \ + ../brrconverter.cpp +QMAKE_TARGET = Yamitracker +DESTDIR = +TARGET = Yamitracker + + +first: all +####### Build rules + +Yamitracker: ui_yamitracker.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../Yamitracker.pro + $(QMAKE) -o Makefile ../Yamitracker.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../Yamitracker.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../Yamitracker.pro + +qmake_all: FORCE + + +all: Makefile Yamitracker + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.h ../simplemidiwriter.h ../brrconverter.h $(DISTDIR)/ + $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplemidiwriter.cpp ../brrconverter.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_yamitracker.cpp moc_brrconverter.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_yamitracker.cpp moc_brrconverter.cpp +moc_yamitracker.cpp: ../yamitracker.h \ + ../simplemidiwriter.h \ + ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp + +moc_brrconverter.cpp: ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../brrconverter.h -o moc_brrconverter.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_yamitracker.h +compiler_uic_clean: + -$(DEL_FILE) ui_yamitracker.h +ui_yamitracker.h: ../yamitracker.ui \ + /usr/lib/qt5/bin/uic + /usr/lib/qt5/bin/uic ../yamitracker.ui -o ui_yamitracker.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: ../main.cpp ../yamitracker.h \ + ../simplemidiwriter.h \ + ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp + +yamitracker.o: ../yamitracker.cpp ../yamitracker.h \ + ../simplemidiwriter.h \ + ../brrconverter.h \ + ui_yamitracker.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp + +simplemidiwriter.o: ../simplemidiwriter.cpp ../simplemidiwriter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplemidiwriter.o ../simplemidiwriter.cpp + +brrconverter.o: ../brrconverter.cpp ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o brrconverter.o ../brrconverter.cpp + +moc_yamitracker.o: moc_yamitracker.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp + +moc_brrconverter.o: moc_brrconverter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_brrconverter.o moc_brrconverter.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin + $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/Yamitracker b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/Yamitracker new file mode 100755 index 0000000..626d770 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/Yamitracker differ diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/brrconverter.o b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/brrconverter.o new file mode 100644 index 0000000..149ec06 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/main.o b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/main.o new file mode 100644 index 0000000..edc2e30 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/main.o differ diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/moc_brrconverter.cpp b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/moc_brrconverter.cpp new file mode 100644 index 0000000..a11b9fc --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/moc_brrconverter.cpp @@ -0,0 +1,95 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'brrconverter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../brrconverter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'brrconverter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_BrrConverter_t { + QByteArrayData data[1]; + char stringdata0[13]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_BrrConverter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_BrrConverter_t qt_meta_stringdata_BrrConverter = { + { +QT_MOC_LITERAL(0, 0, 12) // "BrrConverter" + + }, + "BrrConverter" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_BrrConverter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void BrrConverter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject BrrConverter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_BrrConverter.data, + qt_meta_data_BrrConverter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *BrrConverter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *BrrConverter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_BrrConverter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int BrrConverter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/moc_brrconverter.o b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/moc_brrconverter.o new file mode 100644 index 0000000..fa3b784 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/moc_brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/moc_predefs.h b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/moc_predefs.h new file mode 100644 index 0000000..f29ad61 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/moc_predefs.h @@ -0,0 +1,464 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __cpp_nontype_template_parameter_auto 201606L +#define __UINT_LEAST16_MAX__ 0xffff +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __ATOMIC_ACQUIRE 2 +#define __FLT128_MAX_10_EXP__ 4932 +#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __cpp_aggregate_nsdmi 201304L +#define __UINT_LEAST8_TYPE__ unsigned char +#define __SIZEOF_FLOAT80__ 16 +#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 0xff +#define __SCHAR_WIDTH__ 8 +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 201411L +#define __BFLT16_MIN_10_EXP__ (-37) +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __WCHAR_MAX__ 0x7fffffff +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __cpp_binary_literals 201304L +#define __FLT64_DECIMAL_DIG__ 17 +#define __CET__ 3 +#define __cpp_noexcept_function_type 201510L +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __cpp_variadic_templates 200704L +#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __cpp_variable_templates 201304L +#define __FLT32X_MAX_EXP__ 1024 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __FLT32_HAS_DENORM__ 1 +#define __UINT_FAST8_MAX__ 0xff +#define __cpp_rvalue_reference 200610L +#define __cpp_nested_namespace_definitions 201411L +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __LDBL_HAS_INFINITY__ 1 +#define __INT_LEAST8_WIDTH__ 8 +#define __cpp_variadic_using 201611L +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL +#define __INT_LEAST8_MAX__ 0x7f +#define __cpp_attributes 200809L +#define __cpp_capture_star_this 201603L +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __FLT64X_MAX_10_EXP__ 4932 +#define __cpp_if_constexpr 201606L +#define __BFLT16_MAX_10_EXP__ 38 +#define __BFLT16_MAX_EXP__ 128 +#define __LDBL_IS_IEC_60559__ 1 +#define __FLT64X_HAS_QUIET_NAN__ 1 +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +#define __UINTMAX_TYPE__ long unsigned int +#define __cpp_nsdmi 200809L +#define __BFLT16_DECIMAL_DIG__ 4 +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __OPTIMIZE__ 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +#define __FLT128_MIN_EXP__ (-16381) +#define __WINT_MIN__ 0U +#define __FLT128_MIN_10_EXP__ (-4931) +#define __FLT32X_IS_IEC_60559__ 1 +#define __INT_LEAST16_WIDTH__ 16 +#define __SCHAR_MAX__ 0x7f +#define __FLT128_MANT_DIG__ 113 +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __INT64_C(c) c ## L +#define __SSP_STRONG__ 3 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __ATOMIC_SEQ_CST 5 +#define _FORTIFY_SOURCE 3 +#define __unix 1 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MANT_DIG__ 53 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __cpp_aligned_new 201606L +#define __FLT32_MAX_10_EXP__ 38 +#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +#define __STDC_HOSTED__ 1 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype_auto 201304L +#define __DBL_DIG__ 15 +#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __FLT32_IS_IEC_60559__ 1 +#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +#define __DBL_IS_IEC_60559__ 1 +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806L +#define __cpp_enumerator_attributes 201411L +#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +#define __FLT32X_HAS_INFINITY__ 1 +#define __unix__ 1 +#define __INT_WIDTH__ 32 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __DECIMAL_DIG__ 21 +#define __STDC_IEC_559_COMPLEX__ 1 +#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +#define __gnu_linux__ 1 +#define __INT16_MAX__ 0x7fff +#define __FLT64_MIN_EXP__ (-1021) +#define __FLT64X_MIN_10_EXP__ (-4931) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __cpp_return_type_deduction 201304L +#define __FLT16_MIN_EXP__ (-13) +#define __FLT64_MANT_DIG__ 53 +#define __FLT64X_MANT_DIG__ 64 +#define __BFLT16_DIG__ 2 +#define __GNUC__ 13 +#define __GXX_RTTI 1 +#define __pie__ 2 +#define __MMX__ 1 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __BIGGEST_ALIGNMENT__ 16 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __BFLT16_IS_IEC_60559__ 0 +#define __FLT16_MAX_10_EXP__ 4 +#define __cpp_delegating_constructors 200604L +#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __cpp_raw_strings 200710L +#define __INT_FAST32_MAX__ 0x7fffffffffffffffL +#define __DBL_HAS_INFINITY__ 1 +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __SIZEOF_FLOAT__ 4 +#define __HAVE_SPECULATION_SAFE_VALUE 1 +#define __cpp_fold_expressions 201603L +#define __DEC32_MIN_EXP__ (-94) +#define __INTPTR_WIDTH__ 64 +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ long int +#define __MMX_WITH_SSE__ 1 +#define __LDBL_HAS_DENORM__ 1 +#define __SEG_GS 1 +#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +#define __cplusplus 201703L +#define __cpp_ref_qualifiers 200710L +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610L +#define __DBL_MAX_EXP__ 1024 +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __FLT16_DECIMAL_DIG__ 5 +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 0x7fffffffffffffffL +#define __amd64 1 +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __GNUG__ 13 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 8 +#define __BFLT16_HAS_INFINITY__ 1 +#define __FLT64X_MIN_EXP__ (-16381) +#define __SIZEOF_WINT_T__ 4 +#define __FLT32X_DIG__ 15 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806L +#define __FLT32_MAX_EXP__ 128 +#define __cpp_hex_float 201603L +#define __GXX_ABI_VERSION 1018 +#define __FLT_MIN_EXP__ (-125) +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __x86_64 1 +#define __cpp_lambdas 200907L +#define __INT_FAST64_TYPE__ long int +#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +#define __cpp_template_auto 201606L +#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __SIZEOF_POINTER__ 8 +#define __SIZE_TYPE__ long unsigned int +#define __LP64__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +#define __LDBL_MAX_EXP__ 16384 +#define __DECIMAL_BID_FORMAT__ 1 +#define __FLT64_MIN_10_EXP__ (-307) +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT64X_DECIMAL_DIG__ 21 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __FLT128_HAS_INFINITY__ 1 +#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __FLT_DIG__ 6 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 21 +#define __VERSION__ "13.3.0" +#define __UINT64_C(c) c ## UL +#define __cpp_unicode_characters 201411L +#define _STDC_PREDEF_H 1 +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT128_MAX_EXP__ 16384 +#define __FLT32_MANT_DIG__ 24 +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT32X_MIN_EXP__ (-1021) +#define __STDC_IEC_60559_COMPLEX__ 201404L +#define __cpp_aggregate_bases 201603L +#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +#define __FLT128_HAS_DENORM__ 1 +#define __FLT32_DECIMAL_DIG__ 9 +#define __FLT128_DIG__ 33 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __DEC128_MAX_EXP__ 6145 +#define unix 1 +#define __DBL_HAS_DENORM__ 1 +#define __cpp_rtti 199711L +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __FLT_IS_IEC_60559__ 1 +#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +#define __FLT64X_DIG__ 18 +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309L +#define __ELF__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __UINT32_TYPE__ unsigned int +#define __BFLT16_HAS_QUIET_NAN__ 1 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +#define __UINTMAX_C(c) c ## UL +#define __FLT16_DIG__ 3 +#define __k8 1 +#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __cpp_constexpr 201603L +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +#define __STDC_IEC_60559_BFP__ 201404L +#define __SIZEOF_PTRDIFF_T__ 8 +#define __FLT64X_HAS_INFINITY__ 1 +#define __SIZEOF_LONG__ 8 +#define __LDBL_DIG__ 18 +#define __FLT64_IS_IEC_60559__ 1 +#define __x86_64__ 1 +#define __FLT16_IS_IEC_60559__ 1 +#define __FLT16_MAX_EXP__ 16 +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __INT_FAST16_MAX__ 0x7fffffffffffffffL +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __LONG_MAX__ 0x7fffffffffffffffL +#define __FLT64X_HAS_DENORM__ 1 +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" +#define __cpp_unicode_literals 200710L +#define __UINT_FAST16_TYPE__ long unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __INT_FAST32_WIDTH__ 64 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __SIZE_WIDTH__ 64 +#define __SEG_FS 1 +#define __INT_LEAST16_MAX__ 0x7fff +#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __DEC64_MANT_DIG__ 16 +#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +#define __cpp_structured_bindings 201606L +#define __SIZEOF_INT__ 4 +#define __DEC32_MAX_EXP__ 97 +#define __INT_FAST8_MAX__ 0x7f +#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __INTPTR_MAX__ 0x7fffffffffffffffL +#define __cpp_sized_deallocation 201309L +#define __cpp_guaranteed_copy_elision 201606L +#define linux 1 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __EXCEPTIONS 1 +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 64 +#define __LDBL_MANT_DIG__ 64 +#define __cpp_range_based_for 201603L +#define __INT_FAST16_WIDTH__ 64 +#define __FLT64_HAS_INFINITY__ 1 +#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __FLT16_HAS_INFINITY__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __cpp_nontype_template_args 201411L +#define __DEC32_MANT_DIG__ 7 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __pic__ 2 +#define __UINTPTR_MAX__ 0xffffffffffffffffUL +#define __INT_FAST64_WIDTH__ 64 +#define __cpp_decltype 200707L +#define __INT_FAST64_MAX__ 0x7fffffffffffffffL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +#define __FLT32_HAS_INFINITY__ 1 +#define __FLT64X_MAX_EXP__ 16384 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __cpp_inline_variables 201606L +#define __BFLT16_MIN_EXP__ (-125) +#define __INT_MAX__ 0x7fffffff +#define __linux__ 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __cpp_inheriting_constructors 201511L +#define __SIZEOF_FLOAT128__ 16 +#define __BFLT16_MANT_DIG__ 8 +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __amd64__ 1 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST64_WIDTH__ 64 +#define __FLT32X_MAX_10_EXP__ 308 +#define __cpp_namespace_attributes 201411L +#define __SIZEOF_INT128__ 16 +#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +#define __FLT64X_IS_IEC_60559__ 1 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +#define __INT_LEAST32_TYPE__ int +#define _LP64 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __SIZEOF_WCHAR_T__ 4 +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __FLT128_HAS_QUIET_NAN__ 1 +#define __INTMAX_MAX__ 0x7fffffffffffffffL +#define __INT_FAST8_TYPE__ signed char +#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +#define __STDCPP_THREADS__ 1 +#define __BFLT16_HAS_DENORM__ 1 +#define __GNUC_STDC_INLINE__ 1 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +#define __FLT16_HAS_DENORM__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __FXSR__ 1 +#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __INTMAX_WIDTH__ 64 +#define __cpp_runtime_arrays 198712L +#define __FLT32_DIG__ 6 +#define __UINT64_TYPE__ long unsigned int +#define __UINT32_C(c) c ## U +#define __cpp_alias_templates 200704L +#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +#define __FLT128_IS_IEC_60559__ 1 +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 64 +#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +#define __PIC__ 2 +#define __INT32_MAX__ 0x7fffffff +#define __UINT_FAST32_TYPE__ long unsigned int +#define __FLT16_MANT_DIG__ 11 +#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F +#define __SSE2__ 1 +#define __cpp_deduction_guides 201703L +#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711L +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long int +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 3 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __UINTMAX_MAX__ 0xffffffffffffffffUL +#define __PIE__ 2 +#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +#define __cpp_template_template_args 201611L +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +#define __INT16_C(c) c +#define __STDC__ 1 +#define __PTRDIFF_TYPE__ long int +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __cpp_generic_lambdas 201304L +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809L +#define __FLT128_DECIMAL_DIG__ 36 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL +#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __SIZE_MAX__ 0xffffffffffffffffUL +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __cpp_init_captures 201304L +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/moc_yamitracker.cpp b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/moc_yamitracker.cpp new file mode 100644 index 0000000..872a09f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/moc_yamitracker.cpp @@ -0,0 +1,369 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'yamitracker.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../yamitracker.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'yamitracker.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SerialReader_t { + QByteArrayData data[13]; + char stringdata0[145]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SerialReader_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = { + { +QT_MOC_LITERAL(0, 0, 12), // "SerialReader" +QT_MOC_LITERAL(1, 13, 14), // "noteOnReceived" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 4), // "note" +QT_MOC_LITERAL(4, 34, 8), // "velocity" +QT_MOC_LITERAL(5, 43, 15), // "noteOffReceived" +QT_MOC_LITERAL(6, 59, 5), // "error" +QT_MOC_LITERAL(7, 65, 7), // "message" +QT_MOC_LITERAL(8, 73, 23), // "connectionStatusChanged" +QT_MOC_LITERAL(9, 97, 9), // "connected" +QT_MOC_LITERAL(10, 107, 18), // "deviceInfoReceived" +QT_MOC_LITERAL(11, 126, 12), // "manufacturer" +QT_MOC_LITERAL(12, 139, 5) // "model" + + }, + "SerialReader\0noteOnReceived\0\0note\0" + "velocity\0noteOffReceived\0error\0message\0" + "connectionStatusChanged\0connected\0" + "deviceInfoReceived\0manufacturer\0model" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SerialReader[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 5, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 2, 39, 2, 0x06 /* Public */, + 5, 1, 44, 2, 0x06 /* Public */, + 6, 1, 47, 2, 0x06 /* Public */, + 8, 1, 50, 2, 0x06 /* Public */, + 10, 2, 53, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, QMetaType::Bool, 9, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 11, 12, + + 0 // eod +}; + +void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->noteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->noteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->error((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->connectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: _t->deviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SerialReader::*)(const QString & , int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOnReceived)) { + *result = 0; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOffReceived)) { + *result = 1; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::error)) { + *result = 2; + return; + } + } + { + using _t = void (SerialReader::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::connectionStatusChanged)) { + *result = 3; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & , const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::deviceInfoReceived)) { + *result = 4; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SerialReader::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SerialReader.data, + qt_meta_data_SerialReader, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SerialReader::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SerialReader::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0)) + return static_cast(this); + return QThread::qt_metacast(_clname); +} + +int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QThread::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} + +// SIGNAL 0 +void SerialReader::noteOnReceived(const QString & _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SerialReader::noteOffReceived(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void SerialReader::error(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void SerialReader::connectionStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} + +// SIGNAL 4 +void SerialReader::deviceInfoReceived(const QString & _t1, const QString & _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 4, _a); +} +struct qt_meta_stringdata_Yamitracker_t { + QByteArrayData data[23]; + char stringdata0[326]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_Yamitracker_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = { + { +QT_MOC_LITERAL(0, 0, 11), // "Yamitracker" +QT_MOC_LITERAL(1, 12, 16), // "onNoteOnReceived" +QT_MOC_LITERAL(2, 29, 0), // "" +QT_MOC_LITERAL(3, 30, 4), // "note" +QT_MOC_LITERAL(4, 35, 8), // "velocity" +QT_MOC_LITERAL(5, 44, 17), // "onNoteOffReceived" +QT_MOC_LITERAL(6, 62, 7), // "onError" +QT_MOC_LITERAL(7, 70, 7), // "message" +QT_MOC_LITERAL(8, 78, 13), // "onPlayClicked" +QT_MOC_LITERAL(9, 92, 13), // "onStopClicked" +QT_MOC_LITERAL(10, 106, 21), // "onConvertToBrrClicked" +QT_MOC_LITERAL(11, 128, 18), // "clearStatusMessage" +QT_MOC_LITERAL(12, 147, 25), // "onConnectionStatusChanged" +QT_MOC_LITERAL(13, 173, 9), // "connected" +QT_MOC_LITERAL(14, 183, 16), // "attemptReconnect" +QT_MOC_LITERAL(15, 200, 20), // "onDeviceInfoReceived" +QT_MOC_LITERAL(16, 221, 12), // "manufacturer" +QT_MOC_LITERAL(17, 234, 5), // "model" +QT_MOC_LITERAL(18, 240, 23), // "onRefreshDevicesClicked" +QT_MOC_LITERAL(19, 264, 20), // "onConversionFinished" +QT_MOC_LITERAL(20, 285, 8), // "exitCode" +QT_MOC_LITERAL(21, 294, 20), // "QProcess::ExitStatus" +QT_MOC_LITERAL(22, 315, 10) // "exitStatus" + + }, + "Yamitracker\0onNoteOnReceived\0\0note\0" + "velocity\0onNoteOffReceived\0onError\0" + "message\0onPlayClicked\0onStopClicked\0" + "onConvertToBrrClicked\0clearStatusMessage\0" + "onConnectionStatusChanged\0connected\0" + "attemptReconnect\0onDeviceInfoReceived\0" + "manufacturer\0model\0onRefreshDevicesClicked\0" + "onConversionFinished\0exitCode\0" + "QProcess::ExitStatus\0exitStatus" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_Yamitracker[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 12, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 2, 74, 2, 0x08 /* Private */, + 5, 1, 79, 2, 0x08 /* Private */, + 6, 1, 82, 2, 0x08 /* Private */, + 8, 0, 85, 2, 0x08 /* Private */, + 9, 0, 86, 2, 0x08 /* Private */, + 10, 0, 87, 2, 0x08 /* Private */, + 11, 0, 88, 2, 0x08 /* Private */, + 12, 1, 89, 2, 0x08 /* Private */, + 14, 0, 92, 2, 0x08 /* Private */, + 15, 2, 93, 2, 0x08 /* Private */, + 18, 0, 98, 2, 0x08 /* Private */, + 19, 2, 99, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Bool, 13, + QMetaType::Void, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 16, 17, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 0x80000000 | 21, 20, 22, + + 0 // eod +}; + +void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onNoteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->onNoteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->onError((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->onPlayClicked(); break; + case 4: _t->onStopClicked(); break; + case 5: _t->onConvertToBrrClicked(); break; + case 6: _t->clearStatusMessage(); break; + case 7: _t->onConnectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 8: _t->attemptReconnect(); break; + case 9: _t->onDeviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + case 10: _t->onRefreshDevicesClicked(); break; + case 11: _t->onConversionFinished((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QProcess::ExitStatus(*)>(_a[2]))); break; + default: ; + } + } +} + +QT_INIT_METAOBJECT const QMetaObject Yamitracker::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_Yamitracker.data, + qt_meta_data_Yamitracker, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *Yamitracker::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *Yamitracker::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 12) + qt_static_metacall(this, _c, _id, _a); + _id -= 12; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 12) + *reinterpret_cast(_a[0]) = -1; + _id -= 12; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/moc_yamitracker.o b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/moc_yamitracker.o new file mode 100644 index 0000000..7650699 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/moc_yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/recording_20251203_145602.mid b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/recording_20251203_145602.mid new file mode 100644 index 0000000..4fef3ed Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/recording_20251203_145602.mid differ diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/recording_20251203_150400.mid b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/recording_20251203_150400.mid new file mode 100644 index 0000000..20792c1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/recording_20251203_150400.mid differ diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/recording_20251203_150641.brr b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/recording_20251203_150641.brr new file mode 100644 index 0000000..45f1399 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/recording_20251203_150641.brr differ diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/recording_20251203_150641.mid b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/recording_20251203_150641.mid new file mode 100644 index 0000000..0f8d23c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/recording_20251203_150641.mid differ diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/simplemidiwriter.o b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/simplemidiwriter.o new file mode 100644 index 0000000..5f9e314 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/simplemidiwriter.o differ diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/ui_yamitracker.h b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/ui_yamitracker.h new file mode 100644 index 0000000..b1f1096 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/ui_yamitracker.h @@ -0,0 +1,625 @@ +/******************************************************************************** +** Form generated from reading UI file 'yamitracker.ui' +** +** Created by: Qt User Interface Compiler version 5.15.13 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_YAMITRACKER_H +#define UI_YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Yamitracker +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QLabel *statusLabel; + QLabel *deviceLabel; + QLabel *keysInfoLabel; + QProgressBar *volumeBar; + QHBoxLayout *controlLayout; + QPushButton *playButton; + QPushButton *stopButton; + QPushButton *convertButton; + QPushButton *refreshDevicesButton; + QWidget *pianoWidget; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *whiteKeysLayout; + QPushButton *key_C1; + QPushButton *key_D1; + QPushButton *key_E1; + QPushButton *key_F1; + QPushButton *key_G1; + QPushButton *key_A1; + QPushButton *key_B1; + QPushButton *key_C2; + QPushButton *key_D2; + QPushButton *key_E2; + QPushButton *key_F2; + QPushButton *key_G2; + QPushButton *key_A2; + QPushButton *key_B2; + QPushButton *key_C3; + QPushButton *key_D3; + QPushButton *key_E3; + QPushButton *key_F3; + QPushButton *key_G3; + QPushButton *key_A3; + QPushButton *key_B3; + QPushButton *key_C4; + QPushButton *key_D4; + QPushButton *key_E4; + QPushButton *key_F4; + QPushButton *key_G4; + QPushButton *key_A4; + QPushButton *key_B4; + QPushButton *key_C5; + QPushButton *key_D5; + QPushButton *key_E5; + QPushButton *key_F5; + QPushButton *key_G5; + QPushButton *key_A5; + QPushButton *key_B5; + QPushButton *key_C6; + QHBoxLayout *blackKeysLayout; + QSpacerItem *horizontalSpacer_1; + QPushButton *key_Cs1; + QPushButton *key_Ds1; + QSpacerItem *horizontalSpacer_2; + QPushButton *key_Fs1; + QPushButton *key_Gs1; + QPushButton *key_As1; + QSpacerItem *horizontalSpacer_3; + QPushButton *key_Cs2; + QPushButton *key_Ds2; + QSpacerItem *horizontalSpacer_4; + QPushButton *key_Fs2; + QPushButton *key_Gs2; + QPushButton *key_As2; + QSpacerItem *horizontalSpacer_5; + QPushButton *key_Cs3; + QPushButton *key_Ds3; + QSpacerItem *horizontalSpacer_6; + QPushButton *key_Fs3; + QPushButton *key_Gs3; + QPushButton *key_As3; + QSpacerItem *horizontalSpacer_7; + QPushButton *key_Cs4; + QPushButton *key_Ds4; + QSpacerItem *horizontalSpacer_8; + QPushButton *key_Fs4; + QPushButton *key_Gs4; + QPushButton *key_As4; + QSpacerItem *horizontalSpacer_9; + QPushButton *key_Cs5; + QPushButton *key_Ds5; + QSpacerItem *horizontalSpacer_10; + QPushButton *key_Fs5; + QPushButton *key_Gs5; + QPushButton *key_As5; + QSpacerItem *horizontalSpacer_11; + + void setupUi(QMainWindow *Yamitracker) + { + if (Yamitracker->objectName().isEmpty()) + Yamitracker->setObjectName(QString::fromUtf8("Yamitracker")); + Yamitracker->resize(1200, 600); + centralwidget = new QWidget(Yamitracker); + centralwidget->setObjectName(QString::fromUtf8("centralwidget")); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + statusLabel = new QLabel(centralwidget); + statusLabel->setObjectName(QString::fromUtf8("statusLabel")); + + verticalLayout->addWidget(statusLabel); + + deviceLabel = new QLabel(centralwidget); + deviceLabel->setObjectName(QString::fromUtf8("deviceLabel")); + + verticalLayout->addWidget(deviceLabel); + + keysInfoLabel = new QLabel(centralwidget); + keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel")); + + verticalLayout->addWidget(keysInfoLabel); + + volumeBar = new QProgressBar(centralwidget); + volumeBar->setObjectName(QString::fromUtf8("volumeBar")); + volumeBar->setValue(0); + + verticalLayout->addWidget(volumeBar); + + controlLayout = new QHBoxLayout(); + controlLayout->setObjectName(QString::fromUtf8("controlLayout")); + playButton = new QPushButton(centralwidget); + playButton->setObjectName(QString::fromUtf8("playButton")); + + controlLayout->addWidget(playButton); + + stopButton = new QPushButton(centralwidget); + stopButton->setObjectName(QString::fromUtf8("stopButton")); + + controlLayout->addWidget(stopButton); + + convertButton = new QPushButton(centralwidget); + convertButton->setObjectName(QString::fromUtf8("convertButton")); + + controlLayout->addWidget(convertButton); + + refreshDevicesButton = new QPushButton(centralwidget); + refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton")); + + controlLayout->addWidget(refreshDevicesButton); + + + verticalLayout->addLayout(controlLayout); + + pianoWidget = new QWidget(centralwidget); + pianoWidget->setObjectName(QString::fromUtf8("pianoWidget")); + verticalLayout_2 = new QVBoxLayout(pianoWidget); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + whiteKeysLayout = new QHBoxLayout(); + whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout")); + key_C1 = new QPushButton(pianoWidget); + key_C1->setObjectName(QString::fromUtf8("key_C1")); + + whiteKeysLayout->addWidget(key_C1); + + key_D1 = new QPushButton(pianoWidget); + key_D1->setObjectName(QString::fromUtf8("key_D1")); + + whiteKeysLayout->addWidget(key_D1); + + key_E1 = new QPushButton(pianoWidget); + key_E1->setObjectName(QString::fromUtf8("key_E1")); + + whiteKeysLayout->addWidget(key_E1); + + key_F1 = new QPushButton(pianoWidget); + key_F1->setObjectName(QString::fromUtf8("key_F1")); + + whiteKeysLayout->addWidget(key_F1); + + key_G1 = new QPushButton(pianoWidget); + key_G1->setObjectName(QString::fromUtf8("key_G1")); + + whiteKeysLayout->addWidget(key_G1); + + key_A1 = new QPushButton(pianoWidget); + key_A1->setObjectName(QString::fromUtf8("key_A1")); + + whiteKeysLayout->addWidget(key_A1); + + key_B1 = new QPushButton(pianoWidget); + key_B1->setObjectName(QString::fromUtf8("key_B1")); + + whiteKeysLayout->addWidget(key_B1); + + key_C2 = new QPushButton(pianoWidget); + key_C2->setObjectName(QString::fromUtf8("key_C2")); + + whiteKeysLayout->addWidget(key_C2); + + key_D2 = new QPushButton(pianoWidget); + key_D2->setObjectName(QString::fromUtf8("key_D2")); + + whiteKeysLayout->addWidget(key_D2); + + key_E2 = new QPushButton(pianoWidget); + key_E2->setObjectName(QString::fromUtf8("key_E2")); + + whiteKeysLayout->addWidget(key_E2); + + key_F2 = new QPushButton(pianoWidget); + key_F2->setObjectName(QString::fromUtf8("key_F2")); + + whiteKeysLayout->addWidget(key_F2); + + key_G2 = new QPushButton(pianoWidget); + key_G2->setObjectName(QString::fromUtf8("key_G2")); + + whiteKeysLayout->addWidget(key_G2); + + key_A2 = new QPushButton(pianoWidget); + key_A2->setObjectName(QString::fromUtf8("key_A2")); + + whiteKeysLayout->addWidget(key_A2); + + key_B2 = new QPushButton(pianoWidget); + key_B2->setObjectName(QString::fromUtf8("key_B2")); + + whiteKeysLayout->addWidget(key_B2); + + key_C3 = new QPushButton(pianoWidget); + key_C3->setObjectName(QString::fromUtf8("key_C3")); + + whiteKeysLayout->addWidget(key_C3); + + key_D3 = new QPushButton(pianoWidget); + key_D3->setObjectName(QString::fromUtf8("key_D3")); + + whiteKeysLayout->addWidget(key_D3); + + key_E3 = new QPushButton(pianoWidget); + key_E3->setObjectName(QString::fromUtf8("key_E3")); + + whiteKeysLayout->addWidget(key_E3); + + key_F3 = new QPushButton(pianoWidget); + key_F3->setObjectName(QString::fromUtf8("key_F3")); + + whiteKeysLayout->addWidget(key_F3); + + key_G3 = new QPushButton(pianoWidget); + key_G3->setObjectName(QString::fromUtf8("key_G3")); + + whiteKeysLayout->addWidget(key_G3); + + key_A3 = new QPushButton(pianoWidget); + key_A3->setObjectName(QString::fromUtf8("key_A3")); + + whiteKeysLayout->addWidget(key_A3); + + key_B3 = new QPushButton(pianoWidget); + key_B3->setObjectName(QString::fromUtf8("key_B3")); + + whiteKeysLayout->addWidget(key_B3); + + key_C4 = new QPushButton(pianoWidget); + key_C4->setObjectName(QString::fromUtf8("key_C4")); + + whiteKeysLayout->addWidget(key_C4); + + key_D4 = new QPushButton(pianoWidget); + key_D4->setObjectName(QString::fromUtf8("key_D4")); + + whiteKeysLayout->addWidget(key_D4); + + key_E4 = new QPushButton(pianoWidget); + key_E4->setObjectName(QString::fromUtf8("key_E4")); + + whiteKeysLayout->addWidget(key_E4); + + key_F4 = new QPushButton(pianoWidget); + key_F4->setObjectName(QString::fromUtf8("key_F4")); + + whiteKeysLayout->addWidget(key_F4); + + key_G4 = new QPushButton(pianoWidget); + key_G4->setObjectName(QString::fromUtf8("key_G4")); + + whiteKeysLayout->addWidget(key_G4); + + key_A4 = new QPushButton(pianoWidget); + key_A4->setObjectName(QString::fromUtf8("key_A4")); + + whiteKeysLayout->addWidget(key_A4); + + key_B4 = new QPushButton(pianoWidget); + key_B4->setObjectName(QString::fromUtf8("key_B4")); + + whiteKeysLayout->addWidget(key_B4); + + key_C5 = new QPushButton(pianoWidget); + key_C5->setObjectName(QString::fromUtf8("key_C5")); + + whiteKeysLayout->addWidget(key_C5); + + key_D5 = new QPushButton(pianoWidget); + key_D5->setObjectName(QString::fromUtf8("key_D5")); + + whiteKeysLayout->addWidget(key_D5); + + key_E5 = new QPushButton(pianoWidget); + key_E5->setObjectName(QString::fromUtf8("key_E5")); + + whiteKeysLayout->addWidget(key_E5); + + key_F5 = new QPushButton(pianoWidget); + key_F5->setObjectName(QString::fromUtf8("key_F5")); + + whiteKeysLayout->addWidget(key_F5); + + key_G5 = new QPushButton(pianoWidget); + key_G5->setObjectName(QString::fromUtf8("key_G5")); + + whiteKeysLayout->addWidget(key_G5); + + key_A5 = new QPushButton(pianoWidget); + key_A5->setObjectName(QString::fromUtf8("key_A5")); + + whiteKeysLayout->addWidget(key_A5); + + key_B5 = new QPushButton(pianoWidget); + key_B5->setObjectName(QString::fromUtf8("key_B5")); + + whiteKeysLayout->addWidget(key_B5); + + key_C6 = new QPushButton(pianoWidget); + key_C6->setObjectName(QString::fromUtf8("key_C6")); + + whiteKeysLayout->addWidget(key_C6); + + + verticalLayout_2->addLayout(whiteKeysLayout); + + blackKeysLayout = new QHBoxLayout(); + blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout")); + horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_1); + + key_Cs1 = new QPushButton(pianoWidget); + key_Cs1->setObjectName(QString::fromUtf8("key_Cs1")); + + blackKeysLayout->addWidget(key_Cs1); + + key_Ds1 = new QPushButton(pianoWidget); + key_Ds1->setObjectName(QString::fromUtf8("key_Ds1")); + + blackKeysLayout->addWidget(key_Ds1); + + horizontalSpacer_2 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_2); + + key_Fs1 = new QPushButton(pianoWidget); + key_Fs1->setObjectName(QString::fromUtf8("key_Fs1")); + + blackKeysLayout->addWidget(key_Fs1); + + key_Gs1 = new QPushButton(pianoWidget); + key_Gs1->setObjectName(QString::fromUtf8("key_Gs1")); + + blackKeysLayout->addWidget(key_Gs1); + + key_As1 = new QPushButton(pianoWidget); + key_As1->setObjectName(QString::fromUtf8("key_As1")); + + blackKeysLayout->addWidget(key_As1); + + horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_3); + + key_Cs2 = new QPushButton(pianoWidget); + key_Cs2->setObjectName(QString::fromUtf8("key_Cs2")); + + blackKeysLayout->addWidget(key_Cs2); + + key_Ds2 = new QPushButton(pianoWidget); + key_Ds2->setObjectName(QString::fromUtf8("key_Ds2")); + + blackKeysLayout->addWidget(key_Ds2); + + horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_4); + + key_Fs2 = new QPushButton(pianoWidget); + key_Fs2->setObjectName(QString::fromUtf8("key_Fs2")); + + blackKeysLayout->addWidget(key_Fs2); + + key_Gs2 = new QPushButton(pianoWidget); + key_Gs2->setObjectName(QString::fromUtf8("key_Gs2")); + + blackKeysLayout->addWidget(key_Gs2); + + key_As2 = new QPushButton(pianoWidget); + key_As2->setObjectName(QString::fromUtf8("key_As2")); + + blackKeysLayout->addWidget(key_As2); + + horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_5); + + key_Cs3 = new QPushButton(pianoWidget); + key_Cs3->setObjectName(QString::fromUtf8("key_Cs3")); + + blackKeysLayout->addWidget(key_Cs3); + + key_Ds3 = new QPushButton(pianoWidget); + key_Ds3->setObjectName(QString::fromUtf8("key_Ds3")); + + blackKeysLayout->addWidget(key_Ds3); + + horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_6); + + key_Fs3 = new QPushButton(pianoWidget); + key_Fs3->setObjectName(QString::fromUtf8("key_Fs3")); + + blackKeysLayout->addWidget(key_Fs3); + + key_Gs3 = new QPushButton(pianoWidget); + key_Gs3->setObjectName(QString::fromUtf8("key_Gs3")); + + blackKeysLayout->addWidget(key_Gs3); + + key_As3 = new QPushButton(pianoWidget); + key_As3->setObjectName(QString::fromUtf8("key_As3")); + + blackKeysLayout->addWidget(key_As3); + + horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_7); + + key_Cs4 = new QPushButton(pianoWidget); + key_Cs4->setObjectName(QString::fromUtf8("key_Cs4")); + + blackKeysLayout->addWidget(key_Cs4); + + key_Ds4 = new QPushButton(pianoWidget); + key_Ds4->setObjectName(QString::fromUtf8("key_Ds4")); + + blackKeysLayout->addWidget(key_Ds4); + + horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_8); + + key_Fs4 = new QPushButton(pianoWidget); + key_Fs4->setObjectName(QString::fromUtf8("key_Fs4")); + + blackKeysLayout->addWidget(key_Fs4); + + key_Gs4 = new QPushButton(pianoWidget); + key_Gs4->setObjectName(QString::fromUtf8("key_Gs4")); + + blackKeysLayout->addWidget(key_Gs4); + + key_As4 = new QPushButton(pianoWidget); + key_As4->setObjectName(QString::fromUtf8("key_As4")); + + blackKeysLayout->addWidget(key_As4); + + horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_9); + + key_Cs5 = new QPushButton(pianoWidget); + key_Cs5->setObjectName(QString::fromUtf8("key_Cs5")); + + blackKeysLayout->addWidget(key_Cs5); + + key_Ds5 = new QPushButton(pianoWidget); + key_Ds5->setObjectName(QString::fromUtf8("key_Ds5")); + + blackKeysLayout->addWidget(key_Ds5); + + horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_10); + + key_Fs5 = new QPushButton(pianoWidget); + key_Fs5->setObjectName(QString::fromUtf8("key_Fs5")); + + blackKeysLayout->addWidget(key_Fs5); + + key_Gs5 = new QPushButton(pianoWidget); + key_Gs5->setObjectName(QString::fromUtf8("key_Gs5")); + + blackKeysLayout->addWidget(key_Gs5); + + key_As5 = new QPushButton(pianoWidget); + key_As5->setObjectName(QString::fromUtf8("key_As5")); + + blackKeysLayout->addWidget(key_As5); + + horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_11); + + + verticalLayout_2->addLayout(blackKeysLayout); + + + verticalLayout->addWidget(pianoWidget); + + Yamitracker->setCentralWidget(centralwidget); + + retranslateUi(Yamitracker); + + QMetaObject::connectSlotsByName(Yamitracker); + } // setupUi + + void retranslateUi(QMainWindow *Yamitracker) + { + Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor", nullptr)); + statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr)); + deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr)); + keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr)); + playButton->setText(QCoreApplication::translate("Yamitracker", "\320\227\320\260\320\277\320\270\321\201\321\214 (Play)", nullptr)); + stopButton->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\276\320\277", nullptr)); + convertButton->setText(QCoreApplication::translate("Yamitracker", "\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr)); + refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr)); + key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr)); + key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr)); + key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr)); + key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr)); + key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr)); + key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr)); + key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr)); + key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr)); + key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr)); + key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr)); + key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr)); + key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr)); + key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr)); + key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr)); + key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr)); + key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr)); + key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr)); + key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr)); + key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr)); + key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr)); + key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr)); + key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr)); + key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr)); + key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr)); + key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr)); + key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr)); + key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr)); + key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr)); + key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr)); + key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr)); + key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr)); + key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr)); + key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr)); + key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr)); + key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr)); + key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr)); + key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr)); + key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr)); + key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr)); + key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr)); + key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr)); + key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr)); + key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr)); + key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr)); + key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr)); + key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr)); + key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr)); + key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr)); + key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr)); + key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr)); + key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr)); + key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr)); + key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr)); + key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr)); + key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr)); + key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr)); + key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr)); + key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr)); + key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr)); + key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr)); + key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class Yamitracker: public Ui_Yamitracker {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_YAMITRACKER_H diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build/yamitracker.o b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/yamitracker.o new file mode 100644 index 0000000..dac2233 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker3/Yamitracker/build/yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build_wav/.qmake.stash b/Yamitracker-reoload/Yamitracker3/Yamitracker/build_wav/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/build_wav/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build_wav/Makefile b/Yamitracker-reoload/Yamitracker3/Yamitracker/build_wav/Makefile new file mode 100644 index 0000000..5d6b1e0 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/build_wav/Makefile @@ -0,0 +1,449 @@ +############################################################################# +# Makefile for building: Yamitracker +# Generated by qmake (3.1) (Qt 5.15.13) +# Project: ../Yamitracker.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Yamitracker1.0.0 +DISTDIR = /home/sofft328/progs/Yamitracker/Yamitracker3/Yamitracker/build_wav/.tmp/Yamitracker1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp \ + ../audiosynthesizer.cpp moc_yamitracker.cpp \ + moc_brrconverter.cpp +OBJECTS = main.o \ + yamitracker.o \ + simplewavwriter.o \ + brrconverter.o \ + audiosynthesizer.o \ + moc_yamitracker.o \ + moc_brrconverter.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../Yamitracker.pro ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + ../audiosynthesizer.h ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp \ + ../audiosynthesizer.cpp +QMAKE_TARGET = Yamitracker +DESTDIR = +TARGET = Yamitracker + + +first: all +####### Build rules + +Yamitracker: ui_yamitracker.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../Yamitracker.pro + $(QMAKE) -o Makefile ../Yamitracker.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../Yamitracker.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../Yamitracker.pro + +qmake_all: FORCE + + +all: Makefile Yamitracker + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.h ../simplewavwriter.h ../brrconverter.h ../audiosynthesizer.h $(DISTDIR)/ + $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplewavwriter.cpp ../brrconverter.cpp ../audiosynthesizer.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_yamitracker.cpp moc_brrconverter.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_yamitracker.cpp moc_brrconverter.cpp +moc_yamitracker.cpp: ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker3/Yamitracker/build_wav/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker3/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp + +moc_brrconverter.cpp: ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker3/Yamitracker/build_wav/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker3/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../brrconverter.h -o moc_brrconverter.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_yamitracker.h +compiler_uic_clean: + -$(DEL_FILE) ui_yamitracker.h +ui_yamitracker.h: ../yamitracker.ui \ + /usr/lib/qt5/bin/uic + /usr/lib/qt5/bin/uic ../yamitracker.ui -o ui_yamitracker.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: ../main.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp + +yamitracker.o: ../yamitracker.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + ui_yamitracker.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp + +simplewavwriter.o: ../simplewavwriter.cpp ../simplewavwriter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplewavwriter.o ../simplewavwriter.cpp + +brrconverter.o: ../brrconverter.cpp ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o brrconverter.o ../brrconverter.cpp + +audiosynthesizer.o: ../audiosynthesizer.cpp ../audiosynthesizer.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o audiosynthesizer.o ../audiosynthesizer.cpp + +moc_yamitracker.o: moc_yamitracker.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp + +moc_brrconverter.o: moc_brrconverter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_brrconverter.o moc_brrconverter.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin + $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/build_wav/ui_yamitracker.h b/Yamitracker-reoload/Yamitracker3/Yamitracker/build_wav/ui_yamitracker.h new file mode 100644 index 0000000..b1f1096 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/build_wav/ui_yamitracker.h @@ -0,0 +1,625 @@ +/******************************************************************************** +** Form generated from reading UI file 'yamitracker.ui' +** +** Created by: Qt User Interface Compiler version 5.15.13 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_YAMITRACKER_H +#define UI_YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Yamitracker +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QLabel *statusLabel; + QLabel *deviceLabel; + QLabel *keysInfoLabel; + QProgressBar *volumeBar; + QHBoxLayout *controlLayout; + QPushButton *playButton; + QPushButton *stopButton; + QPushButton *convertButton; + QPushButton *refreshDevicesButton; + QWidget *pianoWidget; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *whiteKeysLayout; + QPushButton *key_C1; + QPushButton *key_D1; + QPushButton *key_E1; + QPushButton *key_F1; + QPushButton *key_G1; + QPushButton *key_A1; + QPushButton *key_B1; + QPushButton *key_C2; + QPushButton *key_D2; + QPushButton *key_E2; + QPushButton *key_F2; + QPushButton *key_G2; + QPushButton *key_A2; + QPushButton *key_B2; + QPushButton *key_C3; + QPushButton *key_D3; + QPushButton *key_E3; + QPushButton *key_F3; + QPushButton *key_G3; + QPushButton *key_A3; + QPushButton *key_B3; + QPushButton *key_C4; + QPushButton *key_D4; + QPushButton *key_E4; + QPushButton *key_F4; + QPushButton *key_G4; + QPushButton *key_A4; + QPushButton *key_B4; + QPushButton *key_C5; + QPushButton *key_D5; + QPushButton *key_E5; + QPushButton *key_F5; + QPushButton *key_G5; + QPushButton *key_A5; + QPushButton *key_B5; + QPushButton *key_C6; + QHBoxLayout *blackKeysLayout; + QSpacerItem *horizontalSpacer_1; + QPushButton *key_Cs1; + QPushButton *key_Ds1; + QSpacerItem *horizontalSpacer_2; + QPushButton *key_Fs1; + QPushButton *key_Gs1; + QPushButton *key_As1; + QSpacerItem *horizontalSpacer_3; + QPushButton *key_Cs2; + QPushButton *key_Ds2; + QSpacerItem *horizontalSpacer_4; + QPushButton *key_Fs2; + QPushButton *key_Gs2; + QPushButton *key_As2; + QSpacerItem *horizontalSpacer_5; + QPushButton *key_Cs3; + QPushButton *key_Ds3; + QSpacerItem *horizontalSpacer_6; + QPushButton *key_Fs3; + QPushButton *key_Gs3; + QPushButton *key_As3; + QSpacerItem *horizontalSpacer_7; + QPushButton *key_Cs4; + QPushButton *key_Ds4; + QSpacerItem *horizontalSpacer_8; + QPushButton *key_Fs4; + QPushButton *key_Gs4; + QPushButton *key_As4; + QSpacerItem *horizontalSpacer_9; + QPushButton *key_Cs5; + QPushButton *key_Ds5; + QSpacerItem *horizontalSpacer_10; + QPushButton *key_Fs5; + QPushButton *key_Gs5; + QPushButton *key_As5; + QSpacerItem *horizontalSpacer_11; + + void setupUi(QMainWindow *Yamitracker) + { + if (Yamitracker->objectName().isEmpty()) + Yamitracker->setObjectName(QString::fromUtf8("Yamitracker")); + Yamitracker->resize(1200, 600); + centralwidget = new QWidget(Yamitracker); + centralwidget->setObjectName(QString::fromUtf8("centralwidget")); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + statusLabel = new QLabel(centralwidget); + statusLabel->setObjectName(QString::fromUtf8("statusLabel")); + + verticalLayout->addWidget(statusLabel); + + deviceLabel = new QLabel(centralwidget); + deviceLabel->setObjectName(QString::fromUtf8("deviceLabel")); + + verticalLayout->addWidget(deviceLabel); + + keysInfoLabel = new QLabel(centralwidget); + keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel")); + + verticalLayout->addWidget(keysInfoLabel); + + volumeBar = new QProgressBar(centralwidget); + volumeBar->setObjectName(QString::fromUtf8("volumeBar")); + volumeBar->setValue(0); + + verticalLayout->addWidget(volumeBar); + + controlLayout = new QHBoxLayout(); + controlLayout->setObjectName(QString::fromUtf8("controlLayout")); + playButton = new QPushButton(centralwidget); + playButton->setObjectName(QString::fromUtf8("playButton")); + + controlLayout->addWidget(playButton); + + stopButton = new QPushButton(centralwidget); + stopButton->setObjectName(QString::fromUtf8("stopButton")); + + controlLayout->addWidget(stopButton); + + convertButton = new QPushButton(centralwidget); + convertButton->setObjectName(QString::fromUtf8("convertButton")); + + controlLayout->addWidget(convertButton); + + refreshDevicesButton = new QPushButton(centralwidget); + refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton")); + + controlLayout->addWidget(refreshDevicesButton); + + + verticalLayout->addLayout(controlLayout); + + pianoWidget = new QWidget(centralwidget); + pianoWidget->setObjectName(QString::fromUtf8("pianoWidget")); + verticalLayout_2 = new QVBoxLayout(pianoWidget); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + whiteKeysLayout = new QHBoxLayout(); + whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout")); + key_C1 = new QPushButton(pianoWidget); + key_C1->setObjectName(QString::fromUtf8("key_C1")); + + whiteKeysLayout->addWidget(key_C1); + + key_D1 = new QPushButton(pianoWidget); + key_D1->setObjectName(QString::fromUtf8("key_D1")); + + whiteKeysLayout->addWidget(key_D1); + + key_E1 = new QPushButton(pianoWidget); + key_E1->setObjectName(QString::fromUtf8("key_E1")); + + whiteKeysLayout->addWidget(key_E1); + + key_F1 = new QPushButton(pianoWidget); + key_F1->setObjectName(QString::fromUtf8("key_F1")); + + whiteKeysLayout->addWidget(key_F1); + + key_G1 = new QPushButton(pianoWidget); + key_G1->setObjectName(QString::fromUtf8("key_G1")); + + whiteKeysLayout->addWidget(key_G1); + + key_A1 = new QPushButton(pianoWidget); + key_A1->setObjectName(QString::fromUtf8("key_A1")); + + whiteKeysLayout->addWidget(key_A1); + + key_B1 = new QPushButton(pianoWidget); + key_B1->setObjectName(QString::fromUtf8("key_B1")); + + whiteKeysLayout->addWidget(key_B1); + + key_C2 = new QPushButton(pianoWidget); + key_C2->setObjectName(QString::fromUtf8("key_C2")); + + whiteKeysLayout->addWidget(key_C2); + + key_D2 = new QPushButton(pianoWidget); + key_D2->setObjectName(QString::fromUtf8("key_D2")); + + whiteKeysLayout->addWidget(key_D2); + + key_E2 = new QPushButton(pianoWidget); + key_E2->setObjectName(QString::fromUtf8("key_E2")); + + whiteKeysLayout->addWidget(key_E2); + + key_F2 = new QPushButton(pianoWidget); + key_F2->setObjectName(QString::fromUtf8("key_F2")); + + whiteKeysLayout->addWidget(key_F2); + + key_G2 = new QPushButton(pianoWidget); + key_G2->setObjectName(QString::fromUtf8("key_G2")); + + whiteKeysLayout->addWidget(key_G2); + + key_A2 = new QPushButton(pianoWidget); + key_A2->setObjectName(QString::fromUtf8("key_A2")); + + whiteKeysLayout->addWidget(key_A2); + + key_B2 = new QPushButton(pianoWidget); + key_B2->setObjectName(QString::fromUtf8("key_B2")); + + whiteKeysLayout->addWidget(key_B2); + + key_C3 = new QPushButton(pianoWidget); + key_C3->setObjectName(QString::fromUtf8("key_C3")); + + whiteKeysLayout->addWidget(key_C3); + + key_D3 = new QPushButton(pianoWidget); + key_D3->setObjectName(QString::fromUtf8("key_D3")); + + whiteKeysLayout->addWidget(key_D3); + + key_E3 = new QPushButton(pianoWidget); + key_E3->setObjectName(QString::fromUtf8("key_E3")); + + whiteKeysLayout->addWidget(key_E3); + + key_F3 = new QPushButton(pianoWidget); + key_F3->setObjectName(QString::fromUtf8("key_F3")); + + whiteKeysLayout->addWidget(key_F3); + + key_G3 = new QPushButton(pianoWidget); + key_G3->setObjectName(QString::fromUtf8("key_G3")); + + whiteKeysLayout->addWidget(key_G3); + + key_A3 = new QPushButton(pianoWidget); + key_A3->setObjectName(QString::fromUtf8("key_A3")); + + whiteKeysLayout->addWidget(key_A3); + + key_B3 = new QPushButton(pianoWidget); + key_B3->setObjectName(QString::fromUtf8("key_B3")); + + whiteKeysLayout->addWidget(key_B3); + + key_C4 = new QPushButton(pianoWidget); + key_C4->setObjectName(QString::fromUtf8("key_C4")); + + whiteKeysLayout->addWidget(key_C4); + + key_D4 = new QPushButton(pianoWidget); + key_D4->setObjectName(QString::fromUtf8("key_D4")); + + whiteKeysLayout->addWidget(key_D4); + + key_E4 = new QPushButton(pianoWidget); + key_E4->setObjectName(QString::fromUtf8("key_E4")); + + whiteKeysLayout->addWidget(key_E4); + + key_F4 = new QPushButton(pianoWidget); + key_F4->setObjectName(QString::fromUtf8("key_F4")); + + whiteKeysLayout->addWidget(key_F4); + + key_G4 = new QPushButton(pianoWidget); + key_G4->setObjectName(QString::fromUtf8("key_G4")); + + whiteKeysLayout->addWidget(key_G4); + + key_A4 = new QPushButton(pianoWidget); + key_A4->setObjectName(QString::fromUtf8("key_A4")); + + whiteKeysLayout->addWidget(key_A4); + + key_B4 = new QPushButton(pianoWidget); + key_B4->setObjectName(QString::fromUtf8("key_B4")); + + whiteKeysLayout->addWidget(key_B4); + + key_C5 = new QPushButton(pianoWidget); + key_C5->setObjectName(QString::fromUtf8("key_C5")); + + whiteKeysLayout->addWidget(key_C5); + + key_D5 = new QPushButton(pianoWidget); + key_D5->setObjectName(QString::fromUtf8("key_D5")); + + whiteKeysLayout->addWidget(key_D5); + + key_E5 = new QPushButton(pianoWidget); + key_E5->setObjectName(QString::fromUtf8("key_E5")); + + whiteKeysLayout->addWidget(key_E5); + + key_F5 = new QPushButton(pianoWidget); + key_F5->setObjectName(QString::fromUtf8("key_F5")); + + whiteKeysLayout->addWidget(key_F5); + + key_G5 = new QPushButton(pianoWidget); + key_G5->setObjectName(QString::fromUtf8("key_G5")); + + whiteKeysLayout->addWidget(key_G5); + + key_A5 = new QPushButton(pianoWidget); + key_A5->setObjectName(QString::fromUtf8("key_A5")); + + whiteKeysLayout->addWidget(key_A5); + + key_B5 = new QPushButton(pianoWidget); + key_B5->setObjectName(QString::fromUtf8("key_B5")); + + whiteKeysLayout->addWidget(key_B5); + + key_C6 = new QPushButton(pianoWidget); + key_C6->setObjectName(QString::fromUtf8("key_C6")); + + whiteKeysLayout->addWidget(key_C6); + + + verticalLayout_2->addLayout(whiteKeysLayout); + + blackKeysLayout = new QHBoxLayout(); + blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout")); + horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_1); + + key_Cs1 = new QPushButton(pianoWidget); + key_Cs1->setObjectName(QString::fromUtf8("key_Cs1")); + + blackKeysLayout->addWidget(key_Cs1); + + key_Ds1 = new QPushButton(pianoWidget); + key_Ds1->setObjectName(QString::fromUtf8("key_Ds1")); + + blackKeysLayout->addWidget(key_Ds1); + + horizontalSpacer_2 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_2); + + key_Fs1 = new QPushButton(pianoWidget); + key_Fs1->setObjectName(QString::fromUtf8("key_Fs1")); + + blackKeysLayout->addWidget(key_Fs1); + + key_Gs1 = new QPushButton(pianoWidget); + key_Gs1->setObjectName(QString::fromUtf8("key_Gs1")); + + blackKeysLayout->addWidget(key_Gs1); + + key_As1 = new QPushButton(pianoWidget); + key_As1->setObjectName(QString::fromUtf8("key_As1")); + + blackKeysLayout->addWidget(key_As1); + + horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_3); + + key_Cs2 = new QPushButton(pianoWidget); + key_Cs2->setObjectName(QString::fromUtf8("key_Cs2")); + + blackKeysLayout->addWidget(key_Cs2); + + key_Ds2 = new QPushButton(pianoWidget); + key_Ds2->setObjectName(QString::fromUtf8("key_Ds2")); + + blackKeysLayout->addWidget(key_Ds2); + + horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_4); + + key_Fs2 = new QPushButton(pianoWidget); + key_Fs2->setObjectName(QString::fromUtf8("key_Fs2")); + + blackKeysLayout->addWidget(key_Fs2); + + key_Gs2 = new QPushButton(pianoWidget); + key_Gs2->setObjectName(QString::fromUtf8("key_Gs2")); + + blackKeysLayout->addWidget(key_Gs2); + + key_As2 = new QPushButton(pianoWidget); + key_As2->setObjectName(QString::fromUtf8("key_As2")); + + blackKeysLayout->addWidget(key_As2); + + horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_5); + + key_Cs3 = new QPushButton(pianoWidget); + key_Cs3->setObjectName(QString::fromUtf8("key_Cs3")); + + blackKeysLayout->addWidget(key_Cs3); + + key_Ds3 = new QPushButton(pianoWidget); + key_Ds3->setObjectName(QString::fromUtf8("key_Ds3")); + + blackKeysLayout->addWidget(key_Ds3); + + horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_6); + + key_Fs3 = new QPushButton(pianoWidget); + key_Fs3->setObjectName(QString::fromUtf8("key_Fs3")); + + blackKeysLayout->addWidget(key_Fs3); + + key_Gs3 = new QPushButton(pianoWidget); + key_Gs3->setObjectName(QString::fromUtf8("key_Gs3")); + + blackKeysLayout->addWidget(key_Gs3); + + key_As3 = new QPushButton(pianoWidget); + key_As3->setObjectName(QString::fromUtf8("key_As3")); + + blackKeysLayout->addWidget(key_As3); + + horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_7); + + key_Cs4 = new QPushButton(pianoWidget); + key_Cs4->setObjectName(QString::fromUtf8("key_Cs4")); + + blackKeysLayout->addWidget(key_Cs4); + + key_Ds4 = new QPushButton(pianoWidget); + key_Ds4->setObjectName(QString::fromUtf8("key_Ds4")); + + blackKeysLayout->addWidget(key_Ds4); + + horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_8); + + key_Fs4 = new QPushButton(pianoWidget); + key_Fs4->setObjectName(QString::fromUtf8("key_Fs4")); + + blackKeysLayout->addWidget(key_Fs4); + + key_Gs4 = new QPushButton(pianoWidget); + key_Gs4->setObjectName(QString::fromUtf8("key_Gs4")); + + blackKeysLayout->addWidget(key_Gs4); + + key_As4 = new QPushButton(pianoWidget); + key_As4->setObjectName(QString::fromUtf8("key_As4")); + + blackKeysLayout->addWidget(key_As4); + + horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_9); + + key_Cs5 = new QPushButton(pianoWidget); + key_Cs5->setObjectName(QString::fromUtf8("key_Cs5")); + + blackKeysLayout->addWidget(key_Cs5); + + key_Ds5 = new QPushButton(pianoWidget); + key_Ds5->setObjectName(QString::fromUtf8("key_Ds5")); + + blackKeysLayout->addWidget(key_Ds5); + + horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_10); + + key_Fs5 = new QPushButton(pianoWidget); + key_Fs5->setObjectName(QString::fromUtf8("key_Fs5")); + + blackKeysLayout->addWidget(key_Fs5); + + key_Gs5 = new QPushButton(pianoWidget); + key_Gs5->setObjectName(QString::fromUtf8("key_Gs5")); + + blackKeysLayout->addWidget(key_Gs5); + + key_As5 = new QPushButton(pianoWidget); + key_As5->setObjectName(QString::fromUtf8("key_As5")); + + blackKeysLayout->addWidget(key_As5); + + horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_11); + + + verticalLayout_2->addLayout(blackKeysLayout); + + + verticalLayout->addWidget(pianoWidget); + + Yamitracker->setCentralWidget(centralwidget); + + retranslateUi(Yamitracker); + + QMetaObject::connectSlotsByName(Yamitracker); + } // setupUi + + void retranslateUi(QMainWindow *Yamitracker) + { + Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor", nullptr)); + statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr)); + deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr)); + keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr)); + playButton->setText(QCoreApplication::translate("Yamitracker", "\320\227\320\260\320\277\320\270\321\201\321\214 (Play)", nullptr)); + stopButton->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\276\320\277", nullptr)); + convertButton->setText(QCoreApplication::translate("Yamitracker", "\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr)); + refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr)); + key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr)); + key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr)); + key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr)); + key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr)); + key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr)); + key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr)); + key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr)); + key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr)); + key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr)); + key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr)); + key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr)); + key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr)); + key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr)); + key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr)); + key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr)); + key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr)); + key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr)); + key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr)); + key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr)); + key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr)); + key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr)); + key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr)); + key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr)); + key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr)); + key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr)); + key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr)); + key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr)); + key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr)); + key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr)); + key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr)); + key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr)); + key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr)); + key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr)); + key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr)); + key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr)); + key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr)); + key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr)); + key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr)); + key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr)); + key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr)); + key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr)); + key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr)); + key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr)); + key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr)); + key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr)); + key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr)); + key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr)); + key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr)); + key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr)); + key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr)); + key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr)); + key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr)); + key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr)); + key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr)); + key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr)); + key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr)); + key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr)); + key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr)); + key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr)); + key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr)); + key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class Yamitracker: public Ui_Yamitracker {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_YAMITRACKER_H diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/main.cpp b/Yamitracker-reoload/Yamitracker3/Yamitracker/main.cpp new file mode 100644 index 0000000..b2ae5c4 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/main.cpp @@ -0,0 +1,23 @@ +#include "yamitracker.h" + +#include +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + QTranslator translator; + const QStringList uiLanguages = QLocale::system().uiLanguages(); + for (const QString &locale : uiLanguages) { + const QString baseName = "Yamitracker_" + QLocale(locale).name(); + if (translator.load(":/i18n/" + baseName)) { + a.installTranslator(&translator); + break; + } + } + Yamitracker w; + w.show(); + return a.exec(); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/simplewavwriter.cpp b/Yamitracker-reoload/Yamitracker3/Yamitracker/simplewavwriter.cpp new file mode 100644 index 0000000..ec4e821 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/simplewavwriter.cpp @@ -0,0 +1,323 @@ +#include "simplewavwriter.h" +#include +#include +#include +#include + +SimpleWavWriter::SimpleWavWriter() + : m_isRecording(false) + , m_startTime(0) + , m_sampleRate(44100) // Повысили частоту дискретизации +{ +} + +SimpleWavWriter::~SimpleWavWriter() +{ +} + +bool SimpleWavWriter::startRecording(int sampleRate) +{ + if (m_isRecording) { + stopRecording(); + } + + m_events.clear(); + m_isRecording = true; + m_startTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + m_sampleRate = sampleRate; + + qDebug() << "Started WAV recording, sample rate:" << m_sampleRate; + return true; +} + +bool SimpleWavWriter::stopRecording() +{ + if (!m_isRecording) { + return false; + } + + m_isRecording = false; + qDebug() << "Stopped WAV recording, events count:" << m_events.size(); + return true; +} + +bool SimpleWavWriter::saveToFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::WriteOnly)) { + qDebug() << "Cannot open file for writing:" << filename; + return false; + } + + QDataStream stream(&file); + stream.setByteOrder(QDataStream::LittleEndian); + + // Сначала записываем данные в буфер + QByteArray audioData; + QDataStream audioStream(&audioData, QIODevice::WriteOnly); + audioStream.setByteOrder(QDataStream::LittleEndian); + + writeWavData(audioStream); + + // Теперь записываем заголовок с правильным размером + writeWavHeader(stream, audioData.size()); + + // Записываем аудиоданные + stream.writeRawData(audioData.constData(), audioData.size()); + + file.close(); + qDebug() << "WAV file saved:" << filename << "size:" << audioData.size() << "bytes"; + return true; +} + +void SimpleWavWriter::addNote(double time, int note, int velocity, double duration, int instrument) +{ + if (!m_isRecording) return; + + WavEvent event; + event.time = time; + event.note = note; + event.velocity = velocity; + event.duration = duration * m_sampleRate; + event.instrument = instrument; // Сохраняем инструмент + + m_events.append(event); +} + +void SimpleWavWriter::addSilence(double duration) +{ + if (!m_isRecording) return; + + WavEvent event; + event.time = -1; // Флаг тишины + event.note = 0; + event.velocity = 0; + event.duration = duration * m_sampleRate; + event.instrument = 0; + + m_events.append(event); +} + +void SimpleWavWriter::clear() +{ + m_events.clear(); + m_isRecording = false; +} + +void SimpleWavWriter::writeWavHeader(QDataStream &stream, quint32 dataSize) +{ + // RIFF заголовок + stream.writeRawData("RIFF", 4); + quint32 chunkSize = 36 + dataSize; + stream << chunkSize; + stream.writeRawData("WAVE", 4); + + // fmt chunk + stream.writeRawData("fmt ", 4); + quint32 subchunk1Size = 16; + stream << subchunk1Size; + + quint16 audioFormat = 1; // PCM + stream << audioFormat; + + quint16 numChannels = 1; // Моно + stream << numChannels; + + quint32 sampleRate = m_sampleRate; + stream << sampleRate; + + quint32 byteRate = sampleRate * numChannels * 2; // 16-bit = 2 байта + stream << byteRate; + + quint16 blockAlign = numChannels * 2; + stream << blockAlign; + + quint16 bitsPerSample = 16; + stream << bitsPerSample; + + // data chunk + stream.writeRawData("data", 4); + stream << dataSize; +} + +void SimpleWavWriter::writeWavData(QDataStream &stream) +{ + if (m_events.isEmpty()) { + // Если нет событий, создаем короткий тихий фрагмент + for (int i = 0; i < m_sampleRate * 2; i++) { // 2 секунды тишины + short sample = 0; + stream << sample; + } + return; + } + + // Сортируем события по времени + std::sort(m_events.begin(), m_events.end(), + [](const WavEvent& a, const WavEvent& b) { + return a.time < b.time; + }); + + double currentTime = 0; + int totalSamples = 0; + + // Оцениваем общее количество сэмплов + for (const WavEvent &event : m_events) { + totalSamples += event.duration; + } + + // Создаем вектор для хранения сэмплов + QVector samples(totalSamples + m_sampleRate, 0.0f); // +1 секунда на всякий случай + + // Рендерим события + for (const WavEvent &event : m_events) { + if (event.time == -1) { + // Тишина - просто продвигаем время + currentTime += (double)event.duration / m_sampleRate; + continue; + } + + // Генерируем звук для ноты + double frequency = noteToFrequency(event.note); + double amplitude = (event.velocity / 127.0) * 0.8; + + // Начинаем с нужного времени (преобразуем время в сэмплы) + int startSample = static_cast(event.time * m_sampleRate); + + for (int i = 0; i < event.duration; ++i) { + if (startSample + i >= samples.size()) { + samples.resize(startSample + i + m_sampleRate); + } + + double t = currentTime + (double)i / m_sampleRate; + + // Генерируем волну в зависимости от инструмента + double sampleValue = getWaveformForInstrument(event.instrument, t, frequency, amplitude); + + // ADSR envelope + double noteRelativeTime = (double)i / m_sampleRate; + double noteDuration = (double)event.duration / m_sampleRate; + double envelope = 1.0; + + // Параметры огибающей в зависимости от инструмента + double attackTime, decayTime, sustainLevel, releaseTime; + + switch(event.instrument % 4) { + case 0: // Фортепиано + attackTime = 0.01; + decayTime = 0.1; + sustainLevel = 0.7; + releaseTime = 0.5; + break; + case 1: // Струнные + attackTime = 0.05; + decayTime = 0.2; + sustainLevel = 0.8; + releaseTime = 0.8; + break; + case 2: // Духовые + attackTime = 0.1; + decayTime = 0.05; + sustainLevel = 0.9; + releaseTime = 0.3; + break; + case 3: // Ударные + attackTime = 0.001; + decayTime = 0.05; + sustainLevel = 0.0; + releaseTime = 0.1; + break; + default: + attackTime = 0.05; + decayTime = 0.15; + sustainLevel = 0.75; + releaseTime = 0.4; + } + + // Применяем огибающую + if (noteRelativeTime < attackTime) { + envelope = noteRelativeTime / attackTime; + } else if (noteRelativeTime < attackTime + decayTime) { + envelope = 1.0 - ((noteRelativeTime - attackTime) / decayTime) * (1.0 - sustainLevel); + } else if (noteRelativeTime < noteDuration - releaseTime) { + envelope = sustainLevel; + } else { + envelope = sustainLevel * (1.0 - (noteRelativeTime - (noteDuration - releaseTime)) / releaseTime); + } + + sampleValue *= amplitude * envelope; + + // Добавляем к существующему сэмплу (полифония) + samples[startSample + i] += static_cast(sampleValue); + } + + // Обновляем текущее время для следующего события + currentTime = event.time + (double)event.duration / m_sampleRate; + } + + // Находим максимальную амплитуду для нормализации + float maxAmplitude = 0.0f; + for (float sample : samples) { + if (fabs(sample) > maxAmplitude) { + maxAmplitude = fabs(sample); + } + } + + // Нормализуем и записываем сэмплы + if (maxAmplitude > 0.0f) { + float normalizeFactor = 0.9f / maxAmplitude; + + for (float sample : samples) { + short finalSample = static_cast(sample * normalizeFactor * 32767.0f); + stream << finalSample; + } + } else { + // Если нет звука, записываем тишину + for (int i = 0; i < m_sampleRate * 2; i++) { + short sample = 0; + stream << sample; + } + } +} + +double SimpleWavWriter::noteToFrequency(int note) +{ + return 440.0 * pow(2.0, (note - 69) / 12.0); +} + +double SimpleWavWriter::getWaveformForInstrument(int instrument, double time, double frequency, double amplitude) +{ + int waveformType = instrument % 4; + + switch(waveformType) { + case 0: // Синус (фортепиано, духовые) + return sin(2.0 * M_PI * frequency * time); + case 1: // Пила (скрипка, струнные) + return 2.0 * (fmod(frequency * time, 1.0) - 0.5); + case 2: // Квадрат (орган, клавесин) + return sin(2.0 * M_PI * frequency * time) > 0 ? 1.0 : -1.0; + case 3: // Смешанный (ударные, перкуссия) + return sin(2.0 * M_PI * frequency * time) * 0.7 + + (sin(2.0 * M_PI * frequency * 2 * time) > 0 ? 0.3 : -0.3); + default: + return sin(2.0 * M_PI * frequency * time); + } +} + +short SimpleWavWriter::generateSineWave(double time, double frequency, double amplitude) +{ + double value = sin(2.0 * M_PI * frequency * time); + return static_cast(value * amplitude * 32767.0); +} + +short SimpleWavWriter::generateSquareWave(double time, double frequency, double amplitude) +{ + double value = sin(2.0 * M_PI * frequency * time) > 0 ? 1.0 : -1.0; + return static_cast(value * amplitude * 32767.0); +} + +short SimpleWavWriter::generateSawWave(double time, double frequency, double amplitude) +{ + double phase = fmod(frequency * time, 1.0); + double value = 2.0 * phase - 1.0; + return static_cast(value * amplitude * 32767.0); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/simplewavwriter.h b/Yamitracker-reoload/Yamitracker3/Yamitracker/simplewavwriter.h new file mode 100644 index 0000000..ce1429a --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/simplewavwriter.h @@ -0,0 +1,55 @@ +#ifndef SIMPLEWAVWRITER_H +#define SIMPLEWAVWRITER_H + +#include +#include +#include +#include +#include + +struct WavEvent { + double time; + int note; + int velocity; + int duration; // в сэмплах + int instrument; // Добавлено: номер инструмента +}; + +class SimpleWavWriter +{ +public: + SimpleWavWriter(); + ~SimpleWavWriter(); + + bool startRecording(int sampleRate = 44100); + bool stopRecording(); + bool saveToFile(const QString &filename); + + void addNote(double time, int note, int velocity, double duration, int instrument = 0); + void addSilence(double duration); + + bool isRecording() const { return m_isRecording; } + void clear(); + + void setSampleRate(int rate) { m_sampleRate = rate; } + int sampleRate() const { return m_sampleRate; } + +private: + QVector m_events; + bool m_isRecording; + double m_startTime; + int m_sampleRate; + + void writeWavHeader(QDataStream &stream, quint32 dataSize); + void writeWavData(QDataStream &stream); + + // Генерация звука + short generateSineWave(double time, double frequency, double amplitude); + short generateSquareWave(double time, double frequency, double amplitude); + short generateSawWave(double time, double frequency, double amplitude); + + double noteToFrequency(int note); + double getWaveformForInstrument(int instrument, double time, double frequency, double amplitude); +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/yamitracker.cpp b/Yamitracker-reoload/Yamitracker3/Yamitracker/yamitracker.cpp new file mode 100644 index 0000000..293d2a3 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/yamitracker.cpp @@ -0,0 +1,1000 @@ +#include "yamitracker.h" +#include "ui_yamitracker.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void SerialReader::run() +{ + while (!shouldStop) { + int fd = open(currentDevice.toUtf8().constData(), O_RDWR | O_NOCTTY); + if (fd < 0) { + emit error(QString("Cannot open %1").arg(currentDevice)); + emit connectionStatusChanged(false); + sleep(2); + continue; + } + + emit connectionStatusChanged(true); + + QString manufacturer = "Unknown"; + QString model = "Unknown"; + + if (currentDevice.contains("yamaha", Qt::CaseInsensitive) || + currentDevice.contains("psr", Qt::CaseInsensitive)) { + manufacturer = "Yamaha"; + model = "PSR Series"; + } else if (currentDevice.contains("dmmidi")) { + manufacturer = "Yamaha"; + model = "PSR-E333 (Direct MIDI)"; + } + + emit deviceInfoReceived(manufacturer, model); + + struct termios tty; + tcgetattr(fd, &tty); + cfsetospeed(&tty, B115200); + cfsetispeed(&tty, B115200); + tty.c_cflag |= (CLOCAL | CREAD | CS8); + tty.c_cc[VMIN] = 1; + tcsetattr(fd, TCSANOW, &tty); + + unsigned char byte; + while (!shouldStop && read(fd, &byte, 1) > 0) { + if (byte == 0xF8 || byte == 0xFE) { + continue; + } + + if (byte & 0x80) { + if ((byte & 0xF0) == 0x90) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + + if (velocity == 0) + emit noteOffReceived(hexNote); + else + emit noteOnReceived(hexNote, velocity); + } + } + else if ((byte & 0xF0) == 0x80) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + emit noteOffReceived(hexNote); + } + } + else if ((byte & 0xF0) == 0xB0) { + unsigned char controller, value; + if (read(fd, &controller, 1) > 0 && read(fd, &value, 1) > 0) { + emit controlChangeReceived(controller, value); + } + } + } + } + + close(fd); + emit connectionStatusChanged(false); + + if (!shouldStop) { + emit error(QString("Connection lost to %1. Attempting to reconnect...").arg(currentDevice)); + sleep(2); + } + } +} + +Yamitracker::Yamitracker(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::Yamitracker) + , serialReader(new SerialReader(this)) + , reconnectTimer(new QTimer(this)) + , isConnected(false) + , wavWriter(new SimpleWavWriter()) + , recordingStartTime(0) + , brrConverter(new BrrConverter(this)) + , audioPlayerProcess(new QProcess(this)) +{ + ui->setupUi(this); + + deviceLabel = ui->deviceLabel; + refreshDevicesButton = ui->refreshDevicesButton; + + initializeKeyButtons(); + initializeDeviceDetection(); + + connect(serialReader, &SerialReader::noteOnReceived, this, &Yamitracker::onNoteOnReceived); + connect(serialReader, &SerialReader::noteOffReceived, this, &Yamitracker::onNoteOffReceived); + connect(serialReader, &SerialReader::error, this, &Yamitracker::onError); + connect(serialReader, &SerialReader::connectionStatusChanged, this, &Yamitracker::onConnectionStatusChanged); + connect(serialReader, &SerialReader::deviceInfoReceived, this, &Yamitracker::onDeviceInfoReceived); + connect(ui->playButton, &QPushButton::clicked, this, &Yamitracker::onPlayClicked); + connect(ui->stopButton, &QPushButton::clicked, this, &Yamitracker::onStopClicked); + connect(ui->convertButton, &QPushButton::clicked, this, &Yamitracker::onConvertToBrrClicked); + connect(refreshDevicesButton, &QPushButton::clicked, this, &Yamitracker::onRefreshDevicesClicked); + + connect(reconnectTimer, &QTimer::timeout, this, &Yamitracker::attemptReconnect); + reconnectTimer->start(5000); // Попытка переподключения каждые 5 секунд + + connect(audioPlayerProcess, QOverload::of(&QProcess::finished), + this, [this](int exitCode, QProcess::ExitStatus exitStatus) { + Q_UNUSED(exitCode); + if (exitStatus == QProcess::NormalExit) { + ui->statusLabel->setText("Воспроизведение завершено"); + ui->statusLabel->setStyleSheet("color: white;"); + } + }); + + setStyleSheet( + "QMainWindow { background-color: #2b2b2b; color: white; }" + "QLabel { color: white; font-size: 14px; }" + "QPushButton { border: none; }" + "QPushButton[whiteKey=true] { background-color: white; color: black; border: 1px solid #ccc; font-size: 8pt; }" + "QPushButton[whiteKey=true]:pressed { background-color: #ff4444; }" + "QPushButton[blackKey=true] { background-color: black; color: white; font-size: 7pt; }" + "QPushButton[blackKey=true]:pressed { background-color: #ff4444; }" + "QProgressBar { border: 1px solid #555; background: #333; }" + "QProgressBar::chunk { background: #4CAF50; }" + ); + + QTimer::singleShot(1000, this, &Yamitracker::autoDetectAndConnect); + setWindowTitle("Yamaha PSR-E333 Monitor"); +} + +void Yamitracker::onNoteOnReceived(const QString &data, int velocity) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.insert(note); + highlightKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + int volume = (velocity * 100) / 127; + ui->volumeBar->setValue(volume); + + if (wavWriter->isRecording()) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + // Сохраняем полную информацию о ноте + NoteInfo noteInfo; + noteInfo.note = noteNumber; + noteInfo.velocity = velocity; + noteInfo.startTime = currentTime; + noteInfo.endTime = 0; // Будет установлено при note off + noteInfo.isActive = true; + + activeNotes[data] = noteInfo; + } + } +} + +void Yamitracker::onNoteOffReceived(const QString &data) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.remove(note); + clearKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + if (currentlyPressedKeys.isEmpty()) { + ui->volumeBar->setValue(0); + } + + if (wavWriter->isRecording() && activeNotes.contains(data)) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + + NoteInfo noteInfo = activeNotes[data]; + noteInfo.endTime = currentTime; + noteInfo.isActive = false; + + // Сохраняем записанную ноту + recordedNotes.append(noteInfo); + + // Удаляем из активных нот + activeNotes.remove(data); + + // Добавляем ноту в WAV writer с правильными данными + wavWriter->addNote(noteInfo.startTime, noteInfo.note, noteInfo.velocity, + noteInfo.endTime - noteInfo.startTime); + } +} + +void Yamitracker::onPlayClicked() +{ + ui->statusLabel->setText("Запись..."); + ui->statusLabel->setStyleSheet("color: blue;"); + + // Очищаем предыдущие данные + activeNotes.clear(); + recordedNotes.clear(); + currentlyPressedKeys.clear(); + clearAllHighlights(); + + // Начинаем запись + if (wavWriter->startRecording(16000)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started WAV recording at" << recordingStartTime; + } +} + +void Yamitracker::onStopClicked() +{ + ui->statusLabel->setText("Остановлено"); + ui->statusLabel->setStyleSheet("color: white;"); + + clearAllHighlights(); + currentlyPressedKeys.clear(); + ui->keysInfoLabel->setText("Нажато клавиш: 0"); + ui->volumeBar->setValue(0); + + if (wavWriter->isRecording()) { + // Сохраняем все активные ноты (которые не были отпущены) + for (auto it = activeNotes.begin(); it != activeNotes.end(); ++it) { + NoteInfo noteInfo = it.value(); + noteInfo.endTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + noteInfo.isActive = false; + recordedNotes.append(noteInfo); + } + activeNotes.clear(); + + wavWriter->stopRecording(); + + // Сохраняем WAV файл + QString filename = "recording_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".wav"; + saveWavFile(filename); + } +} + +void Yamitracker::attemptReconnect() +{ + if (!isConnected) { + qDebug() << "Устройство отключено, пытаюсь переподключиться..."; + + if (serialReader && serialReader->isRunning()) { + serialReader->stop(); + serialReader->wait(); + } + + // Небольшая задержка перед повторной попыткой + QTimer::singleShot(1000, this, [this]() { + ui->statusLabel->setText("Попытка переподключения..."); + ui->statusLabel->setStyleSheet("color: orange;"); + + autoDetectAndConnect(); + }); + } +} + : QMainWindow(parent) + , ui(new Ui::Yamitracker) + , serialReader(new SerialReader(this)) + , reconnectTimer(new QTimer(this)) + , isConnected(false) + , wavWriter(new SimpleWavWriter()) + , recordingStartTime(0) + , brrConverter(new BrrConverter(this)) + , audioPlayerProcess(new QProcess(this)) + , currentInstrument(0) + , reverbLevel(0.0f) + , chorusLevel(0.0f) + , synthesizer(new AudioSynthesizer(44100)) +{ + recordingStartTime = 0; + isRecording = false; + + ui->setupUi(this); + + deviceLabel = ui->deviceLabel; + refreshDevicesButton = ui->refreshDevicesButton; + + // Создаем кнопку экспорта нот + exportNotesButton = new QPushButton("Экспорт нот", this); + ui->controlLayout->addWidget(exportNotesButton); + + // Создаем комбо-бокс для выбора инструмента + QLabel *instrumentLabel = new QLabel("Инструмент:", this); + instrumentCombo = new QComboBox(this); + ui->controlLayout->addWidget(instrumentLabel); + ui->controlLayout->addWidget(instrumentCombo); + + // Создаем слайдеры для эффектов + QLabel *reverbLabel = new QLabel("Реверб:", this); + reverbSlider = new QSlider(Qt::Horizontal, this); + reverbSlider->setRange(0, 100); + reverbSlider->setValue(0); + ui->controlLayout->addWidget(reverbLabel); + ui->controlLayout->addWidget(reverbSlider); + + QLabel *chorusLabel = new QLabel("Хорус:", this); + chorusSlider = new QSlider(Qt::Horizontal, this); + chorusSlider->setRange(0, 100); + chorusSlider->setValue(0); + ui->controlLayout->addWidget(chorusLabel); + ui->controlLayout->addWidget(chorusSlider); + + initializeKeyButtons(); + initializeDeviceDetection(); + initializeInstruments(); + + connect(serialReader, &SerialReader::noteOnReceived, this, &Yamitracker::onNoteOnReceived); + connect(serialReader, &SerialReader::noteOffReceived, this, &Yamitracker::onNoteOffReceived); + connect(serialReader, &SerialReader::controlChangeReceived, this, &Yamitracker::onControlChangeReceived); + connect(serialReader, &SerialReader::error, this, &Yamitracker::onError); + connect(serialReader, &SerialReader::connectionStatusChanged, this, &Yamitracker::onConnectionStatusChanged); + connect(serialReader, &SerialReader::deviceInfoReceived, this, &Yamitracker::onDeviceInfoReceived); + connect(ui->playButton, &QPushButton::clicked, this, &Yamitracker::onPlayClicked); + connect(ui->stopButton, &QPushButton::clicked, this, &Yamitracker::onStopClicked); + connect(ui->convertButton, &QPushButton::clicked, this, &Yamitracker::onConvertToBrrClicked); + connect(exportNotesButton, &QPushButton::clicked, this, &Yamitracker::onExportNotesClicked); + connect(refreshDevicesButton, &QPushButton::clicked, this, &Yamitracker::onRefreshDevicesClicked); + connect(instrumentCombo, QOverload::of(&QComboBox::currentIndexChanged), + this, &Yamitracker::onInstrumentChanged); + connect(reverbSlider, &QSlider::valueChanged, this, &Yamitracker::onReverbChanged); + connect(chorusSlider, &QSlider::valueChanged, this, &Yamitracker::onChorusChanged); + + connect(reconnectTimer, &QTimer::timeout, this, &Yamitracker::attemptReconnect); + reconnectTimer->start(5000); + + connect(audioPlayerProcess, QOverload::of(&QProcess::finished), + this, [this](int exitCode, QProcess::ExitStatus exitStatus) { + Q_UNUSED(exitCode); + if (exitStatus == QProcess::NormalExit) { + ui->statusLabel->setText("Воспроизведение завершено"); + ui->statusLabel->setStyleSheet("color: white;"); + } + }); + + setStyleSheet( + "QMainWindow { background-color: #2b2b2b; color: white; }" + "QLabel { color: white; font-size: 14px; }" + "QPushButton { border: none; }" + "QPushButton[whiteKey=true] { background-color: white; color: black; border: 1px solid #ccc; font-size: 8pt; }" + "QPushButton[whiteKey=true]:pressed { background-color: #ff4444; }" + "QPushButton[blackKey=true] { background-color: black; color: white; font-size: 7pt; }" + "QPushButton[blackKey=true]:pressed { background-color: #ff4444; }" + "QProgressBar { border: 1px solid #555; background: #333; }" + "QProgressBar::chunk { background: #4CAF50; }" + "QComboBox { background-color: #444; color: white; border: 1px solid #666; }" + "QSlider::groove:horizontal { background: #555; height: 6px; }" + "QSlider::handle:horizontal { background: #4CAF50; width: 18px; margin: -6px 0; }" + ); + + QTimer::singleShot(1000, this, &Yamitracker::autoDetectAndConnect); + setWindowTitle("Yamaha PSR-E333 Monitor"); +} + +Yamitracker::~Yamitracker() +{ + if (serialReader) { + serialReader->stop(); + if (serialReader->isRunning()) { + serialReader->terminate(); + serialReader->wait(); + } + } + delete wavWriter; + delete synthesizer; + delete ui; +} + +void Yamitracker::initializeInstruments() +{ + // Инструменты Yamaha PSR-E333 + instrumentCombo->addItem("Фортепиано", 0); + instrumentCombo->addItem("Электропиано", 1); + instrumentCombo->addItem("Орган", 2); + instrumentCombo->addItem("Клавесин", 3); + instrumentCombo->addItem("Скрипка", 4); + instrumentCombo->addItem("Виолончель", 5); + instrumentCombo->addItem("Контрабас", 6); + instrumentCombo->addItem("Флейта", 7); + instrumentCombo->addItem("Кларнет", 8); + instrumentCombo->addItem("Саксофон", 9); + instrumentCombo->addItem("Труба", 10); + instrumentCombo->addItem("Тромбон", 11); + instrumentCombo->addItem("Гитара", 12); + instrumentCombo->addItem("Бас-гитара", 13); + instrumentCombo->addItem("Ситар", 14); + instrumentCombo->addItem("Ударные", 15); + instrumentCombo->addItem("Маракасы", 16); + instrumentCombo->addItem("Пэд", 17); + instrumentCombo->addItem("Синтезатор", 18); + instrumentCombo->addItem("Струнные", 19); + instrumentCombo->addItem("Хор", 20); +} + +void Yamitracker::initializeDeviceDetection() +{ + deviceLabel->setText("Устройство: Поиск..."); + deviceLabel->setStyleSheet("color: orange;"); +} + +void Yamitracker::autoDetectAndConnect() +{ + QString device = "/dev/dmmidi1"; + serialReader->setDevice(device); + deviceLabel->setText(QString("Устройство: %1").arg(device)); + deviceLabel->setStyleSheet("color: green;"); + qDebug() << "Using device:" << device; + + startSerialReader(); +} + +void Yamitracker::onDeviceInfoReceived(const QString &manufacturer, const QString &model) +{ + deviceLabel->setText(QString("Устройство: %1 %2").arg(manufacturer, model)); + deviceLabel->setStyleSheet("color: green;"); + + setWindowTitle(QString("Yamitracker - %1 %2").arg(manufacturer, model)); +} + +void Yamitracker::onRefreshDevicesClicked() +{ + deviceLabel->setText("Устройство: Обновление..."); + deviceLabel->setStyleSheet("color: orange;"); + + autoDetectAndConnect(); +} + +void Yamitracker::startSerialReader() +{ + if (serialReader && !serialReader->isRunning()) { + serialReader->start(); + } +} + +void Yamitracker::initializeKeyButtons() +{ + QList whiteKeys = { + ui->key_C1, ui->key_D1, ui->key_E1, ui->key_F1, ui->key_G1, ui->key_A1, ui->key_B1, + ui->key_C2, ui->key_D2, ui->key_E2, ui->key_F2, ui->key_G2, ui->key_A2, ui->key_B2, + ui->key_C3, ui->key_D3, ui->key_E3, ui->key_F3, ui->key_G3, ui->key_A3, ui->key_B3, + ui->key_C4, ui->key_D4, ui->key_E4, ui->key_F4, ui->key_G4, ui->key_A4, ui->key_B4, + ui->key_C5, ui->key_D5, ui->key_E5, ui->key_F5, ui->key_G5, ui->key_A5, ui->key_B5, + ui->key_C6 + }; + + for (QPushButton *key : whiteKeys) { + key->setProperty("whiteKey", true); + keyButtons[key->text()] = key; + } + + QList blackKeys = { + ui->key_Cs1, ui->key_Ds1, ui->key_Fs1, ui->key_Gs1, ui->key_As1, + ui->key_Cs2, ui->key_Ds2, ui->key_Fs2, ui->key_Gs2, ui->key_As2, + ui->key_Cs3, ui->key_Ds3, ui->key_Fs3, ui->key_Gs3, ui->key_As3, + ui->key_Cs4, ui->key_Ds4, ui->key_Fs4, ui->key_Gs4, ui->key_As4, + ui->key_Cs5, ui->key_Ds5, ui->key_Fs5, ui->key_Gs5, ui->key_As5 + }; + + for (QPushButton *key : blackKeys) { + key->setProperty("blackKey", true); + keyButtons[key->text()] = key; + } +} + +void Yamitracker::onNoteOnReceived(const QString &data, int velocity) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.insert(note); + highlightKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + int volume = (velocity * 100) / 127; + ui->volumeBar->setValue(volume); + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (!ok) return; + + // Всегда добавляем ноту в синтезатор для воспроизведения + synthesizer->addNote(noteNumber, velocity, currentInstrument); + + // Записываем ноту только если идет запись + if (isRecording) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + + // Сохраняем информацию о ноте для записи в WAV + NoteInfo noteInfo; + noteInfo.note = noteNumber; + noteInfo.velocity = velocity; + noteInfo.startTime = currentTime; + noteInfo.endTime = 0; // Будет установлено при note off + noteInfo.instrument = currentInstrument; + noteInfo.isActive = true; + + activeNotes[data] = noteInfo; + } +} + +void Yamitracker::onNoteOffReceived(const QString &data) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.remove(note); + clearKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + if (currentlyPressedKeys.isEmpty()) { + ui->volumeBar->setValue(0); + } + + // Удаляем ноту из синтезатора + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + synthesizer->removeNote(noteNumber); + } + + // Записываем окончание ноты если идет запись + if (isRecording && activeNotes.contains(data)) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + + NoteInfo noteInfo = activeNotes[data]; + noteInfo.endTime = currentTime; + noteInfo.isActive = false; + + // Сохраняем записанную ноту + recordedNotes.append(noteInfo); + + // Удаляем из активных нот + activeNotes.remove(data); + } +} + +void Yamitracker::onControlChangeReceived(int controller, int value) +{ + // Обработка контроллеров MIDI + switch(controller) { + case 1: // Modulation Wheel + // Можно использовать для вибрато + break; + case 7: // Volume + // Управление громкостью + break; + case 10: // Pan + // Панорамирование + break; + case 91: // Reverb + reverbLevel = value / 127.0f; + synthesizer->setReverbLevel(reverbLevel); + reverbSlider->setValue(value); + break; + case 93: // Chorus + chorusLevel = value / 127.0f; + synthesizer->setChorusLevel(chorusLevel); + chorusSlider->setValue(value); + break; + } +} + +void Yamitracker::onConnectionStatusChanged(bool connected) +{ + isConnected = connected; + if (connected) { + ui->statusLabel->setText("Статус: Подключено к синтезатору"); + ui->statusLabel->setStyleSheet("color: green;"); + } else { + ui->statusLabel->setText("Статус: Отключено (переподключение...)"); + ui->statusLabel->setStyleSheet("color: red;"); + } +} + +void Yamitracker::attemptReconnect() +{ + if (!isConnected && (!serialReader || !serialReader->isRunning())) { + qDebug() << "Attempting to reconnect..."; + startSerialReader(); + } +} + +void Yamitracker::onError(const QString &message) +{ + ui->statusLabel->setText("Ошибка: " + message); + ui->statusLabel->setStyleSheet("color: orange;"); + if (!message.contains("reconnect", Qt::CaseInsensitive)) { + QMessageBox::warning(this, "Ошибка", message); + } +} + +void Yamitracker::onPlayClicked() +{ + ui->statusLabel->setText("Запись..."); + ui->statusLabel->setStyleSheet("color: blue;"); + + // Очищаем предыдущие данные + activeNotes.clear(); + recordedNotes.clear(); + currentlyPressedKeys.clear(); + clearAllHighlights(); + synthesizer->clearNotes(); + wavWriter->clear(); // Очищаем WAV writer + + // Начинаем запись + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + isRecording = true; // Устанавливаем флаг записи + + qDebug() << "Started recording at time:" << recordingStartTime; +} + +void Yamitracker::onStopClicked() +{ + ui->statusLabel->setText("Остановлено"); + ui->statusLabel->setStyleSheet("color: white;"); + + clearAllHighlights(); + currentlyPressedKeys.clear(); + ui->keysInfoLabel->setText("Нажато клавиш: 0"); + ui->volumeBar->setValue(0); + synthesizer->clearNotes(); + + if (isRecording) { + isRecording = false; // Снимаем флаг записи + + // Сохраняем все активные ноты + for (auto it = activeNotes.begin(); it != activeNotes.end(); ++it) { + NoteInfo noteInfo = it.value(); + noteInfo.endTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + noteInfo.isActive = false; + recordedNotes.append(noteInfo); + } + activeNotes.clear(); + + // Начинаем запись в WAV файл + wavWriter->startRecording(44100); + + // Добавляем все записанные ноты в WAV writer + for (const NoteInfo ¬eInfo : recordedNotes) { + if (noteInfo.endTime > noteInfo.startTime) { + wavWriter->addNote(noteInfo.startTime, noteInfo.note, noteInfo.velocity, + noteInfo.endTime - noteInfo.startTime, noteInfo.instrument); + } + } + + wavWriter->stopRecording(); + + // Сохраняем WAV файл + QString filename = "recording_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".wav"; + saveWavFile(filename); + } +} + +void Yamitracker::saveWavFile(const QString &filename) +{ + if (wavWriter->saveToFile(filename)) { + lastRecordedWavFile = filename; + ui->statusLabel->setText(QString("Сохранено: %1").arg(filename)); + ui->statusLabel->setStyleSheet("color: green;"); + + // Активируем кнопки + ui->convertButton->setEnabled(true); + exportNotesButton->setEnabled(true); + + // Предлагаем воспроизвести файл + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Запись завершена", + QString("WAV файл сохранен:\n%1\n\nВоспроизвести файл?").arg(filename), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + playWavExternal(lastRecordedWavFile); + } + } else { + ui->statusLabel->setText("Ошибка сохранения WAV файла"); + ui->statusLabel->setStyleSheet("color: red;"); + } +} + +void Yamitracker::onExportNotesClicked() +{ + if (recordedNotes.isEmpty()) { + QMessageBox::information(this, "Экспорт нот", "Сначала запишите ноты"); + return; + } + + QString filename = QFileDialog::getSaveFileName(this, "Сохранить ноты", + "notes_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".asm", + "Assembly файлы (*.asm);;Текстовые файлы (*.txt);;Все файлы (*)"); + + if (filename.isEmpty()) { + return; + } + + exportNotesToFile(filename); +} + +void Yamitracker::exportNotesToFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { + QMessageBox::warning(this, "Ошибка", "Не удалось открыть файл для записи"); + return; + } + + QTextStream out(&file); + + // Заголовок + out << "; ============================================\n"; + out << "; Файл нот, созданный Yamitracker\n"; + out << "; Дата: " << QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss") << "\n"; + out << "; Всего нот: " << recordedNotes.size() << "\n"; + out << "; Формат: команда, freq_low, freq_high, длительность\n"; + out << "; Команды: $01 = нота, $02 = пауза, $FF = конец\n"; + out << "; Длительность: 1 = 1/60 секунды\n"; + out << "; ============================================\n\n"; + + out << "Song_Data:\n"; + + // Сортируем ноты по времени начала + std::sort(recordedNotes.begin(), recordedNotes.end(), + [](const NoteInfo& a, const NoteInfo& b) { + return a.startTime < b.startTime; + }); + + double lastTime = 0; + int noteIndex = 0; + + for (const NoteInfo& note : recordedNotes) { + // Добавляем паузу между нотами, если нужно + if (note.startTime > lastTime) { + double pauseDuration = note.startTime - lastTime; + int pauseTicks = static_cast(pauseDuration * 60); // 60 тиков в секунду + + if (pauseTicks > 0) { + out << QString(" .byte $02, $00, $00, $%1 ; Пауза\n") + .arg(pauseTicks, 2, 16, QChar('0')).toUpper(); + } + } + + // Конвертируем ноту в частоту + double frequency = 440.0 * pow(2.0, (note.note - 69) / 12.0); + int freqInt = static_cast(frequency * 256 / 32000); // Для 8-битного формата + + int freqLow = freqInt & 0xFF; + int freqHigh = (freqInt >> 8) & 0xFF; + + // Длительность ноты + double duration = note.endTime - note.startTime; + int durationTicks = static_cast(duration * 60); + + if (durationTicks < 1) durationTicks = 1; + if (durationTicks > 255) durationTicks = 255; + + out << QString(" .byte $01, $%1, $%2, $%3 ; Нота %4 (MIDI %5)\n") + .arg(freqLow, 2, 16, QChar('0')).toUpper() + .arg(freqHigh, 2, 16, QChar('0')).toUpper() + .arg(durationTicks, 2, 16, QChar('0')).toUpper() + .arg(noteIndex + 1) + .arg(note.note); + + lastTime = note.endTime; + noteIndex++; + } + + // Добавляем конечную команду + out << " .byte $FF, $00, $00, $00 ; Конец песни\n"; + + file.close(); + + QMessageBox::information(this, "Экспорт завершен", + QString("Ноты успешно экспортированы в файл:\n%1").arg(filename)); + + ui->statusLabel->setText("Ноты экспортированы"); + ui->statusLabel->setStyleSheet("color: green;"); +} + +void Yamitracker::onConvertToBrrClicked() +{ + if (lastRecordedWavFile.isEmpty()) { + QMessageBox::information(this, "Конвертация", "Сначала запишите WAV файл"); + return; + } + + if (!QFile::exists(lastRecordedWavFile)) { + QMessageBox::warning(this, "Конвертация", "WAV файл не найден: " + lastRecordedWavFile); + return; + } + + // Создаем имя BRR файла + QString baseName = QFileInfo(lastRecordedWavFile).completeBaseName(); + QString brrFile = baseName + ".brr"; + + ui->statusLabel->setText("Конвертация WAV -> BRR..."); + ui->statusLabel->setStyleSheet("color: blue;"); + QApplication::processEvents(); + + if (brrConverter->convertWavToBrr(lastRecordedWavFile, brrFile)) { + ui->statusLabel->setText(QString("Конвертация завершена: %1").arg(brrFile)); + ui->statusLabel->setStyleSheet("color: green;"); + + // Показываем информацию о BRR файле + QFileInfo brrInfo(brrFile); + if (brrInfo.exists()) { + QString info = QString("BRR файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Nintendo SNES ADPCM") + .arg(brrFile) + .arg(brrInfo.size()); + QMessageBox::information(this, "Конвертация завершена", info); + } + } else { + ui->statusLabel->setText("Ошибка конвертации WAV -> BRR"); + ui->statusLabel->setStyleSheet("color: red;"); + QMessageBox::warning(this, "Ошибка", "Не удалось преобразовать WAV в BRR формат"); + } +} + +void Yamitracker::onInstrumentChanged(int index) +{ + currentInstrument = index; + synthesizer->setInstrument(index); + + ui->statusLabel->setText(QString("Инструмент: %1").arg(instrumentCombo->itemText(index))); + ui->statusLabel->setStyleSheet("color: blue;"); + + QTimer::singleShot(2000, this, &Yamitracker::clearStatusMessage); +} + +void Yamitracker::onReverbChanged(int value) +{ + reverbLevel = value / 100.0f; + synthesizer->setReverbLevel(reverbLevel); + updateAudioEffects(); +} + +void Yamitracker::onChorusChanged(int value) +{ + chorusLevel = value / 100.0f; + synthesizer->setChorusLevel(chorusLevel); + updateAudioEffects(); +} + +void Yamitracker::updateAudioEffects() +{ + ui->statusLabel->setText(QString("Эффекты: Реверб=%1%, Хорус=%2%") + .arg(static_cast(reverbLevel * 100)) + .arg(static_cast(chorusLevel * 100))); + ui->statusLabel->setStyleSheet("color: blue;"); + + QTimer::singleShot(2000, this, &Yamitracker::clearStatusMessage); +} + +QString Yamitracker::noteToFrequencyHex(int note) +{ + double frequency = 440.0 * pow(2.0, (note - 69) / 12.0); + int freqInt = static_cast(frequency * 256 / 32000); + + int freqLow = freqInt & 0xFF; + int freqHigh = (freqInt >> 8) & 0xFF; + + return QString("$%1, $%2") + .arg(freqLow, 2, 16, QChar('0')).toUpper() + .arg(freqHigh, 2, 16, QChar('0')).toUpper(); +} + +void Yamitracker::playWavExternal(const QString &wavFile) +{ + QStringList players = {"aplay", "paplay", "play", "ffplay"}; + + QString player; + for (const QString &p : players) { + QProcess checkProcess; + checkProcess.start("which", QStringList() << p); + checkProcess.waitForFinished(); + if (checkProcess.exitCode() == 0) { + player = p; + break; + } + } + + if (player.isEmpty()) { + QMessageBox::warning(this, "Воспроизведение", + "Не найден аудиоплеер. Установите один из:\n" + "aplay, paplay, sox или ffmpeg"); + return; + } + + ui->statusLabel->setText("Воспроизведение WAV файла..."); + ui->statusLabel->setStyleSheet("color: blue;"); + + audioPlayerProcess->start(player, QStringList() << wavFile); + + if (!audioPlayerProcess->waitForStarted(3000)) { + ui->statusLabel->setText("Не удалось запустить аудиоплеер"); + ui->statusLabel->setStyleSheet("color: red;"); + QMessageBox::warning(this, "Ошибка", + QString("Не удалось запустить %1. Убедитесь, что он установлен.").arg(player)); + } +} + +void Yamitracker::highlightKey(const QString ¬e) +{ + if (keyButtons.contains(note)) { + QPushButton *key = keyButtons[note]; + key->setStyleSheet("background-color: #ff4444; color: white; border: 2px solid red;"); + } +} + +void Yamitracker::clearKey(const QString ¬e) +{ + if (!keyButtons.contains(note)) return; + QPushButton *key = keyButtons[note]; + if (key->property("whiteKey").toBool()) + key->setStyleSheet("background-color: white; color: black; border: 1px solid #ccc;"); + else + key->setStyleSheet("background-color: black; color: white;"); +} + +void Yamitracker::clearAllHighlights() +{ + for (auto i = keyButtons.begin(); i != keyButtons.end(); ++i) { + clearKey(i.key()); + } +} + +void Yamitracker::clearStatusMessage() +{ + ui->statusLabel->setText("Статус: Готов"); + ui->statusLabel->setStyleSheet("color: white;"); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/yamitracker.h b/Yamitracker-reoload/Yamitracker3/Yamitracker/yamitracker.h new file mode 100644 index 0000000..0a79711 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/yamitracker.h @@ -0,0 +1,123 @@ +#ifndef YAMITRACKER_H +#define YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "simplewavwriter.h" +#include "brrconverter.h" + +QT_BEGIN_NAMESPACE +namespace Ui { class Yamitracker; } +QT_END_NAMESPACE + +// Структура для хранения информации о ноте (ПЕРЕМЕСТИТЕ В НАЧАЛО ФАЙЛА) +struct NoteInfo { + int note; // MIDI номер ноты + int velocity; // Громкость (0-127) + double startTime; // Время начала + double endTime; // Время окончания + bool isActive; // Активна ли нота +}; + +class SerialReader : public QThread +{ + Q_OBJECT +public: + explicit SerialReader(QObject *parent = nullptr) : QThread(parent) + { + shouldStop = false; + currentDevice = "/dev/dmmidi1"; + } + + void stop() + { + shouldStop = true; + } + + void setDevice(const QString& device) { + currentDevice = device; + } + + QString getCurrentDevice() const { + return currentDevice; + } + +protected: + void run() override; + +private: + bool shouldStop; + QString currentDevice; + +signals: + void noteOnReceived(const QString ¬e, int velocity); + void noteOffReceived(const QString ¬e); + void error(const QString &message); + void connectionStatusChanged(bool connected); + void deviceInfoReceived(const QString &manufacturer, const QString &model); + void controlChangeReceived(int controller, int value); // ТОЛЬКО ОДИН РАЗ! +}; + +class Yamitracker : public QMainWindow +{ + Q_OBJECT + +public: + Yamitracker(QWidget *parent = nullptr); + ~Yamitracker(); + +private slots: + void onNoteOnReceived(const QString ¬e, int velocity); + void onNoteOffReceived(const QString ¬e); + void onControlChangeReceived(int controller, int value); + void onError(const QString &message); + void onPlayClicked(); + void onStopClicked(); + void onConvertToBrrClicked(); + void onExportNotesClicked(); + void clearStatusMessage(); + void onConnectionStatusChanged(bool connected); + void attemptReconnect(); + void onDeviceInfoReceived(const QString &manufacturer, const QString &model); + void onRefreshDevicesClicked(); + +private: + Ui::Yamitracker *ui; + SerialReader *serialReader; + QHash keyButtons; + QSet currentlyPressedKeys; + QTimer *reconnectTimer; + bool isConnected; + SimpleWavWriter *wavWriter; + double recordingStartTime; + QHash activeNotes; + QVector recordedNotes; + QLabel *deviceLabel; + QPushButton *refreshDevicesButton; + QPushButton *exportNotesButton; + BrrConverter *brrConverter; + QProcess *audioPlayerProcess; + QString lastRecordedWavFile; + + void initializeKeyButtons(); + void highlightKey(const QString ¬e); + void clearKey(const QString ¬e); + void clearAllHighlights(); + void startSerialReader(); + void saveWavFile(const QString &filename); + void initializeDeviceDetection(); + void autoDetectAndConnect(); + void convertToBrr(const QString &wavFile, const QString &brrFile); + void playWavExternal(const QString &wavFile); + void exportNotesToFile(const QString &filename); + QString noteToFrequencyHex(int note); +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker3/Yamitracker/yamitracker.ui b/Yamitracker-reoload/Yamitracker3/Yamitracker/yamitracker.ui new file mode 100644 index 0000000..0b7704d --- /dev/null +++ b/Yamitracker-reoload/Yamitracker3/Yamitracker/yamitracker.ui @@ -0,0 +1,669 @@ + + + Yamitracker + + + + 0 + 0 + 1200 + 600 + + + + Yamaha PSR-E333 Monitor + + + + + + + Статус: Готов + + + + + + + Устройство: Не подключено + + + + + + + Нажато клавиш: 0 + + + + + + + 0 + + + + + + + + + Запись (Play) + + + + + + + Стоп + + + + + + + Конвертировать в BRR + + + + + + + Обновить устройства + + + + + + + + + + + + + + + C1 + + + + + + + D1 + + + + + + + E1 + + + + + + + F1 + + + + + + + G1 + + + + + + + A1 + + + + + + + B1 + + + + + + + C2 + + + + + + + D2 + + + + + + + E2 + + + + + + + F2 + + + + + + + G2 + + + + + + + A2 + + + + + + + B2 + + + + + + + C3 + + + + + + + D3 + + + + + + + E3 + + + + + + + F3 + + + + + + + G3 + + + + + + + A3 + + + + + + + B3 + + + + + + + C4 + + + + + + + D4 + + + + + + + E4 + + + + + + + F4 + + + + + + + G4 + + + + + + + A4 + + + + + + + B4 + + + + + + + C5 + + + + + + + D5 + + + + + + + E5 + + + + + + + F5 + + + + + + + G5 + + + + + + + A5 + + + + + + + B5 + + + + + + + C6 + + + + + + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#1 + + + + + + + D#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#1 + + + + + + + G#1 + + + + + + + A#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#2 + + + + + + + D#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#2 + + + + + + + G#2 + + + + + + + A#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#3 + + + + + + + D#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#3 + + + + + + + G#3 + + + + + + + A#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#4 + + + + + + + D#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#4 + + + + + + + G#4 + + + + + + + A#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#5 + + + + + + + D#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#5 + + + + + + + G#5 + + + + + + + A#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user b/Yamitracker-reoload/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user new file mode 100644 index 0000000..fcac744 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user @@ -0,0 +1,263 @@ + + + + + + EnvironmentId + {6395eb3f-fc2a-4125-bb4f-a9c51f02958b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {0acbc229-4897-4c6e-a23f-ae7c45394b0c} + 0 + 0 + 0 + + 0 + /home/acer1117/build-Yamitracker-Desktop-Debug + /home/acer1117/build-Yamitracker-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/acer1117/build-Yamitracker-Desktop-Release + /home/acer1117/build-Yamitracker-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/acer1117/build-Yamitracker-Desktop-Profile + /home/acer1117/build-Yamitracker-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro + /home/acer1117/Yamitracker/Yamitracker.pro + false + true + true + false + true + /home/acer1117/build-Yamitracker-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/Yamitracker.pro b/Yamitracker-reoload/Yamitracker4/Yamitracker/Yamitracker.pro new file mode 100644 index 0000000..d5d042f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/Yamitracker.pro @@ -0,0 +1,22 @@ +QT += core gui widgets multimedia + +CONFIG += c++17 + +SOURCES += \ + main.cpp \ + yamitracker.cpp \ + simplewavwriter.cpp \ + brrconverter.cpp + +HEADERS += \ + yamitracker.h \ + simplewavwriter.h \ + brrconverter.h + +FORMS += \ + yamitracker.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/Yamitracker.pro.user b/Yamitracker-reoload/Yamitracker4/Yamitracker/Yamitracker.pro.user new file mode 100644 index 0000000..fcac744 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/Yamitracker.pro.user @@ -0,0 +1,263 @@ + + + + + + EnvironmentId + {6395eb3f-fc2a-4125-bb4f-a9c51f02958b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {0acbc229-4897-4c6e-a23f-ae7c45394b0c} + 0 + 0 + 0 + + 0 + /home/acer1117/build-Yamitracker-Desktop-Debug + /home/acer1117/build-Yamitracker-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/acer1117/build-Yamitracker-Desktop-Release + /home/acer1117/build-Yamitracker-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/acer1117/build-Yamitracker-Desktop-Profile + /home/acer1117/build-Yamitracker-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro + /home/acer1117/Yamitracker/Yamitracker.pro + false + true + true + false + true + /home/acer1117/build-Yamitracker-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/Yamitracker_ru_RU.ts b/Yamitracker-reoload/Yamitracker4/Yamitracker/Yamitracker_ru_RU.ts new file mode 100644 index 0000000..743f57f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/Yamitracker_ru_RU.ts @@ -0,0 +1,3 @@ + + + diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/brrconverter.cpp b/Yamitracker-reoload/Yamitracker4/Yamitracker/brrconverter.cpp new file mode 100644 index 0000000..eed5c96 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/brrconverter.cpp @@ -0,0 +1,340 @@ +#include "brrconverter.h" +#include + +BrrConverter::BrrConverter(QObject *parent) : QObject(parent) +{ +} + +bool BrrConverter::convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath) +{ + QFile wavFile(wavFilePath); + if (!wavFile.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open WAV file:" << wavFilePath; + return false; + } + + int sampleRate, channels, bitsPerSample, dataSize; + if (!decodeWavHeader(wavFile, sampleRate, channels, bitsPerSample, dataSize)) { + qDebug() << "Invalid WAV file format"; + wavFile.close(); + return false; + } + + // Читаем аудиоданные + QByteArray audioData = wavFile.read(dataSize); + wavFile.close(); + + // Конвертируем в 16-bit моно + QVector samples; + int bytesPerSample = bitsPerSample / 8; + int totalSamples = dataSize / (bytesPerSample * channels); + + for (int i = 0; i < totalSamples; ++i) { + int32_t sample = 0; + + for (int ch = 0; ch < channels; ++ch) { + int32_t channelSample = 0; + int offset = (i * channels + ch) * bytesPerSample; + + if (bitsPerSample == 8) { + channelSample = (int8_t)audioData[offset]; + channelSample = (channelSample - 128) * 256; + } else if (bitsPerSample == 16) { + channelSample = (int16_t)((audioData[offset + 1] << 8) | audioData[offset]); + } else if (bitsPerSample == 24) { + channelSample = (int32_t)((audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + if (channelSample & 0x800000) channelSample |= 0xFF000000; + channelSample >>= 8; + } else if (bitsPerSample == 32) { + channelSample = (int32_t)((audioData[offset + 3] << 24) | + (audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + channelSample >>= 16; + } + + sample += channelSample; + } + + // Микшируем каналы + sample /= channels; + samples.append(clamp16(sample)); + } + + // Понижаем частоту дискретизации для SNES (макс 32kHz -> 16kHz) + if (sampleRate > 16000) { + int ratio = sampleRate / 16000; + QVector downsampled; + for (int i = 0; i < samples.size(); i += ratio) { + downsampled.append(samples[i]); + } + samples = downsampled; + } else if (sampleRate < 16000) { + // Если частота ниже, повышаем (простое повторение) + int ratio = 16000 / sampleRate; + QVector upsampled; + for (int i = 0; i < samples.size(); ++i) { + for (int j = 0; j < ratio; ++j) { + upsampled.append(samples[i]); + } + } + samples = upsampled; + } + + // Открываем BRR файл для записи + QFile brrFile(brrFilePath); + if (!brrFile.open(QIODevice::WriteOnly)) { + qDebug() << "Cannot open BRR file for writing:" << brrFilePath; + return false; + } + + ADPCMState state; + QVector blockSamples; + + // Конвертируем в BRR блоками по 16 сэмплов + for (int i = 0; i < samples.size(); ++i) { + int encoded = encodeADPCMNibble(samples[i], state); + blockSamples.append(encoded); + + if (blockSamples.size() == 32) { // 32 ниббла = 16 сэмплов + writeBrrBlock(brrFile, blockSamples, false); + blockSamples.clear(); + } + } + + // Записываем последний неполный блок + if (!blockSamples.isEmpty()) { + // Дополняем до 32 нибблов + while (blockSamples.size() < 32) { + blockSamples.append(0); + } + writeBrrBlock(brrFile, blockSamples, true); // Последний блок с флагом loop + } else if (samples.size() > 0) { + // Если был полный последний блок, помечаем его как loop + brrFile.seek(brrFile.size() - BRR_BLOCK_SIZE); + unsigned char header = 0x03; // Фильтр 0, loop flag = 1 + brrFile.write((char*)&header, 1); + } + + brrFile.close(); + qDebug() << "BRR file created:" << brrFilePath << "samples:" << samples.size() << "sample rate:" << sampleRate; + return true; +} + +bool BrrConverter::convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath) +{ + qDebug() << "MIDI to BRR conversion requires MIDI synthesizer"; + qDebug() << "Please convert MIDI to WAV first, then use WAV to BRR"; + + return false; +} + +bool BrrConverter::decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize) +{ + char buffer[44]; + if (file.read(buffer, 44) != 44) { + return false; + } + + // Проверяем RIFF заголовок + if (buffer[0] != 'R' || buffer[1] != 'I' || buffer[2] != 'F' || buffer[3] != 'F') { + return false; + } + + // Проверяем WAVE формат + if (buffer[8] != 'W' || buffer[9] != 'A' || buffer[10] != 'V' || buffer[11] != 'E') { + return false; + } + + // Проверяем fmt chunk + if (buffer[12] != 'f' || buffer[13] != 'm' || buffer[14] != 't' || buffer[15] != ' ') { + return false; + } + + // Читаем параметры + int fmtSize = *(int*)(buffer + 16); + if (fmtSize < 16) return false; + + int audioFormat = *(short*)(buffer + 20); + if (audioFormat != 1) return false; // Только PCM + + channels = *(short*)(buffer + 22); + sampleRate = *(int*)(buffer + 24); + bitsPerSample = *(short*)(buffer + 34); + + // Ищем data chunk + int offset = 36; + while (offset < file.size()) { + file.seek(offset); + char chunkId[4]; + if (file.read(chunkId, 4) != 4) break; + + int chunkSize; + if (file.read((char*)&chunkSize, 4) != 4) break; + + if (chunkId[0] == 'd' && chunkId[1] == 'a' && chunkId[2] == 't' && chunkId[3] == 'a') { + dataSize = chunkSize; + file.seek(offset + 8); + return true; + } + + offset += 8 + chunkSize; + } + + return false; +} + +int16_t BrrConverter::clamp16(int sample) +{ + if (sample > 32767) return 32767; + if (sample < -32768) return -32768; + return (int16_t)sample; +} + +int BrrConverter::encodeADPCMNibble(int sample, ADPCMState &state) +{ + int diff = sample - state.prev_sample; + int step = step_table[state.prev_index]; + + // Квантование + int nibble = 0; + int predicted = state.prev_sample; + + // Применяем фильтр (простейший - без фильтра) + int filtered = predicted; + + diff = sample - filtered; + + // Находим наилучший nibble + int best_nibble = 0; + int best_error = INT_MAX; + + for (int n = 0; n < 16; ++n) { + int step_index = state.prev_index + ((n & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (n & 8) ? -current_step : current_step; + + int current_sample = filtered + delta; + int error = abs(sample - current_sample); + + if (error < best_error) { + best_error = error; + best_nibble = n; + } + } + + // Декодируем выбранный nibble для обновления состояния + int step_index = state.prev_index + ((best_nibble & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (best_nibble & 8) ? -current_step : current_step; + + state.prev_sample = filtered + delta; + state.prev_index = step_index; + + // Ограничиваем индекс + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + // Ограничиваем сэмпл + state.prev_sample = clamp16(state.prev_sample); + + return best_nibble; +} + +void BrrConverter::writeBrrBlock(QFile &file, const QVector &samples, bool loop) +{ + if (samples.size() != 32) { + qDebug() << "Invalid sample count for BRR block:" << samples.size(); + return; + } + + unsigned char header = 0x00; + if (loop) { + header = 0x03; // Фильтр 0 + loop + } + + file.write((char*)&header, 1); + + // Упаковываем 32 ниббла в 8 байт + for (int i = 0; i < 16; ++i) { + unsigned char byte = (samples[i * 2] << 4) | (samples[i * 2 + 1] & 0x0F); + file.write((char*)&byte, 1); + } +} + +int BrrConverter::decodeADPCMNibble(int nibble, ADPCMState &state) +{ + int step = step_table[state.prev_index]; + int delta = step >> 3; + + if (nibble & 1) delta += step >> 2; + if (nibble & 2) delta += step >> 1; + if (nibble & 4) delta += step; + + if (nibble & 8) delta = -delta; + + // Применяем фильтр (простейший) + int sample = state.prev_sample + delta; + + // Ограничиваем + sample = clamp16(sample); + + // Обновляем индекс + state.prev_index += ((nibble & 7) * 2 - 7); + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + state.prev_sample = sample; + + return sample; +} + +QVector BrrConverter::decodeBrrFile(const QString &brrFilePath) +{ + QVector samples; + QFile file(brrFilePath); + + if (!file.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open BRR file for reading:" << brrFilePath; + return samples; + } + + ADPCMState state; + + while (!file.atEnd()) { + unsigned char header; + if (file.read((char*)&header, 1) != 1) break; + + unsigned char data[8]; + if (file.read((char*)data, 8) != 8) break; + + // Извлекаем нибблы + for (int i = 0; i < 8; ++i) { + unsigned char byte = data[i]; + int nibble1 = (byte >> 4) & 0x0F; + int nibble2 = byte & 0x0F; + + int sample1 = decodeADPCMNibble(nibble1, state); + int sample2 = decodeADPCMNibble(nibble2, state); + + samples.append(sample1); + samples.append(sample2); + } + + // Проверяем конец + if (header & 0x01) { + break; // Конец сэмпла + } + } + + file.close(); + return samples; +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/brrconverter.h b/Yamitracker-reoload/Yamitracker4/Yamitracker/brrconverter.h new file mode 100644 index 0000000..175879a --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/brrconverter.h @@ -0,0 +1,54 @@ +#ifndef BRRCONVERTER_H +#define BRRCONVERTER_H + +#include +#include +#include +#include +#include + +class BrrConverter : public QObject +{ + Q_OBJECT + +public: + BrrConverter(QObject *parent = nullptr); + + bool convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath); + bool convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath); + +private: + struct ADPCMState { + int prev_sample; + int prev_index; + + ADPCMState() : prev_sample(0), prev_index(0) {} + }; + + struct BRRBlock { + unsigned char header; + unsigned char data[8]; + }; + + bool decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize); + int16_t clamp16(int sample); + int encodeADPCMNibble(int sample, ADPCMState &state); + void writeBrrBlock(QFile &file, const QVector &samples, bool loop = false); + int decodeADPCMNibble(int nibble, ADPCMState &state); + QVector decodeBrrFile(const QString &brrFilePath); + + static const int BRR_BLOCK_SIZE = 9; + static const int SAMPLES_PER_BLOCK = 16; + static const int FILTER_TYPES = 4; + + const int step_table[89] = { + 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, + 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, + 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, + 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327, + 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, + 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 + }; +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build/.qmake.stash b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build/Makefile b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/Makefile new file mode 100644 index 0000000..18a8655 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/Makefile @@ -0,0 +1,455 @@ +############################################################################# +# Makefile for building: Yamitracker +# Generated by qmake (3.1) (Qt 5.15.17) +# Project: ../Yamitracker.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Yamitracker1.0.0 +DISTDIR = /home/soffti/progs/Yami/Yamitracker/Yamitracker4/Yamitracker/build/.tmp/Yamitracker1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Multimedia.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Network.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp moc_yamitracker.cpp \ + moc_simplewavwriter.cpp \ + moc_brrconverter.cpp +OBJECTS = main.o \ + yamitracker.o \ + simplewavwriter.o \ + brrconverter.o \ + moc_yamitracker.o \ + moc_simplewavwriter.o \ + moc_brrconverter.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../Yamitracker.pro ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp +QMAKE_TARGET = Yamitracker +DESTDIR = +TARGET = Yamitracker + + +first: all +####### Build rules + +Yamitracker: ui_yamitracker.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../Yamitracker.pro + $(QMAKE) -o Makefile ../Yamitracker.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../Yamitracker.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../Yamitracker.pro + +qmake_all: FORCE + + +all: Makefile Yamitracker + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.h ../simplewavwriter.h ../brrconverter.h $(DISTDIR)/ + $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplewavwriter.cpp ../brrconverter.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_yamitracker.cpp moc_simplewavwriter.cpp moc_brrconverter.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_yamitracker.cpp moc_simplewavwriter.cpp moc_brrconverter.cpp +moc_yamitracker.cpp: ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/soffti/progs/Yami/Yamitracker/Yamitracker4/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/soffti/progs/Yami/Yamitracker/Yamitracker4/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp + +moc_simplewavwriter.cpp: ../simplewavwriter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/soffti/progs/Yami/Yamitracker/Yamitracker4/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/soffti/progs/Yami/Yamitracker/Yamitracker4/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../simplewavwriter.h -o moc_simplewavwriter.cpp + +moc_brrconverter.cpp: ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/soffti/progs/Yami/Yamitracker/Yamitracker4/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/soffti/progs/Yami/Yamitracker/Yamitracker4/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../brrconverter.h -o moc_brrconverter.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_yamitracker.h +compiler_uic_clean: + -$(DEL_FILE) ui_yamitracker.h +ui_yamitracker.h: ../yamitracker.ui \ + /usr/lib/qt5/bin/uic + /usr/lib/qt5/bin/uic ../yamitracker.ui -o ui_yamitracker.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: ../main.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp + +yamitracker.o: ../yamitracker.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + ui_yamitracker.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp + +simplewavwriter.o: ../simplewavwriter.cpp ../simplewavwriter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplewavwriter.o ../simplewavwriter.cpp + +brrconverter.o: ../brrconverter.cpp ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o brrconverter.o ../brrconverter.cpp + +moc_yamitracker.o: moc_yamitracker.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp + +moc_simplewavwriter.o: moc_simplewavwriter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_simplewavwriter.o moc_simplewavwriter.cpp + +moc_brrconverter.o: moc_brrconverter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_brrconverter.o moc_brrconverter.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin + $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build/Yamitracker b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/Yamitracker new file mode 100755 index 0000000..c70de1a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/Yamitracker differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build/brrconverter.o b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/brrconverter.o new file mode 100644 index 0000000..4e2d6c9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build/main.o b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/main.o new file mode 100644 index 0000000..0ccc361 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/main.o differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_brrconverter.cpp b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_brrconverter.cpp new file mode 100644 index 0000000..e19d56f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_brrconverter.cpp @@ -0,0 +1,95 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'brrconverter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.17) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../brrconverter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'brrconverter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.17. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_BrrConverter_t { + QByteArrayData data[1]; + char stringdata0[13]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_BrrConverter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_BrrConverter_t qt_meta_stringdata_BrrConverter = { + { +QT_MOC_LITERAL(0, 0, 12) // "BrrConverter" + + }, + "BrrConverter" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_BrrConverter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void BrrConverter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject BrrConverter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_BrrConverter.data, + qt_meta_data_BrrConverter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *BrrConverter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *BrrConverter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_BrrConverter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int BrrConverter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_brrconverter.o b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_brrconverter.o new file mode 100644 index 0000000..4c83fbe Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_predefs.h b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_predefs.h new file mode 100644 index 0000000..5170ea4 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_predefs.h @@ -0,0 +1,472 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __LDBL_MANT_DIG__ 64 +#define __cpp_nontype_template_parameter_auto 201606L +#define __UINT_LEAST16_MAX__ 0xffff +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __ATOMIC_ACQUIRE 2 +#define __FLT128_MAX_10_EXP__ 4932 +#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __cpp_aggregate_nsdmi 201304L +#define __UINT_LEAST8_TYPE__ unsigned char +#define __SIZEOF_FLOAT80__ 16 +#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 0xff +#define __SCHAR_WIDTH__ 8 +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 201411L +#define __BFLT16_MIN_10_EXP__ (-37) +#define __cpp_inheriting_constructors 201511L +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __WCHAR_MAX__ 0x7fffffff +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __cpp_binary_literals 201304L +#define __FLT64_DECIMAL_DIG__ 17 +#define __cpp_noexcept_function_type 201510L +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __cpp_variadic_templates 200704L +#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __cpp_variable_templates 201304L +#define __FLT32X_MAX_EXP__ 1024 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __FLT32_HAS_DENORM__ 1 +#define __UINT_FAST8_MAX__ 0xff +#define __cpp_rvalue_reference 200610L +#define __cpp_nested_namespace_definitions 201411L +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __LDBL_HAS_INFINITY__ 1 +#define __INT_LEAST8_WIDTH__ 8 +#define __cpp_variadic_using 201611L +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL +#define __INT_LEAST8_MAX__ 0x7f +#define __cpp_attributes 200809L +#define __cpp_capture_star_this 201603L +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __FLT64X_MAX_10_EXP__ 4932 +#define __cpp_if_constexpr 201606L +#define __BFLT16_MAX_10_EXP__ 38 +#define __BFLT16_MAX_EXP__ 128 +#define __LDBL_IS_IEC_60559__ 1 +#define __FLT64X_HAS_QUIET_NAN__ 1 +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +#define __UINTMAX_TYPE__ long unsigned int +#define __cpp_nsdmi 200809L +#define __BFLT16_DECIMAL_DIG__ 4 +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __OPTIMIZE__ 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +#define __FLT128_MIN_EXP__ (-16381) +#define __DEC64X_MAX_EXP__ 6145 +#define __WINT_MIN__ 0U +#define __FLT128_MIN_10_EXP__ (-4931) +#define __FLT32X_IS_IEC_60559__ 1 +#define __INT_LEAST16_WIDTH__ 16 +#define __SCHAR_MAX__ 0x7f +#define __FLT128_MANT_DIG__ 113 +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __INT64_C(c) c ## L +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __ATOMIC_SEQ_CST 5 +#define __unix 1 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MANT_DIG__ 53 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __cpp_aligned_new 201606L +#define __FLT32_MAX_10_EXP__ 38 +#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +#define __STDC_HOSTED__ 1 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype_auto 201304L +#define __DBL_DIG__ 15 +#define __STDC_EMBED_EMPTY__ 2 +#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __FLT32_IS_IEC_60559__ 1 +#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +#define __DBL_IS_IEC_60559__ 1 +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806L +#define __cpp_enumerator_attributes 201411L +#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +#define __FLT32X_HAS_INFINITY__ 1 +#define __unix__ 1 +#define __INT_WIDTH__ 32 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __DECIMAL_DIG__ 21 +#define __STDC_IEC_559_COMPLEX__ 1 +#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +#define __gnu_linux__ 1 +#define __INT16_MAX__ 0x7fff +#define __FLT64_MIN_EXP__ (-1021) +#define __DEC64X_EPSILON__ 1E-33D64x +#define __FLT64X_MIN_10_EXP__ (-4931) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __FLT16_MIN_EXP__ (-13) +#define __FLT64_MANT_DIG__ 53 +#define __FLT64X_MANT_DIG__ 64 +#define __BFLT16_DIG__ 2 +#define __GNUC__ 15 +#define __GXX_RTTI 1 +#define __pie__ 2 +#define __MMX__ 1 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __BIGGEST_ALIGNMENT__ 16 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __BFLT16_IS_IEC_60559__ 0 +#define __FLT16_MAX_10_EXP__ 4 +#define __cpp_delegating_constructors 200604L +#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __cpp_raw_strings 200710L +#define __INT_FAST32_MAX__ 0x7fffffffffffffffL +#define __DBL_HAS_INFINITY__ 1 +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __SIZEOF_FLOAT__ 4 +#define __HAVE_SPECULATION_SAFE_VALUE 1 +#define __cpp_fold_expressions 201603L +#define __DEC32_MIN_EXP__ (-94) +#define __INTPTR_WIDTH__ 64 +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ long int +#define __MMX_WITH_SSE__ 1 +#define __LDBL_HAS_DENORM__ 1 +#define __SEG_GS 1 +#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +#define __cplusplus 201703L +#define __cpp_ref_qualifiers 200710L +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610L +#define __DBL_MAX_EXP__ 1024 +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __FLT16_DECIMAL_DIG__ 5 +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 0x7fffffffffffffffL +#define __amd64 1 +#define __DEC64X_MAX__ 9.999999999999999999999999999999999E6144D64x +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __GNUG__ 15 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 8 +#define __BFLT16_HAS_INFINITY__ 1 +#define __FLT64X_MIN_EXP__ (-16381) +#define __SIZEOF_WINT_T__ 4 +#define __FLT32X_DIG__ 15 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806L +#define __FLT32_MAX_EXP__ 128 +#define __cpp_hex_float 201603L +#define __GXX_ABI_VERSION 1020 +#define __FLT_MIN_EXP__ (-125) +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __x86_64 1 +#define __cpp_lambdas 200907L +#define __INT_FAST64_TYPE__ long int +#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +#define __cpp_template_auto 201606L +#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __SIZEOF_POINTER__ 8 +#define __SIZE_TYPE__ long unsigned int +#define __LP64__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +#define __LDBL_MAX_EXP__ 16384 +#define __DECIMAL_BID_FORMAT__ 1 +#define __FLT64_MIN_10_EXP__ (-307) +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT64X_DECIMAL_DIG__ 21 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __FLT128_HAS_INFINITY__ 1 +#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __FLT_DIG__ 6 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 21 +#define __VERSION__ "15.2.0" +#define __UINT64_C(c) c ## UL +#define __cpp_unicode_characters 201411L +#define __DEC64X_MIN__ 1E-6143D64x +#define _STDC_PREDEF_H 1 +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT128_MAX_EXP__ 16384 +#define __FLT32_MANT_DIG__ 24 +#define __cpp_decltype 200707L +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT32X_MIN_EXP__ (-1021) +#define __STDC_IEC_60559_COMPLEX__ 201404L +#define __cpp_aggregate_bases 201603L +#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +#define __FLT128_HAS_DENORM__ 1 +#define __FLT32_DECIMAL_DIG__ 9 +#define __FLT128_DIG__ 33 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __DEC64X_MANT_DIG__ 34 +#define __DEC128_MAX_EXP__ 6145 +#define unix 1 +#define __DBL_HAS_DENORM__ 1 +#define __cpp_rtti 199711L +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __FLT_IS_IEC_60559__ 1 +#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +#define __FLT64X_DIG__ 18 +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309L +#define __ELF__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __UINT32_TYPE__ unsigned int +#define __BFLT16_HAS_QUIET_NAN__ 1 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +#define __UINTMAX_C(c) c ## UL +#define __FLT16_DIG__ 3 +#define __k8 1 +#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __cpp_constexpr 201603L +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +#define __STDC_IEC_60559_BFP__ 201404L +#define __SIZEOF_PTRDIFF_T__ 8 +#define __FLT64X_HAS_INFINITY__ 1 +#define __SIZEOF_LONG__ 8 +#define __LDBL_DIG__ 18 +#define __FLT64_IS_IEC_60559__ 1 +#define __x86_64__ 1 +#define __FLT16_IS_IEC_60559__ 1 +#define __FLT16_MAX_EXP__ 16 +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __STDC_EMBED_FOUND__ 1 +#define __INT_FAST16_MAX__ 0x7fffffffffffffffL +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __FLT64X_HAS_DENORM__ 1 +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" +#define __cpp_unicode_literals 200710L +#define __UINT_FAST16_TYPE__ long unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __STDC_EMBED_NOT_FOUND__ 0 +#define __INT_FAST32_WIDTH__ 64 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __DEC64X_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143D64x +#define __SIZE_WIDTH__ 64 +#define __SEG_FS 1 +#define __INT_LEAST16_MAX__ 0x7fff +#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __DEC64_MANT_DIG__ 16 +#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +#define __cpp_structured_bindings 201606L +#define __SIZEOF_INT__ 4 +#define __DEC32_MAX_EXP__ 97 +#define __INT_FAST8_MAX__ 0x7f +#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __INTPTR_MAX__ 0x7fffffffffffffffL +#define __cpp_sized_deallocation 201309L +#define __cpp_guaranteed_copy_elision 201606L +#define linux 1 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __EXCEPTIONS 1 +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 64 +#define __cpp_range_based_for 201603L +#define __INT_FAST16_WIDTH__ 64 +#define __FLT64_HAS_INFINITY__ 1 +#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __FLT16_HAS_INFINITY__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __cpp_nontype_template_args 201411L +#define __DEC32_MANT_DIG__ 7 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __pic__ 2 +#define __UINTPTR_MAX__ 0xffffffffffffffffUL +#define __INT_FAST64_WIDTH__ 64 +#define __INT_FAST64_MAX__ 0x7fffffffffffffffL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +#define __FLT32_HAS_INFINITY__ 1 +#define __FLT64X_MAX_EXP__ 16384 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __cpp_inline_variables 201606L +#define __BFLT16_MIN_EXP__ (-125) +#define __INT_MAX__ 0x7fffffff +#define __linux__ 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __SIZEOF_FLOAT128__ 16 +#define __BFLT16_MANT_DIG__ 8 +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __DEC64X_MIN_EXP__ (-6142) +#define __amd64__ 1 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST64_WIDTH__ 64 +#define __FLT32X_MAX_10_EXP__ 308 +#define __cpp_namespace_attributes 201411L +#define __SIZEOF_INT128__ 16 +#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +#define __FLT64X_IS_IEC_60559__ 1 +#define __GXX_CONSTEXPR_ASM__ 1 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +#define __INT_LEAST32_TYPE__ int +#define _LP64 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __cpp_return_type_deduction 201304L +#define __SIZEOF_WCHAR_T__ 4 +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __FLT128_HAS_QUIET_NAN__ 1 +#define __INTMAX_MAX__ 0x7fffffffffffffffL +#define __INT_FAST8_TYPE__ signed char +#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +#define __STDCPP_THREADS__ 1 +#define __BFLT16_HAS_DENORM__ 1 +#define __GNUC_STDC_INLINE__ 1 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +#define __FLT16_HAS_DENORM__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __FXSR__ 1 +#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __INTMAX_WIDTH__ 64 +#define __cpp_runtime_arrays 198712L +#define __FLT32_DIG__ 6 +#define __UINT64_TYPE__ long unsigned int +#define __UINT32_C(c) c ## U +#define __cpp_alias_templates 200704L +#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +#define __FLT128_IS_IEC_60559__ 1 +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 64 +#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +#define __PIC__ 2 +#define __INT32_MAX__ 0x7fffffff +#define __UINT_FAST32_TYPE__ long unsigned int +#define __FLT16_MANT_DIG__ 11 +#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F +#define __SSE2__ 1 +#define __cpp_deduction_guides 201703L +#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711L +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long int +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 2 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __UINTMAX_MAX__ 0xffffffffffffffffUL +#define __PIE__ 2 +#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +#define __cpp_template_template_args 201611L +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +#define __INT16_C(c) c +#define __STDC__ 1 +#define __PTRDIFF_TYPE__ long int +#define __LONG_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __cpp_generic_lambdas 201304L +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809L +#define __FLT128_DECIMAL_DIG__ 36 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL +#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __SIZE_MAX__ 0xffffffffffffffffUL +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __cpp_init_captures 201304L +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_simplewavwriter.cpp b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_simplewavwriter.cpp new file mode 100644 index 0000000..1d267ee --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_simplewavwriter.cpp @@ -0,0 +1,155 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'simplewavwriter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.17) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../simplewavwriter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'simplewavwriter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.17. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SimpleWavWriter_t { + QByteArrayData data[6]; + char stringdata0[56]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SimpleWavWriter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SimpleWavWriter_t qt_meta_stringdata_SimpleWavWriter = { + { +QT_MOC_LITERAL(0, 0, 15), // "SimpleWavWriter" +QT_MOC_LITERAL(1, 16, 12), // "trackUpdated" +QT_MOC_LITERAL(2, 29, 0), // "" +QT_MOC_LITERAL(3, 30, 5), // "track" +QT_MOC_LITERAL(4, 36, 14), // "audioDataReady" +QT_MOC_LITERAL(5, 51, 4) // "data" + + }, + "SimpleWavWriter\0trackUpdated\0\0track\0" + "audioDataReady\0data" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SimpleWavWriter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 2, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 2, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 1, 24, 2, 0x06 /* Public */, + 4, 2, 27, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::Int, 3, + QMetaType::Void, QMetaType::Int, QMetaType::QByteArray, 3, 5, + + 0 // eod +}; + +void SimpleWavWriter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->trackUpdated((*reinterpret_cast< int(*)>(_a[1]))); break; + case 1: _t->audioDataReady((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< const QByteArray(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SimpleWavWriter::*)(int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SimpleWavWriter::trackUpdated)) { + *result = 0; + return; + } + } + { + using _t = void (SimpleWavWriter::*)(int , const QByteArray & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SimpleWavWriter::audioDataReady)) { + *result = 1; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SimpleWavWriter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SimpleWavWriter.data, + qt_meta_data_SimpleWavWriter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SimpleWavWriter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SimpleWavWriter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SimpleWavWriter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int SimpleWavWriter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 2) + qt_static_metacall(this, _c, _id, _a); + _id -= 2; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 2) + *reinterpret_cast(_a[0]) = -1; + _id -= 2; + } + return _id; +} + +// SIGNAL 0 +void SimpleWavWriter::trackUpdated(int _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SimpleWavWriter::audioDataReady(int _t1, const QByteArray & _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_simplewavwriter.o b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_simplewavwriter.o new file mode 100644 index 0000000..c20223c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_simplewavwriter.o differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_yamitracker.cpp b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_yamitracker.cpp new file mode 100644 index 0000000..c651cbf --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_yamitracker.cpp @@ -0,0 +1,516 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'yamitracker.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.17) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../yamitracker.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'yamitracker.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.17. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SerialReader_t { + QByteArrayData data[13]; + char stringdata0[145]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SerialReader_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = { + { +QT_MOC_LITERAL(0, 0, 12), // "SerialReader" +QT_MOC_LITERAL(1, 13, 14), // "noteOnReceived" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 4), // "note" +QT_MOC_LITERAL(4, 34, 8), // "velocity" +QT_MOC_LITERAL(5, 43, 15), // "noteOffReceived" +QT_MOC_LITERAL(6, 59, 5), // "error" +QT_MOC_LITERAL(7, 65, 7), // "message" +QT_MOC_LITERAL(8, 73, 23), // "connectionStatusChanged" +QT_MOC_LITERAL(9, 97, 9), // "connected" +QT_MOC_LITERAL(10, 107, 18), // "deviceInfoReceived" +QT_MOC_LITERAL(11, 126, 12), // "manufacturer" +QT_MOC_LITERAL(12, 139, 5) // "model" + + }, + "SerialReader\0noteOnReceived\0\0note\0" + "velocity\0noteOffReceived\0error\0message\0" + "connectionStatusChanged\0connected\0" + "deviceInfoReceived\0manufacturer\0model" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SerialReader[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 5, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 2, 39, 2, 0x06 /* Public */, + 5, 1, 44, 2, 0x06 /* Public */, + 6, 1, 47, 2, 0x06 /* Public */, + 8, 1, 50, 2, 0x06 /* Public */, + 10, 2, 53, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, QMetaType::Bool, 9, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 11, 12, + + 0 // eod +}; + +void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->noteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->noteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->error((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->connectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: _t->deviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SerialReader::*)(const QString & , int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOnReceived)) { + *result = 0; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOffReceived)) { + *result = 1; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::error)) { + *result = 2; + return; + } + } + { + using _t = void (SerialReader::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::connectionStatusChanged)) { + *result = 3; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & , const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::deviceInfoReceived)) { + *result = 4; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SerialReader::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SerialReader.data, + qt_meta_data_SerialReader, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SerialReader::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SerialReader::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0)) + return static_cast(this); + return QThread::qt_metacast(_clname); +} + +int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QThread::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} + +// SIGNAL 0 +void SerialReader::noteOnReceived(const QString & _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SerialReader::noteOffReceived(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void SerialReader::error(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void SerialReader::connectionStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} + +// SIGNAL 4 +void SerialReader::deviceInfoReceived(const QString & _t1, const QString & _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 4, _a); +} +struct qt_meta_stringdata_Yamitracker_t { + QByteArrayData data[54]; + char stringdata0[951]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_Yamitracker_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = { + { +QT_MOC_LITERAL(0, 0, 11), // "Yamitracker" +QT_MOC_LITERAL(1, 12, 16), // "onNoteOnReceived" +QT_MOC_LITERAL(2, 29, 0), // "" +QT_MOC_LITERAL(3, 30, 4), // "note" +QT_MOC_LITERAL(4, 35, 8), // "velocity" +QT_MOC_LITERAL(5, 44, 17), // "onNoteOffReceived" +QT_MOC_LITERAL(6, 62, 7), // "onError" +QT_MOC_LITERAL(7, 70, 7), // "message" +QT_MOC_LITERAL(8, 78, 13), // "onPlayClicked" +QT_MOC_LITERAL(9, 92, 14), // "onPauseClicked" +QT_MOC_LITERAL(10, 107, 13), // "onStopClicked" +QT_MOC_LITERAL(11, 121, 21), // "onConvertToBrrClicked" +QT_MOC_LITERAL(12, 143, 18), // "clearStatusMessage" +QT_MOC_LITERAL(13, 162, 25), // "onConnectionStatusChanged" +QT_MOC_LITERAL(14, 188, 9), // "connected" +QT_MOC_LITERAL(15, 198, 16), // "attemptReconnect" +QT_MOC_LITERAL(16, 215, 20), // "onDeviceInfoReceived" +QT_MOC_LITERAL(17, 236, 12), // "manufacturer" +QT_MOC_LITERAL(18, 249, 5), // "model" +QT_MOC_LITERAL(19, 255, 23), // "onRefreshDevicesClicked" +QT_MOC_LITERAL(20, 279, 21), // "onLoadMidiFileClicked" +QT_MOC_LITERAL(21, 301, 25), // "onSelectFileForConversion" +QT_MOC_LITERAL(22, 327, 23), // "onSelectFileForPlayback" +QT_MOC_LITERAL(23, 351, 22), // "onSaveRecordingClicked" +QT_MOC_LITERAL(24, 374, 21), // "onPlayMidiFileClicked" +QT_MOC_LITERAL(25, 396, 25), // "onSelectedMidiFileChanged" +QT_MOC_LITERAL(26, 422, 20), // "onRecordFromMidiFile" +QT_MOC_LITERAL(27, 443, 22), // "onPlaybackSpeedChanged" +QT_MOC_LITERAL(28, 466, 5), // "value" +QT_MOC_LITERAL(29, 472, 19), // "onBassVolumeChanged" +QT_MOC_LITERAL(30, 492, 16), // "updateSpeedLabel" +QT_MOC_LITERAL(31, 509, 17), // "updateVolumeLabel" +QT_MOC_LITERAL(32, 527, 21), // "onCurrentTrackChanged" +QT_MOC_LITERAL(33, 549, 5), // "index" +QT_MOC_LITERAL(34, 555, 22), // "onSaveMusicFileClicked" +QT_MOC_LITERAL(35, 578, 17), // "onAddTrackClicked" +QT_MOC_LITERAL(36, 596, 20), // "onRemoveTrackClicked" +QT_MOC_LITERAL(37, 617, 19), // "onClearTrackClicked" +QT_MOC_LITERAL(38, 637, 18), // "onPlayTrackClicked" +QT_MOC_LITERAL(39, 656, 22), // "onPlayAllTracksClicked" +QT_MOC_LITERAL(40, 679, 21), // "onStopPlaybackClicked" +QT_MOC_LITERAL(41, 701, 23), // "onLoadWavToTrackClicked" +QT_MOC_LITERAL(42, 725, 20), // "onMergeTracksClicked" +QT_MOC_LITERAL(43, 746, 18), // "onCopyTrackClicked" +QT_MOC_LITERAL(44, 765, 18), // "onMuteTrackClicked" +QT_MOC_LITERAL(45, 784, 18), // "onSoloTrackClicked" +QT_MOC_LITERAL(46, 803, 20), // "onTrackVolumeChanged" +QT_MOC_LITERAL(47, 824, 18), // "onTrackNameChanged" +QT_MOC_LITERAL(48, 843, 24), // "onTrackInstrumentChanged" +QT_MOC_LITERAL(49, 868, 23), // "handleAudioStateChanged" +QT_MOC_LITERAL(50, 892, 13), // "QAudio::State" +QT_MOC_LITERAL(51, 906, 5), // "state" +QT_MOC_LITERAL(52, 912, 19), // "onAudioOutputNotify" +QT_MOC_LITERAL(53, 932, 18) // "onPlaybackFinished" + + }, + "Yamitracker\0onNoteOnReceived\0\0note\0" + "velocity\0onNoteOffReceived\0onError\0" + "message\0onPlayClicked\0onPauseClicked\0" + "onStopClicked\0onConvertToBrrClicked\0" + "clearStatusMessage\0onConnectionStatusChanged\0" + "connected\0attemptReconnect\0" + "onDeviceInfoReceived\0manufacturer\0" + "model\0onRefreshDevicesClicked\0" + "onLoadMidiFileClicked\0onSelectFileForConversion\0" + "onSelectFileForPlayback\0onSaveRecordingClicked\0" + "onPlayMidiFileClicked\0onSelectedMidiFileChanged\0" + "onRecordFromMidiFile\0onPlaybackSpeedChanged\0" + "value\0onBassVolumeChanged\0updateSpeedLabel\0" + "updateVolumeLabel\0onCurrentTrackChanged\0" + "index\0onSaveMusicFileClicked\0" + "onAddTrackClicked\0onRemoveTrackClicked\0" + "onClearTrackClicked\0onPlayTrackClicked\0" + "onPlayAllTracksClicked\0onStopPlaybackClicked\0" + "onLoadWavToTrackClicked\0onMergeTracksClicked\0" + "onCopyTrackClicked\0onMuteTrackClicked\0" + "onSoloTrackClicked\0onTrackVolumeChanged\0" + "onTrackNameChanged\0onTrackInstrumentChanged\0" + "handleAudioStateChanged\0QAudio::State\0" + "state\0onAudioOutputNotify\0onPlaybackFinished" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_Yamitracker[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 42, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 2, 224, 2, 0x08 /* Private */, + 5, 1, 229, 2, 0x08 /* Private */, + 6, 1, 232, 2, 0x08 /* Private */, + 8, 0, 235, 2, 0x08 /* Private */, + 9, 0, 236, 2, 0x08 /* Private */, + 10, 0, 237, 2, 0x08 /* Private */, + 11, 0, 238, 2, 0x08 /* Private */, + 12, 0, 239, 2, 0x08 /* Private */, + 13, 1, 240, 2, 0x08 /* Private */, + 15, 0, 243, 2, 0x08 /* Private */, + 16, 2, 244, 2, 0x08 /* Private */, + 19, 0, 249, 2, 0x08 /* Private */, + 20, 0, 250, 2, 0x08 /* Private */, + 21, 0, 251, 2, 0x08 /* Private */, + 22, 0, 252, 2, 0x08 /* Private */, + 23, 0, 253, 2, 0x08 /* Private */, + 24, 0, 254, 2, 0x08 /* Private */, + 25, 0, 255, 2, 0x08 /* Private */, + 26, 0, 256, 2, 0x08 /* Private */, + 27, 1, 257, 2, 0x08 /* Private */, + 29, 1, 260, 2, 0x08 /* Private */, + 30, 0, 263, 2, 0x08 /* Private */, + 31, 0, 264, 2, 0x08 /* Private */, + 32, 1, 265, 2, 0x08 /* Private */, + 34, 0, 268, 2, 0x08 /* Private */, + 35, 0, 269, 2, 0x08 /* Private */, + 36, 0, 270, 2, 0x08 /* Private */, + 37, 0, 271, 2, 0x08 /* Private */, + 38, 0, 272, 2, 0x08 /* Private */, + 39, 0, 273, 2, 0x08 /* Private */, + 40, 0, 274, 2, 0x08 /* Private */, + 41, 0, 275, 2, 0x08 /* Private */, + 42, 0, 276, 2, 0x08 /* Private */, + 43, 0, 277, 2, 0x08 /* Private */, + 44, 0, 278, 2, 0x08 /* Private */, + 45, 0, 279, 2, 0x08 /* Private */, + 46, 1, 280, 2, 0x08 /* Private */, + 47, 0, 283, 2, 0x08 /* Private */, + 48, 1, 284, 2, 0x08 /* Private */, + 49, 1, 287, 2, 0x08 /* Private */, + 52, 0, 290, 2, 0x08 /* Private */, + 53, 0, 291, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Bool, 14, + QMetaType::Void, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 17, 18, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 28, + QMetaType::Void, QMetaType::Int, 28, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 33, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 28, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 33, + QMetaType::Void, 0x80000000 | 50, 51, + QMetaType::Void, + QMetaType::Void, + + 0 // eod +}; + +void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onNoteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->onNoteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->onError((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->onPlayClicked(); break; + case 4: _t->onPauseClicked(); break; + case 5: _t->onStopClicked(); break; + case 6: _t->onConvertToBrrClicked(); break; + case 7: _t->clearStatusMessage(); break; + case 8: _t->onConnectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 9: _t->attemptReconnect(); break; + case 10: _t->onDeviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + case 11: _t->onRefreshDevicesClicked(); break; + case 12: _t->onLoadMidiFileClicked(); break; + case 13: _t->onSelectFileForConversion(); break; + case 14: _t->onSelectFileForPlayback(); break; + case 15: _t->onSaveRecordingClicked(); break; + case 16: _t->onPlayMidiFileClicked(); break; + case 17: _t->onSelectedMidiFileChanged(); break; + case 18: _t->onRecordFromMidiFile(); break; + case 19: _t->onPlaybackSpeedChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 20: _t->onBassVolumeChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 21: _t->updateSpeedLabel(); break; + case 22: _t->updateVolumeLabel(); break; + case 23: _t->onCurrentTrackChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 24: _t->onSaveMusicFileClicked(); break; + case 25: _t->onAddTrackClicked(); break; + case 26: _t->onRemoveTrackClicked(); break; + case 27: _t->onClearTrackClicked(); break; + case 28: _t->onPlayTrackClicked(); break; + case 29: _t->onPlayAllTracksClicked(); break; + case 30: _t->onStopPlaybackClicked(); break; + case 31: _t->onLoadWavToTrackClicked(); break; + case 32: _t->onMergeTracksClicked(); break; + case 33: _t->onCopyTrackClicked(); break; + case 34: _t->onMuteTrackClicked(); break; + case 35: _t->onSoloTrackClicked(); break; + case 36: _t->onTrackVolumeChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 37: _t->onTrackNameChanged(); break; + case 38: _t->onTrackInstrumentChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 39: _t->handleAudioStateChanged((*reinterpret_cast< QAudio::State(*)>(_a[1]))); break; + case 40: _t->onAudioOutputNotify(); break; + case 41: _t->onPlaybackFinished(); break; + default: ; + } + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + switch (_id) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 39: + switch (*reinterpret_cast(_a[1])) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 0: + *reinterpret_cast(_a[0]) = qRegisterMetaType< QAudio::State >(); break; + } + break; + } + } +} + +QT_INIT_METAOBJECT const QMetaObject Yamitracker::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_Yamitracker.data, + qt_meta_data_Yamitracker, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *Yamitracker::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *Yamitracker::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 42) + qt_static_metacall(this, _c, _id, _a); + _id -= 42; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 42) + qt_static_metacall(this, _c, _id, _a); + _id -= 42; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_yamitracker.o b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_yamitracker.o new file mode 100644 index 0000000..c054079 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/moc_yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build/simplewavwriter.o b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/simplewavwriter.o new file mode 100644 index 0000000..078078c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/simplewavwriter.o differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build/ui_yamitracker.h b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/ui_yamitracker.h new file mode 100644 index 0000000..f73fca3 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/ui_yamitracker.h @@ -0,0 +1,930 @@ +/******************************************************************************** +** Form generated from reading UI file 'yamitracker.ui' +** +** Created by: Qt User Interface Compiler version 5.15.17 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_YAMITRACKER_H +#define UI_YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Yamitracker +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QHBoxLayout *horizontalLayout; + QLabel *statusLabel; + QSpacerItem *horizontalSpacer; + QLabel *deviceLabel; + QHBoxLayout *horizontalLayout_2; + QLabel *keysInfoLabel; + QProgressBar *volumeBar; + QGroupBox *groupBox; + QHBoxLayout *horizontalLayout_3; + QPushButton *playButton; + QPushButton *pauseButton; + QPushButton *stopButton; + QPushButton *saveRecordingButton; + QPushButton *convertButton; + QPushButton *saveMusicButton; + QGroupBox *groupBox_4; + QHBoxLayout *horizontalLayout_7; + QPushButton *playTrackButton; + QPushButton *playAllButton; + QPushButton *stopPlaybackButton; + QSpacerItem *horizontalSpacer_13; + QPushButton *loadWavButton; + QGroupBox *groupBox_3; + QHBoxLayout *horizontalLayout_6; + QLabel *label_3; + QComboBox *trackComboBox; + QPushButton *addTrackButton; + QPushButton *removeTrackButton; + QPushButton *clearTrackButton; + QPushButton *copyTrackButton; + QPushButton *mergeTrackButton; + QSpacerItem *horizontalSpacer_12; + QLabel *trackInfoLabel; + QScrollArea *scrollArea; + QWidget *scrollAreaWidgetContents; + QVBoxLayout *verticalLayout_4; + QLabel *label_4; + QGroupBox *groupBox_2; + QVBoxLayout *verticalLayout_3; + QHBoxLayout *horizontalLayout_4; + QLabel *label; + QComboBox *instrumentComboBox; + QSpacerItem *horizontalSpacer_2; + QLabel *speedLabel; + QSlider *playbackSpeedSlider; + QLabel *volumeLabel; + QSlider *bassVolumeSlider; + QPushButton *refreshDevicesButton; + QHBoxLayout *horizontalLayout_5; + QPushButton *loadMidiButton; + QPushButton *playMidiButton; + QPushButton *recordFromMidiButton; + QPushButton *selectFileButton; + QPushButton *playFileButton; + QLabel *label_2; + QListWidget *midiFilesList; + QWidget *pianoWidget; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *whiteKeysLayout; + QPushButton *key_C1; + QPushButton *key_D1; + QPushButton *key_E1; + QPushButton *key_F1; + QPushButton *key_G1; + QPushButton *key_A1; + QPushButton *key_B1; + QPushButton *key_C2; + QPushButton *key_D2; + QPushButton *key_E2; + QPushButton *key_F2; + QPushButton *key_G2; + QPushButton *key_A2; + QPushButton *key_B2; + QPushButton *key_C3; + QPushButton *key_D3; + QPushButton *key_E3; + QPushButton *key_F3; + QPushButton *key_G3; + QPushButton *key_A3; + QPushButton *key_B3; + QPushButton *key_C4; + QPushButton *key_D4; + QPushButton *key_E4; + QPushButton *key_F4; + QPushButton *key_G4; + QPushButton *key_A4; + QPushButton *key_B4; + QPushButton *key_C5; + QPushButton *key_D5; + QPushButton *key_E5; + QPushButton *key_F5; + QPushButton *key_G5; + QPushButton *key_A5; + QPushButton *key_B5; + QPushButton *key_C6; + QHBoxLayout *blackKeysLayout; + QSpacerItem *horizontalSpacer_1; + QPushButton *key_Cs1; + QPushButton *key_Ds1; + QSpacerItem *horizontalSpacer_21; + QPushButton *key_Fs1; + QPushButton *key_Gs1; + QPushButton *key_As1; + QSpacerItem *horizontalSpacer_3; + QPushButton *key_Cs2; + QPushButton *key_Ds2; + QSpacerItem *horizontalSpacer_4; + QPushButton *key_Fs2; + QPushButton *key_Gs2; + QPushButton *key_As2; + QSpacerItem *horizontalSpacer_5; + QPushButton *key_Cs3; + QPushButton *key_Ds3; + QSpacerItem *horizontalSpacer_6; + QPushButton *key_Fs3; + QPushButton *key_Gs3; + QPushButton *key_As3; + QSpacerItem *horizontalSpacer_7; + QPushButton *key_Cs4; + QPushButton *key_Ds4; + QSpacerItem *horizontalSpacer_8; + QPushButton *key_Fs4; + QPushButton *key_Gs4; + QPushButton *key_As4; + QSpacerItem *horizontalSpacer_9; + QPushButton *key_Cs5; + QPushButton *key_Ds5; + QSpacerItem *horizontalSpacer_10; + QPushButton *key_Fs5; + QPushButton *key_Gs5; + QPushButton *key_As5; + QSpacerItem *horizontalSpacer_11; + + void setupUi(QMainWindow *Yamitracker) + { + if (Yamitracker->objectName().isEmpty()) + Yamitracker->setObjectName(QString::fromUtf8("Yamitracker")); + Yamitracker->resize(1400, 1000); + centralwidget = new QWidget(Yamitracker); + centralwidget->setObjectName(QString::fromUtf8("centralwidget")); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + statusLabel = new QLabel(centralwidget); + statusLabel->setObjectName(QString::fromUtf8("statusLabel")); + + horizontalLayout->addWidget(statusLabel); + + horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout->addItem(horizontalSpacer); + + deviceLabel = new QLabel(centralwidget); + deviceLabel->setObjectName(QString::fromUtf8("deviceLabel")); + + horizontalLayout->addWidget(deviceLabel); + + + verticalLayout->addLayout(horizontalLayout); + + horizontalLayout_2 = new QHBoxLayout(); + horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2")); + keysInfoLabel = new QLabel(centralwidget); + keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel")); + + horizontalLayout_2->addWidget(keysInfoLabel); + + volumeBar = new QProgressBar(centralwidget); + volumeBar->setObjectName(QString::fromUtf8("volumeBar")); + volumeBar->setValue(0); + + horizontalLayout_2->addWidget(volumeBar); + + + verticalLayout->addLayout(horizontalLayout_2); + + groupBox = new QGroupBox(centralwidget); + groupBox->setObjectName(QString::fromUtf8("groupBox")); + horizontalLayout_3 = new QHBoxLayout(groupBox); + horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3")); + playButton = new QPushButton(groupBox); + playButton->setObjectName(QString::fromUtf8("playButton")); + + horizontalLayout_3->addWidget(playButton); + + pauseButton = new QPushButton(groupBox); + pauseButton->setObjectName(QString::fromUtf8("pauseButton")); + pauseButton->setEnabled(false); + + horizontalLayout_3->addWidget(pauseButton); + + stopButton = new QPushButton(groupBox); + stopButton->setObjectName(QString::fromUtf8("stopButton")); + + horizontalLayout_3->addWidget(stopButton); + + saveRecordingButton = new QPushButton(groupBox); + saveRecordingButton->setObjectName(QString::fromUtf8("saveRecordingButton")); + + horizontalLayout_3->addWidget(saveRecordingButton); + + convertButton = new QPushButton(groupBox); + convertButton->setObjectName(QString::fromUtf8("convertButton")); + + horizontalLayout_3->addWidget(convertButton); + + saveMusicButton = new QPushButton(groupBox); + saveMusicButton->setObjectName(QString::fromUtf8("saveMusicButton")); + + horizontalLayout_3->addWidget(saveMusicButton); + + + verticalLayout->addWidget(groupBox); + + groupBox_4 = new QGroupBox(centralwidget); + groupBox_4->setObjectName(QString::fromUtf8("groupBox_4")); + horizontalLayout_7 = new QHBoxLayout(groupBox_4); + horizontalLayout_7->setObjectName(QString::fromUtf8("horizontalLayout_7")); + playTrackButton = new QPushButton(groupBox_4); + playTrackButton->setObjectName(QString::fromUtf8("playTrackButton")); + + horizontalLayout_7->addWidget(playTrackButton); + + playAllButton = new QPushButton(groupBox_4); + playAllButton->setObjectName(QString::fromUtf8("playAllButton")); + + horizontalLayout_7->addWidget(playAllButton); + + stopPlaybackButton = new QPushButton(groupBox_4); + stopPlaybackButton->setObjectName(QString::fromUtf8("stopPlaybackButton")); + + horizontalLayout_7->addWidget(stopPlaybackButton); + + horizontalSpacer_13 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_7->addItem(horizontalSpacer_13); + + loadWavButton = new QPushButton(groupBox_4); + loadWavButton->setObjectName(QString::fromUtf8("loadWavButton")); + + horizontalLayout_7->addWidget(loadWavButton); + + + verticalLayout->addWidget(groupBox_4); + + groupBox_3 = new QGroupBox(centralwidget); + groupBox_3->setObjectName(QString::fromUtf8("groupBox_3")); + horizontalLayout_6 = new QHBoxLayout(groupBox_3); + horizontalLayout_6->setObjectName(QString::fromUtf8("horizontalLayout_6")); + label_3 = new QLabel(groupBox_3); + label_3->setObjectName(QString::fromUtf8("label_3")); + + horizontalLayout_6->addWidget(label_3); + + trackComboBox = new QComboBox(groupBox_3); + trackComboBox->setObjectName(QString::fromUtf8("trackComboBox")); + + horizontalLayout_6->addWidget(trackComboBox); + + addTrackButton = new QPushButton(groupBox_3); + addTrackButton->setObjectName(QString::fromUtf8("addTrackButton")); + + horizontalLayout_6->addWidget(addTrackButton); + + removeTrackButton = new QPushButton(groupBox_3); + removeTrackButton->setObjectName(QString::fromUtf8("removeTrackButton")); + + horizontalLayout_6->addWidget(removeTrackButton); + + clearTrackButton = new QPushButton(groupBox_3); + clearTrackButton->setObjectName(QString::fromUtf8("clearTrackButton")); + + horizontalLayout_6->addWidget(clearTrackButton); + + copyTrackButton = new QPushButton(groupBox_3); + copyTrackButton->setObjectName(QString::fromUtf8("copyTrackButton")); + + horizontalLayout_6->addWidget(copyTrackButton); + + mergeTrackButton = new QPushButton(groupBox_3); + mergeTrackButton->setObjectName(QString::fromUtf8("mergeTrackButton")); + + horizontalLayout_6->addWidget(mergeTrackButton); + + horizontalSpacer_12 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_6->addItem(horizontalSpacer_12); + + trackInfoLabel = new QLabel(groupBox_3); + trackInfoLabel->setObjectName(QString::fromUtf8("trackInfoLabel")); + + horizontalLayout_6->addWidget(trackInfoLabel); + + + verticalLayout->addWidget(groupBox_3); + + scrollArea = new QScrollArea(centralwidget); + scrollArea->setObjectName(QString::fromUtf8("scrollArea")); + scrollArea->setWidgetResizable(true); + scrollAreaWidgetContents = new QWidget(); + scrollAreaWidgetContents->setObjectName(QString::fromUtf8("scrollAreaWidgetContents")); + scrollAreaWidgetContents->setGeometry(QRect(0, 0, 1380, 300)); + verticalLayout_4 = new QVBoxLayout(scrollAreaWidgetContents); + verticalLayout_4->setObjectName(QString::fromUtf8("verticalLayout_4")); + label_4 = new QLabel(scrollAreaWidgetContents); + label_4->setObjectName(QString::fromUtf8("label_4")); + + verticalLayout_4->addWidget(label_4); + + scrollArea->setWidget(scrollAreaWidgetContents); + + verticalLayout->addWidget(scrollArea); + + groupBox_2 = new QGroupBox(centralwidget); + groupBox_2->setObjectName(QString::fromUtf8("groupBox_2")); + verticalLayout_3 = new QVBoxLayout(groupBox_2); + verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3")); + horizontalLayout_4 = new QHBoxLayout(); + horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4")); + label = new QLabel(groupBox_2); + label->setObjectName(QString::fromUtf8("label")); + + horizontalLayout_4->addWidget(label); + + instrumentComboBox = new QComboBox(groupBox_2); + instrumentComboBox->setObjectName(QString::fromUtf8("instrumentComboBox")); + + horizontalLayout_4->addWidget(instrumentComboBox); + + horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_4->addItem(horizontalSpacer_2); + + speedLabel = new QLabel(groupBox_2); + speedLabel->setObjectName(QString::fromUtf8("speedLabel")); + + horizontalLayout_4->addWidget(speedLabel); + + playbackSpeedSlider = new QSlider(groupBox_2); + playbackSpeedSlider->setObjectName(QString::fromUtf8("playbackSpeedSlider")); + playbackSpeedSlider->setOrientation(Qt::Horizontal); + playbackSpeedSlider->setMinimum(50); + playbackSpeedSlider->setMaximum(200); + playbackSpeedSlider->setValue(100); + + horizontalLayout_4->addWidget(playbackSpeedSlider); + + volumeLabel = new QLabel(groupBox_2); + volumeLabel->setObjectName(QString::fromUtf8("volumeLabel")); + + horizontalLayout_4->addWidget(volumeLabel); + + bassVolumeSlider = new QSlider(groupBox_2); + bassVolumeSlider->setObjectName(QString::fromUtf8("bassVolumeSlider")); + bassVolumeSlider->setOrientation(Qt::Horizontal); + bassVolumeSlider->setMinimum(100); + bassVolumeSlider->setMaximum(400); + bassVolumeSlider->setValue(200); + + horizontalLayout_4->addWidget(bassVolumeSlider); + + refreshDevicesButton = new QPushButton(groupBox_2); + refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton")); + + horizontalLayout_4->addWidget(refreshDevicesButton); + + + verticalLayout_3->addLayout(horizontalLayout_4); + + horizontalLayout_5 = new QHBoxLayout(); + horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5")); + loadMidiButton = new QPushButton(groupBox_2); + loadMidiButton->setObjectName(QString::fromUtf8("loadMidiButton")); + + horizontalLayout_5->addWidget(loadMidiButton); + + playMidiButton = new QPushButton(groupBox_2); + playMidiButton->setObjectName(QString::fromUtf8("playMidiButton")); + + horizontalLayout_5->addWidget(playMidiButton); + + recordFromMidiButton = new QPushButton(groupBox_2); + recordFromMidiButton->setObjectName(QString::fromUtf8("recordFromMidiButton")); + + horizontalLayout_5->addWidget(recordFromMidiButton); + + selectFileButton = new QPushButton(groupBox_2); + selectFileButton->setObjectName(QString::fromUtf8("selectFileButton")); + + horizontalLayout_5->addWidget(selectFileButton); + + playFileButton = new QPushButton(groupBox_2); + playFileButton->setObjectName(QString::fromUtf8("playFileButton")); + + horizontalLayout_5->addWidget(playFileButton); + + + verticalLayout_3->addLayout(horizontalLayout_5); + + label_2 = new QLabel(groupBox_2); + label_2->setObjectName(QString::fromUtf8("label_2")); + + verticalLayout_3->addWidget(label_2); + + midiFilesList = new QListWidget(groupBox_2); + midiFilesList->setObjectName(QString::fromUtf8("midiFilesList")); + + verticalLayout_3->addWidget(midiFilesList); + + + verticalLayout->addWidget(groupBox_2); + + pianoWidget = new QWidget(centralwidget); + pianoWidget->setObjectName(QString::fromUtf8("pianoWidget")); + verticalLayout_2 = new QVBoxLayout(pianoWidget); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + whiteKeysLayout = new QHBoxLayout(); + whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout")); + key_C1 = new QPushButton(pianoWidget); + key_C1->setObjectName(QString::fromUtf8("key_C1")); + + whiteKeysLayout->addWidget(key_C1); + + key_D1 = new QPushButton(pianoWidget); + key_D1->setObjectName(QString::fromUtf8("key_D1")); + + whiteKeysLayout->addWidget(key_D1); + + key_E1 = new QPushButton(pianoWidget); + key_E1->setObjectName(QString::fromUtf8("key_E1")); + + whiteKeysLayout->addWidget(key_E1); + + key_F1 = new QPushButton(pianoWidget); + key_F1->setObjectName(QString::fromUtf8("key_F1")); + + whiteKeysLayout->addWidget(key_F1); + + key_G1 = new QPushButton(pianoWidget); + key_G1->setObjectName(QString::fromUtf8("key_G1")); + + whiteKeysLayout->addWidget(key_G1); + + key_A1 = new QPushButton(pianoWidget); + key_A1->setObjectName(QString::fromUtf8("key_A1")); + + whiteKeysLayout->addWidget(key_A1); + + key_B1 = new QPushButton(pianoWidget); + key_B1->setObjectName(QString::fromUtf8("key_B1")); + + whiteKeysLayout->addWidget(key_B1); + + key_C2 = new QPushButton(pianoWidget); + key_C2->setObjectName(QString::fromUtf8("key_C2")); + + whiteKeysLayout->addWidget(key_C2); + + key_D2 = new QPushButton(pianoWidget); + key_D2->setObjectName(QString::fromUtf8("key_D2")); + + whiteKeysLayout->addWidget(key_D2); + + key_E2 = new QPushButton(pianoWidget); + key_E2->setObjectName(QString::fromUtf8("key_E2")); + + whiteKeysLayout->addWidget(key_E2); + + key_F2 = new QPushButton(pianoWidget); + key_F2->setObjectName(QString::fromUtf8("key_F2")); + + whiteKeysLayout->addWidget(key_F2); + + key_G2 = new QPushButton(pianoWidget); + key_G2->setObjectName(QString::fromUtf8("key_G2")); + + whiteKeysLayout->addWidget(key_G2); + + key_A2 = new QPushButton(pianoWidget); + key_A2->setObjectName(QString::fromUtf8("key_A2")); + + whiteKeysLayout->addWidget(key_A2); + + key_B2 = new QPushButton(pianoWidget); + key_B2->setObjectName(QString::fromUtf8("key_B2")); + + whiteKeysLayout->addWidget(key_B2); + + key_C3 = new QPushButton(pianoWidget); + key_C3->setObjectName(QString::fromUtf8("key_C3")); + + whiteKeysLayout->addWidget(key_C3); + + key_D3 = new QPushButton(pianoWidget); + key_D3->setObjectName(QString::fromUtf8("key_D3")); + + whiteKeysLayout->addWidget(key_D3); + + key_E3 = new QPushButton(pianoWidget); + key_E3->setObjectName(QString::fromUtf8("key_E3")); + + whiteKeysLayout->addWidget(key_E3); + + key_F3 = new QPushButton(pianoWidget); + key_F3->setObjectName(QString::fromUtf8("key_F3")); + + whiteKeysLayout->addWidget(key_F3); + + key_G3 = new QPushButton(pianoWidget); + key_G3->setObjectName(QString::fromUtf8("key_G3")); + + whiteKeysLayout->addWidget(key_G3); + + key_A3 = new QPushButton(pianoWidget); + key_A3->setObjectName(QString::fromUtf8("key_A3")); + + whiteKeysLayout->addWidget(key_A3); + + key_B3 = new QPushButton(pianoWidget); + key_B3->setObjectName(QString::fromUtf8("key_B3")); + + whiteKeysLayout->addWidget(key_B3); + + key_C4 = new QPushButton(pianoWidget); + key_C4->setObjectName(QString::fromUtf8("key_C4")); + + whiteKeysLayout->addWidget(key_C4); + + key_D4 = new QPushButton(pianoWidget); + key_D4->setObjectName(QString::fromUtf8("key_D4")); + + whiteKeysLayout->addWidget(key_D4); + + key_E4 = new QPushButton(pianoWidget); + key_E4->setObjectName(QString::fromUtf8("key_E4")); + + whiteKeysLayout->addWidget(key_E4); + + key_F4 = new QPushButton(pianoWidget); + key_F4->setObjectName(QString::fromUtf8("key_F4")); + + whiteKeysLayout->addWidget(key_F4); + + key_G4 = new QPushButton(pianoWidget); + key_G4->setObjectName(QString::fromUtf8("key_G4")); + + whiteKeysLayout->addWidget(key_G4); + + key_A4 = new QPushButton(pianoWidget); + key_A4->setObjectName(QString::fromUtf8("key_A4")); + + whiteKeysLayout->addWidget(key_A4); + + key_B4 = new QPushButton(pianoWidget); + key_B4->setObjectName(QString::fromUtf8("key_B4")); + + whiteKeysLayout->addWidget(key_B4); + + key_C5 = new QPushButton(pianoWidget); + key_C5->setObjectName(QString::fromUtf8("key_C5")); + + whiteKeysLayout->addWidget(key_C5); + + key_D5 = new QPushButton(pianoWidget); + key_D5->setObjectName(QString::fromUtf8("key_D5")); + + whiteKeysLayout->addWidget(key_D5); + + key_E5 = new QPushButton(pianoWidget); + key_E5->setObjectName(QString::fromUtf8("key_E5")); + + whiteKeysLayout->addWidget(key_E5); + + key_F5 = new QPushButton(pianoWidget); + key_F5->setObjectName(QString::fromUtf8("key_F5")); + + whiteKeysLayout->addWidget(key_F5); + + key_G5 = new QPushButton(pianoWidget); + key_G5->setObjectName(QString::fromUtf8("key_G5")); + + whiteKeysLayout->addWidget(key_G5); + + key_A5 = new QPushButton(pianoWidget); + key_A5->setObjectName(QString::fromUtf8("key_A5")); + + whiteKeysLayout->addWidget(key_A5); + + key_B5 = new QPushButton(pianoWidget); + key_B5->setObjectName(QString::fromUtf8("key_B5")); + + whiteKeysLayout->addWidget(key_B5); + + key_C6 = new QPushButton(pianoWidget); + key_C6->setObjectName(QString::fromUtf8("key_C6")); + + whiteKeysLayout->addWidget(key_C6); + + + verticalLayout_2->addLayout(whiteKeysLayout); + + blackKeysLayout = new QHBoxLayout(); + blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout")); + horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_1); + + key_Cs1 = new QPushButton(pianoWidget); + key_Cs1->setObjectName(QString::fromUtf8("key_Cs1")); + + blackKeysLayout->addWidget(key_Cs1); + + key_Ds1 = new QPushButton(pianoWidget); + key_Ds1->setObjectName(QString::fromUtf8("key_Ds1")); + + blackKeysLayout->addWidget(key_Ds1); + + horizontalSpacer_21 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_21); + + key_Fs1 = new QPushButton(pianoWidget); + key_Fs1->setObjectName(QString::fromUtf8("key_Fs1")); + + blackKeysLayout->addWidget(key_Fs1); + + key_Gs1 = new QPushButton(pianoWidget); + key_Gs1->setObjectName(QString::fromUtf8("key_Gs1")); + + blackKeysLayout->addWidget(key_Gs1); + + key_As1 = new QPushButton(pianoWidget); + key_As1->setObjectName(QString::fromUtf8("key_As1")); + + blackKeysLayout->addWidget(key_As1); + + horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_3); + + key_Cs2 = new QPushButton(pianoWidget); + key_Cs2->setObjectName(QString::fromUtf8("key_Cs2")); + + blackKeysLayout->addWidget(key_Cs2); + + key_Ds2 = new QPushButton(pianoWidget); + key_Ds2->setObjectName(QString::fromUtf8("key_Ds2")); + + blackKeysLayout->addWidget(key_Ds2); + + horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_4); + + key_Fs2 = new QPushButton(pianoWidget); + key_Fs2->setObjectName(QString::fromUtf8("key_Fs2")); + + blackKeysLayout->addWidget(key_Fs2); + + key_Gs2 = new QPushButton(pianoWidget); + key_Gs2->setObjectName(QString::fromUtf8("key_Gs2")); + + blackKeysLayout->addWidget(key_Gs2); + + key_As2 = new QPushButton(pianoWidget); + key_As2->setObjectName(QString::fromUtf8("key_As2")); + + blackKeysLayout->addWidget(key_As2); + + horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_5); + + key_Cs3 = new QPushButton(pianoWidget); + key_Cs3->setObjectName(QString::fromUtf8("key_Cs3")); + + blackKeysLayout->addWidget(key_Cs3); + + key_Ds3 = new QPushButton(pianoWidget); + key_Ds3->setObjectName(QString::fromUtf8("key_Ds3")); + + blackKeysLayout->addWidget(key_Ds3); + + horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_6); + + key_Fs3 = new QPushButton(pianoWidget); + key_Fs3->setObjectName(QString::fromUtf8("key_Fs3")); + + blackKeysLayout->addWidget(key_Fs3); + + key_Gs3 = new QPushButton(pianoWidget); + key_Gs3->setObjectName(QString::fromUtf8("key_Gs3")); + + blackKeysLayout->addWidget(key_Gs3); + + key_As3 = new QPushButton(pianoWidget); + key_As3->setObjectName(QString::fromUtf8("key_As3")); + + blackKeysLayout->addWidget(key_As3); + + horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_7); + + key_Cs4 = new QPushButton(pianoWidget); + key_Cs4->setObjectName(QString::fromUtf8("key_Cs4")); + + blackKeysLayout->addWidget(key_Cs4); + + key_Ds4 = new QPushButton(pianoWidget); + key_Ds4->setObjectName(QString::fromUtf8("key_Ds4")); + + blackKeysLayout->addWidget(key_Ds4); + + horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_8); + + key_Fs4 = new QPushButton(pianoWidget); + key_Fs4->setObjectName(QString::fromUtf8("key_Fs4")); + + blackKeysLayout->addWidget(key_Fs4); + + key_Gs4 = new QPushButton(pianoWidget); + key_Gs4->setObjectName(QString::fromUtf8("key_Gs4")); + + blackKeysLayout->addWidget(key_Gs4); + + key_As4 = new QPushButton(pianoWidget); + key_As4->setObjectName(QString::fromUtf8("key_As4")); + + blackKeysLayout->addWidget(key_As4); + + horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_9); + + key_Cs5 = new QPushButton(pianoWidget); + key_Cs5->setObjectName(QString::fromUtf8("key_Cs5")); + + blackKeysLayout->addWidget(key_Cs5); + + key_Ds5 = new QPushButton(pianoWidget); + key_Ds5->setObjectName(QString::fromUtf8("key_Ds5")); + + blackKeysLayout->addWidget(key_Ds5); + + horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_10); + + key_Fs5 = new QPushButton(pianoWidget); + key_Fs5->setObjectName(QString::fromUtf8("key_Fs5")); + + blackKeysLayout->addWidget(key_Fs5); + + key_Gs5 = new QPushButton(pianoWidget); + key_Gs5->setObjectName(QString::fromUtf8("key_Gs5")); + + blackKeysLayout->addWidget(key_Gs5); + + key_As5 = new QPushButton(pianoWidget); + key_As5->setObjectName(QString::fromUtf8("key_As5")); + + blackKeysLayout->addWidget(key_As5); + + horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_11); + + + verticalLayout_2->addLayout(blackKeysLayout); + + + verticalLayout->addWidget(pianoWidget); + + Yamitracker->setCentralWidget(centralwidget); + + retranslateUi(Yamitracker); + + QMetaObject::connectSlotsByName(Yamitracker); + } // setupUi + + void retranslateUi(QMainWindow *Yamitracker) + { + Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor - Multitrack Recording", nullptr)); + statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr)); + deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr)); + keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr)); + groupBox->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\267\320\260\320\277\320\270\321\201\321\214\321\216", nullptr)); + playButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\227\320\260\320\277\320\270\321\201\321\214 \321\201 \321\201\320\270\320\275\321\202\320\265\320\267\320\260\321\202\320\276\321\200\320\260", nullptr)); + pauseButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\270 \320\237\320\260\321\203\320\267\320\260", nullptr)); + stopButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\271 \320\241\321\202\320\276\320\277", nullptr)); + saveRecordingButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\222\276 \320\241\320\276\321\205\321\200\320\260\320\275\320\270\321\202\321\214 \320\267\320\260\320\277\320\270\321\201\321\214", nullptr)); + convertButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\204 \320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr)); + saveMusicButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\216\265 \320\241\320\276\321\205\321\200\320\260\320\275\320\270\321\202\321\214 \320\274\321\203\320\267\321\213\320\272\321\203 (Pently)", nullptr)); + groupBox_4->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\262\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\274", nullptr)); + playTrackButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\242\320\265\320\272\321\203\321\211\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260", nullptr)); + playAllButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266\342\226\266 \320\222\321\201\320\265 \320\264\320\276\321\200\320\276\320\266\320\272\320\270", nullptr)); + stopPlaybackButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\271 \320\241\321\202\320\276\320\277 \320\262\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\320\264\320\265\320\275\320\270\320\265", nullptr)); + loadWavButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\202 \320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214 WAV \320\262 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + groupBox_3->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\264\320\276\321\200\320\276\320\266\320\272\320\260\320\274\320\270", nullptr)); + label_3->setText(QCoreApplication::translate("Yamitracker", "\320\242\320\265\320\272\321\203\321\211\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260:", nullptr)); + addTrackButton->setText(QCoreApplication::translate("Yamitracker", "\342\236\225 \320\235\320\276\320\262\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260", nullptr)); + removeTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\227\221 \320\243\320\264\320\260\320\273\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + clearTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\227\221 \320\236\321\207\320\270\321\201\321\202\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + copyTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\213 \320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + mergeTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\200 \320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\320\270", nullptr)); + trackInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\224\320\276\321\200\320\276\320\266\320\272\320\260 1: 0 \320\275\320\276\321\202", nullptr)); + label_4->setText(QCoreApplication::translate("Yamitracker", "\320\237\320\260\320\275\320\265\320\273\321\214 \321\203\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260\320\274\320\270:", nullptr)); + groupBox_2->setTitle(QCoreApplication::translate("Yamitracker", "\320\240\320\260\320\261\320\276\321\202\320\260 \321\201 MIDI \321\204\320\260\320\271\320\273\320\260\320\274\320\270", nullptr)); + label->setText(QCoreApplication::translate("Yamitracker", "\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202:", nullptr)); + speedLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\320\272\320\276\321\200\320\276\321\201\321\202\321\214: 100%", nullptr)); + volumeLabel->setText(QCoreApplication::translate("Yamitracker", "\320\221\320\260\321\201: 200%", nullptr)); + refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\203 \320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr)); + loadMidiButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\202 \320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214 MIDI \321\204\320\260\320\271\320\273", nullptr)); + playMidiButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\222\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\321\201\321\202\320\270 MIDI", nullptr)); + recordFromMidiButton->setText(QCoreApplication::translate("Yamitracker", "\342\227\217 \320\227\320\260\320\277\320\270\321\201\320\260\321\202\321\214 \320\270\320\267 MIDI", nullptr)); + selectFileButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\201 \320\222\321\213\320\261\321\200\320\260\321\202\321\214 \321\204\320\260\320\271\320\273 \320\264\320\273\321\217 \320\272\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\320\270", nullptr)); + playFileButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\222\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\321\201\321\202\320\270 WAV", nullptr)); + label_2->setText(QCoreApplication::translate("Yamitracker", "\320\224\320\276\321\201\321\202\321\203\320\277\320\275\321\213\320\265 MIDI \321\204\320\260\320\271\320\273\321\213:", nullptr)); + key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr)); + key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr)); + key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr)); + key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr)); + key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr)); + key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr)); + key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr)); + key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr)); + key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr)); + key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr)); + key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr)); + key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr)); + key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr)); + key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr)); + key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr)); + key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr)); + key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr)); + key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr)); + key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr)); + key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr)); + key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr)); + key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr)); + key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr)); + key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr)); + key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr)); + key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr)); + key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr)); + key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr)); + key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr)); + key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr)); + key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr)); + key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr)); + key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr)); + key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr)); + key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr)); + key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr)); + key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr)); + key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr)); + key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr)); + key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr)); + key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr)); + key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr)); + key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr)); + key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr)); + key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr)); + key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr)); + key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr)); + key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr)); + key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr)); + key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr)); + key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr)); + key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr)); + key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr)); + key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr)); + key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr)); + key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr)); + key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr)); + key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr)); + key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr)); + key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr)); + key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class Yamitracker: public Ui_Yamitracker {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_YAMITRACKER_H diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build/yamitracker.o b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/yamitracker.o new file mode 100644 index 0000000..b973a11 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build/yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/.qmake.stash b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/Makefile b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/Makefile new file mode 100644 index 0000000..d726afa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/Makefile @@ -0,0 +1,442 @@ +############################################################################# +# Makefile for building: Yamitracker +# Generated by qmake (3.1) (Qt 5.15.13) +# Project: ../Yamitracker.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Yamitracker1.0.0 +DISTDIR = /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/.tmp/Yamitracker1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp moc_yamitracker.cpp \ + moc_brrconverter.cpp +OBJECTS = main.o \ + yamitracker.o \ + simplewavwriter.o \ + brrconverter.o \ + moc_yamitracker.o \ + moc_brrconverter.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../Yamitracker.pro ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp +QMAKE_TARGET = Yamitracker +DESTDIR = +TARGET = Yamitracker + + +first: all +####### Build rules + +Yamitracker: ui_yamitracker.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../Yamitracker.pro + $(QMAKE) -o Makefile ../Yamitracker.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../Yamitracker.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../Yamitracker.pro + +qmake_all: FORCE + + +all: Makefile Yamitracker + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.h ../simplewavwriter.h ../brrconverter.h $(DISTDIR)/ + $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplewavwriter.cpp ../brrconverter.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_yamitracker.cpp moc_brrconverter.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_yamitracker.cpp moc_brrconverter.cpp +moc_yamitracker.cpp: ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp + +moc_brrconverter.cpp: ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../brrconverter.h -o moc_brrconverter.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_yamitracker.h +compiler_uic_clean: + -$(DEL_FILE) ui_yamitracker.h +ui_yamitracker.h: ../yamitracker.ui \ + /usr/lib/qt5/bin/uic + /usr/lib/qt5/bin/uic ../yamitracker.ui -o ui_yamitracker.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: ../main.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp + +yamitracker.o: ../yamitracker.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + ui_yamitracker.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp + +simplewavwriter.o: ../simplewavwriter.cpp ../simplewavwriter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplewavwriter.o ../simplewavwriter.cpp + +brrconverter.o: ../brrconverter.cpp ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o brrconverter.o ../brrconverter.cpp + +moc_yamitracker.o: moc_yamitracker.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp + +moc_brrconverter.o: moc_brrconverter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_brrconverter.o moc_brrconverter.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin + $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/Yamitracker b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/Yamitracker new file mode 100755 index 0000000..984eec7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/Yamitracker differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/brrconverter.o b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/brrconverter.o new file mode 100644 index 0000000..149ec06 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/main.o b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/main.o new file mode 100644 index 0000000..edc2e30 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/main.o differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.cpp b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.cpp new file mode 100644 index 0000000..a11b9fc --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.cpp @@ -0,0 +1,95 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'brrconverter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../brrconverter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'brrconverter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_BrrConverter_t { + QByteArrayData data[1]; + char stringdata0[13]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_BrrConverter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_BrrConverter_t qt_meta_stringdata_BrrConverter = { + { +QT_MOC_LITERAL(0, 0, 12) // "BrrConverter" + + }, + "BrrConverter" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_BrrConverter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void BrrConverter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject BrrConverter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_BrrConverter.data, + qt_meta_data_BrrConverter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *BrrConverter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *BrrConverter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_BrrConverter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int BrrConverter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.o b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.o new file mode 100644 index 0000000..fa3b784 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/moc_predefs.h b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/moc_predefs.h new file mode 100644 index 0000000..f29ad61 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/moc_predefs.h @@ -0,0 +1,464 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __cpp_nontype_template_parameter_auto 201606L +#define __UINT_LEAST16_MAX__ 0xffff +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __ATOMIC_ACQUIRE 2 +#define __FLT128_MAX_10_EXP__ 4932 +#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __cpp_aggregate_nsdmi 201304L +#define __UINT_LEAST8_TYPE__ unsigned char +#define __SIZEOF_FLOAT80__ 16 +#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 0xff +#define __SCHAR_WIDTH__ 8 +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 201411L +#define __BFLT16_MIN_10_EXP__ (-37) +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __WCHAR_MAX__ 0x7fffffff +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __cpp_binary_literals 201304L +#define __FLT64_DECIMAL_DIG__ 17 +#define __CET__ 3 +#define __cpp_noexcept_function_type 201510L +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __cpp_variadic_templates 200704L +#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __cpp_variable_templates 201304L +#define __FLT32X_MAX_EXP__ 1024 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __FLT32_HAS_DENORM__ 1 +#define __UINT_FAST8_MAX__ 0xff +#define __cpp_rvalue_reference 200610L +#define __cpp_nested_namespace_definitions 201411L +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __LDBL_HAS_INFINITY__ 1 +#define __INT_LEAST8_WIDTH__ 8 +#define __cpp_variadic_using 201611L +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL +#define __INT_LEAST8_MAX__ 0x7f +#define __cpp_attributes 200809L +#define __cpp_capture_star_this 201603L +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __FLT64X_MAX_10_EXP__ 4932 +#define __cpp_if_constexpr 201606L +#define __BFLT16_MAX_10_EXP__ 38 +#define __BFLT16_MAX_EXP__ 128 +#define __LDBL_IS_IEC_60559__ 1 +#define __FLT64X_HAS_QUIET_NAN__ 1 +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +#define __UINTMAX_TYPE__ long unsigned int +#define __cpp_nsdmi 200809L +#define __BFLT16_DECIMAL_DIG__ 4 +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __OPTIMIZE__ 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +#define __FLT128_MIN_EXP__ (-16381) +#define __WINT_MIN__ 0U +#define __FLT128_MIN_10_EXP__ (-4931) +#define __FLT32X_IS_IEC_60559__ 1 +#define __INT_LEAST16_WIDTH__ 16 +#define __SCHAR_MAX__ 0x7f +#define __FLT128_MANT_DIG__ 113 +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __INT64_C(c) c ## L +#define __SSP_STRONG__ 3 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __ATOMIC_SEQ_CST 5 +#define _FORTIFY_SOURCE 3 +#define __unix 1 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MANT_DIG__ 53 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __cpp_aligned_new 201606L +#define __FLT32_MAX_10_EXP__ 38 +#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +#define __STDC_HOSTED__ 1 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype_auto 201304L +#define __DBL_DIG__ 15 +#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __FLT32_IS_IEC_60559__ 1 +#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +#define __DBL_IS_IEC_60559__ 1 +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806L +#define __cpp_enumerator_attributes 201411L +#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +#define __FLT32X_HAS_INFINITY__ 1 +#define __unix__ 1 +#define __INT_WIDTH__ 32 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __DECIMAL_DIG__ 21 +#define __STDC_IEC_559_COMPLEX__ 1 +#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +#define __gnu_linux__ 1 +#define __INT16_MAX__ 0x7fff +#define __FLT64_MIN_EXP__ (-1021) +#define __FLT64X_MIN_10_EXP__ (-4931) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __cpp_return_type_deduction 201304L +#define __FLT16_MIN_EXP__ (-13) +#define __FLT64_MANT_DIG__ 53 +#define __FLT64X_MANT_DIG__ 64 +#define __BFLT16_DIG__ 2 +#define __GNUC__ 13 +#define __GXX_RTTI 1 +#define __pie__ 2 +#define __MMX__ 1 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __BIGGEST_ALIGNMENT__ 16 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __BFLT16_IS_IEC_60559__ 0 +#define __FLT16_MAX_10_EXP__ 4 +#define __cpp_delegating_constructors 200604L +#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __cpp_raw_strings 200710L +#define __INT_FAST32_MAX__ 0x7fffffffffffffffL +#define __DBL_HAS_INFINITY__ 1 +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __SIZEOF_FLOAT__ 4 +#define __HAVE_SPECULATION_SAFE_VALUE 1 +#define __cpp_fold_expressions 201603L +#define __DEC32_MIN_EXP__ (-94) +#define __INTPTR_WIDTH__ 64 +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ long int +#define __MMX_WITH_SSE__ 1 +#define __LDBL_HAS_DENORM__ 1 +#define __SEG_GS 1 +#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +#define __cplusplus 201703L +#define __cpp_ref_qualifiers 200710L +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610L +#define __DBL_MAX_EXP__ 1024 +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __FLT16_DECIMAL_DIG__ 5 +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 0x7fffffffffffffffL +#define __amd64 1 +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __GNUG__ 13 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 8 +#define __BFLT16_HAS_INFINITY__ 1 +#define __FLT64X_MIN_EXP__ (-16381) +#define __SIZEOF_WINT_T__ 4 +#define __FLT32X_DIG__ 15 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806L +#define __FLT32_MAX_EXP__ 128 +#define __cpp_hex_float 201603L +#define __GXX_ABI_VERSION 1018 +#define __FLT_MIN_EXP__ (-125) +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __x86_64 1 +#define __cpp_lambdas 200907L +#define __INT_FAST64_TYPE__ long int +#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +#define __cpp_template_auto 201606L +#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __SIZEOF_POINTER__ 8 +#define __SIZE_TYPE__ long unsigned int +#define __LP64__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +#define __LDBL_MAX_EXP__ 16384 +#define __DECIMAL_BID_FORMAT__ 1 +#define __FLT64_MIN_10_EXP__ (-307) +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT64X_DECIMAL_DIG__ 21 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __FLT128_HAS_INFINITY__ 1 +#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __FLT_DIG__ 6 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 21 +#define __VERSION__ "13.3.0" +#define __UINT64_C(c) c ## UL +#define __cpp_unicode_characters 201411L +#define _STDC_PREDEF_H 1 +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT128_MAX_EXP__ 16384 +#define __FLT32_MANT_DIG__ 24 +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT32X_MIN_EXP__ (-1021) +#define __STDC_IEC_60559_COMPLEX__ 201404L +#define __cpp_aggregate_bases 201603L +#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +#define __FLT128_HAS_DENORM__ 1 +#define __FLT32_DECIMAL_DIG__ 9 +#define __FLT128_DIG__ 33 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __DEC128_MAX_EXP__ 6145 +#define unix 1 +#define __DBL_HAS_DENORM__ 1 +#define __cpp_rtti 199711L +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __FLT_IS_IEC_60559__ 1 +#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +#define __FLT64X_DIG__ 18 +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309L +#define __ELF__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __UINT32_TYPE__ unsigned int +#define __BFLT16_HAS_QUIET_NAN__ 1 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +#define __UINTMAX_C(c) c ## UL +#define __FLT16_DIG__ 3 +#define __k8 1 +#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __cpp_constexpr 201603L +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +#define __STDC_IEC_60559_BFP__ 201404L +#define __SIZEOF_PTRDIFF_T__ 8 +#define __FLT64X_HAS_INFINITY__ 1 +#define __SIZEOF_LONG__ 8 +#define __LDBL_DIG__ 18 +#define __FLT64_IS_IEC_60559__ 1 +#define __x86_64__ 1 +#define __FLT16_IS_IEC_60559__ 1 +#define __FLT16_MAX_EXP__ 16 +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __INT_FAST16_MAX__ 0x7fffffffffffffffL +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __LONG_MAX__ 0x7fffffffffffffffL +#define __FLT64X_HAS_DENORM__ 1 +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" +#define __cpp_unicode_literals 200710L +#define __UINT_FAST16_TYPE__ long unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __INT_FAST32_WIDTH__ 64 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __SIZE_WIDTH__ 64 +#define __SEG_FS 1 +#define __INT_LEAST16_MAX__ 0x7fff +#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __DEC64_MANT_DIG__ 16 +#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +#define __cpp_structured_bindings 201606L +#define __SIZEOF_INT__ 4 +#define __DEC32_MAX_EXP__ 97 +#define __INT_FAST8_MAX__ 0x7f +#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __INTPTR_MAX__ 0x7fffffffffffffffL +#define __cpp_sized_deallocation 201309L +#define __cpp_guaranteed_copy_elision 201606L +#define linux 1 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __EXCEPTIONS 1 +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 64 +#define __LDBL_MANT_DIG__ 64 +#define __cpp_range_based_for 201603L +#define __INT_FAST16_WIDTH__ 64 +#define __FLT64_HAS_INFINITY__ 1 +#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __FLT16_HAS_INFINITY__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __cpp_nontype_template_args 201411L +#define __DEC32_MANT_DIG__ 7 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __pic__ 2 +#define __UINTPTR_MAX__ 0xffffffffffffffffUL +#define __INT_FAST64_WIDTH__ 64 +#define __cpp_decltype 200707L +#define __INT_FAST64_MAX__ 0x7fffffffffffffffL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +#define __FLT32_HAS_INFINITY__ 1 +#define __FLT64X_MAX_EXP__ 16384 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __cpp_inline_variables 201606L +#define __BFLT16_MIN_EXP__ (-125) +#define __INT_MAX__ 0x7fffffff +#define __linux__ 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __cpp_inheriting_constructors 201511L +#define __SIZEOF_FLOAT128__ 16 +#define __BFLT16_MANT_DIG__ 8 +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __amd64__ 1 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST64_WIDTH__ 64 +#define __FLT32X_MAX_10_EXP__ 308 +#define __cpp_namespace_attributes 201411L +#define __SIZEOF_INT128__ 16 +#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +#define __FLT64X_IS_IEC_60559__ 1 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +#define __INT_LEAST32_TYPE__ int +#define _LP64 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __SIZEOF_WCHAR_T__ 4 +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __FLT128_HAS_QUIET_NAN__ 1 +#define __INTMAX_MAX__ 0x7fffffffffffffffL +#define __INT_FAST8_TYPE__ signed char +#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +#define __STDCPP_THREADS__ 1 +#define __BFLT16_HAS_DENORM__ 1 +#define __GNUC_STDC_INLINE__ 1 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +#define __FLT16_HAS_DENORM__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __FXSR__ 1 +#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __INTMAX_WIDTH__ 64 +#define __cpp_runtime_arrays 198712L +#define __FLT32_DIG__ 6 +#define __UINT64_TYPE__ long unsigned int +#define __UINT32_C(c) c ## U +#define __cpp_alias_templates 200704L +#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +#define __FLT128_IS_IEC_60559__ 1 +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 64 +#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +#define __PIC__ 2 +#define __INT32_MAX__ 0x7fffffff +#define __UINT_FAST32_TYPE__ long unsigned int +#define __FLT16_MANT_DIG__ 11 +#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F +#define __SSE2__ 1 +#define __cpp_deduction_guides 201703L +#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711L +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long int +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 3 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __UINTMAX_MAX__ 0xffffffffffffffffUL +#define __PIE__ 2 +#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +#define __cpp_template_template_args 201611L +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +#define __INT16_C(c) c +#define __STDC__ 1 +#define __PTRDIFF_TYPE__ long int +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __cpp_generic_lambdas 201304L +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809L +#define __FLT128_DECIMAL_DIG__ 36 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL +#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __SIZE_MAX__ 0xffffffffffffffffUL +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __cpp_init_captures 201304L +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.cpp b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.cpp new file mode 100644 index 0000000..868459e --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.cpp @@ -0,0 +1,360 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'yamitracker.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../yamitracker.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'yamitracker.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SerialReader_t { + QByteArrayData data[13]; + char stringdata0[145]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SerialReader_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = { + { +QT_MOC_LITERAL(0, 0, 12), // "SerialReader" +QT_MOC_LITERAL(1, 13, 14), // "noteOnReceived" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 4), // "note" +QT_MOC_LITERAL(4, 34, 8), // "velocity" +QT_MOC_LITERAL(5, 43, 15), // "noteOffReceived" +QT_MOC_LITERAL(6, 59, 5), // "error" +QT_MOC_LITERAL(7, 65, 7), // "message" +QT_MOC_LITERAL(8, 73, 23), // "connectionStatusChanged" +QT_MOC_LITERAL(9, 97, 9), // "connected" +QT_MOC_LITERAL(10, 107, 18), // "deviceInfoReceived" +QT_MOC_LITERAL(11, 126, 12), // "manufacturer" +QT_MOC_LITERAL(12, 139, 5) // "model" + + }, + "SerialReader\0noteOnReceived\0\0note\0" + "velocity\0noteOffReceived\0error\0message\0" + "connectionStatusChanged\0connected\0" + "deviceInfoReceived\0manufacturer\0model" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SerialReader[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 5, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 2, 39, 2, 0x06 /* Public */, + 5, 1, 44, 2, 0x06 /* Public */, + 6, 1, 47, 2, 0x06 /* Public */, + 8, 1, 50, 2, 0x06 /* Public */, + 10, 2, 53, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, QMetaType::Bool, 9, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 11, 12, + + 0 // eod +}; + +void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->noteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->noteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->error((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->connectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: _t->deviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SerialReader::*)(const QString & , int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOnReceived)) { + *result = 0; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOffReceived)) { + *result = 1; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::error)) { + *result = 2; + return; + } + } + { + using _t = void (SerialReader::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::connectionStatusChanged)) { + *result = 3; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & , const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::deviceInfoReceived)) { + *result = 4; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SerialReader::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SerialReader.data, + qt_meta_data_SerialReader, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SerialReader::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SerialReader::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0)) + return static_cast(this); + return QThread::qt_metacast(_clname); +} + +int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QThread::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} + +// SIGNAL 0 +void SerialReader::noteOnReceived(const QString & _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SerialReader::noteOffReceived(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void SerialReader::error(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void SerialReader::connectionStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} + +// SIGNAL 4 +void SerialReader::deviceInfoReceived(const QString & _t1, const QString & _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 4, _a); +} +struct qt_meta_stringdata_Yamitracker_t { + QByteArrayData data[19]; + char stringdata0[264]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_Yamitracker_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = { + { +QT_MOC_LITERAL(0, 0, 11), // "Yamitracker" +QT_MOC_LITERAL(1, 12, 16), // "onNoteOnReceived" +QT_MOC_LITERAL(2, 29, 0), // "" +QT_MOC_LITERAL(3, 30, 4), // "note" +QT_MOC_LITERAL(4, 35, 8), // "velocity" +QT_MOC_LITERAL(5, 44, 17), // "onNoteOffReceived" +QT_MOC_LITERAL(6, 62, 7), // "onError" +QT_MOC_LITERAL(7, 70, 7), // "message" +QT_MOC_LITERAL(8, 78, 13), // "onPlayClicked" +QT_MOC_LITERAL(9, 92, 13), // "onStopClicked" +QT_MOC_LITERAL(10, 106, 21), // "onConvertToBrrClicked" +QT_MOC_LITERAL(11, 128, 18), // "clearStatusMessage" +QT_MOC_LITERAL(12, 147, 25), // "onConnectionStatusChanged" +QT_MOC_LITERAL(13, 173, 9), // "connected" +QT_MOC_LITERAL(14, 183, 16), // "attemptReconnect" +QT_MOC_LITERAL(15, 200, 20), // "onDeviceInfoReceived" +QT_MOC_LITERAL(16, 221, 12), // "manufacturer" +QT_MOC_LITERAL(17, 234, 5), // "model" +QT_MOC_LITERAL(18, 240, 23) // "onRefreshDevicesClicked" + + }, + "Yamitracker\0onNoteOnReceived\0\0note\0" + "velocity\0onNoteOffReceived\0onError\0" + "message\0onPlayClicked\0onStopClicked\0" + "onConvertToBrrClicked\0clearStatusMessage\0" + "onConnectionStatusChanged\0connected\0" + "attemptReconnect\0onDeviceInfoReceived\0" + "manufacturer\0model\0onRefreshDevicesClicked" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_Yamitracker[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 11, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 2, 69, 2, 0x08 /* Private */, + 5, 1, 74, 2, 0x08 /* Private */, + 6, 1, 77, 2, 0x08 /* Private */, + 8, 0, 80, 2, 0x08 /* Private */, + 9, 0, 81, 2, 0x08 /* Private */, + 10, 0, 82, 2, 0x08 /* Private */, + 11, 0, 83, 2, 0x08 /* Private */, + 12, 1, 84, 2, 0x08 /* Private */, + 14, 0, 87, 2, 0x08 /* Private */, + 15, 2, 88, 2, 0x08 /* Private */, + 18, 0, 93, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Bool, 13, + QMetaType::Void, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 16, 17, + QMetaType::Void, + + 0 // eod +}; + +void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onNoteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->onNoteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->onError((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->onPlayClicked(); break; + case 4: _t->onStopClicked(); break; + case 5: _t->onConvertToBrrClicked(); break; + case 6: _t->clearStatusMessage(); break; + case 7: _t->onConnectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 8: _t->attemptReconnect(); break; + case 9: _t->onDeviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + case 10: _t->onRefreshDevicesClicked(); break; + default: ; + } + } +} + +QT_INIT_METAOBJECT const QMetaObject Yamitracker::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_Yamitracker.data, + qt_meta_data_Yamitracker, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *Yamitracker::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *Yamitracker::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 11) + qt_static_metacall(this, _c, _id, _a); + _id -= 11; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 11) + *reinterpret_cast(_a[0]) = -1; + _id -= 11; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.o b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.o new file mode 100644 index 0000000..94c6f3d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_130314.wav b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_130314.wav new file mode 100644 index 0000000..3e8acba Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_130314.wav differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_130330.wav b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_130330.wav new file mode 100644 index 0000000..9d43abb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_130330.wav differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_130335.wav b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_130335.wav new file mode 100644 index 0000000..f7ef2a0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_130335.wav differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_130350.wav b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_130350.wav new file mode 100644 index 0000000..2ec0a92 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_130350.wav differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133027.wav b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133027.wav new file mode 100644 index 0000000..7f87b07 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133027.wav differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133032.wav b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133032.wav new file mode 100644 index 0000000..fde0bfe Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133032.wav differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133042.wav b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133042.wav new file mode 100644 index 0000000..1097ef8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133042.wav differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.brr b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.brr new file mode 100644 index 0000000..a475539 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.brr differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.wav b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.wav new file mode 100644 index 0000000..c296e1b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.wav differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.brr b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.brr new file mode 100644 index 0000000..940aec5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.brr differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.wav b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.wav new file mode 100644 index 0000000..512d392 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.wav differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/simplewavwriter.o b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/simplewavwriter.o new file mode 100644 index 0000000..46d7f52 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/simplewavwriter.o differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/ui_yamitracker.h b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/ui_yamitracker.h new file mode 100644 index 0000000..b1f1096 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/ui_yamitracker.h @@ -0,0 +1,625 @@ +/******************************************************************************** +** Form generated from reading UI file 'yamitracker.ui' +** +** Created by: Qt User Interface Compiler version 5.15.13 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_YAMITRACKER_H +#define UI_YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Yamitracker +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QLabel *statusLabel; + QLabel *deviceLabel; + QLabel *keysInfoLabel; + QProgressBar *volumeBar; + QHBoxLayout *controlLayout; + QPushButton *playButton; + QPushButton *stopButton; + QPushButton *convertButton; + QPushButton *refreshDevicesButton; + QWidget *pianoWidget; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *whiteKeysLayout; + QPushButton *key_C1; + QPushButton *key_D1; + QPushButton *key_E1; + QPushButton *key_F1; + QPushButton *key_G1; + QPushButton *key_A1; + QPushButton *key_B1; + QPushButton *key_C2; + QPushButton *key_D2; + QPushButton *key_E2; + QPushButton *key_F2; + QPushButton *key_G2; + QPushButton *key_A2; + QPushButton *key_B2; + QPushButton *key_C3; + QPushButton *key_D3; + QPushButton *key_E3; + QPushButton *key_F3; + QPushButton *key_G3; + QPushButton *key_A3; + QPushButton *key_B3; + QPushButton *key_C4; + QPushButton *key_D4; + QPushButton *key_E4; + QPushButton *key_F4; + QPushButton *key_G4; + QPushButton *key_A4; + QPushButton *key_B4; + QPushButton *key_C5; + QPushButton *key_D5; + QPushButton *key_E5; + QPushButton *key_F5; + QPushButton *key_G5; + QPushButton *key_A5; + QPushButton *key_B5; + QPushButton *key_C6; + QHBoxLayout *blackKeysLayout; + QSpacerItem *horizontalSpacer_1; + QPushButton *key_Cs1; + QPushButton *key_Ds1; + QSpacerItem *horizontalSpacer_2; + QPushButton *key_Fs1; + QPushButton *key_Gs1; + QPushButton *key_As1; + QSpacerItem *horizontalSpacer_3; + QPushButton *key_Cs2; + QPushButton *key_Ds2; + QSpacerItem *horizontalSpacer_4; + QPushButton *key_Fs2; + QPushButton *key_Gs2; + QPushButton *key_As2; + QSpacerItem *horizontalSpacer_5; + QPushButton *key_Cs3; + QPushButton *key_Ds3; + QSpacerItem *horizontalSpacer_6; + QPushButton *key_Fs3; + QPushButton *key_Gs3; + QPushButton *key_As3; + QSpacerItem *horizontalSpacer_7; + QPushButton *key_Cs4; + QPushButton *key_Ds4; + QSpacerItem *horizontalSpacer_8; + QPushButton *key_Fs4; + QPushButton *key_Gs4; + QPushButton *key_As4; + QSpacerItem *horizontalSpacer_9; + QPushButton *key_Cs5; + QPushButton *key_Ds5; + QSpacerItem *horizontalSpacer_10; + QPushButton *key_Fs5; + QPushButton *key_Gs5; + QPushButton *key_As5; + QSpacerItem *horizontalSpacer_11; + + void setupUi(QMainWindow *Yamitracker) + { + if (Yamitracker->objectName().isEmpty()) + Yamitracker->setObjectName(QString::fromUtf8("Yamitracker")); + Yamitracker->resize(1200, 600); + centralwidget = new QWidget(Yamitracker); + centralwidget->setObjectName(QString::fromUtf8("centralwidget")); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + statusLabel = new QLabel(centralwidget); + statusLabel->setObjectName(QString::fromUtf8("statusLabel")); + + verticalLayout->addWidget(statusLabel); + + deviceLabel = new QLabel(centralwidget); + deviceLabel->setObjectName(QString::fromUtf8("deviceLabel")); + + verticalLayout->addWidget(deviceLabel); + + keysInfoLabel = new QLabel(centralwidget); + keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel")); + + verticalLayout->addWidget(keysInfoLabel); + + volumeBar = new QProgressBar(centralwidget); + volumeBar->setObjectName(QString::fromUtf8("volumeBar")); + volumeBar->setValue(0); + + verticalLayout->addWidget(volumeBar); + + controlLayout = new QHBoxLayout(); + controlLayout->setObjectName(QString::fromUtf8("controlLayout")); + playButton = new QPushButton(centralwidget); + playButton->setObjectName(QString::fromUtf8("playButton")); + + controlLayout->addWidget(playButton); + + stopButton = new QPushButton(centralwidget); + stopButton->setObjectName(QString::fromUtf8("stopButton")); + + controlLayout->addWidget(stopButton); + + convertButton = new QPushButton(centralwidget); + convertButton->setObjectName(QString::fromUtf8("convertButton")); + + controlLayout->addWidget(convertButton); + + refreshDevicesButton = new QPushButton(centralwidget); + refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton")); + + controlLayout->addWidget(refreshDevicesButton); + + + verticalLayout->addLayout(controlLayout); + + pianoWidget = new QWidget(centralwidget); + pianoWidget->setObjectName(QString::fromUtf8("pianoWidget")); + verticalLayout_2 = new QVBoxLayout(pianoWidget); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + whiteKeysLayout = new QHBoxLayout(); + whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout")); + key_C1 = new QPushButton(pianoWidget); + key_C1->setObjectName(QString::fromUtf8("key_C1")); + + whiteKeysLayout->addWidget(key_C1); + + key_D1 = new QPushButton(pianoWidget); + key_D1->setObjectName(QString::fromUtf8("key_D1")); + + whiteKeysLayout->addWidget(key_D1); + + key_E1 = new QPushButton(pianoWidget); + key_E1->setObjectName(QString::fromUtf8("key_E1")); + + whiteKeysLayout->addWidget(key_E1); + + key_F1 = new QPushButton(pianoWidget); + key_F1->setObjectName(QString::fromUtf8("key_F1")); + + whiteKeysLayout->addWidget(key_F1); + + key_G1 = new QPushButton(pianoWidget); + key_G1->setObjectName(QString::fromUtf8("key_G1")); + + whiteKeysLayout->addWidget(key_G1); + + key_A1 = new QPushButton(pianoWidget); + key_A1->setObjectName(QString::fromUtf8("key_A1")); + + whiteKeysLayout->addWidget(key_A1); + + key_B1 = new QPushButton(pianoWidget); + key_B1->setObjectName(QString::fromUtf8("key_B1")); + + whiteKeysLayout->addWidget(key_B1); + + key_C2 = new QPushButton(pianoWidget); + key_C2->setObjectName(QString::fromUtf8("key_C2")); + + whiteKeysLayout->addWidget(key_C2); + + key_D2 = new QPushButton(pianoWidget); + key_D2->setObjectName(QString::fromUtf8("key_D2")); + + whiteKeysLayout->addWidget(key_D2); + + key_E2 = new QPushButton(pianoWidget); + key_E2->setObjectName(QString::fromUtf8("key_E2")); + + whiteKeysLayout->addWidget(key_E2); + + key_F2 = new QPushButton(pianoWidget); + key_F2->setObjectName(QString::fromUtf8("key_F2")); + + whiteKeysLayout->addWidget(key_F2); + + key_G2 = new QPushButton(pianoWidget); + key_G2->setObjectName(QString::fromUtf8("key_G2")); + + whiteKeysLayout->addWidget(key_G2); + + key_A2 = new QPushButton(pianoWidget); + key_A2->setObjectName(QString::fromUtf8("key_A2")); + + whiteKeysLayout->addWidget(key_A2); + + key_B2 = new QPushButton(pianoWidget); + key_B2->setObjectName(QString::fromUtf8("key_B2")); + + whiteKeysLayout->addWidget(key_B2); + + key_C3 = new QPushButton(pianoWidget); + key_C3->setObjectName(QString::fromUtf8("key_C3")); + + whiteKeysLayout->addWidget(key_C3); + + key_D3 = new QPushButton(pianoWidget); + key_D3->setObjectName(QString::fromUtf8("key_D3")); + + whiteKeysLayout->addWidget(key_D3); + + key_E3 = new QPushButton(pianoWidget); + key_E3->setObjectName(QString::fromUtf8("key_E3")); + + whiteKeysLayout->addWidget(key_E3); + + key_F3 = new QPushButton(pianoWidget); + key_F3->setObjectName(QString::fromUtf8("key_F3")); + + whiteKeysLayout->addWidget(key_F3); + + key_G3 = new QPushButton(pianoWidget); + key_G3->setObjectName(QString::fromUtf8("key_G3")); + + whiteKeysLayout->addWidget(key_G3); + + key_A3 = new QPushButton(pianoWidget); + key_A3->setObjectName(QString::fromUtf8("key_A3")); + + whiteKeysLayout->addWidget(key_A3); + + key_B3 = new QPushButton(pianoWidget); + key_B3->setObjectName(QString::fromUtf8("key_B3")); + + whiteKeysLayout->addWidget(key_B3); + + key_C4 = new QPushButton(pianoWidget); + key_C4->setObjectName(QString::fromUtf8("key_C4")); + + whiteKeysLayout->addWidget(key_C4); + + key_D4 = new QPushButton(pianoWidget); + key_D4->setObjectName(QString::fromUtf8("key_D4")); + + whiteKeysLayout->addWidget(key_D4); + + key_E4 = new QPushButton(pianoWidget); + key_E4->setObjectName(QString::fromUtf8("key_E4")); + + whiteKeysLayout->addWidget(key_E4); + + key_F4 = new QPushButton(pianoWidget); + key_F4->setObjectName(QString::fromUtf8("key_F4")); + + whiteKeysLayout->addWidget(key_F4); + + key_G4 = new QPushButton(pianoWidget); + key_G4->setObjectName(QString::fromUtf8("key_G4")); + + whiteKeysLayout->addWidget(key_G4); + + key_A4 = new QPushButton(pianoWidget); + key_A4->setObjectName(QString::fromUtf8("key_A4")); + + whiteKeysLayout->addWidget(key_A4); + + key_B4 = new QPushButton(pianoWidget); + key_B4->setObjectName(QString::fromUtf8("key_B4")); + + whiteKeysLayout->addWidget(key_B4); + + key_C5 = new QPushButton(pianoWidget); + key_C5->setObjectName(QString::fromUtf8("key_C5")); + + whiteKeysLayout->addWidget(key_C5); + + key_D5 = new QPushButton(pianoWidget); + key_D5->setObjectName(QString::fromUtf8("key_D5")); + + whiteKeysLayout->addWidget(key_D5); + + key_E5 = new QPushButton(pianoWidget); + key_E5->setObjectName(QString::fromUtf8("key_E5")); + + whiteKeysLayout->addWidget(key_E5); + + key_F5 = new QPushButton(pianoWidget); + key_F5->setObjectName(QString::fromUtf8("key_F5")); + + whiteKeysLayout->addWidget(key_F5); + + key_G5 = new QPushButton(pianoWidget); + key_G5->setObjectName(QString::fromUtf8("key_G5")); + + whiteKeysLayout->addWidget(key_G5); + + key_A5 = new QPushButton(pianoWidget); + key_A5->setObjectName(QString::fromUtf8("key_A5")); + + whiteKeysLayout->addWidget(key_A5); + + key_B5 = new QPushButton(pianoWidget); + key_B5->setObjectName(QString::fromUtf8("key_B5")); + + whiteKeysLayout->addWidget(key_B5); + + key_C6 = new QPushButton(pianoWidget); + key_C6->setObjectName(QString::fromUtf8("key_C6")); + + whiteKeysLayout->addWidget(key_C6); + + + verticalLayout_2->addLayout(whiteKeysLayout); + + blackKeysLayout = new QHBoxLayout(); + blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout")); + horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_1); + + key_Cs1 = new QPushButton(pianoWidget); + key_Cs1->setObjectName(QString::fromUtf8("key_Cs1")); + + blackKeysLayout->addWidget(key_Cs1); + + key_Ds1 = new QPushButton(pianoWidget); + key_Ds1->setObjectName(QString::fromUtf8("key_Ds1")); + + blackKeysLayout->addWidget(key_Ds1); + + horizontalSpacer_2 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_2); + + key_Fs1 = new QPushButton(pianoWidget); + key_Fs1->setObjectName(QString::fromUtf8("key_Fs1")); + + blackKeysLayout->addWidget(key_Fs1); + + key_Gs1 = new QPushButton(pianoWidget); + key_Gs1->setObjectName(QString::fromUtf8("key_Gs1")); + + blackKeysLayout->addWidget(key_Gs1); + + key_As1 = new QPushButton(pianoWidget); + key_As1->setObjectName(QString::fromUtf8("key_As1")); + + blackKeysLayout->addWidget(key_As1); + + horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_3); + + key_Cs2 = new QPushButton(pianoWidget); + key_Cs2->setObjectName(QString::fromUtf8("key_Cs2")); + + blackKeysLayout->addWidget(key_Cs2); + + key_Ds2 = new QPushButton(pianoWidget); + key_Ds2->setObjectName(QString::fromUtf8("key_Ds2")); + + blackKeysLayout->addWidget(key_Ds2); + + horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_4); + + key_Fs2 = new QPushButton(pianoWidget); + key_Fs2->setObjectName(QString::fromUtf8("key_Fs2")); + + blackKeysLayout->addWidget(key_Fs2); + + key_Gs2 = new QPushButton(pianoWidget); + key_Gs2->setObjectName(QString::fromUtf8("key_Gs2")); + + blackKeysLayout->addWidget(key_Gs2); + + key_As2 = new QPushButton(pianoWidget); + key_As2->setObjectName(QString::fromUtf8("key_As2")); + + blackKeysLayout->addWidget(key_As2); + + horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_5); + + key_Cs3 = new QPushButton(pianoWidget); + key_Cs3->setObjectName(QString::fromUtf8("key_Cs3")); + + blackKeysLayout->addWidget(key_Cs3); + + key_Ds3 = new QPushButton(pianoWidget); + key_Ds3->setObjectName(QString::fromUtf8("key_Ds3")); + + blackKeysLayout->addWidget(key_Ds3); + + horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_6); + + key_Fs3 = new QPushButton(pianoWidget); + key_Fs3->setObjectName(QString::fromUtf8("key_Fs3")); + + blackKeysLayout->addWidget(key_Fs3); + + key_Gs3 = new QPushButton(pianoWidget); + key_Gs3->setObjectName(QString::fromUtf8("key_Gs3")); + + blackKeysLayout->addWidget(key_Gs3); + + key_As3 = new QPushButton(pianoWidget); + key_As3->setObjectName(QString::fromUtf8("key_As3")); + + blackKeysLayout->addWidget(key_As3); + + horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_7); + + key_Cs4 = new QPushButton(pianoWidget); + key_Cs4->setObjectName(QString::fromUtf8("key_Cs4")); + + blackKeysLayout->addWidget(key_Cs4); + + key_Ds4 = new QPushButton(pianoWidget); + key_Ds4->setObjectName(QString::fromUtf8("key_Ds4")); + + blackKeysLayout->addWidget(key_Ds4); + + horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_8); + + key_Fs4 = new QPushButton(pianoWidget); + key_Fs4->setObjectName(QString::fromUtf8("key_Fs4")); + + blackKeysLayout->addWidget(key_Fs4); + + key_Gs4 = new QPushButton(pianoWidget); + key_Gs4->setObjectName(QString::fromUtf8("key_Gs4")); + + blackKeysLayout->addWidget(key_Gs4); + + key_As4 = new QPushButton(pianoWidget); + key_As4->setObjectName(QString::fromUtf8("key_As4")); + + blackKeysLayout->addWidget(key_As4); + + horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_9); + + key_Cs5 = new QPushButton(pianoWidget); + key_Cs5->setObjectName(QString::fromUtf8("key_Cs5")); + + blackKeysLayout->addWidget(key_Cs5); + + key_Ds5 = new QPushButton(pianoWidget); + key_Ds5->setObjectName(QString::fromUtf8("key_Ds5")); + + blackKeysLayout->addWidget(key_Ds5); + + horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_10); + + key_Fs5 = new QPushButton(pianoWidget); + key_Fs5->setObjectName(QString::fromUtf8("key_Fs5")); + + blackKeysLayout->addWidget(key_Fs5); + + key_Gs5 = new QPushButton(pianoWidget); + key_Gs5->setObjectName(QString::fromUtf8("key_Gs5")); + + blackKeysLayout->addWidget(key_Gs5); + + key_As5 = new QPushButton(pianoWidget); + key_As5->setObjectName(QString::fromUtf8("key_As5")); + + blackKeysLayout->addWidget(key_As5); + + horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_11); + + + verticalLayout_2->addLayout(blackKeysLayout); + + + verticalLayout->addWidget(pianoWidget); + + Yamitracker->setCentralWidget(centralwidget); + + retranslateUi(Yamitracker); + + QMetaObject::connectSlotsByName(Yamitracker); + } // setupUi + + void retranslateUi(QMainWindow *Yamitracker) + { + Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor", nullptr)); + statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr)); + deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr)); + keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr)); + playButton->setText(QCoreApplication::translate("Yamitracker", "\320\227\320\260\320\277\320\270\321\201\321\214 (Play)", nullptr)); + stopButton->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\276\320\277", nullptr)); + convertButton->setText(QCoreApplication::translate("Yamitracker", "\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr)); + refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr)); + key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr)); + key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr)); + key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr)); + key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr)); + key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr)); + key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr)); + key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr)); + key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr)); + key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr)); + key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr)); + key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr)); + key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr)); + key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr)); + key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr)); + key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr)); + key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr)); + key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr)); + key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr)); + key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr)); + key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr)); + key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr)); + key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr)); + key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr)); + key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr)); + key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr)); + key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr)); + key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr)); + key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr)); + key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr)); + key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr)); + key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr)); + key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr)); + key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr)); + key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr)); + key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr)); + key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr)); + key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr)); + key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr)); + key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr)); + key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr)); + key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr)); + key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr)); + key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr)); + key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr)); + key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr)); + key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr)); + key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr)); + key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr)); + key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr)); + key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr)); + key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr)); + key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr)); + key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr)); + key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr)); + key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr)); + key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr)); + key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr)); + key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr)); + key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr)); + key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr)); + key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class Yamitracker: public Ui_Yamitracker {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_YAMITRACKER_H diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/yamitracker.o b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/yamitracker.o new file mode 100644 index 0000000..f0f9d45 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker4/Yamitracker/build_wav/yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/main.cpp b/Yamitracker-reoload/Yamitracker4/Yamitracker/main.cpp new file mode 100644 index 0000000..b2ae5c4 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/main.cpp @@ -0,0 +1,23 @@ +#include "yamitracker.h" + +#include +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + QTranslator translator; + const QStringList uiLanguages = QLocale::system().uiLanguages(); + for (const QString &locale : uiLanguages) { + const QString baseName = "Yamitracker_" + QLocale(locale).name(); + if (translator.load(":/i18n/" + baseName)) { + a.installTranslator(&translator); + break; + } + } + Yamitracker w; + w.show(); + return a.exec(); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/music_20251210_151146.s b/Yamitracker-reoload/Yamitracker4/Yamitracker/music_20251210_151146.s new file mode 100644 index 0000000..450ec43 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/music_20251210_151146.s @@ -0,0 +1,329 @@ +; Музыкальная композиция, сгенерированная Yamitracker +; Формат: Pently-like с дорожками +; Время создания: 2025-12-10 15:11:48 + +.include "pentlyseq.inc" +.segment "SPCIMAGE" + +; Таблица инструментов +music_inst_table: + ; name lv rv frq smp att dec sus lvl + INST KICK, 11, 10, 3, 6, 31, 17, 0, 8 + INST SNARE, 10, 15, 3, 7, 31, 17, 0, 8 + INST HAT, 3, 5, 3, 5, 31, 17, 0, 8 + INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2 + INST PLING_4, 7, 7, 1, 1, 31, 19, 15, 2 + INST PLING_2, 9, 6, 1, 2, 31, 17, 15, 2 + INST BASSGUITAR, 12, 12, 1, 4, 31, 17, 15, 8 + INST BASSCLAR, 12, 12, 1, 2, 21, 21, 27, 4 + INST HORNBLAT, 3, 9, 1, 0, 21, 21, 27, 4 + INST XYLSHORT, 10, 6, 1, 2, 31, 23, 20, 2 + INST XYLMED, 10, 6, 1, 2, 31, 19, 17, 2 + +pently_patterns: +PPDAT_track0_pattern0: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern1: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern2: + .byt N_F|D_16 + .byt PATEND +PPDAT_track0_pattern3: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern4: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern5: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern6: + .byt N_C|D_D32 + .byt PATEND +PPDAT_track0_pattern7: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern8: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern9: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern10: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern11: + .byt N_F|D_16 + .byt N_C|D_D32 + .byt PATEND +PPDAT_track0_pattern12: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern13: + .byt N_F|D_16 + .byt PATEND +PPDAT_track0_pattern14: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern15: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern16: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern17: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern18: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern19: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern20: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern21: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern22: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern23: + .byt N_F|D_16 + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern24: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern25: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern26: + .byt N_C|D_D32 + .byt PATEND +PPDAT_track0_pattern27: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern28: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern29: + .byt N_C|D_D32 + .byt PATEND +PPDAT_track0_pattern30: + .byt N_E|D_32 + .byt PATEND +PPDAT_track1_pattern0: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern1: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern2: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern3: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern4: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern5: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern6: + .byt N_A|D_16 + .byt PATEND +PPDAT_track1_pattern7: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern8: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern9: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern10: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern11: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern12: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern13: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern14: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern15: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern16: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern17: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern18: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern19: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern20: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern21: + .byt N_A|D_32 + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern22: + .byt N_A|D_32 + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern23: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern24: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern25: + .byt N_A|D_32 + .byt PATEND + +pently_songs: +.addr PSDAT_composition + +; Композиция +PSDAT_composition: + setTempo 300 + playPat 0, 0, 0, PLING_2 + waitRows 16 + playPat 0, 1, 0, PLING_2 + waitRows 16 + playPat 0, 2, 0, PLING_2 + waitRows 16 + playPat 0, 3, 0, PLING_2 + waitRows 16 + playPat 0, 4, 0, PLING_2 + waitRows 16 + playPat 0, 5, 0, PLING_2 + waitRows 16 + playPat 0, 6, 0, PLING_2 + waitRows 16 + playPat 0, 7, 0, PLING_2 + waitRows 16 + playPat 0, 8, 0, PLING_2 + waitRows 16 + playPat 0, 9, 0, PLING_2 + waitRows 16 + playPat 0, 10, 0, PLING_2 + waitRows 16 + playPat 0, 11, 0, PLING_2 + waitRows 16 + playPat 0, 12, 0, PLING_2 + waitRows 16 + playPat 0, 13, 0, PLING_2 + waitRows 16 + playPat 0, 14, 0, PLING_2 + waitRows 16 + playPat 0, 15, 0, PLING_2 + waitRows 16 + playPat 0, 16, 0, PLING_2 + waitRows 16 + playPat 0, 17, 0, PLING_2 + waitRows 16 + playPat 0, 18, 0, PLING_2 + waitRows 16 + playPat 0, 19, 0, PLING_2 + waitRows 16 + playPat 0, 20, 0, PLING_2 + waitRows 16 + playPat 0, 21, 0, PLING_2 + waitRows 16 + playPat 0, 22, 0, PLING_2 + waitRows 16 + playPat 0, 23, 0, PLING_2 + waitRows 16 + playPat 0, 24, 0, PLING_2 + waitRows 16 + playPat 0, 25, 0, PLING_2 + waitRows 16 + playPat 0, 26, 0, PLING_2 + waitRows 16 + playPat 0, 27, 0, PLING_2 + waitRows 16 + playPat 0, 28, 0, PLING_2 + waitRows 16 + playPat 0, 29, 0, PLING_2 + waitRows 16 + playPat 0, 30, 0, PLING_2 + waitRows 16 + playPat 1, 31, 0, PLING_2 + waitRows 16 + playPat 1, 32, 0, PLING_2 + waitRows 16 + playPat 1, 33, 0, PLING_2 + waitRows 16 + playPat 1, 34, 0, PLING_2 + waitRows 16 + playPat 1, 35, 0, PLING_2 + waitRows 16 + playPat 1, 36, 0, PLING_2 + waitRows 16 + playPat 1, 37, 0, PLING_2 + waitRows 16 + playPat 1, 38, 0, PLING_2 + waitRows 16 + playPat 1, 39, 0, PLING_2 + waitRows 16 + playPat 1, 40, 0, PLING_2 + waitRows 16 + playPat 1, 41, 0, PLING_2 + waitRows 16 + playPat 1, 42, 0, PLING_2 + waitRows 16 + playPat 1, 43, 0, PLING_2 + waitRows 16 + playPat 1, 44, 0, PLING_2 + waitRows 16 + playPat 1, 45, 0, PLING_2 + waitRows 16 + playPat 1, 46, 0, PLING_2 + waitRows 16 + playPat 1, 47, 0, PLING_2 + waitRows 16 + playPat 1, 48, 0, PLING_2 + waitRows 16 + playPat 1, 49, 0, PLING_2 + waitRows 16 + playPat 1, 50, 0, PLING_2 + waitRows 16 + playPat 1, 51, 0, PLING_2 + waitRows 16 + playPat 1, 52, 0, PLING_2 + waitRows 16 + playPat 1, 53, 0, PLING_2 + waitRows 16 + playPat 1, 54, 0, PLING_2 + waitRows 16 + playPat 1, 55, 0, PLING_2 + waitRows 16 + playPat 1, 56, 0, PLING_2 + waitRows 16 + fine diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/simplewavwriter.cpp b/Yamitracker-reoload/Yamitracker4/Yamitracker/simplewavwriter.cpp new file mode 100644 index 0000000..7a43831 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/simplewavwriter.cpp @@ -0,0 +1,1217 @@ +#include "simplewavwriter.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +SimpleWavWriter::SimpleWavWriter(QObject *parent) + : QObject(parent) + , m_isRecording(false) + , m_isPaused(false) + , m_startTime(0) + , m_pauseTime(0) + , m_sampleRate(16000) + , m_bassVolumeMultiplier(2.0) + , m_playbackSpeed(1.0) + , m_masterVolume(1.0) +{ + std::srand(std::time(nullptr)); + + // Инициализируем дорожки (теперь 7 дорожек) + m_tracks.resize(MAX_TRACKS); + for (int i = 0; i < MAX_TRACKS; i++) { + m_tracks[i].name = QString("Track %1").arg(i + 1); + m_tracks[i].instrument = 0; + m_tracks[i].volume = 1.0; + m_tracks[i].muted = false; + } +} + +SimpleWavWriter::~SimpleWavWriter() +{ +} + +bool SimpleWavWriter::startRecording(int sampleRate) +{ + if (m_isRecording) { + stopRecording(); + } + + // Очищаем все дорожки + clearAllTracks(); + + m_isRecording = true; + m_isPaused = false; + m_startTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + m_pauseTime = 0; + m_sampleRate = sampleRate; + + qDebug() << "Started recording, sample rate:" << m_sampleRate; + return true; +} + +bool SimpleWavWriter::pauseRecording() +{ + if (!m_isRecording || m_isPaused) { + return false; + } + + m_isPaused = true; + m_pauseTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Recording paused"; + return true; +} + +bool SimpleWavWriter::resumeRecording() +{ + if (!m_isRecording || !m_isPaused) { + return false; + } + + // Корректируем время начала для новых событий + double pauseDuration = (QDateTime::currentMSecsSinceEpoch() / 1000.0) - m_pauseTime; + m_startTime += pauseDuration; + + m_isPaused = false; + qDebug() << "Recording resumed, pause duration:" << pauseDuration; + return true; +} + +bool SimpleWavWriter::stopRecording() +{ + if (!m_isRecording) { + return false; + } + + m_isRecording = false; + m_isPaused = false; + + // Генерируем аудиоданные для быстрого воспроизведения + generateAllTracksAudio(); + + qDebug() << "Stopped recording"; + qDebug() << "Track information:"; + for (int i = 0; i < MAX_TRACKS; i++) { + if (!m_tracks[i].events.isEmpty()) { + qDebug() << " Track" << i << ":" << m_tracks[i].name + << ", events:" << m_tracks[i].events.size() + << ", duration:" << getTrackDuration(i) << "seconds"; + } + } + + return true; +} + +bool SimpleWavWriter::saveToFile(const QString &filename) +{ + QByteArray audioData = getMergedAudioData(); + if (audioData.isEmpty()) { + qDebug() << "No audio data to save"; + return false; + } + + QFile file(filename); + if (!file.open(QIODevice::WriteOnly)) { + qDebug() << "Cannot open file for writing:" << filename; + return false; + } + + QDataStream stream(&file); + stream.setByteOrder(QDataStream::LittleEndian); + + writeWavHeader(stream, audioData.size()); + stream.writeRawData(audioData.constData(), audioData.size()); + + file.close(); + qDebug() << "WAV file saved:" << filename << "size:" << audioData.size() << "bytes"; + return true; +} + +bool SimpleWavWriter::saveToMusicFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { + qDebug() << "Cannot open music file for writing:" << filename; + return false; + } + + QTextStream stream(&file); + stream.setCodec("UTF-8"); + + // File header + stream << "; Music composition generated by Yamitracker\n"; + stream << "; Format: Pently-style with tracks\n"; + stream << "; Creation time: " << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss") << "\n"; + stream << "; Number of tracks: "; + + int activeTracks = 0; + for (int i = 0; i < MAX_TRACKS; i++) { + if (!m_tracks[i].events.isEmpty()) { + activeTracks++; + } + } + stream << activeTracks << "\n\n"; + + stream << ".include \"pentlyseq.inc\"\n"; + stream << ".segment \"SPCIMAGE\"\n\n"; + + // Instrument table (using standard Pently instruments) + stream << "; Instrument table\n"; + stream << "music_inst_table:\n"; + stream << " ; name lv rv frq smp att dec sus lvl\n"; + stream << " INST KICK, 11, 10, 3, 6, 31, 17, 0, 8\n"; + stream << " INST SNARE, 10, 15, 3, 7, 31, 17, 0, 8\n"; + stream << " INST HAT, 3, 5, 3, 5, 31, 17, 0, 8\n"; + stream << " INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2\n"; + stream << " INST PLING_4, 7, 7, 1, 1, 31, 19, 15, 2\n"; + stream << " INST PLING_2, 9, 6, 1, 2, 31, 17, 15, 2\n"; + stream << " INST BASSGUITAR, 12, 12, 1, 4, 31, 17, 15, 8\n"; + stream << " INST BASSCLAR, 12, 12, 1, 2, 21, 21, 27, 4\n"; + stream << " INST HORNBLAT, 3, 9, 1, 0, 21, 21, 27, 4\n"; + stream << " INST XYLSHORT, 10, 6, 1, 2, 31, 23, 20, 2\n"; + stream << " INST XYLMED, 10, 6, 1, 2, 31, 19, 17, 2\n\n"; + + // Generate patterns for each track + stream << "pently_patterns:\n"; + + QMap>> trackPatterns; + int totalPatternCount = 0; + + // First collect all patterns from all tracks + for (int track = 0; track < MAX_TRACKS; track++) { + if (m_tracks[track].events.isEmpty()) continue; + + // Group events by time to create patterns (1 second groups) + QVector> patternGroups = groupEventsByTime(track, 1.0); + trackPatterns[track] = patternGroups; + totalPatternCount += patternGroups.size(); + } + + // Now write all patterns with proper indexing + int currentPatternIndex = 0; + QMap> trackPatternIndices; // track -> group index -> pattern index + + for (int track = 0; track < MAX_TRACKS; track++) { + if (!trackPatterns.contains(track)) continue; + + const QVector>& patterns = trackPatterns[track]; + + for (int groupIdx = 0; groupIdx < patterns.size(); groupIdx++) { + const QVector& patternEvents = patterns[groupIdx]; + + stream << QString("PPDAT_track%1_pattern%2:\n").arg(track).arg(groupIdx); + + // Determine instrument for this track + QString instrumentName = getInstrumentMacroName(m_tracks[track].instrument); + + // Check if pattern has different instruments + bool hasDifferentInstruments = false; + int firstInstrument = patternEvents.isEmpty() ? 0 : patternEvents[0].instrument; + for (const auto& event : patternEvents) { + if (event.instrument != firstInstrument && !event.isPause) { + hasDifferentInstruments = true; + break; + } + } + + // Always add instrument command at start of pattern + stream << QString(" .byt INSTRUMENT, %1\n").arg(instrumentName); + + // Add notes + for (const auto& event : patternEvents) { + QString noteCmd = getNoteCommand(event, false); + if (!noteCmd.isEmpty()) { + stream << " .byt " << noteCmd << "\n"; + } + } + + stream << " .byt PATEND\n"; + + // Store the pattern index for this track and group + if (!trackPatternIndices.contains(track)) { + trackPatternIndices[track] = QMap(); + } + trackPatternIndices[track][groupIdx] = currentPatternIndex; + currentPatternIndex++; + } + } + + // Generate song data + stream << "\npently_songs:\n"; + stream << ".addr PSDAT_composition\n\n"; + + stream << "; Main composition\n"; + stream << "PSDAT_composition:\n"; + stream << " setTempo 300\n\n"; + + // Calculate maximum number of pattern groups across all tracks + int maxGroups = 0; + for (int track = 0; track < MAX_TRACKS; track++) { + if (trackPatterns.contains(track)) { + maxGroups = qMax(maxGroups, trackPatterns[track].size()); + } + } + + // Play patterns in parallel (all tracks simultaneously) + for (int groupIdx = 0; groupIdx < maxGroups; groupIdx++) { + bool anyTrackHasPattern = false; + + // Start patterns for all tracks that have this group + for (int track = 0; track < MAX_TRACKS; track++) { + if (trackPatterns.contains(track) && groupIdx < trackPatterns[track].size()) { + QString instrumentName = getInstrumentMacroName(m_tracks[track].instrument); + int patternIndex = trackPatternIndices[track][groupIdx]; + + stream << QString(" playPat %1, %2, 0, %3\n") + .arg(track) // Channel + .arg(patternIndex) // Pattern index + .arg(instrumentName); // Instrument + anyTrackHasPattern = true; + } + } + + if (anyTrackHasPattern) { + // Wait for the pattern to complete + stream << QString(" waitRows 16\n\n"); + } + } + + stream << "\n ; Composition end\n"; + stream << " waitRows 32\n"; + stream << " fine\n"; + + file.close(); + qDebug() << "Music file saved in Pently format:" << filename; + return true; +} + +void SimpleWavWriter::addNote(int track, double time, int note, int velocity, double duration, int instrument) +{ + if (track < 0 || track >= MAX_TRACKS) return; + + // Adjust note for Pently format (limit range) + int adjustedNote = note; + if (adjustedNote < 24) adjustedNote = 24; // C2 + if (adjustedNote > 84) adjustedNote = 84; // C6 + + WavEvent event; + event.track = track; + event.time = time; + event.note = adjustedNote; + event.velocity = velocity; + event.duration = duration * m_sampleRate; + event.instrument = instrument; + event.isPause = false; + + m_tracks[track].events.append(event); + + // Sort events by time + std::sort(m_tracks[track].events.begin(), m_tracks[track].events.end(), + [](const WavEvent& a, const WavEvent& b) { + return a.time < b.time; + }); + + // Clear cached audio data + m_tracks[track].audioData.clear(); + + emit trackUpdated(track); +} + +void SimpleWavWriter::addSilence(int track, double duration) +{ + if (track < 0 || track >= MAX_TRACKS) return; + + // Find time of last event + double lastTime = 0; + if (!m_tracks[track].events.isEmpty()) { + const WavEvent& lastEvent = m_tracks[track].events.last(); + lastTime = lastEvent.time + (double)lastEvent.duration / m_sampleRate; + } + + WavEvent event; + event.track = track; + event.time = lastTime; + event.note = 0; + event.velocity = 0; + event.duration = duration * m_sampleRate; + event.instrument = 0; + event.isPause = true; + + m_tracks[track].events.append(event); + m_tracks[track].audioData.clear(); + + emit trackUpdated(track); +} + +void SimpleWavWriter::addPause(int track, double duration) +{ + addSilence(track, duration); +} + +void SimpleWavWriter::clearTrack(int track) +{ + if (track < 0 || track >= MAX_TRACKS) return; + + m_tracks[track].events.clear(); + m_tracks[track].audioData.clear(); + + emit trackUpdated(track); +} + +void SimpleWavWriter::clearAllTracks() +{ + for (int i = 0; i < MAX_TRACKS; i++) { + m_tracks[i].events.clear(); + m_tracks[i].audioData.clear(); + emit trackUpdated(i); + } +} + +void SimpleWavWriter::mergeTrack(int fromTrack, int toTrack) +{ + if (fromTrack < 0 || fromTrack >= MAX_TRACKS || + toTrack < 0 || toTrack >= MAX_TRACKS || + fromTrack == toTrack) { + return; + } + + for (const auto& event : m_tracks[fromTrack].events) { + m_tracks[toTrack].events.append(event); + } + + // Sort events by time + std::sort(m_tracks[toTrack].events.begin(), m_tracks[toTrack].events.end(), + [](const WavEvent& a, const WavEvent& b) { + return a.time < b.time; + }); + + m_tracks[toTrack].audioData.clear(); + m_tracks[fromTrack].events.clear(); + m_tracks[fromTrack].audioData.clear(); + + emit trackUpdated(fromTrack); + emit trackUpdated(toTrack); +} + +void SimpleWavWriter::copyTrack(int fromTrack, int toTrack) +{ + if (fromTrack < 0 || fromTrack >= MAX_TRACKS || + toTrack < 0 || toTrack >= MAX_TRACKS || + fromTrack == toTrack) { + return; + } + + m_tracks[toTrack].events = m_tracks[fromTrack].events; + m_tracks[toTrack].audioData.clear(); + + emit trackUpdated(toTrack); +} + +void SimpleWavWriter::setTrackName(int track, const QString &name) +{ + if (track < 0 || track >= MAX_TRACKS) return; + + m_tracks[track].name = name; + emit trackUpdated(track); +} + +void SimpleWavWriter::setTrackInstrument(int track, int instrument) +{ + if (track < 0 || track >= MAX_TRACKS) return; + + m_tracks[track].instrument = instrument; + emit trackUpdated(track); +} + +void SimpleWavWriter::muteTrack(int track, bool muted) +{ + if (track < 0 || track >= MAX_TRACKS) return; + + m_tracks[track].muted = muted; + emit trackUpdated(track); +} + +void SimpleWavWriter::setTrackVolume(int track, double volume) +{ + if (track < 0 || track >= MAX_TRACKS) return; + + m_tracks[track].volume = qBound(0.0, volume, 2.0); + emit trackUpdated(track); +} + +QByteArray SimpleWavWriter::getTrackAudioData(int track, bool preview) +{ + if (track < 0 || track >= MAX_TRACKS || m_tracks[track].muted) { + return QByteArray(); + } + + if (m_tracks[track].audioData.isEmpty()) { + m_tracks[track].audioData = generateTrackAudio(track, !preview); + } + + return m_tracks[track].audioData; +} + +QByteArray SimpleWavWriter::getAllTracksAudioData() +{ + QByteArray allData; + + // First, find the longest track + int maxSamples = 0; + QVector trackDataList; + + for (int track = 0; track < MAX_TRACKS; track++) { + if (!m_tracks[track].events.isEmpty() && !m_tracks[track].muted) { + QByteArray trackData = getTrackAudioData(track); + if (!trackData.isEmpty()) { + trackDataList.append(trackData); + maxSamples = qMax(maxSamples, trackData.size() / 2); + } + } + } + + if (trackDataList.isEmpty()) { + return QByteArray(); + } + + // Create buffer for mixed audio + allData.resize(maxSamples * 2); // 16-bit = 2 bytes per sample + memset(allData.data(), 0, allData.size()); + + // Mix all tracks + for (const QByteArray& trackData : trackDataList) { + int trackSamples = trackData.size() / 2; + const int16_t* trackPtr = reinterpret_cast(trackData.constData()); + int16_t* allPtr = reinterpret_cast(allData.data()); + + for (int i = 0; i < qMin(trackSamples, maxSamples); i++) { + // Mix with clipping prevention + int32_t mixed = allPtr[i] + trackPtr[i]; + if (mixed > 32767) mixed = 32767; + if (mixed < -32768) mixed = -32768; + allPtr[i] = static_cast(mixed); + } + } + + return allData; +} + +QByteArray SimpleWavWriter::getMergedAudioData() +{ + return getAllTracksAudioData(); +} + +bool SimpleWavWriter::loadWavToTrack(const QString &filename, int track) +{ + if (track < 0 || track >= MAX_TRACKS) { + return false; + } + + QVector samples; + int fileSampleRate; + + if (!loadWavFile(filename, samples, fileSampleRate)) { + return false; + } + + // Clear current track + clearTrack(track); + + // Convert samples to events (simplified - one note with samples) + if (!samples.isEmpty()) { + // Create one event for entire WAV file + WavEvent event; + event.track = track; + event.time = 0; + event.note = 60; // C4 default + event.velocity = 100; + event.duration = samples.size(); // Duration in samples + event.instrument = 0; // Default + event.isPause = false; + + m_tracks[track].events.append(event); + + // Set track volume + m_tracks[track].volume = 0.7; + + emit trackUpdated(track); + qDebug() << "Loaded WAV file to track" << track << "samples:" << samples.size(); + return true; + } + + return false; +} + +int SimpleWavWriter::getEventCount(int track) const +{ + if (track < 0 || track >= MAX_TRACKS) return 0; + return m_tracks[track].events.size(); +} + +QString SimpleWavWriter::getTrackName(int track) const +{ + if (track < 0 || track >= MAX_TRACKS) return QString(); + return m_tracks[track].name; +} + +int SimpleWavWriter::getTrackInstrument(int track) const +{ + if (track < 0 || track >= MAX_TRACKS) return 0; + return m_tracks[track].instrument; +} + +double SimpleWavWriter::getTrackVolume(int track) const +{ + if (track < 0 || track >= MAX_TRACKS) return 0; + return m_tracks[track].volume; +} + +bool SimpleWavWriter::isTrackMuted(int track) const +{ + if (track < 0 || track >= MAX_TRACKS) return true; + return m_tracks[track].muted; +} + +QVector SimpleWavWriter::getTrackEvents(int track) const +{ + if (track < 0 || track >= MAX_TRACKS) return QVector(); + return m_tracks[track].events; +} + +double SimpleWavWriter::getTotalDuration() const +{ + double maxDuration = 0; + + for (int track = 0; track < MAX_TRACKS; track++) { + double trackDuration = getTrackDuration(track); + if (trackDuration > maxDuration) { + maxDuration = trackDuration; + } + } + + return maxDuration; +} + +double SimpleWavWriter::getTrackDuration(int track) const +{ + if (track < 0 || track >= MAX_TRACKS || m_tracks[track].events.isEmpty()) { + return 0; + } + + const WavEvent& lastEvent = m_tracks[track].events.last(); + return lastEvent.time + (double)lastEvent.duration / m_sampleRate; +} + +QByteArray SimpleWavWriter::synthesizeTrackPreview(int track) +{ + return generateTrackAudio(track, false); +} + +void SimpleWavWriter::writeWavHeader(QDataStream &stream, quint32 dataSize) +{ + // RIFF header + stream.writeRawData("RIFF", 4); + quint32 chunkSize = 36 + dataSize; + stream << chunkSize; + stream.writeRawData("WAVE", 4); + + // fmt chunk + stream.writeRawData("fmt ", 4); + quint32 subchunk1Size = 16; + stream << subchunk1Size; + + quint16 audioFormat = 1; // PCM + stream << audioFormat; + + quint16 numChannels = 1; // Mono + stream << numChannels; + + quint32 sampleRate = m_sampleRate; + stream << sampleRate; + + quint32 byteRate = sampleRate * numChannels * 2; // 16-bit = 2 bytes + stream << byteRate; + + quint16 blockAlign = numChannels * 2; + stream << blockAlign; + + quint16 bitsPerSample = 16; + stream << bitsPerSample; + + // data chunk + stream.writeRawData("data", 4); + stream << dataSize; +} + +QByteArray SimpleWavWriter::generateTrackAudio(int track, bool includeEffects) +{ + if (track < 0 || track >= MAX_TRACKS || m_tracks[track].events.isEmpty()) { + return QByteArray(); + } + + QByteArray audioData; + QDataStream stream(&audioData, QIODevice::WriteOnly); + stream.setByteOrder(QDataStream::LittleEndian); + + double trackDuration = getTrackDuration(track); + int totalSamples = static_cast(trackDuration * m_sampleRate); + + // Create buffer for samples + QVector sampleBuffer(totalSamples, 0.0); + + // Generate each event + for (const auto& event : m_tracks[track].events) { + if (event.isPause) continue; + + double frequency = noteToFrequency(event.note); + int startSample = static_cast(event.time * m_sampleRate); + int endSample = startSample + event.duration; + + // Determine gain for bass notes + double volumeMultiplier = 1.0; + if (event.instrument >= 28 && event.instrument <= 40) { + volumeMultiplier = m_bassVolumeMultiplier; + } + + // Consider track volume + volumeMultiplier *= m_tracks[track].volume * m_masterVolume; + + double baseAmplitude = (event.velocity / 127.0) * 0.7 * volumeMultiplier; + + // Envelope parameters for this instrument + double attack = getAttackForInstrument(event.instrument); + double decay = getDecayForInstrument(event.instrument); + double sustain = getSustainForInstrument(event.instrument); + double release = getReleaseForInstrument(event.instrument); + + // Generate note + for (int i = 0; i < event.duration && (startSample + i) < totalSamples; i++) { + double noteTime = static_cast(i) / m_sampleRate; + double noteDuration = static_cast(event.duration) / m_sampleRate; + + // ADSR envelope + double envelope = 1.0; + if (includeEffects) { + envelope = adsrEnvelope(noteTime, noteDuration, attack, decay, sustain, release); + } + + // Amplitude with envelope + double amplitude = baseAmplitude * envelope; + + // Limit amplitude to avoid clipping + if (amplitude > 1.0) amplitude = 1.0; + + // Generate wave + double t = event.time + noteTime; + double sampleValue = 0.0; + + if (includeEffects) { + short sample = generateWaveform(t, frequency, amplitude, event.instrument); + sampleValue = static_cast(sample) / 32767.0; + } else { + // For preview use simple sine + sampleValue = sin(2.0 * M_PI * frequency * t) * amplitude; + } + + // Add to buffer + sampleBuffer[startSample + i] += sampleValue; + } + } + + // Convert buffer to 16-bit samples + for (double sampleValue : sampleBuffer) { + // Limit value to avoid clipping + if (sampleValue > 1.0) sampleValue = 1.0; + if (sampleValue < -1.0) sampleValue = -1.0; + + short sample = static_cast(sampleValue * 32767.0); + stream << sample; + } + + return audioData; +} + +void SimpleWavWriter::generateAllTracksAudio() +{ + for (int track = 0; track < MAX_TRACKS; track++) { + if (!m_tracks[track].events.isEmpty()) { + m_tracks[track].audioData = generateTrackAudio(track, true); + emit audioDataReady(track, m_tracks[track].audioData); + } + } +} + +double SimpleWavWriter::adsrEnvelope(double noteTime, double noteDuration, + double attack, double decay, + double sustain, double release) +{ + double envelope = 1.0; + + if (noteTime < attack) { + // Attack + envelope = noteTime / attack; + } else if (noteTime < attack + decay) { + // Decay + envelope = 1.0 - ((noteTime - attack) / decay) * (1.0 - sustain); + } else if (noteTime < noteDuration - release) { + // Sustain + envelope = sustain; + } else if (noteTime < noteDuration) { + // Release + double releaseTime = noteTime - (noteDuration - release); + envelope = sustain * (1.0 - releaseTime / release); + } else { + // After release + envelope = 0.0; + } + + return envelope; +} + +double SimpleWavWriter::sineWave(double phase) +{ + return sin(2.0 * M_PI * phase); +} + +double SimpleWavWriter::squareWave(double phase) +{ + return sin(2.0 * M_PI * phase) > 0 ? 0.7 : -0.7; +} + +double SimpleWavWriter::sawtoothWave(double phase) +{ + return 2.0 * (phase - floor(phase + 0.5)); +} + +double SimpleWavWriter::triangleWave(double phase) +{ + double x = 2.0 * (phase - floor(phase + 0.5)); + return 2.0 * fabs(x) - 1.0; +} + +double SimpleWavWriter::noiseWave() +{ + return (2.0 * rand() / RAND_MAX) - 1.0; +} + +double SimpleWavWriter::lowPassFilter(double input, double &prev, double cutoff) +{ + double RC = 1.0 / (2.0 * M_PI * cutoff); + double dt = 1.0 / m_sampleRate; + double alpha = dt / (RC + dt); + double output = prev + alpha * (input - prev); + prev = output; + return output; +} + +double SimpleWavWriter::highPassFilter(double input, double &prevInput, double &prevOutput, double cutoff) +{ + double RC = 1.0 / (2.0 * M_PI * cutoff); + double dt = 1.0 / m_sampleRate; + double alpha = RC / (RC + dt); + double output = alpha * (prevOutput + input - prevInput); + prevInput = input; + prevOutput = output; + return output; +} + +double SimpleWavWriter::noteToFrequency(int note) +{ + return 440.0 * pow(2.0, (note - 69) / 12.0); +} + +int SimpleWavWriter::frequencyToNote(double frequency) +{ + return static_cast(69 + 12 * log2(frequency / 440.0)); +} + +QString SimpleWavWriter::noteNumberToName(int note) +{ + static const QString noteNames[] = { + "C", "CS", "D", "DS", "E", "F", "FS", "G", "GS", "A", "AS", "B" + }; + + int octave = note / 12; + int noteIndex = note % 12; + + QString name = noteNames[noteIndex]; + + // Add octave designation for Pently format + if (octave >= 5) { + name += "HH"; // High high + } else if (octave == 4) { + name += "H"; // High + } else if (octave == 3) { + // First octave - no suffix + } else if (octave == 2) { + name += "L"; // Low + } else if (octave <= 1) { + name += "LL"; // Low low + } + + return name; +} + +QString SimpleWavWriter::getDurationSymbol(int durationSamples) +{ + double durationSeconds = static_cast(durationSamples) / m_sampleRate; + + // Convert to note durations for Pently + if (durationSeconds >= 2.0) return "1"; + else if (durationSeconds >= 1.5) return "D2"; + else if (durationSeconds >= 1.0) return "2"; + else if (durationSeconds >= 0.75) return "D4"; + else if (durationSeconds >= 0.5) return "4"; + else if (durationSeconds >= 0.375) return "D8"; + else if (durationSeconds >= 0.25) return "8"; + else if (durationSeconds >= 0.1875) return "D16"; + else if (durationSeconds >= 0.125) return "16"; + else if (durationSeconds >= 0.09375) return "D32"; + else return "32"; +} + +QString SimpleWavWriter::getInstrumentMacroName(int instrument) +{ + // Mapping instruments to Pently macros + static QMap instrumentMap = { + {1, "PLING_2"}, // CrandPno -> PLING_2 + {2, "PLING_4"}, // BritePno -> PLING_4 + {3, "XYLSHORT"}, // Harpsi -> XYLSHORT + {6, "XYLSHORT"}, // Harpsi -> XYLSHORT + {25, "PLING_8"}, // ClassicGt -> PLING_8 + {27, "PLING_8"}, // JazzGtr -> PLING_8 + {28, "BASSGUITAR"}, // FngrBass -> BASSGUITAR + {29, "PLING_4"}, // Ovrdrive -> PLING_4 + {33, "BASSGUITAR"}, // FngrBass -> BASSGUITAR + {37, "PLING_4"}, // Ovrdrive -> PLING_4 + {38, "PLING_4"}, // DstGtr -> PLING_4 + {39, "BASSGUITAR"}, // FngrBass -> BASSGUITAR + {40, "BASSGUITAR"}, // SlapBas -> BASSGUITAR + {48, "HORNBLAT"}, // String -> HORNBLAT + {49, "HORNBLAT"}, // SlowStr -> HORNBLAT + {81, "BASSCLAR"}, // LeadSx -> BASSCLAR + {89, "PLING_8"}, // SoftPad -> PLING_8 + {95, "XYLSHORT"}, // Bright -> XYLSHORT + {96, "XYLSHORT"}, // Bright -> XYLSHORT + {100, "XYLSHORT"} // Bright -> XYLSHORT + }; + + return instrumentMap.value(instrument, "PLING_2"); +} + +WaveformType SimpleWavWriter::getWaveformForInstrument(int instrument) +{ + // Determine waveform by instrument type + if (instrument == 1) return WAVEFORM_SINE; // CrandPno - sine + if (instrument == 2) return WAVEFORM_SQUARE; // BritePno - square + if (instrument == 3 || instrument == 6) return WAVEFORM_SQUARE; // Harpsi - square + if (instrument == 25 || instrument == 27) return WAVEFORM_TRIANGLE; // Guitars - triangle + if (instrument >= 28 && instrument <= 40) return WAVEFORM_SAWTOOTH; // Bass - sawtooth + if (instrument == 48 || instrument == 49) return WAVEFORM_SINE; // Strings - sine + if (instrument == 81) return WAVEFORM_TRIANGLE; // Saxophone - triangle + if (instrument == 89) return WAVEFORM_SINE; // SoftPad - sine + if (instrument >= 95 && instrument <= 100) return WAVEFORM_SQUARE; // Bright - square + + return WAVEFORM_SINE; // Default +} + +double SimpleWavWriter::getFilterCutoffForInstrument(int instrument) +{ + // Filter cutoff frequency + if (instrument >= 28 && instrument <= 40) return 400.0; // Bass - low frequencies + if (instrument == 1) return 1000.0; // Piano + if (instrument == 2) return 2000.0; // Bright piano + if (instrument == 3 || instrument == 6) return 1500.0; // Harpsichord + if (instrument == 25 || instrument == 27) return 800.0; // Guitars + if (instrument == 81) return 600.0; // Saxophone + return 1000.0; // Default +} + +double SimpleWavWriter::getAttackForInstrument(int instrument) +{ + // Attack time + if (instrument >= 28 && instrument <= 40) return 0.1; // Bass - slow attack + if (instrument == 1) return 0.05; // Piano + if (instrument == 2) return 0.02; // Bright piano - fast attack + if (instrument == 3 || instrument == 6) return 0.01; // Harpsichord - very fast + if (instrument == 81) return 0.08; // Saxophone + return 0.05; +} + +double SimpleWavWriter::getDecayForInstrument(int instrument) +{ + // Decay time + if (instrument >= 28 && instrument <= 40) return 0.2; // Bass + if (instrument == 1) return 0.1; // Piano + if (instrument == 2) return 0.05; // Bright piano + if (instrument == 3 || instrument == 6) return 0.02; // Harpsichord + return 0.1; +} + +double SimpleWavWriter::getSustainForInstrument(int instrument) +{ + // Sustain level + if (instrument >= 28 && instrument <= 40) return 0.8; // Bass - high sustain + if (instrument == 1) return 0.7; // Piano + if (instrument == 2) return 0.6; // Bright piano + if (instrument == 3 || instrument == 6) return 0.5; // Harpsichord - fast decay + if (instrument == 81) return 0.9; // Saxophone - long sustain + return 0.7; +} + +double SimpleWavWriter::getReleaseForInstrument(int instrument) +{ + // Release time + if (instrument >= 28 && instrument <= 40) return 0.3; // Bass - long release + if (instrument == 1) return 0.2; // Piano + if (instrument == 2) return 0.1; // Bright piano + if (instrument == 3 || instrument == 6) return 0.05; // Harpsichord - short + if (instrument == 81) return 0.4; // Saxophone - long + return 0.2; +} + +QString SimpleWavWriter::generatePentlyPattern(int track, int patternIndex) +{ + // Group events by time to create pattern + QVector> groups = groupEventsByTime(track, 1.0); + + if (patternIndex >= groups.size()) { + return QString(); + } + + QString patternData; + const QVector& events = groups[patternIndex]; + + // Add notes to pattern + for (const auto& event : events) { + if (!event.isPause) { + QString noteName = noteNumberToName(event.note); + QString duration = getDurationSymbol(event.duration); + patternData += QString(" .byt N_%1|D_%2\n").arg(noteName).arg(duration); + } else { + // Pause + QString duration = getDurationSymbol(event.duration); + patternData += QString(" .byt REST|D_%1\n").arg(duration); + } + } + + return patternData; +} + +QString SimpleWavWriter::generatePentlySong() +{ + QString songData; + + songData += "PSDAT_composition:\n"; + songData += " setTempo 300\n\n"; + + // For each track add patterns + int patternCounter = 0; + for (int track = 0; track < MAX_TRACKS; track++) { + if (m_tracks[track].events.isEmpty()) continue; + + QVector> groups = groupEventsByTime(track, 1.0); + QString instrumentName = getInstrumentMacroName(m_tracks[track].instrument); + + for (int i = 0; i < groups.size(); i++) { + songData += QString(" playPat %1, %2, 0, %3\n") + .arg(track) + .arg(patternCounter) + .arg(instrumentName); + patternCounter++; + } + + if (track < MAX_TRACKS - 1 && !m_tracks[track + 1].events.isEmpty()) { + songData += " waitRows 16\n"; + } + } + + songData += "\n waitRows 32\n"; + songData += " fine\n"; + + return songData; +} + +QVector> SimpleWavWriter::groupEventsByTime(int track, double timeThreshold) +{ + QVector> groups; + + if (track < 0 || track >= MAX_TRACKS || m_tracks[track].events.isEmpty()) { + return groups; + } + + QVector currentGroup; + double lastTime = -timeThreshold * 2; // So first event always starts new group + + for (const auto& event : m_tracks[track].events) { + if (event.time - lastTime > timeThreshold && !currentGroup.isEmpty()) { + groups.append(currentGroup); + currentGroup.clear(); + } + + currentGroup.append(event); + lastTime = event.time; + } + + if (!currentGroup.isEmpty()) { + groups.append(currentGroup); + } + + return groups; +} + +QString SimpleWavWriter::getNoteCommand(const WavEvent &event, bool includeInstrument) +{ + if (event.isPause) { + QString duration = getDurationSymbol(event.duration); + return QString("REST|D_%1").arg(duration); + } + + QString noteName = noteNumberToName(event.note); + QString duration = getDurationSymbol(event.duration); + + if (includeInstrument) { + QString instrumentName = getInstrumentMacroName(event.instrument); + return QString("INSTRUMENT, %1, N_%2|D_%3").arg(instrumentName).arg(noteName).arg(duration); + } else { + return QString("N_%1|D_%2").arg(noteName).arg(duration); + } +} + +bool SimpleWavWriter::decodeWavData(const QByteArray &wavData, QVector &samples, int &sampleRate) +{ + // Simplified WAV decoding (only 16-bit mono) + if (wavData.size() < 44) return false; // Minimum WAV header size + + // Check RIFF header + if (wavData.mid(0, 4) != "RIFF") return false; + if (wavData.mid(8, 4) != "WAVE") return false; + + // Find fmt chunk + int offset = 12; + while (offset < wavData.size() - 8) { + QString chunkId = QString::fromLatin1(wavData.mid(offset, 4)); + int chunkSize = *(int*)(wavData.constData() + offset + 4); + + if (chunkId == "fmt ") { + // Read parameters + int audioFormat = *(short*)(wavData.constData() + offset + 8); + if (audioFormat != 1) return false; // Only PCM + + int channels = *(short*)(wavData.constData() + offset + 10); + sampleRate = *(int*)(wavData.constData() + offset + 12); + int bitsPerSample = *(short*)(wavData.constData() + offset + 22); + + if (channels != 1 || bitsPerSample != 16) { + qDebug() << "Only 16-bit mono WAV files are supported"; + return false; + } + } else if (chunkId == "data") { + // Read audio data + int dataSize = chunkSize; + int dataOffset = offset + 8; + + if (dataOffset + dataSize > wavData.size()) { + return false; + } + + samples.resize(dataSize / 2); // 16-bit = 2 bytes per sample + + const char* data = wavData.constData() + dataOffset; + for (int i = 0; i < samples.size(); i++) { + samples[i] = *(int16_t*)(data + i * 2); + } + + return true; + } + + offset += 8 + chunkSize; + } + + return false; +} + +bool SimpleWavWriter::loadWavFile(const QString &filename, QVector &samples, int &sampleRate) +{ + QFile file(filename); + if (!file.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open WAV file:" << filename; + return false; + } + + QByteArray wavData = file.readAll(); + file.close(); + + return decodeWavData(wavData, samples, sampleRate); +} + +short SimpleWavWriter::generateWaveform(double time, double frequency, double amplitude, int instrument) +{ + double phase = fmod(time * frequency, 1.0); + double value = 0.0; + + WaveformType waveform = getWaveformForInstrument(instrument); + + switch (waveform) { + case WAVEFORM_SINE: + value = sineWave(phase); + break; + case WAVEFORM_SQUARE: + value = squareWave(phase); + // Add some harmonics for square wave + for (int i = 3; i <= 9; i += 2) { + value += 0.7 / i * sin(2.0 * M_PI * frequency * i * time); + } + break; + case WAVEFORM_SAWTOOTH: + value = sawtoothWave(phase); + // Add harmonics for sawtooth wave + for (int i = 2; i <= 10; i++) { + value += 0.5 / i * sin(2.0 * M_PI * frequency * i * time); + } + break; + case WAVEFORM_TRIANGLE: + value = triangleWave(phase); + // Add odd harmonics for triangle wave + for (int i = 3; i <= 9; i += 2) { + value += 0.8 / (i * i) * sin(2.0 * M_PI * frequency * i * time); + } + break; + case WAVEFORM_NOISE: + value = noiseWave(); + break; + } + + // Apply filter based on instrument + static double prevLP = 0; + static double prevHPInput = 0; + static double prevHPOutput = 0; + + double cutoff = getFilterCutoffForInstrument(instrument); + + if (instrument >= 28 && instrument <= 40) { + // Bass - strong low-pass filter + value = lowPassFilter(value, prevLP, cutoff); + } else if (instrument == 3 || instrument == 6) { + // Harpsichord - some high-pass for brightness + value = highPassFilter(value, prevHPInput, prevHPOutput, 500.0); + } + + // Limit value to avoid clipping + if (value > 1.0) value = 1.0; + if (value < -1.0) value = -1.0; + + return static_cast(value * amplitude * 32767.0); +} + +void SimpleWavWriter::clear() +{ + clearAllTracks(); + m_isRecording = false; + m_isPaused = false; +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/simplewavwriter.h b/Yamitracker-reoload/Yamitracker4/Yamitracker/simplewavwriter.h new file mode 100644 index 0000000..8b22c5f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/simplewavwriter.h @@ -0,0 +1,180 @@ +#ifndef SIMPLEWAVWRITER_H +#define SIMPLEWAVWRITER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct WavEvent { + int track; + double time; + int note; + int velocity; + int duration; // в сэмплах + int instrument; // тип инструмента + bool isPause; // флаг паузы +}; + +// Типы волновых форм +enum WaveformType { + WAVEFORM_SINE = 0, // Синус (чистый тон) + WAVEFORM_SQUARE = 1, // Прямоугольная (клавесин, пианино) + WAVEFORM_SAWTOOTH = 2, // Пилообразная (струнные, бас) + WAVEFORM_TRIANGLE = 3, // Треугольная (флейта, орган) + WAVEFORM_NOISE = 4 // Шум (перкуссия) +}; + +struct TrackInfo { + QString name; + int instrument; + double volume; + bool muted; + QVector events; + QByteArray audioData; // Кэшированные аудиоданные для быстрого воспроизведения +}; + +class SimpleWavWriter : public QObject +{ + Q_OBJECT + +public: + static const int MAX_TRACKS = 7; // 7 дорожек (для 7 каналов Pently) + static const int MAX_OCTAVES = 5; // Октавы: от C2 до C6 + + SimpleWavWriter(QObject *parent = nullptr); + ~SimpleWavWriter(); + + bool startRecording(int sampleRate = 16000); + bool pauseRecording(); + bool resumeRecording(); + bool stopRecording(); + bool saveToFile(const QString &filename); + bool saveToMusicFile(const QString &filename); // Сохранить как музыкальный файл + + // Методы для работы с дорожками + void addNote(int track, double time, int note, int velocity, double duration, int instrument = 0); + void addSilence(int track, double duration); + void addPause(int track, double duration); + void clearTrack(int track); + void clearAllTracks(); + void mergeTrack(int fromTrack, int toTrack); + void copyTrack(int fromTrack, int toTrack); + void setTrackName(int track, const QString &name); + void setTrackInstrument(int track, int instrument); + void muteTrack(int track, bool muted); + void setTrackVolume(int track, double volume); + + // Воспроизведение + QByteArray getTrackAudioData(int track, bool preview = false); + QByteArray getAllTracksAudioData(); + QByteArray getMergedAudioData(); + + // Загрузка из WAV + bool loadWavToTrack(const QString &filename, int track); + + // Методы для получения информации + int getEventCount(int track) const; + QString getTrackName(int track) const; + int getTrackInstrument(int track) const; + double getTrackVolume(int track) const; + bool isTrackMuted(int track) const; + QVector getTrackEvents(int track) const; + double getTotalDuration() const; + double getTrackDuration(int track) const; + + // Устаревшие методы (для обратной совместимости) + void addNote(double time, int note, int velocity, double duration, int instrument = 0) { + addNote(0, time, note, velocity, duration, instrument); + } + void addSilence(double duration) { + addSilence(0, duration); + } + + bool isRecording() const { return m_isRecording; } + bool isPaused() const { return m_isPaused; } + void clear(); + + void setSampleRate(int rate) { m_sampleRate = rate; } + int sampleRate() const { return m_sampleRate; } + + // Настройки инструментов + void setBassVolumeMultiplier(double multiplier) { m_bassVolumeMultiplier = multiplier; } + void setPlaybackSpeed(double speed) { m_playbackSpeed = speed; } + void setMasterVolume(double volume) { m_masterVolume = volume; } + + // Синтез для предпрослушивания + QByteArray synthesizeTrackPreview(int track); + +signals: + void trackUpdated(int track); + void audioDataReady(int track, const QByteArray &data); + +private: + QVector m_tracks; // Дорожки для записи + bool m_isRecording; + bool m_isPaused; + double m_startTime; + double m_pauseTime; + int m_sampleRate; + double m_bassVolumeMultiplier; + double m_playbackSpeed; + double m_masterVolume; + + void writeWavHeader(QDataStream &stream, quint32 dataSize); + QByteArray generateTrackAudio(int track, bool includeEffects = true); + void generateAllTracksAudio(); + + // Генерация звука с разными волновыми формами + short generateWaveform(double time, double frequency, double amplitude, int instrument); + + // Разные волновые формы + double sineWave(double phase); + double squareWave(double phase); + double sawtoothWave(double phase); + double triangleWave(double phase); + double noiseWave(); + + // Фильтры + double lowPassFilter(double input, double &prev, double cutoff); + double highPassFilter(double input, double &prevInput, double &prevOutput, double cutoff); + + double noteToFrequency(int note); + int frequencyToNote(double frequency); + + // Вспомогательные методы для сохранения музыки + QString noteNumberToName(int note); + QString getDurationSymbol(int durationSamples); + QString getInstrumentMacroName(int instrument); + + // Получение параметров инструмента + WaveformType getWaveformForInstrument(int instrument); + double getFilterCutoffForInstrument(int instrument); + double getAttackForInstrument(int instrument); + double getDecayForInstrument(int instrument); + double getSustainForInstrument(int instrument); + double getReleaseForInstrument(int instrument); + + // Генераторы огибающей + double adsrEnvelope(double noteTime, double noteDuration, + double attack, double decay, + double sustain, double release); + + // Методы для формата Pently + QString generatePentlyPattern(int track, int patternIndex); + QString generatePentlySong(); + QVector> groupEventsByTime(int track, double timeThreshold = 0.25); + QString getNoteCommand(const WavEvent &event, bool includeInstrument = false); + + // Обработка WAV файлов + bool decodeWavData(const QByteArray &wavData, QVector &samples, int &sampleRate); + bool loadWavFile(const QString &filename, QVector &samples, int &sampleRate); +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/yamitracker.cpp b/Yamitracker-reoload/Yamitracker4/Yamitracker/yamitracker.cpp new file mode 100644 index 0000000..14fe390 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/yamitracker.cpp @@ -0,0 +1,1581 @@ +#include "yamitracker.h" +#include "ui_yamitracker.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Глобальная переменная для управления громкостью баса +double bassVolumeMultiplier = 2.0; // Увеличение громкости баса в 2 раза + +// Инструменты басового типа для усиления громкости +QSet bassInstruments = { + 28, // FngrBass (Фингер-бас) + 33, // FngrBass (Фингер-бас) - другой тип + 39, // FngrBass (Фингер-бас) - еще тип + 40, // SlapBas (Слэп-бас) + 38, // DstGtr (Дисторшн-гитара) - тоже можно усилить + 29, // Ovrdrive (Овердрайв-гитара) + 37 // Ovrdrive (Овердрайв-гитара) - другой тип +}; + +void SerialReader::run() +{ + while (!shouldStop) { + int fd = open(currentDevice.toUtf8().constData(), O_RDWR | O_NOCTTY); + if (fd < 0) { + emit error(QString("Cannot open %1").arg(currentDevice)); + emit connectionStatusChanged(false); + sleep(2); + continue; + } + + emit connectionStatusChanged(true); + + QString manufacturer = "Unknown"; + QString model = "Unknown"; + + if (currentDevice.contains("yamaha", Qt::CaseInsensitive) || + currentDevice.contains("psr", Qt::CaseInsensitive)) { + manufacturer = "Yamaha"; + model = "PSR Series"; + } else if (currentDevice.contains("dmmidi")) { + manufacturer = "Yamaha"; + model = "PSR-E333 (Direct MIDI)"; + } + + emit deviceInfoReceived(manufacturer, model); + + struct termios tty; + tcgetattr(fd, &tty); + cfsetospeed(&tty, B115200); + cfsetispeed(&tty, B115200); + tty.c_cflag |= (CLOCAL | CREAD | CS8); + tty.c_cc[VMIN] = 1; + tcsetattr(fd, TCSANOW, &tty); + + unsigned char byte; + while (!shouldStop && read(fd, &byte, 1) > 0) { + if (byte == 0xF8 || byte == 0xFE) { + continue; + } + + if (byte & 0x80) { + if ((byte & 0xF0) == 0x90) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + + if (velocity == 0) + emit noteOffReceived(hexNote); + else + emit noteOnReceived(hexNote, velocity); + } + } + else if ((byte & 0xF0) == 0x80) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + emit noteOffReceived(hexNote); + } + } + } + } + + close(fd); + emit connectionStatusChanged(false); + + if (!shouldStop) { + emit error(QString("Connection lost to %1. Attempting to reconnect...").arg(currentDevice)); + sleep(2); + } + } +} + +Yamitracker::Yamitracker(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::Yamitracker) + , serialReader(new SerialReader(this)) + , reconnectTimer(new QTimer(this)) + , isConnected(false) + , wavWriter(new SimpleWavWriter(this)) + , recordingStartTime(0) + , brrConverter(new BrrConverter(this)) + , audioPlayerProcess(new QProcess(this)) + , playbackSpeedSlider(nullptr) + , bassVolumeSlider(nullptr) + , speedLabel(nullptr) + , volumeLabel(nullptr) + , audioOutput(nullptr) + , audioBuffer(nullptr) + , playbackTimer(new QTimer(this)) + , isPlayingBack(false) + , currentPlaybackTrack(-1) + , currentTrack(0) +{ + ui->setupUi(this); + + deviceLabel = ui->deviceLabel; + refreshDevicesButton = ui->refreshDevicesButton; + midiFilesList = ui->midiFilesList; + instrumentComboBox = ui->instrumentComboBox; + trackComboBox = ui->trackComboBox; + + // Ищем элементы в UI + playbackSpeedSlider = findChild("playbackSpeedSlider"); + bassVolumeSlider = findChild("bassVolumeSlider"); + speedLabel = findChild("speedLabel"); + volumeLabel = findChild("volumeLabel"); + + // Настраиваем слайдеры, если они найдены + if (playbackSpeedSlider) { + playbackSpeedSlider->setRange(50, 200); // 50% - 200% + playbackSpeedSlider->setValue(100); // 100% по умолчанию + playbackSpeedSlider->setTickInterval(10); + playbackSpeedSlider->setTickPosition(QSlider::TicksBelow); + } + + if (bassVolumeSlider) { + bassVolumeSlider->setRange(100, 400); // 100% - 400% + bassVolumeSlider->setValue(200); // 200% по умолчанию + bassVolumeSlider->setTickInterval(50); + bassVolumeSlider->setTickPosition(QSlider::TicksBelow); + } + + // Инициализируем дорожки + initializeTracks(); + initializeTrackControls(); + + // Обновляем метки + updateSpeedLabel(); + updateVolumeLabel(); + updateTrackInfo(); + + // Подключаем сигналы + if (playbackSpeedSlider) { + connect(playbackSpeedSlider, &QSlider::valueChanged, this, &Yamitracker::onPlaybackSpeedChanged); + } + if (bassVolumeSlider) { + connect(bassVolumeSlider, &QSlider::valueChanged, this, &Yamitracker::onBassVolumeChanged); + } + + // Заполняем комбобокс инструментами + QList instrumentIds = instruments.keys(); + std::sort(instrumentIds.begin(), instrumentIds.end()); + for (int id : instrumentIds) { + QString instrumentName = instruments[id]; + // Добавляем пометку для басовых инструментов + if (bassInstruments.contains(id)) { + instrumentName += " [БАС - усилено]"; + } + instrumentComboBox->addItem(QString("%1: %2").arg(id).arg(instrumentName), id); + } + + initializeKeyButtons(); + initializeDeviceDetection(); + + // Подключаем сигналы серийного порта + connect(serialReader, &SerialReader::noteOnReceived, this, &Yamitracker::onNoteOnReceived); + connect(serialReader, &SerialReader::noteOffReceived, this, &Yamitracker::onNoteOffReceived); + connect(serialReader, &SerialReader::error, this, &Yamitracker::onError); + connect(serialReader, &SerialReader::connectionStatusChanged, this, &Yamitracker::onConnectionStatusChanged); + connect(serialReader, &SerialReader::deviceInfoReceived, this, &Yamitracker::onDeviceInfoReceived); + + // Подключаем кнопки управления записью + connect(ui->playButton, &QPushButton::clicked, this, &Yamitracker::onPlayClicked); + connect(ui->pauseButton, &QPushButton::clicked, this, &Yamitracker::onPauseClicked); + connect(ui->stopButton, &QPushButton::clicked, this, &Yamitracker::onStopClicked); + connect(ui->convertButton, &QPushButton::clicked, this, &Yamitracker::onConvertToBrrClicked); + connect(refreshDevicesButton, &QPushButton::clicked, this, &Yamitracker::onRefreshDevicesClicked); + connect(ui->loadMidiButton, &QPushButton::clicked, this, &Yamitracker::onLoadMidiFileClicked); + connect(ui->selectFileButton, &QPushButton::clicked, this, &Yamitracker::onSelectFileForConversion); + connect(ui->playFileButton, &QPushButton::clicked, this, &Yamitracker::onSelectFileForPlayback); + connect(ui->saveRecordingButton, &QPushButton::clicked, this, &Yamitracker::onSaveRecordingClicked); + connect(ui->playMidiButton, &QPushButton::clicked, this, &Yamitracker::onPlayMidiFileClicked); + connect(ui->recordFromMidiButton, &QPushButton::clicked, this, &Yamitracker::onRecordFromMidiFile); + connect(midiFilesList, &QListWidget::itemSelectionChanged, this, &Yamitracker::onSelectedMidiFileChanged); + connect(ui->saveMusicButton, &QPushButton::clicked, this, &Yamitracker::onSaveMusicFileClicked); + connect(ui->addTrackButton, &QPushButton::clicked, this, &Yamitracker::onAddTrackClicked); + connect(ui->removeTrackButton, &QPushButton::clicked, this, &Yamitracker::onRemoveTrackClicked); + connect(ui->clearTrackButton, &QPushButton::clicked, this, &Yamitracker::onClearTrackClicked); + connect(trackComboBox, QOverload::of(&QComboBox::currentIndexChanged), this, &Yamitracker::onCurrentTrackChanged); + + // Подключаем новые кнопки + connect(ui->playTrackButton, &QPushButton::clicked, this, &Yamitracker::onPlayTrackClicked); + connect(ui->playAllButton, &QPushButton::clicked, this, &Yamitracker::onPlayAllTracksClicked); + connect(ui->stopPlaybackButton, &QPushButton::clicked, this, &Yamitracker::onStopPlaybackClicked); + connect(ui->loadWavButton, &QPushButton::clicked, this, &Yamitracker::onLoadWavToTrackClicked); + connect(ui->copyTrackButton, &QPushButton::clicked, this, &Yamitracker::onCopyTrackClicked); + connect(ui->mergeTrackButton, &QPushButton::clicked, this, &Yamitracker::onMergeTracksClicked); + + connect(reconnectTimer, &QTimer::timeout, this, &Yamitracker::attemptReconnect); + reconnectTimer->start(5000); + + connect(audioPlayerProcess, QOverload::of(&QProcess::finished), + this, [this](int exitCode, QProcess::ExitStatus exitStatus) { + Q_UNUSED(exitCode); + if (exitStatus == QProcess::NormalExit) { + ui->statusLabel->setText("Воспроизведение завершено"); + } + }); + + // Подключаем таймер воспроизведения + connect(playbackTimer, &QTimer::timeout, this, &Yamitracker::onPlaybackFinished); + + // Подключаем сигналы от wavWriter + connect(wavWriter, &SimpleWavWriter::trackUpdated, this, [this](int track) { + if (track == currentTrack) { + updateTrackInfo(); + } + }); + + // ОБНОВЛЕННЫЙ СТИЛЬ - черный текст на белом фоне для панели управления дорожками + // Остальные элементы остаются с белым текстом на темном фоне + setStyleSheet( + "QMainWindow { background-color: #2b2b2b; }" + "QLabel { color: #ffffff; font-size: 14px; font-weight: bold; }" + "QGroupBox { color: #ffffff; font-weight: bold; border: 2px solid #555; border-radius: 5px; margin-top: 10px; }" + "QGroupBox::title { color: #ffffff; subcontrol-origin: margin; left: 10px; padding: 0 5px 0 5px; }" + "QPushButton { background-color: #4a4a4a; color: #ffffff; border: 1px solid #555; border-radius: 3px; padding: 5px; font-weight: bold; }" + "QPushButton:hover { background-color: #5a5a5a; }" + "QPushButton:pressed { background-color: #3a3a3a; }" + "QPushButton[whiteKey=true] { background-color: white; color: black; border: 1px solid #ccc; font-size: 8pt; }" + "QPushButton[whiteKey=true]:pressed { background-color: #ff4444; color: white; }" + "QPushButton[blackKey=true] { background-color: black; color: white; font-size: 7pt; }" + "QPushButton[blackKey=true]:pressed { background-color: #ff4444; }" + "QProgressBar { border: 1px solid #555; background: #333; color: white; }" + "QProgressBar::chunk { background: #4CAF50; }" + "QListWidget { background-color: #333; color: #ffffff; border: 1px solid #555; selection-background-color: #555; }" + "QComboBox { background-color: #333; color: #ffffff; border: 1px solid #555; padding: 5px; }" + "QComboBox QAbstractItemView { background-color: #333; color: #ffffff; selection-background-color: #555; }" + "QComboBox::drop-down { border: none; }" + "QComboBox::down-arrow { image: none; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid white; }" + "QSlider::groove:horizontal { border: 1px solid #555; height: 8px; background: #333; margin: 2px 0; }" + "QSlider::handle:horizontal { background: #4CAF50; border: 1px solid #5f5f5f; width: 18px; margin: -2px 0; border-radius: 3px; }" + "QLineEdit { background-color: #ffffff; color: #000000; border: 1px solid #555; padding: 3px; }" // Изменено: белый фон, черный текст + "QCheckBox { color: #ffffff; }" + "QCheckBox::indicator { width: 16px; height: 16px; }" + // Стили для панели управления дорожками + "QScrollArea { background-color: white; }" + "QScrollArea QGroupBox { background-color: white; color: #000000; border: 2px solid #aaa; }" + "QScrollArea QGroupBox::title { color: #000000; }" + "QScrollArea QLabel { color: #000000; }" + "QScrollArea QComboBox { background-color: white; color: #000000; border: 1px solid #aaa; }" + "QScrollArea QComboBox QAbstractItemView { background-color: white; color: #000000; selection-background-color: #ddd; }" + "QScrollArea QPushButton { background-color: #e0e0e0; color: #000000; border: 1px solid #aaa; }" + "QScrollArea QPushButton:hover { background-color: #d0d0d0; }" + "QScrollArea QPushButton:pressed { background-color: #b0b0b0; }" + "QScrollArea QSlider::groove:horizontal { border: 1px solid #aaa; height: 8px; background: #ddd; }" + "QScrollArea QSlider::handle:horizontal { background: #4CAF50; border: 1px solid #5f5f5f; }" + ); + + QTimer::singleShot(1000, this, &Yamitracker::autoDetectAndConnect); + setWindowTitle("Yamaha PSR-E333 Monitor - Multitrack Recording"); + + // Сканируем MIDI файлы при запуске + scanMidiFiles(); + + // Информация о басовых инструментах + qDebug() << "Бас-инструменты усилены в" << bassVolumeMultiplier << "раз"; + qDebug() << "Бас-инструменты: FngrBass(28,33,39), SlapBas(40), Ovrdrive(29,37), DstGtr(38)"; +} + +void Yamitracker::initializeTracks() +{ + trackComboBox->clear(); + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + QString trackName = wavWriter->getTrackName(i); + trackComboBox->addItem(trackName, i); + } + trackComboBox->setCurrentIndex(0); + currentTrack = 0; +} + +void Yamitracker::initializeTrackControls() +{ + // Получаем ScrollArea для управления дорожками + QScrollArea* scrollArea = findChild("scrollArea"); + if (!scrollArea) return; + + QWidget* scrollContent = new QWidget(); + QVBoxLayout* tracksLayout = new QVBoxLayout(scrollContent); + + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + QGroupBox* trackGroup = new QGroupBox(QString("Дорожка %1").arg(i + 1), scrollContent); + trackGroup->setProperty("trackIndex", i); + + QHBoxLayout* trackLayout = new QHBoxLayout(trackGroup); + + // Название дорожки + QLineEdit* nameEdit = new QLineEdit(wavWriter->getTrackName(i), trackGroup); + nameEdit->setProperty("trackIndex", i); + nameEdit->setObjectName(QString("trackNameEdit_%1").arg(i)); + nameEdit->setMaximumWidth(150); + connect(nameEdit, &QLineEdit::textChanged, this, &Yamitracker::onTrackNameChanged); + trackNameEdits.append(nameEdit); + + // Инструмент дорожки + QComboBox* instrumentBox = new QComboBox(trackGroup); + instrumentBox->setProperty("trackIndex", i); + instrumentBox->setObjectName(QString("trackInstrumentBox_%1").arg(i)); + instrumentBox->setMaximumWidth(150); + + QList instrumentIds = instruments.keys(); + std::sort(instrumentIds.begin(), instrumentIds.end()); + for (int id : instrumentIds) { + QString instrumentName = instruments[id]; + if (bassInstruments.contains(id)) { + instrumentName += " [БАС]"; + } + instrumentBox->addItem(instrumentName, id); + } + + // Устанавливаем текущий инструмент + int currentInstrument = wavWriter->getTrackInstrument(i); + int index = instrumentBox->findData(currentInstrument); + if (index >= 0) { + instrumentBox->setCurrentIndex(index); + } + + connect(instrumentBox, QOverload::of(&QComboBox::currentIndexChanged), + this, &Yamitracker::onTrackInstrumentChanged); + trackInstrumentComboBoxes.append(instrumentBox); + + // Громкость + QSlider* volumeSlider = new QSlider(Qt::Horizontal, trackGroup); + volumeSlider->setProperty("trackIndex", i); + volumeSlider->setObjectName(QString("trackVolumeSlider_%1").arg(i)); + volumeSlider->setRange(0, 200); + volumeSlider->setValue(static_cast(wavWriter->getTrackVolume(i) * 100)); + volumeSlider->setMaximumWidth(100); + connect(volumeSlider, &QSlider::valueChanged, this, &Yamitracker::onTrackVolumeChanged); + trackVolumeSliders.append(volumeSlider); + + QLabel* volumeLabel = new QLabel(QString("%1%").arg(volumeSlider->value()), trackGroup); + volumeLabel->setProperty("trackIndex", i); + volumeLabel->setObjectName(QString("trackVolumeLabel_%1").arg(i)); + volumeLabel->setMaximumWidth(40); + + // Кнопка Mute + QPushButton* muteButton = new QPushButton(wavWriter->isTrackMuted(i) ? "🔇" : "🔊", trackGroup); + muteButton->setProperty("trackIndex", i); + muteButton->setObjectName(QString("trackMuteButton_%1").arg(i)); + muteButton->setMaximumWidth(40); + connect(muteButton, &QPushButton::clicked, this, &Yamitracker::onMuteTrackClicked); + trackMuteButtons.append(muteButton); + + // Кнопка Solo + QPushButton* soloButton = new QPushButton("🎧", trackGroup); + soloButton->setProperty("trackIndex", i); + soloButton->setObjectName(QString("trackSoloButton_%1").arg(i)); + soloButton->setMaximumWidth(40); + connect(soloButton, &QPushButton::clicked, this, &Yamitracker::onSoloTrackClicked); + trackSoloButtons.append(soloButton); + + // Информация о дорожке + QLabel* infoLabel = new QLabel(QString("%1 нот").arg(wavWriter->getEventCount(i)), trackGroup); + infoLabel->setProperty("trackIndex", i); + infoLabel->setObjectName(QString("trackInfoLabel_%1").arg(i)); + + // Добавляем элементы в layout + trackLayout->addWidget(new QLabel("Название:", trackGroup)); + trackLayout->addWidget(nameEdit); + trackLayout->addWidget(new QLabel("Инструмент:", trackGroup)); + trackLayout->addWidget(instrumentBox); + trackLayout->addWidget(new QLabel("Громкость:", trackGroup)); + trackLayout->addWidget(volumeSlider); + trackLayout->addWidget(volumeLabel); + trackLayout->addWidget(muteButton); + trackLayout->addWidget(soloButton); + trackLayout->addWidget(infoLabel); + + tracksLayout->addWidget(trackGroup); + } + + // Добавляем растягивающийся спейсер в конец + tracksLayout->addStretch(); + + scrollArea->setWidget(scrollContent); + scrollArea->setWidgetResizable(true); +} + +void Yamitracker::updateTrackControls() +{ + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i < trackNameEdits.size()) { + trackNameEdits[i]->setText(wavWriter->getTrackName(i)); + } + + if (i < trackInstrumentComboBoxes.size()) { + int currentInstrument = wavWriter->getTrackInstrument(i); + int index = trackInstrumentComboBoxes[i]->findData(currentInstrument); + if (index >= 0) { + trackInstrumentComboBoxes[i]->setCurrentIndex(index); + } + } + + if (i < trackVolumeSliders.size()) { + trackVolumeSliders[i]->setValue(static_cast(wavWriter->getTrackVolume(i) * 100)); + } + + if (i < trackMuteButtons.size()) { + trackMuteButtons[i]->setText(wavWriter->isTrackMuted(i) ? "🔇" : "🔊"); + } + + if (i < trackSoloButtons.size()) { + // Обновляем текст кнопки solo при необходимости + } + + // Обновляем информацию о дорожке + QLabel* infoLabel = findChild(QString("trackInfoLabel_%1").arg(i)); + if (infoLabel) { + infoLabel->setText(QString("%1 нот").arg(wavWriter->getEventCount(i))); + } + + // Обновляем метку громкости + QLabel* volumeLabel = findChild(QString("trackVolumeLabel_%1").arg(i)); + if (volumeLabel) { + volumeLabel->setText(QString("%1%").arg(trackVolumeSliders[i]->value())); + } + } +} + +void Yamitracker::updateTrackInfo() +{ + int eventCount = wavWriter->getEventCount(currentTrack); + QString trackName = wavWriter->getTrackName(currentTrack); + ui->trackInfoLabel->setText(QString("%1: %2 нот").arg(trackName).arg(eventCount)); +} + +void Yamitracker::onCurrentTrackChanged(int index) +{ + currentTrack = trackComboBox->itemData(index).toInt(); + updateTrackInfo(); +} + +void Yamitracker::onPlaybackSpeedChanged(int value) +{ + double speedPercent = value / 100.0; + wavWriter->setPlaybackSpeed(speedPercent); + updateSpeedLabel(); +} + +void Yamitracker::onBassVolumeChanged(int value) +{ + double volumeMultiplier = value / 100.0; + wavWriter->setBassVolumeMultiplier(volumeMultiplier); + bassVolumeMultiplier = volumeMultiplier; + updateVolumeLabel(); +} + +void Yamitracker::updateSpeedLabel() +{ + if (speedLabel && playbackSpeedSlider) { + int speed = playbackSpeedSlider->value(); + speedLabel->setText(QString("Скорость: %1%").arg(speed)); + } +} + +void Yamitracker::updateVolumeLabel() +{ + if (volumeLabel && bassVolumeSlider) { + int volume = bassVolumeSlider->value(); + volumeLabel->setText(QString("Бас: %1%").arg(volume)); + } +} + +void Yamitracker::onSaveMusicFileClicked() +{ + QString defaultName = "music_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".s"; + QString filename = QFileDialog::getSaveFileName(this, "Сохранить музыкальный файл", defaultName, "ASM файлы (*.s);;Все файлы (*)"); + + if (!filename.isEmpty()) { + saveMusicFile(filename); + } +} + +void Yamitracker::saveMusicFile(const QString &filename) +{ + if (wavWriter->saveToMusicFile(filename)) { + ui->statusLabel->setText(QString("Музыкальный файл сохранен: %1").arg(filename)); + + // Показываем информацию о сохраненном файле + QFileInfo fileInfo(filename); + QString info = QString("Музыкальный файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Pently-style assembler") + .arg(filename) + .arg(fileInfo.size()); + QMessageBox::information(this, "Файл сохранен", info); + + // Открываем файл для просмотра + QDesktopServices::openUrl(QUrl::fromLocalFile(filename)); + } else { + ui->statusLabel->setText("Ошибка сохранения музыкального файла"); + QMessageBox::warning(this, "Ошибка", "Не удалось сохранить музыкальный файл"); + } +} + +void Yamitracker::onAddTrackClicked() +{ + // Создаем новую дорожку + int newTrack = -1; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (wavWriter->getEventCount(i) == 0 && wavWriter->getTrackName(i).startsWith("Дорожка")) { + newTrack = i; + break; + } + } + + if (newTrack == -1) { + QMessageBox::warning(this, "Ошибка", "Достигнуто максимальное количество дорожек"); + return; + } + + // Устанавливаем название новой дорожки + QString newName = QString("Дорожка %1").arg(newTrack + 1); + wavWriter->setTrackName(newTrack, newName); + + // Переключаемся на новую дорожку + trackComboBox->setCurrentIndex(newTrack); + currentTrack = newTrack; + + ui->statusLabel->setText(QString("Создана новая дорожка %1").arg(newTrack + 1)); + updateTrackControls(); + updateTrackInfo(); +} + +void Yamitracker::onRemoveTrackClicked() +{ + if (wavWriter->getEventCount(currentTrack) == 0) { + QMessageBox::warning(this, "Ошибка", "Дорожка уже пуста"); + return; + } + + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Удаление дорожки", + QString("Вы уверены, что хотите удалить дорожку %1?\nВсе данные будут потеряны.") + .arg(currentTrack + 1), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + wavWriter->clearTrack(currentTrack); + ui->statusLabel->setText(QString("Дорожка %1 очищена").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onClearTrackClicked() +{ + if (wavWriter->getEventCount(currentTrack) == 0) { + ui->statusLabel->setText("Дорожка уже пуста"); + return; + } + + wavWriter->clearTrack(currentTrack); + ui->statusLabel->setText(QString("Дорожка %1 очищена").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); +} + +void Yamitracker::onPlayTrackClicked() +{ + playTrack(currentTrack); +} + +void Yamitracker::onPlayAllTracksClicked() +{ + playAllTracks(); +} + +void Yamitracker::onStopPlaybackClicked() +{ + stopPlayback(); +} + +void Yamitracker::playTrack(int track) +{ + if (isPlayingBack) { + stopPlayback(); + } + + QByteArray audioData = wavWriter->getTrackAudioData(track, true); + if (audioData.isEmpty()) { + ui->statusLabel->setText(QString("Дорожка %1 пуста").arg(track + 1)); + return; + } + + // Настраиваем аудиовыход + QAudioFormat format; + format.setSampleRate(16000); + format.setChannelCount(1); + format.setSampleSize(16); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(format)) { + ui->statusLabel->setText("Аудиоформат не поддерживается"); + return; + } + + if (audioOutput) { + delete audioOutput; + } + if (audioBuffer) { + delete audioBuffer; + } + + audioOutput = new QAudioOutput(format, this); + audioBuffer = new QBuffer(this); + audioBuffer->setData(audioData); + audioBuffer->open(QIODevice::ReadOnly); + + connect(audioOutput, &QAudioOutput::stateChanged, this, &Yamitracker::handleAudioStateChanged); + + currentPlaybackTrack = track; + isPlayingBack = true; + ui->statusLabel->setText(QString("Воспроизведение дорожки %1...").arg(track + 1)); + + audioOutput->start(audioBuffer); + + // Запускаем таймер для отслеживания завершения воспроизведения + playbackTimer->start(100); +} + +void Yamitracker::playAllTracks() +{ + if (isPlayingBack) { + stopPlayback(); + } + + QByteArray audioData = wavWriter->getAllTracksAudioData(); + if (audioData.isEmpty()) { + ui->statusLabel->setText("Нет данных для воспроизведения"); + return; + } + + // Настраиваем аудиовыход + QAudioFormat format; + format.setSampleRate(16000); + format.setChannelCount(1); + format.setSampleSize(16); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(format)) { + ui->statusLabel->setText("Аудиоформат не поддерживается"); + return; + } + + if (audioOutput) { + delete audioOutput; + } + if (audioBuffer) { + delete audioBuffer; + } + + audioOutput = new QAudioOutput(format, this); + audioBuffer = new QBuffer(this); + audioBuffer->setData(audioData); + audioBuffer->open(QIODevice::ReadOnly); + + connect(audioOutput, &QAudioOutput::stateChanged, this, &Yamitracker::handleAudioStateChanged); + + currentPlaybackTrack = -1; // Все дорожки + isPlayingBack = true; + ui->statusLabel->setText("Воспроизведение всех дорожек..."); + + audioOutput->start(audioBuffer); + + // Запускаем таймер для отслеживания завершения воспроизведения + playbackTimer->start(100); +} + +void Yamitracker::stopPlayback() +{ + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + audioOutput = nullptr; + } + + if (audioBuffer) { + audioBuffer->close(); + delete audioBuffer; + audioBuffer = nullptr; + } + + isPlayingBack = false; + currentPlaybackTrack = -1; + ui->statusLabel->setText("Воспроизведение остановлено"); + playbackTimer->stop(); +} + +void Yamitracker::handleAudioStateChanged(QAudio::State state) +{ + switch (state) { + case QAudio::IdleState: + // Воспроизведение завершено + onPlaybackFinished(); + break; + case QAudio::StoppedState: + if (audioOutput && audioOutput->error() != QAudio::NoError) { + ui->statusLabel->setText("Ошибка воспроизведения"); + } + break; + default: + break; + } +} + +void Yamitracker::onPlaybackFinished() +{ + isPlayingBack = false; + currentPlaybackTrack = -1; + + if (currentPlaybackTrack >= 0) { + ui->statusLabel->setText(QString("Воспроизведение дорожки %1 завершено").arg(currentPlaybackTrack + 1)); + } else { + ui->statusLabel->setText("Воспроизведение завершено"); + } + + playbackTimer->stop(); +} + +void Yamitracker::onLoadWavToTrackClicked() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + if (wavWriter->loadWavToTrack(filename, currentTrack)) { + ui->statusLabel->setText(QString("WAV файл загружен в дорожку %1").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); + } else { + ui->statusLabel->setText("Ошибка загрузки WAV файла"); + } + } +} + +void Yamitracker::onCopyTrackClicked() +{ + bool ok; + int targetTrack = QInputDialog::getInt(this, "Копирование дорожки", + "Введите номер целевой дорожки (1-16):", + currentTrack + 1, 1, 16, 1, &ok); + + if (ok && targetTrack - 1 != currentTrack) { + wavWriter->copyTrack(currentTrack, targetTrack - 1); + ui->statusLabel->setText(QString("Дорожка %1 скопирована в дорожку %2") + .arg(currentTrack + 1).arg(targetTrack)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onMergeTracksClicked() +{ + bool ok; + int targetTrack = QInputDialog::getInt(this, "Объединение дорожек", + "Введите номер дорожки для объединения (1-16):", + currentTrack + 1, 1, 16, 1, &ok); + + if (ok && targetTrack - 1 != currentTrack) { + wavWriter->mergeTrack(currentTrack, targetTrack - 1); + ui->statusLabel->setText(QString("Дорожка %1 объединена с дорожкой %2") + .arg(currentTrack + 1).arg(targetTrack)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onMuteTrackClicked() +{ + QPushButton* button = qobject_cast(sender()); + if (!button) return; + + int track = button->property("trackIndex").toInt(); + bool muted = wavWriter->isTrackMuted(track); + wavWriter->muteTrack(track, !muted); + + button->setText(!muted ? "🔇" : "🔊"); + ui->statusLabel->setText(QString("Дорожка %1 %2") + .arg(track + 1) + .arg(!muted ? "заглушена" : "включена")); +} + +void Yamitracker::onSoloTrackClicked() +{ + QPushButton* button = qobject_cast(sender()); + if (!button) return; + + int soloTrack = button->property("trackIndex").toInt(); + + // Выключаем все дорожки кроме выбранной + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + wavWriter->muteTrack(i, i != soloTrack); + if (i < trackMuteButtons.size()) { + trackMuteButtons[i]->setText(i == soloTrack ? "🔊" : "🔇"); + } + } + + ui->statusLabel->setText(QString("Только дорожка %1 воспроизводится").arg(soloTrack + 1)); +} + +void Yamitracker::onTrackVolumeChanged(int value) +{ + QSlider* slider = qobject_cast(sender()); + if (!slider) return; + + int track = slider->property("trackIndex").toInt(); + wavWriter->setTrackVolume(track, value / 100.0); + + // Обновляем метку громкости + QLabel* volumeLabel = findChild(QString("trackVolumeLabel_%1").arg(track)); + if (volumeLabel) { + volumeLabel->setText(QString("%1%").arg(value)); + } +} + +void Yamitracker::onTrackNameChanged() +{ + QLineEdit* edit = qobject_cast(sender()); + if (!edit) return; + + int track = edit->property("trackIndex").toInt(); + wavWriter->setTrackName(track, edit->text()); + + // Обновляем комбобокс дорожек + if (track == currentTrack) { + trackComboBox->setItemText(trackComboBox->currentIndex(), edit->text()); + } +} + +void Yamitracker::onTrackInstrumentChanged(int index) +{ + QComboBox* combo = qobject_cast(sender()); + if (!combo) return; + + int track = combo->property("trackIndex").toInt(); + int instrument = combo->itemData(index).toInt(); + wavWriter->setTrackInstrument(track, instrument); + + ui->statusLabel->setText(QString("Инструмент дорожки %1 изменен на %2") + .arg(track + 1) + .arg(instruments.value(instrument, "Неизвестный"))); +} + +void Yamitracker::initializeKeyButtons() +{ + QList whiteKeys = { + ui->key_C1, ui->key_D1, ui->key_E1, ui->key_F1, ui->key_G1, ui->key_A1, ui->key_B1, + ui->key_C2, ui->key_D2, ui->key_E2, ui->key_F2, ui->key_G2, ui->key_A2, ui->key_B2, + ui->key_C3, ui->key_D3, ui->key_E3, ui->key_F3, ui->key_G3, ui->key_A3, ui->key_B3, + ui->key_C4, ui->key_D4, ui->key_E4, ui->key_F4, ui->key_G4, ui->key_A4, ui->key_B4, + ui->key_C5, ui->key_D5, ui->key_E5, ui->key_F5, ui->key_G5, ui->key_A5, ui->key_B5, + ui->key_C6 + }; + + for (QPushButton *key : whiteKeys) { + key->setProperty("whiteKey", true); + keyButtons[key->text()] = key; + } + + QList blackKeys = { + ui->key_Cs1, ui->key_Ds1, ui->key_Fs1, ui->key_Gs1, ui->key_As1, + ui->key_Cs2, ui->key_Ds2, ui->key_Fs2, ui->key_Gs2, ui->key_As2, + ui->key_Cs3, ui->key_Ds3, ui->key_Fs3, ui->key_Gs3, ui->key_As3, + ui->key_Cs4, ui->key_Ds4, ui->key_Fs4, ui->key_Gs4, ui->key_As4, + ui->key_Cs5, ui->key_Ds5, ui->key_Fs5, ui->key_Gs5, ui->key_As5 + }; + + for (QPushButton *key : blackKeys) { + key->setProperty("blackKey", true); + keyButtons[key->text()] = key; + } +} + +QString Yamitracker::getInstrumentName(int program) +{ + return instruments.contains(program) ? instruments[program] : QString("Unknown (%1)").arg(program); +} + +void Yamitracker::onNoteOnReceived(const QString &data, int velocity) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.insert(note); + highlightKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + int volume = (velocity * 100) / 127; + ui->volumeBar->setValue(volume); + + if (wavWriter->isRecording()) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + noteStartTimes[data] = currentTime; + } + } +} + +void Yamitracker::onNoteOffReceived(const QString &data) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.remove(note); + clearKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + if (currentlyPressedKeys.isEmpty()) { + ui->volumeBar->setValue(0); + } + + if (wavWriter->isRecording() && noteStartTimes.contains(data)) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + double noteStartTime = noteStartTimes[data]; + double duration = currentTime - noteStartTime; + + int noteVelocity = 100; + + wavWriter->addNote(currentTrack, noteStartTime, noteNumber, noteVelocity, duration); + + noteStartTimes.remove(data); + + // Обновляем информацию о дорожке + updateTrackInfo(); + updateTrackControls(); + } + } +} + +void Yamitracker::onConnectionStatusChanged(bool connected) +{ + isConnected = connected; + if (connected) { + ui->statusLabel->setText("Статус: Подключено к синтезатору"); + } else { + ui->statusLabel->setText("Статус: Отключено (переподключение...)"); + } +} + +void Yamitracker::attemptReconnect() +{ + if (!isConnected && (!serialReader || !serialReader->isRunning())) { + qDebug() << "Attempting to reconnect..."; + startSerialReader(); + } +} + +void Yamitracker::onError(const QString &message) +{ + // НЕ показываем всплывающее окно с ошибкой подключения + // Просто обновляем статус в строке состояния + ui->statusLabel->setText("Ошибка: " + message); + + // Показываем окно только для критических ошибок (не связанных с подключением) + if (!message.contains("Cannot open", Qt::CaseInsensitive) && + !message.contains("Connection lost", Qt::CaseInsensitive) && + !message.contains("reconnect", Qt::CaseInsensitive)) { + QMessageBox::warning(this, "Ошибка", message); + } +} + +void Yamitracker::onPlayClicked() +{ + // Получаем выбранный инструмент + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Запись с синтезатора [БАС x%1]...").arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText("Запись с синтезатора..."); + } + + noteStartTimes.clear(); + currentlyPressedKeys.clear(); + clearAllHighlights(); + + if (wavWriter->startRecording(16000)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started WAV recording from synthesizer, track:" << currentTrack; + if (isBassInstrument) { + qDebug() << "Bass instrument detected - volume will be increased"; + } + + // Активируем кнопку паузы + ui->pauseButton->setEnabled(true); + } +} + +void Yamitracker::onPauseClicked() +{ + if (wavWriter->isRecording()) { + if (wavWriter->isPaused()) { + wavWriter->resumeRecording(); + ui->statusLabel->setText("Запись возобновлена..."); + ui->pauseButton->setText("⏸ Пауза"); + } else { + wavWriter->pauseRecording(); + ui->statusLabel->setText("Запись приостановлена"); + ui->pauseButton->setText("▶ Продолжить"); + } + } +} + +void Yamitracker::onStopClicked() +{ + ui->statusLabel->setText("Запись остановлена"); + + clearAllHighlights(); + currentlyPressedKeys.clear(); + ui->keysInfoLabel->setText("Нажато клавиш: 0"); + ui->volumeBar->setValue(0); + + if (wavWriter->isRecording()) { + wavWriter->stopRecording(); + + // Деактивируем кнопку паузы + ui->pauseButton->setEnabled(false); + ui->pauseButton->setText("⏸ Пауза"); + + // Предлагаем сохранить запись + onSaveRecordingClicked(); + } + + noteStartTimes.clear(); +} + +void Yamitracker::onSaveRecordingClicked() +{ + QString defaultName = "recording_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".wav"; + QString filename = QFileDialog::getSaveFileName(this, "Сохранить запись", defaultName, "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + saveWavFile(filename); + } +} + +void Yamitracker::saveWavFile(const QString &filename) +{ + if (wavWriter->saveToFile(filename)) { + lastRecordedWavFile = filename; + ui->statusLabel->setText(QString("Сохранено: %1").arg(filename)); + + // Активируем кнопку конвертации + ui->convertButton->setEnabled(true); + ui->saveMusicButton->setEnabled(true); + + // Предлагаем воспроизвести файл + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Запись завершена", + QString("WAV файл сохранен:\n%1\n\nВоспроизвести файл?").arg(filename), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + playWavExternal(lastRecordedWavFile); + } + } else { + ui->statusLabel->setText("Ошибка сохранения WAV файла"); + } +} + +void Yamitracker::onConvertToBrrClicked() +{ + if (lastRecordedWavFile.isEmpty() || !QFile::exists(lastRecordedWavFile)) { + onSelectFileForConversion(); + return; + } + + QString baseName = QFileInfo(lastRecordedWavFile).completeBaseName(); + QString brrFile = QFileDialog::getSaveFileName(this, "Сохранить BRR файл", baseName + ".brr", "BRR файлы (*.brr)"); + + if (brrFile.isEmpty()) return; + + ui->statusLabel->setText("Конвертация WAV -> BRR..."); + QApplication::processEvents(); + + if (brrConverter->convertWavToBrr(lastRecordedWavFile, brrFile)) { + ui->statusLabel->setText(QString("Конвертация завершена: %1").arg(brrFile)); + + QFileInfo brrInfo(brrFile); + if (brrInfo.exists()) { + QString info = QString("BRR файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Nintendo SNES ADPCM") + .arg(brrFile) + .arg(brrInfo.size()); + QMessageBox::information(this, "Конвертация завершена", info); + } + } else { + ui->statusLabel->setText("Ошибка конвертации WAV -> BRR"); + QMessageBox::warning(this, "Ошибка", "Не удалось преобразовать WAV в BRR формат"); + } +} + +void Yamitracker::onSelectFileForConversion() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл для конвертации", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + lastRecordedWavFile = filename; + onConvertToBrrClicked(); + } +} + +void Yamitracker::onSelectFileForPlayback() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл для воспроизведения", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + playWavExternal(filename); + } +} + +void Yamitracker::playWavExternal(const QString &wavFile) +{ + QStringList players = { + "aplay", "paplay", "play", "ffplay" + }; + + QString player; + + for (const QString &p : players) { + QProcess checkProcess; + checkProcess.start("which", QStringList() << p); + checkProcess.waitForFinished(); + if (checkProcess.exitCode() == 0) { + player = p; + break; + } + } + + if (player.isEmpty()) { + QMessageBox::warning(this, "Воспроизведение", + "Не найден аудиоплеер. Установите один из:\n" + "aplay, paplay, sox или ffmpeg"); + return; + } + + ui->statusLabel->setText("Воспроизведение WAV файла..."); + + audioPlayerProcess->start(player, QStringList() << wavFile); + + if (!audioPlayerProcess->waitForStarted(3000)) { + ui->statusLabel->setText("Не удалось запустить аудиоплеер"); + QMessageBox::warning(this, "Ошибка", + QString("Не удалось запустить %1. Убедитесь, что он установлен.").arg(player)); + } +} + +void Yamitracker::scanMidiFiles() +{ + QDir currentDir = QDir::current(); + QStringList filters; + filters << "*.txt"; + QStringList files = currentDir.entryList(filters, QDir::Files); + + midiFilesList->clear(); + for (const QString &file : files) { + // Проверяем, является ли файл MIDI логом + if (file.contains("midi_log_") || + file.contains("CrandPno") || + file.contains("BritePno") || + file.contains("Harpsi") || + file.contains("FngrBass") || + file.contains("Ovrdrive") || + file.contains("Bright")) { + + QFileInfo fileInfo(file); + QListWidgetItem *item = new QListWidgetItem(fileInfo.fileName()); + item->setData(Qt::UserRole, fileInfo.absoluteFilePath()); + midiFilesList->addItem(item); + } + } + + if (midiFilesList->count() == 0) { + QListWidgetItem *item = new QListWidgetItem("MIDI файлы не найдены"); + item->setFlags(item->flags() & ~Qt::ItemIsSelectable); + midiFilesList->addItem(item); + } +} + +void Yamitracker::onLoadMidiFileClicked() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите MIDI лог файл", "", "Текстовые файлы (*.txt);;Все файлы (*)"); + + if (!filename.isEmpty()) { + loadMidiFile(filename); + } +} + +void Yamitracker::loadMidiFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QMessageBox::warning(this, "Ошибка", "Не удалось открыть файл: " + filename); + return; + } + + QTextStream in(&file); + QString content = in.readAll(); + file.close(); + + currentMidiFilePath = filename; + parseMidiLog(content); + + ui->statusLabel->setText(QString("Загружен файл: %1").arg(QFileInfo(filename).fileName())); +} + +void Yamitracker::parseMidiLog(const QString &content) +{ + QStringList lines = content.split('\n'); + int program = 1; // По умолчанию + + for (const QString &line : lines) { + if (line.contains("PROGRAM_CHANGE: Program=")) { + // Извлекаем номер программы + QRegularExpression re("Program=(\\d+)"); + QRegularExpressionMatch match = re.match(line); + if (match.hasMatch()) { + program = match.captured(1).toInt(); + // Обновляем выбранный инструмент в комбобоксе + int index = instrumentComboBox->findData(program); + if (index >= 0) { + instrumentComboBox->setCurrentIndex(index); + } + } + } + } + + // Показываем информацию о загруженном файле + QString info = QString("Файл загружен\nИнструмент: %1\nСтрок: %2") + .arg(getInstrumentName(program)) + .arg(lines.count()); + + QMessageBox::information(this, "MIDI файл загружен", info); +} + +void Yamitracker::onPlayMidiFileClicked() +{ + if (currentMidiFilePath.isEmpty()) { + QMessageBox::information(this, "Воспроизведение", "Сначала загрузите MIDI файл"); + return; + } + + // Проверяем, является ли инструмент басовым + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Симуляция MIDI файла [БАС x%1]...").arg(bassVolumeMultiplier)); + QApplication::processEvents(); + + QMessageBox::information(this, "Симуляция MIDI (БАС)", + QString("Симуляция воспроизведения MIDI файла с БАС-инструментом:\n" + "Файл: %1\n" + "Инструмент: %2\n" + "Громкость усилена в %3 раза\n\n" + "В реальной версии бас будет звучать громче.") + .arg(QFileInfo(currentMidiFilePath).fileName()) + .arg(getInstrumentName(currentInstrument)) + .arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText("Симуляция MIDI файла..."); + QApplication::processEvents(); + + QMessageBox::information(this, "Симуляция MIDI", + QString("Симуляция воспроизведения MIDI файла:\n%1\n\nВ реальной версии здесь будет воспроизведение нот.") + .arg(QFileInfo(currentMidiFilePath).fileName())); + } + + ui->statusLabel->setText("Симуляция завершена"); +} + +void Yamitracker::simulateNote(int note, int velocity, double duration) +{ + if (wavWriter->isRecording()) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + wavWriter->addNote(currentTrack, currentTime, note, velocity, duration); + } +} + +void Yamitracker::onSelectedMidiFileChanged() +{ + QList selectedItems = midiFilesList->selectedItems(); + if (!selectedItems.isEmpty()) { + QString filePath = selectedItems.first()->data(Qt::UserRole).toString(); + loadMidiFile(filePath); + } +} + +void Yamitracker::onRecordFromMidiFile() +{ + if (currentMidiFilePath.isEmpty()) { + QMessageBox::information(this, "Запись", "Сначала загрузите MIDI файл"); + return; + } + + // Получаем выбранный инструмент + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Запись из MIDI файла [БАС x%1]...").arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText(QString("Запись из MIDI файла [Инструмент: %1]...").arg(getInstrumentName(currentInstrument))); + } + + // Начинаем запись + if (wavWriter->startRecording(16000)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started WAV recording from MIDI file, instrument:" << currentInstrument << "track:" << currentTrack; + + // Генерируем мелодию в зависимости от инструмента + generateInstrumentMelody(currentInstrument); + + wavWriter->stopRecording(); + + // Предлагаем сохранить + onSaveRecordingClicked(); + } +} + +void Yamitracker::generateInstrumentMelody(int instrument) +{ + double volumeMultiplier = bassInstruments.contains(instrument) ? bassVolumeMultiplier : 1.0; + + // Разные мелодии для разных инструментов + switch (instrument) { + case 1: // CrandPno (Гранд-пианино) + wavWriter->addNote(currentTrack, 0.0, 60, 100 * volumeMultiplier, 1.0, instrument); // C4 + wavWriter->addNote(currentTrack, 0.5, 64, 80 * volumeMultiplier, 0.5, instrument); // E4 + wavWriter->addNote(currentTrack, 1.0, 67, 90 * volumeMultiplier, 1.0, instrument); // G4 + wavWriter->addNote(currentTrack, 2.0, 72, 100 * volumeMultiplier, 1.0, instrument); // C5 + break; + + case 2: // BritePno (Яркое пианино) + wavWriter->addNote(currentTrack, 0.0, 60, 100 * volumeMultiplier, 0.3, instrument); // C4 + wavWriter->addNote(currentTrack, 0.1, 64, 90 * volumeMultiplier, 0.3, instrument); // E4 + wavWriter->addNote(currentTrack, 0.2, 67, 80 * volumeMultiplier, 0.3, instrument); // G4 + wavWriter->addNote(currentTrack, 0.3, 72, 100 * volumeMultiplier, 0.5, instrument); // C5 + break; + + case 3: // Harpsi (Клавесин) + case 6: + wavWriter->addNote(currentTrack, 0.0, 60, 100 * volumeMultiplier, 0.1, instrument); // C4 + wavWriter->addNote(currentTrack, 0.1, 62, 90 * volumeMultiplier, 0.1, instrument); // D4 + wavWriter->addNote(currentTrack, 0.2, 64, 100 * volumeMultiplier, 0.1, instrument); // E4 + wavWriter->addNote(currentTrack, 0.3, 65, 90 * volumeMultiplier, 0.1, instrument); // F4 + wavWriter->addNote(currentTrack, 0.4, 67, 100 * volumeMultiplier, 0.2, instrument); // G4 + break; + + case 28: // FngrBass (Фингер-бас) + case 33: + case 39: + wavWriter->addNote(currentTrack, 0.0, 36, 120 * volumeMultiplier, 1.0, instrument); // C2 (бас) + wavWriter->addNote(currentTrack, 1.0, 40, 100 * volumeMultiplier, 0.5, instrument); // E2 + wavWriter->addNote(currentTrack, 1.5, 43, 110 * volumeMultiplier, 1.0, instrument); // G2 + wavWriter->addNote(currentTrack, 2.5, 48, 100 * volumeMultiplier, 0.5, instrument); // C3 + break; + + case 40: // SlapBas (Слэп-бас) + wavWriter->addNote(currentTrack, 0.0, 36, 150 * volumeMultiplier, 0.2, instrument); // C2 (щелчок) + wavWriter->addNote(currentTrack, 0.3, 40, 120 * volumeMultiplier, 0.3, instrument); // E2 (пул) + wavWriter->addNote(currentTrack, 0.7, 43, 140 * volumeMultiplier, 0.2, instrument); // G2 (щелчок) + break; + + case 29: // Ovrdrive (Овердрайв-гитара) + case 37: + wavWriter->addNote(currentTrack, 0.0, 40, 100 * volumeMultiplier, 1.5, instrument); // E2 + wavWriter->addNote(currentTrack, 0.5, 43, 90 * volumeMultiplier, 1.0, instrument); // G2 + wavWriter->addNote(currentTrack, 1.0, 45, 100 * volumeMultiplier, 0.5, instrument); // A2 + wavWriter->addNote(currentTrack, 1.5, 47, 110 * volumeMultiplier, 1.0, instrument); // B2 + break; + + case 48: // String (Струнные) + case 49: // SlowStr (Медленные струнные) + wavWriter->addNote(currentTrack, 0.0, 60, 80 * volumeMultiplier, 2.0, instrument); // C4 + wavWriter->addNote(currentTrack, 0.5, 64, 70 * volumeMultiplier, 1.5, instrument); // E4 + wavWriter->addNote(currentTrack, 1.0, 67, 75 * volumeMultiplier, 2.0, instrument); // G4 + break; + + case 81: // LeadSx (Саксофон) + wavWriter->addNote(currentTrack, 0.0, 65, 90 * volumeMultiplier, 1.5, instrument); // F4 + wavWriter->addNote(currentTrack, 0.3, 67, 85 * volumeMultiplier, 0.5, instrument); // G4 + wavWriter->addNote(currentTrack, 0.8, 69, 95 * volumeMultiplier, 2.0, instrument); // A4 + break; + + case 95: // Bright (Яркий звук) + case 96: + case 100: + wavWriter->addNote(currentTrack, 0.0, 72, 100 * volumeMultiplier, 0.2, instrument); // C5 + wavWriter->addNote(currentTrack, 0.2, 76, 90 * volumeMultiplier, 0.2, instrument); // E5 + wavWriter->addNote(currentTrack, 0.4, 79, 100 * volumeMultiplier, 0.2, instrument); // G5 + wavWriter->addNote(currentTrack, 0.6, 84, 110 * volumeMultiplier, 0.3, instrument); // C6 + break; + + default: + // Стандартная мелодия для неизвестных инструментов + wavWriter->addNote(currentTrack, 0.0, 60, 100 * volumeMultiplier, 1.0, instrument); // C4 + wavWriter->addNote(currentTrack, 1.0, 64, 80 * volumeMultiplier, 1.0, instrument); // E4 + wavWriter->addNote(currentTrack, 2.0, 67, 90 * volumeMultiplier, 1.0, instrument); // G4 + break; + } +} + +void Yamitracker::highlightKey(const QString ¬e) +{ + if (keyButtons.contains(note)) { + QPushButton *key = keyButtons[note]; + key->setStyleSheet("background-color: #ff4444; color: white; border: 2px solid red;"); + } +} + +void Yamitracker::clearKey(const QString ¬e) +{ + if (!keyButtons.contains(note)) return; + QPushButton *key = keyButtons[note]; + if (key->property("whiteKey").toBool()) + key->setStyleSheet("background-color: white; color: black; border: 1px solid #ccc;"); + else + key->setStyleSheet("background-color: black; color: white;"); +} + +void Yamitracker::clearAllHighlights() +{ + for (auto i = keyButtons.begin(); i != keyButtons.end(); ++i) { + clearKey(i.key()); + } +} + +void Yamitracker::clearStatusMessage() +{ + ui->statusLabel->setText("Статус: Готов"); +} + +void Yamitracker::initializeDeviceDetection() +{ + deviceLabel->setText("Устройство: Поиск..."); +} + +void Yamitracker::autoDetectAndConnect() +{ + QString device = "/dev/dmmidi1"; + serialReader->setDevice(device); + deviceLabel->setText(QString("Устройство: %1").arg(device)); + qDebug() << "Using device:" << device; + + startSerialReader(); +} + +void Yamitracker::onDeviceInfoReceived(const QString &manufacturer, const QString &model) +{ + deviceLabel->setText(QString("Устройство: %1 %2").arg(manufacturer, model)); + + setWindowTitle(QString("Yamitracker - %1 %2").arg(manufacturer, model)); +} + +void Yamitracker::onRefreshDevicesClicked() +{ + deviceLabel->setText("Устройство: Обновление..."); + + autoDetectAndConnect(); +} + +void Yamitracker::startSerialReader() +{ + if (serialReader && !serialReader->isRunning()) { + serialReader->start(); + } +} + +void Yamitracker::convertToBrr(const QString &wavFile, const QString &brrFile) +{ + // Реализация через brrConverter + if (brrConverter->convertWavToBrr(wavFile, brrFile)) { + ui->statusLabel->setText(QString("Конвертация завершена: %1").arg(brrFile)); + } else { + ui->statusLabel->setText("Ошибка конвертации"); + } +} + +// Метод onAudioOutputNotify - если он не используется, можно его удалить или оставить пустым +void Yamitracker::onAudioOutputNotify() +{ + // Этот метод может быть пустым, если не используется + // Он был добавлен в сигналы, но может не иметь реализации +} + +Yamitracker::~Yamitracker() +{ + stopPlayback(); + + if (serialReader) { + serialReader->stop(); + if (serialReader->isRunning()) { + serialReader->terminate(); + serialReader->wait(); + } + } + + delete ui; +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/yamitracker.h b/Yamitracker-reoload/Yamitracker4/Yamitracker/yamitracker.h new file mode 100644 index 0000000..b87b69e --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/yamitracker.h @@ -0,0 +1,225 @@ +#ifndef YAMITRACKER_H +#define YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "simplewavwriter.h" +#include "brrconverter.h" + +QT_BEGIN_NAMESPACE +namespace Ui { class Yamitracker; } +QT_END_NAMESPACE + +class SerialReader : public QThread +{ + Q_OBJECT +public: + explicit SerialReader(QObject *parent = nullptr) : QThread(parent) + { + shouldStop = false; + currentDevice = "/dev/dmmidi1"; + } + + void stop() + { + shouldStop = true; + } + + void setDevice(const QString& device) { + currentDevice = device; + } + + QString getCurrentDevice() const { + return currentDevice; + } + +protected: + void run() override; + +private: + bool shouldStop; + QString currentDevice; + +signals: + void noteOnReceived(const QString ¬e, int velocity); + void noteOffReceived(const QString ¬e); + void error(const QString &message); + void connectionStatusChanged(bool connected); + void deviceInfoReceived(const QString &manufacturer, const QString &model); +}; + +class Yamitracker : public QMainWindow +{ + Q_OBJECT + +public: + Yamitracker(QWidget *parent = nullptr); + ~Yamitracker(); + +private slots: + void onNoteOnReceived(const QString ¬e, int velocity); + void onNoteOffReceived(const QString ¬e); + void onError(const QString &message); + void onPlayClicked(); + void onPauseClicked(); + void onStopClicked(); + void onConvertToBrrClicked(); + void clearStatusMessage(); + void onConnectionStatusChanged(bool connected); + void attemptReconnect(); + void onDeviceInfoReceived(const QString &manufacturer, const QString &model); + void onRefreshDevicesClicked(); + void onLoadMidiFileClicked(); + void onSelectFileForConversion(); + void onSelectFileForPlayback(); + void onSaveRecordingClicked(); + void onPlayMidiFileClicked(); + void onSelectedMidiFileChanged(); + void onRecordFromMidiFile(); + void onPlaybackSpeedChanged(int value); + void onBassVolumeChanged(int value); + void updateSpeedLabel(); + void updateVolumeLabel(); + void onCurrentTrackChanged(int index); + void onSaveMusicFileClicked(); + void onAddTrackClicked(); + void onRemoveTrackClicked(); + void onClearTrackClicked(); + void onPlayTrackClicked(); + void onPlayAllTracksClicked(); + void onStopPlaybackClicked(); + void onLoadWavToTrackClicked(); + void onMergeTracksClicked(); + void onCopyTrackClicked(); + void onMuteTrackClicked(); + void onSoloTrackClicked(); + void onTrackVolumeChanged(int value); + void onTrackNameChanged(); + void onTrackInstrumentChanged(int index); + + // Аудио обработчики + void handleAudioStateChanged(QAudio::State state); + void onAudioOutputNotify(); + void onPlaybackFinished(); + +private: + Ui::Yamitracker *ui; + SerialReader *serialReader; + QHash keyButtons; + QSet currentlyPressedKeys; + QTimer *reconnectTimer; + bool isConnected; + SimpleWavWriter *wavWriter; + double recordingStartTime; + QHash noteStartTimes; + QLabel *deviceLabel; + QPushButton *refreshDevicesButton; + BrrConverter *brrConverter; + QProcess *audioPlayerProcess; + QString lastRecordedWavFile; + QListWidget *midiFilesList; + QComboBox *instrumentComboBox; + QString currentMidiFilePath; + QSlider *playbackSpeedSlider; + QSlider *bassVolumeSlider; + QLabel *speedLabel; + QLabel *volumeLabel; + QComboBox *trackComboBox; + QSpinBox *trackCountSpinBox; + + // Аудио воспроизведение + QAudioOutput *audioOutput; + QBuffer *audioBuffer; + QTimer *playbackTimer; + bool isPlayingBack; + int currentPlaybackTrack; + + // Элементы управления дорожками + QVector trackVolumeSliders; + QVector trackMuteButtons; + QVector trackSoloButtons; + QVector trackNameEdits; + QVector trackInstrumentComboBoxes; + + int currentTrack; // Текущая выбранная дорожка + + // Инструменты (темпы) Yamaha PSR-E333 + QMap instruments = { + {1, "CrandPno (Гранд-пианино)"}, + {2, "BritePno (Яркое пианино)"}, + {3, "Harpsi (Клавесин)"}, + {6, "Harpsi (Клавесин) - другой тип"}, + {25, "ClassicGt (Классическая гитара)"}, + {27, "JazzGtr (Джазовая гитара)"}, + {28, "FngrBass (Фингер-бас)"}, + {29, "Ovrdrive (Овердрайв-гитара)"}, + {33, "FngrBass (Фингер-бас) - другой тип"}, + {37, "Ovrdrive (Овердрайв-гитара) - другой тип"}, + {38, "DstGtr (Дисторшн-гитара)"}, + {39, "FngrBass (Фингер-бас) - другой тип"}, + {40, "SlapBas (Слэп-бас)"}, + {48, "String (Струнные)"}, + {49, "SlowStr (Медленные струнные)"}, + {81, "LeadSx (Саксофон)"}, + {89, "SoftPad (Мягкий пад)"}, + {95, "Bright (Яркий звук)"}, + {96, "Bright (Яркий звук) - другой тип"}, + {100, "Bright (Яркий звук) - еще тип"} + }; + + void initializeKeyButtons(); + void highlightKey(const QString ¬e); + void clearKey(const QString ¬e); + void clearAllHighlights(); + void startSerialReader(); + void saveWavFile(const QString &filename); + void saveMusicFile(const QString &filename); + void initializeDeviceDetection(); + void autoDetectAndConnect(); + void convertToBrr(const QString &wavFile, const QString &brrFile); + void playWavExternal(const QString &wavFile); + void loadMidiFile(const QString &filename); + void parseMidiLog(const QString &content); + void simulateNote(int note, int velocity, double duration); + void scanMidiFiles(); + QString getInstrumentName(int program); + void generateInstrumentMelody(int instrument); + void updateTrackInfo(); + void initializeTracks(); + void initializeTrackControls(); + void updateTrackControls(); + void playTrack(int track); + void playAllTracks(); + void stopPlayback(); + void loadWavToCurrentTrack(); + void mergeCurrentTrackWith(int targetTrack); + void copyCurrentTrackTo(int targetTrack); + void muteCurrentTrack(bool muted); + void soloCurrentTrack(bool solo); + void setCurrentTrackVolume(int volume); + void setCurrentTrackName(const QString &name); + void setCurrentTrackInstrument(int instrument); + + // Вспомогательные методы + void showTrackContextMenu(const QPoint &pos); + void createNewTrack(); + void deleteTrack(int track); + void exportTrack(int track, const QString &filename); + void importTrack(int track, const QString &filename); +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker4/Yamitracker/yamitracker.ui b/Yamitracker-reoload/Yamitracker4/Yamitracker/yamitracker.ui new file mode 100644 index 0000000..bc5932f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker4/Yamitracker/yamitracker.ui @@ -0,0 +1,1000 @@ + + + Yamitracker + + + + 0 + 0 + 1400 + 1000 + + + + Yamaha PSR-E333 Monitor - Multitrack Recording + + + + + + + + + Статус: Готов + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Устройство: Не подключено + + + + + + + + + + + Нажато клавиш: 0 + + + + + + + 0 + + + + + + + + + Управление записью + + + + + + ▶ Запись с синтезатора + + + + + + + ⏸ Пауза + + + false + + + + + + + ⏹ Стоп + + + + + + + 💾 Сохранить запись + + + + + + + 🔄 Конвертировать в BRR + + + + + + + 🎵 Сохранить музыку (Pently) + + + + + + + + + + Управление воспроизведением + + + + + + ▶ Текущая дорожка + + + + + + + ▶▶ Все дорожки + + + + + + + ⏹ Стоп воспроизведение + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 📂 Загрузить WAV в дорожку + + + + + + + + + + Управление дорожками + + + + + + Текущая дорожка: + + + + + + + + + + ➕ Новая дорожка + + + + + + + 🗑 Удалить дорожку + + + + + + + 🗑 Очистить дорожку + + + + + + + 📋 Копировать дорожку + + + + + + + 🔀 Объединить дорожки + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Дорожка 1: 0 нот + + + + + + + + + + true + + + + + 0 + 0 + 1380 + 300 + + + + + + + Панель управления дорожками: + + + + + + + + + + + Работа с MIDI файлами + + + + + + + + Инструмент: + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Скорость: 100% + + + + + + + Qt::Horizontal + + + 50 + + + 200 + + + 100 + + + + + + + Бас: 200% + + + + + + + Qt::Horizontal + + + 100 + + + 400 + + + 200 + + + + + + + 🔃 Обновить устройства + + + + + + + + + + + 📂 Загрузить MIDI файл + + + + + + + ▶ Воспроизвести MIDI + + + + + + + ● Записать из MIDI + + + + + + + 📁 Выбрать файл для конвертации + + + + + + + ▶ Воспроизвести WAV + + + + + + + + + Доступные MIDI файлы: + + + + + + + + + + + + + + + + + + + C1 + + + + + + + D1 + + + + + + + E1 + + + + + + + F1 + + + + + + + G1 + + + + + + + A1 + + + + + + + B1 + + + + + + + C2 + + + + + + + D2 + + + + + + + E2 + + + + + + + F2 + + + + + + + G2 + + + + + + + A2 + + + + + + + B2 + + + + + + + C3 + + + + + + + D3 + + + + + + + E3 + + + + + + + F3 + + + + + + + G3 + + + + + + + A3 + + + + + + + B3 + + + + + + + C4 + + + + + + + D4 + + + + + + + E4 + + + + + + + F4 + + + + + + + G4 + + + + + + + A4 + + + + + + + B4 + + + + + + + C5 + + + + + + + D5 + + + + + + + E5 + + + + + + + F5 + + + + + + + G5 + + + + + + + A5 + + + + + + + B5 + + + + + + + C6 + + + + + + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#1 + + + + + + + D#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#1 + + + + + + + G#1 + + + + + + + A#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#2 + + + + + + + D#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#2 + + + + + + + G#2 + + + + + + + A#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#3 + + + + + + + D#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#3 + + + + + + + G#3 + + + + + + + A#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#4 + + + + + + + D#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#4 + + + + + + + G#4 + + + + + + + A#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#5 + + + + + + + D#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#5 + + + + + + + G#5 + + + + + + + A#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user new file mode 100644 index 0000000..fa3c609 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user @@ -0,0 +1,224 @@ + + + + + + EnvironmentId + {89b8cbb4-bbd9-44d4-86fc-4f76722e0ba9} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + true + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 0 + 80 + true + true + 1 + 0 + false + true + false + 2 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + false + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 4 + true + + + + true + + 0 + + + + ProjectExplorer.Project.Target.0 + + Desktop + true + Desktop Qt 6.10.2 + Desktop Qt 6.10.2 + qt.qt6.6102.linux_gcc_64_kit + 0 + 0 + 0 + + 0 + /home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug + /home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + Qt4ProjectManager.Qt4RunConfiguration: + /home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/Yamitracker.pro + false + + true + true + true + %{RunConfig:Executable:Path} + + 1 + 2 + + 1 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + Qt4ProjectManager.Qt4RunConfiguration: + /home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/Yamitracker.pro + false + + true + true + true + %{RunConfig:Executable:Path} + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user.20954cb b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user.20954cb new file mode 100644 index 0000000..e2d71b0 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user.20954cb @@ -0,0 +1,233 @@ + + + + + + EnvironmentId + {20954cb6-51c1-46d5-a200-1db750c36a2d} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + true + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + + Nim + + NimGlobal + + + 3 + UTF-8 + false + 4 + false + 0 + 80 + true + true + 1 + 0 + false + true + false + 2 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + false + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 4 + true + + + + true + + + + + + + 0 + + + + ProjectExplorer.Project.Target.0 + + Desktop + true + Desktop + Desktop + {598a2668-634b-454f-8fd8-38d3b4bb3b99} + 0 + 0 + 0 + + 0 + /home/soffti/progs/Yami/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop-Debug + /home/soffti/progs/Yami/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + + true + true + %{RunConfig:Executable:Path} + + 1 + 2 + + 1 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + + true + true + %{RunConfig:Executable:Path} + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user.6395eb3 b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user.6395eb3 new file mode 100644 index 0000000..fcac744 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user.6395eb3 @@ -0,0 +1,263 @@ + + + + + + EnvironmentId + {6395eb3f-fc2a-4125-bb4f-a9c51f02958b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {0acbc229-4897-4c6e-a23f-ae7c45394b0c} + 0 + 0 + 0 + + 0 + /home/acer1117/build-Yamitracker-Desktop-Debug + /home/acer1117/build-Yamitracker-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/acer1117/build-Yamitracker-Desktop-Release + /home/acer1117/build-Yamitracker-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/acer1117/build-Yamitracker-Desktop-Profile + /home/acer1117/build-Yamitracker-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro + /home/acer1117/Yamitracker/Yamitracker.pro + false + true + true + false + true + /home/acer1117/build-Yamitracker-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/Yamitracker.pro b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/Yamitracker.pro new file mode 100644 index 0000000..d5d042f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/Yamitracker.pro @@ -0,0 +1,22 @@ +QT += core gui widgets multimedia + +CONFIG += c++17 + +SOURCES += \ + main.cpp \ + yamitracker.cpp \ + simplewavwriter.cpp \ + brrconverter.cpp + +HEADERS += \ + yamitracker.h \ + simplewavwriter.h \ + brrconverter.h + +FORMS += \ + yamitracker.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/Yamitracker.pro.autosave b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/Yamitracker.pro.autosave new file mode 100644 index 0000000..d5d042f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/Yamitracker.pro.autosave @@ -0,0 +1,22 @@ +QT += core gui widgets multimedia + +CONFIG += c++17 + +SOURCES += \ + main.cpp \ + yamitracker.cpp \ + simplewavwriter.cpp \ + brrconverter.cpp + +HEADERS += \ + yamitracker.h \ + simplewavwriter.h \ + brrconverter.h + +FORMS += \ + yamitracker.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/Yamitracker.pro.user b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/Yamitracker.pro.user new file mode 100644 index 0000000..fa3c609 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/Yamitracker.pro.user @@ -0,0 +1,224 @@ + + + + + + EnvironmentId + {89b8cbb4-bbd9-44d4-86fc-4f76722e0ba9} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + true + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 0 + 80 + true + true + 1 + 0 + false + true + false + 2 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + false + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 4 + true + + + + true + + 0 + + + + ProjectExplorer.Project.Target.0 + + Desktop + true + Desktop Qt 6.10.2 + Desktop Qt 6.10.2 + qt.qt6.6102.linux_gcc_64_kit + 0 + 0 + 0 + + 0 + /home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug + /home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + Qt4ProjectManager.Qt4RunConfiguration: + /home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/Yamitracker.pro + false + + true + true + true + %{RunConfig:Executable:Path} + + 1 + 2 + + 1 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + Qt4ProjectManager.Qt4RunConfiguration: + /home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/Yamitracker.pro + false + + true + true + true + %{RunConfig:Executable:Path} + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/Yamitracker_ru_RU.ts b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/Yamitracker_ru_RU.ts new file mode 100644 index 0000000..743f57f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/Yamitracker_ru_RU.ts @@ -0,0 +1,3 @@ + + + diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/brrconverter.cpp b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/brrconverter.cpp new file mode 100644 index 0000000..eed5c96 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/brrconverter.cpp @@ -0,0 +1,340 @@ +#include "brrconverter.h" +#include + +BrrConverter::BrrConverter(QObject *parent) : QObject(parent) +{ +} + +bool BrrConverter::convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath) +{ + QFile wavFile(wavFilePath); + if (!wavFile.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open WAV file:" << wavFilePath; + return false; + } + + int sampleRate, channels, bitsPerSample, dataSize; + if (!decodeWavHeader(wavFile, sampleRate, channels, bitsPerSample, dataSize)) { + qDebug() << "Invalid WAV file format"; + wavFile.close(); + return false; + } + + // Читаем аудиоданные + QByteArray audioData = wavFile.read(dataSize); + wavFile.close(); + + // Конвертируем в 16-bit моно + QVector samples; + int bytesPerSample = bitsPerSample / 8; + int totalSamples = dataSize / (bytesPerSample * channels); + + for (int i = 0; i < totalSamples; ++i) { + int32_t sample = 0; + + for (int ch = 0; ch < channels; ++ch) { + int32_t channelSample = 0; + int offset = (i * channels + ch) * bytesPerSample; + + if (bitsPerSample == 8) { + channelSample = (int8_t)audioData[offset]; + channelSample = (channelSample - 128) * 256; + } else if (bitsPerSample == 16) { + channelSample = (int16_t)((audioData[offset + 1] << 8) | audioData[offset]); + } else if (bitsPerSample == 24) { + channelSample = (int32_t)((audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + if (channelSample & 0x800000) channelSample |= 0xFF000000; + channelSample >>= 8; + } else if (bitsPerSample == 32) { + channelSample = (int32_t)((audioData[offset + 3] << 24) | + (audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + channelSample >>= 16; + } + + sample += channelSample; + } + + // Микшируем каналы + sample /= channels; + samples.append(clamp16(sample)); + } + + // Понижаем частоту дискретизации для SNES (макс 32kHz -> 16kHz) + if (sampleRate > 16000) { + int ratio = sampleRate / 16000; + QVector downsampled; + for (int i = 0; i < samples.size(); i += ratio) { + downsampled.append(samples[i]); + } + samples = downsampled; + } else if (sampleRate < 16000) { + // Если частота ниже, повышаем (простое повторение) + int ratio = 16000 / sampleRate; + QVector upsampled; + for (int i = 0; i < samples.size(); ++i) { + for (int j = 0; j < ratio; ++j) { + upsampled.append(samples[i]); + } + } + samples = upsampled; + } + + // Открываем BRR файл для записи + QFile brrFile(brrFilePath); + if (!brrFile.open(QIODevice::WriteOnly)) { + qDebug() << "Cannot open BRR file for writing:" << brrFilePath; + return false; + } + + ADPCMState state; + QVector blockSamples; + + // Конвертируем в BRR блоками по 16 сэмплов + for (int i = 0; i < samples.size(); ++i) { + int encoded = encodeADPCMNibble(samples[i], state); + blockSamples.append(encoded); + + if (blockSamples.size() == 32) { // 32 ниббла = 16 сэмплов + writeBrrBlock(brrFile, blockSamples, false); + blockSamples.clear(); + } + } + + // Записываем последний неполный блок + if (!blockSamples.isEmpty()) { + // Дополняем до 32 нибблов + while (blockSamples.size() < 32) { + blockSamples.append(0); + } + writeBrrBlock(brrFile, blockSamples, true); // Последний блок с флагом loop + } else if (samples.size() > 0) { + // Если был полный последний блок, помечаем его как loop + brrFile.seek(brrFile.size() - BRR_BLOCK_SIZE); + unsigned char header = 0x03; // Фильтр 0, loop flag = 1 + brrFile.write((char*)&header, 1); + } + + brrFile.close(); + qDebug() << "BRR file created:" << brrFilePath << "samples:" << samples.size() << "sample rate:" << sampleRate; + return true; +} + +bool BrrConverter::convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath) +{ + qDebug() << "MIDI to BRR conversion requires MIDI synthesizer"; + qDebug() << "Please convert MIDI to WAV first, then use WAV to BRR"; + + return false; +} + +bool BrrConverter::decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize) +{ + char buffer[44]; + if (file.read(buffer, 44) != 44) { + return false; + } + + // Проверяем RIFF заголовок + if (buffer[0] != 'R' || buffer[1] != 'I' || buffer[2] != 'F' || buffer[3] != 'F') { + return false; + } + + // Проверяем WAVE формат + if (buffer[8] != 'W' || buffer[9] != 'A' || buffer[10] != 'V' || buffer[11] != 'E') { + return false; + } + + // Проверяем fmt chunk + if (buffer[12] != 'f' || buffer[13] != 'm' || buffer[14] != 't' || buffer[15] != ' ') { + return false; + } + + // Читаем параметры + int fmtSize = *(int*)(buffer + 16); + if (fmtSize < 16) return false; + + int audioFormat = *(short*)(buffer + 20); + if (audioFormat != 1) return false; // Только PCM + + channels = *(short*)(buffer + 22); + sampleRate = *(int*)(buffer + 24); + bitsPerSample = *(short*)(buffer + 34); + + // Ищем data chunk + int offset = 36; + while (offset < file.size()) { + file.seek(offset); + char chunkId[4]; + if (file.read(chunkId, 4) != 4) break; + + int chunkSize; + if (file.read((char*)&chunkSize, 4) != 4) break; + + if (chunkId[0] == 'd' && chunkId[1] == 'a' && chunkId[2] == 't' && chunkId[3] == 'a') { + dataSize = chunkSize; + file.seek(offset + 8); + return true; + } + + offset += 8 + chunkSize; + } + + return false; +} + +int16_t BrrConverter::clamp16(int sample) +{ + if (sample > 32767) return 32767; + if (sample < -32768) return -32768; + return (int16_t)sample; +} + +int BrrConverter::encodeADPCMNibble(int sample, ADPCMState &state) +{ + int diff = sample - state.prev_sample; + int step = step_table[state.prev_index]; + + // Квантование + int nibble = 0; + int predicted = state.prev_sample; + + // Применяем фильтр (простейший - без фильтра) + int filtered = predicted; + + diff = sample - filtered; + + // Находим наилучший nibble + int best_nibble = 0; + int best_error = INT_MAX; + + for (int n = 0; n < 16; ++n) { + int step_index = state.prev_index + ((n & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (n & 8) ? -current_step : current_step; + + int current_sample = filtered + delta; + int error = abs(sample - current_sample); + + if (error < best_error) { + best_error = error; + best_nibble = n; + } + } + + // Декодируем выбранный nibble для обновления состояния + int step_index = state.prev_index + ((best_nibble & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (best_nibble & 8) ? -current_step : current_step; + + state.prev_sample = filtered + delta; + state.prev_index = step_index; + + // Ограничиваем индекс + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + // Ограничиваем сэмпл + state.prev_sample = clamp16(state.prev_sample); + + return best_nibble; +} + +void BrrConverter::writeBrrBlock(QFile &file, const QVector &samples, bool loop) +{ + if (samples.size() != 32) { + qDebug() << "Invalid sample count for BRR block:" << samples.size(); + return; + } + + unsigned char header = 0x00; + if (loop) { + header = 0x03; // Фильтр 0 + loop + } + + file.write((char*)&header, 1); + + // Упаковываем 32 ниббла в 8 байт + for (int i = 0; i < 16; ++i) { + unsigned char byte = (samples[i * 2] << 4) | (samples[i * 2 + 1] & 0x0F); + file.write((char*)&byte, 1); + } +} + +int BrrConverter::decodeADPCMNibble(int nibble, ADPCMState &state) +{ + int step = step_table[state.prev_index]; + int delta = step >> 3; + + if (nibble & 1) delta += step >> 2; + if (nibble & 2) delta += step >> 1; + if (nibble & 4) delta += step; + + if (nibble & 8) delta = -delta; + + // Применяем фильтр (простейший) + int sample = state.prev_sample + delta; + + // Ограничиваем + sample = clamp16(sample); + + // Обновляем индекс + state.prev_index += ((nibble & 7) * 2 - 7); + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + state.prev_sample = sample; + + return sample; +} + +QVector BrrConverter::decodeBrrFile(const QString &brrFilePath) +{ + QVector samples; + QFile file(brrFilePath); + + if (!file.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open BRR file for reading:" << brrFilePath; + return samples; + } + + ADPCMState state; + + while (!file.atEnd()) { + unsigned char header; + if (file.read((char*)&header, 1) != 1) break; + + unsigned char data[8]; + if (file.read((char*)data, 8) != 8) break; + + // Извлекаем нибблы + for (int i = 0; i < 8; ++i) { + unsigned char byte = data[i]; + int nibble1 = (byte >> 4) & 0x0F; + int nibble2 = byte & 0x0F; + + int sample1 = decodeADPCMNibble(nibble1, state); + int sample2 = decodeADPCMNibble(nibble2, state); + + samples.append(sample1); + samples.append(sample2); + } + + // Проверяем конец + if (header & 0x01) { + break; // Конец сэмпла + } + } + + file.close(); + return samples; +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/brrconverter.h b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/brrconverter.h new file mode 100644 index 0000000..175879a --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/brrconverter.h @@ -0,0 +1,54 @@ +#ifndef BRRCONVERTER_H +#define BRRCONVERTER_H + +#include +#include +#include +#include +#include + +class BrrConverter : public QObject +{ + Q_OBJECT + +public: + BrrConverter(QObject *parent = nullptr); + + bool convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath); + bool convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath); + +private: + struct ADPCMState { + int prev_sample; + int prev_index; + + ADPCMState() : prev_sample(0), prev_index(0) {} + }; + + struct BRRBlock { + unsigned char header; + unsigned char data[8]; + }; + + bool decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize); + int16_t clamp16(int sample); + int encodeADPCMNibble(int sample, ADPCMState &state); + void writeBrrBlock(QFile &file, const QVector &samples, bool loop = false); + int decodeADPCMNibble(int nibble, ADPCMState &state); + QVector decodeBrrFile(const QString &brrFilePath); + + static const int BRR_BLOCK_SIZE = 9; + static const int SAMPLES_PER_BLOCK = 16; + static const int FILTER_TYPES = 4; + + const int step_table[89] = { + 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, + 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, + 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, + 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327, + 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, + 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 + }; +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/.qmake.stash b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop-Debug/.qtc_clangd/compile_commands.json b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop-Debug/.qtc_clangd/compile_commands.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop-Debug/.qtc_clangd/compile_commands.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/FILE.h.79AEFC497861DFC5.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/FILE.h.79AEFC497861DFC5.idx new file mode 100644 index 0000000..bb4130c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/FILE.h.79AEFC497861DFC5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QApplication.B9EDCF12ABD49CAD.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QApplication.B9EDCF12ABD49CAD.idx new file mode 100644 index 0000000..a9114f1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QApplication.B9EDCF12ABD49CAD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QAudioFormat.127181BE433419F0.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QAudioFormat.127181BE433419F0.idx new file mode 100644 index 0000000..c1f324d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QAudioFormat.127181BE433419F0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QAudioOutput.7F02858D40921E43.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QAudioOutput.7F02858D40921E43.idx new file mode 100644 index 0000000..09dcc5f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QAudioOutput.7F02858D40921E43.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QBuffer.23E78BA9EBF59F49.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QBuffer.23E78BA9EBF59F49.idx new file mode 100644 index 0000000..a62c5aa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QBuffer.23E78BA9EBF59F49.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QByteArray.53F89BE5B471B7E4.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QByteArray.53F89BE5B471B7E4.idx new file mode 100644 index 0000000..ad51e02 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QByteArray.53F89BE5B471B7E4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QCheckBox.40F6D47CBD050DB2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QCheckBox.40F6D47CBD050DB2.idx new file mode 100644 index 0000000..82ed698 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QCheckBox.40F6D47CBD050DB2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QComboBox.8361AD430BA3A00F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QComboBox.8361AD430BA3A00F.idx new file mode 100644 index 0000000..b696c12 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QComboBox.8361AD430BA3A00F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDateTime.39389819294B0D4C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDateTime.39389819294B0D4C.idx new file mode 100644 index 0000000..2f50c73 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDateTime.39389819294B0D4C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDebug.BAD14E00E3F9C686.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDebug.BAD14E00E3F9C686.idx new file mode 100644 index 0000000..0561d2c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDebug.BAD14E00E3F9C686.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDesktopServices.C3D95E29D5523316.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDesktopServices.C3D95E29D5523316.idx new file mode 100644 index 0000000..97d7d71 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDesktopServices.C3D95E29D5523316.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDir.5B5B8AD57E28282C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDir.5B5B8AD57E28282C.idx new file mode 100644 index 0000000..7cc8a9e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDir.5B5B8AD57E28282C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFile.4FE98F09717A22B9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFile.4FE98F09717A22B9.idx new file mode 100644 index 0000000..ad895f6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFile.4FE98F09717A22B9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFileDialog.DBF60707535AF045.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFileDialog.DBF60707535AF045.idx new file mode 100644 index 0000000..fa2c843 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFileDialog.DBF60707535AF045.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFileInfo.42DC8E7F927D4FF2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFileInfo.42DC8E7F927D4FF2.idx new file mode 100644 index 0000000..6e3752a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFileInfo.42DC8E7F927D4FF2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QGroupBox.0B6B252E4892F6B6.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QGroupBox.0B6B252E4892F6B6.idx new file mode 100644 index 0000000..7625cd0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QGroupBox.0B6B252E4892F6B6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QHBoxLayout.3C186A69BF876892.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QHBoxLayout.3C186A69BF876892.idx new file mode 100644 index 0000000..cc6969c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QHBoxLayout.3C186A69BF876892.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QHash.5CEAFD4266089588.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QHash.5CEAFD4266089588.idx new file mode 100644 index 0000000..a3d0515 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QHash.5CEAFD4266089588.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QInputDialog.6F584C03D260FA15.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QInputDialog.6F584C03D260FA15.idx new file mode 100644 index 0000000..c79ade7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QInputDialog.6F584C03D260FA15.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QLabel.C13AE013C3E75118.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QLabel.C13AE013C3E75118.idx new file mode 100644 index 0000000..e5a8b6e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QLabel.C13AE013C3E75118.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QLineEdit.5BEFF3F462F2E1C2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QLineEdit.5BEFF3F462F2E1C2.idx new file mode 100644 index 0000000..273f293 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QLineEdit.5BEFF3F462F2E1C2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QListWidget.036B67C888FDBFB4.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QListWidget.036B67C888FDBFB4.idx new file mode 100644 index 0000000..a024cdd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QListWidget.036B67C888FDBFB4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMainWindow.CA41D00754EDC756.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMainWindow.CA41D00754EDC756.idx new file mode 100644 index 0000000..9a6e0fb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMainWindow.CA41D00754EDC756.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMap.161022A0D04CCB63.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMap.161022A0D04CCB63.idx new file mode 100644 index 0000000..9db23a3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMap.161022A0D04CCB63.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMenu.5C0F89EF6E40FD05.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMenu.5C0F89EF6E40FD05.idx new file mode 100644 index 0000000..e7ef039 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMenu.5C0F89EF6E40FD05.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMessageBox.0F39583027EEA62B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMessageBox.0F39583027EEA62B.idx new file mode 100644 index 0000000..7573155 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMessageBox.0F39583027EEA62B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QObject.D8B4B2706948600D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QObject.D8B4B2706948600D.idx new file mode 100644 index 0000000..a45a31b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QObject.D8B4B2706948600D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QProcess.506923A570DC46B4.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QProcess.506923A570DC46B4.idx new file mode 100644 index 0000000..b52ae9c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QProcess.506923A570DC46B4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QPushButton.D5FBF9ABB31BAA40.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QPushButton.D5FBF9ABB31BAA40.idx new file mode 100644 index 0000000..1b8f0b3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QPushButton.D5FBF9ABB31BAA40.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QRegularExpression.3D4E0921DB42CD37.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QRegularExpression.3D4E0921DB42CD37.idx new file mode 100644 index 0000000..24588dc Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QRegularExpression.3D4E0921DB42CD37.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QSet.F19C6EF1B1021323.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QSet.F19C6EF1B1021323.idx new file mode 100644 index 0000000..a8ddabe Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QSet.F19C6EF1B1021323.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QSlider.E2DAE2C9D4B410D3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QSlider.E2DAE2C9D4B410D3.idx new file mode 100644 index 0000000..f670df8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QSlider.E2DAE2C9D4B410D3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QString.AA5DC64AB27329FD.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QString.AA5DC64AB27329FD.idx new file mode 100644 index 0000000..7c49328 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QString.AA5DC64AB27329FD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QTextStream.6D30DE4912E828F0.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QTextStream.6D30DE4912E828F0.idx new file mode 100644 index 0000000..fc84058 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QTextStream.6D30DE4912E828F0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QThread.8AE510C646AEA435.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QThread.8AE510C646AEA435.idx new file mode 100644 index 0000000..6381800 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QThread.8AE510C646AEA435.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QTimer.B69464AF0C3B9494.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QTimer.B69464AF0C3B9494.idx new file mode 100644 index 0000000..e9a638f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QTimer.B69464AF0C3B9494.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QUrl.B5D73FB71C016E25.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QUrl.B5D73FB71C016E25.idx new file mode 100644 index 0000000..ae3c771 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QUrl.B5D73FB71C016E25.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QVBoxLayout.75F66536EE05FE95.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QVBoxLayout.75F66536EE05FE95.idx new file mode 100644 index 0000000..ce7ad94 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QVBoxLayout.75F66536EE05FE95.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QVector.57D913605476FFBA.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QVector.57D913605476FFBA.idx new file mode 100644 index 0000000..d37371f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QVector.57D913605476FFBA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__FILE.h.3324F85E382E036A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__FILE.h.3324F85E382E036A.idx new file mode 100644 index 0000000..29f14fa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__FILE.h.3324F85E382E036A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__fpos64_t.h.23C43F442076149A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__fpos64_t.h.23C43F442076149A.idx new file mode 100644 index 0000000..c670226 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__fpos64_t.h.23C43F442076149A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__fpos_t.h.ECFBE9EEDAAB6648.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__fpos_t.h.ECFBE9EEDAAB6648.idx new file mode 100644 index 0000000..a1f0d8e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__fpos_t.h.ECFBE9EEDAAB6648.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__locale_t.h.40EA38A2DCA58618.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__locale_t.h.40EA38A2DCA58618.idx new file mode 100644 index 0000000..333f9e9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__locale_t.h.40EA38A2DCA58618.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__mbstate_t.h.6C32CF66236653D7.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__mbstate_t.h.6C32CF66236653D7.idx new file mode 100644 index 0000000..0f0c756 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__mbstate_t.h.6C32CF66236653D7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__sigset_t.h.72131E8056C7E284.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__sigset_t.h.72131E8056C7E284.idx new file mode 100644 index 0000000..c6ee90c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__sigset_t.h.72131E8056C7E284.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___gnuc_va_list.h.9CC5F2E48BD83148.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___gnuc_va_list.h.9CC5F2E48BD83148.idx new file mode 100644 index 0000000..e25fb64 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___gnuc_va_list.h.9CC5F2E48BD83148.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___va_copy.h.14461A1A31B8F874.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___va_copy.h.14461A1A31B8F874.idx new file mode 100644 index 0000000..3e7154c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___va_copy.h.14461A1A31B8F874.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_header_macro.h.551D34A49D3CE963.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_header_macro.h.551D34A49D3CE963.idx new file mode 100644 index 0000000..4890b2f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_header_macro.h.551D34A49D3CE963.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_arg.h.55BC8E5C344094E9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_arg.h.55BC8E5C344094E9.idx new file mode 100644 index 0000000..e7e7943 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_arg.h.55BC8E5C344094E9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_copy.h.DE4CFF5C1E210336.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_copy.h.DE4CFF5C1E210336.idx new file mode 100644 index 0000000..240edc1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_copy.h.DE4CFF5C1E210336.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_list.h.4028E9A8D637650E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_list.h.4028E9A8D637650E.idx new file mode 100644 index 0000000..222b5dd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_list.h.4028E9A8D637650E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_header_macro.h.7A0A7BDC7C918B9E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_header_macro.h.7A0A7BDC7C918B9E.idx new file mode 100644 index 0000000..d77f48b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_header_macro.h.7A0A7BDC7C918B9E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_max_align_t.h.E4485FBF505BBFB2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_max_align_t.h.E4485FBF505BBFB2.idx new file mode 100644 index 0000000..a29f6cb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_max_align_t.h.E4485FBF505BBFB2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_null.h.B1043DD116DDED43.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_null.h.B1043DD116DDED43.idx new file mode 100644 index 0000000..7262bc1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_null.h.B1043DD116DDED43.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_nullptr_t.h.230C047905BEBADE.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_nullptr_t.h.230C047905BEBADE.idx new file mode 100644 index 0000000..9d03210 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_nullptr_t.h.230C047905BEBADE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_offsetof.h.AAF33C3F6AE9327B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_offsetof.h.AAF33C3F6AE9327B.idx new file mode 100644 index 0000000..fa38e6d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_offsetof.h.AAF33C3F6AE9327B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_ptrdiff_t.h.B8165BC51699FAF3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_ptrdiff_t.h.B8165BC51699FAF3.idx new file mode 100644 index 0000000..e42ee06 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_ptrdiff_t.h.B8165BC51699FAF3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_size_t.h.7896A01C817D0EB1.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_size_t.h.7896A01C817D0EB1.idx new file mode 100644 index 0000000..9794d64 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_size_t.h.7896A01C817D0EB1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_wchar_t.h.0BFF0E7A92E16CCE.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_wchar_t.h.0BFF0E7A92E16CCE.idx new file mode 100644 index 0000000..e8b2826 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_wchar_t.h.0BFF0E7A92E16CCE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/algorithm.BB1DD98A0283BBD2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/algorithm.BB1DD98A0283BBD2.idx new file mode 100644 index 0000000..d0d96fa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/algorithm.BB1DD98A0283BBD2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/algorithmfwd.h.BAFC720F76AE0D66.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/algorithmfwd.h.BAFC720F76AE0D66.idx new file mode 100644 index 0000000..3cc3650 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/algorithmfwd.h.BAFC720F76AE0D66.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/align.h.F538AF5501CF5C99.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/align.h.F538AF5501CF5C99.idx new file mode 100644 index 0000000..4b2e504 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/align.h.F538AF5501CF5C99.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/aligned_buffer.h.EF40936234B53958.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/aligned_buffer.h.EF40936234B53958.idx new file mode 100644 index 0000000..01ea251 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/aligned_buffer.h.EF40936234B53958.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloc_traits.h.3F20844836B92A92.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloc_traits.h.3F20844836B92A92.idx new file mode 100644 index 0000000..1b0c63f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloc_traits.h.3F20844836B92A92.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloc_traits.h.AA4FE26E446B6537.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloc_traits.h.AA4FE26E446B6537.idx new file mode 100644 index 0000000..dbb272d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloc_traits.h.AA4FE26E446B6537.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloca.h.793370BF9878CFB6.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloca.h.793370BF9878CFB6.idx new file mode 100644 index 0000000..ee4e2b9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloca.h.793370BF9878CFB6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/allocated_ptr.h.3AE783F1E0C3EEEE.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/allocated_ptr.h.3AE783F1E0C3EEEE.idx new file mode 100644 index 0000000..8e5c22c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/allocated_ptr.h.3AE783F1E0C3EEEE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/allocator.h.78872CA87148A759.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/allocator.h.78872CA87148A759.idx new file mode 100644 index 0000000..40155b1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/allocator.h.78872CA87148A759.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/array.75025A6CC92D7005.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/array.75025A6CC92D7005.idx new file mode 100644 index 0000000..ae32bd1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/array.75025A6CC92D7005.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/assert.h.9895EEC17E1D2A2B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/assert.h.9895EEC17E1D2A2B.idx new file mode 100644 index 0000000..3a71bd1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/assert.h.9895EEC17E1D2A2B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/assertions.h.1A28C16DCCBB9FAF.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/assertions.h.1A28C16DCCBB9FAF.idx new file mode 100644 index 0000000..7c5186c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/assertions.h.1A28C16DCCBB9FAF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic.E2087D4778A6BCBA.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic.E2087D4778A6BCBA.idx new file mode 100644 index 0000000..a22b2c3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic.E2087D4778A6BCBA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_base.h.D53C548BA8BCAB95.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_base.h.D53C548BA8BCAB95.idx new file mode 100644 index 0000000..1101570 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_base.h.D53C548BA8BCAB95.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_futex.h.497B93D6E3F1F945.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_futex.h.497B93D6E3F1F945.idx new file mode 100644 index 0000000..feeb536 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_futex.h.497B93D6E3F1F945.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_lockfree_defines.h.C0F25667B591B578.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_lockfree_defines.h.C0F25667B591B578.idx new file mode 100644 index 0000000..96201f7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_lockfree_defines.h.C0F25667B591B578.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_wide_counter.h.397D66B6BECC0AA2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_wide_counter.h.397D66B6BECC0AA2.idx new file mode 100644 index 0000000..6c7bc67 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_wide_counter.h.397D66B6BECC0AA2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_word.h.A29017D9E7F3291A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_word.h.A29017D9E7F3291A.idx new file mode 100644 index 0000000..33d390c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_word.h.A29017D9E7F3291A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomicity.h.54F003D10E2AD619.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomicity.h.54F003D10E2AD619.idx new file mode 100644 index 0000000..10a4818 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomicity.h.54F003D10E2AD619.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/auto_ptr.h.DA028A6E3E20C44E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/auto_ptr.h.DA028A6E3E20C44E.idx new file mode 100644 index 0000000..c7b9338 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/auto_ptr.h.DA028A6E3E20C44E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_ios.h.3F96DBF72E1E9186.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_ios.h.3F96DBF72E1E9186.idx new file mode 100644 index 0000000..8c6966e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_ios.h.3F96DBF72E1E9186.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_ios.tcc.DD1C817138D19CD8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_ios.tcc.DD1C817138D19CD8.idx new file mode 100644 index 0000000..19cc393 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_ios.tcc.DD1C817138D19CD8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_string.h.C9633CFCF816289A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_string.h.C9633CFCF816289A.idx new file mode 100644 index 0000000..378538c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_string.h.C9633CFCF816289A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_string.tcc.978F9F7C1DF18622.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_string.tcc.978F9F7C1DF18622.idx new file mode 100644 index 0000000..92f6f04 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_string.tcc.978F9F7C1DF18622.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bessel_function.tcc.827D74622018EA1A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bessel_function.tcc.827D74622018EA1A.idx new file mode 100644 index 0000000..0e930a9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bessel_function.tcc.827D74622018EA1A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/beta_function.tcc.5548F9CCC3A0F5B0.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/beta_function.tcc.5548F9CCC3A0F5B0.idx new file mode 100644 index 0000000..e7648db Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/beta_function.tcc.5548F9CCC3A0F5B0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/binders.h.135FCA0EE8FB7493.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/binders.h.135FCA0EE8FB7493.idx new file mode 100644 index 0000000..47db5aa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/binders.h.135FCA0EE8FB7493.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bit.28B2F856B1DB85EA.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bit.28B2F856B1DB85EA.idx new file mode 100644 index 0000000..ee2acf5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bit.28B2F856B1DB85EA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bitsperlong.h.5E13F0A4313F78B3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bitsperlong.h.5E13F0A4313F78B3.idx new file mode 100644 index 0000000..ae5a400 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bitsperlong.h.5E13F0A4313F78B3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bitsperlong.h.B267C684FE143FB5.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bitsperlong.h.B267C684FE143FB5.idx new file mode 100644 index 0000000..f541d09 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bitsperlong.h.B267C684FE143FB5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/brrconverter.cpp.B57AF3F438F5835F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/brrconverter.cpp.B57AF3F438F5835F.idx new file mode 100644 index 0000000..0abf99c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/brrconverter.cpp.B57AF3F438F5835F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/brrconverter.h.ED5AAF9C24A4C6BC.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/brrconverter.h.ED5AAF9C24A4C6BC.idx new file mode 100644 index 0000000..d70435f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/brrconverter.h.ED5AAF9C24A4C6BC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/byteswap.h.E57FF553A16DFAFC.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/byteswap.h.E57FF553A16DFAFC.idx new file mode 100644 index 0000000..55c10fe Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/byteswap.h.E57FF553A16DFAFC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++allocator.h.A4D928DAE285FFAF.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++allocator.h.A4D928DAE285FFAF.idx new file mode 100644 index 0000000..b9df48f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++allocator.h.A4D928DAE285FFAF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++config.h.E55A0FAFEAE7A158.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++config.h.E55A0FAFEAE7A158.idx new file mode 100644 index 0000000..02755fd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++config.h.E55A0FAFEAE7A158.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++locale.h.2618C896A1896386.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++locale.h.2618C896A1896386.idx new file mode 100644 index 0000000..ba5fc58 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++locale.h.2618C896A1896386.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cassert.1992136BCC80A5C9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cassert.1992136BCC80A5C9.idx new file mode 100644 index 0000000..5e41e76 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cassert.1992136BCC80A5C9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cctype.EAC08B603DD03C24.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cctype.EAC08B603DD03C24.idx new file mode 100644 index 0000000..0777e7f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cctype.EAC08B603DD03C24.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cdefs.h.E4D450DF98C1338F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cdefs.h.E4D450DF98C1338F.idx new file mode 100644 index 0000000..305dc43 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cdefs.h.E4D450DF98C1338F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cerrno.1D1A36417D84D43E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cerrno.1D1A36417D84D43E.idx new file mode 100644 index 0000000..982f7d2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cerrno.1D1A36417D84D43E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/char_traits.h.B275C9D19643BC12.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/char_traits.h.B275C9D19643BC12.idx new file mode 100644 index 0000000..ffe6184 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/char_traits.h.B275C9D19643BC12.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/charconv.h.F641103DCF1F42B1.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/charconv.h.F641103DCF1F42B1.idx new file mode 100644 index 0000000..4a5d34c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/charconv.h.F641103DCF1F42B1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/chrono.7A460892D7C2396D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/chrono.7A460892D7C2396D.idx new file mode 100644 index 0000000..5c8d1a0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/chrono.7A460892D7C2396D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/chrono.h.836A7D82EB499E6D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/chrono.h.836A7D82EB499E6D.idx new file mode 100644 index 0000000..389de21 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/chrono.h.836A7D82EB499E6D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/climits.DDA7E9B0A751AC0F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/climits.DDA7E9B0A751AC0F.idx new file mode 100644 index 0000000..baa5a14 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/climits.DDA7E9B0A751AC0F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clocale.FA601010F856C9C7.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clocale.FA601010F856C9C7.idx new file mode 100644 index 0000000..1c518f9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clocale.FA601010F856C9C7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clock_t.h.65AFE5BA7329BCD4.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clock_t.h.65AFE5BA7329BCD4.idx new file mode 100644 index 0000000..5e0794c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clock_t.h.65AFE5BA7329BCD4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clockid_t.h.5545878511E5BAF1.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clockid_t.h.5545878511E5BAF1.idx new file mode 100644 index 0000000..b9f02e9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clockid_t.h.5545878511E5BAF1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/close_range.h.68EB8BD04293AE47.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/close_range.h.68EB8BD04293AE47.idx new file mode 100644 index 0000000..7ea5b14 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/close_range.h.68EB8BD04293AE47.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cmath.1FB8F65D19048A2F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cmath.1FB8F65D19048A2F.idx new file mode 100644 index 0000000..8af6f10 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cmath.1FB8F65D19048A2F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/codecvt.1AB9A4A962A3088E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/codecvt.1AB9A4A962A3088E.idx new file mode 100644 index 0000000..66ab502 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/codecvt.1AB9A4A962A3088E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/codecvt.h.339B274DE87EA6C9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/codecvt.h.339B274DE87EA6C9.idx new file mode 100644 index 0000000..d331481 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/codecvt.h.339B274DE87EA6C9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/compare.B8406D52DC001E10.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/compare.B8406D52DC001E10.idx new file mode 100644 index 0000000..2111a8f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/compare.B8406D52DC001E10.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concept_check.h.9FA668F44F92F11C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concept_check.h.9FA668F44F92F11C.idx new file mode 100644 index 0000000..537abaa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concept_check.h.9FA668F44F92F11C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concepts.0076187433244A88.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concepts.0076187433244A88.idx new file mode 100644 index 0000000..e16a191 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concepts.0076187433244A88.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concurrence.h.C9FC2A8163370AFC.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concurrence.h.C9FC2A8163370AFC.idx new file mode 100644 index 0000000..3cbfaca Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concurrence.h.C9FC2A8163370AFC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/condition_variable.58AA954A883076E8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/condition_variable.58AA954A883076E8.idx new file mode 100644 index 0000000..8466f1c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/condition_variable.58AA954A883076E8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/confname.h.ACD47B58EFD02DD6.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/confname.h.ACD47B58EFD02DD6.idx new file mode 100644 index 0000000..cbd46a0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/confname.h.ACD47B58EFD02DD6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cookie_io_functions_t.h.5A08066DC7F05542.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cookie_io_functions_t.h.5A08066DC7F05542.idx new file mode 100644 index 0000000..0f4de48 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cookie_io_functions_t.h.5A08066DC7F05542.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpp_type_traits.h.E10BE2C4CA45C8EE.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpp_type_traits.h.E10BE2C4CA45C8EE.idx new file mode 100644 index 0000000..aed3385 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpp_type_traits.h.E10BE2C4CA45C8EE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpu-set.h.B40F3E2869BE4FF9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpu-set.h.B40F3E2869BE4FF9.idx new file mode 100644 index 0000000..20a40de Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpu-set.h.B40F3E2869BE4FF9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpu_defines.h.8B227B6531C4DEEE.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpu_defines.h.8B227B6531C4DEEE.idx new file mode 100644 index 0000000..63abc03 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpu_defines.h.8B227B6531C4DEEE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstddef.533DFD42AE9DF6A3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstddef.533DFD42AE9DF6A3.idx new file mode 100644 index 0000000..040a359 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstddef.533DFD42AE9DF6A3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdint.60074C3C51C51FCB.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdint.60074C3C51C51FCB.idx new file mode 100644 index 0000000..c6b7b7e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdint.60074C3C51C51FCB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdio.005601FBE291F299.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdio.005601FBE291F299.idx new file mode 100644 index 0000000..e76fc21 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdio.005601FBE291F299.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdlib.91A0639FE71A041B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdlib.91A0639FE71A041B.idx new file mode 100644 index 0000000..839434d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdlib.91A0639FE71A041B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstring.6476FE0177F75035.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstring.6476FE0177F75035.idx new file mode 100644 index 0000000..084e818 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstring.6476FE0177F75035.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctime.D80ED26B7EFB6367.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctime.D80ED26B7EFB6367.idx new file mode 100644 index 0000000..25d0c4d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctime.D80ED26B7EFB6367.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype.h.B268CEA0CECCFC59.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype.h.B268CEA0CECCFC59.idx new file mode 100644 index 0000000..87b3abb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype.h.B268CEA0CECCFC59.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype_base.h.53270CC07DAA347E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype_base.h.53270CC07DAA347E.idx new file mode 100644 index 0000000..15745e1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype_base.h.53270CC07DAA347E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype_inline.h.093E57B495F70250.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype_inline.h.093E57B495F70250.idx new file mode 100644 index 0000000..5616414 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype_inline.h.093E57B495F70250.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cwchar.9BBFFEFB1B47793B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cwchar.9BBFFEFB1B47793B.idx new file mode 100644 index 0000000..a8abc23 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cwchar.9BBFFEFB1B47793B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cwctype.F7BAF964220657F5.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cwctype.F7BAF964220657F5.idx new file mode 100644 index 0000000..c130400 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cwctype.F7BAF964220657F5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cxxabi_forced.h.39654E71E8A80657.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cxxabi_forced.h.39654E71E8A80657.idx new file mode 100644 index 0000000..bed53af Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cxxabi_forced.h.39654E71E8A80657.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cxxabi_init_exception.h.3992AA317DDA00A7.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cxxabi_init_exception.h.3992AA317DDA00A7.idx new file mode 100644 index 0000000..cdb9180 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cxxabi_init_exception.h.3992AA317DDA00A7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/debug.h.487B6441ED001EE6.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/debug.h.487B6441ED001EE6.idx new file mode 100644 index 0000000..cc37123 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/debug.h.487B6441ED001EE6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ell_integral.tcc.B2ED73CE8B8E2958.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ell_integral.tcc.B2ED73CE8B8E2958.idx new file mode 100644 index 0000000..21605c6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ell_integral.tcc.B2ED73CE8B8E2958.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/enable_special_members.h.C067023764851CA2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/enable_special_members.h.C067023764851CA2.idx new file mode 100644 index 0000000..e7a598d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/enable_special_members.h.C067023764851CA2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endian.h.1FC6A4D6D2846204.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endian.h.1FC6A4D6D2846204.idx new file mode 100644 index 0000000..b70a2a3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endian.h.1FC6A4D6D2846204.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endian.h.20F8E286A486EE09.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endian.h.20F8E286A486EE09.idx new file mode 100644 index 0000000..53a1579 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endian.h.20F8E286A486EE09.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endianness.h.F2D2CC6251A4EAFA.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endianness.h.F2D2CC6251A4EAFA.idx new file mode 100644 index 0000000..26b5106 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endianness.h.F2D2CC6251A4EAFA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/environments.h.AA09E46153D7F6D9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/environments.h.AA09E46153D7F6D9.idx new file mode 100644 index 0000000..29e1a0f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/environments.h.AA09E46153D7F6D9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/erase_if.h.CE2BA3A5A917F3AC.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/erase_if.h.CE2BA3A5A917F3AC.idx new file mode 100644 index 0000000..d3918d5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/erase_if.h.CE2BA3A5A917F3AC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno-base.h.23FC55A99C73A727.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno-base.h.23FC55A99C73A727.idx new file mode 100644 index 0000000..547f8ce Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno-base.h.23FC55A99C73A727.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.063064A523A47758.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.063064A523A47758.idx new file mode 100644 index 0000000..51c7ce9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.063064A523A47758.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.10013861918E601A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.10013861918E601A.idx new file mode 100644 index 0000000..b5ee967 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.10013861918E601A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.19BCCCD58DA5623E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.19BCCCD58DA5623E.idx new file mode 100644 index 0000000..7b2d22e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.19BCCCD58DA5623E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.3F8ECD84FB880B64.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.3F8ECD84FB880B64.idx new file mode 100644 index 0000000..3a71230 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.3F8ECD84FB880B64.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.F248BDE3D519052A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.F248BDE3D519052A.idx new file mode 100644 index 0000000..cd2acf5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.F248BDE3D519052A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/error_constants.h.4FA778F20895A791.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/error_constants.h.4FA778F20895A791.idx new file mode 100644 index 0000000..1860651 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/error_constants.h.4FA778F20895A791.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/error_t.h.58D3895A591B592D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/error_t.h.58D3895A591B592D.idx new file mode 100644 index 0000000..4112162 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/error_t.h.58D3895A591B592D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception.6B89E2FE29CCB363.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception.6B89E2FE29CCB363.idx new file mode 100644 index 0000000..149b3c0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception.6B89E2FE29CCB363.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception.h.419F08EE1A528659.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception.h.419F08EE1A528659.idx new file mode 100644 index 0000000..a9e70d9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception.h.419F08EE1A528659.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception_defines.h.D5DD63B05A609061.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception_defines.h.D5DD63B05A609061.idx new file mode 100644 index 0000000..0fd248a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception_defines.h.D5DD63B05A609061.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception_ptr.h.9B06C068E0F33DA4.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception_ptr.h.9B06C068E0F33DA4.idx new file mode 100644 index 0000000..c38bc4e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception_ptr.h.9B06C068E0F33DA4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/execution_defs.h.E953920960A97FBB.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/execution_defs.h.E953920960A97FBB.idx new file mode 100644 index 0000000..f2fb8c4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/execution_defs.h.E953920960A97FBB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exp_integral.tcc.9562AE068E8C915F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exp_integral.tcc.9562AE068E8C915F.idx new file mode 100644 index 0000000..b89ad53 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exp_integral.tcc.9562AE068E8C915F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/falloc.h.5C586ED1D55FF40E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/falloc.h.5C586ED1D55FF40E.idx new file mode 100644 index 0000000..e835f22 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/falloc.h.5C586ED1D55FF40E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl-linux.h.B59A22F1AA8971F5.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl-linux.h.B59A22F1AA8971F5.idx new file mode 100644 index 0000000..91cc453 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl-linux.h.B59A22F1AA8971F5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl.h.B275FA9E57415C0F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl.h.B275FA9E57415C0F.idx new file mode 100644 index 0000000..1dd7bdd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl.h.B275FA9E57415C0F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl.h.FAA28F3AAA9C8758.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl.h.FAA28F3AAA9C8758.idx new file mode 100644 index 0000000..26694b6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl.h.FAA28F3AAA9C8758.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/features-time64.h.BFBA8D3CA0316037.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/features-time64.h.BFBA8D3CA0316037.idx new file mode 100644 index 0000000..f788bd7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/features-time64.h.BFBA8D3CA0316037.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/features.h.5A4ED7C80201A723.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/features.h.5A4ED7C80201A723.idx new file mode 100644 index 0000000..70ea911 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/features.h.5A4ED7C80201A723.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/filesystem.87BB53D3495C350D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/filesystem.87BB53D3495C350D.idx new file mode 100644 index 0000000..9e30d2e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/filesystem.87BB53D3495C350D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/floatn-common.h.0FE8C4DDCB84E088.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/floatn-common.h.0FE8C4DDCB84E088.idx new file mode 100644 index 0000000..c360183 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/floatn-common.h.0FE8C4DDCB84E088.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/floatn.h.DA21C738CC1B6ABF.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/floatn.h.DA21C738CC1B6ABF.idx new file mode 100644 index 0000000..c3dc77d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/floatn.h.DA21C738CC1B6ABF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/flt-eval-method.h.8058951BDB657B4B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/flt-eval-method.h.8058951BDB657B4B.idx new file mode 100644 index 0000000..7a38d49 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/flt-eval-method.h.8058951BDB657B4B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fp-fast.h.72CDF40E7648EF43.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fp-fast.h.72CDF40E7648EF43.idx new file mode 100644 index 0000000..3511ce2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fp-fast.h.72CDF40E7648EF43.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fp-logb.h.EA7AC5545F14BC26.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fp-logb.h.EA7AC5545F14BC26.idx new file mode 100644 index 0000000..6dda7f9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fp-logb.h.EA7AC5545F14BC26.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_dir.h.26505C8349C4DC41.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_dir.h.26505C8349C4DC41.idx new file mode 100644 index 0000000..019a941 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_dir.h.26505C8349C4DC41.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_fwd.h.99A2068986E492DE.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_fwd.h.99A2068986E492DE.idx new file mode 100644 index 0000000..168f55a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_fwd.h.99A2068986E492DE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_ops.h.04896CE11A4980DC.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_ops.h.04896CE11A4980DC.idx new file mode 100644 index 0000000..fead93d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_ops.h.04896CE11A4980DC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_path.h.C14DC9492B212A2C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_path.h.C14DC9492B212A2C.idx new file mode 100644 index 0000000..93863a9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_path.h.C14DC9492B212A2C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functexcept.h.6A2E89F17310DE95.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functexcept.h.6A2E89F17310DE95.idx new file mode 100644 index 0000000..8bf86f2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functexcept.h.6A2E89F17310DE95.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functional.EBD8D92EE2685F2E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functional.EBD8D92EE2685F2E.idx new file mode 100644 index 0000000..755f5fb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functional.EBD8D92EE2685F2E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functional_hash.h.7C1C671B84E9A052.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functional_hash.h.7C1C671B84E9A052.idx new file mode 100644 index 0000000..75561c2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functional_hash.h.7C1C671B84E9A052.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/future.920A5FDE69D2420D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/future.920A5FDE69D2420D.idx new file mode 100644 index 0000000..e4e4e21 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/future.920A5FDE69D2420D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gamma.tcc.0AC377AF59DD67EC.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gamma.tcc.0AC377AF59DD67EC.idx new file mode 100644 index 0000000..a71676d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gamma.tcc.0AC377AF59DD67EC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/getopt_core.h.D7307CF3828B57B6.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/getopt_core.h.D7307CF3828B57B6.idx new file mode 100644 index 0000000..1be8f2e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/getopt_core.h.D7307CF3828B57B6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/getopt_posix.h.EAB1D9CAA7EB87EE.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/getopt_posix.h.EAB1D9CAA7EB87EE.idx new file mode 100644 index 0000000..4f01765 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/getopt_posix.h.EAB1D9CAA7EB87EE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_algorithm_defs.h.1B2AB35F3BCAAE9B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_algorithm_defs.h.1B2AB35F3BCAAE9B.idx new file mode 100644 index 0000000..74b8c5c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_algorithm_defs.h.1B2AB35F3BCAAE9B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_memory_defs.h.1478E023BF4E859A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_memory_defs.h.1478E023BF4E859A.idx new file mode 100644 index 0000000..b292631 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_memory_defs.h.1478E023BF4E859A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_numeric_defs.h.6F482C50EB69C213.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_numeric_defs.h.6F482C50EB69C213.idx new file mode 100644 index 0000000..0de1846 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_numeric_defs.h.6F482C50EB69C213.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gthr-default.h.B4399EDA94C1DBA8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gthr-default.h.B4399EDA94C1DBA8.idx new file mode 100644 index 0000000..a71a303 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gthr-default.h.B4399EDA94C1DBA8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gthr.h.163104A5B09814C3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gthr.h.163104A5B09814C3.idx new file mode 100644 index 0000000..e9e7d64 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gthr.h.163104A5B09814C3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hash_bytes.h.5DA111BE3DBDA86B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hash_bytes.h.5DA111BE3DBDA86B.idx new file mode 100644 index 0000000..a4d9823 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hash_bytes.h.5DA111BE3DBDA86B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hashtable.h.81FE3D6C6B9929F8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hashtable.h.81FE3D6C6B9929F8.idx new file mode 100644 index 0000000..87a658a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hashtable.h.81FE3D6C6B9929F8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hashtable_policy.h.1845EBBCBD7913D2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hashtable_policy.h.1845EBBCBD7913D2.idx new file mode 100644 index 0000000..518501f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hashtable_policy.h.1845EBBCBD7913D2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hypergeometric.tcc.DBB697EDF574792C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hypergeometric.tcc.DBB697EDF574792C.idx new file mode 100644 index 0000000..ab587c8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hypergeometric.tcc.DBB697EDF574792C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/initializer_list.0F8FB75E68F1322D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/initializer_list.0F8FB75E68F1322D.idx new file mode 100644 index 0000000..299dd0f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/initializer_list.0F8FB75E68F1322D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/int-ll64.h.AE74C618A4956C59.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/int-ll64.h.AE74C618A4956C59.idx new file mode 100644 index 0000000..6e105a3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/int-ll64.h.AE74C618A4956C59.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/invoke.h.4DE14F00D80C8CB5.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/invoke.h.4DE14F00D80C8CB5.idx new file mode 100644 index 0000000..5f2b3fd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/invoke.h.4DE14F00D80C8CB5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iomanip.CDA664675158F75A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iomanip.CDA664675158F75A.idx new file mode 100644 index 0000000..594f28b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iomanip.CDA664675158F75A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ios.F814CA2CC37C485B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ios.F814CA2CC37C485B.idx new file mode 100644 index 0000000..3f900b3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ios.F814CA2CC37C485B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ios_base.h.29FE44CB0EBD9887.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ios_base.h.29FE44CB0EBD9887.idx new file mode 100644 index 0000000..54fbf36 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ios_base.h.29FE44CB0EBD9887.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iosfwd.D1495D7D8DC7F071.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iosfwd.D1495D7D8DC7F071.idx new file mode 100644 index 0000000..938acf9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iosfwd.D1495D7D8DC7F071.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iscanonical.h.C53E44E13856FCEA.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iscanonical.h.C53E44E13856FCEA.idx new file mode 100644 index 0000000..892a6b4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iscanonical.h.C53E44E13856FCEA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/istream.D57E10FDB0F98F04.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/istream.D57E10FDB0F98F04.idx new file mode 100644 index 0000000..183fa5c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/istream.D57E10FDB0F98F04.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/istream.tcc.3A5B94B32DCFC411.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/istream.tcc.3A5B94B32DCFC411.idx new file mode 100644 index 0000000..18295e2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/istream.tcc.3A5B94B32DCFC411.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iterator.AD004068EF8F8235.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iterator.AD004068EF8F8235.idx new file mode 100644 index 0000000..e8be515 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iterator.AD004068EF8F8235.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/legendre_function.tcc.FE5ECA8045ACF33F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/legendre_function.tcc.FE5ECA8045ACF33F.idx new file mode 100644 index 0000000..45767ef Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/legendre_function.tcc.FE5ECA8045ACF33F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libc-header-start.h.E88219B53B0B0BF5.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libc-header-start.h.E88219B53B0B0BF5.idx new file mode 100644 index 0000000..fbc23a9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libc-header-start.h.E88219B53B0B0BF5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libintl.h.929023AD77A09335.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libintl.h.929023AD77A09335.idx new file mode 100644 index 0000000..36cd219 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libintl.h.929023AD77A09335.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libm-simd-decl-stubs.h.06B70A57602EA3C8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libm-simd-decl-stubs.h.06B70A57602EA3C8.idx new file mode 100644 index 0000000..67821e6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libm-simd-decl-stubs.h.06B70A57602EA3C8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.F1E01A923CBD84EA.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.F1E01A923CBD84EA.idx new file mode 100644 index 0000000..9294242 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.F1E01A923CBD84EA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.1DFE7D0FE6434B13.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.1DFE7D0FE6434B13.idx new file mode 100644 index 0000000..0158ef7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.1DFE7D0FE6434B13.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.37EB7A5A45E8E51F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.37EB7A5A45E8E51F.idx new file mode 100644 index 0000000..8a38155 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.37EB7A5A45E8E51F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.C293B8934AC926BB.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.C293B8934AC926BB.idx new file mode 100644 index 0000000..de32693 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.C293B8934AC926BB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/list.CD88FE111C2D2B92.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/list.CD88FE111C2D2B92.idx new file mode 100644 index 0000000..e6165c5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/list.CD88FE111C2D2B92.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/list.tcc.F828FFC74BE3C6B9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/list.tcc.F828FFC74BE3C6B9.idx new file mode 100644 index 0000000..e8680e5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/list.tcc.F828FFC74BE3C6B9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/local_lim.h.2CFD657F256B117E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/local_lim.h.2CFD657F256B117E.idx new file mode 100644 index 0000000..e011fae Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/local_lim.h.2CFD657F256B117E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.D346B965B0BBD9BE.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.D346B965B0BBD9BE.idx new file mode 100644 index 0000000..5cb145f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.D346B965B0BBD9BE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.h.E3C63D05A4E78516.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.h.E3C63D05A4E78516.idx new file mode 100644 index 0000000..f5ce240 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.h.E3C63D05A4E78516.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.h.F1B51844858762D2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.h.F1B51844858762D2.idx new file mode 100644 index 0000000..0eff35c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.h.F1B51844858762D2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_classes.h.78EEDF5119140059.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_classes.h.78EEDF5119140059.idx new file mode 100644 index 0000000..3cff38e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_classes.h.78EEDF5119140059.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_classes.tcc.ECD52E05F047CAC6.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_classes.tcc.ECD52E05F047CAC6.idx new file mode 100644 index 0000000..f4c90d3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_classes.tcc.ECD52E05F047CAC6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_conv.h.3350A87A5080F7D4.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_conv.h.3350A87A5080F7D4.idx new file mode 100644 index 0000000..a6cc9bc Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_conv.h.3350A87A5080F7D4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets.h.AB77484D55AA9729.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets.h.AB77484D55AA9729.idx new file mode 100644 index 0000000..d372625 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets.h.AB77484D55AA9729.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets.tcc.31137666C322AAAB.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets.tcc.31137666C322AAAB.idx new file mode 100644 index 0000000..51ec872 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets.tcc.31137666C322AAAB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets_nonio.h.462182D41E3B345B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets_nonio.h.462182D41E3B345B.idx new file mode 100644 index 0000000..963d841 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets_nonio.h.462182D41E3B345B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets_nonio.tcc.E76885F262EE6A53.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets_nonio.tcc.E76885F262EE6A53.idx new file mode 100644 index 0000000..973247c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets_nonio.tcc.E76885F262EE6A53.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_t.h.557516A6B361170F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_t.h.557516A6B361170F.idx new file mode 100644 index 0000000..57f7b69 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_t.h.557516A6B361170F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/localefwd.h.BD8637AD0ECADD37.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/localefwd.h.BD8637AD0ECADD37.idx new file mode 100644 index 0000000..0aad289 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/localefwd.h.BD8637AD0ECADD37.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/long-double.h.ACD735A1862B6BF8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/long-double.h.ACD735A1862B6BF8.idx new file mode 100644 index 0000000..e0fea1d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/long-double.h.ACD735A1862B6BF8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/main.cpp.2E7C0AAC4A3C6546.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/main.cpp.2E7C0AAC4A3C6546.idx new file mode 100644 index 0000000..650ee72 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/main.cpp.2E7C0AAC4A3C6546.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/map.DE97978A3D328246.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/map.DE97978A3D328246.idx new file mode 100644 index 0000000..dfc8b37 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/map.DE97978A3D328246.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math-vector.h.B3EAC58DA1700969.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math-vector.h.B3EAC58DA1700969.idx new file mode 100644 index 0000000..ef26ca0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math-vector.h.B3EAC58DA1700969.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math.h.14F03C28EA747D5E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math.h.14F03C28EA747D5E.idx new file mode 100644 index 0000000..ae87f1e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math.h.14F03C28EA747D5E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math.h.DE4D39AAF5AC2C76.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math.h.DE4D39AAF5AC2C76.idx new file mode 100644 index 0000000..9962a94 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math.h.DE4D39AAF5AC2C76.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-helper-functions.h.934C8C52064E404C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-helper-functions.h.934C8C52064E404C.idx new file mode 100644 index 0000000..1626145 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-helper-functions.h.934C8C52064E404C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-macros.h.768282BB7A7E48E3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-macros.h.768282BB7A7E48E3.idx new file mode 100644 index 0000000..d663232 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-macros.h.768282BB7A7E48E3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-narrow.h.EF4B0E9378BD4EE1.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-narrow.h.EF4B0E9378BD4EE1.idx new file mode 100644 index 0000000..0c02291 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-narrow.h.EF4B0E9378BD4EE1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls.h.655A2220FF0677F8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls.h.655A2220FF0677F8.idx new file mode 100644 index 0000000..6258b42 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls.h.655A2220FF0677F8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mbstate_t.h.F9237FB65FF84D5A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mbstate_t.h.F9237FB65FF84D5A.idx new file mode 100644 index 0000000..a7620e7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mbstate_t.h.F9237FB65FF84D5A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memory.4C32146D9B4E31E4.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memory.4C32146D9B4E31E4.idx new file mode 100644 index 0000000..72c12a3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memory.4C32146D9B4E31E4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memory_resource.h.D6E8FB3BE6377562.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memory_resource.h.D6E8FB3BE6377562.idx new file mode 100644 index 0000000..275bb82 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memory_resource.h.D6E8FB3BE6377562.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memoryfwd.h.2916FFF118FE7461.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memoryfwd.h.2916FFF118FE7461.idx new file mode 100644 index 0000000..55b5d15 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memoryfwd.h.2916FFF118FE7461.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/messages_members.h.D40E959B2D68C3A2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/messages_members.h.D40E959B2D68C3A2.idx new file mode 100644 index 0000000..6d9b972 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/messages_members.h.D40E959B2D68C3A2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/modified_bessel_func.tcc.D6FDB56C1B7B99CC.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/modified_bessel_func.tcc.D6FDB56C1B7B99CC.idx new file mode 100644 index 0000000..4ec486d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/modified_bessel_func.tcc.D6FDB56C1B7B99CC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/monostate.h.A9ED8D82399203B1.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/monostate.h.A9ED8D82399203B1.idx new file mode 100644 index 0000000..8f083b7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/monostate.h.A9ED8D82399203B1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/move.h.F68CE1A1252A72E2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/move.h.F68CE1A1252A72E2.idx new file mode 100644 index 0000000..986744c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/move.h.F68CE1A1252A72E2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mutex.8FB456ACA0898AF6.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mutex.8FB456ACA0898AF6.idx new file mode 100644 index 0000000..bfb78fe Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mutex.8FB456ACA0898AF6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/nested_exception.h.A121E9D338080312.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/nested_exception.h.A121E9D338080312.idx new file mode 100644 index 0000000..e009d6d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/nested_exception.h.A121E9D338080312.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/new.887BB2C83B5C2EC3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/new.887BB2C83B5C2EC3.idx new file mode 100644 index 0000000..1d8101e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/new.887BB2C83B5C2EC3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/new_allocator.h.EA4A6D67D72040EF.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/new_allocator.h.EA4A6D67D72040EF.idx new file mode 100644 index 0000000..75bf997 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/new_allocator.h.EA4A6D67D72040EF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/node_handle.h.66ADE5E25F866D36.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/node_handle.h.66ADE5E25F866D36.idx new file mode 100644 index 0000000..df34548 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/node_handle.h.66ADE5E25F866D36.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/numeric.DDB77E73C6A4241A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/numeric.DDB77E73C6A4241A.idx new file mode 100644 index 0000000..f55e70a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/numeric.DDB77E73C6A4241A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/numeric_traits.h.DBEB651AF0B4D178.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/numeric_traits.h.DBEB651AF0B4D178.idx new file mode 100644 index 0000000..bb549dd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/numeric_traits.h.DBEB651AF0B4D178.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/optional.70817A28CDE8555F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/optional.70817A28CDE8555F.idx new file mode 100644 index 0000000..4424a1b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/optional.70817A28CDE8555F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/os_defines.h.F9186670C5153E45.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/os_defines.h.F9186670C5153E45.idx new file mode 100644 index 0000000..73fc73e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/os_defines.h.F9186670C5153E45.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.24D537B442EB644F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.24D537B442EB644F.idx new file mode 100644 index 0000000..240aa94 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.24D537B442EB644F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.h.7A40D9456CF08219.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.h.7A40D9456CF08219.idx new file mode 100644 index 0000000..dbff95c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.h.7A40D9456CF08219.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.tcc.27EB1145F2AD662F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.tcc.27EB1145F2AD662F.idx new file mode 100644 index 0000000..9618924 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.tcc.27EB1145F2AD662F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream_insert.h.AD996E301A7D9206.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream_insert.h.AD996E301A7D9206.idx new file mode 100644 index 0000000..5023a6c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream_insert.h.AD996E301A7D9206.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/parse_numbers.h.9EB9A233B7E5240D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/parse_numbers.h.9EB9A233B7E5240D.idx new file mode 100644 index 0000000..b7f9458 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/parse_numbers.h.9EB9A233B7E5240D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/poly_hermite.tcc.BE450385D148C405.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/poly_hermite.tcc.BE450385D148C405.idx new file mode 100644 index 0000000..61b690a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/poly_hermite.tcc.BE450385D148C405.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/poly_laguerre.tcc.68AA80AC6E442574.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/poly_laguerre.tcc.68AA80AC6E442574.idx new file mode 100644 index 0000000..796a058 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/poly_laguerre.tcc.68AA80AC6E442574.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix1_lim.h.D94E4687FC9359FF.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix1_lim.h.D94E4687FC9359FF.idx new file mode 100644 index 0000000..233fd0d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix1_lim.h.D94E4687FC9359FF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix2_lim.h.430DA38A1F301F29.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix2_lim.h.430DA38A1F301F29.idx new file mode 100644 index 0000000..3a5d49d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix2_lim.h.430DA38A1F301F29.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_opt.h.1A6B676984A189EC.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_opt.h.1A6B676984A189EC.idx new file mode 100644 index 0000000..82030f7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_opt.h.1A6B676984A189EC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.6FF29373B7D6D92A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.6FF29373B7D6D92A.idx new file mode 100644 index 0000000..2ab0075 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.6FF29373B7D6D92A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.825B0F552923DCCC.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.825B0F552923DCCC.idx new file mode 100644 index 0000000..ae54f41 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.825B0F552923DCCC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.8EBBF1FC83D6AE77.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.8EBBF1FC83D6AE77.idx new file mode 100644 index 0000000..427bfc7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.8EBBF1FC83D6AE77.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types_64.h.90EEA81235A75C1A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types_64.h.90EEA81235A75C1A.idx new file mode 100644 index 0000000..57c8bcf Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types_64.h.90EEA81235A75C1A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/postypes.h.A34B9F6AE501999F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/postypes.h.A34B9F6AE501999F.idx new file mode 100644 index 0000000..4b1b424 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/postypes.h.A34B9F6AE501999F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/predefined_ops.h.C255C666336A3121.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/predefined_ops.h.C255C666336A3121.idx new file mode 100644 index 0000000..69b7e62 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/predefined_ops.h.C255C666336A3121.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pstl_config.h.667922AC93F6D702.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pstl_config.h.667922AC93F6D702.idx new file mode 100644 index 0000000..2e1c299 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pstl_config.h.667922AC93F6D702.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthread.h.022320E0CE01A46D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthread.h.022320E0CE01A46D.idx new file mode 100644 index 0000000..60293b9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthread.h.022320E0CE01A46D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthread_stack_min-dynamic.h.6F432801F0DF58B7.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthread_stack_min-dynamic.h.6F432801F0DF58B7.idx new file mode 100644 index 0000000..5b6b105 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthread_stack_min-dynamic.h.6F432801F0DF58B7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthreadtypes-arch.h.9E138C411BE448A0.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthreadtypes-arch.h.9E138C411BE448A0.idx new file mode 100644 index 0000000..921ca96 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthreadtypes-arch.h.9E138C411BE448A0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthreadtypes.h.BAA8217B62BB6E86.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthreadtypes.h.BAA8217B62BB6E86.idx new file mode 100644 index 0000000..afa4a7e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthreadtypes.h.BAA8217B62BB6E86.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ptr_traits.h.B3383B435CA2BEB5.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ptr_traits.h.B3383B435CA2BEB5.idx new file mode 100644 index 0000000..1c03474 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ptr_traits.h.B3383B435CA2BEB5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q17memory.h.B9D3D503F069B999.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q17memory.h.B9D3D503F069B999.idx new file mode 100644 index 0000000..24d3ac3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q17memory.h.B9D3D503F069B999.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20functional.h.9AA7C33106EB07A0.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20functional.h.9AA7C33106EB07A0.idx new file mode 100644 index 0000000..52e3bcc Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20functional.h.9AA7C33106EB07A0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20iterator.h.3278987A474ECF35.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20iterator.h.3278987A474ECF35.idx new file mode 100644 index 0000000..ef9278e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20iterator.h.3278987A474ECF35.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20memory.h.CD59814DAF23B038.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20memory.h.CD59814DAF23B038.idx new file mode 100644 index 0000000..66bc0f9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20memory.h.CD59814DAF23B038.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20type_traits.h.645773E246F90516.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20type_traits.h.645773E246F90516.idx new file mode 100644 index 0000000..ec3a532 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20type_traits.h.645773E246F90516.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20utility.h.F57A610C40F1A8DA.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20utility.h.F57A610C40F1A8DA.idx new file mode 100644 index 0000000..f5c3712 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20utility.h.F57A610C40F1A8DA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q23type_traits.h.E91B98CA03C74840.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q23type_traits.h.E91B98CA03C74840.idx new file mode 100644 index 0000000..1f7ff4b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q23type_traits.h.E91B98CA03C74840.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q23utility.h.8D47E927C6F1442F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q23utility.h.8D47E927C6F1442F.idx new file mode 100644 index 0000000..ae096d3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q23utility.h.8D47E927C6F1442F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractbutton.h.F40635823B1B9552.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractbutton.h.F40635823B1B9552.idx new file mode 100644 index 0000000..17033f9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractbutton.h.F40635823B1B9552.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstracteventdispatcher.h.FBB165F74E29C831.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstracteventdispatcher.h.FBB165F74E29C831.idx new file mode 100644 index 0000000..a975eeb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstracteventdispatcher.h.FBB165F74E29C831.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemdelegate.h.04B9E52DD7767DFE.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemdelegate.h.04B9E52DD7767DFE.idx new file mode 100644 index 0000000..61fae9a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemdelegate.h.04B9E52DD7767DFE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemmodel.h.EE01BF27C8B38F42.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemmodel.h.EE01BF27C8B38F42.idx new file mode 100644 index 0000000..d4df30a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemmodel.h.EE01BF27C8B38F42.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemview.h.6FEEA42310297BBC.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemview.h.6FEEA42310297BBC.idx new file mode 100644 index 0000000..2522414 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemview.h.6FEEA42310297BBC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractscrollarea.h.F88958075E62064D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractscrollarea.h.F88958075E62064D.idx new file mode 100644 index 0000000..61c67e1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractscrollarea.h.F88958075E62064D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractslider.h.CD46E207196A000D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractslider.h.CD46E207196A000D.idx new file mode 100644 index 0000000..912ff93 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractslider.h.CD46E207196A000D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractspinbox.h.D6FC17A84363A267.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractspinbox.h.D6FC17A84363A267.idx new file mode 100644 index 0000000..4cfe196 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractspinbox.h.D6FC17A84363A267.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaction.h.2602002DEDC9CBF0.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaction.h.2602002DEDC9CBF0.idx new file mode 100644 index 0000000..f480117 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaction.h.2602002DEDC9CBF0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qalgorithms.h.7BF875813982504D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qalgorithms.h.7BF875813982504D.idx new file mode 100644 index 0000000..29dcbbf Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qalgorithms.h.7BF875813982504D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qalloc.h.40A666B362F08017.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qalloc.h.40A666B362F08017.idx new file mode 100644 index 0000000..a9677eb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qalloc.h.40A666B362F08017.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qanystringview.h.1C29A3AC5D122DCC.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qanystringview.h.1C29A3AC5D122DCC.idx new file mode 100644 index 0000000..15d5d57 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qanystringview.h.1C29A3AC5D122DCC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qapplication.h.9C173C9865252E11.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qapplication.h.9C173C9865252E11.idx new file mode 100644 index 0000000..c7aab17 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qapplication.h.9C173C9865252E11.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydata.h.27184FEAC06C0FC0.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydata.h.27184FEAC06C0FC0.idx new file mode 100644 index 0000000..ad4232a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydata.h.27184FEAC06C0FC0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydataops.h.76AEBAA3D35DA798.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydataops.h.76AEBAA3D35DA798.idx new file mode 100644 index 0000000..4c52c9a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydataops.h.76AEBAA3D35DA798.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydatapointer.h.7F4F979410A48278.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydatapointer.h.7F4F979410A48278.idx new file mode 100644 index 0000000..c3398a8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydatapointer.h.7F4F979410A48278.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qassert.h.8208A6111CC9448D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qassert.h.8208A6111CC9448D.idx new file mode 100644 index 0000000..aa98c58 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qassert.h.8208A6111CC9448D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qatomic.h.4C7856969715000F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qatomic.h.4C7856969715000F.idx new file mode 100644 index 0000000..6c1fbad Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qatomic.h.4C7856969715000F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qatomic_cxx11.h.55EAA7DF70A55C47.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qatomic_cxx11.h.55EAA7DF70A55C47.idx new file mode 100644 index 0000000..dbe801e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qatomic_cxx11.h.55EAA7DF70A55C47.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudio.h.8DBEC8AD0F9AF239.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudio.h.8DBEC8AD0F9AF239.idx new file mode 100644 index 0000000..97069d1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudio.h.8DBEC8AD0F9AF239.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudioformat.h.A3ABB756260FA551.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudioformat.h.A3ABB756260FA551.idx new file mode 100644 index 0000000..77e0b89 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudioformat.h.A3ABB756260FA551.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudiooutput.h.EBCFDD0822ED8DC7.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudiooutput.h.EBCFDD0822ED8DC7.idx new file mode 100644 index 0000000..9dd1a62 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudiooutput.h.EBCFDD0822ED8DC7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbasicatomic.h.F5B411EAAF963A38.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbasicatomic.h.F5B411EAAF963A38.idx new file mode 100644 index 0000000..5fe27ce Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbasicatomic.h.F5B411EAAF963A38.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbasictimer.h.34F0B7C43F4851CF.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbasictimer.h.34F0B7C43F4851CF.idx new file mode 100644 index 0000000..c4165db Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbasictimer.h.34F0B7C43F4851CF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbindingstorage.h.CEC03B098FA362E7.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbindingstorage.h.CEC03B098FA362E7.idx new file mode 100644 index 0000000..bf9e256 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbindingstorage.h.CEC03B098FA362E7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbitmap.h.907A1A52CA5D77D9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbitmap.h.907A1A52CA5D77D9.idx new file mode 100644 index 0000000..6d4ffec Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbitmap.h.907A1A52CA5D77D9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qboxlayout.h.7DB3224FFDBBFA88.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qboxlayout.h.7DB3224FFDBBFA88.idx new file mode 100644 index 0000000..4c7a564 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qboxlayout.h.7DB3224FFDBBFA88.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbrush.h.63D6CF74BD7918A4.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbrush.h.63D6CF74BD7918A4.idx new file mode 100644 index 0000000..9e3951a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbrush.h.63D6CF74BD7918A4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbuffer.h.43C8CA764663C4D1.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbuffer.h.43C8CA764663C4D1.idx new file mode 100644 index 0000000..2f0e556 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbuffer.h.43C8CA764663C4D1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearray.h.565E11F4C516827F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearray.h.565E11F4C516827F.idx new file mode 100644 index 0000000..75f631e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearray.h.565E11F4C516827F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearrayalgorithms.h.A8D389D1C817D78A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearrayalgorithms.h.A8D389D1C817D78A.idx new file mode 100644 index 0000000..29f8e60 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearrayalgorithms.h.A8D389D1C817D78A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearraylist.h.BB8A9B201432A8EB.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearraylist.h.BB8A9B201432A8EB.idx new file mode 100644 index 0000000..b73cb91 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearraylist.h.BB8A9B201432A8EB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearrayview.h.7F41FF716349EFDD.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearrayview.h.7F41FF716349EFDD.idx new file mode 100644 index 0000000..c46d372 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearrayview.h.7F41FF716349EFDD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcalendar.h.EF61213D86554591.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcalendar.h.EF61213D86554591.idx new file mode 100644 index 0000000..f9cd8a5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcalendar.h.EF61213D86554591.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qchar.h.B3E003C2BDBD2900.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qchar.h.B3E003C2BDBD2900.idx new file mode 100644 index 0000000..c4d4db1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qchar.h.B3E003C2BDBD2900.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcheckbox.h.54FD0BEE6898FE13.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcheckbox.h.54FD0BEE6898FE13.idx new file mode 100644 index 0000000..a8e5380 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcheckbox.h.54FD0BEE6898FE13.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcheckedint_impl.h.2E2C907274E97556.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcheckedint_impl.h.2E2C907274E97556.idx new file mode 100644 index 0000000..f563b20 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcheckedint_impl.h.2E2C907274E97556.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcolor.h.F6E063DC61692564.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcolor.h.F6E063DC61692564.idx new file mode 100644 index 0000000..ec14120 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcolor.h.F6E063DC61692564.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcombobox.h.438CD065C5E8E60F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcombobox.h.438CD065C5E8E60F.idx new file mode 100644 index 0000000..dccc7d3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcombobox.h.438CD065C5E8E60F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompare.h.4D5E692F9A7F9E36.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompare.h.4D5E692F9A7F9E36.idx new file mode 100644 index 0000000..a48d8fa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompare.h.4D5E692F9A7F9E36.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompare_impl.h.B458356CB5B6C233.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompare_impl.h.B458356CB5B6C233.idx new file mode 100644 index 0000000..8770a21 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompare_impl.h.B458356CB5B6C233.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcomparehelpers.h.7637A97F3165FDCE.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcomparehelpers.h.7637A97F3165FDCE.idx new file mode 100644 index 0000000..bfb3839 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcomparehelpers.h.7637A97F3165FDCE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompilerdetection.h.1CD6493F8E7B75D0.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompilerdetection.h.1CD6493F8E7B75D0.idx new file mode 100644 index 0000000..e9ab418 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompilerdetection.h.1CD6493F8E7B75D0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qconfig.h.70328E6974564016.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qconfig.h.70328E6974564016.idx new file mode 100644 index 0000000..904c7be Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qconfig.h.70328E6974564016.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qconstructormacros.h.894CEBFBAD6B66AB.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qconstructormacros.h.894CEBFBAD6B66AB.idx new file mode 100644 index 0000000..701f95a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qconstructormacros.h.894CEBFBAD6B66AB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainerfwd.h.F98366C0F8D0FD14.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainerfwd.h.F98366C0F8D0FD14.idx new file mode 100644 index 0000000..cfdb3fc Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainerfwd.h.F98366C0F8D0FD14.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainerinfo.h.A566B82EDC90D942.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainerinfo.h.A566B82EDC90D942.idx new file mode 100644 index 0000000..1ec9f65 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainerinfo.h.A566B82EDC90D942.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainertools_impl.h.51D45FFA54ABE12B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainertools_impl.h.51D45FFA54ABE12B.idx new file mode 100644 index 0000000..25c702e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainertools_impl.h.51D45FFA54ABE12B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontiguouscache.h.ACAAFBC19475EE5A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontiguouscache.h.ACAAFBC19475EE5A.idx new file mode 100644 index 0000000..ea25884 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontiguouscache.h.ACAAFBC19475EE5A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreapplication.h.CF7D19A7A63D6F4B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreapplication.h.CF7D19A7A63D6F4B.idx new file mode 100644 index 0000000..d40ce45 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreapplication.h.CF7D19A7A63D6F4B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreapplication_platform.h.0F58E324807B4A74.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreapplication_platform.h.0F58E324807B4A74.idx new file mode 100644 index 0000000..3457497 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreapplication_platform.h.0F58E324807B4A74.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreevent.h.533C53D527B04CCA.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreevent.h.533C53D527B04CCA.idx new file mode 100644 index 0000000..0be2f18 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreevent.h.533C53D527B04CCA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcursor.h.CF6D71CF648DF752.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcursor.h.CF6D71CF648DF752.idx new file mode 100644 index 0000000..cc4d1ab Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcursor.h.CF6D71CF648DF752.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdarwinhelpers.h.42F7CD9ED4BFBEB5.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdarwinhelpers.h.42F7CD9ED4BFBEB5.idx new file mode 100644 index 0000000..da1000a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdarwinhelpers.h.42F7CD9ED4BFBEB5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdatastream.h.1C6394E04E48AF95.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdatastream.h.1C6394E04E48AF95.idx new file mode 100644 index 0000000..00e5ac2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdatastream.h.1C6394E04E48AF95.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdatetime.h.A1D463E5D77ED858.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdatetime.h.A1D463E5D77ED858.idx new file mode 100644 index 0000000..0245582 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdatetime.h.A1D463E5D77ED858.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdeadlinetimer.h.83EFA0D6651960DF.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdeadlinetimer.h.83EFA0D6651960DF.idx new file mode 100644 index 0000000..b886ba8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdeadlinetimer.h.83EFA0D6651960DF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdebug.h.636C321FA77E647B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdebug.h.636C321FA77E647B.idx new file mode 100644 index 0000000..98cdf22 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdebug.h.636C321FA77E647B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdesktopservices.h.908C667319BAE4CD.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdesktopservices.h.908C667319BAE4CD.idx new file mode 100644 index 0000000..d706151 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdesktopservices.h.908C667319BAE4CD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdialog.h.AD3B341BF68004FA.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdialog.h.AD3B341BF68004FA.idx new file mode 100644 index 0000000..11c8e5b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdialog.h.AD3B341BF68004FA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdialogbuttonbox.h.0B494D217D82A808.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdialogbuttonbox.h.0B494D217D82A808.idx new file mode 100644 index 0000000..ab8f2f6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdialogbuttonbox.h.0B494D217D82A808.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdir.h.0F12F4BFA786C84E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdir.h.0F12F4BFA786C84E.idx new file mode 100644 index 0000000..0c2abd2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdir.h.0F12F4BFA786C84E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdirlisting.h.815FFC95484AF548.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdirlisting.h.815FFC95484AF548.idx new file mode 100644 index 0000000..83b80bc Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdirlisting.h.815FFC95484AF548.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qendian.h.C1BF12378EB93E94.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qendian.h.C1BF12378EB93E94.idx new file mode 100644 index 0000000..149eb87 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qendian.h.C1BF12378EB93E94.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qeventloop.h.36F75E70D6E8EE18.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qeventloop.h.36F75E70D6E8EE18.idx new file mode 100644 index 0000000..913ccce Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qeventloop.h.36F75E70D6E8EE18.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qexceptionhandling.h.BBE8D53D2455CA1F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qexceptionhandling.h.BBE8D53D2455CA1F.idx new file mode 100644 index 0000000..42af97a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qexceptionhandling.h.BBE8D53D2455CA1F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfile.h.5B6924B498C8A4DA.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfile.h.5B6924B498C8A4DA.idx new file mode 100644 index 0000000..c8f1561 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfile.h.5B6924B498C8A4DA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfiledevice.h.2C10C0C2093DC885.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfiledevice.h.2C10C0C2093DC885.idx new file mode 100644 index 0000000..40d9489 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfiledevice.h.2C10C0C2093DC885.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfiledialog.h.5C613C6F9F38AA40.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfiledialog.h.5C613C6F9F38AA40.idx new file mode 100644 index 0000000..cc6043f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfiledialog.h.5C613C6F9F38AA40.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfileinfo.h.5AF1F79311AD3334.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfileinfo.h.5AF1F79311AD3334.idx new file mode 100644 index 0000000..4691213 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfileinfo.h.5AF1F79311AD3334.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qflags.h.067155F0EF5FDFE6.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qflags.h.067155F0EF5FDFE6.idx new file mode 100644 index 0000000..6e807ee Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qflags.h.067155F0EF5FDFE6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfloat16.h.34AA60BFA1F5D12C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfloat16.h.34AA60BFA1F5D12C.idx new file mode 100644 index 0000000..a187024 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfloat16.h.34AA60BFA1F5D12C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfont.h.88A485A8D181B978.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfont.h.88A485A8D181B978.idx new file mode 100644 index 0000000..8d3db45 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfont.h.88A485A8D181B978.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontinfo.h.5014A50A40CA15CD.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontinfo.h.5014A50A40CA15CD.idx new file mode 100644 index 0000000..855d9ce Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontinfo.h.5014A50A40CA15CD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontmetrics.h.B3767B9F711F2F5C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontmetrics.h.B3767B9F711F2F5C.idx new file mode 100644 index 0000000..bf4f29c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontmetrics.h.B3767B9F711F2F5C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontvariableaxis.h.C4DDDC8D6FADB7F2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontvariableaxis.h.C4DDDC8D6FADB7F2.idx new file mode 100644 index 0000000..d2f1577 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontvariableaxis.h.C4DDDC8D6FADB7F2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qforeach.h.FEEC29965BEFC79C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qforeach.h.FEEC29965BEFC79C.idx new file mode 100644 index 0000000..32158cb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qforeach.h.FEEC29965BEFC79C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qframe.h.2E627A662AC1883F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qframe.h.2E627A662AC1883F.idx new file mode 100644 index 0000000..7ca7473 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qframe.h.2E627A662AC1883F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfunctionaltools_impl.h.089A6B793E7048A2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfunctionaltools_impl.h.089A6B793E7048A2.idx new file mode 100644 index 0000000..d4716ba Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfunctionaltools_impl.h.089A6B793E7048A2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfunctionpointer.h.BAE5303737869773.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfunctionpointer.h.BAE5303737869773.idx new file mode 100644 index 0000000..68a93e7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfunctionpointer.h.BAE5303737869773.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgenericatomic.h.33E05115DC5B897C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgenericatomic.h.33E05115DC5B897C.idx new file mode 100644 index 0000000..02ed7a0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgenericatomic.h.33E05115DC5B897C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qglobal.h.BC6C6D8C5C914DE7.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qglobal.h.BC6C6D8C5C914DE7.idx new file mode 100644 index 0000000..1322055 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qglobal.h.BC6C6D8C5C914DE7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qglobalstatic.h.BBC878D15F5BA9AD.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qglobalstatic.h.BBC878D15F5BA9AD.idx new file mode 100644 index 0000000..e3d8912 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qglobalstatic.h.BBC878D15F5BA9AD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgridlayout.h.7F041E11089F55D3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgridlayout.h.7F041E11089F55D3.idx new file mode 100644 index 0000000..65f4977 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgridlayout.h.7F041E11089F55D3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgroupbox.h.5687CDD4B2D8E14E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgroupbox.h.5687CDD4B2D8E14E.idx new file mode 100644 index 0000000..13d7a99 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgroupbox.h.5687CDD4B2D8E14E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qguiapplication.h.15B8EA7583692C20.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qguiapplication.h.15B8EA7583692C20.idx new file mode 100644 index 0000000..acd73c1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qguiapplication.h.15B8EA7583692C20.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qguiapplication_platform.h.3F44C35909306075.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qguiapplication_platform.h.3F44C35909306075.idx new file mode 100644 index 0000000..3c5814b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qguiapplication_platform.h.3F44C35909306075.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qhash.h.E74938AAA56777DA.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qhash.h.E74938AAA56777DA.idx new file mode 100644 index 0000000..b2bee7e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qhash.h.E74938AAA56777DA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qhashfunctions.h.B740B160B541124F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qhashfunctions.h.B740B160B541124F.idx new file mode 100644 index 0000000..ff7d90a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qhashfunctions.h.B740B160B541124F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qicon.h.7C5B6C2CFF3D6B78.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qicon.h.7C5B6C2CFF3D6B78.idx new file mode 100644 index 0000000..c27d7bf Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qicon.h.7C5B6C2CFF3D6B78.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qimage.h.E4A0F6E91F79A6D4.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qimage.h.E4A0F6E91F79A6D4.idx new file mode 100644 index 0000000..909cad2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qimage.h.E4A0F6E91F79A6D4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qinputdialog.h.6615B674E668BD6D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qinputdialog.h.6615B674E668BD6D.idx new file mode 100644 index 0000000..6f12350 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qinputdialog.h.6615B674E668BD6D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qinputmethod.h.E9F1AFCBBB6027B1.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qinputmethod.h.E9F1AFCBBB6027B1.idx new file mode 100644 index 0000000..4774d5b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qinputmethod.h.E9F1AFCBBB6027B1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiodevice.h.544EFDF0CB7556BF.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiodevice.h.544EFDF0CB7556BF.idx new file mode 100644 index 0000000..ac5b1ff Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiodevice.h.544EFDF0CB7556BF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiodevicebase.h.B4D256DCB066808C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiodevicebase.h.B4D256DCB066808C.idx new file mode 100644 index 0000000..eadeb11 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiodevicebase.h.B4D256DCB066808C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qitemselectionmodel.h.EFCE098883491438.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qitemselectionmodel.h.EFCE098883491438.idx new file mode 100644 index 0000000..799e2c6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qitemselectionmodel.h.EFCE098883491438.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiterable.h.4836C9929711B2AE.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiterable.h.4836C9929711B2AE.idx new file mode 100644 index 0000000..c3767aa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiterable.h.4836C9929711B2AE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiterator.h.96007178DF87A35F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiterator.h.96007178DF87A35F.idx new file mode 100644 index 0000000..d6e256c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiterator.h.96007178DF87A35F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qkeysequence.h.8198BFBEA32DDC55.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qkeysequence.h.8198BFBEA32DDC55.idx new file mode 100644 index 0000000..cafe034 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qkeysequence.h.8198BFBEA32DDC55.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlabel.h.5A434E0BC011664B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlabel.h.5A434E0BC011664B.idx new file mode 100644 index 0000000..8873686 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlabel.h.5A434E0BC011664B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlatin1stringview.h.C3D53DFC42607A5B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlatin1stringview.h.C3D53DFC42607A5B.idx new file mode 100644 index 0000000..772d1c8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlatin1stringview.h.C3D53DFC42607A5B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlayout.h.699E4FCAE574034A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlayout.h.699E4FCAE574034A.idx new file mode 100644 index 0000000..ab7bbef Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlayout.h.699E4FCAE574034A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlayoutitem.h.D39368BFAEC26AF2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlayoutitem.h.D39368BFAEC26AF2.idx new file mode 100644 index 0000000..5bb1a0a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlayoutitem.h.D39368BFAEC26AF2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qline.h.564ACE0E12165B4A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qline.h.564ACE0E12165B4A.idx new file mode 100644 index 0000000..220eacc Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qline.h.564ACE0E12165B4A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlineedit.h.1225CBEC7C1D814D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlineedit.h.1225CBEC7C1D814D.idx new file mode 100644 index 0000000..a35b505 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlineedit.h.1225CBEC7C1D814D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlist.h.C97D925464536949.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlist.h.C97D925464536949.idx new file mode 100644 index 0000000..63f74b4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlist.h.C97D925464536949.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlistview.h.D191E2DE0FFCC1C6.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlistview.h.D191E2DE0FFCC1C6.idx new file mode 100644 index 0000000..9ed1758 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlistview.h.D191E2DE0FFCC1C6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlistwidget.h.E856690D982E54AE.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlistwidget.h.E856690D982E54AE.idx new file mode 100644 index 0000000..7f44385 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlistwidget.h.E856690D982E54AE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlocale.h.8FAEF51FBF2F8CB6.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlocale.h.8FAEF51FBF2F8CB6.idx new file mode 100644 index 0000000..a5dab59 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlocale.h.8FAEF51FBF2F8CB6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlogging.h.3F757D6B7A085E79.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlogging.h.3F757D6B7A085E79.idx new file mode 100644 index 0000000..7c99168 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlogging.h.3F757D6B7A085E79.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmainwindow.h.C358A78B3224883F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmainwindow.h.C358A78B3224883F.idx new file mode 100644 index 0000000..efbd97c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmainwindow.h.C358A78B3224883F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmalloc.h.AB1E50F115A1B204.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmalloc.h.AB1E50F115A1B204.idx new file mode 100644 index 0000000..e2c7625 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmalloc.h.AB1E50F115A1B204.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmap.h.BC6270A0B351DE27.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmap.h.BC6270A0B351DE27.idx new file mode 100644 index 0000000..3310c02 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmap.h.BC6270A0B351DE27.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmargins.h.502B95ACDAB9BE6C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmargins.h.502B95ACDAB9BE6C.idx new file mode 100644 index 0000000..7985607 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmargins.h.502B95ACDAB9BE6C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmath.h.6671B8F7D6995CDB.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmath.h.6671B8F7D6995CDB.idx new file mode 100644 index 0000000..aa4e496 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmath.h.6671B8F7D6995CDB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmenu.h.CDDFFFEAB2B3CB51.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmenu.h.CDDFFFEAB2B3CB51.idx new file mode 100644 index 0000000..c0a5eb5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmenu.h.CDDFFFEAB2B3CB51.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmessagebox.h.0CDD8914475B4B13.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmessagebox.h.0CDD8914475B4B13.idx new file mode 100644 index 0000000..37154e0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmessagebox.h.0CDD8914475B4B13.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmetacontainer.h.BE48B8AD323BC36C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmetacontainer.h.BE48B8AD323BC36C.idx new file mode 100644 index 0000000..06ee89c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmetacontainer.h.BE48B8AD323BC36C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmetatype.h.A6D6050E272F36A9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmetatype.h.A6D6050E272F36A9.idx new file mode 100644 index 0000000..5207d79 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmetatype.h.A6D6050E272F36A9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qminmax.h.CFF7FCFC14A37B60.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qminmax.h.CFF7FCFC14A37B60.idx new file mode 100644 index 0000000..9fcd33d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qminmax.h.CFF7FCFC14A37B60.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnamespace.h.F09F04DD094C19D9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnamespace.h.F09F04DD094C19D9.idx new file mode 100644 index 0000000..3fab654 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnamespace.h.F09F04DD094C19D9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnativeinterface.h.994C3E74C8185418.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnativeinterface.h.994C3E74C8185418.idx new file mode 100644 index 0000000..5914d47 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnativeinterface.h.994C3E74C8185418.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnumeric.h.FB2D17F68DAE3015.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnumeric.h.FB2D17F68DAE3015.idx new file mode 100644 index 0000000..e19f164 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnumeric.h.FB2D17F68DAE3015.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobject.h.C5C86991A7784C32.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobject.h.C5C86991A7784C32.idx new file mode 100644 index 0000000..25aed78 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobject.h.C5C86991A7784C32.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobject_impl.h.5A57A760F7915236.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobject_impl.h.5A57A760F7915236.idx new file mode 100644 index 0000000..e49d7ec Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobject_impl.h.5A57A760F7915236.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.A4A5C1715348C69F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.A4A5C1715348C69F.idx new file mode 100644 index 0000000..648f1aa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.A4A5C1715348C69F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.D522895027B56D10.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.D522895027B56D10.idx new file mode 100644 index 0000000..8512c27 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.D522895027B56D10.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs_impl.h.4731ED08AC42E1AD.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs_impl.h.4731ED08AC42E1AD.idx new file mode 100644 index 0000000..274d743 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs_impl.h.4731ED08AC42E1AD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qoverload.h.7A94786C99A5F668.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qoverload.h.7A94786C99A5F668.idx new file mode 100644 index 0000000..a3235d7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qoverload.h.7A94786C99A5F668.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpaintdevice.h.84E33A124CEFC64B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpaintdevice.h.84E33A124CEFC64B.idx new file mode 100644 index 0000000..a10e037 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpaintdevice.h.84E33A124CEFC64B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpair.h.06EAEE0E53DB1D89.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpair.h.06EAEE0E53DB1D89.idx new file mode 100644 index 0000000..5dbdd71 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpair.h.06EAEE0E53DB1D89.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpalette.h.B455F62064A925E1.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpalette.h.B455F62064A925E1.idx new file mode 100644 index 0000000..6e04c68 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpalette.h.B455F62064A925E1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpen.h.6EC12ABEAB1DFA01.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpen.h.6EC12ABEAB1DFA01.idx new file mode 100644 index 0000000..8b920b1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpen.h.6EC12ABEAB1DFA01.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpicture.h.7AFAFBE9162216FD.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpicture.h.7AFAFBE9162216FD.idx new file mode 100644 index 0000000..1ba42e0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpicture.h.7AFAFBE9162216FD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpixelformat.h.6D2137D6FFC0BC0F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpixelformat.h.6D2137D6FFC0BC0F.idx new file mode 100644 index 0000000..42e382c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpixelformat.h.6D2137D6FFC0BC0F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpixmap.h.AA1618A533E3F76F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpixmap.h.AA1618A533E3F76F.idx new file mode 100644 index 0000000..98556b0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpixmap.h.AA1618A533E3F76F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpoint.h.436E9153D8287034.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpoint.h.436E9153D8287034.idx new file mode 100644 index 0000000..a551673 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpoint.h.436E9153D8287034.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpolygon.h.D64177D9C8BF81B1.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpolygon.h.D64177D9C8BF81B1.idx new file mode 100644 index 0000000..bcfaf14 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpolygon.h.D64177D9C8BF81B1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qprocess.h.F51BB638A34827FD.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qprocess.h.F51BB638A34827FD.idx new file mode 100644 index 0000000..2c17a2c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qprocess.h.F51BB638A34827FD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qprocessordetection.h.838386B863F40FC2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qprocessordetection.h.838386B863F40FC2.idx new file mode 100644 index 0000000..c674df1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qprocessordetection.h.838386B863F40FC2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpushbutton.h.8E85338541C344C9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpushbutton.h.8E85338541C344C9.idx new file mode 100644 index 0000000..31fe563 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpushbutton.h.8E85338541C344C9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrect.h.D8177BE45C0244D3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrect.h.D8177BE45C0244D3.idx new file mode 100644 index 0000000..223a8b9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrect.h.D8177BE45C0244D3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrefcount.h.C05AA95CA2AAD1FF.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrefcount.h.C05AA95CA2AAD1FF.idx new file mode 100644 index 0000000..94e03ab Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrefcount.h.C05AA95CA2AAD1FF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qregion.h.D5057C49869A10E4.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qregion.h.D5057C49869A10E4.idx new file mode 100644 index 0000000..2671622 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qregion.h.D5057C49869A10E4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qregularexpression.h.EF0B965F6B3DD516.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qregularexpression.h.EF0B965F6B3DD516.idx new file mode 100644 index 0000000..59e93b4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qregularexpression.h.EF0B965F6B3DD516.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrgb.h.27CC62A5C4C70EAB.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrgb.h.27CC62A5C4C70EAB.idx new file mode 100644 index 0000000..b4116e4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrgb.h.27CC62A5C4C70EAB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrgba64.h.B80A3CA0C7F0D58F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrgba64.h.B80A3CA0C7F0D58F.idx new file mode 100644 index 0000000..2e59412 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrgba64.h.B80A3CA0C7F0D58F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrubberband.h.D85647B58AB0CB70.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrubberband.h.D85647B58AB0CB70.idx new file mode 100644 index 0000000..838fdc1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrubberband.h.D85647B58AB0CB70.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qscopedpointer.h.9C7DD02484262494.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qscopedpointer.h.9C7DD02484262494.idx new file mode 100644 index 0000000..a8c2eba Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qscopedpointer.h.9C7DD02484262494.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qscopeguard.h.DA1259831C34A5AE.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qscopeguard.h.DA1259831C34A5AE.idx new file mode 100644 index 0000000..daa6b82 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qscopeguard.h.DA1259831C34A5AE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qset.h.8C76DA81B22B82AF.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qset.h.8C76DA81B22B82AF.idx new file mode 100644 index 0000000..7813595 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qset.h.8C76DA81B22B82AF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qshareddata.h.8DD1570B87B2ADB6.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qshareddata.h.8DD1570B87B2ADB6.idx new file mode 100644 index 0000000..6c1fcc7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qshareddata.h.8DD1570B87B2ADB6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qshareddata_impl.h.541A3DFAE64453F8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qshareddata_impl.h.541A3DFAE64453F8.idx new file mode 100644 index 0000000..1907b93 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qshareddata_impl.h.541A3DFAE64453F8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsharedpointer.h.C8CBA54B060E51AA.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsharedpointer.h.C8CBA54B060E51AA.idx new file mode 100644 index 0000000..eb79ed7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsharedpointer.h.C8CBA54B060E51AA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsharedpointer_impl.h.B64709278805885B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsharedpointer_impl.h.B64709278805885B.idx new file mode 100644 index 0000000..496b1e1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsharedpointer_impl.h.B64709278805885B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsize.h.88EAA0B7A39BC39F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsize.h.88EAA0B7A39BC39F.idx new file mode 100644 index 0000000..87121d7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsize.h.88EAA0B7A39BC39F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsizepolicy.h.3A8C240B0F1250F6.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsizepolicy.h.3A8C240B0F1250F6.idx new file mode 100644 index 0000000..7a76681 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsizepolicy.h.3A8C240B0F1250F6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qslider.h.EE71DA3F7754F8E3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qslider.h.EE71DA3F7754F8E3.idx new file mode 100644 index 0000000..b73c9a7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qslider.h.EE71DA3F7754F8E3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qspan.h.38E8B8253DFA898F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qspan.h.38E8B8253DFA898F.idx new file mode 100644 index 0000000..abe2d29 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qspan.h.38E8B8253DFA898F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstdlibdetection.h.4018D8D1B0E1371C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstdlibdetection.h.4018D8D1B0E1371C.idx new file mode 100644 index 0000000..571aba4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstdlibdetection.h.4018D8D1B0E1371C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstring.h.176FB8AC60F7905B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstring.h.176FB8AC60F7905B.idx new file mode 100644 index 0000000..19e5f62 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstring.h.176FB8AC60F7905B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringalgorithms.h.C60A65DE871D4091.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringalgorithms.h.C60A65DE871D4091.idx new file mode 100644 index 0000000..00e7208 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringalgorithms.h.C60A65DE871D4091.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringbuilder.h.BCC769125E851912.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringbuilder.h.BCC769125E851912.idx new file mode 100644 index 0000000..8c02b0e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringbuilder.h.BCC769125E851912.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringconverter.h.A5F2420978F33CAB.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringconverter.h.A5F2420978F33CAB.idx new file mode 100644 index 0000000..6a0334f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringconverter.h.A5F2420978F33CAB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringconverter_base.h.FF5A4EE17EC601C5.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringconverter_base.h.FF5A4EE17EC601C5.idx new file mode 100644 index 0000000..e347510 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringconverter_base.h.FF5A4EE17EC601C5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringfwd.h.04452D6DDA278F6F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringfwd.h.04452D6DDA278F6F.idx new file mode 100644 index 0000000..15abb4b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringfwd.h.04452D6DDA278F6F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringlist.h.F7D9E17FCF3B4D16.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringlist.h.F7D9E17FCF3B4D16.idx new file mode 100644 index 0000000..76c9ad5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringlist.h.F7D9E17FCF3B4D16.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringmatcher.h.4C4FF58718C809CC.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringmatcher.h.4C4FF58718C809CC.idx new file mode 100644 index 0000000..974edfd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringmatcher.h.4C4FF58718C809CC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringtokenizer.h.2A933EAE10EDDE84.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringtokenizer.h.2A933EAE10EDDE84.idx new file mode 100644 index 0000000..45ba459 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringtokenizer.h.2A933EAE10EDDE84.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringview.h.020039DFE0FB1123.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringview.h.020039DFE0FB1123.idx new file mode 100644 index 0000000..c0fe7e8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringview.h.020039DFE0FB1123.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstyle.h.010BB99D4DBEEFCB.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstyle.h.010BB99D4DBEEFCB.idx new file mode 100644 index 0000000..2b85207 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstyle.h.010BB99D4DBEEFCB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstyleoption.h.9FC3E9E2C0F9FC63.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstyleoption.h.9FC3E9E2C0F9FC63.idx new file mode 100644 index 0000000..1c7ff95 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstyleoption.h.9FC3E9E2C0F9FC63.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qswap.h.1B8C44672BD5BDD8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qswap.h.1B8C44672BD5BDD8.idx new file mode 100644 index 0000000..25c42b9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qswap.h.1B8C44672BD5BDD8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsysinfo.h.3265F544EB06FD58.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsysinfo.h.3265F544EB06FD58.idx new file mode 100644 index 0000000..3c5cf34 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsysinfo.h.3265F544EB06FD58.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsystemdetection.h.575B26ABEF285DB8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsystemdetection.h.575B26ABEF285DB8.idx new file mode 100644 index 0000000..72e43a6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsystemdetection.h.575B26ABEF285DB8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtabbar.h.99FD33364E046A6F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtabbar.h.99FD33364E046A6F.idx new file mode 100644 index 0000000..d81c84a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtabbar.h.99FD33364E046A6F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtabwidget.h.B72B26D185AD6412.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtabwidget.h.B72B26D185AD6412.idx new file mode 100644 index 0000000..35d86af Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtabwidget.h.B72B26D185AD6412.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtaggedpointer.h.3C12147E64C7BED3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtaggedpointer.h.3C12147E64C7BED3.idx new file mode 100644 index 0000000..cc303ff Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtaggedpointer.h.3C12147E64C7BED3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtaudio.h.37CA5B118D69BF29.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtaudio.h.37CA5B118D69BF29.idx new file mode 100644 index 0000000..e6feb36 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtaudio.h.37CA5B118D69BF29.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtclasshelpermacros.h.96ECB35541CF9F2B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtclasshelpermacros.h.96ECB35541CF9F2B.idx new file mode 100644 index 0000000..c204294 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtclasshelpermacros.h.96ECB35541CF9F2B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtconfiginclude.h.90AA265BD59CCE7A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtconfiginclude.h.90AA265BD59CCE7A.idx new file mode 100644 index 0000000..bc5cef9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtconfiginclude.h.90AA265BD59CCE7A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtconfigmacros.h.9A0DB06B6F1EA842.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtconfigmacros.h.9A0DB06B6F1EA842.idx new file mode 100644 index 0000000..eef88d6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtconfigmacros.h.9A0DB06B6F1EA842.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcore-config.h.4CD2FB66C9C7A031.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcore-config.h.4CD2FB66C9C7A031.idx new file mode 100644 index 0000000..097a4cf Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcore-config.h.4CD2FB66C9C7A031.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcoreexports.h.58E4E7480CB5FEFD.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcoreexports.h.58E4E7480CB5FEFD.idx new file mode 100644 index 0000000..e1d4531 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcoreexports.h.58E4E7480CB5FEFD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcoreglobal.h.7FD6E3C151F643F2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcoreglobal.h.7FD6E3C151F643F2.idx new file mode 100644 index 0000000..315cd46 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcoreglobal.h.7FD6E3C151F643F2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtdeprecationdefinitions.h.50468DF277FC4A91.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtdeprecationdefinitions.h.50468DF277FC4A91.idx new file mode 100644 index 0000000..312c700 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtdeprecationdefinitions.h.50468DF277FC4A91.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtdeprecationmarkers.h.23E9B25F7A9C5821.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtdeprecationmarkers.h.23E9B25F7A9C5821.idx new file mode 100644 index 0000000..06381ff Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtdeprecationmarkers.h.23E9B25F7A9C5821.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtenvironmentvariables.h.0DD87936A9AF5841.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtenvironmentvariables.h.0DD87936A9AF5841.idx new file mode 100644 index 0000000..e736784 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtenvironmentvariables.h.0DD87936A9AF5841.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextcursor.h.B9C4B4FF3B2D8819.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextcursor.h.B9C4B4FF3B2D8819.idx new file mode 100644 index 0000000..a78c529 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextcursor.h.B9C4B4FF3B2D8819.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextdocument.h.D14AF5F08747C453.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextdocument.h.D14AF5F08747C453.idx new file mode 100644 index 0000000..a65f583 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextdocument.h.D14AF5F08747C453.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextformat.h.AB432E2C85B96149.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextformat.h.AB432E2C85B96149.idx new file mode 100644 index 0000000..ddb7306 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextformat.h.AB432E2C85B96149.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextoption.h.23BA362EB881A18E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextoption.h.23BA362EB881A18E.idx new file mode 100644 index 0000000..e2390a0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextoption.h.23BA362EB881A18E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextstream.h.2E27961613794B58.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextstream.h.2E27961613794B58.idx new file mode 100644 index 0000000..833be0c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextstream.h.2E27961613794B58.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtformat_impl.h.E1FBDC97A1182E33.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtformat_impl.h.E1FBDC97A1182E33.idx new file mode 100644 index 0000000..cfda4c3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtformat_impl.h.E1FBDC97A1182E33.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtgui-config.h.29836474E22CE61C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtgui-config.h.29836474E22CE61C.idx new file mode 100644 index 0000000..40763d7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtgui-config.h.29836474E22CE61C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtguiexports.h.FE1E368F1A8C0387.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtguiexports.h.FE1E368F1A8C0387.idx new file mode 100644 index 0000000..4bfe734 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtguiexports.h.FE1E368F1A8C0387.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtguiglobal.h.083F01AFA5739374.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtguiglobal.h.083F01AFA5739374.idx new file mode 100644 index 0000000..8535691 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtguiglobal.h.083F01AFA5739374.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qthread.h.27E88D63546C4E51.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qthread.h.27E88D63546C4E51.idx new file mode 100644 index 0000000..0d63e9c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qthread.h.27E88D63546C4E51.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtimer.h.E778E165EDE570F4.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtimer.h.E778E165EDE570F4.idx new file mode 100644 index 0000000..178c84a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtimer.h.E778E165EDE570F4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtimezone.h.A2A00DB3DF72FBB3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtimezone.h.A2A00DB3DF72FBB3.idx new file mode 100644 index 0000000..b37173b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtimezone.h.A2A00DB3DF72FBB3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmetamacros.h.83A5CB25539DA51B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmetamacros.h.83A5CB25539DA51B.idx new file mode 100644 index 0000000..e024c10 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmetamacros.h.83A5CB25539DA51B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimedia-config.h.860EE2A99003FBF8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimedia-config.h.860EE2A99003FBF8.idx new file mode 100644 index 0000000..a298a1a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimedia-config.h.860EE2A99003FBF8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimediaexports.h.3F023302D2F5E948.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimediaexports.h.3F023302D2F5E948.idx new file mode 100644 index 0000000..1c14b8c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimediaexports.h.3F023302D2F5E948.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimediaglobal.h.8EB9FD8CAFD700BB.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimediaglobal.h.8EB9FD8CAFD700BB.idx new file mode 100644 index 0000000..7359a8a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimediaglobal.h.8EB9FD8CAFD700BB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtnoop.h.D8B71A76D46B6805.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtnoop.h.D8B71A76D46B6805.idx new file mode 100644 index 0000000..e62a1c2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtnoop.h.D8B71A76D46B6805.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtpreprocessorsupport.h.6A2C440EA5C21885.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtpreprocessorsupport.h.6A2C440EA5C21885.idx new file mode 100644 index 0000000..4d63b96 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtpreprocessorsupport.h.6A2C440EA5C21885.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtransform.h.58042AF5F9840997.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtransform.h.58042AF5F9840997.idx new file mode 100644 index 0000000..556c41d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtransform.h.58042AF5F9840997.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtresource.h.3BA77737F52C0986.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtresource.h.3BA77737F52C0986.idx new file mode 100644 index 0000000..1a89653 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtresource.h.3BA77737F52C0986.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qttranslation.h.1F03B1F5A2B6D347.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qttranslation.h.1F03B1F5A2B6D347.idx new file mode 100644 index 0000000..a903614 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qttranslation.h.1F03B1F5A2B6D347.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qttypetraits.h.7D0C1F7045906091.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qttypetraits.h.7D0C1F7045906091.idx new file mode 100644 index 0000000..6b21ddf Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qttypetraits.h.7D0C1F7045906091.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtversion.h.7CD4C493CEA83ACF.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtversion.h.7CD4C493CEA83ACF.idx new file mode 100644 index 0000000..12a96cd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtversion.h.7CD4C493CEA83ACF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtversionchecks.h.9CAEBF152BDFEFBA.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtversionchecks.h.9CAEBF152BDFEFBA.idx new file mode 100644 index 0000000..78202cf Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtversionchecks.h.9CAEBF152BDFEFBA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgets-config.h.F4E9B368FD09AD42.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgets-config.h.F4E9B368FD09AD42.idx new file mode 100644 index 0000000..218d41f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgets-config.h.F4E9B368FD09AD42.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgetsexports.h.16126A63D4DB9C95.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgetsexports.h.16126A63D4DB9C95.idx new file mode 100644 index 0000000..c560b90 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgetsexports.h.16126A63D4DB9C95.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgetsglobal.h.6920DB0CBD31F274.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgetsglobal.h.6920DB0CBD31F274.idx new file mode 100644 index 0000000..c4dc5c1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgetsglobal.h.6920DB0CBD31F274.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtypeinfo.h.9896E515309FC718.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtypeinfo.h.9896E515309FC718.idx new file mode 100644 index 0000000..6271610 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtypeinfo.h.9896E515309FC718.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtypes.h.BF1488FFDEABA94F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtypes.h.BF1488FFDEABA94F.idx new file mode 100644 index 0000000..77041b7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtypes.h.BF1488FFDEABA94F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/quoted_string.h.717A2A4D2456AF8F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/quoted_string.h.717A2A4D2456AF8F.idx new file mode 100644 index 0000000..ce840b2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/quoted_string.h.717A2A4D2456AF8F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qurl.h.3499585C4C1F1FB9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qurl.h.3499585C4C1F1FB9.idx new file mode 100644 index 0000000..49a446a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qurl.h.3499585C4C1F1FB9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qutf8stringview.h.0D3DCB85C4BEBA84.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qutf8stringview.h.0D3DCB85C4BEBA84.idx new file mode 100644 index 0000000..a39da18 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qutf8stringview.h.0D3DCB85C4BEBA84.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvalidator.h.6D9520D0F5871565.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvalidator.h.6D9520D0F5871565.idx new file mode 100644 index 0000000..6e1391f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvalidator.h.6D9520D0F5871565.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvariant.h.19E75CF79EA673F6.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvariant.h.19E75CF79EA673F6.idx new file mode 100644 index 0000000..36dfb3a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvariant.h.19E75CF79EA673F6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvarlengtharray.h.B9AEED89BD113E97.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvarlengtharray.h.B9AEED89BD113E97.idx new file mode 100644 index 0000000..cef6694 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvarlengtharray.h.B9AEED89BD113E97.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvector.h.35334797A1EC5937.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvector.h.35334797A1EC5937.idx new file mode 100644 index 0000000..ee14740 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvector.h.35334797A1EC5937.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qversiontagging.h.D837B5A6E4A7AB72.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qversiontagging.h.D837B5A6E4A7AB72.idx new file mode 100644 index 0000000..a6f5a56 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qversiontagging.h.D837B5A6E4A7AB72.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qwidget.h.88CBA7DEAED64A1D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qwidget.h.88CBA7DEAED64A1D.idx new file mode 100644 index 0000000..2c77eab Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qwidget.h.88CBA7DEAED64A1D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qwindowdefs.h.1D4989568E2893FD.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qwindowdefs.h.1D4989568E2893FD.idx new file mode 100644 index 0000000..38d00e2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qwindowdefs.h.1D4989568E2893FD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qxptype_traits.h.C81A3D4A0B80193F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qxptype_traits.h.C81A3D4A0B80193F.idx new file mode 100644 index 0000000..84202c9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qxptype_traits.h.C81A3D4A0B80193F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qyieldcpu.h.08A9BA1F5E870AEB.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qyieldcpu.h.08A9BA1F5E870AEB.idx new file mode 100644 index 0000000..d5f1dcb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qyieldcpu.h.08A9BA1F5E870AEB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/range_access.h.0774A268C1E21ADB.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/range_access.h.0774A268C1E21ADB.idx new file mode 100644 index 0000000..01937cb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/range_access.h.0774A268C1E21ADB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ratio.79E904F0AD06E0DF.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ratio.79E904F0AD06E0DF.idx new file mode 100644 index 0000000..64b63d4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ratio.79E904F0AD06E0DF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/refwrap.h.6A39B8A186163A76.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/refwrap.h.6A39B8A186163A76.idx new file mode 100644 index 0000000..63d9986 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/refwrap.h.6A39B8A186163A76.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/requires_hosted.h.EFA849A463F299CF.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/requires_hosted.h.EFA849A463F299CF.idx new file mode 100644 index 0000000..1d52193 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/requires_hosted.h.EFA849A463F299CF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/riemann_zeta.tcc.152772F07C5897F1.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/riemann_zeta.tcc.152772F07C5897F1.idx new file mode 100644 index 0000000..2f832e0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/riemann_zeta.tcc.152772F07C5897F1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sched.h.A585A48500495348.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sched.h.A585A48500495348.idx new file mode 100644 index 0000000..a4e02a7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sched.h.A585A48500495348.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sched.h.E8530EF262253892.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sched.h.E8530EF262253892.idx new file mode 100644 index 0000000..5ec84df Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sched.h.E8530EF262253892.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/select.h.BA57472D13519767.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/select.h.BA57472D13519767.idx new file mode 100644 index 0000000..0cfec52 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/select.h.BA57472D13519767.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/select.h.E19325D0BE3592A0.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/select.h.E19325D0BE3592A0.idx new file mode 100644 index 0000000..24b78f0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/select.h.E19325D0BE3592A0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/set.15FBFED9173229F0.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/set.15FBFED9173229F0.idx new file mode 100644 index 0000000..ba69598 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/set.15FBFED9173229F0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/setjmp.h.71DEFB3DCC800794.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/setjmp.h.71DEFB3DCC800794.idx new file mode 100644 index 0000000..59e23c8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/setjmp.h.71DEFB3DCC800794.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr.h.7BBE4D20A8FEB01E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr.h.7BBE4D20A8FEB01E.idx new file mode 100644 index 0000000..3e76889 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr.h.7BBE4D20A8FEB01E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr_atomic.h.7E22A741D516A08B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr_atomic.h.7E22A741D516A08B.idx new file mode 100644 index 0000000..36a5369 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr_atomic.h.7E22A741D516A08B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr_base.h.F831AC839E2ACB54.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr_base.h.F831AC839E2ACB54.idx new file mode 100644 index 0000000..9d5d9c2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr_base.h.F831AC839E2ACB54.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sigset_t.h.32273C537A103809.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sigset_t.h.32273C537A103809.idx new file mode 100644 index 0000000..10444b7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sigset_t.h.32273C537A103809.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/simplewavwriter.cpp.F6BFBC33C95F4262.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/simplewavwriter.cpp.F6BFBC33C95F4262.idx new file mode 100644 index 0000000..52472e4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/simplewavwriter.cpp.F6BFBC33C95F4262.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/simplewavwriter.h.9A3C57C8E68FBA87.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/simplewavwriter.h.9A3C57C8E68FBA87.idx new file mode 100644 index 0000000..54d5817 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/simplewavwriter.h.9A3C57C8E68FBA87.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/single_threaded.h.918E7314A6EC8DC0.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/single_threaded.h.918E7314A6EC8DC0.idx new file mode 100644 index 0000000..6a9e648 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/single_threaded.h.918E7314A6EC8DC0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/specfun.h.C33479C3A96D5E3F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/specfun.h.C33479C3A96D5E3F.idx new file mode 100644 index 0000000..9b6cec7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/specfun.h.C33479C3A96D5E3F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/special_function_util.h.624BAD35A87464F8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/special_function_util.h.624BAD35A87464F8.idx new file mode 100644 index 0000000..787fefa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/special_function_util.h.624BAD35A87464F8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sstream.F13DA026A0CC0BA1.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sstream.F13DA026A0CC0BA1.idx new file mode 100644 index 0000000..e7f78ea Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sstream.F13DA026A0CC0BA1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sstream.tcc.554AC754923DBB4E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sstream.tcc.554AC754923DBB4E.idx new file mode 100644 index 0000000..465dadc Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sstream.tcc.554AC754923DBB4E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stat.h.86C3C850450F2AF6.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stat.h.86C3C850450F2AF6.idx new file mode 100644 index 0000000..c4da7ff Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stat.h.86C3C850450F2AF6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_abs.h.C0886288BA2C0B45.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_abs.h.C0886288BA2C0B45.idx new file mode 100644 index 0000000..4109428 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_abs.h.C0886288BA2C0B45.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_function.h.59116F6C185B90E3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_function.h.59116F6C185B90E3.idx new file mode 100644 index 0000000..21e53d8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_function.h.59116F6C185B90E3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_mutex.h.9934CF9880BF2A14.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_mutex.h.9934CF9880BF2A14.idx new file mode 100644 index 0000000..06fcc97 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_mutex.h.9934CF9880BF2A14.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_thread.h.9A2E0C49F4153B81.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_thread.h.9A2E0C49F4153B81.idx new file mode 100644 index 0000000..519c58c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_thread.h.9A2E0C49F4153B81.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdarg.h.36D06E2BE7022BC1.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdarg.h.36D06E2BE7022BC1.idx new file mode 100644 index 0000000..ac53223 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdarg.h.36D06E2BE7022BC1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdbool.h.DEDBB67786830E36.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdbool.h.DEDBB67786830E36.idx new file mode 100644 index 0000000..488d73a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdbool.h.DEDBB67786830E36.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdc-predef.h.9EA93D70716BF84B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdc-predef.h.9EA93D70716BF84B.idx new file mode 100644 index 0000000..5a4aa3e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdc-predef.h.9EA93D70716BF84B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stddef.h.530C0A7BAC1383A3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stddef.h.530C0A7BAC1383A3.idx new file mode 100644 index 0000000..bb115b8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stddef.h.530C0A7BAC1383A3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stddef.h.573E230AE7BF71F3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stddef.h.573E230AE7BF71F3.idx new file mode 100644 index 0000000..e09b698 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stddef.h.573E230AE7BF71F3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdexcept.65C5A6293DB475E2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdexcept.65C5A6293DB475E2.idx new file mode 100644 index 0000000..ad82129 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdexcept.65C5A6293DB475E2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-intn.h.EE0939E700184847.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-intn.h.EE0939E700184847.idx new file mode 100644 index 0000000..343ee70 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-intn.h.EE0939E700184847.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-least.h.A0CB5BC401DAC650.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-least.h.A0CB5BC401DAC650.idx new file mode 100644 index 0000000..5df8bf2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-least.h.A0CB5BC401DAC650.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-uintn.h.B3EA113168048B57.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-uintn.h.B3EA113168048B57.idx new file mode 100644 index 0000000..37d9f55 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-uintn.h.B3EA113168048B57.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint.h.22B451C129B23D79.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint.h.22B451C129B23D79.idx new file mode 100644 index 0000000..4df7b67 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint.h.22B451C129B23D79.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint.h.3C9040AFD7D52CFD.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint.h.3C9040AFD7D52CFD.idx new file mode 100644 index 0000000..1233392 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint.h.3C9040AFD7D52CFD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdio.h.6919C07CB89D47AD.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdio.h.6919C07CB89D47AD.idx new file mode 100644 index 0000000..d1f0f73 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdio.h.6919C07CB89D47AD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdio_lim.h.09E79B5FC5C8DF86.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdio_lim.h.09E79B5FC5C8DF86.idx new file mode 100644 index 0000000..348a325 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdio_lim.h.09E79B5FC5C8DF86.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib-float.h.126E8959FAE2A511.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib-float.h.126E8959FAE2A511.idx new file mode 100644 index 0000000..8286047 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib-float.h.126E8959FAE2A511.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib.h.61AA7B9EED10C430.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib.h.61AA7B9EED10C430.idx new file mode 100644 index 0000000..3dc7326 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib.h.61AA7B9EED10C430.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib.h.B8DCE457E3619A0A.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib.h.B8DCE457E3619A0A.idx new file mode 100644 index 0000000..9d35b55 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib.h.B8DCE457E3619A0A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_algo.h.59FD8545765E537E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_algo.h.59FD8545765E537E.idx new file mode 100644 index 0000000..5b3e5ca Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_algo.h.59FD8545765E537E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_algobase.h.AB9590E9F48BE0F9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_algobase.h.AB9590E9F48BE0F9.idx new file mode 100644 index 0000000..5825029 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_algobase.h.AB9590E9F48BE0F9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_bvector.h.CD3CD6C7584E6B76.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_bvector.h.CD3CD6C7584E6B76.idx new file mode 100644 index 0000000..9fd4430 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_bvector.h.CD3CD6C7584E6B76.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_construct.h.7315C52DAB15556E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_construct.h.7315C52DAB15556E.idx new file mode 100644 index 0000000..461d3b4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_construct.h.7315C52DAB15556E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_function.h.01F1D612B15DA15C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_function.h.01F1D612B15DA15C.idx new file mode 100644 index 0000000..be4b098 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_function.h.01F1D612B15DA15C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_heap.h.88E34651FBAA1756.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_heap.h.88E34651FBAA1756.idx new file mode 100644 index 0000000..acf6c1e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_heap.h.88E34651FBAA1756.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator.h.F0D8C774B50F004F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator.h.F0D8C774B50F004F.idx new file mode 100644 index 0000000..5067a35 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator.h.F0D8C774B50F004F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator_base_funcs.h.F9092E60F2D2E40D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator_base_funcs.h.F9092E60F2D2E40D.idx new file mode 100644 index 0000000..c419e2a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator_base_funcs.h.F9092E60F2D2E40D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator_base_types.h.EB1A61C6BBEC2835.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator_base_types.h.EB1A61C6BBEC2835.idx new file mode 100644 index 0000000..031998f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator_base_types.h.EB1A61C6BBEC2835.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_list.h.60A07D9C4D2B1141.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_list.h.60A07D9C4D2B1141.idx new file mode 100644 index 0000000..866c3be Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_list.h.60A07D9C4D2B1141.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_map.h.F3D08576AE6A2834.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_map.h.F3D08576AE6A2834.idx new file mode 100644 index 0000000..a471436 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_map.h.F3D08576AE6A2834.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_multimap.h.1B6D9788DD7D07DD.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_multimap.h.1B6D9788DD7D07DD.idx new file mode 100644 index 0000000..ee383d9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_multimap.h.1B6D9788DD7D07DD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_multiset.h.3D9B389F88A49127.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_multiset.h.3D9B389F88A49127.idx new file mode 100644 index 0000000..f9b91ac Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_multiset.h.3D9B389F88A49127.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_numeric.h.5523D89033F7E412.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_numeric.h.5523D89033F7E412.idx new file mode 100644 index 0000000..c19a70a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_numeric.h.5523D89033F7E412.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_pair.h.ABC47F820F129412.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_pair.h.ABC47F820F129412.idx new file mode 100644 index 0000000..3f962b3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_pair.h.ABC47F820F129412.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_raw_storage_iter.h.B6F3D1B2AA10F664.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_raw_storage_iter.h.B6F3D1B2AA10F664.idx new file mode 100644 index 0000000..58ed460 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_raw_storage_iter.h.B6F3D1B2AA10F664.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_relops.h.24BFDE02B00E3621.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_relops.h.24BFDE02B00E3621.idx new file mode 100644 index 0000000..4170898 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_relops.h.24BFDE02B00E3621.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_set.h.8BB339BCAB6CDD22.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_set.h.8BB339BCAB6CDD22.idx new file mode 100644 index 0000000..79ebeea Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_set.h.8BB339BCAB6CDD22.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_tempbuf.h.AE733D0801C156D7.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_tempbuf.h.AE733D0801C156D7.idx new file mode 100644 index 0000000..bae93f3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_tempbuf.h.AE733D0801C156D7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_tree.h.BE2F1A89DED77BC9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_tree.h.BE2F1A89DED77BC9.idx new file mode 100644 index 0000000..d8fe954 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_tree.h.BE2F1A89DED77BC9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_uninitialized.h.7FC5838335418811.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_uninitialized.h.7FC5838335418811.idx new file mode 100644 index 0000000..cdb1518 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_uninitialized.h.7FC5838335418811.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_vector.h.36C1AB8BB6AC3AF3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_vector.h.36C1AB8BB6AC3AF3.idx new file mode 100644 index 0000000..2f2ddd6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_vector.h.36C1AB8BB6AC3AF3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stream_iterator.h.B2666EF6CEB449A8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stream_iterator.h.B2666EF6CEB449A8.idx new file mode 100644 index 0000000..db9614a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stream_iterator.h.B2666EF6CEB449A8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf.E7F6935DB46FD4B8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf.E7F6935DB46FD4B8.idx new file mode 100644 index 0000000..5bd0529 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf.E7F6935DB46FD4B8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf.tcc.13CF298819F0CF69.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf.tcc.13CF298819F0CF69.idx new file mode 100644 index 0000000..31268b5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf.tcc.13CF298819F0CF69.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf_iterator.h.5699D874BFFFDB9E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf_iterator.h.5699D874BFFFDB9E.idx new file mode 100644 index 0000000..e49c0ff Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf_iterator.h.5699D874BFFFDB9E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string.D37ED2A68566F1D5.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string.D37ED2A68566F1D5.idx new file mode 100644 index 0000000..207c6b7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string.D37ED2A68566F1D5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string.h.979B97B48AB27554.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string.h.979B97B48AB27554.idx new file mode 100644 index 0000000..c82d36e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string.h.979B97B48AB27554.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_conversions.h.75A058B07D5B6058.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_conversions.h.75A058B07D5B6058.idx new file mode 100644 index 0000000..5af8a07 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_conversions.h.75A058B07D5B6058.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_view.3EE419A7DE7E7D8B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_view.3EE419A7DE7E7D8B.idx new file mode 100644 index 0000000..ae39d11 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_view.3EE419A7DE7E7D8B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_view.tcc.50BF117907489E30.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_view.tcc.50BF117907489E30.idx new file mode 100644 index 0000000..b210ce8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_view.tcc.50BF117907489E30.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stringfwd.h.6B3FAF8075248E7D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stringfwd.h.6B3FAF8075248E7D.idx new file mode 100644 index 0000000..a27823e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stringfwd.h.6B3FAF8075248E7D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/strings.h.9EB46A34EB89BB5D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/strings.h.9EB46A34EB89BB5D.idx new file mode 100644 index 0000000..50cf8fd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/strings.h.9EB46A34EB89BB5D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_FILE.h.2B6C435DE91D3DF8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_FILE.h.2B6C435DE91D3DF8.idx new file mode 100644 index 0000000..8da8d17 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_FILE.h.2B6C435DE91D3DF8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct___jmp_buf_tag.h.C41AC0386D4A06C8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct___jmp_buf_tag.h.C41AC0386D4A06C8.idx new file mode 100644 index 0000000..e38f1e2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct___jmp_buf_tag.h.C41AC0386D4A06C8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_iovec.h.2D76C8EFEB1B5ED0.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_iovec.h.2D76C8EFEB1B5ED0.idx new file mode 100644 index 0000000..caa6af0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_iovec.h.2D76C8EFEB1B5ED0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_itimerspec.h.7F2AA6FE7224B30F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_itimerspec.h.7F2AA6FE7224B30F.idx new file mode 100644 index 0000000..1129511 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_itimerspec.h.7F2AA6FE7224B30F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_mutex.h.A62EF32C01DB3505.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_mutex.h.A62EF32C01DB3505.idx new file mode 100644 index 0000000..4c6b714 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_mutex.h.A62EF32C01DB3505.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_rwlock.h.76DF445C3AA414C9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_rwlock.h.76DF445C3AA414C9.idx new file mode 100644 index 0000000..929a035 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_rwlock.h.76DF445C3AA414C9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_sched_param.h.B3F662015F7067C8.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_sched_param.h.B3F662015F7067C8.idx new file mode 100644 index 0000000..2812ec2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_sched_param.h.B3F662015F7067C8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_stat.h.E75EF7EFBCB3A8A2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_stat.h.E75EF7EFBCB3A8A2.idx new file mode 100644 index 0000000..c882d4c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_stat.h.E75EF7EFBCB3A8A2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_timespec.h.0E09B6677A8D6A08.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_timespec.h.0E09B6677A8D6A08.idx new file mode 100644 index 0000000..43311be Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_timespec.h.0E09B6677A8D6A08.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_timeval.h.4A17C4CCB9EE5883.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_timeval.h.4A17C4CCB9EE5883.idx new file mode 100644 index 0000000..f9c5eba Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_timeval.h.4A17C4CCB9EE5883.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_tm.h.472DDF26D5924DB0.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_tm.h.472DDF26D5924DB0.idx new file mode 100644 index 0000000..d33b894 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_tm.h.472DDF26D5924DB0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stubs-64.h.C743FD695F310B00.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stubs-64.h.C743FD695F310B00.idx new file mode 100644 index 0000000..89d5d2f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stubs-64.h.C743FD695F310B00.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stubs.h.07D09A29AEBA877C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stubs.h.07D09A29AEBA877C.idx new file mode 100644 index 0000000..cc5fe29 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stubs.h.07D09A29AEBA877C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/system_error.B42E23DBEA5ED881.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/system_error.B42E23DBEA5ED881.idx new file mode 100644 index 0000000..e88612d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/system_error.B42E23DBEA5ED881.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-baud.h.32B8F616B6773CB4.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-baud.h.32B8F616B6773CB4.idx new file mode 100644 index 0000000..3e5715e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-baud.h.32B8F616B6773CB4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_cc.h.38553586AFDFC21B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_cc.h.38553586AFDFC21B.idx new file mode 100644 index 0000000..15e554c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_cc.h.38553586AFDFC21B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_cflag.h.8C64D6D25BBE3E95.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_cflag.h.8C64D6D25BBE3E95.idx new file mode 100644 index 0000000..7f1ed42 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_cflag.h.8C64D6D25BBE3E95.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_iflag.h.C95D64964218EE77.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_iflag.h.C95D64964218EE77.idx new file mode 100644 index 0000000..3316f52 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_iflag.h.C95D64964218EE77.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_lflag.h.AF676EB863CA8E60.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_lflag.h.AF676EB863CA8E60.idx new file mode 100644 index 0000000..e2dd356 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_lflag.h.AF676EB863CA8E60.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_oflag.h.395B2C451F9BE0B7.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_oflag.h.395B2C451F9BE0B7.idx new file mode 100644 index 0000000..2c20243 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_oflag.h.395B2C451F9BE0B7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-cbaud.h.C4C9A91359CF9375.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-cbaud.h.C4C9A91359CF9375.idx new file mode 100644 index 0000000..7338bf3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-cbaud.h.C4C9A91359CF9375.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-misc.h.418CF731D3112C2B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-misc.h.418CF731D3112C2B.idx new file mode 100644 index 0000000..da638ca Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-misc.h.418CF731D3112C2B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-struct.h.5E01E6E34C788D15.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-struct.h.5E01E6E34C788D15.idx new file mode 100644 index 0000000..411f31a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-struct.h.5E01E6E34C788D15.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-tcflow.h.990A75D85E4E7F16.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-tcflow.h.990A75D85E4E7F16.idx new file mode 100644 index 0000000..132d29a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-tcflow.h.990A75D85E4E7F16.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios.h.13717E37BDE03149.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios.h.13717E37BDE03149.idx new file mode 100644 index 0000000..97a746a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios.h.13717E37BDE03149.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios.h.ACC1BC42401E6F68.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios.h.ACC1BC42401E6F68.idx new file mode 100644 index 0000000..5911198 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios.h.ACC1BC42401E6F68.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/thread-shared-types.h.D988ADBA7666A8DD.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/thread-shared-types.h.D988ADBA7666A8DD.idx new file mode 100644 index 0000000..ab6dcf1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/thread-shared-types.h.D988ADBA7666A8DD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time.h.E3714B647728C2FE.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time.h.E3714B647728C2FE.idx new file mode 100644 index 0000000..64ea5b1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time.h.E3714B647728C2FE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time.h.EDC06F0AFB6EC7EC.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time.h.EDC06F0AFB6EC7EC.idx new file mode 100644 index 0000000..1a9a32a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time.h.EDC06F0AFB6EC7EC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time64.h.1807D6F5124100A2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time64.h.1807D6F5124100A2.idx new file mode 100644 index 0000000..5940f13 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time64.h.1807D6F5124100A2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time_members.h.373A4A15331ADD6D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time_members.h.373A4A15331ADD6D.idx new file mode 100644 index 0000000..d558d3a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time_members.h.373A4A15331ADD6D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time_t.h.CAA645D29A7A0EF9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time_t.h.CAA645D29A7A0EF9.idx new file mode 100644 index 0000000..8f1a687 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time_t.h.CAA645D29A7A0EF9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timer_t.h.3EFB88CBA2B5B801.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timer_t.h.3EFB88CBA2B5B801.idx new file mode 100644 index 0000000..c239423 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timer_t.h.3EFB88CBA2B5B801.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timesize.h.44719E86E09400E4.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timesize.h.44719E86E09400E4.idx new file mode 100644 index 0000000..8b4a108 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timesize.h.44719E86E09400E4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timex.h.F2D36E17192C32F0.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timex.h.F2D36E17192C32F0.idx new file mode 100644 index 0000000..3cbe94b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timex.h.F2D36E17192C32F0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ttydefaults.h.C98530E4C2DE508E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ttydefaults.h.C98530E4C2DE508E.idx new file mode 100644 index 0000000..3d533f9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ttydefaults.h.C98530E4C2DE508E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/tuple.EA25F1157ED7DA3D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/tuple.EA25F1157ED7DA3D.idx new file mode 100644 index 0000000..49056c8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/tuple.EA25F1157ED7DA3D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/type_traits.B5260392D7506FDF.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/type_traits.B5260392D7506FDF.idx new file mode 100644 index 0000000..67a4bb9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/type_traits.B5260392D7506FDF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/type_traits.h.1107E36AFD96CC43.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/type_traits.h.1107E36AFD96CC43.idx new file mode 100644 index 0000000..311ee58 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/type_traits.h.1107E36AFD96CC43.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/typeinfo.8B4361F429E21213.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/typeinfo.8B4361F429E21213.idx new file mode 100644 index 0000000..bb752b6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/typeinfo.8B4361F429E21213.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.21D9DEB46A9E0272.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.21D9DEB46A9E0272.idx new file mode 100644 index 0000000..2348400 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.21D9DEB46A9E0272.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.3AD5A0D016060D25.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.3AD5A0D016060D25.idx new file mode 100644 index 0000000..bbc1d4f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.3AD5A0D016060D25.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.BB07396DFADEEB89.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.BB07396DFADEEB89.idx new file mode 100644 index 0000000..05217db Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.BB07396DFADEEB89.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.CAF4DC91124A326D.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.CAF4DC91124A326D.idx new file mode 100644 index 0000000..3206e41 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.CAF4DC91124A326D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.E5A59583DBE28918.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.E5A59583DBE28918.idx new file mode 100644 index 0000000..2274f98 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.E5A59583DBE28918.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.E5E7FE6DA0F78AF5.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.E5E7FE6DA0F78AF5.idx new file mode 100644 index 0000000..ac5e689 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.E5E7FE6DA0F78AF5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/typesizes.h.A6E116B64E63B90B.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/typesizes.h.A6E116B64E63B90B.idx new file mode 100644 index 0000000..f51a53a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/typesizes.h.A6E116B64E63B90B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uintn-identity.h.CB86545C6FF94BB3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uintn-identity.h.CB86545C6FF94BB3.idx new file mode 100644 index 0000000..e5faaed Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uintn-identity.h.CB86545C6FF94BB3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uio_lim.h.DF584C6AE54BEA07.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uio_lim.h.DF584C6AE54BEA07.idx new file mode 100644 index 0000000..14326bb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uio_lim.h.DF584C6AE54BEA07.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uniform_int_dist.h.537A0A4438989FF3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uniform_int_dist.h.537A0A4438989FF3.idx new file mode 100644 index 0000000..8a772cd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uniform_int_dist.h.537A0A4438989FF3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unique_lock.h.01D81E87B65D6907.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unique_lock.h.01D81E87B65D6907.idx new file mode 100644 index 0000000..bca4b30 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unique_lock.h.01D81E87B65D6907.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unique_ptr.h.4355FA4900B65F20.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unique_ptr.h.4355FA4900B65F20.idx new file mode 100644 index 0000000..06a6306 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unique_ptr.h.4355FA4900B65F20.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unistd.h.4957E2CBEF0B97CE.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unistd.h.4957E2CBEF0B97CE.idx new file mode 100644 index 0000000..97dd08e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unistd.h.4957E2CBEF0B97CE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unistd_ext.h.19E02BEC0B72F7D2.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unistd_ext.h.19E02BEC0B72F7D2.idx new file mode 100644 index 0000000..a8ca580 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unistd_ext.h.19E02BEC0B72F7D2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_map.A760230F8D2220D9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_map.A760230F8D2220D9.idx new file mode 100644 index 0000000..bf01b1e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_map.A760230F8D2220D9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_map.h.7C5598CFB03069C4.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_map.h.7C5598CFB03069C4.idx new file mode 100644 index 0000000..84fe959 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_map.h.7C5598CFB03069C4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_set.380965C92158E271.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_set.380965C92158E271.idx new file mode 100644 index 0000000..0b19b2e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_set.380965C92158E271.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_set.h.97FA8B051DEF998F.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_set.h.97FA8B051DEF998F.idx new file mode 100644 index 0000000..357eb4d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_set.h.97FA8B051DEF998F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uses_allocator.h.ABD29684E1303EF9.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uses_allocator.h.ABD29684E1303EF9.idx new file mode 100644 index 0000000..9fffeb7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uses_allocator.h.ABD29684E1303EF9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uses_allocator_args.h.21CDDC0FE4C83329.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uses_allocator_args.h.21CDDC0FE4C83329.idx new file mode 100644 index 0000000..9cb2c67 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uses_allocator_args.h.21CDDC0FE4C83329.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/utility.0191A478BB7CF219.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/utility.0191A478BB7CF219.idx new file mode 100644 index 0000000..d4cf1ac Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/utility.0191A478BB7CF219.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/utility.h.AAFC7DB6DCE683E3.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/utility.h.AAFC7DB6DCE683E3.idx new file mode 100644 index 0000000..d80f985 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/utility.h.AAFC7DB6DCE683E3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/variant.DF2542EEBE1F8C34.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/variant.DF2542EEBE1F8C34.idx new file mode 100644 index 0000000..5199389 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/variant.DF2542EEBE1F8C34.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/vector.19A0304396FDE700.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/vector.19A0304396FDE700.idx new file mode 100644 index 0000000..065df2b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/vector.19A0304396FDE700.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/vector.tcc.EB92608F25B88A68.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/vector.tcc.EB92608F25B88A68.idx new file mode 100644 index 0000000..954b9b6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/vector.tcc.EB92608F25B88A68.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/version.A7FABC6992BE1FDD.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/version.A7FABC6992BE1FDD.idx new file mode 100644 index 0000000..e1f6a69 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/version.A7FABC6992BE1FDD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/version.h.8B5F774406BC230E.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/version.h.8B5F774406BC230E.idx new file mode 100644 index 0000000..f766c3b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/version.h.8B5F774406BC230E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/waitflags.h.8046C5530CD87302.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/waitflags.h.8046C5530CD87302.idx new file mode 100644 index 0000000..986c968 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/waitflags.h.8046C5530CD87302.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/waitstatus.h.D7C4F06852D51050.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/waitstatus.h.D7C4F06852D51050.idx new file mode 100644 index 0000000..4bd4290 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/waitstatus.h.D7C4F06852D51050.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wchar.h.27C0562D93BBAA12.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wchar.h.27C0562D93BBAA12.idx new file mode 100644 index 0000000..ae2dcb9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wchar.h.27C0562D93BBAA12.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wchar.h.83BD995621576773.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wchar.h.83BD995621576773.idx new file mode 100644 index 0000000..0005223 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wchar.h.83BD995621576773.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wctype-wchar.h.D8CFC0DAB89A1342.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wctype-wchar.h.D8CFC0DAB89A1342.idx new file mode 100644 index 0000000..3987d99 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wctype-wchar.h.D8CFC0DAB89A1342.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wctype.h.CC12045E6059335C.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wctype.h.CC12045E6059335C.idx new file mode 100644 index 0000000..bcb1318 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wctype.h.CC12045E6059335C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wint_t.h.DAC5928CF0BA7895.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wint_t.h.DAC5928CF0BA7895.idx new file mode 100644 index 0000000..75367e9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wint_t.h.DAC5928CF0BA7895.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wordsize.h.23D8030BEC81E6F1.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wordsize.h.23D8030BEC81E6F1.idx new file mode 100644 index 0000000..6de1b1f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wordsize.h.23D8030BEC81E6F1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/xopen_lim.h.E4E4BC8C11167D14.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/xopen_lim.h.E4E4BC8C11167D14.idx new file mode 100644 index 0000000..d5bc954 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/xopen_lim.h.E4E4BC8C11167D14.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/yamitracker.cpp.2117FDF0DDD80660.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/yamitracker.cpp.2117FDF0DDD80660.idx new file mode 100644 index 0000000..bf10791 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/yamitracker.cpp.2117FDF0DDD80660.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/yamitracker.h.96833ED7B29BAB68.idx b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/yamitracker.h.96833ED7B29BAB68.idx new file mode 100644 index 0000000..4a26057 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/yamitracker.h.96833ED7B29BAB68.idx differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/compile_commands.json b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/compile_commands.json new file mode 100644 index 0000000..4f5c217 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/compile_commands.json @@ -0,0 +1 @@ +[{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-g","-std=gnu++1z","-Wall","-Wextra","-fPIC","-D_REENTRANT","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_QML_DEBUG","-DQT_WIDGETS_LIB","-DQT_MULTIMEDIA_LIB","-DQT_GUI_LIB","-DQT_NETWORK_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker","-I/home/soffti/Qt/6.10.2/gcc_64/include","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtWidgets","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtMultimedia","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtGui","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtNetwork","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug","-I/home/soffti/Qt/6.10.2/gcc_64/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++","/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/main.cpp"],"directory":"/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/main.cpp"},{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-g","-std=gnu++1z","-Wall","-Wextra","-fPIC","-D_REENTRANT","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_QML_DEBUG","-DQT_WIDGETS_LIB","-DQT_MULTIMEDIA_LIB","-DQT_GUI_LIB","-DQT_NETWORK_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker","-I/home/soffti/Qt/6.10.2/gcc_64/include","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtWidgets","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtMultimedia","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtGui","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtNetwork","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug","-I/home/soffti/Qt/6.10.2/gcc_64/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++","/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/yamitracker.cpp"],"directory":"/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/yamitracker.cpp"},{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-g","-std=gnu++1z","-Wall","-Wextra","-fPIC","-D_REENTRANT","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_QML_DEBUG","-DQT_WIDGETS_LIB","-DQT_MULTIMEDIA_LIB","-DQT_GUI_LIB","-DQT_NETWORK_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker","-I/home/soffti/Qt/6.10.2/gcc_64/include","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtWidgets","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtMultimedia","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtGui","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtNetwork","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug","-I/home/soffti/Qt/6.10.2/gcc_64/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++","/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/simplewavwriter.cpp"],"directory":"/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/simplewavwriter.cpp"},{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-g","-std=gnu++1z","-Wall","-Wextra","-fPIC","-D_REENTRANT","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_QML_DEBUG","-DQT_WIDGETS_LIB","-DQT_MULTIMEDIA_LIB","-DQT_GUI_LIB","-DQT_NETWORK_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker","-I/home/soffti/Qt/6.10.2/gcc_64/include","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtWidgets","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtMultimedia","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtGui","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtNetwork","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug","-I/home/soffti/Qt/6.10.2/gcc_64/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++","/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/brrconverter.cpp"],"directory":"/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/brrconverter.cpp"},{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-g","-std=gnu++1z","-Wall","-Wextra","-fPIC","-D_REENTRANT","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_QML_DEBUG","-DQT_WIDGETS_LIB","-DQT_MULTIMEDIA_LIB","-DQT_GUI_LIB","-DQT_NETWORK_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker","-I/home/soffti/Qt/6.10.2/gcc_64/include","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtWidgets","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtMultimedia","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtGui","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtNetwork","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug","-I/home/soffti/Qt/6.10.2/gcc_64/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++-header","/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/yamitracker.h"],"directory":"/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/yamitracker.h"},{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-g","-std=gnu++1z","-Wall","-Wextra","-fPIC","-D_REENTRANT","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_QML_DEBUG","-DQT_WIDGETS_LIB","-DQT_MULTIMEDIA_LIB","-DQT_GUI_LIB","-DQT_NETWORK_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker","-I/home/soffti/Qt/6.10.2/gcc_64/include","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtWidgets","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtMultimedia","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtGui","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtNetwork","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug","-I/home/soffti/Qt/6.10.2/gcc_64/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++-header","/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/simplewavwriter.h"],"directory":"/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/simplewavwriter.h"},{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-g","-std=gnu++1z","-Wall","-Wextra","-fPIC","-D_REENTRANT","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_QML_DEBUG","-DQT_WIDGETS_LIB","-DQT_MULTIMEDIA_LIB","-DQT_GUI_LIB","-DQT_NETWORK_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker","-I/home/soffti/Qt/6.10.2/gcc_64/include","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtWidgets","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtMultimedia","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtGui","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtNetwork","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug","-I/home/soffti/Qt/6.10.2/gcc_64/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++-header","/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/brrconverter.h"],"directory":"/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/brrconverter.h"},{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-g","-std=gnu++1z","-Wall","-Wextra","-fPIC","-D_REENTRANT","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_QML_DEBUG","-DQT_WIDGETS_LIB","-DQT_MULTIMEDIA_LIB","-DQT_GUI_LIB","-DQT_NETWORK_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker","-I/home/soffti/Qt/6.10.2/gcc_64/include","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtWidgets","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtMultimedia","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtGui","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtNetwork","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug","-I/home/soffti/Qt/6.10.2/gcc_64/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++-header","/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/ui_yamitracker.h"],"directory":"/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/ui_yamitracker.h"}] \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Makefile b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Makefile new file mode 100644 index 0000000..5cd8016 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Makefile @@ -0,0 +1,455 @@ +############################################################################# +# Makefile for building: Yamitracker +# Generated by qmake (3.1) (Qt 5.15.17) +# Project: ../Yamitracker.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Yamitracker1.0.0 +DISTDIR = /home/soffti/progs/Yami/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/.tmp/Yamitracker1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Multimedia.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Network.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp moc_yamitracker.cpp \ + moc_simplewavwriter.cpp \ + moc_brrconverter.cpp +OBJECTS = main.o \ + yamitracker.o \ + simplewavwriter.o \ + brrconverter.o \ + moc_yamitracker.o \ + moc_simplewavwriter.o \ + moc_brrconverter.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../Yamitracker.pro ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp +QMAKE_TARGET = Yamitracker +DESTDIR = +TARGET = Yamitracker + + +first: all +####### Build rules + +Yamitracker: ui_yamitracker.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../Yamitracker.pro + $(QMAKE) -o Makefile ../Yamitracker.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../Yamitracker.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../Yamitracker.pro + +qmake_all: FORCE + + +all: Makefile Yamitracker + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.h ../simplewavwriter.h ../brrconverter.h $(DISTDIR)/ + $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplewavwriter.cpp ../brrconverter.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_yamitracker.cpp moc_simplewavwriter.cpp moc_brrconverter.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_yamitracker.cpp moc_simplewavwriter.cpp moc_brrconverter.cpp +moc_yamitracker.cpp: ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/soffti/progs/Yami/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/soffti/progs/Yami/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp + +moc_simplewavwriter.cpp: ../simplewavwriter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/soffti/progs/Yami/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/soffti/progs/Yami/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../simplewavwriter.h -o moc_simplewavwriter.cpp + +moc_brrconverter.cpp: ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/soffti/progs/Yami/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/soffti/progs/Yami/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../brrconverter.h -o moc_brrconverter.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_yamitracker.h +compiler_uic_clean: + -$(DEL_FILE) ui_yamitracker.h +ui_yamitracker.h: ../yamitracker.ui \ + /usr/lib/qt5/bin/uic + /usr/lib/qt5/bin/uic ../yamitracker.ui -o ui_yamitracker.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: ../main.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp + +yamitracker.o: ../yamitracker.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + ui_yamitracker.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp + +simplewavwriter.o: ../simplewavwriter.cpp ../simplewavwriter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplewavwriter.o ../simplewavwriter.cpp + +brrconverter.o: ../brrconverter.cpp ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o brrconverter.o ../brrconverter.cpp + +moc_yamitracker.o: moc_yamitracker.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp + +moc_simplewavwriter.o: moc_simplewavwriter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_simplewavwriter.o moc_simplewavwriter.cpp + +moc_brrconverter.o: moc_brrconverter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_brrconverter.o moc_brrconverter.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin + $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Yamitracker b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Yamitracker new file mode 100755 index 0000000..f3feaf9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Yamitracker differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/brrconverter.o b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/brrconverter.o new file mode 100644 index 0000000..4e2d6c9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/main.o b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/main.o new file mode 100644 index 0000000..5e34592 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/main.o differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_brrconverter.cpp b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_brrconverter.cpp new file mode 100644 index 0000000..e19d56f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_brrconverter.cpp @@ -0,0 +1,95 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'brrconverter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.17) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../brrconverter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'brrconverter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.17. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_BrrConverter_t { + QByteArrayData data[1]; + char stringdata0[13]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_BrrConverter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_BrrConverter_t qt_meta_stringdata_BrrConverter = { + { +QT_MOC_LITERAL(0, 0, 12) // "BrrConverter" + + }, + "BrrConverter" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_BrrConverter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void BrrConverter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject BrrConverter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_BrrConverter.data, + qt_meta_data_BrrConverter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *BrrConverter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *BrrConverter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_BrrConverter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int BrrConverter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_brrconverter.o b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_brrconverter.o new file mode 100644 index 0000000..4c83fbe Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_predefs.h b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_predefs.h new file mode 100644 index 0000000..5170ea4 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_predefs.h @@ -0,0 +1,472 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __LDBL_MANT_DIG__ 64 +#define __cpp_nontype_template_parameter_auto 201606L +#define __UINT_LEAST16_MAX__ 0xffff +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __ATOMIC_ACQUIRE 2 +#define __FLT128_MAX_10_EXP__ 4932 +#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __cpp_aggregate_nsdmi 201304L +#define __UINT_LEAST8_TYPE__ unsigned char +#define __SIZEOF_FLOAT80__ 16 +#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 0xff +#define __SCHAR_WIDTH__ 8 +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 201411L +#define __BFLT16_MIN_10_EXP__ (-37) +#define __cpp_inheriting_constructors 201511L +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __WCHAR_MAX__ 0x7fffffff +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __cpp_binary_literals 201304L +#define __FLT64_DECIMAL_DIG__ 17 +#define __cpp_noexcept_function_type 201510L +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __cpp_variadic_templates 200704L +#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __cpp_variable_templates 201304L +#define __FLT32X_MAX_EXP__ 1024 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __FLT32_HAS_DENORM__ 1 +#define __UINT_FAST8_MAX__ 0xff +#define __cpp_rvalue_reference 200610L +#define __cpp_nested_namespace_definitions 201411L +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __LDBL_HAS_INFINITY__ 1 +#define __INT_LEAST8_WIDTH__ 8 +#define __cpp_variadic_using 201611L +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL +#define __INT_LEAST8_MAX__ 0x7f +#define __cpp_attributes 200809L +#define __cpp_capture_star_this 201603L +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __FLT64X_MAX_10_EXP__ 4932 +#define __cpp_if_constexpr 201606L +#define __BFLT16_MAX_10_EXP__ 38 +#define __BFLT16_MAX_EXP__ 128 +#define __LDBL_IS_IEC_60559__ 1 +#define __FLT64X_HAS_QUIET_NAN__ 1 +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +#define __UINTMAX_TYPE__ long unsigned int +#define __cpp_nsdmi 200809L +#define __BFLT16_DECIMAL_DIG__ 4 +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __OPTIMIZE__ 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +#define __FLT128_MIN_EXP__ (-16381) +#define __DEC64X_MAX_EXP__ 6145 +#define __WINT_MIN__ 0U +#define __FLT128_MIN_10_EXP__ (-4931) +#define __FLT32X_IS_IEC_60559__ 1 +#define __INT_LEAST16_WIDTH__ 16 +#define __SCHAR_MAX__ 0x7f +#define __FLT128_MANT_DIG__ 113 +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __INT64_C(c) c ## L +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __ATOMIC_SEQ_CST 5 +#define __unix 1 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MANT_DIG__ 53 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __cpp_aligned_new 201606L +#define __FLT32_MAX_10_EXP__ 38 +#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +#define __STDC_HOSTED__ 1 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype_auto 201304L +#define __DBL_DIG__ 15 +#define __STDC_EMBED_EMPTY__ 2 +#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __FLT32_IS_IEC_60559__ 1 +#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +#define __DBL_IS_IEC_60559__ 1 +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806L +#define __cpp_enumerator_attributes 201411L +#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +#define __FLT32X_HAS_INFINITY__ 1 +#define __unix__ 1 +#define __INT_WIDTH__ 32 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __DECIMAL_DIG__ 21 +#define __STDC_IEC_559_COMPLEX__ 1 +#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +#define __gnu_linux__ 1 +#define __INT16_MAX__ 0x7fff +#define __FLT64_MIN_EXP__ (-1021) +#define __DEC64X_EPSILON__ 1E-33D64x +#define __FLT64X_MIN_10_EXP__ (-4931) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __FLT16_MIN_EXP__ (-13) +#define __FLT64_MANT_DIG__ 53 +#define __FLT64X_MANT_DIG__ 64 +#define __BFLT16_DIG__ 2 +#define __GNUC__ 15 +#define __GXX_RTTI 1 +#define __pie__ 2 +#define __MMX__ 1 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __BIGGEST_ALIGNMENT__ 16 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __BFLT16_IS_IEC_60559__ 0 +#define __FLT16_MAX_10_EXP__ 4 +#define __cpp_delegating_constructors 200604L +#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __cpp_raw_strings 200710L +#define __INT_FAST32_MAX__ 0x7fffffffffffffffL +#define __DBL_HAS_INFINITY__ 1 +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __SIZEOF_FLOAT__ 4 +#define __HAVE_SPECULATION_SAFE_VALUE 1 +#define __cpp_fold_expressions 201603L +#define __DEC32_MIN_EXP__ (-94) +#define __INTPTR_WIDTH__ 64 +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ long int +#define __MMX_WITH_SSE__ 1 +#define __LDBL_HAS_DENORM__ 1 +#define __SEG_GS 1 +#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +#define __cplusplus 201703L +#define __cpp_ref_qualifiers 200710L +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610L +#define __DBL_MAX_EXP__ 1024 +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __FLT16_DECIMAL_DIG__ 5 +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 0x7fffffffffffffffL +#define __amd64 1 +#define __DEC64X_MAX__ 9.999999999999999999999999999999999E6144D64x +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __GNUG__ 15 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 8 +#define __BFLT16_HAS_INFINITY__ 1 +#define __FLT64X_MIN_EXP__ (-16381) +#define __SIZEOF_WINT_T__ 4 +#define __FLT32X_DIG__ 15 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806L +#define __FLT32_MAX_EXP__ 128 +#define __cpp_hex_float 201603L +#define __GXX_ABI_VERSION 1020 +#define __FLT_MIN_EXP__ (-125) +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __x86_64 1 +#define __cpp_lambdas 200907L +#define __INT_FAST64_TYPE__ long int +#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +#define __cpp_template_auto 201606L +#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __SIZEOF_POINTER__ 8 +#define __SIZE_TYPE__ long unsigned int +#define __LP64__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +#define __LDBL_MAX_EXP__ 16384 +#define __DECIMAL_BID_FORMAT__ 1 +#define __FLT64_MIN_10_EXP__ (-307) +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT64X_DECIMAL_DIG__ 21 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __FLT128_HAS_INFINITY__ 1 +#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __FLT_DIG__ 6 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 21 +#define __VERSION__ "15.2.0" +#define __UINT64_C(c) c ## UL +#define __cpp_unicode_characters 201411L +#define __DEC64X_MIN__ 1E-6143D64x +#define _STDC_PREDEF_H 1 +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT128_MAX_EXP__ 16384 +#define __FLT32_MANT_DIG__ 24 +#define __cpp_decltype 200707L +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT32X_MIN_EXP__ (-1021) +#define __STDC_IEC_60559_COMPLEX__ 201404L +#define __cpp_aggregate_bases 201603L +#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +#define __FLT128_HAS_DENORM__ 1 +#define __FLT32_DECIMAL_DIG__ 9 +#define __FLT128_DIG__ 33 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __DEC64X_MANT_DIG__ 34 +#define __DEC128_MAX_EXP__ 6145 +#define unix 1 +#define __DBL_HAS_DENORM__ 1 +#define __cpp_rtti 199711L +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __FLT_IS_IEC_60559__ 1 +#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +#define __FLT64X_DIG__ 18 +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309L +#define __ELF__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __UINT32_TYPE__ unsigned int +#define __BFLT16_HAS_QUIET_NAN__ 1 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +#define __UINTMAX_C(c) c ## UL +#define __FLT16_DIG__ 3 +#define __k8 1 +#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __cpp_constexpr 201603L +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +#define __STDC_IEC_60559_BFP__ 201404L +#define __SIZEOF_PTRDIFF_T__ 8 +#define __FLT64X_HAS_INFINITY__ 1 +#define __SIZEOF_LONG__ 8 +#define __LDBL_DIG__ 18 +#define __FLT64_IS_IEC_60559__ 1 +#define __x86_64__ 1 +#define __FLT16_IS_IEC_60559__ 1 +#define __FLT16_MAX_EXP__ 16 +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __STDC_EMBED_FOUND__ 1 +#define __INT_FAST16_MAX__ 0x7fffffffffffffffL +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __FLT64X_HAS_DENORM__ 1 +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" +#define __cpp_unicode_literals 200710L +#define __UINT_FAST16_TYPE__ long unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __STDC_EMBED_NOT_FOUND__ 0 +#define __INT_FAST32_WIDTH__ 64 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __DEC64X_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143D64x +#define __SIZE_WIDTH__ 64 +#define __SEG_FS 1 +#define __INT_LEAST16_MAX__ 0x7fff +#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __DEC64_MANT_DIG__ 16 +#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +#define __cpp_structured_bindings 201606L +#define __SIZEOF_INT__ 4 +#define __DEC32_MAX_EXP__ 97 +#define __INT_FAST8_MAX__ 0x7f +#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __INTPTR_MAX__ 0x7fffffffffffffffL +#define __cpp_sized_deallocation 201309L +#define __cpp_guaranteed_copy_elision 201606L +#define linux 1 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __EXCEPTIONS 1 +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 64 +#define __cpp_range_based_for 201603L +#define __INT_FAST16_WIDTH__ 64 +#define __FLT64_HAS_INFINITY__ 1 +#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __FLT16_HAS_INFINITY__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __cpp_nontype_template_args 201411L +#define __DEC32_MANT_DIG__ 7 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __pic__ 2 +#define __UINTPTR_MAX__ 0xffffffffffffffffUL +#define __INT_FAST64_WIDTH__ 64 +#define __INT_FAST64_MAX__ 0x7fffffffffffffffL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +#define __FLT32_HAS_INFINITY__ 1 +#define __FLT64X_MAX_EXP__ 16384 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __cpp_inline_variables 201606L +#define __BFLT16_MIN_EXP__ (-125) +#define __INT_MAX__ 0x7fffffff +#define __linux__ 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __SIZEOF_FLOAT128__ 16 +#define __BFLT16_MANT_DIG__ 8 +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __DEC64X_MIN_EXP__ (-6142) +#define __amd64__ 1 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST64_WIDTH__ 64 +#define __FLT32X_MAX_10_EXP__ 308 +#define __cpp_namespace_attributes 201411L +#define __SIZEOF_INT128__ 16 +#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +#define __FLT64X_IS_IEC_60559__ 1 +#define __GXX_CONSTEXPR_ASM__ 1 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +#define __INT_LEAST32_TYPE__ int +#define _LP64 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __cpp_return_type_deduction 201304L +#define __SIZEOF_WCHAR_T__ 4 +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __FLT128_HAS_QUIET_NAN__ 1 +#define __INTMAX_MAX__ 0x7fffffffffffffffL +#define __INT_FAST8_TYPE__ signed char +#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +#define __STDCPP_THREADS__ 1 +#define __BFLT16_HAS_DENORM__ 1 +#define __GNUC_STDC_INLINE__ 1 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +#define __FLT16_HAS_DENORM__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __FXSR__ 1 +#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __INTMAX_WIDTH__ 64 +#define __cpp_runtime_arrays 198712L +#define __FLT32_DIG__ 6 +#define __UINT64_TYPE__ long unsigned int +#define __UINT32_C(c) c ## U +#define __cpp_alias_templates 200704L +#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +#define __FLT128_IS_IEC_60559__ 1 +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 64 +#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +#define __PIC__ 2 +#define __INT32_MAX__ 0x7fffffff +#define __UINT_FAST32_TYPE__ long unsigned int +#define __FLT16_MANT_DIG__ 11 +#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F +#define __SSE2__ 1 +#define __cpp_deduction_guides 201703L +#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711L +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long int +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 2 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __UINTMAX_MAX__ 0xffffffffffffffffUL +#define __PIE__ 2 +#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +#define __cpp_template_template_args 201611L +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +#define __INT16_C(c) c +#define __STDC__ 1 +#define __PTRDIFF_TYPE__ long int +#define __LONG_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __cpp_generic_lambdas 201304L +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809L +#define __FLT128_DECIMAL_DIG__ 36 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL +#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __SIZE_MAX__ 0xffffffffffffffffUL +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __cpp_init_captures 201304L +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_simplewavwriter.cpp b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_simplewavwriter.cpp new file mode 100644 index 0000000..d820705 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_simplewavwriter.cpp @@ -0,0 +1,155 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'simplewavwriter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.17) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../simplewavwriter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'simplewavwriter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.17. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SimpleWavWriter_t { + QByteArrayData data[6]; + char stringdata0[69]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SimpleWavWriter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SimpleWavWriter_t qt_meta_stringdata_SimpleWavWriter = { + { +QT_MOC_LITERAL(0, 0, 15), // "SimpleWavWriter" +QT_MOC_LITERAL(1, 16, 12), // "trackUpdated" +QT_MOC_LITERAL(2, 29, 0), // "" +QT_MOC_LITERAL(3, 30, 5), // "track" +QT_MOC_LITERAL(4, 36, 22), // "recordingStatusChanged" +QT_MOC_LITERAL(5, 59, 9) // "recording" + + }, + "SimpleWavWriter\0trackUpdated\0\0track\0" + "recordingStatusChanged\0recording" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SimpleWavWriter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 2, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 2, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 1, 24, 2, 0x06 /* Public */, + 4, 1, 27, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::Int, 3, + QMetaType::Void, QMetaType::Bool, 5, + + 0 // eod +}; + +void SimpleWavWriter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->trackUpdated((*reinterpret_cast< int(*)>(_a[1]))); break; + case 1: _t->recordingStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SimpleWavWriter::*)(int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SimpleWavWriter::trackUpdated)) { + *result = 0; + return; + } + } + { + using _t = void (SimpleWavWriter::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SimpleWavWriter::recordingStatusChanged)) { + *result = 1; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SimpleWavWriter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SimpleWavWriter.data, + qt_meta_data_SimpleWavWriter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SimpleWavWriter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SimpleWavWriter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SimpleWavWriter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int SimpleWavWriter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 2) + qt_static_metacall(this, _c, _id, _a); + _id -= 2; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 2) + *reinterpret_cast(_a[0]) = -1; + _id -= 2; + } + return _id; +} + +// SIGNAL 0 +void SimpleWavWriter::trackUpdated(int _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SimpleWavWriter::recordingStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_simplewavwriter.o b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_simplewavwriter.o new file mode 100644 index 0000000..9da35fd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_simplewavwriter.o differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_yamitracker.cpp b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_yamitracker.cpp new file mode 100644 index 0000000..2f9fd4e --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_yamitracker.cpp @@ -0,0 +1,503 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'yamitracker.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.17) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../yamitracker.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'yamitracker.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.17. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SerialReader_t { + QByteArrayData data[13]; + char stringdata0[145]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SerialReader_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = { + { +QT_MOC_LITERAL(0, 0, 12), // "SerialReader" +QT_MOC_LITERAL(1, 13, 14), // "noteOnReceived" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 4), // "data" +QT_MOC_LITERAL(4, 34, 8), // "velocity" +QT_MOC_LITERAL(5, 43, 15), // "noteOffReceived" +QT_MOC_LITERAL(6, 59, 5), // "error" +QT_MOC_LITERAL(7, 65, 7), // "message" +QT_MOC_LITERAL(8, 73, 23), // "connectionStatusChanged" +QT_MOC_LITERAL(9, 97, 9), // "connected" +QT_MOC_LITERAL(10, 107, 18), // "deviceInfoReceived" +QT_MOC_LITERAL(11, 126, 12), // "manufacturer" +QT_MOC_LITERAL(12, 139, 5) // "model" + + }, + "SerialReader\0noteOnReceived\0\0data\0" + "velocity\0noteOffReceived\0error\0message\0" + "connectionStatusChanged\0connected\0" + "deviceInfoReceived\0manufacturer\0model" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SerialReader[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 5, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 2, 39, 2, 0x06 /* Public */, + 5, 1, 44, 2, 0x06 /* Public */, + 6, 1, 47, 2, 0x06 /* Public */, + 8, 1, 50, 2, 0x06 /* Public */, + 10, 2, 53, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, QMetaType::Bool, 9, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 11, 12, + + 0 // eod +}; + +void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->noteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->noteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->error((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->connectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: _t->deviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SerialReader::*)(const QString & , int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOnReceived)) { + *result = 0; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOffReceived)) { + *result = 1; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::error)) { + *result = 2; + return; + } + } + { + using _t = void (SerialReader::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::connectionStatusChanged)) { + *result = 3; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & , const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::deviceInfoReceived)) { + *result = 4; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SerialReader::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SerialReader.data, + qt_meta_data_SerialReader, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SerialReader::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SerialReader::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0)) + return static_cast(this); + return QThread::qt_metacast(_clname); +} + +int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QThread::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} + +// SIGNAL 0 +void SerialReader::noteOnReceived(const QString & _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SerialReader::noteOffReceived(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void SerialReader::error(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void SerialReader::connectionStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} + +// SIGNAL 4 +void SerialReader::deviceInfoReceived(const QString & _t1, const QString & _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 4, _a); +} +struct qt_meta_stringdata_Yamitracker_t { + QByteArrayData data[51]; + char stringdata0[896]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_Yamitracker_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = { + { +QT_MOC_LITERAL(0, 0, 11), // "Yamitracker" +QT_MOC_LITERAL(1, 12, 13), // "onPlayClicked" +QT_MOC_LITERAL(2, 26, 0), // "" +QT_MOC_LITERAL(3, 27, 14), // "onPauseClicked" +QT_MOC_LITERAL(4, 42, 13), // "onStopClicked" +QT_MOC_LITERAL(5, 56, 22), // "onSaveRecordingClicked" +QT_MOC_LITERAL(6, 79, 21), // "onConvertToBrrClicked" +QT_MOC_LITERAL(7, 101, 22), // "onSaveMusicFileClicked" +QT_MOC_LITERAL(8, 124, 23), // "onRefreshDevicesClicked" +QT_MOC_LITERAL(9, 148, 21), // "onLoadMidiFileClicked" +QT_MOC_LITERAL(10, 170, 21), // "onPlayMidiFileClicked" +QT_MOC_LITERAL(11, 192, 20), // "onRecordFromMidiFile" +QT_MOC_LITERAL(12, 213, 25), // "onSelectedMidiFileChanged" +QT_MOC_LITERAL(13, 239, 25), // "onSelectFileForConversion" +QT_MOC_LITERAL(14, 265, 23), // "onSelectFileForPlayback" +QT_MOC_LITERAL(15, 289, 16), // "onNoteOnReceived" +QT_MOC_LITERAL(16, 306, 4), // "data" +QT_MOC_LITERAL(17, 311, 8), // "velocity" +QT_MOC_LITERAL(18, 320, 17), // "onNoteOffReceived" +QT_MOC_LITERAL(19, 338, 25), // "onConnectionStatusChanged" +QT_MOC_LITERAL(20, 364, 9), // "connected" +QT_MOC_LITERAL(21, 374, 7), // "onError" +QT_MOC_LITERAL(22, 382, 7), // "message" +QT_MOC_LITERAL(23, 390, 20), // "onDeviceInfoReceived" +QT_MOC_LITERAL(24, 411, 12), // "manufacturer" +QT_MOC_LITERAL(25, 424, 5), // "model" +QT_MOC_LITERAL(26, 430, 21), // "onCurrentTrackChanged" +QT_MOC_LITERAL(27, 452, 5), // "index" +QT_MOC_LITERAL(28, 458, 17), // "onAddTrackClicked" +QT_MOC_LITERAL(29, 476, 20), // "onRemoveTrackClicked" +QT_MOC_LITERAL(30, 497, 19), // "onClearTrackClicked" +QT_MOC_LITERAL(31, 517, 18), // "onCopyTrackClicked" +QT_MOC_LITERAL(32, 536, 20), // "onMergeTracksClicked" +QT_MOC_LITERAL(33, 557, 23), // "onLoadWavToTrackClicked" +QT_MOC_LITERAL(34, 581, 18), // "onPlayTrackClicked" +QT_MOC_LITERAL(35, 600, 22), // "onPlayAllTracksClicked" +QT_MOC_LITERAL(36, 623, 21), // "onStopPlaybackClicked" +QT_MOC_LITERAL(37, 645, 18), // "onPlaybackFinished" +QT_MOC_LITERAL(38, 664, 18), // "onMuteTrackClicked" +QT_MOC_LITERAL(39, 683, 18), // "onSoloTrackClicked" +QT_MOC_LITERAL(40, 702, 20), // "onTrackVolumeChanged" +QT_MOC_LITERAL(41, 723, 5), // "value" +QT_MOC_LITERAL(42, 729, 18), // "onTrackNameChanged" +QT_MOC_LITERAL(43, 748, 24), // "onTrackInstrumentChanged" +QT_MOC_LITERAL(44, 773, 22), // "onPlaybackSpeedChanged" +QT_MOC_LITERAL(45, 796, 19), // "onBassVolumeChanged" +QT_MOC_LITERAL(46, 816, 16), // "attemptReconnect" +QT_MOC_LITERAL(47, 833, 23), // "handleAudioStateChanged" +QT_MOC_LITERAL(48, 857, 13), // "QAudio::State" +QT_MOC_LITERAL(49, 871, 5), // "state" +QT_MOC_LITERAL(50, 877, 18) // "clearStatusMessage" + + }, + "Yamitracker\0onPlayClicked\0\0onPauseClicked\0" + "onStopClicked\0onSaveRecordingClicked\0" + "onConvertToBrrClicked\0onSaveMusicFileClicked\0" + "onRefreshDevicesClicked\0onLoadMidiFileClicked\0" + "onPlayMidiFileClicked\0onRecordFromMidiFile\0" + "onSelectedMidiFileChanged\0" + "onSelectFileForConversion\0" + "onSelectFileForPlayback\0onNoteOnReceived\0" + "data\0velocity\0onNoteOffReceived\0" + "onConnectionStatusChanged\0connected\0" + "onError\0message\0onDeviceInfoReceived\0" + "manufacturer\0model\0onCurrentTrackChanged\0" + "index\0onAddTrackClicked\0onRemoveTrackClicked\0" + "onClearTrackClicked\0onCopyTrackClicked\0" + "onMergeTracksClicked\0onLoadWavToTrackClicked\0" + "onPlayTrackClicked\0onPlayAllTracksClicked\0" + "onStopPlaybackClicked\0onPlaybackFinished\0" + "onMuteTrackClicked\0onSoloTrackClicked\0" + "onTrackVolumeChanged\0value\0" + "onTrackNameChanged\0onTrackInstrumentChanged\0" + "onPlaybackSpeedChanged\0onBassVolumeChanged\0" + "attemptReconnect\0handleAudioStateChanged\0" + "QAudio::State\0state\0clearStatusMessage" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_Yamitracker[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 39, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 0, 209, 2, 0x08 /* Private */, + 3, 0, 210, 2, 0x08 /* Private */, + 4, 0, 211, 2, 0x08 /* Private */, + 5, 0, 212, 2, 0x08 /* Private */, + 6, 0, 213, 2, 0x08 /* Private */, + 7, 0, 214, 2, 0x08 /* Private */, + 8, 0, 215, 2, 0x08 /* Private */, + 9, 0, 216, 2, 0x08 /* Private */, + 10, 0, 217, 2, 0x08 /* Private */, + 11, 0, 218, 2, 0x08 /* Private */, + 12, 0, 219, 2, 0x08 /* Private */, + 13, 0, 220, 2, 0x08 /* Private */, + 14, 0, 221, 2, 0x08 /* Private */, + 15, 2, 222, 2, 0x08 /* Private */, + 18, 1, 227, 2, 0x08 /* Private */, + 19, 1, 230, 2, 0x08 /* Private */, + 21, 1, 233, 2, 0x08 /* Private */, + 23, 2, 236, 2, 0x08 /* Private */, + 26, 1, 241, 2, 0x08 /* Private */, + 28, 0, 244, 2, 0x08 /* Private */, + 29, 0, 245, 2, 0x08 /* Private */, + 30, 0, 246, 2, 0x08 /* Private */, + 31, 0, 247, 2, 0x08 /* Private */, + 32, 0, 248, 2, 0x08 /* Private */, + 33, 0, 249, 2, 0x08 /* Private */, + 34, 0, 250, 2, 0x08 /* Private */, + 35, 0, 251, 2, 0x08 /* Private */, + 36, 0, 252, 2, 0x08 /* Private */, + 37, 0, 253, 2, 0x08 /* Private */, + 38, 0, 254, 2, 0x08 /* Private */, + 39, 0, 255, 2, 0x08 /* Private */, + 40, 1, 256, 2, 0x08 /* Private */, + 42, 0, 259, 2, 0x08 /* Private */, + 43, 1, 260, 2, 0x08 /* Private */, + 44, 1, 263, 2, 0x08 /* Private */, + 45, 1, 266, 2, 0x08 /* Private */, + 46, 0, 269, 2, 0x08 /* Private */, + 47, 1, 270, 2, 0x08 /* Private */, + 50, 0, 273, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::QString, QMetaType::Int, 16, 17, + QMetaType::Void, QMetaType::QString, 16, + QMetaType::Void, QMetaType::Bool, 20, + QMetaType::Void, QMetaType::QString, 22, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 24, 25, + QMetaType::Void, QMetaType::Int, 27, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 41, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 27, + QMetaType::Void, QMetaType::Int, 41, + QMetaType::Void, QMetaType::Int, 41, + QMetaType::Void, + QMetaType::Void, 0x80000000 | 48, 49, + QMetaType::Void, + + 0 // eod +}; + +void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onPlayClicked(); break; + case 1: _t->onPauseClicked(); break; + case 2: _t->onStopClicked(); break; + case 3: _t->onSaveRecordingClicked(); break; + case 4: _t->onConvertToBrrClicked(); break; + case 5: _t->onSaveMusicFileClicked(); break; + case 6: _t->onRefreshDevicesClicked(); break; + case 7: _t->onLoadMidiFileClicked(); break; + case 8: _t->onPlayMidiFileClicked(); break; + case 9: _t->onRecordFromMidiFile(); break; + case 10: _t->onSelectedMidiFileChanged(); break; + case 11: _t->onSelectFileForConversion(); break; + case 12: _t->onSelectFileForPlayback(); break; + case 13: _t->onNoteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 14: _t->onNoteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 15: _t->onConnectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 16: _t->onError((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 17: _t->onDeviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + case 18: _t->onCurrentTrackChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 19: _t->onAddTrackClicked(); break; + case 20: _t->onRemoveTrackClicked(); break; + case 21: _t->onClearTrackClicked(); break; + case 22: _t->onCopyTrackClicked(); break; + case 23: _t->onMergeTracksClicked(); break; + case 24: _t->onLoadWavToTrackClicked(); break; + case 25: _t->onPlayTrackClicked(); break; + case 26: _t->onPlayAllTracksClicked(); break; + case 27: _t->onStopPlaybackClicked(); break; + case 28: _t->onPlaybackFinished(); break; + case 29: _t->onMuteTrackClicked(); break; + case 30: _t->onSoloTrackClicked(); break; + case 31: _t->onTrackVolumeChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 32: _t->onTrackNameChanged(); break; + case 33: _t->onTrackInstrumentChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 34: _t->onPlaybackSpeedChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 35: _t->onBassVolumeChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 36: _t->attemptReconnect(); break; + case 37: _t->handleAudioStateChanged((*reinterpret_cast< QAudio::State(*)>(_a[1]))); break; + case 38: _t->clearStatusMessage(); break; + default: ; + } + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + switch (_id) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 37: + switch (*reinterpret_cast(_a[1])) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 0: + *reinterpret_cast(_a[0]) = qRegisterMetaType< QAudio::State >(); break; + } + break; + } + } +} + +QT_INIT_METAOBJECT const QMetaObject Yamitracker::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_Yamitracker.data, + qt_meta_data_Yamitracker, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *Yamitracker::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *Yamitracker::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 39) + qt_static_metacall(this, _c, _id, _a); + _id -= 39; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 39) + qt_static_metacall(this, _c, _id, _a); + _id -= 39; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_yamitracker.o b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_yamitracker.o new file mode 100644 index 0000000..f36f13e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/simplewavwriter.o b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/simplewavwriter.o new file mode 100644 index 0000000..43bcbb8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/simplewavwriter.o differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/ui_yamitracker.h b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/ui_yamitracker.h new file mode 100644 index 0000000..2602a35 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/ui_yamitracker.h @@ -0,0 +1,930 @@ +/******************************************************************************** +** Form generated from reading UI file 'yamitracker.ui' +** +** Created by: Qt User Interface Compiler version 5.15.17 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_YAMITRACKER_H +#define UI_YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Yamitracker +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QHBoxLayout *horizontalLayout; + QLabel *statusLabel; + QSpacerItem *horizontalSpacer; + QLabel *deviceLabel; + QHBoxLayout *horizontalLayout_2; + QLabel *keysInfoLabel; + QProgressBar *volumeBar; + QGroupBox *groupBox; + QHBoxLayout *horizontalLayout_3; + QPushButton *playButton; + QPushButton *pauseButton; + QPushButton *stopButton; + QPushButton *saveRecordingButton; + QPushButton *convertButton; + QPushButton *saveMusicButton; + QGroupBox *groupBox_4; + QHBoxLayout *horizontalLayout_7; + QPushButton *playTrackButton; + QPushButton *playAllButton; + QPushButton *stopPlaybackButton; + QSpacerItem *horizontalSpacer_13; + QPushButton *loadWavButton; + QGroupBox *groupBox_3; + QHBoxLayout *horizontalLayout_6; + QLabel *label_3; + QComboBox *trackComboBox; + QPushButton *addTrackButton; + QPushButton *removeTrackButton; + QPushButton *clearTrackButton; + QPushButton *copyTrackButton; + QPushButton *mergeTrackButton; + QSpacerItem *horizontalSpacer_12; + QLabel *trackInfoLabel; + QScrollArea *scrollArea; + QWidget *scrollAreaWidgetContents; + QVBoxLayout *verticalLayout_4; + QLabel *label_4; + QGroupBox *groupBox_2; + QVBoxLayout *verticalLayout_3; + QHBoxLayout *horizontalLayout_4; + QLabel *label; + QComboBox *instrumentComboBox; + QSpacerItem *horizontalSpacer_20; + QLabel *speedLabel; + QSlider *playbackSpeedSlider; + QLabel *volumeLabel; + QSlider *bassVolumeSlider; + QPushButton *refreshDevicesButton; + QHBoxLayout *horizontalLayout_5; + QPushButton *loadMidiButton; + QPushButton *playMidiButton; + QPushButton *recordFromMidiButton; + QPushButton *selectFileButton; + QPushButton *playFileButton; + QLabel *label_2; + QListWidget *midiFilesList; + QWidget *pianoWidget; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *whiteKeysLayout; + QPushButton *key_C1; + QPushButton *key_D1; + QPushButton *key_E1; + QPushButton *key_F1; + QPushButton *key_G1; + QPushButton *key_A1; + QPushButton *key_B1; + QPushButton *key_C2; + QPushButton *key_D2; + QPushButton *key_E2; + QPushButton *key_F2; + QPushButton *key_G2; + QPushButton *key_A2; + QPushButton *key_B2; + QPushButton *key_C3; + QPushButton *key_D3; + QPushButton *key_E3; + QPushButton *key_F3; + QPushButton *key_G3; + QPushButton *key_A3; + QPushButton *key_B3; + QPushButton *key_C4; + QPushButton *key_D4; + QPushButton *key_E4; + QPushButton *key_F4; + QPushButton *key_G4; + QPushButton *key_A4; + QPushButton *key_B4; + QPushButton *key_C5; + QPushButton *key_D5; + QPushButton *key_E5; + QPushButton *key_F5; + QPushButton *key_G5; + QPushButton *key_A5; + QPushButton *key_B5; + QPushButton *key_C6; + QHBoxLayout *blackKeysLayout; + QSpacerItem *horizontalSpacer_1; + QPushButton *key_Cs1; + QPushButton *key_Ds1; + QSpacerItem *horizontalSpacer_22; + QPushButton *key_Fs1; + QPushButton *key_Gs1; + QPushButton *key_As1; + QSpacerItem *horizontalSpacer_3; + QPushButton *key_Cs2; + QPushButton *key_Ds2; + QSpacerItem *horizontalSpacer_4; + QPushButton *key_Fs2; + QPushButton *key_Gs2; + QPushButton *key_As2; + QSpacerItem *horizontalSpacer_5; + QPushButton *key_Cs3; + QPushButton *key_Ds3; + QSpacerItem *horizontalSpacer_6; + QPushButton *key_Fs3; + QPushButton *key_Gs3; + QPushButton *key_As3; + QSpacerItem *horizontalSpacer_7; + QPushButton *key_Cs4; + QPushButton *key_Ds4; + QSpacerItem *horizontalSpacer_8; + QPushButton *key_Fs4; + QPushButton *key_Gs4; + QPushButton *key_As4; + QSpacerItem *horizontalSpacer_9; + QPushButton *key_Cs5; + QPushButton *key_Ds5; + QSpacerItem *horizontalSpacer_10; + QPushButton *key_Fs5; + QPushButton *key_Gs5; + QPushButton *key_As5; + QSpacerItem *horizontalSpacer_11; + + void setupUi(QMainWindow *Yamitracker) + { + if (Yamitracker->objectName().isEmpty()) + Yamitracker->setObjectName(QString::fromUtf8("Yamitracker")); + Yamitracker->resize(1400, 1000); + centralwidget = new QWidget(Yamitracker); + centralwidget->setObjectName(QString::fromUtf8("centralwidget")); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + statusLabel = new QLabel(centralwidget); + statusLabel->setObjectName(QString::fromUtf8("statusLabel")); + + horizontalLayout->addWidget(statusLabel); + + horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout->addItem(horizontalSpacer); + + deviceLabel = new QLabel(centralwidget); + deviceLabel->setObjectName(QString::fromUtf8("deviceLabel")); + + horizontalLayout->addWidget(deviceLabel); + + + verticalLayout->addLayout(horizontalLayout); + + horizontalLayout_2 = new QHBoxLayout(); + horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2")); + keysInfoLabel = new QLabel(centralwidget); + keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel")); + + horizontalLayout_2->addWidget(keysInfoLabel); + + volumeBar = new QProgressBar(centralwidget); + volumeBar->setObjectName(QString::fromUtf8("volumeBar")); + volumeBar->setValue(0); + + horizontalLayout_2->addWidget(volumeBar); + + + verticalLayout->addLayout(horizontalLayout_2); + + groupBox = new QGroupBox(centralwidget); + groupBox->setObjectName(QString::fromUtf8("groupBox")); + horizontalLayout_3 = new QHBoxLayout(groupBox); + horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3")); + playButton = new QPushButton(groupBox); + playButton->setObjectName(QString::fromUtf8("playButton")); + + horizontalLayout_3->addWidget(playButton); + + pauseButton = new QPushButton(groupBox); + pauseButton->setObjectName(QString::fromUtf8("pauseButton")); + pauseButton->setEnabled(false); + + horizontalLayout_3->addWidget(pauseButton); + + stopButton = new QPushButton(groupBox); + stopButton->setObjectName(QString::fromUtf8("stopButton")); + + horizontalLayout_3->addWidget(stopButton); + + saveRecordingButton = new QPushButton(groupBox); + saveRecordingButton->setObjectName(QString::fromUtf8("saveRecordingButton")); + + horizontalLayout_3->addWidget(saveRecordingButton); + + convertButton = new QPushButton(groupBox); + convertButton->setObjectName(QString::fromUtf8("convertButton")); + + horizontalLayout_3->addWidget(convertButton); + + saveMusicButton = new QPushButton(groupBox); + saveMusicButton->setObjectName(QString::fromUtf8("saveMusicButton")); + + horizontalLayout_3->addWidget(saveMusicButton); + + + verticalLayout->addWidget(groupBox); + + groupBox_4 = new QGroupBox(centralwidget); + groupBox_4->setObjectName(QString::fromUtf8("groupBox_4")); + horizontalLayout_7 = new QHBoxLayout(groupBox_4); + horizontalLayout_7->setObjectName(QString::fromUtf8("horizontalLayout_7")); + playTrackButton = new QPushButton(groupBox_4); + playTrackButton->setObjectName(QString::fromUtf8("playTrackButton")); + + horizontalLayout_7->addWidget(playTrackButton); + + playAllButton = new QPushButton(groupBox_4); + playAllButton->setObjectName(QString::fromUtf8("playAllButton")); + + horizontalLayout_7->addWidget(playAllButton); + + stopPlaybackButton = new QPushButton(groupBox_4); + stopPlaybackButton->setObjectName(QString::fromUtf8("stopPlaybackButton")); + + horizontalLayout_7->addWidget(stopPlaybackButton); + + horizontalSpacer_13 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_7->addItem(horizontalSpacer_13); + + loadWavButton = new QPushButton(groupBox_4); + loadWavButton->setObjectName(QString::fromUtf8("loadWavButton")); + + horizontalLayout_7->addWidget(loadWavButton); + + + verticalLayout->addWidget(groupBox_4); + + groupBox_3 = new QGroupBox(centralwidget); + groupBox_3->setObjectName(QString::fromUtf8("groupBox_3")); + horizontalLayout_6 = new QHBoxLayout(groupBox_3); + horizontalLayout_6->setObjectName(QString::fromUtf8("horizontalLayout_6")); + label_3 = new QLabel(groupBox_3); + label_3->setObjectName(QString::fromUtf8("label_3")); + + horizontalLayout_6->addWidget(label_3); + + trackComboBox = new QComboBox(groupBox_3); + trackComboBox->setObjectName(QString::fromUtf8("trackComboBox")); + + horizontalLayout_6->addWidget(trackComboBox); + + addTrackButton = new QPushButton(groupBox_3); + addTrackButton->setObjectName(QString::fromUtf8("addTrackButton")); + + horizontalLayout_6->addWidget(addTrackButton); + + removeTrackButton = new QPushButton(groupBox_3); + removeTrackButton->setObjectName(QString::fromUtf8("removeTrackButton")); + + horizontalLayout_6->addWidget(removeTrackButton); + + clearTrackButton = new QPushButton(groupBox_3); + clearTrackButton->setObjectName(QString::fromUtf8("clearTrackButton")); + + horizontalLayout_6->addWidget(clearTrackButton); + + copyTrackButton = new QPushButton(groupBox_3); + copyTrackButton->setObjectName(QString::fromUtf8("copyTrackButton")); + + horizontalLayout_6->addWidget(copyTrackButton); + + mergeTrackButton = new QPushButton(groupBox_3); + mergeTrackButton->setObjectName(QString::fromUtf8("mergeTrackButton")); + + horizontalLayout_6->addWidget(mergeTrackButton); + + horizontalSpacer_12 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_6->addItem(horizontalSpacer_12); + + trackInfoLabel = new QLabel(groupBox_3); + trackInfoLabel->setObjectName(QString::fromUtf8("trackInfoLabel")); + + horizontalLayout_6->addWidget(trackInfoLabel); + + + verticalLayout->addWidget(groupBox_3); + + scrollArea = new QScrollArea(centralwidget); + scrollArea->setObjectName(QString::fromUtf8("scrollArea")); + scrollArea->setWidgetResizable(true); + scrollAreaWidgetContents = new QWidget(); + scrollAreaWidgetContents->setObjectName(QString::fromUtf8("scrollAreaWidgetContents")); + scrollAreaWidgetContents->setGeometry(QRect(0, 0, 1380, 300)); + verticalLayout_4 = new QVBoxLayout(scrollAreaWidgetContents); + verticalLayout_4->setObjectName(QString::fromUtf8("verticalLayout_4")); + label_4 = new QLabel(scrollAreaWidgetContents); + label_4->setObjectName(QString::fromUtf8("label_4")); + + verticalLayout_4->addWidget(label_4); + + scrollArea->setWidget(scrollAreaWidgetContents); + + verticalLayout->addWidget(scrollArea); + + groupBox_2 = new QGroupBox(centralwidget); + groupBox_2->setObjectName(QString::fromUtf8("groupBox_2")); + verticalLayout_3 = new QVBoxLayout(groupBox_2); + verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3")); + horizontalLayout_4 = new QHBoxLayout(); + horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4")); + label = new QLabel(groupBox_2); + label->setObjectName(QString::fromUtf8("label")); + + horizontalLayout_4->addWidget(label); + + instrumentComboBox = new QComboBox(groupBox_2); + instrumentComboBox->setObjectName(QString::fromUtf8("instrumentComboBox")); + + horizontalLayout_4->addWidget(instrumentComboBox); + + horizontalSpacer_20 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_4->addItem(horizontalSpacer_20); + + speedLabel = new QLabel(groupBox_2); + speedLabel->setObjectName(QString::fromUtf8("speedLabel")); + + horizontalLayout_4->addWidget(speedLabel); + + playbackSpeedSlider = new QSlider(groupBox_2); + playbackSpeedSlider->setObjectName(QString::fromUtf8("playbackSpeedSlider")); + playbackSpeedSlider->setOrientation(Qt::Horizontal); + playbackSpeedSlider->setMinimum(50); + playbackSpeedSlider->setMaximum(200); + playbackSpeedSlider->setValue(100); + + horizontalLayout_4->addWidget(playbackSpeedSlider); + + volumeLabel = new QLabel(groupBox_2); + volumeLabel->setObjectName(QString::fromUtf8("volumeLabel")); + + horizontalLayout_4->addWidget(volumeLabel); + + bassVolumeSlider = new QSlider(groupBox_2); + bassVolumeSlider->setObjectName(QString::fromUtf8("bassVolumeSlider")); + bassVolumeSlider->setOrientation(Qt::Horizontal); + bassVolumeSlider->setMinimum(100); + bassVolumeSlider->setMaximum(400); + bassVolumeSlider->setValue(200); + + horizontalLayout_4->addWidget(bassVolumeSlider); + + refreshDevicesButton = new QPushButton(groupBox_2); + refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton")); + + horizontalLayout_4->addWidget(refreshDevicesButton); + + + verticalLayout_3->addLayout(horizontalLayout_4); + + horizontalLayout_5 = new QHBoxLayout(); + horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5")); + loadMidiButton = new QPushButton(groupBox_2); + loadMidiButton->setObjectName(QString::fromUtf8("loadMidiButton")); + + horizontalLayout_5->addWidget(loadMidiButton); + + playMidiButton = new QPushButton(groupBox_2); + playMidiButton->setObjectName(QString::fromUtf8("playMidiButton")); + + horizontalLayout_5->addWidget(playMidiButton); + + recordFromMidiButton = new QPushButton(groupBox_2); + recordFromMidiButton->setObjectName(QString::fromUtf8("recordFromMidiButton")); + + horizontalLayout_5->addWidget(recordFromMidiButton); + + selectFileButton = new QPushButton(groupBox_2); + selectFileButton->setObjectName(QString::fromUtf8("selectFileButton")); + + horizontalLayout_5->addWidget(selectFileButton); + + playFileButton = new QPushButton(groupBox_2); + playFileButton->setObjectName(QString::fromUtf8("playFileButton")); + + horizontalLayout_5->addWidget(playFileButton); + + + verticalLayout_3->addLayout(horizontalLayout_5); + + label_2 = new QLabel(groupBox_2); + label_2->setObjectName(QString::fromUtf8("label_2")); + + verticalLayout_3->addWidget(label_2); + + midiFilesList = new QListWidget(groupBox_2); + midiFilesList->setObjectName(QString::fromUtf8("midiFilesList")); + + verticalLayout_3->addWidget(midiFilesList); + + + verticalLayout->addWidget(groupBox_2); + + pianoWidget = new QWidget(centralwidget); + pianoWidget->setObjectName(QString::fromUtf8("pianoWidget")); + verticalLayout_2 = new QVBoxLayout(pianoWidget); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + whiteKeysLayout = new QHBoxLayout(); + whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout")); + key_C1 = new QPushButton(pianoWidget); + key_C1->setObjectName(QString::fromUtf8("key_C1")); + + whiteKeysLayout->addWidget(key_C1); + + key_D1 = new QPushButton(pianoWidget); + key_D1->setObjectName(QString::fromUtf8("key_D1")); + + whiteKeysLayout->addWidget(key_D1); + + key_E1 = new QPushButton(pianoWidget); + key_E1->setObjectName(QString::fromUtf8("key_E1")); + + whiteKeysLayout->addWidget(key_E1); + + key_F1 = new QPushButton(pianoWidget); + key_F1->setObjectName(QString::fromUtf8("key_F1")); + + whiteKeysLayout->addWidget(key_F1); + + key_G1 = new QPushButton(pianoWidget); + key_G1->setObjectName(QString::fromUtf8("key_G1")); + + whiteKeysLayout->addWidget(key_G1); + + key_A1 = new QPushButton(pianoWidget); + key_A1->setObjectName(QString::fromUtf8("key_A1")); + + whiteKeysLayout->addWidget(key_A1); + + key_B1 = new QPushButton(pianoWidget); + key_B1->setObjectName(QString::fromUtf8("key_B1")); + + whiteKeysLayout->addWidget(key_B1); + + key_C2 = new QPushButton(pianoWidget); + key_C2->setObjectName(QString::fromUtf8("key_C2")); + + whiteKeysLayout->addWidget(key_C2); + + key_D2 = new QPushButton(pianoWidget); + key_D2->setObjectName(QString::fromUtf8("key_D2")); + + whiteKeysLayout->addWidget(key_D2); + + key_E2 = new QPushButton(pianoWidget); + key_E2->setObjectName(QString::fromUtf8("key_E2")); + + whiteKeysLayout->addWidget(key_E2); + + key_F2 = new QPushButton(pianoWidget); + key_F2->setObjectName(QString::fromUtf8("key_F2")); + + whiteKeysLayout->addWidget(key_F2); + + key_G2 = new QPushButton(pianoWidget); + key_G2->setObjectName(QString::fromUtf8("key_G2")); + + whiteKeysLayout->addWidget(key_G2); + + key_A2 = new QPushButton(pianoWidget); + key_A2->setObjectName(QString::fromUtf8("key_A2")); + + whiteKeysLayout->addWidget(key_A2); + + key_B2 = new QPushButton(pianoWidget); + key_B2->setObjectName(QString::fromUtf8("key_B2")); + + whiteKeysLayout->addWidget(key_B2); + + key_C3 = new QPushButton(pianoWidget); + key_C3->setObjectName(QString::fromUtf8("key_C3")); + + whiteKeysLayout->addWidget(key_C3); + + key_D3 = new QPushButton(pianoWidget); + key_D3->setObjectName(QString::fromUtf8("key_D3")); + + whiteKeysLayout->addWidget(key_D3); + + key_E3 = new QPushButton(pianoWidget); + key_E3->setObjectName(QString::fromUtf8("key_E3")); + + whiteKeysLayout->addWidget(key_E3); + + key_F3 = new QPushButton(pianoWidget); + key_F3->setObjectName(QString::fromUtf8("key_F3")); + + whiteKeysLayout->addWidget(key_F3); + + key_G3 = new QPushButton(pianoWidget); + key_G3->setObjectName(QString::fromUtf8("key_G3")); + + whiteKeysLayout->addWidget(key_G3); + + key_A3 = new QPushButton(pianoWidget); + key_A3->setObjectName(QString::fromUtf8("key_A3")); + + whiteKeysLayout->addWidget(key_A3); + + key_B3 = new QPushButton(pianoWidget); + key_B3->setObjectName(QString::fromUtf8("key_B3")); + + whiteKeysLayout->addWidget(key_B3); + + key_C4 = new QPushButton(pianoWidget); + key_C4->setObjectName(QString::fromUtf8("key_C4")); + + whiteKeysLayout->addWidget(key_C4); + + key_D4 = new QPushButton(pianoWidget); + key_D4->setObjectName(QString::fromUtf8("key_D4")); + + whiteKeysLayout->addWidget(key_D4); + + key_E4 = new QPushButton(pianoWidget); + key_E4->setObjectName(QString::fromUtf8("key_E4")); + + whiteKeysLayout->addWidget(key_E4); + + key_F4 = new QPushButton(pianoWidget); + key_F4->setObjectName(QString::fromUtf8("key_F4")); + + whiteKeysLayout->addWidget(key_F4); + + key_G4 = new QPushButton(pianoWidget); + key_G4->setObjectName(QString::fromUtf8("key_G4")); + + whiteKeysLayout->addWidget(key_G4); + + key_A4 = new QPushButton(pianoWidget); + key_A4->setObjectName(QString::fromUtf8("key_A4")); + + whiteKeysLayout->addWidget(key_A4); + + key_B4 = new QPushButton(pianoWidget); + key_B4->setObjectName(QString::fromUtf8("key_B4")); + + whiteKeysLayout->addWidget(key_B4); + + key_C5 = new QPushButton(pianoWidget); + key_C5->setObjectName(QString::fromUtf8("key_C5")); + + whiteKeysLayout->addWidget(key_C5); + + key_D5 = new QPushButton(pianoWidget); + key_D5->setObjectName(QString::fromUtf8("key_D5")); + + whiteKeysLayout->addWidget(key_D5); + + key_E5 = new QPushButton(pianoWidget); + key_E5->setObjectName(QString::fromUtf8("key_E5")); + + whiteKeysLayout->addWidget(key_E5); + + key_F5 = new QPushButton(pianoWidget); + key_F5->setObjectName(QString::fromUtf8("key_F5")); + + whiteKeysLayout->addWidget(key_F5); + + key_G5 = new QPushButton(pianoWidget); + key_G5->setObjectName(QString::fromUtf8("key_G5")); + + whiteKeysLayout->addWidget(key_G5); + + key_A5 = new QPushButton(pianoWidget); + key_A5->setObjectName(QString::fromUtf8("key_A5")); + + whiteKeysLayout->addWidget(key_A5); + + key_B5 = new QPushButton(pianoWidget); + key_B5->setObjectName(QString::fromUtf8("key_B5")); + + whiteKeysLayout->addWidget(key_B5); + + key_C6 = new QPushButton(pianoWidget); + key_C6->setObjectName(QString::fromUtf8("key_C6")); + + whiteKeysLayout->addWidget(key_C6); + + + verticalLayout_2->addLayout(whiteKeysLayout); + + blackKeysLayout = new QHBoxLayout(); + blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout")); + horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_1); + + key_Cs1 = new QPushButton(pianoWidget); + key_Cs1->setObjectName(QString::fromUtf8("key_Cs1")); + + blackKeysLayout->addWidget(key_Cs1); + + key_Ds1 = new QPushButton(pianoWidget); + key_Ds1->setObjectName(QString::fromUtf8("key_Ds1")); + + blackKeysLayout->addWidget(key_Ds1); + + horizontalSpacer_22 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_22); + + key_Fs1 = new QPushButton(pianoWidget); + key_Fs1->setObjectName(QString::fromUtf8("key_Fs1")); + + blackKeysLayout->addWidget(key_Fs1); + + key_Gs1 = new QPushButton(pianoWidget); + key_Gs1->setObjectName(QString::fromUtf8("key_Gs1")); + + blackKeysLayout->addWidget(key_Gs1); + + key_As1 = new QPushButton(pianoWidget); + key_As1->setObjectName(QString::fromUtf8("key_As1")); + + blackKeysLayout->addWidget(key_As1); + + horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_3); + + key_Cs2 = new QPushButton(pianoWidget); + key_Cs2->setObjectName(QString::fromUtf8("key_Cs2")); + + blackKeysLayout->addWidget(key_Cs2); + + key_Ds2 = new QPushButton(pianoWidget); + key_Ds2->setObjectName(QString::fromUtf8("key_Ds2")); + + blackKeysLayout->addWidget(key_Ds2); + + horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_4); + + key_Fs2 = new QPushButton(pianoWidget); + key_Fs2->setObjectName(QString::fromUtf8("key_Fs2")); + + blackKeysLayout->addWidget(key_Fs2); + + key_Gs2 = new QPushButton(pianoWidget); + key_Gs2->setObjectName(QString::fromUtf8("key_Gs2")); + + blackKeysLayout->addWidget(key_Gs2); + + key_As2 = new QPushButton(pianoWidget); + key_As2->setObjectName(QString::fromUtf8("key_As2")); + + blackKeysLayout->addWidget(key_As2); + + horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_5); + + key_Cs3 = new QPushButton(pianoWidget); + key_Cs3->setObjectName(QString::fromUtf8("key_Cs3")); + + blackKeysLayout->addWidget(key_Cs3); + + key_Ds3 = new QPushButton(pianoWidget); + key_Ds3->setObjectName(QString::fromUtf8("key_Ds3")); + + blackKeysLayout->addWidget(key_Ds3); + + horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_6); + + key_Fs3 = new QPushButton(pianoWidget); + key_Fs3->setObjectName(QString::fromUtf8("key_Fs3")); + + blackKeysLayout->addWidget(key_Fs3); + + key_Gs3 = new QPushButton(pianoWidget); + key_Gs3->setObjectName(QString::fromUtf8("key_Gs3")); + + blackKeysLayout->addWidget(key_Gs3); + + key_As3 = new QPushButton(pianoWidget); + key_As3->setObjectName(QString::fromUtf8("key_As3")); + + blackKeysLayout->addWidget(key_As3); + + horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_7); + + key_Cs4 = new QPushButton(pianoWidget); + key_Cs4->setObjectName(QString::fromUtf8("key_Cs4")); + + blackKeysLayout->addWidget(key_Cs4); + + key_Ds4 = new QPushButton(pianoWidget); + key_Ds4->setObjectName(QString::fromUtf8("key_Ds4")); + + blackKeysLayout->addWidget(key_Ds4); + + horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_8); + + key_Fs4 = new QPushButton(pianoWidget); + key_Fs4->setObjectName(QString::fromUtf8("key_Fs4")); + + blackKeysLayout->addWidget(key_Fs4); + + key_Gs4 = new QPushButton(pianoWidget); + key_Gs4->setObjectName(QString::fromUtf8("key_Gs4")); + + blackKeysLayout->addWidget(key_Gs4); + + key_As4 = new QPushButton(pianoWidget); + key_As4->setObjectName(QString::fromUtf8("key_As4")); + + blackKeysLayout->addWidget(key_As4); + + horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_9); + + key_Cs5 = new QPushButton(pianoWidget); + key_Cs5->setObjectName(QString::fromUtf8("key_Cs5")); + + blackKeysLayout->addWidget(key_Cs5); + + key_Ds5 = new QPushButton(pianoWidget); + key_Ds5->setObjectName(QString::fromUtf8("key_Ds5")); + + blackKeysLayout->addWidget(key_Ds5); + + horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_10); + + key_Fs5 = new QPushButton(pianoWidget); + key_Fs5->setObjectName(QString::fromUtf8("key_Fs5")); + + blackKeysLayout->addWidget(key_Fs5); + + key_Gs5 = new QPushButton(pianoWidget); + key_Gs5->setObjectName(QString::fromUtf8("key_Gs5")); + + blackKeysLayout->addWidget(key_Gs5); + + key_As5 = new QPushButton(pianoWidget); + key_As5->setObjectName(QString::fromUtf8("key_As5")); + + blackKeysLayout->addWidget(key_As5); + + horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_11); + + + verticalLayout_2->addLayout(blackKeysLayout); + + + verticalLayout->addWidget(pianoWidget); + + Yamitracker->setCentralWidget(centralwidget); + + retranslateUi(Yamitracker); + + QMetaObject::connectSlotsByName(Yamitracker); + } // setupUi + + void retranslateUi(QMainWindow *Yamitracker) + { + Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor - Multitrack Recording", nullptr)); + statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr)); + deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr)); + keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr)); + groupBox->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\267\320\260\320\277\320\270\321\201\321\214\321\216", nullptr)); + playButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\227\320\260\320\277\320\270\321\201\321\214 \321\201 \321\201\320\270\320\275\321\202\320\265\320\267\320\260\321\202\320\276\321\200\320\260", nullptr)); + pauseButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\270 \320\237\320\260\321\203\320\267\320\260", nullptr)); + stopButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\271 \320\241\321\202\320\276\320\277", nullptr)); + saveRecordingButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\222\276 \320\241\320\276\321\205\321\200\320\260\320\275\320\270\321\202\321\214 \320\267\320\260\320\277\320\270\321\201\321\214", nullptr)); + convertButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\204 \320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr)); + saveMusicButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\216\265 \320\241\320\276\321\205\321\200\320\260\320\275\320\270\321\202\321\214 \320\274\321\203\320\267\321\213\320\272\321\203 (Pently)", nullptr)); + groupBox_4->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\262\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\274", nullptr)); + playTrackButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\242\320\265\320\272\321\203\321\211\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260", nullptr)); + playAllButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266\342\226\266 \320\222\321\201\320\265 \320\264\320\276\321\200\320\276\320\266\320\272\320\270", nullptr)); + stopPlaybackButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\271 \320\241\321\202\320\276\320\277 \320\262\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\320\264\320\265\320\275\320\270\320\265", nullptr)); + loadWavButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\202 \320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214 WAV \320\262 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + groupBox_3->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\264\320\276\321\200\320\276\320\266\320\272\320\260\320\274\320\270", nullptr)); + label_3->setText(QCoreApplication::translate("Yamitracker", "\320\242\320\265\320\272\321\203\321\211\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260:", nullptr)); + addTrackButton->setText(QCoreApplication::translate("Yamitracker", "\342\236\225 \320\235\320\276\320\262\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260", nullptr)); + removeTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\227\221 \320\243\320\264\320\260\320\273\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + clearTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\227\221 \320\236\321\207\320\270\321\201\321\202\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + copyTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\213 \320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + mergeTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\200 \320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\320\270", nullptr)); + trackInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\224\320\276\321\200\320\276\320\266\320\272\320\260 1: 0 \320\275\320\276\321\202", nullptr)); + label_4->setText(QCoreApplication::translate("Yamitracker", "\320\237\320\260\320\275\320\265\320\273\321\214 \321\203\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260\320\274\320\270:", nullptr)); + groupBox_2->setTitle(QCoreApplication::translate("Yamitracker", "\320\240\320\260\320\261\320\276\321\202\320\260 \321\201 MIDI \321\204\320\260\320\271\320\273\320\260\320\274\320\270", nullptr)); + label->setText(QCoreApplication::translate("Yamitracker", "\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202:", nullptr)); + speedLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\320\272\320\276\321\200\320\276\321\201\321\202\321\214: 100%", nullptr)); + volumeLabel->setText(QCoreApplication::translate("Yamitracker", "\320\221\320\260\321\201: 200%", nullptr)); + refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\203 \320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr)); + loadMidiButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\202 \320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214 MIDI \321\204\320\260\320\271\320\273", nullptr)); + playMidiButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\222\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\321\201\321\202\320\270 MIDI", nullptr)); + recordFromMidiButton->setText(QCoreApplication::translate("Yamitracker", "\342\227\217 \320\227\320\260\320\277\320\270\321\201\320\260\321\202\321\214 \320\270\320\267 MIDI", nullptr)); + selectFileButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\201 \320\222\321\213\320\261\321\200\320\260\321\202\321\214 \321\204\320\260\320\271\320\273 \320\264\320\273\321\217 \320\272\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\320\270", nullptr)); + playFileButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\222\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\321\201\321\202\320\270 WAV", nullptr)); + label_2->setText(QCoreApplication::translate("Yamitracker", "\320\224\320\276\321\201\321\202\321\203\320\277\320\275\321\213\320\265 MIDI \321\204\320\260\320\271\320\273\321\213:", nullptr)); + key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr)); + key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr)); + key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr)); + key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr)); + key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr)); + key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr)); + key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr)); + key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr)); + key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr)); + key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr)); + key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr)); + key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr)); + key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr)); + key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr)); + key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr)); + key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr)); + key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr)); + key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr)); + key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr)); + key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr)); + key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr)); + key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr)); + key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr)); + key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr)); + key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr)); + key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr)); + key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr)); + key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr)); + key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr)); + key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr)); + key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr)); + key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr)); + key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr)); + key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr)); + key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr)); + key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr)); + key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr)); + key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr)); + key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr)); + key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr)); + key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr)); + key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr)); + key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr)); + key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr)); + key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr)); + key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr)); + key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr)); + key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr)); + key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr)); + key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr)); + key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr)); + key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr)); + key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr)); + key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr)); + key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr)); + key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr)); + key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr)); + key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr)); + key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr)); + key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr)); + key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class Yamitracker: public Ui_Yamitracker {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_YAMITRACKER_H diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/yamitracker.o b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/yamitracker.o new file mode 100644 index 0000000..4bb13ea Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build/yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/.qmake.stash b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/Makefile b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/Makefile new file mode 100644 index 0000000..d726afa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/Makefile @@ -0,0 +1,442 @@ +############################################################################# +# Makefile for building: Yamitracker +# Generated by qmake (3.1) (Qt 5.15.13) +# Project: ../Yamitracker.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Yamitracker1.0.0 +DISTDIR = /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/.tmp/Yamitracker1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp moc_yamitracker.cpp \ + moc_brrconverter.cpp +OBJECTS = main.o \ + yamitracker.o \ + simplewavwriter.o \ + brrconverter.o \ + moc_yamitracker.o \ + moc_brrconverter.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../Yamitracker.pro ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp +QMAKE_TARGET = Yamitracker +DESTDIR = +TARGET = Yamitracker + + +first: all +####### Build rules + +Yamitracker: ui_yamitracker.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../Yamitracker.pro + $(QMAKE) -o Makefile ../Yamitracker.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../Yamitracker.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../Yamitracker.pro + +qmake_all: FORCE + + +all: Makefile Yamitracker + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.h ../simplewavwriter.h ../brrconverter.h $(DISTDIR)/ + $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplewavwriter.cpp ../brrconverter.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_yamitracker.cpp moc_brrconverter.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_yamitracker.cpp moc_brrconverter.cpp +moc_yamitracker.cpp: ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp + +moc_brrconverter.cpp: ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../brrconverter.h -o moc_brrconverter.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_yamitracker.h +compiler_uic_clean: + -$(DEL_FILE) ui_yamitracker.h +ui_yamitracker.h: ../yamitracker.ui \ + /usr/lib/qt5/bin/uic + /usr/lib/qt5/bin/uic ../yamitracker.ui -o ui_yamitracker.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: ../main.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp + +yamitracker.o: ../yamitracker.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + ui_yamitracker.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp + +simplewavwriter.o: ../simplewavwriter.cpp ../simplewavwriter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplewavwriter.o ../simplewavwriter.cpp + +brrconverter.o: ../brrconverter.cpp ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o brrconverter.o ../brrconverter.cpp + +moc_yamitracker.o: moc_yamitracker.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp + +moc_brrconverter.o: moc_brrconverter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_brrconverter.o moc_brrconverter.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin + $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/Yamitracker b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/Yamitracker new file mode 100755 index 0000000..984eec7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/Yamitracker differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/brrconverter.o b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/brrconverter.o new file mode 100644 index 0000000..149ec06 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/main.o b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/main.o new file mode 100644 index 0000000..edc2e30 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/main.o differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.cpp b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.cpp new file mode 100644 index 0000000..a11b9fc --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.cpp @@ -0,0 +1,95 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'brrconverter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../brrconverter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'brrconverter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_BrrConverter_t { + QByteArrayData data[1]; + char stringdata0[13]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_BrrConverter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_BrrConverter_t qt_meta_stringdata_BrrConverter = { + { +QT_MOC_LITERAL(0, 0, 12) // "BrrConverter" + + }, + "BrrConverter" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_BrrConverter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void BrrConverter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject BrrConverter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_BrrConverter.data, + qt_meta_data_BrrConverter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *BrrConverter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *BrrConverter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_BrrConverter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int BrrConverter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.o b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.o new file mode 100644 index 0000000..fa3b784 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/moc_predefs.h b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/moc_predefs.h new file mode 100644 index 0000000..f29ad61 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/moc_predefs.h @@ -0,0 +1,464 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __cpp_nontype_template_parameter_auto 201606L +#define __UINT_LEAST16_MAX__ 0xffff +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __ATOMIC_ACQUIRE 2 +#define __FLT128_MAX_10_EXP__ 4932 +#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __cpp_aggregate_nsdmi 201304L +#define __UINT_LEAST8_TYPE__ unsigned char +#define __SIZEOF_FLOAT80__ 16 +#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 0xff +#define __SCHAR_WIDTH__ 8 +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 201411L +#define __BFLT16_MIN_10_EXP__ (-37) +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __WCHAR_MAX__ 0x7fffffff +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __cpp_binary_literals 201304L +#define __FLT64_DECIMAL_DIG__ 17 +#define __CET__ 3 +#define __cpp_noexcept_function_type 201510L +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __cpp_variadic_templates 200704L +#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __cpp_variable_templates 201304L +#define __FLT32X_MAX_EXP__ 1024 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __FLT32_HAS_DENORM__ 1 +#define __UINT_FAST8_MAX__ 0xff +#define __cpp_rvalue_reference 200610L +#define __cpp_nested_namespace_definitions 201411L +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __LDBL_HAS_INFINITY__ 1 +#define __INT_LEAST8_WIDTH__ 8 +#define __cpp_variadic_using 201611L +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL +#define __INT_LEAST8_MAX__ 0x7f +#define __cpp_attributes 200809L +#define __cpp_capture_star_this 201603L +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __FLT64X_MAX_10_EXP__ 4932 +#define __cpp_if_constexpr 201606L +#define __BFLT16_MAX_10_EXP__ 38 +#define __BFLT16_MAX_EXP__ 128 +#define __LDBL_IS_IEC_60559__ 1 +#define __FLT64X_HAS_QUIET_NAN__ 1 +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +#define __UINTMAX_TYPE__ long unsigned int +#define __cpp_nsdmi 200809L +#define __BFLT16_DECIMAL_DIG__ 4 +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __OPTIMIZE__ 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +#define __FLT128_MIN_EXP__ (-16381) +#define __WINT_MIN__ 0U +#define __FLT128_MIN_10_EXP__ (-4931) +#define __FLT32X_IS_IEC_60559__ 1 +#define __INT_LEAST16_WIDTH__ 16 +#define __SCHAR_MAX__ 0x7f +#define __FLT128_MANT_DIG__ 113 +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __INT64_C(c) c ## L +#define __SSP_STRONG__ 3 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __ATOMIC_SEQ_CST 5 +#define _FORTIFY_SOURCE 3 +#define __unix 1 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MANT_DIG__ 53 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __cpp_aligned_new 201606L +#define __FLT32_MAX_10_EXP__ 38 +#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +#define __STDC_HOSTED__ 1 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype_auto 201304L +#define __DBL_DIG__ 15 +#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __FLT32_IS_IEC_60559__ 1 +#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +#define __DBL_IS_IEC_60559__ 1 +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806L +#define __cpp_enumerator_attributes 201411L +#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +#define __FLT32X_HAS_INFINITY__ 1 +#define __unix__ 1 +#define __INT_WIDTH__ 32 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __DECIMAL_DIG__ 21 +#define __STDC_IEC_559_COMPLEX__ 1 +#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +#define __gnu_linux__ 1 +#define __INT16_MAX__ 0x7fff +#define __FLT64_MIN_EXP__ (-1021) +#define __FLT64X_MIN_10_EXP__ (-4931) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __cpp_return_type_deduction 201304L +#define __FLT16_MIN_EXP__ (-13) +#define __FLT64_MANT_DIG__ 53 +#define __FLT64X_MANT_DIG__ 64 +#define __BFLT16_DIG__ 2 +#define __GNUC__ 13 +#define __GXX_RTTI 1 +#define __pie__ 2 +#define __MMX__ 1 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __BIGGEST_ALIGNMENT__ 16 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __BFLT16_IS_IEC_60559__ 0 +#define __FLT16_MAX_10_EXP__ 4 +#define __cpp_delegating_constructors 200604L +#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __cpp_raw_strings 200710L +#define __INT_FAST32_MAX__ 0x7fffffffffffffffL +#define __DBL_HAS_INFINITY__ 1 +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __SIZEOF_FLOAT__ 4 +#define __HAVE_SPECULATION_SAFE_VALUE 1 +#define __cpp_fold_expressions 201603L +#define __DEC32_MIN_EXP__ (-94) +#define __INTPTR_WIDTH__ 64 +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ long int +#define __MMX_WITH_SSE__ 1 +#define __LDBL_HAS_DENORM__ 1 +#define __SEG_GS 1 +#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +#define __cplusplus 201703L +#define __cpp_ref_qualifiers 200710L +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610L +#define __DBL_MAX_EXP__ 1024 +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __FLT16_DECIMAL_DIG__ 5 +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 0x7fffffffffffffffL +#define __amd64 1 +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __GNUG__ 13 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 8 +#define __BFLT16_HAS_INFINITY__ 1 +#define __FLT64X_MIN_EXP__ (-16381) +#define __SIZEOF_WINT_T__ 4 +#define __FLT32X_DIG__ 15 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806L +#define __FLT32_MAX_EXP__ 128 +#define __cpp_hex_float 201603L +#define __GXX_ABI_VERSION 1018 +#define __FLT_MIN_EXP__ (-125) +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __x86_64 1 +#define __cpp_lambdas 200907L +#define __INT_FAST64_TYPE__ long int +#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +#define __cpp_template_auto 201606L +#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __SIZEOF_POINTER__ 8 +#define __SIZE_TYPE__ long unsigned int +#define __LP64__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +#define __LDBL_MAX_EXP__ 16384 +#define __DECIMAL_BID_FORMAT__ 1 +#define __FLT64_MIN_10_EXP__ (-307) +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT64X_DECIMAL_DIG__ 21 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __FLT128_HAS_INFINITY__ 1 +#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __FLT_DIG__ 6 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 21 +#define __VERSION__ "13.3.0" +#define __UINT64_C(c) c ## UL +#define __cpp_unicode_characters 201411L +#define _STDC_PREDEF_H 1 +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT128_MAX_EXP__ 16384 +#define __FLT32_MANT_DIG__ 24 +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT32X_MIN_EXP__ (-1021) +#define __STDC_IEC_60559_COMPLEX__ 201404L +#define __cpp_aggregate_bases 201603L +#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +#define __FLT128_HAS_DENORM__ 1 +#define __FLT32_DECIMAL_DIG__ 9 +#define __FLT128_DIG__ 33 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __DEC128_MAX_EXP__ 6145 +#define unix 1 +#define __DBL_HAS_DENORM__ 1 +#define __cpp_rtti 199711L +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __FLT_IS_IEC_60559__ 1 +#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +#define __FLT64X_DIG__ 18 +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309L +#define __ELF__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __UINT32_TYPE__ unsigned int +#define __BFLT16_HAS_QUIET_NAN__ 1 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +#define __UINTMAX_C(c) c ## UL +#define __FLT16_DIG__ 3 +#define __k8 1 +#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __cpp_constexpr 201603L +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +#define __STDC_IEC_60559_BFP__ 201404L +#define __SIZEOF_PTRDIFF_T__ 8 +#define __FLT64X_HAS_INFINITY__ 1 +#define __SIZEOF_LONG__ 8 +#define __LDBL_DIG__ 18 +#define __FLT64_IS_IEC_60559__ 1 +#define __x86_64__ 1 +#define __FLT16_IS_IEC_60559__ 1 +#define __FLT16_MAX_EXP__ 16 +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __INT_FAST16_MAX__ 0x7fffffffffffffffL +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __LONG_MAX__ 0x7fffffffffffffffL +#define __FLT64X_HAS_DENORM__ 1 +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" +#define __cpp_unicode_literals 200710L +#define __UINT_FAST16_TYPE__ long unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __INT_FAST32_WIDTH__ 64 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __SIZE_WIDTH__ 64 +#define __SEG_FS 1 +#define __INT_LEAST16_MAX__ 0x7fff +#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __DEC64_MANT_DIG__ 16 +#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +#define __cpp_structured_bindings 201606L +#define __SIZEOF_INT__ 4 +#define __DEC32_MAX_EXP__ 97 +#define __INT_FAST8_MAX__ 0x7f +#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __INTPTR_MAX__ 0x7fffffffffffffffL +#define __cpp_sized_deallocation 201309L +#define __cpp_guaranteed_copy_elision 201606L +#define linux 1 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __EXCEPTIONS 1 +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 64 +#define __LDBL_MANT_DIG__ 64 +#define __cpp_range_based_for 201603L +#define __INT_FAST16_WIDTH__ 64 +#define __FLT64_HAS_INFINITY__ 1 +#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __FLT16_HAS_INFINITY__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __cpp_nontype_template_args 201411L +#define __DEC32_MANT_DIG__ 7 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __pic__ 2 +#define __UINTPTR_MAX__ 0xffffffffffffffffUL +#define __INT_FAST64_WIDTH__ 64 +#define __cpp_decltype 200707L +#define __INT_FAST64_MAX__ 0x7fffffffffffffffL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +#define __FLT32_HAS_INFINITY__ 1 +#define __FLT64X_MAX_EXP__ 16384 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __cpp_inline_variables 201606L +#define __BFLT16_MIN_EXP__ (-125) +#define __INT_MAX__ 0x7fffffff +#define __linux__ 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __cpp_inheriting_constructors 201511L +#define __SIZEOF_FLOAT128__ 16 +#define __BFLT16_MANT_DIG__ 8 +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __amd64__ 1 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST64_WIDTH__ 64 +#define __FLT32X_MAX_10_EXP__ 308 +#define __cpp_namespace_attributes 201411L +#define __SIZEOF_INT128__ 16 +#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +#define __FLT64X_IS_IEC_60559__ 1 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +#define __INT_LEAST32_TYPE__ int +#define _LP64 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __SIZEOF_WCHAR_T__ 4 +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __FLT128_HAS_QUIET_NAN__ 1 +#define __INTMAX_MAX__ 0x7fffffffffffffffL +#define __INT_FAST8_TYPE__ signed char +#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +#define __STDCPP_THREADS__ 1 +#define __BFLT16_HAS_DENORM__ 1 +#define __GNUC_STDC_INLINE__ 1 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +#define __FLT16_HAS_DENORM__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __FXSR__ 1 +#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __INTMAX_WIDTH__ 64 +#define __cpp_runtime_arrays 198712L +#define __FLT32_DIG__ 6 +#define __UINT64_TYPE__ long unsigned int +#define __UINT32_C(c) c ## U +#define __cpp_alias_templates 200704L +#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +#define __FLT128_IS_IEC_60559__ 1 +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 64 +#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +#define __PIC__ 2 +#define __INT32_MAX__ 0x7fffffff +#define __UINT_FAST32_TYPE__ long unsigned int +#define __FLT16_MANT_DIG__ 11 +#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F +#define __SSE2__ 1 +#define __cpp_deduction_guides 201703L +#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711L +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long int +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 3 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __UINTMAX_MAX__ 0xffffffffffffffffUL +#define __PIE__ 2 +#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +#define __cpp_template_template_args 201611L +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +#define __INT16_C(c) c +#define __STDC__ 1 +#define __PTRDIFF_TYPE__ long int +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __cpp_generic_lambdas 201304L +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809L +#define __FLT128_DECIMAL_DIG__ 36 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL +#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __SIZE_MAX__ 0xffffffffffffffffUL +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __cpp_init_captures 201304L +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.cpp b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.cpp new file mode 100644 index 0000000..868459e --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.cpp @@ -0,0 +1,360 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'yamitracker.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../yamitracker.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'yamitracker.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SerialReader_t { + QByteArrayData data[13]; + char stringdata0[145]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SerialReader_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = { + { +QT_MOC_LITERAL(0, 0, 12), // "SerialReader" +QT_MOC_LITERAL(1, 13, 14), // "noteOnReceived" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 4), // "note" +QT_MOC_LITERAL(4, 34, 8), // "velocity" +QT_MOC_LITERAL(5, 43, 15), // "noteOffReceived" +QT_MOC_LITERAL(6, 59, 5), // "error" +QT_MOC_LITERAL(7, 65, 7), // "message" +QT_MOC_LITERAL(8, 73, 23), // "connectionStatusChanged" +QT_MOC_LITERAL(9, 97, 9), // "connected" +QT_MOC_LITERAL(10, 107, 18), // "deviceInfoReceived" +QT_MOC_LITERAL(11, 126, 12), // "manufacturer" +QT_MOC_LITERAL(12, 139, 5) // "model" + + }, + "SerialReader\0noteOnReceived\0\0note\0" + "velocity\0noteOffReceived\0error\0message\0" + "connectionStatusChanged\0connected\0" + "deviceInfoReceived\0manufacturer\0model" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SerialReader[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 5, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 2, 39, 2, 0x06 /* Public */, + 5, 1, 44, 2, 0x06 /* Public */, + 6, 1, 47, 2, 0x06 /* Public */, + 8, 1, 50, 2, 0x06 /* Public */, + 10, 2, 53, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, QMetaType::Bool, 9, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 11, 12, + + 0 // eod +}; + +void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->noteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->noteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->error((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->connectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: _t->deviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SerialReader::*)(const QString & , int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOnReceived)) { + *result = 0; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOffReceived)) { + *result = 1; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::error)) { + *result = 2; + return; + } + } + { + using _t = void (SerialReader::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::connectionStatusChanged)) { + *result = 3; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & , const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::deviceInfoReceived)) { + *result = 4; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SerialReader::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SerialReader.data, + qt_meta_data_SerialReader, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SerialReader::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SerialReader::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0)) + return static_cast(this); + return QThread::qt_metacast(_clname); +} + +int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QThread::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} + +// SIGNAL 0 +void SerialReader::noteOnReceived(const QString & _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SerialReader::noteOffReceived(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void SerialReader::error(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void SerialReader::connectionStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} + +// SIGNAL 4 +void SerialReader::deviceInfoReceived(const QString & _t1, const QString & _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 4, _a); +} +struct qt_meta_stringdata_Yamitracker_t { + QByteArrayData data[19]; + char stringdata0[264]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_Yamitracker_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = { + { +QT_MOC_LITERAL(0, 0, 11), // "Yamitracker" +QT_MOC_LITERAL(1, 12, 16), // "onNoteOnReceived" +QT_MOC_LITERAL(2, 29, 0), // "" +QT_MOC_LITERAL(3, 30, 4), // "note" +QT_MOC_LITERAL(4, 35, 8), // "velocity" +QT_MOC_LITERAL(5, 44, 17), // "onNoteOffReceived" +QT_MOC_LITERAL(6, 62, 7), // "onError" +QT_MOC_LITERAL(7, 70, 7), // "message" +QT_MOC_LITERAL(8, 78, 13), // "onPlayClicked" +QT_MOC_LITERAL(9, 92, 13), // "onStopClicked" +QT_MOC_LITERAL(10, 106, 21), // "onConvertToBrrClicked" +QT_MOC_LITERAL(11, 128, 18), // "clearStatusMessage" +QT_MOC_LITERAL(12, 147, 25), // "onConnectionStatusChanged" +QT_MOC_LITERAL(13, 173, 9), // "connected" +QT_MOC_LITERAL(14, 183, 16), // "attemptReconnect" +QT_MOC_LITERAL(15, 200, 20), // "onDeviceInfoReceived" +QT_MOC_LITERAL(16, 221, 12), // "manufacturer" +QT_MOC_LITERAL(17, 234, 5), // "model" +QT_MOC_LITERAL(18, 240, 23) // "onRefreshDevicesClicked" + + }, + "Yamitracker\0onNoteOnReceived\0\0note\0" + "velocity\0onNoteOffReceived\0onError\0" + "message\0onPlayClicked\0onStopClicked\0" + "onConvertToBrrClicked\0clearStatusMessage\0" + "onConnectionStatusChanged\0connected\0" + "attemptReconnect\0onDeviceInfoReceived\0" + "manufacturer\0model\0onRefreshDevicesClicked" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_Yamitracker[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 11, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 2, 69, 2, 0x08 /* Private */, + 5, 1, 74, 2, 0x08 /* Private */, + 6, 1, 77, 2, 0x08 /* Private */, + 8, 0, 80, 2, 0x08 /* Private */, + 9, 0, 81, 2, 0x08 /* Private */, + 10, 0, 82, 2, 0x08 /* Private */, + 11, 0, 83, 2, 0x08 /* Private */, + 12, 1, 84, 2, 0x08 /* Private */, + 14, 0, 87, 2, 0x08 /* Private */, + 15, 2, 88, 2, 0x08 /* Private */, + 18, 0, 93, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Bool, 13, + QMetaType::Void, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 16, 17, + QMetaType::Void, + + 0 // eod +}; + +void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onNoteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->onNoteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->onError((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->onPlayClicked(); break; + case 4: _t->onStopClicked(); break; + case 5: _t->onConvertToBrrClicked(); break; + case 6: _t->clearStatusMessage(); break; + case 7: _t->onConnectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 8: _t->attemptReconnect(); break; + case 9: _t->onDeviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + case 10: _t->onRefreshDevicesClicked(); break; + default: ; + } + } +} + +QT_INIT_METAOBJECT const QMetaObject Yamitracker::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_Yamitracker.data, + qt_meta_data_Yamitracker, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *Yamitracker::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *Yamitracker::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 11) + qt_static_metacall(this, _c, _id, _a); + _id -= 11; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 11) + *reinterpret_cast(_a[0]) = -1; + _id -= 11; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.o b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.o new file mode 100644 index 0000000..94c6f3d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_130314.wav b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_130314.wav new file mode 100644 index 0000000..3e8acba Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_130314.wav differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_130330.wav b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_130330.wav new file mode 100644 index 0000000..9d43abb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_130330.wav differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_130335.wav b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_130335.wav new file mode 100644 index 0000000..f7ef2a0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_130335.wav differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_130350.wav b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_130350.wav new file mode 100644 index 0000000..2ec0a92 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_130350.wav differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133027.wav b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133027.wav new file mode 100644 index 0000000..7f87b07 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133027.wav differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133032.wav b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133032.wav new file mode 100644 index 0000000..fde0bfe Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133032.wav differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133042.wav b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133042.wav new file mode 100644 index 0000000..1097ef8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133042.wav differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.brr b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.brr new file mode 100644 index 0000000..a475539 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.brr differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.wav b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.wav new file mode 100644 index 0000000..c296e1b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.wav differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.brr b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.brr new file mode 100644 index 0000000..940aec5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.brr differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.wav b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.wav new file mode 100644 index 0000000..512d392 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.wav differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/simplewavwriter.o b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/simplewavwriter.o new file mode 100644 index 0000000..46d7f52 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/simplewavwriter.o differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/ui_yamitracker.h b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/ui_yamitracker.h new file mode 100644 index 0000000..b1f1096 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/ui_yamitracker.h @@ -0,0 +1,625 @@ +/******************************************************************************** +** Form generated from reading UI file 'yamitracker.ui' +** +** Created by: Qt User Interface Compiler version 5.15.13 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_YAMITRACKER_H +#define UI_YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Yamitracker +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QLabel *statusLabel; + QLabel *deviceLabel; + QLabel *keysInfoLabel; + QProgressBar *volumeBar; + QHBoxLayout *controlLayout; + QPushButton *playButton; + QPushButton *stopButton; + QPushButton *convertButton; + QPushButton *refreshDevicesButton; + QWidget *pianoWidget; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *whiteKeysLayout; + QPushButton *key_C1; + QPushButton *key_D1; + QPushButton *key_E1; + QPushButton *key_F1; + QPushButton *key_G1; + QPushButton *key_A1; + QPushButton *key_B1; + QPushButton *key_C2; + QPushButton *key_D2; + QPushButton *key_E2; + QPushButton *key_F2; + QPushButton *key_G2; + QPushButton *key_A2; + QPushButton *key_B2; + QPushButton *key_C3; + QPushButton *key_D3; + QPushButton *key_E3; + QPushButton *key_F3; + QPushButton *key_G3; + QPushButton *key_A3; + QPushButton *key_B3; + QPushButton *key_C4; + QPushButton *key_D4; + QPushButton *key_E4; + QPushButton *key_F4; + QPushButton *key_G4; + QPushButton *key_A4; + QPushButton *key_B4; + QPushButton *key_C5; + QPushButton *key_D5; + QPushButton *key_E5; + QPushButton *key_F5; + QPushButton *key_G5; + QPushButton *key_A5; + QPushButton *key_B5; + QPushButton *key_C6; + QHBoxLayout *blackKeysLayout; + QSpacerItem *horizontalSpacer_1; + QPushButton *key_Cs1; + QPushButton *key_Ds1; + QSpacerItem *horizontalSpacer_2; + QPushButton *key_Fs1; + QPushButton *key_Gs1; + QPushButton *key_As1; + QSpacerItem *horizontalSpacer_3; + QPushButton *key_Cs2; + QPushButton *key_Ds2; + QSpacerItem *horizontalSpacer_4; + QPushButton *key_Fs2; + QPushButton *key_Gs2; + QPushButton *key_As2; + QSpacerItem *horizontalSpacer_5; + QPushButton *key_Cs3; + QPushButton *key_Ds3; + QSpacerItem *horizontalSpacer_6; + QPushButton *key_Fs3; + QPushButton *key_Gs3; + QPushButton *key_As3; + QSpacerItem *horizontalSpacer_7; + QPushButton *key_Cs4; + QPushButton *key_Ds4; + QSpacerItem *horizontalSpacer_8; + QPushButton *key_Fs4; + QPushButton *key_Gs4; + QPushButton *key_As4; + QSpacerItem *horizontalSpacer_9; + QPushButton *key_Cs5; + QPushButton *key_Ds5; + QSpacerItem *horizontalSpacer_10; + QPushButton *key_Fs5; + QPushButton *key_Gs5; + QPushButton *key_As5; + QSpacerItem *horizontalSpacer_11; + + void setupUi(QMainWindow *Yamitracker) + { + if (Yamitracker->objectName().isEmpty()) + Yamitracker->setObjectName(QString::fromUtf8("Yamitracker")); + Yamitracker->resize(1200, 600); + centralwidget = new QWidget(Yamitracker); + centralwidget->setObjectName(QString::fromUtf8("centralwidget")); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + statusLabel = new QLabel(centralwidget); + statusLabel->setObjectName(QString::fromUtf8("statusLabel")); + + verticalLayout->addWidget(statusLabel); + + deviceLabel = new QLabel(centralwidget); + deviceLabel->setObjectName(QString::fromUtf8("deviceLabel")); + + verticalLayout->addWidget(deviceLabel); + + keysInfoLabel = new QLabel(centralwidget); + keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel")); + + verticalLayout->addWidget(keysInfoLabel); + + volumeBar = new QProgressBar(centralwidget); + volumeBar->setObjectName(QString::fromUtf8("volumeBar")); + volumeBar->setValue(0); + + verticalLayout->addWidget(volumeBar); + + controlLayout = new QHBoxLayout(); + controlLayout->setObjectName(QString::fromUtf8("controlLayout")); + playButton = new QPushButton(centralwidget); + playButton->setObjectName(QString::fromUtf8("playButton")); + + controlLayout->addWidget(playButton); + + stopButton = new QPushButton(centralwidget); + stopButton->setObjectName(QString::fromUtf8("stopButton")); + + controlLayout->addWidget(stopButton); + + convertButton = new QPushButton(centralwidget); + convertButton->setObjectName(QString::fromUtf8("convertButton")); + + controlLayout->addWidget(convertButton); + + refreshDevicesButton = new QPushButton(centralwidget); + refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton")); + + controlLayout->addWidget(refreshDevicesButton); + + + verticalLayout->addLayout(controlLayout); + + pianoWidget = new QWidget(centralwidget); + pianoWidget->setObjectName(QString::fromUtf8("pianoWidget")); + verticalLayout_2 = new QVBoxLayout(pianoWidget); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + whiteKeysLayout = new QHBoxLayout(); + whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout")); + key_C1 = new QPushButton(pianoWidget); + key_C1->setObjectName(QString::fromUtf8("key_C1")); + + whiteKeysLayout->addWidget(key_C1); + + key_D1 = new QPushButton(pianoWidget); + key_D1->setObjectName(QString::fromUtf8("key_D1")); + + whiteKeysLayout->addWidget(key_D1); + + key_E1 = new QPushButton(pianoWidget); + key_E1->setObjectName(QString::fromUtf8("key_E1")); + + whiteKeysLayout->addWidget(key_E1); + + key_F1 = new QPushButton(pianoWidget); + key_F1->setObjectName(QString::fromUtf8("key_F1")); + + whiteKeysLayout->addWidget(key_F1); + + key_G1 = new QPushButton(pianoWidget); + key_G1->setObjectName(QString::fromUtf8("key_G1")); + + whiteKeysLayout->addWidget(key_G1); + + key_A1 = new QPushButton(pianoWidget); + key_A1->setObjectName(QString::fromUtf8("key_A1")); + + whiteKeysLayout->addWidget(key_A1); + + key_B1 = new QPushButton(pianoWidget); + key_B1->setObjectName(QString::fromUtf8("key_B1")); + + whiteKeysLayout->addWidget(key_B1); + + key_C2 = new QPushButton(pianoWidget); + key_C2->setObjectName(QString::fromUtf8("key_C2")); + + whiteKeysLayout->addWidget(key_C2); + + key_D2 = new QPushButton(pianoWidget); + key_D2->setObjectName(QString::fromUtf8("key_D2")); + + whiteKeysLayout->addWidget(key_D2); + + key_E2 = new QPushButton(pianoWidget); + key_E2->setObjectName(QString::fromUtf8("key_E2")); + + whiteKeysLayout->addWidget(key_E2); + + key_F2 = new QPushButton(pianoWidget); + key_F2->setObjectName(QString::fromUtf8("key_F2")); + + whiteKeysLayout->addWidget(key_F2); + + key_G2 = new QPushButton(pianoWidget); + key_G2->setObjectName(QString::fromUtf8("key_G2")); + + whiteKeysLayout->addWidget(key_G2); + + key_A2 = new QPushButton(pianoWidget); + key_A2->setObjectName(QString::fromUtf8("key_A2")); + + whiteKeysLayout->addWidget(key_A2); + + key_B2 = new QPushButton(pianoWidget); + key_B2->setObjectName(QString::fromUtf8("key_B2")); + + whiteKeysLayout->addWidget(key_B2); + + key_C3 = new QPushButton(pianoWidget); + key_C3->setObjectName(QString::fromUtf8("key_C3")); + + whiteKeysLayout->addWidget(key_C3); + + key_D3 = new QPushButton(pianoWidget); + key_D3->setObjectName(QString::fromUtf8("key_D3")); + + whiteKeysLayout->addWidget(key_D3); + + key_E3 = new QPushButton(pianoWidget); + key_E3->setObjectName(QString::fromUtf8("key_E3")); + + whiteKeysLayout->addWidget(key_E3); + + key_F3 = new QPushButton(pianoWidget); + key_F3->setObjectName(QString::fromUtf8("key_F3")); + + whiteKeysLayout->addWidget(key_F3); + + key_G3 = new QPushButton(pianoWidget); + key_G3->setObjectName(QString::fromUtf8("key_G3")); + + whiteKeysLayout->addWidget(key_G3); + + key_A3 = new QPushButton(pianoWidget); + key_A3->setObjectName(QString::fromUtf8("key_A3")); + + whiteKeysLayout->addWidget(key_A3); + + key_B3 = new QPushButton(pianoWidget); + key_B3->setObjectName(QString::fromUtf8("key_B3")); + + whiteKeysLayout->addWidget(key_B3); + + key_C4 = new QPushButton(pianoWidget); + key_C4->setObjectName(QString::fromUtf8("key_C4")); + + whiteKeysLayout->addWidget(key_C4); + + key_D4 = new QPushButton(pianoWidget); + key_D4->setObjectName(QString::fromUtf8("key_D4")); + + whiteKeysLayout->addWidget(key_D4); + + key_E4 = new QPushButton(pianoWidget); + key_E4->setObjectName(QString::fromUtf8("key_E4")); + + whiteKeysLayout->addWidget(key_E4); + + key_F4 = new QPushButton(pianoWidget); + key_F4->setObjectName(QString::fromUtf8("key_F4")); + + whiteKeysLayout->addWidget(key_F4); + + key_G4 = new QPushButton(pianoWidget); + key_G4->setObjectName(QString::fromUtf8("key_G4")); + + whiteKeysLayout->addWidget(key_G4); + + key_A4 = new QPushButton(pianoWidget); + key_A4->setObjectName(QString::fromUtf8("key_A4")); + + whiteKeysLayout->addWidget(key_A4); + + key_B4 = new QPushButton(pianoWidget); + key_B4->setObjectName(QString::fromUtf8("key_B4")); + + whiteKeysLayout->addWidget(key_B4); + + key_C5 = new QPushButton(pianoWidget); + key_C5->setObjectName(QString::fromUtf8("key_C5")); + + whiteKeysLayout->addWidget(key_C5); + + key_D5 = new QPushButton(pianoWidget); + key_D5->setObjectName(QString::fromUtf8("key_D5")); + + whiteKeysLayout->addWidget(key_D5); + + key_E5 = new QPushButton(pianoWidget); + key_E5->setObjectName(QString::fromUtf8("key_E5")); + + whiteKeysLayout->addWidget(key_E5); + + key_F5 = new QPushButton(pianoWidget); + key_F5->setObjectName(QString::fromUtf8("key_F5")); + + whiteKeysLayout->addWidget(key_F5); + + key_G5 = new QPushButton(pianoWidget); + key_G5->setObjectName(QString::fromUtf8("key_G5")); + + whiteKeysLayout->addWidget(key_G5); + + key_A5 = new QPushButton(pianoWidget); + key_A5->setObjectName(QString::fromUtf8("key_A5")); + + whiteKeysLayout->addWidget(key_A5); + + key_B5 = new QPushButton(pianoWidget); + key_B5->setObjectName(QString::fromUtf8("key_B5")); + + whiteKeysLayout->addWidget(key_B5); + + key_C6 = new QPushButton(pianoWidget); + key_C6->setObjectName(QString::fromUtf8("key_C6")); + + whiteKeysLayout->addWidget(key_C6); + + + verticalLayout_2->addLayout(whiteKeysLayout); + + blackKeysLayout = new QHBoxLayout(); + blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout")); + horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_1); + + key_Cs1 = new QPushButton(pianoWidget); + key_Cs1->setObjectName(QString::fromUtf8("key_Cs1")); + + blackKeysLayout->addWidget(key_Cs1); + + key_Ds1 = new QPushButton(pianoWidget); + key_Ds1->setObjectName(QString::fromUtf8("key_Ds1")); + + blackKeysLayout->addWidget(key_Ds1); + + horizontalSpacer_2 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_2); + + key_Fs1 = new QPushButton(pianoWidget); + key_Fs1->setObjectName(QString::fromUtf8("key_Fs1")); + + blackKeysLayout->addWidget(key_Fs1); + + key_Gs1 = new QPushButton(pianoWidget); + key_Gs1->setObjectName(QString::fromUtf8("key_Gs1")); + + blackKeysLayout->addWidget(key_Gs1); + + key_As1 = new QPushButton(pianoWidget); + key_As1->setObjectName(QString::fromUtf8("key_As1")); + + blackKeysLayout->addWidget(key_As1); + + horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_3); + + key_Cs2 = new QPushButton(pianoWidget); + key_Cs2->setObjectName(QString::fromUtf8("key_Cs2")); + + blackKeysLayout->addWidget(key_Cs2); + + key_Ds2 = new QPushButton(pianoWidget); + key_Ds2->setObjectName(QString::fromUtf8("key_Ds2")); + + blackKeysLayout->addWidget(key_Ds2); + + horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_4); + + key_Fs2 = new QPushButton(pianoWidget); + key_Fs2->setObjectName(QString::fromUtf8("key_Fs2")); + + blackKeysLayout->addWidget(key_Fs2); + + key_Gs2 = new QPushButton(pianoWidget); + key_Gs2->setObjectName(QString::fromUtf8("key_Gs2")); + + blackKeysLayout->addWidget(key_Gs2); + + key_As2 = new QPushButton(pianoWidget); + key_As2->setObjectName(QString::fromUtf8("key_As2")); + + blackKeysLayout->addWidget(key_As2); + + horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_5); + + key_Cs3 = new QPushButton(pianoWidget); + key_Cs3->setObjectName(QString::fromUtf8("key_Cs3")); + + blackKeysLayout->addWidget(key_Cs3); + + key_Ds3 = new QPushButton(pianoWidget); + key_Ds3->setObjectName(QString::fromUtf8("key_Ds3")); + + blackKeysLayout->addWidget(key_Ds3); + + horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_6); + + key_Fs3 = new QPushButton(pianoWidget); + key_Fs3->setObjectName(QString::fromUtf8("key_Fs3")); + + blackKeysLayout->addWidget(key_Fs3); + + key_Gs3 = new QPushButton(pianoWidget); + key_Gs3->setObjectName(QString::fromUtf8("key_Gs3")); + + blackKeysLayout->addWidget(key_Gs3); + + key_As3 = new QPushButton(pianoWidget); + key_As3->setObjectName(QString::fromUtf8("key_As3")); + + blackKeysLayout->addWidget(key_As3); + + horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_7); + + key_Cs4 = new QPushButton(pianoWidget); + key_Cs4->setObjectName(QString::fromUtf8("key_Cs4")); + + blackKeysLayout->addWidget(key_Cs4); + + key_Ds4 = new QPushButton(pianoWidget); + key_Ds4->setObjectName(QString::fromUtf8("key_Ds4")); + + blackKeysLayout->addWidget(key_Ds4); + + horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_8); + + key_Fs4 = new QPushButton(pianoWidget); + key_Fs4->setObjectName(QString::fromUtf8("key_Fs4")); + + blackKeysLayout->addWidget(key_Fs4); + + key_Gs4 = new QPushButton(pianoWidget); + key_Gs4->setObjectName(QString::fromUtf8("key_Gs4")); + + blackKeysLayout->addWidget(key_Gs4); + + key_As4 = new QPushButton(pianoWidget); + key_As4->setObjectName(QString::fromUtf8("key_As4")); + + blackKeysLayout->addWidget(key_As4); + + horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_9); + + key_Cs5 = new QPushButton(pianoWidget); + key_Cs5->setObjectName(QString::fromUtf8("key_Cs5")); + + blackKeysLayout->addWidget(key_Cs5); + + key_Ds5 = new QPushButton(pianoWidget); + key_Ds5->setObjectName(QString::fromUtf8("key_Ds5")); + + blackKeysLayout->addWidget(key_Ds5); + + horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_10); + + key_Fs5 = new QPushButton(pianoWidget); + key_Fs5->setObjectName(QString::fromUtf8("key_Fs5")); + + blackKeysLayout->addWidget(key_Fs5); + + key_Gs5 = new QPushButton(pianoWidget); + key_Gs5->setObjectName(QString::fromUtf8("key_Gs5")); + + blackKeysLayout->addWidget(key_Gs5); + + key_As5 = new QPushButton(pianoWidget); + key_As5->setObjectName(QString::fromUtf8("key_As5")); + + blackKeysLayout->addWidget(key_As5); + + horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_11); + + + verticalLayout_2->addLayout(blackKeysLayout); + + + verticalLayout->addWidget(pianoWidget); + + Yamitracker->setCentralWidget(centralwidget); + + retranslateUi(Yamitracker); + + QMetaObject::connectSlotsByName(Yamitracker); + } // setupUi + + void retranslateUi(QMainWindow *Yamitracker) + { + Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor", nullptr)); + statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr)); + deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr)); + keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr)); + playButton->setText(QCoreApplication::translate("Yamitracker", "\320\227\320\260\320\277\320\270\321\201\321\214 (Play)", nullptr)); + stopButton->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\276\320\277", nullptr)); + convertButton->setText(QCoreApplication::translate("Yamitracker", "\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr)); + refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr)); + key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr)); + key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr)); + key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr)); + key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr)); + key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr)); + key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr)); + key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr)); + key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr)); + key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr)); + key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr)); + key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr)); + key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr)); + key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr)); + key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr)); + key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr)); + key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr)); + key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr)); + key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr)); + key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr)); + key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr)); + key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr)); + key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr)); + key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr)); + key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr)); + key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr)); + key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr)); + key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr)); + key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr)); + key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr)); + key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr)); + key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr)); + key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr)); + key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr)); + key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr)); + key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr)); + key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr)); + key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr)); + key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr)); + key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr)); + key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr)); + key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr)); + key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr)); + key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr)); + key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr)); + key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr)); + key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr)); + key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr)); + key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr)); + key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr)); + key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr)); + key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr)); + key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr)); + key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr)); + key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr)); + key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr)); + key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr)); + key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr)); + key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr)); + key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr)); + key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr)); + key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class Yamitracker: public Ui_Yamitracker {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_YAMITRACKER_H diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/yamitracker.o b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/yamitracker.o new file mode 100644 index 0000000..f0f9d45 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/build_wav/yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/main.cpp b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/main.cpp new file mode 100644 index 0000000..742d76f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/main.cpp @@ -0,0 +1,11 @@ +// main.cpp +#include "yamitracker.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + Yamitracker w; + w.show(); + return a.exec(); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/main.s b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/main.s new file mode 100644 index 0000000..b105907 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/main.s @@ -0,0 +1,293 @@ +; Generated by Yamitracker +; Date: 2026-03-25 14:50:17 +; Tracks: 1 + +music_inst_table: + INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2 + +pently_patterns: + .addr PPDAT_track0 + +PPDAT_track0: + .byt D_2 + .byt N_G|D_1 + .byt N_G|D_D8 + .byt D_2 + .byt N_DH|D_D2 + .byt N_DH|D_D8 + .byt D_D2 + .byt N_DH|D_D8 + .byt N_DH|D_D8 + .byt D_1 + .byt N_A|D_D8 + .byt N_A|D_1 + .byt D_D2 + .byt N_EH|D_D8 + .byt N_EH|D_1 + .byt D_1 + .byt N_B|D_D8 + .byt N_B|D_1 + .byt D_D2 + .byt N_FSH|D_D8 + .byt N_FSH|D_1 + .byt D_1 + .byt N_CSH|D_D8 + .byt N_CSH|D_1 + .byt D_D2 + .byt N_EH|D_D8 + .byt N_EH|D_1 + .byt D_1 + .byt N_B|D_D8 + .byt N_B|D_1 + .byt D_1 + .byt N_FSH|D_D8 + .byt N_FSH|D_1 + .byt D_1 + .byt N_CSH|D_D8 + .byt N_CSH|D_1 + .byt D_1 + .byt N_EH|D_D8 + .byt N_EH|D_1 + .byt D_1 + .byt N_B|D_D8 + .byt N_B|D_D2 + .byt D_D4 + .byt N_AH|D_D8 + .byt N_AH|D_D2 + .byt N_BH|D_D8 + .byt N_BH|D_D2 + .byt N_FSH|D_D8 + .byt N_FSH|D_1 + .byt D_D4 + .byt N_DH|D_D8 + .byt N_DH|D_D4 + .byt D_2 + .byt N_EH|D_D8 + .byt N_EH|D_D4 + .byt N_CSH|D_D8 + .byt N_CSH|D_1 + .byt D_D2 + .byt N_FSH|D_D8 + .byt N_FSH|D_D4 + .byt N_AH|D_D8 + .byt N_AH|D_D8 + .byt D_D4 + .byt N_EH|D_D8 + .byt N_EH|D_D2 + .byt D_2 + .byt N_B|D_D2 + .byt N_B|D_D8 + .byt D_D2 + .byt N_DH|OCTAVE_1|D_D8 + .byt N_DH|OCTAVE_1|D_D2 + .byt N_BH|D_D8 + .byt N_BH|D_D4 + .byt D_D8 + .byt N_AH|D_D8 + .byt N_AH|D_D2 + .byt N_FSH|D_D8 + .byt N_FSH|D_D2 + .byt D_1 + .byt N_DH|D_D8 + .byt N_DH|D_D4 + .byt N_EH|D_D8 + .byt N_EH|D_D4 + .byt D_2 + .byt N_CSH|D_D8 + .byt N_CSH|D_D2 + .byt D_1 + .byt N_AH|D_D8 + .byt N_AH|D_D4 + .byt N_FSH|D_D8 + .byt N_FSH|D_D8 + .byt D_D8 + .byt N_EH|D_D8 + .byt N_EH|D_1 + .byt D_1 + .byt N_B|D_D8 + .byt N_B|D_D2 + .byt D_D4 + .byt N_AH|D_D8 + .byt N_AH|D_D2 + .byt N_BH|D_D8 + .byt N_BH|D_D4 + .byt D_D4 + .byt N_DH|OCTAVE_1|D_D8 + .byt N_DH|OCTAVE_1|D_D2 + .byt D_1 + .byt N_FSH|OCTAVE_1|D_D8 + .byt N_FSH|OCTAVE_1|D_D2 + .byt N_EH|OCTAVE_1|D_D8 + .byt N_EH|OCTAVE_1|D_D4 + .byt D_D8 + .byt N_CSH|OCTAVE_1|D_D8 + .byt N_CSH|OCTAVE_1|D_1 + .byt D_D2 + .byt N_DH|OCTAVE_1|D_D8 + .byt N_DH|OCTAVE_1|D_D4 + .byt D_2 + .byt N_CSH|OCTAVE_1|D_D8 + .byt N_CSH|OCTAVE_1|D_D4 + .byt D_D4 + .byt N_AH|D_D8 + .byt N_AH|D_D2 + .byt D_1 + .byt N_B|D_D8 + .byt N_B|D_D2 + .byt D_D4 + .byt N_BH|D_D8 + .byt N_BH|D_D4 + .byt D_D8 + .byt N_AH|D_D8 + .byt N_AH|D_D2 + .byt N_FSH|D_D2 + .byt N_FSH|D_D8 + .byt D_2 + .byt N_DH|D_D8 + .byt N_DH|D_D4 + .byt D_2 + .byt N_EH|D_D8 + .byt N_EH|D_D4 + .byt D_2 + .byt N_CSH|D_D8 + .byt N_CSH|D_1 + .byt D_D2 + .byt N_FSH|D_D8 + .byt N_FSH|D_D8 + .byt D_D8 + .byt N_AH|D_D8 + .byt N_AH|D_D8 + .byt D_D4 + .byt N_EH|D_D8 + .byt N_EH|D_1 + .byt D_1 + .byt N_B|D_D8 + .byt N_B|D_D2 + .byt D_D2 + .byt N_AH|D_D8 + .byt N_AH|D_D2 + .byt D_2 + .byt N_BH|D_D8 + .byt N_BH|D_D2 + .byt D_2 + .byt N_FSH|D_D8 + .byt N_FSH|D_D2 + .byt D_1 + .byt N_DH|D_D8 + .byt N_DH|D_D4 + .byt D_2 + .byt N_EH|D_D8 + .byt N_EH|D_D4 + .byt D_2 + .byt N_CSH|D_D8 + .byt N_CSH|D_1 + .byt D_D2 + .byt N_FSH|D_D8 + .byt N_FSH|D_D4 + .byt D_2 + .byt N_AH|D_D8 + .byt N_AH|D_D4 + .byt D_D8 + .byt N_EH|D_D8 + .byt N_EH|D_D2 + .byt D_2 + .byt N_B|D_D8 + .byt N_B|D_D2 + .byt D_D4 + .byt N_AH|D_D2 + .byt N_AH|D_D8 + .byt D_D2 + .byt N_BH|D_D8 + .byt N_BH|D_D2 + .byt D_D8 + .byt N_DH|OCTAVE_1|D_D8 + .byt N_DH|OCTAVE_1|D_D2 + .byt D_1 + .byt N_DH|OCTAVE_1|D_D8 + .byt N_DH|OCTAVE_1|D_D4 + .byt D_2 + .byt N_EH|OCTAVE_1|D_D8 + .byt N_EH|OCTAVE_1|D_D8 + .byt D_D8 + .byt N_CSH|OCTAVE_1|D_D8 + .byt N_CSH|OCTAVE_1|D_D2 + .byt D_D2 + .byt N_FSH|OCTAVE_1|D_D8 + .byt N_FSH|OCTAVE_1|D_D8 + .byt D_D4 + .byt N_FSH|D_D8 + .byt N_FSH|D_D8 + .byt D_D8 + .byt N_AH|D_D8 + .byt N_AH|D_D8 + .byt D_D2 + .byt N_EH|D_D8 + .byt N_EH|D_1 + .byt D_1 + .byt N_FSH|D_D8 + .byt N_FSH|D_1 + .byt D_D4 + .byt N_BH|D_D8 + .byt N_BH|D_D4 + .byt N_AH|D_D8 + .byt N_AH|D_D4 + .byt D_2 + .byt N_GSH|D_D8 + .byt N_GSH|D_D2 + .byt D_D2 + .byt N_EH|D_D8 + .byt N_EH|D_D4 + .byt N_DH|D_D8 + .byt N_DH|D_D4 + .byt D_D8 + .byt N_CSH|D_D8 + .byt N_CSH|D_1 + .byt D_D4 + .byt N_DH|D_D8 + .byt N_DH|D_D4 + .byt D_D8 + .byt N_EH|D_D8 + .byt N_EH|D_D4 + .byt D_D8 + .byt N_B|D_D8 + .byt N_B|D_1 + .byt D_1 + .byt N_DH|OCTAVE_1|D_D8 + .byt N_DH|OCTAVE_1|D_D2 + .byt D_D2 + .byt N_BH|D_D8 + .byt N_BH|D_D4 + .byt N_AH|D_D8 + .byt N_AH|D_D8 + .byt D_D8 + .byt N_GSH|D_D8 + .byt N_GSH|D_D2 + .byt D_D4 + .byt N_EH|D_D8 + .byt N_EH|D_D2 + .byt D_D8 + .byt N_EH|OCTAVE_1|D_D8 + .byt N_EH|OCTAVE_1|D_D4 + .byt D_D4 + .byt N_CSH|OCTAVE_1|D_D8 + .byt N_CSH|OCTAVE_1|D_D2 + .byt D_D4 + .byt N_DH|OCTAVE_1|D_D8 + .byt N_DH|OCTAVE_1|D_D4 + .byt D_D8 + .byt N_EH|OCTAVE_1|D_D8 + .byt N_EH|OCTAVE_1|D_D2 + .byt D_D8 + .byt N_BH|D_D8 + .byt N_BH|D_2 + .byt PATEND + +pently_songs: + .addr PSDAT_main_song + +PSDAT_main_song: + setTempo 1000 + playPat 0, 0, 23, PLING_8 + waitRows 123511 + stopPat 0 + dalSegno diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/music_20251210_151146.s b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/music_20251210_151146.s new file mode 100644 index 0000000..450ec43 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/music_20251210_151146.s @@ -0,0 +1,329 @@ +; Музыкальная композиция, сгенерированная Yamitracker +; Формат: Pently-like с дорожками +; Время создания: 2025-12-10 15:11:48 + +.include "pentlyseq.inc" +.segment "SPCIMAGE" + +; Таблица инструментов +music_inst_table: + ; name lv rv frq smp att dec sus lvl + INST KICK, 11, 10, 3, 6, 31, 17, 0, 8 + INST SNARE, 10, 15, 3, 7, 31, 17, 0, 8 + INST HAT, 3, 5, 3, 5, 31, 17, 0, 8 + INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2 + INST PLING_4, 7, 7, 1, 1, 31, 19, 15, 2 + INST PLING_2, 9, 6, 1, 2, 31, 17, 15, 2 + INST BASSGUITAR, 12, 12, 1, 4, 31, 17, 15, 8 + INST BASSCLAR, 12, 12, 1, 2, 21, 21, 27, 4 + INST HORNBLAT, 3, 9, 1, 0, 21, 21, 27, 4 + INST XYLSHORT, 10, 6, 1, 2, 31, 23, 20, 2 + INST XYLMED, 10, 6, 1, 2, 31, 19, 17, 2 + +pently_patterns: +PPDAT_track0_pattern0: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern1: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern2: + .byt N_F|D_16 + .byt PATEND +PPDAT_track0_pattern3: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern4: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern5: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern6: + .byt N_C|D_D32 + .byt PATEND +PPDAT_track0_pattern7: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern8: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern9: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern10: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern11: + .byt N_F|D_16 + .byt N_C|D_D32 + .byt PATEND +PPDAT_track0_pattern12: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern13: + .byt N_F|D_16 + .byt PATEND +PPDAT_track0_pattern14: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern15: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern16: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern17: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern18: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern19: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern20: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern21: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern22: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern23: + .byt N_F|D_16 + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern24: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern25: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern26: + .byt N_C|D_D32 + .byt PATEND +PPDAT_track0_pattern27: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern28: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern29: + .byt N_C|D_D32 + .byt PATEND +PPDAT_track0_pattern30: + .byt N_E|D_32 + .byt PATEND +PPDAT_track1_pattern0: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern1: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern2: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern3: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern4: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern5: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern6: + .byt N_A|D_16 + .byt PATEND +PPDAT_track1_pattern7: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern8: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern9: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern10: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern11: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern12: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern13: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern14: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern15: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern16: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern17: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern18: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern19: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern20: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern21: + .byt N_A|D_32 + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern22: + .byt N_A|D_32 + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern23: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern24: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern25: + .byt N_A|D_32 + .byt PATEND + +pently_songs: +.addr PSDAT_composition + +; Композиция +PSDAT_composition: + setTempo 300 + playPat 0, 0, 0, PLING_2 + waitRows 16 + playPat 0, 1, 0, PLING_2 + waitRows 16 + playPat 0, 2, 0, PLING_2 + waitRows 16 + playPat 0, 3, 0, PLING_2 + waitRows 16 + playPat 0, 4, 0, PLING_2 + waitRows 16 + playPat 0, 5, 0, PLING_2 + waitRows 16 + playPat 0, 6, 0, PLING_2 + waitRows 16 + playPat 0, 7, 0, PLING_2 + waitRows 16 + playPat 0, 8, 0, PLING_2 + waitRows 16 + playPat 0, 9, 0, PLING_2 + waitRows 16 + playPat 0, 10, 0, PLING_2 + waitRows 16 + playPat 0, 11, 0, PLING_2 + waitRows 16 + playPat 0, 12, 0, PLING_2 + waitRows 16 + playPat 0, 13, 0, PLING_2 + waitRows 16 + playPat 0, 14, 0, PLING_2 + waitRows 16 + playPat 0, 15, 0, PLING_2 + waitRows 16 + playPat 0, 16, 0, PLING_2 + waitRows 16 + playPat 0, 17, 0, PLING_2 + waitRows 16 + playPat 0, 18, 0, PLING_2 + waitRows 16 + playPat 0, 19, 0, PLING_2 + waitRows 16 + playPat 0, 20, 0, PLING_2 + waitRows 16 + playPat 0, 21, 0, PLING_2 + waitRows 16 + playPat 0, 22, 0, PLING_2 + waitRows 16 + playPat 0, 23, 0, PLING_2 + waitRows 16 + playPat 0, 24, 0, PLING_2 + waitRows 16 + playPat 0, 25, 0, PLING_2 + waitRows 16 + playPat 0, 26, 0, PLING_2 + waitRows 16 + playPat 0, 27, 0, PLING_2 + waitRows 16 + playPat 0, 28, 0, PLING_2 + waitRows 16 + playPat 0, 29, 0, PLING_2 + waitRows 16 + playPat 0, 30, 0, PLING_2 + waitRows 16 + playPat 1, 31, 0, PLING_2 + waitRows 16 + playPat 1, 32, 0, PLING_2 + waitRows 16 + playPat 1, 33, 0, PLING_2 + waitRows 16 + playPat 1, 34, 0, PLING_2 + waitRows 16 + playPat 1, 35, 0, PLING_2 + waitRows 16 + playPat 1, 36, 0, PLING_2 + waitRows 16 + playPat 1, 37, 0, PLING_2 + waitRows 16 + playPat 1, 38, 0, PLING_2 + waitRows 16 + playPat 1, 39, 0, PLING_2 + waitRows 16 + playPat 1, 40, 0, PLING_2 + waitRows 16 + playPat 1, 41, 0, PLING_2 + waitRows 16 + playPat 1, 42, 0, PLING_2 + waitRows 16 + playPat 1, 43, 0, PLING_2 + waitRows 16 + playPat 1, 44, 0, PLING_2 + waitRows 16 + playPat 1, 45, 0, PLING_2 + waitRows 16 + playPat 1, 46, 0, PLING_2 + waitRows 16 + playPat 1, 47, 0, PLING_2 + waitRows 16 + playPat 1, 48, 0, PLING_2 + waitRows 16 + playPat 1, 49, 0, PLING_2 + waitRows 16 + playPat 1, 50, 0, PLING_2 + waitRows 16 + playPat 1, 51, 0, PLING_2 + waitRows 16 + playPat 1, 52, 0, PLING_2 + waitRows 16 + playPat 1, 53, 0, PLING_2 + waitRows 16 + playPat 1, 54, 0, PLING_2 + waitRows 16 + playPat 1, 55, 0, PLING_2 + waitRows 16 + playPat 1, 56, 0, PLING_2 + waitRows 16 + fine diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/simplewavwriter.cpp b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/simplewavwriter.cpp new file mode 100644 index 0000000..57f7ee6 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/simplewavwriter.cpp @@ -0,0 +1,885 @@ +#include "simplewavwriter.h" +#include +#include +#include +#include +#include + +SimpleWavWriter::SimpleWavWriter(QObject *parent) + : QObject(parent), recording(false), paused(false), playbackSpeed(1.0), bassVolumeMultiplier(2.0) +{ + // Инициализируем дорожки + tracks.resize(MAX_TRACKS); + for (int i = 0; i < MAX_TRACKS; i++) { + tracks[i] = Track(i); // Используем конструктор с индексом + tracks[i].instrument = 1; // По умолчанию Grand Piano + tracks[i].volume = 1.0; + tracks[i].muted = false; + tracks[i].solo = false; + } + + // Настраиваем формат аудио + format.setSampleRate(SAMPLE_RATE); + format.setChannelCount(1); // Моно + format.setSampleSize(BIT_DEPTH); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); +} + +bool SimpleWavWriter::startRecording(int sampleRate) +{ + if (recording) return false; + + format.setSampleRate(sampleRate); + recording = true; + paused = false; + + emit recordingStatusChanged(true); + return true; +} + +void SimpleWavWriter::stopRecording() +{ + recording = false; + paused = false; + emit recordingStatusChanged(false); +} + +void SimpleWavWriter::pauseRecording() +{ + if (recording && !paused) { + paused = true; + } +} + +void SimpleWavWriter::resumeRecording() +{ + if (recording && paused) { + paused = false; + } +} + +void SimpleWavWriter::addNote(int track, double time, int note, int velocity, double duration, int instrument) +{ + if (track < 0 || track >= MAX_TRACKS) return; + + // Применяем множитель громкости для басовых инструментов + double volume = velocity / 127.0; + static QSet bassInstruments = {28, 33, 39, 40, 29, 37, 38}; + if (bassInstruments.contains(instrument)) { + volume *= bassVolumeMultiplier; + volume = qMin(volume, 1.0); // Ограничиваем максимальную громкость + } + + tracks[track].events.append(NoteEvent(time, note, velocity, duration, instrument, volume)); + tracks[track].instrument = instrument; + + emit trackUpdated(track); +} + +void SimpleWavWriter::clearTrack(int track) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].events.clear(); + emit trackUpdated(track); + } +} + +void SimpleWavWriter::clearAllTracks() +{ + for (int i = 0; i < MAX_TRACKS; i++) { + tracks[i].events.clear(); + emit trackUpdated(i); + } +} + +QString SimpleWavWriter::getTrackName(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].name; + } + return QString(); +} + +void SimpleWavWriter::setTrackName(int track, const QString &name) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].name = name; + emit trackUpdated(track); + } +} + +int SimpleWavWriter::getEventCount(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].events.size(); + } + return 0; +} + +int SimpleWavWriter::getTrackInstrument(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].instrument; + } + return 1; +} + +void SimpleWavWriter::setTrackInstrument(int track, int instrument) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].instrument = instrument; + emit trackUpdated(track); + } +} + +double SimpleWavWriter::getTrackVolume(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].volume; + } + return 1.0; +} + +void SimpleWavWriter::setTrackVolume(int track, double volume) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].volume = qBound(0.0, volume, 2.0); + emit trackUpdated(track); + } +} + +bool SimpleWavWriter::isTrackMuted(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].muted; + } + return false; +} + +void SimpleWavWriter::muteTrack(int track, bool muted) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].muted = muted; + emit trackUpdated(track); + } +} + +bool SimpleWavWriter::isTrackSolo(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].solo; + } + return false; +} + +void SimpleWavWriter::soloTrack(int track, bool solo) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].solo = solo; + emit trackUpdated(track); + } +} + +QByteArray SimpleWavWriter::getTrackAudioData(int track, bool mix) +{ + if (track < 0 || track >= MAX_TRACKS) return QByteArray(); + + if (mix) { + // Смешиваем все дорожки + QVector allTracks; + for (int i = 0; i < MAX_TRACKS; i++) { + allTracks.append(i); + } + return mixTracks(allTracks); + } + + return mixTracks(QVector{track}); +} + +QByteArray SimpleWavWriter::getAllTracksAudioData() +{ + // Собираем индексы всех дорожек, которые не заглушены и имеют данные + QVector activeTracks; + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].muted && !tracks[i].events.isEmpty()) { + activeTracks.append(i); + } + } + + if (activeTracks.isEmpty()) { + return QByteArray(); + } + + return mixTracks(activeTracks); +} + +bool SimpleWavWriter::loadWavToTrack(const QString &filename, int track) +{ + // Временно заглушка - в реальной реализации нужно парсить WAV файл + QFile file(filename); + if (!file.open(QIODevice::ReadOnly)) return false; + + // Пропускаем заголовок WAV (44 байта) + file.seek(44); + QByteArray audioData = file.readAll(); + file.close(); + + // Создаем событие для импортированного аудио + if (!audioData.isEmpty()) { + // Очищаем дорожку и добавляем специальное событие + tracks[track].events.clear(); + // Здесь нужно добавить логику для импорта WAV + emit trackUpdated(track); + return true; + } + + return false; +} + +void SimpleWavWriter::copyTrack(int fromTrack, int toTrack) +{ + if (fromTrack < 0 || fromTrack >= MAX_TRACKS || + toTrack < 0 || toTrack >= MAX_TRACKS || fromTrack == toTrack) { + return; + } + + tracks[toTrack] = tracks[fromTrack]; + tracks[toTrack].name = QString("Копия %1").arg(tracks[fromTrack].name); + emit trackUpdated(toTrack); +} + +void SimpleWavWriter::mergeTrack(int fromTrack, int toTrack) +{ + if (fromTrack < 0 || fromTrack >= MAX_TRACKS || + toTrack < 0 || toTrack >= MAX_TRACKS || fromTrack == toTrack) { + return; + } + + tracks[toTrack].events.append(tracks[fromTrack].events); + // Сортируем события по времени + std::sort(tracks[toTrack].events.begin(), tracks[toTrack].events.end(), + [](const NoteEvent &a, const NoteEvent &b) { return a.time < b.time; }); + + emit trackUpdated(toTrack); +} + +void SimpleWavWriter::setPlaybackSpeed(double speed) +{ + playbackSpeed = qBound(0.5, speed, 2.0); +} + +void SimpleWavWriter::setBassVolumeMultiplier(double multiplier) +{ + bassVolumeMultiplier = qBound(1.0, multiplier, 4.0); +} + +QByteArray SimpleWavWriter::generateNoteAudio(int note, int velocity, double duration, int instrument, double volume) +{ + double frequency = noteToFrequency(note); + double amplitude = (velocity / 127.0) * volume; + + return generateInstrumentWave(instrument, frequency, duration, amplitude); +} + +QByteArray SimpleWavWriter::generateSilence(double duration) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray silence(samples * sizeof(qint16), 0); + return silence; +} + +void SimpleWavWriter::writeWavHeader(QFile &file, quint32 dataSize) +{ + // RIFF header + file.write("RIFF"); + file.write(intToBytes(36 + dataSize)); + file.write("WAVE"); + + // fmt chunk + file.write("fmt "); + file.write(intToBytes(16)); // chunk size + file.write(shortToBytes(1)); // audio format (PCM) + file.write(shortToBytes(format.channelCount())); // channels + file.write(intToBytes(format.sampleRate())); // sample rate + file.write(intToBytes(format.sampleRate() * format.channelCount() * format.sampleSize() / 8)); // byte rate + file.write(shortToBytes(format.channelCount() * format.sampleSize() / 8)); // block align + file.write(shortToBytes(format.sampleSize())); // bits per sample + + // data chunk + file.write("data"); + file.write(intToBytes(dataSize)); +} + +bool SimpleWavWriter::saveToFile(const QString &filename) +{ + // Получаем аудиоданные всех активных дорожек + QByteArray audioData = getAllTracksAudioData(); + if (audioData.isEmpty()) { + qDebug() << "Нет данных для сохранения - все дорожки пусты или заглушены"; + + // Выводим информацию о дорожках для отладки + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].events.isEmpty()) { + qDebug() << "Дорожка" << i << ":" << tracks[i].name + << "инструмент:" << tracks[i].instrument + << "нот:" << tracks[i].events.size() + << "заглушена:" << tracks[i].muted; + } + } + + return false; + } + + QFile file(filename); + if (!file.open(QIODevice::WriteOnly)) { + qDebug() << "Не удалось открыть файл для записи:" << filename; + return false; + } + + // Записываем WAV заголовок + writeWavHeader(file, audioData.size()); + + // Записываем аудиоданные + qint64 bytesWritten = file.write(audioData); + file.close(); + + if (bytesWritten != audioData.size()) { + qDebug() << "Ошибка записи файла: записано" << bytesWritten << "байт из" << audioData.size(); + return false; + } + + // Выводим информацию о сохраненном файле + double duration = audioData.size() / (2.0 * SAMPLE_RATE); // байты / (2 байта на сэмпл * частота) + int activeTracks = 0; + int totalNotes = 0; + + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].muted && !tracks[i].events.isEmpty()) { + activeTracks++; + totalNotes += tracks[i].events.size(); + } + } + + qDebug() << "Файл успешно сохранен:"; + qDebug() << " Имя файла:" << filename; + qDebug() << " Размер:" << audioData.size() << "байт"; + qDebug() << " Частота дискретизации:" << SAMPLE_RATE << "Гц"; + qDebug() << " Битрейт:" << (SAMPLE_RATE * 2 * 8) / 1000 << "кбит/с"; + qDebug() << " Длительность:" << duration << "секунд"; + qDebug() << " Активных дорожек:" << activeTracks; + qDebug() << " Всего нот:" << totalNotes; + + return true; +} + +// НОВЫЙ МЕТОД: Конвертирует время в секундах в тики Pently (базовый темп 1000) +int SimpleWavWriter::secondsToPentlyTicks(double seconds) const +{ + // Базовый темп: 1000 тиков в секунде + return static_cast(seconds * 1000.0); +} + +// НОВЫЙ МЕТОД: Конвертирует тики в строку задержки +QString SimpleWavWriter::ticksToDelayString(int ticks) const +{ + if (ticks <= 0) return QString(); + + // Определяем наилучшее представление задержки + if (ticks >= 2000) return QString("D_2"); + if (ticks >= 1000) return QString("D_1"); + if (ticks >= 500) return QString("D_D2"); + if (ticks >= 250) return QString("D_D4"); + if (ticks >= 125) return QString("D_D8"); + if (ticks >= 62) return QString("D_D16"); + if (ticks >= 31) return QString("D_2"); + if (ticks >= 16) return QString("D_4"); + if (ticks >= 8) return QString("D_8"); + if (ticks >= 4) return QString("D_16"); + if (ticks >= 2) return QString("D_32"); + + return QString("D_32"); +} + +// НОВЫЙ МЕТОД: Создает паттерн из событий дорожки +QString SimpleWavWriter::generatePattern(int trackIndex) const +{ + if (trackIndex < 0 || trackIndex >= tracks.size()) return QString(); + + const Track& track = tracks[trackIndex]; + if (track.events.isEmpty()) return QString(); + + QString pattern; + + // Сортируем события по времени + QVector sortedEvents = track.events; + std::sort(sortedEvents.begin(), sortedEvents.end(), + [](const NoteEvent &a, const NoteEvent &b) { return a.time < b.time; }); + + double lastTime = 0; + for (const NoteEvent &event : sortedEvents) { + // Вычисляем задержку от предыдущего события + double delay = event.time - lastTime; + if (delay > 0) { + int delayTicks = secondsToPentlyTicks(delay); + QString delayCmd = ticksToDelayString(delayTicks); + if (!delayCmd.isEmpty()) { + pattern += QString(" .byt %1\n").arg(delayCmd); + } + } + + // Добавляем ноту с ее длительностью + QString noteStr = noteToPentlyNote(event.note); + int durationTicks = secondsToPentlyTicks(event.duration); + QString durationStr = ticksToDelayString(durationTicks); + + pattern += QString(" .byt %1|%2\n").arg(noteStr).arg(durationStr); + + lastTime = event.time + event.duration; + } + + return pattern; +} + +// ИСПРАВЛЕННЫЙ МЕТОД: Сохранение в музыкальный файл Pently +bool SimpleWavWriter::saveToMusicFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { + qDebug() << "Не удалось открыть файл для записи:" << filename; + return false; + } + + QTextStream out(&file); + out.setCodec("UTF-8"); + + // 1. Проверяем, есть ли данные для сохранения + int trackCount = 0; + QVector trackIndices; + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].events.isEmpty()) { + trackCount++; + trackIndices.append(i); + } + } + + if (trackCount == 0) { + out << "; Нет данных для сохранения\n"; + file.close(); + return false; + } + + qDebug() << "Сохранение музыки: найдено" << trackCount << "дорожек с данными"; + + // 2. Заголовок файла + out << "; Generated by Yamitracker\n"; + out << "; Date: " << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss") << "\n"; + out << "; Tracks: " << trackCount << "\n\n"; + + // 3. Таблица инструментов + out << "music_inst_table:\n"; + + // Карта преобразования инструментов GM в Pently + QMap pentlyInstruments = { + {1, "PLING_8"}, // Grand Piano + {2, "PLING_4"}, // Bright Piano + {3, "PLING_2"}, // Harpsichord + {6, "PLING_2"}, // Harpsichord 2 + + // Bass instruments + {28, "BASSGUITAR"}, + {33, "BASSGUITAR"}, + {39, "BASSGUITAR"}, + {40, "BASSGUITAR"}, + + // Guitar/Overdrive + {29, "XYLSHORT"}, + {37, "XYLSHORT"}, + {38, "XYLSHORT"}, + + // Strings + {48, "XYLMED"}, + {49, "XYLMED"}, + + // Sax/Horn + {81, "HORNBLAT"}, + + // Bright + {95, "XYLSHORT"}, + {96, "XYLSHORT"}, + {100, "XYLSHORT"} + }; + + // Карта параметров инструментов Pently (lv, rv, frq, smp, att, dec, sus, lvl) + QMap instrumentParams = { + {"PLING_8", " 3, 10, 1, 0, 31, 19, 15, 2"}, + {"PLING_4", " 7, 7, 1, 1, 31, 19, 15, 2"}, + {"PLING_2", " 9, 6, 1, 2, 31, 17, 15, 2"}, + {"BASSGUITAR", "12, 12, 1, 4, 31, 17, 15, 8"}, + {"BASSCLAR", "12, 12, 1, 2, 21, 21, 27, 4"}, + {"HORNBLAT", " 3, 9, 1, 0, 21, 21, 27, 4"}, + {"XYLSHORT", "10, 6, 1, 2, 31, 23, 20, 2"}, + {"XYLMED", "10, 6, 1, 2, 31, 19, 17, 2"}, + {"STRING", "10, 6, 1, 2, 31, 23, 20, 2"} + }; + + // Генерируем уникальные инструменты для каждой дорожки + QMap trackInstruments; + for (int trackIndex : trackIndices) { + int gmInstrument = tracks[trackIndex].instrument; + QString pentlyInst = pentlyInstruments.value(gmInstrument, "PLING_8"); + trackInstruments[trackIndex] = pentlyInst; + + QString params = instrumentParams.value(pentlyInst, "10, 10, 1, 1, 31, 17, 15, 8"); + out << " INST " << pentlyInst << "," << params << "\n"; + } + + out << "\n"; + + // 4. Таблица паттернов + out << "pently_patterns:\n"; + for (int trackIndex : trackIndices) { + out << " .addr PPDAT_track" << trackIndex << "\n"; + } + + // 5. Данные паттернов + for (int trackIndex : trackIndices) { + out << "\nPPDAT_track" << trackIndex << ":\n"; + QString patternData = generatePattern(trackIndex); + if (patternData.isEmpty()) { + out << " .byt PATEND\n"; + } else { + out << patternData; + out << " .byt PATEND\n"; + } + } + + // 6. Таблица песен (теперь только ОДНА песня) + out << "\npently_songs:\n"; + out << " .addr PSDAT_main_song\n\n"; + + // 7. Создаем ОДНУ главную песню, которая управляет всеми дорожками + out << "PSDAT_main_song:\n"; + + // Определяем общую длительность композиции + double maxDuration = 0; + for (int trackIndex : trackIndices) { + const Track& track = tracks[trackIndex]; + for (const NoteEvent &event : track.events) { + double endTime = event.time + event.duration; + if (endTime > maxDuration) { + maxDuration = endTime; + } + } + } + + int totalTicks = secondsToPentlyTicks(maxDuration); + if (totalTicks < 1) totalTicks = 100; // Минимальная длительность + + qDebug() << "Общая длительность:" << maxDuration << "секунд =" << totalTicks << "тиков"; + + // Устанавливаем темп + out << " setTempo 1000\n"; + + // Запускаем все паттерны одновременно + int channel = 0; + for (int trackIndex : trackIndices) { + QString instName = trackInstruments[trackIndex]; + out << QString(" playPat %1, %2, 23, %3\n") + .arg(channel).arg(trackIndex).arg(instName); + channel++; + } + + // Ждем полную длительность композиции + out << QString(" waitRows %1\n").arg(totalTicks); + + // Останавливаем все паттерны + for (int i = 0; i < channel; i++) { + out << QString(" stopPat %1\n").arg(i); + } + + // Зацикливаем + out << " dalSegno\n"; + + file.close(); + + qDebug() << "Музыкальный файл сохранен:" << filename; + qDebug() << "Треков:" << trackCount; + qDebug() << "Максимальная длительность:" << maxDuration << "сек"; + qDebug() << "В тиках:" << totalTicks; + + return true; +} + +QByteArray SimpleWavWriter::mixTracks(const QVector &trackIndices) +{ + // Находим максимальную длительность среди выбранных дорожек + double maxDuration = 0; + for (int trackIndex : trackIndices) { + if (trackIndex < 0 || trackIndex >= MAX_TRACKS) continue; + + const Track &track = tracks[trackIndex]; + for (const NoteEvent &event : track.events) { + double endTime = event.time + event.duration; + if (endTime > maxDuration) { + maxDuration = endTime; + } + } + } + + if (maxDuration <= 0) { + return QByteArray(); + } + + // Создаем буфер для микширования + int totalSamples = static_cast(maxDuration * format.sampleRate()); + QVector mixBuffer(totalSamples, 0); + + // Обрабатываем каждую дорожку + for (int trackIndex : trackIndices) { + if (trackIndex < 0 || trackIndex >= MAX_TRACKS) continue; + + const Track &track = tracks[trackIndex]; + double trackVolume = track.volume; + + // Обрабатываем каждое событие в дорожке + for (const NoteEvent &event : track.events) { + // Генерируем аудио для ноты + QByteArray noteAudio = generateNoteAudio( + event.note, + event.velocity, + event.duration, + event.instrument, + event.volume * trackVolume + ); + + // Вычисляем начальный сэмпл (на основе абсолютного времени) + int startSample = static_cast(event.time * format.sampleRate()); + const qint16 *noteData = reinterpret_cast(noteAudio.constData()); + int noteSamples = noteAudio.size() / sizeof(qint16); + + // Микшируем ноту в общий буфер + for (int i = 0; i < noteSamples && startSample + i < totalSamples; i++) { + // Прибавляем ноту к миксу + qint32 mixed = mixBuffer[startSample + i] + noteData[i]; + + // Ограничиваем значение для предотвращения клиппинга + if (mixed > 32767) mixed = 32767; + if (mixed < -32768) mixed = -32768; + + mixBuffer[startSample + i] = static_cast(mixed); + } + } + } + + // Конвертируем буфер в QByteArray + QByteArray result; + result.resize(totalSamples * sizeof(qint16)); + qint16 *resultData = reinterpret_cast(result.data()); + + for (int i = 0; i < totalSamples; i++) { + resultData[i] = mixBuffer[i]; + } + + return result; +} + +double SimpleWavWriter::noteToFrequency(int note) const +{ + // Формула для преобразования ноты в частоту + return 440.0 * pow(2.0, (note - 69) / 12.0); +} + +QByteArray SimpleWavWriter::generateSineWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double angularFreq = 2.0 * M_PI * frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double value = sin(angularFreq * t); + buffer[i] = static_cast(value * maxAmplitude); + } + + return data; +} + +QByteArray SimpleWavWriter::generateSquareWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double period = 1.0 / frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double phase = fmod(t, period) / period; + buffer[i] = static_cast((phase < 0.5 ? maxAmplitude : -maxAmplitude)); + } + + return data; +} + +QByteArray SimpleWavWriter::generateSawtoothWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double period = 1.0 / frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double phase = fmod(t, period) / period; + buffer[i] = static_cast((2.0 * phase - 1.0) * maxAmplitude); + } + + return data; +} + +QByteArray SimpleWavWriter::generateTriangleWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double period = 1.0 / frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double phase = fmod(t, period) / period; + double value; + + if (phase < 0.25) { + value = 4.0 * phase; + } else if (phase < 0.75) { + value = 2.0 - 4.0 * phase; + } else { + value = 4.0 * phase - 4.0; + } + + buffer[i] = static_cast(value * maxAmplitude); + } + + return data; +} + +QByteArray SimpleWavWriter::generateInstrumentWave(int instrument, double frequency, double duration, double amplitude) +{ + // Выбираем форму волны в зависимости от инструмента + static QMap waveTypes = { + {1, "sine"}, {2, "sine"}, // Piano + {3, "square"}, {6, "square"}, // Harpsichord + {28, "sawtooth"}, {33, "sawtooth"}, {39, "sawtooth"}, {40, "square"}, // Bass + {29, "square"}, {37, "square"}, {38, "square"}, // Guitar + {48, "sine"}, {49, "sine"}, // Strings + {81, "sine"}, // Sax + {95, "triangle"}, {96, "triangle"}, {100, "triangle"} // Bright + }; + + QString waveType = waveTypes.value(instrument, "sine"); + + if (waveType == "square") { + return generateSquareWave(frequency, duration, amplitude); + } else if (waveType == "sawtooth") { + return generateSawtoothWave(frequency, duration, amplitude); + } else if (waveType == "triangle") { + return generateTriangleWave(frequency, duration, amplitude); + } else { + return generateSineWave(frequency, duration, amplitude); + } +} + +QByteArray SimpleWavWriter::intToBytes(qint32 value) +{ + QByteArray bytes(4, 0); + bytes[0] = static_cast(value & 0xFF); + bytes[1] = static_cast((value >> 8) & 0xFF); + bytes[2] = static_cast((value >> 16) & 0xFF); + bytes[3] = static_cast((value >> 24) & 0xFF); + return bytes; +} + +QByteArray SimpleWavWriter::shortToBytes(qint16 value) +{ + QByteArray bytes(2, 0); + bytes[0] = static_cast(value & 0xFF); + bytes[1] = static_cast((value >> 8) & 0xFF); + return bytes; +} + +QString SimpleWavWriter::noteToPentlyNote(int note) const +{ + // Преобразуем MIDI номер ноты в формат Pently + // MIDI: 60 = C4, 61 = C#4, 62 = D4, и т.д. + + int octave = note / 12; + int noteInOctave = note % 12; + + // Базовые названия нот + QString noteName; + switch (noteInOctave) { + case 0: noteName = "N_C"; break; + case 1: noteName = "N_CS"; break; + case 2: noteName = "N_D"; break; + case 3: noteName = "N_DS"; break; + case 4: noteName = "N_E"; break; + case 5: noteName = "N_F"; break; + case 6: noteName = "N_FS"; break; + case 7: noteName = "N_G"; break; + case 8: noteName = "N_GS"; break; + case 9: noteName = "N_A"; break; + case 10: noteName = "N_AS"; break; + case 11: noteName = "N_B"; break; + } + + // Добавляем октаву + if (octave == 4) { + // Средняя октава (C4-B4) - без суффикса в Pently + return noteName; + } else if (octave == 5) { + // Высокая октава (C5-B5) - добавляем H + return noteName + "H"; + } else if (octave == 3) { + // Низкая октава (C3-B3) - добавляем суффикс октавы + return noteName + "|OCTAVE_1"; + } else if (octave == 2) { + // Очень низкая октава (C2-B2) - добавляем суффикс + return noteName + "L"; + } else if (octave == 6) { + // Очень высокая октава (C6+) - добавляем суффикс + return noteName + "H|OCTAVE_1"; + } + + // По умолчанию возвращаем базовое имя + return noteName; +} + +QString SimpleWavWriter::durationToPentlyDuration(double duration) const +{ + // Конвертируем длительность в секундах в формат Pently + int ticks = secondsToPentlyTicks(duration); + return ticksToDelayString(ticks); +} + +QString SimpleWavWriter::instrumentToPentlyInstrument(int instrument) const +{ + static QMap instMap = { + {1, "PLING_8"}, {2, "PLING_4"}, {3, "PLING_2"}, {6, "PLING_2"}, + {28, "BASSGUITAR"}, {33, "BASSGUITAR"}, {39, "BASSGUITAR"}, {40, "BASSGUITAR"}, + {29, "XYLSHORT"}, {37, "XYLSHORT"}, {38, "XYLSHORT"}, + {48, "XYLMED"}, {49, "XYLMED"}, {81, "HORNBLAT"}, + {95, "XYLSHORT"}, {96, "XYLSHORT"}, {100, "XYLSHORT"} + }; + + return instMap.value(instrument, "PLING_8"); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/simplewavwriter.h b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/simplewavwriter.h new file mode 100644 index 0000000..fa6eb87 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/simplewavwriter.h @@ -0,0 +1,133 @@ +// simplewavwriter.h +#ifndef SIMPLEWAVWRITER_H +#define SIMPLEWAVWRITER_H + +#include +#include +#include +#include +#include +#include + +struct NoteEvent { + double time; // Время начала в секундах + int note; // Номер ноты (0-127) + int velocity; // Сила нажатия (0-127) + double duration; // Длительность в секундах + int instrument; // Номер инструмента + double volume; // Громкость ноты (0.0-1.0) + + NoteEvent(double t = 0, int n = 0, int v = 100, double d = 0, int i = 1, double vol = 1.0) + : time(t), note(n), velocity(v), duration(d), instrument(i), volume(vol) {} +}; + +class SimpleWavWriter : public QObject +{ + Q_OBJECT + +public: + static const int MAX_TRACKS = 7; // ИЗМЕНЕНО: было 16, стало 7 + static const int SAMPLE_RATE = 44100; // Улучшенное качество + static const int BIT_DEPTH = 16; + + explicit SimpleWavWriter(QObject *parent = nullptr); + + bool startRecording(int sampleRate = SAMPLE_RATE); + void stopRecording(); + bool isRecording() const { return recording; } + bool isPaused() const { return paused; } + void pauseRecording(); + void resumeRecording(); + + void addNote(int track, double time, int note, int velocity, double duration, int instrument = 1); + void clearTrack(int track); + void clearAllTracks(); + + bool saveToFile(const QString &filename); + bool saveToMusicFile(const QString &filename); + + // Работа с дорожками + QString getTrackName(int track) const; + void setTrackName(int track, const QString &name); + int getEventCount(int track) const; + int getTrackInstrument(int track) const; + void setTrackInstrument(int track, int instrument); + double getTrackVolume(int track) const; + void setTrackVolume(int track, double volume); + bool isTrackMuted(int track) const; + void muteTrack(int track, bool muted); + bool isTrackSolo(int track) const; + void soloTrack(int track, bool solo); + + // Работа с аудиоданными + QByteArray getTrackAudioData(int track, bool mix = false); + QByteArray getAllTracksAudioData(); + + // Загрузка/сохранение дорожек + bool loadWavToTrack(const QString &filename, int track); + void copyTrack(int fromTrack, int toTrack); + void mergeTrack(int fromTrack, int toTrack); + + // Эффекты и настройки + void setPlaybackSpeed(double speed); + void setBassVolumeMultiplier(double multiplier); + + // Генерация звука + QByteArray generateNoteAudio(int note, int velocity, double duration, int instrument, double volume = 1.0); + QByteArray generateSilence(double duration); + +signals: + void trackUpdated(int track); + void recordingStatusChanged(bool recording); + +private: + struct Track { + QString name; + QVector events; + int instrument; + double volume; + bool muted; + bool solo; + int index; // Добавляем индекс дорожки + + Track() : instrument(1), volume(1.0), muted(false), solo(false), index(0) { + } + + // Конструктор с индексом + Track(int idx) : instrument(1), volume(1.0), muted(false), solo(false), index(idx) { + name = QString("Дорожка %1").arg(idx + 1); + } + }; + + bool recording; + bool paused; + QVector tracks; + QAudioFormat format; + double playbackSpeed; + double bassVolumeMultiplier; + + void writeWavHeader(QFile &file, quint32 dataSize); + QByteArray mixTracks(const QVector &trackIndices); + double noteToFrequency(int note) const; + QByteArray generateSineWave(double frequency, double duration, double amplitude); + QByteArray generateSquareWave(double frequency, double duration, double amplitude); + QByteArray generateSawtoothWave(double frequency, double duration, double amplitude); + QByteArray generateTriangleWave(double frequency, double duration, double amplitude); + QByteArray generateInstrumentWave(int instrument, double frequency, double duration, double amplitude); + + // Инструменты для форматирования данных + QByteArray intToBytes(qint32 value); + QByteArray shortToBytes(qint16 value); + + // Форматирование для .s файла + QString noteToPentlyNote(int note) const; + QString durationToPentlyDuration(double duration) const; + QString instrumentToPentlyInstrument(int instrument) const; + + // НОВЫЕ МЕТОДЫ для конвертации в Pently формат + int secondsToPentlyTicks(double seconds) const; + QString ticksToDelayString(int ticks) const; + QString generatePattern(int trackIndex) const; +}; + +#endif // SIMPLEWAVWRITER_H \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/yamitracker.cpp b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/yamitracker.cpp new file mode 100644 index 0000000..30b23ac --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/yamitracker.cpp @@ -0,0 +1,1724 @@ +#include "yamitracker.h" +#include "ui_yamitracker.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Глобальная переменная для управления громкостью баса +double bassVolumeMultiplier = 2.0; // Увеличение громкости баса в 2 раза + +// Инструменты басового типа для усиления громкости +QSet bassInstruments = { + 28, // FngrBass (Фингер-бас) + 33, // FngrBass (Фингер-бас) - другой тип + 39, // FngrBass (Фингер-бас) - еще тип + 40, // SlapBas (Слэп-бас) + 38, // DstGtr (Дисторшн-гитара) - тоже можно усилить + 29, // Ovrdrive (Овердрайв-гитара) + 37 // Ovrdrive (Овердрайв-гитара) - другой тип +}; + +void SerialReader::run() +{ + while (!shouldStop) { + int fd = open(currentDevice.toUtf8().constData(), O_RDWR | O_NOCTTY); + if (fd < 0) { + emit error(QString("Cannot open %1").arg(currentDevice)); + emit; connectionStatusChanged(false); + sleep(2); + continue; + } + + emit connectionStatusChanged(true); + + QString manufacturer = "Unknown"; + QString model = "Unknown"; + + if (currentDevice.contains("yamaha", Qt::CaseInsensitive) || + currentDevice.contains("psr", Qt::CaseInsensitive)) { + manufacturer = "Yamaha"; + model = "PSR Series"; + } else if (currentDevice.contains("dmmidi")) { + manufacturer = "Yamaha"; + model = "PSR-E333 (Direct MIDI)"; + } + + emit deviceInfoReceived(manufacturer, model); + + struct termios tty; + tcgetattr(fd, &tty); + cfsetospeed(&tty, B115200); + cfsetispeed(&tty, B115200); + tty.c_cflag |= (CLOCAL | CREAD | CS8); + tty.c_cc[VMIN] = 1; + tcsetattr(fd, TCSANOW, &tty); + + unsigned char byte; + while (!shouldStop && read(fd, &byte, 1) > 0) { + if (byte == 0xF8 || byte == 0xFE) { + continue; + } + + if (byte & 0x80) { + if ((byte & 0xF0) == 0x90) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + + if (velocity == 0) + emit noteOffReceived(hexNote); + else + emit noteOnReceived(hexNote, velocity); + } + } + else if ((byte & 0xF0) == 0x80) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + emit noteOffReceived(hexNote); + } + } + } + } + + close(fd); + emit connectionStatusChanged(false); + + if (!shouldStop) { + emit error(QString("Connection lost to %1. Attempting to reconnect...").arg(currentDevice)); + sleep(2); + } + } +} + +Yamitracker::Yamitracker(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::Yamitracker) + , serialReader(new SerialReader(this)) + , reconnectTimer(new QTimer(this)) + , isConnected(false) + , wavWriter(new SimpleWavWriter(this)) + , recordingStartTime(0) + , brrConverter(new BrrConverter(this)) + , audioPlayerProcess(new QProcess(this)) + , playbackSpeedSlider(nullptr) + , bassVolumeSlider(nullptr) + , speedLabel(nullptr) + , volumeLabel(nullptr) + , audioOutput(nullptr) + , audioBuffer(nullptr) + , playbackTimer(new QTimer(this)) + , isPlayingBack(false) + , currentPlaybackTrack(-1) + , currentTrack(0) + , globalRecordingStartTime(0) + , isGlobalRecording(false) +{ + ui->setupUi(this); + + deviceLabel = ui->deviceLabel; + refreshDevicesButton = ui->refreshDevicesButton; + midiFilesList = ui->midiFilesList; + instrumentComboBox = ui->instrumentComboBox; + trackComboBox = ui->trackComboBox; + + // Ищем элементы в UI + playbackSpeedSlider = findChild("playbackSpeedSlider"); + bassVolumeSlider = findChild("bassVolumeSlider"); + speedLabel = findChild("speedLabel"); + volumeLabel = findChild("volumeLabel"); + + // Настраиваем слайдеры, если они найдены + if (playbackSpeedSlider) { + playbackSpeedSlider->setRange(50, 200); // 50% - 200% + playbackSpeedSlider->setValue(100); // 100% по умолчанию + playbackSpeedSlider->setTickInterval(10); + playbackSpeedSlider->setTickPosition(QSlider::TicksBelow); + } + + if (bassVolumeSlider) { + bassVolumeSlider->setRange(100, 400); // 100% - 400% + bassVolumeSlider->setValue(200); // 200% по умолчанию + bassVolumeSlider->setTickInterval(50); + bassVolumeSlider->setTickPosition(QSlider::TicksBelow); + } + + // Инициализируем дорожки + initializeTracks(); + initializeTrackControls(); + + // Обновляем метки + updateSpeedLabel(); + updateVolumeLabel(); + updateTrackInfo(); + + // Подключаем сигналы + if (playbackSpeedSlider) { + connect(playbackSpeedSlider, &QSlider::valueChanged, this, &Yamitracker::onPlaybackSpeedChanged); + } + if (bassVolumeSlider) { + connect(bassVolumeSlider, &QSlider::valueChanged, this, &Yamitracker::onBassVolumeChanged); + } + + // Заполняем комбобокс инструментами + QList instrumentIds = instruments.keys(); + std::sort(instrumentIds.begin(), instrumentIds.end()); + for (int id : instrumentIds) { + QString instrumentName = instruments[id]; + // Добавляем пометку для басовых инструментов + if (bassInstruments.contains(id)) { + instrumentName += " [БАС - усилено]"; + } + instrumentComboBox->addItem(QString("%1: %2").arg(id).arg(instrumentName), id); + } + + initializeKeyButtons(); + initializeDeviceDetection(); + + // Подключаем сигналы серийного порта + connect(serialReader, &SerialReader::noteOnReceived, this, &Yamitracker::onNoteOnReceived); + connect(serialReader, &SerialReader::noteOffReceived, this, &Yamitracker::onNoteOffReceived); + connect(serialReader, &SerialReader::error, this, &Yamitracker::onError); + connect(serialReader, &SerialReader::connectionStatusChanged, this, &Yamitracker::onConnectionStatusChanged); + connect(serialReader, &SerialReader::deviceInfoReceived, this, &Yamitracker::onDeviceInfoReceived); + + // Подключаем кнопки управления записью + connect(ui->playButton, &QPushButton::clicked, this, &Yamitracker::onPlayClicked); + connect(ui->pauseButton, &QPushButton::clicked, this, &Yamitracker::onPauseClicked); + connect(ui->stopButton, &QPushButton::clicked, this, &Yamitracker::onStopClicked); + connect(ui->convertButton, &QPushButton::clicked, this, &Yamitracker::onConvertToBrrClicked); + connect(refreshDevicesButton, &QPushButton::clicked, this, &Yamitracker::onRefreshDevicesClicked); + connect(ui->loadMidiButton, &QPushButton::clicked, this, &Yamitracker::onLoadMidiFileClicked); + connect(ui->selectFileButton, &QPushButton::clicked, this, &Yamitracker::onSelectFileForConversion); + connect(ui->playFileButton, &QPushButton::clicked, this, &Yamitracker::onSelectFileForPlayback); + connect(ui->saveRecordingButton, &QPushButton::clicked, this, &Yamitracker::onSaveRecordingClicked); + connect(ui->playMidiButton, &QPushButton::clicked, this, &Yamitracker::onPlayMidiFileClicked); + connect(ui->recordFromMidiButton, &QPushButton::clicked, this, &Yamitracker::onRecordFromMidiFile); + connect(midiFilesList, &QListWidget::itemSelectionChanged, this, &Yamitracker::onSelectedMidiFileChanged); + connect(ui->saveMusicButton, &QPushButton::clicked, this, &Yamitracker::onSaveMusicFileClicked); + connect(ui->addTrackButton, &QPushButton::clicked, this, &Yamitracker::onAddTrackClicked); + connect(ui->removeTrackButton, &QPushButton::clicked, this, &Yamitracker::onRemoveTrackClicked); + connect(ui->clearTrackButton, &QPushButton::clicked, this, &Yamitracker::onClearTrackClicked); + connect(trackComboBox, QOverload::of(&QComboBox::currentIndexChanged), this, &Yamitracker::onCurrentTrackChanged); + + // Подключаем новые кнопки + connect(ui->playTrackButton, &QPushButton::clicked, this, &Yamitracker::onPlayTrackClicked); + connect(ui->playAllButton, &QPushButton::clicked, this, &Yamitracker::onPlayAllTracksClicked); + connect(ui->stopPlaybackButton, &QPushButton::clicked, this, &Yamitracker::onStopPlaybackClicked); + connect(ui->loadWavButton, &QPushButton::clicked, this, &Yamitracker::onLoadWavToTrackClicked); + connect(ui->copyTrackButton, &QPushButton::clicked, this, &Yamitracker::onCopyTrackClicked); + connect(ui->mergeTrackButton, &QPushButton::clicked, this, &Yamitracker::onMergeTracksClicked); + + // Подключаем сигналы от wavWriter + connect(wavWriter, &SimpleWavWriter::trackUpdated, this, [this](int track) { + if (track == currentTrack) { + updateTrackInfo(); + } + }); + + connect(wavWriter, &SimpleWavWriter::recordingStatusChanged, this, [this](bool recording) { + if (recording) { + ui->statusLabel->setText("Запись активна"); + ui->playButton->setEnabled(false); + ui->stopButton->setEnabled(true); + ui->pauseButton->setEnabled(true); + } else { + ui->statusLabel->setText("Запись остановлена"); + ui->playButton->setEnabled(true); + ui->stopButton->setEnabled(false); + ui->pauseButton->setEnabled(false); + ui->pauseButton->setText("⏸ Пауза"); + } + }); + + connect(reconnectTimer, &QTimer::timeout, this, &Yamitracker::attemptReconnect); + reconnectTimer->start(5000); + + connect(audioPlayerProcess, QOverload::of(&QProcess::finished), + this, [this](int exitCode, QProcess::ExitStatus exitStatus) { + Q_UNUSED(exitCode); + if (exitStatus == QProcess::NormalExit) { + ui->statusLabel->setText("Воспроизведение завершено"); + } + }); + + // Подключаем таймер воспроизведения + connect(playbackTimer, &QTimer::timeout, this, &Yamitracker::onPlaybackFinished); + + // ОБНОВЛЕННЫЙ СТИЛЬ - черный текст на белом фоне для панели управления дорожками + // Остальные элементы остаются с белым текстом на темном фоне + setStyleSheet( + "QMainWindow { background-color: #2b2b2b; }" + "QLabel { color: #ffffff; font-size: 14px; font-weight: bold; }" + "QGroupBox { color: #ffffff; font-weight: bold; border: 2px solid #555; border-radius: 5px; margin-top: 10px; }" + "QGroupBox::title { color: #ffffff; subcontrol-origin: margin; left: 10px; padding: 0 5px 0 5px; }" + "QPushButton { background-color: #4a4a4a; color: #ffffff; border: 1px solid #555; border-radius: 3px; padding: 5px; font-weight: bold; }" + "QPushButton:hover { background-color: #5a5a5a; }" + "QPushButton:pressed { background-color: #3a3a3a; }" + "QPushButton[whiteKey=true] { background-color: white; color: black; border: 1px solid #ccc; font-size: 8pt; }" + "QPushButton[whiteKey=true]:pressed { background-color: #ff4444; color: white; }" + "QPushButton[blackKey=true] { background-color: black; color: white; font-size: 7pt; }" + "QPushButton[blackKey=true]:pressed { background-color: #ff4444; }" + "QProgressBar { border: 1px solid #555; background: #333; color: white; }" + "QProgressBar::chunk { background: #4CAF50; }" + "QListWidget { background-color: #333; color: #ffffff; border: 1px solid #555; selection-background-color: #555; }" + "QComboBox { background-color: #333; color: #ffffff; border: 1px solid #555; padding: 5px; }" + "QComboBox QAbstractItemView { background-color: #333; color: #ffffff; selection-background-color: #555; }" + "QComboBox::drop-down { border: none; }" + "QComboBox::down-arrow { image: none; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid white; }" + "QSlider::groove:horizontal { border: 1px solid #555; height: 8px; background: #333; margin: 2px 0; }" + "QSlider::handle:horizontal { background: #4CAF50; border: 1px solid #5f5f5f; width: 18px; margin: -2px 0; border-radius: 3px; }" + "QLineEdit { background-color: #ffffff; color: #000000; border: 1px solid #555; padding: 3px; }" // Изменено: белый фон, черный текст + "QCheckBox { color: #ffffff; }" + "QCheckBox::indicator { width: 16px; height: 16px; }" + // Стили для панели управления дорожками + "QScrollArea { background-color: white; }" + "QScrollArea QGroupBox { background-color: white; color: #000000; border: 2px solid #aaa; }" + "QScrollArea QGroupBox::title { color: #000000; }" + "QScrollArea QLabel { color: #000000; }" + "QScrollArea QComboBox { background-color: white; color: #000000; border: 1px solid #aaa; }" + "QScrollArea QComboBox QAbstractItemView { background-color: white; color: #000000; selection-background-color: #ddd; }" + "QScrollArea QPushButton { background-color: #e0e0e0; color: #000000; border: 1px solid #aaa; }" + "QScrollArea QPushButton:hover { background-color: #d0d0d0; }" + "QScrollArea QPushButton:pressed { background-color: #b0b0b0; }" + "QScrollArea QSlider::groove:horizontal { border: 1px solid #aaa; height: 8px; background: #ddd; }" + "QScrollArea QSlider::handle:horizontal { background: #4CAF50; border: 1px solid #5f5f5f; }" + ); + + QTimer::singleShot(1000, this, &Yamitracker::autoDetectAndConnect); + setWindowTitle("Yamaha PSR-E333 Monitor - Multitrack Recording"); + + // Сканируем MIDI файлы при запуске + scanMidiFiles(); + + // Информация о басовых инструментах + qDebug() << "Бас-инструменты усилены в" << bassVolumeMultiplier << "раз"; + qDebug() << "Бас-инструменты: FngrBass(28,33,39), SlapBas(40), Ovrdrive(29,37), DstGtr(38)"; +} + +void Yamitracker::initializeTracks() +{ + trackComboBox->clear(); + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { // Используем MAX_TRACKS + QString trackName = wavWriter->getTrackName(i); + trackComboBox->addItem(trackName, i); + } + trackComboBox->setCurrentIndex(0); + currentTrack = 0; +} + +void Yamitracker::initializeTrackControls() +{ + // Получаем ScrollArea для управления дорожками + QScrollArea* scrollArea = findChild("scrollArea"); + if (!scrollArea) return; + + QWidget* scrollContent = new QWidget(); + QVBoxLayout* tracksLayout = new QVBoxLayout(scrollContent); + + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + QGroupBox* trackGroup = new QGroupBox(QString("Дорожка %1").arg(i + 1), scrollContent); + trackGroup->setProperty("trackIndex", i); + + QHBoxLayout* trackLayout = new QHBoxLayout(trackGroup); + + // Название дорожки + QLineEdit* nameEdit = new QLineEdit(wavWriter->getTrackName(i), trackGroup); + nameEdit->setProperty("trackIndex", i); + nameEdit->setObjectName(QString("trackNameEdit_%1").arg(i)); + nameEdit->setMaximumWidth(150); + connect(nameEdit, &QLineEdit::textChanged, this, &Yamitracker::onTrackNameChanged); + trackNameEdits.append(nameEdit); + + // Инструмент дорожки + QComboBox* instrumentBox = new QComboBox(trackGroup); + instrumentBox->setProperty("trackIndex", i); + instrumentBox->setObjectName(QString("trackInstrumentBox_%1").arg(i)); + instrumentBox->setMaximumWidth(150); + + QList instrumentIds = instruments.keys(); + std::sort(instrumentIds.begin(), instrumentIds.end()); + for (int id : instrumentIds) { + QString instrumentName = instruments[id]; + if (bassInstruments.contains(id)) { + instrumentName += " [БАС]"; + } + instrumentBox->addItem(instrumentName, id); + } + + // Устанавливаем текущий инструмент + int currentInstrument = wavWriter->getTrackInstrument(i); + int index = instrumentBox->findData(currentInstrument); + if (index >= 0) { + instrumentBox->setCurrentIndex(index); + } + + connect(instrumentBox, QOverload::of(&QComboBox::currentIndexChanged), + this, &Yamitracker::onTrackInstrumentChanged); + trackInstrumentComboBoxes.append(instrumentBox); + + // Громкость + QSlider* volumeSlider = new QSlider(Qt::Horizontal, trackGroup); + volumeSlider->setProperty("trackIndex", i); + volumeSlider->setObjectName(QString("trackVolumeSlider_%1").arg(i)); + volumeSlider->setRange(0, 200); + volumeSlider->setValue(static_cast(wavWriter->getTrackVolume(i) * 100)); + volumeSlider->setMaximumWidth(100); + connect(volumeSlider, &QSlider::valueChanged, this, &Yamitracker::onTrackVolumeChanged); + trackVolumeSliders.append(volumeSlider); + + QLabel* volumeLabel = new QLabel(QString("%1%").arg(volumeSlider->value()), trackGroup); + volumeLabel->setProperty("trackIndex", i); + volumeLabel->setObjectName(QString("trackVolumeLabel_%1").arg(i)); + volumeLabel->setMaximumWidth(40); + + // Кнопка Mute + QPushButton* muteButton = new QPushButton(wavWriter->isTrackMuted(i) ? "🔇" : "🔊", trackGroup); + muteButton->setProperty("trackIndex", i); + muteButton->setObjectName(QString("trackMuteButton_%1").arg(i)); + muteButton->setMaximumWidth(40); + connect(muteButton, &QPushButton::clicked, this, &Yamitracker::onMuteTrackClicked); + trackMuteButtons.append(muteButton); + + // Кнопка Solo + QPushButton* soloButton = new QPushButton("🎧", trackGroup); + soloButton->setProperty("trackIndex", i); + soloButton->setObjectName(QString("trackSoloButton_%1").arg(i)); + soloButton->setMaximumWidth(40); + connect(soloButton, &QPushButton::clicked, this, &Yamitracker::onSoloTrackClicked); + trackSoloButtons.append(soloButton); + + // Информация о дорожке + QLabel* infoLabel = new QLabel(QString("%1 нот").arg(wavWriter->getEventCount(i)), trackGroup); + infoLabel->setProperty("trackIndex", i); + infoLabel->setObjectName(QString("trackInfoLabel_%1").arg(i)); + + // Кнопка выбора для одновременного воспроизведения + QCheckBox* selectCheck = new QCheckBox("Воспр.", trackGroup); + selectCheck->setProperty("trackIndex", i); + selectCheck->setObjectName(QString("trackSelectCheck_%1").arg(i)); + selectCheck->setChecked(true); + + // Добавляем элементы в layout + trackLayout->addWidget(new QLabel("Название:", trackGroup)); + trackLayout->addWidget(nameEdit); + trackLayout->addWidget(new QLabel("Инструмент:", trackGroup)); + trackLayout->addWidget(instrumentBox); + trackLayout->addWidget(new QLabel("Громкость:", trackGroup)); + trackLayout->addWidget(volumeSlider); + trackLayout->addWidget(volumeLabel); + trackLayout->addWidget(muteButton); + trackLayout->addWidget(soloButton); + trackLayout->addWidget(selectCheck); + trackLayout->addWidget(infoLabel); + + tracksLayout->addWidget(trackGroup); + } + + // Добавляем растягивающийся спейсер в конец + tracksLayout->addStretch(); + + scrollArea->setWidget(scrollContent); + scrollArea->setWidgetResizable(true); +} + +void Yamitracker::updateTrackControls() +{ + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i < trackNameEdits.size()) { + trackNameEdits[i]->setText(wavWriter->getTrackName(i)); + } + + if (i < trackInstrumentComboBoxes.size()) { + int currentInstrument = wavWriter->getTrackInstrument(i); + int index = trackInstrumentComboBoxes[i]->findData(currentInstrument); + if (index >= 0) { + trackInstrumentComboBoxes[i]->setCurrentIndex(index); + } + } + + if (i < trackVolumeSliders.size()) { + trackVolumeSliders[i]->setValue(static_cast(wavWriter->getTrackVolume(i) * 100)); + } + + if (i < trackMuteButtons.size()) { + trackMuteButtons[i]->setText(wavWriter->isTrackMuted(i) ? "🔇" : "🔊"); + } + + if (i < trackSoloButtons.size()) { + // Обновляем текст кнопки solo при необходимости + } + + // Обновляем информацию о дорожке + QLabel* infoLabel = findChild(QString("trackInfoLabel_%1").arg(i)); + if (infoLabel) { + infoLabel->setText(QString("%1 нот").arg(wavWriter->getEventCount(i))); + } + + // Обновляем метку громкости + QLabel* volumeLabel = findChild(QString("trackVolumeLabel_%1").arg(i)); + if (volumeLabel) { + volumeLabel->setText(QString("%1%").arg(trackVolumeSliders[i]->value())); + } + } +} + +void Yamitracker::updateTrackInfo() +{ + int eventCount = wavWriter->getEventCount(currentTrack); + QString trackName = wavWriter->getTrackName(currentTrack); + ui->trackInfoLabel->setText(QString("%1: %2 нот").arg(trackName).arg(eventCount)); +} + +void Yamitracker::onCurrentTrackChanged(int index) +{ + currentTrack = trackComboBox->itemData(index).toInt(); + updateTrackInfo(); +} + +void Yamitracker::onPlaybackSpeedChanged(int value) +{ + double speedPercent = value / 100.0; + wavWriter->setPlaybackSpeed(speedPercent); + updateSpeedLabel(); +} + +void Yamitracker::onBassVolumeChanged(int value) +{ + double volumeMultiplier = value / 100.0; + wavWriter->setBassVolumeMultiplier(volumeMultiplier); + bassVolumeMultiplier = volumeMultiplier; + updateVolumeLabel(); +} + +void Yamitracker::updateSpeedLabel() +{ + if (speedLabel && playbackSpeedSlider) { + int speed = playbackSpeedSlider->value(); + speedLabel->setText(QString("Скорость: %1%").arg(speed)); + } +} + +void Yamitracker::updateVolumeLabel() +{ + if (volumeLabel && bassVolumeSlider) { + int volume = bassVolumeSlider->value(); + volumeLabel->setText(QString("Бас: %1%").arg(volume)); + } +} + +void Yamitracker::onSaveMusicFileClicked() +{ + QString defaultName = "music_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".s"; + QString filename = QFileDialog::getSaveFileName(this, "Сохранить музыкальный файл", defaultName, "ASM файлы (*.s);;Все файлы (*)"); + + if (!filename.isEmpty()) { + saveMusicFile(filename); + } +} + +void Yamitracker::saveMusicFile(const QString &filename) +{ + if (wavWriter->saveToMusicFile(filename)) { + ui->statusLabel->setText(QString("Музыкальный файл сохранен: %1").arg(filename)); + + // Показываем информацию о сохраненном файле + QFileInfo fileInfo(filename); + QString info = QString("Музыкальный файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Pently-style assembler") + .arg(filename) + .arg(fileInfo.size()); + QMessageBox::information(this, "Файл сохранен", info); + + // Открываем файл для просмотра + QDesktopServices::openUrl(QUrl::fromLocalFile(filename)); + } else { + ui->statusLabel->setText("Ошибка сохранения музыкального файла"); + QMessageBox::warning(this, "Ошибка", "Не удалось сохранить музыкальный файл"); + } +} + +void Yamitracker::onAddTrackClicked() +{ + // Создаем новую дорожку + int newTrack = -1; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (wavWriter->getEventCount(i) == 0 && wavWriter->getTrackName(i).startsWith("Дорожка")) { + newTrack = i; + break; + } + } + + if (newTrack == -1) { + QMessageBox::warning(this, "Ошибка", "Достигнуто максимальное количество дорожек"); + return; + } + + // Устанавливаем название новой дорожки + QString newName = QString("Дорожка %1").arg(newTrack + 1); + wavWriter->setTrackName(newTrack, newName); + + // Переключаемся на новую дорожку + trackComboBox->setCurrentIndex(newTrack); + currentTrack = newTrack; + + ui->statusLabel->setText(QString("Создана новая дорожка %1").arg(newTrack + 1)); + updateTrackControls(); + updateTrackInfo(); +} + +void Yamitracker::onRemoveTrackClicked() +{ + if (wavWriter->getEventCount(currentTrack) == 0) { + QMessageBox::warning(this, "Ошибка", "Дорожка уже пуста"); + return; + } + + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Удаление дорожки", + QString("Вы уверены, что хотите удалить дорожку %1?\nВсе данные будут потеряны.") + .arg(currentTrack + 1), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + wavWriter->clearTrack(currentTrack); + ui->statusLabel->setText(QString("Дорожка %1 очищена").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onClearTrackClicked() +{ + if (wavWriter->getEventCount(currentTrack) == 0) { + ui->statusLabel->setText("Дорожка уже пуста"); + return; + } + + wavWriter->clearTrack(currentTrack); + ui->statusLabel->setText(QString("Дорожка %1 очищена").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); +} + +void Yamitracker::onPlayTrackClicked() +{ + playTrack(currentTrack); +} + +void Yamitracker::onPlayAllTracksClicked() +{ + playAllTracks(); +} + +void Yamitracker::onStopPlaybackClicked() +{ + stopPlayback(); +} + +void Yamitracker::playTrack(int track) +{ + if (isPlayingBack) { + stopPlayback(); + } + + QByteArray audioData = wavWriter->getTrackAudioData(track, false); + if (audioData.isEmpty()) { + ui->statusLabel->setText(QString("Дорожка %1 пуста").arg(track + 1)); + return; + } + + // Настраиваем аудиовыход с высоким качеством + QAudioFormat format; + format.setSampleRate(44100); // Высокое качество + format.setChannelCount(2); // Стерео + format.setSampleSize(16); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(format)) { + format = info.nearestFormat(format); + } + + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + } + if (audioBuffer) { + delete audioBuffer; + } + + audioOutput = new QAudioOutput(format, this); + + // Конвертируем моно в стерео для лучшего качества + QByteArray stereoData = convertMonoToStereo(audioData); + audioBuffer = new QBuffer(this); + audioBuffer->setData(stereoData); + audioBuffer->open(QIODevice::ReadOnly); + + connect(audioOutput, &QAudioOutput::stateChanged, this, &Yamitracker::handleAudioStateChanged); + + currentPlaybackTrack = track; + isPlayingBack = true; + ui->statusLabel->setText(QString("Воспроизведение дорожки %1...").arg(track + 1)); + + audioOutput->start(audioBuffer); + + // Запускаем таймер для отслеживания завершения воспроизведения + playbackTimer->start(100); +} + +void Yamitracker::playAllTracks() +{ + if (isPlayingBack) { + stopPlayback(); + } + + // Получаем аудиоданные всех дорожек (уже микшированные) + QByteArray audioData = wavWriter->getAllTracksAudioData(); + if (audioData.isEmpty()) { + ui->statusLabel->setText("Нет данных для воспроизведения"); + return; + } + + // Настраиваем аудиовыход с высоким качеством + QAudioFormat format; + format.setSampleRate(44100); // Высокое качество + format.setChannelCount(2); // Стерео + format.setSampleSize(16); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(format)) { + format = info.nearestFormat(format); + } + + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + } + if (audioBuffer) { + delete audioBuffer; + } + + audioOutput = new QAudioOutput(format, this); + + // Конвертируем моно в стерео для лучшего качества + QByteArray stereoData = convertMonoToStereo(audioData); + audioBuffer = new QBuffer(this); + audioBuffer->setData(stereoData); + audioBuffer->open(QIODevice::ReadOnly); + + connect(audioOutput, &QAudioOutput::stateChanged, this, &Yamitracker::handleAudioStateChanged); + + currentPlaybackTrack = -1; // Все дорожки + isPlayingBack = true; + + // Получаем количество активных дорожек + int activeTracks = 0; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (!wavWriter->isTrackMuted(i) && wavWriter->getEventCount(i) > 0) { + activeTracks++; + } + } + + ui->statusLabel->setText(QString("Воспроизведение всех дорожек (%1 активных)...").arg(activeTracks)); + + audioOutput->start(audioBuffer); + + // Запускаем таймер для отслеживания завершения воспроизведения + playbackTimer->start(100); +} + +QByteArray Yamitracker::mixSelectedTracks(const QVector &trackIndices) +{ + // Создаем временный WAV writer для микширования + SimpleWavWriter tempWriter; + + // Копируем данные из выбранных дорожек + for (int trackIndex : trackIndices) { + // Копируем события из оригинальной дорожки + // Здесь нужно добавить логику копирования событий + // Временно используем getAllTracksAudioData + } + + return wavWriter->getAllTracksAudioData(); +} + +QByteArray Yamitracker::convertMonoToStereo(const QByteArray &monoData) +{ + // Конвертируем моно 16-битные данные в стерео + const qint16 *monoSamples = reinterpret_cast(monoData.constData()); + int monoCount = monoData.size() / sizeof(qint16); + + QByteArray stereoData(monoCount * 2 * sizeof(qint16), 0); + qint16 *stereoSamples = reinterpret_cast(stereoData.data()); + + for (int i = 0; i < monoCount; i++) { + stereoSamples[i * 2] = monoSamples[i]; // Левый канал + stereoSamples[i * 2 + 1] = monoSamples[i]; // Правый канал + } + + return stereoData; +} + +void Yamitracker::stopPlayback() +{ + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + audioOutput = nullptr; + } + + if (audioBuffer) { + audioBuffer->close(); + delete audioBuffer; + audioBuffer = nullptr; + } + + isPlayingBack = false; + currentPlaybackTrack = -1; + ui->statusLabel->setText("Воспроизведение остановлено"); + playbackTimer->stop(); +} + +void Yamitracker::handleAudioStateChanged(QAudio::State state) +{ + switch (state) { + case QAudio::IdleState: + // Воспроизведение завершено + onPlaybackFinished(); + break; + case QAudio::StoppedState: + if (audioOutput && audioOutput->error() != QAudio::NoError) { + ui->statusLabel->setText("Ошибка воспроизведения"); + } + break; + default: + break; + } +} + +void Yamitracker::onPlaybackFinished() +{ + isPlayingBack = false; + + if (currentPlaybackTrack >= 0) { + ui->statusLabel->setText(QString("Воспроизведение дорожки %1 завершено").arg(currentPlaybackTrack + 1)); + } else if (currentPlaybackTrack == -1) { + ui->statusLabel->setText("Воспроизведение всех дорожек завершено"); + } else { + ui->statusLabel->setText("Воспроизведение завершено"); + } + + currentPlaybackTrack = -1; + playbackTimer->stop(); +} + +void Yamitracker::onLoadWavToTrackClicked() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + if (wavWriter->loadWavToTrack(filename, currentTrack)) { + ui->statusLabel->setText(QString("WAV файл загружен в дорожку %1").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); + } else { + ui->statusLabel->setText("Ошибка загрузки WAV файла"); + } + } +} + +void Yamitracker::onCopyTrackClicked() +{ + bool ok; + int targetTrack = QInputDialog::getInt(this, "Копирование дорожки", + "Введите номер целевой дорожки (1-7):", + currentTrack + 1, 1, 7, 1, &ok); + + if (ok && targetTrack - 1 != currentTrack) { + wavWriter->copyTrack(currentTrack, targetTrack - 1); + ui->statusLabel->setText(QString("Дорожка %1 скопирована в дорожку %2") + .arg(currentTrack + 1).arg(targetTrack)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onMergeTracksClicked() +{ + bool ok; + int targetTrack = QInputDialog::getInt(this, "Объединение дорожек", + "Введите номер дорожки для объединения (1-7):", + currentTrack + 1, 1, 7, 1, &ok); + + if (ok && targetTrack - 1 != currentTrack) { + wavWriter->mergeTrack(currentTrack, targetTrack - 1); + ui->statusLabel->setText(QString("Дорожка %1 объединена с дорожкой %2") + .arg(currentTrack + 1).arg(targetTrack)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onMuteTrackClicked() +{ + QPushButton* button = qobject_cast(sender()); + if (!button) return; + + int track = button->property("trackIndex").toInt(); + bool muted = wavWriter->isTrackMuted(track); + wavWriter->muteTrack(track, !muted); + + button->setText(!muted ? "🔇" : "🔊"); + ui->statusLabel->setText(QString("Дорожка %1 %2") + .arg(track + 1) + .arg(!muted ? "заглушена" : "включена")); +} + +void Yamitracker::onSoloTrackClicked() +{ + QPushButton* button = qobject_cast(sender()); + if (!button) return; + + int soloTrack = button->property("trackIndex").toInt(); + + // Выключаем все дорожки кроме выбранной + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + wavWriter->muteTrack(i, i != soloTrack); + if (i < trackMuteButtons.size()) { + trackMuteButtons[i]->setText(i == soloTrack ? "🔊" : "🔇"); + } + } + + ui->statusLabel->setText(QString("Только дорожка %1 воспроизводится").arg(soloTrack + 1)); +} + +void Yamitracker::onTrackVolumeChanged(int value) +{ + QSlider* slider = qobject_cast(sender()); + if (!slider) return; + + int track = slider->property("trackIndex").toInt(); + wavWriter->setTrackVolume(track, value / 100.0); + + // Обновляем метку громкости + QLabel* volumeLabel = findChild(QString("trackVolumeLabel_%1").arg(track)); + if (volumeLabel) { + volumeLabel->setText(QString("%1%").arg(value)); + } +} + +void Yamitracker::onTrackNameChanged() +{ + QLineEdit* edit = qobject_cast(sender()); + if (!edit) return; + + int track = edit->property("trackIndex").toInt(); + wavWriter->setTrackName(track, edit->text()); + + // Обновляем комбобокс дорожек + if (track == currentTrack) { + trackComboBox->setItemText(trackComboBox->currentIndex(), edit->text()); + } +} + +void Yamitracker::onTrackInstrumentChanged(int index) +{ + QComboBox* combo = qobject_cast(sender()); + if (!combo) return; + + int track = combo->property("trackIndex").toInt(); + int instrument = combo->itemData(index).toInt(); + wavWriter->setTrackInstrument(track, instrument); + + ui->statusLabel->setText(QString("Инструмент дорожки %1 изменен на %2") + .arg(track + 1) + .arg(instruments.value(instrument, "Неизвестный"))); +} + +void Yamitracker::initializeKeyButtons() +{ + QList whiteKeys = { + ui->key_C1, ui->key_D1, ui->key_E1, ui->key_F1, ui->key_G1, ui->key_A1, ui->key_B1, + ui->key_C2, ui->key_D2, ui->key_E2, ui->key_F2, ui->key_G2, ui->key_A2, ui->key_B2, + ui->key_C3, ui->key_D3, ui->key_E3, ui->key_F3, ui->key_G3, ui->key_A3, ui->key_B3, + ui->key_C4, ui->key_D4, ui->key_E4, ui->key_F4, ui->key_G4, ui->key_A4, ui->key_B4, + ui->key_C5, ui->key_D5, ui->key_E5, ui->key_F5, ui->key_G5, ui->key_A5, ui->key_B5, + ui->key_C6 + }; + + for (QPushButton *key : whiteKeys) { + key->setProperty("whiteKey", true); + keyButtons[key->text()] = key; + } + + QList blackKeys = { + ui->key_Cs1, ui->key_Ds1, ui->key_Fs1, ui->key_Gs1, ui->key_As1, + ui->key_Cs2, ui->key_Ds2, ui->key_Fs2, ui->key_Gs2, ui->key_As2, + ui->key_Cs3, ui->key_Ds3, ui->key_Fs3, ui->key_Gs3, ui->key_As3, + ui->key_Cs4, ui->key_Ds4, ui->key_Fs4, ui->key_Gs4, ui->key_As4, + ui->key_Cs5, ui->key_Ds5, ui->key_Fs5, ui->key_Gs5, ui->key_As5 + }; + + for (QPushButton *key : blackKeys) { + key->setProperty("blackKey", true); + keyButtons[key->text()] = key; + } +} + +QString Yamitracker::getInstrumentName(int program) +{ + return instruments.contains(program) ? instruments[program] : QString("Unknown (%1)").arg(program); +} + +void Yamitracker::onNoteOnReceived(const QString &data, int velocity) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.insert(note); + highlightKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + int volume = (velocity * 100) / 127; + ui->volumeBar->setValue(volume); + + if (isGlobalRecording) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - globalRecordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + noteStartTimes[data] = currentTime; + + // Записываем начало ноты в текущую дорожку с относительным временем + int currentInstrument = instrumentComboBox->currentData().toInt(); + wavWriter->addNote(currentTrack, currentTime, noteNumber, velocity, 0.1, currentInstrument); + + // Обновляем информацию о дорожке + updateTrackInfo(); + updateTrackControls(); + } + } +} + +void Yamitracker::onNoteOffReceived(const QString &data) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.remove(note); + clearKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + if (currentlyPressedKeys.isEmpty()) { + ui->volumeBar->setValue(0); + } + + if (isGlobalRecording && noteStartTimes.contains(data)) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - globalRecordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + double noteStartTime = noteStartTimes[data]; + double duration = currentTime - noteStartTime; + + int noteVelocity = 100; + + // Обновляем длительность ноты (в реальном приложении нужно обновлять существующую ноту) + int currentInstrument = instrumentComboBox->currentData().toInt(); + wavWriter->addNote(currentTrack, noteStartTime, noteNumber, noteVelocity, duration, currentInstrument); + + noteStartTimes.remove(data); + + // Обновляем информацию о дорожке + updateTrackInfo(); + updateTrackControls(); + } + } +} + +void Yamitracker::onConnectionStatusChanged(bool connected) +{ + isConnected = connected; + if (connected) { + ui->statusLabel->setText("Статус: Подключено к синтезатору"); + } else { + ui->statusLabel->setText("Статус: Отключено (переподключение...)"); + } +} + +void Yamitracker::attemptReconnect() +{ + if (!isConnected && (!serialReader || !serialReader->isRunning())) { + qDebug() << "Attempting to reconnect..."; + startSerialReader(); + } +} + +void Yamitracker::onError(const QString &message) +{ + // НЕ показываем всплывающее окно с ошибкой подключения + // Просто обновляем статус в строке состояния + ui->statusLabel->setText("Ошибка: " + message); + + // Показываем окно только для критических ошибок (не связанных с подключением) + if (!message.contains("Cannot open", Qt::CaseInsensitive) && + !message.contains("Connection lost", Qt::CaseInsensitive) && + !message.contains("reconnect", Qt::CaseInsensitive)) { + QMessageBox::warning(this, "Ошибка", message); + } +} + +void Yamitracker::onPlayClicked() +{ + // Получаем выбранный инструмент + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Запись с синтезатора [БАС x%1]...").arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText("Запись с синтезатора..."); + } + + noteStartTimes.clear(); + currentlyPressedKeys.clear(); + clearAllHighlights(); + + // Если это первая запись в сессии, начинаем глобальную запись + if (!isGlobalRecording) { + globalRecordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + isGlobalRecording = true; + qDebug() << "Начало глобальной записи. Все дорожки будут синхронизированы."; + } + + // Начинаем запись с высоким качеством + if (wavWriter->startRecording(44100)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started WAV recording from synthesizer, track:" << currentTrack + << "sample rate: 44100, instrument:" << currentInstrument; + if (isBassInstrument) { + qDebug() << "Bass instrument detected - volume will be increased"; + } + + // Активируем кнопку паузы + ui->pauseButton->setEnabled(true); + } +} + +void Yamitracker::onPauseClicked() +{ + if (wavWriter->isRecording()) { + if (wavWriter->isPaused()) { + wavWriter->resumeRecording(); + ui->statusLabel->setText("Запись возобновлена..."); + ui->pauseButton->setText("⏸ Пауза"); + } else { + wavWriter->pauseRecording(); + ui->statusLabel->setText("Запись приостановлена"); + ui->pauseButton->setText("▶ Продолжить"); + } + } +} + +void Yamitracker::onStopClicked() +{ + ui->statusLabel->setText("Запись остановлена"); + + clearAllHighlights(); + currentlyPressedKeys.clear(); + ui->keysInfoLabel->setText("Нажато клавиш: 0"); + ui->volumeBar->setValue(0); + + if (wavWriter->isRecording()) { + wavWriter->stopRecording(); + + // Деактивируем кнопку паузы + ui->pauseButton->setEnabled(false); + ui->pauseButton->setText("⏸ Пауза"); + + // Предлагаем сохранить запись, если это последняя дорожка + bool hasMoreTracks = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i != currentTrack && wavWriter->getEventCount(i) == 0) { + hasMoreTracks = true; + break; + } + } + + if (!hasMoreTracks) { + onSaveRecordingClicked(); + } + } + + noteStartTimes.clear(); +} + +void Yamitracker::onSaveRecordingClicked() +{ + QString defaultName = "recording_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".wav"; + QString filename = QFileDialog::getSaveFileName(this, "Сохранить запись", defaultName, "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + saveWavFile(filename); + + // Сбрасываем глобальную запись + isGlobalRecording = false; + globalRecordingStartTime = 0; + } +} + +void Yamitracker::saveWavFile(const QString &filename) +{ + // Проверяем, есть ли данные для сохранения + bool hasData = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (wavWriter->getEventCount(i) > 0) { + hasData = true; + break; + } + } + + if (!hasData) { + QMessageBox::warning(this, "Ошибка", + "Нет данных для сохранения. Запишите хотя бы одну ноту на любой дорожке."); + return; + } + + if (wavWriter->saveToFile(filename)) { + lastRecordedWavFile = filename; + ui->statusLabel->setText(QString("Сохранено: %1").arg(filename)); + + // Показываем информацию о сохраненном файле + QFileInfo fileInfo(filename); + QString info = QString("WAV файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: 44100 Гц, 16 бит, моно\n" + "Все дорожки микшированы для параллельного воспроизведения") + .arg(filename) + .arg(fileInfo.size()); + QMessageBox::information(this, "Файл сохранен", info); + + // Активируем кнопку конвертации + ui->convertButton->setEnabled(true); + ui->saveMusicButton->setEnabled(true); + + // Предлагаем воспроизвести файл + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Запись завершена", + QString("WAV файл сохранен:\n%1\n\nВоспроизвести файл?").arg(filename), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + playWavExternal(lastRecordedWavFile); + } + } else { + ui->statusLabel->setText("Ошибка сохранения WAV файла"); + QMessageBox::warning(this, "Ошибка", + "Не удалось сохранить WAV файл. Возможно:\n" + "1. Нет данных для записи\n" + "2. Недостаточно прав для записи\n" + "3. Диск переполнен"); + } +} + +void Yamitracker::onConvertToBrrClicked() +{ + if (lastRecordedWavFile.isEmpty() || !QFile::exists(lastRecordedWavFile)) { + onSelectFileForConversion(); + return; + } + + QString baseName = QFileInfo(lastRecordedWavFile).completeBaseName(); + QString brrFile = QFileDialog::getSaveFileName(this, "Сохранить BRR файл", baseName + ".brr", "BRR файлы (*.brr)"); + + if (brrFile.isEmpty()) return; + + ui->statusLabel->setText("Конвертация WAV -> BRR..."); + QApplication::processEvents(); + + if (brrConverter->convertWavToBrr(lastRecordedWavFile, brrFile)) { + ui->statusLabel->setText(QString("Конвертация завершена: %1").arg(brrFile)); + + QFileInfo brrInfo(brrFile); + if (brrInfo.exists()) { + QString info = QString("BRR файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Nintendo SNES ADPCM") + .arg(brrFile) + .arg(brrInfo.size()); + QMessageBox::information(this, "Конвертация завершена", info); + } + } else { + ui->statusLabel->setText("Ошибка конвертации WAV -> BRR"); + QMessageBox::warning(this, "Ошибка", "Не удалось преобразовать WAV в BRR формат"); + } +} + +void Yamitracker::onSelectFileForConversion() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл для конвертации", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + lastRecordedWavFile = filename; + onConvertToBrrClicked(); + } +} + +void Yamitracker::onSelectFileForPlayback() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл для воспроизведения", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + playWavExternal(filename); + } +} + +void Yamitracker::playWavExternal(const QString &wavFile) +{ + QStringList players = { + "aplay", "paplay", "play", "ffplay" + }; + + QString player; + + for (const QString &p : players) { + QProcess checkProcess; + checkProcess.start("which", QStringList() << p); + checkProcess.waitForFinished(); + if (checkProcess.exitCode() == 0) { + player = p; + break; + } + } + + if (player.isEmpty()) { + QMessageBox::warning(this, "Воспроизведение", + "Не найден аудиоплеер. Установите один из:\n" + "aplay, paplay, sox или ffmpeg"); + return; + } + + ui->statusLabel->setText("Воспроизведение WAV файла..."); + + audioPlayerProcess->start(player, QStringList() << wavFile); + + if (!audioPlayerProcess->waitForStarted(3000)) { + ui->statusLabel->setText("Не удалось запустить аудиоплеер"); + QMessageBox::warning(this, "Ошибка", + QString("Не удалось запустить %1. Убедитесь, что он установлен.").arg(player)); + } +} + +void Yamitracker::scanMidiFiles() +{ + QDir currentDir = QDir::current(); + QStringList filters; + filters << "*.txt"; + QStringList files = currentDir.entryList(filters, QDir::Files); + + midiFilesList->clear(); + for (const QString &file : files) { + // Проверяем, является ли файл MIDI логом + if (file.contains("midi_log_") || + file.contains("CrandPno") || + file.contains("BritePno") || + file.contains("Harpsi") || + file.contains("FngrBass") || + file.contains("Ovrdrive") || + file.contains("Bright")) { + + QFileInfo fileInfo(file); + QListWidgetItem *item = new QListWidgetItem(fileInfo.fileName()); + item->setData(Qt::UserRole, fileInfo.absoluteFilePath()); + midiFilesList->addItem(item); + } + } + + if (midiFilesList->count() == 0) { + QListWidgetItem *item = new QListWidgetItem("MIDI файлы не найдены"); + item->setFlags(item->flags() & ~Qt::ItemIsSelectable); + midiFilesList->addItem(item); + } +} + +void Yamitracker::onLoadMidiFileClicked() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите MIDI лог файл", "", "Текстовые файлы (*.txt);;Все файлы (*)"); + + if (!filename.isEmpty()) { + loadMidiFile(filename); + } +} + +void Yamitracker::loadMidiFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QMessageBox::warning(this, "Ошибка", "Не удалось открыть файл: " + filename); + return; + } + + QTextStream in(&file); + QString content = in.readAll(); + file.close(); + + currentMidiFilePath = filename; + parseMidiLog(content); + + ui->statusLabel->setText(QString("Загружен файл: %1").arg(QFileInfo(filename).fileName())); +} + +void Yamitracker::parseMidiLog(const QString &content) +{ + QStringList lines = content.split('\n'); + int program = 1; // По умолчанию + + for (const QString &line : lines) { + if (line.contains("PROGRAM_CHANGE: Program=")) { + // Извлекаем номер программы + QRegularExpression re("Program=(\\d+)"); + QRegularExpressionMatch match = re.match(line); + if (match.hasMatch()) { + program = match.captured(1).toInt(); + // Обновляем выбранный инструмент в комбобоксе + int index = instrumentComboBox->findData(program); + if (index >= 0) { + instrumentComboBox->setCurrentIndex(index); + } + } + } + } + + // Показываем информацию о загруженном файле + QString info = QString("Файл загружен\nИнструмент: %1\nСтрок: %2") + .arg(getInstrumentName(program)) + .arg(lines.count()); + + QMessageBox::information(this, "MIDI файл загружен", info); +} + +void Yamitracker::onPlayMidiFileClicked() +{ + if (currentMidiFilePath.isEmpty()) { + QMessageBox::information(this, "Воспроизведение", "Сначала загрузите MIDI файл"); + return; + } + + // Проверяем, является ли инструмент басовым + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Симуляция MIDI файла [БАС x%1]...").arg(bassVolumeMultiplier)); + QApplication::processEvents(); + + QMessageBox::information(this, "Симуляция MIDI (БАС)", + QString("Симуляция воспроизведения MIDI файла с БАС-инструментом:\n" + "Файл: %1\n" + "Инструмент: %2\n" + "Громкость усилена в %3 раза\n\n" + "В реальной версии бас будет звучать громче.") + .arg(QFileInfo(currentMidiFilePath).fileName()) + .arg(getInstrumentName(currentInstrument)) + .arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText("Симуляция MIDI файла..."); + QApplication::processEvents(); + + QMessageBox::information(this, "Симуляция MIDI", + QString("Симуляция воспроизведения MIDI файла:\n%1\n\nВ реальной версии здесь будет воспроизведение нот.") + .arg(QFileInfo(currentMidiFilePath).fileName())); + } + + ui->statusLabel->setText("Симуляция завершена"); +} + +void Yamitracker::simulateNote(int note, int velocity, double duration) +{ + if (wavWriter->isRecording()) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + wavWriter->addNote(currentTrack, currentTime, note, velocity, duration); + } +} + +void Yamitracker::onSelectedMidiFileChanged() +{ + QList selectedItems = midiFilesList->selectedItems(); + if (!selectedItems.isEmpty()) { + QString filePath = selectedItems.first()->data(Qt::UserRole).toString(); + loadMidiFile(filePath); + } +} + +void Yamitracker::onRecordFromMidiFile() +{ + if (currentMidiFilePath.isEmpty()) { + QMessageBox::information(this, "Запись", "Сначала загрузите MIDI файл"); + return; + } + + // Получаем выбранный инструмент + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Запись из MIDI файла [БАС x%1]...").arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText(QString("Запись из MIDI файла [Инструмент: %1]...").arg(getInstrumentName(currentInstrument))); + } + + // Если это первая запись в сессии, начинаем глобальную запись + if (!isGlobalRecording) { + globalRecordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + isGlobalRecording = true; + } + + // Начинаем запись с высоким качеством + if (wavWriter->startRecording(44100)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started WAV recording from MIDI file, instrument:" << currentInstrument << "track:" << currentTrack; + + // Генерируем мелодию в зависимости от инструмента + generateInstrumentMelody(currentInstrument); + + wavWriter->stopRecording(); + + // Предлагаем сохранить, если это последняя дорожка + bool hasMoreTracks = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i != currentTrack && wavWriter->getEventCount(i) == 0) { + hasMoreTracks = true; + break; + } + } + + if (!hasMoreTracks) { + onSaveRecordingClicked(); + } + } +} + +void Yamitracker::generateInstrumentMelody(int instrument) +{ + double volumeMultiplier = bassInstruments.contains(instrument) ? bassVolumeMultiplier : 1.0; + + // Время относительно глобального начала записи + double currentGlobalTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - globalRecordingStartTime; + + // Разные мелодии для разных инструментов + switch (instrument) { + case 1: // CrandPno (Гранд-пианино) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 1.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.5, 64, 80 * volumeMultiplier, 0.5, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 67, 90 * volumeMultiplier, 1.0, instrument); // G4 + wavWriter->addNote(currentTrack, currentGlobalTime + 2.0, 72, 100 * volumeMultiplier, 1.0, instrument); // C5 + break; + + case 2: // BritePno (Яркое пианино) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 0.3, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.1, 64, 90 * volumeMultiplier, 0.3, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.2, 67, 80 * volumeMultiplier, 0.3, instrument); // G4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 72, 100 * volumeMultiplier, 0.5, instrument); // C5 + break; + + case 3: // Harpsi (Клавесин) + case 6: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 0.1, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.1, 62, 90 * volumeMultiplier, 0.1, instrument); // D4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.2, 64, 100 * volumeMultiplier, 0.1, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 65, 90 * volumeMultiplier, 0.1, instrument); // F4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.4, 67, 100 * volumeMultiplier, 0.2, instrument); // G4 + break; + + case 28: // FngrBass (Фингер-бас) + case 33: + case 39: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 36, 120 * volumeMultiplier, 1.0, instrument); // C2 (бас) + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 40, 100 * volumeMultiplier, 0.5, instrument); // E2 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.5, 43, 110 * volumeMultiplier, 1.0, instrument); // G2 + wavWriter->addNote(currentTrack, currentGlobalTime + 2.5, 48, 100 * volumeMultiplier, 0.5, instrument); // C3 + break; + + case 40: // SlapBas (Слэп-бас) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 36, 150 * volumeMultiplier, 0.2, instrument); // C2 (щелчок) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 40, 120 * volumeMultiplier, 0.3, instrument); // E2 (пул) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.7, 43, 140 * volumeMultiplier, 0.2, instrument); // G2 (щелчок) + break; + + case 29: // Ovrdrive (Овердрайв-гитара) + case 37: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 40, 100 * volumeMultiplier, 1.5, instrument); // E2 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.5, 43, 90 * volumeMultiplier, 1.0, instrument); // G2 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 45, 100 * volumeMultiplier, 0.5, instrument); // A2 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.5, 47, 110 * volumeMultiplier, 1.0, instrument); // B2 + break; + + case 48: // String (Струнные) + case 49: // SlowStr (Медленные струнные) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 80 * volumeMultiplier, 2.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.5, 64, 70 * volumeMultiplier, 1.5, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 67, 75 * volumeMultiplier, 2.0, instrument); // G4 + break; + + case 81: // LeadSx (Саксофон) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 65, 90 * volumeMultiplier, 1.5, instrument); // F4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 67, 85 * volumeMultiplier, 0.5, instrument); // G4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.8, 69, 95 * volumeMultiplier, 2.0, instrument); // A4 + break; + + case 95: // Bright (Яркий звук) + case 96: + case 100: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 72, 100 * volumeMultiplier, 0.2, instrument); // C5 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.2, 76, 90 * volumeMultiplier, 0.2, instrument); // E5 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.4, 79, 100 * volumeMultiplier, 0.2, instrument); // G5 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.6, 84, 110 * volumeMultiplier, 0.3, instrument); // C6 + break; + + default: + // Стандартная мелодия для неизвестных инструментов + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 1.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 64, 80 * volumeMultiplier, 1.0, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 2.0, 67, 90 * volumeMultiplier, 1.0, instrument); // G4 + break; + } +} + +void Yamitracker::highlightKey(const QString ¬e) +{ + if (keyButtons.contains(note)) { + QPushButton *key = keyButtons[note]; + key->setStyleSheet("background-color: #ff4444; color: white; border: 2px solid red;"); + } +} + +void Yamitracker::clearKey(const QString ¬e) +{ + if (!keyButtons.contains(note)) return; + QPushButton *key = keyButtons[note]; + if (key->property("whiteKey").toBool()) + key->setStyleSheet("background-color: white; color: black; border: 1px solid #ccc;"); + else + key->setStyleSheet("background-color: black; color: white;"); +} + +void Yamitracker::clearAllHighlights() +{ + for (auto i = keyButtons.begin(); i != keyButtons.end(); ++i) { + clearKey(i.key()); + } +} + +void Yamitracker::clearStatusMessage() +{ + ui->statusLabel->setText("Статус: Готов"); +} + +void Yamitracker::initializeDeviceDetection() +{ + deviceLabel->setText("Устройство: Поиск..."); +} + +void Yamitracker::autoDetectAndConnect() +{ + QString device = "/dev/dmmidi1"; + serialReader->setDevice(device); + deviceLabel->setText(QString("Устройство: %1").arg(device)); + qDebug() << "Using device:" << device; + + startSerialReader(); +} + +void Yamitracker::onDeviceInfoReceived(const QString &manufacturer, const QString &model) +{ + deviceLabel->setText(QString("Устройство: %1 %2").arg(manufacturer, model)); + + setWindowTitle(QString("Yamitracker - %1 %2").arg(manufacturer, model)); +} + +void Yamitracker::onRefreshDevicesClicked() +{ + deviceLabel->setText("Устройство: Обновление..."); + + autoDetectAndConnect(); +} + +void Yamitracker::startSerialReader() +{ + if (serialReader && !serialReader->isRunning()) { + serialReader->start(); + } +} + +Yamitracker::~Yamitracker() +{ + stopPlayback(); + + if (serialReader) { + serialReader->stop(); + if (serialReader->isRunning()) { + serialReader->terminate(); + serialReader->wait(); + } + } + + delete ui; +} diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/yamitracker.cpp.autosave b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/yamitracker.cpp.autosave new file mode 100644 index 0000000..a54af21 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/yamitracker.cpp.autosave @@ -0,0 +1,1724 @@ +#include "yamitracker.h" +#include "ui_yamitracker.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Глобальная переменная для управления громкостью баса +double bassVolumeMultiplier = 2.0; // Увеличение громкости баса в 2 раза + +// Инструменты басового типа для усиления громкости +QSet bassInstruments = { + 28, // FngrBass (Фингер-бас) + 33, // FngrBass (Фингер-бас) - другой тип + 39, // FngrBass (Фингер-бас) - еще тип + 40, // SlapBas (Слэп-бас) + 38, // DstGtr (Дисторшн-гитара) - тоже можно усилить + 29, // Ovrdrive (Овердрайв-гитара) + 37 // Ovrdrive (Овердрайв-гитара) - другой тип +}; + +void SerialReader::run() +{ + while (!shouldStop) { + int fd = open(currentDevice.toUtf8().constData(), O_RDWR | O_NOCTTY); + if (fd < 0) { + emit error(QString("Cannot open %1").arg(currentDevice)); + emit connectionStatusChanged(false); + sleep(2); + continue; + } + + emit connectionStatusChanged(true); + + QString manufacturer = "Unknown"; + QString model = "Unknown"; + + if (currentDevice.contains("yamaha", Qt::CaseInsensitive) || + currentDevice.contains("psr", Qt::CaseInsensitive)) { + manufacturer = "Yamaha"; + model = "PSR Series"; + } else if (currentDevice.contains("dmmidi")) { + manufacturer = "Yamaha"; + model = "PSR-E333 (Direct MIDI)"; + } + + emit deviceInfoReceived(manufacturer, model); + + struct termios tty; + tcgetattr(fd, &tty); + cfsetospeed(&tty, B115200); + cfsetispeed(&tty, B115200); + tty.c_cflag |= (CLOCAL | CREAD | CS8); + tty.c_cc[VMIN] = 1; + tcsetattr(fd, TCSANOW, &tty); + + unsigned char byte; + while (!shouldStop && read(fd, &byte, 1) > 0) { + if (byte == 0xF8 || byte == 0xFE) { + continue; + } + + if (byte & 0x80) { + if ((byte & 0xF0) == 0x90) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + + if (velocity == 0) + emit noteOffReceived(hexNote); + else + emit noteOnReceived(hexNote, velocity); + } + } + else if ((byte & 0xF0) == 0x80) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + emit noteOffReceived(hexNote); + } + } + } + } + + close(fd); + emit connectionStatusChanged(false); + + if (!shouldStop) { + emit error(QString("Connection lost to %1. Attempting to reconnect...").arg(currentDevice)); + sleep(2); + } + } +} + +Yamitracker::Yamitracker(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::Yamitracker) + , serialReader(new SerialReader(this)) + , reconnectTimer(new QTimer(this)) + , isConnected(false) + , wavWriter(new SimpleWavWriter(this)) + , recordingStartTime(0) + , brrConverter(new BrrConverter(this)) + , audioPlayerProcess(new QProcess(this)) + , playbackSpeedSlider(nullptr) + , bassVolumeSlider(nullptr) + , speedLabel(nullptr) + , volumeLabel(nullptr) + , audioOutput(nullptr) + , audioBuffer(nullptr) + , playbackTimer(new QTimer(this)) + , isPlayingBack(false) + , currentPlaybackTrack(-1) + , currentTrack(0) + , globalRecordingStartTime(0) + , isGlobalRecording(false) +{ + ui->setupUi(this); + + deviceLabel = ui->deviceLabel; + refreshDevicesButton = ui->refreshDevicesButton; + midiFilesList = ui->midiFilesList; + instrumentComboBox = ui->instrumentComboBox; + trackComboBox = ui->trackComboBox; + + // Ищем элементы в UI + playbackSpeedSlider = findChild("playbackSpeedSlider"); + bassVolumeSlider = findChild("bassVolumeSlider"); + speedLabel = findChild("speedLabel"); + volumeLabel = findChild("volumeLabel"); + + // Настраиваем слайдеры, если они найдены + if (playbackSpeedSlider) { + playbackSpeedSlider->setRange(50, 200); // 50% - 200% + playbackSpeedSlider->setValue(100); // 100% по умолчанию + playbackSpeedSlider->setTickInterval(10); + playbackSpeedSlider->setTickPosition(QSlider::TicksBelow); + } + + if (bassVolumeSlider) { + bassVolumeSlider->setRange(100, 400); // 100% - 400% + bassVolumeSlider->setValue(200); // 200% по умолчанию + bassVolumeSlider->setTickInterval(50); + bassVolumeSlider->setTickPosition(QSlider::TicksBelow); + } + + // Инициализируем дорожки + initializeTracks(); + initializeTrackControls(); + + // Обновляем метки + updateSpeedLabel(); + updateVolumeLabel(); + updateTrackInfo(); + + // Подключаем сигналы + if (playbackSpeedSlider) { + connect(playbackSpeedSlider, &QSlider::valueChanged, this, &Yamitracker::onPlaybackSpeedChanged); + } + if (bassVolumeSlider) { + connect(bassVolumeSlider, &QSlider::valueChanged, this, &Yamitracker::onBassVolumeChanged); + } + + // Заполняем комбобокс инструментами + QList instrumentIds = instruments.keys(); + std::sort(instrumentIds.begin(), instrumentIds.end()); + for (int id : instrumentIds) { + QString instrumentName = instruments[id]; + // Добавляем пометку для басовых инструментов + if (bassInstruments.contains(id)) { + instrumentName += " [БАС - усилено]"; + } + instrumentComboBox->addItem(QString("%1: %2").arg(id).arg(instrumentName), id); + } + + initializeKeyButtons(); + initializeDeviceDetection(); + + // Подключаем сигналы серийного порта + connect(serialReader, &SerialReader::noteOnReceived, this, &Yamitracker::onNoteOnReceived); + connect(serialReader, &SerialReader::noteOffReceived, this, &Yamitracker::onNoteOffReceived); + connect(serialReader, &SerialReader::error, this, &Yamitracker::onError); + connect(serialReader, &SerialReader::connectionStatusChanged, this, &Yamitracker::onConnectionStatusChanged); + connect(serialReader, &SerialReader::deviceInfoReceived, this, &Yamitracker::onDeviceInfoReceived); + + // Подключаем кнопки управления записью + connect(ui->playButton, &QPushButton::clicked, this, &Yamitracker::onPlayClicked); + connect(ui->pauseButton, &QPushButton::clicked, this, &Yamitracker::onPauseClicked); + connect(ui->stopButton, &QPushButton::clicked, this, &Yamitracker::onStopClicked); + connect(ui->convertButton, &QPushButton::clicked, this, &Yamitracker::onConvertToBrrClicked); + connect(refreshDevicesButton, &QPushButton::clicked, this, &Yamitracker::onRefreshDevicesClicked); + connect(ui->loadMidiButton, &QPushButton::clicked, this, &Yamitracker::onLoadMidiFileClicked); + connect(ui->selectFileButton, &QPushButton::clicked, this, &Yamitracker::onSelectFileForConversion); + connect(ui->playFileButton, &QPushButton::clicked, this, &Yamitracker::onSelectFileForPlayback); + connect(ui->saveRecordingButton, &QPushButton::clicked, this, &Yamitracker::onSaveRecordingClicked); + connect(ui->playMidiButton, &QPushButton::clicked, this, &Yamitracker::onPlayMidiFileClicked); + connect(ui->recordFromMidiButton, &QPushButton::clicked, this, &Yamitracker::onRecordFromMidiFile); + connect(midiFilesList, &QListWidget::itemSelectionChanged, this, &Yamitracker::onSelectedMidiFileChanged); + connect(ui->saveMusicButton, &QPushButton::clicked, this, &Yamitracker::onSaveMusicFileClicked); + connect(ui->addTrackButton, &QPushButton::clicked, this, &Yamitracker::onAddTrackClicked); + connect(ui->removeTrackButton, &QPushButton::clicked, this, &Yamitracker::onRemoveTrackClicked); + connect(ui->clearTrackButton, &QPushButton::clicked, this, &Yamitracker::onClearTrackClicked); + connect(trackComboBox, QOverload::of(&QComboBox::currentIndexChanged), this, &Yamitracker::onCurrentTrackChanged); + + // Подключаем новые кнопки + connect(ui->playTrackButton, &QPushButton::clicked, this, &Yamitracker::onPlayTrackClicked); + connect(ui->playAllButton, &QPushButton::clicked, this, &Yamitracker::onPlayAllTracksClicked); + connect(ui->stopPlaybackButton, &QPushButton::clicked, this, &Yamitracker::onStopPlaybackClicked); + connect(ui->loadWavButton, &QPushButton::clicked, this, &Yamitracker::onLoadWavToTrackClicked); + connect(ui->copyTrackButton, &QPushButton::clicked, this, &Yamitracker::onCopyTrackClicked); + connect(ui->mergeTrackButton, &QPushButton::clicked, this, &Yamitracker::onMergeTracksClicked); + + // Подключаем сигналы от wavWriter + connect(wavWriter, &SimpleWavWriter::trackUpdated, this, [this](int track) { + if (track == currentTrack) { + updateTrackInfo(); + } + }); + + connect(wavWriter, &SimpleWavWriter::recordingStatusChanged, this, [this](bool recording) { + if (recording) { + ui->statusLabel->setText("Запись активна"); + ui->playButton->setEnabled(false); + ui->stopButton->setEnabled(true); + ui->pauseButton->setEnabled(true); + } else { + ui->statusLabel->setText("Запись остановлена"); + ui->playButton->setEnabled(true); + ui->stopButton->setEnabled(false); + ui->pauseButton->setEnabled(false); + ui->pauseButton->setText("⏸ Пауза"); + } + }); + + connect(reconnectTimer, &QTimer::timeout, this, &Yamitracker::attemptReconnect); + reconnectTimer->start(5000); + + connect(audioPlayerProcess, QOverload::of(&QProcess::finished), + this, [this](int exitCode, QProcess::ExitStatus exitStatus) { + Q_UNUSED(exitCode); + if (exitStatus == QProcess::NormalExit) { + ui->statusLabel->setText("Воспроизведение завершено"); + } + }); + + // Подключаем таймер воспроизведения + connect(playbackTimer, &QTimer::timeout, this, &Yamitracker::onPlaybackFinished); + + // ОБНОВЛЕННЫЙ СТИЛЬ - черный текст на белом фоне для панели управления дорожками + // Остальные элементы остаются с белым текстом на темном фоне + setStyleSheet( + "QMainWindow { background-color: #2b2b2b; }" + "QLabel { color: #ffffff; font-size: 14px; font-weight: bold; }" + "QGroupBox { color: #ffffff; font-weight: bold; border: 2px solid #555; border-radius: 5px; margin-top: 10px; }" + "QGroupBox::title { color: #ffffff; subcontrol-origin: margin; left: 10px; padding: 0 5px 0 5px; }" + "QPushButton { background-color: #4a4a4a; color: #ffffff; border: 1px solid #555; border-radius: 3px; padding: 5px; font-weight: bold; }" + "QPushButton:hover { background-color: #5a5a5a; }" + "QPushButton:pressed { background-color: #3a3a3a; }" + "QPushButton[whiteKey=true] { background-color: white; color: black; border: 1px solid #ccc; font-size: 8pt; }" + "QPushButton[whiteKey=true]:pressed { background-color: #ff4444; color: white; }" + "QPushButton[blackKey=true] { background-color: black; color: white; font-size: 7pt; }" + "QPushButton[blackKey=true]:pressed { background-color: #ff4444; }" + "QProgressBar { border: 1px solid #555; background: #333; color: white; }" + "QProgressBar::chunk { background: #4CAF50; }" + "QListWidget { background-color: #333; color: #ffffff; border: 1px solid #555; selection-background-color: #555; }" + "QComboBox { background-color: #333; color: #ffffff; border: 1px solid #555; padding: 5px; }" + "QComboBox QAbstractItemView { background-color: #333; color: #ffffff; selection-background-color: #555; }" + "QComboBox::drop-down { border: none; }" + "QComboBox::down-arrow { image: none; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid white; }" + "QSlider::groove:horizontal { border: 1px solid #555; height: 8px; background: #333; margin: 2px 0; }" + "QSlider::handle:horizontal { background: #4CAF50; border: 1px solid #5f5f5f; width: 18px; margin: -2px 0; border-radius: 3px; }" + "QLineEdit { background-color: #ffffff; color: #000000; border: 1px solid #555; padding: 3px; }" // Изменено: белый фон, черный текст + "QCheckBox { color: #ffffff; }" + "QCheckBox::indicator { width: 16px; height: 16px; }" + // Стили для панели управления дорожками + "QScrollArea { background-color: white; }" + "QScrollArea QGroupBox { background-color: white; color: #000000; border: 2px solid #aaa; }" + "QScrollArea QGroupBox::title { color: #000000; }" + "QScrollArea QLabel { color: #000000; }" + "QScrollArea QComboBox { background-color: white; color: #000000; border: 1px solid #aaa; }" + "QScrollArea QComboBox QAbstractItemView { background-color: white; color: #000000; selection-background-color: #ddd; }" + "QScrollArea QPushButton { background-color: #e0e0e0; color: #000000; border: 1px solid #aaa; }" + "QScrollArea QPushButton:hover { background-color: #d0d0d0; }" + "QScrollArea QPushButton:pressed { background-color: #b0b0b0; }" + "QScrollArea QSlider::groove:horizontal { border: 1px solid #aaa; height: 8px; background: #ddd; }" + "QScrollArea QSlider::handle:horizontal { background: #4CAF50; border: 1px solid #5f5f5f; }" + ); + + QTimer::singleShot(1000, this, &Yamitracker::autoDetectAndConnect); + setWindowTitle("Yamaha PSR-E333 Monitor - Multitrack Recording"); + + // Сканируем MIDI файлы при запуске + scanMidiFiles(); + + // Информация о басовых инструментах + qDebug() << "Бас-инструменты усилены в" << bassVolumeMultiplier << "раз"; + qDebug() << "Бас-инструменты: FngrBass(28,33,39), SlapBas(40), Ovrdrive(29,37), DstGtr(38)"; +} + +void Yamitracker::initializeTracks() +{ + trackComboBox->clear(); + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { // Используем MAX_TRACKS + QString trackName = wavWriter->getTrackName(i); + trackComboBox->addItem(trackName, i); + } + trackComboBox->setCurrentIndex(0); + currentTrack = 0; +} + +void Yamitracker::initializeTrackControls() +{ + // Получаем ScrollArea для управления дорожками + QScrollArea* scrollArea = findChild("scrollArea"); + if (!scrollArea) return; + + QWidget* scrollContent = new QWidget(); + QVBoxLayout* tracksLayout = new QVBoxLayout(scrollContent); + + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + QGroupBox* trackGroup = new QGroupBox(QString("Дорожка %1").arg(i + 1), scrollContent); + trackGroup->setProperty("trackIndex", i); + + QHBoxLayout* trackLayout = new QHBoxLayout(trackGroup); + + // Название дорожки + QLineEdit* nameEdit = new QLineEdit(wavWriter->getTrackName(i), trackGroup); + nameEdit->setProperty("trackIndex", i); + nameEdit->setObjectName(QString("trackNameEdit_%1").arg(i)); + nameEdit->setMaximumWidth(150); + connect(nameEdit, &QLineEdit::textChanged, this, &Yamitracker::onTrackNameChanged); + trackNameEdits.append(nameEdit); + + // Инструмент дорожки + QComboBox* instrumentBox = new QComboBox(trackGroup); + instrumentBox->setProperty("trackIndex", i); + instrumentBox->setObjectName(QString("trackInstrumentBox_%1").arg(i)); + instrumentBox->setMaximumWidth(150); + + QList instrumentIds = instruments.keys(); + std::sort(instrumentIds.begin(), instrumentIds.end()); + for (int id : instrumentIds) { + QString instrumentName = instruments[id]; + if (bassInstruments.contains(id)) { + instrumentName += " [БАС]"; + } + instrumentBox->addItem(instrumentName, id); + } + + // Устанавливаем текущий инструмент + int currentInstrument = wavWriter->getTrackInstrument(i); + int index = instrumentBox->findData(currentInstrument); + if (index >= 0) { + instrumentBox->setCurrentIndex(index); + } + + connect(instrumentBox, QOverload::of(&QComboBox::currentIndexChanged), + this, &Yamitracker::onTrackInstrumentChanged); + trackInstrumentComboBoxes.append(instrumentBox); + + // Громкость + QSlider* volumeSlider = new QSlider(Qt::Horizontal, trackGroup); + volumeSlider->setProperty("trackIndex", i); + volumeSlider->setObjectName(QString("trackVolumeSlider_%1").arg(i)); + volumeSlider->setRange(0, 200); + volumeSlider->setValue(static_cast(wavWriter->getTrackVolume(i) * 100)); + volumeSlider->setMaximumWidth(100); + connect(volumeSlider, &QSlider::valueChanged, this, &Yamitracker::onTrackVolumeChanged); + trackVolumeSliders.append(volumeSlider); + + QLabel* volumeLabel = new QLabel(QString("%1%").arg(volumeSlider->value()), trackGroup); + volumeLabel->setProperty("trackIndex", i); + volumeLabel->setObjectName(QString("trackVolumeLabel_%1").arg(i)); + volumeLabel->setMaximumWidth(40); + + // Кнопка Mute + QPushButton* muteButton = new QPushButton(wavWriter->isTrackMuted(i) ? "🔇" : "🔊", trackGroup); + muteButton->setProperty("trackIndex", i); + muteButton->setObjectName(QString("trackMuteButton_%1").arg(i)); + muteButton->setMaximumWidth(40); + connect(muteButton, &QPushButton::clicked, this, &Yamitracker::onMuteTrackClicked); + trackMuteButtons.append(muteButton); + + // Кнопка Solo + QPushButton* soloButton = new QPushButton("🎧", trackGroup); + soloButton->setProperty("trackIndex", i); + soloButton->setObjectName(QString("trackSoloButton_%1").arg(i)); + soloButton->setMaximumWidth(40); + connect(soloButton, &QPushButton::clicked, this, &Yamitracker::onSoloTrackClicked); + trackSoloButtons.append(soloButton); + + // Информация о дорожке + QLabel* infoLabel = new QLabel(QString("%1 нот").arg(wavWriter->getEventCount(i)), trackGroup); + infoLabel->setProperty("trackIndex", i); + infoLabel->setObjectName(QString("trackInfoLabel_%1").arg(i)); + + // Кнопка выбора для одновременного воспроизведения + QCheckBox* selectCheck = new QCheckBox("Воспр.", trackGroup); + selectCheck->setProperty("trackIndex", i); + selectCheck->setObjectName(QString("trackSelectCheck_%1").arg(i)); + selectCheck->setChecked(true); + + // Добавляем элементы в layout + trackLayout->addWidget(new QLabel("Название:", trackGroup)); + trackLayout->addWidget(nameEdit); + trackLayout->addWidget(new QLabel("Инструмент:", trackGroup)); + trackLayout->addWidget(instrumentBox); + trackLayout->addWidget(new QLabel("Громкость:", trackGroup)); + trackLayout->addWidget(volumeSlider); + trackLayout->addWidget(volumeLabel); + trackLayout->addWidget(muteButton); + trackLayout->addWidget(soloButton); + trackLayout->addWidget(selectCheck); + trackLayout->addWidget(infoLabel); + + tracksLayout->addWidget(trackGroup); + } + + // Добавляем растягивающийся спейсер в конец + tracksLayout->addStretch(); + + scrollArea->setWidget(scrollContent); + scrollArea->setWidgetResizable(true); +} + +void Yamitracker::updateTrackControls() +{ + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i < trackNameEdits.size()) { + trackNameEdits[i]->setText(wavWriter->getTrackName(i)); + } + + if (i < trackInstrumentComboBoxes.size()) { + int currentInstrument = wavWriter->getTrackInstrument(i); + int index = trackInstrumentComboBoxes[i]->findData(currentInstrument); + if (index >= 0) { + trackInstrumentComboBoxes[i]->setCurrentIndex(index); + } + } + + if (i < trackVolumeSliders.size()) { + trackVolumeSliders[i]->setValue(static_cast(wavWriter->getTrackVolume(i) * 100)); + } + + if (i < trackMuteButtons.size()) { + trackMuteButtons[i]->setText(wavWriter->isTrackMuted(i) ? "🔇" : "🔊"); + } + + if (i < trackSoloButtons.size()) { + // Обновляем текст кнопки solo при необходимости + } + + // Обновляем информацию о дорожке + QLabel* infoLabel = findChild(QString("trackInfoLabel_%1").arg(i)); + if (infoLabel) { + infoLabel->setText(QString("%1 нот").arg(wavWriter->getEventCount(i))); + } + + // Обновляем метку громкости + QLabel* volumeLabel = findChild(QString("trackVolumeLabel_%1").arg(i)); + if (volumeLabel) { + volumeLabel->setText(QString("%1%").arg(trackVolumeSliders[i]->value())); + } + } +} + +void Yamitracker::updateTrackInfo() +{ + int eventCount = wavWriter->getEventCount(currentTrack); + QString trackName = wavWriter->getTrackName(currentTrack); + ui->trackInfoLabel->setText(QString("%1: %2 нот").arg(trackName).arg(eventCount)); +} + +void Yamitracker::onCurrentTrackChanged(int index) +{ + currentTrack = trackComboBox->itemData(index).toInt(); + updateTrackInfo(); +} + +void Yamitracker::onPlaybackSpeedChanged(int value) +{ + double speedPercent = value / 100.0; + wavWriter->setPlaybackSpeed(speedPercent); + updateSpeedLabel(); +} + +void Yamitracker::onBassVolumeChanged(int value) +{ + double volumeMultiplier = value / 100.0; + wavWriter->setBassVolumeMultiplier(volumeMultiplier); + bassVolumeMultiplier = volumeMultiplier; + updateVolumeLabel(); +} + +void Yamitracker::updateSpeedLabel() +{ + if (speedLabel && playbackSpeedSlider) { + int speed = playbackSpeedSlider->value(); + speedLabel->setText(QString("Скорость: %1%").arg(speed)); + } +} + +void Yamitracker::updateVolumeLabel() +{ + if (volumeLabel && bassVolumeSlider) { + int volume = bassVolumeSlider->value(); + volumeLabel->setText(QString("Бас: %1%").arg(volume)); + } +} + +void Yamitracker::onSaveMusicFileClicked() +{ + QString defaultName = "music_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".s"; + QString filename = QFileDialog::getSaveFileName(this, "Сохранить музыкальный файл", defaultName, "ASM файлы (*.s);;Все файлы (*)"); + + if (!filename.isEmpty()) { + saveMusicFile(filename); + } +} + +void Yamitracker::saveMusicFile(const QString &filename) +{ + if (wavWriter->saveToMusicFile(filename)) { + ui->statusLabel->setText(QString("Музыкальный файл сохранен: %1").arg(filename)); + + // Показываем информацию о сохраненном файле + QFileInfo fileInfo(filename); + QString info = QString("Музыкальный файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Pently-style assembler") + .arg(filename) + .arg(fileInfo.size()); + QMessageBox::information(this, "Файл сохранен", info); + + // Открываем файл для просмотра + QDesktopServices::openUrl(QUrl::fromLocalFile(filename)); + } else { + ui->statusLabel->setText("Ошибка сохранения музыкального файла"); + QMessageBox::warning(this, "Ошибка", "Не удалось сохранить музыкальный файл"); + } +} + +void Yamitracker::onAddTrackClicked() +{ + // Создаем новую дорожку + int newTrack = -1; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (wavWriter->getEventCount(i) == 0 && wavWriter->getTrackName(i).startsWith("Дорожка")) { + newTrack = i; + break; + } + } + + if (newTrack == -1) { + QMessageBox::warning(this, "Ошибка", "Достигнуто максимальное количество дорожек"); + return; + } + + // Устанавливаем название новой дорожки + QString newName = QString("Дорожка %1").arg(newTrack + 1); + wavWriter->setTrackName(newTrack, newName); + + // Переключаемся на новую дорожку + trackComboBox->setCurrentIndex(newTrack); + currentTrack = newTrack; + + ui->statusLabel->setText(QString("Создана новая дорожка %1").arg(newTrack + 1)); + updateTrackControls(); + updateTrackInfo(); +} + +void Yamitracker::onRemoveTrackClicked() +{ + if (wavWriter->getEventCount(currentTrack) == 0) { + QMessageBox::warning(this, "Ошибка", "Дорожка уже пуста"); + return; + } + + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Удаление дорожки", + QString("Вы уверены, что хотите удалить дорожку %1?\nВсе данные будут потеряны.") + .arg(currentTrack + 1), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + wavWriter->clearTrack(currentTrack); + ui->statusLabel->setText(QString("Дорожка %1 очищена").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onClearTrackClicked() +{ + if (wavWriter->getEventCount(currentTrack) == 0) { + ui->statusLabel->setText("Дорожка уже пуста"); + return; + } + + wavWriter->clearTrack(currentTrack); + ui->statusLabel->setText(QString("Дорожка %1 очищена").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); +} + +void Yamitracker::onPlayTrackClicked() +{ + playTrack(currentTrack); +} + +void Yamitracker::onPlayAllTracksClicked() +{ + playAllTracks(); +} + +void Yamitracker::onStopPlaybackClicked() +{ + stopPlayback(); +} + +void Yamitracker::playTrack(int track) +{ + if (isPlayingBack) { + stopPlayback(); + } + + QByteArray audioData = wavWriter->getTrackAudioData(track, false); + if (audioData.isEmpty()) { + ui->statusLabel->setText(QString("Дорожка %1 пуста").arg(track + 1)); + return; + } + + // Настраиваем аудиовыход с высоким качеством + QAudioFormat format; + format.setSampleRate(44100); // Высокое качество + format.setChannelCount(2); // Стерео + format.setSampleSize(16); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(format)) { + format = info.nearestFormat(format); + } + + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + } + if (audioBuffer) { + delete audioBuffer; + } + + audioOutput = new QAudioOutput(format, this); + + // Конвертируем моно в стерео для лучшего качества + QByteArray stereoData = convertMonoToStereo(audioData); + audioBuffer = new QBuffer(this); + audioBuffer->setData(stereoData); + audioBuffer->open(QIODevice::ReadOnly); + + connect(audioOutput, &QAudioOutput::stateChanged, this, &Yamitracker::handleAudioStateChanged); + + currentPlaybackTrack = track; + isPlayingBack = true; + ui->statusLabel->setText(QString("Воспроизведение дорожки %1...").arg(track + 1)); + + audioOutput->start(audioBuffer); + + // Запускаем таймер для отслеживания завершения воспроизведения + playbackTimer->start(100); +} + +void Yamitracker::playAllTracks() +{ + if (isPlayingBack) { + stopPlayback(); + } + + // Получаем аудиоданные всех дорожек (уже микшированные) + QByteArray audioData = wavWriter->getAllTracksAudioData(); + if (audioData.isEmpty()) { + ui->statusLabel->setText("Нет данных для воспроизведения"); + return; + } + + // Настраиваем аудиовыход с высоким качеством + QAudioFormat format; + format.setSampleRate(44100); // Высокое качество + format.setChannelCount(2); // Стерео + format.setSampleSize(16); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(format)) { + format = info.nearestFormat(format); + } + + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + } + if (audioBuffer) { + delete audioBuffer; + } + + audioOutput = new QAudioOutput(format, this); + + // Конвертируем моно в стерео для лучшего качества + QByteArray stereoData = convertMonoToStereo(audioData); + audioBuffer = new QBuffer(this); + audioBuffer->setData(stereoData); + audioBuffer->open(QIODevice::ReadOnly); + + connect(audioOutput, &QAudioOutput::stateChanged, this, &Yamitracker::handleAudioStateChanged); + + currentPlaybackTrack = -1; // Все дорожки + isPlayingBack = true; + + // Получаем количество активных дорожек + int activeTracks = 0; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (!wavWriter->isTrackMuted(i) && wavWriter->getEventCount(i) > 0) { + activeTracks++; + } + } + + ui->statusLabel->setText(QString("Воспроизведение всех дорожек (%1 активных)...").arg(activeTracks)); + + audioOutput->start(audioBuffer); + + // Запускаем таймер для отслеживания завершения воспроизведения + playbackTimer->start(100); +} + +QByteArray Yamitracker::mixSelectedTracks(const QVector &trackIndices) +{ + // Создаем временный WAV writer для микширования + SimpleWavWriter tempWriter; + + // Копируем данные из выбранных дорожек + for (int trackIndex : trackIndices) { + // Копируем события из оригинальной дорожки + // Здесь нужно добавить логику копирования событий + // Временно используем getAllTracksAudioData + } + + return wavWriter->getAllTracksAudioData(); +} + +QByteArray Yamitracker::convertMonoToStereo(const QByteArray &monoData) +{ + // Конвертируем моно 16-битные данные в стерео + const qint16 *monoSamples = reinterpret_cast(monoData.constData()); + int monoCount = monoData.size() / sizeof(qint16); + + QByteArray stereoData(monoCount * 2 * sizeof(qint16), 0); + qint16 *stereoSamples = reinterpret_cast(stereoData.data()); + + for (int i = 0; i < monoCount; i++) { + stereoSamples[i * 2] = monoSamples[i]; // Левый канал + stereoSamples[i * 2 + 1] = monoSamples[i]; // Правый канал + } + + return stereoData; +} + +void Yamitracker::stopPlayback() +{ + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + audioOutput = nullptr; + } + + if (audioBuffer) { + audioBuffer->close(); + delete audioBuffer; + audioBuffer = nullptr; + } + + isPlayingBack = false; + currentPlaybackTrack = -1; + ui->statusLabel->setText("Воспроизведение остановлено"); + playbackTimer->stop(); +} + +void Yamitracker::handleAudioStateChanged(QAudio::State state) +{ + switch (state) { + case QAudio::IdleState: + // Воспроизведение завершено + onPlaybackFinished(); + break; + case QAudio::StoppedState: + if (audioOutput && audioOutput->error() != QAudio::NoError) { + ui->statusLabel->setText("Ошибка воспроизведения"); + } + break; + default: + break; + } +} + +void Yamitracker::onPlaybackFinished() +{ + isPlayingBack = false; + + if (currentPlaybackTrack >= 0) { + ui->statusLabel->setText(QString("Воспроизведение дорожки %1 завершено").arg(currentPlaybackTrack + 1)); + } else if (currentPlaybackTrack == -1) { + ui->statusLabel->setText("Воспроизведение всех дорожек завершено"); + } else { + ui->statusLabel->setText("Воспроизведение завершено"); + } + + currentPlaybackTrack = -1; + playbackTimer->stop(); +} + +void Yamitracker::onLoadWavToTrackClicked() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + if (wavWriter->loadWavToTrack(filename, currentTrack)) { + ui->statusLabel->setText(QString("WAV файл загружен в дорожку %1").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); + } else { + ui->statusLabel->setText("Ошибка загрузки WAV файла"); + } + } +} + +void Yamitracker::onCopyTrackClicked() +{ + bool ok; + int targetTrack = QInputDialog::getInt(this, "Копирование дорожки", + "Введите номер целевой дорожки (1-7):", + currentTrack + 1, 1, 7, 1, &ok); + + if (ok && targetTrack - 1 != currentTrack) { + wavWriter->copyTrack(currentTrack, targetTrack - 1); + ui->statusLabel->setText(QString("Дорожка %1 скопирована в дорожку %2") + .arg(currentTrack + 1).arg(targetTrack)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onMergeTracksClicked() +{ + bool ok; + int targetTrack = QInputDialog::getInt(this, "Объединение дорожек", + "Введите номер дорожки для объединения (1-7):", + currentTrack + 1, 1, 7, 1, &ok); + + if (ok && targetTrack - 1 != currentTrack) { + wavWriter->mergeTrack(currentTrack, targetTrack - 1); + ui->statusLabel->setText(QString("Дорожка %1 объединена с дорожкой %2") + .arg(currentTrack + 1).arg(targetTrack)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onMuteTrackClicked() +{ + QPushButton* button = qobject_cast(sender()); + if (!button) return; + + int track = button->property("trackIndex").toInt(); + bool muted = wavWriter->isTrackMuted(track); + wavWriter->muteTrack(track, !muted); + + button->setText(!muted ? "🔇" : "🔊"); + ui->statusLabel->setText(QString("Дорожка %1 %2") + .arg(track + 1) + .arg(!muted ? "заглушена" : "включена")); +} + +void Yamitracker::onSoloTrackClicked() +{ + QPushButton* button = qobject_cast(sender()); + if (!button) return; + + int soloTrack = button->property("trackIndex").toInt(); + + // Выключаем все дорожки кроме выбранной + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + wavWriter->muteTrack(i, i != soloTrack); + if (i < trackMuteButtons.size()) { + trackMuteButtons[i]->setText(i == soloTrack ? "🔊" : "🔇"); + } + } + + ui->statusLabel->setText(QString("Только дорожка %1 воспроизводится").arg(soloTrack + 1)); +} + +void Yamitracker::onTrackVolumeChanged(int value) +{ + QSlider* slider = qobject_cast(sender()); + if (!slider) return; + + int track = slider->property("trackIndex").toInt(); + wavWriter->setTrackVolume(track, value / 100.0); + + // Обновляем метку громкости + QLabel* volumeLabel = findChild(QString("trackVolumeLabel_%1").arg(track)); + if (volumeLabel) { + volumeLabel->setText(QString("%1%").arg(value)); + } +} + +void Yamitracker::onTrackNameChanged() +{ + QLineEdit* edit = qobject_cast(sender()); + if (!edit) return; + + int track = edit->property("trackIndex").toInt(); + wavWriter->setTrackName(track, edit->text()); + + // Обновляем комбобокс дорожек + if (track == currentTrack) { + trackComboBox->setItemText(trackComboBox->currentIndex(), edit->text()); + } +} + +void Yamitracker::onTrackInstrumentChanged(int index) +{ + QComboBox* combo = qobject_cast(sender()); + if (!combo) return; + + int track = combo->property("trackIndex").toInt(); + int instrument = combo->itemData(index).toInt(); + wavWriter->setTrackInstrument(track, instrument); + + ui->statusLabel->setText(QString("Инструмент дорожки %1 изменен на %2") + .arg(track + 1) + .arg(instruments.value(instrument, "Неизвестный"))); +} + +void Yamitracker::initializeKeyButtons() +{ + QList whiteKeys = { + ui->key_C1, ui->key_D1, ui->key_E1, ui->key_F1, ui->key_G1, ui->key_A1, ui->key_B1, + ui->key_C2, ui->key_D2, ui->key_E2, ui->key_F2, ui->key_G2, ui->key_A2, ui->key_B2, + ui->key_C3, ui->key_D3, ui->key_E3, ui->key_F3, ui->key_G3, ui->key_A3, ui->key_B3, + ui->key_C4, ui->key_D4, ui->key_E4, ui->key_F4, ui->key_G4, ui->key_A4, ui->key_B4, + ui->key_C5, ui->key_D5, ui->key_E5, ui->key_F5, ui->key_G5, ui->key_A5, ui->key_B5, + ui->key_C6 + }; + + for (QPushButton *key : whiteKeys) { + key->setProperty("whiteKey", true); + keyButtons[key->text()] = key; + } + + QList blackKeys = { + ui->key_Cs1, ui->key_Ds1, ui->key_Fs1, ui->key_Gs1, ui->key_As1, + ui->key_Cs2, ui->key_Ds2, ui->key_Fs2, ui->key_Gs2, ui->key_As2, + ui->key_Cs3, ui->key_Ds3, ui->key_Fs3, ui->key_Gs3, ui->key_As3, + ui->key_Cs4, ui->key_Ds4, ui->key_Fs4, ui->key_Gs4, ui->key_As4, + ui->key_Cs5, ui->key_Ds5, ui->key_Fs5, ui->key_Gs5, ui->key_As5 + }; + + for (QPushButton *key : blackKeys) { + key->setProperty("blackKey", true); + keyButtons[key->text()] = key; + } +} + +QString Yamitracker::getInstrumentName(int program) +{ + return instruments.contains(program) ? instruments[program] : QString("Unknown (%1)").arg(program); +} + +void Yamitracker::onNoteOnReceived(const QString &data, int velocity) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.insert(note); + highlightKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + int volume = (velocity * 100) / 127; + ui->volumeBar->setValue(volume); + + if (isGlobalRecording) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - globalRecordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + noteStartTimes[data] = currentTime; + + // Записываем начало ноты в текущую дорожку с относительным временем + int currentInstrument = instrumentComboBox->currentData().toInt(); + wavWriter->addNote(currentTrack, currentTime, noteNumber, velocity, 0.1, currentInstrument); + + // Обновляем информацию о дорожке + updateTrackInfo(); + updateTrackControls(); + } + } +} + +void Yamitracker::onNoteOffReceived(const QString &data) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.remove(note); + clearKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + if (currentlyPressedKeys.isEmpty()) { + ui->volumeBar->setValue(0); + } + + if (isGlobalRecording && noteStartTimes.contains(data)) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - globalRecordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + double noteStartTime = noteStartTimes[data]; + double duration = currentTime - noteStartTime; + + int noteVelocity = 100; + + // Обновляем длительность ноты (в реальном приложении нужно обновлять существующую ноту) + int currentInstrument = instrumentComboBox->currentData().toInt(); + wavWriter->addNote(currentTrack, noteStartTime, noteNumber, noteVelocity, duration, currentInstrument); + + noteStartTimes.remove(data); + + // Обновляем информацию о дорожке + updateTrackInfo(); + updateTrackControls(); + } + } +} + +void Yamitracker::onConnectionStatusChanged(bool connected) +{ + isConnected = connected; + if (connected) { + ui->statusLabel->setText("Статус: Подключено к синтезатору"); + } else { + ui->statusLabel->setText("Статус: Отключено (переподключение...)"); + } +} + +void Yamitracker::attemptReconnect() +{ + if (!isConnected && (!serialReader || !serialReader->isRunning())) { + qDebug() << "Attempting to reconnect..."; + startSerialReader(); + } +} + +void Yamitracker::onError(const QString &message) +{ + // НЕ показываем всплывающее окно с ошибкой подключения + // Просто обновляем статус в строке состояния + ui->statusLabel->setText("Ошибка: " + message); + + // Показываем окно только для критических ошибок (не связанных с подключением) + if (!message.contains("Cannot open", Qt::CaseInsensitive) && + !message.contains("Connection lost", Qt::CaseInsensitive) && + !message.contains("reconnect", Qt::CaseInsensitive)) { + QMessageBox::warning(this, "Ошибка", message); + } +} + +void Yamitracker::onPlayClicked() +{ + // Получаем выбранный инструмент + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Запись с синтезатора [БАС x%1]...").arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText("Запись с синтезатора..."); + } + + noteStartTimes.clear(); + currentlyPressedKeys.clear(); + clearAllHighlights(); + + // Если это первая запись в сессии, начинаем глобальную запись + if (!isGlobalRecording) { + globalRecordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + isGlobalRecording = true; + qDebug() << "Начало глобальной записи. Все дорожки будут синхронизированы."; + } + + // Начинаем запись с высоким качеством + if (wavWriter->startRecording(44100)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started WAV recording from synthesizer, track:" << currentTrack + << "sample rate: 44100, instrument:" << currentInstrument; + if (isBassInstrument) { + qDebug() << "Bass instrument detected - volume will be increased"; + } + + // Активируем кнопку паузы + ui->pauseButton->setEnabled(true); + } +} + +void Yamitracker::onPauseClicked() +{ + if (wavWriter->isRecording()) { + if (wavWriter->isPaused()) { + wavWriter->resumeRecording(); + ui->statusLabel->setText("Запись возобновлена..."); + ui->pauseButton->setText("⏸ Пауза"); + } else { + wavWriter->pauseRecording(); + ui->statusLabel->setText("Запись приостановлена"); + ui->pauseButton->setText("▶ Продолжить"); + } + } +} + +void Yamitracker::onStopClicked() +{ + ui->statusLabel->setText("Запись остановлена"); + + clearAllHighlights(); + currentlyPressedKeys.clear(); + ui->keysInfoLabel->setText("Нажато клавиш: 0"); + ui->volumeBar->setValue(0); + + if (wavWriter->isRecording()) { + wavWriter->stopRecording(); + + // Деактивируем кнопку паузы + ui->pauseButton->setEnabled(false); + ui->pauseButton->setText("⏸ Пауза"); + + // Предлагаем сохранить запись, если это последняя дорожка + bool hasMoreTracks = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i != currentTrack && wavWriter->getEventCount(i) == 0) { + hasMoreTracks = true; + break; + } + } + + if (!hasMoreTracks) { + onSaveRecordingClicked(); + } + } + + noteStartTimes.clear(); +} + +void Yamitracker::onSaveRecordingClicked() +{ + QString defaultName = "recording_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".wav"; + QString filename = QFileDialog::getSaveFileName(this, "Сохранить запись", defaultName, "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + saveWavFile(filename); + + // Сбрасываем глобальную запись + isGlobalRecording = false; + globalRecordingStartTime = 0; + } +} + +void Yamitracker::saveWavFile(const QString &filename) +{ + // Проверяем, есть ли данные для сохранения + bool hasData = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (wavWriter->getEventCount(i) > 0) { + hasData = true; + break; + } + } + + if (!hasData) { + QMessageBox::warning(this, "Ошибка", + "Нет данных для сохранения. Запишите хотя бы одну ноту на любой дорожке."); + return; + } + + if (wavWriter->saveToFile(filename)) { + lastRecordedWavFile = filename; + ui->statusLabel->setText(QString("Сохранено: %1").arg(filename)); + + // Показываем информацию о сохраненном файле + QFileInfo fileInfo(filename); + QString info = QString("WAV файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: 44100 Гц, 16 бит, моно\n" + "Все дорожки микшированы для параллельного воспроизведения") + .arg(filename) + .arg(fileInfo.size()); + QMessageBox::information(this, "Файл сохранен", info); + + // Активируем кнопку конвертации + ui->convertButton->setEnabled(true); + ui->saveMusicButton->setEnabled(true); + + // Предлагаем воспроизвести файл + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Запись завершена", + QString("WAV файл сохранен:\n%1\n\nВоспроизвести файл?").arg(filename), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + playWavExternal(lastRecordedWavFile); + } + } else { + ui->statusLabel->setText("Ошибка сохранения WAV файла"); + QMessageBox::warning(this, "Ошибка", + "Не удалось сохранить WAV файл. Возможно:\n" + "1. Нет данных для записи\n" + "2. Недостаточно прав для записи\n" + "3. Диск переполнен"); + } +} + +void Yamitracker::onConvertToBrrClicked() +{ + if (lastRecordedWavFile.isEmpty() || !QFile::exists(lastRecordedWavFile)) { + onSelectFileForConversion(); + return; + } + + QString baseName = QFileInfo(lastRecordedWavFile).completeBaseName(); + QString brrFile = QFileDialog::getSaveFileName(this, "Сохранить BRR файл", baseName + ".brr", "BRR файлы (*.brr)"); + + if (brrFile.isEmpty()) return; + + ui->statusLabel->setText("Конвертация WAV -> BRR..."); + QApplication::processEvents(); + + if (brrConverter->convertWavToBrr(lastRecordedWavFile, brrFile)) { + ui->statusLabel->setText(QString("Конвертация завершена: %1").arg(brrFile)); + + QFileInfo brrInfo(brrFile); + if (brrInfo.exists()) { + QString info = QString("BRR файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Nintendo SNES ADPCM") + .arg(brrFile) + .arg(brrInfo.size()); + QMessageBox::information(this, "Конвертация завершена", info); + } + } else { + ui->statusLabel->setText("Ошибка конвертации WAV -> BRR"); + QMessageBox::warning(this, "Ошибка", "Не удалось преобразовать WAV в BRR формат"); + } +} + +void Yamitracker::onSelectFileForConversion() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл для конвертации", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + lastRecordedWavFile = filename; + onConvertToBrrClicked(); + } +} + +void Yamitracker::onSelectFileForPlayback() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл для воспроизведения", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + playWavExternal(filename); + } +} + +void Yamitracker::playWavExternal(const QString &wavFile) +{ + QStringList players = { + "aplay", "paplay", "play", "ffplay" + }; + + QString player; + + for (const QString &p : players) { + QProcess checkProcess; + checkProcess.start("which", QStringList() << p); + checkProcess.waitForFinished(); + if (checkProcess.exitCode() == 0) { + player = p; + break; + } + } + + if (player.isEmpty()) { + QMessageBox::warning(this, "Воспроизведение", + "Не найден аудиоплеер. Установите один из:\n" + "aplay, paplay, sox или ffmpeg"); + return; + } + + ui->statusLabel->setText("Воспроизведение WAV файла..."); + + audioPlayerProcess->start(player, QStringList() << wavFile); + + if (!audioPlayerProcess->waitForStarted(3000)) { + ui->statusLabel->setText("Не удалось запустить аудиоплеер"); + QMessageBox::warning(this, "Ошибка", + QString("Не удалось запустить %1. Убедитесь, что он установлен.").arg(player)); + } +} + +void Yamitracker::scanMidiFiles() +{ + QDir currentDir = QDir::current(); + QStringList filters; + filters << "*.txt"; + QStringList files = currentDir.entryList(filters, QDir::Files); + + midiFilesList->clear(); + for (const QString &file : files) { + // Проверяем, является ли файл MIDI логом + if (file.contains("midi_log_") || + file.contains("CrandPno") || + file.contains("BritePno") || + file.contains("Harpsi") || + file.contains("FngrBass") || + file.contains("Ovrdrive") || + file.contains("Bright")) { + + QFileInfo fileInfo(file); + QListWidgetItem *item = new QListWidgetItem(fileInfo.fileName()); + item->setData(Qt::UserRole, fileInfo.absoluteFilePath()); + midiFilesList->addItem(item); + } + } + + if (midiFilesList->count() == 0) { + QListWidgetItem *item = new QListWidgetItem("MIDI файлы не найдены"); + item->setFlags(item->flags() & ~Qt::ItemIsSelectable); + midiFilesList->addItem(item); + } +} + +void Yamitracker::onLoadMidiFileClicked() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите MIDI лог файл", "", "Текстовые файлы (*.txt);;Все файлы (*)"); + + if (!filename.isEmpty()) { + loadMidiFile(filename); + } +} + +void Yamitracker::loadMidiFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QMessageBox::warning(this, "Ошибка", "Не удалось открыть файл: " + filename); + return; + } + + QTextStream in(&file); + QString content = in.readAll(); + file.close(); + + currentMidiFilePath = filename; + parseMidiLog(content); + + ui->statusLabel->setText(QString("Загружен файл: %1").arg(QFileInfo(filename).fileName())); +} + +void Yamitracker::parseMidiLog(const QString &content) +{ + QStringList lines = content.split('\n'); + int program = 1; // По умолчанию + + for (const QString &line : lines) { + if (line.contains("PROGRAM_CHANGE: Program=")) { + // Извлекаем номер программы + QRegularExpression re("Program=(\\d+)"); + QRegularExpressionMatch match = re.match(line); + if (match.hasMatch()) { + program = match.captured(1).toInt(); + // Обновляем выбранный инструмент в комбобоксе + int index = instrumentComboBox->findData(program); + if (index >= 0) { + instrumentComboBox->setCurrentIndex(index); + } + } + } + } + + // Показываем информацию о загруженном файле + QString info = QString("Файл загружен\nИнструмент: %1\nСтрок: %2") + .arg(getInstrumentName(program)) + .arg(lines.count()); + + QMessageBox::information(this, "MIDI файл загружен", info); +} + +void Yamitracker::onPlayMidiFileClicked() +{ + if (currentMidiFilePath.isEmpty()) { + QMessageBox::information(this, "Воспроизведение", "Сначала загрузите MIDI файл"); + return; + } + + // Проверяем, является ли инструмент басовым + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Симуляция MIDI файла [БАС x%1]...").arg(bassVolumeMultiplier)); + QApplication::processEvents(); + + QMessageBox::information(this, "Симуляция MIDI (БАС)", + QString("Симуляция воспроизведения MIDI файла с БАС-инструментом:\n" + "Файл: %1\n" + "Инструмент: %2\n" + "Громкость усилена в %3 раза\n\n" + "В реальной версии бас будет звучать громче.") + .arg(QFileInfo(currentMidiFilePath).fileName()) + .arg(getInstrumentName(currentInstrument)) + .arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText("Симуляция MIDI файла..."); + QApplication::processEvents(); + + QMessageBox::information(this, "Симуляция MIDI", + QString("Симуляция воспроизведения MIDI файла:\n%1\n\nВ реальной версии здесь будет воспроизведение нот.") + .arg(QFileInfo(currentMidiFilePath).fileName())); + } + + ui->statusLabel->setText("Симуляция завершена"); +} + +void Yamitracker::simulateNote(int note, int velocity, double duration) +{ + if (wavWriter->isRecording()) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + wavWriter->addNote(currentTrack, currentTime, note, velocity, duration); + } +} + +void Yamitracker::onSelectedMidiFileChanged() +{ + QList selectedItems = midiFilesList->selectedItems(); + if (!selectedItems.isEmpty()) { + QString filePath = selectedItems.first()->data(Qt::UserRole).toString(); + loadMidiFile(filePath); + } +} + +void Yamitracker::onRecordFromMidiFile() +{ + if (currentMidiFilePath.isEmpty()) { + QMessageBox::information(this, "Запись", "Сначала загрузите MIDI файл"); + return; + } + + // Получаем выбранный инструмент + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Запись из MIDI файла [БАС x%1]...").arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText(QString("Запись из MIDI файла [Инструмент: %1]...").arg(getInstrumentName(currentInstrument))); + } + + // Если это первая запись в сессии, начинаем глобальную запись + if (!isGlobalRecording) { + globalRecordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + isGlobalRecording = true; + } + + // Начинаем запись с высоким качеством + if (wavWriter->startRecording(44100)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started WAV recording from MIDI file, instrument:" << currentInstrument << "track:" << currentTrack; + + // Генерируем мелодию в зависимости от инструмента + generateInstrumentMelody(currentInstrument); + + wavWriter->stopRecording(); + + // Предлагаем сохранить, если это последняя дорожка + bool hasMoreTracks = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i != currentTrack && wavWriter->getEventCount(i) == 0) { + hasMoreTracks = true; + break; + } + } + + if (!hasMoreTracks) { + onSaveRecordingClicked(); + } + } +} + +void Yamitracker::generateInstrumentMelody(int instrument) +{ + double volumeMultiplier = bassInstruments.contains(instrument) ? bassVolumeMultiplier : 1.0; + + // Время относительно глобального начала записи + double currentGlobalTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - globalRecordingStartTime; + + // Разные мелодии для разных инструментов + switch (instrument) { + case 1: // CrandPno (Гранд-пианино) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 1.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.5, 64, 80 * volumeMultiplier, 0.5, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 67, 90 * volumeMultiplier, 1.0, instrument); // G4 + wavWriter->addNote(currentTrack, currentGlobalTime + 2.0, 72, 100 * volumeMultiplier, 1.0, instrument); // C5 + break; + + case 2: // BritePno (Яркое пианино) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 0.3, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.1, 64, 90 * volumeMultiplier, 0.3, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.2, 67, 80 * volumeMultiplier, 0.3, instrument); // G4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 72, 100 * volumeMultiplier, 0.5, instrument); // C5 + break; + + case 3: // Harpsi (Клавесин) + case 6: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 0.1, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.1, 62, 90 * volumeMultiplier, 0.1, instrument); // D4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.2, 64, 100 * volumeMultiplier, 0.1, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 65, 90 * volumeMultiplier, 0.1, instrument); // F4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.4, 67, 100 * volumeMultiplier, 0.2, instrument); // G4 + break; + + case 28: // FngrBass (Фингер-бас) + case 33: + case 39: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 36, 120 * volumeMultiplier, 1.0, instrument); // C2 (бас) + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 40, 100 * volumeMultiplier, 0.5, instrument); // E2 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.5, 43, 110 * volumeMultiplier, 1.0, instrument); // G2 + wavWriter->addNote(currentTrack, currentGlobalTime + 2.5, 48, 100 * volumeMultiplier, 0.5, instrument); // C3 + break; + + case 40: // SlapBas (Слэп-бас) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 36, 150 * volumeMultiplier, 0.2, instrument); // C2 (щелчок) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 40, 120 * volumeMultiplier, 0.3, instrument); // E2 (пул) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.7, 43, 140 * volumeMultiplier, 0.2, instrument); // G2 (щелчок) + break; + + case 29: // Ovrdrive (Овердрайв-гитара) + case 37: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 40, 100 * volumeMultiplier, 1.5, instrument); // E2 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.5, 43, 90 * volumeMultiplier, 1.0, instrument); // G2 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 45, 100 * volumeMultiplier, 0.5, instrument); // A2 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.5, 47, 110 * volumeMultiplier, 1.0, instrument); // B2 + break; + + case 48: // String (Струнные) + case 49: // SlowStr (Медленные струнные) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 80 * volumeMultiplier, 2.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.5, 64, 70 * volumeMultiplier, 1.5, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 67, 75 * volumeMultiplier, 2.0, instrument); // G4 + break; + + case 81: // LeadSx (Саксофон) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 65, 90 * volumeMultiplier, 1.5, instrument); // F4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 67, 85 * volumeMultiplier, 0.5, instrument); // G4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.8, 69, 95 * volumeMultiplier, 2.0, instrument); // A4 + break; + + case 95: // Bright (Яркий звук) + case 96: + case 100: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 72, 100 * volumeMultiplier, 0.2, instrument); // C5 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.2, 76, 90 * volumeMultiplier, 0.2, instrument); // E5 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.4, 79, 100 * volumeMultiplier, 0.2, instrument); // G5 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.6, 84, 110 * volumeMultiplier, 0.3, instrument); // C6 + break; + + default: + // Стандартная мелодия для неизвестных инструментов + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 1.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 64, 80 * volumeMultiplier, 1.0, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 2.0, 67, 90 * volumeMultiplier, 1.0, instrument); // G4 + break; + } +} + +void Yamitracker::highlightKey(const QString ¬e) +{ + if (keyButtons.contains(note)) { + QPushButton *key = keyButtons[note]; + key->setStyleSheet("background-color: #ff4444; color: white; border: 2px solid red;"); + } +} + +void Yamitracker::clearKey(const QString ¬e) +{ + if (!keyButtons.contains(note)) return; + QPushButton *key = keyButtons[note]; + if (key->property("whiteKey").toBool()) + key->setStyleSheet("background-color: white; color: black; border: 1px solid #ccc;"); + else + key->setStyleSheet("background-color: black; color: white;"); +} + +void Yamitracker::clearAllHighlights() +{ + for (auto i = keyButtons.begin(); i != keyButtons.end(); ++i) { + clearKey(i.key()); + } +} + +void Yamitracker::clearStatusMessage() +{ + ui->statusLabel->setText("Статус: Готов"); +} + +void Yamitracker::initializeDeviceDetection() +{ + deviceLabel->setText("Устройство: Поиск..."); +} + +void Yamitracker::autoDetectAndConnect() +{ + QString device = "/dev/dmmidi1"; + serialReader->setDevice(device); + deviceLabel->setText(QString("Устройство: %1").arg(device)); + qDebug() << "Using device:" << device; + + startSerialReader(); +} + +void Yamitracker::onDeviceInfoReceived(const QString &manufacturer, const QString &model) +{ + deviceLabel->setText(QString("Устройство: %1 %2").arg(manufacturer, model)); + + setWindowTitle(QString("Yamitracker - %1 %2").arg(manufacturer, model)); +} + +void Yamitracker::onRefreshDevicesClicked() +{ + deviceLabel->setText("Устройство: Обновление..."); + + autoDetectAndConnect(); +} + +void Yamitracker::startSerialReader() +{ + if (serialReader && !serialReader->isRunning()) { + serialReader->start(); + } +} + +Yamitracker::~Yamitracker() +{ + stopPlayback(); + + if (serialReader) { + serialReader->stop(); + if (serialReader->isRunning()) { + serialReader->terminate(); + serialReader->wait(); + } + } + + delete ui; +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/yamitracker.h b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/yamitracker.h new file mode 100644 index 0000000..c1273ec --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/yamitracker.h @@ -0,0 +1,209 @@ +// yamitracker.h +#ifndef YAMITRACKER_H +#define YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "simplewavwriter.h" +#include "brrconverter.h" + +QT_BEGIN_NAMESPACE +namespace Ui { class Yamitracker; } +QT_END_NAMESPACE + +class SerialReader : public QThread +{ + Q_OBJECT + +public: + SerialReader(QObject *parent = nullptr) : QThread(parent), shouldStop(false) {} + void setDevice(const QString &device) { currentDevice = device; } + void stop() { shouldStop = true; } + +signals: + void noteOnReceived(const QString &data, int velocity); + void noteOffReceived(const QString &data); + void error(const QString &message); + void connectionStatusChanged(bool connected); + void deviceInfoReceived(const QString &manufacturer, const QString &model); + +protected: + void run() override; + +private: + QString currentDevice; + bool shouldStop; +}; + +class Yamitracker : public QMainWindow +{ + Q_OBJECT + +public: + Yamitracker(QWidget *parent = nullptr); + ~Yamitracker(); + +private slots: + // Основные слоты + void onPlayClicked(); + void onPauseClicked(); + void onStopClicked(); + void onSaveRecordingClicked(); + void onConvertToBrrClicked(); + void onSaveMusicFileClicked(); + + // Слоты для устройств и MIDI + void onRefreshDevicesClicked(); + void onLoadMidiFileClicked(); + void onPlayMidiFileClicked(); + void onRecordFromMidiFile(); + void onSelectedMidiFileChanged(); + + // Слоты для файлов + void onSelectFileForConversion(); + void onSelectFileForPlayback(); + + // Слоты для клавиш и устройств + void onNoteOnReceived(const QString &data, int velocity); + void onNoteOffReceived(const QString &data); + void onConnectionStatusChanged(bool connected); + void onError(const QString &message); + void onDeviceInfoReceived(const QString &manufacturer, const QString &model); + + // Слоты для управления дорожками + void onCurrentTrackChanged(int index); + void onAddTrackClicked(); + void onRemoveTrackClicked(); + void onClearTrackClicked(); + void onCopyTrackClicked(); + void onMergeTracksClicked(); + void onLoadWavToTrackClicked(); + + // Слоты для воспроизведения + void onPlayTrackClicked(); + void onPlayAllTracksClicked(); + void onStopPlaybackClicked(); + void onPlaybackFinished(); + + // Слоты для управления элементами дорожек + void onMuteTrackClicked(); + void onSoloTrackClicked(); + void onTrackVolumeChanged(int value); + void onTrackNameChanged(); + void onTrackInstrumentChanged(int index); + + // Слоты для эффектов + void onPlaybackSpeedChanged(int value); + void onBassVolumeChanged(int value); + + // Вспомогательные слоты + void attemptReconnect(); + void handleAudioStateChanged(QAudio::State state); + void clearStatusMessage(); + +private: + Ui::Yamitracker *ui; + SerialReader *serialReader; + QTimer *reconnectTimer; + bool isConnected; + SimpleWavWriter *wavWriter; + double recordingStartTime; + BrrConverter *brrConverter; + QProcess *audioPlayerProcess; + QTimer *playbackTimer; + + // Элементы UI + QSlider *playbackSpeedSlider; + QSlider *bassVolumeSlider; + QLabel *speedLabel; + QLabel *volumeLabel; + QLabel *deviceLabel; + QPushButton *refreshDevicesButton; + QListWidget *midiFilesList; + QComboBox *instrumentComboBox; + QComboBox *trackComboBox; + + // Аудио воспроизведение + QAudioOutput *audioOutput; + QBuffer *audioBuffer; + bool isPlayingBack; + int currentPlaybackTrack; + int currentTrack; + + // Данные + QString lastRecordedWavFile; + QString currentMidiFilePath; + QHash keyButtons; + QSet currentlyPressedKeys; + QHash noteStartTimes; + + // Управление дорожками + QVector trackNameEdits; + QVector trackInstrumentComboBoxes; + QVector trackVolumeSliders; + QVector trackVolumeLabels; + QVector trackMuteButtons; + QVector trackSoloButtons; + + // Вспомогательные методы + void initializeTracks(); + void initializeTrackControls(); + void updateTrackControls(); + void updateTrackInfo(); + void updateSpeedLabel(); + void updateVolumeLabel(); + + void initializeKeyButtons(); + void initializeDeviceDetection(); + void autoDetectAndConnect(); + void startSerialReader(); + + void highlightKey(const QString ¬e); + void clearKey(const QString ¬e); + void clearAllHighlights(); + + void scanMidiFiles(); + void loadMidiFile(const QString &filename); + void parseMidiLog(const QString &content); + void generateInstrumentMelody(int instrument); + void simulateNote(int note, int velocity, double duration); + + void saveWavFile(const QString &filename); + void saveMusicFile(const QString &filename); + void playWavExternal(const QString &wavFile); + void playTrack(int track); + void playAllTracks(); + void stopPlayback(); + + QByteArray mixSelectedTracks(const QVector &trackIndices); + QByteArray convertMonoToStereo(const QByteArray &monoData); + + QString getInstrumentName(int program); + + // Карта инструментов + QMap instruments = { + {1, "CrandPno"}, {2, "BritePno"}, {3, "Harpsi"}, {6, "Harpsi2"}, + {28, "FngrBass"}, {33, "FngrBass2"}, {39, "FngrBass3"}, {40, "SlapBas"}, + {29, "Ovrdrive"}, {37, "Ovrdrive2"}, {38, "DstGtr"}, + {48, "String"}, {49, "SlowStr"}, {81, "LeadSx"}, + {95, "Bright"}, {96, "Bright2"}, {100, "Bright3"} + }; + + // Флаг для отслеживания относительного времени записи + double globalRecordingStartTime; + bool isGlobalRecording; +}; + +#endif // YAMITRACKER_H \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/yamitracker.ui b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/yamitracker.ui new file mode 100644 index 0000000..c447570 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5.beta/Yamitracker4/Yamitracker/yamitracker.ui @@ -0,0 +1,1000 @@ + + + Yamitracker + + + + 0 + 0 + 1400 + 1000 + + + + Yamaha PSR-E333 Monitor - Multitrack Recording + + + + + + + + + Статус: Готов + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Устройство: Не подключено + + + + + + + + + + + Нажато клавиш: 0 + + + + + + + 0 + + + + + + + + + Управление записью + + + + + + ▶ Запись с синтезатора + + + + + + + ⏸ Пауза + + + false + + + + + + + ⏹ Стоп + + + + + + + 💾 Сохранить запись + + + + + + + 🔄 Конвертировать в BRR + + + + + + + 🎵 Сохранить музыку (Pently) + + + + + + + + + + Управление воспроизведением + + + + + + ▶ Текущая дорожка + + + + + + + ▶▶ Все дорожки + + + + + + + ⏹ Стоп воспроизведение + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 📂 Загрузить WAV в дорожку + + + + + + + + + + Управление дорожками + + + + + + Текущая дорожка: + + + + + + + + + + ➕ Новая дорожка + + + + + + + 🗑 Удалить дорожку + + + + + + + 🗑 Очистить дорожку + + + + + + + 📋 Копировать дорожку + + + + + + + 🔀 Объединить дорожки + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Дорожка 1: 0 нот + + + + + + + + + + true + + + + + 0 + 0 + 1380 + 300 + + + + + + + Панель управления дорожками: + + + + + + + + + + + Работа с MIDI файлами + + + + + + + + Инструмент: + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Скорость: 100% + + + + + + + Qt::Horizontal + + + 50 + + + 200 + + + 100 + + + + + + + Бас: 200% + + + + + + + Qt::Horizontal + + + 100 + + + 400 + + + 200 + + + + + + + 🔃 Обновить устройства + + + + + + + + + + + 📂 Загрузить MIDI файл + + + + + + + ▶ Воспроизвести MIDI + + + + + + + ● Записать из MIDI + + + + + + + 📁 Выбрать файл для конвертации + + + + + + + ▶ Воспроизвести WAV + + + + + + + + + Доступные MIDI файлы: + + + + + + + + + + + + + + + + + + + C1 + + + + + + + D1 + + + + + + + E1 + + + + + + + F1 + + + + + + + G1 + + + + + + + A1 + + + + + + + B1 + + + + + + + C2 + + + + + + + D2 + + + + + + + E2 + + + + + + + F2 + + + + + + + G2 + + + + + + + A2 + + + + + + + B2 + + + + + + + C3 + + + + + + + D3 + + + + + + + E3 + + + + + + + F3 + + + + + + + G3 + + + + + + + A3 + + + + + + + B3 + + + + + + + C4 + + + + + + + D4 + + + + + + + E4 + + + + + + + F4 + + + + + + + G4 + + + + + + + A4 + + + + + + + B4 + + + + + + + C5 + + + + + + + D5 + + + + + + + E5 + + + + + + + F5 + + + + + + + G5 + + + + + + + A5 + + + + + + + B5 + + + + + + + C6 + + + + + + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#1 + + + + + + + D#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#1 + + + + + + + G#1 + + + + + + + A#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#2 + + + + + + + D#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#2 + + + + + + + G#2 + + + + + + + A#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#3 + + + + + + + D#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#3 + + + + + + + G#3 + + + + + + + A#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#4 + + + + + + + D#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#4 + + + + + + + G#4 + + + + + + + A#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#5 + + + + + + + D#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#5 + + + + + + + G#5 + + + + + + + A#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user new file mode 100644 index 0000000..590a683 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user @@ -0,0 +1,239 @@ + + + + + + EnvironmentId + {20954cb6-51c1-46d5-a200-1db750c36a2d} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + true + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + + Nim + + NimGlobal + + + 3 + UTF-8 + false + 4 + false + 0 + 80 + true + true + 1 + 0 + false + true + false + 2 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + false + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 4 + true + + + + true + + + true + true + + + + + + + 0 + + + + ProjectExplorer.Project.Target.0 + + Desktop + true + Desktop Qt 6.10.2 + Desktop Qt 6.10.2 + qt.qt6.6102.linux_gcc_64_kit + 0 + 0 + 0 + + 0 + /home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug + /home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + Qt4ProjectManager.Qt4RunConfiguration: + /home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/Yamitracker.pro + false + + true + true + true + %{RunConfig:Executable:Path} + + 1 + 2 + + 1 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + Qt4ProjectManager.Qt4RunConfiguration: + /home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/Yamitracker.pro + false + + true + true + true + %{RunConfig:Executable:Path} + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user.6395eb3 b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user.6395eb3 new file mode 100644 index 0000000..fcac744 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/.qtcreator/Yamitracker.pro.user.6395eb3 @@ -0,0 +1,263 @@ + + + + + + EnvironmentId + {6395eb3f-fc2a-4125-bb4f-a9c51f02958b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {0acbc229-4897-4c6e-a23f-ae7c45394b0c} + 0 + 0 + 0 + + 0 + /home/acer1117/build-Yamitracker-Desktop-Debug + /home/acer1117/build-Yamitracker-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/acer1117/build-Yamitracker-Desktop-Release + /home/acer1117/build-Yamitracker-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/acer1117/build-Yamitracker-Desktop-Profile + /home/acer1117/build-Yamitracker-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro + /home/acer1117/Yamitracker/Yamitracker.pro + false + true + true + false + true + /home/acer1117/build-Yamitracker-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/Yamitracker.pro b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/Yamitracker.pro new file mode 100644 index 0000000..d5d042f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/Yamitracker.pro @@ -0,0 +1,22 @@ +QT += core gui widgets multimedia + +CONFIG += c++17 + +SOURCES += \ + main.cpp \ + yamitracker.cpp \ + simplewavwriter.cpp \ + brrconverter.cpp + +HEADERS += \ + yamitracker.h \ + simplewavwriter.h \ + brrconverter.h + +FORMS += \ + yamitracker.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/Yamitracker.pro.user b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/Yamitracker.pro.user new file mode 100644 index 0000000..590a683 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/Yamitracker.pro.user @@ -0,0 +1,239 @@ + + + + + + EnvironmentId + {20954cb6-51c1-46d5-a200-1db750c36a2d} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + true + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + + Nim + + NimGlobal + + + 3 + UTF-8 + false + 4 + false + 0 + 80 + true + true + 1 + 0 + false + true + false + 2 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + false + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 4 + true + + + + true + + + true + true + + + + + + + 0 + + + + ProjectExplorer.Project.Target.0 + + Desktop + true + Desktop Qt 6.10.2 + Desktop Qt 6.10.2 + qt.qt6.6102.linux_gcc_64_kit + 0 + 0 + 0 + + 0 + /home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug + /home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + Qt4ProjectManager.Qt4RunConfiguration: + /home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/Yamitracker.pro + false + + true + true + true + %{RunConfig:Executable:Path} + + 1 + 2 + + 1 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + Qt4ProjectManager.Qt4RunConfiguration: + /home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/Yamitracker.pro + false + + true + true + true + %{RunConfig:Executable:Path} + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/Yamitracker_ru_RU.ts b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/Yamitracker_ru_RU.ts new file mode 100644 index 0000000..743f57f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/Yamitracker_ru_RU.ts @@ -0,0 +1,3 @@ + + + diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/brrconverter.cpp b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/brrconverter.cpp new file mode 100644 index 0000000..eed5c96 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/brrconverter.cpp @@ -0,0 +1,340 @@ +#include "brrconverter.h" +#include + +BrrConverter::BrrConverter(QObject *parent) : QObject(parent) +{ +} + +bool BrrConverter::convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath) +{ + QFile wavFile(wavFilePath); + if (!wavFile.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open WAV file:" << wavFilePath; + return false; + } + + int sampleRate, channels, bitsPerSample, dataSize; + if (!decodeWavHeader(wavFile, sampleRate, channels, bitsPerSample, dataSize)) { + qDebug() << "Invalid WAV file format"; + wavFile.close(); + return false; + } + + // Читаем аудиоданные + QByteArray audioData = wavFile.read(dataSize); + wavFile.close(); + + // Конвертируем в 16-bit моно + QVector samples; + int bytesPerSample = bitsPerSample / 8; + int totalSamples = dataSize / (bytesPerSample * channels); + + for (int i = 0; i < totalSamples; ++i) { + int32_t sample = 0; + + for (int ch = 0; ch < channels; ++ch) { + int32_t channelSample = 0; + int offset = (i * channels + ch) * bytesPerSample; + + if (bitsPerSample == 8) { + channelSample = (int8_t)audioData[offset]; + channelSample = (channelSample - 128) * 256; + } else if (bitsPerSample == 16) { + channelSample = (int16_t)((audioData[offset + 1] << 8) | audioData[offset]); + } else if (bitsPerSample == 24) { + channelSample = (int32_t)((audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + if (channelSample & 0x800000) channelSample |= 0xFF000000; + channelSample >>= 8; + } else if (bitsPerSample == 32) { + channelSample = (int32_t)((audioData[offset + 3] << 24) | + (audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + channelSample >>= 16; + } + + sample += channelSample; + } + + // Микшируем каналы + sample /= channels; + samples.append(clamp16(sample)); + } + + // Понижаем частоту дискретизации для SNES (макс 32kHz -> 16kHz) + if (sampleRate > 16000) { + int ratio = sampleRate / 16000; + QVector downsampled; + for (int i = 0; i < samples.size(); i += ratio) { + downsampled.append(samples[i]); + } + samples = downsampled; + } else if (sampleRate < 16000) { + // Если частота ниже, повышаем (простое повторение) + int ratio = 16000 / sampleRate; + QVector upsampled; + for (int i = 0; i < samples.size(); ++i) { + for (int j = 0; j < ratio; ++j) { + upsampled.append(samples[i]); + } + } + samples = upsampled; + } + + // Открываем BRR файл для записи + QFile brrFile(brrFilePath); + if (!brrFile.open(QIODevice::WriteOnly)) { + qDebug() << "Cannot open BRR file for writing:" << brrFilePath; + return false; + } + + ADPCMState state; + QVector blockSamples; + + // Конвертируем в BRR блоками по 16 сэмплов + for (int i = 0; i < samples.size(); ++i) { + int encoded = encodeADPCMNibble(samples[i], state); + blockSamples.append(encoded); + + if (blockSamples.size() == 32) { // 32 ниббла = 16 сэмплов + writeBrrBlock(brrFile, blockSamples, false); + blockSamples.clear(); + } + } + + // Записываем последний неполный блок + if (!blockSamples.isEmpty()) { + // Дополняем до 32 нибблов + while (blockSamples.size() < 32) { + blockSamples.append(0); + } + writeBrrBlock(brrFile, blockSamples, true); // Последний блок с флагом loop + } else if (samples.size() > 0) { + // Если был полный последний блок, помечаем его как loop + brrFile.seek(brrFile.size() - BRR_BLOCK_SIZE); + unsigned char header = 0x03; // Фильтр 0, loop flag = 1 + brrFile.write((char*)&header, 1); + } + + brrFile.close(); + qDebug() << "BRR file created:" << brrFilePath << "samples:" << samples.size() << "sample rate:" << sampleRate; + return true; +} + +bool BrrConverter::convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath) +{ + qDebug() << "MIDI to BRR conversion requires MIDI synthesizer"; + qDebug() << "Please convert MIDI to WAV first, then use WAV to BRR"; + + return false; +} + +bool BrrConverter::decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize) +{ + char buffer[44]; + if (file.read(buffer, 44) != 44) { + return false; + } + + // Проверяем RIFF заголовок + if (buffer[0] != 'R' || buffer[1] != 'I' || buffer[2] != 'F' || buffer[3] != 'F') { + return false; + } + + // Проверяем WAVE формат + if (buffer[8] != 'W' || buffer[9] != 'A' || buffer[10] != 'V' || buffer[11] != 'E') { + return false; + } + + // Проверяем fmt chunk + if (buffer[12] != 'f' || buffer[13] != 'm' || buffer[14] != 't' || buffer[15] != ' ') { + return false; + } + + // Читаем параметры + int fmtSize = *(int*)(buffer + 16); + if (fmtSize < 16) return false; + + int audioFormat = *(short*)(buffer + 20); + if (audioFormat != 1) return false; // Только PCM + + channels = *(short*)(buffer + 22); + sampleRate = *(int*)(buffer + 24); + bitsPerSample = *(short*)(buffer + 34); + + // Ищем data chunk + int offset = 36; + while (offset < file.size()) { + file.seek(offset); + char chunkId[4]; + if (file.read(chunkId, 4) != 4) break; + + int chunkSize; + if (file.read((char*)&chunkSize, 4) != 4) break; + + if (chunkId[0] == 'd' && chunkId[1] == 'a' && chunkId[2] == 't' && chunkId[3] == 'a') { + dataSize = chunkSize; + file.seek(offset + 8); + return true; + } + + offset += 8 + chunkSize; + } + + return false; +} + +int16_t BrrConverter::clamp16(int sample) +{ + if (sample > 32767) return 32767; + if (sample < -32768) return -32768; + return (int16_t)sample; +} + +int BrrConverter::encodeADPCMNibble(int sample, ADPCMState &state) +{ + int diff = sample - state.prev_sample; + int step = step_table[state.prev_index]; + + // Квантование + int nibble = 0; + int predicted = state.prev_sample; + + // Применяем фильтр (простейший - без фильтра) + int filtered = predicted; + + diff = sample - filtered; + + // Находим наилучший nibble + int best_nibble = 0; + int best_error = INT_MAX; + + for (int n = 0; n < 16; ++n) { + int step_index = state.prev_index + ((n & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (n & 8) ? -current_step : current_step; + + int current_sample = filtered + delta; + int error = abs(sample - current_sample); + + if (error < best_error) { + best_error = error; + best_nibble = n; + } + } + + // Декодируем выбранный nibble для обновления состояния + int step_index = state.prev_index + ((best_nibble & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (best_nibble & 8) ? -current_step : current_step; + + state.prev_sample = filtered + delta; + state.prev_index = step_index; + + // Ограничиваем индекс + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + // Ограничиваем сэмпл + state.prev_sample = clamp16(state.prev_sample); + + return best_nibble; +} + +void BrrConverter::writeBrrBlock(QFile &file, const QVector &samples, bool loop) +{ + if (samples.size() != 32) { + qDebug() << "Invalid sample count for BRR block:" << samples.size(); + return; + } + + unsigned char header = 0x00; + if (loop) { + header = 0x03; // Фильтр 0 + loop + } + + file.write((char*)&header, 1); + + // Упаковываем 32 ниббла в 8 байт + for (int i = 0; i < 16; ++i) { + unsigned char byte = (samples[i * 2] << 4) | (samples[i * 2 + 1] & 0x0F); + file.write((char*)&byte, 1); + } +} + +int BrrConverter::decodeADPCMNibble(int nibble, ADPCMState &state) +{ + int step = step_table[state.prev_index]; + int delta = step >> 3; + + if (nibble & 1) delta += step >> 2; + if (nibble & 2) delta += step >> 1; + if (nibble & 4) delta += step; + + if (nibble & 8) delta = -delta; + + // Применяем фильтр (простейший) + int sample = state.prev_sample + delta; + + // Ограничиваем + sample = clamp16(sample); + + // Обновляем индекс + state.prev_index += ((nibble & 7) * 2 - 7); + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + state.prev_sample = sample; + + return sample; +} + +QVector BrrConverter::decodeBrrFile(const QString &brrFilePath) +{ + QVector samples; + QFile file(brrFilePath); + + if (!file.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open BRR file for reading:" << brrFilePath; + return samples; + } + + ADPCMState state; + + while (!file.atEnd()) { + unsigned char header; + if (file.read((char*)&header, 1) != 1) break; + + unsigned char data[8]; + if (file.read((char*)data, 8) != 8) break; + + // Извлекаем нибблы + for (int i = 0; i < 8; ++i) { + unsigned char byte = data[i]; + int nibble1 = (byte >> 4) & 0x0F; + int nibble2 = byte & 0x0F; + + int sample1 = decodeADPCMNibble(nibble1, state); + int sample2 = decodeADPCMNibble(nibble2, state); + + samples.append(sample1); + samples.append(sample2); + } + + // Проверяем конец + if (header & 0x01) { + break; // Конец сэмпла + } + } + + file.close(); + return samples; +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/brrconverter.h b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/brrconverter.h new file mode 100644 index 0000000..175879a --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/brrconverter.h @@ -0,0 +1,54 @@ +#ifndef BRRCONVERTER_H +#define BRRCONVERTER_H + +#include +#include +#include +#include +#include + +class BrrConverter : public QObject +{ + Q_OBJECT + +public: + BrrConverter(QObject *parent = nullptr); + + bool convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath); + bool convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath); + +private: + struct ADPCMState { + int prev_sample; + int prev_index; + + ADPCMState() : prev_sample(0), prev_index(0) {} + }; + + struct BRRBlock { + unsigned char header; + unsigned char data[8]; + }; + + bool decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize); + int16_t clamp16(int sample); + int encodeADPCMNibble(int sample, ADPCMState &state); + void writeBrrBlock(QFile &file, const QVector &samples, bool loop = false); + int decodeADPCMNibble(int nibble, ADPCMState &state); + QVector decodeBrrFile(const QString &brrFilePath); + + static const int BRR_BLOCK_SIZE = 9; + static const int SAMPLES_PER_BLOCK = 16; + static const int FILTER_TYPES = 4; + + const int step_table[89] = { + 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, + 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, + 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, + 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327, + 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, + 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 + }; +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/.qmake.stash b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/FILE.h.79AEFC497861DFC5.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/FILE.h.79AEFC497861DFC5.idx new file mode 100644 index 0000000..bb4130c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/FILE.h.79AEFC497861DFC5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QApplication.B9EDCF12ABD49CAD.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QApplication.B9EDCF12ABD49CAD.idx new file mode 100644 index 0000000..a9114f1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QApplication.B9EDCF12ABD49CAD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QAudioFormat.127181BE433419F0.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QAudioFormat.127181BE433419F0.idx new file mode 100644 index 0000000..e41c6c1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QAudioFormat.127181BE433419F0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QAudioOutput.7F02858D40921E43.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QAudioOutput.7F02858D40921E43.idx new file mode 100644 index 0000000..09dcc5f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QAudioOutput.7F02858D40921E43.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QBuffer.23E78BA9EBF59F49.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QBuffer.23E78BA9EBF59F49.idx new file mode 100644 index 0000000..a62c5aa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QBuffer.23E78BA9EBF59F49.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QByteArray.53F89BE5B471B7E4.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QByteArray.53F89BE5B471B7E4.idx new file mode 100644 index 0000000..e7cc7ec Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QByteArray.53F89BE5B471B7E4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QCheckBox.40F6D47CBD050DB2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QCheckBox.40F6D47CBD050DB2.idx new file mode 100644 index 0000000..82ed698 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QCheckBox.40F6D47CBD050DB2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QComboBox.8361AD430BA3A00F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QComboBox.8361AD430BA3A00F.idx new file mode 100644 index 0000000..b696c12 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QComboBox.8361AD430BA3A00F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDateTime.39389819294B0D4C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDateTime.39389819294B0D4C.idx new file mode 100644 index 0000000..2f50c73 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDateTime.39389819294B0D4C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDebug.BAD14E00E3F9C686.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDebug.BAD14E00E3F9C686.idx new file mode 100644 index 0000000..0561d2c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDebug.BAD14E00E3F9C686.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDesktopServices.C3D95E29D5523316.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDesktopServices.C3D95E29D5523316.idx new file mode 100644 index 0000000..97d7d71 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDesktopServices.C3D95E29D5523316.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDir.5B5B8AD57E28282C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDir.5B5B8AD57E28282C.idx new file mode 100644 index 0000000..7cc8a9e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QDir.5B5B8AD57E28282C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFile.4FE98F09717A22B9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFile.4FE98F09717A22B9.idx new file mode 100644 index 0000000..ad895f6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFile.4FE98F09717A22B9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFileDialog.DBF60707535AF045.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFileDialog.DBF60707535AF045.idx new file mode 100644 index 0000000..fa2c843 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFileDialog.DBF60707535AF045.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFileInfo.42DC8E7F927D4FF2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFileInfo.42DC8E7F927D4FF2.idx new file mode 100644 index 0000000..6e3752a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QFileInfo.42DC8E7F927D4FF2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QGroupBox.0B6B252E4892F6B6.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QGroupBox.0B6B252E4892F6B6.idx new file mode 100644 index 0000000..7625cd0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QGroupBox.0B6B252E4892F6B6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QHBoxLayout.3C186A69BF876892.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QHBoxLayout.3C186A69BF876892.idx new file mode 100644 index 0000000..cc6969c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QHBoxLayout.3C186A69BF876892.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QHash.5CEAFD4266089588.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QHash.5CEAFD4266089588.idx new file mode 100644 index 0000000..a3d0515 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QHash.5CEAFD4266089588.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QInputDialog.6F584C03D260FA15.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QInputDialog.6F584C03D260FA15.idx new file mode 100644 index 0000000..c79ade7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QInputDialog.6F584C03D260FA15.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QLabel.C13AE013C3E75118.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QLabel.C13AE013C3E75118.idx new file mode 100644 index 0000000..e5a8b6e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QLabel.C13AE013C3E75118.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QLineEdit.5BEFF3F462F2E1C2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QLineEdit.5BEFF3F462F2E1C2.idx new file mode 100644 index 0000000..273f293 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QLineEdit.5BEFF3F462F2E1C2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QListWidget.036B67C888FDBFB4.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QListWidget.036B67C888FDBFB4.idx new file mode 100644 index 0000000..a024cdd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QListWidget.036B67C888FDBFB4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMainWindow.CA41D00754EDC756.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMainWindow.CA41D00754EDC756.idx new file mode 100644 index 0000000..9a6e0fb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMainWindow.CA41D00754EDC756.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMap.161022A0D04CCB63.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMap.161022A0D04CCB63.idx new file mode 100644 index 0000000..0e69bff Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMap.161022A0D04CCB63.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMenu.5C0F89EF6E40FD05.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMenu.5C0F89EF6E40FD05.idx new file mode 100644 index 0000000..e7ef039 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMenu.5C0F89EF6E40FD05.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMessageBox.0F39583027EEA62B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMessageBox.0F39583027EEA62B.idx new file mode 100644 index 0000000..7573155 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QMessageBox.0F39583027EEA62B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QObject.D8B4B2706948600D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QObject.D8B4B2706948600D.idx new file mode 100644 index 0000000..a45a31b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QObject.D8B4B2706948600D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QProcess.506923A570DC46B4.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QProcess.506923A570DC46B4.idx new file mode 100644 index 0000000..b52ae9c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QProcess.506923A570DC46B4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QPushButton.D5FBF9ABB31BAA40.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QPushButton.D5FBF9ABB31BAA40.idx new file mode 100644 index 0000000..1b8f0b3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QPushButton.D5FBF9ABB31BAA40.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QRegularExpression.3D4E0921DB42CD37.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QRegularExpression.3D4E0921DB42CD37.idx new file mode 100644 index 0000000..24588dc Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QRegularExpression.3D4E0921DB42CD37.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QSet.F19C6EF1B1021323.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QSet.F19C6EF1B1021323.idx new file mode 100644 index 0000000..a8ddabe Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QSet.F19C6EF1B1021323.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QSlider.E2DAE2C9D4B410D3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QSlider.E2DAE2C9D4B410D3.idx new file mode 100644 index 0000000..f670df8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QSlider.E2DAE2C9D4B410D3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QString.AA5DC64AB27329FD.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QString.AA5DC64AB27329FD.idx new file mode 100644 index 0000000..70c1a6a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QString.AA5DC64AB27329FD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QTextStream.6D30DE4912E828F0.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QTextStream.6D30DE4912E828F0.idx new file mode 100644 index 0000000..fc84058 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QTextStream.6D30DE4912E828F0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QThread.8AE510C646AEA435.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QThread.8AE510C646AEA435.idx new file mode 100644 index 0000000..6381800 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QThread.8AE510C646AEA435.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QTimer.B69464AF0C3B9494.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QTimer.B69464AF0C3B9494.idx new file mode 100644 index 0000000..e9a638f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QTimer.B69464AF0C3B9494.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QUrl.B5D73FB71C016E25.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QUrl.B5D73FB71C016E25.idx new file mode 100644 index 0000000..ae3c771 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QUrl.B5D73FB71C016E25.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QVBoxLayout.75F66536EE05FE95.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QVBoxLayout.75F66536EE05FE95.idx new file mode 100644 index 0000000..ce7ad94 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QVBoxLayout.75F66536EE05FE95.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QVector.57D913605476FFBA.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QVector.57D913605476FFBA.idx new file mode 100644 index 0000000..d37371f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/QVector.57D913605476FFBA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__FILE.h.3324F85E382E036A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__FILE.h.3324F85E382E036A.idx new file mode 100644 index 0000000..29f14fa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__FILE.h.3324F85E382E036A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__fpos64_t.h.23C43F442076149A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__fpos64_t.h.23C43F442076149A.idx new file mode 100644 index 0000000..c670226 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__fpos64_t.h.23C43F442076149A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__fpos_t.h.ECFBE9EEDAAB6648.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__fpos_t.h.ECFBE9EEDAAB6648.idx new file mode 100644 index 0000000..a1f0d8e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__fpos_t.h.ECFBE9EEDAAB6648.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__locale_t.h.40EA38A2DCA58618.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__locale_t.h.40EA38A2DCA58618.idx new file mode 100644 index 0000000..333f9e9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__locale_t.h.40EA38A2DCA58618.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__mbstate_t.h.6C32CF66236653D7.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__mbstate_t.h.6C32CF66236653D7.idx new file mode 100644 index 0000000..0f0c756 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__mbstate_t.h.6C32CF66236653D7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__sigset_t.h.72131E8056C7E284.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__sigset_t.h.72131E8056C7E284.idx new file mode 100644 index 0000000..c6ee90c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__sigset_t.h.72131E8056C7E284.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___gnuc_va_list.h.9CC5F2E48BD83148.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___gnuc_va_list.h.9CC5F2E48BD83148.idx new file mode 100644 index 0000000..e25fb64 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___gnuc_va_list.h.9CC5F2E48BD83148.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___va_copy.h.14461A1A31B8F874.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___va_copy.h.14461A1A31B8F874.idx new file mode 100644 index 0000000..3e7154c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg___va_copy.h.14461A1A31B8F874.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_header_macro.h.551D34A49D3CE963.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_header_macro.h.551D34A49D3CE963.idx new file mode 100644 index 0000000..4890b2f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_header_macro.h.551D34A49D3CE963.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_arg.h.55BC8E5C344094E9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_arg.h.55BC8E5C344094E9.idx new file mode 100644 index 0000000..e7e7943 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_arg.h.55BC8E5C344094E9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_copy.h.DE4CFF5C1E210336.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_copy.h.DE4CFF5C1E210336.idx new file mode 100644 index 0000000..240edc1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_copy.h.DE4CFF5C1E210336.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_list.h.4028E9A8D637650E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_list.h.4028E9A8D637650E.idx new file mode 100644 index 0000000..222b5dd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stdarg_va_list.h.4028E9A8D637650E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_header_macro.h.7A0A7BDC7C918B9E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_header_macro.h.7A0A7BDC7C918B9E.idx new file mode 100644 index 0000000..d77f48b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_header_macro.h.7A0A7BDC7C918B9E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_max_align_t.h.E4485FBF505BBFB2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_max_align_t.h.E4485FBF505BBFB2.idx new file mode 100644 index 0000000..a29f6cb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_max_align_t.h.E4485FBF505BBFB2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_null.h.B1043DD116DDED43.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_null.h.B1043DD116DDED43.idx new file mode 100644 index 0000000..7262bc1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_null.h.B1043DD116DDED43.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_nullptr_t.h.230C047905BEBADE.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_nullptr_t.h.230C047905BEBADE.idx new file mode 100644 index 0000000..9d03210 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_nullptr_t.h.230C047905BEBADE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_offsetof.h.AAF33C3F6AE9327B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_offsetof.h.AAF33C3F6AE9327B.idx new file mode 100644 index 0000000..fa38e6d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_offsetof.h.AAF33C3F6AE9327B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_ptrdiff_t.h.B8165BC51699FAF3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_ptrdiff_t.h.B8165BC51699FAF3.idx new file mode 100644 index 0000000..e42ee06 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_ptrdiff_t.h.B8165BC51699FAF3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_size_t.h.7896A01C817D0EB1.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_size_t.h.7896A01C817D0EB1.idx new file mode 100644 index 0000000..9794d64 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_size_t.h.7896A01C817D0EB1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_wchar_t.h.0BFF0E7A92E16CCE.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_wchar_t.h.0BFF0E7A92E16CCE.idx new file mode 100644 index 0000000..e8b2826 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/__stddef_wchar_t.h.0BFF0E7A92E16CCE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/algorithm.BB1DD98A0283BBD2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/algorithm.BB1DD98A0283BBD2.idx new file mode 100644 index 0000000..d0d96fa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/algorithm.BB1DD98A0283BBD2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/algorithmfwd.h.BAFC720F76AE0D66.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/algorithmfwd.h.BAFC720F76AE0D66.idx new file mode 100644 index 0000000..3cc3650 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/algorithmfwd.h.BAFC720F76AE0D66.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/align.h.F538AF5501CF5C99.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/align.h.F538AF5501CF5C99.idx new file mode 100644 index 0000000..4b2e504 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/align.h.F538AF5501CF5C99.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/aligned_buffer.h.EF40936234B53958.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/aligned_buffer.h.EF40936234B53958.idx new file mode 100644 index 0000000..01ea251 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/aligned_buffer.h.EF40936234B53958.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloc_traits.h.3F20844836B92A92.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloc_traits.h.3F20844836B92A92.idx new file mode 100644 index 0000000..1b0c63f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloc_traits.h.3F20844836B92A92.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloc_traits.h.AA4FE26E446B6537.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloc_traits.h.AA4FE26E446B6537.idx new file mode 100644 index 0000000..dbb272d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloc_traits.h.AA4FE26E446B6537.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloca.h.793370BF9878CFB6.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloca.h.793370BF9878CFB6.idx new file mode 100644 index 0000000..ee4e2b9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/alloca.h.793370BF9878CFB6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/allocated_ptr.h.3AE783F1E0C3EEEE.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/allocated_ptr.h.3AE783F1E0C3EEEE.idx new file mode 100644 index 0000000..8e5c22c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/allocated_ptr.h.3AE783F1E0C3EEEE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/allocator.h.78872CA87148A759.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/allocator.h.78872CA87148A759.idx new file mode 100644 index 0000000..40155b1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/allocator.h.78872CA87148A759.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/array.75025A6CC92D7005.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/array.75025A6CC92D7005.idx new file mode 100644 index 0000000..ae32bd1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/array.75025A6CC92D7005.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/assert.h.9895EEC17E1D2A2B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/assert.h.9895EEC17E1D2A2B.idx new file mode 100644 index 0000000..3a71bd1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/assert.h.9895EEC17E1D2A2B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/assertions.h.1A28C16DCCBB9FAF.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/assertions.h.1A28C16DCCBB9FAF.idx new file mode 100644 index 0000000..7c5186c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/assertions.h.1A28C16DCCBB9FAF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic.E2087D4778A6BCBA.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic.E2087D4778A6BCBA.idx new file mode 100644 index 0000000..a22b2c3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic.E2087D4778A6BCBA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_base.h.D53C548BA8BCAB95.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_base.h.D53C548BA8BCAB95.idx new file mode 100644 index 0000000..1101570 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_base.h.D53C548BA8BCAB95.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_futex.h.497B93D6E3F1F945.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_futex.h.497B93D6E3F1F945.idx new file mode 100644 index 0000000..feeb536 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_futex.h.497B93D6E3F1F945.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_lockfree_defines.h.C0F25667B591B578.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_lockfree_defines.h.C0F25667B591B578.idx new file mode 100644 index 0000000..96201f7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_lockfree_defines.h.C0F25667B591B578.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_wide_counter.h.397D66B6BECC0AA2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_wide_counter.h.397D66B6BECC0AA2.idx new file mode 100644 index 0000000..6c7bc67 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_wide_counter.h.397D66B6BECC0AA2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_word.h.A29017D9E7F3291A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_word.h.A29017D9E7F3291A.idx new file mode 100644 index 0000000..33d390c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomic_word.h.A29017D9E7F3291A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomicity.h.54F003D10E2AD619.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomicity.h.54F003D10E2AD619.idx new file mode 100644 index 0000000..10a4818 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/atomicity.h.54F003D10E2AD619.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/auto_ptr.h.DA028A6E3E20C44E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/auto_ptr.h.DA028A6E3E20C44E.idx new file mode 100644 index 0000000..c7b9338 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/auto_ptr.h.DA028A6E3E20C44E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_ios.h.3F96DBF72E1E9186.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_ios.h.3F96DBF72E1E9186.idx new file mode 100644 index 0000000..8c6966e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_ios.h.3F96DBF72E1E9186.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_ios.tcc.DD1C817138D19CD8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_ios.tcc.DD1C817138D19CD8.idx new file mode 100644 index 0000000..19cc393 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_ios.tcc.DD1C817138D19CD8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_string.h.C9633CFCF816289A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_string.h.C9633CFCF816289A.idx new file mode 100644 index 0000000..378538c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_string.h.C9633CFCF816289A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_string.tcc.978F9F7C1DF18622.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_string.tcc.978F9F7C1DF18622.idx new file mode 100644 index 0000000..92f6f04 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/basic_string.tcc.978F9F7C1DF18622.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bessel_function.tcc.827D74622018EA1A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bessel_function.tcc.827D74622018EA1A.idx new file mode 100644 index 0000000..0e930a9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bessel_function.tcc.827D74622018EA1A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/beta_function.tcc.5548F9CCC3A0F5B0.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/beta_function.tcc.5548F9CCC3A0F5B0.idx new file mode 100644 index 0000000..e7648db Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/beta_function.tcc.5548F9CCC3A0F5B0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/binders.h.135FCA0EE8FB7493.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/binders.h.135FCA0EE8FB7493.idx new file mode 100644 index 0000000..47db5aa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/binders.h.135FCA0EE8FB7493.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bit.28B2F856B1DB85EA.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bit.28B2F856B1DB85EA.idx new file mode 100644 index 0000000..ee2acf5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bit.28B2F856B1DB85EA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bitsperlong.h.5E13F0A4313F78B3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bitsperlong.h.5E13F0A4313F78B3.idx new file mode 100644 index 0000000..ae5a400 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bitsperlong.h.5E13F0A4313F78B3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bitsperlong.h.B267C684FE143FB5.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bitsperlong.h.B267C684FE143FB5.idx new file mode 100644 index 0000000..f541d09 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/bitsperlong.h.B267C684FE143FB5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/brrconverter.cpp.192CCE7B8E83B170.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/brrconverter.cpp.192CCE7B8E83B170.idx new file mode 100644 index 0000000..df8b21c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/brrconverter.cpp.192CCE7B8E83B170.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/brrconverter.h.6B811A1092945000.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/brrconverter.h.6B811A1092945000.idx new file mode 100644 index 0000000..0bf13e5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/brrconverter.h.6B811A1092945000.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/byteswap.h.E57FF553A16DFAFC.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/byteswap.h.E57FF553A16DFAFC.idx new file mode 100644 index 0000000..55c10fe Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/byteswap.h.E57FF553A16DFAFC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++allocator.h.A4D928DAE285FFAF.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++allocator.h.A4D928DAE285FFAF.idx new file mode 100644 index 0000000..b9df48f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++allocator.h.A4D928DAE285FFAF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++config.h.E55A0FAFEAE7A158.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++config.h.E55A0FAFEAE7A158.idx new file mode 100644 index 0000000..02755fd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++config.h.E55A0FAFEAE7A158.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++locale.h.2618C896A1896386.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++locale.h.2618C896A1896386.idx new file mode 100644 index 0000000..ba5fc58 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/c++locale.h.2618C896A1896386.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cassert.1992136BCC80A5C9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cassert.1992136BCC80A5C9.idx new file mode 100644 index 0000000..5e41e76 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cassert.1992136BCC80A5C9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cctype.EAC08B603DD03C24.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cctype.EAC08B603DD03C24.idx new file mode 100644 index 0000000..0777e7f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cctype.EAC08B603DD03C24.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cdefs.h.E4D450DF98C1338F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cdefs.h.E4D450DF98C1338F.idx new file mode 100644 index 0000000..305dc43 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cdefs.h.E4D450DF98C1338F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cerrno.1D1A36417D84D43E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cerrno.1D1A36417D84D43E.idx new file mode 100644 index 0000000..982f7d2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cerrno.1D1A36417D84D43E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/char_traits.h.B275C9D19643BC12.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/char_traits.h.B275C9D19643BC12.idx new file mode 100644 index 0000000..ffe6184 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/char_traits.h.B275C9D19643BC12.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/charconv.h.F641103DCF1F42B1.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/charconv.h.F641103DCF1F42B1.idx new file mode 100644 index 0000000..4a5d34c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/charconv.h.F641103DCF1F42B1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/chrono.7A460892D7C2396D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/chrono.7A460892D7C2396D.idx new file mode 100644 index 0000000..5c8d1a0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/chrono.7A460892D7C2396D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/chrono.h.836A7D82EB499E6D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/chrono.h.836A7D82EB499E6D.idx new file mode 100644 index 0000000..389de21 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/chrono.h.836A7D82EB499E6D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/climits.DDA7E9B0A751AC0F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/climits.DDA7E9B0A751AC0F.idx new file mode 100644 index 0000000..baa5a14 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/climits.DDA7E9B0A751AC0F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clocale.FA601010F856C9C7.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clocale.FA601010F856C9C7.idx new file mode 100644 index 0000000..1c518f9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clocale.FA601010F856C9C7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clock_t.h.65AFE5BA7329BCD4.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clock_t.h.65AFE5BA7329BCD4.idx new file mode 100644 index 0000000..5e0794c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clock_t.h.65AFE5BA7329BCD4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clockid_t.h.5545878511E5BAF1.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clockid_t.h.5545878511E5BAF1.idx new file mode 100644 index 0000000..b9f02e9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/clockid_t.h.5545878511E5BAF1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/close_range.h.68EB8BD04293AE47.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/close_range.h.68EB8BD04293AE47.idx new file mode 100644 index 0000000..7ea5b14 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/close_range.h.68EB8BD04293AE47.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cmath.1FB8F65D19048A2F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cmath.1FB8F65D19048A2F.idx new file mode 100644 index 0000000..8af6f10 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cmath.1FB8F65D19048A2F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/codecvt.1AB9A4A962A3088E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/codecvt.1AB9A4A962A3088E.idx new file mode 100644 index 0000000..66ab502 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/codecvt.1AB9A4A962A3088E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/codecvt.h.339B274DE87EA6C9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/codecvt.h.339B274DE87EA6C9.idx new file mode 100644 index 0000000..d331481 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/codecvt.h.339B274DE87EA6C9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/compare.B8406D52DC001E10.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/compare.B8406D52DC001E10.idx new file mode 100644 index 0000000..2111a8f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/compare.B8406D52DC001E10.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concept_check.h.9FA668F44F92F11C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concept_check.h.9FA668F44F92F11C.idx new file mode 100644 index 0000000..537abaa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concept_check.h.9FA668F44F92F11C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concepts.0076187433244A88.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concepts.0076187433244A88.idx new file mode 100644 index 0000000..e16a191 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concepts.0076187433244A88.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concurrence.h.C9FC2A8163370AFC.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concurrence.h.C9FC2A8163370AFC.idx new file mode 100644 index 0000000..3cbfaca Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/concurrence.h.C9FC2A8163370AFC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/condition_variable.58AA954A883076E8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/condition_variable.58AA954A883076E8.idx new file mode 100644 index 0000000..8466f1c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/condition_variable.58AA954A883076E8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/confname.h.ACD47B58EFD02DD6.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/confname.h.ACD47B58EFD02DD6.idx new file mode 100644 index 0000000..cbd46a0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/confname.h.ACD47B58EFD02DD6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cookie_io_functions_t.h.5A08066DC7F05542.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cookie_io_functions_t.h.5A08066DC7F05542.idx new file mode 100644 index 0000000..0f4de48 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cookie_io_functions_t.h.5A08066DC7F05542.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpp_type_traits.h.E10BE2C4CA45C8EE.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpp_type_traits.h.E10BE2C4CA45C8EE.idx new file mode 100644 index 0000000..aed3385 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpp_type_traits.h.E10BE2C4CA45C8EE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpu-set.h.B40F3E2869BE4FF9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpu-set.h.B40F3E2869BE4FF9.idx new file mode 100644 index 0000000..20a40de Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpu-set.h.B40F3E2869BE4FF9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpu_defines.h.8B227B6531C4DEEE.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpu_defines.h.8B227B6531C4DEEE.idx new file mode 100644 index 0000000..63abc03 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cpu_defines.h.8B227B6531C4DEEE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstddef.533DFD42AE9DF6A3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstddef.533DFD42AE9DF6A3.idx new file mode 100644 index 0000000..040a359 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstddef.533DFD42AE9DF6A3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdint.60074C3C51C51FCB.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdint.60074C3C51C51FCB.idx new file mode 100644 index 0000000..c6b7b7e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdint.60074C3C51C51FCB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdio.005601FBE291F299.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdio.005601FBE291F299.idx new file mode 100644 index 0000000..e76fc21 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdio.005601FBE291F299.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdlib.91A0639FE71A041B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdlib.91A0639FE71A041B.idx new file mode 100644 index 0000000..839434d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstdlib.91A0639FE71A041B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstring.6476FE0177F75035.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstring.6476FE0177F75035.idx new file mode 100644 index 0000000..084e818 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cstring.6476FE0177F75035.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctime.D80ED26B7EFB6367.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctime.D80ED26B7EFB6367.idx new file mode 100644 index 0000000..25d0c4d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctime.D80ED26B7EFB6367.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype.h.B268CEA0CECCFC59.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype.h.B268CEA0CECCFC59.idx new file mode 100644 index 0000000..87b3abb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype.h.B268CEA0CECCFC59.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype_base.h.53270CC07DAA347E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype_base.h.53270CC07DAA347E.idx new file mode 100644 index 0000000..15745e1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype_base.h.53270CC07DAA347E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype_inline.h.093E57B495F70250.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype_inline.h.093E57B495F70250.idx new file mode 100644 index 0000000..5616414 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ctype_inline.h.093E57B495F70250.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cwchar.9BBFFEFB1B47793B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cwchar.9BBFFEFB1B47793B.idx new file mode 100644 index 0000000..a8abc23 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cwchar.9BBFFEFB1B47793B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cwctype.F7BAF964220657F5.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cwctype.F7BAF964220657F5.idx new file mode 100644 index 0000000..c130400 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cwctype.F7BAF964220657F5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cxxabi_forced.h.39654E71E8A80657.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cxxabi_forced.h.39654E71E8A80657.idx new file mode 100644 index 0000000..bed53af Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cxxabi_forced.h.39654E71E8A80657.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cxxabi_init_exception.h.3992AA317DDA00A7.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cxxabi_init_exception.h.3992AA317DDA00A7.idx new file mode 100644 index 0000000..cdb9180 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/cxxabi_init_exception.h.3992AA317DDA00A7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/debug.h.487B6441ED001EE6.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/debug.h.487B6441ED001EE6.idx new file mode 100644 index 0000000..cc37123 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/debug.h.487B6441ED001EE6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ell_integral.tcc.B2ED73CE8B8E2958.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ell_integral.tcc.B2ED73CE8B8E2958.idx new file mode 100644 index 0000000..21605c6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ell_integral.tcc.B2ED73CE8B8E2958.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/enable_special_members.h.C067023764851CA2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/enable_special_members.h.C067023764851CA2.idx new file mode 100644 index 0000000..e7a598d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/enable_special_members.h.C067023764851CA2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endian.h.1FC6A4D6D2846204.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endian.h.1FC6A4D6D2846204.idx new file mode 100644 index 0000000..b70a2a3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endian.h.1FC6A4D6D2846204.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endian.h.20F8E286A486EE09.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endian.h.20F8E286A486EE09.idx new file mode 100644 index 0000000..53a1579 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endian.h.20F8E286A486EE09.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endianness.h.F2D2CC6251A4EAFA.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endianness.h.F2D2CC6251A4EAFA.idx new file mode 100644 index 0000000..26b5106 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/endianness.h.F2D2CC6251A4EAFA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/environments.h.AA09E46153D7F6D9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/environments.h.AA09E46153D7F6D9.idx new file mode 100644 index 0000000..29e1a0f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/environments.h.AA09E46153D7F6D9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/erase_if.h.CE2BA3A5A917F3AC.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/erase_if.h.CE2BA3A5A917F3AC.idx new file mode 100644 index 0000000..d3918d5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/erase_if.h.CE2BA3A5A917F3AC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno-base.h.23FC55A99C73A727.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno-base.h.23FC55A99C73A727.idx new file mode 100644 index 0000000..547f8ce Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno-base.h.23FC55A99C73A727.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.063064A523A47758.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.063064A523A47758.idx new file mode 100644 index 0000000..51c7ce9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.063064A523A47758.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.10013861918E601A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.10013861918E601A.idx new file mode 100644 index 0000000..b5ee967 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.10013861918E601A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.19BCCCD58DA5623E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.19BCCCD58DA5623E.idx new file mode 100644 index 0000000..7b2d22e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.19BCCCD58DA5623E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.3F8ECD84FB880B64.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.3F8ECD84FB880B64.idx new file mode 100644 index 0000000..3a71230 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.3F8ECD84FB880B64.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.F248BDE3D519052A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.F248BDE3D519052A.idx new file mode 100644 index 0000000..cd2acf5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/errno.h.F248BDE3D519052A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/error_constants.h.4FA778F20895A791.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/error_constants.h.4FA778F20895A791.idx new file mode 100644 index 0000000..1860651 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/error_constants.h.4FA778F20895A791.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/error_t.h.58D3895A591B592D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/error_t.h.58D3895A591B592D.idx new file mode 100644 index 0000000..4112162 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/error_t.h.58D3895A591B592D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception.6B89E2FE29CCB363.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception.6B89E2FE29CCB363.idx new file mode 100644 index 0000000..149b3c0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception.6B89E2FE29CCB363.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception.h.419F08EE1A528659.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception.h.419F08EE1A528659.idx new file mode 100644 index 0000000..a9e70d9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception.h.419F08EE1A528659.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception_defines.h.D5DD63B05A609061.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception_defines.h.D5DD63B05A609061.idx new file mode 100644 index 0000000..0fd248a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception_defines.h.D5DD63B05A609061.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception_ptr.h.9B06C068E0F33DA4.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception_ptr.h.9B06C068E0F33DA4.idx new file mode 100644 index 0000000..c38bc4e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exception_ptr.h.9B06C068E0F33DA4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/execution_defs.h.E953920960A97FBB.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/execution_defs.h.E953920960A97FBB.idx new file mode 100644 index 0000000..f2fb8c4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/execution_defs.h.E953920960A97FBB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exp_integral.tcc.9562AE068E8C915F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exp_integral.tcc.9562AE068E8C915F.idx new file mode 100644 index 0000000..b89ad53 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/exp_integral.tcc.9562AE068E8C915F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/falloc.h.5C586ED1D55FF40E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/falloc.h.5C586ED1D55FF40E.idx new file mode 100644 index 0000000..e835f22 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/falloc.h.5C586ED1D55FF40E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl-linux.h.B59A22F1AA8971F5.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl-linux.h.B59A22F1AA8971F5.idx new file mode 100644 index 0000000..91cc453 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl-linux.h.B59A22F1AA8971F5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl.h.B275FA9E57415C0F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl.h.B275FA9E57415C0F.idx new file mode 100644 index 0000000..1dd7bdd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl.h.B275FA9E57415C0F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl.h.FAA28F3AAA9C8758.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl.h.FAA28F3AAA9C8758.idx new file mode 100644 index 0000000..26694b6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fcntl.h.FAA28F3AAA9C8758.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/features-time64.h.BFBA8D3CA0316037.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/features-time64.h.BFBA8D3CA0316037.idx new file mode 100644 index 0000000..f788bd7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/features-time64.h.BFBA8D3CA0316037.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/features.h.5A4ED7C80201A723.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/features.h.5A4ED7C80201A723.idx new file mode 100644 index 0000000..70ea911 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/features.h.5A4ED7C80201A723.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/filesystem.87BB53D3495C350D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/filesystem.87BB53D3495C350D.idx new file mode 100644 index 0000000..9e30d2e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/filesystem.87BB53D3495C350D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/floatn-common.h.0FE8C4DDCB84E088.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/floatn-common.h.0FE8C4DDCB84E088.idx new file mode 100644 index 0000000..c360183 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/floatn-common.h.0FE8C4DDCB84E088.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/floatn.h.DA21C738CC1B6ABF.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/floatn.h.DA21C738CC1B6ABF.idx new file mode 100644 index 0000000..c3dc77d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/floatn.h.DA21C738CC1B6ABF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/flt-eval-method.h.8058951BDB657B4B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/flt-eval-method.h.8058951BDB657B4B.idx new file mode 100644 index 0000000..7a38d49 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/flt-eval-method.h.8058951BDB657B4B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fp-fast.h.72CDF40E7648EF43.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fp-fast.h.72CDF40E7648EF43.idx new file mode 100644 index 0000000..3511ce2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fp-fast.h.72CDF40E7648EF43.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fp-logb.h.EA7AC5545F14BC26.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fp-logb.h.EA7AC5545F14BC26.idx new file mode 100644 index 0000000..6dda7f9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fp-logb.h.EA7AC5545F14BC26.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_dir.h.26505C8349C4DC41.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_dir.h.26505C8349C4DC41.idx new file mode 100644 index 0000000..019a941 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_dir.h.26505C8349C4DC41.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_fwd.h.99A2068986E492DE.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_fwd.h.99A2068986E492DE.idx new file mode 100644 index 0000000..168f55a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_fwd.h.99A2068986E492DE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_ops.h.04896CE11A4980DC.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_ops.h.04896CE11A4980DC.idx new file mode 100644 index 0000000..fead93d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_ops.h.04896CE11A4980DC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_path.h.C14DC9492B212A2C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_path.h.C14DC9492B212A2C.idx new file mode 100644 index 0000000..93863a9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/fs_path.h.C14DC9492B212A2C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functexcept.h.6A2E89F17310DE95.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functexcept.h.6A2E89F17310DE95.idx new file mode 100644 index 0000000..8bf86f2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functexcept.h.6A2E89F17310DE95.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functional.EBD8D92EE2685F2E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functional.EBD8D92EE2685F2E.idx new file mode 100644 index 0000000..755f5fb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functional.EBD8D92EE2685F2E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functional_hash.h.7C1C671B84E9A052.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functional_hash.h.7C1C671B84E9A052.idx new file mode 100644 index 0000000..75561c2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/functional_hash.h.7C1C671B84E9A052.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/future.920A5FDE69D2420D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/future.920A5FDE69D2420D.idx new file mode 100644 index 0000000..e4e4e21 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/future.920A5FDE69D2420D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gamma.tcc.0AC377AF59DD67EC.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gamma.tcc.0AC377AF59DD67EC.idx new file mode 100644 index 0000000..a71676d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gamma.tcc.0AC377AF59DD67EC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/getopt_core.h.D7307CF3828B57B6.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/getopt_core.h.D7307CF3828B57B6.idx new file mode 100644 index 0000000..1be8f2e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/getopt_core.h.D7307CF3828B57B6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/getopt_posix.h.EAB1D9CAA7EB87EE.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/getopt_posix.h.EAB1D9CAA7EB87EE.idx new file mode 100644 index 0000000..4f01765 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/getopt_posix.h.EAB1D9CAA7EB87EE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_algorithm_defs.h.1B2AB35F3BCAAE9B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_algorithm_defs.h.1B2AB35F3BCAAE9B.idx new file mode 100644 index 0000000..74b8c5c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_algorithm_defs.h.1B2AB35F3BCAAE9B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_memory_defs.h.1478E023BF4E859A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_memory_defs.h.1478E023BF4E859A.idx new file mode 100644 index 0000000..b292631 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_memory_defs.h.1478E023BF4E859A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_numeric_defs.h.6F482C50EB69C213.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_numeric_defs.h.6F482C50EB69C213.idx new file mode 100644 index 0000000..0de1846 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/glue_numeric_defs.h.6F482C50EB69C213.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gthr-default.h.B4399EDA94C1DBA8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gthr-default.h.B4399EDA94C1DBA8.idx new file mode 100644 index 0000000..a71a303 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gthr-default.h.B4399EDA94C1DBA8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gthr.h.163104A5B09814C3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gthr.h.163104A5B09814C3.idx new file mode 100644 index 0000000..e9e7d64 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/gthr.h.163104A5B09814C3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hash_bytes.h.5DA111BE3DBDA86B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hash_bytes.h.5DA111BE3DBDA86B.idx new file mode 100644 index 0000000..a4d9823 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hash_bytes.h.5DA111BE3DBDA86B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hashtable.h.81FE3D6C6B9929F8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hashtable.h.81FE3D6C6B9929F8.idx new file mode 100644 index 0000000..87a658a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hashtable.h.81FE3D6C6B9929F8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hashtable_policy.h.1845EBBCBD7913D2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hashtable_policy.h.1845EBBCBD7913D2.idx new file mode 100644 index 0000000..518501f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hashtable_policy.h.1845EBBCBD7913D2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hypergeometric.tcc.DBB697EDF574792C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hypergeometric.tcc.DBB697EDF574792C.idx new file mode 100644 index 0000000..ab587c8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/hypergeometric.tcc.DBB697EDF574792C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/initializer_list.0F8FB75E68F1322D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/initializer_list.0F8FB75E68F1322D.idx new file mode 100644 index 0000000..299dd0f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/initializer_list.0F8FB75E68F1322D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/int-ll64.h.AE74C618A4956C59.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/int-ll64.h.AE74C618A4956C59.idx new file mode 100644 index 0000000..6e105a3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/int-ll64.h.AE74C618A4956C59.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/invoke.h.4DE14F00D80C8CB5.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/invoke.h.4DE14F00D80C8CB5.idx new file mode 100644 index 0000000..5f2b3fd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/invoke.h.4DE14F00D80C8CB5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iomanip.CDA664675158F75A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iomanip.CDA664675158F75A.idx new file mode 100644 index 0000000..594f28b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iomanip.CDA664675158F75A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ios.F814CA2CC37C485B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ios.F814CA2CC37C485B.idx new file mode 100644 index 0000000..3f900b3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ios.F814CA2CC37C485B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ios_base.h.29FE44CB0EBD9887.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ios_base.h.29FE44CB0EBD9887.idx new file mode 100644 index 0000000..54fbf36 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ios_base.h.29FE44CB0EBD9887.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iosfwd.D1495D7D8DC7F071.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iosfwd.D1495D7D8DC7F071.idx new file mode 100644 index 0000000..938acf9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iosfwd.D1495D7D8DC7F071.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iscanonical.h.C53E44E13856FCEA.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iscanonical.h.C53E44E13856FCEA.idx new file mode 100644 index 0000000..892a6b4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iscanonical.h.C53E44E13856FCEA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/istream.D57E10FDB0F98F04.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/istream.D57E10FDB0F98F04.idx new file mode 100644 index 0000000..183fa5c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/istream.D57E10FDB0F98F04.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/istream.tcc.3A5B94B32DCFC411.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/istream.tcc.3A5B94B32DCFC411.idx new file mode 100644 index 0000000..18295e2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/istream.tcc.3A5B94B32DCFC411.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iterator.AD004068EF8F8235.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iterator.AD004068EF8F8235.idx new file mode 100644 index 0000000..e8be515 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/iterator.AD004068EF8F8235.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/legendre_function.tcc.FE5ECA8045ACF33F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/legendre_function.tcc.FE5ECA8045ACF33F.idx new file mode 100644 index 0000000..45767ef Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/legendre_function.tcc.FE5ECA8045ACF33F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libc-header-start.h.E88219B53B0B0BF5.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libc-header-start.h.E88219B53B0B0BF5.idx new file mode 100644 index 0000000..fbc23a9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libc-header-start.h.E88219B53B0B0BF5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libintl.h.929023AD77A09335.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libintl.h.929023AD77A09335.idx new file mode 100644 index 0000000..36cd219 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libintl.h.929023AD77A09335.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libm-simd-decl-stubs.h.06B70A57602EA3C8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libm-simd-decl-stubs.h.06B70A57602EA3C8.idx new file mode 100644 index 0000000..67821e6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/libm-simd-decl-stubs.h.06B70A57602EA3C8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.F1E01A923CBD84EA.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.F1E01A923CBD84EA.idx new file mode 100644 index 0000000..9294242 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.F1E01A923CBD84EA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.1DFE7D0FE6434B13.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.1DFE7D0FE6434B13.idx new file mode 100644 index 0000000..0158ef7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.1DFE7D0FE6434B13.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.37EB7A5A45E8E51F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.37EB7A5A45E8E51F.idx new file mode 100644 index 0000000..8a38155 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.37EB7A5A45E8E51F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.C293B8934AC926BB.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.C293B8934AC926BB.idx new file mode 100644 index 0000000..de32693 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/limits.h.C293B8934AC926BB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/list.CD88FE111C2D2B92.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/list.CD88FE111C2D2B92.idx new file mode 100644 index 0000000..e6165c5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/list.CD88FE111C2D2B92.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/list.tcc.F828FFC74BE3C6B9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/list.tcc.F828FFC74BE3C6B9.idx new file mode 100644 index 0000000..e8680e5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/list.tcc.F828FFC74BE3C6B9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/local_lim.h.2CFD657F256B117E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/local_lim.h.2CFD657F256B117E.idx new file mode 100644 index 0000000..e011fae Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/local_lim.h.2CFD657F256B117E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.D346B965B0BBD9BE.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.D346B965B0BBD9BE.idx new file mode 100644 index 0000000..5cb145f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.D346B965B0BBD9BE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.h.E3C63D05A4E78516.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.h.E3C63D05A4E78516.idx new file mode 100644 index 0000000..f5ce240 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.h.E3C63D05A4E78516.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.h.F1B51844858762D2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.h.F1B51844858762D2.idx new file mode 100644 index 0000000..0eff35c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale.h.F1B51844858762D2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_classes.h.78EEDF5119140059.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_classes.h.78EEDF5119140059.idx new file mode 100644 index 0000000..3cff38e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_classes.h.78EEDF5119140059.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_classes.tcc.ECD52E05F047CAC6.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_classes.tcc.ECD52E05F047CAC6.idx new file mode 100644 index 0000000..f4c90d3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_classes.tcc.ECD52E05F047CAC6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_conv.h.3350A87A5080F7D4.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_conv.h.3350A87A5080F7D4.idx new file mode 100644 index 0000000..a6cc9bc Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_conv.h.3350A87A5080F7D4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets.h.AB77484D55AA9729.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets.h.AB77484D55AA9729.idx new file mode 100644 index 0000000..d372625 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets.h.AB77484D55AA9729.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets.tcc.31137666C322AAAB.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets.tcc.31137666C322AAAB.idx new file mode 100644 index 0000000..51ec872 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets.tcc.31137666C322AAAB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets_nonio.h.462182D41E3B345B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets_nonio.h.462182D41E3B345B.idx new file mode 100644 index 0000000..963d841 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets_nonio.h.462182D41E3B345B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets_nonio.tcc.E76885F262EE6A53.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets_nonio.tcc.E76885F262EE6A53.idx new file mode 100644 index 0000000..973247c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_facets_nonio.tcc.E76885F262EE6A53.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_t.h.557516A6B361170F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_t.h.557516A6B361170F.idx new file mode 100644 index 0000000..57f7b69 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/locale_t.h.557516A6B361170F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/localefwd.h.BD8637AD0ECADD37.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/localefwd.h.BD8637AD0ECADD37.idx new file mode 100644 index 0000000..0aad289 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/localefwd.h.BD8637AD0ECADD37.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/long-double.h.ACD735A1862B6BF8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/long-double.h.ACD735A1862B6BF8.idx new file mode 100644 index 0000000..e0fea1d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/long-double.h.ACD735A1862B6BF8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/main.cpp.0A50AE7F70EFCD64.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/main.cpp.0A50AE7F70EFCD64.idx new file mode 100644 index 0000000..db0bb9f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/main.cpp.0A50AE7F70EFCD64.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/map.DE97978A3D328246.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/map.DE97978A3D328246.idx new file mode 100644 index 0000000..dfc8b37 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/map.DE97978A3D328246.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math-vector.h.B3EAC58DA1700969.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math-vector.h.B3EAC58DA1700969.idx new file mode 100644 index 0000000..ef26ca0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math-vector.h.B3EAC58DA1700969.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math.h.14F03C28EA747D5E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math.h.14F03C28EA747D5E.idx new file mode 100644 index 0000000..ae87f1e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math.h.14F03C28EA747D5E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math.h.DE4D39AAF5AC2C76.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math.h.DE4D39AAF5AC2C76.idx new file mode 100644 index 0000000..9962a94 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/math.h.DE4D39AAF5AC2C76.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-helper-functions.h.934C8C52064E404C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-helper-functions.h.934C8C52064E404C.idx new file mode 100644 index 0000000..1626145 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-helper-functions.h.934C8C52064E404C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-macros.h.768282BB7A7E48E3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-macros.h.768282BB7A7E48E3.idx new file mode 100644 index 0000000..d663232 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-macros.h.768282BB7A7E48E3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-narrow.h.EF4B0E9378BD4EE1.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-narrow.h.EF4B0E9378BD4EE1.idx new file mode 100644 index 0000000..0c02291 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls-narrow.h.EF4B0E9378BD4EE1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls.h.655A2220FF0677F8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls.h.655A2220FF0677F8.idx new file mode 100644 index 0000000..6258b42 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mathcalls.h.655A2220FF0677F8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mbstate_t.h.F9237FB65FF84D5A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mbstate_t.h.F9237FB65FF84D5A.idx new file mode 100644 index 0000000..a7620e7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mbstate_t.h.F9237FB65FF84D5A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memory.4C32146D9B4E31E4.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memory.4C32146D9B4E31E4.idx new file mode 100644 index 0000000..72c12a3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memory.4C32146D9B4E31E4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memory_resource.h.D6E8FB3BE6377562.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memory_resource.h.D6E8FB3BE6377562.idx new file mode 100644 index 0000000..275bb82 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memory_resource.h.D6E8FB3BE6377562.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memoryfwd.h.2916FFF118FE7461.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memoryfwd.h.2916FFF118FE7461.idx new file mode 100644 index 0000000..55b5d15 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/memoryfwd.h.2916FFF118FE7461.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/messages_members.h.D40E959B2D68C3A2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/messages_members.h.D40E959B2D68C3A2.idx new file mode 100644 index 0000000..6d9b972 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/messages_members.h.D40E959B2D68C3A2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/modified_bessel_func.tcc.D6FDB56C1B7B99CC.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/modified_bessel_func.tcc.D6FDB56C1B7B99CC.idx new file mode 100644 index 0000000..4ec486d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/modified_bessel_func.tcc.D6FDB56C1B7B99CC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/monostate.h.A9ED8D82399203B1.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/monostate.h.A9ED8D82399203B1.idx new file mode 100644 index 0000000..8f083b7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/monostate.h.A9ED8D82399203B1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/move.h.F68CE1A1252A72E2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/move.h.F68CE1A1252A72E2.idx new file mode 100644 index 0000000..986744c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/move.h.F68CE1A1252A72E2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mutex.8FB456ACA0898AF6.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mutex.8FB456ACA0898AF6.idx new file mode 100644 index 0000000..bfb78fe Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/mutex.8FB456ACA0898AF6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/nested_exception.h.A121E9D338080312.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/nested_exception.h.A121E9D338080312.idx new file mode 100644 index 0000000..e009d6d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/nested_exception.h.A121E9D338080312.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/new.887BB2C83B5C2EC3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/new.887BB2C83B5C2EC3.idx new file mode 100644 index 0000000..1d8101e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/new.887BB2C83B5C2EC3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/new_allocator.h.EA4A6D67D72040EF.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/new_allocator.h.EA4A6D67D72040EF.idx new file mode 100644 index 0000000..75bf997 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/new_allocator.h.EA4A6D67D72040EF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/node_handle.h.66ADE5E25F866D36.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/node_handle.h.66ADE5E25F866D36.idx new file mode 100644 index 0000000..df34548 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/node_handle.h.66ADE5E25F866D36.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/numeric.DDB77E73C6A4241A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/numeric.DDB77E73C6A4241A.idx new file mode 100644 index 0000000..f55e70a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/numeric.DDB77E73C6A4241A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/numeric_traits.h.DBEB651AF0B4D178.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/numeric_traits.h.DBEB651AF0B4D178.idx new file mode 100644 index 0000000..bb549dd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/numeric_traits.h.DBEB651AF0B4D178.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/optional.70817A28CDE8555F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/optional.70817A28CDE8555F.idx new file mode 100644 index 0000000..4424a1b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/optional.70817A28CDE8555F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/os_defines.h.F9186670C5153E45.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/os_defines.h.F9186670C5153E45.idx new file mode 100644 index 0000000..73fc73e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/os_defines.h.F9186670C5153E45.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.24D537B442EB644F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.24D537B442EB644F.idx new file mode 100644 index 0000000..240aa94 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.24D537B442EB644F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.h.7A40D9456CF08219.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.h.7A40D9456CF08219.idx new file mode 100644 index 0000000..dbff95c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.h.7A40D9456CF08219.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.tcc.27EB1145F2AD662F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.tcc.27EB1145F2AD662F.idx new file mode 100644 index 0000000..9618924 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream.tcc.27EB1145F2AD662F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream_insert.h.AD996E301A7D9206.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream_insert.h.AD996E301A7D9206.idx new file mode 100644 index 0000000..5023a6c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ostream_insert.h.AD996E301A7D9206.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/parse_numbers.h.9EB9A233B7E5240D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/parse_numbers.h.9EB9A233B7E5240D.idx new file mode 100644 index 0000000..b7f9458 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/parse_numbers.h.9EB9A233B7E5240D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/poly_hermite.tcc.BE450385D148C405.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/poly_hermite.tcc.BE450385D148C405.idx new file mode 100644 index 0000000..61b690a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/poly_hermite.tcc.BE450385D148C405.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/poly_laguerre.tcc.68AA80AC6E442574.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/poly_laguerre.tcc.68AA80AC6E442574.idx new file mode 100644 index 0000000..796a058 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/poly_laguerre.tcc.68AA80AC6E442574.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix1_lim.h.D94E4687FC9359FF.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix1_lim.h.D94E4687FC9359FF.idx new file mode 100644 index 0000000..233fd0d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix1_lim.h.D94E4687FC9359FF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix2_lim.h.430DA38A1F301F29.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix2_lim.h.430DA38A1F301F29.idx new file mode 100644 index 0000000..3a5d49d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix2_lim.h.430DA38A1F301F29.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_opt.h.1A6B676984A189EC.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_opt.h.1A6B676984A189EC.idx new file mode 100644 index 0000000..82030f7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_opt.h.1A6B676984A189EC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.6FF29373B7D6D92A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.6FF29373B7D6D92A.idx new file mode 100644 index 0000000..2ab0075 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.6FF29373B7D6D92A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.825B0F552923DCCC.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.825B0F552923DCCC.idx new file mode 100644 index 0000000..ae54f41 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.825B0F552923DCCC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.8EBBF1FC83D6AE77.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.8EBBF1FC83D6AE77.idx new file mode 100644 index 0000000..427bfc7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types.h.8EBBF1FC83D6AE77.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types_64.h.90EEA81235A75C1A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types_64.h.90EEA81235A75C1A.idx new file mode 100644 index 0000000..57c8bcf Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/posix_types_64.h.90EEA81235A75C1A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/postypes.h.A34B9F6AE501999F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/postypes.h.A34B9F6AE501999F.idx new file mode 100644 index 0000000..4b1b424 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/postypes.h.A34B9F6AE501999F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/predefined_ops.h.C255C666336A3121.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/predefined_ops.h.C255C666336A3121.idx new file mode 100644 index 0000000..69b7e62 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/predefined_ops.h.C255C666336A3121.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pstl_config.h.667922AC93F6D702.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pstl_config.h.667922AC93F6D702.idx new file mode 100644 index 0000000..2e1c299 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pstl_config.h.667922AC93F6D702.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthread.h.022320E0CE01A46D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthread.h.022320E0CE01A46D.idx new file mode 100644 index 0000000..60293b9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthread.h.022320E0CE01A46D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthread_stack_min-dynamic.h.6F432801F0DF58B7.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthread_stack_min-dynamic.h.6F432801F0DF58B7.idx new file mode 100644 index 0000000..5b6b105 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthread_stack_min-dynamic.h.6F432801F0DF58B7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthreadtypes-arch.h.9E138C411BE448A0.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthreadtypes-arch.h.9E138C411BE448A0.idx new file mode 100644 index 0000000..921ca96 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthreadtypes-arch.h.9E138C411BE448A0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthreadtypes.h.BAA8217B62BB6E86.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthreadtypes.h.BAA8217B62BB6E86.idx new file mode 100644 index 0000000..afa4a7e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/pthreadtypes.h.BAA8217B62BB6E86.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ptr_traits.h.B3383B435CA2BEB5.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ptr_traits.h.B3383B435CA2BEB5.idx new file mode 100644 index 0000000..1c03474 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ptr_traits.h.B3383B435CA2BEB5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q17memory.h.B9D3D503F069B999.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q17memory.h.B9D3D503F069B999.idx new file mode 100644 index 0000000..24d3ac3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q17memory.h.B9D3D503F069B999.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20functional.h.9AA7C33106EB07A0.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20functional.h.9AA7C33106EB07A0.idx new file mode 100644 index 0000000..52e3bcc Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20functional.h.9AA7C33106EB07A0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20iterator.h.3278987A474ECF35.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20iterator.h.3278987A474ECF35.idx new file mode 100644 index 0000000..ef9278e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20iterator.h.3278987A474ECF35.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20memory.h.CD59814DAF23B038.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20memory.h.CD59814DAF23B038.idx new file mode 100644 index 0000000..66bc0f9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20memory.h.CD59814DAF23B038.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20type_traits.h.645773E246F90516.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20type_traits.h.645773E246F90516.idx new file mode 100644 index 0000000..ec3a532 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20type_traits.h.645773E246F90516.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20utility.h.F57A610C40F1A8DA.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20utility.h.F57A610C40F1A8DA.idx new file mode 100644 index 0000000..f5c3712 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q20utility.h.F57A610C40F1A8DA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q23type_traits.h.E91B98CA03C74840.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q23type_traits.h.E91B98CA03C74840.idx new file mode 100644 index 0000000..1f7ff4b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q23type_traits.h.E91B98CA03C74840.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q23utility.h.8D47E927C6F1442F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q23utility.h.8D47E927C6F1442F.idx new file mode 100644 index 0000000..ae096d3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/q23utility.h.8D47E927C6F1442F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractbutton.h.F40635823B1B9552.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractbutton.h.F40635823B1B9552.idx new file mode 100644 index 0000000..17033f9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractbutton.h.F40635823B1B9552.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstracteventdispatcher.h.FBB165F74E29C831.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstracteventdispatcher.h.FBB165F74E29C831.idx new file mode 100644 index 0000000..a975eeb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstracteventdispatcher.h.FBB165F74E29C831.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemdelegate.h.04B9E52DD7767DFE.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemdelegate.h.04B9E52DD7767DFE.idx new file mode 100644 index 0000000..61fae9a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemdelegate.h.04B9E52DD7767DFE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemmodel.h.EE01BF27C8B38F42.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemmodel.h.EE01BF27C8B38F42.idx new file mode 100644 index 0000000..d4df30a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemmodel.h.EE01BF27C8B38F42.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemview.h.6FEEA42310297BBC.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemview.h.6FEEA42310297BBC.idx new file mode 100644 index 0000000..2522414 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractitemview.h.6FEEA42310297BBC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractscrollarea.h.F88958075E62064D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractscrollarea.h.F88958075E62064D.idx new file mode 100644 index 0000000..61c67e1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractscrollarea.h.F88958075E62064D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractslider.h.CD46E207196A000D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractslider.h.CD46E207196A000D.idx new file mode 100644 index 0000000..912ff93 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractslider.h.CD46E207196A000D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractspinbox.h.D6FC17A84363A267.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractspinbox.h.D6FC17A84363A267.idx new file mode 100644 index 0000000..4cfe196 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qabstractspinbox.h.D6FC17A84363A267.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaction.h.2602002DEDC9CBF0.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaction.h.2602002DEDC9CBF0.idx new file mode 100644 index 0000000..f480117 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaction.h.2602002DEDC9CBF0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qalgorithms.h.7BF875813982504D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qalgorithms.h.7BF875813982504D.idx new file mode 100644 index 0000000..29dcbbf Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qalgorithms.h.7BF875813982504D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qalloc.h.40A666B362F08017.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qalloc.h.40A666B362F08017.idx new file mode 100644 index 0000000..a9677eb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qalloc.h.40A666B362F08017.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qanystringview.h.1C29A3AC5D122DCC.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qanystringview.h.1C29A3AC5D122DCC.idx new file mode 100644 index 0000000..15d5d57 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qanystringview.h.1C29A3AC5D122DCC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qapplication.h.9C173C9865252E11.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qapplication.h.9C173C9865252E11.idx new file mode 100644 index 0000000..c7aab17 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qapplication.h.9C173C9865252E11.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydata.h.27184FEAC06C0FC0.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydata.h.27184FEAC06C0FC0.idx new file mode 100644 index 0000000..ad4232a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydata.h.27184FEAC06C0FC0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydataops.h.76AEBAA3D35DA798.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydataops.h.76AEBAA3D35DA798.idx new file mode 100644 index 0000000..4c52c9a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydataops.h.76AEBAA3D35DA798.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydatapointer.h.7F4F979410A48278.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydatapointer.h.7F4F979410A48278.idx new file mode 100644 index 0000000..c3398a8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qarraydatapointer.h.7F4F979410A48278.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qassert.h.8208A6111CC9448D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qassert.h.8208A6111CC9448D.idx new file mode 100644 index 0000000..aa98c58 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qassert.h.8208A6111CC9448D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qatomic.h.4C7856969715000F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qatomic.h.4C7856969715000F.idx new file mode 100644 index 0000000..6c1fbad Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qatomic.h.4C7856969715000F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qatomic_cxx11.h.55EAA7DF70A55C47.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qatomic_cxx11.h.55EAA7DF70A55C47.idx new file mode 100644 index 0000000..dbe801e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qatomic_cxx11.h.55EAA7DF70A55C47.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudio.h.8DBEC8AD0F9AF239.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudio.h.8DBEC8AD0F9AF239.idx new file mode 100644 index 0000000..97069d1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudio.h.8DBEC8AD0F9AF239.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudioformat.h.A3ABB756260FA551.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudioformat.h.A3ABB756260FA551.idx new file mode 100644 index 0000000..8d169d9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudioformat.h.A3ABB756260FA551.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudiooutput.h.EBCFDD0822ED8DC7.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudiooutput.h.EBCFDD0822ED8DC7.idx new file mode 100644 index 0000000..9dd1a62 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qaudiooutput.h.EBCFDD0822ED8DC7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbasicatomic.h.F5B411EAAF963A38.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbasicatomic.h.F5B411EAAF963A38.idx new file mode 100644 index 0000000..5fe27ce Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbasicatomic.h.F5B411EAAF963A38.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbasictimer.h.34F0B7C43F4851CF.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbasictimer.h.34F0B7C43F4851CF.idx new file mode 100644 index 0000000..c4165db Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbasictimer.h.34F0B7C43F4851CF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbindingstorage.h.CEC03B098FA362E7.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbindingstorage.h.CEC03B098FA362E7.idx new file mode 100644 index 0000000..bf9e256 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbindingstorage.h.CEC03B098FA362E7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbitmap.h.907A1A52CA5D77D9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbitmap.h.907A1A52CA5D77D9.idx new file mode 100644 index 0000000..6d4ffec Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbitmap.h.907A1A52CA5D77D9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qboxlayout.h.7DB3224FFDBBFA88.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qboxlayout.h.7DB3224FFDBBFA88.idx new file mode 100644 index 0000000..4c7a564 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qboxlayout.h.7DB3224FFDBBFA88.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbrush.h.63D6CF74BD7918A4.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbrush.h.63D6CF74BD7918A4.idx new file mode 100644 index 0000000..9e3951a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbrush.h.63D6CF74BD7918A4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbuffer.h.43C8CA764663C4D1.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbuffer.h.43C8CA764663C4D1.idx new file mode 100644 index 0000000..2f0e556 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbuffer.h.43C8CA764663C4D1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearray.h.565E11F4C516827F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearray.h.565E11F4C516827F.idx new file mode 100644 index 0000000..75f631e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearray.h.565E11F4C516827F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearrayalgorithms.h.A8D389D1C817D78A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearrayalgorithms.h.A8D389D1C817D78A.idx new file mode 100644 index 0000000..29f8e60 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearrayalgorithms.h.A8D389D1C817D78A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearraylist.h.BB8A9B201432A8EB.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearraylist.h.BB8A9B201432A8EB.idx new file mode 100644 index 0000000..b73cb91 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearraylist.h.BB8A9B201432A8EB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearrayview.h.7F41FF716349EFDD.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearrayview.h.7F41FF716349EFDD.idx new file mode 100644 index 0000000..c46d372 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qbytearrayview.h.7F41FF716349EFDD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcalendar.h.EF61213D86554591.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcalendar.h.EF61213D86554591.idx new file mode 100644 index 0000000..f9cd8a5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcalendar.h.EF61213D86554591.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qchar.h.B3E003C2BDBD2900.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qchar.h.B3E003C2BDBD2900.idx new file mode 100644 index 0000000..c4d4db1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qchar.h.B3E003C2BDBD2900.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcheckbox.h.54FD0BEE6898FE13.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcheckbox.h.54FD0BEE6898FE13.idx new file mode 100644 index 0000000..a8e5380 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcheckbox.h.54FD0BEE6898FE13.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcheckedint_impl.h.2E2C907274E97556.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcheckedint_impl.h.2E2C907274E97556.idx new file mode 100644 index 0000000..f563b20 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcheckedint_impl.h.2E2C907274E97556.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcolor.h.F6E063DC61692564.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcolor.h.F6E063DC61692564.idx new file mode 100644 index 0000000..ec14120 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcolor.h.F6E063DC61692564.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcombobox.h.438CD065C5E8E60F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcombobox.h.438CD065C5E8E60F.idx new file mode 100644 index 0000000..dccc7d3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcombobox.h.438CD065C5E8E60F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompare.h.4D5E692F9A7F9E36.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompare.h.4D5E692F9A7F9E36.idx new file mode 100644 index 0000000..a48d8fa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompare.h.4D5E692F9A7F9E36.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompare_impl.h.B458356CB5B6C233.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompare_impl.h.B458356CB5B6C233.idx new file mode 100644 index 0000000..8770a21 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompare_impl.h.B458356CB5B6C233.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcomparehelpers.h.7637A97F3165FDCE.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcomparehelpers.h.7637A97F3165FDCE.idx new file mode 100644 index 0000000..bfb3839 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcomparehelpers.h.7637A97F3165FDCE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompilerdetection.h.1CD6493F8E7B75D0.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompilerdetection.h.1CD6493F8E7B75D0.idx new file mode 100644 index 0000000..e9ab418 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcompilerdetection.h.1CD6493F8E7B75D0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qconfig.h.70328E6974564016.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qconfig.h.70328E6974564016.idx new file mode 100644 index 0000000..904c7be Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qconfig.h.70328E6974564016.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qconstructormacros.h.894CEBFBAD6B66AB.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qconstructormacros.h.894CEBFBAD6B66AB.idx new file mode 100644 index 0000000..701f95a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qconstructormacros.h.894CEBFBAD6B66AB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainerfwd.h.F98366C0F8D0FD14.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainerfwd.h.F98366C0F8D0FD14.idx new file mode 100644 index 0000000..cfdb3fc Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainerfwd.h.F98366C0F8D0FD14.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainerinfo.h.A566B82EDC90D942.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainerinfo.h.A566B82EDC90D942.idx new file mode 100644 index 0000000..1ec9f65 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainerinfo.h.A566B82EDC90D942.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainertools_impl.h.51D45FFA54ABE12B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainertools_impl.h.51D45FFA54ABE12B.idx new file mode 100644 index 0000000..25c702e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontainertools_impl.h.51D45FFA54ABE12B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontiguouscache.h.ACAAFBC19475EE5A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontiguouscache.h.ACAAFBC19475EE5A.idx new file mode 100644 index 0000000..ea25884 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcontiguouscache.h.ACAAFBC19475EE5A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreapplication.h.CF7D19A7A63D6F4B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreapplication.h.CF7D19A7A63D6F4B.idx new file mode 100644 index 0000000..d40ce45 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreapplication.h.CF7D19A7A63D6F4B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreapplication_platform.h.0F58E324807B4A74.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreapplication_platform.h.0F58E324807B4A74.idx new file mode 100644 index 0000000..3457497 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreapplication_platform.h.0F58E324807B4A74.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreevent.h.533C53D527B04CCA.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreevent.h.533C53D527B04CCA.idx new file mode 100644 index 0000000..0be2f18 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcoreevent.h.533C53D527B04CCA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcursor.h.CF6D71CF648DF752.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcursor.h.CF6D71CF648DF752.idx new file mode 100644 index 0000000..cc4d1ab Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qcursor.h.CF6D71CF648DF752.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdarwinhelpers.h.42F7CD9ED4BFBEB5.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdarwinhelpers.h.42F7CD9ED4BFBEB5.idx new file mode 100644 index 0000000..da1000a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdarwinhelpers.h.42F7CD9ED4BFBEB5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdatastream.h.1C6394E04E48AF95.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdatastream.h.1C6394E04E48AF95.idx new file mode 100644 index 0000000..00e5ac2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdatastream.h.1C6394E04E48AF95.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdatetime.h.A1D463E5D77ED858.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdatetime.h.A1D463E5D77ED858.idx new file mode 100644 index 0000000..89553a8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdatetime.h.A1D463E5D77ED858.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdeadlinetimer.h.83EFA0D6651960DF.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdeadlinetimer.h.83EFA0D6651960DF.idx new file mode 100644 index 0000000..b886ba8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdeadlinetimer.h.83EFA0D6651960DF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdebug.h.636C321FA77E647B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdebug.h.636C321FA77E647B.idx new file mode 100644 index 0000000..98cdf22 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdebug.h.636C321FA77E647B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdesktopservices.h.908C667319BAE4CD.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdesktopservices.h.908C667319BAE4CD.idx new file mode 100644 index 0000000..d706151 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdesktopservices.h.908C667319BAE4CD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdialog.h.AD3B341BF68004FA.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdialog.h.AD3B341BF68004FA.idx new file mode 100644 index 0000000..11c8e5b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdialog.h.AD3B341BF68004FA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdialogbuttonbox.h.0B494D217D82A808.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdialogbuttonbox.h.0B494D217D82A808.idx new file mode 100644 index 0000000..ab8f2f6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdialogbuttonbox.h.0B494D217D82A808.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdir.h.0F12F4BFA786C84E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdir.h.0F12F4BFA786C84E.idx new file mode 100644 index 0000000..0c2abd2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdir.h.0F12F4BFA786C84E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdirlisting.h.815FFC95484AF548.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdirlisting.h.815FFC95484AF548.idx new file mode 100644 index 0000000..83b80bc Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qdirlisting.h.815FFC95484AF548.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qendian.h.C1BF12378EB93E94.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qendian.h.C1BF12378EB93E94.idx new file mode 100644 index 0000000..149eb87 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qendian.h.C1BF12378EB93E94.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qeventloop.h.36F75E70D6E8EE18.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qeventloop.h.36F75E70D6E8EE18.idx new file mode 100644 index 0000000..913ccce Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qeventloop.h.36F75E70D6E8EE18.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qexceptionhandling.h.BBE8D53D2455CA1F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qexceptionhandling.h.BBE8D53D2455CA1F.idx new file mode 100644 index 0000000..42af97a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qexceptionhandling.h.BBE8D53D2455CA1F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfile.h.5B6924B498C8A4DA.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfile.h.5B6924B498C8A4DA.idx new file mode 100644 index 0000000..103abbd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfile.h.5B6924B498C8A4DA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfiledevice.h.2C10C0C2093DC885.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfiledevice.h.2C10C0C2093DC885.idx new file mode 100644 index 0000000..40d9489 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfiledevice.h.2C10C0C2093DC885.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfiledialog.h.5C613C6F9F38AA40.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfiledialog.h.5C613C6F9F38AA40.idx new file mode 100644 index 0000000..cc6043f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfiledialog.h.5C613C6F9F38AA40.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfileinfo.h.5AF1F79311AD3334.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfileinfo.h.5AF1F79311AD3334.idx new file mode 100644 index 0000000..4691213 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfileinfo.h.5AF1F79311AD3334.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qflags.h.067155F0EF5FDFE6.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qflags.h.067155F0EF5FDFE6.idx new file mode 100644 index 0000000..6e807ee Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qflags.h.067155F0EF5FDFE6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfloat16.h.34AA60BFA1F5D12C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfloat16.h.34AA60BFA1F5D12C.idx new file mode 100644 index 0000000..a187024 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfloat16.h.34AA60BFA1F5D12C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfont.h.88A485A8D181B978.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfont.h.88A485A8D181B978.idx new file mode 100644 index 0000000..8d3db45 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfont.h.88A485A8D181B978.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontinfo.h.5014A50A40CA15CD.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontinfo.h.5014A50A40CA15CD.idx new file mode 100644 index 0000000..855d9ce Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontinfo.h.5014A50A40CA15CD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontmetrics.h.B3767B9F711F2F5C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontmetrics.h.B3767B9F711F2F5C.idx new file mode 100644 index 0000000..bf4f29c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontmetrics.h.B3767B9F711F2F5C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontvariableaxis.h.C4DDDC8D6FADB7F2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontvariableaxis.h.C4DDDC8D6FADB7F2.idx new file mode 100644 index 0000000..d2f1577 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfontvariableaxis.h.C4DDDC8D6FADB7F2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qforeach.h.FEEC29965BEFC79C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qforeach.h.FEEC29965BEFC79C.idx new file mode 100644 index 0000000..32158cb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qforeach.h.FEEC29965BEFC79C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qframe.h.2E627A662AC1883F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qframe.h.2E627A662AC1883F.idx new file mode 100644 index 0000000..7ca7473 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qframe.h.2E627A662AC1883F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfunctionaltools_impl.h.089A6B793E7048A2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfunctionaltools_impl.h.089A6B793E7048A2.idx new file mode 100644 index 0000000..d4716ba Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfunctionaltools_impl.h.089A6B793E7048A2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfunctionpointer.h.BAE5303737869773.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfunctionpointer.h.BAE5303737869773.idx new file mode 100644 index 0000000..68a93e7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qfunctionpointer.h.BAE5303737869773.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgenericatomic.h.33E05115DC5B897C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgenericatomic.h.33E05115DC5B897C.idx new file mode 100644 index 0000000..02ed7a0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgenericatomic.h.33E05115DC5B897C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qglobal.h.BC6C6D8C5C914DE7.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qglobal.h.BC6C6D8C5C914DE7.idx new file mode 100644 index 0000000..1322055 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qglobal.h.BC6C6D8C5C914DE7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qglobalstatic.h.BBC878D15F5BA9AD.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qglobalstatic.h.BBC878D15F5BA9AD.idx new file mode 100644 index 0000000..e3d8912 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qglobalstatic.h.BBC878D15F5BA9AD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgridlayout.h.7F041E11089F55D3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgridlayout.h.7F041E11089F55D3.idx new file mode 100644 index 0000000..65f4977 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgridlayout.h.7F041E11089F55D3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgroupbox.h.5687CDD4B2D8E14E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgroupbox.h.5687CDD4B2D8E14E.idx new file mode 100644 index 0000000..13d7a99 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qgroupbox.h.5687CDD4B2D8E14E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qguiapplication.h.15B8EA7583692C20.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qguiapplication.h.15B8EA7583692C20.idx new file mode 100644 index 0000000..acd73c1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qguiapplication.h.15B8EA7583692C20.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qguiapplication_platform.h.3F44C35909306075.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qguiapplication_platform.h.3F44C35909306075.idx new file mode 100644 index 0000000..3c5814b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qguiapplication_platform.h.3F44C35909306075.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qhash.h.E74938AAA56777DA.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qhash.h.E74938AAA56777DA.idx new file mode 100644 index 0000000..b2bee7e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qhash.h.E74938AAA56777DA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qhashfunctions.h.B740B160B541124F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qhashfunctions.h.B740B160B541124F.idx new file mode 100644 index 0000000..ff7d90a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qhashfunctions.h.B740B160B541124F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qicon.h.7C5B6C2CFF3D6B78.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qicon.h.7C5B6C2CFF3D6B78.idx new file mode 100644 index 0000000..c27d7bf Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qicon.h.7C5B6C2CFF3D6B78.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qimage.h.E4A0F6E91F79A6D4.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qimage.h.E4A0F6E91F79A6D4.idx new file mode 100644 index 0000000..909cad2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qimage.h.E4A0F6E91F79A6D4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qinputdialog.h.6615B674E668BD6D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qinputdialog.h.6615B674E668BD6D.idx new file mode 100644 index 0000000..6f12350 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qinputdialog.h.6615B674E668BD6D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qinputmethod.h.E9F1AFCBBB6027B1.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qinputmethod.h.E9F1AFCBBB6027B1.idx new file mode 100644 index 0000000..4774d5b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qinputmethod.h.E9F1AFCBBB6027B1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiodevice.h.544EFDF0CB7556BF.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiodevice.h.544EFDF0CB7556BF.idx new file mode 100644 index 0000000..ac5b1ff Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiodevice.h.544EFDF0CB7556BF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiodevicebase.h.B4D256DCB066808C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiodevicebase.h.B4D256DCB066808C.idx new file mode 100644 index 0000000..eadeb11 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiodevicebase.h.B4D256DCB066808C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qitemselectionmodel.h.EFCE098883491438.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qitemselectionmodel.h.EFCE098883491438.idx new file mode 100644 index 0000000..799e2c6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qitemselectionmodel.h.EFCE098883491438.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiterable.h.4836C9929711B2AE.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiterable.h.4836C9929711B2AE.idx new file mode 100644 index 0000000..c3767aa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiterable.h.4836C9929711B2AE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiterator.h.96007178DF87A35F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiterator.h.96007178DF87A35F.idx new file mode 100644 index 0000000..d6e256c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qiterator.h.96007178DF87A35F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qkeysequence.h.8198BFBEA32DDC55.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qkeysequence.h.8198BFBEA32DDC55.idx new file mode 100644 index 0000000..cafe034 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qkeysequence.h.8198BFBEA32DDC55.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlabel.h.5A434E0BC011664B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlabel.h.5A434E0BC011664B.idx new file mode 100644 index 0000000..8873686 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlabel.h.5A434E0BC011664B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlatin1stringview.h.C3D53DFC42607A5B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlatin1stringview.h.C3D53DFC42607A5B.idx new file mode 100644 index 0000000..772d1c8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlatin1stringview.h.C3D53DFC42607A5B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlayout.h.699E4FCAE574034A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlayout.h.699E4FCAE574034A.idx new file mode 100644 index 0000000..ab7bbef Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlayout.h.699E4FCAE574034A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlayoutitem.h.D39368BFAEC26AF2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlayoutitem.h.D39368BFAEC26AF2.idx new file mode 100644 index 0000000..5bb1a0a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlayoutitem.h.D39368BFAEC26AF2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qline.h.564ACE0E12165B4A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qline.h.564ACE0E12165B4A.idx new file mode 100644 index 0000000..220eacc Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qline.h.564ACE0E12165B4A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlineedit.h.1225CBEC7C1D814D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlineedit.h.1225CBEC7C1D814D.idx new file mode 100644 index 0000000..a35b505 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlineedit.h.1225CBEC7C1D814D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlist.h.C97D925464536949.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlist.h.C97D925464536949.idx new file mode 100644 index 0000000..63f74b4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlist.h.C97D925464536949.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlistview.h.D191E2DE0FFCC1C6.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlistview.h.D191E2DE0FFCC1C6.idx new file mode 100644 index 0000000..9ed1758 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlistview.h.D191E2DE0FFCC1C6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlistwidget.h.E856690D982E54AE.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlistwidget.h.E856690D982E54AE.idx new file mode 100644 index 0000000..7f44385 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlistwidget.h.E856690D982E54AE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlocale.h.8FAEF51FBF2F8CB6.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlocale.h.8FAEF51FBF2F8CB6.idx new file mode 100644 index 0000000..a5dab59 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlocale.h.8FAEF51FBF2F8CB6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlogging.h.3F757D6B7A085E79.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlogging.h.3F757D6B7A085E79.idx new file mode 100644 index 0000000..7c99168 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qlogging.h.3F757D6B7A085E79.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmainwindow.h.C358A78B3224883F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmainwindow.h.C358A78B3224883F.idx new file mode 100644 index 0000000..efbd97c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmainwindow.h.C358A78B3224883F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmalloc.h.AB1E50F115A1B204.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmalloc.h.AB1E50F115A1B204.idx new file mode 100644 index 0000000..e2c7625 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmalloc.h.AB1E50F115A1B204.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmap.h.BC6270A0B351DE27.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmap.h.BC6270A0B351DE27.idx new file mode 100644 index 0000000..fa3bda2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmap.h.BC6270A0B351DE27.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmargins.h.502B95ACDAB9BE6C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmargins.h.502B95ACDAB9BE6C.idx new file mode 100644 index 0000000..7985607 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmargins.h.502B95ACDAB9BE6C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmath.h.6671B8F7D6995CDB.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmath.h.6671B8F7D6995CDB.idx new file mode 100644 index 0000000..aa4e496 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmath.h.6671B8F7D6995CDB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmenu.h.CDDFFFEAB2B3CB51.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmenu.h.CDDFFFEAB2B3CB51.idx new file mode 100644 index 0000000..c0a5eb5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmenu.h.CDDFFFEAB2B3CB51.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmessagebox.h.0CDD8914475B4B13.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmessagebox.h.0CDD8914475B4B13.idx new file mode 100644 index 0000000..37154e0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmessagebox.h.0CDD8914475B4B13.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmetacontainer.h.BE48B8AD323BC36C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmetacontainer.h.BE48B8AD323BC36C.idx new file mode 100644 index 0000000..06ee89c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmetacontainer.h.BE48B8AD323BC36C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmetatype.h.A6D6050E272F36A9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmetatype.h.A6D6050E272F36A9.idx new file mode 100644 index 0000000..5207d79 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qmetatype.h.A6D6050E272F36A9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qminmax.h.CFF7FCFC14A37B60.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qminmax.h.CFF7FCFC14A37B60.idx new file mode 100644 index 0000000..9fcd33d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qminmax.h.CFF7FCFC14A37B60.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnamespace.h.F09F04DD094C19D9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnamespace.h.F09F04DD094C19D9.idx new file mode 100644 index 0000000..3fab654 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnamespace.h.F09F04DD094C19D9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnativeinterface.h.994C3E74C8185418.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnativeinterface.h.994C3E74C8185418.idx new file mode 100644 index 0000000..5914d47 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnativeinterface.h.994C3E74C8185418.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnumeric.h.FB2D17F68DAE3015.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnumeric.h.FB2D17F68DAE3015.idx new file mode 100644 index 0000000..e19f164 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qnumeric.h.FB2D17F68DAE3015.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobject.h.C5C86991A7784C32.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobject.h.C5C86991A7784C32.idx new file mode 100644 index 0000000..25aed78 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobject.h.C5C86991A7784C32.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobject_impl.h.5A57A760F7915236.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobject_impl.h.5A57A760F7915236.idx new file mode 100644 index 0000000..e49d7ec Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobject_impl.h.5A57A760F7915236.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.A4A5C1715348C69F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.A4A5C1715348C69F.idx new file mode 100644 index 0000000..648f1aa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.A4A5C1715348C69F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.D522895027B56D10.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.D522895027B56D10.idx new file mode 100644 index 0000000..8512c27 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs.h.D522895027B56D10.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs_impl.h.4731ED08AC42E1AD.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs_impl.h.4731ED08AC42E1AD.idx new file mode 100644 index 0000000..274d743 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qobjectdefs_impl.h.4731ED08AC42E1AD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qoverload.h.7A94786C99A5F668.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qoverload.h.7A94786C99A5F668.idx new file mode 100644 index 0000000..a3235d7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qoverload.h.7A94786C99A5F668.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpaintdevice.h.84E33A124CEFC64B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpaintdevice.h.84E33A124CEFC64B.idx new file mode 100644 index 0000000..a10e037 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpaintdevice.h.84E33A124CEFC64B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpair.h.06EAEE0E53DB1D89.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpair.h.06EAEE0E53DB1D89.idx new file mode 100644 index 0000000..5dbdd71 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpair.h.06EAEE0E53DB1D89.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpalette.h.B455F62064A925E1.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpalette.h.B455F62064A925E1.idx new file mode 100644 index 0000000..6e04c68 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpalette.h.B455F62064A925E1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpen.h.6EC12ABEAB1DFA01.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpen.h.6EC12ABEAB1DFA01.idx new file mode 100644 index 0000000..8b920b1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpen.h.6EC12ABEAB1DFA01.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpicture.h.7AFAFBE9162216FD.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpicture.h.7AFAFBE9162216FD.idx new file mode 100644 index 0000000..1ba42e0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpicture.h.7AFAFBE9162216FD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpixelformat.h.6D2137D6FFC0BC0F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpixelformat.h.6D2137D6FFC0BC0F.idx new file mode 100644 index 0000000..42e382c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpixelformat.h.6D2137D6FFC0BC0F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpixmap.h.AA1618A533E3F76F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpixmap.h.AA1618A533E3F76F.idx new file mode 100644 index 0000000..98556b0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpixmap.h.AA1618A533E3F76F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpoint.h.436E9153D8287034.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpoint.h.436E9153D8287034.idx new file mode 100644 index 0000000..a551673 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpoint.h.436E9153D8287034.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpolygon.h.D64177D9C8BF81B1.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpolygon.h.D64177D9C8BF81B1.idx new file mode 100644 index 0000000..bcfaf14 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpolygon.h.D64177D9C8BF81B1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qprocess.h.F51BB638A34827FD.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qprocess.h.F51BB638A34827FD.idx new file mode 100644 index 0000000..2c17a2c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qprocess.h.F51BB638A34827FD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qprocessordetection.h.838386B863F40FC2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qprocessordetection.h.838386B863F40FC2.idx new file mode 100644 index 0000000..c674df1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qprocessordetection.h.838386B863F40FC2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpushbutton.h.8E85338541C344C9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpushbutton.h.8E85338541C344C9.idx new file mode 100644 index 0000000..31fe563 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qpushbutton.h.8E85338541C344C9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrect.h.D8177BE45C0244D3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrect.h.D8177BE45C0244D3.idx new file mode 100644 index 0000000..223a8b9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrect.h.D8177BE45C0244D3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrefcount.h.C05AA95CA2AAD1FF.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrefcount.h.C05AA95CA2AAD1FF.idx new file mode 100644 index 0000000..94e03ab Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrefcount.h.C05AA95CA2AAD1FF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qregion.h.D5057C49869A10E4.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qregion.h.D5057C49869A10E4.idx new file mode 100644 index 0000000..2671622 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qregion.h.D5057C49869A10E4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qregularexpression.h.EF0B965F6B3DD516.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qregularexpression.h.EF0B965F6B3DD516.idx new file mode 100644 index 0000000..59e93b4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qregularexpression.h.EF0B965F6B3DD516.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrgb.h.27CC62A5C4C70EAB.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrgb.h.27CC62A5C4C70EAB.idx new file mode 100644 index 0000000..b4116e4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrgb.h.27CC62A5C4C70EAB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrgba64.h.B80A3CA0C7F0D58F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrgba64.h.B80A3CA0C7F0D58F.idx new file mode 100644 index 0000000..2e59412 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrgba64.h.B80A3CA0C7F0D58F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrubberband.h.D85647B58AB0CB70.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrubberband.h.D85647B58AB0CB70.idx new file mode 100644 index 0000000..838fdc1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qrubberband.h.D85647B58AB0CB70.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qscopedpointer.h.9C7DD02484262494.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qscopedpointer.h.9C7DD02484262494.idx new file mode 100644 index 0000000..a8c2eba Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qscopedpointer.h.9C7DD02484262494.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qscopeguard.h.DA1259831C34A5AE.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qscopeguard.h.DA1259831C34A5AE.idx new file mode 100644 index 0000000..daa6b82 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qscopeguard.h.DA1259831C34A5AE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qset.h.8C76DA81B22B82AF.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qset.h.8C76DA81B22B82AF.idx new file mode 100644 index 0000000..7813595 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qset.h.8C76DA81B22B82AF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qshareddata.h.8DD1570B87B2ADB6.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qshareddata.h.8DD1570B87B2ADB6.idx new file mode 100644 index 0000000..0d3e583 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qshareddata.h.8DD1570B87B2ADB6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qshareddata_impl.h.541A3DFAE64453F8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qshareddata_impl.h.541A3DFAE64453F8.idx new file mode 100644 index 0000000..f3b5a7b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qshareddata_impl.h.541A3DFAE64453F8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsharedpointer.h.C8CBA54B060E51AA.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsharedpointer.h.C8CBA54B060E51AA.idx new file mode 100644 index 0000000..eb79ed7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsharedpointer.h.C8CBA54B060E51AA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsharedpointer_impl.h.B64709278805885B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsharedpointer_impl.h.B64709278805885B.idx new file mode 100644 index 0000000..496b1e1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsharedpointer_impl.h.B64709278805885B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsize.h.88EAA0B7A39BC39F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsize.h.88EAA0B7A39BC39F.idx new file mode 100644 index 0000000..87121d7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsize.h.88EAA0B7A39BC39F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsizepolicy.h.3A8C240B0F1250F6.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsizepolicy.h.3A8C240B0F1250F6.idx new file mode 100644 index 0000000..7a76681 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsizepolicy.h.3A8C240B0F1250F6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qslider.h.EE71DA3F7754F8E3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qslider.h.EE71DA3F7754F8E3.idx new file mode 100644 index 0000000..b73c9a7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qslider.h.EE71DA3F7754F8E3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qspan.h.38E8B8253DFA898F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qspan.h.38E8B8253DFA898F.idx new file mode 100644 index 0000000..abe2d29 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qspan.h.38E8B8253DFA898F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstdlibdetection.h.4018D8D1B0E1371C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstdlibdetection.h.4018D8D1B0E1371C.idx new file mode 100644 index 0000000..571aba4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstdlibdetection.h.4018D8D1B0E1371C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstring.h.176FB8AC60F7905B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstring.h.176FB8AC60F7905B.idx new file mode 100644 index 0000000..19e5f62 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstring.h.176FB8AC60F7905B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringalgorithms.h.C60A65DE871D4091.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringalgorithms.h.C60A65DE871D4091.idx new file mode 100644 index 0000000..00e7208 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringalgorithms.h.C60A65DE871D4091.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringbuilder.h.BCC769125E851912.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringbuilder.h.BCC769125E851912.idx new file mode 100644 index 0000000..8c02b0e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringbuilder.h.BCC769125E851912.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringconverter.h.A5F2420978F33CAB.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringconverter.h.A5F2420978F33CAB.idx new file mode 100644 index 0000000..6a0334f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringconverter.h.A5F2420978F33CAB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringconverter_base.h.FF5A4EE17EC601C5.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringconverter_base.h.FF5A4EE17EC601C5.idx new file mode 100644 index 0000000..e347510 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringconverter_base.h.FF5A4EE17EC601C5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringfwd.h.04452D6DDA278F6F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringfwd.h.04452D6DDA278F6F.idx new file mode 100644 index 0000000..15abb4b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringfwd.h.04452D6DDA278F6F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringlist.h.F7D9E17FCF3B4D16.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringlist.h.F7D9E17FCF3B4D16.idx new file mode 100644 index 0000000..76c9ad5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringlist.h.F7D9E17FCF3B4D16.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringmatcher.h.4C4FF58718C809CC.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringmatcher.h.4C4FF58718C809CC.idx new file mode 100644 index 0000000..974edfd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringmatcher.h.4C4FF58718C809CC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringtokenizer.h.2A933EAE10EDDE84.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringtokenizer.h.2A933EAE10EDDE84.idx new file mode 100644 index 0000000..45ba459 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringtokenizer.h.2A933EAE10EDDE84.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringview.h.020039DFE0FB1123.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringview.h.020039DFE0FB1123.idx new file mode 100644 index 0000000..c0fe7e8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstringview.h.020039DFE0FB1123.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstyle.h.010BB99D4DBEEFCB.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstyle.h.010BB99D4DBEEFCB.idx new file mode 100644 index 0000000..2b85207 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstyle.h.010BB99D4DBEEFCB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstyleoption.h.9FC3E9E2C0F9FC63.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstyleoption.h.9FC3E9E2C0F9FC63.idx new file mode 100644 index 0000000..1c7ff95 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qstyleoption.h.9FC3E9E2C0F9FC63.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qswap.h.1B8C44672BD5BDD8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qswap.h.1B8C44672BD5BDD8.idx new file mode 100644 index 0000000..25c42b9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qswap.h.1B8C44672BD5BDD8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsysinfo.h.3265F544EB06FD58.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsysinfo.h.3265F544EB06FD58.idx new file mode 100644 index 0000000..3c5cf34 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsysinfo.h.3265F544EB06FD58.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsystemdetection.h.575B26ABEF285DB8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsystemdetection.h.575B26ABEF285DB8.idx new file mode 100644 index 0000000..72e43a6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qsystemdetection.h.575B26ABEF285DB8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtabbar.h.99FD33364E046A6F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtabbar.h.99FD33364E046A6F.idx new file mode 100644 index 0000000..d81c84a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtabbar.h.99FD33364E046A6F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtabwidget.h.B72B26D185AD6412.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtabwidget.h.B72B26D185AD6412.idx new file mode 100644 index 0000000..35d86af Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtabwidget.h.B72B26D185AD6412.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtaggedpointer.h.3C12147E64C7BED3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtaggedpointer.h.3C12147E64C7BED3.idx new file mode 100644 index 0000000..cc303ff Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtaggedpointer.h.3C12147E64C7BED3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtaudio.h.37CA5B118D69BF29.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtaudio.h.37CA5B118D69BF29.idx new file mode 100644 index 0000000..e6feb36 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtaudio.h.37CA5B118D69BF29.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtclasshelpermacros.h.96ECB35541CF9F2B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtclasshelpermacros.h.96ECB35541CF9F2B.idx new file mode 100644 index 0000000..c204294 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtclasshelpermacros.h.96ECB35541CF9F2B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtconfiginclude.h.90AA265BD59CCE7A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtconfiginclude.h.90AA265BD59CCE7A.idx new file mode 100644 index 0000000..bc5cef9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtconfiginclude.h.90AA265BD59CCE7A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtconfigmacros.h.9A0DB06B6F1EA842.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtconfigmacros.h.9A0DB06B6F1EA842.idx new file mode 100644 index 0000000..eef88d6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtconfigmacros.h.9A0DB06B6F1EA842.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcore-config.h.4CD2FB66C9C7A031.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcore-config.h.4CD2FB66C9C7A031.idx new file mode 100644 index 0000000..097a4cf Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcore-config.h.4CD2FB66C9C7A031.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcoreexports.h.58E4E7480CB5FEFD.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcoreexports.h.58E4E7480CB5FEFD.idx new file mode 100644 index 0000000..e1d4531 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcoreexports.h.58E4E7480CB5FEFD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcoreglobal.h.7FD6E3C151F643F2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcoreglobal.h.7FD6E3C151F643F2.idx new file mode 100644 index 0000000..315cd46 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtcoreglobal.h.7FD6E3C151F643F2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtdeprecationdefinitions.h.50468DF277FC4A91.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtdeprecationdefinitions.h.50468DF277FC4A91.idx new file mode 100644 index 0000000..312c700 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtdeprecationdefinitions.h.50468DF277FC4A91.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtdeprecationmarkers.h.23E9B25F7A9C5821.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtdeprecationmarkers.h.23E9B25F7A9C5821.idx new file mode 100644 index 0000000..06381ff Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtdeprecationmarkers.h.23E9B25F7A9C5821.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtenvironmentvariables.h.0DD87936A9AF5841.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtenvironmentvariables.h.0DD87936A9AF5841.idx new file mode 100644 index 0000000..e736784 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtenvironmentvariables.h.0DD87936A9AF5841.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextcursor.h.B9C4B4FF3B2D8819.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextcursor.h.B9C4B4FF3B2D8819.idx new file mode 100644 index 0000000..a78c529 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextcursor.h.B9C4B4FF3B2D8819.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextdocument.h.D14AF5F08747C453.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextdocument.h.D14AF5F08747C453.idx new file mode 100644 index 0000000..a65f583 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextdocument.h.D14AF5F08747C453.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextformat.h.AB432E2C85B96149.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextformat.h.AB432E2C85B96149.idx new file mode 100644 index 0000000..ddb7306 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextformat.h.AB432E2C85B96149.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextoption.h.23BA362EB881A18E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextoption.h.23BA362EB881A18E.idx new file mode 100644 index 0000000..e2390a0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextoption.h.23BA362EB881A18E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextstream.h.2E27961613794B58.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextstream.h.2E27961613794B58.idx new file mode 100644 index 0000000..833be0c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtextstream.h.2E27961613794B58.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtformat_impl.h.E1FBDC97A1182E33.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtformat_impl.h.E1FBDC97A1182E33.idx new file mode 100644 index 0000000..cfda4c3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtformat_impl.h.E1FBDC97A1182E33.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtgui-config.h.29836474E22CE61C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtgui-config.h.29836474E22CE61C.idx new file mode 100644 index 0000000..93b1a3b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtgui-config.h.29836474E22CE61C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtguiexports.h.FE1E368F1A8C0387.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtguiexports.h.FE1E368F1A8C0387.idx new file mode 100644 index 0000000..e834669 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtguiexports.h.FE1E368F1A8C0387.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtguiglobal.h.083F01AFA5739374.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtguiglobal.h.083F01AFA5739374.idx new file mode 100644 index 0000000..4414dc0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtguiglobal.h.083F01AFA5739374.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qthread.h.27E88D63546C4E51.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qthread.h.27E88D63546C4E51.idx new file mode 100644 index 0000000..0d63e9c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qthread.h.27E88D63546C4E51.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtimer.h.E778E165EDE570F4.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtimer.h.E778E165EDE570F4.idx new file mode 100644 index 0000000..178c84a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtimer.h.E778E165EDE570F4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtimezone.h.A2A00DB3DF72FBB3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtimezone.h.A2A00DB3DF72FBB3.idx new file mode 100644 index 0000000..b37173b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtimezone.h.A2A00DB3DF72FBB3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmetamacros.h.83A5CB25539DA51B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmetamacros.h.83A5CB25539DA51B.idx new file mode 100644 index 0000000..e024c10 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmetamacros.h.83A5CB25539DA51B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimedia-config.h.860EE2A99003FBF8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimedia-config.h.860EE2A99003FBF8.idx new file mode 100644 index 0000000..5dbafad Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimedia-config.h.860EE2A99003FBF8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimediaexports.h.3F023302D2F5E948.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimediaexports.h.3F023302D2F5E948.idx new file mode 100644 index 0000000..07f4025 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimediaexports.h.3F023302D2F5E948.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimediaglobal.h.8EB9FD8CAFD700BB.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimediaglobal.h.8EB9FD8CAFD700BB.idx new file mode 100644 index 0000000..4c2a190 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtmultimediaglobal.h.8EB9FD8CAFD700BB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtnoop.h.D8B71A76D46B6805.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtnoop.h.D8B71A76D46B6805.idx new file mode 100644 index 0000000..e62a1c2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtnoop.h.D8B71A76D46B6805.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtpreprocessorsupport.h.6A2C440EA5C21885.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtpreprocessorsupport.h.6A2C440EA5C21885.idx new file mode 100644 index 0000000..4d63b96 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtpreprocessorsupport.h.6A2C440EA5C21885.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtransform.h.58042AF5F9840997.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtransform.h.58042AF5F9840997.idx new file mode 100644 index 0000000..556c41d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtransform.h.58042AF5F9840997.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtresource.h.3BA77737F52C0986.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtresource.h.3BA77737F52C0986.idx new file mode 100644 index 0000000..1a89653 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtresource.h.3BA77737F52C0986.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qttranslation.h.1F03B1F5A2B6D347.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qttranslation.h.1F03B1F5A2B6D347.idx new file mode 100644 index 0000000..a903614 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qttranslation.h.1F03B1F5A2B6D347.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qttypetraits.h.7D0C1F7045906091.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qttypetraits.h.7D0C1F7045906091.idx new file mode 100644 index 0000000..6b21ddf Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qttypetraits.h.7D0C1F7045906091.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtversion.h.7CD4C493CEA83ACF.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtversion.h.7CD4C493CEA83ACF.idx new file mode 100644 index 0000000..12a96cd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtversion.h.7CD4C493CEA83ACF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtversionchecks.h.9CAEBF152BDFEFBA.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtversionchecks.h.9CAEBF152BDFEFBA.idx new file mode 100644 index 0000000..78202cf Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtversionchecks.h.9CAEBF152BDFEFBA.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgets-config.h.F4E9B368FD09AD42.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgets-config.h.F4E9B368FD09AD42.idx new file mode 100644 index 0000000..218d41f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgets-config.h.F4E9B368FD09AD42.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgetsexports.h.16126A63D4DB9C95.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgetsexports.h.16126A63D4DB9C95.idx new file mode 100644 index 0000000..c560b90 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgetsexports.h.16126A63D4DB9C95.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgetsglobal.h.6920DB0CBD31F274.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgetsglobal.h.6920DB0CBD31F274.idx new file mode 100644 index 0000000..c4dc5c1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtwidgetsglobal.h.6920DB0CBD31F274.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtypeinfo.h.9896E515309FC718.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtypeinfo.h.9896E515309FC718.idx new file mode 100644 index 0000000..6271610 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtypeinfo.h.9896E515309FC718.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtypes.h.BF1488FFDEABA94F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtypes.h.BF1488FFDEABA94F.idx new file mode 100644 index 0000000..77041b7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qtypes.h.BF1488FFDEABA94F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/quoted_string.h.717A2A4D2456AF8F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/quoted_string.h.717A2A4D2456AF8F.idx new file mode 100644 index 0000000..ce840b2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/quoted_string.h.717A2A4D2456AF8F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qurl.h.3499585C4C1F1FB9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qurl.h.3499585C4C1F1FB9.idx new file mode 100644 index 0000000..49a446a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qurl.h.3499585C4C1F1FB9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qutf8stringview.h.0D3DCB85C4BEBA84.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qutf8stringview.h.0D3DCB85C4BEBA84.idx new file mode 100644 index 0000000..a39da18 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qutf8stringview.h.0D3DCB85C4BEBA84.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvalidator.h.6D9520D0F5871565.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvalidator.h.6D9520D0F5871565.idx new file mode 100644 index 0000000..6e1391f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvalidator.h.6D9520D0F5871565.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvariant.h.19E75CF79EA673F6.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvariant.h.19E75CF79EA673F6.idx new file mode 100644 index 0000000..36dfb3a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvariant.h.19E75CF79EA673F6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvarlengtharray.h.B9AEED89BD113E97.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvarlengtharray.h.B9AEED89BD113E97.idx new file mode 100644 index 0000000..cef6694 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvarlengtharray.h.B9AEED89BD113E97.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvector.h.35334797A1EC5937.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvector.h.35334797A1EC5937.idx new file mode 100644 index 0000000..ee14740 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qvector.h.35334797A1EC5937.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qversiontagging.h.D837B5A6E4A7AB72.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qversiontagging.h.D837B5A6E4A7AB72.idx new file mode 100644 index 0000000..a6f5a56 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qversiontagging.h.D837B5A6E4A7AB72.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qwidget.h.88CBA7DEAED64A1D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qwidget.h.88CBA7DEAED64A1D.idx new file mode 100644 index 0000000..2c77eab Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qwidget.h.88CBA7DEAED64A1D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qwindowdefs.h.1D4989568E2893FD.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qwindowdefs.h.1D4989568E2893FD.idx new file mode 100644 index 0000000..38d00e2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qwindowdefs.h.1D4989568E2893FD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qxptype_traits.h.C81A3D4A0B80193F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qxptype_traits.h.C81A3D4A0B80193F.idx new file mode 100644 index 0000000..84202c9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qxptype_traits.h.C81A3D4A0B80193F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qyieldcpu.h.08A9BA1F5E870AEB.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qyieldcpu.h.08A9BA1F5E870AEB.idx new file mode 100644 index 0000000..d5f1dcb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/qyieldcpu.h.08A9BA1F5E870AEB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/range_access.h.0774A268C1E21ADB.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/range_access.h.0774A268C1E21ADB.idx new file mode 100644 index 0000000..01937cb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/range_access.h.0774A268C1E21ADB.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ratio.79E904F0AD06E0DF.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ratio.79E904F0AD06E0DF.idx new file mode 100644 index 0000000..64b63d4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ratio.79E904F0AD06E0DF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/refwrap.h.6A39B8A186163A76.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/refwrap.h.6A39B8A186163A76.idx new file mode 100644 index 0000000..63d9986 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/refwrap.h.6A39B8A186163A76.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/requires_hosted.h.EFA849A463F299CF.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/requires_hosted.h.EFA849A463F299CF.idx new file mode 100644 index 0000000..1d52193 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/requires_hosted.h.EFA849A463F299CF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/riemann_zeta.tcc.152772F07C5897F1.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/riemann_zeta.tcc.152772F07C5897F1.idx new file mode 100644 index 0000000..2f832e0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/riemann_zeta.tcc.152772F07C5897F1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sched.h.A585A48500495348.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sched.h.A585A48500495348.idx new file mode 100644 index 0000000..a4e02a7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sched.h.A585A48500495348.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sched.h.E8530EF262253892.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sched.h.E8530EF262253892.idx new file mode 100644 index 0000000..5ec84df Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sched.h.E8530EF262253892.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/select.h.BA57472D13519767.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/select.h.BA57472D13519767.idx new file mode 100644 index 0000000..0cfec52 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/select.h.BA57472D13519767.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/select.h.E19325D0BE3592A0.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/select.h.E19325D0BE3592A0.idx new file mode 100644 index 0000000..24b78f0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/select.h.E19325D0BE3592A0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/set.15FBFED9173229F0.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/set.15FBFED9173229F0.idx new file mode 100644 index 0000000..ba69598 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/set.15FBFED9173229F0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/setjmp.h.71DEFB3DCC800794.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/setjmp.h.71DEFB3DCC800794.idx new file mode 100644 index 0000000..59e23c8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/setjmp.h.71DEFB3DCC800794.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr.h.7BBE4D20A8FEB01E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr.h.7BBE4D20A8FEB01E.idx new file mode 100644 index 0000000..3e76889 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr.h.7BBE4D20A8FEB01E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr_atomic.h.7E22A741D516A08B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr_atomic.h.7E22A741D516A08B.idx new file mode 100644 index 0000000..36a5369 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr_atomic.h.7E22A741D516A08B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr_base.h.F831AC839E2ACB54.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr_base.h.F831AC839E2ACB54.idx new file mode 100644 index 0000000..9d5d9c2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/shared_ptr_base.h.F831AC839E2ACB54.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sigset_t.h.32273C537A103809.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sigset_t.h.32273C537A103809.idx new file mode 100644 index 0000000..10444b7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sigset_t.h.32273C537A103809.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/simplewavwriter.h.CB7AC251298A3601.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/simplewavwriter.h.CB7AC251298A3601.idx new file mode 100644 index 0000000..55b124d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/simplewavwriter.h.CB7AC251298A3601.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/single_threaded.h.918E7314A6EC8DC0.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/single_threaded.h.918E7314A6EC8DC0.idx new file mode 100644 index 0000000..6a9e648 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/single_threaded.h.918E7314A6EC8DC0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/specfun.h.C33479C3A96D5E3F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/specfun.h.C33479C3A96D5E3F.idx new file mode 100644 index 0000000..9b6cec7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/specfun.h.C33479C3A96D5E3F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/special_function_util.h.624BAD35A87464F8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/special_function_util.h.624BAD35A87464F8.idx new file mode 100644 index 0000000..787fefa Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/special_function_util.h.624BAD35A87464F8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sstream.F13DA026A0CC0BA1.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sstream.F13DA026A0CC0BA1.idx new file mode 100644 index 0000000..e7f78ea Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sstream.F13DA026A0CC0BA1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sstream.tcc.554AC754923DBB4E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sstream.tcc.554AC754923DBB4E.idx new file mode 100644 index 0000000..465dadc Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/sstream.tcc.554AC754923DBB4E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stat.h.86C3C850450F2AF6.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stat.h.86C3C850450F2AF6.idx new file mode 100644 index 0000000..c4da7ff Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stat.h.86C3C850450F2AF6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_abs.h.C0886288BA2C0B45.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_abs.h.C0886288BA2C0B45.idx new file mode 100644 index 0000000..4109428 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_abs.h.C0886288BA2C0B45.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_function.h.59116F6C185B90E3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_function.h.59116F6C185B90E3.idx new file mode 100644 index 0000000..21e53d8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_function.h.59116F6C185B90E3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_mutex.h.9934CF9880BF2A14.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_mutex.h.9934CF9880BF2A14.idx new file mode 100644 index 0000000..06fcc97 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_mutex.h.9934CF9880BF2A14.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_thread.h.9A2E0C49F4153B81.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_thread.h.9A2E0C49F4153B81.idx new file mode 100644 index 0000000..519c58c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/std_thread.h.9A2E0C49F4153B81.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdarg.h.36D06E2BE7022BC1.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdarg.h.36D06E2BE7022BC1.idx new file mode 100644 index 0000000..ac53223 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdarg.h.36D06E2BE7022BC1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdbool.h.DEDBB67786830E36.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdbool.h.DEDBB67786830E36.idx new file mode 100644 index 0000000..488d73a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdbool.h.DEDBB67786830E36.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdc-predef.h.9EA93D70716BF84B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdc-predef.h.9EA93D70716BF84B.idx new file mode 100644 index 0000000..5a4aa3e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdc-predef.h.9EA93D70716BF84B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stddef.h.530C0A7BAC1383A3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stddef.h.530C0A7BAC1383A3.idx new file mode 100644 index 0000000..bb115b8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stddef.h.530C0A7BAC1383A3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stddef.h.573E230AE7BF71F3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stddef.h.573E230AE7BF71F3.idx new file mode 100644 index 0000000..e09b698 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stddef.h.573E230AE7BF71F3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdexcept.65C5A6293DB475E2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdexcept.65C5A6293DB475E2.idx new file mode 100644 index 0000000..ad82129 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdexcept.65C5A6293DB475E2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-intn.h.EE0939E700184847.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-intn.h.EE0939E700184847.idx new file mode 100644 index 0000000..343ee70 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-intn.h.EE0939E700184847.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-least.h.A0CB5BC401DAC650.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-least.h.A0CB5BC401DAC650.idx new file mode 100644 index 0000000..5df8bf2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-least.h.A0CB5BC401DAC650.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-uintn.h.B3EA113168048B57.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-uintn.h.B3EA113168048B57.idx new file mode 100644 index 0000000..37d9f55 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint-uintn.h.B3EA113168048B57.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint.h.22B451C129B23D79.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint.h.22B451C129B23D79.idx new file mode 100644 index 0000000..4df7b67 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint.h.22B451C129B23D79.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint.h.3C9040AFD7D52CFD.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint.h.3C9040AFD7D52CFD.idx new file mode 100644 index 0000000..1233392 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdint.h.3C9040AFD7D52CFD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdio.h.6919C07CB89D47AD.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdio.h.6919C07CB89D47AD.idx new file mode 100644 index 0000000..d1f0f73 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdio.h.6919C07CB89D47AD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdio_lim.h.09E79B5FC5C8DF86.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdio_lim.h.09E79B5FC5C8DF86.idx new file mode 100644 index 0000000..348a325 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdio_lim.h.09E79B5FC5C8DF86.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib-float.h.126E8959FAE2A511.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib-float.h.126E8959FAE2A511.idx new file mode 100644 index 0000000..8286047 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib-float.h.126E8959FAE2A511.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib.h.61AA7B9EED10C430.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib.h.61AA7B9EED10C430.idx new file mode 100644 index 0000000..3dc7326 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib.h.61AA7B9EED10C430.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib.h.B8DCE457E3619A0A.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib.h.B8DCE457E3619A0A.idx new file mode 100644 index 0000000..9d35b55 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stdlib.h.B8DCE457E3619A0A.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_algo.h.59FD8545765E537E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_algo.h.59FD8545765E537E.idx new file mode 100644 index 0000000..5b3e5ca Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_algo.h.59FD8545765E537E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_algobase.h.AB9590E9F48BE0F9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_algobase.h.AB9590E9F48BE0F9.idx new file mode 100644 index 0000000..5825029 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_algobase.h.AB9590E9F48BE0F9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_bvector.h.CD3CD6C7584E6B76.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_bvector.h.CD3CD6C7584E6B76.idx new file mode 100644 index 0000000..9fd4430 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_bvector.h.CD3CD6C7584E6B76.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_construct.h.7315C52DAB15556E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_construct.h.7315C52DAB15556E.idx new file mode 100644 index 0000000..461d3b4 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_construct.h.7315C52DAB15556E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_function.h.01F1D612B15DA15C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_function.h.01F1D612B15DA15C.idx new file mode 100644 index 0000000..be4b098 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_function.h.01F1D612B15DA15C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_heap.h.88E34651FBAA1756.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_heap.h.88E34651FBAA1756.idx new file mode 100644 index 0000000..acf6c1e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_heap.h.88E34651FBAA1756.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator.h.F0D8C774B50F004F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator.h.F0D8C774B50F004F.idx new file mode 100644 index 0000000..5067a35 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator.h.F0D8C774B50F004F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator_base_funcs.h.F9092E60F2D2E40D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator_base_funcs.h.F9092E60F2D2E40D.idx new file mode 100644 index 0000000..c419e2a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator_base_funcs.h.F9092E60F2D2E40D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator_base_types.h.EB1A61C6BBEC2835.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator_base_types.h.EB1A61C6BBEC2835.idx new file mode 100644 index 0000000..031998f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_iterator_base_types.h.EB1A61C6BBEC2835.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_list.h.60A07D9C4D2B1141.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_list.h.60A07D9C4D2B1141.idx new file mode 100644 index 0000000..866c3be Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_list.h.60A07D9C4D2B1141.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_map.h.F3D08576AE6A2834.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_map.h.F3D08576AE6A2834.idx new file mode 100644 index 0000000..a471436 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_map.h.F3D08576AE6A2834.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_multimap.h.1B6D9788DD7D07DD.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_multimap.h.1B6D9788DD7D07DD.idx new file mode 100644 index 0000000..ee383d9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_multimap.h.1B6D9788DD7D07DD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_multiset.h.3D9B389F88A49127.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_multiset.h.3D9B389F88A49127.idx new file mode 100644 index 0000000..f9b91ac Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_multiset.h.3D9B389F88A49127.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_numeric.h.5523D89033F7E412.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_numeric.h.5523D89033F7E412.idx new file mode 100644 index 0000000..c19a70a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_numeric.h.5523D89033F7E412.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_pair.h.ABC47F820F129412.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_pair.h.ABC47F820F129412.idx new file mode 100644 index 0000000..3f962b3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_pair.h.ABC47F820F129412.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_raw_storage_iter.h.B6F3D1B2AA10F664.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_raw_storage_iter.h.B6F3D1B2AA10F664.idx new file mode 100644 index 0000000..58ed460 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_raw_storage_iter.h.B6F3D1B2AA10F664.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_relops.h.24BFDE02B00E3621.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_relops.h.24BFDE02B00E3621.idx new file mode 100644 index 0000000..4170898 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_relops.h.24BFDE02B00E3621.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_set.h.8BB339BCAB6CDD22.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_set.h.8BB339BCAB6CDD22.idx new file mode 100644 index 0000000..79ebeea Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_set.h.8BB339BCAB6CDD22.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_tempbuf.h.AE733D0801C156D7.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_tempbuf.h.AE733D0801C156D7.idx new file mode 100644 index 0000000..bae93f3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_tempbuf.h.AE733D0801C156D7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_tree.h.BE2F1A89DED77BC9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_tree.h.BE2F1A89DED77BC9.idx new file mode 100644 index 0000000..d8fe954 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_tree.h.BE2F1A89DED77BC9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_uninitialized.h.7FC5838335418811.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_uninitialized.h.7FC5838335418811.idx new file mode 100644 index 0000000..cdb1518 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_uninitialized.h.7FC5838335418811.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_vector.h.36C1AB8BB6AC3AF3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_vector.h.36C1AB8BB6AC3AF3.idx new file mode 100644 index 0000000..2f2ddd6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stl_vector.h.36C1AB8BB6AC3AF3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stream_iterator.h.B2666EF6CEB449A8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stream_iterator.h.B2666EF6CEB449A8.idx new file mode 100644 index 0000000..db9614a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stream_iterator.h.B2666EF6CEB449A8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf.E7F6935DB46FD4B8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf.E7F6935DB46FD4B8.idx new file mode 100644 index 0000000..5bd0529 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf.E7F6935DB46FD4B8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf.tcc.13CF298819F0CF69.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf.tcc.13CF298819F0CF69.idx new file mode 100644 index 0000000..31268b5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf.tcc.13CF298819F0CF69.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf_iterator.h.5699D874BFFFDB9E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf_iterator.h.5699D874BFFFDB9E.idx new file mode 100644 index 0000000..e49c0ff Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/streambuf_iterator.h.5699D874BFFFDB9E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string.D37ED2A68566F1D5.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string.D37ED2A68566F1D5.idx new file mode 100644 index 0000000..207c6b7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string.D37ED2A68566F1D5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string.h.979B97B48AB27554.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string.h.979B97B48AB27554.idx new file mode 100644 index 0000000..c82d36e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string.h.979B97B48AB27554.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_conversions.h.75A058B07D5B6058.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_conversions.h.75A058B07D5B6058.idx new file mode 100644 index 0000000..5af8a07 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_conversions.h.75A058B07D5B6058.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_view.3EE419A7DE7E7D8B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_view.3EE419A7DE7E7D8B.idx new file mode 100644 index 0000000..ae39d11 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_view.3EE419A7DE7E7D8B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_view.tcc.50BF117907489E30.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_view.tcc.50BF117907489E30.idx new file mode 100644 index 0000000..b210ce8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/string_view.tcc.50BF117907489E30.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stringfwd.h.6B3FAF8075248E7D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stringfwd.h.6B3FAF8075248E7D.idx new file mode 100644 index 0000000..a27823e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stringfwd.h.6B3FAF8075248E7D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/strings.h.9EB46A34EB89BB5D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/strings.h.9EB46A34EB89BB5D.idx new file mode 100644 index 0000000..50cf8fd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/strings.h.9EB46A34EB89BB5D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_FILE.h.2B6C435DE91D3DF8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_FILE.h.2B6C435DE91D3DF8.idx new file mode 100644 index 0000000..8da8d17 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_FILE.h.2B6C435DE91D3DF8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct___jmp_buf_tag.h.C41AC0386D4A06C8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct___jmp_buf_tag.h.C41AC0386D4A06C8.idx new file mode 100644 index 0000000..e38f1e2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct___jmp_buf_tag.h.C41AC0386D4A06C8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_iovec.h.2D76C8EFEB1B5ED0.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_iovec.h.2D76C8EFEB1B5ED0.idx new file mode 100644 index 0000000..caa6af0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_iovec.h.2D76C8EFEB1B5ED0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_itimerspec.h.7F2AA6FE7224B30F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_itimerspec.h.7F2AA6FE7224B30F.idx new file mode 100644 index 0000000..1129511 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_itimerspec.h.7F2AA6FE7224B30F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_mutex.h.A62EF32C01DB3505.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_mutex.h.A62EF32C01DB3505.idx new file mode 100644 index 0000000..4c6b714 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_mutex.h.A62EF32C01DB3505.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_rwlock.h.76DF445C3AA414C9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_rwlock.h.76DF445C3AA414C9.idx new file mode 100644 index 0000000..929a035 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_rwlock.h.76DF445C3AA414C9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_sched_param.h.B3F662015F7067C8.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_sched_param.h.B3F662015F7067C8.idx new file mode 100644 index 0000000..2812ec2 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_sched_param.h.B3F662015F7067C8.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_stat.h.E75EF7EFBCB3A8A2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_stat.h.E75EF7EFBCB3A8A2.idx new file mode 100644 index 0000000..c882d4c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_stat.h.E75EF7EFBCB3A8A2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_timespec.h.0E09B6677A8D6A08.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_timespec.h.0E09B6677A8D6A08.idx new file mode 100644 index 0000000..43311be Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_timespec.h.0E09B6677A8D6A08.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_timeval.h.4A17C4CCB9EE5883.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_timeval.h.4A17C4CCB9EE5883.idx new file mode 100644 index 0000000..f9c5eba Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_timeval.h.4A17C4CCB9EE5883.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_tm.h.472DDF26D5924DB0.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_tm.h.472DDF26D5924DB0.idx new file mode 100644 index 0000000..d33b894 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/struct_tm.h.472DDF26D5924DB0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stubs-64.h.C743FD695F310B00.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stubs-64.h.C743FD695F310B00.idx new file mode 100644 index 0000000..89d5d2f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stubs-64.h.C743FD695F310B00.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stubs.h.07D09A29AEBA877C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stubs.h.07D09A29AEBA877C.idx new file mode 100644 index 0000000..cc5fe29 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/stubs.h.07D09A29AEBA877C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/system_error.B42E23DBEA5ED881.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/system_error.B42E23DBEA5ED881.idx new file mode 100644 index 0000000..e88612d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/system_error.B42E23DBEA5ED881.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-baud.h.32B8F616B6773CB4.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-baud.h.32B8F616B6773CB4.idx new file mode 100644 index 0000000..3e5715e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-baud.h.32B8F616B6773CB4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_cc.h.38553586AFDFC21B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_cc.h.38553586AFDFC21B.idx new file mode 100644 index 0000000..15e554c Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_cc.h.38553586AFDFC21B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_cflag.h.8C64D6D25BBE3E95.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_cflag.h.8C64D6D25BBE3E95.idx new file mode 100644 index 0000000..7f1ed42 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_cflag.h.8C64D6D25BBE3E95.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_iflag.h.C95D64964218EE77.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_iflag.h.C95D64964218EE77.idx new file mode 100644 index 0000000..3316f52 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_iflag.h.C95D64964218EE77.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_lflag.h.AF676EB863CA8E60.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_lflag.h.AF676EB863CA8E60.idx new file mode 100644 index 0000000..e2dd356 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_lflag.h.AF676EB863CA8E60.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_oflag.h.395B2C451F9BE0B7.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_oflag.h.395B2C451F9BE0B7.idx new file mode 100644 index 0000000..2c20243 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-c_oflag.h.395B2C451F9BE0B7.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-cbaud.h.C4C9A91359CF9375.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-cbaud.h.C4C9A91359CF9375.idx new file mode 100644 index 0000000..7338bf3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-cbaud.h.C4C9A91359CF9375.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-misc.h.418CF731D3112C2B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-misc.h.418CF731D3112C2B.idx new file mode 100644 index 0000000..da638ca Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-misc.h.418CF731D3112C2B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-struct.h.5E01E6E34C788D15.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-struct.h.5E01E6E34C788D15.idx new file mode 100644 index 0000000..411f31a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-struct.h.5E01E6E34C788D15.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-tcflow.h.990A75D85E4E7F16.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-tcflow.h.990A75D85E4E7F16.idx new file mode 100644 index 0000000..132d29a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios-tcflow.h.990A75D85E4E7F16.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios.h.13717E37BDE03149.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios.h.13717E37BDE03149.idx new file mode 100644 index 0000000..97a746a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios.h.13717E37BDE03149.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios.h.ACC1BC42401E6F68.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios.h.ACC1BC42401E6F68.idx new file mode 100644 index 0000000..5911198 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/termios.h.ACC1BC42401E6F68.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/thread-shared-types.h.D988ADBA7666A8DD.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/thread-shared-types.h.D988ADBA7666A8DD.idx new file mode 100644 index 0000000..ab6dcf1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/thread-shared-types.h.D988ADBA7666A8DD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time.h.E3714B647728C2FE.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time.h.E3714B647728C2FE.idx new file mode 100644 index 0000000..64ea5b1 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time.h.E3714B647728C2FE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time.h.EDC06F0AFB6EC7EC.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time.h.EDC06F0AFB6EC7EC.idx new file mode 100644 index 0000000..1a9a32a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time.h.EDC06F0AFB6EC7EC.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time64.h.1807D6F5124100A2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time64.h.1807D6F5124100A2.idx new file mode 100644 index 0000000..5940f13 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time64.h.1807D6F5124100A2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time_members.h.373A4A15331ADD6D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time_members.h.373A4A15331ADD6D.idx new file mode 100644 index 0000000..d558d3a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time_members.h.373A4A15331ADD6D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time_t.h.CAA645D29A7A0EF9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time_t.h.CAA645D29A7A0EF9.idx new file mode 100644 index 0000000..8f1a687 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/time_t.h.CAA645D29A7A0EF9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timer_t.h.3EFB88CBA2B5B801.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timer_t.h.3EFB88CBA2B5B801.idx new file mode 100644 index 0000000..c239423 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timer_t.h.3EFB88CBA2B5B801.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timesize.h.44719E86E09400E4.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timesize.h.44719E86E09400E4.idx new file mode 100644 index 0000000..8b4a108 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timesize.h.44719E86E09400E4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timex.h.F2D36E17192C32F0.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timex.h.F2D36E17192C32F0.idx new file mode 100644 index 0000000..3cbe94b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/timex.h.F2D36E17192C32F0.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ttydefaults.h.C98530E4C2DE508E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ttydefaults.h.C98530E4C2DE508E.idx new file mode 100644 index 0000000..3d533f9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/ttydefaults.h.C98530E4C2DE508E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/tuple.EA25F1157ED7DA3D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/tuple.EA25F1157ED7DA3D.idx new file mode 100644 index 0000000..49056c8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/tuple.EA25F1157ED7DA3D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/type_traits.B5260392D7506FDF.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/type_traits.B5260392D7506FDF.idx new file mode 100644 index 0000000..67a4bb9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/type_traits.B5260392D7506FDF.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/type_traits.h.1107E36AFD96CC43.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/type_traits.h.1107E36AFD96CC43.idx new file mode 100644 index 0000000..311ee58 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/type_traits.h.1107E36AFD96CC43.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/typeinfo.8B4361F429E21213.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/typeinfo.8B4361F429E21213.idx new file mode 100644 index 0000000..bb752b6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/typeinfo.8B4361F429E21213.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.21D9DEB46A9E0272.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.21D9DEB46A9E0272.idx new file mode 100644 index 0000000..2348400 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.21D9DEB46A9E0272.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.3AD5A0D016060D25.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.3AD5A0D016060D25.idx new file mode 100644 index 0000000..bbc1d4f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.3AD5A0D016060D25.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.BB07396DFADEEB89.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.BB07396DFADEEB89.idx new file mode 100644 index 0000000..05217db Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.BB07396DFADEEB89.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.CAF4DC91124A326D.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.CAF4DC91124A326D.idx new file mode 100644 index 0000000..3206e41 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.CAF4DC91124A326D.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.E5A59583DBE28918.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.E5A59583DBE28918.idx new file mode 100644 index 0000000..2274f98 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.E5A59583DBE28918.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.E5E7FE6DA0F78AF5.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.E5E7FE6DA0F78AF5.idx new file mode 100644 index 0000000..ac5e689 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/types.h.E5E7FE6DA0F78AF5.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/typesizes.h.A6E116B64E63B90B.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/typesizes.h.A6E116B64E63B90B.idx new file mode 100644 index 0000000..f51a53a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/typesizes.h.A6E116B64E63B90B.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uintn-identity.h.CB86545C6FF94BB3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uintn-identity.h.CB86545C6FF94BB3.idx new file mode 100644 index 0000000..e5faaed Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uintn-identity.h.CB86545C6FF94BB3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uio_lim.h.DF584C6AE54BEA07.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uio_lim.h.DF584C6AE54BEA07.idx new file mode 100644 index 0000000..14326bb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uio_lim.h.DF584C6AE54BEA07.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uniform_int_dist.h.537A0A4438989FF3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uniform_int_dist.h.537A0A4438989FF3.idx new file mode 100644 index 0000000..8a772cd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uniform_int_dist.h.537A0A4438989FF3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unique_lock.h.01D81E87B65D6907.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unique_lock.h.01D81E87B65D6907.idx new file mode 100644 index 0000000..bca4b30 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unique_lock.h.01D81E87B65D6907.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unique_ptr.h.4355FA4900B65F20.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unique_ptr.h.4355FA4900B65F20.idx new file mode 100644 index 0000000..06a6306 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unique_ptr.h.4355FA4900B65F20.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unistd.h.4957E2CBEF0B97CE.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unistd.h.4957E2CBEF0B97CE.idx new file mode 100644 index 0000000..97dd08e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unistd.h.4957E2CBEF0B97CE.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unistd_ext.h.19E02BEC0B72F7D2.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unistd_ext.h.19E02BEC0B72F7D2.idx new file mode 100644 index 0000000..a8ca580 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unistd_ext.h.19E02BEC0B72F7D2.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_map.A760230F8D2220D9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_map.A760230F8D2220D9.idx new file mode 100644 index 0000000..bf01b1e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_map.A760230F8D2220D9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_map.h.7C5598CFB03069C4.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_map.h.7C5598CFB03069C4.idx new file mode 100644 index 0000000..84fe959 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_map.h.7C5598CFB03069C4.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_set.380965C92158E271.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_set.380965C92158E271.idx new file mode 100644 index 0000000..0b19b2e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_set.380965C92158E271.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_set.h.97FA8B051DEF998F.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_set.h.97FA8B051DEF998F.idx new file mode 100644 index 0000000..357eb4d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/unordered_set.h.97FA8B051DEF998F.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uses_allocator.h.ABD29684E1303EF9.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uses_allocator.h.ABD29684E1303EF9.idx new file mode 100644 index 0000000..9fffeb7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uses_allocator.h.ABD29684E1303EF9.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uses_allocator_args.h.21CDDC0FE4C83329.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uses_allocator_args.h.21CDDC0FE4C83329.idx new file mode 100644 index 0000000..9cb2c67 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/uses_allocator_args.h.21CDDC0FE4C83329.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/utility.0191A478BB7CF219.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/utility.0191A478BB7CF219.idx new file mode 100644 index 0000000..d4cf1ac Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/utility.0191A478BB7CF219.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/utility.h.AAFC7DB6DCE683E3.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/utility.h.AAFC7DB6DCE683E3.idx new file mode 100644 index 0000000..d80f985 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/utility.h.AAFC7DB6DCE683E3.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/variant.DF2542EEBE1F8C34.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/variant.DF2542EEBE1F8C34.idx new file mode 100644 index 0000000..5199389 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/variant.DF2542EEBE1F8C34.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/vector.19A0304396FDE700.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/vector.19A0304396FDE700.idx new file mode 100644 index 0000000..065df2b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/vector.19A0304396FDE700.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/vector.tcc.EB92608F25B88A68.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/vector.tcc.EB92608F25B88A68.idx new file mode 100644 index 0000000..954b9b6 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/vector.tcc.EB92608F25B88A68.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/version.A7FABC6992BE1FDD.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/version.A7FABC6992BE1FDD.idx new file mode 100644 index 0000000..e1f6a69 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/version.A7FABC6992BE1FDD.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/version.h.8B5F774406BC230E.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/version.h.8B5F774406BC230E.idx new file mode 100644 index 0000000..f766c3b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/version.h.8B5F774406BC230E.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/waitflags.h.8046C5530CD87302.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/waitflags.h.8046C5530CD87302.idx new file mode 100644 index 0000000..986c968 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/waitflags.h.8046C5530CD87302.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/waitstatus.h.D7C4F06852D51050.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/waitstatus.h.D7C4F06852D51050.idx new file mode 100644 index 0000000..4bd4290 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/waitstatus.h.D7C4F06852D51050.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wchar.h.27C0562D93BBAA12.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wchar.h.27C0562D93BBAA12.idx new file mode 100644 index 0000000..ae2dcb9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wchar.h.27C0562D93BBAA12.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wchar.h.83BD995621576773.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wchar.h.83BD995621576773.idx new file mode 100644 index 0000000..0005223 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wchar.h.83BD995621576773.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wctype-wchar.h.D8CFC0DAB89A1342.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wctype-wchar.h.D8CFC0DAB89A1342.idx new file mode 100644 index 0000000..3987d99 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wctype-wchar.h.D8CFC0DAB89A1342.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wctype.h.CC12045E6059335C.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wctype.h.CC12045E6059335C.idx new file mode 100644 index 0000000..bcb1318 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wctype.h.CC12045E6059335C.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wint_t.h.DAC5928CF0BA7895.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wint_t.h.DAC5928CF0BA7895.idx new file mode 100644 index 0000000..75367e9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wint_t.h.DAC5928CF0BA7895.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wordsize.h.23D8030BEC81E6F1.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wordsize.h.23D8030BEC81E6F1.idx new file mode 100644 index 0000000..6de1b1f Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/wordsize.h.23D8030BEC81E6F1.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/xopen_lim.h.E4E4BC8C11167D14.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/xopen_lim.h.E4E4BC8C11167D14.idx new file mode 100644 index 0000000..d5bc954 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/xopen_lim.h.E4E4BC8C11167D14.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/yamitracker.cpp.04A59F8D5F21E1C6.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/yamitracker.cpp.04A59F8D5F21E1C6.idx new file mode 100644 index 0000000..4c1951d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/yamitracker.cpp.04A59F8D5F21E1C6.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/yamitracker.h.4E6DB50F056BC327.idx b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/yamitracker.h.4E6DB50F056BC327.idx new file mode 100644 index 0000000..6eb3649 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/.cache/clangd/index/yamitracker.h.4E6DB50F056BC327.idx differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/compile_commands.json b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/compile_commands.json new file mode 100644 index 0000000..6cdfadd --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd/compile_commands.json @@ -0,0 +1 @@ +[{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-g","-std=gnu++1z","-Wall","-Wextra","-fPIC","-D_REENTRANT","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_QML_DEBUG","-DQT_WIDGETS_LIB","-DQT_MULTIMEDIA_LIB","-DQT_GUI_LIB","-DQT_NETWORK_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker","-I/home/soffti/Qt/6.10.2/gcc_64/include","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtWidgets","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtMultimedia","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtGui","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtNetwork","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug","-I/home/soffti/Qt/6.10.2/gcc_64/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++","/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/main.cpp"],"directory":"/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/main.cpp"},{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-g","-std=gnu++1z","-Wall","-Wextra","-fPIC","-D_REENTRANT","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_QML_DEBUG","-DQT_WIDGETS_LIB","-DQT_MULTIMEDIA_LIB","-DQT_GUI_LIB","-DQT_NETWORK_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker","-I/home/soffti/Qt/6.10.2/gcc_64/include","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtWidgets","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtMultimedia","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtGui","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtNetwork","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug","-I/home/soffti/Qt/6.10.2/gcc_64/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++","/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/yamitracker.cpp"],"directory":"/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/yamitracker.cpp"},{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-g","-std=gnu++1z","-Wall","-Wextra","-fPIC","-D_REENTRANT","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_QML_DEBUG","-DQT_WIDGETS_LIB","-DQT_MULTIMEDIA_LIB","-DQT_GUI_LIB","-DQT_NETWORK_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker","-I/home/soffti/Qt/6.10.2/gcc_64/include","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtWidgets","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtMultimedia","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtGui","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtNetwork","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug","-I/home/soffti/Qt/6.10.2/gcc_64/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++","/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/simplewavwriter.cpp"],"directory":"/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/simplewavwriter.cpp"},{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-g","-std=gnu++1z","-Wall","-Wextra","-fPIC","-D_REENTRANT","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_QML_DEBUG","-DQT_WIDGETS_LIB","-DQT_MULTIMEDIA_LIB","-DQT_GUI_LIB","-DQT_NETWORK_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker","-I/home/soffti/Qt/6.10.2/gcc_64/include","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtWidgets","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtMultimedia","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtGui","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtNetwork","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug","-I/home/soffti/Qt/6.10.2/gcc_64/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++","/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/brrconverter.cpp"],"directory":"/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/brrconverter.cpp"},{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-g","-std=gnu++1z","-Wall","-Wextra","-fPIC","-D_REENTRANT","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_QML_DEBUG","-DQT_WIDGETS_LIB","-DQT_MULTIMEDIA_LIB","-DQT_GUI_LIB","-DQT_NETWORK_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker","-I/home/soffti/Qt/6.10.2/gcc_64/include","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtWidgets","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtMultimedia","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtGui","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtNetwork","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug","-I/home/soffti/Qt/6.10.2/gcc_64/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++-header","/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/yamitracker.h"],"directory":"/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/yamitracker.h"},{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-g","-std=gnu++1z","-Wall","-Wextra","-fPIC","-D_REENTRANT","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_QML_DEBUG","-DQT_WIDGETS_LIB","-DQT_MULTIMEDIA_LIB","-DQT_GUI_LIB","-DQT_NETWORK_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker","-I/home/soffti/Qt/6.10.2/gcc_64/include","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtWidgets","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtMultimedia","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtGui","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtNetwork","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug","-I/home/soffti/Qt/6.10.2/gcc_64/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++-header","/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/simplewavwriter.h"],"directory":"/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/simplewavwriter.h"},{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-g","-std=gnu++1z","-Wall","-Wextra","-fPIC","-D_REENTRANT","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_QML_DEBUG","-DQT_WIDGETS_LIB","-DQT_MULTIMEDIA_LIB","-DQT_GUI_LIB","-DQT_NETWORK_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker","-I/home/soffti/Qt/6.10.2/gcc_64/include","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtWidgets","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtMultimedia","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtGui","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtNetwork","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug","-I/home/soffti/Qt/6.10.2/gcc_64/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++-header","/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/brrconverter.h"],"directory":"/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/brrconverter.h"},{"arguments":["clang","-Wno-documentation-unknown-command","-Wno-unknown-warning-option","-Wno-unknown-pragmas","-nostdinc","-nostdinc++","-pipe","-g","-std=gnu++1z","-Wall","-Wextra","-fPIC","-D_REENTRANT","-fsyntax-only","-m64","--target=x86_64-linux-gnu","-DQT_QML_DEBUG","-DQT_WIDGETS_LIB","-DQT_MULTIMEDIA_LIB","-DQT_GUI_LIB","-DQT_NETWORK_LIB","-DQT_CORE_LIB","-DQ_CREATOR_RUN","-DQT_ANNOTATE_FUNCTION(x)=__attribute__((annotate(#x)))","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders","-I/home/soffti/Qt/Tools/QtCreator/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker","-I/home/soffti/Qt/6.10.2/gcc_64/include","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtWidgets","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtMultimedia","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtGui","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtNetwork","-I/home/soffti/Qt/6.10.2/gcc_64/include/QtCore","-I/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug","-I/home/soffti/Qt/6.10.2/gcc_64/mkspecs/linux-g++","-isystem","/usr/include/c++/15","-isystem","/usr/include/x86_64-linux-gnu/c++/15","-isystem","/usr/include/c++/15/backward","-isystem","/usr/local/include","-isystem","/home/soffti/Qt/Tools/QtCreator/libexec/qtcreator/clang/lib/clang/21/include","-isystem","/usr/include/x86_64-linux-gnu","-isystem","/usr/include","-fmessage-length=0","-fdiagnostics-show-note-include-stack","-fretain-comments-from-system-headers","-fmacro-backtrace-limit=0","-ferror-limit=1000","-x","c++-header","/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/ui_yamitracker.h"],"directory":"/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/.qtc_clangd","file":"/home/soffti/progs/Yami/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/Desktop_Qt_6_10_2-Debug/ui_yamitracker.h"}] \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Makefile b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Makefile new file mode 100644 index 0000000..5ad1994 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Makefile @@ -0,0 +1,460 @@ +############################################################################# +# Makefile for building: Yamitracker +# Generated by qmake (3.1) (Qt 5.15.13) +# Project: ../Yamitracker.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Yamitracker1.0.0 +DISTDIR = /home/sofft328/progs/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/.tmp/Yamitracker1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Multimedia.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Network.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp moc_yamitracker.cpp \ + moc_simplewavwriter.cpp \ + moc_brrconverter.cpp +OBJECTS = main.o \ + yamitracker.o \ + simplewavwriter.o \ + brrconverter.o \ + moc_yamitracker.o \ + moc_simplewavwriter.o \ + moc_brrconverter.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../Yamitracker.pro ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp +QMAKE_TARGET = Yamitracker +DESTDIR = +TARGET = Yamitracker + + +first: all +####### Build rules + +Yamitracker: ui_yamitracker.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../Yamitracker.pro + $(QMAKE) -o Makefile ../Yamitracker.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../Yamitracker.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../Yamitracker.pro + +qmake_all: FORCE + + +all: Makefile Yamitracker + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.h ../simplewavwriter.h ../brrconverter.h $(DISTDIR)/ + $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplewavwriter.cpp ../brrconverter.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_yamitracker.cpp moc_simplewavwriter.cpp moc_brrconverter.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_yamitracker.cpp moc_simplewavwriter.cpp moc_brrconverter.cpp +moc_yamitracker.cpp: ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp + +moc_simplewavwriter.cpp: ../simplewavwriter.h \ + ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../simplewavwriter.h -o moc_simplewavwriter.cpp + +moc_brrconverter.cpp: ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker5/Yamitracker4/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../brrconverter.h -o moc_brrconverter.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_yamitracker.h +compiler_uic_clean: + -$(DEL_FILE) ui_yamitracker.h +ui_yamitracker.h: ../yamitracker.ui \ + /usr/lib/qt5/bin/uic + /usr/lib/qt5/bin/uic ../yamitracker.ui -o ui_yamitracker.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: ../main.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp + +yamitracker.o: ../yamitracker.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + ui_yamitracker.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp + +simplewavwriter.o: ../simplewavwriter.cpp ../simplewavwriter.h \ + ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplewavwriter.o ../simplewavwriter.cpp + +brrconverter.o: ../brrconverter.cpp ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o brrconverter.o ../brrconverter.cpp + +moc_yamitracker.o: moc_yamitracker.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp + +moc_simplewavwriter.o: moc_simplewavwriter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_simplewavwriter.o moc_simplewavwriter.cpp + +moc_brrconverter.o: moc_brrconverter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_brrconverter.o moc_brrconverter.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin + $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Yamitracker b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Yamitracker new file mode 100755 index 0000000..daf3d9a Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/Yamitracker differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/brrconverter.o b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/brrconverter.o new file mode 100644 index 0000000..149ec06 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/main.o b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/main.o new file mode 100644 index 0000000..4329114 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/main.o differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_brrconverter.cpp b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_brrconverter.cpp new file mode 100644 index 0000000..a11b9fc --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_brrconverter.cpp @@ -0,0 +1,95 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'brrconverter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../brrconverter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'brrconverter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_BrrConverter_t { + QByteArrayData data[1]; + char stringdata0[13]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_BrrConverter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_BrrConverter_t qt_meta_stringdata_BrrConverter = { + { +QT_MOC_LITERAL(0, 0, 12) // "BrrConverter" + + }, + "BrrConverter" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_BrrConverter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void BrrConverter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject BrrConverter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_BrrConverter.data, + qt_meta_data_BrrConverter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *BrrConverter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *BrrConverter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_BrrConverter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int BrrConverter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_brrconverter.o b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_brrconverter.o new file mode 100644 index 0000000..fa3b784 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_predefs.h b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_predefs.h new file mode 100644 index 0000000..f29ad61 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_predefs.h @@ -0,0 +1,464 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __cpp_nontype_template_parameter_auto 201606L +#define __UINT_LEAST16_MAX__ 0xffff +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __ATOMIC_ACQUIRE 2 +#define __FLT128_MAX_10_EXP__ 4932 +#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __cpp_aggregate_nsdmi 201304L +#define __UINT_LEAST8_TYPE__ unsigned char +#define __SIZEOF_FLOAT80__ 16 +#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 0xff +#define __SCHAR_WIDTH__ 8 +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 201411L +#define __BFLT16_MIN_10_EXP__ (-37) +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __WCHAR_MAX__ 0x7fffffff +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __cpp_binary_literals 201304L +#define __FLT64_DECIMAL_DIG__ 17 +#define __CET__ 3 +#define __cpp_noexcept_function_type 201510L +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __cpp_variadic_templates 200704L +#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __cpp_variable_templates 201304L +#define __FLT32X_MAX_EXP__ 1024 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __FLT32_HAS_DENORM__ 1 +#define __UINT_FAST8_MAX__ 0xff +#define __cpp_rvalue_reference 200610L +#define __cpp_nested_namespace_definitions 201411L +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __LDBL_HAS_INFINITY__ 1 +#define __INT_LEAST8_WIDTH__ 8 +#define __cpp_variadic_using 201611L +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL +#define __INT_LEAST8_MAX__ 0x7f +#define __cpp_attributes 200809L +#define __cpp_capture_star_this 201603L +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __FLT64X_MAX_10_EXP__ 4932 +#define __cpp_if_constexpr 201606L +#define __BFLT16_MAX_10_EXP__ 38 +#define __BFLT16_MAX_EXP__ 128 +#define __LDBL_IS_IEC_60559__ 1 +#define __FLT64X_HAS_QUIET_NAN__ 1 +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +#define __UINTMAX_TYPE__ long unsigned int +#define __cpp_nsdmi 200809L +#define __BFLT16_DECIMAL_DIG__ 4 +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __OPTIMIZE__ 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +#define __FLT128_MIN_EXP__ (-16381) +#define __WINT_MIN__ 0U +#define __FLT128_MIN_10_EXP__ (-4931) +#define __FLT32X_IS_IEC_60559__ 1 +#define __INT_LEAST16_WIDTH__ 16 +#define __SCHAR_MAX__ 0x7f +#define __FLT128_MANT_DIG__ 113 +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __INT64_C(c) c ## L +#define __SSP_STRONG__ 3 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __ATOMIC_SEQ_CST 5 +#define _FORTIFY_SOURCE 3 +#define __unix 1 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MANT_DIG__ 53 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __cpp_aligned_new 201606L +#define __FLT32_MAX_10_EXP__ 38 +#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +#define __STDC_HOSTED__ 1 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype_auto 201304L +#define __DBL_DIG__ 15 +#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __FLT32_IS_IEC_60559__ 1 +#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +#define __DBL_IS_IEC_60559__ 1 +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806L +#define __cpp_enumerator_attributes 201411L +#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +#define __FLT32X_HAS_INFINITY__ 1 +#define __unix__ 1 +#define __INT_WIDTH__ 32 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __DECIMAL_DIG__ 21 +#define __STDC_IEC_559_COMPLEX__ 1 +#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +#define __gnu_linux__ 1 +#define __INT16_MAX__ 0x7fff +#define __FLT64_MIN_EXP__ (-1021) +#define __FLT64X_MIN_10_EXP__ (-4931) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __cpp_return_type_deduction 201304L +#define __FLT16_MIN_EXP__ (-13) +#define __FLT64_MANT_DIG__ 53 +#define __FLT64X_MANT_DIG__ 64 +#define __BFLT16_DIG__ 2 +#define __GNUC__ 13 +#define __GXX_RTTI 1 +#define __pie__ 2 +#define __MMX__ 1 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __BIGGEST_ALIGNMENT__ 16 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __BFLT16_IS_IEC_60559__ 0 +#define __FLT16_MAX_10_EXP__ 4 +#define __cpp_delegating_constructors 200604L +#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __cpp_raw_strings 200710L +#define __INT_FAST32_MAX__ 0x7fffffffffffffffL +#define __DBL_HAS_INFINITY__ 1 +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __SIZEOF_FLOAT__ 4 +#define __HAVE_SPECULATION_SAFE_VALUE 1 +#define __cpp_fold_expressions 201603L +#define __DEC32_MIN_EXP__ (-94) +#define __INTPTR_WIDTH__ 64 +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ long int +#define __MMX_WITH_SSE__ 1 +#define __LDBL_HAS_DENORM__ 1 +#define __SEG_GS 1 +#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +#define __cplusplus 201703L +#define __cpp_ref_qualifiers 200710L +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610L +#define __DBL_MAX_EXP__ 1024 +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __FLT16_DECIMAL_DIG__ 5 +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 0x7fffffffffffffffL +#define __amd64 1 +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __GNUG__ 13 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 8 +#define __BFLT16_HAS_INFINITY__ 1 +#define __FLT64X_MIN_EXP__ (-16381) +#define __SIZEOF_WINT_T__ 4 +#define __FLT32X_DIG__ 15 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806L +#define __FLT32_MAX_EXP__ 128 +#define __cpp_hex_float 201603L +#define __GXX_ABI_VERSION 1018 +#define __FLT_MIN_EXP__ (-125) +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __x86_64 1 +#define __cpp_lambdas 200907L +#define __INT_FAST64_TYPE__ long int +#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +#define __cpp_template_auto 201606L +#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __SIZEOF_POINTER__ 8 +#define __SIZE_TYPE__ long unsigned int +#define __LP64__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +#define __LDBL_MAX_EXP__ 16384 +#define __DECIMAL_BID_FORMAT__ 1 +#define __FLT64_MIN_10_EXP__ (-307) +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT64X_DECIMAL_DIG__ 21 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __FLT128_HAS_INFINITY__ 1 +#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __FLT_DIG__ 6 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 21 +#define __VERSION__ "13.3.0" +#define __UINT64_C(c) c ## UL +#define __cpp_unicode_characters 201411L +#define _STDC_PREDEF_H 1 +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT128_MAX_EXP__ 16384 +#define __FLT32_MANT_DIG__ 24 +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT32X_MIN_EXP__ (-1021) +#define __STDC_IEC_60559_COMPLEX__ 201404L +#define __cpp_aggregate_bases 201603L +#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +#define __FLT128_HAS_DENORM__ 1 +#define __FLT32_DECIMAL_DIG__ 9 +#define __FLT128_DIG__ 33 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __DEC128_MAX_EXP__ 6145 +#define unix 1 +#define __DBL_HAS_DENORM__ 1 +#define __cpp_rtti 199711L +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __FLT_IS_IEC_60559__ 1 +#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +#define __FLT64X_DIG__ 18 +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309L +#define __ELF__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __UINT32_TYPE__ unsigned int +#define __BFLT16_HAS_QUIET_NAN__ 1 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +#define __UINTMAX_C(c) c ## UL +#define __FLT16_DIG__ 3 +#define __k8 1 +#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __cpp_constexpr 201603L +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +#define __STDC_IEC_60559_BFP__ 201404L +#define __SIZEOF_PTRDIFF_T__ 8 +#define __FLT64X_HAS_INFINITY__ 1 +#define __SIZEOF_LONG__ 8 +#define __LDBL_DIG__ 18 +#define __FLT64_IS_IEC_60559__ 1 +#define __x86_64__ 1 +#define __FLT16_IS_IEC_60559__ 1 +#define __FLT16_MAX_EXP__ 16 +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __INT_FAST16_MAX__ 0x7fffffffffffffffL +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __LONG_MAX__ 0x7fffffffffffffffL +#define __FLT64X_HAS_DENORM__ 1 +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" +#define __cpp_unicode_literals 200710L +#define __UINT_FAST16_TYPE__ long unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __INT_FAST32_WIDTH__ 64 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __SIZE_WIDTH__ 64 +#define __SEG_FS 1 +#define __INT_LEAST16_MAX__ 0x7fff +#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __DEC64_MANT_DIG__ 16 +#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +#define __cpp_structured_bindings 201606L +#define __SIZEOF_INT__ 4 +#define __DEC32_MAX_EXP__ 97 +#define __INT_FAST8_MAX__ 0x7f +#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __INTPTR_MAX__ 0x7fffffffffffffffL +#define __cpp_sized_deallocation 201309L +#define __cpp_guaranteed_copy_elision 201606L +#define linux 1 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __EXCEPTIONS 1 +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 64 +#define __LDBL_MANT_DIG__ 64 +#define __cpp_range_based_for 201603L +#define __INT_FAST16_WIDTH__ 64 +#define __FLT64_HAS_INFINITY__ 1 +#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __FLT16_HAS_INFINITY__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __cpp_nontype_template_args 201411L +#define __DEC32_MANT_DIG__ 7 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __pic__ 2 +#define __UINTPTR_MAX__ 0xffffffffffffffffUL +#define __INT_FAST64_WIDTH__ 64 +#define __cpp_decltype 200707L +#define __INT_FAST64_MAX__ 0x7fffffffffffffffL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +#define __FLT32_HAS_INFINITY__ 1 +#define __FLT64X_MAX_EXP__ 16384 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __cpp_inline_variables 201606L +#define __BFLT16_MIN_EXP__ (-125) +#define __INT_MAX__ 0x7fffffff +#define __linux__ 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __cpp_inheriting_constructors 201511L +#define __SIZEOF_FLOAT128__ 16 +#define __BFLT16_MANT_DIG__ 8 +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __amd64__ 1 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST64_WIDTH__ 64 +#define __FLT32X_MAX_10_EXP__ 308 +#define __cpp_namespace_attributes 201411L +#define __SIZEOF_INT128__ 16 +#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +#define __FLT64X_IS_IEC_60559__ 1 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +#define __INT_LEAST32_TYPE__ int +#define _LP64 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __SIZEOF_WCHAR_T__ 4 +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __FLT128_HAS_QUIET_NAN__ 1 +#define __INTMAX_MAX__ 0x7fffffffffffffffL +#define __INT_FAST8_TYPE__ signed char +#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +#define __STDCPP_THREADS__ 1 +#define __BFLT16_HAS_DENORM__ 1 +#define __GNUC_STDC_INLINE__ 1 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +#define __FLT16_HAS_DENORM__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __FXSR__ 1 +#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __INTMAX_WIDTH__ 64 +#define __cpp_runtime_arrays 198712L +#define __FLT32_DIG__ 6 +#define __UINT64_TYPE__ long unsigned int +#define __UINT32_C(c) c ## U +#define __cpp_alias_templates 200704L +#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +#define __FLT128_IS_IEC_60559__ 1 +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 64 +#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +#define __PIC__ 2 +#define __INT32_MAX__ 0x7fffffff +#define __UINT_FAST32_TYPE__ long unsigned int +#define __FLT16_MANT_DIG__ 11 +#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F +#define __SSE2__ 1 +#define __cpp_deduction_guides 201703L +#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711L +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long int +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 3 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __UINTMAX_MAX__ 0xffffffffffffffffUL +#define __PIE__ 2 +#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +#define __cpp_template_template_args 201611L +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +#define __INT16_C(c) c +#define __STDC__ 1 +#define __PTRDIFF_TYPE__ long int +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __cpp_generic_lambdas 201304L +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809L +#define __FLT128_DECIMAL_DIG__ 36 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL +#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __SIZE_MAX__ 0xffffffffffffffffUL +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __cpp_init_captures 201304L +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_simplewavwriter.cpp b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_simplewavwriter.cpp new file mode 100644 index 0000000..cde09b3 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_simplewavwriter.cpp @@ -0,0 +1,155 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'simplewavwriter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../simplewavwriter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'simplewavwriter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SimpleWavWriter_t { + QByteArrayData data[6]; + char stringdata0[69]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SimpleWavWriter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SimpleWavWriter_t qt_meta_stringdata_SimpleWavWriter = { + { +QT_MOC_LITERAL(0, 0, 15), // "SimpleWavWriter" +QT_MOC_LITERAL(1, 16, 12), // "trackUpdated" +QT_MOC_LITERAL(2, 29, 0), // "" +QT_MOC_LITERAL(3, 30, 5), // "track" +QT_MOC_LITERAL(4, 36, 22), // "recordingStatusChanged" +QT_MOC_LITERAL(5, 59, 9) // "recording" + + }, + "SimpleWavWriter\0trackUpdated\0\0track\0" + "recordingStatusChanged\0recording" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SimpleWavWriter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 2, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 2, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 1, 24, 2, 0x06 /* Public */, + 4, 1, 27, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::Int, 3, + QMetaType::Void, QMetaType::Bool, 5, + + 0 // eod +}; + +void SimpleWavWriter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->trackUpdated((*reinterpret_cast< int(*)>(_a[1]))); break; + case 1: _t->recordingStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SimpleWavWriter::*)(int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SimpleWavWriter::trackUpdated)) { + *result = 0; + return; + } + } + { + using _t = void (SimpleWavWriter::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SimpleWavWriter::recordingStatusChanged)) { + *result = 1; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SimpleWavWriter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SimpleWavWriter.data, + qt_meta_data_SimpleWavWriter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SimpleWavWriter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SimpleWavWriter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SimpleWavWriter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int SimpleWavWriter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 2) + qt_static_metacall(this, _c, _id, _a); + _id -= 2; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 2) + *reinterpret_cast(_a[0]) = -1; + _id -= 2; + } + return _id; +} + +// SIGNAL 0 +void SimpleWavWriter::trackUpdated(int _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SimpleWavWriter::recordingStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_simplewavwriter.o b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_simplewavwriter.o new file mode 100644 index 0000000..5291ccc Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_simplewavwriter.o differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_yamitracker.cpp b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_yamitracker.cpp new file mode 100644 index 0000000..08ee157 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_yamitracker.cpp @@ -0,0 +1,503 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'yamitracker.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../yamitracker.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'yamitracker.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SerialReader_t { + QByteArrayData data[13]; + char stringdata0[145]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SerialReader_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = { + { +QT_MOC_LITERAL(0, 0, 12), // "SerialReader" +QT_MOC_LITERAL(1, 13, 14), // "noteOnReceived" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 4), // "data" +QT_MOC_LITERAL(4, 34, 8), // "velocity" +QT_MOC_LITERAL(5, 43, 15), // "noteOffReceived" +QT_MOC_LITERAL(6, 59, 5), // "error" +QT_MOC_LITERAL(7, 65, 7), // "message" +QT_MOC_LITERAL(8, 73, 23), // "connectionStatusChanged" +QT_MOC_LITERAL(9, 97, 9), // "connected" +QT_MOC_LITERAL(10, 107, 18), // "deviceInfoReceived" +QT_MOC_LITERAL(11, 126, 12), // "manufacturer" +QT_MOC_LITERAL(12, 139, 5) // "model" + + }, + "SerialReader\0noteOnReceived\0\0data\0" + "velocity\0noteOffReceived\0error\0message\0" + "connectionStatusChanged\0connected\0" + "deviceInfoReceived\0manufacturer\0model" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SerialReader[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 5, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 2, 39, 2, 0x06 /* Public */, + 5, 1, 44, 2, 0x06 /* Public */, + 6, 1, 47, 2, 0x06 /* Public */, + 8, 1, 50, 2, 0x06 /* Public */, + 10, 2, 53, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, QMetaType::Bool, 9, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 11, 12, + + 0 // eod +}; + +void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->noteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->noteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->error((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->connectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: _t->deviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SerialReader::*)(const QString & , int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOnReceived)) { + *result = 0; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOffReceived)) { + *result = 1; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::error)) { + *result = 2; + return; + } + } + { + using _t = void (SerialReader::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::connectionStatusChanged)) { + *result = 3; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & , const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::deviceInfoReceived)) { + *result = 4; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SerialReader::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SerialReader.data, + qt_meta_data_SerialReader, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SerialReader::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SerialReader::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0)) + return static_cast(this); + return QThread::qt_metacast(_clname); +} + +int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QThread::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} + +// SIGNAL 0 +void SerialReader::noteOnReceived(const QString & _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SerialReader::noteOffReceived(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void SerialReader::error(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void SerialReader::connectionStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} + +// SIGNAL 4 +void SerialReader::deviceInfoReceived(const QString & _t1, const QString & _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 4, _a); +} +struct qt_meta_stringdata_Yamitracker_t { + QByteArrayData data[51]; + char stringdata0[896]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_Yamitracker_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = { + { +QT_MOC_LITERAL(0, 0, 11), // "Yamitracker" +QT_MOC_LITERAL(1, 12, 13), // "onPlayClicked" +QT_MOC_LITERAL(2, 26, 0), // "" +QT_MOC_LITERAL(3, 27, 14), // "onPauseClicked" +QT_MOC_LITERAL(4, 42, 13), // "onStopClicked" +QT_MOC_LITERAL(5, 56, 22), // "onSaveRecordingClicked" +QT_MOC_LITERAL(6, 79, 21), // "onConvertToBrrClicked" +QT_MOC_LITERAL(7, 101, 22), // "onSaveMusicFileClicked" +QT_MOC_LITERAL(8, 124, 23), // "onRefreshDevicesClicked" +QT_MOC_LITERAL(9, 148, 21), // "onLoadMidiFileClicked" +QT_MOC_LITERAL(10, 170, 21), // "onPlayMidiFileClicked" +QT_MOC_LITERAL(11, 192, 20), // "onRecordFromMidiFile" +QT_MOC_LITERAL(12, 213, 25), // "onSelectedMidiFileChanged" +QT_MOC_LITERAL(13, 239, 25), // "onSelectFileForConversion" +QT_MOC_LITERAL(14, 265, 23), // "onSelectFileForPlayback" +QT_MOC_LITERAL(15, 289, 16), // "onNoteOnReceived" +QT_MOC_LITERAL(16, 306, 4), // "data" +QT_MOC_LITERAL(17, 311, 8), // "velocity" +QT_MOC_LITERAL(18, 320, 17), // "onNoteOffReceived" +QT_MOC_LITERAL(19, 338, 25), // "onConnectionStatusChanged" +QT_MOC_LITERAL(20, 364, 9), // "connected" +QT_MOC_LITERAL(21, 374, 7), // "onError" +QT_MOC_LITERAL(22, 382, 7), // "message" +QT_MOC_LITERAL(23, 390, 20), // "onDeviceInfoReceived" +QT_MOC_LITERAL(24, 411, 12), // "manufacturer" +QT_MOC_LITERAL(25, 424, 5), // "model" +QT_MOC_LITERAL(26, 430, 21), // "onCurrentTrackChanged" +QT_MOC_LITERAL(27, 452, 5), // "index" +QT_MOC_LITERAL(28, 458, 17), // "onAddTrackClicked" +QT_MOC_LITERAL(29, 476, 20), // "onRemoveTrackClicked" +QT_MOC_LITERAL(30, 497, 19), // "onClearTrackClicked" +QT_MOC_LITERAL(31, 517, 18), // "onCopyTrackClicked" +QT_MOC_LITERAL(32, 536, 20), // "onMergeTracksClicked" +QT_MOC_LITERAL(33, 557, 23), // "onLoadWavToTrackClicked" +QT_MOC_LITERAL(34, 581, 18), // "onPlayTrackClicked" +QT_MOC_LITERAL(35, 600, 22), // "onPlayAllTracksClicked" +QT_MOC_LITERAL(36, 623, 21), // "onStopPlaybackClicked" +QT_MOC_LITERAL(37, 645, 18), // "onPlaybackFinished" +QT_MOC_LITERAL(38, 664, 18), // "onMuteTrackClicked" +QT_MOC_LITERAL(39, 683, 18), // "onSoloTrackClicked" +QT_MOC_LITERAL(40, 702, 20), // "onTrackVolumeChanged" +QT_MOC_LITERAL(41, 723, 5), // "value" +QT_MOC_LITERAL(42, 729, 18), // "onTrackNameChanged" +QT_MOC_LITERAL(43, 748, 24), // "onTrackInstrumentChanged" +QT_MOC_LITERAL(44, 773, 22), // "onPlaybackSpeedChanged" +QT_MOC_LITERAL(45, 796, 19), // "onBassVolumeChanged" +QT_MOC_LITERAL(46, 816, 16), // "attemptReconnect" +QT_MOC_LITERAL(47, 833, 23), // "handleAudioStateChanged" +QT_MOC_LITERAL(48, 857, 13), // "QAudio::State" +QT_MOC_LITERAL(49, 871, 5), // "state" +QT_MOC_LITERAL(50, 877, 18) // "clearStatusMessage" + + }, + "Yamitracker\0onPlayClicked\0\0onPauseClicked\0" + "onStopClicked\0onSaveRecordingClicked\0" + "onConvertToBrrClicked\0onSaveMusicFileClicked\0" + "onRefreshDevicesClicked\0onLoadMidiFileClicked\0" + "onPlayMidiFileClicked\0onRecordFromMidiFile\0" + "onSelectedMidiFileChanged\0" + "onSelectFileForConversion\0" + "onSelectFileForPlayback\0onNoteOnReceived\0" + "data\0velocity\0onNoteOffReceived\0" + "onConnectionStatusChanged\0connected\0" + "onError\0message\0onDeviceInfoReceived\0" + "manufacturer\0model\0onCurrentTrackChanged\0" + "index\0onAddTrackClicked\0onRemoveTrackClicked\0" + "onClearTrackClicked\0onCopyTrackClicked\0" + "onMergeTracksClicked\0onLoadWavToTrackClicked\0" + "onPlayTrackClicked\0onPlayAllTracksClicked\0" + "onStopPlaybackClicked\0onPlaybackFinished\0" + "onMuteTrackClicked\0onSoloTrackClicked\0" + "onTrackVolumeChanged\0value\0" + "onTrackNameChanged\0onTrackInstrumentChanged\0" + "onPlaybackSpeedChanged\0onBassVolumeChanged\0" + "attemptReconnect\0handleAudioStateChanged\0" + "QAudio::State\0state\0clearStatusMessage" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_Yamitracker[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 39, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 0, 209, 2, 0x08 /* Private */, + 3, 0, 210, 2, 0x08 /* Private */, + 4, 0, 211, 2, 0x08 /* Private */, + 5, 0, 212, 2, 0x08 /* Private */, + 6, 0, 213, 2, 0x08 /* Private */, + 7, 0, 214, 2, 0x08 /* Private */, + 8, 0, 215, 2, 0x08 /* Private */, + 9, 0, 216, 2, 0x08 /* Private */, + 10, 0, 217, 2, 0x08 /* Private */, + 11, 0, 218, 2, 0x08 /* Private */, + 12, 0, 219, 2, 0x08 /* Private */, + 13, 0, 220, 2, 0x08 /* Private */, + 14, 0, 221, 2, 0x08 /* Private */, + 15, 2, 222, 2, 0x08 /* Private */, + 18, 1, 227, 2, 0x08 /* Private */, + 19, 1, 230, 2, 0x08 /* Private */, + 21, 1, 233, 2, 0x08 /* Private */, + 23, 2, 236, 2, 0x08 /* Private */, + 26, 1, 241, 2, 0x08 /* Private */, + 28, 0, 244, 2, 0x08 /* Private */, + 29, 0, 245, 2, 0x08 /* Private */, + 30, 0, 246, 2, 0x08 /* Private */, + 31, 0, 247, 2, 0x08 /* Private */, + 32, 0, 248, 2, 0x08 /* Private */, + 33, 0, 249, 2, 0x08 /* Private */, + 34, 0, 250, 2, 0x08 /* Private */, + 35, 0, 251, 2, 0x08 /* Private */, + 36, 0, 252, 2, 0x08 /* Private */, + 37, 0, 253, 2, 0x08 /* Private */, + 38, 0, 254, 2, 0x08 /* Private */, + 39, 0, 255, 2, 0x08 /* Private */, + 40, 1, 256, 2, 0x08 /* Private */, + 42, 0, 259, 2, 0x08 /* Private */, + 43, 1, 260, 2, 0x08 /* Private */, + 44, 1, 263, 2, 0x08 /* Private */, + 45, 1, 266, 2, 0x08 /* Private */, + 46, 0, 269, 2, 0x08 /* Private */, + 47, 1, 270, 2, 0x08 /* Private */, + 50, 0, 273, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::QString, QMetaType::Int, 16, 17, + QMetaType::Void, QMetaType::QString, 16, + QMetaType::Void, QMetaType::Bool, 20, + QMetaType::Void, QMetaType::QString, 22, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 24, 25, + QMetaType::Void, QMetaType::Int, 27, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 41, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 27, + QMetaType::Void, QMetaType::Int, 41, + QMetaType::Void, QMetaType::Int, 41, + QMetaType::Void, + QMetaType::Void, 0x80000000 | 48, 49, + QMetaType::Void, + + 0 // eod +}; + +void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onPlayClicked(); break; + case 1: _t->onPauseClicked(); break; + case 2: _t->onStopClicked(); break; + case 3: _t->onSaveRecordingClicked(); break; + case 4: _t->onConvertToBrrClicked(); break; + case 5: _t->onSaveMusicFileClicked(); break; + case 6: _t->onRefreshDevicesClicked(); break; + case 7: _t->onLoadMidiFileClicked(); break; + case 8: _t->onPlayMidiFileClicked(); break; + case 9: _t->onRecordFromMidiFile(); break; + case 10: _t->onSelectedMidiFileChanged(); break; + case 11: _t->onSelectFileForConversion(); break; + case 12: _t->onSelectFileForPlayback(); break; + case 13: _t->onNoteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 14: _t->onNoteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 15: _t->onConnectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 16: _t->onError((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 17: _t->onDeviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + case 18: _t->onCurrentTrackChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 19: _t->onAddTrackClicked(); break; + case 20: _t->onRemoveTrackClicked(); break; + case 21: _t->onClearTrackClicked(); break; + case 22: _t->onCopyTrackClicked(); break; + case 23: _t->onMergeTracksClicked(); break; + case 24: _t->onLoadWavToTrackClicked(); break; + case 25: _t->onPlayTrackClicked(); break; + case 26: _t->onPlayAllTracksClicked(); break; + case 27: _t->onStopPlaybackClicked(); break; + case 28: _t->onPlaybackFinished(); break; + case 29: _t->onMuteTrackClicked(); break; + case 30: _t->onSoloTrackClicked(); break; + case 31: _t->onTrackVolumeChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 32: _t->onTrackNameChanged(); break; + case 33: _t->onTrackInstrumentChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 34: _t->onPlaybackSpeedChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 35: _t->onBassVolumeChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 36: _t->attemptReconnect(); break; + case 37: _t->handleAudioStateChanged((*reinterpret_cast< QAudio::State(*)>(_a[1]))); break; + case 38: _t->clearStatusMessage(); break; + default: ; + } + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + switch (_id) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 37: + switch (*reinterpret_cast(_a[1])) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 0: + *reinterpret_cast(_a[0]) = qRegisterMetaType< QAudio::State >(); break; + } + break; + } + } +} + +QT_INIT_METAOBJECT const QMetaObject Yamitracker::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_Yamitracker.data, + qt_meta_data_Yamitracker, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *Yamitracker::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *Yamitracker::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 39) + qt_static_metacall(this, _c, _id, _a); + _id -= 39; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 39) + qt_static_metacall(this, _c, _id, _a); + _id -= 39; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_yamitracker.o b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_yamitracker.o new file mode 100644 index 0000000..ed24d47 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/moc_yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/music_20251217_133937.s b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/music_20251217_133937.s new file mode 100644 index 0000000..e094bec --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/music_20251217_133937.s @@ -0,0 +1,98 @@ +; Generated by Yamitracker +; Date: 2025-12-17 13:39:39 +; Tracks: 2 + +music_inst_table: + INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2 + INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2 + +pently_patterns: + .addr PPDAT_track0 + .addr PPDAT_track1 + +PPDAT_track0: + .byt D_D2 + .byt N_DH|D_D4 + .byt N_DH|D_D16 + .byt D_D2 + .byt N_FH|D_D16 + .byt N_FH|D_D4 + .byt D_D4 + .byt N_DH|D_D16 + .byt N_DH|D_D4 + .byt D_D4 + .byt N_FH|D_D16 + .byt N_FH|D_D4 + .byt D_D4 + .byt N_DH|D_D16 + .byt N_DH|D_D4 + .byt D_D4 + .byt N_FH|D_D16 + .byt N_FH|D_D4 + .byt D_D4 + .byt N_DH|D_D16 + .byt N_DH|D_D2 + .byt D_D4 + .byt N_FH|D_D16 + .byt N_FH|D_D4 + .byt D_D4 + .byt N_DH|D_D16 + .byt N_DH|D_D4 + .byt D_D8 + .byt N_FH|D_D16 + .byt N_FH|D_D4 + .byt PATEND + +PPDAT_track1: + .byt D_D8 + .byt N_BH|D_D8 + .byt N_BH|D_D16 + .byt D_D8 + .byt N_BH|D_D16 + .byt N_BH|D_D8 + .byt D_D8 + .byt N_BH|D_D16 + .byt N_BH|D_D16 + .byt D_D8 + .byt N_BH|D_D16 + .byt N_BH|D_D8 + .byt D_D8 + .byt N_BH|D_D16 + .byt N_BH|D_D8 + .byt D_D16 + .byt N_BH|D_D16 + .byt N_BH|D_D8 + .byt D_D8 + .byt N_BH|D_D8 + .byt N_BH|D_D16 + .byt D_D8 + .byt N_BH|D_D16 + .byt N_BH|D_D8 + .byt D_D8 + .byt N_BH|D_D16 + .byt N_BH|D_D8 + .byt D_D8 + .byt N_BH|D_D16 + .byt N_BH|D_D8 + .byt D_D8 + .byt N_BH|D_D16 + .byt N_BH|D_D8 + .byt D_D8 + .byt N_BH|D_D16 + .byt N_BH|D_D8 + .byt D_D8 + .byt N_BH|D_D16 + .byt N_BH|D_D16 + .byt PATEND + +pently_songs: + .addr PSDAT_main_song + +PSDAT_main_song: + setTempo 1000 + playPat 0, 0, 23, PLING_8 + playPat 1, 1, 23, PLING_8 + waitRows 169 + stopPat 0 + stopPat 1 + dalSegno diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/music_20251217_141106.s b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/music_20251217_141106.s new file mode 100644 index 0000000..09d0259 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/music_20251217_141106.s @@ -0,0 +1,139 @@ +; Generated by Yamitracker +; Date: 2025-12-17 14:11:08 +; Tracks: 2 + +music_inst_table: + INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2 + INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2 + +pently_patterns: + .addr PPDAT_track0 + .addr PPDAT_track1 + +PPDAT_track0: + .byt D_D8 + .byt D_D8 + .byt D_D8 + .byt D_D2 + .byt N_EH|D_D2 + .byt N_EH|D_D8 + .byt D_D4 + .byt N_GH|D_D2 + .byt N_GH|D_D8 + .byt N_EH|D_D2 + .byt N_EH|D_D8 + .byt D_D8 + .byt D_1 + .byt N_GH|D_D2 + .byt N_GH|D_D8 + .byt D_D4 + .byt N_EH|D_D2 + .byt N_EH|D_D8 + .byt D_D4 + .byt N_GH|D_D2 + .byt N_GH|D_D8 + .byt D_D8 + .byt D_D4 + .byt N_EH|D_D2 + .byt N_EH|D_D8 + .byt D_D8 + .byt D_D2 + .byt N_GH|D_D2 + .byt N_GH|D_D8 + .byt PATEND + +PPDAT_track1: + .byt D_D8 + .byt D_D8 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_D2 + .byt N_AH|D_1 + .byt N_AH|D_D2 + .byt D_1 + .byt N_AH|D_D2 + .byt N_AH|D_D4 + .byt D_1 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_1 + .byt N_AH|D_D2 + .byt N_AH|D_D4 + .byt D_1 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_1 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_D2 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_D2 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_D2 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_1 + .byt N_AH|D_D2 + .byt N_AH|D_D8 + .byt D_D2 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_1 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_1 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_D2 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_D8 + .byt D_D8 + .byt D_D2 + .byt N_AH|D_D2 + .byt N_AH|D_D4 + .byt D_D8 + .byt D_D2 + .byt N_AH|D_D8 + .byt N_AH|D_D2 + .byt D_D8 + .byt D_D4 + .byt N_AH|D_D2 + .byt N_AH|D_D8 + .byt D_D8 + .byt D_D2 + .byt N_AH|D_D2 + .byt N_AH|D_D4 + .byt D_D8 + .byt D_D4 + .byt N_AH|D_D2 + .byt N_AH|D_D4 + .byt D_D8 + .byt D_D4 + .byt N_AH|D_D2 + .byt N_AH|D_D2 + .byt D_D8 + .byt D_D8 + .byt D_D4 + .byt N_AH|D_D2 + .byt N_AH|D_D4 + .byt PATEND + +pently_songs: + .addr PSDAT_main_song + +PSDAT_main_song: + setTempo 1000 + playPat 0, 0, 23, PLING_8 + playPat 1, 1, 23, PLING_8 + waitRows 255 + stopPat 0 + stopPat 1 + dalSegno + +; ОГРАНИЧЕНИЯ PENTLY: +; - Максимальная длительность задержки: D_D8 (255 тиков) +; - Максимальный waitRows: 255 тиков +; - Длительные паузы разбиваются на несколько D_D8 diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/recording_20251217_141055.wav b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/recording_20251217_141055.wav new file mode 100644 index 0000000..13ffce7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/recording_20251217_141055.wav differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/recording_20251217_142507.wav b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/recording_20251217_142507.wav new file mode 100644 index 0000000..10795d3 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/recording_20251217_142507.wav differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/recording_20251217_142645.wav b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/recording_20251217_142645.wav new file mode 100644 index 0000000..a731a47 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/recording_20251217_142645.wav differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/recording_20251217_142724.wav b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/recording_20251217_142724.wav new file mode 100644 index 0000000..2df71a7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/recording_20251217_142724.wav differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/simplewavwriter.o b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/simplewavwriter.o new file mode 100644 index 0000000..cbb5f02 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/simplewavwriter.o differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/ui_yamitracker.h b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/ui_yamitracker.h new file mode 100644 index 0000000..3c73051 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/ui_yamitracker.h @@ -0,0 +1,930 @@ +/******************************************************************************** +** Form generated from reading UI file 'yamitracker.ui' +** +** Created by: Qt User Interface Compiler version 5.15.13 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_YAMITRACKER_H +#define UI_YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Yamitracker +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QHBoxLayout *horizontalLayout; + QLabel *statusLabel; + QSpacerItem *horizontalSpacer; + QLabel *deviceLabel; + QHBoxLayout *horizontalLayout_2; + QLabel *keysInfoLabel; + QProgressBar *volumeBar; + QGroupBox *groupBox; + QHBoxLayout *horizontalLayout_3; + QPushButton *playButton; + QPushButton *pauseButton; + QPushButton *stopButton; + QPushButton *saveRecordingButton; + QPushButton *convertButton; + QPushButton *saveMusicButton; + QGroupBox *groupBox_4; + QHBoxLayout *horizontalLayout_7; + QPushButton *playTrackButton; + QPushButton *playAllButton; + QPushButton *stopPlaybackButton; + QSpacerItem *horizontalSpacer_13; + QPushButton *loadWavButton; + QGroupBox *groupBox_3; + QHBoxLayout *horizontalLayout_6; + QLabel *label_3; + QComboBox *trackComboBox; + QPushButton *addTrackButton; + QPushButton *removeTrackButton; + QPushButton *clearTrackButton; + QPushButton *copyTrackButton; + QPushButton *mergeTrackButton; + QSpacerItem *horizontalSpacer_12; + QLabel *trackInfoLabel; + QScrollArea *scrollArea; + QWidget *scrollAreaWidgetContents; + QVBoxLayout *verticalLayout_4; + QLabel *label_4; + QGroupBox *groupBox_2; + QVBoxLayout *verticalLayout_3; + QHBoxLayout *horizontalLayout_4; + QLabel *label; + QComboBox *instrumentComboBox; + QSpacerItem *horizontalSpacer_20; + QLabel *speedLabel; + QSlider *playbackSpeedSlider; + QLabel *volumeLabel; + QSlider *bassVolumeSlider; + QPushButton *refreshDevicesButton; + QHBoxLayout *horizontalLayout_5; + QPushButton *loadMidiButton; + QPushButton *playMidiButton; + QPushButton *recordFromMidiButton; + QPushButton *selectFileButton; + QPushButton *playFileButton; + QLabel *label_2; + QListWidget *midiFilesList; + QWidget *pianoWidget; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *whiteKeysLayout; + QPushButton *key_C1; + QPushButton *key_D1; + QPushButton *key_E1; + QPushButton *key_F1; + QPushButton *key_G1; + QPushButton *key_A1; + QPushButton *key_B1; + QPushButton *key_C2; + QPushButton *key_D2; + QPushButton *key_E2; + QPushButton *key_F2; + QPushButton *key_G2; + QPushButton *key_A2; + QPushButton *key_B2; + QPushButton *key_C3; + QPushButton *key_D3; + QPushButton *key_E3; + QPushButton *key_F3; + QPushButton *key_G3; + QPushButton *key_A3; + QPushButton *key_B3; + QPushButton *key_C4; + QPushButton *key_D4; + QPushButton *key_E4; + QPushButton *key_F4; + QPushButton *key_G4; + QPushButton *key_A4; + QPushButton *key_B4; + QPushButton *key_C5; + QPushButton *key_D5; + QPushButton *key_E5; + QPushButton *key_F5; + QPushButton *key_G5; + QPushButton *key_A5; + QPushButton *key_B5; + QPushButton *key_C6; + QHBoxLayout *blackKeysLayout; + QSpacerItem *horizontalSpacer_1; + QPushButton *key_Cs1; + QPushButton *key_Ds1; + QSpacerItem *horizontalSpacer_22; + QPushButton *key_Fs1; + QPushButton *key_Gs1; + QPushButton *key_As1; + QSpacerItem *horizontalSpacer_3; + QPushButton *key_Cs2; + QPushButton *key_Ds2; + QSpacerItem *horizontalSpacer_4; + QPushButton *key_Fs2; + QPushButton *key_Gs2; + QPushButton *key_As2; + QSpacerItem *horizontalSpacer_5; + QPushButton *key_Cs3; + QPushButton *key_Ds3; + QSpacerItem *horizontalSpacer_6; + QPushButton *key_Fs3; + QPushButton *key_Gs3; + QPushButton *key_As3; + QSpacerItem *horizontalSpacer_7; + QPushButton *key_Cs4; + QPushButton *key_Ds4; + QSpacerItem *horizontalSpacer_8; + QPushButton *key_Fs4; + QPushButton *key_Gs4; + QPushButton *key_As4; + QSpacerItem *horizontalSpacer_9; + QPushButton *key_Cs5; + QPushButton *key_Ds5; + QSpacerItem *horizontalSpacer_10; + QPushButton *key_Fs5; + QPushButton *key_Gs5; + QPushButton *key_As5; + QSpacerItem *horizontalSpacer_11; + + void setupUi(QMainWindow *Yamitracker) + { + if (Yamitracker->objectName().isEmpty()) + Yamitracker->setObjectName(QString::fromUtf8("Yamitracker")); + Yamitracker->resize(1400, 1000); + centralwidget = new QWidget(Yamitracker); + centralwidget->setObjectName(QString::fromUtf8("centralwidget")); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + statusLabel = new QLabel(centralwidget); + statusLabel->setObjectName(QString::fromUtf8("statusLabel")); + + horizontalLayout->addWidget(statusLabel); + + horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout->addItem(horizontalSpacer); + + deviceLabel = new QLabel(centralwidget); + deviceLabel->setObjectName(QString::fromUtf8("deviceLabel")); + + horizontalLayout->addWidget(deviceLabel); + + + verticalLayout->addLayout(horizontalLayout); + + horizontalLayout_2 = new QHBoxLayout(); + horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2")); + keysInfoLabel = new QLabel(centralwidget); + keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel")); + + horizontalLayout_2->addWidget(keysInfoLabel); + + volumeBar = new QProgressBar(centralwidget); + volumeBar->setObjectName(QString::fromUtf8("volumeBar")); + volumeBar->setValue(0); + + horizontalLayout_2->addWidget(volumeBar); + + + verticalLayout->addLayout(horizontalLayout_2); + + groupBox = new QGroupBox(centralwidget); + groupBox->setObjectName(QString::fromUtf8("groupBox")); + horizontalLayout_3 = new QHBoxLayout(groupBox); + horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3")); + playButton = new QPushButton(groupBox); + playButton->setObjectName(QString::fromUtf8("playButton")); + + horizontalLayout_3->addWidget(playButton); + + pauseButton = new QPushButton(groupBox); + pauseButton->setObjectName(QString::fromUtf8("pauseButton")); + pauseButton->setEnabled(false); + + horizontalLayout_3->addWidget(pauseButton); + + stopButton = new QPushButton(groupBox); + stopButton->setObjectName(QString::fromUtf8("stopButton")); + + horizontalLayout_3->addWidget(stopButton); + + saveRecordingButton = new QPushButton(groupBox); + saveRecordingButton->setObjectName(QString::fromUtf8("saveRecordingButton")); + + horizontalLayout_3->addWidget(saveRecordingButton); + + convertButton = new QPushButton(groupBox); + convertButton->setObjectName(QString::fromUtf8("convertButton")); + + horizontalLayout_3->addWidget(convertButton); + + saveMusicButton = new QPushButton(groupBox); + saveMusicButton->setObjectName(QString::fromUtf8("saveMusicButton")); + + horizontalLayout_3->addWidget(saveMusicButton); + + + verticalLayout->addWidget(groupBox); + + groupBox_4 = new QGroupBox(centralwidget); + groupBox_4->setObjectName(QString::fromUtf8("groupBox_4")); + horizontalLayout_7 = new QHBoxLayout(groupBox_4); + horizontalLayout_7->setObjectName(QString::fromUtf8("horizontalLayout_7")); + playTrackButton = new QPushButton(groupBox_4); + playTrackButton->setObjectName(QString::fromUtf8("playTrackButton")); + + horizontalLayout_7->addWidget(playTrackButton); + + playAllButton = new QPushButton(groupBox_4); + playAllButton->setObjectName(QString::fromUtf8("playAllButton")); + + horizontalLayout_7->addWidget(playAllButton); + + stopPlaybackButton = new QPushButton(groupBox_4); + stopPlaybackButton->setObjectName(QString::fromUtf8("stopPlaybackButton")); + + horizontalLayout_7->addWidget(stopPlaybackButton); + + horizontalSpacer_13 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_7->addItem(horizontalSpacer_13); + + loadWavButton = new QPushButton(groupBox_4); + loadWavButton->setObjectName(QString::fromUtf8("loadWavButton")); + + horizontalLayout_7->addWidget(loadWavButton); + + + verticalLayout->addWidget(groupBox_4); + + groupBox_3 = new QGroupBox(centralwidget); + groupBox_3->setObjectName(QString::fromUtf8("groupBox_3")); + horizontalLayout_6 = new QHBoxLayout(groupBox_3); + horizontalLayout_6->setObjectName(QString::fromUtf8("horizontalLayout_6")); + label_3 = new QLabel(groupBox_3); + label_3->setObjectName(QString::fromUtf8("label_3")); + + horizontalLayout_6->addWidget(label_3); + + trackComboBox = new QComboBox(groupBox_3); + trackComboBox->setObjectName(QString::fromUtf8("trackComboBox")); + + horizontalLayout_6->addWidget(trackComboBox); + + addTrackButton = new QPushButton(groupBox_3); + addTrackButton->setObjectName(QString::fromUtf8("addTrackButton")); + + horizontalLayout_6->addWidget(addTrackButton); + + removeTrackButton = new QPushButton(groupBox_3); + removeTrackButton->setObjectName(QString::fromUtf8("removeTrackButton")); + + horizontalLayout_6->addWidget(removeTrackButton); + + clearTrackButton = new QPushButton(groupBox_3); + clearTrackButton->setObjectName(QString::fromUtf8("clearTrackButton")); + + horizontalLayout_6->addWidget(clearTrackButton); + + copyTrackButton = new QPushButton(groupBox_3); + copyTrackButton->setObjectName(QString::fromUtf8("copyTrackButton")); + + horizontalLayout_6->addWidget(copyTrackButton); + + mergeTrackButton = new QPushButton(groupBox_3); + mergeTrackButton->setObjectName(QString::fromUtf8("mergeTrackButton")); + + horizontalLayout_6->addWidget(mergeTrackButton); + + horizontalSpacer_12 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_6->addItem(horizontalSpacer_12); + + trackInfoLabel = new QLabel(groupBox_3); + trackInfoLabel->setObjectName(QString::fromUtf8("trackInfoLabel")); + + horizontalLayout_6->addWidget(trackInfoLabel); + + + verticalLayout->addWidget(groupBox_3); + + scrollArea = new QScrollArea(centralwidget); + scrollArea->setObjectName(QString::fromUtf8("scrollArea")); + scrollArea->setWidgetResizable(true); + scrollAreaWidgetContents = new QWidget(); + scrollAreaWidgetContents->setObjectName(QString::fromUtf8("scrollAreaWidgetContents")); + scrollAreaWidgetContents->setGeometry(QRect(0, 0, 1380, 300)); + verticalLayout_4 = new QVBoxLayout(scrollAreaWidgetContents); + verticalLayout_4->setObjectName(QString::fromUtf8("verticalLayout_4")); + label_4 = new QLabel(scrollAreaWidgetContents); + label_4->setObjectName(QString::fromUtf8("label_4")); + + verticalLayout_4->addWidget(label_4); + + scrollArea->setWidget(scrollAreaWidgetContents); + + verticalLayout->addWidget(scrollArea); + + groupBox_2 = new QGroupBox(centralwidget); + groupBox_2->setObjectName(QString::fromUtf8("groupBox_2")); + verticalLayout_3 = new QVBoxLayout(groupBox_2); + verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3")); + horizontalLayout_4 = new QHBoxLayout(); + horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4")); + label = new QLabel(groupBox_2); + label->setObjectName(QString::fromUtf8("label")); + + horizontalLayout_4->addWidget(label); + + instrumentComboBox = new QComboBox(groupBox_2); + instrumentComboBox->setObjectName(QString::fromUtf8("instrumentComboBox")); + + horizontalLayout_4->addWidget(instrumentComboBox); + + horizontalSpacer_20 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_4->addItem(horizontalSpacer_20); + + speedLabel = new QLabel(groupBox_2); + speedLabel->setObjectName(QString::fromUtf8("speedLabel")); + + horizontalLayout_4->addWidget(speedLabel); + + playbackSpeedSlider = new QSlider(groupBox_2); + playbackSpeedSlider->setObjectName(QString::fromUtf8("playbackSpeedSlider")); + playbackSpeedSlider->setOrientation(Qt::Horizontal); + playbackSpeedSlider->setMinimum(50); + playbackSpeedSlider->setMaximum(200); + playbackSpeedSlider->setValue(100); + + horizontalLayout_4->addWidget(playbackSpeedSlider); + + volumeLabel = new QLabel(groupBox_2); + volumeLabel->setObjectName(QString::fromUtf8("volumeLabel")); + + horizontalLayout_4->addWidget(volumeLabel); + + bassVolumeSlider = new QSlider(groupBox_2); + bassVolumeSlider->setObjectName(QString::fromUtf8("bassVolumeSlider")); + bassVolumeSlider->setOrientation(Qt::Horizontal); + bassVolumeSlider->setMinimum(100); + bassVolumeSlider->setMaximum(400); + bassVolumeSlider->setValue(200); + + horizontalLayout_4->addWidget(bassVolumeSlider); + + refreshDevicesButton = new QPushButton(groupBox_2); + refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton")); + + horizontalLayout_4->addWidget(refreshDevicesButton); + + + verticalLayout_3->addLayout(horizontalLayout_4); + + horizontalLayout_5 = new QHBoxLayout(); + horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5")); + loadMidiButton = new QPushButton(groupBox_2); + loadMidiButton->setObjectName(QString::fromUtf8("loadMidiButton")); + + horizontalLayout_5->addWidget(loadMidiButton); + + playMidiButton = new QPushButton(groupBox_2); + playMidiButton->setObjectName(QString::fromUtf8("playMidiButton")); + + horizontalLayout_5->addWidget(playMidiButton); + + recordFromMidiButton = new QPushButton(groupBox_2); + recordFromMidiButton->setObjectName(QString::fromUtf8("recordFromMidiButton")); + + horizontalLayout_5->addWidget(recordFromMidiButton); + + selectFileButton = new QPushButton(groupBox_2); + selectFileButton->setObjectName(QString::fromUtf8("selectFileButton")); + + horizontalLayout_5->addWidget(selectFileButton); + + playFileButton = new QPushButton(groupBox_2); + playFileButton->setObjectName(QString::fromUtf8("playFileButton")); + + horizontalLayout_5->addWidget(playFileButton); + + + verticalLayout_3->addLayout(horizontalLayout_5); + + label_2 = new QLabel(groupBox_2); + label_2->setObjectName(QString::fromUtf8("label_2")); + + verticalLayout_3->addWidget(label_2); + + midiFilesList = new QListWidget(groupBox_2); + midiFilesList->setObjectName(QString::fromUtf8("midiFilesList")); + + verticalLayout_3->addWidget(midiFilesList); + + + verticalLayout->addWidget(groupBox_2); + + pianoWidget = new QWidget(centralwidget); + pianoWidget->setObjectName(QString::fromUtf8("pianoWidget")); + verticalLayout_2 = new QVBoxLayout(pianoWidget); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + whiteKeysLayout = new QHBoxLayout(); + whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout")); + key_C1 = new QPushButton(pianoWidget); + key_C1->setObjectName(QString::fromUtf8("key_C1")); + + whiteKeysLayout->addWidget(key_C1); + + key_D1 = new QPushButton(pianoWidget); + key_D1->setObjectName(QString::fromUtf8("key_D1")); + + whiteKeysLayout->addWidget(key_D1); + + key_E1 = new QPushButton(pianoWidget); + key_E1->setObjectName(QString::fromUtf8("key_E1")); + + whiteKeysLayout->addWidget(key_E1); + + key_F1 = new QPushButton(pianoWidget); + key_F1->setObjectName(QString::fromUtf8("key_F1")); + + whiteKeysLayout->addWidget(key_F1); + + key_G1 = new QPushButton(pianoWidget); + key_G1->setObjectName(QString::fromUtf8("key_G1")); + + whiteKeysLayout->addWidget(key_G1); + + key_A1 = new QPushButton(pianoWidget); + key_A1->setObjectName(QString::fromUtf8("key_A1")); + + whiteKeysLayout->addWidget(key_A1); + + key_B1 = new QPushButton(pianoWidget); + key_B1->setObjectName(QString::fromUtf8("key_B1")); + + whiteKeysLayout->addWidget(key_B1); + + key_C2 = new QPushButton(pianoWidget); + key_C2->setObjectName(QString::fromUtf8("key_C2")); + + whiteKeysLayout->addWidget(key_C2); + + key_D2 = new QPushButton(pianoWidget); + key_D2->setObjectName(QString::fromUtf8("key_D2")); + + whiteKeysLayout->addWidget(key_D2); + + key_E2 = new QPushButton(pianoWidget); + key_E2->setObjectName(QString::fromUtf8("key_E2")); + + whiteKeysLayout->addWidget(key_E2); + + key_F2 = new QPushButton(pianoWidget); + key_F2->setObjectName(QString::fromUtf8("key_F2")); + + whiteKeysLayout->addWidget(key_F2); + + key_G2 = new QPushButton(pianoWidget); + key_G2->setObjectName(QString::fromUtf8("key_G2")); + + whiteKeysLayout->addWidget(key_G2); + + key_A2 = new QPushButton(pianoWidget); + key_A2->setObjectName(QString::fromUtf8("key_A2")); + + whiteKeysLayout->addWidget(key_A2); + + key_B2 = new QPushButton(pianoWidget); + key_B2->setObjectName(QString::fromUtf8("key_B2")); + + whiteKeysLayout->addWidget(key_B2); + + key_C3 = new QPushButton(pianoWidget); + key_C3->setObjectName(QString::fromUtf8("key_C3")); + + whiteKeysLayout->addWidget(key_C3); + + key_D3 = new QPushButton(pianoWidget); + key_D3->setObjectName(QString::fromUtf8("key_D3")); + + whiteKeysLayout->addWidget(key_D3); + + key_E3 = new QPushButton(pianoWidget); + key_E3->setObjectName(QString::fromUtf8("key_E3")); + + whiteKeysLayout->addWidget(key_E3); + + key_F3 = new QPushButton(pianoWidget); + key_F3->setObjectName(QString::fromUtf8("key_F3")); + + whiteKeysLayout->addWidget(key_F3); + + key_G3 = new QPushButton(pianoWidget); + key_G3->setObjectName(QString::fromUtf8("key_G3")); + + whiteKeysLayout->addWidget(key_G3); + + key_A3 = new QPushButton(pianoWidget); + key_A3->setObjectName(QString::fromUtf8("key_A3")); + + whiteKeysLayout->addWidget(key_A3); + + key_B3 = new QPushButton(pianoWidget); + key_B3->setObjectName(QString::fromUtf8("key_B3")); + + whiteKeysLayout->addWidget(key_B3); + + key_C4 = new QPushButton(pianoWidget); + key_C4->setObjectName(QString::fromUtf8("key_C4")); + + whiteKeysLayout->addWidget(key_C4); + + key_D4 = new QPushButton(pianoWidget); + key_D4->setObjectName(QString::fromUtf8("key_D4")); + + whiteKeysLayout->addWidget(key_D4); + + key_E4 = new QPushButton(pianoWidget); + key_E4->setObjectName(QString::fromUtf8("key_E4")); + + whiteKeysLayout->addWidget(key_E4); + + key_F4 = new QPushButton(pianoWidget); + key_F4->setObjectName(QString::fromUtf8("key_F4")); + + whiteKeysLayout->addWidget(key_F4); + + key_G4 = new QPushButton(pianoWidget); + key_G4->setObjectName(QString::fromUtf8("key_G4")); + + whiteKeysLayout->addWidget(key_G4); + + key_A4 = new QPushButton(pianoWidget); + key_A4->setObjectName(QString::fromUtf8("key_A4")); + + whiteKeysLayout->addWidget(key_A4); + + key_B4 = new QPushButton(pianoWidget); + key_B4->setObjectName(QString::fromUtf8("key_B4")); + + whiteKeysLayout->addWidget(key_B4); + + key_C5 = new QPushButton(pianoWidget); + key_C5->setObjectName(QString::fromUtf8("key_C5")); + + whiteKeysLayout->addWidget(key_C5); + + key_D5 = new QPushButton(pianoWidget); + key_D5->setObjectName(QString::fromUtf8("key_D5")); + + whiteKeysLayout->addWidget(key_D5); + + key_E5 = new QPushButton(pianoWidget); + key_E5->setObjectName(QString::fromUtf8("key_E5")); + + whiteKeysLayout->addWidget(key_E5); + + key_F5 = new QPushButton(pianoWidget); + key_F5->setObjectName(QString::fromUtf8("key_F5")); + + whiteKeysLayout->addWidget(key_F5); + + key_G5 = new QPushButton(pianoWidget); + key_G5->setObjectName(QString::fromUtf8("key_G5")); + + whiteKeysLayout->addWidget(key_G5); + + key_A5 = new QPushButton(pianoWidget); + key_A5->setObjectName(QString::fromUtf8("key_A5")); + + whiteKeysLayout->addWidget(key_A5); + + key_B5 = new QPushButton(pianoWidget); + key_B5->setObjectName(QString::fromUtf8("key_B5")); + + whiteKeysLayout->addWidget(key_B5); + + key_C6 = new QPushButton(pianoWidget); + key_C6->setObjectName(QString::fromUtf8("key_C6")); + + whiteKeysLayout->addWidget(key_C6); + + + verticalLayout_2->addLayout(whiteKeysLayout); + + blackKeysLayout = new QHBoxLayout(); + blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout")); + horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_1); + + key_Cs1 = new QPushButton(pianoWidget); + key_Cs1->setObjectName(QString::fromUtf8("key_Cs1")); + + blackKeysLayout->addWidget(key_Cs1); + + key_Ds1 = new QPushButton(pianoWidget); + key_Ds1->setObjectName(QString::fromUtf8("key_Ds1")); + + blackKeysLayout->addWidget(key_Ds1); + + horizontalSpacer_22 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_22); + + key_Fs1 = new QPushButton(pianoWidget); + key_Fs1->setObjectName(QString::fromUtf8("key_Fs1")); + + blackKeysLayout->addWidget(key_Fs1); + + key_Gs1 = new QPushButton(pianoWidget); + key_Gs1->setObjectName(QString::fromUtf8("key_Gs1")); + + blackKeysLayout->addWidget(key_Gs1); + + key_As1 = new QPushButton(pianoWidget); + key_As1->setObjectName(QString::fromUtf8("key_As1")); + + blackKeysLayout->addWidget(key_As1); + + horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_3); + + key_Cs2 = new QPushButton(pianoWidget); + key_Cs2->setObjectName(QString::fromUtf8("key_Cs2")); + + blackKeysLayout->addWidget(key_Cs2); + + key_Ds2 = new QPushButton(pianoWidget); + key_Ds2->setObjectName(QString::fromUtf8("key_Ds2")); + + blackKeysLayout->addWidget(key_Ds2); + + horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_4); + + key_Fs2 = new QPushButton(pianoWidget); + key_Fs2->setObjectName(QString::fromUtf8("key_Fs2")); + + blackKeysLayout->addWidget(key_Fs2); + + key_Gs2 = new QPushButton(pianoWidget); + key_Gs2->setObjectName(QString::fromUtf8("key_Gs2")); + + blackKeysLayout->addWidget(key_Gs2); + + key_As2 = new QPushButton(pianoWidget); + key_As2->setObjectName(QString::fromUtf8("key_As2")); + + blackKeysLayout->addWidget(key_As2); + + horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_5); + + key_Cs3 = new QPushButton(pianoWidget); + key_Cs3->setObjectName(QString::fromUtf8("key_Cs3")); + + blackKeysLayout->addWidget(key_Cs3); + + key_Ds3 = new QPushButton(pianoWidget); + key_Ds3->setObjectName(QString::fromUtf8("key_Ds3")); + + blackKeysLayout->addWidget(key_Ds3); + + horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_6); + + key_Fs3 = new QPushButton(pianoWidget); + key_Fs3->setObjectName(QString::fromUtf8("key_Fs3")); + + blackKeysLayout->addWidget(key_Fs3); + + key_Gs3 = new QPushButton(pianoWidget); + key_Gs3->setObjectName(QString::fromUtf8("key_Gs3")); + + blackKeysLayout->addWidget(key_Gs3); + + key_As3 = new QPushButton(pianoWidget); + key_As3->setObjectName(QString::fromUtf8("key_As3")); + + blackKeysLayout->addWidget(key_As3); + + horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_7); + + key_Cs4 = new QPushButton(pianoWidget); + key_Cs4->setObjectName(QString::fromUtf8("key_Cs4")); + + blackKeysLayout->addWidget(key_Cs4); + + key_Ds4 = new QPushButton(pianoWidget); + key_Ds4->setObjectName(QString::fromUtf8("key_Ds4")); + + blackKeysLayout->addWidget(key_Ds4); + + horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_8); + + key_Fs4 = new QPushButton(pianoWidget); + key_Fs4->setObjectName(QString::fromUtf8("key_Fs4")); + + blackKeysLayout->addWidget(key_Fs4); + + key_Gs4 = new QPushButton(pianoWidget); + key_Gs4->setObjectName(QString::fromUtf8("key_Gs4")); + + blackKeysLayout->addWidget(key_Gs4); + + key_As4 = new QPushButton(pianoWidget); + key_As4->setObjectName(QString::fromUtf8("key_As4")); + + blackKeysLayout->addWidget(key_As4); + + horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_9); + + key_Cs5 = new QPushButton(pianoWidget); + key_Cs5->setObjectName(QString::fromUtf8("key_Cs5")); + + blackKeysLayout->addWidget(key_Cs5); + + key_Ds5 = new QPushButton(pianoWidget); + key_Ds5->setObjectName(QString::fromUtf8("key_Ds5")); + + blackKeysLayout->addWidget(key_Ds5); + + horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_10); + + key_Fs5 = new QPushButton(pianoWidget); + key_Fs5->setObjectName(QString::fromUtf8("key_Fs5")); + + blackKeysLayout->addWidget(key_Fs5); + + key_Gs5 = new QPushButton(pianoWidget); + key_Gs5->setObjectName(QString::fromUtf8("key_Gs5")); + + blackKeysLayout->addWidget(key_Gs5); + + key_As5 = new QPushButton(pianoWidget); + key_As5->setObjectName(QString::fromUtf8("key_As5")); + + blackKeysLayout->addWidget(key_As5); + + horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_11); + + + verticalLayout_2->addLayout(blackKeysLayout); + + + verticalLayout->addWidget(pianoWidget); + + Yamitracker->setCentralWidget(centralwidget); + + retranslateUi(Yamitracker); + + QMetaObject::connectSlotsByName(Yamitracker); + } // setupUi + + void retranslateUi(QMainWindow *Yamitracker) + { + Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor - Multitrack Recording", nullptr)); + statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr)); + deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr)); + keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr)); + groupBox->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\267\320\260\320\277\320\270\321\201\321\214\321\216", nullptr)); + playButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\227\320\260\320\277\320\270\321\201\321\214 \321\201 \321\201\320\270\320\275\321\202\320\265\320\267\320\260\321\202\320\276\321\200\320\260", nullptr)); + pauseButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\270 \320\237\320\260\321\203\320\267\320\260", nullptr)); + stopButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\271 \320\241\321\202\320\276\320\277", nullptr)); + saveRecordingButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\222\276 \320\241\320\276\321\205\321\200\320\260\320\275\320\270\321\202\321\214 \320\267\320\260\320\277\320\270\321\201\321\214", nullptr)); + convertButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\204 \320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr)); + saveMusicButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\216\265 \320\241\320\276\321\205\321\200\320\260\320\275\320\270\321\202\321\214 \320\274\321\203\320\267\321\213\320\272\321\203 (Pently)", nullptr)); + groupBox_4->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\262\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\274", nullptr)); + playTrackButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\242\320\265\320\272\321\203\321\211\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260", nullptr)); + playAllButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266\342\226\266 \320\222\321\201\320\265 \320\264\320\276\321\200\320\276\320\266\320\272\320\270", nullptr)); + stopPlaybackButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\271 \320\241\321\202\320\276\320\277 \320\262\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\320\264\320\265\320\275\320\270\320\265", nullptr)); + loadWavButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\202 \320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214 WAV \320\262 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + groupBox_3->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\264\320\276\321\200\320\276\320\266\320\272\320\260\320\274\320\270", nullptr)); + label_3->setText(QCoreApplication::translate("Yamitracker", "\320\242\320\265\320\272\321\203\321\211\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260:", nullptr)); + addTrackButton->setText(QCoreApplication::translate("Yamitracker", "\342\236\225 \320\235\320\276\320\262\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260", nullptr)); + removeTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\227\221 \320\243\320\264\320\260\320\273\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + clearTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\227\221 \320\236\321\207\320\270\321\201\321\202\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + copyTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\213 \320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + mergeTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\200 \320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\320\270", nullptr)); + trackInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\224\320\276\321\200\320\276\320\266\320\272\320\260 1: 0 \320\275\320\276\321\202", nullptr)); + label_4->setText(QCoreApplication::translate("Yamitracker", "\320\237\320\260\320\275\320\265\320\273\321\214 \321\203\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260\320\274\320\270:", nullptr)); + groupBox_2->setTitle(QCoreApplication::translate("Yamitracker", "\320\240\320\260\320\261\320\276\321\202\320\260 \321\201 MIDI \321\204\320\260\320\271\320\273\320\260\320\274\320\270", nullptr)); + label->setText(QCoreApplication::translate("Yamitracker", "\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202:", nullptr)); + speedLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\320\272\320\276\321\200\320\276\321\201\321\202\321\214: 100%", nullptr)); + volumeLabel->setText(QCoreApplication::translate("Yamitracker", "\320\221\320\260\321\201: 200%", nullptr)); + refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\203 \320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr)); + loadMidiButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\202 \320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214 MIDI \321\204\320\260\320\271\320\273", nullptr)); + playMidiButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\222\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\321\201\321\202\320\270 MIDI", nullptr)); + recordFromMidiButton->setText(QCoreApplication::translate("Yamitracker", "\342\227\217 \320\227\320\260\320\277\320\270\321\201\320\260\321\202\321\214 \320\270\320\267 MIDI", nullptr)); + selectFileButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\201 \320\222\321\213\320\261\321\200\320\260\321\202\321\214 \321\204\320\260\320\271\320\273 \320\264\320\273\321\217 \320\272\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\320\270", nullptr)); + playFileButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\222\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\321\201\321\202\320\270 WAV", nullptr)); + label_2->setText(QCoreApplication::translate("Yamitracker", "\320\224\320\276\321\201\321\202\321\203\320\277\320\275\321\213\320\265 MIDI \321\204\320\260\320\271\320\273\321\213:", nullptr)); + key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr)); + key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr)); + key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr)); + key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr)); + key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr)); + key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr)); + key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr)); + key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr)); + key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr)); + key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr)); + key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr)); + key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr)); + key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr)); + key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr)); + key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr)); + key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr)); + key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr)); + key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr)); + key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr)); + key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr)); + key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr)); + key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr)); + key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr)); + key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr)); + key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr)); + key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr)); + key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr)); + key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr)); + key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr)); + key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr)); + key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr)); + key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr)); + key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr)); + key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr)); + key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr)); + key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr)); + key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr)); + key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr)); + key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr)); + key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr)); + key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr)); + key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr)); + key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr)); + key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr)); + key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr)); + key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr)); + key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr)); + key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr)); + key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr)); + key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr)); + key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr)); + key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr)); + key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr)); + key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr)); + key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr)); + key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr)); + key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr)); + key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr)); + key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr)); + key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr)); + key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class Yamitracker: public Ui_Yamitracker {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_YAMITRACKER_H diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/yamitracker.o b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/yamitracker.o new file mode 100644 index 0000000..bb23741 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build/yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/.qmake.stash b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/Makefile b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/Makefile new file mode 100644 index 0000000..d726afa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/Makefile @@ -0,0 +1,442 @@ +############################################################################# +# Makefile for building: Yamitracker +# Generated by qmake (3.1) (Qt 5.15.13) +# Project: ../Yamitracker.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Yamitracker1.0.0 +DISTDIR = /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/.tmp/Yamitracker1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp moc_yamitracker.cpp \ + moc_brrconverter.cpp +OBJECTS = main.o \ + yamitracker.o \ + simplewavwriter.o \ + brrconverter.o \ + moc_yamitracker.o \ + moc_brrconverter.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../Yamitracker.pro ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h ../main.cpp \ + ../yamitracker.cpp \ + ../simplewavwriter.cpp \ + ../brrconverter.cpp +QMAKE_TARGET = Yamitracker +DESTDIR = +TARGET = Yamitracker + + +first: all +####### Build rules + +Yamitracker: ui_yamitracker.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../Yamitracker.pro + $(QMAKE) -o Makefile ../Yamitracker.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../Yamitracker.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../Yamitracker.pro + +qmake_all: FORCE + + +all: Makefile Yamitracker + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.h ../simplewavwriter.h ../brrconverter.h $(DISTDIR)/ + $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplewavwriter.cpp ../brrconverter.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_yamitracker.cpp moc_brrconverter.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_yamitracker.cpp moc_brrconverter.cpp +moc_yamitracker.cpp: ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp + +moc_brrconverter.cpp: ../brrconverter.h \ + moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../brrconverter.h -o moc_brrconverter.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_yamitracker.h +compiler_uic_clean: + -$(DEL_FILE) ui_yamitracker.h +ui_yamitracker.h: ../yamitracker.ui \ + /usr/lib/qt5/bin/uic + /usr/lib/qt5/bin/uic ../yamitracker.ui -o ui_yamitracker.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: ../main.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp + +yamitracker.o: ../yamitracker.cpp ../yamitracker.h \ + ../simplewavwriter.h \ + ../brrconverter.h \ + ui_yamitracker.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp + +simplewavwriter.o: ../simplewavwriter.cpp ../simplewavwriter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplewavwriter.o ../simplewavwriter.cpp + +brrconverter.o: ../brrconverter.cpp ../brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o brrconverter.o ../brrconverter.cpp + +moc_yamitracker.o: moc_yamitracker.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp + +moc_brrconverter.o: moc_brrconverter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_brrconverter.o moc_brrconverter.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin + $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/Yamitracker b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/Yamitracker new file mode 100755 index 0000000..984eec7 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/Yamitracker differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/brrconverter.o b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/brrconverter.o new file mode 100644 index 0000000..149ec06 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/main.o b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/main.o new file mode 100644 index 0000000..edc2e30 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/main.o differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.cpp b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.cpp new file mode 100644 index 0000000..a11b9fc --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.cpp @@ -0,0 +1,95 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'brrconverter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../brrconverter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'brrconverter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_BrrConverter_t { + QByteArrayData data[1]; + char stringdata0[13]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_BrrConverter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_BrrConverter_t qt_meta_stringdata_BrrConverter = { + { +QT_MOC_LITERAL(0, 0, 12) // "BrrConverter" + + }, + "BrrConverter" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_BrrConverter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void BrrConverter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject BrrConverter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_BrrConverter.data, + qt_meta_data_BrrConverter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *BrrConverter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *BrrConverter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_BrrConverter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int BrrConverter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.o b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.o new file mode 100644 index 0000000..fa3b784 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/moc_brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/moc_predefs.h b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/moc_predefs.h new file mode 100644 index 0000000..f29ad61 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/moc_predefs.h @@ -0,0 +1,464 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __cpp_nontype_template_parameter_auto 201606L +#define __UINT_LEAST16_MAX__ 0xffff +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __ATOMIC_ACQUIRE 2 +#define __FLT128_MAX_10_EXP__ 4932 +#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __cpp_aggregate_nsdmi 201304L +#define __UINT_LEAST8_TYPE__ unsigned char +#define __SIZEOF_FLOAT80__ 16 +#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 0xff +#define __SCHAR_WIDTH__ 8 +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 201411L +#define __BFLT16_MIN_10_EXP__ (-37) +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __WCHAR_MAX__ 0x7fffffff +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __cpp_binary_literals 201304L +#define __FLT64_DECIMAL_DIG__ 17 +#define __CET__ 3 +#define __cpp_noexcept_function_type 201510L +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __cpp_variadic_templates 200704L +#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __cpp_variable_templates 201304L +#define __FLT32X_MAX_EXP__ 1024 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __FLT32_HAS_DENORM__ 1 +#define __UINT_FAST8_MAX__ 0xff +#define __cpp_rvalue_reference 200610L +#define __cpp_nested_namespace_definitions 201411L +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __LDBL_HAS_INFINITY__ 1 +#define __INT_LEAST8_WIDTH__ 8 +#define __cpp_variadic_using 201611L +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL +#define __INT_LEAST8_MAX__ 0x7f +#define __cpp_attributes 200809L +#define __cpp_capture_star_this 201603L +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __FLT64X_MAX_10_EXP__ 4932 +#define __cpp_if_constexpr 201606L +#define __BFLT16_MAX_10_EXP__ 38 +#define __BFLT16_MAX_EXP__ 128 +#define __LDBL_IS_IEC_60559__ 1 +#define __FLT64X_HAS_QUIET_NAN__ 1 +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +#define __UINTMAX_TYPE__ long unsigned int +#define __cpp_nsdmi 200809L +#define __BFLT16_DECIMAL_DIG__ 4 +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __OPTIMIZE__ 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +#define __FLT128_MIN_EXP__ (-16381) +#define __WINT_MIN__ 0U +#define __FLT128_MIN_10_EXP__ (-4931) +#define __FLT32X_IS_IEC_60559__ 1 +#define __INT_LEAST16_WIDTH__ 16 +#define __SCHAR_MAX__ 0x7f +#define __FLT128_MANT_DIG__ 113 +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __INT64_C(c) c ## L +#define __SSP_STRONG__ 3 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __ATOMIC_SEQ_CST 5 +#define _FORTIFY_SOURCE 3 +#define __unix 1 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MANT_DIG__ 53 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __cpp_aligned_new 201606L +#define __FLT32_MAX_10_EXP__ 38 +#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +#define __STDC_HOSTED__ 1 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype_auto 201304L +#define __DBL_DIG__ 15 +#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __FLT32_IS_IEC_60559__ 1 +#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +#define __DBL_IS_IEC_60559__ 1 +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806L +#define __cpp_enumerator_attributes 201411L +#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +#define __FLT32X_HAS_INFINITY__ 1 +#define __unix__ 1 +#define __INT_WIDTH__ 32 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __DECIMAL_DIG__ 21 +#define __STDC_IEC_559_COMPLEX__ 1 +#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +#define __gnu_linux__ 1 +#define __INT16_MAX__ 0x7fff +#define __FLT64_MIN_EXP__ (-1021) +#define __FLT64X_MIN_10_EXP__ (-4931) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __cpp_return_type_deduction 201304L +#define __FLT16_MIN_EXP__ (-13) +#define __FLT64_MANT_DIG__ 53 +#define __FLT64X_MANT_DIG__ 64 +#define __BFLT16_DIG__ 2 +#define __GNUC__ 13 +#define __GXX_RTTI 1 +#define __pie__ 2 +#define __MMX__ 1 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __BIGGEST_ALIGNMENT__ 16 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __BFLT16_IS_IEC_60559__ 0 +#define __FLT16_MAX_10_EXP__ 4 +#define __cpp_delegating_constructors 200604L +#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __cpp_raw_strings 200710L +#define __INT_FAST32_MAX__ 0x7fffffffffffffffL +#define __DBL_HAS_INFINITY__ 1 +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __SIZEOF_FLOAT__ 4 +#define __HAVE_SPECULATION_SAFE_VALUE 1 +#define __cpp_fold_expressions 201603L +#define __DEC32_MIN_EXP__ (-94) +#define __INTPTR_WIDTH__ 64 +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ long int +#define __MMX_WITH_SSE__ 1 +#define __LDBL_HAS_DENORM__ 1 +#define __SEG_GS 1 +#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +#define __cplusplus 201703L +#define __cpp_ref_qualifiers 200710L +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610L +#define __DBL_MAX_EXP__ 1024 +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __FLT16_DECIMAL_DIG__ 5 +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 0x7fffffffffffffffL +#define __amd64 1 +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __GNUG__ 13 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 8 +#define __BFLT16_HAS_INFINITY__ 1 +#define __FLT64X_MIN_EXP__ (-16381) +#define __SIZEOF_WINT_T__ 4 +#define __FLT32X_DIG__ 15 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806L +#define __FLT32_MAX_EXP__ 128 +#define __cpp_hex_float 201603L +#define __GXX_ABI_VERSION 1018 +#define __FLT_MIN_EXP__ (-125) +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __x86_64 1 +#define __cpp_lambdas 200907L +#define __INT_FAST64_TYPE__ long int +#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +#define __cpp_template_auto 201606L +#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __SIZEOF_POINTER__ 8 +#define __SIZE_TYPE__ long unsigned int +#define __LP64__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +#define __LDBL_MAX_EXP__ 16384 +#define __DECIMAL_BID_FORMAT__ 1 +#define __FLT64_MIN_10_EXP__ (-307) +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT64X_DECIMAL_DIG__ 21 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __FLT128_HAS_INFINITY__ 1 +#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __FLT_DIG__ 6 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 21 +#define __VERSION__ "13.3.0" +#define __UINT64_C(c) c ## UL +#define __cpp_unicode_characters 201411L +#define _STDC_PREDEF_H 1 +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT128_MAX_EXP__ 16384 +#define __FLT32_MANT_DIG__ 24 +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT32X_MIN_EXP__ (-1021) +#define __STDC_IEC_60559_COMPLEX__ 201404L +#define __cpp_aggregate_bases 201603L +#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +#define __FLT128_HAS_DENORM__ 1 +#define __FLT32_DECIMAL_DIG__ 9 +#define __FLT128_DIG__ 33 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __DEC128_MAX_EXP__ 6145 +#define unix 1 +#define __DBL_HAS_DENORM__ 1 +#define __cpp_rtti 199711L +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __FLT_IS_IEC_60559__ 1 +#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +#define __FLT64X_DIG__ 18 +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309L +#define __ELF__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __UINT32_TYPE__ unsigned int +#define __BFLT16_HAS_QUIET_NAN__ 1 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +#define __UINTMAX_C(c) c ## UL +#define __FLT16_DIG__ 3 +#define __k8 1 +#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __cpp_constexpr 201603L +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +#define __STDC_IEC_60559_BFP__ 201404L +#define __SIZEOF_PTRDIFF_T__ 8 +#define __FLT64X_HAS_INFINITY__ 1 +#define __SIZEOF_LONG__ 8 +#define __LDBL_DIG__ 18 +#define __FLT64_IS_IEC_60559__ 1 +#define __x86_64__ 1 +#define __FLT16_IS_IEC_60559__ 1 +#define __FLT16_MAX_EXP__ 16 +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __INT_FAST16_MAX__ 0x7fffffffffffffffL +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __LONG_MAX__ 0x7fffffffffffffffL +#define __FLT64X_HAS_DENORM__ 1 +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" +#define __cpp_unicode_literals 200710L +#define __UINT_FAST16_TYPE__ long unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __INT_FAST32_WIDTH__ 64 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __SIZE_WIDTH__ 64 +#define __SEG_FS 1 +#define __INT_LEAST16_MAX__ 0x7fff +#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __DEC64_MANT_DIG__ 16 +#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +#define __cpp_structured_bindings 201606L +#define __SIZEOF_INT__ 4 +#define __DEC32_MAX_EXP__ 97 +#define __INT_FAST8_MAX__ 0x7f +#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __INTPTR_MAX__ 0x7fffffffffffffffL +#define __cpp_sized_deallocation 201309L +#define __cpp_guaranteed_copy_elision 201606L +#define linux 1 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __EXCEPTIONS 1 +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 64 +#define __LDBL_MANT_DIG__ 64 +#define __cpp_range_based_for 201603L +#define __INT_FAST16_WIDTH__ 64 +#define __FLT64_HAS_INFINITY__ 1 +#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __FLT16_HAS_INFINITY__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __cpp_nontype_template_args 201411L +#define __DEC32_MANT_DIG__ 7 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __pic__ 2 +#define __UINTPTR_MAX__ 0xffffffffffffffffUL +#define __INT_FAST64_WIDTH__ 64 +#define __cpp_decltype 200707L +#define __INT_FAST64_MAX__ 0x7fffffffffffffffL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +#define __FLT32_HAS_INFINITY__ 1 +#define __FLT64X_MAX_EXP__ 16384 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __cpp_inline_variables 201606L +#define __BFLT16_MIN_EXP__ (-125) +#define __INT_MAX__ 0x7fffffff +#define __linux__ 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __cpp_inheriting_constructors 201511L +#define __SIZEOF_FLOAT128__ 16 +#define __BFLT16_MANT_DIG__ 8 +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __amd64__ 1 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST64_WIDTH__ 64 +#define __FLT32X_MAX_10_EXP__ 308 +#define __cpp_namespace_attributes 201411L +#define __SIZEOF_INT128__ 16 +#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +#define __FLT64X_IS_IEC_60559__ 1 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +#define __INT_LEAST32_TYPE__ int +#define _LP64 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __SIZEOF_WCHAR_T__ 4 +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __FLT128_HAS_QUIET_NAN__ 1 +#define __INTMAX_MAX__ 0x7fffffffffffffffL +#define __INT_FAST8_TYPE__ signed char +#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +#define __STDCPP_THREADS__ 1 +#define __BFLT16_HAS_DENORM__ 1 +#define __GNUC_STDC_INLINE__ 1 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +#define __FLT16_HAS_DENORM__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __FXSR__ 1 +#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __INTMAX_WIDTH__ 64 +#define __cpp_runtime_arrays 198712L +#define __FLT32_DIG__ 6 +#define __UINT64_TYPE__ long unsigned int +#define __UINT32_C(c) c ## U +#define __cpp_alias_templates 200704L +#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +#define __FLT128_IS_IEC_60559__ 1 +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 64 +#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +#define __PIC__ 2 +#define __INT32_MAX__ 0x7fffffff +#define __UINT_FAST32_TYPE__ long unsigned int +#define __FLT16_MANT_DIG__ 11 +#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F +#define __SSE2__ 1 +#define __cpp_deduction_guides 201703L +#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711L +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long int +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 3 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __UINTMAX_MAX__ 0xffffffffffffffffUL +#define __PIE__ 2 +#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +#define __cpp_template_template_args 201611L +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +#define __INT16_C(c) c +#define __STDC__ 1 +#define __PTRDIFF_TYPE__ long int +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __cpp_generic_lambdas 201304L +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809L +#define __FLT128_DECIMAL_DIG__ 36 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL +#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __SIZE_MAX__ 0xffffffffffffffffUL +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __cpp_init_captures 201304L +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.cpp b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.cpp new file mode 100644 index 0000000..868459e --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.cpp @@ -0,0 +1,360 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'yamitracker.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../yamitracker.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'yamitracker.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.13. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SerialReader_t { + QByteArrayData data[13]; + char stringdata0[145]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SerialReader_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = { + { +QT_MOC_LITERAL(0, 0, 12), // "SerialReader" +QT_MOC_LITERAL(1, 13, 14), // "noteOnReceived" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 4), // "note" +QT_MOC_LITERAL(4, 34, 8), // "velocity" +QT_MOC_LITERAL(5, 43, 15), // "noteOffReceived" +QT_MOC_LITERAL(6, 59, 5), // "error" +QT_MOC_LITERAL(7, 65, 7), // "message" +QT_MOC_LITERAL(8, 73, 23), // "connectionStatusChanged" +QT_MOC_LITERAL(9, 97, 9), // "connected" +QT_MOC_LITERAL(10, 107, 18), // "deviceInfoReceived" +QT_MOC_LITERAL(11, 126, 12), // "manufacturer" +QT_MOC_LITERAL(12, 139, 5) // "model" + + }, + "SerialReader\0noteOnReceived\0\0note\0" + "velocity\0noteOffReceived\0error\0message\0" + "connectionStatusChanged\0connected\0" + "deviceInfoReceived\0manufacturer\0model" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SerialReader[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 5, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 2, 39, 2, 0x06 /* Public */, + 5, 1, 44, 2, 0x06 /* Public */, + 6, 1, 47, 2, 0x06 /* Public */, + 8, 1, 50, 2, 0x06 /* Public */, + 10, 2, 53, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, QMetaType::Bool, 9, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 11, 12, + + 0 // eod +}; + +void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->noteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->noteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->error((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->connectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: _t->deviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SerialReader::*)(const QString & , int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOnReceived)) { + *result = 0; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOffReceived)) { + *result = 1; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::error)) { + *result = 2; + return; + } + } + { + using _t = void (SerialReader::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::connectionStatusChanged)) { + *result = 3; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & , const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::deviceInfoReceived)) { + *result = 4; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SerialReader::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SerialReader.data, + qt_meta_data_SerialReader, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SerialReader::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SerialReader::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0)) + return static_cast(this); + return QThread::qt_metacast(_clname); +} + +int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QThread::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} + +// SIGNAL 0 +void SerialReader::noteOnReceived(const QString & _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SerialReader::noteOffReceived(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void SerialReader::error(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void SerialReader::connectionStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} + +// SIGNAL 4 +void SerialReader::deviceInfoReceived(const QString & _t1, const QString & _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 4, _a); +} +struct qt_meta_stringdata_Yamitracker_t { + QByteArrayData data[19]; + char stringdata0[264]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_Yamitracker_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = { + { +QT_MOC_LITERAL(0, 0, 11), // "Yamitracker" +QT_MOC_LITERAL(1, 12, 16), // "onNoteOnReceived" +QT_MOC_LITERAL(2, 29, 0), // "" +QT_MOC_LITERAL(3, 30, 4), // "note" +QT_MOC_LITERAL(4, 35, 8), // "velocity" +QT_MOC_LITERAL(5, 44, 17), // "onNoteOffReceived" +QT_MOC_LITERAL(6, 62, 7), // "onError" +QT_MOC_LITERAL(7, 70, 7), // "message" +QT_MOC_LITERAL(8, 78, 13), // "onPlayClicked" +QT_MOC_LITERAL(9, 92, 13), // "onStopClicked" +QT_MOC_LITERAL(10, 106, 21), // "onConvertToBrrClicked" +QT_MOC_LITERAL(11, 128, 18), // "clearStatusMessage" +QT_MOC_LITERAL(12, 147, 25), // "onConnectionStatusChanged" +QT_MOC_LITERAL(13, 173, 9), // "connected" +QT_MOC_LITERAL(14, 183, 16), // "attemptReconnect" +QT_MOC_LITERAL(15, 200, 20), // "onDeviceInfoReceived" +QT_MOC_LITERAL(16, 221, 12), // "manufacturer" +QT_MOC_LITERAL(17, 234, 5), // "model" +QT_MOC_LITERAL(18, 240, 23) // "onRefreshDevicesClicked" + + }, + "Yamitracker\0onNoteOnReceived\0\0note\0" + "velocity\0onNoteOffReceived\0onError\0" + "message\0onPlayClicked\0onStopClicked\0" + "onConvertToBrrClicked\0clearStatusMessage\0" + "onConnectionStatusChanged\0connected\0" + "attemptReconnect\0onDeviceInfoReceived\0" + "manufacturer\0model\0onRefreshDevicesClicked" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_Yamitracker[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 11, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 2, 69, 2, 0x08 /* Private */, + 5, 1, 74, 2, 0x08 /* Private */, + 6, 1, 77, 2, 0x08 /* Private */, + 8, 0, 80, 2, 0x08 /* Private */, + 9, 0, 81, 2, 0x08 /* Private */, + 10, 0, 82, 2, 0x08 /* Private */, + 11, 0, 83, 2, 0x08 /* Private */, + 12, 1, 84, 2, 0x08 /* Private */, + 14, 0, 87, 2, 0x08 /* Private */, + 15, 2, 88, 2, 0x08 /* Private */, + 18, 0, 93, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Bool, 13, + QMetaType::Void, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 16, 17, + QMetaType::Void, + + 0 // eod +}; + +void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onNoteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->onNoteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->onError((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->onPlayClicked(); break; + case 4: _t->onStopClicked(); break; + case 5: _t->onConvertToBrrClicked(); break; + case 6: _t->clearStatusMessage(); break; + case 7: _t->onConnectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 8: _t->attemptReconnect(); break; + case 9: _t->onDeviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + case 10: _t->onRefreshDevicesClicked(); break; + default: ; + } + } +} + +QT_INIT_METAOBJECT const QMetaObject Yamitracker::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_Yamitracker.data, + qt_meta_data_Yamitracker, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *Yamitracker::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *Yamitracker::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 11) + qt_static_metacall(this, _c, _id, _a); + _id -= 11; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 11) + *reinterpret_cast(_a[0]) = -1; + _id -= 11; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.o b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.o new file mode 100644 index 0000000..94c6f3d Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/moc_yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_130314.wav b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_130314.wav new file mode 100644 index 0000000..3e8acba Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_130314.wav differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_130330.wav b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_130330.wav new file mode 100644 index 0000000..9d43abb Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_130330.wav differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_130335.wav b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_130335.wav new file mode 100644 index 0000000..f7ef2a0 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_130335.wav differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_130350.wav b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_130350.wav new file mode 100644 index 0000000..2ec0a92 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_130350.wav differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133027.wav b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133027.wav new file mode 100644 index 0000000..7f87b07 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133027.wav differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133032.wav b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133032.wav new file mode 100644 index 0000000..fde0bfe Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133032.wav differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133042.wav b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133042.wav new file mode 100644 index 0000000..1097ef8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133042.wav differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.brr b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.brr new file mode 100644 index 0000000..a475539 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.brr differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.wav b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.wav new file mode 100644 index 0000000..c296e1b Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133048.wav differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.brr b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.brr new file mode 100644 index 0000000..940aec5 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.brr differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.wav b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.wav new file mode 100644 index 0000000..512d392 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/recording_20251206_133558.wav differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/simplewavwriter.o b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/simplewavwriter.o new file mode 100644 index 0000000..46d7f52 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/simplewavwriter.o differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/ui_yamitracker.h b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/ui_yamitracker.h new file mode 100644 index 0000000..b1f1096 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/ui_yamitracker.h @@ -0,0 +1,625 @@ +/******************************************************************************** +** Form generated from reading UI file 'yamitracker.ui' +** +** Created by: Qt User Interface Compiler version 5.15.13 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_YAMITRACKER_H +#define UI_YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Yamitracker +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QLabel *statusLabel; + QLabel *deviceLabel; + QLabel *keysInfoLabel; + QProgressBar *volumeBar; + QHBoxLayout *controlLayout; + QPushButton *playButton; + QPushButton *stopButton; + QPushButton *convertButton; + QPushButton *refreshDevicesButton; + QWidget *pianoWidget; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *whiteKeysLayout; + QPushButton *key_C1; + QPushButton *key_D1; + QPushButton *key_E1; + QPushButton *key_F1; + QPushButton *key_G1; + QPushButton *key_A1; + QPushButton *key_B1; + QPushButton *key_C2; + QPushButton *key_D2; + QPushButton *key_E2; + QPushButton *key_F2; + QPushButton *key_G2; + QPushButton *key_A2; + QPushButton *key_B2; + QPushButton *key_C3; + QPushButton *key_D3; + QPushButton *key_E3; + QPushButton *key_F3; + QPushButton *key_G3; + QPushButton *key_A3; + QPushButton *key_B3; + QPushButton *key_C4; + QPushButton *key_D4; + QPushButton *key_E4; + QPushButton *key_F4; + QPushButton *key_G4; + QPushButton *key_A4; + QPushButton *key_B4; + QPushButton *key_C5; + QPushButton *key_D5; + QPushButton *key_E5; + QPushButton *key_F5; + QPushButton *key_G5; + QPushButton *key_A5; + QPushButton *key_B5; + QPushButton *key_C6; + QHBoxLayout *blackKeysLayout; + QSpacerItem *horizontalSpacer_1; + QPushButton *key_Cs1; + QPushButton *key_Ds1; + QSpacerItem *horizontalSpacer_2; + QPushButton *key_Fs1; + QPushButton *key_Gs1; + QPushButton *key_As1; + QSpacerItem *horizontalSpacer_3; + QPushButton *key_Cs2; + QPushButton *key_Ds2; + QSpacerItem *horizontalSpacer_4; + QPushButton *key_Fs2; + QPushButton *key_Gs2; + QPushButton *key_As2; + QSpacerItem *horizontalSpacer_5; + QPushButton *key_Cs3; + QPushButton *key_Ds3; + QSpacerItem *horizontalSpacer_6; + QPushButton *key_Fs3; + QPushButton *key_Gs3; + QPushButton *key_As3; + QSpacerItem *horizontalSpacer_7; + QPushButton *key_Cs4; + QPushButton *key_Ds4; + QSpacerItem *horizontalSpacer_8; + QPushButton *key_Fs4; + QPushButton *key_Gs4; + QPushButton *key_As4; + QSpacerItem *horizontalSpacer_9; + QPushButton *key_Cs5; + QPushButton *key_Ds5; + QSpacerItem *horizontalSpacer_10; + QPushButton *key_Fs5; + QPushButton *key_Gs5; + QPushButton *key_As5; + QSpacerItem *horizontalSpacer_11; + + void setupUi(QMainWindow *Yamitracker) + { + if (Yamitracker->objectName().isEmpty()) + Yamitracker->setObjectName(QString::fromUtf8("Yamitracker")); + Yamitracker->resize(1200, 600); + centralwidget = new QWidget(Yamitracker); + centralwidget->setObjectName(QString::fromUtf8("centralwidget")); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + statusLabel = new QLabel(centralwidget); + statusLabel->setObjectName(QString::fromUtf8("statusLabel")); + + verticalLayout->addWidget(statusLabel); + + deviceLabel = new QLabel(centralwidget); + deviceLabel->setObjectName(QString::fromUtf8("deviceLabel")); + + verticalLayout->addWidget(deviceLabel); + + keysInfoLabel = new QLabel(centralwidget); + keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel")); + + verticalLayout->addWidget(keysInfoLabel); + + volumeBar = new QProgressBar(centralwidget); + volumeBar->setObjectName(QString::fromUtf8("volumeBar")); + volumeBar->setValue(0); + + verticalLayout->addWidget(volumeBar); + + controlLayout = new QHBoxLayout(); + controlLayout->setObjectName(QString::fromUtf8("controlLayout")); + playButton = new QPushButton(centralwidget); + playButton->setObjectName(QString::fromUtf8("playButton")); + + controlLayout->addWidget(playButton); + + stopButton = new QPushButton(centralwidget); + stopButton->setObjectName(QString::fromUtf8("stopButton")); + + controlLayout->addWidget(stopButton); + + convertButton = new QPushButton(centralwidget); + convertButton->setObjectName(QString::fromUtf8("convertButton")); + + controlLayout->addWidget(convertButton); + + refreshDevicesButton = new QPushButton(centralwidget); + refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton")); + + controlLayout->addWidget(refreshDevicesButton); + + + verticalLayout->addLayout(controlLayout); + + pianoWidget = new QWidget(centralwidget); + pianoWidget->setObjectName(QString::fromUtf8("pianoWidget")); + verticalLayout_2 = new QVBoxLayout(pianoWidget); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + whiteKeysLayout = new QHBoxLayout(); + whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout")); + key_C1 = new QPushButton(pianoWidget); + key_C1->setObjectName(QString::fromUtf8("key_C1")); + + whiteKeysLayout->addWidget(key_C1); + + key_D1 = new QPushButton(pianoWidget); + key_D1->setObjectName(QString::fromUtf8("key_D1")); + + whiteKeysLayout->addWidget(key_D1); + + key_E1 = new QPushButton(pianoWidget); + key_E1->setObjectName(QString::fromUtf8("key_E1")); + + whiteKeysLayout->addWidget(key_E1); + + key_F1 = new QPushButton(pianoWidget); + key_F1->setObjectName(QString::fromUtf8("key_F1")); + + whiteKeysLayout->addWidget(key_F1); + + key_G1 = new QPushButton(pianoWidget); + key_G1->setObjectName(QString::fromUtf8("key_G1")); + + whiteKeysLayout->addWidget(key_G1); + + key_A1 = new QPushButton(pianoWidget); + key_A1->setObjectName(QString::fromUtf8("key_A1")); + + whiteKeysLayout->addWidget(key_A1); + + key_B1 = new QPushButton(pianoWidget); + key_B1->setObjectName(QString::fromUtf8("key_B1")); + + whiteKeysLayout->addWidget(key_B1); + + key_C2 = new QPushButton(pianoWidget); + key_C2->setObjectName(QString::fromUtf8("key_C2")); + + whiteKeysLayout->addWidget(key_C2); + + key_D2 = new QPushButton(pianoWidget); + key_D2->setObjectName(QString::fromUtf8("key_D2")); + + whiteKeysLayout->addWidget(key_D2); + + key_E2 = new QPushButton(pianoWidget); + key_E2->setObjectName(QString::fromUtf8("key_E2")); + + whiteKeysLayout->addWidget(key_E2); + + key_F2 = new QPushButton(pianoWidget); + key_F2->setObjectName(QString::fromUtf8("key_F2")); + + whiteKeysLayout->addWidget(key_F2); + + key_G2 = new QPushButton(pianoWidget); + key_G2->setObjectName(QString::fromUtf8("key_G2")); + + whiteKeysLayout->addWidget(key_G2); + + key_A2 = new QPushButton(pianoWidget); + key_A2->setObjectName(QString::fromUtf8("key_A2")); + + whiteKeysLayout->addWidget(key_A2); + + key_B2 = new QPushButton(pianoWidget); + key_B2->setObjectName(QString::fromUtf8("key_B2")); + + whiteKeysLayout->addWidget(key_B2); + + key_C3 = new QPushButton(pianoWidget); + key_C3->setObjectName(QString::fromUtf8("key_C3")); + + whiteKeysLayout->addWidget(key_C3); + + key_D3 = new QPushButton(pianoWidget); + key_D3->setObjectName(QString::fromUtf8("key_D3")); + + whiteKeysLayout->addWidget(key_D3); + + key_E3 = new QPushButton(pianoWidget); + key_E3->setObjectName(QString::fromUtf8("key_E3")); + + whiteKeysLayout->addWidget(key_E3); + + key_F3 = new QPushButton(pianoWidget); + key_F3->setObjectName(QString::fromUtf8("key_F3")); + + whiteKeysLayout->addWidget(key_F3); + + key_G3 = new QPushButton(pianoWidget); + key_G3->setObjectName(QString::fromUtf8("key_G3")); + + whiteKeysLayout->addWidget(key_G3); + + key_A3 = new QPushButton(pianoWidget); + key_A3->setObjectName(QString::fromUtf8("key_A3")); + + whiteKeysLayout->addWidget(key_A3); + + key_B3 = new QPushButton(pianoWidget); + key_B3->setObjectName(QString::fromUtf8("key_B3")); + + whiteKeysLayout->addWidget(key_B3); + + key_C4 = new QPushButton(pianoWidget); + key_C4->setObjectName(QString::fromUtf8("key_C4")); + + whiteKeysLayout->addWidget(key_C4); + + key_D4 = new QPushButton(pianoWidget); + key_D4->setObjectName(QString::fromUtf8("key_D4")); + + whiteKeysLayout->addWidget(key_D4); + + key_E4 = new QPushButton(pianoWidget); + key_E4->setObjectName(QString::fromUtf8("key_E4")); + + whiteKeysLayout->addWidget(key_E4); + + key_F4 = new QPushButton(pianoWidget); + key_F4->setObjectName(QString::fromUtf8("key_F4")); + + whiteKeysLayout->addWidget(key_F4); + + key_G4 = new QPushButton(pianoWidget); + key_G4->setObjectName(QString::fromUtf8("key_G4")); + + whiteKeysLayout->addWidget(key_G4); + + key_A4 = new QPushButton(pianoWidget); + key_A4->setObjectName(QString::fromUtf8("key_A4")); + + whiteKeysLayout->addWidget(key_A4); + + key_B4 = new QPushButton(pianoWidget); + key_B4->setObjectName(QString::fromUtf8("key_B4")); + + whiteKeysLayout->addWidget(key_B4); + + key_C5 = new QPushButton(pianoWidget); + key_C5->setObjectName(QString::fromUtf8("key_C5")); + + whiteKeysLayout->addWidget(key_C5); + + key_D5 = new QPushButton(pianoWidget); + key_D5->setObjectName(QString::fromUtf8("key_D5")); + + whiteKeysLayout->addWidget(key_D5); + + key_E5 = new QPushButton(pianoWidget); + key_E5->setObjectName(QString::fromUtf8("key_E5")); + + whiteKeysLayout->addWidget(key_E5); + + key_F5 = new QPushButton(pianoWidget); + key_F5->setObjectName(QString::fromUtf8("key_F5")); + + whiteKeysLayout->addWidget(key_F5); + + key_G5 = new QPushButton(pianoWidget); + key_G5->setObjectName(QString::fromUtf8("key_G5")); + + whiteKeysLayout->addWidget(key_G5); + + key_A5 = new QPushButton(pianoWidget); + key_A5->setObjectName(QString::fromUtf8("key_A5")); + + whiteKeysLayout->addWidget(key_A5); + + key_B5 = new QPushButton(pianoWidget); + key_B5->setObjectName(QString::fromUtf8("key_B5")); + + whiteKeysLayout->addWidget(key_B5); + + key_C6 = new QPushButton(pianoWidget); + key_C6->setObjectName(QString::fromUtf8("key_C6")); + + whiteKeysLayout->addWidget(key_C6); + + + verticalLayout_2->addLayout(whiteKeysLayout); + + blackKeysLayout = new QHBoxLayout(); + blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout")); + horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_1); + + key_Cs1 = new QPushButton(pianoWidget); + key_Cs1->setObjectName(QString::fromUtf8("key_Cs1")); + + blackKeysLayout->addWidget(key_Cs1); + + key_Ds1 = new QPushButton(pianoWidget); + key_Ds1->setObjectName(QString::fromUtf8("key_Ds1")); + + blackKeysLayout->addWidget(key_Ds1); + + horizontalSpacer_2 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_2); + + key_Fs1 = new QPushButton(pianoWidget); + key_Fs1->setObjectName(QString::fromUtf8("key_Fs1")); + + blackKeysLayout->addWidget(key_Fs1); + + key_Gs1 = new QPushButton(pianoWidget); + key_Gs1->setObjectName(QString::fromUtf8("key_Gs1")); + + blackKeysLayout->addWidget(key_Gs1); + + key_As1 = new QPushButton(pianoWidget); + key_As1->setObjectName(QString::fromUtf8("key_As1")); + + blackKeysLayout->addWidget(key_As1); + + horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_3); + + key_Cs2 = new QPushButton(pianoWidget); + key_Cs2->setObjectName(QString::fromUtf8("key_Cs2")); + + blackKeysLayout->addWidget(key_Cs2); + + key_Ds2 = new QPushButton(pianoWidget); + key_Ds2->setObjectName(QString::fromUtf8("key_Ds2")); + + blackKeysLayout->addWidget(key_Ds2); + + horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_4); + + key_Fs2 = new QPushButton(pianoWidget); + key_Fs2->setObjectName(QString::fromUtf8("key_Fs2")); + + blackKeysLayout->addWidget(key_Fs2); + + key_Gs2 = new QPushButton(pianoWidget); + key_Gs2->setObjectName(QString::fromUtf8("key_Gs2")); + + blackKeysLayout->addWidget(key_Gs2); + + key_As2 = new QPushButton(pianoWidget); + key_As2->setObjectName(QString::fromUtf8("key_As2")); + + blackKeysLayout->addWidget(key_As2); + + horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_5); + + key_Cs3 = new QPushButton(pianoWidget); + key_Cs3->setObjectName(QString::fromUtf8("key_Cs3")); + + blackKeysLayout->addWidget(key_Cs3); + + key_Ds3 = new QPushButton(pianoWidget); + key_Ds3->setObjectName(QString::fromUtf8("key_Ds3")); + + blackKeysLayout->addWidget(key_Ds3); + + horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_6); + + key_Fs3 = new QPushButton(pianoWidget); + key_Fs3->setObjectName(QString::fromUtf8("key_Fs3")); + + blackKeysLayout->addWidget(key_Fs3); + + key_Gs3 = new QPushButton(pianoWidget); + key_Gs3->setObjectName(QString::fromUtf8("key_Gs3")); + + blackKeysLayout->addWidget(key_Gs3); + + key_As3 = new QPushButton(pianoWidget); + key_As3->setObjectName(QString::fromUtf8("key_As3")); + + blackKeysLayout->addWidget(key_As3); + + horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_7); + + key_Cs4 = new QPushButton(pianoWidget); + key_Cs4->setObjectName(QString::fromUtf8("key_Cs4")); + + blackKeysLayout->addWidget(key_Cs4); + + key_Ds4 = new QPushButton(pianoWidget); + key_Ds4->setObjectName(QString::fromUtf8("key_Ds4")); + + blackKeysLayout->addWidget(key_Ds4); + + horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_8); + + key_Fs4 = new QPushButton(pianoWidget); + key_Fs4->setObjectName(QString::fromUtf8("key_Fs4")); + + blackKeysLayout->addWidget(key_Fs4); + + key_Gs4 = new QPushButton(pianoWidget); + key_Gs4->setObjectName(QString::fromUtf8("key_Gs4")); + + blackKeysLayout->addWidget(key_Gs4); + + key_As4 = new QPushButton(pianoWidget); + key_As4->setObjectName(QString::fromUtf8("key_As4")); + + blackKeysLayout->addWidget(key_As4); + + horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_9); + + key_Cs5 = new QPushButton(pianoWidget); + key_Cs5->setObjectName(QString::fromUtf8("key_Cs5")); + + blackKeysLayout->addWidget(key_Cs5); + + key_Ds5 = new QPushButton(pianoWidget); + key_Ds5->setObjectName(QString::fromUtf8("key_Ds5")); + + blackKeysLayout->addWidget(key_Ds5); + + horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_10); + + key_Fs5 = new QPushButton(pianoWidget); + key_Fs5->setObjectName(QString::fromUtf8("key_Fs5")); + + blackKeysLayout->addWidget(key_Fs5); + + key_Gs5 = new QPushButton(pianoWidget); + key_Gs5->setObjectName(QString::fromUtf8("key_Gs5")); + + blackKeysLayout->addWidget(key_Gs5); + + key_As5 = new QPushButton(pianoWidget); + key_As5->setObjectName(QString::fromUtf8("key_As5")); + + blackKeysLayout->addWidget(key_As5); + + horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_11); + + + verticalLayout_2->addLayout(blackKeysLayout); + + + verticalLayout->addWidget(pianoWidget); + + Yamitracker->setCentralWidget(centralwidget); + + retranslateUi(Yamitracker); + + QMetaObject::connectSlotsByName(Yamitracker); + } // setupUi + + void retranslateUi(QMainWindow *Yamitracker) + { + Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor", nullptr)); + statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr)); + deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr)); + keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr)); + playButton->setText(QCoreApplication::translate("Yamitracker", "\320\227\320\260\320\277\320\270\321\201\321\214 (Play)", nullptr)); + stopButton->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\276\320\277", nullptr)); + convertButton->setText(QCoreApplication::translate("Yamitracker", "\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr)); + refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr)); + key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr)); + key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr)); + key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr)); + key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr)); + key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr)); + key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr)); + key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr)); + key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr)); + key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr)); + key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr)); + key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr)); + key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr)); + key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr)); + key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr)); + key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr)); + key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr)); + key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr)); + key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr)); + key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr)); + key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr)); + key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr)); + key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr)); + key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr)); + key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr)); + key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr)); + key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr)); + key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr)); + key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr)); + key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr)); + key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr)); + key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr)); + key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr)); + key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr)); + key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr)); + key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr)); + key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr)); + key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr)); + key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr)); + key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr)); + key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr)); + key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr)); + key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr)); + key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr)); + key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr)); + key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr)); + key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr)); + key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr)); + key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr)); + key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr)); + key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr)); + key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr)); + key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr)); + key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr)); + key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr)); + key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr)); + key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr)); + key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr)); + key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr)); + key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr)); + key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr)); + key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class Yamitracker: public Ui_Yamitracker {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_YAMITRACKER_H diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/yamitracker.o b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/yamitracker.o new file mode 100644 index 0000000..f0f9d45 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/build_wav/yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/main.cpp b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/main.cpp new file mode 100644 index 0000000..742d76f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/main.cpp @@ -0,0 +1,11 @@ +// main.cpp +#include "yamitracker.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + Yamitracker w; + w.show(); + return a.exec(); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/music_20251210_151146.s b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/music_20251210_151146.s new file mode 100644 index 0000000..450ec43 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/music_20251210_151146.s @@ -0,0 +1,329 @@ +; Музыкальная композиция, сгенерированная Yamitracker +; Формат: Pently-like с дорожками +; Время создания: 2025-12-10 15:11:48 + +.include "pentlyseq.inc" +.segment "SPCIMAGE" + +; Таблица инструментов +music_inst_table: + ; name lv rv frq smp att dec sus lvl + INST KICK, 11, 10, 3, 6, 31, 17, 0, 8 + INST SNARE, 10, 15, 3, 7, 31, 17, 0, 8 + INST HAT, 3, 5, 3, 5, 31, 17, 0, 8 + INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2 + INST PLING_4, 7, 7, 1, 1, 31, 19, 15, 2 + INST PLING_2, 9, 6, 1, 2, 31, 17, 15, 2 + INST BASSGUITAR, 12, 12, 1, 4, 31, 17, 15, 8 + INST BASSCLAR, 12, 12, 1, 2, 21, 21, 27, 4 + INST HORNBLAT, 3, 9, 1, 0, 21, 21, 27, 4 + INST XYLSHORT, 10, 6, 1, 2, 31, 23, 20, 2 + INST XYLMED, 10, 6, 1, 2, 31, 19, 17, 2 + +pently_patterns: +PPDAT_track0_pattern0: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern1: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern2: + .byt N_F|D_16 + .byt PATEND +PPDAT_track0_pattern3: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern4: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern5: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern6: + .byt N_C|D_D32 + .byt PATEND +PPDAT_track0_pattern7: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern8: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern9: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern10: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern11: + .byt N_F|D_16 + .byt N_C|D_D32 + .byt PATEND +PPDAT_track0_pattern12: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern13: + .byt N_F|D_16 + .byt PATEND +PPDAT_track0_pattern14: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern15: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern16: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern17: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern18: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern19: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern20: + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern21: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern22: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern23: + .byt N_F|D_16 + .byt N_C|D_16 + .byt PATEND +PPDAT_track0_pattern24: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern25: + .byt N_E|D_D32 + .byt PATEND +PPDAT_track0_pattern26: + .byt N_C|D_D32 + .byt PATEND +PPDAT_track0_pattern27: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern28: + .byt N_F|D_D32 + .byt PATEND +PPDAT_track0_pattern29: + .byt N_C|D_D32 + .byt PATEND +PPDAT_track0_pattern30: + .byt N_E|D_32 + .byt PATEND +PPDAT_track1_pattern0: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern1: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern2: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern3: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern4: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern5: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern6: + .byt N_A|D_16 + .byt PATEND +PPDAT_track1_pattern7: + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern8: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern9: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern10: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern11: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern12: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern13: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern14: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern15: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern16: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern17: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern18: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern19: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern20: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern21: + .byt N_A|D_32 + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern22: + .byt N_A|D_32 + .byt N_A|D_D32 + .byt PATEND +PPDAT_track1_pattern23: + .byt N_A|D_32 + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern24: + .byt N_A|D_32 + .byt PATEND +PPDAT_track1_pattern25: + .byt N_A|D_32 + .byt PATEND + +pently_songs: +.addr PSDAT_composition + +; Композиция +PSDAT_composition: + setTempo 300 + playPat 0, 0, 0, PLING_2 + waitRows 16 + playPat 0, 1, 0, PLING_2 + waitRows 16 + playPat 0, 2, 0, PLING_2 + waitRows 16 + playPat 0, 3, 0, PLING_2 + waitRows 16 + playPat 0, 4, 0, PLING_2 + waitRows 16 + playPat 0, 5, 0, PLING_2 + waitRows 16 + playPat 0, 6, 0, PLING_2 + waitRows 16 + playPat 0, 7, 0, PLING_2 + waitRows 16 + playPat 0, 8, 0, PLING_2 + waitRows 16 + playPat 0, 9, 0, PLING_2 + waitRows 16 + playPat 0, 10, 0, PLING_2 + waitRows 16 + playPat 0, 11, 0, PLING_2 + waitRows 16 + playPat 0, 12, 0, PLING_2 + waitRows 16 + playPat 0, 13, 0, PLING_2 + waitRows 16 + playPat 0, 14, 0, PLING_2 + waitRows 16 + playPat 0, 15, 0, PLING_2 + waitRows 16 + playPat 0, 16, 0, PLING_2 + waitRows 16 + playPat 0, 17, 0, PLING_2 + waitRows 16 + playPat 0, 18, 0, PLING_2 + waitRows 16 + playPat 0, 19, 0, PLING_2 + waitRows 16 + playPat 0, 20, 0, PLING_2 + waitRows 16 + playPat 0, 21, 0, PLING_2 + waitRows 16 + playPat 0, 22, 0, PLING_2 + waitRows 16 + playPat 0, 23, 0, PLING_2 + waitRows 16 + playPat 0, 24, 0, PLING_2 + waitRows 16 + playPat 0, 25, 0, PLING_2 + waitRows 16 + playPat 0, 26, 0, PLING_2 + waitRows 16 + playPat 0, 27, 0, PLING_2 + waitRows 16 + playPat 0, 28, 0, PLING_2 + waitRows 16 + playPat 0, 29, 0, PLING_2 + waitRows 16 + playPat 0, 30, 0, PLING_2 + waitRows 16 + playPat 1, 31, 0, PLING_2 + waitRows 16 + playPat 1, 32, 0, PLING_2 + waitRows 16 + playPat 1, 33, 0, PLING_2 + waitRows 16 + playPat 1, 34, 0, PLING_2 + waitRows 16 + playPat 1, 35, 0, PLING_2 + waitRows 16 + playPat 1, 36, 0, PLING_2 + waitRows 16 + playPat 1, 37, 0, PLING_2 + waitRows 16 + playPat 1, 38, 0, PLING_2 + waitRows 16 + playPat 1, 39, 0, PLING_2 + waitRows 16 + playPat 1, 40, 0, PLING_2 + waitRows 16 + playPat 1, 41, 0, PLING_2 + waitRows 16 + playPat 1, 42, 0, PLING_2 + waitRows 16 + playPat 1, 43, 0, PLING_2 + waitRows 16 + playPat 1, 44, 0, PLING_2 + waitRows 16 + playPat 1, 45, 0, PLING_2 + waitRows 16 + playPat 1, 46, 0, PLING_2 + waitRows 16 + playPat 1, 47, 0, PLING_2 + waitRows 16 + playPat 1, 48, 0, PLING_2 + waitRows 16 + playPat 1, 49, 0, PLING_2 + waitRows 16 + playPat 1, 50, 0, PLING_2 + waitRows 16 + playPat 1, 51, 0, PLING_2 + waitRows 16 + playPat 1, 52, 0, PLING_2 + waitRows 16 + playPat 1, 53, 0, PLING_2 + waitRows 16 + playPat 1, 54, 0, PLING_2 + waitRows 16 + playPat 1, 55, 0, PLING_2 + waitRows 16 + playPat 1, 56, 0, PLING_2 + waitRows 16 + fine diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/simplewavwriter.cpp b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/simplewavwriter.cpp new file mode 100644 index 0000000..a58d397 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/simplewavwriter.cpp @@ -0,0 +1,931 @@ +#include "simplewavwriter.h" +#include +#include +#include +#include +#include + +SimpleWavWriter::SimpleWavWriter(QObject *parent) + : QObject(parent), recording(false), paused(false), playbackSpeed(1.0), bassVolumeMultiplier(2.0) +{ + // Инициализируем дорожки + tracks.resize(MAX_TRACKS); + for (int i = 0; i < MAX_TRACKS; i++) { + tracks[i] = Track(i); // Используем конструктор с индексом + tracks[i].instrument = 1; // По умолчанию Grand Piano + tracks[i].volume = 1.0; + tracks[i].muted = false; + tracks[i].solo = false; + } + + // Настраиваем формат аудио + format.setSampleRate(SAMPLE_RATE); + format.setChannelCount(1); // Моно + format.setSampleSize(BIT_DEPTH); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); +} + +bool SimpleWavWriter::startRecording(int sampleRate) +{ + if (recording) return false; + + format.setSampleRate(sampleRate); + recording = true; + paused = false; + + emit recordingStatusChanged(true); + return true; +} + +void SimpleWavWriter::stopRecording() +{ + recording = false; + paused = false; + emit recordingStatusChanged(false); +} + +void SimpleWavWriter::pauseRecording() +{ + if (recording && !paused) { + paused = true; + } +} + +void SimpleWavWriter::resumeRecording() +{ + if (recording && paused) { + paused = false; + } +} + +void SimpleWavWriter::addNote(int track, double time, int note, int velocity, double duration, int instrument) +{ + if (track < 0 || track >= MAX_TRACKS) return; + + // Применяем множитель громкости для басовых инструментов + double volume = velocity / 127.0; + static QSet bassInstruments = {28, 33, 39, 40, 29, 37, 38}; + if (bassInstruments.contains(instrument)) { + volume *= bassVolumeMultiplier; + volume = qMin(volume, 1.0); // Ограничиваем максимальную громкость + } + + tracks[track].events.append(NoteEvent(time, note, velocity, duration, instrument, volume)); + tracks[track].instrument = instrument; + + emit trackUpdated(track); +} + +void SimpleWavWriter::clearTrack(int track) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].events.clear(); + emit trackUpdated(track); + } +} + +void SimpleWavWriter::clearAllTracks() +{ + for (int i = 0; i < MAX_TRACKS; i++) { + tracks[i].events.clear(); + emit trackUpdated(i); + } +} + +QString SimpleWavWriter::getTrackName(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].name; + } + return QString(); +} + +void SimpleWavWriter::setTrackName(int track, const QString &name) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].name = name; + emit trackUpdated(track); + } +} + +int SimpleWavWriter::getEventCount(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].events.size(); + } + return 0; +} + +int SimpleWavWriter::getTrackInstrument(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].instrument; + } + return 1; +} + +void SimpleWavWriter::setTrackInstrument(int track, int instrument) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].instrument = instrument; + emit trackUpdated(track); + } +} + +double SimpleWavWriter::getTrackVolume(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].volume; + } + return 1.0; +} + +void SimpleWavWriter::setTrackVolume(int track, double volume) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].volume = qBound(0.0, volume, 2.0); + emit trackUpdated(track); + } +} + +bool SimpleWavWriter::isTrackMuted(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].muted; + } + return false; +} + +void SimpleWavWriter::muteTrack(int track, bool muted) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].muted = muted; + emit trackUpdated(track); + } +} + +bool SimpleWavWriter::isTrackSolo(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].solo; + } + return false; +} + +void SimpleWavWriter::soloTrack(int track, bool solo) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].solo = solo; + emit trackUpdated(track); + } +} + +QByteArray SimpleWavWriter::getTrackAudioData(int track, bool mix) +{ + if (track < 0 || track >= MAX_TRACKS) return QByteArray(); + + if (mix) { + // Смешиваем все дорожки + QVector allTracks; + for (int i = 0; i < MAX_TRACKS; i++) { + allTracks.append(i); + } + return mixTracks(allTracks); + } + + return mixTracks(QVector{track}); +} + +QByteArray SimpleWavWriter::getAllTracksAudioData() +{ + // Собираем индексы всех дорожек, которые не заглушены и имеют данные + QVector activeTracks; + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].muted && !tracks[i].events.isEmpty()) { + activeTracks.append(i); + } + } + + if (activeTracks.isEmpty()) { + return QByteArray(); + } + + return mixTracks(activeTracks); +} + +bool SimpleWavWriter::loadWavToTrack(const QString &filename, int track) +{ + // Временно заглушка - в реальной реализации нужно парсить WAV файл + QFile file(filename); + if (!file.open(QIODevice::ReadOnly)) return false; + + // Пропускаем заголовок WAV (44 байта) + file.seek(44); + QByteArray audioData = file.readAll(); + file.close(); + + // Создаем событие для импортированного аудио + if (!audioData.isEmpty()) { + // Очищаем дорожку и добавляем специальное событие + tracks[track].events.clear(); + // Здесь нужно добавить логику для импорта WAV + emit trackUpdated(track); + return true; + } + + return false; +} + +void SimpleWavWriter::copyTrack(int fromTrack, int toTrack) +{ + if (fromTrack < 0 || fromTrack >= MAX_TRACKS || + toTrack < 0 || toTrack >= MAX_TRACKS || fromTrack == toTrack) { + return; + } + + tracks[toTrack] = tracks[fromTrack]; + tracks[toTrack].name = QString("Копия %1").arg(tracks[fromTrack].name); + emit trackUpdated(toTrack); +} + +void SimpleWavWriter::mergeTrack(int fromTrack, int toTrack) +{ + if (fromTrack < 0 || fromTrack >= MAX_TRACKS || + toTrack < 0 || toTrack >= MAX_TRACKS || fromTrack == toTrack) { + return; + } + + tracks[toTrack].events.append(tracks[fromTrack].events); + // Сортируем события по времени + std::sort(tracks[toTrack].events.begin(), tracks[toTrack].events.end(), + [](const NoteEvent &a, const NoteEvent &b) { return a.time < b.time; }); + + emit trackUpdated(toTrack); +} + +void SimpleWavWriter::setPlaybackSpeed(double speed) +{ + playbackSpeed = qBound(0.5, speed, 2.0); +} + +void SimpleWavWriter::setBassVolumeMultiplier(double multiplier) +{ + bassVolumeMultiplier = qBound(1.0, multiplier, 4.0); +} + +QByteArray SimpleWavWriter::generateNoteAudio(int note, int velocity, double duration, int instrument, double volume) +{ + double frequency = noteToFrequency(note); + double amplitude = (velocity / 127.0) * volume; + + return generateInstrumentWave(instrument, frequency, duration, amplitude); +} + +QByteArray SimpleWavWriter::generateSilence(double duration) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray silence(samples * sizeof(qint16), 0); + return silence; +} + +void SimpleWavWriter::writeWavHeader(QFile &file, quint32 dataSize) +{ + // RIFF header + file.write("RIFF"); + file.write(intToBytes(36 + dataSize)); + file.write("WAVE"); + + // fmt chunk + file.write("fmt "); + file.write(intToBytes(16)); // chunk size + file.write(shortToBytes(1)); // audio format (PCM) + file.write(shortToBytes(format.channelCount())); // channels + file.write(intToBytes(format.sampleRate())); // sample rate + file.write(intToBytes(format.sampleRate() * format.channelCount() * format.sampleSize() / 8)); // byte rate + file.write(shortToBytes(format.channelCount() * format.sampleSize() / 8)); // block align + file.write(shortToBytes(format.sampleSize())); // bits per sample + + // data chunk + file.write("data"); + file.write(intToBytes(dataSize)); +} + +bool SimpleWavWriter::saveToFile(const QString &filename) +{ + // Получаем аудиоданные всех активных дорожек + QByteArray audioData = getAllTracksAudioData(); + if (audioData.isEmpty()) { + qDebug() << "Нет данных для сохранения - все дорожки пусты или заглушены"; + + // Выводим информацию о дорожках для отладки + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].events.isEmpty()) { + qDebug() << "Дорожка" << i << ":" << tracks[i].name + << "инструмент:" << tracks[i].instrument + << "нот:" << tracks[i].events.size() + << "заглушена:" << tracks[i].muted; + } + } + + return false; + } + + QFile file(filename); + if (!file.open(QIODevice::WriteOnly)) { + qDebug() << "Не удалось открыть файл для записи:" << filename; + return false; + } + + // Записываем WAV заголовок + writeWavHeader(file, audioData.size()); + + // Записываем аудиоданные + qint64 bytesWritten = file.write(audioData); + file.close(); + + if (bytesWritten != audioData.size()) { + qDebug() << "Ошибка записи файла: записано" << bytesWritten << "байт из" << audioData.size(); + return false; + } + + // Выводим информацию о сохраненном файле + double duration = audioData.size() / (2.0 * SAMPLE_RATE); // байты / (2 байта на сэмпл * частота) + int activeTracks = 0; + int totalNotes = 0; + + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].muted && !tracks[i].events.isEmpty()) { + activeTracks++; + totalNotes += tracks[i].events.size(); + } + } + + qDebug() << "Файл успешно сохранен:"; + qDebug() << " Имя файла:" << filename; + qDebug() << " Размер:" << audioData.size() << "байт"; + qDebug() << " Частота дискретизации:" << SAMPLE_RATE << "Гц"; + qDebug() << " Битрейт:" << (SAMPLE_RATE * 2 * 8) / 1000 << "кбит/с"; + qDebug() << " Длительность:" << duration << "секунд"; + qDebug() << " Активных дорожек:" << activeTracks; + qDebug() << " Всего нот:" << totalNotes; + + return true; +} + +// НОВЫЙ МЕТОД: Конвертирует время в секундах в тики Pently (базовый темп 1000) +int SimpleWavWriter::secondsToPentlyTicks(double seconds) const +{ + // Базовый темп: 1000 тиков в секунде + return static_cast(seconds * 1000.0); +} + +// НОВЫЙ ИСПРАВЛЕННЫЙ МЕТОД: Конвертирует тики в строку задержки (макс. D_D8 = 255 тиков) +QString SimpleWavWriter::ticksToDelayString(int ticks) const +{ + if (ticks <= 0) return QString(); + + // Ограничиваем максимальное значение 255 тиков (D_D8) + if (ticks > 255) { + ticks = 255; + } + + // Определяем наилучшее представление задержки + // В Pently формат поддерживает только определенные значения задержек + if (ticks >= 240) return QString("D_D8"); + if (ticks >= 120) return QString("D_D4"); + if (ticks >= 60) return QString("D_D2"); + if (ticks >= 30) return QString("D_1"); + if (ticks >= 15) return QString("D_2"); + if (ticks >= 8) return QString("D_4"); + if (ticks >= 4) return QString("D_8"); + if (ticks >= 2) return QString("D_16"); + + return QString("D_32"); +} + +// НОВЫЙ МЕТОД: Разбивает большую задержку на несколько маленьких +QVector SimpleWavWriter::splitLongDelay(int ticks) const +{ + QVector delays; + + while (ticks > 255) { + delays.append("D_D8"); + ticks -= 255; + } + + if (ticks > 0) { + QString delay = ticksToDelayString(ticks); + if (!delay.isEmpty()) { + delays.append(delay); + } + } + + return delays; +} + +// НОВЫЙ МЕТОД: Создает паттерн из событий дорожки с учетом ограничений Pently +QString SimpleWavWriter::generatePattern(int trackIndex) const +{ + if (trackIndex < 0 || trackIndex >= tracks.size()) return QString(); + + const Track& track = tracks[trackIndex]; + if (track.events.isEmpty()) return QString(); + + QString pattern; + + // Сортируем события по времени + QVector sortedEvents = track.events; + std::sort(sortedEvents.begin(), sortedEvents.end(), + [](const NoteEvent &a, const NoteEvent &b) { return a.time < b.time; }); + + double lastTime = 0; + for (const NoteEvent &event : sortedEvents) { + // Вычисляем задержку от предыдущего события + double delay = event.time - lastTime; + if (delay > 0) { + int delayTicks = secondsToPentlyTicks(delay); + + // Разбиваем большую задержку на несколько маленьких + QVector delayCommands = splitLongDelay(delayTicks); + for (const QString &delayCmd : delayCommands) { + pattern += QString(" .byt %1\n").arg(delayCmd); + } + } + + // Добавляем ноту с ее длительностью + QString noteStr = noteToPentlyNote(event.note); + int durationTicks = secondsToPentlyTicks(event.duration); + QString durationStr = ticksToDelayString(durationTicks); + + if (!noteStr.isEmpty() && !durationStr.isEmpty()) { + pattern += QString(" .byt %1|%2\n").arg(noteStr).arg(durationStr); + } + + lastTime = event.time + event.duration; + } + + return pattern; +} + +// НОВЫЙ МЕТОД: Вычисляет длительность композиции в тактах (с учетом ограничения 255) +int SimpleWavWriter::calculateTotalRows() const +{ + double maxDuration = 0; + + for (const Track& track : tracks) { + for (const NoteEvent &event : track.events) { + double endTime = event.time + event.duration; + if (endTime > maxDuration) { + maxDuration = endTime; + } + } + } + + int totalTicks = secondsToPentlyTicks(maxDuration); + + // Ограничиваем максимальное количество тиков для waitRows + if (totalTicks > 255) { + totalTicks = 255; + qDebug() << "ВНИМАНИЕ: Длительность композиции превышает 255 тиков. Ограничено до 255."; + } + + return totalTicks; +} + +// ИСПРАВЛЕННЫЙ МЕТОД: Сохранение в музыкальный файл Pently с учетом ограничений +bool SimpleWavWriter::saveToMusicFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { + qDebug() << "Не удалось открыть файл для записи:" << filename; + return false; + } + + QTextStream out(&file); + out.setCodec("UTF-8"); + + // 1. Проверяем, есть ли данные для сохранения + int trackCount = 0; + QVector trackIndices; + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].events.isEmpty()) { + trackCount++; + trackIndices.append(i); + } + } + + if (trackCount == 0) { + out << "; Нет данных для сохранения\n"; + file.close(); + return false; + } + + qDebug() << "Сохранение музыки: найдено" << trackCount << "дорожек с данными"; + + // 2. Заголовок файла + out << "; Generated by Yamitracker\n"; + out << "; Date: " << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss") << "\n"; + out << "; Tracks: " << trackCount << "\n\n"; + + // 3. Таблица инструментов + out << "music_inst_table:\n"; + + // Карта преобразования инструментов GM в Pently + QMap pentlyInstruments = { + {1, "PLING_8"}, // Grand Piano + {2, "PLING_4"}, // Bright Piano + {3, "PLING_2"}, // Harpsichord + {6, "PLING_2"}, // Harpsichord 2 + + // Bass instruments + {28, "BASSGUITAR"}, + {33, "BASSGUITAR"}, + {39, "BASSGUITAR"}, + {40, "BASSGUITAR"}, + + // Guitar/Overdrive + {29, "XYLSHORT"}, + {37, "XYLSHORT"}, + {38, "XYLSHORT"}, + + // Strings + {48, "XYLMED"}, + {49, "XYLMED"}, + + // Sax/Horn + {81, "HORNBLAT"}, + + // Bright + {95, "XYLSHORT"}, + {96, "XYLSHORT"}, + {100, "XYLSHORT"} + }; + + // Карта параметров инструментов Pently (lv, rv, frq, smp, att, dec, sus, lvl) + QMap instrumentParams = { + {"PLING_8", " 3, 10, 1, 0, 31, 19, 15, 2"}, + {"PLING_4", " 7, 7, 1, 1, 31, 19, 15, 2"}, + {"PLING_2", " 9, 6, 1, 2, 31, 17, 15, 2"}, + {"BASSGUITAR", "12, 12, 1, 4, 31, 17, 15, 8"}, + {"BASSCLAR", "12, 12, 1, 2, 21, 21, 27, 4"}, + {"HORNBLAT", " 3, 9, 1, 0, 21, 21, 27, 4"}, + {"XYLSHORT", "10, 6, 1, 2, 31, 23, 20, 2"}, + {"XYLMED", "10, 6, 1, 2, 31, 19, 17, 2"}, + {"STRING", "10, 6, 1, 2, 31, 23, 20, 2"} + }; + + // Генерируем уникальные инструменты для каждой дорожки + QMap trackInstruments; + for (int trackIndex : trackIndices) { + int gmInstrument = tracks[trackIndex].instrument; + QString pentlyInst = pentlyInstruments.value(gmInstrument, "PLING_8"); + trackInstruments[trackIndex] = pentlyInst; + + QString params = instrumentParams.value(pentlyInst, "10, 10, 1, 1, 31, 17, 15, 8"); + out << " INST " << pentlyInst << "," << params << "\n"; + } + + out << "\n"; + + // 4. Таблица паттернов + out << "pently_patterns:\n"; + for (int trackIndex : trackIndices) { + out << " .addr PPDAT_track" << trackIndex << "\n"; + } + + // 5. Данные паттернов + for (int trackIndex : trackIndices) { + out << "\nPPDAT_track" << trackIndex << ":\n"; + QString patternData = generatePattern(trackIndex); + if (patternData.isEmpty()) { + out << " .byt PATEND\n"; + } else { + out << patternData; + out << " .byt PATEND\n"; + } + } + + // 6. Таблица песен (теперь только ОДНА песня) + out << "\npently_songs:\n"; + out << " .addr PSDAT_main_song\n\n"; + + // 7. Создаем ОДНУ главную песню, которая управляет всеми дорожками + out << "PSDAT_main_song:\n"; + + // Вычисляем длительность композиции с учетом ограничений Pently + int totalRows = calculateTotalRows(); + + qDebug() << "Общая длительность в тиках (ограничено):" << totalRows; + + // Устанавливаем темп + out << " setTempo 1000\n"; + + // Запускаем все паттерны одновременно + int channel = 0; + for (int trackIndex : trackIndices) { + QString instName = trackInstruments[trackIndex]; + out << QString(" playPat %1, %2, 23, %3\n") + .arg(channel).arg(trackIndex).arg(instName); + channel++; + } + + // Ждем длительность композиции (ограничено 255) + out << QString(" waitRows %1\n").arg(totalRows); + + // Останавливаем все паттерны + for (int i = 0; i < channel; i++) { + out << QString(" stopPat %1\n").arg(i); + } + + // Зацикливаем + out << " dalSegno\n"; + + // 8. Добавляем информацию об ограничениях + out << "\n; ОГРАНИЧЕНИЯ PENTLY:\n"; + out << "; - Максимальная длительность задержки: D_D8 (255 тиков)\n"; + out << "; - Максимальный waitRows: 255 тиков\n"; + out << "; - Длительные паузы разбиваются на несколько D_D8\n"; + + file.close(); + + qDebug() << "Музыкальный файл сохранен:" << filename; + qDebug() << "Треков:" << trackCount; + qDebug() << "Длительность (тиков):" << totalRows; + qDebug() << "ПРЕДУПРЕЖДЕНИЕ: Композиция адаптирована под ограничения Pently"; + + return true; +} + +QByteArray SimpleWavWriter::mixTracks(const QVector &trackIndices) +{ + // Находим максимальную длительность среди выбранных дорожек + double maxDuration = 0; + for (int trackIndex : trackIndices) { + if (trackIndex < 0 || trackIndex >= MAX_TRACKS) continue; + + const Track &track = tracks[trackIndex]; + for (const NoteEvent &event : track.events) { + double endTime = event.time + event.duration; + if (endTime > maxDuration) { + maxDuration = endTime; + } + } + } + + if (maxDuration <= 0) { + return QByteArray(); + } + + // Создаем буфер для микширования + int totalSamples = static_cast(maxDuration * format.sampleRate()); + QVector mixBuffer(totalSamples, 0); + + // Обрабатываем каждую дорожку + for (int trackIndex : trackIndices) { + if (trackIndex < 0 || trackIndex >= MAX_TRACKS) continue; + + const Track &track = tracks[trackIndex]; + double trackVolume = track.volume; + + // Обрабатываем каждое событие в дорожке + for (const NoteEvent &event : track.events) { + // Генерируем аудио для ноты + QByteArray noteAudio = generateNoteAudio( + event.note, + event.velocity, + event.duration, + event.instrument, + event.volume * trackVolume + ); + + // Вычисляем начальный сэмпл (на основе абсолютного времени) + int startSample = static_cast(event.time * format.sampleRate()); + const qint16 *noteData = reinterpret_cast(noteAudio.constData()); + int noteSamples = noteAudio.size() / sizeof(qint16); + + // Микшируем ноту в общий буфер + for (int i = 0; i < noteSamples && startSample + i < totalSamples; i++) { + // Прибавляем ноту к миксу + qint32 mixed = mixBuffer[startSample + i] + noteData[i]; + + // Ограничиваем значение для предотвращения клиппинга + if (mixed > 32767) mixed = 32767; + if (mixed < -32768) mixed = -32768; + + mixBuffer[startSample + i] = static_cast(mixed); + } + } + } + + // Конвертируем буфер в QByteArray + QByteArray result; + result.resize(totalSamples * sizeof(qint16)); + qint16 *resultData = reinterpret_cast(result.data()); + + for (int i = 0; i < totalSamples; i++) { + resultData[i] = mixBuffer[i]; + } + + return result; +} + +double SimpleWavWriter::noteToFrequency(int note) const +{ + // Формула для преобразования ноты в частоту + return 440.0 * pow(2.0, (note - 69) / 12.0); +} + +QByteArray SimpleWavWriter::generateSineWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double angularFreq = 2.0 * M_PI * frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double value = sin(angularFreq * t); + buffer[i] = static_cast(value * maxAmplitude); + } + + return data; +} + +QByteArray SimpleWavWriter::generateSquareWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double period = 1.0 / frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double phase = fmod(t, period) / period; + buffer[i] = static_cast((phase < 0.5 ? maxAmplitude : -maxAmplitude)); + } + + return data; +} + +QByteArray SimpleWavWriter::generateSawtoothWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double period = 1.0 / frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double phase = fmod(t, period) / period; + buffer[i] = static_cast((2.0 * phase - 1.0) * maxAmplitude); + } + + return data; +} + +QByteArray SimpleWavWriter::generateTriangleWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double period = 1.0 / frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double phase = fmod(t, period) / period; + double value; + + if (phase < 0.25) { + value = 4.0 * phase; + } else if (phase < 0.75) { + value = 2.0 - 4.0 * phase; + } else { + value = 4.0 * phase - 4.0; + } + + buffer[i] = static_cast(value * maxAmplitude); + } + + return data; +} + +QByteArray SimpleWavWriter::generateInstrumentWave(int instrument, double frequency, double duration, double amplitude) +{ + // Выбираем форму волны в зависимости от инструмента + static QMap waveTypes = { + {1, "sine"}, {2, "sine"}, // Piano + {3, "square"}, {6, "square"}, // Harpsichord + {28, "sawtooth"}, {33, "sawtooth"}, {39, "sawtooth"}, {40, "square"}, // Bass + {29, "square"}, {37, "square"}, {38, "square"}, // Guitar + {48, "sine"}, {49, "sine"}, // Strings + {81, "sine"}, // Sax + {95, "triangle"}, {96, "triangle"}, {100, "triangle"} // Bright + }; + + QString waveType = waveTypes.value(instrument, "sine"); + + if (waveType == "square") { + return generateSquareWave(frequency, duration, amplitude); + } else if (waveType == "sawtooth") { + return generateSawtoothWave(frequency, duration, amplitude); + } else if (waveType == "triangle") { + return generateTriangleWave(frequency, duration, amplitude); + } else { + return generateSineWave(frequency, duration, amplitude); + } +} + +QByteArray SimpleWavWriter::intToBytes(qint32 value) +{ + QByteArray bytes(4, 0); + bytes[0] = static_cast(value & 0xFF); + bytes[1] = static_cast((value >> 8) & 0xFF); + bytes[2] = static_cast((value >> 16) & 0xFF); + bytes[3] = static_cast((value >> 24) & 0xFF); + return bytes; +} + +QByteArray SimpleWavWriter::shortToBytes(qint16 value) +{ + QByteArray bytes(2, 0); + bytes[0] = static_cast(value & 0xFF); + bytes[1] = static_cast((value >> 8) & 0xFF); + return bytes; +} + +QString SimpleWavWriter::noteToPentlyNote(int note) const +{ + // Преобразуем MIDI номер ноты в формат Pently + // MIDI: 60 = C4, 61 = C#4, 62 = D4, и т.д. + + int octave = note / 12; + int noteInOctave = note % 12; + + // Базовые названия нот + QString noteName; + switch (noteInOctave) { + case 0: noteName = "N_C"; break; + case 1: noteName = "N_CS"; break; + case 2: noteName = "N_D"; break; + case 3: noteName = "N_DS"; break; + case 4: noteName = "N_E"; break; + case 5: noteName = "N_F"; break; + case 6: noteName = "N_FS"; break; + case 7: noteName = "N_G"; break; + case 8: noteName = "N_GS"; break; + case 9: noteName = "N_A"; break; + case 10: noteName = "N_AS"; break; + case 11: noteName = "N_B"; break; + } + + // Добавляем октаву + if (octave == 4) { + // Средняя октава (C4-B4) - без суффикса в Pently + return noteName; + } else if (octave == 5) { + // Высокая октава (C5-B5) - добавляем H + return noteName + "H"; + } else if (octave == 3) { + // Низкая октава (C3-B3) - добавляем суффикс октавы + return noteName + "|OCTAVE_1"; + } else if (octave == 2) { + // Очень низкая октава (C2-B2) - добавляем суффикс + return noteName + "L"; + } else if (octave == 6) { + // Очень высокая октава (C6+) - добавляем суффикс + return noteName + "H|OCTAVE_1"; + } + + // По умолчанию возвращаем базовое имя + return noteName; +} + +QString SimpleWavWriter::durationToPentlyDuration(double duration) const +{ + // Конвертируем длительность в секундах в формат Pently + int ticks = secondsToPentlyTicks(duration); + return ticksToDelayString(ticks); +} + +QString SimpleWavWriter::instrumentToPentlyInstrument(int instrument) const +{ + static QMap instMap = { + {1, "PLING_8"}, {2, "PLING_4"}, {3, "PLING_2"}, {6, "PLING_2"}, + {28, "BASSGUITAR"}, {33, "BASSGUITAR"}, {39, "BASSGUITAR"}, {40, "BASSGUITAR"}, + {29, "XYLSHORT"}, {37, "XYLSHORT"}, {38, "XYLSHORT"}, + {48, "XYLMED"}, {49, "XYLMED"}, {81, "HORNBLAT"}, + {95, "XYLSHORT"}, {96, "XYLSHORT"}, {100, "XYLSHORT"} + }; + + return instMap.value(instrument, "PLING_8"); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/simplewavwriter.h b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/simplewavwriter.h new file mode 100644 index 0000000..ae72612 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/simplewavwriter.h @@ -0,0 +1,136 @@ +// simplewavwriter.h +#ifndef SIMPLEWAVWRITER_H +#define SIMPLEWAVWRITER_H + +#include +#include +#include +#include +#include +#include + +struct NoteEvent { + double time; // Время начала в секундах + int note; // Номер ноты (0-127) + int velocity; // Сила нажатия (0-127) + double duration; // Длительность в секундах + int instrument; // Номер инструмента + double volume; // Громкость ноты (0.0-1.0) + + NoteEvent(double t = 0, int n = 0, int v = 100, double d = 0, int i = 1, double vol = 1.0) + : time(t), note(n), velocity(v), duration(d), instrument(i), volume(vol) {} +}; + +class SimpleWavWriter : public QObject +{ + Q_OBJECT + +public: + static const int MAX_TRACKS = 7; // ИЗМЕНЕНО: было 16, стало 7 + static const int SAMPLE_RATE = 44100; // Улучшенное качество + static const int BIT_DEPTH = 16; + + explicit SimpleWavWriter(QObject *parent = nullptr); + + bool startRecording(int sampleRate = SAMPLE_RATE); + void stopRecording(); + bool isRecording() const { return recording; } + bool isPaused() const { return paused; } + void pauseRecording(); + void resumeRecording(); + + void addNote(int track, double time, int note, int velocity, double duration, int instrument = 1); + void clearTrack(int track); + void clearAllTracks(); + + bool saveToFile(const QString &filename); + bool saveToMusicFile(const QString &filename); + + // Работа с дорожками + QString getTrackName(int track) const; + void setTrackName(int track, const QString &name); + int getEventCount(int track) const; + int getTrackInstrument(int track) const; + void setTrackInstrument(int track, int instrument); + double getTrackVolume(int track) const; + void setTrackVolume(int track, double volume); + bool isTrackMuted(int track) const; + void muteTrack(int track, bool muted); + bool isTrackSolo(int track) const; + void soloTrack(int track, bool solo); + + // Работа с аудиоданными + QByteArray getTrackAudioData(int track, bool mix = false); + QByteArray getAllTracksAudioData(); + + // Загрузка/сохранение дорожек + bool loadWavToTrack(const QString &filename, int track); + void copyTrack(int fromTrack, int toTrack); + void mergeTrack(int fromTrack, int toTrack); + + // Эффекты и настройки + void setPlaybackSpeed(double speed); + void setBassVolumeMultiplier(double multiplier); + + // Генерация звука + QByteArray generateNoteAudio(int note, int velocity, double duration, int instrument, double volume = 1.0); + QByteArray generateSilence(double duration); + +signals: + void trackUpdated(int track); + void recordingStatusChanged(bool recording); + +private: + struct Track { + QString name; + QVector events; + int instrument; + double volume; + bool muted; + bool solo; + int index; // Добавляем индекс дорожки + + Track() : instrument(1), volume(1.0), muted(false), solo(false), index(0) { + } + + // Конструктор с индексом + Track(int idx) : instrument(1), volume(1.0), muted(false), solo(false), index(idx) { + name = QString("Дорожка %1").arg(idx + 1); + } + }; + + bool recording; + bool paused; + QVector tracks; + QAudioFormat format; + double playbackSpeed; + double bassVolumeMultiplier; + + void writeWavHeader(QFile &file, quint32 dataSize); + QByteArray mixTracks(const QVector &trackIndices); + double noteToFrequency(int note) const; + QByteArray generateSineWave(double frequency, double duration, double amplitude); + QByteArray generateSquareWave(double frequency, double duration, double amplitude); + QByteArray generateSawtoothWave(double frequency, double duration, double amplitude); + QByteArray generateTriangleWave(double frequency, double duration, double amplitude); + QByteArray generateInstrumentWave(int instrument, double frequency, double duration, double amplitude); + + // Инструменты для форматирования данных + QByteArray intToBytes(qint32 value); + QByteArray shortToBytes(qint16 value); + + // Форматирование для .s файла + QString noteToPentlyNote(int note) const; + QString durationToPentlyDuration(double duration) const; + QString instrumentToPentlyInstrument(int instrument) const; + + // НОВЫЕ МЕТОДЫ для конвертации в Pently формат + int secondsToPentlyTicks(double seconds) const; + QString ticksToDelayString(int ticks) const; + QVector splitLongDelay(int ticks) const; // НОВЫЙ МЕТОД для разбивки длинных задержек + QString generatePattern(int trackIndex) const; + int calculateTotalRows() const; // НОВЫЙ МЕТОД для вычисления длительности + +}; + +#endif // SIMPLEWAVWRITER_H \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/yamitracker.cpp b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/yamitracker.cpp new file mode 100644 index 0000000..dc3806f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/yamitracker.cpp @@ -0,0 +1,1759 @@ +#include "yamitracker.h" +#include "ui_yamitracker.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Глобальная переменная для управления громкостью баса +double bassVolumeMultiplier = 2.0; // Увеличение громкости баса в 2 раза + +// Инструменты басового типа для усиления громкости +QSet bassInstruments = { + 28, // FngrBass (Фингер-бас) + 33, // FngrBass (Фингер-бас) - другой тип + 39, // FngrBass (Фингер-бас) - еще тип + 40, // SlapBas (Слэп-бас) + 38, // DstGtr (Дисторшн-гитара) - тоже можно усилить + 29, // Ovrdrive (Овердрайв-гитара) + 37 // Ovrdrive (Овердрайв-гитара) - другой тип +}; + +void SerialReader::run() +{ + while (!shouldStop) { + int fd = open(currentDevice.toUtf8().constData(), O_RDWR | O_NOCTTY); + if (fd < 0) { + emit error(QString("Cannot open %1").arg(currentDevice)); + emit connectionStatusChanged(false); + sleep(2); + continue; + } + + emit connectionStatusChanged(true); + + QString manufacturer = "Unknown"; + QString model = "Unknown"; + + if (currentDevice.contains("yamaha", Qt::CaseInsensitive) || + currentDevice.contains("psr", Qt::CaseInsensitive)) { + manufacturer = "Yamaha"; + model = "PSR Series"; + } else if (currentDevice.contains("dmmidi")) { + manufacturer = "Yamaha"; + model = "PSR-E333 (Direct MIDI)"; + } + + emit deviceInfoReceived(manufacturer, model); + + struct termios tty; + tcgetattr(fd, &tty); + cfsetospeed(&tty, B115200); + cfsetispeed(&tty, B115200); + tty.c_cflag |= (CLOCAL | CREAD | CS8); + tty.c_cc[VMIN] = 1; + tcsetattr(fd, TCSANOW, &tty); + + unsigned char byte; + while (!shouldStop && read(fd, &byte, 1) > 0) { + if (byte == 0xF8 || byte == 0xFE) { + continue; + } + + if (byte & 0x80) { + if ((byte & 0xF0) == 0x90) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + + if (velocity == 0) + emit noteOffReceived(hexNote); + else + emit noteOnReceived(hexNote, velocity); + } + } + else if ((byte & 0xF0) == 0x80) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + emit noteOffReceived(hexNote); + } + } + } + } + + close(fd); + emit connectionStatusChanged(false); + + if (!shouldStop) { + emit error(QString("Connection lost to %1. Attempting to reconnect...").arg(currentDevice)); + sleep(2); + } + } +} + +Yamitracker::Yamitracker(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::Yamitracker) + , serialReader(new SerialReader(this)) + , reconnectTimer(new QTimer(this)) + , isConnected(false) + , wavWriter(new SimpleWavWriter(this)) + , recordingStartTime(0) + , brrConverter(new BrrConverter(this)) + , audioPlayerProcess(new QProcess(this)) + , playbackSpeedSlider(nullptr) + , bassVolumeSlider(nullptr) + , speedLabel(nullptr) + , volumeLabel(nullptr) + , audioOutput(nullptr) + , audioBuffer(nullptr) + , playbackTimer(new QTimer(this)) + , isPlayingBack(false) + , currentPlaybackTrack(-1) + , currentTrack(0) + , globalRecordingStartTime(0) + , isGlobalRecording(false) +{ + ui->setupUi(this); + + deviceLabel = ui->deviceLabel; + refreshDevicesButton = ui->refreshDevicesButton; + midiFilesList = ui->midiFilesList; + instrumentComboBox = ui->instrumentComboBox; + trackComboBox = ui->trackComboBox; + + // Ищем элементы в UI + playbackSpeedSlider = findChild("playbackSpeedSlider"); + bassVolumeSlider = findChild("bassVolumeSlider"); + speedLabel = findChild("speedLabel"); + volumeLabel = findChild("volumeLabel"); + + // Настраиваем слайдеры, если они найдены + if (playbackSpeedSlider) { + playbackSpeedSlider->setRange(50, 200); // 50% - 200% + playbackSpeedSlider->setValue(100); // 100% по умолчанию + playbackSpeedSlider->setTickInterval(10); + playbackSpeedSlider->setTickPosition(QSlider::TicksBelow); + } + + if (bassVolumeSlider) { + bassVolumeSlider->setRange(100, 400); // 100% - 400% + bassVolumeSlider->setValue(200); // 200% по умолчанию + bassVolumeSlider->setTickInterval(50); + bassVolumeSlider->setTickPosition(QSlider::TicksBelow); + } + + // Инициализируем дорожки и время записи по дорожкам + initializeTracks(); + initializeTrackControls(); + + // Инициализируем векторы времени записи по дорожкам + trackRecordingStartTimes.resize(SimpleWavWriter::MAX_TRACKS); + trackIsRecording.resize(SimpleWavWriter::MAX_TRACKS); + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + trackRecordingStartTimes[i] = 0; + trackIsRecording[i] = false; + } + + // Обновляем метки + updateSpeedLabel(); + updateVolumeLabel(); + updateTrackInfo(); + + // Подключаем сигналы + if (playbackSpeedSlider) { + connect(playbackSpeedSlider, &QSlider::valueChanged, this, &Yamitracker::onPlaybackSpeedChanged); + } + if (bassVolumeSlider) { + connect(bassVolumeSlider, &QSlider::valueChanged, this, &Yamitracker::onBassVolumeChanged); + } + + // Заполняем комбобокс инструментами + QList instrumentIds = instruments.keys(); + std::sort(instrumentIds.begin(), instrumentIds.end()); + for (int id : instrumentIds) { + QString instrumentName = instruments[id]; + // Добавляем пометку для басовых инструментов + if (bassInstruments.contains(id)) { + instrumentName += " [БАС - усилено]"; + } + instrumentComboBox->addItem(QString("%1: %2").arg(id).arg(instrumentName), id); + } + + initializeKeyButtons(); + initializeDeviceDetection(); + + // Подключаем сигналы серийного порта + connect(serialReader, &SerialReader::noteOnReceived, this, &Yamitracker::onNoteOnReceived); + connect(serialReader, &SerialReader::noteOffReceived, this, &Yamitracker::onNoteOffReceived); + connect(serialReader, &SerialReader::error, this, &Yamitracker::onError); + connect(serialReader, &SerialReader::connectionStatusChanged, this, &Yamitracker::onConnectionStatusChanged); + connect(serialReader, &SerialReader::deviceInfoReceived, this, &Yamitracker::onDeviceInfoReceived); + + // Подключаем кнопки управления записью + connect(ui->playButton, &QPushButton::clicked, this, &Yamitracker::onPlayClicked); + connect(ui->pauseButton, &QPushButton::clicked, this, &Yamitracker::onPauseClicked); + connect(ui->stopButton, &QPushButton::clicked, this, &Yamitracker::onStopClicked); + connect(ui->convertButton, &QPushButton::clicked, this, &Yamitracker::onConvertToBrrClicked); + connect(refreshDevicesButton, &QPushButton::clicked, this, &Yamitracker::onRefreshDevicesClicked); + connect(ui->loadMidiButton, &QPushButton::clicked, this, &Yamitracker::onLoadMidiFileClicked); + connect(ui->selectFileButton, &QPushButton::clicked, this, &Yamitracker::onSelectFileForConversion); + connect(ui->playFileButton, &QPushButton::clicked, this, &Yamitracker::onSelectFileForPlayback); + connect(ui->saveRecordingButton, &QPushButton::clicked, this, &Yamitracker::onSaveRecordingClicked); + connect(ui->playMidiButton, &QPushButton::clicked, this, &Yamitracker::onPlayMidiFileClicked); + connect(ui->recordFromMidiButton, &QPushButton::clicked, this, &Yamitracker::onRecordFromMidiFile); + connect(midiFilesList, &QListWidget::itemSelectionChanged, this, &Yamitracker::onSelectedMidiFileChanged); + connect(ui->saveMusicButton, &QPushButton::clicked, this, &Yamitracker::onSaveMusicFileClicked); + connect(ui->addTrackButton, &QPushButton::clicked, this, &Yamitracker::onAddTrackClicked); + connect(ui->removeTrackButton, &QPushButton::clicked, this, &Yamitracker::onRemoveTrackClicked); + connect(ui->clearTrackButton, &QPushButton::clicked, this, &Yamitracker::onClearTrackClicked); + connect(trackComboBox, QOverload::of(&QComboBox::currentIndexChanged), this, &Yamitracker::onCurrentTrackChanged); + + // Подключаем новые кнопки + connect(ui->playTrackButton, &QPushButton::clicked, this, &Yamitracker::onPlayTrackClicked); + connect(ui->playAllButton, &QPushButton::clicked, this, &Yamitracker::onPlayAllTracksClicked); + connect(ui->stopPlaybackButton, &QPushButton::clicked, this, &Yamitracker::onStopPlaybackClicked); + connect(ui->loadWavButton, &QPushButton::clicked, this, &Yamitracker::onLoadWavToTrackClicked); + connect(ui->copyTrackButton, &QPushButton::clicked, this, &Yamitracker::onCopyTrackClicked); + connect(ui->mergeTrackButton, &QPushButton::clicked, this, &Yamitracker::onMergeTracksClicked); + + // Подключаем сигналы от wavWriter + connect(wavWriter, &SimpleWavWriter::trackUpdated, this, [this](int track) { + if (track == currentTrack) { + updateTrackInfo(); + } + }); + + connect(wavWriter, &SimpleWavWriter::recordingStatusChanged, this, [this](bool recording) { + if (recording) { + ui->statusLabel->setText("Запись активна"); + ui->playButton->setEnabled(false); + ui->stopButton->setEnabled(true); + ui->pauseButton->setEnabled(true); + } else { + ui->statusLabel->setText("Запись остановлена"); + ui->playButton->setEnabled(true); + ui->stopButton->setEnabled(false); + ui->pauseButton->setEnabled(false); + ui->pauseButton->setText("⏸ Пауза"); + } + }); + + connect(reconnectTimer, &QTimer::timeout, this, &Yamitracker::attemptReconnect); + reconnectTimer->start(5000); + + connect(audioPlayerProcess, QOverload::of(&QProcess::finished), + this, [this](int exitCode, QProcess::ExitStatus exitStatus) { + Q_UNUSED(exitCode); + if (exitStatus == QProcess::NormalExit) { + ui->statusLabel->setText("Воспроизведение завершено"); + } + }); + + // Подключаем таймер воспроизведения + connect(playbackTimer, &QTimer::timeout, this, &Yamitracker::onPlaybackFinished); + + // ОБНОВЛЕННЫЙ СТИЛЬ - черный текст на белом фоне для панели управления дорожками + // Остальные элементы остаются с белым текстом на темном фоне + setStyleSheet( + "QMainWindow { background-color: #2b2b2b; }" + "QLabel { color: #ffffff; font-size: 14px; font-weight: bold; }" + "QGroupBox { color: #ffffff; font-weight: bold; border: 2px solid #555; border-radius: 5px; margin-top: 10px; }" + "QGroupBox::title { color: #ffffff; subcontrol-origin: margin; left: 10px; padding: 0 5px 0 5px; }" + "QPushButton { background-color: #4a4a4a; color: #ffffff; border: 1px solid #555; border-radius: 3px; padding: 5px; font-weight: bold; }" + "QPushButton:hover { background-color: #5a5a5a; }" + "QPushButton:pressed { background-color: #3a3a3a; }" + "QPushButton[whiteKey=true] { background-color: white; color: black; border: 1px solid #ccc; font-size: 8pt; }" + "QPushButton[whiteKey=true]:pressed { background-color: #ff4444; color: white; }" + "QPushButton[blackKey=true] { background-color: black; color: white; font-size: 7pt; }" + "QPushButton[blackKey=true]:pressed { background-color: #ff4444; }" + "QProgressBar { border: 1px solid #555; background: #333; color: white; }" + "QProgressBar::chunk { background: #4CAF50; }" + "QListWidget { background-color: #333; color: #ffffff; border: 1px solid #555; selection-background-color: #555; }" + "QComboBox { background-color: #333; color: #ffffff; border: 1px solid #555; padding: 5px; }" + "QComboBox QAbstractItemView { background-color: #333; color: #ffffff; selection-background-color: #555; }" + "QComboBox::drop-down { border: none; }" + "QComboBox::down-arrow { image: none; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid white; }" + "QSlider::groove:horizontal { border: 1px solid #555; height: 8px; background: #333; margin: 2px 0; }" + "QSlider::handle:horizontal { background: #4CAF50; border: 1px solid #5f5f5f; width: 18px; margin: -2px 0; border-radius: 3px; }" + "QLineEdit { background-color: #ffffff; color: #000000; border: 1px solid #555; padding: 3px; }" // Изменено: белый фон, черный текст + "QCheckBox { color: #ffffff; }" + "QCheckBox::indicator { width: 16px; height: 16px; }" + // Стили для панели управления дорожками + "QScrollArea { background-color: white; }" + "QScrollArea QGroupBox { background-color: white; color: #000000; border: 2px solid #aaa; }" + "QScrollArea QGroupBox::title { color: #000000; }" + "QScrollArea QLabel { color: #000000; }" + "QScrollArea QComboBox { background-color: white; color: #000000; border: 1px solid #aaa; }" + "QScrollArea QComboBox QAbstractItemView { background-color: white; color: #000000; selection-background-color: #ddd; }" + "QScrollArea QPushButton { background-color: #e0e0e0; color: #000000; border: 1px solid #aaa; }" + "QScrollArea QPushButton:hover { background-color: #d0d0d0; }" + "QScrollArea QPushButton:pressed { background-color: #b0b0b0; }" + "QScrollArea QSlider::groove:horizontal { border: 1px solid #aaa; height: 8px; background: #ddd; }" + "QScrollArea QSlider::handle:horizontal { background: #4CAF50; border: 1px solid #5f5f5f; }" + ); + + QTimer::singleShot(1000, this, &Yamitracker::autoDetectAndConnect); + setWindowTitle("Yamaha PSR-E333 Monitor - Multitrack Recording"); + + // Сканируем MIDI файлы при запуске + scanMidiFiles(); + + // Информация о басовых инструментах + qDebug() << "Бас-инструменты усилены в" << bassVolumeMultiplier << "раз"; + qDebug() << "Бас-инструменты: FngrBass(28,33,39), SlapBas(40), Ovrdrive(29,37), DstGtr(38)"; +} + +void Yamitracker::initializeTracks() +{ + trackComboBox->clear(); + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { // Используем MAX_TRACKS + QString trackName = wavWriter->getTrackName(i); + trackComboBox->addItem(trackName, i); + } + trackComboBox->setCurrentIndex(0); + currentTrack = 0; +} + +void Yamitracker::initializeTrackControls() +{ + // Получаем ScrollArea для управления дорожками + QScrollArea* scrollArea = findChild("scrollArea"); + if (!scrollArea) return; + + QWidget* scrollContent = new QWidget(); + QVBoxLayout* tracksLayout = new QVBoxLayout(scrollContent); + + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + QGroupBox* trackGroup = new QGroupBox(QString("Дорожка %1").arg(i + 1), scrollContent); + trackGroup->setProperty("trackIndex", i); + + QHBoxLayout* trackLayout = new QHBoxLayout(trackGroup); + + // Название дорожки + QLineEdit* nameEdit = new QLineEdit(wavWriter->getTrackName(i), trackGroup); + nameEdit->setProperty("trackIndex", i); + nameEdit->setObjectName(QString("trackNameEdit_%1").arg(i)); + nameEdit->setMaximumWidth(150); + connect(nameEdit, &QLineEdit::textChanged, this, &Yamitracker::onTrackNameChanged); + trackNameEdits.append(nameEdit); + + // Инструмент дорожки + QComboBox* instrumentBox = new QComboBox(trackGroup); + instrumentBox->setProperty("trackIndex", i); + instrumentBox->setObjectName(QString("trackInstrumentBox_%1").arg(i)); + instrumentBox->setMaximumWidth(150); + + QList instrumentIds = instruments.keys(); + std::sort(instrumentIds.begin(), instrumentIds.end()); + for (int id : instrumentIds) { + QString instrumentName = instruments[id]; + if (bassInstruments.contains(id)) { + instrumentName += " [БАС]"; + } + instrumentBox->addItem(instrumentName, id); + } + + // Устанавливаем текущий инструмент + int currentInstrument = wavWriter->getTrackInstrument(i); + int index = instrumentBox->findData(currentInstrument); + if (index >= 0) { + instrumentBox->setCurrentIndex(index); + } + + connect(instrumentBox, QOverload::of(&QComboBox::currentIndexChanged), + this, &Yamitracker::onTrackInstrumentChanged); + trackInstrumentComboBoxes.append(instrumentBox); + + // Громкость + QSlider* volumeSlider = new QSlider(Qt::Horizontal, trackGroup); + volumeSlider->setProperty("trackIndex", i); + volumeSlider->setObjectName(QString("trackVolumeSlider_%1").arg(i)); + volumeSlider->setRange(0, 200); + volumeSlider->setValue(static_cast(wavWriter->getTrackVolume(i) * 100)); + volumeSlider->setMaximumWidth(100); + connect(volumeSlider, &QSlider::valueChanged, this, &Yamitracker::onTrackVolumeChanged); + trackVolumeSliders.append(volumeSlider); + + QLabel* volumeLabel = new QLabel(QString("%1%").arg(volumeSlider->value()), trackGroup); + volumeLabel->setProperty("trackIndex", i); + volumeLabel->setObjectName(QString("trackVolumeLabel_%1").arg(i)); + volumeLabel->setMaximumWidth(40); + + // Кнопка Mute + QPushButton* muteButton = new QPushButton(wavWriter->isTrackMuted(i) ? "🔇" : "🔊", trackGroup); + muteButton->setProperty("trackIndex", i); + muteButton->setObjectName(QString("trackMuteButton_%1").arg(i)); + muteButton->setMaximumWidth(40); + connect(muteButton, &QPushButton::clicked, this, &Yamitracker::onMuteTrackClicked); + trackMuteButtons.append(muteButton); + + // Кнопка Solo + QPushButton* soloButton = new QPushButton("🎧", trackGroup); + soloButton->setProperty("trackIndex", i); + soloButton->setObjectName(QString("trackSoloButton_%1").arg(i)); + soloButton->setMaximumWidth(40); + connect(soloButton, &QPushButton::clicked, this, &Yamitracker::onSoloTrackClicked); + trackSoloButtons.append(soloButton); + + // Информация о дорожке + QLabel* infoLabel = new QLabel(QString("%1 нот").arg(wavWriter->getEventCount(i)), trackGroup); + infoLabel->setProperty("trackIndex", i); + infoLabel->setObjectName(QString("trackInfoLabel_%1").arg(i)); + + // Кнопка выбора для одновременного воспроизведения + QCheckBox* selectCheck = new QCheckBox("Воспр.", trackGroup); + selectCheck->setProperty("trackIndex", i); + selectCheck->setObjectName(QString("trackSelectCheck_%1").arg(i)); + selectCheck->setChecked(true); + + // Добавляем элементы в layout + trackLayout->addWidget(new QLabel("Название:", trackGroup)); + trackLayout->addWidget(nameEdit); + trackLayout->addWidget(new QLabel("Инструмент:", trackGroup)); + trackLayout->addWidget(instrumentBox); + trackLayout->addWidget(new QLabel("Громкость:", trackGroup)); + trackLayout->addWidget(volumeSlider); + trackLayout->addWidget(volumeLabel); + trackLayout->addWidget(muteButton); + trackLayout->addWidget(soloButton); + trackLayout->addWidget(selectCheck); + trackLayout->addWidget(infoLabel); + + tracksLayout->addWidget(trackGroup); + } + + // Добавляем растягивающийся спейсер в конец + tracksLayout->addStretch(); + + scrollArea->setWidget(scrollContent); + scrollArea->setWidgetResizable(true); +} + +void Yamitracker::updateTrackControls() +{ + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i < trackNameEdits.size()) { + trackNameEdits[i]->setText(wavWriter->getTrackName(i)); + } + + if (i < trackInstrumentComboBoxes.size()) { + int currentInstrument = wavWriter->getTrackInstrument(i); + int index = trackInstrumentComboBoxes[i]->findData(currentInstrument); + if (index >= 0) { + trackInstrumentComboBoxes[i]->setCurrentIndex(index); + } + } + + if (i < trackVolumeSliders.size()) { + trackVolumeSliders[i]->setValue(static_cast(wavWriter->getTrackVolume(i) * 100)); + } + + if (i < trackMuteButtons.size()) { + trackMuteButtons[i]->setText(wavWriter->isTrackMuted(i) ? "🔇" : "🔊"); + } + + if (i < trackSoloButtons.size()) { + // Обновляем текст кнопки solo при необходимости + } + + // Обновляем информацию о дорожке + QLabel* infoLabel = findChild(QString("trackInfoLabel_%1").arg(i)); + if (infoLabel) { + infoLabel->setText(QString("%1 нот").arg(wavWriter->getEventCount(i))); + } + + // Обновляем метку громкости + QLabel* volumeLabel = findChild(QString("trackVolumeLabel_%1").arg(i)); + if (volumeLabel) { + volumeLabel->setText(QString("%1%").arg(trackVolumeSliders[i]->value())); + } + } +} + +void Yamitracker::updateTrackInfo() +{ + int eventCount = wavWriter->getEventCount(currentTrack); + QString trackName = wavWriter->getTrackName(currentTrack); + ui->trackInfoLabel->setText(QString("%1: %2 нот").arg(trackName).arg(eventCount)); +} + +void Yamitracker::onCurrentTrackChanged(int index) +{ + currentTrack = trackComboBox->itemData(index).toInt(); + + // Если мы переключаемся на другую дорожку во время записи, + // останавливаем запись на текущей дорожке + if (trackIsRecording[currentTrack] && wavWriter->isRecording()) { + wavWriter->stopRecording(); + trackIsRecording[currentTrack] = false; + ui->statusLabel->setText(QString("Переключение на дорожку %1").arg(currentTrack + 1)); + } + + updateTrackInfo(); +} + +void Yamitracker::onPlaybackSpeedChanged(int value) +{ + double speedPercent = value / 100.0; + wavWriter->setPlaybackSpeed(speedPercent); + updateSpeedLabel(); +} + +void Yamitracker::onBassVolumeChanged(int value) +{ + double volumeMultiplier = value / 100.0; + wavWriter->setBassVolumeMultiplier(volumeMultiplier); + bassVolumeMultiplier = volumeMultiplier; + updateVolumeLabel(); +} + +void Yamitracker::updateSpeedLabel() +{ + if (speedLabel && playbackSpeedSlider) { + int speed = playbackSpeedSlider->value(); + speedLabel->setText(QString("Скорость: %1%").arg(speed)); + } +} + +void Yamitracker::updateVolumeLabel() +{ + if (volumeLabel && bassVolumeSlider) { + int volume = bassVolumeSlider->value(); + volumeLabel->setText(QString("Бас: %1%").arg(volume)); + } +} + +void Yamitracker::onSaveMusicFileClicked() +{ + QString defaultName = "music_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".s"; + QString filename = QFileDialog::getSaveFileName(this, "Сохранить музыкальный файл", defaultName, "ASM файлы (*.s);;Все файлы (*)"); + + if (!filename.isEmpty()) { + saveMusicFile(filename); + } +} + +void Yamitracker::saveMusicFile(const QString &filename) +{ + if (wavWriter->saveToMusicFile(filename)) { + ui->statusLabel->setText(QString("Музыкальный файл сохранен: %1").arg(filename)); + + // Показываем информацию о сохраненном файле + QFileInfo fileInfo(filename); + QString info = QString("Музыкальный файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Pently-style assembler") + .arg(filename) + .arg(fileInfo.size()); + QMessageBox::information(this, "Файл сохранен", info); + + // Открываем файл для просмотра + QDesktopServices::openUrl(QUrl::fromLocalFile(filename)); + } else { + ui->statusLabel->setText("Ошибка сохранения музыкального файла"); + QMessageBox::warning(this, "Ошибка", "Не удалось сохранить музыкальный файл"); + } +} + +void Yamitracker::onAddTrackClicked() +{ + // Создаем новую дорожку + int newTrack = -1; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (wavWriter->getEventCount(i) == 0 && wavWriter->getTrackName(i).startsWith("Дорожка")) { + newTrack = i; + break; + } + } + + if (newTrack == -1) { + QMessageBox::warning(this, "Ошибка", "Достигнуто максимальное количество дорожек"); + return; + } + + // Устанавливаем название новой дорожки + QString newName = QString("Дорожка %1").arg(newTrack + 1); + wavWriter->setTrackName(newTrack, newName); + + // Сбрасываем время записи для новой дорожки + trackRecordingStartTimes[newTrack] = 0; + trackIsRecording[newTrack] = false; + + // Переключаемся на новую дорожку + trackComboBox->setCurrentIndex(newTrack); + currentTrack = newTrack; + + ui->statusLabel->setText(QString("Создана новая дорожка %1").arg(newTrack + 1)); + updateTrackControls(); + updateTrackInfo(); +} + +void Yamitracker::onRemoveTrackClicked() +{ + if (wavWriter->getEventCount(currentTrack) == 0) { + QMessageBox::warning(this, "Ошибка", "Дорожка уже пуста"); + return; + } + + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Удаление дорожки", + QString("Вы уверены, что хотите удалить дорожку %1?\nВсе данные будут потеряны.") + .arg(currentTrack + 1), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + wavWriter->clearTrack(currentTrack); + // Сбрасываем время записи для этой дорожки + trackRecordingStartTimes[currentTrack] = 0; + trackIsRecording[currentTrack] = false; + + ui->statusLabel->setText(QString("Дорожка %1 очищена").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onClearTrackClicked() +{ + if (wavWriter->getEventCount(currentTrack) == 0) { + ui->statusLabel->setText("Дорожка уже пуста"); + return; + } + + wavWriter->clearTrack(currentTrack); + // Сбрасываем время записи для этой дорожки + trackRecordingStartTimes[currentTrack] = 0; + trackIsRecording[currentTrack] = false; + + ui->statusLabel->setText(QString("Дорожка %1 очищена").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); +} + +void Yamitracker::onPlayTrackClicked() +{ + playTrack(currentTrack); +} + +void Yamitracker::onPlayAllTracksClicked() +{ + playAllTracks(); +} + +void Yamitracker::onStopPlaybackClicked() +{ + stopPlayback(); +} + +void Yamitracker::playTrack(int track) +{ + if (isPlayingBack) { + stopPlayback(); + } + + QByteArray audioData = wavWriter->getTrackAudioData(track, false); + if (audioData.isEmpty()) { + ui->statusLabel->setText(QString("Дорожка %1 пуста").arg(track + 1)); + return; + } + + // Настраиваем аудиовыход с высоким качеством + QAudioFormat format; + format.setSampleRate(44100); // Высокое качество + format.setChannelCount(2); // Стерео + format.setSampleSize(16); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(format)) { + format = info.nearestFormat(format); + } + + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + } + if (audioBuffer) { + delete audioBuffer; + } + + audioOutput = new QAudioOutput(format, this); + + // Конвертируем моно в стерео для лучшего качества + QByteArray stereoData = convertMonoToStereo(audioData); + audioBuffer = new QBuffer(this); + audioBuffer->setData(stereoData); + audioBuffer->open(QIODevice::ReadOnly); + + connect(audioOutput, &QAudioOutput::stateChanged, this, &Yamitracker::handleAudioStateChanged); + + currentPlaybackTrack = track; + isPlayingBack = true; + ui->statusLabel->setText(QString("Воспроизведение дорожки %1...").arg(track + 1)); + + audioOutput->start(audioBuffer); + + // Запускаем таймер для отслеживания завершения воспроизведения + playbackTimer->start(100); +} + +void Yamitracker::playAllTracks() +{ + if (isPlayingBack) { + stopPlayback(); + } + + // Получаем аудиоданные всех дорожек (уже микшированные) + QByteArray audioData = wavWriter->getAllTracksAudioData(); + if (audioData.isEmpty()) { + ui->statusLabel->setText("Нет данных для воспроизведения"); + return; + } + + // Настраиваем аудиовыход с высоким качеством + QAudioFormat format; + format.setSampleRate(44100); // Высокое качество + format.setChannelCount(2); // Стерео + format.setSampleSize(16); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(format)) { + format = info.nearestFormat(format); + } + + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + } + if (audioBuffer) { + delete audioBuffer; + } + + audioOutput = new QAudioOutput(format, this); + + // Конвертируем моно в стерео для лучшего качества + QByteArray stereoData = convertMonoToStereo(audioData); + audioBuffer = new QBuffer(this); + audioBuffer->setData(stereoData); + audioBuffer->open(QIODevice::ReadOnly); + + connect(audioOutput, &QAudioOutput::stateChanged, this, &Yamitracker::handleAudioStateChanged); + + currentPlaybackTrack = -1; // Все дорожки + isPlayingBack = true; + + // Получаем количество активных дорожек + int activeTracks = 0; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (!wavWriter->isTrackMuted(i) && wavWriter->getEventCount(i) > 0) { + activeTracks++; + } + } + + ui->statusLabel->setText(QString("Воспроизведение всех дорожек (%1 активных)...").arg(activeTracks)); + + audioOutput->start(audioBuffer); + + // Запускаем таймер для отслеживания завершения воспроизведения + playbackTimer->start(100); +} + +QByteArray Yamitracker::mixSelectedTracks(const QVector &trackIndices) +{ + // Создаем временный WAV writer для микширования + SimpleWavWriter tempWriter; + + // Копируем данные из выбранных дорожек + for (int trackIndex : trackIndices) { + // Копируем события из оригинальной дорожки + // Здесь нужно добавить логику копирования событий + // Временно используем getAllTracksAudioData + } + + return wavWriter->getAllTracksAudioData(); +} + +QByteArray Yamitracker::convertMonoToStereo(const QByteArray &monoData) +{ + // Конвертируем моно 16-битные данные в стерео + const qint16 *monoSamples = reinterpret_cast(monoData.constData()); + int monoCount = monoData.size() / sizeof(qint16); + + QByteArray stereoData(monoCount * 2 * sizeof(qint16), 0); + qint16 *stereoSamples = reinterpret_cast(stereoData.data()); + + for (int i = 0; i < monoCount; i++) { + stereoSamples[i * 2] = monoSamples[i]; // Левый канал + stereoSamples[i * 2 + 1] = monoSamples[i]; // Правый канал + } + + return stereoData; +} + +void Yamitracker::stopPlayback() +{ + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + audioOutput = nullptr; + } + + if (audioBuffer) { + audioBuffer->close(); + delete audioBuffer; + audioBuffer = nullptr; + } + + isPlayingBack = false; + currentPlaybackTrack = -1; + ui->statusLabel->setText("Воспроизведение остановлено"); + playbackTimer->stop(); +} + +void Yamitracker::handleAudioStateChanged(QAudio::State state) +{ + switch (state) { + case QAudio::IdleState: + // Воспроизведение завершено + onPlaybackFinished(); + break; + case QAudio::StoppedState: + if (audioOutput && audioOutput->error() != QAudio::NoError) { + ui->statusLabel->setText("Ошибка воспроизведения"); + } + break; + default: + break; + } +} + +void Yamitracker::onPlaybackFinished() +{ + isPlayingBack = false; + + if (currentPlaybackTrack >= 0) { + ui->statusLabel->setText(QString("Воспроизведение дорожки %1 завершено").arg(currentPlaybackTrack + 1)); + } else if (currentPlaybackTrack == -1) { + ui->statusLabel->setText("Воспроизведение всех дорожек завершено"); + } else { + ui->statusLabel->setText("Воспроизведение завершено"); + } + + currentPlaybackTrack = -1; + playbackTimer->stop(); +} + +void Yamitracker::onLoadWavToTrackClicked() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + if (wavWriter->loadWavToTrack(filename, currentTrack)) { + ui->statusLabel->setText(QString("WAV файл загружен в дорожку %1").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); + } else { + ui->statusLabel->setText("Ошибка загрузки WAV файла"); + } + } +} + +void Yamitracker::onCopyTrackClicked() +{ + bool ok; + int targetTrack = QInputDialog::getInt(this, "Копирование дорожки", + "Введите номер целевой дорожки (1-7):", + currentTrack + 1, 1, 7, 1, &ok); + + if (ok && targetTrack - 1 != currentTrack) { + wavWriter->copyTrack(currentTrack, targetTrack - 1); + + // Копируем состояние времени записи + trackRecordingStartTimes[targetTrack - 1] = trackRecordingStartTimes[currentTrack]; + trackIsRecording[targetTrack - 1] = trackIsRecording[currentTrack]; + + ui->statusLabel->setText(QString("Дорожка %1 скопирована в дорожку %2") + .arg(currentTrack + 1).arg(targetTrack)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onMergeTracksClicked() +{ + bool ok; + int targetTrack = QInputDialog::getInt(this, "Объединение дорожек", + "Введите номер дорожки для объединения (1-7):", + currentTrack + 1, 1, 7, 1, &ok); + + if (ok && targetTrack - 1 != currentTrack) { + wavWriter->mergeTrack(currentTrack, targetTrack - 1); + ui->statusLabel->setText(QString("Дорожка %1 объединена с дорожкой %2") + .arg(currentTrack + 1).arg(targetTrack)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onMuteTrackClicked() +{ + QPushButton* button = qobject_cast(sender()); + if (!button) return; + + int track = button->property("trackIndex").toInt(); + bool muted = wavWriter->isTrackMuted(track); + wavWriter->muteTrack(track, !muted); + + button->setText(!muted ? "🔇" : "🔊"); + ui->statusLabel->setText(QString("Дорожка %1 %2") + .arg(track + 1) + .arg(!muted ? "заглушена" : "включена")); +} + +void Yamitracker::onSoloTrackClicked() +{ + QPushButton* button = qobject_cast(sender()); + if (!button) return; + + int soloTrack = button->property("trackIndex").toInt(); + + // Выключаем все дорожки кроме выбранной + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + wavWriter->muteTrack(i, i != soloTrack); + if (i < trackMuteButtons.size()) { + trackMuteButtons[i]->setText(i == soloTrack ? "🔊" : "🔇"); + } + } + + ui->statusLabel->setText(QString("Только дорожка %1 воспроизводится").arg(soloTrack + 1)); +} + +void Yamitracker::onTrackVolumeChanged(int value) +{ + QSlider* slider = qobject_cast(sender()); + if (!slider) return; + + int track = slider->property("trackIndex").toInt(); + wavWriter->setTrackVolume(track, value / 100.0); + + // Обновляем метку громкости + QLabel* volumeLabel = findChild(QString("trackVolumeLabel_%1").arg(track)); + if (volumeLabel) { + volumeLabel->setText(QString("%1%").arg(value)); + } +} + +void Yamitracker::onTrackNameChanged() +{ + QLineEdit* edit = qobject_cast(sender()); + if (!edit) return; + + int track = edit->property("trackIndex").toInt(); + wavWriter->setTrackName(track, edit->text()); + + // Обновляем комбобокс дорожек + if (track == currentTrack) { + trackComboBox->setItemText(trackComboBox->currentIndex(), edit->text()); + } +} + +void Yamitracker::onTrackInstrumentChanged(int index) +{ + QComboBox* combo = qobject_cast(sender()); + if (!combo) return; + + int track = combo->property("trackIndex").toInt(); + int instrument = combo->itemData(index).toInt(); + wavWriter->setTrackInstrument(track, instrument); + + ui->statusLabel->setText(QString("Инструмент дорожки %1 изменен на %2") + .arg(track + 1) + .arg(instruments.value(instrument, "Неизвестный"))); +} + +void Yamitracker::initializeKeyButtons() +{ + QList whiteKeys = { + ui->key_C1, ui->key_D1, ui->key_E1, ui->key_F1, ui->key_G1, ui->key_A1, ui->key_B1, + ui->key_C2, ui->key_D2, ui->key_E2, ui->key_F2, ui->key_G2, ui->key_A2, ui->key_B2, + ui->key_C3, ui->key_D3, ui->key_E3, ui->key_F3, ui->key_G3, ui->key_A3, ui->key_B3, + ui->key_C4, ui->key_D4, ui->key_E4, ui->key_F4, ui->key_G4, ui->key_A4, ui->key_B4, + ui->key_C5, ui->key_D5, ui->key_E5, ui->key_F5, ui->key_G5, ui->key_A5, ui->key_B5, + ui->key_C6 + }; + + for (QPushButton *key : whiteKeys) { + key->setProperty("whiteKey", true); + keyButtons[key->text()] = key; + } + + QList blackKeys = { + ui->key_Cs1, ui->key_Ds1, ui->key_Fs1, ui->key_Gs1, ui->key_As1, + ui->key_Cs2, ui->key_Ds2, ui->key_Fs2, ui->key_Gs2, ui->key_As2, + ui->key_Cs3, ui->key_Ds3, ui->key_Fs3, ui->key_Gs3, ui->key_As3, + ui->key_Cs4, ui->key_Ds4, ui->key_Fs4, ui->key_Gs4, ui->key_As4, + ui->key_Cs5, ui->key_Ds5, ui->key_Fs5, ui->key_Gs5, ui->key_As5 + }; + + for (QPushButton *key : blackKeys) { + key->setProperty("blackKey", true); + keyButtons[key->text()] = key; + } +} + +QString Yamitracker::getInstrumentName(int program) +{ + return instruments.contains(program) ? instruments[program] : QString("Unknown (%1)").arg(program); +} + +void Yamitracker::onNoteOnReceived(const QString &data, int velocity) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.insert(note); + highlightKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + int volume = (velocity * 100) / 127; + ui->volumeBar->setValue(volume); + + // Записываем ноту, если идет запись на текущей дорожке + if (trackIsRecording[currentTrack]) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - trackRecordingStartTimes[currentTrack]; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + noteStartTimes[data] = currentTime; + + // Записываем начало ноты в текущую дорожку с относительным временем + int currentInstrument = instrumentComboBox->currentData().toInt(); + wavWriter->addNote(currentTrack, currentTime, noteNumber, velocity, 0.1, currentInstrument); + + // Обновляем информацию о дорожке + updateTrackInfo(); + updateTrackControls(); + } + } +} + +void Yamitracker::onNoteOffReceived(const QString &data) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.remove(note); + clearKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + if (currentlyPressedKeys.isEmpty()) { + ui->volumeBar->setValue(0); + } + + if (trackIsRecording[currentTrack] && noteStartTimes.contains(data)) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - trackRecordingStartTimes[currentTrack]; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + double noteStartTime = noteStartTimes[data]; + double duration = currentTime - noteStartTime; + + int noteVelocity = 100; + + // Обновляем длительность ноты (в реальном приложении нужно обновлять существующую ноту) + int currentInstrument = instrumentComboBox->currentData().toInt(); + wavWriter->addNote(currentTrack, noteStartTime, noteNumber, noteVelocity, duration, currentInstrument); + + noteStartTimes.remove(data); + + // Обновляем информацию о дорожке + updateTrackInfo(); + updateTrackControls(); + } + } +} + +void Yamitracker::onConnectionStatusChanged(bool connected) +{ + isConnected = connected; + if (connected) { + ui->statusLabel->setText("Статус: Подключено к синтезатору"); + } else { + ui->statusLabel->setText("Статус: Отключено (переподключение...)"); + } +} + +void Yamitracker::attemptReconnect() +{ + if (!isConnected && (!serialReader || !serialReader->isRunning())) { + qDebug() << "Attempting to reconnect..."; + startSerialReader(); + } +} + +void Yamitracker::onError(const QString &message) +{ + // НЕ показываем всплывающее окно с ошибкой подключения + // Просто обновляем статус в строке состояния + ui->statusLabel->setText("Ошибка: " + message); + + // Показываем окно только для критических ошибок (не связанных с подключением) + if (!message.contains("Cannot open", Qt::CaseInsensitive) && + !message.contains("Connection lost", Qt::CaseInsensitive) && + !message.contains("reconnect", Qt::CaseInsensitive)) { + QMessageBox::warning(this, "Ошибка", message); + } +} + +void Yamitracker::onPlayClicked() +{ + // Получаем выбранный инструмент + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Запись с синтезатора [БАС x%1]...").arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText("Запись с синтезатора..."); + } + + noteStartTimes.clear(); + currentlyPressedKeys.clear(); + clearAllHighlights(); + + // Если дорожка уже записывается, останавливаем запись + if (trackIsRecording[currentTrack]) { + wavWriter->stopRecording(); + trackIsRecording[currentTrack] = false; + } + + // Сбрасываем время записи для текущей дорожки и начинаем новую запись + trackRecordingStartTimes[currentTrack] = QDateTime::currentMSecsSinceEpoch() / 1000.0; + + // Начинаем запись с высоким качеством + if (wavWriter->startRecording(44100)) { + trackIsRecording[currentTrack] = true; + recordingStartTime = trackRecordingStartTimes[currentTrack]; + qDebug() << "Started WAV recording on track:" << currentTrack + << "with start time:" << trackRecordingStartTimes[currentTrack] + << "sample rate: 44100, instrument:" << currentInstrument; + if (isBassInstrument) { + qDebug() << "Bass instrument detected - volume will be increased"; + } + + // Активируем кнопку паузы + ui->pauseButton->setEnabled(true); + } +} + +void Yamitracker::onPauseClicked() +{ + if (trackIsRecording[currentTrack] && wavWriter->isRecording()) { + if (wavWriter->isPaused()) { + wavWriter->resumeRecording(); + ui->statusLabel->setText("Запись возобновлена..."); + ui->pauseButton->setText("⏸ Пауза"); + } else { + wavWriter->pauseRecording(); + ui->statusLabel->setText("Запись приостановлена"); + ui->pauseButton->setText("▶ Продолжить"); + } + } +} + +void Yamitracker::onStopClicked() +{ + ui->statusLabel->setText("Запись остановлена"); + + clearAllHighlights(); + currentlyPressedKeys.clear(); + ui->keysInfoLabel->setText("Нажато клавиш: 0"); + ui->volumeBar->setValue(0); + + if (trackIsRecording[currentTrack] && wavWriter->isRecording()) { + wavWriter->stopRecording(); + trackIsRecording[currentTrack] = false; + + // Деактивируем кнопку паузы + ui->pauseButton->setEnabled(false); + ui->pauseButton->setText("⏸ Пауза"); + + // Предлагаем сохранить запись, если это последняя дорожка + bool hasMoreTracks = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i != currentTrack && wavWriter->getEventCount(i) == 0) { + hasMoreTracks = true; + break; + } + } + + if (!hasMoreTracks) { + onSaveRecordingClicked(); + } + } + + noteStartTimes.clear(); +} + +void Yamitracker::onSaveRecordingClicked() +{ + QString defaultName = "recording_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".wav"; + QString filename = QFileDialog::getSaveFileName(this, "Сохранить запись", defaultName, "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + saveWavFile(filename); + } +} + +void Yamitracker::saveWavFile(const QString &filename) +{ + // Проверяем, есть ли данные для сохранения + bool hasData = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (wavWriter->getEventCount(i) > 0) { + hasData = true; + break; + } + } + + if (!hasData) { + QMessageBox::warning(this, "Ошибка", + "Нет данных для сохранения. Запишите хотя бы одну ноту на любой дорожке."); + return; + } + + if (wavWriter->saveToFile(filename)) { + lastRecordedWavFile = filename; + ui->statusLabel->setText(QString("Сохранено: %1").arg(filename)); + + // Показываем информацию о сохраненном файле + QFileInfo fileInfo(filename); + QString info = QString("WAV файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: 44100 Гц, 16 бит, моно\n" + "Все дорожки микшированы для параллельного воспроизведения") + .arg(filename) + .arg(fileInfo.size()); + QMessageBox::information(this, "Файл сохранен", info); + + // Активируем кнопку конвертации + ui->convertButton->setEnabled(true); + ui->saveMusicButton->setEnabled(true); + + // Предлагаем воспроизвести файл + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Запись завершена", + QString("WAV файл сохранен:\n%1\n\nВоспроизвести файл?").arg(filename), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + playWavExternal(lastRecordedWavFile); + } + } else { + ui->statusLabel->setText("Ошибка сохранения WAV файла"); + QMessageBox::warning(this, "Ошибка", + "Не удалось сохранить WAV файл. Возможно:\n" + "1. Нет данных для записи\n" + "2. Недостаточно прав для записи\n" + "3. Диск переполнен"); + } +} + +void Yamitracker::onConvertToBrrClicked() +{ + if (lastRecordedWavFile.isEmpty() || !QFile::exists(lastRecordedWavFile)) { + onSelectFileForConversion(); + return; + } + + QString baseName = QFileInfo(lastRecordedWavFile).completeBaseName(); + QString brrFile = QFileDialog::getSaveFileName(this, "Сохранить BRR файл", baseName + ".brr", "BRR файлы (*.brr)"); + + if (brrFile.isEmpty()) return; + + ui->statusLabel->setText("Конвертация WAV -> BRR..."); + QApplication::processEvents(); + + if (brrConverter->convertWavToBrr(lastRecordedWavFile, brrFile)) { + ui->statusLabel->setText(QString("Конвертация завершена: %1").arg(brrFile)); + + QFileInfo brrInfo(brrFile); + if (brrInfo.exists()) { + QString info = QString("BRR файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Nintendo SNES ADPCM") + .arg(brrFile) + .arg(brrInfo.size()); + QMessageBox::information(this, "Конвертация завершена", info); + } + } else { + ui->statusLabel->setText("Ошибка конвертации WAV -> BRR"); + QMessageBox::warning(this, "Ошибка", "Не удалось преобразовать WAV в BRR формат"); + } +} + +void Yamitracker::onSelectFileForConversion() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл для конвертации", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + lastRecordedWavFile = filename; + onConvertToBrrClicked(); + } +} + +void Yamitracker::onSelectFileForPlayback() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл для воспроизведения", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + playWavExternal(filename); + } +} + +void Yamitracker::playWavExternal(const QString &wavFile) +{ + QStringList players = { + "aplay", "paplay", "play", "ffplay" + }; + + QString player; + + for (const QString &p : players) { + QProcess checkProcess; + checkProcess.start("which", QStringList() << p); + checkProcess.waitForFinished(); + if (checkProcess.exitCode() == 0) { + player = p; + break; + } + } + + if (player.isEmpty()) { + QMessageBox::warning(this, "Воспроизведение", + "Не найден аудиоплеер. Установите один из:\n" + "aplay, paplay, sox или ffmpeg"); + return; + } + + ui->statusLabel->setText("Воспроизведение WAV файла..."); + + audioPlayerProcess->start(player, QStringList() << wavFile); + + if (!audioPlayerProcess->waitForStarted(3000)) { + ui->statusLabel->setText("Не удалось запустить аудиоплеер"); + QMessageBox::warning(this, "Ошибка", + QString("Не удалось запустить %1. Убедитесь, что он установлен.").arg(player)); + } +} + +void Yamitracker::scanMidiFiles() +{ + QDir currentDir = QDir::current(); + QStringList filters; + filters << "*.txt"; + QStringList files = currentDir.entryList(filters, QDir::Files); + + midiFilesList->clear(); + for (const QString &file : files) { + // Проверяем, является ли файл MIDI логом + if (file.contains("midi_log_") || + file.contains("CrandPno") || + file.contains("BritePno") || + file.contains("Harpsi") || + file.contains("FngrBass") || + file.contains("Ovrdrive") || + file.contains("Bright")) { + + QFileInfo fileInfo(file); + QListWidgetItem *item = new QListWidgetItem(fileInfo.fileName()); + item->setData(Qt::UserRole, fileInfo.absoluteFilePath()); + midiFilesList->addItem(item); + } + } + + if (midiFilesList->count() == 0) { + QListWidgetItem *item = new QListWidgetItem("MIDI файлы не найдены"); + item->setFlags(item->flags() & ~Qt::ItemIsSelectable); + midiFilesList->addItem(item); + } +} + +void Yamitracker::onLoadMidiFileClicked() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите MIDI лог файл", "", "Текстовые файлы (*.txt);;Все файлы (*)"); + + if (!filename.isEmpty()) { + loadMidiFile(filename); + } +} + +void Yamitracker::loadMidiFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QMessageBox::warning(this, "Ошибка", "Не удалось открыть файл: " + filename); + return; + } + + QTextStream in(&file); + QString content = in.readAll(); + file.close(); + + currentMidiFilePath = filename; + parseMidiLog(content); + + ui->statusLabel->setText(QString("Загружен файл: %1").arg(QFileInfo(filename).fileName())); +} + +void Yamitracker::parseMidiLog(const QString &content) +{ + QStringList lines = content.split('\n'); + int program = 1; // По умолчанию + + for (const QString &line : lines) { + if (line.contains("PROGRAM_CHANGE: Program=")) { + // Извлекаем номер программы + QRegularExpression re("Program=(\\d+)"); + QRegularExpressionMatch match = re.match(line); + if (match.hasMatch()) { + program = match.captured(1).toInt(); + // Обновляем выбранный инструмент в комбобоксе + int index = instrumentComboBox->findData(program); + if (index >= 0) { + instrumentComboBox->setCurrentIndex(index); + } + } + } + } + + // Показываем информацию о загруженном файле + QString info = QString("Файл загружен\nИнструмент: %1\nСтрок: %2") + .arg(getInstrumentName(program)) + .arg(lines.count()); + + QMessageBox::information(this, "MIDI файл загружен", info); +} + +void Yamitracker::onPlayMidiFileClicked() +{ + if (currentMidiFilePath.isEmpty()) { + QMessageBox::information(this, "Воспроизведение", "Сначала загрузите MIDI файл"); + return; + } + + // Проверяем, является ли инструмент басовым + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Симуляция MIDI файла [БАС x%1]...").arg(bassVolumeMultiplier)); + QApplication::processEvents(); + + QMessageBox::information(this, "Симуляция MIDI (БАС)", + QString("Симуляция воспроизведения MIDI файла с БАС-инструментом:\n" + "Файл: %1\n" + "Инструмент: %2\n" + "Громкость усилена в %3 раза\n\n" + "В реальной версии бас будет звучать громче.") + .arg(QFileInfo(currentMidiFilePath).fileName()) + .arg(getInstrumentName(currentInstrument)) + .arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText("Симуляция MIDI файла..."); + QApplication::processEvents(); + + QMessageBox::information(this, "Симуляция MIDI", + QString("Симуляция воспроизведения MIDI файла:\n%1\n\nВ реальной версии здесь будет воспроизведение нот.") + .arg(QFileInfo(currentMidiFilePath).fileName())); + } + + ui->statusLabel->setText("Симуляция завершена"); +} + +void Yamitracker::simulateNote(int note, int velocity, double duration) +{ + if (trackIsRecording[currentTrack]) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - trackRecordingStartTimes[currentTrack]; + wavWriter->addNote(currentTrack, currentTime, note, velocity, duration); + } +} + +void Yamitracker::onSelectedMidiFileChanged() +{ + QList selectedItems = midiFilesList->selectedItems(); + if (!selectedItems.isEmpty()) { + QString filePath = selectedItems.first()->data(Qt::UserRole).toString(); + loadMidiFile(filePath); + } +} + +void Yamitracker::onRecordFromMidiFile() +{ + if (currentMidiFilePath.isEmpty()) { + QMessageBox::information(this, "Запись", "Сначала загрузите MIDI файл"); + return; + } + + // Получаем выбранный инструмент + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Запись из MIDI файла [БАС x%1]...").arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText(QString("Запись из MIDI файла [Инструмент: %1]...").arg(getInstrumentName(currentInstrument))); + } + + // Сбрасываем время записи для текущей дорожки + trackRecordingStartTimes[currentTrack] = QDateTime::currentMSecsSinceEpoch() / 1000.0; + + // Начинаем запись с высоким качеством + if (wavWriter->startRecording(44100)) { + trackIsRecording[currentTrack] = true; + recordingStartTime = trackRecordingStartTimes[currentTrack]; + qDebug() << "Started WAV recording from MIDI file, instrument:" << currentInstrument << "track:" << currentTrack; + + // Генерируем мелодию в зависимости от инструмента + generateInstrumentMelody(currentInstrument); + + wavWriter->stopRecording(); + trackIsRecording[currentTrack] = false; + + // Предлагаем сохранить, если это последняя дорожка + bool hasMoreTracks = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i != currentTrack && wavWriter->getEventCount(i) == 0) { + hasMoreTracks = true; + break; + } + } + + if (!hasMoreTracks) { + onSaveRecordingClicked(); + } + } +} + +void Yamitracker::generateInstrumentMelody(int instrument) +{ + double volumeMultiplier = bassInstruments.contains(instrument) ? bassVolumeMultiplier : 1.0; + + // Время относительно начала записи на текущей дорожке + double currentTrackTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - trackRecordingStartTimes[currentTrack]; + + // Разные мелодии для разных инструментов + switch (instrument) { + case 1: // CrandPno (Гранд-пианино) + wavWriter->addNote(currentTrack, currentTrackTime + 0.0, 60, 100 * volumeMultiplier, 1.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentTrackTime + 0.5, 64, 80 * volumeMultiplier, 0.5, instrument); // E4 + wavWriter->addNote(currentTrack, currentTrackTime + 1.0, 67, 90 * volumeMultiplier, 1.0, instrument); // G4 + wavWriter->addNote(currentTrack, currentTrackTime + 2.0, 72, 100 * volumeMultiplier, 1.0, instrument); // C5 + break; + + case 2: // BritePno (Яркое пианино) + wavWriter->addNote(currentTrack, currentTrackTime + 0.0, 60, 100 * volumeMultiplier, 0.3, instrument); // C4 + wavWriter->addNote(currentTrack, currentTrackTime + 0.1, 64, 90 * volumeMultiplier, 0.3, instrument); // E4 + wavWriter->addNote(currentTrack, currentTrackTime + 0.2, 67, 80 * volumeMultiplier, 0.3, instrument); // G4 + wavWriter->addNote(currentTrack, currentTrackTime + 0.3, 72, 100 * volumeMultiplier, 0.5, instrument); // C5 + break; + + case 3: // Harpsi (Клавесин) + case 6: + wavWriter->addNote(currentTrack, currentTrackTime + 0.0, 60, 100 * volumeMultiplier, 0.1, instrument); // C4 + wavWriter->addNote(currentTrack, currentTrackTime + 0.1, 62, 90 * volumeMultiplier, 0.1, instrument); // D4 + wavWriter->addNote(currentTrack, currentTrackTime + 0.2, 64, 100 * volumeMultiplier, 0.1, instrument); // E4 + wavWriter->addNote(currentTrack, currentTrackTime + 0.3, 65, 90 * volumeMultiplier, 0.1, instrument); // F4 + wavWriter->addNote(currentTrack, currentTrackTime + 0.4, 67, 100 * volumeMultiplier, 0.2, instrument); // G4 + break; + + case 28: // FngrBass (Фингер-бас) + case 33: + case 39: + wavWriter->addNote(currentTrack, currentTrackTime + 0.0, 36, 120 * volumeMultiplier, 1.0, instrument); // C2 (бас) + wavWriter->addNote(currentTrack, currentTrackTime + 1.0, 40, 100 * volumeMultiplier, 0.5, instrument); // E2 + wavWriter->addNote(currentTrack, currentTrackTime + 1.5, 43, 110 * volumeMultiplier, 1.0, instrument); // G2 + wavWriter->addNote(currentTrack, currentTrackTime + 2.5, 48, 100 * volumeMultiplier, 0.5, instrument); // C3 + break; + + case 40: // SlapBas (Слэп-бас) + wavWriter->addNote(currentTrack, currentTrackTime + 0.0, 36, 150 * volumeMultiplier, 0.2, instrument); // C2 (щелчок) + wavWriter->addNote(currentTrack, currentTrackTime + 0.3, 40, 120 * volumeMultiplier, 0.3, instrument); // E2 (пул) + wavWriter->addNote(currentTrack, currentTrackTime + 0.7, 43, 140 * volumeMultiplier, 0.2, instrument); // G2 (щелчок) + break; + + case 29: // Ovrdrive (Овердрайв-гитара) + case 37: + wavWriter->addNote(currentTrack, currentTrackTime + 0.0, 40, 100 * volumeMultiplier, 1.5, instrument); // E2 + wavWriter->addNote(currentTrack, currentTrackTime + 0.5, 43, 90 * volumeMultiplier, 1.0, instrument); // G2 + wavWriter->addNote(currentTrack, currentTrackTime + 1.0, 45, 100 * volumeMultiplier, 0.5, instrument); // A2 + wavWriter->addNote(currentTrack, currentTrackTime + 1.5, 47, 110 * volumeMultiplier, 1.0, instrument); // B2 + break; + + case 48: // String (Струнные) + case 49: // SlowStr (Медленные струнные) + wavWriter->addNote(currentTrack, currentTrackTime + 0.0, 60, 80 * volumeMultiplier, 2.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentTrackTime + 0.5, 64, 70 * volumeMultiplier, 1.5, instrument); // E4 + wavWriter->addNote(currentTrack, currentTrackTime + 1.0, 67, 75 * volumeMultiplier, 2.0, instrument); // G4 + break; + + case 81: // LeadSx (Саксофон) + wavWriter->addNote(currentTrack, currentTrackTime + 0.0, 65, 90 * volumeMultiplier, 1.5, instrument); // F4 + wavWriter->addNote(currentTrack, currentTrackTime + 0.3, 67, 85 * volumeMultiplier, 0.5, instrument); // G4 + wavWriter->addNote(currentTrack, currentTrackTime + 0.8, 69, 95 * volumeMultiplier, 2.0, instrument); // A4 + break; + + case 95: // Bright (Яркий звук) + case 96: + case 100: + wavWriter->addNote(currentTrack, currentTrackTime + 0.0, 72, 100 * volumeMultiplier, 0.2, instrument); // C5 + wavWriter->addNote(currentTrack, currentTrackTime + 0.2, 76, 90 * volumeMultiplier, 0.2, instrument); // E5 + wavWriter->addNote(currentTrack, currentTrackTime + 0.4, 79, 100 * volumeMultiplier, 0.2, instrument); // G5 + wavWriter->addNote(currentTrack, currentTrackTime + 0.6, 84, 110 * volumeMultiplier, 0.3, instrument); // C6 + break; + + default: + // Стандартная мелодия для неизвестных инструментов + wavWriter->addNote(currentTrack, currentTrackTime + 0.0, 60, 100 * volumeMultiplier, 1.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentTrackTime + 1.0, 64, 80 * volumeMultiplier, 1.0, instrument); // E4 + wavWriter->addNote(currentTrack, currentTrackTime + 2.0, 67, 90 * volumeMultiplier, 1.0, instrument); // G4 + break; + } +} + +void Yamitracker::highlightKey(const QString ¬e) +{ + if (keyButtons.contains(note)) { + QPushButton *key = keyButtons[note]; + key->setStyleSheet("background-color: #ff4444; color: white; border: 2px solid red;"); + } +} + +void Yamitracker::clearKey(const QString ¬e) +{ + if (!keyButtons.contains(note)) return; + QPushButton *key = keyButtons[note]; + if (key->property("whiteKey").toBool()) + key->setStyleSheet("background-color: white; color: black; border: 1px solid #ccc;"); + else + key->setStyleSheet("background-color: black; color: white;"); +} + +void Yamitracker::clearAllHighlights() +{ + for (auto i = keyButtons.begin(); i != keyButtons.end(); ++i) { + clearKey(i.key()); + } +} + +void Yamitracker::clearStatusMessage() +{ + ui->statusLabel->setText("Статус: Готов"); +} + +void Yamitracker::initializeDeviceDetection() +{ + deviceLabel->setText("Устройство: Поиск..."); +} + +void Yamitracker::autoDetectAndConnect() +{ + QString device = "/dev/dmmidi1"; + serialReader->setDevice(device); + deviceLabel->setText(QString("Устройство: %1").arg(device)); + qDebug() << "Using device:" << device; + + startSerialReader(); +} + +void Yamitracker::onDeviceInfoReceived(const QString &manufacturer, const QString &model) +{ + deviceLabel->setText(QString("Устройство: %1 %2").arg(manufacturer, model)); + + setWindowTitle(QString("Yamitracker - %1 %2").arg(manufacturer, model)); +} + +void Yamitracker::onRefreshDevicesClicked() +{ + deviceLabel->setText("Устройство: Обновление..."); + + autoDetectAndConnect(); +} + +void Yamitracker::startSerialReader() +{ + if (serialReader && !serialReader->isRunning()) { + serialReader->start(); + } +} + +Yamitracker::~Yamitracker() +{ + stopPlayback(); + + if (serialReader) { + serialReader->stop(); + if (serialReader->isRunning()) { + serialReader->terminate(); + serialReader->wait(); + } + } + + delete ui; +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/yamitracker.h b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/yamitracker.h new file mode 100644 index 0000000..0e389ae --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/yamitracker.h @@ -0,0 +1,213 @@ +// yamitracker.h +#ifndef YAMITRACKER_H +#define YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "simplewavwriter.h" +#include "brrconverter.h" + +QT_BEGIN_NAMESPACE +namespace Ui { class Yamitracker; } +QT_END_NAMESPACE + +class SerialReader : public QThread +{ + Q_OBJECT + +public: + SerialReader(QObject *parent = nullptr) : QThread(parent), shouldStop(false) {} + void setDevice(const QString &device) { currentDevice = device; } + void stop() { shouldStop = true; } + +signals: + void noteOnReceived(const QString &data, int velocity); + void noteOffReceived(const QString &data); + void error(const QString &message); + void connectionStatusChanged(bool connected); + void deviceInfoReceived(const QString &manufacturer, const QString &model); + +protected: + void run() override; + +private: + QString currentDevice; + bool shouldStop; +}; + +class Yamitracker : public QMainWindow +{ + Q_OBJECT + +public: + Yamitracker(QWidget *parent = nullptr); + ~Yamitracker(); + +private slots: + // Основные слоты + void onPlayClicked(); + void onPauseClicked(); + void onStopClicked(); + void onSaveRecordingClicked(); + void onConvertToBrrClicked(); + void onSaveMusicFileClicked(); + + // Слоты для устройств и MIDI + void onRefreshDevicesClicked(); + void onLoadMidiFileClicked(); + void onPlayMidiFileClicked(); + void onRecordFromMidiFile(); + void onSelectedMidiFileChanged(); + + // Слоты для файлов + void onSelectFileForConversion(); + void onSelectFileForPlayback(); + + // Слоты для клавиш и устройств + void onNoteOnReceived(const QString &data, int velocity); + void onNoteOffReceived(const QString &data); + void onConnectionStatusChanged(bool connected); + void onError(const QString &message); + void onDeviceInfoReceived(const QString &manufacturer, const QString &model); + + // Слоты для управления дорожками + void onCurrentTrackChanged(int index); + void onAddTrackClicked(); + void onRemoveTrackClicked(); + void onClearTrackClicked(); + void onCopyTrackClicked(); + void onMergeTracksClicked(); + void onLoadWavToTrackClicked(); + + // Слоты для воспроизведения + void onPlayTrackClicked(); + void onPlayAllTracksClicked(); + void onStopPlaybackClicked(); + void onPlaybackFinished(); + + // Слоты для управления элементами дорожек + void onMuteTrackClicked(); + void onSoloTrackClicked(); + void onTrackVolumeChanged(int value); + void onTrackNameChanged(); + void onTrackInstrumentChanged(int index); + + // Слоты для эффектов + void onPlaybackSpeedChanged(int value); + void onBassVolumeChanged(int value); + + // Вспомогательные слоты + void attemptReconnect(); + void handleAudioStateChanged(QAudio::State state); + void clearStatusMessage(); + +private: + Ui::Yamitracker *ui; + SerialReader *serialReader; + QTimer *reconnectTimer; + bool isConnected; + SimpleWavWriter *wavWriter; + double recordingStartTime; + BrrConverter *brrConverter; + QProcess *audioPlayerProcess; + QTimer *playbackTimer; + + // Элементы UI + QSlider *playbackSpeedSlider; + QSlider *bassVolumeSlider; + QLabel *speedLabel; + QLabel *volumeLabel; + QLabel *deviceLabel; + QPushButton *refreshDevicesButton; + QListWidget *midiFilesList; + QComboBox *instrumentComboBox; + QComboBox *trackComboBox; + + // Аудио воспроизведение + QAudioOutput *audioOutput; + QBuffer *audioBuffer; + bool isPlayingBack; + int currentPlaybackTrack; + int currentTrack; + + // Данные + QString lastRecordedWavFile; + QString currentMidiFilePath; + QHash keyButtons; + QSet currentlyPressedKeys; + QHash noteStartTimes; + + // Управление дорожками + QVector trackNameEdits; + QVector trackInstrumentComboBoxes; + QVector trackVolumeSliders; + QVector trackVolumeLabels; + QVector trackMuteButtons; + QVector trackSoloButtons; + + // ВРЕМЯ ЗАПИСИ ПО ДОРОЖКАМ (ИСПРАВЛЕНО) + QVector trackRecordingStartTimes; + QVector trackIsRecording; + + // Вспомогательные методы + void initializeTracks(); + void initializeTrackControls(); + void updateTrackControls(); + void updateTrackInfo(); + void updateSpeedLabel(); + void updateVolumeLabel(); + + void initializeKeyButtons(); + void initializeDeviceDetection(); + void autoDetectAndConnect(); + void startSerialReader(); + + void highlightKey(const QString ¬e); + void clearKey(const QString ¬e); + void clearAllHighlights(); + + void scanMidiFiles(); + void loadMidiFile(const QString &filename); + void parseMidiLog(const QString &content); + void generateInstrumentMelody(int instrument); + void simulateNote(int note, int velocity, double duration); + + void saveWavFile(const QString &filename); + void saveMusicFile(const QString &filename); + void playWavExternal(const QString &wavFile); + void playTrack(int track); + void playAllTracks(); + void stopPlayback(); + + QByteArray mixSelectedTracks(const QVector &trackIndices); + QByteArray convertMonoToStereo(const QByteArray &monoData); + + QString getInstrumentName(int program); + + // Карта инструментов + QMap instruments = { + {1, "CrandPno"}, {2, "BritePno"}, {3, "Harpsi"}, {6, "Harpsi2"}, + {28, "FngrBass"}, {33, "FngrBass2"}, {39, "FngrBass3"}, {40, "SlapBas"}, + {29, "Ovrdrive"}, {37, "Ovrdrive2"}, {38, "DstGtr"}, + {48, "String"}, {49, "SlowStr"}, {81, "LeadSx"}, + {95, "Bright"}, {96, "Bright2"}, {100, "Bright3"} + }; + + // Флаг для отслеживания относительного времени записи + double globalRecordingStartTime; + bool isGlobalRecording; +}; + +#endif // YAMITRACKER_H \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/yamitracker.ui b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/yamitracker.ui new file mode 100644 index 0000000..c447570 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker5/Yamitracker4/Yamitracker/yamitracker.ui @@ -0,0 +1,1000 @@ + + + Yamitracker + + + + 0 + 0 + 1400 + 1000 + + + + Yamaha PSR-E333 Monitor - Multitrack Recording + + + + + + + + + Статус: Готов + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Устройство: Не подключено + + + + + + + + + + + Нажато клавиш: 0 + + + + + + + 0 + + + + + + + + + Управление записью + + + + + + ▶ Запись с синтезатора + + + + + + + ⏸ Пауза + + + false + + + + + + + ⏹ Стоп + + + + + + + 💾 Сохранить запись + + + + + + + 🔄 Конвертировать в BRR + + + + + + + 🎵 Сохранить музыку (Pently) + + + + + + + + + + Управление воспроизведением + + + + + + ▶ Текущая дорожка + + + + + + + ▶▶ Все дорожки + + + + + + + ⏹ Стоп воспроизведение + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 📂 Загрузить WAV в дорожку + + + + + + + + + + Управление дорожками + + + + + + Текущая дорожка: + + + + + + + + + + ➕ Новая дорожка + + + + + + + 🗑 Удалить дорожку + + + + + + + 🗑 Очистить дорожку + + + + + + + 📋 Копировать дорожку + + + + + + + 🔀 Объединить дорожки + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Дорожка 1: 0 нот + + + + + + + + + + true + + + + + 0 + 0 + 1380 + 300 + + + + + + + Панель управления дорожками: + + + + + + + + + + + Работа с MIDI файлами + + + + + + + + Инструмент: + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Скорость: 100% + + + + + + + Qt::Horizontal + + + 50 + + + 200 + + + 100 + + + + + + + Бас: 200% + + + + + + + Qt::Horizontal + + + 100 + + + 400 + + + 200 + + + + + + + 🔃 Обновить устройства + + + + + + + + + + + 📂 Загрузить MIDI файл + + + + + + + ▶ Воспроизвести MIDI + + + + + + + ● Записать из MIDI + + + + + + + 📁 Выбрать файл для конвертации + + + + + + + ▶ Воспроизвести WAV + + + + + + + + + Доступные MIDI файлы: + + + + + + + + + + + + + + + + + + + C1 + + + + + + + D1 + + + + + + + E1 + + + + + + + F1 + + + + + + + G1 + + + + + + + A1 + + + + + + + B1 + + + + + + + C2 + + + + + + + D2 + + + + + + + E2 + + + + + + + F2 + + + + + + + G2 + + + + + + + A2 + + + + + + + B2 + + + + + + + C3 + + + + + + + D3 + + + + + + + E3 + + + + + + + F3 + + + + + + + G3 + + + + + + + A3 + + + + + + + B3 + + + + + + + C4 + + + + + + + D4 + + + + + + + E4 + + + + + + + F4 + + + + + + + G4 + + + + + + + A4 + + + + + + + B4 + + + + + + + C5 + + + + + + + D5 + + + + + + + E5 + + + + + + + F5 + + + + + + + G5 + + + + + + + A5 + + + + + + + B5 + + + + + + + C6 + + + + + + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#1 + + + + + + + D#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#1 + + + + + + + G#1 + + + + + + + A#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#2 + + + + + + + D#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#2 + + + + + + + G#2 + + + + + + + A#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#3 + + + + + + + D#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#3 + + + + + + + G#3 + + + + + + + A#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#4 + + + + + + + D#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#4 + + + + + + + G#4 + + + + + + + A#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#5 + + + + + + + D#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#5 + + + + + + + G#5 + + + + + + + A#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/.qtcreator/Yamitracker.pro.user b/Yamitracker-reoload/Yamitracker6/Yamitracker/.qtcreator/Yamitracker.pro.user new file mode 100644 index 0000000..c9a1752 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/.qtcreator/Yamitracker.pro.user @@ -0,0 +1,233 @@ + + + + + + EnvironmentId + {20954cb6-51c1-46d5-a200-1db750c36a2d} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + true + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + + Nim + + NimGlobal + + + 3 + UTF-8 + false + 4 + false + 0 + 80 + true + true + 1 + 0 + false + true + false + 2 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + false + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 4 + true + + + + true + + + + + + + 0 + + + + ProjectExplorer.Project.Target.0 + + Desktop + true + Desktop + Desktop + {598a2668-634b-454f-8fd8-38d3b4bb3b99} + 0 + 0 + 0 + + 0 + /home/soffti/progs/Yami/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop-Debug + /home/soffti/progs/Yami/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + + true + true + %{RunConfig:Executable:Path} + + 1 + 2 + + 1 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + + true + true + %{RunConfig:Executable:Path} + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/.qtcreator/Yamitracker.pro.user.6395eb3 b/Yamitracker-reoload/Yamitracker6/Yamitracker/.qtcreator/Yamitracker.pro.user.6395eb3 new file mode 100644 index 0000000..fcac744 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/.qtcreator/Yamitracker.pro.user.6395eb3 @@ -0,0 +1,263 @@ + + + + + + EnvironmentId + {6395eb3f-fc2a-4125-bb4f-a9c51f02958b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {0acbc229-4897-4c6e-a23f-ae7c45394b0c} + 0 + 0 + 0 + + 0 + /home/acer1117/build-Yamitracker-Desktop-Debug + /home/acer1117/build-Yamitracker-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/acer1117/build-Yamitracker-Desktop-Release + /home/acer1117/build-Yamitracker-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/acer1117/build-Yamitracker-Desktop-Profile + /home/acer1117/build-Yamitracker-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro + /home/acer1117/Yamitracker/Yamitracker.pro + false + true + true + false + true + /home/acer1117/build-Yamitracker-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/Yamitracker.pro b/Yamitracker-reoload/Yamitracker6/Yamitracker/Yamitracker.pro new file mode 100644 index 0000000..fe8ece2 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/Yamitracker.pro @@ -0,0 +1,37 @@ +TARGET = Yamitraker + +QT += core gui widgets multimedia + +PROJECT_ROOT = $$PWD +BUILD_ROOT = $$PROJECT_ROOT/build + + +CONFIG += c++17 + +DESTDIR = /$$BUILD_ROOT/BIN +OBJECTS_DIR = /$$BUILD_ROOT/obj +RCC_DIR = /$$BUILD_ROOT/rcc +MOC_DIR = /$$BUILD_ROOT/moc +UI_DIR = /$$BUILD_ROOT/ui + +SOURCES += \ + main.cpp \ + src/yamitracker.cpp \ + format/simplewavwriter.cpp \ + format/brrconverter.cpp + +HEADERS += \ + src/yamitracker.h \ + format/simplewavwriter.h \ + +INCLUDEPATH += format +INCLUDEPATH += ui +INCLUDEPATH += src + +FORMS += \ + ui/yamitracker.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/build/.qmake.stash b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/build/BIN/Yamitraker b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/BIN/Yamitraker new file mode 100755 index 0000000..f3feaf9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/BIN/Yamitraker differ diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/build/Makefile b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/Makefile new file mode 100644 index 0000000..7230133 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/Makefile @@ -0,0 +1,455 @@ +############################################################################# +# Makefile for building: BIN/Yamitraker +# Generated by qmake (3.1) (Qt 5.15.17) +# Project: ../Yamitracker.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../../Yamitracker -I. -I../format -I../ui -I../src -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -Imoc -Iui -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Yamitraker1.0.0 +DISTDIR = /home/soffti/progs/Yami/Yamitracker/Yamitracker6/Yamitracker/build/obj/Yamitraker1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Multimedia.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Network.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = obj/ + +####### Files + +SOURCES = ../main.cpp \ + ../src/yamitracker.cpp \ + ../format/simplewavwriter.cpp \ + ../format/brrconverter.cpp moc/moc_yamitracker.cpp \ + moc/moc_simplewavwriter.cpp \ + moc/moc_brrconverter.cpp +OBJECTS = obj/main.o \ + obj/yamitracker.o \ + obj/simplewavwriter.o \ + obj/brrconverter.o \ + obj/moc_yamitracker.o \ + obj/moc_simplewavwriter.o \ + obj/moc_brrconverter.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../Yamitracker.pro ../src/yamitracker.h \ + ../format/simplewavwriter.h \ + ../format/brrconverter.h ../main.cpp \ + ../src/yamitracker.cpp \ + ../format/simplewavwriter.cpp \ + ../format/brrconverter.cpp +QMAKE_TARGET = Yamitraker +DESTDIR = BIN/ +TARGET = BIN/Yamitraker + + +first: all +####### Build rules + +BIN/Yamitraker: ui/ui_yamitracker.h $(OBJECTS) + @test -d BIN/ || mkdir -p BIN/ + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../Yamitracker.pro + $(QMAKE) -o Makefile ../Yamitracker.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../Yamitracker.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../Yamitracker.pro + +qmake_all: FORCE + + +all: Makefile BIN/Yamitraker + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../src/yamitracker.h ../format/simplewavwriter.h ../format/brrconverter.h $(DISTDIR)/ + $(COPY_FILE) --parents ../main.cpp ../src/yamitracker.cpp ../format/simplewavwriter.cpp ../format/brrconverter.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../ui/yamitracker.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc/moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc/moc_predefs.h +moc/moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc/moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc/moc_yamitracker.cpp moc/moc_simplewavwriter.cpp moc/moc_brrconverter.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc/moc_yamitracker.cpp moc/moc_simplewavwriter.cpp moc/moc_brrconverter.cpp +moc/moc_yamitracker.cpp: ../src/yamitracker.h \ + ../format/simplewavwriter.h \ + ../format/brrconverter.h \ + moc/moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/soffti/progs/Yami/Yamitracker/Yamitracker6/Yamitracker/build/moc/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/soffti/progs/Yami/Yamitracker/Yamitracker6/Yamitracker -I/home/soffti/progs/Yami/Yamitracker/Yamitracker6/Yamitracker/format -I/home/soffti/progs/Yami/Yamitracker/Yamitracker6/Yamitracker/ui -I/home/soffti/progs/Yami/Yamitracker/Yamitracker6/Yamitracker/src -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../src/yamitracker.h -o moc/moc_yamitracker.cpp + +moc/moc_simplewavwriter.cpp: ../format/simplewavwriter.h \ + moc/moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/soffti/progs/Yami/Yamitracker/Yamitracker6/Yamitracker/build/moc/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/soffti/progs/Yami/Yamitracker/Yamitracker6/Yamitracker -I/home/soffti/progs/Yami/Yamitracker/Yamitracker6/Yamitracker/format -I/home/soffti/progs/Yami/Yamitracker/Yamitracker6/Yamitracker/ui -I/home/soffti/progs/Yami/Yamitracker/Yamitracker6/Yamitracker/src -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../format/simplewavwriter.h -o moc/moc_simplewavwriter.cpp + +moc/moc_brrconverter.cpp: ../format/brrconverter.h \ + moc/moc_predefs.h \ + /usr/lib/qt5/bin/moc + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/soffti/progs/Yami/Yamitracker/Yamitracker6/Yamitracker/build/moc/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/soffti/progs/Yami/Yamitracker/Yamitracker6/Yamitracker -I/home/soffti/progs/Yami/Yamitracker/Yamitracker6/Yamitracker/format -I/home/soffti/progs/Yami/Yamitracker/Yamitracker6/Yamitracker/ui -I/home/soffti/progs/Yami/Yamitracker/Yamitracker6/Yamitracker/src -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../format/brrconverter.h -o moc/moc_brrconverter.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui/ui_yamitracker.h +compiler_uic_clean: + -$(DEL_FILE) ui/ui_yamitracker.h +ui/ui_yamitracker.h: ../ui/yamitracker.ui \ + /usr/lib/qt5/bin/uic + /usr/lib/qt5/bin/uic ../ui/yamitracker.ui -o ui/ui_yamitracker.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +obj/main.o: ../main.cpp ../../../Yamitracker/yamitracker.h \ + ../../../Yamitracker/simplemidiwriter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/main.o ../main.cpp + +obj/yamitracker.o: ../src/yamitracker.cpp ../src/yamitracker.h \ + ../format/simplewavwriter.h \ + ../format/brrconverter.h \ + ui/ui_yamitracker.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/yamitracker.o ../src/yamitracker.cpp + +obj/simplewavwriter.o: ../format/simplewavwriter.cpp ../format/simplewavwriter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/simplewavwriter.o ../format/simplewavwriter.cpp + +obj/brrconverter.o: ../format/brrconverter.cpp ../format/brrconverter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/brrconverter.o ../format/brrconverter.cpp + +obj/moc_yamitracker.o: moc/moc_yamitracker.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_yamitracker.o moc/moc_yamitracker.cpp + +obj/moc_simplewavwriter.o: moc/moc_simplewavwriter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_simplewavwriter.o moc/moc_simplewavwriter.cpp + +obj/moc_brrconverter.o: moc/moc_brrconverter.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_brrconverter.o moc/moc_brrconverter.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Yamitraker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitraker/bin + $(QINSTALL_PROGRAM) BIN/$(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitraker/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Yamitraker/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitraker/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitraker/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/build/moc/moc_brrconverter.cpp b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/moc/moc_brrconverter.cpp new file mode 100644 index 0000000..daf7f8f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/moc/moc_brrconverter.cpp @@ -0,0 +1,95 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'brrconverter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.17) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../../format/brrconverter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'brrconverter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.17. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_BrrConverter_t { + QByteArrayData data[1]; + char stringdata0[13]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_BrrConverter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_BrrConverter_t qt_meta_stringdata_BrrConverter = { + { +QT_MOC_LITERAL(0, 0, 12) // "BrrConverter" + + }, + "BrrConverter" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_BrrConverter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void BrrConverter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject BrrConverter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_BrrConverter.data, + qt_meta_data_BrrConverter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *BrrConverter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *BrrConverter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_BrrConverter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int BrrConverter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/build/moc/moc_predefs.h b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/moc/moc_predefs.h new file mode 100644 index 0000000..5170ea4 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/moc/moc_predefs.h @@ -0,0 +1,472 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __LDBL_MANT_DIG__ 64 +#define __cpp_nontype_template_parameter_auto 201606L +#define __UINT_LEAST16_MAX__ 0xffff +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __ATOMIC_ACQUIRE 2 +#define __FLT128_MAX_10_EXP__ 4932 +#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __cpp_aggregate_nsdmi 201304L +#define __UINT_LEAST8_TYPE__ unsigned char +#define __SIZEOF_FLOAT80__ 16 +#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 0xff +#define __SCHAR_WIDTH__ 8 +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 201411L +#define __BFLT16_MIN_10_EXP__ (-37) +#define __cpp_inheriting_constructors 201511L +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __WCHAR_MAX__ 0x7fffffff +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __cpp_binary_literals 201304L +#define __FLT64_DECIMAL_DIG__ 17 +#define __cpp_noexcept_function_type 201510L +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __cpp_variadic_templates 200704L +#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __cpp_variable_templates 201304L +#define __FLT32X_MAX_EXP__ 1024 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __FLT32_HAS_DENORM__ 1 +#define __UINT_FAST8_MAX__ 0xff +#define __cpp_rvalue_reference 200610L +#define __cpp_nested_namespace_definitions 201411L +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __LDBL_HAS_INFINITY__ 1 +#define __INT_LEAST8_WIDTH__ 8 +#define __cpp_variadic_using 201611L +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL +#define __INT_LEAST8_MAX__ 0x7f +#define __cpp_attributes 200809L +#define __cpp_capture_star_this 201603L +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __FLT64X_MAX_10_EXP__ 4932 +#define __cpp_if_constexpr 201606L +#define __BFLT16_MAX_10_EXP__ 38 +#define __BFLT16_MAX_EXP__ 128 +#define __LDBL_IS_IEC_60559__ 1 +#define __FLT64X_HAS_QUIET_NAN__ 1 +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +#define __UINTMAX_TYPE__ long unsigned int +#define __cpp_nsdmi 200809L +#define __BFLT16_DECIMAL_DIG__ 4 +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __OPTIMIZE__ 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +#define __FLT128_MIN_EXP__ (-16381) +#define __DEC64X_MAX_EXP__ 6145 +#define __WINT_MIN__ 0U +#define __FLT128_MIN_10_EXP__ (-4931) +#define __FLT32X_IS_IEC_60559__ 1 +#define __INT_LEAST16_WIDTH__ 16 +#define __SCHAR_MAX__ 0x7f +#define __FLT128_MANT_DIG__ 113 +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __INT64_C(c) c ## L +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __ATOMIC_SEQ_CST 5 +#define __unix 1 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MANT_DIG__ 53 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __cpp_aligned_new 201606L +#define __FLT32_MAX_10_EXP__ 38 +#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +#define __STDC_HOSTED__ 1 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype_auto 201304L +#define __DBL_DIG__ 15 +#define __STDC_EMBED_EMPTY__ 2 +#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __FLT32_IS_IEC_60559__ 1 +#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +#define __DBL_IS_IEC_60559__ 1 +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806L +#define __cpp_enumerator_attributes 201411L +#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +#define __FLT32X_HAS_INFINITY__ 1 +#define __unix__ 1 +#define __INT_WIDTH__ 32 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __DECIMAL_DIG__ 21 +#define __STDC_IEC_559_COMPLEX__ 1 +#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +#define __gnu_linux__ 1 +#define __INT16_MAX__ 0x7fff +#define __FLT64_MIN_EXP__ (-1021) +#define __DEC64X_EPSILON__ 1E-33D64x +#define __FLT64X_MIN_10_EXP__ (-4931) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __FLT16_MIN_EXP__ (-13) +#define __FLT64_MANT_DIG__ 53 +#define __FLT64X_MANT_DIG__ 64 +#define __BFLT16_DIG__ 2 +#define __GNUC__ 15 +#define __GXX_RTTI 1 +#define __pie__ 2 +#define __MMX__ 1 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __BIGGEST_ALIGNMENT__ 16 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __BFLT16_IS_IEC_60559__ 0 +#define __FLT16_MAX_10_EXP__ 4 +#define __cpp_delegating_constructors 200604L +#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __cpp_raw_strings 200710L +#define __INT_FAST32_MAX__ 0x7fffffffffffffffL +#define __DBL_HAS_INFINITY__ 1 +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __SIZEOF_FLOAT__ 4 +#define __HAVE_SPECULATION_SAFE_VALUE 1 +#define __cpp_fold_expressions 201603L +#define __DEC32_MIN_EXP__ (-94) +#define __INTPTR_WIDTH__ 64 +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ long int +#define __MMX_WITH_SSE__ 1 +#define __LDBL_HAS_DENORM__ 1 +#define __SEG_GS 1 +#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +#define __cplusplus 201703L +#define __cpp_ref_qualifiers 200710L +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610L +#define __DBL_MAX_EXP__ 1024 +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __FLT16_DECIMAL_DIG__ 5 +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 0x7fffffffffffffffL +#define __amd64 1 +#define __DEC64X_MAX__ 9.999999999999999999999999999999999E6144D64x +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __GNUG__ 15 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 8 +#define __BFLT16_HAS_INFINITY__ 1 +#define __FLT64X_MIN_EXP__ (-16381) +#define __SIZEOF_WINT_T__ 4 +#define __FLT32X_DIG__ 15 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806L +#define __FLT32_MAX_EXP__ 128 +#define __cpp_hex_float 201603L +#define __GXX_ABI_VERSION 1020 +#define __FLT_MIN_EXP__ (-125) +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __x86_64 1 +#define __cpp_lambdas 200907L +#define __INT_FAST64_TYPE__ long int +#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +#define __cpp_template_auto 201606L +#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __SIZEOF_POINTER__ 8 +#define __SIZE_TYPE__ long unsigned int +#define __LP64__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +#define __LDBL_MAX_EXP__ 16384 +#define __DECIMAL_BID_FORMAT__ 1 +#define __FLT64_MIN_10_EXP__ (-307) +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT64X_DECIMAL_DIG__ 21 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __FLT128_HAS_INFINITY__ 1 +#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __FLT_DIG__ 6 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 21 +#define __VERSION__ "15.2.0" +#define __UINT64_C(c) c ## UL +#define __cpp_unicode_characters 201411L +#define __DEC64X_MIN__ 1E-6143D64x +#define _STDC_PREDEF_H 1 +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT128_MAX_EXP__ 16384 +#define __FLT32_MANT_DIG__ 24 +#define __cpp_decltype 200707L +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT32X_MIN_EXP__ (-1021) +#define __STDC_IEC_60559_COMPLEX__ 201404L +#define __cpp_aggregate_bases 201603L +#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +#define __FLT128_HAS_DENORM__ 1 +#define __FLT32_DECIMAL_DIG__ 9 +#define __FLT128_DIG__ 33 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __DEC64X_MANT_DIG__ 34 +#define __DEC128_MAX_EXP__ 6145 +#define unix 1 +#define __DBL_HAS_DENORM__ 1 +#define __cpp_rtti 199711L +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __FLT_IS_IEC_60559__ 1 +#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +#define __FLT64X_DIG__ 18 +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309L +#define __ELF__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __UINT32_TYPE__ unsigned int +#define __BFLT16_HAS_QUIET_NAN__ 1 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +#define __UINTMAX_C(c) c ## UL +#define __FLT16_DIG__ 3 +#define __k8 1 +#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __cpp_constexpr 201603L +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +#define __STDC_IEC_60559_BFP__ 201404L +#define __SIZEOF_PTRDIFF_T__ 8 +#define __FLT64X_HAS_INFINITY__ 1 +#define __SIZEOF_LONG__ 8 +#define __LDBL_DIG__ 18 +#define __FLT64_IS_IEC_60559__ 1 +#define __x86_64__ 1 +#define __FLT16_IS_IEC_60559__ 1 +#define __FLT16_MAX_EXP__ 16 +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __STDC_EMBED_FOUND__ 1 +#define __INT_FAST16_MAX__ 0x7fffffffffffffffL +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __FLT64X_HAS_DENORM__ 1 +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" +#define __cpp_unicode_literals 200710L +#define __UINT_FAST16_TYPE__ long unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __STDC_EMBED_NOT_FOUND__ 0 +#define __INT_FAST32_WIDTH__ 64 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __DEC64X_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143D64x +#define __SIZE_WIDTH__ 64 +#define __SEG_FS 1 +#define __INT_LEAST16_MAX__ 0x7fff +#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __DEC64_MANT_DIG__ 16 +#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +#define __cpp_structured_bindings 201606L +#define __SIZEOF_INT__ 4 +#define __DEC32_MAX_EXP__ 97 +#define __INT_FAST8_MAX__ 0x7f +#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __INTPTR_MAX__ 0x7fffffffffffffffL +#define __cpp_sized_deallocation 201309L +#define __cpp_guaranteed_copy_elision 201606L +#define linux 1 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __EXCEPTIONS 1 +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 64 +#define __cpp_range_based_for 201603L +#define __INT_FAST16_WIDTH__ 64 +#define __FLT64_HAS_INFINITY__ 1 +#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __FLT16_HAS_INFINITY__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __cpp_nontype_template_args 201411L +#define __DEC32_MANT_DIG__ 7 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __pic__ 2 +#define __UINTPTR_MAX__ 0xffffffffffffffffUL +#define __INT_FAST64_WIDTH__ 64 +#define __INT_FAST64_MAX__ 0x7fffffffffffffffL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +#define __FLT32_HAS_INFINITY__ 1 +#define __FLT64X_MAX_EXP__ 16384 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __cpp_inline_variables 201606L +#define __BFLT16_MIN_EXP__ (-125) +#define __INT_MAX__ 0x7fffffff +#define __linux__ 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __SIZEOF_FLOAT128__ 16 +#define __BFLT16_MANT_DIG__ 8 +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __DEC64X_MIN_EXP__ (-6142) +#define __amd64__ 1 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST64_WIDTH__ 64 +#define __FLT32X_MAX_10_EXP__ 308 +#define __cpp_namespace_attributes 201411L +#define __SIZEOF_INT128__ 16 +#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +#define __FLT64X_IS_IEC_60559__ 1 +#define __GXX_CONSTEXPR_ASM__ 1 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +#define __INT_LEAST32_TYPE__ int +#define _LP64 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __cpp_return_type_deduction 201304L +#define __SIZEOF_WCHAR_T__ 4 +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __FLT128_HAS_QUIET_NAN__ 1 +#define __INTMAX_MAX__ 0x7fffffffffffffffL +#define __INT_FAST8_TYPE__ signed char +#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +#define __STDCPP_THREADS__ 1 +#define __BFLT16_HAS_DENORM__ 1 +#define __GNUC_STDC_INLINE__ 1 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +#define __FLT16_HAS_DENORM__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __FXSR__ 1 +#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __INTMAX_WIDTH__ 64 +#define __cpp_runtime_arrays 198712L +#define __FLT32_DIG__ 6 +#define __UINT64_TYPE__ long unsigned int +#define __UINT32_C(c) c ## U +#define __cpp_alias_templates 200704L +#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +#define __FLT128_IS_IEC_60559__ 1 +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 64 +#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +#define __PIC__ 2 +#define __INT32_MAX__ 0x7fffffff +#define __UINT_FAST32_TYPE__ long unsigned int +#define __FLT16_MANT_DIG__ 11 +#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F +#define __SSE2__ 1 +#define __cpp_deduction_guides 201703L +#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711L +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long int +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 2 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __UINTMAX_MAX__ 0xffffffffffffffffUL +#define __PIE__ 2 +#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +#define __cpp_template_template_args 201611L +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +#define __INT16_C(c) c +#define __STDC__ 1 +#define __PTRDIFF_TYPE__ long int +#define __LONG_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __cpp_generic_lambdas 201304L +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809L +#define __FLT128_DECIMAL_DIG__ 36 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL +#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __SIZE_MAX__ 0xffffffffffffffffUL +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __cpp_init_captures 201304L +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/build/moc/moc_simplewavwriter.cpp b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/moc/moc_simplewavwriter.cpp new file mode 100644 index 0000000..bba9e74 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/moc/moc_simplewavwriter.cpp @@ -0,0 +1,155 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'simplewavwriter.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.17) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../../format/simplewavwriter.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'simplewavwriter.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.17. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SimpleWavWriter_t { + QByteArrayData data[6]; + char stringdata0[69]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SimpleWavWriter_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SimpleWavWriter_t qt_meta_stringdata_SimpleWavWriter = { + { +QT_MOC_LITERAL(0, 0, 15), // "SimpleWavWriter" +QT_MOC_LITERAL(1, 16, 12), // "trackUpdated" +QT_MOC_LITERAL(2, 29, 0), // "" +QT_MOC_LITERAL(3, 30, 5), // "track" +QT_MOC_LITERAL(4, 36, 22), // "recordingStatusChanged" +QT_MOC_LITERAL(5, 59, 9) // "recording" + + }, + "SimpleWavWriter\0trackUpdated\0\0track\0" + "recordingStatusChanged\0recording" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SimpleWavWriter[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 2, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 2, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 1, 24, 2, 0x06 /* Public */, + 4, 1, 27, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::Int, 3, + QMetaType::Void, QMetaType::Bool, 5, + + 0 // eod +}; + +void SimpleWavWriter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->trackUpdated((*reinterpret_cast< int(*)>(_a[1]))); break; + case 1: _t->recordingStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SimpleWavWriter::*)(int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SimpleWavWriter::trackUpdated)) { + *result = 0; + return; + } + } + { + using _t = void (SimpleWavWriter::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SimpleWavWriter::recordingStatusChanged)) { + *result = 1; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SimpleWavWriter::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SimpleWavWriter.data, + qt_meta_data_SimpleWavWriter, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SimpleWavWriter::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SimpleWavWriter::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SimpleWavWriter.stringdata0)) + return static_cast(this); + return QObject::qt_metacast(_clname); +} + +int SimpleWavWriter::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 2) + qt_static_metacall(this, _c, _id, _a); + _id -= 2; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 2) + *reinterpret_cast(_a[0]) = -1; + _id -= 2; + } + return _id; +} + +// SIGNAL 0 +void SimpleWavWriter::trackUpdated(int _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SimpleWavWriter::recordingStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/build/moc/moc_yamitracker.cpp b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/moc/moc_yamitracker.cpp new file mode 100644 index 0000000..2276dac --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/moc/moc_yamitracker.cpp @@ -0,0 +1,503 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'yamitracker.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.17) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../../src/yamitracker.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'yamitracker.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.17. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_SerialReader_t { + QByteArrayData data[13]; + char stringdata0[145]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_SerialReader_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = { + { +QT_MOC_LITERAL(0, 0, 12), // "SerialReader" +QT_MOC_LITERAL(1, 13, 14), // "noteOnReceived" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 4), // "data" +QT_MOC_LITERAL(4, 34, 8), // "velocity" +QT_MOC_LITERAL(5, 43, 15), // "noteOffReceived" +QT_MOC_LITERAL(6, 59, 5), // "error" +QT_MOC_LITERAL(7, 65, 7), // "message" +QT_MOC_LITERAL(8, 73, 23), // "connectionStatusChanged" +QT_MOC_LITERAL(9, 97, 9), // "connected" +QT_MOC_LITERAL(10, 107, 18), // "deviceInfoReceived" +QT_MOC_LITERAL(11, 126, 12), // "manufacturer" +QT_MOC_LITERAL(12, 139, 5) // "model" + + }, + "SerialReader\0noteOnReceived\0\0data\0" + "velocity\0noteOffReceived\0error\0message\0" + "connectionStatusChanged\0connected\0" + "deviceInfoReceived\0manufacturer\0model" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_SerialReader[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 5, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 5, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 2, 39, 2, 0x06 /* Public */, + 5, 1, 44, 2, 0x06 /* Public */, + 6, 1, 47, 2, 0x06 /* Public */, + 8, 1, 50, 2, 0x06 /* Public */, + 10, 2, 53, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, QMetaType::Bool, 9, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 11, 12, + + 0 // eod +}; + +void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->noteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->noteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 2: _t->error((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 3: _t->connectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: _t->deviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SerialReader::*)(const QString & , int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOnReceived)) { + *result = 0; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOffReceived)) { + *result = 1; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::error)) { + *result = 2; + return; + } + } + { + using _t = void (SerialReader::*)(bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::connectionStatusChanged)) { + *result = 3; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & , const QString & ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::deviceInfoReceived)) { + *result = 4; + return; + } + } + } +} + +QT_INIT_METAOBJECT const QMetaObject SerialReader::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SerialReader.data, + qt_meta_data_SerialReader, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *SerialReader::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SerialReader::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0)) + return static_cast(this); + return QThread::qt_metacast(_clname); +} + +int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QThread::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 5) + qt_static_metacall(this, _c, _id, _a); + _id -= 5; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 5) + *reinterpret_cast(_a[0]) = -1; + _id -= 5; + } + return _id; +} + +// SIGNAL 0 +void SerialReader::noteOnReceived(const QString & _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SerialReader::noteOffReceived(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void SerialReader::error(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void SerialReader::connectionStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} + +// SIGNAL 4 +void SerialReader::deviceInfoReceived(const QString & _t1, const QString & _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 4, _a); +} +struct qt_meta_stringdata_Yamitracker_t { + QByteArrayData data[51]; + char stringdata0[896]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_Yamitracker_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = { + { +QT_MOC_LITERAL(0, 0, 11), // "Yamitracker" +QT_MOC_LITERAL(1, 12, 13), // "onPlayClicked" +QT_MOC_LITERAL(2, 26, 0), // "" +QT_MOC_LITERAL(3, 27, 14), // "onPauseClicked" +QT_MOC_LITERAL(4, 42, 13), // "onStopClicked" +QT_MOC_LITERAL(5, 56, 22), // "onSaveRecordingClicked" +QT_MOC_LITERAL(6, 79, 21), // "onConvertToBrrClicked" +QT_MOC_LITERAL(7, 101, 22), // "onSaveMusicFileClicked" +QT_MOC_LITERAL(8, 124, 23), // "onRefreshDevicesClicked" +QT_MOC_LITERAL(9, 148, 21), // "onLoadMidiFileClicked" +QT_MOC_LITERAL(10, 170, 21), // "onPlayMidiFileClicked" +QT_MOC_LITERAL(11, 192, 20), // "onRecordFromMidiFile" +QT_MOC_LITERAL(12, 213, 25), // "onSelectedMidiFileChanged" +QT_MOC_LITERAL(13, 239, 25), // "onSelectFileForConversion" +QT_MOC_LITERAL(14, 265, 23), // "onSelectFileForPlayback" +QT_MOC_LITERAL(15, 289, 16), // "onNoteOnReceived" +QT_MOC_LITERAL(16, 306, 4), // "data" +QT_MOC_LITERAL(17, 311, 8), // "velocity" +QT_MOC_LITERAL(18, 320, 17), // "onNoteOffReceived" +QT_MOC_LITERAL(19, 338, 25), // "onConnectionStatusChanged" +QT_MOC_LITERAL(20, 364, 9), // "connected" +QT_MOC_LITERAL(21, 374, 7), // "onError" +QT_MOC_LITERAL(22, 382, 7), // "message" +QT_MOC_LITERAL(23, 390, 20), // "onDeviceInfoReceived" +QT_MOC_LITERAL(24, 411, 12), // "manufacturer" +QT_MOC_LITERAL(25, 424, 5), // "model" +QT_MOC_LITERAL(26, 430, 21), // "onCurrentTrackChanged" +QT_MOC_LITERAL(27, 452, 5), // "index" +QT_MOC_LITERAL(28, 458, 17), // "onAddTrackClicked" +QT_MOC_LITERAL(29, 476, 20), // "onRemoveTrackClicked" +QT_MOC_LITERAL(30, 497, 19), // "onClearTrackClicked" +QT_MOC_LITERAL(31, 517, 18), // "onCopyTrackClicked" +QT_MOC_LITERAL(32, 536, 20), // "onMergeTracksClicked" +QT_MOC_LITERAL(33, 557, 23), // "onLoadWavToTrackClicked" +QT_MOC_LITERAL(34, 581, 18), // "onPlayTrackClicked" +QT_MOC_LITERAL(35, 600, 22), // "onPlayAllTracksClicked" +QT_MOC_LITERAL(36, 623, 21), // "onStopPlaybackClicked" +QT_MOC_LITERAL(37, 645, 18), // "onPlaybackFinished" +QT_MOC_LITERAL(38, 664, 18), // "onMuteTrackClicked" +QT_MOC_LITERAL(39, 683, 18), // "onSoloTrackClicked" +QT_MOC_LITERAL(40, 702, 20), // "onTrackVolumeChanged" +QT_MOC_LITERAL(41, 723, 5), // "value" +QT_MOC_LITERAL(42, 729, 18), // "onTrackNameChanged" +QT_MOC_LITERAL(43, 748, 24), // "onTrackInstrumentChanged" +QT_MOC_LITERAL(44, 773, 22), // "onPlaybackSpeedChanged" +QT_MOC_LITERAL(45, 796, 19), // "onBassVolumeChanged" +QT_MOC_LITERAL(46, 816, 16), // "attemptReconnect" +QT_MOC_LITERAL(47, 833, 23), // "handleAudioStateChanged" +QT_MOC_LITERAL(48, 857, 13), // "QAudio::State" +QT_MOC_LITERAL(49, 871, 5), // "state" +QT_MOC_LITERAL(50, 877, 18) // "clearStatusMessage" + + }, + "Yamitracker\0onPlayClicked\0\0onPauseClicked\0" + "onStopClicked\0onSaveRecordingClicked\0" + "onConvertToBrrClicked\0onSaveMusicFileClicked\0" + "onRefreshDevicesClicked\0onLoadMidiFileClicked\0" + "onPlayMidiFileClicked\0onRecordFromMidiFile\0" + "onSelectedMidiFileChanged\0" + "onSelectFileForConversion\0" + "onSelectFileForPlayback\0onNoteOnReceived\0" + "data\0velocity\0onNoteOffReceived\0" + "onConnectionStatusChanged\0connected\0" + "onError\0message\0onDeviceInfoReceived\0" + "manufacturer\0model\0onCurrentTrackChanged\0" + "index\0onAddTrackClicked\0onRemoveTrackClicked\0" + "onClearTrackClicked\0onCopyTrackClicked\0" + "onMergeTracksClicked\0onLoadWavToTrackClicked\0" + "onPlayTrackClicked\0onPlayAllTracksClicked\0" + "onStopPlaybackClicked\0onPlaybackFinished\0" + "onMuteTrackClicked\0onSoloTrackClicked\0" + "onTrackVolumeChanged\0value\0" + "onTrackNameChanged\0onTrackInstrumentChanged\0" + "onPlaybackSpeedChanged\0onBassVolumeChanged\0" + "attemptReconnect\0handleAudioStateChanged\0" + "QAudio::State\0state\0clearStatusMessage" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_Yamitracker[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 39, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 0, 209, 2, 0x08 /* Private */, + 3, 0, 210, 2, 0x08 /* Private */, + 4, 0, 211, 2, 0x08 /* Private */, + 5, 0, 212, 2, 0x08 /* Private */, + 6, 0, 213, 2, 0x08 /* Private */, + 7, 0, 214, 2, 0x08 /* Private */, + 8, 0, 215, 2, 0x08 /* Private */, + 9, 0, 216, 2, 0x08 /* Private */, + 10, 0, 217, 2, 0x08 /* Private */, + 11, 0, 218, 2, 0x08 /* Private */, + 12, 0, 219, 2, 0x08 /* Private */, + 13, 0, 220, 2, 0x08 /* Private */, + 14, 0, 221, 2, 0x08 /* Private */, + 15, 2, 222, 2, 0x08 /* Private */, + 18, 1, 227, 2, 0x08 /* Private */, + 19, 1, 230, 2, 0x08 /* Private */, + 21, 1, 233, 2, 0x08 /* Private */, + 23, 2, 236, 2, 0x08 /* Private */, + 26, 1, 241, 2, 0x08 /* Private */, + 28, 0, 244, 2, 0x08 /* Private */, + 29, 0, 245, 2, 0x08 /* Private */, + 30, 0, 246, 2, 0x08 /* Private */, + 31, 0, 247, 2, 0x08 /* Private */, + 32, 0, 248, 2, 0x08 /* Private */, + 33, 0, 249, 2, 0x08 /* Private */, + 34, 0, 250, 2, 0x08 /* Private */, + 35, 0, 251, 2, 0x08 /* Private */, + 36, 0, 252, 2, 0x08 /* Private */, + 37, 0, 253, 2, 0x08 /* Private */, + 38, 0, 254, 2, 0x08 /* Private */, + 39, 0, 255, 2, 0x08 /* Private */, + 40, 1, 256, 2, 0x08 /* Private */, + 42, 0, 259, 2, 0x08 /* Private */, + 43, 1, 260, 2, 0x08 /* Private */, + 44, 1, 263, 2, 0x08 /* Private */, + 45, 1, 266, 2, 0x08 /* Private */, + 46, 0, 269, 2, 0x08 /* Private */, + 47, 1, 270, 2, 0x08 /* Private */, + 50, 0, 273, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::QString, QMetaType::Int, 16, 17, + QMetaType::Void, QMetaType::QString, 16, + QMetaType::Void, QMetaType::Bool, 20, + QMetaType::Void, QMetaType::QString, 22, + QMetaType::Void, QMetaType::QString, QMetaType::QString, 24, 25, + QMetaType::Void, QMetaType::Int, 27, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 41, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 27, + QMetaType::Void, QMetaType::Int, 41, + QMetaType::Void, QMetaType::Int, 41, + QMetaType::Void, + QMetaType::Void, 0x80000000 | 48, 49, + QMetaType::Void, + + 0 // eod +}; + +void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onPlayClicked(); break; + case 1: _t->onPauseClicked(); break; + case 2: _t->onStopClicked(); break; + case 3: _t->onSaveRecordingClicked(); break; + case 4: _t->onConvertToBrrClicked(); break; + case 5: _t->onSaveMusicFileClicked(); break; + case 6: _t->onRefreshDevicesClicked(); break; + case 7: _t->onLoadMidiFileClicked(); break; + case 8: _t->onPlayMidiFileClicked(); break; + case 9: _t->onRecordFromMidiFile(); break; + case 10: _t->onSelectedMidiFileChanged(); break; + case 11: _t->onSelectFileForConversion(); break; + case 12: _t->onSelectFileForPlayback(); break; + case 13: _t->onNoteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 14: _t->onNoteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 15: _t->onConnectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 16: _t->onError((*reinterpret_cast< const QString(*)>(_a[1]))); break; + case 17: _t->onDeviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break; + case 18: _t->onCurrentTrackChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 19: _t->onAddTrackClicked(); break; + case 20: _t->onRemoveTrackClicked(); break; + case 21: _t->onClearTrackClicked(); break; + case 22: _t->onCopyTrackClicked(); break; + case 23: _t->onMergeTracksClicked(); break; + case 24: _t->onLoadWavToTrackClicked(); break; + case 25: _t->onPlayTrackClicked(); break; + case 26: _t->onPlayAllTracksClicked(); break; + case 27: _t->onStopPlaybackClicked(); break; + case 28: _t->onPlaybackFinished(); break; + case 29: _t->onMuteTrackClicked(); break; + case 30: _t->onSoloTrackClicked(); break; + case 31: _t->onTrackVolumeChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 32: _t->onTrackNameChanged(); break; + case 33: _t->onTrackInstrumentChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 34: _t->onPlaybackSpeedChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 35: _t->onBassVolumeChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 36: _t->attemptReconnect(); break; + case 37: _t->handleAudioStateChanged((*reinterpret_cast< QAudio::State(*)>(_a[1]))); break; + case 38: _t->clearStatusMessage(); break; + default: ; + } + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + switch (_id) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 37: + switch (*reinterpret_cast(_a[1])) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 0: + *reinterpret_cast(_a[0]) = qRegisterMetaType< QAudio::State >(); break; + } + break; + } + } +} + +QT_INIT_METAOBJECT const QMetaObject Yamitracker::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_Yamitracker.data, + qt_meta_data_Yamitracker, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *Yamitracker::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *Yamitracker::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 39) + qt_static_metacall(this, _c, _id, _a); + _id -= 39; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 39) + qt_static_metacall(this, _c, _id, _a); + _id -= 39; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/brrconverter.o b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/brrconverter.o new file mode 100644 index 0000000..4e2d6c9 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/main.o b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/main.o new file mode 100644 index 0000000..5e34592 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/main.o differ diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/moc_brrconverter.o b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/moc_brrconverter.o new file mode 100644 index 0000000..4c83fbe Binary files /dev/null and b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/moc_brrconverter.o differ diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/moc_simplewavwriter.o b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/moc_simplewavwriter.o new file mode 100644 index 0000000..9da35fd Binary files /dev/null and b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/moc_simplewavwriter.o differ diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/moc_yamitracker.o b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/moc_yamitracker.o new file mode 100644 index 0000000..f36f13e Binary files /dev/null and b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/moc_yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/simplewavwriter.o b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/simplewavwriter.o new file mode 100644 index 0000000..43bcbb8 Binary files /dev/null and b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/simplewavwriter.o differ diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/yamitracker.o b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/yamitracker.o new file mode 100644 index 0000000..4bb13ea Binary files /dev/null and b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/obj/yamitracker.o differ diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/build/ui/ui_yamitracker.h b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/ui/ui_yamitracker.h new file mode 100644 index 0000000..2602a35 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/build/ui/ui_yamitracker.h @@ -0,0 +1,930 @@ +/******************************************************************************** +** Form generated from reading UI file 'yamitracker.ui' +** +** Created by: Qt User Interface Compiler version 5.15.17 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_YAMITRACKER_H +#define UI_YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Yamitracker +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QHBoxLayout *horizontalLayout; + QLabel *statusLabel; + QSpacerItem *horizontalSpacer; + QLabel *deviceLabel; + QHBoxLayout *horizontalLayout_2; + QLabel *keysInfoLabel; + QProgressBar *volumeBar; + QGroupBox *groupBox; + QHBoxLayout *horizontalLayout_3; + QPushButton *playButton; + QPushButton *pauseButton; + QPushButton *stopButton; + QPushButton *saveRecordingButton; + QPushButton *convertButton; + QPushButton *saveMusicButton; + QGroupBox *groupBox_4; + QHBoxLayout *horizontalLayout_7; + QPushButton *playTrackButton; + QPushButton *playAllButton; + QPushButton *stopPlaybackButton; + QSpacerItem *horizontalSpacer_13; + QPushButton *loadWavButton; + QGroupBox *groupBox_3; + QHBoxLayout *horizontalLayout_6; + QLabel *label_3; + QComboBox *trackComboBox; + QPushButton *addTrackButton; + QPushButton *removeTrackButton; + QPushButton *clearTrackButton; + QPushButton *copyTrackButton; + QPushButton *mergeTrackButton; + QSpacerItem *horizontalSpacer_12; + QLabel *trackInfoLabel; + QScrollArea *scrollArea; + QWidget *scrollAreaWidgetContents; + QVBoxLayout *verticalLayout_4; + QLabel *label_4; + QGroupBox *groupBox_2; + QVBoxLayout *verticalLayout_3; + QHBoxLayout *horizontalLayout_4; + QLabel *label; + QComboBox *instrumentComboBox; + QSpacerItem *horizontalSpacer_20; + QLabel *speedLabel; + QSlider *playbackSpeedSlider; + QLabel *volumeLabel; + QSlider *bassVolumeSlider; + QPushButton *refreshDevicesButton; + QHBoxLayout *horizontalLayout_5; + QPushButton *loadMidiButton; + QPushButton *playMidiButton; + QPushButton *recordFromMidiButton; + QPushButton *selectFileButton; + QPushButton *playFileButton; + QLabel *label_2; + QListWidget *midiFilesList; + QWidget *pianoWidget; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *whiteKeysLayout; + QPushButton *key_C1; + QPushButton *key_D1; + QPushButton *key_E1; + QPushButton *key_F1; + QPushButton *key_G1; + QPushButton *key_A1; + QPushButton *key_B1; + QPushButton *key_C2; + QPushButton *key_D2; + QPushButton *key_E2; + QPushButton *key_F2; + QPushButton *key_G2; + QPushButton *key_A2; + QPushButton *key_B2; + QPushButton *key_C3; + QPushButton *key_D3; + QPushButton *key_E3; + QPushButton *key_F3; + QPushButton *key_G3; + QPushButton *key_A3; + QPushButton *key_B3; + QPushButton *key_C4; + QPushButton *key_D4; + QPushButton *key_E4; + QPushButton *key_F4; + QPushButton *key_G4; + QPushButton *key_A4; + QPushButton *key_B4; + QPushButton *key_C5; + QPushButton *key_D5; + QPushButton *key_E5; + QPushButton *key_F5; + QPushButton *key_G5; + QPushButton *key_A5; + QPushButton *key_B5; + QPushButton *key_C6; + QHBoxLayout *blackKeysLayout; + QSpacerItem *horizontalSpacer_1; + QPushButton *key_Cs1; + QPushButton *key_Ds1; + QSpacerItem *horizontalSpacer_22; + QPushButton *key_Fs1; + QPushButton *key_Gs1; + QPushButton *key_As1; + QSpacerItem *horizontalSpacer_3; + QPushButton *key_Cs2; + QPushButton *key_Ds2; + QSpacerItem *horizontalSpacer_4; + QPushButton *key_Fs2; + QPushButton *key_Gs2; + QPushButton *key_As2; + QSpacerItem *horizontalSpacer_5; + QPushButton *key_Cs3; + QPushButton *key_Ds3; + QSpacerItem *horizontalSpacer_6; + QPushButton *key_Fs3; + QPushButton *key_Gs3; + QPushButton *key_As3; + QSpacerItem *horizontalSpacer_7; + QPushButton *key_Cs4; + QPushButton *key_Ds4; + QSpacerItem *horizontalSpacer_8; + QPushButton *key_Fs4; + QPushButton *key_Gs4; + QPushButton *key_As4; + QSpacerItem *horizontalSpacer_9; + QPushButton *key_Cs5; + QPushButton *key_Ds5; + QSpacerItem *horizontalSpacer_10; + QPushButton *key_Fs5; + QPushButton *key_Gs5; + QPushButton *key_As5; + QSpacerItem *horizontalSpacer_11; + + void setupUi(QMainWindow *Yamitracker) + { + if (Yamitracker->objectName().isEmpty()) + Yamitracker->setObjectName(QString::fromUtf8("Yamitracker")); + Yamitracker->resize(1400, 1000); + centralwidget = new QWidget(Yamitracker); + centralwidget->setObjectName(QString::fromUtf8("centralwidget")); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + statusLabel = new QLabel(centralwidget); + statusLabel->setObjectName(QString::fromUtf8("statusLabel")); + + horizontalLayout->addWidget(statusLabel); + + horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout->addItem(horizontalSpacer); + + deviceLabel = new QLabel(centralwidget); + deviceLabel->setObjectName(QString::fromUtf8("deviceLabel")); + + horizontalLayout->addWidget(deviceLabel); + + + verticalLayout->addLayout(horizontalLayout); + + horizontalLayout_2 = new QHBoxLayout(); + horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2")); + keysInfoLabel = new QLabel(centralwidget); + keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel")); + + horizontalLayout_2->addWidget(keysInfoLabel); + + volumeBar = new QProgressBar(centralwidget); + volumeBar->setObjectName(QString::fromUtf8("volumeBar")); + volumeBar->setValue(0); + + horizontalLayout_2->addWidget(volumeBar); + + + verticalLayout->addLayout(horizontalLayout_2); + + groupBox = new QGroupBox(centralwidget); + groupBox->setObjectName(QString::fromUtf8("groupBox")); + horizontalLayout_3 = new QHBoxLayout(groupBox); + horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3")); + playButton = new QPushButton(groupBox); + playButton->setObjectName(QString::fromUtf8("playButton")); + + horizontalLayout_3->addWidget(playButton); + + pauseButton = new QPushButton(groupBox); + pauseButton->setObjectName(QString::fromUtf8("pauseButton")); + pauseButton->setEnabled(false); + + horizontalLayout_3->addWidget(pauseButton); + + stopButton = new QPushButton(groupBox); + stopButton->setObjectName(QString::fromUtf8("stopButton")); + + horizontalLayout_3->addWidget(stopButton); + + saveRecordingButton = new QPushButton(groupBox); + saveRecordingButton->setObjectName(QString::fromUtf8("saveRecordingButton")); + + horizontalLayout_3->addWidget(saveRecordingButton); + + convertButton = new QPushButton(groupBox); + convertButton->setObjectName(QString::fromUtf8("convertButton")); + + horizontalLayout_3->addWidget(convertButton); + + saveMusicButton = new QPushButton(groupBox); + saveMusicButton->setObjectName(QString::fromUtf8("saveMusicButton")); + + horizontalLayout_3->addWidget(saveMusicButton); + + + verticalLayout->addWidget(groupBox); + + groupBox_4 = new QGroupBox(centralwidget); + groupBox_4->setObjectName(QString::fromUtf8("groupBox_4")); + horizontalLayout_7 = new QHBoxLayout(groupBox_4); + horizontalLayout_7->setObjectName(QString::fromUtf8("horizontalLayout_7")); + playTrackButton = new QPushButton(groupBox_4); + playTrackButton->setObjectName(QString::fromUtf8("playTrackButton")); + + horizontalLayout_7->addWidget(playTrackButton); + + playAllButton = new QPushButton(groupBox_4); + playAllButton->setObjectName(QString::fromUtf8("playAllButton")); + + horizontalLayout_7->addWidget(playAllButton); + + stopPlaybackButton = new QPushButton(groupBox_4); + stopPlaybackButton->setObjectName(QString::fromUtf8("stopPlaybackButton")); + + horizontalLayout_7->addWidget(stopPlaybackButton); + + horizontalSpacer_13 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_7->addItem(horizontalSpacer_13); + + loadWavButton = new QPushButton(groupBox_4); + loadWavButton->setObjectName(QString::fromUtf8("loadWavButton")); + + horizontalLayout_7->addWidget(loadWavButton); + + + verticalLayout->addWidget(groupBox_4); + + groupBox_3 = new QGroupBox(centralwidget); + groupBox_3->setObjectName(QString::fromUtf8("groupBox_3")); + horizontalLayout_6 = new QHBoxLayout(groupBox_3); + horizontalLayout_6->setObjectName(QString::fromUtf8("horizontalLayout_6")); + label_3 = new QLabel(groupBox_3); + label_3->setObjectName(QString::fromUtf8("label_3")); + + horizontalLayout_6->addWidget(label_3); + + trackComboBox = new QComboBox(groupBox_3); + trackComboBox->setObjectName(QString::fromUtf8("trackComboBox")); + + horizontalLayout_6->addWidget(trackComboBox); + + addTrackButton = new QPushButton(groupBox_3); + addTrackButton->setObjectName(QString::fromUtf8("addTrackButton")); + + horizontalLayout_6->addWidget(addTrackButton); + + removeTrackButton = new QPushButton(groupBox_3); + removeTrackButton->setObjectName(QString::fromUtf8("removeTrackButton")); + + horizontalLayout_6->addWidget(removeTrackButton); + + clearTrackButton = new QPushButton(groupBox_3); + clearTrackButton->setObjectName(QString::fromUtf8("clearTrackButton")); + + horizontalLayout_6->addWidget(clearTrackButton); + + copyTrackButton = new QPushButton(groupBox_3); + copyTrackButton->setObjectName(QString::fromUtf8("copyTrackButton")); + + horizontalLayout_6->addWidget(copyTrackButton); + + mergeTrackButton = new QPushButton(groupBox_3); + mergeTrackButton->setObjectName(QString::fromUtf8("mergeTrackButton")); + + horizontalLayout_6->addWidget(mergeTrackButton); + + horizontalSpacer_12 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_6->addItem(horizontalSpacer_12); + + trackInfoLabel = new QLabel(groupBox_3); + trackInfoLabel->setObjectName(QString::fromUtf8("trackInfoLabel")); + + horizontalLayout_6->addWidget(trackInfoLabel); + + + verticalLayout->addWidget(groupBox_3); + + scrollArea = new QScrollArea(centralwidget); + scrollArea->setObjectName(QString::fromUtf8("scrollArea")); + scrollArea->setWidgetResizable(true); + scrollAreaWidgetContents = new QWidget(); + scrollAreaWidgetContents->setObjectName(QString::fromUtf8("scrollAreaWidgetContents")); + scrollAreaWidgetContents->setGeometry(QRect(0, 0, 1380, 300)); + verticalLayout_4 = new QVBoxLayout(scrollAreaWidgetContents); + verticalLayout_4->setObjectName(QString::fromUtf8("verticalLayout_4")); + label_4 = new QLabel(scrollAreaWidgetContents); + label_4->setObjectName(QString::fromUtf8("label_4")); + + verticalLayout_4->addWidget(label_4); + + scrollArea->setWidget(scrollAreaWidgetContents); + + verticalLayout->addWidget(scrollArea); + + groupBox_2 = new QGroupBox(centralwidget); + groupBox_2->setObjectName(QString::fromUtf8("groupBox_2")); + verticalLayout_3 = new QVBoxLayout(groupBox_2); + verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3")); + horizontalLayout_4 = new QHBoxLayout(); + horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4")); + label = new QLabel(groupBox_2); + label->setObjectName(QString::fromUtf8("label")); + + horizontalLayout_4->addWidget(label); + + instrumentComboBox = new QComboBox(groupBox_2); + instrumentComboBox->setObjectName(QString::fromUtf8("instrumentComboBox")); + + horizontalLayout_4->addWidget(instrumentComboBox); + + horizontalSpacer_20 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_4->addItem(horizontalSpacer_20); + + speedLabel = new QLabel(groupBox_2); + speedLabel->setObjectName(QString::fromUtf8("speedLabel")); + + horizontalLayout_4->addWidget(speedLabel); + + playbackSpeedSlider = new QSlider(groupBox_2); + playbackSpeedSlider->setObjectName(QString::fromUtf8("playbackSpeedSlider")); + playbackSpeedSlider->setOrientation(Qt::Horizontal); + playbackSpeedSlider->setMinimum(50); + playbackSpeedSlider->setMaximum(200); + playbackSpeedSlider->setValue(100); + + horizontalLayout_4->addWidget(playbackSpeedSlider); + + volumeLabel = new QLabel(groupBox_2); + volumeLabel->setObjectName(QString::fromUtf8("volumeLabel")); + + horizontalLayout_4->addWidget(volumeLabel); + + bassVolumeSlider = new QSlider(groupBox_2); + bassVolumeSlider->setObjectName(QString::fromUtf8("bassVolumeSlider")); + bassVolumeSlider->setOrientation(Qt::Horizontal); + bassVolumeSlider->setMinimum(100); + bassVolumeSlider->setMaximum(400); + bassVolumeSlider->setValue(200); + + horizontalLayout_4->addWidget(bassVolumeSlider); + + refreshDevicesButton = new QPushButton(groupBox_2); + refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton")); + + horizontalLayout_4->addWidget(refreshDevicesButton); + + + verticalLayout_3->addLayout(horizontalLayout_4); + + horizontalLayout_5 = new QHBoxLayout(); + horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5")); + loadMidiButton = new QPushButton(groupBox_2); + loadMidiButton->setObjectName(QString::fromUtf8("loadMidiButton")); + + horizontalLayout_5->addWidget(loadMidiButton); + + playMidiButton = new QPushButton(groupBox_2); + playMidiButton->setObjectName(QString::fromUtf8("playMidiButton")); + + horizontalLayout_5->addWidget(playMidiButton); + + recordFromMidiButton = new QPushButton(groupBox_2); + recordFromMidiButton->setObjectName(QString::fromUtf8("recordFromMidiButton")); + + horizontalLayout_5->addWidget(recordFromMidiButton); + + selectFileButton = new QPushButton(groupBox_2); + selectFileButton->setObjectName(QString::fromUtf8("selectFileButton")); + + horizontalLayout_5->addWidget(selectFileButton); + + playFileButton = new QPushButton(groupBox_2); + playFileButton->setObjectName(QString::fromUtf8("playFileButton")); + + horizontalLayout_5->addWidget(playFileButton); + + + verticalLayout_3->addLayout(horizontalLayout_5); + + label_2 = new QLabel(groupBox_2); + label_2->setObjectName(QString::fromUtf8("label_2")); + + verticalLayout_3->addWidget(label_2); + + midiFilesList = new QListWidget(groupBox_2); + midiFilesList->setObjectName(QString::fromUtf8("midiFilesList")); + + verticalLayout_3->addWidget(midiFilesList); + + + verticalLayout->addWidget(groupBox_2); + + pianoWidget = new QWidget(centralwidget); + pianoWidget->setObjectName(QString::fromUtf8("pianoWidget")); + verticalLayout_2 = new QVBoxLayout(pianoWidget); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + whiteKeysLayout = new QHBoxLayout(); + whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout")); + key_C1 = new QPushButton(pianoWidget); + key_C1->setObjectName(QString::fromUtf8("key_C1")); + + whiteKeysLayout->addWidget(key_C1); + + key_D1 = new QPushButton(pianoWidget); + key_D1->setObjectName(QString::fromUtf8("key_D1")); + + whiteKeysLayout->addWidget(key_D1); + + key_E1 = new QPushButton(pianoWidget); + key_E1->setObjectName(QString::fromUtf8("key_E1")); + + whiteKeysLayout->addWidget(key_E1); + + key_F1 = new QPushButton(pianoWidget); + key_F1->setObjectName(QString::fromUtf8("key_F1")); + + whiteKeysLayout->addWidget(key_F1); + + key_G1 = new QPushButton(pianoWidget); + key_G1->setObjectName(QString::fromUtf8("key_G1")); + + whiteKeysLayout->addWidget(key_G1); + + key_A1 = new QPushButton(pianoWidget); + key_A1->setObjectName(QString::fromUtf8("key_A1")); + + whiteKeysLayout->addWidget(key_A1); + + key_B1 = new QPushButton(pianoWidget); + key_B1->setObjectName(QString::fromUtf8("key_B1")); + + whiteKeysLayout->addWidget(key_B1); + + key_C2 = new QPushButton(pianoWidget); + key_C2->setObjectName(QString::fromUtf8("key_C2")); + + whiteKeysLayout->addWidget(key_C2); + + key_D2 = new QPushButton(pianoWidget); + key_D2->setObjectName(QString::fromUtf8("key_D2")); + + whiteKeysLayout->addWidget(key_D2); + + key_E2 = new QPushButton(pianoWidget); + key_E2->setObjectName(QString::fromUtf8("key_E2")); + + whiteKeysLayout->addWidget(key_E2); + + key_F2 = new QPushButton(pianoWidget); + key_F2->setObjectName(QString::fromUtf8("key_F2")); + + whiteKeysLayout->addWidget(key_F2); + + key_G2 = new QPushButton(pianoWidget); + key_G2->setObjectName(QString::fromUtf8("key_G2")); + + whiteKeysLayout->addWidget(key_G2); + + key_A2 = new QPushButton(pianoWidget); + key_A2->setObjectName(QString::fromUtf8("key_A2")); + + whiteKeysLayout->addWidget(key_A2); + + key_B2 = new QPushButton(pianoWidget); + key_B2->setObjectName(QString::fromUtf8("key_B2")); + + whiteKeysLayout->addWidget(key_B2); + + key_C3 = new QPushButton(pianoWidget); + key_C3->setObjectName(QString::fromUtf8("key_C3")); + + whiteKeysLayout->addWidget(key_C3); + + key_D3 = new QPushButton(pianoWidget); + key_D3->setObjectName(QString::fromUtf8("key_D3")); + + whiteKeysLayout->addWidget(key_D3); + + key_E3 = new QPushButton(pianoWidget); + key_E3->setObjectName(QString::fromUtf8("key_E3")); + + whiteKeysLayout->addWidget(key_E3); + + key_F3 = new QPushButton(pianoWidget); + key_F3->setObjectName(QString::fromUtf8("key_F3")); + + whiteKeysLayout->addWidget(key_F3); + + key_G3 = new QPushButton(pianoWidget); + key_G3->setObjectName(QString::fromUtf8("key_G3")); + + whiteKeysLayout->addWidget(key_G3); + + key_A3 = new QPushButton(pianoWidget); + key_A3->setObjectName(QString::fromUtf8("key_A3")); + + whiteKeysLayout->addWidget(key_A3); + + key_B3 = new QPushButton(pianoWidget); + key_B3->setObjectName(QString::fromUtf8("key_B3")); + + whiteKeysLayout->addWidget(key_B3); + + key_C4 = new QPushButton(pianoWidget); + key_C4->setObjectName(QString::fromUtf8("key_C4")); + + whiteKeysLayout->addWidget(key_C4); + + key_D4 = new QPushButton(pianoWidget); + key_D4->setObjectName(QString::fromUtf8("key_D4")); + + whiteKeysLayout->addWidget(key_D4); + + key_E4 = new QPushButton(pianoWidget); + key_E4->setObjectName(QString::fromUtf8("key_E4")); + + whiteKeysLayout->addWidget(key_E4); + + key_F4 = new QPushButton(pianoWidget); + key_F4->setObjectName(QString::fromUtf8("key_F4")); + + whiteKeysLayout->addWidget(key_F4); + + key_G4 = new QPushButton(pianoWidget); + key_G4->setObjectName(QString::fromUtf8("key_G4")); + + whiteKeysLayout->addWidget(key_G4); + + key_A4 = new QPushButton(pianoWidget); + key_A4->setObjectName(QString::fromUtf8("key_A4")); + + whiteKeysLayout->addWidget(key_A4); + + key_B4 = new QPushButton(pianoWidget); + key_B4->setObjectName(QString::fromUtf8("key_B4")); + + whiteKeysLayout->addWidget(key_B4); + + key_C5 = new QPushButton(pianoWidget); + key_C5->setObjectName(QString::fromUtf8("key_C5")); + + whiteKeysLayout->addWidget(key_C5); + + key_D5 = new QPushButton(pianoWidget); + key_D5->setObjectName(QString::fromUtf8("key_D5")); + + whiteKeysLayout->addWidget(key_D5); + + key_E5 = new QPushButton(pianoWidget); + key_E5->setObjectName(QString::fromUtf8("key_E5")); + + whiteKeysLayout->addWidget(key_E5); + + key_F5 = new QPushButton(pianoWidget); + key_F5->setObjectName(QString::fromUtf8("key_F5")); + + whiteKeysLayout->addWidget(key_F5); + + key_G5 = new QPushButton(pianoWidget); + key_G5->setObjectName(QString::fromUtf8("key_G5")); + + whiteKeysLayout->addWidget(key_G5); + + key_A5 = new QPushButton(pianoWidget); + key_A5->setObjectName(QString::fromUtf8("key_A5")); + + whiteKeysLayout->addWidget(key_A5); + + key_B5 = new QPushButton(pianoWidget); + key_B5->setObjectName(QString::fromUtf8("key_B5")); + + whiteKeysLayout->addWidget(key_B5); + + key_C6 = new QPushButton(pianoWidget); + key_C6->setObjectName(QString::fromUtf8("key_C6")); + + whiteKeysLayout->addWidget(key_C6); + + + verticalLayout_2->addLayout(whiteKeysLayout); + + blackKeysLayout = new QHBoxLayout(); + blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout")); + horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_1); + + key_Cs1 = new QPushButton(pianoWidget); + key_Cs1->setObjectName(QString::fromUtf8("key_Cs1")); + + blackKeysLayout->addWidget(key_Cs1); + + key_Ds1 = new QPushButton(pianoWidget); + key_Ds1->setObjectName(QString::fromUtf8("key_Ds1")); + + blackKeysLayout->addWidget(key_Ds1); + + horizontalSpacer_22 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_22); + + key_Fs1 = new QPushButton(pianoWidget); + key_Fs1->setObjectName(QString::fromUtf8("key_Fs1")); + + blackKeysLayout->addWidget(key_Fs1); + + key_Gs1 = new QPushButton(pianoWidget); + key_Gs1->setObjectName(QString::fromUtf8("key_Gs1")); + + blackKeysLayout->addWidget(key_Gs1); + + key_As1 = new QPushButton(pianoWidget); + key_As1->setObjectName(QString::fromUtf8("key_As1")); + + blackKeysLayout->addWidget(key_As1); + + horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_3); + + key_Cs2 = new QPushButton(pianoWidget); + key_Cs2->setObjectName(QString::fromUtf8("key_Cs2")); + + blackKeysLayout->addWidget(key_Cs2); + + key_Ds2 = new QPushButton(pianoWidget); + key_Ds2->setObjectName(QString::fromUtf8("key_Ds2")); + + blackKeysLayout->addWidget(key_Ds2); + + horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_4); + + key_Fs2 = new QPushButton(pianoWidget); + key_Fs2->setObjectName(QString::fromUtf8("key_Fs2")); + + blackKeysLayout->addWidget(key_Fs2); + + key_Gs2 = new QPushButton(pianoWidget); + key_Gs2->setObjectName(QString::fromUtf8("key_Gs2")); + + blackKeysLayout->addWidget(key_Gs2); + + key_As2 = new QPushButton(pianoWidget); + key_As2->setObjectName(QString::fromUtf8("key_As2")); + + blackKeysLayout->addWidget(key_As2); + + horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_5); + + key_Cs3 = new QPushButton(pianoWidget); + key_Cs3->setObjectName(QString::fromUtf8("key_Cs3")); + + blackKeysLayout->addWidget(key_Cs3); + + key_Ds3 = new QPushButton(pianoWidget); + key_Ds3->setObjectName(QString::fromUtf8("key_Ds3")); + + blackKeysLayout->addWidget(key_Ds3); + + horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_6); + + key_Fs3 = new QPushButton(pianoWidget); + key_Fs3->setObjectName(QString::fromUtf8("key_Fs3")); + + blackKeysLayout->addWidget(key_Fs3); + + key_Gs3 = new QPushButton(pianoWidget); + key_Gs3->setObjectName(QString::fromUtf8("key_Gs3")); + + blackKeysLayout->addWidget(key_Gs3); + + key_As3 = new QPushButton(pianoWidget); + key_As3->setObjectName(QString::fromUtf8("key_As3")); + + blackKeysLayout->addWidget(key_As3); + + horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_7); + + key_Cs4 = new QPushButton(pianoWidget); + key_Cs4->setObjectName(QString::fromUtf8("key_Cs4")); + + blackKeysLayout->addWidget(key_Cs4); + + key_Ds4 = new QPushButton(pianoWidget); + key_Ds4->setObjectName(QString::fromUtf8("key_Ds4")); + + blackKeysLayout->addWidget(key_Ds4); + + horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_8); + + key_Fs4 = new QPushButton(pianoWidget); + key_Fs4->setObjectName(QString::fromUtf8("key_Fs4")); + + blackKeysLayout->addWidget(key_Fs4); + + key_Gs4 = new QPushButton(pianoWidget); + key_Gs4->setObjectName(QString::fromUtf8("key_Gs4")); + + blackKeysLayout->addWidget(key_Gs4); + + key_As4 = new QPushButton(pianoWidget); + key_As4->setObjectName(QString::fromUtf8("key_As4")); + + blackKeysLayout->addWidget(key_As4); + + horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_9); + + key_Cs5 = new QPushButton(pianoWidget); + key_Cs5->setObjectName(QString::fromUtf8("key_Cs5")); + + blackKeysLayout->addWidget(key_Cs5); + + key_Ds5 = new QPushButton(pianoWidget); + key_Ds5->setObjectName(QString::fromUtf8("key_Ds5")); + + blackKeysLayout->addWidget(key_Ds5); + + horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_10); + + key_Fs5 = new QPushButton(pianoWidget); + key_Fs5->setObjectName(QString::fromUtf8("key_Fs5")); + + blackKeysLayout->addWidget(key_Fs5); + + key_Gs5 = new QPushButton(pianoWidget); + key_Gs5->setObjectName(QString::fromUtf8("key_Gs5")); + + blackKeysLayout->addWidget(key_Gs5); + + key_As5 = new QPushButton(pianoWidget); + key_As5->setObjectName(QString::fromUtf8("key_As5")); + + blackKeysLayout->addWidget(key_As5); + + horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_11); + + + verticalLayout_2->addLayout(blackKeysLayout); + + + verticalLayout->addWidget(pianoWidget); + + Yamitracker->setCentralWidget(centralwidget); + + retranslateUi(Yamitracker); + + QMetaObject::connectSlotsByName(Yamitracker); + } // setupUi + + void retranslateUi(QMainWindow *Yamitracker) + { + Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor - Multitrack Recording", nullptr)); + statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr)); + deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr)); + keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr)); + groupBox->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\267\320\260\320\277\320\270\321\201\321\214\321\216", nullptr)); + playButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\227\320\260\320\277\320\270\321\201\321\214 \321\201 \321\201\320\270\320\275\321\202\320\265\320\267\320\260\321\202\320\276\321\200\320\260", nullptr)); + pauseButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\270 \320\237\320\260\321\203\320\267\320\260", nullptr)); + stopButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\271 \320\241\321\202\320\276\320\277", nullptr)); + saveRecordingButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\222\276 \320\241\320\276\321\205\321\200\320\260\320\275\320\270\321\202\321\214 \320\267\320\260\320\277\320\270\321\201\321\214", nullptr)); + convertButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\204 \320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr)); + saveMusicButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\216\265 \320\241\320\276\321\205\321\200\320\260\320\275\320\270\321\202\321\214 \320\274\321\203\320\267\321\213\320\272\321\203 (Pently)", nullptr)); + groupBox_4->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\262\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\274", nullptr)); + playTrackButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\242\320\265\320\272\321\203\321\211\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260", nullptr)); + playAllButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266\342\226\266 \320\222\321\201\320\265 \320\264\320\276\321\200\320\276\320\266\320\272\320\270", nullptr)); + stopPlaybackButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\271 \320\241\321\202\320\276\320\277 \320\262\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\320\264\320\265\320\275\320\270\320\265", nullptr)); + loadWavButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\202 \320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214 WAV \320\262 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + groupBox_3->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\264\320\276\321\200\320\276\320\266\320\272\320\260\320\274\320\270", nullptr)); + label_3->setText(QCoreApplication::translate("Yamitracker", "\320\242\320\265\320\272\321\203\321\211\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260:", nullptr)); + addTrackButton->setText(QCoreApplication::translate("Yamitracker", "\342\236\225 \320\235\320\276\320\262\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260", nullptr)); + removeTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\227\221 \320\243\320\264\320\260\320\273\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + clearTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\227\221 \320\236\321\207\320\270\321\201\321\202\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + copyTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\213 \320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr)); + mergeTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\200 \320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\320\270", nullptr)); + trackInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\224\320\276\321\200\320\276\320\266\320\272\320\260 1: 0 \320\275\320\276\321\202", nullptr)); + label_4->setText(QCoreApplication::translate("Yamitracker", "\320\237\320\260\320\275\320\265\320\273\321\214 \321\203\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260\320\274\320\270:", nullptr)); + groupBox_2->setTitle(QCoreApplication::translate("Yamitracker", "\320\240\320\260\320\261\320\276\321\202\320\260 \321\201 MIDI \321\204\320\260\320\271\320\273\320\260\320\274\320\270", nullptr)); + label->setText(QCoreApplication::translate("Yamitracker", "\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202:", nullptr)); + speedLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\320\272\320\276\321\200\320\276\321\201\321\202\321\214: 100%", nullptr)); + volumeLabel->setText(QCoreApplication::translate("Yamitracker", "\320\221\320\260\321\201: 200%", nullptr)); + refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\203 \320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr)); + loadMidiButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\202 \320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214 MIDI \321\204\320\260\320\271\320\273", nullptr)); + playMidiButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\222\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\321\201\321\202\320\270 MIDI", nullptr)); + recordFromMidiButton->setText(QCoreApplication::translate("Yamitracker", "\342\227\217 \320\227\320\260\320\277\320\270\321\201\320\260\321\202\321\214 \320\270\320\267 MIDI", nullptr)); + selectFileButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\201 \320\222\321\213\320\261\321\200\320\260\321\202\321\214 \321\204\320\260\320\271\320\273 \320\264\320\273\321\217 \320\272\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\320\270", nullptr)); + playFileButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\222\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\321\201\321\202\320\270 WAV", nullptr)); + label_2->setText(QCoreApplication::translate("Yamitracker", "\320\224\320\276\321\201\321\202\321\203\320\277\320\275\321\213\320\265 MIDI \321\204\320\260\320\271\320\273\321\213:", nullptr)); + key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr)); + key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr)); + key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr)); + key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr)); + key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr)); + key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr)); + key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr)); + key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr)); + key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr)); + key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr)); + key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr)); + key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr)); + key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr)); + key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr)); + key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr)); + key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr)); + key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr)); + key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr)); + key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr)); + key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr)); + key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr)); + key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr)); + key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr)); + key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr)); + key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr)); + key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr)); + key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr)); + key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr)); + key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr)); + key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr)); + key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr)); + key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr)); + key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr)); + key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr)); + key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr)); + key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr)); + key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr)); + key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr)); + key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr)); + key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr)); + key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr)); + key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr)); + key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr)); + key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr)); + key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr)); + key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr)); + key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr)); + key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr)); + key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr)); + key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr)); + key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr)); + key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr)); + key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr)); + key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr)); + key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr)); + key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr)); + key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr)); + key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr)); + key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr)); + key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr)); + key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class Yamitracker: public Ui_Yamitracker {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_YAMITRACKER_H diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/format/brrconverter.cpp b/Yamitracker-reoload/Yamitracker6/Yamitracker/format/brrconverter.cpp new file mode 100644 index 0000000..eed5c96 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/format/brrconverter.cpp @@ -0,0 +1,340 @@ +#include "brrconverter.h" +#include + +BrrConverter::BrrConverter(QObject *parent) : QObject(parent) +{ +} + +bool BrrConverter::convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath) +{ + QFile wavFile(wavFilePath); + if (!wavFile.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open WAV file:" << wavFilePath; + return false; + } + + int sampleRate, channels, bitsPerSample, dataSize; + if (!decodeWavHeader(wavFile, sampleRate, channels, bitsPerSample, dataSize)) { + qDebug() << "Invalid WAV file format"; + wavFile.close(); + return false; + } + + // Читаем аудиоданные + QByteArray audioData = wavFile.read(dataSize); + wavFile.close(); + + // Конвертируем в 16-bit моно + QVector samples; + int bytesPerSample = bitsPerSample / 8; + int totalSamples = dataSize / (bytesPerSample * channels); + + for (int i = 0; i < totalSamples; ++i) { + int32_t sample = 0; + + for (int ch = 0; ch < channels; ++ch) { + int32_t channelSample = 0; + int offset = (i * channels + ch) * bytesPerSample; + + if (bitsPerSample == 8) { + channelSample = (int8_t)audioData[offset]; + channelSample = (channelSample - 128) * 256; + } else if (bitsPerSample == 16) { + channelSample = (int16_t)((audioData[offset + 1] << 8) | audioData[offset]); + } else if (bitsPerSample == 24) { + channelSample = (int32_t)((audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + if (channelSample & 0x800000) channelSample |= 0xFF000000; + channelSample >>= 8; + } else if (bitsPerSample == 32) { + channelSample = (int32_t)((audioData[offset + 3] << 24) | + (audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + channelSample >>= 16; + } + + sample += channelSample; + } + + // Микшируем каналы + sample /= channels; + samples.append(clamp16(sample)); + } + + // Понижаем частоту дискретизации для SNES (макс 32kHz -> 16kHz) + if (sampleRate > 16000) { + int ratio = sampleRate / 16000; + QVector downsampled; + for (int i = 0; i < samples.size(); i += ratio) { + downsampled.append(samples[i]); + } + samples = downsampled; + } else if (sampleRate < 16000) { + // Если частота ниже, повышаем (простое повторение) + int ratio = 16000 / sampleRate; + QVector upsampled; + for (int i = 0; i < samples.size(); ++i) { + for (int j = 0; j < ratio; ++j) { + upsampled.append(samples[i]); + } + } + samples = upsampled; + } + + // Открываем BRR файл для записи + QFile brrFile(brrFilePath); + if (!brrFile.open(QIODevice::WriteOnly)) { + qDebug() << "Cannot open BRR file for writing:" << brrFilePath; + return false; + } + + ADPCMState state; + QVector blockSamples; + + // Конвертируем в BRR блоками по 16 сэмплов + for (int i = 0; i < samples.size(); ++i) { + int encoded = encodeADPCMNibble(samples[i], state); + blockSamples.append(encoded); + + if (blockSamples.size() == 32) { // 32 ниббла = 16 сэмплов + writeBrrBlock(brrFile, blockSamples, false); + blockSamples.clear(); + } + } + + // Записываем последний неполный блок + if (!blockSamples.isEmpty()) { + // Дополняем до 32 нибблов + while (blockSamples.size() < 32) { + blockSamples.append(0); + } + writeBrrBlock(brrFile, blockSamples, true); // Последний блок с флагом loop + } else if (samples.size() > 0) { + // Если был полный последний блок, помечаем его как loop + brrFile.seek(brrFile.size() - BRR_BLOCK_SIZE); + unsigned char header = 0x03; // Фильтр 0, loop flag = 1 + brrFile.write((char*)&header, 1); + } + + brrFile.close(); + qDebug() << "BRR file created:" << brrFilePath << "samples:" << samples.size() << "sample rate:" << sampleRate; + return true; +} + +bool BrrConverter::convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath) +{ + qDebug() << "MIDI to BRR conversion requires MIDI synthesizer"; + qDebug() << "Please convert MIDI to WAV first, then use WAV to BRR"; + + return false; +} + +bool BrrConverter::decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize) +{ + char buffer[44]; + if (file.read(buffer, 44) != 44) { + return false; + } + + // Проверяем RIFF заголовок + if (buffer[0] != 'R' || buffer[1] != 'I' || buffer[2] != 'F' || buffer[3] != 'F') { + return false; + } + + // Проверяем WAVE формат + if (buffer[8] != 'W' || buffer[9] != 'A' || buffer[10] != 'V' || buffer[11] != 'E') { + return false; + } + + // Проверяем fmt chunk + if (buffer[12] != 'f' || buffer[13] != 'm' || buffer[14] != 't' || buffer[15] != ' ') { + return false; + } + + // Читаем параметры + int fmtSize = *(int*)(buffer + 16); + if (fmtSize < 16) return false; + + int audioFormat = *(short*)(buffer + 20); + if (audioFormat != 1) return false; // Только PCM + + channels = *(short*)(buffer + 22); + sampleRate = *(int*)(buffer + 24); + bitsPerSample = *(short*)(buffer + 34); + + // Ищем data chunk + int offset = 36; + while (offset < file.size()) { + file.seek(offset); + char chunkId[4]; + if (file.read(chunkId, 4) != 4) break; + + int chunkSize; + if (file.read((char*)&chunkSize, 4) != 4) break; + + if (chunkId[0] == 'd' && chunkId[1] == 'a' && chunkId[2] == 't' && chunkId[3] == 'a') { + dataSize = chunkSize; + file.seek(offset + 8); + return true; + } + + offset += 8 + chunkSize; + } + + return false; +} + +int16_t BrrConverter::clamp16(int sample) +{ + if (sample > 32767) return 32767; + if (sample < -32768) return -32768; + return (int16_t)sample; +} + +int BrrConverter::encodeADPCMNibble(int sample, ADPCMState &state) +{ + int diff = sample - state.prev_sample; + int step = step_table[state.prev_index]; + + // Квантование + int nibble = 0; + int predicted = state.prev_sample; + + // Применяем фильтр (простейший - без фильтра) + int filtered = predicted; + + diff = sample - filtered; + + // Находим наилучший nibble + int best_nibble = 0; + int best_error = INT_MAX; + + for (int n = 0; n < 16; ++n) { + int step_index = state.prev_index + ((n & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (n & 8) ? -current_step : current_step; + + int current_sample = filtered + delta; + int error = abs(sample - current_sample); + + if (error < best_error) { + best_error = error; + best_nibble = n; + } + } + + // Декодируем выбранный nibble для обновления состояния + int step_index = state.prev_index + ((best_nibble & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (best_nibble & 8) ? -current_step : current_step; + + state.prev_sample = filtered + delta; + state.prev_index = step_index; + + // Ограничиваем индекс + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + // Ограничиваем сэмпл + state.prev_sample = clamp16(state.prev_sample); + + return best_nibble; +} + +void BrrConverter::writeBrrBlock(QFile &file, const QVector &samples, bool loop) +{ + if (samples.size() != 32) { + qDebug() << "Invalid sample count for BRR block:" << samples.size(); + return; + } + + unsigned char header = 0x00; + if (loop) { + header = 0x03; // Фильтр 0 + loop + } + + file.write((char*)&header, 1); + + // Упаковываем 32 ниббла в 8 байт + for (int i = 0; i < 16; ++i) { + unsigned char byte = (samples[i * 2] << 4) | (samples[i * 2 + 1] & 0x0F); + file.write((char*)&byte, 1); + } +} + +int BrrConverter::decodeADPCMNibble(int nibble, ADPCMState &state) +{ + int step = step_table[state.prev_index]; + int delta = step >> 3; + + if (nibble & 1) delta += step >> 2; + if (nibble & 2) delta += step >> 1; + if (nibble & 4) delta += step; + + if (nibble & 8) delta = -delta; + + // Применяем фильтр (простейший) + int sample = state.prev_sample + delta; + + // Ограничиваем + sample = clamp16(sample); + + // Обновляем индекс + state.prev_index += ((nibble & 7) * 2 - 7); + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + state.prev_sample = sample; + + return sample; +} + +QVector BrrConverter::decodeBrrFile(const QString &brrFilePath) +{ + QVector samples; + QFile file(brrFilePath); + + if (!file.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open BRR file for reading:" << brrFilePath; + return samples; + } + + ADPCMState state; + + while (!file.atEnd()) { + unsigned char header; + if (file.read((char*)&header, 1) != 1) break; + + unsigned char data[8]; + if (file.read((char*)data, 8) != 8) break; + + // Извлекаем нибблы + for (int i = 0; i < 8; ++i) { + unsigned char byte = data[i]; + int nibble1 = (byte >> 4) & 0x0F; + int nibble2 = byte & 0x0F; + + int sample1 = decodeADPCMNibble(nibble1, state); + int sample2 = decodeADPCMNibble(nibble2, state); + + samples.append(sample1); + samples.append(sample2); + } + + // Проверяем конец + if (header & 0x01) { + break; // Конец сэмпла + } + } + + file.close(); + return samples; +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/format/brrconverter.h b/Yamitracker-reoload/Yamitracker6/Yamitracker/format/brrconverter.h new file mode 100644 index 0000000..175879a --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/format/brrconverter.h @@ -0,0 +1,54 @@ +#ifndef BRRCONVERTER_H +#define BRRCONVERTER_H + +#include +#include +#include +#include +#include + +class BrrConverter : public QObject +{ + Q_OBJECT + +public: + BrrConverter(QObject *parent = nullptr); + + bool convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath); + bool convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath); + +private: + struct ADPCMState { + int prev_sample; + int prev_index; + + ADPCMState() : prev_sample(0), prev_index(0) {} + }; + + struct BRRBlock { + unsigned char header; + unsigned char data[8]; + }; + + bool decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize); + int16_t clamp16(int sample); + int encodeADPCMNibble(int sample, ADPCMState &state); + void writeBrrBlock(QFile &file, const QVector &samples, bool loop = false); + int decodeADPCMNibble(int nibble, ADPCMState &state); + QVector decodeBrrFile(const QString &brrFilePath); + + static const int BRR_BLOCK_SIZE = 9; + static const int SAMPLES_PER_BLOCK = 16; + static const int FILTER_TYPES = 4; + + const int step_table[89] = { + 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, + 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, + 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, + 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327, + 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, + 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 + }; +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/format/simplewavwriter.cpp b/Yamitracker-reoload/Yamitracker6/Yamitracker/format/simplewavwriter.cpp new file mode 100644 index 0000000..57f7ee6 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/format/simplewavwriter.cpp @@ -0,0 +1,885 @@ +#include "simplewavwriter.h" +#include +#include +#include +#include +#include + +SimpleWavWriter::SimpleWavWriter(QObject *parent) + : QObject(parent), recording(false), paused(false), playbackSpeed(1.0), bassVolumeMultiplier(2.0) +{ + // Инициализируем дорожки + tracks.resize(MAX_TRACKS); + for (int i = 0; i < MAX_TRACKS; i++) { + tracks[i] = Track(i); // Используем конструктор с индексом + tracks[i].instrument = 1; // По умолчанию Grand Piano + tracks[i].volume = 1.0; + tracks[i].muted = false; + tracks[i].solo = false; + } + + // Настраиваем формат аудио + format.setSampleRate(SAMPLE_RATE); + format.setChannelCount(1); // Моно + format.setSampleSize(BIT_DEPTH); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); +} + +bool SimpleWavWriter::startRecording(int sampleRate) +{ + if (recording) return false; + + format.setSampleRate(sampleRate); + recording = true; + paused = false; + + emit recordingStatusChanged(true); + return true; +} + +void SimpleWavWriter::stopRecording() +{ + recording = false; + paused = false; + emit recordingStatusChanged(false); +} + +void SimpleWavWriter::pauseRecording() +{ + if (recording && !paused) { + paused = true; + } +} + +void SimpleWavWriter::resumeRecording() +{ + if (recording && paused) { + paused = false; + } +} + +void SimpleWavWriter::addNote(int track, double time, int note, int velocity, double duration, int instrument) +{ + if (track < 0 || track >= MAX_TRACKS) return; + + // Применяем множитель громкости для басовых инструментов + double volume = velocity / 127.0; + static QSet bassInstruments = {28, 33, 39, 40, 29, 37, 38}; + if (bassInstruments.contains(instrument)) { + volume *= bassVolumeMultiplier; + volume = qMin(volume, 1.0); // Ограничиваем максимальную громкость + } + + tracks[track].events.append(NoteEvent(time, note, velocity, duration, instrument, volume)); + tracks[track].instrument = instrument; + + emit trackUpdated(track); +} + +void SimpleWavWriter::clearTrack(int track) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].events.clear(); + emit trackUpdated(track); + } +} + +void SimpleWavWriter::clearAllTracks() +{ + for (int i = 0; i < MAX_TRACKS; i++) { + tracks[i].events.clear(); + emit trackUpdated(i); + } +} + +QString SimpleWavWriter::getTrackName(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].name; + } + return QString(); +} + +void SimpleWavWriter::setTrackName(int track, const QString &name) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].name = name; + emit trackUpdated(track); + } +} + +int SimpleWavWriter::getEventCount(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].events.size(); + } + return 0; +} + +int SimpleWavWriter::getTrackInstrument(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].instrument; + } + return 1; +} + +void SimpleWavWriter::setTrackInstrument(int track, int instrument) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].instrument = instrument; + emit trackUpdated(track); + } +} + +double SimpleWavWriter::getTrackVolume(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].volume; + } + return 1.0; +} + +void SimpleWavWriter::setTrackVolume(int track, double volume) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].volume = qBound(0.0, volume, 2.0); + emit trackUpdated(track); + } +} + +bool SimpleWavWriter::isTrackMuted(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].muted; + } + return false; +} + +void SimpleWavWriter::muteTrack(int track, bool muted) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].muted = muted; + emit trackUpdated(track); + } +} + +bool SimpleWavWriter::isTrackSolo(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].solo; + } + return false; +} + +void SimpleWavWriter::soloTrack(int track, bool solo) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].solo = solo; + emit trackUpdated(track); + } +} + +QByteArray SimpleWavWriter::getTrackAudioData(int track, bool mix) +{ + if (track < 0 || track >= MAX_TRACKS) return QByteArray(); + + if (mix) { + // Смешиваем все дорожки + QVector allTracks; + for (int i = 0; i < MAX_TRACKS; i++) { + allTracks.append(i); + } + return mixTracks(allTracks); + } + + return mixTracks(QVector{track}); +} + +QByteArray SimpleWavWriter::getAllTracksAudioData() +{ + // Собираем индексы всех дорожек, которые не заглушены и имеют данные + QVector activeTracks; + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].muted && !tracks[i].events.isEmpty()) { + activeTracks.append(i); + } + } + + if (activeTracks.isEmpty()) { + return QByteArray(); + } + + return mixTracks(activeTracks); +} + +bool SimpleWavWriter::loadWavToTrack(const QString &filename, int track) +{ + // Временно заглушка - в реальной реализации нужно парсить WAV файл + QFile file(filename); + if (!file.open(QIODevice::ReadOnly)) return false; + + // Пропускаем заголовок WAV (44 байта) + file.seek(44); + QByteArray audioData = file.readAll(); + file.close(); + + // Создаем событие для импортированного аудио + if (!audioData.isEmpty()) { + // Очищаем дорожку и добавляем специальное событие + tracks[track].events.clear(); + // Здесь нужно добавить логику для импорта WAV + emit trackUpdated(track); + return true; + } + + return false; +} + +void SimpleWavWriter::copyTrack(int fromTrack, int toTrack) +{ + if (fromTrack < 0 || fromTrack >= MAX_TRACKS || + toTrack < 0 || toTrack >= MAX_TRACKS || fromTrack == toTrack) { + return; + } + + tracks[toTrack] = tracks[fromTrack]; + tracks[toTrack].name = QString("Копия %1").arg(tracks[fromTrack].name); + emit trackUpdated(toTrack); +} + +void SimpleWavWriter::mergeTrack(int fromTrack, int toTrack) +{ + if (fromTrack < 0 || fromTrack >= MAX_TRACKS || + toTrack < 0 || toTrack >= MAX_TRACKS || fromTrack == toTrack) { + return; + } + + tracks[toTrack].events.append(tracks[fromTrack].events); + // Сортируем события по времени + std::sort(tracks[toTrack].events.begin(), tracks[toTrack].events.end(), + [](const NoteEvent &a, const NoteEvent &b) { return a.time < b.time; }); + + emit trackUpdated(toTrack); +} + +void SimpleWavWriter::setPlaybackSpeed(double speed) +{ + playbackSpeed = qBound(0.5, speed, 2.0); +} + +void SimpleWavWriter::setBassVolumeMultiplier(double multiplier) +{ + bassVolumeMultiplier = qBound(1.0, multiplier, 4.0); +} + +QByteArray SimpleWavWriter::generateNoteAudio(int note, int velocity, double duration, int instrument, double volume) +{ + double frequency = noteToFrequency(note); + double amplitude = (velocity / 127.0) * volume; + + return generateInstrumentWave(instrument, frequency, duration, amplitude); +} + +QByteArray SimpleWavWriter::generateSilence(double duration) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray silence(samples * sizeof(qint16), 0); + return silence; +} + +void SimpleWavWriter::writeWavHeader(QFile &file, quint32 dataSize) +{ + // RIFF header + file.write("RIFF"); + file.write(intToBytes(36 + dataSize)); + file.write("WAVE"); + + // fmt chunk + file.write("fmt "); + file.write(intToBytes(16)); // chunk size + file.write(shortToBytes(1)); // audio format (PCM) + file.write(shortToBytes(format.channelCount())); // channels + file.write(intToBytes(format.sampleRate())); // sample rate + file.write(intToBytes(format.sampleRate() * format.channelCount() * format.sampleSize() / 8)); // byte rate + file.write(shortToBytes(format.channelCount() * format.sampleSize() / 8)); // block align + file.write(shortToBytes(format.sampleSize())); // bits per sample + + // data chunk + file.write("data"); + file.write(intToBytes(dataSize)); +} + +bool SimpleWavWriter::saveToFile(const QString &filename) +{ + // Получаем аудиоданные всех активных дорожек + QByteArray audioData = getAllTracksAudioData(); + if (audioData.isEmpty()) { + qDebug() << "Нет данных для сохранения - все дорожки пусты или заглушены"; + + // Выводим информацию о дорожках для отладки + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].events.isEmpty()) { + qDebug() << "Дорожка" << i << ":" << tracks[i].name + << "инструмент:" << tracks[i].instrument + << "нот:" << tracks[i].events.size() + << "заглушена:" << tracks[i].muted; + } + } + + return false; + } + + QFile file(filename); + if (!file.open(QIODevice::WriteOnly)) { + qDebug() << "Не удалось открыть файл для записи:" << filename; + return false; + } + + // Записываем WAV заголовок + writeWavHeader(file, audioData.size()); + + // Записываем аудиоданные + qint64 bytesWritten = file.write(audioData); + file.close(); + + if (bytesWritten != audioData.size()) { + qDebug() << "Ошибка записи файла: записано" << bytesWritten << "байт из" << audioData.size(); + return false; + } + + // Выводим информацию о сохраненном файле + double duration = audioData.size() / (2.0 * SAMPLE_RATE); // байты / (2 байта на сэмпл * частота) + int activeTracks = 0; + int totalNotes = 0; + + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].muted && !tracks[i].events.isEmpty()) { + activeTracks++; + totalNotes += tracks[i].events.size(); + } + } + + qDebug() << "Файл успешно сохранен:"; + qDebug() << " Имя файла:" << filename; + qDebug() << " Размер:" << audioData.size() << "байт"; + qDebug() << " Частота дискретизации:" << SAMPLE_RATE << "Гц"; + qDebug() << " Битрейт:" << (SAMPLE_RATE * 2 * 8) / 1000 << "кбит/с"; + qDebug() << " Длительность:" << duration << "секунд"; + qDebug() << " Активных дорожек:" << activeTracks; + qDebug() << " Всего нот:" << totalNotes; + + return true; +} + +// НОВЫЙ МЕТОД: Конвертирует время в секундах в тики Pently (базовый темп 1000) +int SimpleWavWriter::secondsToPentlyTicks(double seconds) const +{ + // Базовый темп: 1000 тиков в секунде + return static_cast(seconds * 1000.0); +} + +// НОВЫЙ МЕТОД: Конвертирует тики в строку задержки +QString SimpleWavWriter::ticksToDelayString(int ticks) const +{ + if (ticks <= 0) return QString(); + + // Определяем наилучшее представление задержки + if (ticks >= 2000) return QString("D_2"); + if (ticks >= 1000) return QString("D_1"); + if (ticks >= 500) return QString("D_D2"); + if (ticks >= 250) return QString("D_D4"); + if (ticks >= 125) return QString("D_D8"); + if (ticks >= 62) return QString("D_D16"); + if (ticks >= 31) return QString("D_2"); + if (ticks >= 16) return QString("D_4"); + if (ticks >= 8) return QString("D_8"); + if (ticks >= 4) return QString("D_16"); + if (ticks >= 2) return QString("D_32"); + + return QString("D_32"); +} + +// НОВЫЙ МЕТОД: Создает паттерн из событий дорожки +QString SimpleWavWriter::generatePattern(int trackIndex) const +{ + if (trackIndex < 0 || trackIndex >= tracks.size()) return QString(); + + const Track& track = tracks[trackIndex]; + if (track.events.isEmpty()) return QString(); + + QString pattern; + + // Сортируем события по времени + QVector sortedEvents = track.events; + std::sort(sortedEvents.begin(), sortedEvents.end(), + [](const NoteEvent &a, const NoteEvent &b) { return a.time < b.time; }); + + double lastTime = 0; + for (const NoteEvent &event : sortedEvents) { + // Вычисляем задержку от предыдущего события + double delay = event.time - lastTime; + if (delay > 0) { + int delayTicks = secondsToPentlyTicks(delay); + QString delayCmd = ticksToDelayString(delayTicks); + if (!delayCmd.isEmpty()) { + pattern += QString(" .byt %1\n").arg(delayCmd); + } + } + + // Добавляем ноту с ее длительностью + QString noteStr = noteToPentlyNote(event.note); + int durationTicks = secondsToPentlyTicks(event.duration); + QString durationStr = ticksToDelayString(durationTicks); + + pattern += QString(" .byt %1|%2\n").arg(noteStr).arg(durationStr); + + lastTime = event.time + event.duration; + } + + return pattern; +} + +// ИСПРАВЛЕННЫЙ МЕТОД: Сохранение в музыкальный файл Pently +bool SimpleWavWriter::saveToMusicFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { + qDebug() << "Не удалось открыть файл для записи:" << filename; + return false; + } + + QTextStream out(&file); + out.setCodec("UTF-8"); + + // 1. Проверяем, есть ли данные для сохранения + int trackCount = 0; + QVector trackIndices; + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].events.isEmpty()) { + trackCount++; + trackIndices.append(i); + } + } + + if (trackCount == 0) { + out << "; Нет данных для сохранения\n"; + file.close(); + return false; + } + + qDebug() << "Сохранение музыки: найдено" << trackCount << "дорожек с данными"; + + // 2. Заголовок файла + out << "; Generated by Yamitracker\n"; + out << "; Date: " << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss") << "\n"; + out << "; Tracks: " << trackCount << "\n\n"; + + // 3. Таблица инструментов + out << "music_inst_table:\n"; + + // Карта преобразования инструментов GM в Pently + QMap pentlyInstruments = { + {1, "PLING_8"}, // Grand Piano + {2, "PLING_4"}, // Bright Piano + {3, "PLING_2"}, // Harpsichord + {6, "PLING_2"}, // Harpsichord 2 + + // Bass instruments + {28, "BASSGUITAR"}, + {33, "BASSGUITAR"}, + {39, "BASSGUITAR"}, + {40, "BASSGUITAR"}, + + // Guitar/Overdrive + {29, "XYLSHORT"}, + {37, "XYLSHORT"}, + {38, "XYLSHORT"}, + + // Strings + {48, "XYLMED"}, + {49, "XYLMED"}, + + // Sax/Horn + {81, "HORNBLAT"}, + + // Bright + {95, "XYLSHORT"}, + {96, "XYLSHORT"}, + {100, "XYLSHORT"} + }; + + // Карта параметров инструментов Pently (lv, rv, frq, smp, att, dec, sus, lvl) + QMap instrumentParams = { + {"PLING_8", " 3, 10, 1, 0, 31, 19, 15, 2"}, + {"PLING_4", " 7, 7, 1, 1, 31, 19, 15, 2"}, + {"PLING_2", " 9, 6, 1, 2, 31, 17, 15, 2"}, + {"BASSGUITAR", "12, 12, 1, 4, 31, 17, 15, 8"}, + {"BASSCLAR", "12, 12, 1, 2, 21, 21, 27, 4"}, + {"HORNBLAT", " 3, 9, 1, 0, 21, 21, 27, 4"}, + {"XYLSHORT", "10, 6, 1, 2, 31, 23, 20, 2"}, + {"XYLMED", "10, 6, 1, 2, 31, 19, 17, 2"}, + {"STRING", "10, 6, 1, 2, 31, 23, 20, 2"} + }; + + // Генерируем уникальные инструменты для каждой дорожки + QMap trackInstruments; + for (int trackIndex : trackIndices) { + int gmInstrument = tracks[trackIndex].instrument; + QString pentlyInst = pentlyInstruments.value(gmInstrument, "PLING_8"); + trackInstruments[trackIndex] = pentlyInst; + + QString params = instrumentParams.value(pentlyInst, "10, 10, 1, 1, 31, 17, 15, 8"); + out << " INST " << pentlyInst << "," << params << "\n"; + } + + out << "\n"; + + // 4. Таблица паттернов + out << "pently_patterns:\n"; + for (int trackIndex : trackIndices) { + out << " .addr PPDAT_track" << trackIndex << "\n"; + } + + // 5. Данные паттернов + for (int trackIndex : trackIndices) { + out << "\nPPDAT_track" << trackIndex << ":\n"; + QString patternData = generatePattern(trackIndex); + if (patternData.isEmpty()) { + out << " .byt PATEND\n"; + } else { + out << patternData; + out << " .byt PATEND\n"; + } + } + + // 6. Таблица песен (теперь только ОДНА песня) + out << "\npently_songs:\n"; + out << " .addr PSDAT_main_song\n\n"; + + // 7. Создаем ОДНУ главную песню, которая управляет всеми дорожками + out << "PSDAT_main_song:\n"; + + // Определяем общую длительность композиции + double maxDuration = 0; + for (int trackIndex : trackIndices) { + const Track& track = tracks[trackIndex]; + for (const NoteEvent &event : track.events) { + double endTime = event.time + event.duration; + if (endTime > maxDuration) { + maxDuration = endTime; + } + } + } + + int totalTicks = secondsToPentlyTicks(maxDuration); + if (totalTicks < 1) totalTicks = 100; // Минимальная длительность + + qDebug() << "Общая длительность:" << maxDuration << "секунд =" << totalTicks << "тиков"; + + // Устанавливаем темп + out << " setTempo 1000\n"; + + // Запускаем все паттерны одновременно + int channel = 0; + for (int trackIndex : trackIndices) { + QString instName = trackInstruments[trackIndex]; + out << QString(" playPat %1, %2, 23, %3\n") + .arg(channel).arg(trackIndex).arg(instName); + channel++; + } + + // Ждем полную длительность композиции + out << QString(" waitRows %1\n").arg(totalTicks); + + // Останавливаем все паттерны + for (int i = 0; i < channel; i++) { + out << QString(" stopPat %1\n").arg(i); + } + + // Зацикливаем + out << " dalSegno\n"; + + file.close(); + + qDebug() << "Музыкальный файл сохранен:" << filename; + qDebug() << "Треков:" << trackCount; + qDebug() << "Максимальная длительность:" << maxDuration << "сек"; + qDebug() << "В тиках:" << totalTicks; + + return true; +} + +QByteArray SimpleWavWriter::mixTracks(const QVector &trackIndices) +{ + // Находим максимальную длительность среди выбранных дорожек + double maxDuration = 0; + for (int trackIndex : trackIndices) { + if (trackIndex < 0 || trackIndex >= MAX_TRACKS) continue; + + const Track &track = tracks[trackIndex]; + for (const NoteEvent &event : track.events) { + double endTime = event.time + event.duration; + if (endTime > maxDuration) { + maxDuration = endTime; + } + } + } + + if (maxDuration <= 0) { + return QByteArray(); + } + + // Создаем буфер для микширования + int totalSamples = static_cast(maxDuration * format.sampleRate()); + QVector mixBuffer(totalSamples, 0); + + // Обрабатываем каждую дорожку + for (int trackIndex : trackIndices) { + if (trackIndex < 0 || trackIndex >= MAX_TRACKS) continue; + + const Track &track = tracks[trackIndex]; + double trackVolume = track.volume; + + // Обрабатываем каждое событие в дорожке + for (const NoteEvent &event : track.events) { + // Генерируем аудио для ноты + QByteArray noteAudio = generateNoteAudio( + event.note, + event.velocity, + event.duration, + event.instrument, + event.volume * trackVolume + ); + + // Вычисляем начальный сэмпл (на основе абсолютного времени) + int startSample = static_cast(event.time * format.sampleRate()); + const qint16 *noteData = reinterpret_cast(noteAudio.constData()); + int noteSamples = noteAudio.size() / sizeof(qint16); + + // Микшируем ноту в общий буфер + for (int i = 0; i < noteSamples && startSample + i < totalSamples; i++) { + // Прибавляем ноту к миксу + qint32 mixed = mixBuffer[startSample + i] + noteData[i]; + + // Ограничиваем значение для предотвращения клиппинга + if (mixed > 32767) mixed = 32767; + if (mixed < -32768) mixed = -32768; + + mixBuffer[startSample + i] = static_cast(mixed); + } + } + } + + // Конвертируем буфер в QByteArray + QByteArray result; + result.resize(totalSamples * sizeof(qint16)); + qint16 *resultData = reinterpret_cast(result.data()); + + for (int i = 0; i < totalSamples; i++) { + resultData[i] = mixBuffer[i]; + } + + return result; +} + +double SimpleWavWriter::noteToFrequency(int note) const +{ + // Формула для преобразования ноты в частоту + return 440.0 * pow(2.0, (note - 69) / 12.0); +} + +QByteArray SimpleWavWriter::generateSineWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double angularFreq = 2.0 * M_PI * frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double value = sin(angularFreq * t); + buffer[i] = static_cast(value * maxAmplitude); + } + + return data; +} + +QByteArray SimpleWavWriter::generateSquareWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double period = 1.0 / frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double phase = fmod(t, period) / period; + buffer[i] = static_cast((phase < 0.5 ? maxAmplitude : -maxAmplitude)); + } + + return data; +} + +QByteArray SimpleWavWriter::generateSawtoothWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double period = 1.0 / frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double phase = fmod(t, period) / period; + buffer[i] = static_cast((2.0 * phase - 1.0) * maxAmplitude); + } + + return data; +} + +QByteArray SimpleWavWriter::generateTriangleWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double period = 1.0 / frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double phase = fmod(t, period) / period; + double value; + + if (phase < 0.25) { + value = 4.0 * phase; + } else if (phase < 0.75) { + value = 2.0 - 4.0 * phase; + } else { + value = 4.0 * phase - 4.0; + } + + buffer[i] = static_cast(value * maxAmplitude); + } + + return data; +} + +QByteArray SimpleWavWriter::generateInstrumentWave(int instrument, double frequency, double duration, double amplitude) +{ + // Выбираем форму волны в зависимости от инструмента + static QMap waveTypes = { + {1, "sine"}, {2, "sine"}, // Piano + {3, "square"}, {6, "square"}, // Harpsichord + {28, "sawtooth"}, {33, "sawtooth"}, {39, "sawtooth"}, {40, "square"}, // Bass + {29, "square"}, {37, "square"}, {38, "square"}, // Guitar + {48, "sine"}, {49, "sine"}, // Strings + {81, "sine"}, // Sax + {95, "triangle"}, {96, "triangle"}, {100, "triangle"} // Bright + }; + + QString waveType = waveTypes.value(instrument, "sine"); + + if (waveType == "square") { + return generateSquareWave(frequency, duration, amplitude); + } else if (waveType == "sawtooth") { + return generateSawtoothWave(frequency, duration, amplitude); + } else if (waveType == "triangle") { + return generateTriangleWave(frequency, duration, amplitude); + } else { + return generateSineWave(frequency, duration, amplitude); + } +} + +QByteArray SimpleWavWriter::intToBytes(qint32 value) +{ + QByteArray bytes(4, 0); + bytes[0] = static_cast(value & 0xFF); + bytes[1] = static_cast((value >> 8) & 0xFF); + bytes[2] = static_cast((value >> 16) & 0xFF); + bytes[3] = static_cast((value >> 24) & 0xFF); + return bytes; +} + +QByteArray SimpleWavWriter::shortToBytes(qint16 value) +{ + QByteArray bytes(2, 0); + bytes[0] = static_cast(value & 0xFF); + bytes[1] = static_cast((value >> 8) & 0xFF); + return bytes; +} + +QString SimpleWavWriter::noteToPentlyNote(int note) const +{ + // Преобразуем MIDI номер ноты в формат Pently + // MIDI: 60 = C4, 61 = C#4, 62 = D4, и т.д. + + int octave = note / 12; + int noteInOctave = note % 12; + + // Базовые названия нот + QString noteName; + switch (noteInOctave) { + case 0: noteName = "N_C"; break; + case 1: noteName = "N_CS"; break; + case 2: noteName = "N_D"; break; + case 3: noteName = "N_DS"; break; + case 4: noteName = "N_E"; break; + case 5: noteName = "N_F"; break; + case 6: noteName = "N_FS"; break; + case 7: noteName = "N_G"; break; + case 8: noteName = "N_GS"; break; + case 9: noteName = "N_A"; break; + case 10: noteName = "N_AS"; break; + case 11: noteName = "N_B"; break; + } + + // Добавляем октаву + if (octave == 4) { + // Средняя октава (C4-B4) - без суффикса в Pently + return noteName; + } else if (octave == 5) { + // Высокая октава (C5-B5) - добавляем H + return noteName + "H"; + } else if (octave == 3) { + // Низкая октава (C3-B3) - добавляем суффикс октавы + return noteName + "|OCTAVE_1"; + } else if (octave == 2) { + // Очень низкая октава (C2-B2) - добавляем суффикс + return noteName + "L"; + } else if (octave == 6) { + // Очень высокая октава (C6+) - добавляем суффикс + return noteName + "H|OCTAVE_1"; + } + + // По умолчанию возвращаем базовое имя + return noteName; +} + +QString SimpleWavWriter::durationToPentlyDuration(double duration) const +{ + // Конвертируем длительность в секундах в формат Pently + int ticks = secondsToPentlyTicks(duration); + return ticksToDelayString(ticks); +} + +QString SimpleWavWriter::instrumentToPentlyInstrument(int instrument) const +{ + static QMap instMap = { + {1, "PLING_8"}, {2, "PLING_4"}, {3, "PLING_2"}, {6, "PLING_2"}, + {28, "BASSGUITAR"}, {33, "BASSGUITAR"}, {39, "BASSGUITAR"}, {40, "BASSGUITAR"}, + {29, "XYLSHORT"}, {37, "XYLSHORT"}, {38, "XYLSHORT"}, + {48, "XYLMED"}, {49, "XYLMED"}, {81, "HORNBLAT"}, + {95, "XYLSHORT"}, {96, "XYLSHORT"}, {100, "XYLSHORT"} + }; + + return instMap.value(instrument, "PLING_8"); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/format/simplewavwriter.h b/Yamitracker-reoload/Yamitracker6/Yamitracker/format/simplewavwriter.h new file mode 100644 index 0000000..fa6eb87 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/format/simplewavwriter.h @@ -0,0 +1,133 @@ +// simplewavwriter.h +#ifndef SIMPLEWAVWRITER_H +#define SIMPLEWAVWRITER_H + +#include +#include +#include +#include +#include +#include + +struct NoteEvent { + double time; // Время начала в секундах + int note; // Номер ноты (0-127) + int velocity; // Сила нажатия (0-127) + double duration; // Длительность в секундах + int instrument; // Номер инструмента + double volume; // Громкость ноты (0.0-1.0) + + NoteEvent(double t = 0, int n = 0, int v = 100, double d = 0, int i = 1, double vol = 1.0) + : time(t), note(n), velocity(v), duration(d), instrument(i), volume(vol) {} +}; + +class SimpleWavWriter : public QObject +{ + Q_OBJECT + +public: + static const int MAX_TRACKS = 7; // ИЗМЕНЕНО: было 16, стало 7 + static const int SAMPLE_RATE = 44100; // Улучшенное качество + static const int BIT_DEPTH = 16; + + explicit SimpleWavWriter(QObject *parent = nullptr); + + bool startRecording(int sampleRate = SAMPLE_RATE); + void stopRecording(); + bool isRecording() const { return recording; } + bool isPaused() const { return paused; } + void pauseRecording(); + void resumeRecording(); + + void addNote(int track, double time, int note, int velocity, double duration, int instrument = 1); + void clearTrack(int track); + void clearAllTracks(); + + bool saveToFile(const QString &filename); + bool saveToMusicFile(const QString &filename); + + // Работа с дорожками + QString getTrackName(int track) const; + void setTrackName(int track, const QString &name); + int getEventCount(int track) const; + int getTrackInstrument(int track) const; + void setTrackInstrument(int track, int instrument); + double getTrackVolume(int track) const; + void setTrackVolume(int track, double volume); + bool isTrackMuted(int track) const; + void muteTrack(int track, bool muted); + bool isTrackSolo(int track) const; + void soloTrack(int track, bool solo); + + // Работа с аудиоданными + QByteArray getTrackAudioData(int track, bool mix = false); + QByteArray getAllTracksAudioData(); + + // Загрузка/сохранение дорожек + bool loadWavToTrack(const QString &filename, int track); + void copyTrack(int fromTrack, int toTrack); + void mergeTrack(int fromTrack, int toTrack); + + // Эффекты и настройки + void setPlaybackSpeed(double speed); + void setBassVolumeMultiplier(double multiplier); + + // Генерация звука + QByteArray generateNoteAudio(int note, int velocity, double duration, int instrument, double volume = 1.0); + QByteArray generateSilence(double duration); + +signals: + void trackUpdated(int track); + void recordingStatusChanged(bool recording); + +private: + struct Track { + QString name; + QVector events; + int instrument; + double volume; + bool muted; + bool solo; + int index; // Добавляем индекс дорожки + + Track() : instrument(1), volume(1.0), muted(false), solo(false), index(0) { + } + + // Конструктор с индексом + Track(int idx) : instrument(1), volume(1.0), muted(false), solo(false), index(idx) { + name = QString("Дорожка %1").arg(idx + 1); + } + }; + + bool recording; + bool paused; + QVector tracks; + QAudioFormat format; + double playbackSpeed; + double bassVolumeMultiplier; + + void writeWavHeader(QFile &file, quint32 dataSize); + QByteArray mixTracks(const QVector &trackIndices); + double noteToFrequency(int note) const; + QByteArray generateSineWave(double frequency, double duration, double amplitude); + QByteArray generateSquareWave(double frequency, double duration, double amplitude); + QByteArray generateSawtoothWave(double frequency, double duration, double amplitude); + QByteArray generateTriangleWave(double frequency, double duration, double amplitude); + QByteArray generateInstrumentWave(int instrument, double frequency, double duration, double amplitude); + + // Инструменты для форматирования данных + QByteArray intToBytes(qint32 value); + QByteArray shortToBytes(qint16 value); + + // Форматирование для .s файла + QString noteToPentlyNote(int note) const; + QString durationToPentlyDuration(double duration) const; + QString instrumentToPentlyInstrument(int instrument) const; + + // НОВЫЕ МЕТОДЫ для конвертации в Pently формат + int secondsToPentlyTicks(double seconds) const; + QString ticksToDelayString(int ticks) const; + QString generatePattern(int trackIndex) const; +}; + +#endif // SIMPLEWAVWRITER_H \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/format/spcwriter.cpp b/Yamitracker-reoload/Yamitracker6/Yamitracker/format/spcwriter.cpp new file mode 100644 index 0000000..e69de29 diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/format/spcwriter.h b/Yamitracker-reoload/Yamitracker6/Yamitracker/format/spcwriter.h new file mode 100644 index 0000000..0337f79 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/format/spcwriter.h @@ -0,0 +1,9 @@ +#ifndef SPCWRITER_H +#define SPCWRITER_H + +#include + + + + +#endif diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/main.cpp b/Yamitracker-reoload/Yamitracker6/Yamitracker/main.cpp new file mode 100644 index 0000000..742d76f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/main.cpp @@ -0,0 +1,11 @@ +// main.cpp +#include "yamitracker.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + Yamitracker w; + w.show(); + return a.exec(); +} \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/other/Yamitracker.pro.user b/Yamitracker-reoload/Yamitracker6/Yamitracker/other/Yamitracker.pro.user new file mode 100644 index 0000000..e2d71b0 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/other/Yamitracker.pro.user @@ -0,0 +1,233 @@ + + + + + + EnvironmentId + {20954cb6-51c1-46d5-a200-1db750c36a2d} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + true + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + + Nim + + NimGlobal + + + 3 + UTF-8 + false + 4 + false + 0 + 80 + true + true + 1 + 0 + false + true + false + 2 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + false + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 4 + true + + + + true + + + + + + + 0 + + + + ProjectExplorer.Project.Target.0 + + Desktop + true + Desktop + Desktop + {598a2668-634b-454f-8fd8-38d3b4bb3b99} + 0 + 0 + 0 + + 0 + /home/soffti/progs/Yami/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop-Debug + /home/soffti/progs/Yami/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + + true + true + %{RunConfig:Executable:Path} + + 1 + 2 + + 1 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph dwarf,4096 -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + + true + true + %{RunConfig:Executable:Path} + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + Version + 22 + + diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/other/Yamitracker_ru_RU.ts b/Yamitracker-reoload/Yamitracker6/Yamitracker/other/Yamitracker_ru_RU.ts new file mode 100644 index 0000000..743f57f --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/other/Yamitracker_ru_RU.ts @@ -0,0 +1,3 @@ + + + diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/src/yamitracker.cpp b/Yamitracker-reoload/Yamitracker6/Yamitracker/src/yamitracker.cpp new file mode 100644 index 0000000..30b23ac --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/src/yamitracker.cpp @@ -0,0 +1,1724 @@ +#include "yamitracker.h" +#include "ui_yamitracker.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Глобальная переменная для управления громкостью баса +double bassVolumeMultiplier = 2.0; // Увеличение громкости баса в 2 раза + +// Инструменты басового типа для усиления громкости +QSet bassInstruments = { + 28, // FngrBass (Фингер-бас) + 33, // FngrBass (Фингер-бас) - другой тип + 39, // FngrBass (Фингер-бас) - еще тип + 40, // SlapBas (Слэп-бас) + 38, // DstGtr (Дисторшн-гитара) - тоже можно усилить + 29, // Ovrdrive (Овердрайв-гитара) + 37 // Ovrdrive (Овердрайв-гитара) - другой тип +}; + +void SerialReader::run() +{ + while (!shouldStop) { + int fd = open(currentDevice.toUtf8().constData(), O_RDWR | O_NOCTTY); + if (fd < 0) { + emit error(QString("Cannot open %1").arg(currentDevice)); + emit; connectionStatusChanged(false); + sleep(2); + continue; + } + + emit connectionStatusChanged(true); + + QString manufacturer = "Unknown"; + QString model = "Unknown"; + + if (currentDevice.contains("yamaha", Qt::CaseInsensitive) || + currentDevice.contains("psr", Qt::CaseInsensitive)) { + manufacturer = "Yamaha"; + model = "PSR Series"; + } else if (currentDevice.contains("dmmidi")) { + manufacturer = "Yamaha"; + model = "PSR-E333 (Direct MIDI)"; + } + + emit deviceInfoReceived(manufacturer, model); + + struct termios tty; + tcgetattr(fd, &tty); + cfsetospeed(&tty, B115200); + cfsetispeed(&tty, B115200); + tty.c_cflag |= (CLOCAL | CREAD | CS8); + tty.c_cc[VMIN] = 1; + tcsetattr(fd, TCSANOW, &tty); + + unsigned char byte; + while (!shouldStop && read(fd, &byte, 1) > 0) { + if (byte == 0xF8 || byte == 0xFE) { + continue; + } + + if (byte & 0x80) { + if ((byte & 0xF0) == 0x90) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + + if (velocity == 0) + emit noteOffReceived(hexNote); + else + emit noteOnReceived(hexNote, velocity); + } + } + else if ((byte & 0xF0) == 0x80) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + emit noteOffReceived(hexNote); + } + } + } + } + + close(fd); + emit connectionStatusChanged(false); + + if (!shouldStop) { + emit error(QString("Connection lost to %1. Attempting to reconnect...").arg(currentDevice)); + sleep(2); + } + } +} + +Yamitracker::Yamitracker(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::Yamitracker) + , serialReader(new SerialReader(this)) + , reconnectTimer(new QTimer(this)) + , isConnected(false) + , wavWriter(new SimpleWavWriter(this)) + , recordingStartTime(0) + , brrConverter(new BrrConverter(this)) + , audioPlayerProcess(new QProcess(this)) + , playbackSpeedSlider(nullptr) + , bassVolumeSlider(nullptr) + , speedLabel(nullptr) + , volumeLabel(nullptr) + , audioOutput(nullptr) + , audioBuffer(nullptr) + , playbackTimer(new QTimer(this)) + , isPlayingBack(false) + , currentPlaybackTrack(-1) + , currentTrack(0) + , globalRecordingStartTime(0) + , isGlobalRecording(false) +{ + ui->setupUi(this); + + deviceLabel = ui->deviceLabel; + refreshDevicesButton = ui->refreshDevicesButton; + midiFilesList = ui->midiFilesList; + instrumentComboBox = ui->instrumentComboBox; + trackComboBox = ui->trackComboBox; + + // Ищем элементы в UI + playbackSpeedSlider = findChild("playbackSpeedSlider"); + bassVolumeSlider = findChild("bassVolumeSlider"); + speedLabel = findChild("speedLabel"); + volumeLabel = findChild("volumeLabel"); + + // Настраиваем слайдеры, если они найдены + if (playbackSpeedSlider) { + playbackSpeedSlider->setRange(50, 200); // 50% - 200% + playbackSpeedSlider->setValue(100); // 100% по умолчанию + playbackSpeedSlider->setTickInterval(10); + playbackSpeedSlider->setTickPosition(QSlider::TicksBelow); + } + + if (bassVolumeSlider) { + bassVolumeSlider->setRange(100, 400); // 100% - 400% + bassVolumeSlider->setValue(200); // 200% по умолчанию + bassVolumeSlider->setTickInterval(50); + bassVolumeSlider->setTickPosition(QSlider::TicksBelow); + } + + // Инициализируем дорожки + initializeTracks(); + initializeTrackControls(); + + // Обновляем метки + updateSpeedLabel(); + updateVolumeLabel(); + updateTrackInfo(); + + // Подключаем сигналы + if (playbackSpeedSlider) { + connect(playbackSpeedSlider, &QSlider::valueChanged, this, &Yamitracker::onPlaybackSpeedChanged); + } + if (bassVolumeSlider) { + connect(bassVolumeSlider, &QSlider::valueChanged, this, &Yamitracker::onBassVolumeChanged); + } + + // Заполняем комбобокс инструментами + QList instrumentIds = instruments.keys(); + std::sort(instrumentIds.begin(), instrumentIds.end()); + for (int id : instrumentIds) { + QString instrumentName = instruments[id]; + // Добавляем пометку для басовых инструментов + if (bassInstruments.contains(id)) { + instrumentName += " [БАС - усилено]"; + } + instrumentComboBox->addItem(QString("%1: %2").arg(id).arg(instrumentName), id); + } + + initializeKeyButtons(); + initializeDeviceDetection(); + + // Подключаем сигналы серийного порта + connect(serialReader, &SerialReader::noteOnReceived, this, &Yamitracker::onNoteOnReceived); + connect(serialReader, &SerialReader::noteOffReceived, this, &Yamitracker::onNoteOffReceived); + connect(serialReader, &SerialReader::error, this, &Yamitracker::onError); + connect(serialReader, &SerialReader::connectionStatusChanged, this, &Yamitracker::onConnectionStatusChanged); + connect(serialReader, &SerialReader::deviceInfoReceived, this, &Yamitracker::onDeviceInfoReceived); + + // Подключаем кнопки управления записью + connect(ui->playButton, &QPushButton::clicked, this, &Yamitracker::onPlayClicked); + connect(ui->pauseButton, &QPushButton::clicked, this, &Yamitracker::onPauseClicked); + connect(ui->stopButton, &QPushButton::clicked, this, &Yamitracker::onStopClicked); + connect(ui->convertButton, &QPushButton::clicked, this, &Yamitracker::onConvertToBrrClicked); + connect(refreshDevicesButton, &QPushButton::clicked, this, &Yamitracker::onRefreshDevicesClicked); + connect(ui->loadMidiButton, &QPushButton::clicked, this, &Yamitracker::onLoadMidiFileClicked); + connect(ui->selectFileButton, &QPushButton::clicked, this, &Yamitracker::onSelectFileForConversion); + connect(ui->playFileButton, &QPushButton::clicked, this, &Yamitracker::onSelectFileForPlayback); + connect(ui->saveRecordingButton, &QPushButton::clicked, this, &Yamitracker::onSaveRecordingClicked); + connect(ui->playMidiButton, &QPushButton::clicked, this, &Yamitracker::onPlayMidiFileClicked); + connect(ui->recordFromMidiButton, &QPushButton::clicked, this, &Yamitracker::onRecordFromMidiFile); + connect(midiFilesList, &QListWidget::itemSelectionChanged, this, &Yamitracker::onSelectedMidiFileChanged); + connect(ui->saveMusicButton, &QPushButton::clicked, this, &Yamitracker::onSaveMusicFileClicked); + connect(ui->addTrackButton, &QPushButton::clicked, this, &Yamitracker::onAddTrackClicked); + connect(ui->removeTrackButton, &QPushButton::clicked, this, &Yamitracker::onRemoveTrackClicked); + connect(ui->clearTrackButton, &QPushButton::clicked, this, &Yamitracker::onClearTrackClicked); + connect(trackComboBox, QOverload::of(&QComboBox::currentIndexChanged), this, &Yamitracker::onCurrentTrackChanged); + + // Подключаем новые кнопки + connect(ui->playTrackButton, &QPushButton::clicked, this, &Yamitracker::onPlayTrackClicked); + connect(ui->playAllButton, &QPushButton::clicked, this, &Yamitracker::onPlayAllTracksClicked); + connect(ui->stopPlaybackButton, &QPushButton::clicked, this, &Yamitracker::onStopPlaybackClicked); + connect(ui->loadWavButton, &QPushButton::clicked, this, &Yamitracker::onLoadWavToTrackClicked); + connect(ui->copyTrackButton, &QPushButton::clicked, this, &Yamitracker::onCopyTrackClicked); + connect(ui->mergeTrackButton, &QPushButton::clicked, this, &Yamitracker::onMergeTracksClicked); + + // Подключаем сигналы от wavWriter + connect(wavWriter, &SimpleWavWriter::trackUpdated, this, [this](int track) { + if (track == currentTrack) { + updateTrackInfo(); + } + }); + + connect(wavWriter, &SimpleWavWriter::recordingStatusChanged, this, [this](bool recording) { + if (recording) { + ui->statusLabel->setText("Запись активна"); + ui->playButton->setEnabled(false); + ui->stopButton->setEnabled(true); + ui->pauseButton->setEnabled(true); + } else { + ui->statusLabel->setText("Запись остановлена"); + ui->playButton->setEnabled(true); + ui->stopButton->setEnabled(false); + ui->pauseButton->setEnabled(false); + ui->pauseButton->setText("⏸ Пауза"); + } + }); + + connect(reconnectTimer, &QTimer::timeout, this, &Yamitracker::attemptReconnect); + reconnectTimer->start(5000); + + connect(audioPlayerProcess, QOverload::of(&QProcess::finished), + this, [this](int exitCode, QProcess::ExitStatus exitStatus) { + Q_UNUSED(exitCode); + if (exitStatus == QProcess::NormalExit) { + ui->statusLabel->setText("Воспроизведение завершено"); + } + }); + + // Подключаем таймер воспроизведения + connect(playbackTimer, &QTimer::timeout, this, &Yamitracker::onPlaybackFinished); + + // ОБНОВЛЕННЫЙ СТИЛЬ - черный текст на белом фоне для панели управления дорожками + // Остальные элементы остаются с белым текстом на темном фоне + setStyleSheet( + "QMainWindow { background-color: #2b2b2b; }" + "QLabel { color: #ffffff; font-size: 14px; font-weight: bold; }" + "QGroupBox { color: #ffffff; font-weight: bold; border: 2px solid #555; border-radius: 5px; margin-top: 10px; }" + "QGroupBox::title { color: #ffffff; subcontrol-origin: margin; left: 10px; padding: 0 5px 0 5px; }" + "QPushButton { background-color: #4a4a4a; color: #ffffff; border: 1px solid #555; border-radius: 3px; padding: 5px; font-weight: bold; }" + "QPushButton:hover { background-color: #5a5a5a; }" + "QPushButton:pressed { background-color: #3a3a3a; }" + "QPushButton[whiteKey=true] { background-color: white; color: black; border: 1px solid #ccc; font-size: 8pt; }" + "QPushButton[whiteKey=true]:pressed { background-color: #ff4444; color: white; }" + "QPushButton[blackKey=true] { background-color: black; color: white; font-size: 7pt; }" + "QPushButton[blackKey=true]:pressed { background-color: #ff4444; }" + "QProgressBar { border: 1px solid #555; background: #333; color: white; }" + "QProgressBar::chunk { background: #4CAF50; }" + "QListWidget { background-color: #333; color: #ffffff; border: 1px solid #555; selection-background-color: #555; }" + "QComboBox { background-color: #333; color: #ffffff; border: 1px solid #555; padding: 5px; }" + "QComboBox QAbstractItemView { background-color: #333; color: #ffffff; selection-background-color: #555; }" + "QComboBox::drop-down { border: none; }" + "QComboBox::down-arrow { image: none; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid white; }" + "QSlider::groove:horizontal { border: 1px solid #555; height: 8px; background: #333; margin: 2px 0; }" + "QSlider::handle:horizontal { background: #4CAF50; border: 1px solid #5f5f5f; width: 18px; margin: -2px 0; border-radius: 3px; }" + "QLineEdit { background-color: #ffffff; color: #000000; border: 1px solid #555; padding: 3px; }" // Изменено: белый фон, черный текст + "QCheckBox { color: #ffffff; }" + "QCheckBox::indicator { width: 16px; height: 16px; }" + // Стили для панели управления дорожками + "QScrollArea { background-color: white; }" + "QScrollArea QGroupBox { background-color: white; color: #000000; border: 2px solid #aaa; }" + "QScrollArea QGroupBox::title { color: #000000; }" + "QScrollArea QLabel { color: #000000; }" + "QScrollArea QComboBox { background-color: white; color: #000000; border: 1px solid #aaa; }" + "QScrollArea QComboBox QAbstractItemView { background-color: white; color: #000000; selection-background-color: #ddd; }" + "QScrollArea QPushButton { background-color: #e0e0e0; color: #000000; border: 1px solid #aaa; }" + "QScrollArea QPushButton:hover { background-color: #d0d0d0; }" + "QScrollArea QPushButton:pressed { background-color: #b0b0b0; }" + "QScrollArea QSlider::groove:horizontal { border: 1px solid #aaa; height: 8px; background: #ddd; }" + "QScrollArea QSlider::handle:horizontal { background: #4CAF50; border: 1px solid #5f5f5f; }" + ); + + QTimer::singleShot(1000, this, &Yamitracker::autoDetectAndConnect); + setWindowTitle("Yamaha PSR-E333 Monitor - Multitrack Recording"); + + // Сканируем MIDI файлы при запуске + scanMidiFiles(); + + // Информация о басовых инструментах + qDebug() << "Бас-инструменты усилены в" << bassVolumeMultiplier << "раз"; + qDebug() << "Бас-инструменты: FngrBass(28,33,39), SlapBas(40), Ovrdrive(29,37), DstGtr(38)"; +} + +void Yamitracker::initializeTracks() +{ + trackComboBox->clear(); + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { // Используем MAX_TRACKS + QString trackName = wavWriter->getTrackName(i); + trackComboBox->addItem(trackName, i); + } + trackComboBox->setCurrentIndex(0); + currentTrack = 0; +} + +void Yamitracker::initializeTrackControls() +{ + // Получаем ScrollArea для управления дорожками + QScrollArea* scrollArea = findChild("scrollArea"); + if (!scrollArea) return; + + QWidget* scrollContent = new QWidget(); + QVBoxLayout* tracksLayout = new QVBoxLayout(scrollContent); + + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + QGroupBox* trackGroup = new QGroupBox(QString("Дорожка %1").arg(i + 1), scrollContent); + trackGroup->setProperty("trackIndex", i); + + QHBoxLayout* trackLayout = new QHBoxLayout(trackGroup); + + // Название дорожки + QLineEdit* nameEdit = new QLineEdit(wavWriter->getTrackName(i), trackGroup); + nameEdit->setProperty("trackIndex", i); + nameEdit->setObjectName(QString("trackNameEdit_%1").arg(i)); + nameEdit->setMaximumWidth(150); + connect(nameEdit, &QLineEdit::textChanged, this, &Yamitracker::onTrackNameChanged); + trackNameEdits.append(nameEdit); + + // Инструмент дорожки + QComboBox* instrumentBox = new QComboBox(trackGroup); + instrumentBox->setProperty("trackIndex", i); + instrumentBox->setObjectName(QString("trackInstrumentBox_%1").arg(i)); + instrumentBox->setMaximumWidth(150); + + QList instrumentIds = instruments.keys(); + std::sort(instrumentIds.begin(), instrumentIds.end()); + for (int id : instrumentIds) { + QString instrumentName = instruments[id]; + if (bassInstruments.contains(id)) { + instrumentName += " [БАС]"; + } + instrumentBox->addItem(instrumentName, id); + } + + // Устанавливаем текущий инструмент + int currentInstrument = wavWriter->getTrackInstrument(i); + int index = instrumentBox->findData(currentInstrument); + if (index >= 0) { + instrumentBox->setCurrentIndex(index); + } + + connect(instrumentBox, QOverload::of(&QComboBox::currentIndexChanged), + this, &Yamitracker::onTrackInstrumentChanged); + trackInstrumentComboBoxes.append(instrumentBox); + + // Громкость + QSlider* volumeSlider = new QSlider(Qt::Horizontal, trackGroup); + volumeSlider->setProperty("trackIndex", i); + volumeSlider->setObjectName(QString("trackVolumeSlider_%1").arg(i)); + volumeSlider->setRange(0, 200); + volumeSlider->setValue(static_cast(wavWriter->getTrackVolume(i) * 100)); + volumeSlider->setMaximumWidth(100); + connect(volumeSlider, &QSlider::valueChanged, this, &Yamitracker::onTrackVolumeChanged); + trackVolumeSliders.append(volumeSlider); + + QLabel* volumeLabel = new QLabel(QString("%1%").arg(volumeSlider->value()), trackGroup); + volumeLabel->setProperty("trackIndex", i); + volumeLabel->setObjectName(QString("trackVolumeLabel_%1").arg(i)); + volumeLabel->setMaximumWidth(40); + + // Кнопка Mute + QPushButton* muteButton = new QPushButton(wavWriter->isTrackMuted(i) ? "🔇" : "🔊", trackGroup); + muteButton->setProperty("trackIndex", i); + muteButton->setObjectName(QString("trackMuteButton_%1").arg(i)); + muteButton->setMaximumWidth(40); + connect(muteButton, &QPushButton::clicked, this, &Yamitracker::onMuteTrackClicked); + trackMuteButtons.append(muteButton); + + // Кнопка Solo + QPushButton* soloButton = new QPushButton("🎧", trackGroup); + soloButton->setProperty("trackIndex", i); + soloButton->setObjectName(QString("trackSoloButton_%1").arg(i)); + soloButton->setMaximumWidth(40); + connect(soloButton, &QPushButton::clicked, this, &Yamitracker::onSoloTrackClicked); + trackSoloButtons.append(soloButton); + + // Информация о дорожке + QLabel* infoLabel = new QLabel(QString("%1 нот").arg(wavWriter->getEventCount(i)), trackGroup); + infoLabel->setProperty("trackIndex", i); + infoLabel->setObjectName(QString("trackInfoLabel_%1").arg(i)); + + // Кнопка выбора для одновременного воспроизведения + QCheckBox* selectCheck = new QCheckBox("Воспр.", trackGroup); + selectCheck->setProperty("trackIndex", i); + selectCheck->setObjectName(QString("trackSelectCheck_%1").arg(i)); + selectCheck->setChecked(true); + + // Добавляем элементы в layout + trackLayout->addWidget(new QLabel("Название:", trackGroup)); + trackLayout->addWidget(nameEdit); + trackLayout->addWidget(new QLabel("Инструмент:", trackGroup)); + trackLayout->addWidget(instrumentBox); + trackLayout->addWidget(new QLabel("Громкость:", trackGroup)); + trackLayout->addWidget(volumeSlider); + trackLayout->addWidget(volumeLabel); + trackLayout->addWidget(muteButton); + trackLayout->addWidget(soloButton); + trackLayout->addWidget(selectCheck); + trackLayout->addWidget(infoLabel); + + tracksLayout->addWidget(trackGroup); + } + + // Добавляем растягивающийся спейсер в конец + tracksLayout->addStretch(); + + scrollArea->setWidget(scrollContent); + scrollArea->setWidgetResizable(true); +} + +void Yamitracker::updateTrackControls() +{ + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i < trackNameEdits.size()) { + trackNameEdits[i]->setText(wavWriter->getTrackName(i)); + } + + if (i < trackInstrumentComboBoxes.size()) { + int currentInstrument = wavWriter->getTrackInstrument(i); + int index = trackInstrumentComboBoxes[i]->findData(currentInstrument); + if (index >= 0) { + trackInstrumentComboBoxes[i]->setCurrentIndex(index); + } + } + + if (i < trackVolumeSliders.size()) { + trackVolumeSliders[i]->setValue(static_cast(wavWriter->getTrackVolume(i) * 100)); + } + + if (i < trackMuteButtons.size()) { + trackMuteButtons[i]->setText(wavWriter->isTrackMuted(i) ? "🔇" : "🔊"); + } + + if (i < trackSoloButtons.size()) { + // Обновляем текст кнопки solo при необходимости + } + + // Обновляем информацию о дорожке + QLabel* infoLabel = findChild(QString("trackInfoLabel_%1").arg(i)); + if (infoLabel) { + infoLabel->setText(QString("%1 нот").arg(wavWriter->getEventCount(i))); + } + + // Обновляем метку громкости + QLabel* volumeLabel = findChild(QString("trackVolumeLabel_%1").arg(i)); + if (volumeLabel) { + volumeLabel->setText(QString("%1%").arg(trackVolumeSliders[i]->value())); + } + } +} + +void Yamitracker::updateTrackInfo() +{ + int eventCount = wavWriter->getEventCount(currentTrack); + QString trackName = wavWriter->getTrackName(currentTrack); + ui->trackInfoLabel->setText(QString("%1: %2 нот").arg(trackName).arg(eventCount)); +} + +void Yamitracker::onCurrentTrackChanged(int index) +{ + currentTrack = trackComboBox->itemData(index).toInt(); + updateTrackInfo(); +} + +void Yamitracker::onPlaybackSpeedChanged(int value) +{ + double speedPercent = value / 100.0; + wavWriter->setPlaybackSpeed(speedPercent); + updateSpeedLabel(); +} + +void Yamitracker::onBassVolumeChanged(int value) +{ + double volumeMultiplier = value / 100.0; + wavWriter->setBassVolumeMultiplier(volumeMultiplier); + bassVolumeMultiplier = volumeMultiplier; + updateVolumeLabel(); +} + +void Yamitracker::updateSpeedLabel() +{ + if (speedLabel && playbackSpeedSlider) { + int speed = playbackSpeedSlider->value(); + speedLabel->setText(QString("Скорость: %1%").arg(speed)); + } +} + +void Yamitracker::updateVolumeLabel() +{ + if (volumeLabel && bassVolumeSlider) { + int volume = bassVolumeSlider->value(); + volumeLabel->setText(QString("Бас: %1%").arg(volume)); + } +} + +void Yamitracker::onSaveMusicFileClicked() +{ + QString defaultName = "music_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".s"; + QString filename = QFileDialog::getSaveFileName(this, "Сохранить музыкальный файл", defaultName, "ASM файлы (*.s);;Все файлы (*)"); + + if (!filename.isEmpty()) { + saveMusicFile(filename); + } +} + +void Yamitracker::saveMusicFile(const QString &filename) +{ + if (wavWriter->saveToMusicFile(filename)) { + ui->statusLabel->setText(QString("Музыкальный файл сохранен: %1").arg(filename)); + + // Показываем информацию о сохраненном файле + QFileInfo fileInfo(filename); + QString info = QString("Музыкальный файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Pently-style assembler") + .arg(filename) + .arg(fileInfo.size()); + QMessageBox::information(this, "Файл сохранен", info); + + // Открываем файл для просмотра + QDesktopServices::openUrl(QUrl::fromLocalFile(filename)); + } else { + ui->statusLabel->setText("Ошибка сохранения музыкального файла"); + QMessageBox::warning(this, "Ошибка", "Не удалось сохранить музыкальный файл"); + } +} + +void Yamitracker::onAddTrackClicked() +{ + // Создаем новую дорожку + int newTrack = -1; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (wavWriter->getEventCount(i) == 0 && wavWriter->getTrackName(i).startsWith("Дорожка")) { + newTrack = i; + break; + } + } + + if (newTrack == -1) { + QMessageBox::warning(this, "Ошибка", "Достигнуто максимальное количество дорожек"); + return; + } + + // Устанавливаем название новой дорожки + QString newName = QString("Дорожка %1").arg(newTrack + 1); + wavWriter->setTrackName(newTrack, newName); + + // Переключаемся на новую дорожку + trackComboBox->setCurrentIndex(newTrack); + currentTrack = newTrack; + + ui->statusLabel->setText(QString("Создана новая дорожка %1").arg(newTrack + 1)); + updateTrackControls(); + updateTrackInfo(); +} + +void Yamitracker::onRemoveTrackClicked() +{ + if (wavWriter->getEventCount(currentTrack) == 0) { + QMessageBox::warning(this, "Ошибка", "Дорожка уже пуста"); + return; + } + + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Удаление дорожки", + QString("Вы уверены, что хотите удалить дорожку %1?\nВсе данные будут потеряны.") + .arg(currentTrack + 1), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + wavWriter->clearTrack(currentTrack); + ui->statusLabel->setText(QString("Дорожка %1 очищена").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onClearTrackClicked() +{ + if (wavWriter->getEventCount(currentTrack) == 0) { + ui->statusLabel->setText("Дорожка уже пуста"); + return; + } + + wavWriter->clearTrack(currentTrack); + ui->statusLabel->setText(QString("Дорожка %1 очищена").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); +} + +void Yamitracker::onPlayTrackClicked() +{ + playTrack(currentTrack); +} + +void Yamitracker::onPlayAllTracksClicked() +{ + playAllTracks(); +} + +void Yamitracker::onStopPlaybackClicked() +{ + stopPlayback(); +} + +void Yamitracker::playTrack(int track) +{ + if (isPlayingBack) { + stopPlayback(); + } + + QByteArray audioData = wavWriter->getTrackAudioData(track, false); + if (audioData.isEmpty()) { + ui->statusLabel->setText(QString("Дорожка %1 пуста").arg(track + 1)); + return; + } + + // Настраиваем аудиовыход с высоким качеством + QAudioFormat format; + format.setSampleRate(44100); // Высокое качество + format.setChannelCount(2); // Стерео + format.setSampleSize(16); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(format)) { + format = info.nearestFormat(format); + } + + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + } + if (audioBuffer) { + delete audioBuffer; + } + + audioOutput = new QAudioOutput(format, this); + + // Конвертируем моно в стерео для лучшего качества + QByteArray stereoData = convertMonoToStereo(audioData); + audioBuffer = new QBuffer(this); + audioBuffer->setData(stereoData); + audioBuffer->open(QIODevice::ReadOnly); + + connect(audioOutput, &QAudioOutput::stateChanged, this, &Yamitracker::handleAudioStateChanged); + + currentPlaybackTrack = track; + isPlayingBack = true; + ui->statusLabel->setText(QString("Воспроизведение дорожки %1...").arg(track + 1)); + + audioOutput->start(audioBuffer); + + // Запускаем таймер для отслеживания завершения воспроизведения + playbackTimer->start(100); +} + +void Yamitracker::playAllTracks() +{ + if (isPlayingBack) { + stopPlayback(); + } + + // Получаем аудиоданные всех дорожек (уже микшированные) + QByteArray audioData = wavWriter->getAllTracksAudioData(); + if (audioData.isEmpty()) { + ui->statusLabel->setText("Нет данных для воспроизведения"); + return; + } + + // Настраиваем аудиовыход с высоким качеством + QAudioFormat format; + format.setSampleRate(44100); // Высокое качество + format.setChannelCount(2); // Стерео + format.setSampleSize(16); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(format)) { + format = info.nearestFormat(format); + } + + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + } + if (audioBuffer) { + delete audioBuffer; + } + + audioOutput = new QAudioOutput(format, this); + + // Конвертируем моно в стерео для лучшего качества + QByteArray stereoData = convertMonoToStereo(audioData); + audioBuffer = new QBuffer(this); + audioBuffer->setData(stereoData); + audioBuffer->open(QIODevice::ReadOnly); + + connect(audioOutput, &QAudioOutput::stateChanged, this, &Yamitracker::handleAudioStateChanged); + + currentPlaybackTrack = -1; // Все дорожки + isPlayingBack = true; + + // Получаем количество активных дорожек + int activeTracks = 0; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (!wavWriter->isTrackMuted(i) && wavWriter->getEventCount(i) > 0) { + activeTracks++; + } + } + + ui->statusLabel->setText(QString("Воспроизведение всех дорожек (%1 активных)...").arg(activeTracks)); + + audioOutput->start(audioBuffer); + + // Запускаем таймер для отслеживания завершения воспроизведения + playbackTimer->start(100); +} + +QByteArray Yamitracker::mixSelectedTracks(const QVector &trackIndices) +{ + // Создаем временный WAV writer для микширования + SimpleWavWriter tempWriter; + + // Копируем данные из выбранных дорожек + for (int trackIndex : trackIndices) { + // Копируем события из оригинальной дорожки + // Здесь нужно добавить логику копирования событий + // Временно используем getAllTracksAudioData + } + + return wavWriter->getAllTracksAudioData(); +} + +QByteArray Yamitracker::convertMonoToStereo(const QByteArray &monoData) +{ + // Конвертируем моно 16-битные данные в стерео + const qint16 *monoSamples = reinterpret_cast(monoData.constData()); + int monoCount = monoData.size() / sizeof(qint16); + + QByteArray stereoData(monoCount * 2 * sizeof(qint16), 0); + qint16 *stereoSamples = reinterpret_cast(stereoData.data()); + + for (int i = 0; i < monoCount; i++) { + stereoSamples[i * 2] = monoSamples[i]; // Левый канал + stereoSamples[i * 2 + 1] = monoSamples[i]; // Правый канал + } + + return stereoData; +} + +void Yamitracker::stopPlayback() +{ + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + audioOutput = nullptr; + } + + if (audioBuffer) { + audioBuffer->close(); + delete audioBuffer; + audioBuffer = nullptr; + } + + isPlayingBack = false; + currentPlaybackTrack = -1; + ui->statusLabel->setText("Воспроизведение остановлено"); + playbackTimer->stop(); +} + +void Yamitracker::handleAudioStateChanged(QAudio::State state) +{ + switch (state) { + case QAudio::IdleState: + // Воспроизведение завершено + onPlaybackFinished(); + break; + case QAudio::StoppedState: + if (audioOutput && audioOutput->error() != QAudio::NoError) { + ui->statusLabel->setText("Ошибка воспроизведения"); + } + break; + default: + break; + } +} + +void Yamitracker::onPlaybackFinished() +{ + isPlayingBack = false; + + if (currentPlaybackTrack >= 0) { + ui->statusLabel->setText(QString("Воспроизведение дорожки %1 завершено").arg(currentPlaybackTrack + 1)); + } else if (currentPlaybackTrack == -1) { + ui->statusLabel->setText("Воспроизведение всех дорожек завершено"); + } else { + ui->statusLabel->setText("Воспроизведение завершено"); + } + + currentPlaybackTrack = -1; + playbackTimer->stop(); +} + +void Yamitracker::onLoadWavToTrackClicked() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + if (wavWriter->loadWavToTrack(filename, currentTrack)) { + ui->statusLabel->setText(QString("WAV файл загружен в дорожку %1").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); + } else { + ui->statusLabel->setText("Ошибка загрузки WAV файла"); + } + } +} + +void Yamitracker::onCopyTrackClicked() +{ + bool ok; + int targetTrack = QInputDialog::getInt(this, "Копирование дорожки", + "Введите номер целевой дорожки (1-7):", + currentTrack + 1, 1, 7, 1, &ok); + + if (ok && targetTrack - 1 != currentTrack) { + wavWriter->copyTrack(currentTrack, targetTrack - 1); + ui->statusLabel->setText(QString("Дорожка %1 скопирована в дорожку %2") + .arg(currentTrack + 1).arg(targetTrack)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onMergeTracksClicked() +{ + bool ok; + int targetTrack = QInputDialog::getInt(this, "Объединение дорожек", + "Введите номер дорожки для объединения (1-7):", + currentTrack + 1, 1, 7, 1, &ok); + + if (ok && targetTrack - 1 != currentTrack) { + wavWriter->mergeTrack(currentTrack, targetTrack - 1); + ui->statusLabel->setText(QString("Дорожка %1 объединена с дорожкой %2") + .arg(currentTrack + 1).arg(targetTrack)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onMuteTrackClicked() +{ + QPushButton* button = qobject_cast(sender()); + if (!button) return; + + int track = button->property("trackIndex").toInt(); + bool muted = wavWriter->isTrackMuted(track); + wavWriter->muteTrack(track, !muted); + + button->setText(!muted ? "🔇" : "🔊"); + ui->statusLabel->setText(QString("Дорожка %1 %2") + .arg(track + 1) + .arg(!muted ? "заглушена" : "включена")); +} + +void Yamitracker::onSoloTrackClicked() +{ + QPushButton* button = qobject_cast(sender()); + if (!button) return; + + int soloTrack = button->property("trackIndex").toInt(); + + // Выключаем все дорожки кроме выбранной + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + wavWriter->muteTrack(i, i != soloTrack); + if (i < trackMuteButtons.size()) { + trackMuteButtons[i]->setText(i == soloTrack ? "🔊" : "🔇"); + } + } + + ui->statusLabel->setText(QString("Только дорожка %1 воспроизводится").arg(soloTrack + 1)); +} + +void Yamitracker::onTrackVolumeChanged(int value) +{ + QSlider* slider = qobject_cast(sender()); + if (!slider) return; + + int track = slider->property("trackIndex").toInt(); + wavWriter->setTrackVolume(track, value / 100.0); + + // Обновляем метку громкости + QLabel* volumeLabel = findChild(QString("trackVolumeLabel_%1").arg(track)); + if (volumeLabel) { + volumeLabel->setText(QString("%1%").arg(value)); + } +} + +void Yamitracker::onTrackNameChanged() +{ + QLineEdit* edit = qobject_cast(sender()); + if (!edit) return; + + int track = edit->property("trackIndex").toInt(); + wavWriter->setTrackName(track, edit->text()); + + // Обновляем комбобокс дорожек + if (track == currentTrack) { + trackComboBox->setItemText(trackComboBox->currentIndex(), edit->text()); + } +} + +void Yamitracker::onTrackInstrumentChanged(int index) +{ + QComboBox* combo = qobject_cast(sender()); + if (!combo) return; + + int track = combo->property("trackIndex").toInt(); + int instrument = combo->itemData(index).toInt(); + wavWriter->setTrackInstrument(track, instrument); + + ui->statusLabel->setText(QString("Инструмент дорожки %1 изменен на %2") + .arg(track + 1) + .arg(instruments.value(instrument, "Неизвестный"))); +} + +void Yamitracker::initializeKeyButtons() +{ + QList whiteKeys = { + ui->key_C1, ui->key_D1, ui->key_E1, ui->key_F1, ui->key_G1, ui->key_A1, ui->key_B1, + ui->key_C2, ui->key_D2, ui->key_E2, ui->key_F2, ui->key_G2, ui->key_A2, ui->key_B2, + ui->key_C3, ui->key_D3, ui->key_E3, ui->key_F3, ui->key_G3, ui->key_A3, ui->key_B3, + ui->key_C4, ui->key_D4, ui->key_E4, ui->key_F4, ui->key_G4, ui->key_A4, ui->key_B4, + ui->key_C5, ui->key_D5, ui->key_E5, ui->key_F5, ui->key_G5, ui->key_A5, ui->key_B5, + ui->key_C6 + }; + + for (QPushButton *key : whiteKeys) { + key->setProperty("whiteKey", true); + keyButtons[key->text()] = key; + } + + QList blackKeys = { + ui->key_Cs1, ui->key_Ds1, ui->key_Fs1, ui->key_Gs1, ui->key_As1, + ui->key_Cs2, ui->key_Ds2, ui->key_Fs2, ui->key_Gs2, ui->key_As2, + ui->key_Cs3, ui->key_Ds3, ui->key_Fs3, ui->key_Gs3, ui->key_As3, + ui->key_Cs4, ui->key_Ds4, ui->key_Fs4, ui->key_Gs4, ui->key_As4, + ui->key_Cs5, ui->key_Ds5, ui->key_Fs5, ui->key_Gs5, ui->key_As5 + }; + + for (QPushButton *key : blackKeys) { + key->setProperty("blackKey", true); + keyButtons[key->text()] = key; + } +} + +QString Yamitracker::getInstrumentName(int program) +{ + return instruments.contains(program) ? instruments[program] : QString("Unknown (%1)").arg(program); +} + +void Yamitracker::onNoteOnReceived(const QString &data, int velocity) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.insert(note); + highlightKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + int volume = (velocity * 100) / 127; + ui->volumeBar->setValue(volume); + + if (isGlobalRecording) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - globalRecordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + noteStartTimes[data] = currentTime; + + // Записываем начало ноты в текущую дорожку с относительным временем + int currentInstrument = instrumentComboBox->currentData().toInt(); + wavWriter->addNote(currentTrack, currentTime, noteNumber, velocity, 0.1, currentInstrument); + + // Обновляем информацию о дорожке + updateTrackInfo(); + updateTrackControls(); + } + } +} + +void Yamitracker::onNoteOffReceived(const QString &data) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.remove(note); + clearKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + if (currentlyPressedKeys.isEmpty()) { + ui->volumeBar->setValue(0); + } + + if (isGlobalRecording && noteStartTimes.contains(data)) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - globalRecordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + double noteStartTime = noteStartTimes[data]; + double duration = currentTime - noteStartTime; + + int noteVelocity = 100; + + // Обновляем длительность ноты (в реальном приложении нужно обновлять существующую ноту) + int currentInstrument = instrumentComboBox->currentData().toInt(); + wavWriter->addNote(currentTrack, noteStartTime, noteNumber, noteVelocity, duration, currentInstrument); + + noteStartTimes.remove(data); + + // Обновляем информацию о дорожке + updateTrackInfo(); + updateTrackControls(); + } + } +} + +void Yamitracker::onConnectionStatusChanged(bool connected) +{ + isConnected = connected; + if (connected) { + ui->statusLabel->setText("Статус: Подключено к синтезатору"); + } else { + ui->statusLabel->setText("Статус: Отключено (переподключение...)"); + } +} + +void Yamitracker::attemptReconnect() +{ + if (!isConnected && (!serialReader || !serialReader->isRunning())) { + qDebug() << "Attempting to reconnect..."; + startSerialReader(); + } +} + +void Yamitracker::onError(const QString &message) +{ + // НЕ показываем всплывающее окно с ошибкой подключения + // Просто обновляем статус в строке состояния + ui->statusLabel->setText("Ошибка: " + message); + + // Показываем окно только для критических ошибок (не связанных с подключением) + if (!message.contains("Cannot open", Qt::CaseInsensitive) && + !message.contains("Connection lost", Qt::CaseInsensitive) && + !message.contains("reconnect", Qt::CaseInsensitive)) { + QMessageBox::warning(this, "Ошибка", message); + } +} + +void Yamitracker::onPlayClicked() +{ + // Получаем выбранный инструмент + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Запись с синтезатора [БАС x%1]...").arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText("Запись с синтезатора..."); + } + + noteStartTimes.clear(); + currentlyPressedKeys.clear(); + clearAllHighlights(); + + // Если это первая запись в сессии, начинаем глобальную запись + if (!isGlobalRecording) { + globalRecordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + isGlobalRecording = true; + qDebug() << "Начало глобальной записи. Все дорожки будут синхронизированы."; + } + + // Начинаем запись с высоким качеством + if (wavWriter->startRecording(44100)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started WAV recording from synthesizer, track:" << currentTrack + << "sample rate: 44100, instrument:" << currentInstrument; + if (isBassInstrument) { + qDebug() << "Bass instrument detected - volume will be increased"; + } + + // Активируем кнопку паузы + ui->pauseButton->setEnabled(true); + } +} + +void Yamitracker::onPauseClicked() +{ + if (wavWriter->isRecording()) { + if (wavWriter->isPaused()) { + wavWriter->resumeRecording(); + ui->statusLabel->setText("Запись возобновлена..."); + ui->pauseButton->setText("⏸ Пауза"); + } else { + wavWriter->pauseRecording(); + ui->statusLabel->setText("Запись приостановлена"); + ui->pauseButton->setText("▶ Продолжить"); + } + } +} + +void Yamitracker::onStopClicked() +{ + ui->statusLabel->setText("Запись остановлена"); + + clearAllHighlights(); + currentlyPressedKeys.clear(); + ui->keysInfoLabel->setText("Нажато клавиш: 0"); + ui->volumeBar->setValue(0); + + if (wavWriter->isRecording()) { + wavWriter->stopRecording(); + + // Деактивируем кнопку паузы + ui->pauseButton->setEnabled(false); + ui->pauseButton->setText("⏸ Пауза"); + + // Предлагаем сохранить запись, если это последняя дорожка + bool hasMoreTracks = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i != currentTrack && wavWriter->getEventCount(i) == 0) { + hasMoreTracks = true; + break; + } + } + + if (!hasMoreTracks) { + onSaveRecordingClicked(); + } + } + + noteStartTimes.clear(); +} + +void Yamitracker::onSaveRecordingClicked() +{ + QString defaultName = "recording_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".wav"; + QString filename = QFileDialog::getSaveFileName(this, "Сохранить запись", defaultName, "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + saveWavFile(filename); + + // Сбрасываем глобальную запись + isGlobalRecording = false; + globalRecordingStartTime = 0; + } +} + +void Yamitracker::saveWavFile(const QString &filename) +{ + // Проверяем, есть ли данные для сохранения + bool hasData = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (wavWriter->getEventCount(i) > 0) { + hasData = true; + break; + } + } + + if (!hasData) { + QMessageBox::warning(this, "Ошибка", + "Нет данных для сохранения. Запишите хотя бы одну ноту на любой дорожке."); + return; + } + + if (wavWriter->saveToFile(filename)) { + lastRecordedWavFile = filename; + ui->statusLabel->setText(QString("Сохранено: %1").arg(filename)); + + // Показываем информацию о сохраненном файле + QFileInfo fileInfo(filename); + QString info = QString("WAV файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: 44100 Гц, 16 бит, моно\n" + "Все дорожки микшированы для параллельного воспроизведения") + .arg(filename) + .arg(fileInfo.size()); + QMessageBox::information(this, "Файл сохранен", info); + + // Активируем кнопку конвертации + ui->convertButton->setEnabled(true); + ui->saveMusicButton->setEnabled(true); + + // Предлагаем воспроизвести файл + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Запись завершена", + QString("WAV файл сохранен:\n%1\n\nВоспроизвести файл?").arg(filename), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + playWavExternal(lastRecordedWavFile); + } + } else { + ui->statusLabel->setText("Ошибка сохранения WAV файла"); + QMessageBox::warning(this, "Ошибка", + "Не удалось сохранить WAV файл. Возможно:\n" + "1. Нет данных для записи\n" + "2. Недостаточно прав для записи\n" + "3. Диск переполнен"); + } +} + +void Yamitracker::onConvertToBrrClicked() +{ + if (lastRecordedWavFile.isEmpty() || !QFile::exists(lastRecordedWavFile)) { + onSelectFileForConversion(); + return; + } + + QString baseName = QFileInfo(lastRecordedWavFile).completeBaseName(); + QString brrFile = QFileDialog::getSaveFileName(this, "Сохранить BRR файл", baseName + ".brr", "BRR файлы (*.brr)"); + + if (brrFile.isEmpty()) return; + + ui->statusLabel->setText("Конвертация WAV -> BRR..."); + QApplication::processEvents(); + + if (brrConverter->convertWavToBrr(lastRecordedWavFile, brrFile)) { + ui->statusLabel->setText(QString("Конвертация завершена: %1").arg(brrFile)); + + QFileInfo brrInfo(brrFile); + if (brrInfo.exists()) { + QString info = QString("BRR файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Nintendo SNES ADPCM") + .arg(brrFile) + .arg(brrInfo.size()); + QMessageBox::information(this, "Конвертация завершена", info); + } + } else { + ui->statusLabel->setText("Ошибка конвертации WAV -> BRR"); + QMessageBox::warning(this, "Ошибка", "Не удалось преобразовать WAV в BRR формат"); + } +} + +void Yamitracker::onSelectFileForConversion() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл для конвертации", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + lastRecordedWavFile = filename; + onConvertToBrrClicked(); + } +} + +void Yamitracker::onSelectFileForPlayback() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл для воспроизведения", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + playWavExternal(filename); + } +} + +void Yamitracker::playWavExternal(const QString &wavFile) +{ + QStringList players = { + "aplay", "paplay", "play", "ffplay" + }; + + QString player; + + for (const QString &p : players) { + QProcess checkProcess; + checkProcess.start("which", QStringList() << p); + checkProcess.waitForFinished(); + if (checkProcess.exitCode() == 0) { + player = p; + break; + } + } + + if (player.isEmpty()) { + QMessageBox::warning(this, "Воспроизведение", + "Не найден аудиоплеер. Установите один из:\n" + "aplay, paplay, sox или ffmpeg"); + return; + } + + ui->statusLabel->setText("Воспроизведение WAV файла..."); + + audioPlayerProcess->start(player, QStringList() << wavFile); + + if (!audioPlayerProcess->waitForStarted(3000)) { + ui->statusLabel->setText("Не удалось запустить аудиоплеер"); + QMessageBox::warning(this, "Ошибка", + QString("Не удалось запустить %1. Убедитесь, что он установлен.").arg(player)); + } +} + +void Yamitracker::scanMidiFiles() +{ + QDir currentDir = QDir::current(); + QStringList filters; + filters << "*.txt"; + QStringList files = currentDir.entryList(filters, QDir::Files); + + midiFilesList->clear(); + for (const QString &file : files) { + // Проверяем, является ли файл MIDI логом + if (file.contains("midi_log_") || + file.contains("CrandPno") || + file.contains("BritePno") || + file.contains("Harpsi") || + file.contains("FngrBass") || + file.contains("Ovrdrive") || + file.contains("Bright")) { + + QFileInfo fileInfo(file); + QListWidgetItem *item = new QListWidgetItem(fileInfo.fileName()); + item->setData(Qt::UserRole, fileInfo.absoluteFilePath()); + midiFilesList->addItem(item); + } + } + + if (midiFilesList->count() == 0) { + QListWidgetItem *item = new QListWidgetItem("MIDI файлы не найдены"); + item->setFlags(item->flags() & ~Qt::ItemIsSelectable); + midiFilesList->addItem(item); + } +} + +void Yamitracker::onLoadMidiFileClicked() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите MIDI лог файл", "", "Текстовые файлы (*.txt);;Все файлы (*)"); + + if (!filename.isEmpty()) { + loadMidiFile(filename); + } +} + +void Yamitracker::loadMidiFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QMessageBox::warning(this, "Ошибка", "Не удалось открыть файл: " + filename); + return; + } + + QTextStream in(&file); + QString content = in.readAll(); + file.close(); + + currentMidiFilePath = filename; + parseMidiLog(content); + + ui->statusLabel->setText(QString("Загружен файл: %1").arg(QFileInfo(filename).fileName())); +} + +void Yamitracker::parseMidiLog(const QString &content) +{ + QStringList lines = content.split('\n'); + int program = 1; // По умолчанию + + for (const QString &line : lines) { + if (line.contains("PROGRAM_CHANGE: Program=")) { + // Извлекаем номер программы + QRegularExpression re("Program=(\\d+)"); + QRegularExpressionMatch match = re.match(line); + if (match.hasMatch()) { + program = match.captured(1).toInt(); + // Обновляем выбранный инструмент в комбобоксе + int index = instrumentComboBox->findData(program); + if (index >= 0) { + instrumentComboBox->setCurrentIndex(index); + } + } + } + } + + // Показываем информацию о загруженном файле + QString info = QString("Файл загружен\nИнструмент: %1\nСтрок: %2") + .arg(getInstrumentName(program)) + .arg(lines.count()); + + QMessageBox::information(this, "MIDI файл загружен", info); +} + +void Yamitracker::onPlayMidiFileClicked() +{ + if (currentMidiFilePath.isEmpty()) { + QMessageBox::information(this, "Воспроизведение", "Сначала загрузите MIDI файл"); + return; + } + + // Проверяем, является ли инструмент басовым + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Симуляция MIDI файла [БАС x%1]...").arg(bassVolumeMultiplier)); + QApplication::processEvents(); + + QMessageBox::information(this, "Симуляция MIDI (БАС)", + QString("Симуляция воспроизведения MIDI файла с БАС-инструментом:\n" + "Файл: %1\n" + "Инструмент: %2\n" + "Громкость усилена в %3 раза\n\n" + "В реальной версии бас будет звучать громче.") + .arg(QFileInfo(currentMidiFilePath).fileName()) + .arg(getInstrumentName(currentInstrument)) + .arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText("Симуляция MIDI файла..."); + QApplication::processEvents(); + + QMessageBox::information(this, "Симуляция MIDI", + QString("Симуляция воспроизведения MIDI файла:\n%1\n\nВ реальной версии здесь будет воспроизведение нот.") + .arg(QFileInfo(currentMidiFilePath).fileName())); + } + + ui->statusLabel->setText("Симуляция завершена"); +} + +void Yamitracker::simulateNote(int note, int velocity, double duration) +{ + if (wavWriter->isRecording()) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + wavWriter->addNote(currentTrack, currentTime, note, velocity, duration); + } +} + +void Yamitracker::onSelectedMidiFileChanged() +{ + QList selectedItems = midiFilesList->selectedItems(); + if (!selectedItems.isEmpty()) { + QString filePath = selectedItems.first()->data(Qt::UserRole).toString(); + loadMidiFile(filePath); + } +} + +void Yamitracker::onRecordFromMidiFile() +{ + if (currentMidiFilePath.isEmpty()) { + QMessageBox::information(this, "Запись", "Сначала загрузите MIDI файл"); + return; + } + + // Получаем выбранный инструмент + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Запись из MIDI файла [БАС x%1]...").arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText(QString("Запись из MIDI файла [Инструмент: %1]...").arg(getInstrumentName(currentInstrument))); + } + + // Если это первая запись в сессии, начинаем глобальную запись + if (!isGlobalRecording) { + globalRecordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + isGlobalRecording = true; + } + + // Начинаем запись с высоким качеством + if (wavWriter->startRecording(44100)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started WAV recording from MIDI file, instrument:" << currentInstrument << "track:" << currentTrack; + + // Генерируем мелодию в зависимости от инструмента + generateInstrumentMelody(currentInstrument); + + wavWriter->stopRecording(); + + // Предлагаем сохранить, если это последняя дорожка + bool hasMoreTracks = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i != currentTrack && wavWriter->getEventCount(i) == 0) { + hasMoreTracks = true; + break; + } + } + + if (!hasMoreTracks) { + onSaveRecordingClicked(); + } + } +} + +void Yamitracker::generateInstrumentMelody(int instrument) +{ + double volumeMultiplier = bassInstruments.contains(instrument) ? bassVolumeMultiplier : 1.0; + + // Время относительно глобального начала записи + double currentGlobalTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - globalRecordingStartTime; + + // Разные мелодии для разных инструментов + switch (instrument) { + case 1: // CrandPno (Гранд-пианино) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 1.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.5, 64, 80 * volumeMultiplier, 0.5, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 67, 90 * volumeMultiplier, 1.0, instrument); // G4 + wavWriter->addNote(currentTrack, currentGlobalTime + 2.0, 72, 100 * volumeMultiplier, 1.0, instrument); // C5 + break; + + case 2: // BritePno (Яркое пианино) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 0.3, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.1, 64, 90 * volumeMultiplier, 0.3, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.2, 67, 80 * volumeMultiplier, 0.3, instrument); // G4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 72, 100 * volumeMultiplier, 0.5, instrument); // C5 + break; + + case 3: // Harpsi (Клавесин) + case 6: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 0.1, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.1, 62, 90 * volumeMultiplier, 0.1, instrument); // D4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.2, 64, 100 * volumeMultiplier, 0.1, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 65, 90 * volumeMultiplier, 0.1, instrument); // F4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.4, 67, 100 * volumeMultiplier, 0.2, instrument); // G4 + break; + + case 28: // FngrBass (Фингер-бас) + case 33: + case 39: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 36, 120 * volumeMultiplier, 1.0, instrument); // C2 (бас) + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 40, 100 * volumeMultiplier, 0.5, instrument); // E2 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.5, 43, 110 * volumeMultiplier, 1.0, instrument); // G2 + wavWriter->addNote(currentTrack, currentGlobalTime + 2.5, 48, 100 * volumeMultiplier, 0.5, instrument); // C3 + break; + + case 40: // SlapBas (Слэп-бас) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 36, 150 * volumeMultiplier, 0.2, instrument); // C2 (щелчок) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 40, 120 * volumeMultiplier, 0.3, instrument); // E2 (пул) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.7, 43, 140 * volumeMultiplier, 0.2, instrument); // G2 (щелчок) + break; + + case 29: // Ovrdrive (Овердрайв-гитара) + case 37: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 40, 100 * volumeMultiplier, 1.5, instrument); // E2 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.5, 43, 90 * volumeMultiplier, 1.0, instrument); // G2 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 45, 100 * volumeMultiplier, 0.5, instrument); // A2 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.5, 47, 110 * volumeMultiplier, 1.0, instrument); // B2 + break; + + case 48: // String (Струнные) + case 49: // SlowStr (Медленные струнные) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 80 * volumeMultiplier, 2.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.5, 64, 70 * volumeMultiplier, 1.5, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 67, 75 * volumeMultiplier, 2.0, instrument); // G4 + break; + + case 81: // LeadSx (Саксофон) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 65, 90 * volumeMultiplier, 1.5, instrument); // F4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 67, 85 * volumeMultiplier, 0.5, instrument); // G4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.8, 69, 95 * volumeMultiplier, 2.0, instrument); // A4 + break; + + case 95: // Bright (Яркий звук) + case 96: + case 100: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 72, 100 * volumeMultiplier, 0.2, instrument); // C5 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.2, 76, 90 * volumeMultiplier, 0.2, instrument); // E5 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.4, 79, 100 * volumeMultiplier, 0.2, instrument); // G5 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.6, 84, 110 * volumeMultiplier, 0.3, instrument); // C6 + break; + + default: + // Стандартная мелодия для неизвестных инструментов + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 1.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 64, 80 * volumeMultiplier, 1.0, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 2.0, 67, 90 * volumeMultiplier, 1.0, instrument); // G4 + break; + } +} + +void Yamitracker::highlightKey(const QString ¬e) +{ + if (keyButtons.contains(note)) { + QPushButton *key = keyButtons[note]; + key->setStyleSheet("background-color: #ff4444; color: white; border: 2px solid red;"); + } +} + +void Yamitracker::clearKey(const QString ¬e) +{ + if (!keyButtons.contains(note)) return; + QPushButton *key = keyButtons[note]; + if (key->property("whiteKey").toBool()) + key->setStyleSheet("background-color: white; color: black; border: 1px solid #ccc;"); + else + key->setStyleSheet("background-color: black; color: white;"); +} + +void Yamitracker::clearAllHighlights() +{ + for (auto i = keyButtons.begin(); i != keyButtons.end(); ++i) { + clearKey(i.key()); + } +} + +void Yamitracker::clearStatusMessage() +{ + ui->statusLabel->setText("Статус: Готов"); +} + +void Yamitracker::initializeDeviceDetection() +{ + deviceLabel->setText("Устройство: Поиск..."); +} + +void Yamitracker::autoDetectAndConnect() +{ + QString device = "/dev/dmmidi1"; + serialReader->setDevice(device); + deviceLabel->setText(QString("Устройство: %1").arg(device)); + qDebug() << "Using device:" << device; + + startSerialReader(); +} + +void Yamitracker::onDeviceInfoReceived(const QString &manufacturer, const QString &model) +{ + deviceLabel->setText(QString("Устройство: %1 %2").arg(manufacturer, model)); + + setWindowTitle(QString("Yamitracker - %1 %2").arg(manufacturer, model)); +} + +void Yamitracker::onRefreshDevicesClicked() +{ + deviceLabel->setText("Устройство: Обновление..."); + + autoDetectAndConnect(); +} + +void Yamitracker::startSerialReader() +{ + if (serialReader && !serialReader->isRunning()) { + serialReader->start(); + } +} + +Yamitracker::~Yamitracker() +{ + stopPlayback(); + + if (serialReader) { + serialReader->stop(); + if (serialReader->isRunning()) { + serialReader->terminate(); + serialReader->wait(); + } + } + + delete ui; +} diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/src/yamitracker.h b/Yamitracker-reoload/Yamitracker6/Yamitracker/src/yamitracker.h new file mode 100644 index 0000000..c1273ec --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/src/yamitracker.h @@ -0,0 +1,209 @@ +// yamitracker.h +#ifndef YAMITRACKER_H +#define YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "simplewavwriter.h" +#include "brrconverter.h" + +QT_BEGIN_NAMESPACE +namespace Ui { class Yamitracker; } +QT_END_NAMESPACE + +class SerialReader : public QThread +{ + Q_OBJECT + +public: + SerialReader(QObject *parent = nullptr) : QThread(parent), shouldStop(false) {} + void setDevice(const QString &device) { currentDevice = device; } + void stop() { shouldStop = true; } + +signals: + void noteOnReceived(const QString &data, int velocity); + void noteOffReceived(const QString &data); + void error(const QString &message); + void connectionStatusChanged(bool connected); + void deviceInfoReceived(const QString &manufacturer, const QString &model); + +protected: + void run() override; + +private: + QString currentDevice; + bool shouldStop; +}; + +class Yamitracker : public QMainWindow +{ + Q_OBJECT + +public: + Yamitracker(QWidget *parent = nullptr); + ~Yamitracker(); + +private slots: + // Основные слоты + void onPlayClicked(); + void onPauseClicked(); + void onStopClicked(); + void onSaveRecordingClicked(); + void onConvertToBrrClicked(); + void onSaveMusicFileClicked(); + + // Слоты для устройств и MIDI + void onRefreshDevicesClicked(); + void onLoadMidiFileClicked(); + void onPlayMidiFileClicked(); + void onRecordFromMidiFile(); + void onSelectedMidiFileChanged(); + + // Слоты для файлов + void onSelectFileForConversion(); + void onSelectFileForPlayback(); + + // Слоты для клавиш и устройств + void onNoteOnReceived(const QString &data, int velocity); + void onNoteOffReceived(const QString &data); + void onConnectionStatusChanged(bool connected); + void onError(const QString &message); + void onDeviceInfoReceived(const QString &manufacturer, const QString &model); + + // Слоты для управления дорожками + void onCurrentTrackChanged(int index); + void onAddTrackClicked(); + void onRemoveTrackClicked(); + void onClearTrackClicked(); + void onCopyTrackClicked(); + void onMergeTracksClicked(); + void onLoadWavToTrackClicked(); + + // Слоты для воспроизведения + void onPlayTrackClicked(); + void onPlayAllTracksClicked(); + void onStopPlaybackClicked(); + void onPlaybackFinished(); + + // Слоты для управления элементами дорожек + void onMuteTrackClicked(); + void onSoloTrackClicked(); + void onTrackVolumeChanged(int value); + void onTrackNameChanged(); + void onTrackInstrumentChanged(int index); + + // Слоты для эффектов + void onPlaybackSpeedChanged(int value); + void onBassVolumeChanged(int value); + + // Вспомогательные слоты + void attemptReconnect(); + void handleAudioStateChanged(QAudio::State state); + void clearStatusMessage(); + +private: + Ui::Yamitracker *ui; + SerialReader *serialReader; + QTimer *reconnectTimer; + bool isConnected; + SimpleWavWriter *wavWriter; + double recordingStartTime; + BrrConverter *brrConverter; + QProcess *audioPlayerProcess; + QTimer *playbackTimer; + + // Элементы UI + QSlider *playbackSpeedSlider; + QSlider *bassVolumeSlider; + QLabel *speedLabel; + QLabel *volumeLabel; + QLabel *deviceLabel; + QPushButton *refreshDevicesButton; + QListWidget *midiFilesList; + QComboBox *instrumentComboBox; + QComboBox *trackComboBox; + + // Аудио воспроизведение + QAudioOutput *audioOutput; + QBuffer *audioBuffer; + bool isPlayingBack; + int currentPlaybackTrack; + int currentTrack; + + // Данные + QString lastRecordedWavFile; + QString currentMidiFilePath; + QHash keyButtons; + QSet currentlyPressedKeys; + QHash noteStartTimes; + + // Управление дорожками + QVector trackNameEdits; + QVector trackInstrumentComboBoxes; + QVector trackVolumeSliders; + QVector trackVolumeLabels; + QVector trackMuteButtons; + QVector trackSoloButtons; + + // Вспомогательные методы + void initializeTracks(); + void initializeTrackControls(); + void updateTrackControls(); + void updateTrackInfo(); + void updateSpeedLabel(); + void updateVolumeLabel(); + + void initializeKeyButtons(); + void initializeDeviceDetection(); + void autoDetectAndConnect(); + void startSerialReader(); + + void highlightKey(const QString ¬e); + void clearKey(const QString ¬e); + void clearAllHighlights(); + + void scanMidiFiles(); + void loadMidiFile(const QString &filename); + void parseMidiLog(const QString &content); + void generateInstrumentMelody(int instrument); + void simulateNote(int note, int velocity, double duration); + + void saveWavFile(const QString &filename); + void saveMusicFile(const QString &filename); + void playWavExternal(const QString &wavFile); + void playTrack(int track); + void playAllTracks(); + void stopPlayback(); + + QByteArray mixSelectedTracks(const QVector &trackIndices); + QByteArray convertMonoToStereo(const QByteArray &monoData); + + QString getInstrumentName(int program); + + // Карта инструментов + QMap instruments = { + {1, "CrandPno"}, {2, "BritePno"}, {3, "Harpsi"}, {6, "Harpsi2"}, + {28, "FngrBass"}, {33, "FngrBass2"}, {39, "FngrBass3"}, {40, "SlapBas"}, + {29, "Ovrdrive"}, {37, "Ovrdrive2"}, {38, "DstGtr"}, + {48, "String"}, {49, "SlowStr"}, {81, "LeadSx"}, + {95, "Bright"}, {96, "Bright2"}, {100, "Bright3"} + }; + + // Флаг для отслеживания относительного времени записи + double globalRecordingStartTime; + bool isGlobalRecording; +}; + +#endif // YAMITRACKER_H \ No newline at end of file diff --git a/Yamitracker-reoload/Yamitracker6/Yamitracker/ui/yamitracker.ui b/Yamitracker-reoload/Yamitracker6/Yamitracker/ui/yamitracker.ui new file mode 100644 index 0000000..c447570 --- /dev/null +++ b/Yamitracker-reoload/Yamitracker6/Yamitracker/ui/yamitracker.ui @@ -0,0 +1,1000 @@ + + + Yamitracker + + + + 0 + 0 + 1400 + 1000 + + + + Yamaha PSR-E333 Monitor - Multitrack Recording + + + + + + + + + Статус: Готов + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Устройство: Не подключено + + + + + + + + + + + Нажато клавиш: 0 + + + + + + + 0 + + + + + + + + + Управление записью + + + + + + ▶ Запись с синтезатора + + + + + + + ⏸ Пауза + + + false + + + + + + + ⏹ Стоп + + + + + + + 💾 Сохранить запись + + + + + + + 🔄 Конвертировать в BRR + + + + + + + 🎵 Сохранить музыку (Pently) + + + + + + + + + + Управление воспроизведением + + + + + + ▶ Текущая дорожка + + + + + + + ▶▶ Все дорожки + + + + + + + ⏹ Стоп воспроизведение + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 📂 Загрузить WAV в дорожку + + + + + + + + + + Управление дорожками + + + + + + Текущая дорожка: + + + + + + + + + + ➕ Новая дорожка + + + + + + + 🗑 Удалить дорожку + + + + + + + 🗑 Очистить дорожку + + + + + + + 📋 Копировать дорожку + + + + + + + 🔀 Объединить дорожки + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Дорожка 1: 0 нот + + + + + + + + + + true + + + + + 0 + 0 + 1380 + 300 + + + + + + + Панель управления дорожками: + + + + + + + + + + + Работа с MIDI файлами + + + + + + + + Инструмент: + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Скорость: 100% + + + + + + + Qt::Horizontal + + + 50 + + + 200 + + + 100 + + + + + + + Бас: 200% + + + + + + + Qt::Horizontal + + + 100 + + + 400 + + + 200 + + + + + + + 🔃 Обновить устройства + + + + + + + + + + + 📂 Загрузить MIDI файл + + + + + + + ▶ Воспроизвести MIDI + + + + + + + ● Записать из MIDI + + + + + + + 📁 Выбрать файл для конвертации + + + + + + + ▶ Воспроизвести WAV + + + + + + + + + Доступные MIDI файлы: + + + + + + + + + + + + + + + + + + + C1 + + + + + + + D1 + + + + + + + E1 + + + + + + + F1 + + + + + + + G1 + + + + + + + A1 + + + + + + + B1 + + + + + + + C2 + + + + + + + D2 + + + + + + + E2 + + + + + + + F2 + + + + + + + G2 + + + + + + + A2 + + + + + + + B2 + + + + + + + C3 + + + + + + + D3 + + + + + + + E3 + + + + + + + F3 + + + + + + + G3 + + + + + + + A3 + + + + + + + B3 + + + + + + + C4 + + + + + + + D4 + + + + + + + E4 + + + + + + + F4 + + + + + + + G4 + + + + + + + A4 + + + + + + + B4 + + + + + + + C5 + + + + + + + D5 + + + + + + + E5 + + + + + + + F5 + + + + + + + G5 + + + + + + + A5 + + + + + + + B5 + + + + + + + C6 + + + + + + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#1 + + + + + + + D#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#1 + + + + + + + G#1 + + + + + + + A#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#2 + + + + + + + D#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#2 + + + + + + + G#2 + + + + + + + A#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#3 + + + + + + + D#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#3 + + + + + + + G#3 + + + + + + + A#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#4 + + + + + + + D#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#4 + + + + + + + G#4 + + + + + + + A#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#5 + + + + + + + D#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#5 + + + + + + + G#5 + + + + + + + A#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerMY/Yamitracker/.gitignore b/Yamitracker-reoload/YamitrackerMY/Yamitracker/.gitignore new file mode 100644 index 0000000..aa3808c --- /dev/null +++ b/Yamitracker-reoload/YamitrackerMY/Yamitracker/.gitignore @@ -0,0 +1,82 @@ +# This file is used to ignore files which are generated +# ---------------------------------------------------------------------------- + +*~ +*.autosave +*.a +*.core +*.moc +*.o +*.obj +*.orig +*.rej +*.so +*.so.* +*_pch.h.cpp +*_resource.rc +*.qm +.#* +*.*# +core +!core/ +tags +.DS_Store +.directory +*.debug +Makefile* +*.prl +*.app +moc_*.cpp +ui_*.h +qrc_*.cpp +Thumbs.db +*.res +*.rc +/.qmake.cache +/.qmake.stash + +# qtcreator generated files +*.pro.user* +*.qbs.user* +CMakeLists.txt.user* + +# xemacs temporary files +*.flc + +# Vim temporary files +.*.swp + +# Visual Studio generated files +*.ib_pdb_index +*.idb +*.ilk +*.pdb +*.sln +*.suo +*.vcproj +*vcproj.*.*.user +*.ncb +*.sdf +*.opensdf +*.vcxproj +*vcxproj.* + +# MinGW generated files +*.Debug +*.Release + +# Python byte code +*.pyc + +# Binaries +# -------- +*.dll +*.exe + +# Directories with generated files +.moc/ +.obj/ +.pch/ +.rcc/ +.uic/ +/build*/ diff --git a/Yamitracker-reoload/YamitrackerMY/Yamitracker/Yamitracker.pro b/Yamitracker-reoload/YamitrackerMY/Yamitracker/Yamitracker.pro new file mode 100644 index 0000000..8a4cb2a --- /dev/null +++ b/Yamitracker-reoload/YamitrackerMY/Yamitracker/Yamitracker.pro @@ -0,0 +1,47 @@ +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +QT += core gui widgets multimedia + +CONFIG += c++17 + +# You can make your code fail to compile if it uses deprecated APIs. +# In order to do so, uncomment the following line. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +PROJECT_ROOT = $$PWD +BUILD_ROOT = $$PROJECT_ROOT/build + + +DESTDIR = /$$BUILD_ROOT/BIN +OBJECTS_DIR = /$$BUILD_ROOT/obj +RCC_DIR = /$$BUILD_ROOT/rcc +MOC_DIR = /$$BUILD_ROOT/moc +UI_DIR = /$$BUILD_ROOT/ui + + +SOURCES += \ + main.cpp \ + format/wavformat/simplewavwriter.cpp \ + format/brrformat/brrconverter.cpp \ + src/yamitracker.cpp + +HEADERS += \ + format/brrformat/brrconverter.h \ + format/wavformat/simplewavwriter.h \ + src/yamitracker.h + +FORMS += \ + ui/yamitracker.ui + + +INCLUDEPATH += format/brrformat +INCLUDEPATH += format/wavformat +INCLUDEPATH += ui +INCLUDEPATH += src + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target diff --git a/Yamitracker-reoload/YamitrackerMY/Yamitracker/format/brrformat/brrconverter.cpp b/Yamitracker-reoload/YamitrackerMY/Yamitracker/format/brrformat/brrconverter.cpp new file mode 100644 index 0000000..e69de29 diff --git a/Yamitracker-reoload/YamitrackerMY/Yamitracker/format/brrformat/brrconverter.h b/Yamitracker-reoload/YamitrackerMY/Yamitracker/format/brrformat/brrconverter.h new file mode 100644 index 0000000..e69de29 diff --git a/Yamitracker-reoload/YamitrackerMY/Yamitracker/format/wavformat/simplewavwriter.cpp b/Yamitracker-reoload/YamitrackerMY/Yamitracker/format/wavformat/simplewavwriter.cpp new file mode 100644 index 0000000..ce3af78 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerMY/Yamitracker/format/wavformat/simplewavwriter.cpp @@ -0,0 +1,3 @@ +#include "simplewavwriter.h" + +simplewavwriter::simplewavwriter() {} diff --git a/Yamitracker-reoload/YamitrackerMY/Yamitracker/format/wavformat/simplewavwriter.h b/Yamitracker-reoload/YamitrackerMY/Yamitracker/format/wavformat/simplewavwriter.h new file mode 100644 index 0000000..20cc10b --- /dev/null +++ b/Yamitracker-reoload/YamitrackerMY/Yamitracker/format/wavformat/simplewavwriter.h @@ -0,0 +1,10 @@ +#ifndef SIMPLEWAVWRITER_H +#define SIMPLEWAVWRITER_H + +class simplewavwriter +{ +public: + simplewavwriter(); +}; + +#endif // SIMPLEWAVWRITER_H diff --git a/Yamitracker-reoload/YamitrackerMY/Yamitracker/main.cpp b/Yamitracker-reoload/YamitrackerMY/Yamitracker/main.cpp new file mode 100644 index 0000000..a2c8a50 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerMY/Yamitracker/main.cpp @@ -0,0 +1,11 @@ +#include "yamitracker.h" + +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + yamitracker w; + w.show(); + return a.exec(); +} diff --git a/Yamitracker-reoload/YamitrackerMY/Yamitracker/src/yamitracker.cpp b/Yamitracker-reoload/YamitrackerMY/Yamitracker/src/yamitracker.cpp new file mode 100644 index 0000000..efba057 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerMY/Yamitracker/src/yamitracker.cpp @@ -0,0 +1,14 @@ +#include "yamitracker.h" +#include "ui_yamitracker.h" + +yamitracker::yamitracker(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::yamitracker) +{ + ui->setupUi(this); +} + +yamitracker::~yamitracker() +{ + delete ui; +} diff --git a/Yamitracker-reoload/YamitrackerMY/Yamitracker/src/yamitracker.h b/Yamitracker-reoload/YamitrackerMY/Yamitracker/src/yamitracker.h new file mode 100644 index 0000000..81269b7 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerMY/Yamitracker/src/yamitracker.h @@ -0,0 +1,23 @@ +#ifndef YAMITRACKER_H +#define YAMITRACKER_H + +#include + +QT_BEGIN_NAMESPACE +namespace Ui { +class yamitracker; +} +QT_END_NAMESPACE + +class yamitracker : public QMainWindow +{ + Q_OBJECT + +public: + yamitracker(QWidget *parent = nullptr); + ~yamitracker(); + +private: + Ui::yamitracker *ui; +}; +#endif // YAMITRACKER_H diff --git a/Yamitracker-reoload/YamitrackerMY/Yamitracker/ui/yamitracker.ui b/Yamitracker-reoload/YamitrackerMY/Yamitracker/ui/yamitracker.ui new file mode 100644 index 0000000..ac1b1c1 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerMY/Yamitracker/ui/yamitracker.ui @@ -0,0 +1,31 @@ + + + yamitraсker + + + + 0 + 0 + 800 + 600 + + + + yamitraker + + + + + + 0 + 0 + 800 + 23 + + + + + + + + diff --git a/Yamitracker-reoload/YamitrackerQT.zip b/Yamitracker-reoload/YamitrackerQT.zip new file mode 100644 index 0000000..ad35b6d Binary files /dev/null and b/Yamitracker-reoload/YamitrackerQT.zip differ diff --git a/Yamitracker-reoload/YamitrackerQT/.vscode/settings.json b/Yamitracker-reoload/YamitrackerQT/.vscode/settings.json new file mode 100644 index 0000000..f3c2e28 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/.vscode/settings.json @@ -0,0 +1,68 @@ +{ + "files.associations": { + "array": "cpp", + "atomic": "cpp", + "bit": "cpp", + "cctype": "cpp", + "charconv": "cpp", + "chrono": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "codecvt": "cpp", + "compare": "cpp", + "concepts": "cpp", + "condition_variable": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cstring": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "list": "cpp", + "map": "cpp", + "string": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "ratio": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "format": "cpp", + "fstream": "cpp", + "future": "cpp", + "initializer_list": "cpp", + "iomanip": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "mutex": "cpp", + "new": "cpp", + "numbers": "cpp", + "ostream": "cpp", + "semaphore": "cpp", + "span": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "stop_token": "cpp", + "streambuf": "cpp", + "thread": "cpp", + "typeinfo": "cpp", + "variant": "cpp" + } +} \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/.qtcreator/Yamitracker.pro.user b/Yamitracker-reoload/YamitrackerQT/Yamitracker/.qtcreator/Yamitracker.pro.user new file mode 100644 index 0000000..fcac744 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/.qtcreator/Yamitracker.pro.user @@ -0,0 +1,263 @@ + + + + + + EnvironmentId + {6395eb3f-fc2a-4125-bb4f-a9c51f02958b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {0acbc229-4897-4c6e-a23f-ae7c45394b0c} + 0 + 0 + 0 + + 0 + /home/acer1117/build-Yamitracker-Desktop-Debug + /home/acer1117/build-Yamitracker-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/acer1117/build-Yamitracker-Desktop-Release + /home/acer1117/build-Yamitracker-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/acer1117/build-Yamitracker-Desktop-Profile + /home/acer1117/build-Yamitracker-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro + /home/acer1117/Yamitracker/Yamitracker.pro + false + true + true + false + true + /home/acer1117/build-Yamitracker-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/Yamitracker.pro b/Yamitracker-reoload/YamitrackerQT/Yamitracker/Yamitracker.pro new file mode 100644 index 0000000..34f69f4 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/Yamitracker.pro @@ -0,0 +1,25 @@ +QT += core gui widgets + +CONFIG += c++17 + +# Явно указываем Qt6 +QT_MAJOR_VERSION = 6 + +SOURCES += \ + main.cpp \ + yamitracker.cpp \ + simplemidiwriter.cpp \ + yamimedia.cpp + +HEADERS += \ + yamitracker.h \ + simplemidiwriter.h \ + yamimedia.h + +FORMS += \ + yamitracker.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/Yamitracker.pro.user b/Yamitracker-reoload/YamitrackerQT/Yamitracker/Yamitracker.pro.user new file mode 100644 index 0000000..fcac744 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/Yamitracker.pro.user @@ -0,0 +1,263 @@ + + + + + + EnvironmentId + {6395eb3f-fc2a-4125-bb4f-a9c51f02958b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + Builtin.BuildSystem + + true + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {0acbc229-4897-4c6e-a23f-ae7c45394b0c} + 0 + 0 + 0 + + 0 + /home/acer1117/build-Yamitracker-Desktop-Debug + /home/acer1117/build-Yamitracker-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + /home/acer1117/build-Yamitracker-Desktop-Release + /home/acer1117/build-Yamitracker-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Выпуск + Qt4ProjectManager.Qt4BuildConfiguration + 0 + + + 0 + /home/acer1117/build-Yamitracker-Desktop-Profile + /home/acer1117/build-Yamitracker-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Сборка + Сборка + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Очистка + Очистка + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Профилирование + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + 3 + + + 0 + Развёртывание + Развёртывание + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro + /home/acer1117/Yamitracker/Yamitracker.pro + false + true + true + false + true + /home/acer1117/build-Yamitracker-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/Yamitracker_ru_RU.ts b/Yamitracker-reoload/YamitrackerQT/Yamitracker/Yamitracker_ru_RU.ts new file mode 100644 index 0000000..743f57f --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/Yamitracker_ru_RU.ts @@ -0,0 +1,3 @@ + + + diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/.qmake.stash b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/Makefile b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/Makefile new file mode 100644 index 0000000..eb09d42 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/Makefile @@ -0,0 +1,551 @@ +############################################################################# +# Makefile for building: Yamitracker +# Generated by qmake (3.1) (Qt 6.4.2) +# Project: ../Yamitracker.pro +# Template: app +# Command: /usr/bin/qmake -o Makefile ../Yamitracker.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -Wextra -fPIC -D_REENTRANT $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -fPIC -D_REENTRANT $(DEFINES) +INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt6 -I/usr/include/x86_64-linux-gnu/qt6/QtWidgets -I/usr/include/x86_64-linux-gnu/qt6/QtGui -I/usr/include/x86_64-linux-gnu/qt6/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++ +QMAKE = /usr/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Yamitracker1.0.0 +DISTDIR = /home/sofft328/progs/Yamitracker/YamitrackerQT/Yamitracker/build/.tmp/Yamitracker1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 -Wl,-rpath-link,/usr/lib/x86_64-linux-gnu +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt6Widgets.so /usr/lib/x86_64-linux-gnu/libQt6Gui.so /usr/lib/x86_64-linux-gnu/libGLX.so /usr/lib/x86_64-linux-gnu/libOpenGL.so /usr/lib/x86_64-linux-gnu/libQt6Core.so -lpthread -lGLX -lOpenGL +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../main.cpp \ + ../yamitracker.cpp \ + ../simplemidiwriter.cpp \ + ../yamimedia.cpp moc_yamitracker.cpp +OBJECTS = main.o \ + yamitracker.o \ + simplemidiwriter.o \ + yamimedia.o \ + moc_yamitracker.o +DIST = /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_designer.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfs_kms_gbm_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_help.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labsanimation.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labsfolderlistmodel.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labsqmlmodels.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labssettings.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labssharedimage.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labswavefrontmesh.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_linguist.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_openglwidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_openglwidgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qml.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmlcore.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmlintegration.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmllocalstorage.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmlmodels.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmltest.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmlworkerscript.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmlxmllistmodel.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3d.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3d_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dassetimport.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dassetimport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dassetutils.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dassetutils_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3deffects.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3deffects_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dglslparser_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dhelpers.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dhelpers_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3diblbaker.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3diblbaker_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dparticleeffects.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dparticleeffects_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dparticles.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dparticles_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3druntimerender.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3druntimerender_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dutils.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dutils_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickcontrols2.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickcontrols2impl.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickdialogs2.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickdialogs2quickimpl.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickdialogs2utils.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quicklayouts.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quicktemplates2.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickwidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_uiplugin.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_uitools.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/lex.prf \ + ../../Yamitracker.pro ../yamitracker.h \ + ../simplemidiwriter.h \ + ../yamimedia.h ../main.cpp \ + ../yamitracker.cpp \ + ../simplemidiwriter.cpp \ + ../yamimedia.cpp +QMAKE_TARGET = Yamitracker +DESTDIR = +TARGET = Yamitracker + + +first: all +####### Build rules + +Yamitracker: ui_yamitracker.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_designer.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfs_kms_gbm_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_help.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labsanimation.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labsfolderlistmodel.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labsqmlmodels.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labssettings.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labssharedimage.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labswavefrontmesh.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_linguist.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_openglwidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_openglwidgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qml.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmlcore.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmlintegration.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmllocalstorage.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmlmodels.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmltest.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmlworkerscript.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmlxmllistmodel.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3d.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3d_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dassetimport.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dassetimport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dassetutils.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dassetutils_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3deffects.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3deffects_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dglslparser_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dhelpers.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dhelpers_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3diblbaker.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3diblbaker_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dparticleeffects.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dparticleeffects_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dparticles.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dparticles_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3druntimerender.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3druntimerender_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dutils.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dutils_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickcontrols2.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickcontrols2impl.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickdialogs2.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickdialogs2quickimpl.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickdialogs2utils.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quicklayouts.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quicktemplates2.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickwidgets.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_uiplugin.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_uitools.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resources_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resources.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/moc.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/unix/opengl.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/uic.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/unix/thread.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/lex.prf \ + ../Yamitracker.pro \ + /usr/lib/x86_64-linux-gnu/libQt6Widgets.prl \ + /usr/lib/x86_64-linux-gnu/libQt6Gui.prl \ + /usr/lib/x86_64-linux-gnu/libQt6Core.prl + $(QMAKE) -o Makefile ../Yamitracker.pro +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_designer.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfs_kms_gbm_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_help.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labsanimation.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labsfolderlistmodel.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labsqmlmodels.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labssettings.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labssharedimage.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_labswavefrontmesh.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_linguist.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_openglwidgets.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_openglwidgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qml.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmlcore.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmlintegration.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmllocalstorage.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmlmodels.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmltest.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmlworkerscript.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_qmlxmllistmodel.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3d.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3d_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dassetimport.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dassetimport_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dassetutils.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dassetutils_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3deffects.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3deffects_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dglslparser_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dhelpers.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dhelpers_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3diblbaker.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3diblbaker_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dparticleeffects.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dparticleeffects_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dparticles.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dparticles_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3druntimerender.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3druntimerender_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dutils.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quick3dutils_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickcontrols2.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickcontrols2impl.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickdialogs2.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickdialogs2quickimpl.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickdialogs2utils.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quicklayouts.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quicktemplates2.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_quickwidgets.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_uiplugin.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_uitools.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qt.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resources_functions.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/resources.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/moc.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/unix/opengl.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/uic.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/unix/thread.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/lex.prf: +../Yamitracker.pro: +/usr/lib/x86_64-linux-gnu/libQt6Widgets.prl: +/usr/lib/x86_64-linux-gnu/libQt6Gui.prl: +/usr/lib/x86_64-linux-gnu/libQt6Core.prl: +qmake: FORCE + @$(QMAKE) -o Makefile ../Yamitracker.pro + +qmake_all: FORCE + + +all: Makefile Yamitracker + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.h ../simplemidiwriter.h ../yamimedia.h $(DISTDIR)/ + $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplemidiwriter.cpp ../yamimedia.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -fPIC -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt6/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_yamitracker.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_yamitracker.cpp +moc_yamitracker.cpp: ../yamitracker.h \ + ../simplemidiwriter.h \ + ../yamimedia.h \ + moc_predefs.h \ + /usr/lib/qt6/libexec/moc + /usr/lib/qt6/libexec/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/YamitrackerQT/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/YamitrackerQT/Yamitracker -I/usr/include/x86_64-linux-gnu/qt6 -I/usr/include/x86_64-linux-gnu/qt6/QtWidgets -I/usr/include/x86_64-linux-gnu/qt6/QtGui -I/usr/include/x86_64-linux-gnu/qt6/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp + +compiler_moc_objc_header_make_all: +compiler_moc_objc_header_clean: +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_yamitracker.h +compiler_uic_clean: + -$(DEL_FILE) ui_yamitracker.h +ui_yamitracker.h: ../yamitracker.ui \ + /usr/lib/qt6/libexec/uic + /usr/lib/qt6/libexec/uic ../yamitracker.ui -o ui_yamitracker.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: ../main.cpp ../yamitracker.h \ + ../simplemidiwriter.h \ + ../yamimedia.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp + +yamitracker.o: ../yamitracker.cpp ../yamitracker.h \ + ../simplemidiwriter.h \ + ../yamimedia.h \ + ui_yamitracker.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp + +simplemidiwriter.o: ../simplemidiwriter.cpp ../simplemidiwriter.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplemidiwriter.o ../simplemidiwriter.cpp + +yamimedia.o: ../yamimedia.cpp ../yamimedia.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamimedia.o ../yamimedia.cpp + +moc_yamitracker.o: moc_yamitracker.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin + $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + +.SUFFIXES: + diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/Yamitracker b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/Yamitracker new file mode 100755 index 0000000..bcd3c24 Binary files /dev/null and b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/Yamitracker differ diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/main.o b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/main.o new file mode 100644 index 0000000..612e308 Binary files /dev/null and b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/main.o differ diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/moc_predefs.h b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/moc_predefs.h new file mode 100644 index 0000000..d566990 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/moc_predefs.h @@ -0,0 +1,462 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __cpp_nontype_template_parameter_auto 201606L +#define __UINT_LEAST16_MAX__ 0xffff +#define __FLT16_HAS_QUIET_NAN__ 1 +#define __ATOMIC_ACQUIRE 2 +#define __FLT128_MAX_10_EXP__ 4932 +#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __cpp_aggregate_nsdmi 201304L +#define __UINT_LEAST8_TYPE__ unsigned char +#define __SIZEOF_FLOAT80__ 16 +#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16 +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 0xff +#define __SCHAR_WIDTH__ 8 +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 201411L +#define __BFLT16_MIN_10_EXP__ (-37) +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __WCHAR_MAX__ 0x7fffffff +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __cpp_binary_literals 201304L +#define __FLT64_DECIMAL_DIG__ 17 +#define __CET__ 3 +#define __cpp_noexcept_function_type 201510L +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __cpp_variadic_templates 200704L +#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __cpp_variable_templates 201304L +#define __FLT32X_MAX_EXP__ 1024 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __FLT32_HAS_DENORM__ 1 +#define __UINT_FAST8_MAX__ 0xff +#define __cpp_rvalue_reference 200610L +#define __cpp_nested_namespace_definitions 201411L +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __LDBL_HAS_INFINITY__ 1 +#define __INT_LEAST8_WIDTH__ 8 +#define __cpp_variadic_using 201611L +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL +#define __INT_LEAST8_MAX__ 0x7f +#define __cpp_attributes 200809L +#define __cpp_capture_star_this 201603L +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __FLT64X_MAX_10_EXP__ 4932 +#define __cpp_if_constexpr 201606L +#define __BFLT16_MAX_10_EXP__ 38 +#define __BFLT16_MAX_EXP__ 128 +#define __LDBL_IS_IEC_60559__ 1 +#define __FLT64X_HAS_QUIET_NAN__ 1 +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +#define __UINTMAX_TYPE__ long unsigned int +#define __cpp_nsdmi 200809L +#define __BFLT16_DECIMAL_DIG__ 4 +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __OPTIMIZE__ 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +#define __FLT128_MIN_EXP__ (-16381) +#define __WINT_MIN__ 0U +#define __FLT128_MIN_10_EXP__ (-4931) +#define __FLT32X_IS_IEC_60559__ 1 +#define __INT_LEAST16_WIDTH__ 16 +#define __SCHAR_MAX__ 0x7f +#define __FLT128_MANT_DIG__ 113 +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __INT64_C(c) c ## L +#define __SSP_STRONG__ 3 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __ATOMIC_SEQ_CST 5 +#define _FORTIFY_SOURCE 3 +#define __unix 1 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL +#define __FLT32X_MANT_DIG__ 53 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __cpp_aligned_new 201606L +#define __FLT32_MAX_10_EXP__ 38 +#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +#define __STDC_HOSTED__ 1 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype_auto 201304L +#define __DBL_DIG__ 15 +#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __FLT32_IS_IEC_60559__ 1 +#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +#define __DBL_IS_IEC_60559__ 1 +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806L +#define __cpp_enumerator_attributes 201411L +#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +#define __FLT32X_HAS_INFINITY__ 1 +#define __unix__ 1 +#define __INT_WIDTH__ 32 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __DECIMAL_DIG__ 21 +#define __STDC_IEC_559_COMPLEX__ 1 +#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +#define __gnu_linux__ 1 +#define __INT16_MAX__ 0x7fff +#define __FLT64_MIN_EXP__ (-1021) +#define __FLT64X_MIN_10_EXP__ (-4931) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __cpp_return_type_deduction 201304L +#define __FLT16_MIN_EXP__ (-13) +#define __FLT64_MANT_DIG__ 53 +#define __FLT64X_MANT_DIG__ 64 +#define __BFLT16_DIG__ 2 +#define __GNUC__ 13 +#define __GXX_RTTI 1 +#define __MMX__ 1 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __BIGGEST_ALIGNMENT__ 16 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __BFLT16_IS_IEC_60559__ 0 +#define __FLT16_MAX_10_EXP__ 4 +#define __cpp_delegating_constructors 200604L +#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __cpp_raw_strings 200710L +#define __INT_FAST32_MAX__ 0x7fffffffffffffffL +#define __DBL_HAS_INFINITY__ 1 +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __SIZEOF_FLOAT__ 4 +#define __HAVE_SPECULATION_SAFE_VALUE 1 +#define __cpp_fold_expressions 201603L +#define __DEC32_MIN_EXP__ (-94) +#define __INTPTR_WIDTH__ 64 +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ long int +#define __MMX_WITH_SSE__ 1 +#define __LDBL_HAS_DENORM__ 1 +#define __SEG_GS 1 +#define __cplusplus 201703L +#define __cpp_ref_qualifiers 200710L +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610L +#define __DBL_MAX_EXP__ 1024 +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __FLT16_DECIMAL_DIG__ 5 +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 0x7fffffffffffffffL +#define __amd64 1 +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __GNUG__ 13 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 8 +#define __BFLT16_HAS_INFINITY__ 1 +#define __FLT64X_MIN_EXP__ (-16381) +#define __SIZEOF_WINT_T__ 4 +#define __FLT32X_DIG__ 15 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806L +#define __FLT32_MAX_EXP__ 128 +#define __cpp_hex_float 201603L +#define __GXX_ABI_VERSION 1018 +#define __FLT_MIN_EXP__ (-125) +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __x86_64 1 +#define __cpp_lambdas 200907L +#define __INT_FAST64_TYPE__ long int +#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +#define __cpp_template_auto 201606L +#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16 +#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __SIZEOF_POINTER__ 8 +#define __SIZE_TYPE__ long unsigned int +#define __LP64__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +#define __LDBL_MAX_EXP__ 16384 +#define __DECIMAL_BID_FORMAT__ 1 +#define __FLT64_MIN_10_EXP__ (-307) +#define __FLT16_MIN_10_EXP__ (-4) +#define __FLT64X_DECIMAL_DIG__ 21 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __FLT128_HAS_INFINITY__ 1 +#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __FLT_DIG__ 6 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 21 +#define __VERSION__ "13.3.0" +#define __UINT64_C(c) c ## UL +#define __cpp_unicode_characters 201411L +#define _STDC_PREDEF_H 1 +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT128_MAX_EXP__ 16384 +#define __FLT32_MANT_DIG__ 24 +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT32X_MIN_EXP__ (-1021) +#define __STDC_IEC_60559_COMPLEX__ 201404L +#define __cpp_aggregate_bases 201603L +#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16 +#define __FLT128_HAS_DENORM__ 1 +#define __FLT32_DECIMAL_DIG__ 9 +#define __FLT128_DIG__ 33 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __DEC128_MAX_EXP__ 6145 +#define unix 1 +#define __DBL_HAS_DENORM__ 1 +#define __cpp_rtti 199711L +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __FLT_IS_IEC_60559__ 1 +#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE" +#define __FLT64X_DIG__ 18 +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309L +#define __ELF__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __UINT32_TYPE__ unsigned int +#define __BFLT16_HAS_QUIET_NAN__ 1 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +#define __UINTMAX_C(c) c ## UL +#define __FLT16_DIG__ 3 +#define __k8 1 +#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __cpp_constexpr 201603L +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +#define __STDC_IEC_60559_BFP__ 201404L +#define __SIZEOF_PTRDIFF_T__ 8 +#define __FLT64X_HAS_INFINITY__ 1 +#define __SIZEOF_LONG__ 8 +#define __LDBL_DIG__ 18 +#define __FLT64_IS_IEC_60559__ 1 +#define __x86_64__ 1 +#define __FLT16_IS_IEC_60559__ 1 +#define __FLT16_MAX_EXP__ 16 +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __INT_FAST16_MAX__ 0x7fffffffffffffffL +#define __GCC_CONSTRUCTIVE_SIZE 64 +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __LONG_MAX__ 0x7fffffffffffffffL +#define __FLT64X_HAS_DENORM__ 1 +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8" +#define __cpp_unicode_literals 200710L +#define __UINT_FAST16_TYPE__ long unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __INT_FAST32_WIDTH__ 64 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __SIZE_WIDTH__ 64 +#define __SEG_FS 1 +#define __INT_LEAST16_MAX__ 0x7fff +#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __DEC64_MANT_DIG__ 16 +#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16 +#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +#define __cpp_structured_bindings 201606L +#define __SIZEOF_INT__ 4 +#define __DEC32_MAX_EXP__ 97 +#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16 +#define __INT_FAST8_MAX__ 0x7f +#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __INTPTR_MAX__ 0x7fffffffffffffffL +#define __cpp_sized_deallocation 201309L +#define __cpp_guaranteed_copy_elision 201606L +#define linux 1 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __EXCEPTIONS 1 +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 64 +#define __LDBL_MANT_DIG__ 64 +#define __cpp_range_based_for 201603L +#define __INT_FAST16_WIDTH__ 64 +#define __FLT64_HAS_INFINITY__ 1 +#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __FLT16_HAS_INFINITY__ 1 +#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __cpp_nontype_template_args 201411L +#define __DEC32_MANT_DIG__ 7 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __pic__ 2 +#define __UINTPTR_MAX__ 0xffffffffffffffffUL +#define __INT_FAST64_WIDTH__ 64 +#define __cpp_decltype 200707L +#define __INT_FAST64_MAX__ 0x7fffffffffffffffL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F +#define __FLT32_HAS_INFINITY__ 1 +#define __FLT64X_MAX_EXP__ 16384 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __cpp_inline_variables 201606L +#define __BFLT16_MIN_EXP__ (-125) +#define __INT_MAX__ 0x7fffffff +#define __linux__ 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __cpp_inheriting_constructors 201511L +#define __SIZEOF_FLOAT128__ 16 +#define __BFLT16_MANT_DIG__ 8 +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __amd64__ 1 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST64_WIDTH__ 64 +#define __FLT32X_MAX_10_EXP__ 308 +#define __cpp_namespace_attributes 201411L +#define __SIZEOF_INT128__ 16 +#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16 +#define __FLT64X_IS_IEC_60559__ 1 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +#define __INT_LEAST32_TYPE__ int +#define _LP64 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __SIZEOF_WCHAR_T__ 4 +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __FLT128_HAS_QUIET_NAN__ 1 +#define __INTMAX_MAX__ 0x7fffffffffffffffL +#define __INT_FAST8_TYPE__ signed char +#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +#define __STDCPP_THREADS__ 1 +#define __BFLT16_HAS_DENORM__ 1 +#define __GNUC_STDC_INLINE__ 1 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +#define __FLT16_HAS_DENORM__ 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __FXSR__ 1 +#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __GCC_DESTRUCTIVE_SIZE 64 +#define __INTMAX_WIDTH__ 64 +#define __cpp_runtime_arrays 198712L +#define __FLT32_DIG__ 6 +#define __UINT64_TYPE__ long unsigned int +#define __UINT32_C(c) c ## U +#define __cpp_alias_templates 200704L +#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +#define __FLT128_IS_IEC_60559__ 1 +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 64 +#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +#define __PIC__ 2 +#define __INT32_MAX__ 0x7fffffff +#define __UINT_FAST32_TYPE__ long unsigned int +#define __FLT16_MANT_DIG__ 11 +#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F +#define __SSE2__ 1 +#define __cpp_deduction_guides 201703L +#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711L +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long int +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 3 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __UINTMAX_MAX__ 0xffffffffffffffffUL +#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +#define __cpp_template_template_args 201611L +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +#define __INT16_C(c) c +#define __STDC__ 1 +#define __PTRDIFF_TYPE__ long int +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __cpp_generic_lambdas 201304L +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809L +#define __FLT128_DECIMAL_DIG__ 36 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL +#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __SIZE_MAX__ 0xffffffffffffffffUL +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __cpp_init_captures 201304L +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/moc_yamitracker.cpp b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/moc_yamitracker.cpp new file mode 100644 index 0000000..8bbf8cf --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/moc_yamitracker.cpp @@ -0,0 +1,400 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'yamitracker.h' +** +** Created by: The Qt Meta Object Compiler version 68 (Qt 6.4.2) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../yamitracker.h" +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'yamitracker.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 68 +#error "This file was generated using the moc from 6.4.2. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +#ifndef Q_CONSTINIT +#define Q_CONSTINIT +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +namespace { +struct qt_meta_stringdata_SerialReader_t { + uint offsetsAndSizes[20]; + char stringdata0[13]; + char stringdata1[15]; + char stringdata2[1]; + char stringdata3[5]; + char stringdata4[9]; + char stringdata5[16]; + char stringdata6[6]; + char stringdata7[8]; + char stringdata8[24]; + char stringdata9[10]; +}; +#define QT_MOC_LITERAL(ofs, len) \ + uint(sizeof(qt_meta_stringdata_SerialReader_t::offsetsAndSizes) + ofs), len +Q_CONSTINIT static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = { + { + QT_MOC_LITERAL(0, 12), // "SerialReader" + QT_MOC_LITERAL(13, 14), // "noteOnReceived" + QT_MOC_LITERAL(28, 0), // "" + QT_MOC_LITERAL(29, 4), // "note" + QT_MOC_LITERAL(34, 8), // "velocity" + QT_MOC_LITERAL(43, 15), // "noteOffReceived" + QT_MOC_LITERAL(59, 5), // "error" + QT_MOC_LITERAL(65, 7), // "message" + QT_MOC_LITERAL(73, 23), // "connectionStatusChanged" + QT_MOC_LITERAL(97, 9) // "connected" + }, + "SerialReader", + "noteOnReceived", + "", + "note", + "velocity", + "noteOffReceived", + "error", + "message", + "connectionStatusChanged", + "connected" +}; +#undef QT_MOC_LITERAL +} // unnamed namespace + +Q_CONSTINIT static const uint qt_meta_data_SerialReader[] = { + + // content: + 10, // revision + 0, // classname + 0, 0, // classinfo + 4, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 4, // signalCount + + // signals: name, argc, parameters, tag, flags, initial metatype offsets + 1, 2, 38, 2, 0x06, 1 /* Public */, + 5, 1, 43, 2, 0x06, 4 /* Public */, + 6, 1, 46, 2, 0x06, 6 /* Public */, + 8, 1, 49, 2, 0x06, 8 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, QMetaType::Bool, 9, + + 0 // eod +}; + +Q_CONSTINIT const QMetaObject SerialReader::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_SerialReader.offsetsAndSizes, + qt_meta_data_SerialReader, + qt_static_metacall, + nullptr, + qt_incomplete_metaTypeArray, + // method 'noteOnReceived' + QtPrivate::TypeAndForceComplete, + QtPrivate::TypeAndForceComplete, + QtPrivate::TypeAndForceComplete, + // method 'noteOffReceived' + QtPrivate::TypeAndForceComplete, + QtPrivate::TypeAndForceComplete, + // method 'error' + QtPrivate::TypeAndForceComplete, + QtPrivate::TypeAndForceComplete, + // method 'connectionStatusChanged' + QtPrivate::TypeAndForceComplete, + QtPrivate::TypeAndForceComplete + >, + nullptr +} }; + +void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->noteOnReceived((*reinterpret_cast< std::add_pointer_t>(_a[1])),(*reinterpret_cast< std::add_pointer_t>(_a[2]))); break; + case 1: _t->noteOffReceived((*reinterpret_cast< std::add_pointer_t>(_a[1]))); break; + case 2: _t->error((*reinterpret_cast< std::add_pointer_t>(_a[1]))); break; + case 3: _t->connectionStatusChanged((*reinterpret_cast< std::add_pointer_t>(_a[1]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + { + using _t = void (SerialReader::*)(const QString & , int ); + if (_t _q_method = &SerialReader::noteOnReceived; *reinterpret_cast<_t *>(_a[1]) == _q_method) { + *result = 0; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (_t _q_method = &SerialReader::noteOffReceived; *reinterpret_cast<_t *>(_a[1]) == _q_method) { + *result = 1; + return; + } + } + { + using _t = void (SerialReader::*)(const QString & ); + if (_t _q_method = &SerialReader::error; *reinterpret_cast<_t *>(_a[1]) == _q_method) { + *result = 2; + return; + } + } + { + using _t = void (SerialReader::*)(bool ); + if (_t _q_method = &SerialReader::connectionStatusChanged; *reinterpret_cast<_t *>(_a[1]) == _q_method) { + *result = 3; + return; + } + } + } +} + +const QMetaObject *SerialReader::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *SerialReader::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0)) + return static_cast(this); + return QThread::qt_metacast(_clname); +} + +int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QThread::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 4) + qt_static_metacall(this, _c, _id, _a); + _id -= 4; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 4) + *reinterpret_cast(_a[0]) = QMetaType(); + _id -= 4; + } + return _id; +} + +// SIGNAL 0 +void SerialReader::noteOnReceived(const QString & _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SerialReader::noteOffReceived(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void SerialReader::error(const QString & _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void SerialReader::connectionStatusChanged(bool _t1) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} +namespace { +struct qt_meta_stringdata_Yamitracker_t { + uint offsetsAndSizes[28]; + char stringdata0[12]; + char stringdata1[17]; + char stringdata2[1]; + char stringdata3[5]; + char stringdata4[9]; + char stringdata5[18]; + char stringdata6[8]; + char stringdata7[8]; + char stringdata8[14]; + char stringdata9[14]; + char stringdata10[19]; + char stringdata11[26]; + char stringdata12[10]; + char stringdata13[17]; +}; +#define QT_MOC_LITERAL(ofs, len) \ + uint(sizeof(qt_meta_stringdata_Yamitracker_t::offsetsAndSizes) + ofs), len +Q_CONSTINIT static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = { + { + QT_MOC_LITERAL(0, 11), // "Yamitracker" + QT_MOC_LITERAL(12, 16), // "onNoteOnReceived" + QT_MOC_LITERAL(29, 0), // "" + QT_MOC_LITERAL(30, 4), // "note" + QT_MOC_LITERAL(35, 8), // "velocity" + QT_MOC_LITERAL(44, 17), // "onNoteOffReceived" + QT_MOC_LITERAL(62, 7), // "onError" + QT_MOC_LITERAL(70, 7), // "message" + QT_MOC_LITERAL(78, 13), // "onPlayClicked" + QT_MOC_LITERAL(92, 13), // "onStopClicked" + QT_MOC_LITERAL(106, 18), // "clearStatusMessage" + QT_MOC_LITERAL(125, 25), // "onConnectionStatusChanged" + QT_MOC_LITERAL(151, 9), // "connected" + QT_MOC_LITERAL(161, 16) // "attemptReconnect" + }, + "Yamitracker", + "onNoteOnReceived", + "", + "note", + "velocity", + "onNoteOffReceived", + "onError", + "message", + "onPlayClicked", + "onStopClicked", + "clearStatusMessage", + "onConnectionStatusChanged", + "connected", + "attemptReconnect" +}; +#undef QT_MOC_LITERAL +} // unnamed namespace + +Q_CONSTINIT static const uint qt_meta_data_Yamitracker[] = { + + // content: + 10, // revision + 0, // classname + 0, 0, // classinfo + 8, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags, initial metatype offsets + 1, 2, 62, 2, 0x08, 1 /* Private */, + 5, 1, 67, 2, 0x08, 4 /* Private */, + 6, 1, 70, 2, 0x08, 6 /* Private */, + 8, 0, 73, 2, 0x08, 8 /* Private */, + 9, 0, 74, 2, 0x08, 9 /* Private */, + 10, 0, 75, 2, 0x08, 10 /* Private */, + 11, 1, 76, 2, 0x08, 11 /* Private */, + 13, 0, 79, 2, 0x08, 13 /* Private */, + + // slots: parameters + QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4, + QMetaType::Void, QMetaType::QString, 3, + QMetaType::Void, QMetaType::QString, 7, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Bool, 12, + QMetaType::Void, + + 0 // eod +}; + +Q_CONSTINIT const QMetaObject Yamitracker::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_Yamitracker.offsetsAndSizes, + qt_meta_data_Yamitracker, + qt_static_metacall, + nullptr, + qt_incomplete_metaTypeArray, + // method 'onNoteOnReceived' + QtPrivate::TypeAndForceComplete, + QtPrivate::TypeAndForceComplete, + QtPrivate::TypeAndForceComplete, + // method 'onNoteOffReceived' + QtPrivate::TypeAndForceComplete, + QtPrivate::TypeAndForceComplete, + // method 'onError' + QtPrivate::TypeAndForceComplete, + QtPrivate::TypeAndForceComplete, + // method 'onPlayClicked' + QtPrivate::TypeAndForceComplete, + // method 'onStopClicked' + QtPrivate::TypeAndForceComplete, + // method 'clearStatusMessage' + QtPrivate::TypeAndForceComplete, + // method 'onConnectionStatusChanged' + QtPrivate::TypeAndForceComplete, + QtPrivate::TypeAndForceComplete, + // method 'attemptReconnect' + QtPrivate::TypeAndForceComplete + >, + nullptr +} }; + +void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onNoteOnReceived((*reinterpret_cast< std::add_pointer_t>(_a[1])),(*reinterpret_cast< std::add_pointer_t>(_a[2]))); break; + case 1: _t->onNoteOffReceived((*reinterpret_cast< std::add_pointer_t>(_a[1]))); break; + case 2: _t->onError((*reinterpret_cast< std::add_pointer_t>(_a[1]))); break; + case 3: _t->onPlayClicked(); break; + case 4: _t->onStopClicked(); break; + case 5: _t->clearStatusMessage(); break; + case 6: _t->onConnectionStatusChanged((*reinterpret_cast< std::add_pointer_t>(_a[1]))); break; + case 7: _t->attemptReconnect(); break; + default: ; + } + } +} + +const QMetaObject *Yamitracker::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *Yamitracker::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 8) + qt_static_metacall(this, _c, _id, _a); + _id -= 8; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 8) + *reinterpret_cast(_a[0]) = QMetaType(); + _id -= 8; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/moc_yamitracker.o b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/moc_yamitracker.o new file mode 100644 index 0000000..10a63f4 Binary files /dev/null and b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/moc_yamitracker.o differ diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/recording_20251122_134215.mid b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/recording_20251122_134215.mid new file mode 100644 index 0000000..14b6e20 Binary files /dev/null and b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/recording_20251122_134215.mid differ diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/recording_20251122_134215.yamb b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/recording_20251122_134215.yamb new file mode 100644 index 0000000..c1ed960 Binary files /dev/null and b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/recording_20251122_134215.yamb differ diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/recording_20251122_134215.yami b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/recording_20251122_134215.yami new file mode 100644 index 0000000..58a7b0d --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/recording_20251122_134215.yami @@ -0,0 +1,48 @@ +# YAMI Format - Yet Another Music Interface +BPM:120 +TIME_SIGNATURE:4/4 +TRACKS:1 + +# Track 0 +TRACK:0 +CHANNEL:0 +INSTRUMENT:0 +VOLUME:100 +NOTES: +C7,0.598,0.158,70 +B6,0.892,0.132,86 +A6,1.183,0.121,81 +G6,1.443,0.128,73 +F6,1.719,0.13,78 +E6,2.006,0.124,79 +D6,2.274,0.12,78 +C6,2.562,0.117,83 +B5,2.827,0.124,77 +A5,3.124,0.124,74 +G5,3.405,0.116,83 +F5,3.684,0.123,79 +E5,3.981,0.119,81 +D5,4.252,0.116,83 +C5,4.557,0.0939999,81 +B4,4.563,0.0710003,74 +A4,5.4,0.108,78 +G4,5.687,0.11,83 +F4,5.973,0.106,79 +E4,6.258,0.107,79 +D4,6.536,0.105,78 +C4,6.806,0.12,63 +B3,7.133,0.111,73 +A3,7.413,0.109,70 +G3,7.705,0.107,67 +F3,7.996,0.105,72 +E3,8.268,0.101,73 +D3,8.536,0.103,77 +C3,8.802,0.099,72 +B2,9.073,0.106,73 +A2,9.332,0.109,72 +G2,9.611,0.098,69 +F2,9.876,0.101,74 +E2,10.134,0.0990002,70 +D2,10.403,0.0970001,73 +C2,10.66,0.0920002,79 + diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/simplemidiwriter.o b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/simplemidiwriter.o new file mode 100644 index 0000000..c1ae2e9 Binary files /dev/null and b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/simplemidiwriter.o differ diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/ui_yamitracker.h b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/ui_yamitracker.h new file mode 100644 index 0000000..2899671 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/ui_yamitracker.h @@ -0,0 +1,723 @@ +/******************************************************************************** +** Form generated from reading UI file 'yamitracker.ui' +** +** Created by: Qt User Interface Compiler version 6.4.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_YAMITRACKER_H +#define UI_YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Yamitracker +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QHBoxLayout *topLayout; + QPushButton *playButton; + QPushButton *stopButton; + QSpacerItem *horizontalSpacer; + QPushButton *pushButton; + QLabel *keysInfoLabel; + QVBoxLayout *pianoContainerLayout; + QHBoxLayout *blackKeysLayout; + QPushButton *key_Cs1; + QPushButton *key_Ds1; + QSpacerItem *horizontalSpacer_3; + QPushButton *key_Fs1; + QPushButton *key_Gs1; + QPushButton *key_As1; + QPushButton *key_Cs2; + QPushButton *key_Ds2; + QSpacerItem *horizontalSpacer_4; + QPushButton *key_Fs2; + QPushButton *key_Gs2; + QPushButton *key_As2; + QPushButton *key_Cs3; + QPushButton *key_Ds3; + QSpacerItem *horizontalSpacer_5; + QPushButton *key_Fs3; + QPushButton *key_Gs3; + QPushButton *key_As3; + QPushButton *key_Cs4; + QPushButton *key_Ds4; + QSpacerItem *horizontalSpacer_6; + QPushButton *key_Fs4; + QPushButton *key_Gs4; + QPushButton *key_As4; + QPushButton *key_Cs5; + QPushButton *key_Ds5; + QSpacerItem *horizontalSpacer_7; + QPushButton *key_Fs5; + QPushButton *key_Gs5; + QPushButton *key_As5; + QHBoxLayout *whiteKeysLayout; + QPushButton *key_C1; + QPushButton *key_D1; + QPushButton *key_E1; + QPushButton *key_F1; + QPushButton *key_G1; + QPushButton *key_A1; + QPushButton *key_B1; + QPushButton *key_C2; + QPushButton *key_D2; + QPushButton *key_E2; + QPushButton *key_F2; + QPushButton *key_G2; + QPushButton *key_A2; + QPushButton *key_B2; + QPushButton *key_C3; + QPushButton *key_D3; + QPushButton *key_E3; + QPushButton *key_F3; + QPushButton *key_G3; + QPushButton *key_A3; + QPushButton *key_B3; + QPushButton *key_C4; + QPushButton *key_D4; + QPushButton *key_E4; + QPushButton *key_F4; + QPushButton *key_G4; + QPushButton *key_A4; + QPushButton *key_B4; + QPushButton *key_C5; + QPushButton *key_D5; + QPushButton *key_E5; + QPushButton *key_F5; + QPushButton *key_G5; + QPushButton *key_A5; + QPushButton *key_B5; + QPushButton *key_C6; + QHBoxLayout *bottomLayout; + QLabel *volumeLabel; + QProgressBar *volumeBar; + QSpacerItem *horizontalSpacer_2; + QLabel *statusLabel; + + void setupUi(QMainWindow *Yamitracker) + { + if (Yamitracker->objectName().isEmpty()) + Yamitracker->setObjectName("Yamitracker"); + Yamitracker->resize(1492, 500); + centralwidget = new QWidget(Yamitracker); + centralwidget->setObjectName("centralwidget"); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName("verticalLayout"); + topLayout = new QHBoxLayout(); + topLayout->setObjectName("topLayout"); + playButton = new QPushButton(centralwidget); + playButton->setObjectName("playButton"); + + topLayout->addWidget(playButton); + + stopButton = new QPushButton(centralwidget); + stopButton->setObjectName("stopButton"); + + topLayout->addWidget(stopButton); + + horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + topLayout->addItem(horizontalSpacer); + + pushButton = new QPushButton(centralwidget); + pushButton->setObjectName("pushButton"); + + topLayout->addWidget(pushButton); + + keysInfoLabel = new QLabel(centralwidget); + keysInfoLabel->setObjectName("keysInfoLabel"); + + topLayout->addWidget(keysInfoLabel); + + + verticalLayout->addLayout(topLayout); + + pianoContainerLayout = new QVBoxLayout(); + pianoContainerLayout->setObjectName("pianoContainerLayout"); + blackKeysLayout = new QHBoxLayout(); + blackKeysLayout->setObjectName("blackKeysLayout"); + key_Cs1 = new QPushButton(centralwidget); + key_Cs1->setObjectName("key_Cs1"); + key_Cs1->setMinimumSize(QSize(25, 80)); + key_Cs1->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Cs1); + + key_Ds1 = new QPushButton(centralwidget); + key_Ds1->setObjectName("key_Ds1"); + key_Ds1->setMinimumSize(QSize(25, 80)); + key_Ds1->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Ds1); + + horizontalSpacer_3 = new QSpacerItem(35, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_3); + + key_Fs1 = new QPushButton(centralwidget); + key_Fs1->setObjectName("key_Fs1"); + key_Fs1->setMinimumSize(QSize(25, 80)); + key_Fs1->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Fs1); + + key_Gs1 = new QPushButton(centralwidget); + key_Gs1->setObjectName("key_Gs1"); + key_Gs1->setMinimumSize(QSize(25, 80)); + key_Gs1->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Gs1); + + key_As1 = new QPushButton(centralwidget); + key_As1->setObjectName("key_As1"); + key_As1->setMinimumSize(QSize(25, 80)); + key_As1->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_As1); + + key_Cs2 = new QPushButton(centralwidget); + key_Cs2->setObjectName("key_Cs2"); + key_Cs2->setMinimumSize(QSize(25, 80)); + key_Cs2->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Cs2); + + key_Ds2 = new QPushButton(centralwidget); + key_Ds2->setObjectName("key_Ds2"); + key_Ds2->setMinimumSize(QSize(25, 80)); + key_Ds2->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Ds2); + + horizontalSpacer_4 = new QSpacerItem(35, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_4); + + key_Fs2 = new QPushButton(centralwidget); + key_Fs2->setObjectName("key_Fs2"); + key_Fs2->setMinimumSize(QSize(25, 80)); + key_Fs2->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Fs2); + + key_Gs2 = new QPushButton(centralwidget); + key_Gs2->setObjectName("key_Gs2"); + key_Gs2->setMinimumSize(QSize(25, 80)); + key_Gs2->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Gs2); + + key_As2 = new QPushButton(centralwidget); + key_As2->setObjectName("key_As2"); + key_As2->setMinimumSize(QSize(25, 80)); + key_As2->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_As2); + + key_Cs3 = new QPushButton(centralwidget); + key_Cs3->setObjectName("key_Cs3"); + key_Cs3->setMinimumSize(QSize(25, 80)); + key_Cs3->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Cs3); + + key_Ds3 = new QPushButton(centralwidget); + key_Ds3->setObjectName("key_Ds3"); + key_Ds3->setMinimumSize(QSize(25, 80)); + key_Ds3->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Ds3); + + horizontalSpacer_5 = new QSpacerItem(35, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_5); + + key_Fs3 = new QPushButton(centralwidget); + key_Fs3->setObjectName("key_Fs3"); + key_Fs3->setMinimumSize(QSize(25, 80)); + key_Fs3->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Fs3); + + key_Gs3 = new QPushButton(centralwidget); + key_Gs3->setObjectName("key_Gs3"); + key_Gs3->setMinimumSize(QSize(25, 80)); + key_Gs3->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Gs3); + + key_As3 = new QPushButton(centralwidget); + key_As3->setObjectName("key_As3"); + key_As3->setMinimumSize(QSize(25, 80)); + key_As3->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_As3); + + key_Cs4 = new QPushButton(centralwidget); + key_Cs4->setObjectName("key_Cs4"); + key_Cs4->setMinimumSize(QSize(25, 80)); + key_Cs4->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Cs4); + + key_Ds4 = new QPushButton(centralwidget); + key_Ds4->setObjectName("key_Ds4"); + key_Ds4->setMinimumSize(QSize(25, 80)); + key_Ds4->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Ds4); + + horizontalSpacer_6 = new QSpacerItem(35, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_6); + + key_Fs4 = new QPushButton(centralwidget); + key_Fs4->setObjectName("key_Fs4"); + key_Fs4->setMinimumSize(QSize(25, 80)); + key_Fs4->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Fs4); + + key_Gs4 = new QPushButton(centralwidget); + key_Gs4->setObjectName("key_Gs4"); + key_Gs4->setMinimumSize(QSize(25, 80)); + key_Gs4->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Gs4); + + key_As4 = new QPushButton(centralwidget); + key_As4->setObjectName("key_As4"); + key_As4->setMinimumSize(QSize(25, 80)); + key_As4->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_As4); + + key_Cs5 = new QPushButton(centralwidget); + key_Cs5->setObjectName("key_Cs5"); + key_Cs5->setMinimumSize(QSize(25, 80)); + key_Cs5->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Cs5); + + key_Ds5 = new QPushButton(centralwidget); + key_Ds5->setObjectName("key_Ds5"); + key_Ds5->setMinimumSize(QSize(25, 80)); + key_Ds5->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Ds5); + + horizontalSpacer_7 = new QSpacerItem(35, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + blackKeysLayout->addItem(horizontalSpacer_7); + + key_Fs5 = new QPushButton(centralwidget); + key_Fs5->setObjectName("key_Fs5"); + key_Fs5->setMinimumSize(QSize(25, 80)); + key_Fs5->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Fs5); + + key_Gs5 = new QPushButton(centralwidget); + key_Gs5->setObjectName("key_Gs5"); + key_Gs5->setMinimumSize(QSize(25, 80)); + key_Gs5->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_Gs5); + + key_As5 = new QPushButton(centralwidget); + key_As5->setObjectName("key_As5"); + key_As5->setMinimumSize(QSize(25, 80)); + key_As5->setMaximumSize(QSize(25, 80)); + + blackKeysLayout->addWidget(key_As5); + + + pianoContainerLayout->addLayout(blackKeysLayout); + + whiteKeysLayout = new QHBoxLayout(); + whiteKeysLayout->setObjectName("whiteKeysLayout"); + key_C1 = new QPushButton(centralwidget); + key_C1->setObjectName("key_C1"); + key_C1->setMinimumSize(QSize(35, 120)); + key_C1->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_C1); + + key_D1 = new QPushButton(centralwidget); + key_D1->setObjectName("key_D1"); + key_D1->setMinimumSize(QSize(35, 120)); + key_D1->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_D1); + + key_E1 = new QPushButton(centralwidget); + key_E1->setObjectName("key_E1"); + key_E1->setMinimumSize(QSize(35, 120)); + key_E1->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_E1); + + key_F1 = new QPushButton(centralwidget); + key_F1->setObjectName("key_F1"); + key_F1->setMinimumSize(QSize(35, 120)); + key_F1->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_F1); + + key_G1 = new QPushButton(centralwidget); + key_G1->setObjectName("key_G1"); + key_G1->setMinimumSize(QSize(35, 120)); + key_G1->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_G1); + + key_A1 = new QPushButton(centralwidget); + key_A1->setObjectName("key_A1"); + key_A1->setMinimumSize(QSize(35, 120)); + key_A1->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_A1); + + key_B1 = new QPushButton(centralwidget); + key_B1->setObjectName("key_B1"); + key_B1->setMinimumSize(QSize(35, 120)); + key_B1->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_B1); + + key_C2 = new QPushButton(centralwidget); + key_C2->setObjectName("key_C2"); + key_C2->setMinimumSize(QSize(35, 120)); + key_C2->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_C2); + + key_D2 = new QPushButton(centralwidget); + key_D2->setObjectName("key_D2"); + key_D2->setMinimumSize(QSize(35, 120)); + key_D2->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_D2); + + key_E2 = new QPushButton(centralwidget); + key_E2->setObjectName("key_E2"); + key_E2->setMinimumSize(QSize(35, 120)); + key_E2->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_E2); + + key_F2 = new QPushButton(centralwidget); + key_F2->setObjectName("key_F2"); + key_F2->setMinimumSize(QSize(35, 120)); + key_F2->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_F2); + + key_G2 = new QPushButton(centralwidget); + key_G2->setObjectName("key_G2"); + key_G2->setMinimumSize(QSize(35, 120)); + key_G2->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_G2); + + key_A2 = new QPushButton(centralwidget); + key_A2->setObjectName("key_A2"); + key_A2->setMinimumSize(QSize(35, 120)); + key_A2->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_A2); + + key_B2 = new QPushButton(centralwidget); + key_B2->setObjectName("key_B2"); + key_B2->setMinimumSize(QSize(35, 120)); + key_B2->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_B2); + + key_C3 = new QPushButton(centralwidget); + key_C3->setObjectName("key_C3"); + key_C3->setMinimumSize(QSize(35, 120)); + key_C3->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_C3); + + key_D3 = new QPushButton(centralwidget); + key_D3->setObjectName("key_D3"); + key_D3->setMinimumSize(QSize(35, 120)); + key_D3->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_D3); + + key_E3 = new QPushButton(centralwidget); + key_E3->setObjectName("key_E3"); + key_E3->setMinimumSize(QSize(35, 120)); + key_E3->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_E3); + + key_F3 = new QPushButton(centralwidget); + key_F3->setObjectName("key_F3"); + key_F3->setMinimumSize(QSize(35, 120)); + key_F3->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_F3); + + key_G3 = new QPushButton(centralwidget); + key_G3->setObjectName("key_G3"); + key_G3->setMinimumSize(QSize(35, 120)); + key_G3->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_G3); + + key_A3 = new QPushButton(centralwidget); + key_A3->setObjectName("key_A3"); + key_A3->setMinimumSize(QSize(35, 120)); + key_A3->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_A3); + + key_B3 = new QPushButton(centralwidget); + key_B3->setObjectName("key_B3"); + key_B3->setMinimumSize(QSize(35, 120)); + key_B3->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_B3); + + key_C4 = new QPushButton(centralwidget); + key_C4->setObjectName("key_C4"); + key_C4->setMinimumSize(QSize(35, 120)); + key_C4->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_C4); + + key_D4 = new QPushButton(centralwidget); + key_D4->setObjectName("key_D4"); + key_D4->setMinimumSize(QSize(35, 120)); + key_D4->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_D4); + + key_E4 = new QPushButton(centralwidget); + key_E4->setObjectName("key_E4"); + key_E4->setMinimumSize(QSize(35, 120)); + key_E4->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_E4); + + key_F4 = new QPushButton(centralwidget); + key_F4->setObjectName("key_F4"); + key_F4->setMinimumSize(QSize(35, 120)); + key_F4->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_F4); + + key_G4 = new QPushButton(centralwidget); + key_G4->setObjectName("key_G4"); + key_G4->setMinimumSize(QSize(35, 120)); + key_G4->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_G4); + + key_A4 = new QPushButton(centralwidget); + key_A4->setObjectName("key_A4"); + key_A4->setMinimumSize(QSize(35, 120)); + key_A4->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_A4); + + key_B4 = new QPushButton(centralwidget); + key_B4->setObjectName("key_B4"); + key_B4->setMinimumSize(QSize(35, 120)); + key_B4->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_B4); + + key_C5 = new QPushButton(centralwidget); + key_C5->setObjectName("key_C5"); + key_C5->setMinimumSize(QSize(35, 120)); + key_C5->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_C5); + + key_D5 = new QPushButton(centralwidget); + key_D5->setObjectName("key_D5"); + key_D5->setMinimumSize(QSize(35, 120)); + key_D5->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_D5); + + key_E5 = new QPushButton(centralwidget); + key_E5->setObjectName("key_E5"); + key_E5->setMinimumSize(QSize(35, 120)); + key_E5->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_E5); + + key_F5 = new QPushButton(centralwidget); + key_F5->setObjectName("key_F5"); + key_F5->setMinimumSize(QSize(35, 120)); + key_F5->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_F5); + + key_G5 = new QPushButton(centralwidget); + key_G5->setObjectName("key_G5"); + key_G5->setMinimumSize(QSize(35, 120)); + key_G5->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_G5); + + key_A5 = new QPushButton(centralwidget); + key_A5->setObjectName("key_A5"); + key_A5->setMinimumSize(QSize(35, 120)); + key_A5->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_A5); + + key_B5 = new QPushButton(centralwidget); + key_B5->setObjectName("key_B5"); + key_B5->setMinimumSize(QSize(35, 120)); + key_B5->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_B5); + + key_C6 = new QPushButton(centralwidget); + key_C6->setObjectName("key_C6"); + key_C6->setMinimumSize(QSize(35, 120)); + key_C6->setMaximumSize(QSize(35, 120)); + + whiteKeysLayout->addWidget(key_C6); + + + pianoContainerLayout->addLayout(whiteKeysLayout); + + + verticalLayout->addLayout(pianoContainerLayout); + + bottomLayout = new QHBoxLayout(); + bottomLayout->setObjectName("bottomLayout"); + volumeLabel = new QLabel(centralwidget); + volumeLabel->setObjectName("volumeLabel"); + + bottomLayout->addWidget(volumeLabel); + + volumeBar = new QProgressBar(centralwidget); + volumeBar->setObjectName("volumeBar"); + volumeBar->setValue(0); + + bottomLayout->addWidget(volumeBar); + + horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + bottomLayout->addItem(horizontalSpacer_2); + + statusLabel = new QLabel(centralwidget); + statusLabel->setObjectName("statusLabel"); + + bottomLayout->addWidget(statusLabel); + + + verticalLayout->addLayout(bottomLayout); + + Yamitracker->setCentralWidget(centralwidget); + + retranslateUi(Yamitracker); + + QMetaObject::connectSlotsByName(Yamitracker); + } // setupUi + + void retranslateUi(QMainWindow *Yamitracker) + { + Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor", nullptr)); + playButton->setText(QCoreApplication::translate("Yamitracker", "Play", nullptr)); + stopButton->setText(QCoreApplication::translate("Yamitracker", "Stop", nullptr)); + pushButton->setText(QCoreApplication::translate("Yamitracker", "NoteLog", nullptr)); + keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "Keys: 36 white + 25 black = 61 total", nullptr)); + key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr)); + key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr)); + key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr)); + key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr)); + key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr)); + key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr)); + key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr)); + key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr)); + key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr)); + key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr)); + key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr)); + key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr)); + key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr)); + key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr)); + key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr)); + key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr)); + key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr)); + key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr)); + key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr)); + key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr)); + key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr)); + key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr)); + key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr)); + key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr)); + key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr)); + key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr)); + key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr)); + key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr)); + key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr)); + key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr)); + key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr)); + key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr)); + key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr)); + key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr)); + key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr)); + key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr)); + key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr)); + key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr)); + key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr)); + key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr)); + key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr)); + key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr)); + key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr)); + key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr)); + key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr)); + key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr)); + key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr)); + key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr)); + key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr)); + key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr)); + key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr)); + key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr)); + key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr)); + key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr)); + key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr)); + key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr)); + key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr)); + key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr)); + key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr)); + key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr)); + key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr)); + volumeLabel->setText(QCoreApplication::translate("Yamitracker", "Volume:", nullptr)); + statusLabel->setText(QCoreApplication::translate("Yamitracker", "Status: Ready", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class Yamitracker: public Ui_Yamitracker {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_YAMITRACKER_H diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/yamimedia.o b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/yamimedia.o new file mode 100644 index 0000000..82d96bc Binary files /dev/null and b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/yamimedia.o differ diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/yamitracker.o b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/yamitracker.o new file mode 100644 index 0000000..4cca808 Binary files /dev/null and b/Yamitracker-reoload/YamitrackerQT/Yamitracker/build/yamitracker.o differ diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/main.cpp b/Yamitracker-reoload/YamitrackerQT/Yamitracker/main.cpp new file mode 100644 index 0000000..b2ae5c4 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/main.cpp @@ -0,0 +1,23 @@ +#include "yamitracker.h" + +#include +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + QTranslator translator; + const QStringList uiLanguages = QLocale::system().uiLanguages(); + for (const QString &locale : uiLanguages) { + const QString baseName = "Yamitracker_" + QLocale(locale).name(); + if (translator.load(":/i18n/" + baseName)) { + a.installTranslator(&translator); + break; + } + } + Yamitracker w; + w.show(); + return a.exec(); +} \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/mididevicedetector.cpp b/Yamitracker-reoload/YamitrackerQT/Yamitracker/mididevicedetector.cpp new file mode 100644 index 0000000..dc8c82c --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/mididevicedetector.cpp @@ -0,0 +1,122 @@ +#include "mididevicedetector.h" +#include +#include +#include + +MidiDeviceDetector::MidiDeviceDetector() +{ + scanAlsaDevices(); +} + +MidiDeviceDetector::~MidiDeviceDetector() +{ +} + +QList MidiDeviceDetector::detectDevices() +{ + return m_devices; +} + +MidiDeviceInfo MidiDeviceDetector::detectYamahaDevice() +{ + for (const auto& device : m_devices) { + if (isYamahaDevice(device.name)) { + return device; + } + } + + // Возвращаем устройство по умолчанию, если Yamaha не найдена + MidiDeviceInfo defaultDevice; + defaultDevice.port = "/dev/dmmidi1"; + defaultDevice.name = "Yamaha PSR-E333 (Default)"; + defaultDevice.manufacturer = "Yamaha"; + defaultDevice.model = "PSR-E333"; + defaultDevice.isInput = true; + defaultDevice.isOutput = true; + + return defaultDevice; +} + +bool MidiDeviceDetector::isYamahaDevice(const QString& deviceName) +{ + QString name = deviceName.toLower(); + + // Паттерны для идентификации Yamaha устройств + QList yamahaPatterns = { + "yamaha", "psr", "e333", "e443", "e343", "dgx", "motif", "mox", "montage" + }; + + for (const QString& pattern : yamahaPatterns) { + if (name.contains(pattern)) { + return true; + } + } + + return false; +} + +void MidiDeviceDetector::scanAlsaDevices() +{ + m_devices.clear(); + + // Сканируем ALSA MIDI устройства + snd_seq_t *seq; + if (snd_seq_open(&seq, "default", SND_SEQ_OPEN_INPUT, 0) < 0) { + qDebug() << "Cannot open ALSA sequencer"; + return; + } + + snd_seq_set_client_name(seq, "Yamitracker Scanner"); + + // Получаем список клиентов + snd_seq_client_info_t *cinfo; + snd_seq_port_info_t *pinfo; + + snd_seq_client_info_alloca(&cinfo); + snd_seq_port_info_alloca(&pinfo); + + snd_seq_client_info_set_client(cinfo, -1); + while (snd_seq_query_next_client(seq, cinfo) >= 0) { + int client = snd_seq_client_info_get_client(cinfo); + + snd_seq_port_info_set_client(pinfo, client); + snd_seq_port_info_set_port(pinfo, -1); + while (snd_seq_query_next_port(seq, pinfo) >= 0) { + unsigned int caps = snd_seq_port_info_get_capability(pinfo); + + if ((caps & (SND_SEQ_PORT_CAP_READ | SND_SEQ_PORT_CAP_SUBS_READ)) && + (caps & (SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE))) { + + MidiDeviceInfo device; + device.name = QString("%1: %2").arg( + snd_seq_client_info_get_name(cinfo), + snd_seq_port_info_get_name(pinfo) + ); + device.port = QString("hw:%1,%2").arg(client).arg(snd_seq_port_info_get_port(pinfo)); + device.manufacturer = snd_seq_client_info_get_name(cinfo); + device.model = snd_seq_port_info_get_name(pinfo); + device.isInput = (caps & SND_SEQ_PORT_CAP_READ) != 0; + device.isOutput = (caps & SND_SEQ_PORT_CAP_WRITE) != 0; + + m_devices.append(device); + } + } + } + + snd_seq_close(seq); + + // Добавляем стандартное устройство для обратной совместимости + MidiDeviceInfo defaultDevice; + defaultDevice.name = "Direct MIDI (dmmidi1)"; + defaultDevice.port = "/dev/dmmidi1"; + defaultDevice.manufacturer = "Yamaha"; + defaultDevice.model = "PSR-E333"; + defaultDevice.isInput = true; + defaultDevice.isOutput = true; + m_devices.append(defaultDevice); + + qDebug() << "Found" << m_devices.size() << "MIDI devices"; + for (const auto& device : m_devices) { + qDebug() << "Device:" << device.name << "Port:" << device.port; + } +} \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/mididevicedetector.h b/Yamitracker-reoload/YamitrackerQT/Yamitracker/mididevicedetector.h new file mode 100644 index 0000000..8f0f4cb --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/mididevicedetector.h @@ -0,0 +1,32 @@ +#ifndef MIDIDEVICEDETECTOR_H +#define MIDIDEVICEDETECTOR_H + +#include +#include +#include + +struct MidiDeviceInfo { + QString name; + QString port; + QString manufacturer; + QString model; + bool isInput; + bool isOutput; +}; + +class MidiDeviceDetector +{ +public: + MidiDeviceDetector(); + ~MidiDeviceDetector(); + + QList detectDevices(); + MidiDeviceInfo detectYamahaDevice(); + bool isYamahaDevice(const QString& deviceName); + +private: + void scanAlsaDevices(); + QList m_devices; +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/simplemidiwriter.cpp b/Yamitracker-reoload/YamitrackerQT/Yamitracker/simplemidiwriter.cpp new file mode 100644 index 0000000..f35b85e --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/simplemidiwriter.cpp @@ -0,0 +1,149 @@ +#include "simplemidiwriter.h" +#include +#include + +SimpleMidiWriter::SimpleMidiWriter() + : m_isRecording(false) + , m_startTime(0) +{ +} + +SimpleMidiWriter::~SimpleMidiWriter() +{ +} + +bool SimpleMidiWriter::startRecording(const QString &filename) +{ + if (m_isRecording) { + stopRecording(); + } + + m_events.clear(); + m_isRecording = true; + m_startTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + + qDebug() << "Started MIDI recording"; + return true; +} + +bool SimpleMidiWriter::stopRecording() +{ + if (!m_isRecording) { + return false; + } + + m_isRecording = false; + qDebug() << "Stopped MIDI recording, events count:" << m_events.size(); + return true; +} + +bool SimpleMidiWriter::saveToFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::WriteOnly)) { + qDebug() << "Cannot open file for writing:" << filename; + return false; + } + + QDataStream stream(&file); + stream.setByteOrder(QDataStream::BigEndian); + + writeMidiHeader(stream); + + writeMidiTrack(stream); + + file.close(); + qDebug() << "MIDI file saved:" << filename; + return true; +} + +void SimpleMidiWriter::addNoteOn(double time, int channel, int note, int velocity) +{ + if (!m_isRecording) return; + + MidiEvent event; + event.time = time; + event.type = 0x90; + event.channel = channel; + event.note = note; + event.velocity = velocity; + + m_events.append(event); +} + +void SimpleMidiWriter::addNoteOff(double time, int channel, int note) +{ + if (!m_isRecording) return; + + MidiEvent event; + event.time = time; + event.type = 0x80; + event.channel = channel; + event.note = note; + event.velocity = 0; + + m_events.append(event); +} + +void SimpleMidiWriter::clear() +{ + m_events.clear(); + m_isRecording = false; +} + +void SimpleMidiWriter::writeVariableLength(QDataStream &stream, quint32 value) +{ + quint32 buffer = value & 0x7F; + + while ((value >>= 7) > 0) { + buffer <<= 8; + buffer |= 0x80; + buffer += (value & 0x7F); + } + + while (true) { + stream << (quint8)(buffer & 0xFF); + if (buffer & 0x80) { + buffer >>= 8; + } else { + break; + } + } +} + +void SimpleMidiWriter::writeMidiHeader(QDataStream &stream) +{ + stream.writeRawData("MThd", 4); + stream << (quint32)6; + stream << (quint16)1; + stream << (quint16)1; + stream << (quint16)480; +} + +void SimpleMidiWriter::writeMidiTrack(QDataStream &stream) +{ + QByteArray trackData; + QDataStream trackStream(&trackData, QIODevice::WriteOnly); + trackStream.setByteOrder(QDataStream::BigEndian); + + double lastTime = 0; + + for (const MidiEvent &event : m_events) { + quint32 deltaTime = (event.time - lastTime) * 480; + lastTime = event.time; + + writeVariableLength(trackStream, deltaTime); + + quint8 statusByte = event.type | (event.channel & 0x0F); + trackStream << statusByte; + trackStream << (quint8)event.note; + trackStream << (quint8)event.velocity; + } + + writeVariableLength(trackStream, 0); + trackStream.writeRawData("\xFF\x2F\x00", 3); + + stream.writeRawData("MTrk", 4); + stream << (quint32)trackData.size(); + stream.writeRawData(trackData.constData(), trackData.size()); +} \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/simplemidiwriter.h b/Yamitracker-reoload/YamitrackerQT/Yamitracker/simplemidiwriter.h new file mode 100644 index 0000000..d940c0b --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/simplemidiwriter.h @@ -0,0 +1,43 @@ +#ifndef SIMPLEMIDIWRITER_H +#define SIMPLEMIDIWRITER_H + +#include +#include +#include +#include + +struct MidiEvent { + double time; + int type; + int channel; + int note; + int velocity; +}; + +class SimpleMidiWriter +{ +public: + SimpleMidiWriter(); + ~SimpleMidiWriter(); + + bool startRecording(const QString &filename); + bool stopRecording(); + bool saveToFile(const QString &filename); + + void addNoteOn(double time, int channel, int note, int velocity); + void addNoteOff(double time, int channel, int note); + + bool isRecording() const { return m_isRecording; } + void clear(); + +private: + QVector m_events; + bool m_isRecording; + double m_startTime; + + void writeVariableLength(QDataStream &stream, quint32 value); + void writeMidiHeader(QDataStream &stream); + void writeMidiTrack(QDataStream &stream); +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/yamimedia.cpp b/Yamitracker-reoload/YamitrackerQT/Yamitracker/yamimedia.cpp new file mode 100644 index 0000000..627f608 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/yamimedia.cpp @@ -0,0 +1,256 @@ +#include "yamimedia.h" +#include +#include +#include + +namespace yami { + +YamiFile::YamiFile() + : bpm(120.0f), + time_signature_numerator(4), time_signature_denominator(4) {} + +bool YamiFile::loadFromText(const std::string& filename) { + std::ifstream file(filename); + if (!file.is_open()) { + return false; + } + + clear(); + std::string line; + Track* current_track = nullptr; + bool in_notes_section = false; + + while (std::getline(file, line)) { + size_t comment_pos = line.find('#'); + if (comment_pos != std::string::npos) { + line = line.substr(0, comment_pos); + } + + line.erase(0, line.find_first_not_of(" \t")); + line.erase(line.find_last_not_of(" \t") + 1); + + if (line.empty()) continue; + + if (line.find("BPM:") == 0) { + bpm = std::stof(line.substr(4)); + } + else if (line.find("TIME_SIGNATURE:") == 0) { + auto parts = split(line.substr(15), '/'); + if (parts.size() == 2) { + time_signature_numerator = std::stoi(parts[0]); + time_signature_denominator = std::stoi(parts[1]); + } + } + else if (line.find("TRACK:") == 0) { + in_notes_section = false; + uint8_t track_id = std::stoi(line.substr(6)); + tracks.emplace_back(track_id); + current_track = &tracks.back(); + } + else if (current_track && line.find("CHANNEL:") == 0) { + current_track->channel = std::stoi(line.substr(8)); + } + else if (current_track && line.find("INSTRUMENT:") == 0) { + current_track->instrument = std::stoi(line.substr(11)); + } + else if (current_track && line.find("VOLUME:") == 0) { + current_track->volume = std::stoi(line.substr(7)); + } + else if (current_track && line == "NOTES:") { + in_notes_section = true; + } + else if (in_notes_section && current_track) { + parseNote(line, *current_track); + } + } + + return true; +} + +bool YamiFile::saveToText(const std::string& filename) { + std::ofstream file(filename); + if (!file.is_open()) { + return false; + } + + file << "# YAMI Format - Yet Another Music Interface\n"; + file << "BPM:" << bpm << "\n"; + file << "TIME_SIGNATURE:" << (int)time_signature_numerator << "/" + << (int)time_signature_denominator << "\n"; + file << "TRACKS:" << tracks.size() << "\n\n"; + + for (const auto& track : tracks) { + file << "# Track " << (int)track.track_id << "\n"; + file << "TRACK:" << (int)track.track_id << "\n"; + file << "CHANNEL:" << (int)track.channel << "\n"; + file << "INSTRUMENT:" << (int)track.instrument << "\n"; + file << "VOLUME:" << (int)track.volume << "\n"; + file << "NOTES:\n"; + + for (const auto& note : track.notes) { + file << pitchToNoteName(note.pitch) << "," + << note.start_time << "," + << note.duration << "," + << (int)note.velocity << "\n"; + } + file << "\n"; + } + + return true; +} + +bool YamiFile::loadFromBinary(const std::string& filename) { + std::ifstream file(filename, std::ios::binary); + if (!file.is_open()) { + return false; + } + + clear(); + + char magic[4]; + file.read(magic, 4); + if (std::string(magic, 4) != "YAMB") { + return false; + } + + file.read(reinterpret_cast(&bpm), sizeof(bpm)); + file.read(reinterpret_cast(&time_signature_numerator), sizeof(time_signature_numerator)); + file.read(reinterpret_cast(&time_signature_denominator), sizeof(time_signature_denominator)); + + uint16_t num_tracks; + file.read(reinterpret_cast(&num_tracks), sizeof(num_tracks)); + + for (uint16_t i = 0; i < num_tracks; ++i) { + Track track; + file.read(reinterpret_cast(&track.track_id), sizeof(track.track_id)); + file.read(reinterpret_cast(&track.channel), sizeof(track.channel)); + file.read(reinterpret_cast(&track.instrument), sizeof(track.instrument)); + file.read(reinterpret_cast(&track.volume), sizeof(track.volume)); + + uint32_t num_notes; + file.read(reinterpret_cast(&num_notes), sizeof(num_notes)); + + for (uint32_t j = 0; j < num_notes; ++j) { + Note note; + file.read(reinterpret_cast(¬e.pitch), sizeof(note.pitch)); + file.read(reinterpret_cast(¬e.start_time), sizeof(note.start_time)); + file.read(reinterpret_cast(¬e.duration), sizeof(note.duration)); + file.read(reinterpret_cast(¬e.velocity), sizeof(note.velocity)); + track.notes.push_back(note); + } + + tracks.push_back(track); + } + + return true; +} + +bool YamiFile::saveToBinary(const std::string& filename) { + std::ofstream file(filename, std::ios::binary); + if (!file.is_open()) { + return false; + } + + const char magic[] = "YAMB"; + file.write(magic, 4); + file.write(reinterpret_cast(&bpm), sizeof(bpm)); + file.write(reinterpret_cast(&time_signature_numerator), sizeof(time_signature_numerator)); + file.write(reinterpret_cast(&time_signature_denominator), sizeof(time_signature_denominator)); + + uint16_t num_tracks = tracks.size(); + file.write(reinterpret_cast(&num_tracks), sizeof(num_tracks)); + + for (const auto& track : tracks) { + file.write(reinterpret_cast(&track.track_id), sizeof(track.track_id)); + file.write(reinterpret_cast(&track.channel), sizeof(track.channel)); + file.write(reinterpret_cast(&track.instrument), sizeof(track.instrument)); + file.write(reinterpret_cast(&track.volume), sizeof(track.volume)); + + uint32_t num_notes = track.notes.size(); + file.write(reinterpret_cast(&num_notes), sizeof(num_notes)); + + for (const auto& note : track.notes) { + file.write(reinterpret_cast(¬e.pitch), sizeof(note.pitch)); + file.write(reinterpret_cast(¬e.start_time), sizeof(note.start_time)); + file.write(reinterpret_cast(¬e.duration), sizeof(note.duration)); + file.write(reinterpret_cast(¬e.velocity), sizeof(note.velocity)); + } + } + + return true; +} + +bool YamiFile::parseHeader(const std::string& line) { + return true; +} + +bool YamiFile::parseTrackHeader(const std::string& line, Track& track) { + return true; +} + +bool YamiFile::parseNote(const std::string& line, Track& track) { + auto parts = split(line, ','); + if (parts.size() != 4) { + return false; + } + + try { + uint8_t pitch = noteNameToPitch(parts[0]); + float start_time = std::stof(parts[1]); + float duration = std::stof(parts[2]); + uint8_t velocity = std::stoi(parts[3]); + + track.notes.emplace_back(pitch, start_time, duration, velocity); + return true; + } + catch (...) { + return false; + } +} + +std::vector YamiFile::split(const std::string& str, char delimiter) { + std::vector tokens; + std::stringstream ss(str); + std::string token; + + while (std::getline(ss, token, delimiter)) { + tokens.push_back(token); + } + + return tokens; +} + +uint8_t noteNameToPitch(const std::string& noteName) { + static const std::unordered_map noteBase = { + {'C', 0}, {'D', 2}, {'E', 4}, {'F', 5}, {'G', 7}, {'A', 9}, {'B', 11} + }; + + if (noteName.length() < 2) return 60; + + char noteChar = std::toupper(noteName[0]); + int octave = std::stoi(noteName.substr(1)); + + int pitch = (octave + 1) * 12; + + auto it = noteBase.find(noteChar); + if (it != noteBase.end()) { + pitch += it->second; + } + + if (noteName.find('#') != std::string::npos) { + pitch += 1; + } + + return std::min(std::max(pitch, 0), 127); +} + +std::string pitchToNoteName(uint8_t pitch) { + static const std::string noteNames[] = {"C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"}; + + int octave = (pitch / 12) - 1; + int noteIndex = pitch % 12; + + return noteNames[noteIndex] + std::to_string(octave); +} + +} \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/yamimedia.h b/Yamitracker-reoload/YamitrackerQT/Yamitracker/yamimedia.h new file mode 100644 index 0000000..ed98630 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/yamimedia.h @@ -0,0 +1,87 @@ +#ifndef YAMIMEDIA_H +#define YAMIMEDIA_H + +#include +#include +#include +#include +#include +#include + +namespace yami { + +struct Note { + uint8_t pitch; + float start_time; + float duration; + uint8_t velocity; + + Note(uint8_t p = 60, float st = 0.0f, float d = 1.0f, uint8_t v = 80) + : pitch(p), start_time(st), duration(d), velocity(v) {} +}; + +struct Track { + uint8_t track_id; + uint8_t channel; + uint8_t instrument; + uint8_t volume; + std::vector notes; + + Track(uint8_t id = 0) : track_id(id), channel(0), instrument(0), volume(100) {} +}; + +class YamiFile { +private: + float bpm; + uint8_t time_signature_numerator; + uint8_t time_signature_denominator; + std::vector tracks; + + bool parseHeader(const std::string& line); + bool parseTrackHeader(const std::string& line, Track& track); + bool parseNote(const std::string& line, Track& track); + std::vector split(const std::string& str, char delimiter); + +public: + YamiFile(); + + bool loadFromText(const std::string& filename); + bool saveToText(const std::string& filename); + + bool loadFromBinary(const std::string& filename); + bool saveToBinary(const std::string& filename); + + void setBPM(float new_bpm) { bpm = new_bpm; } + float getBPM() const { return bpm; } + + void setTimeSignature(uint8_t num, uint8_t denom) { + time_signature_numerator = num; + time_signature_denominator = denom; + } + + std::pair getTimeSignature() const { + return {time_signature_numerator, time_signature_denominator}; + } + + std::vector& getTracks() { return tracks; } + const std::vector& getTracks() const { return tracks; } + + Track& addTrack(uint8_t track_id) { + tracks.emplace_back(track_id); + return tracks.back(); + } + + void clear() { + tracks.clear(); + bpm = 120.0f; + time_signature_numerator = 4; + time_signature_denominator = 4; + } +}; + +uint8_t noteNameToPitch(const std::string& noteName); +std::string pitchToNoteName(uint8_t pitch); + +} + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/yamitracker.cpp b/Yamitracker-reoload/YamitrackerQT/Yamitracker/yamitracker.cpp new file mode 100644 index 0000000..6453f58 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/yamitracker.cpp @@ -0,0 +1,424 @@ +#include "yamitracker.h" +#include "ui_yamitracker.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +void SerialReader::run() +{ + while (!shouldStop) { + int fd = open(currentDevice.toUtf8().constData(), O_RDWR | O_NOCTTY); + if (fd < 0) { + emit error(QString("Cannot open %1").arg(currentDevice)); + emit connectionStatusChanged(false); + sleep(2); + continue; + } + + emit connectionStatusChanged(true); + + // Определяем производителя по имени устройства + QString manufacturer = "Unknown"; + QString model = "Unknown"; + + if (currentDevice.contains("yamaha", Qt::CaseInsensitive) || + currentDevice.contains("psr", Qt::CaseInsensitive)) { + manufacturer = "Yamaha"; + model = "PSR Series"; + } else if (currentDevice.contains("dmmidi")) { + manufacturer = "Yamaha"; + model = "PSR-E333 (Direct MIDI)"; + } + + emit deviceInfoReceived(manufacturer, model); + + struct termios tty; + tcgetattr(fd, &tty); + cfsetospeed(&tty, B115200); + cfsetispeed(&tty, B115200); + tty.c_cflag |= (CLOCAL | CREAD | CS8); + tty.c_cc[VMIN] = 1; + tcsetattr(fd, TCSANOW, &tty); + + unsigned char byte; + while (!shouldStop && read(fd, &byte, 1) > 0) { + if (byte == 0xF8 || byte == 0xFE) { + continue; + } + + if (byte & 0x80) { + if ((byte & 0xF0) == 0x90) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + + if (velocity == 0) + emit noteOffReceived(hexNote); + else + emit noteOnReceived(hexNote, velocity); + } + } + else if ((byte & 0xF0) == 0x80) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + emit noteOffReceived(hexNote); + } + } + } + } + + close(fd); + emit connectionStatusChanged(false); + + if (!shouldStop) { + emit error(QString("Connection lost to %1. Attempting to reconnect...").arg(currentDevice)); + sleep(2); + } + } +} + +Yamitracker::Yamitracker(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::Yamitracker) + , serialReader(new SerialReader(this)) + , reconnectTimer(new QTimer(this)) + , isConnected(false) + , midiWriter(new SimpleMidiWriter()) + , yamiFile(new yami::YamiFile()) + , recordingStartTime(0) + , deviceDetector(new MidiDeviceDetector()) +{ + ui->setupUi(this); + + // Инициализируем ссылки на новые UI элементы + deviceLabel = ui->deviceLabel; + refreshDevicesButton = ui->refreshDevicesButton; + + initializeKeyButtons(); + initializeDeviceDetection(); + + connect(serialReader, &SerialReader::noteOnReceived, this, &Yamitracker::onNoteOnReceived); + connect(serialReader, &SerialReader::noteOffReceived, this, &Yamitracker::onNoteOffReceived); + connect(serialReader, &SerialReader::error, this, &Yamitracker::onError); + connect(serialReader, &SerialReader::connectionStatusChanged, this, &Yamitracker::onConnectionStatusChanged); + connect(serialReader, &SerialReader::deviceInfoReceived, this, &Yamitracker::onDeviceInfoReceived); + connect(ui->playButton, &QPushButton::clicked, this, &Yamitracker::onPlayClicked); + connect(ui->stopButton, &QPushButton::clicked, this, &Yamitracker::onStopClicked); + connect(refreshDevicesButton, &QPushButton::clicked, this, &Yamitracker::onRefreshDevicesClicked); + + connect(reconnectTimer, &QTimer::timeout, this, &Yamitracker::attemptReconnect); + reconnectTimer->start(5000); + + setStyleSheet( + "QMainWindow { background-color: #2b2b2b; color: white; }" + "QLabel { color: white; font-size: 14px; }" + "QPushButton { border: none; }" + "QPushButton[whiteKey=true] { background-color: white; color: black; border: 1px solid #ccc; font-size: 8pt; }" + "QPushButton[whiteKey=true]:pressed { background-color: #ff4444; }" + "QPushButton[blackKey=true] { background-color: black; color: white; font-size: 7pt; }" + "QPushButton[blackKey=true]:pressed { background-color: #ff4444; }" + "QProgressBar { border: 1px solid #555; background: #333; }" + "QProgressBar::chunk { background: #4CAF50; }" + ); + + // Автоматическое обнаружение устройства при запуске + QTimer::singleShot(1000, this, &Yamitracker::autoDetectAndConnect); + setWindowTitle("Yamaha PSR-E333 Monitor"); +} + +Yamitracker::~Yamitracker() +{ + if (serialReader) { + serialReader->stop(); + if (serialReader->isRunning()) { + serialReader->terminate(); + serialReader->wait(); + } + } + delete midiWriter; + delete yamiFile; + delete deviceDetector; + delete ui; +} + +void Yamitracker::initializeDeviceDetection() +{ + deviceLabel->setText("Устройство: Поиск..."); + deviceLabel->setStyleSheet("color: orange;"); +} + +void Yamitracker::autoDetectAndConnect() +{ + MidiDeviceInfo yamahaDevice = deviceDetector->detectYamahaDevice(); + + if (!yamahaDevice.port.isEmpty()) { + serialReader->setDevice(yamahaDevice.port); + deviceLabel->setText(QString("Устройство: %1 %2").arg(yamahaDevice.manufacturer, yamahaDevice.model)); + deviceLabel->setStyleSheet("color: green;"); + qDebug() << "Auto-detected device:" << yamahaDevice.name << "on port:" << yamahaDevice.port; + } else { + deviceLabel->setText("Устройство: Не найдено"); + deviceLabel->setStyleSheet("color: red;"); + } + + startSerialReader(); +} + +void Yamitracker::onDeviceInfoReceived(const QString &manufacturer, const QString &model) +{ + deviceLabel->setText(QString("Устройство: %1 %2").arg(manufacturer, model)); + deviceLabel->setStyleSheet("color: green;"); + + // Обновляем заголовок окна с информацией об устройстве + setWindowTitle(QString("Yamitracker - %1 %2").arg(manufacturer, model)); +} + +void Yamitracker::onRefreshDevicesClicked() +{ + deviceLabel->setText("Устройство: Обновление..."); + deviceLabel->setStyleSheet("color: orange;"); + + // Перезапускаем обнаружение + autoDetectAndConnect(); +} + +void Yamitracker::startSerialReader() +{ + if (serialReader && !serialReader->isRunning()) { + serialReader->start(); + } +} + +void Yamitracker::initializeKeyButtons() +{ + QList whiteKeys = { + ui->key_C1, ui->key_D1, ui->key_E1, ui->key_F1, ui->key_G1, ui->key_A1, ui->key_B1, + ui->key_C2, ui->key_D2, ui->key_E2, ui->key_F2, ui->key_G2, ui->key_A2, ui->key_B2, + ui->key_C3, ui->key_D3, ui->key_E3, ui->key_F3, ui->key_G3, ui->key_A3, ui->key_B3, + ui->key_C4, ui->key_D4, ui->key_E4, ui->key_F4, ui->key_G4, ui->key_A4, ui->key_B4, + ui->key_C5, ui->key_D5, ui->key_E5, ui->key_F5, ui->key_G5, ui->key_A5, ui->key_B5, + ui->key_C6 + }; + + for (QPushButton *key : whiteKeys) { + key->setProperty("whiteKey", true); + keyButtons[key->text()] = key; + } + + QList blackKeys = { + ui->key_Cs1, ui->key_Ds1, ui->key_Fs1, ui->key_Gs1, ui->key_As1, + ui->key_Cs2, ui->key_Ds2, ui->key_Fs2, ui->key_Gs2, ui->key_As2, + ui->key_Cs3, ui->key_Ds3, ui->key_Fs3, ui->key_Gs3, ui->key_As3, + ui->key_Cs4, ui->key_Ds4, ui->key_Fs4, ui->key_Gs4, ui->key_As4, + ui->key_Cs5, ui->key_Ds5, ui->key_Fs5, ui->key_Gs5, ui->key_As5 + }; + + for (QPushButton *key : blackKeys) { + key->setProperty("blackKey", true); + keyButtons[key->text()] = key; + } +} + +void Yamitracker::onNoteOnReceived(const QString &data, int velocity) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.insert(note); + highlightKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + int volume = (velocity * 100) / 127; + ui->volumeBar->setValue(volume); + + if (midiWriter->isRecording()) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + midiWriter->addNoteOn(currentTime, 0, noteNumber, velocity); + + if (yamiFile->getTracks().empty()) { + yamiFile->addTrack(0); + } + + auto& track = yamiFile->getTracks()[0]; + track.notes.emplace_back(noteNumber, currentTime, 0.0f, velocity); + + activeNotes[data] = &track.notes.back(); + } + } +} + +void Yamitracker::onNoteOffReceived(const QString &data) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.remove(note); + clearKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + if (currentlyPressedKeys.isEmpty()) { + ui->volumeBar->setValue(0); + } + + if (midiWriter->isRecording()) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + midiWriter->addNoteOff(currentTime, 0, noteNumber); + + if (activeNotes.contains(data)) { + yami::Note* activeNote = activeNotes[data]; + activeNote->duration = currentTime - activeNote->start_time; + activeNotes.remove(data); + } + } + } +} + +void Yamitracker::onConnectionStatusChanged(bool connected) +{ + isConnected = connected; + if (connected) { + ui->statusLabel->setText("Статус: Подключено к синтезатору"); + ui->statusLabel->setStyleSheet("color: green;"); + } else { + ui->statusLabel->setText("Статус: Отключено (переподключение...)"); + ui->statusLabel->setStyleSheet("color: red;"); + } +} + +void Yamitracker::attemptReconnect() +{ + if (!isConnected && (!serialReader || !serialReader->isRunning())) { + qDebug() << "Attempting to reconnect..."; + startSerialReader(); + } +} + +void Yamitracker::onError(const QString &message) +{ + ui->statusLabel->setText("Ошибка: " + message); + ui->statusLabel->setStyleSheet("color: orange;"); + if (!message.contains("reconnect", Qt::CaseInsensitive)) { + QMessageBox::warning(this, "Ошибка", message); + } +} + +void Yamitracker::onPlayClicked() +{ + ui->statusLabel->setText("Воспроизведение..."); + ui->statusLabel->setStyleSheet("color: blue;"); + + QString baseFilename = "recording_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss"); + + yamiFile->clear(); + yamiFile->addTrack(0); + yamiFile->setBPM(120.0f); + + activeNotes.clear(); + + if (midiWriter->startRecording(baseFilename + ".mid")) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started recording to:" << baseFilename; + } +} + +void Yamitracker::onStopClicked() +{ + ui->statusLabel->setText("Остановлено"); + ui->statusLabel->setStyleSheet("color: white;"); + clearAllHighlights(); + currentlyPressedKeys.clear(); + ui->keysInfoLabel->setText("Нажато клавиш: 0"); + ui->volumeBar->setValue(0); + + if (midiWriter->isRecording()) { + midiWriter->stopRecording(); + QString baseFilename = "recording_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss"); + saveAllFormats(baseFilename); + } +} + +void Yamitracker::saveAllFormats(const QString &baseFilename) +{ + QString midiFilename = baseFilename + ".mid"; + if (midiWriter->saveToFile(midiFilename)) { + qDebug() << "MIDI file saved:" << midiFilename; + } + + QString yamiTextFilename = baseFilename + ".yami"; + if (yamiFile->saveToText(yamiTextFilename.toStdString())) { + qDebug() << "YAMI text file saved:" << yamiTextFilename; + } + + QString yamiBinaryFilename = baseFilename + ".yamb"; + if (yamiFile->saveToBinary(yamiBinaryFilename.toStdString())) { + qDebug() << "YAMI binary file saved:" << yamiBinaryFilename; + } + + ui->statusLabel->setText(QString("Сохранено: %1 (MIDI, YAMI текстовый, YAMI бинарный)").arg(baseFilename)); +} + +void Yamitracker::highlightKey(const QString ¬e) +{ + if (keyButtons.contains(note)) { + QPushButton *key = keyButtons[note]; + key->setStyleSheet("background-color: #ff4444; color: white; border: 2px solid red;"); + } +} + +void Yamitracker::clearKey(const QString ¬e) +{ + if (!keyButtons.contains(note)) return; + QPushButton *key = keyButtons[note]; + if (key->property("whiteKey").toBool()) + key->setStyleSheet("background-color: white; color: black; border: 1px solid #ccc;"); + else + key->setStyleSheet("background-color: black; color: white;"); +} + +void Yamitracker::clearAllHighlights() +{ + for (auto i = keyButtons.begin(); i != keyButtons.end(); ++i) { + clearKey(i.key()); + } +} + +void Yamitracker::clearStatusMessage() +{ + ui->statusLabel->setText("Статус: Готов"); + ui->statusLabel->setStyleSheet("color: white;"); +} \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/yamitracker.h b/Yamitracker-reoload/YamitrackerQT/Yamitracker/yamitracker.h new file mode 100644 index 0000000..a4fa2ee --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/yamitracker.h @@ -0,0 +1,103 @@ +#ifndef YAMITRACKER_H +#define YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include "simplemidiwriter.h" +#include "yamimedia.h" +#include "mididevicedetector.h" + +QT_BEGIN_NAMESPACE +namespace Ui { class Yamitracker; } +QT_END_NAMESPACE + +class SerialReader : public QThread +{ + Q_OBJECT +public: + explicit SerialReader(QObject *parent = nullptr) : QThread(parent) + { + shouldStop = false; + currentDevice = "/dev/dmmidi1"; + } + + void stop() + { + shouldStop = true; + } + + void setDevice(const QString& device) { + currentDevice = device; + } + + QString getCurrentDevice() const { + return currentDevice; + } + +protected: + void run() override; + +private: + bool shouldStop; + QString currentDevice; + +signals: + void noteOnReceived(const QString ¬e, int velocity); + void noteOffReceived(const QString ¬e); + void error(const QString &message); + void connectionStatusChanged(bool connected); + void deviceInfoReceived(const QString &manufacturer, const QString &model); +}; + +class Yamitracker : public QMainWindow +{ + Q_OBJECT + +public: + Yamitracker(QWidget *parent = nullptr); + ~Yamitracker(); + +private slots: + void onNoteOnReceived(const QString ¬e, int velocity); + void onNoteOffReceived(const QString ¬e); + void onError(const QString &message); + void onPlayClicked(); + void onStopClicked(); + void clearStatusMessage(); + void onConnectionStatusChanged(bool connected); + void attemptReconnect(); + void onDeviceInfoReceived(const QString &manufacturer, const QString &model); + void onRefreshDevicesClicked(); + +private: + Ui::Yamitracker *ui; + SerialReader *serialReader; + QHash keyButtons; + QSet currentlyPressedKeys; + QTimer *reconnectTimer; + bool isConnected; + SimpleMidiWriter *midiWriter; + yami::YamiFile *yamiFile; + double recordingStartTime; + QHash activeNotes; + MidiDeviceDetector *deviceDetector; + QLabel *deviceLabel; + QPushButton *refreshDevicesButton; + + void initializeKeyButtons(); + void highlightKey(const QString ¬e); + void clearKey(const QString ¬e); + void clearAllHighlights(); + void startSerialReader(); + void saveAllFormats(const QString &baseFilename); + void initializeDeviceDetection(); + void autoDetectAndConnect(); +}; + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerQT/Yamitracker/yamitracker.ui b/Yamitracker-reoload/YamitrackerQT/Yamitracker/yamitracker.ui new file mode 100644 index 0000000..63313a0 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/Yamitracker/yamitracker.ui @@ -0,0 +1,1356 @@ + + + Yamitracker + + + + 0 + 0 + 1492 + 500 + + + + Yamaha PSR-E333 Monitor + + + + + + + + + Play + + + + + + + Stop + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + NoteLog + + + + + + + Keys: 36 white + 25 black = 61 total + + + + + + + Устройство: Не подключено + + + + + + + Обновить устройства + + + + + + + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + C#1 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + D#1 + + + + + + + Qt::Horizontal + + + + 35 + 20 + + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + F#1 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + G#1 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + A#1 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + C#2 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + D#2 + + + + + + + Qt::Horizontal + + + + 35 + 20 + + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + F#2 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + G#2 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + A#2 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + C#3 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + D#3 + + + + + + + Qt::Horizontal + + + + 35 + 20 + + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + F#3 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + G#3 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + A#3 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + C#4 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + D#4 + + + + + + + Qt::Horizontal + + + + 35 + 20 + + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + F#4 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + G#4 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + A#4 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + C#5 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + D#5 + + + + + + + Qt::Horizontal + + + + 35 + 20 + + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + F#5 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + G#5 + + + + + + + + 25 + 80 + + + + + 25 + 80 + + + + A#5 + + + + + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + C1 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + D1 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + E1 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + F1 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + G1 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + A1 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + B1 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + C2 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + D2 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + E2 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + F2 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + G2 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + A2 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + B2 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + C3 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + D3 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + E3 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + F3 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + G3 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + A3 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + B3 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + C4 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + D4 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + E4 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + F4 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + G4 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + A4 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + B4 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + C5 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + D5 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + E5 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + F5 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + G5 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + A5 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + B5 + + + + + + + + 35 + 120 + + + + + 35 + 120 + + + + C6 + + + + + + + + + + + + + Volume: + + + + + + + 0 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Status: Ready + + + + + + + + + + + \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerQT/buildTest/.qmake.stash b/Yamitracker-reoload/YamitrackerQT/buildTest/.qmake.stash new file mode 100644 index 0000000..99e66aa --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/buildTest/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 201703L +QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13 +QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3 +QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_GCC_MAJOR_VERSION \ + QMAKE_GCC_MINOR_VERSION \ + QMAKE_GCC_PATCH_VERSION +QMAKE_CXX.INCDIRS = \ + /usr/include/c++/13 \ + /usr/include/x86_64-linux-gnu/c++/13 \ + /usr/include/c++/13/backward \ + /usr/lib/gcc/x86_64-linux-gnu/13/include \ + /usr/local/include \ + /usr/include/x86_64-linux-gnu \ + /usr/include +QMAKE_CXX.LIBDIRS = \ + /usr/lib/gcc/x86_64-linux-gnu/13 \ + /usr/lib/x86_64-linux-gnu \ + /usr/lib \ + /lib/x86_64-linux-gnu \ + /lib diff --git a/Yamitracker-reoload/YamitrackerQT/buildTest/Makefile b/Yamitracker-reoload/YamitrackerQT/buildTest/Makefile new file mode 100644 index 0000000..ac7d81a --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/buildTest/Makefile @@ -0,0 +1,341 @@ +############################################################################# +# Makefile for building: yami_test +# Generated by qmake (3.1) (Qt 5.15.13) +# Project: ../yamiplay.pro +# Template: app +# Command: /usr/lib/qt5/bin/qmake -o Makefile ../yamiplay.pro +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = +CFLAGS = -pipe -O2 -Wall -Wextra -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++11 -Wall -Wextra -fPIC $(DEFINES) +INCPATH = -I../../YamitrackerQT -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +QMAKE = /usr/lib/qt5/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall +QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = yami_test1.0.0 +DISTDIR = /home/sofft328/progs/Yamitracker/YamitrackerQT/buildTest/.tmp/yami_test1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 +LIBS = $(SUBLIBS) -lasound -lm +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../testPlayYami.cpp \ + ../yamiplay.cpp +OBJECTS = testPlayYami.o \ + yamiplay.o +DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + ../.qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../../yamiplay.pro yamiplay.h ../testPlayYami.cpp \ + ../yamiplay.cpp +QMAKE_TARGET = yami_test +DESTDIR = +TARGET = yami_test + + +first: all +####### Build rules + +yami_test: $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../yamiplay.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \ + .qmake.stash \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ + ../yamiplay.pro + $(QMAKE) -o Makefile ../yamiplay.pro +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf: +.qmake.stash: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf: +/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf: +../yamiplay.pro: +qmake: FORCE + @$(QMAKE) -o Makefile ../yamiplay.pro + +qmake_all: FORCE + + +all: Makefile yami_test + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +check: first + +benchmark: first + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: + +####### Compile + +testPlayYami.o: ../testPlayYami.cpp ../yamiplay.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o testPlayYami.o ../testPlayYami.cpp + +yamiplay.o: ../yamiplay.cpp ../yamiplay.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamiplay.o ../yamiplay.cpp + +####### Install + +install: FORCE + +uninstall: FORCE + +FORCE: + diff --git a/Yamitracker-reoload/YamitrackerQT/recording_20251122_134215.yamb b/Yamitracker-reoload/YamitrackerQT/recording_20251122_134215.yamb new file mode 100644 index 0000000..c1ed960 Binary files /dev/null and b/Yamitracker-reoload/YamitrackerQT/recording_20251122_134215.yamb differ diff --git a/Yamitracker-reoload/YamitrackerQT/testPlayYami.cpp b/Yamitracker-reoload/YamitrackerQT/testPlayYami.cpp new file mode 100644 index 0000000..b1d334c --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/testPlayYami.cpp @@ -0,0 +1,175 @@ +#include "yamiplay.h" +#include +#include + +namespace yami { + +ALSAPlayer::ALSAPlayer() + : pcmHandle(nullptr), running(false), sampleRate(44100), + currentTime(0.0), masterVolume(0.3f) { + voices.resize(8); // 8 голосов полифонии +} + +ALSAPlayer::~ALSAPlayer() { + stopAll(); + if (pcmHandle) { + snd_pcm_close(pcmHandle); + } +} + +bool ALSAPlayer::initialize() { + int err = snd_pcm_open(&pcmHandle, "default", SND_PCM_STREAM_PLAYBACK, 0); + if (err < 0) { + std::cerr << "Cannot open audio device: " << snd_strerror(err) << std::endl; + return false; + } + + snd_pcm_hw_params_t* hw_params; + snd_pcm_hw_params_alloca(&hw_params); + + err = snd_pcm_hw_params_any(pcmHandle, hw_params); + if (err < 0) { + std::cerr << "Cannot initialize hardware parameters: " << snd_strerror(err) << std::endl; + return false; + } + + err = snd_pcm_hw_params_set_access(pcmHandle, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED); + if (err < 0) { + std::cerr << "Cannot set access type: " << snd_strerror(err) << std::endl; + return false; + } + + err = snd_pcm_hw_params_set_format(pcmHandle, hw_params, SND_PCM_FORMAT_S16_LE); + if (err < 0) { + std::cerr << "Cannot set sample format: " << snd_strerror(err) << std::endl; + return false; + } + + unsigned int actualRate = sampleRate; + err = snd_pcm_hw_params_set_rate_near(pcmHandle, hw_params, &actualRate, 0); + if (err < 0) { + std::cerr << "Cannot set sample rate: " << snd_strerror(err) << std::endl; + return false; + } + + err = snd_pcm_hw_params_set_channels(pcmHandle, hw_params, 1); + if (err < 0) { + std::cerr << "Cannot set channel count: " << snd_strerror(err) << std::endl; + return false; + } + + err = snd_pcm_hw_params(pcmHandle, hw_params); + if (err < 0) { + std::cerr << "Cannot set hardware parameters: " << snd_strerror(err) << std::endl; + return false; + } + + running = true; + audioThread = std::thread(&ALSAPlayer::audioThreadFunction, this); + + return true; +} + +void ALSAPlayer::audioThreadFunction() { + const uint32_t bufferSize = 512; + int16_t buffer[bufferSize]; + + while (running) { + generateSamples(buffer, bufferSize); + + int frames = snd_pcm_writei(pcmHandle, buffer, bufferSize); + if (frames == -EPIPE) { + std::cerr << "Underrun occurred" << std::endl; + snd_pcm_prepare(pcmHandle); + } else if (frames < 0) { + std::cerr << "Error writing to PCM device: " << snd_strerror(frames) << std::endl; + } + + // Небольшая пауза чтобы не грузить CPU + std::this_thread::sleep_for(std::chrono::milliseconds(1)); + } +} + +void ALSAPlayer::generateSamples(int16_t* buffer, uint32_t count) { + std::lock_guard lock(audioMutex); + + for (uint32_t i = 0; i < count; ++i) { + float sample = 0.0f; + + for (auto& voice : voices) { + if (voice.active) { + sample += generateWaveform(voice.phase, voice.note) * voice.amplitude; + voice.phase += voice.phaseIncrement; + + if (voice.phase >= 2.0 * M_PI) { + voice.phase -= 2.0 * M_PI; + } + + // ADSR envelope - release phase + if (voice.releaseTime > 0.0f) { + voice.amplitude -= voice.amplitude * 0.01f; + if (voice.amplitude < 0.001f) { + voice.active = false; + } + } + } + } + + // Ограничение и преобразование в 16-бит + sample = std::max(-1.0f, std::min(1.0f, sample)); + buffer[i] = static_cast(sample * 32767.0f); + + currentTime += 1.0 / sampleRate; + } +} + +float ALSAPlayer::generateWaveform(double phase, uint8_t note) { + // Пилообразная волна с небольшой синусоидальной составляющей + double saw = 2.0 * (phase / (2.0 * M_PI)) - 1.0; + double sine = sin(phase); + + // Смешиваем волны для более интересного тембра + return 0.7f * saw + 0.3f * sine; +} + +void ALSAPlayer::playNote(uint8_t note, uint8_t velocity, double duration) { + std::lock_guard lock(audioMutex); + + for (auto& voice : voices) { + if (!voice.active) { + voice.note = note; + voice.phase = 0.0; + double frequency = 440.0 * pow(2.0, (note - 69) / 12.0); + voice.phaseIncrement = (2.0 * M_PI * frequency) / sampleRate; + voice.amplitude = (velocity / 127.0f) * masterVolume; + voice.releaseTime = 0.0f; + voice.active = true; + std::cout << "Playing note: " << (int)note << " (freq: " << frequency << "Hz)" << std::endl; + break; + } + } +} + +void ALSAPlayer::stopNote(uint8_t note) { + std::lock_guard lock(audioMutex); + + for (auto& voice : voices) { + if (voice.active && voice.note == note) { + voice.releaseTime = 0.1f; // 100ms release + } + } +} + +void ALSAPlayer::stopAll() { + running = false; + if (audioThread.joinable()) { + audioThread.join(); + } + + std::lock_guard lock(audioMutex); + for (auto& voice : voices) { + voice.active = false; + } +} + +} // namespace yami \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerQT/yamiplay.cpp b/Yamitracker-reoload/YamitrackerQT/yamiplay.cpp new file mode 100644 index 0000000..a707823 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/yamiplay.cpp @@ -0,0 +1,193 @@ +#include "yamiplay.h" +#include +#include +#include + +namespace yami { + +bool AudioSample::loadWAV(const std::string& filename) { + SDL_AudioSpec wavSpec; + Uint32 wavLength; + Uint8* wavBuffer; + + if (!SDL_LoadWAV(filename.c_str(), &wavSpec, &wavBuffer, &wavLength)) { + std::cerr << "Failed to load WAV: " << filename << " - " << SDL_GetError() << std::endl; + return false; + } + + sampleRate = wavSpec.freq; + + // Конвертируем в 16-битный моно + if (wavSpec.format == AUDIO_S16SYS && wavSpec.channels == 1) { + samples.resize(wavLength / 2); + memcpy(samples.data(), wavBuffer, wavLength); + } else { + // Простая конвертация (для реального использования нужна более сложная) + samples.resize(wavLength / (wavSpec.channels * 2)); + // Упрощенная конвертация - берем только первый канал + for (size_t i = 0; i < samples.size(); ++i) { + samples[i] = reinterpret_cast(wavBuffer)[i * wavSpec.channels]; + } + } + + length = samples.size(); + SDL_FreeWAV(wavBuffer); + return true; +} + +AudioPlayer::AudioPlayer() : audioDevice(0), position(0), volume(1.0f) {} + +AudioPlayer::~AudioPlayer() { + if (audioDevice) { + SDL_CloseAudioDevice(audioDevice); + } +} + +bool AudioPlayer::initialize() { + SDL_AudioSpec desired, obtained; + + SDL_zero(desired); + desired.freq = 44100; + desired.format = AUDIO_S16SYS; + desired.channels = 1; + desired.samples = 4096; + desired.callback = audioCallback; + desired.userdata = this; + + audioDevice = SDL_OpenAudioDevice(nullptr, 0, &desired, &obtained, 0); + if (!audioDevice) { + std::cerr << "Failed to open audio: " << SDL_GetError() << std::endl; + return false; + } + + SDL_PauseAudioDevice(audioDevice, 0); + return true; +} + +bool AudioPlayer::loadNoteSample(uint8_t note, const std::string& filename) { + AudioSample sample; + if (sample.loadWAV(filename)) { + noteSamples[note] = sample; + return true; + } + return false; +} + +void AudioPlayer::playNote(uint8_t note, uint8_t velocity) { + std::lock_guard lock(audioMutex); + auto it = noteSamples.find(note); + if (it != noteSamples.end()) { + activeSamples.emplace_back(0, &it->second); + } +} + +void AudioPlayer::stopNote(uint8_t note) { + // Для семплов просто даем доиграть +} + +void AudioPlayer::stopAll() { + std::lock_guard lock(audioMutex); + activeSamples.clear(); +} + +void AudioPlayer::audioCallback(void* userdata, Uint8* stream, int len) { + AudioPlayer* player = static_cast(userdata); + player->mixAudio(reinterpret_cast(stream), len / 2); +} + +void AudioPlayer::mixAudio(int16_t* stream, uint32_t length) { + std::lock_guard lock(audioMutex); + + // Очищаем буфер + memset(stream, 0, length * sizeof(int16_t)); + + // Микшируем активные семплы + for (auto it = activeSamples.begin(); it != activeSamples.end();) { + uint32_t& pos = it->first; + const AudioSample* sample = it->second; + + uint32_t samplesToMix = std::min(length, sample->length - pos); + + for (uint32_t i = 0; i < samplesToMix; ++i) { + int32_t mixed = stream[i] + static_cast(sample->samples[pos + i] * volume); + stream[i] = static_cast(std::max(-32768, std::min(32767, mixed))); + } + + pos += samplesToMix; + + if (pos >= sample->length) { + it = activeSamples.erase(it); + } else { + ++it; + } + } +} + +// Реализация 16-битного синтезатора +Synthesizer16Bit::Synthesizer16Bit(uint32_t rate) + : sampleRate(rate), masterVolume(0.3f) { + voices.resize(16); // 16 голосов полифонии +} + +void Synthesizer16Bit::noteOn(uint8_t note, uint8_t velocity) { + for (auto& voice : voices) { + if (!voice.active) { + voice.note = note; + voice.phase = 0.0f; + float frequency = 440.0f * pow(2.0f, (note - 69) / 12.0f); + voice.phaseIncrement = (2.0f * M_PI * frequency) / sampleRate; + voice.amplitude = (velocity / 127.0f) * masterVolume; + voice.releaseTime = 0.0f; + voice.active = true; + break; + } + } +} + +void Synthesizer16Bit::noteOff(uint8_t note) { + for (auto& voice : voices) { + if (voice.active && voice.note == note) { + voice.releaseTime = 0.1f; // 100ms release + } + } +} + +void Synthesizer16Bit::generateSamples(int16_t* buffer, uint32_t count) { + for (uint32_t i = 0; i < count; ++i) { + float sample = 0.0f; + + for (auto& voice : voices) { + if (voice.active) { + sample += generateWaveform(voice.phase, voice.note) * voice.amplitude; + voice.phase += voice.phaseIncrement; + + if (voice.phase >= 2.0f * M_PI) { + voice.phase -= 2.0f * M_PI; + } + + // ADSR envelope + if (voice.releaseTime > 0.0f) { + voice.amplitude -= voice.amplitude * 0.01f; + if (voice.amplitude < 0.001f) { + voice.active = false; + } + } + } + } + + buffer[i] = static_cast(sample * 32767.0f); + } +} + +float Synthesizer16Bit::generateWaveform(float phase, uint8_t note) { + // Простая пилообразная волна с фильтром для более приятного звучания + float saw = 2.0f * (phase / (2.0f * M_PI)) - 1.0f; + + // Добавляем немного синусоиды для смягчения + float sine = sin(phase); + + // Смешиваем волны + return 0.7f * saw + 0.3f * sine; +} + +} // namespace yami \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerQT/yamiplay.h b/Yamitracker-reoload/YamitrackerQT/yamiplay.h new file mode 100644 index 0000000..314a1cd --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/yamiplay.h @@ -0,0 +1,51 @@ +#ifndef ALSAPLAYER_H +#define ALSAPLAYER_H + +#include +#include +#include +#include +#include +#include +#include + +namespace yami { + +class ALSAPlayer { +private: + snd_pcm_t* pcmHandle; + std::thread audioThread; + std::atomic running; + std::mutex audioMutex; + + struct NoteEvent { + uint8_t note; + uint8_t velocity; + double startTime; + double duration; + bool active; + }; + + std::vector scheduledNotes; + uint32_t sampleRate; + double currentTime; + + void audioThreadFunction(); + void generateAudioBuffer(int16_t* buffer, uint32_t frames); + float generateNoteSample(uint8_t note, double time); + +public: + ALSAPlayer(); + ~ALSAPlayer(); + + bool initialize(); + void playNote(uint8_t note, uint8_t velocity = 127, double duration = 0.0); + void stopNote(uint8_t note); + void playYamiFile(const std::string& filename); + void stop(); + void setSampleRate(uint32_t rate) { sampleRate = rate; } +}; + +} // namespace yami + +#endif \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerQT/yamiplay.pro b/Yamitracker-reoload/YamitrackerQT/yamiplay.pro new file mode 100644 index 0000000..17981fa --- /dev/null +++ b/Yamitracker-reoload/YamitrackerQT/yamiplay.pro @@ -0,0 +1,12 @@ +TEMPLATE = app +TARGET = yami_test +CONFIG += console c++11 +CONFIG -= app_bundle qt + +SOURCES += testPlayYami.cpp \ + yamiplay.cpp + +LIBS += -lasound -lm + +HEADERS += \ + yamiplay.h \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerTestQT.tar.gz b/Yamitracker-reoload/YamitrackerTestQT.tar.gz new file mode 100644 index 0000000..9bfef92 Binary files /dev/null and b/Yamitracker-reoload/YamitrackerTestQT.tar.gz differ diff --git a/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/.gitignore b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/.gitignore new file mode 100644 index 0000000..aa3808c --- /dev/null +++ b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/.gitignore @@ -0,0 +1,82 @@ +# This file is used to ignore files which are generated +# ---------------------------------------------------------------------------- + +*~ +*.autosave +*.a +*.core +*.moc +*.o +*.obj +*.orig +*.rej +*.so +*.so.* +*_pch.h.cpp +*_resource.rc +*.qm +.#* +*.*# +core +!core/ +tags +.DS_Store +.directory +*.debug +Makefile* +*.prl +*.app +moc_*.cpp +ui_*.h +qrc_*.cpp +Thumbs.db +*.res +*.rc +/.qmake.cache +/.qmake.stash + +# qtcreator generated files +*.pro.user* +*.qbs.user* +CMakeLists.txt.user* + +# xemacs temporary files +*.flc + +# Vim temporary files +.*.swp + +# Visual Studio generated files +*.ib_pdb_index +*.idb +*.ilk +*.pdb +*.sln +*.suo +*.vcproj +*vcproj.*.*.user +*.ncb +*.sdf +*.opensdf +*.vcxproj +*vcxproj.* + +# MinGW generated files +*.Debug +*.Release + +# Python byte code +*.pyc + +# Binaries +# -------- +*.dll +*.exe + +# Directories with generated files +.moc/ +.obj/ +.pch/ +.rcc/ +.uic/ +/build*/ diff --git a/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/Yamitracker.pro b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/Yamitracker.pro new file mode 100644 index 0000000..b1d0486 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/Yamitracker.pro @@ -0,0 +1,47 @@ +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +QT += core gui widgets multimedia + +CONFIG += c++17 + +# You can make your code fail to compile if it uses deprecated APIs. +# In order to do so, uncomment the following line. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +PROJECT_ROOT = $$PWD +BUILD_ROOT = $$PROJECT_ROOT/build + + +DESTDIR = /$$BUILD_ROOT/BIN +OBJECTS_DIR = /$$BUILD_ROOT/obj +RCC_DIR = /$$BUILD_ROOT/rcc +MOC_DIR = /$$BUILD_ROOT/moc +UI_DIR = /$$BUILD_ROOT/ui + + +SOURCES += \ + format/brrconverter.cpp \ + main.cpp \ + format/simplewavwriter.cpp \ +# format/spcrecord.cpp \ + src/yamitracker.cpp + +HEADERS += \ + format/brrconverter.h \ + format/simplewavwriter.h \ + # format/spcrecord.h \ + src/yamitracker.h + +FORMS += \ + ui/yamitracker.ui + +INCLUDEPATH += format +INCLUDEPATH += ui +INCLUDEPATH += src + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target diff --git a/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/brrconverter.cpp b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/brrconverter.cpp new file mode 100644 index 0000000..4b6cc0d --- /dev/null +++ b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/brrconverter.cpp @@ -0,0 +1,340 @@ +#include "brrconverter.h" +#include + +BrrConverter::BrrConverter(QObject *parent) : QObject(parent) +{ +} + +bool BrrConverter::convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath) +{ + QFile wavFile(wavFilePath); + if (!wavFile.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open WAV file:" << wavFilePath; + return false; + } + + int sampleRate, channels, bitsPerSample, dataSize; + if (!decodeWavHeader(wavFile, sampleRate, channels, bitsPerSample, dataSize)) { + qDebug() << "Invalid WAV file format"; + wavFile.close(); + return false; + } + + // Читаем аудиоданные + QByteArray audioData = wavFile.read(dataSize); + wavFile.close(); + + // Конвертируем в 16-bit моно + QVector samples; + int bytesPerSample = bitsPerSample / 8; + int totalSamples = dataSize / (bytesPerSample * channels); + + for (int i = 0; i < totalSamples; ++i) { + int32_t sample = 0; + + for (int ch = 0; ch < channels; ++ch) { + int32_t channelSample = 0; + int offset = (i * channels + ch) * bytesPerSample; + + if (bitsPerSample == 8) { + channelSample = (int8_t)audioData[offset]; + channelSample = (channelSample - 128) * 256; + } else if (bitsPerSample == 16) { + channelSample = (int16_t)((audioData[offset + 1] << 8) | audioData[offset]); + } else if (bitsPerSample == 24) { + channelSample = (int32_t)((audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + if (channelSample & 0x800000) channelSample |= 0xFF000000; + channelSample >>= 8; + } else if (bitsPerSample == 32) { + channelSample = (int32_t)((audioData[offset + 3] << 24) | + (audioData[offset + 2] << 16) | + (audioData[offset + 1] << 8) | + audioData[offset]); + channelSample >>= 16; + } + + sample += channelSample; + } + + // Микшируем каналы + sample /= channels; + samples.append(clamp16(sample)); + } + + // Понижаем частоту дискретизации для SNES (макс 32kHz -> 16kHz) + if (sampleRate > 16000) { + int ratio = sampleRate / 16000; + QVector downsampled; + for (int i = 0; i < samples.size(); i += ratio) { + downsampled.append(samples[i]); + } + samples = downsampled; + } else if (sampleRate < 16000) { + // Если частота ниже, повышаем (простое повторение) + int ratio = 16000 / sampleRate; + QVector upsampled; + for (int i = 0; i < samples.size(); ++i) { + for (int j = 0; j < ratio; ++j) { + upsampled.append(samples[i]); + } + } + samples = upsampled; + } + + // Открываем BRR файл для записи + QFile brrFile(brrFilePath); + if (!brrFile.open(QIODevice::WriteOnly)) { + qDebug() << "Cannot open BRR file for writing:" << brrFilePath; + return false; + } + + ADPCMState state; + QVector blockSamples; + + // Конвертируем в BRR блоками по 16 сэмплов + for (int i = 0; i < samples.size(); ++i) { + int encoded = encodeADPCMNibble(samples[i], state); + blockSamples.append(encoded); + + if (blockSamples.size() == 32) { // 32 ниббла = 16 сэмплов + writeBrrBlock(brrFile, blockSamples, false); + blockSamples.clear(); + } + } + + // Записываем последний неполный блок + if (!blockSamples.isEmpty()) { + // Дополняем до 32 нибблов + while (blockSamples.size() < 32) { + blockSamples.append(0); + } + writeBrrBlock(brrFile, blockSamples, true); // Последний блок с флагом loop + } else if (samples.size() > 0) { + // Если был полный последний блок, помечаем его как loop + brrFile.seek(brrFile.size() - BRR_BLOCK_SIZE); + unsigned char header = 0x03; // Фильтр 0, loop flag = 1 + brrFile.write((char*)&header, 1); + } + + brrFile.close(); + qDebug() << "BRR file created:" << brrFilePath << "samples:" << samples.size() << "sample rate:" << sampleRate; + return true; +} + +bool BrrConverter::convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath) +{ + qDebug() << "MIDI to BRR conversion requires MIDI synthesizer"; + qDebug() << "Please convert MIDI to WAV first, then use WAV to BRR"; + + return false; +} + +bool BrrConverter::decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize) +{ + char buffer[44]; + if (file.read(buffer, 44) != 44) { + return false; + } + + // Проверяем RIFF заголовок + if (buffer[0] != 'R' || buffer[1] != 'I' || buffer[2] != 'F' || buffer[3] != 'F') { + return false; + } + + // Проверяем WAVE формат + if (buffer[8] != 'W' || buffer[9] != 'A' || buffer[10] != 'V' || buffer[11] != 'E') { + return false; + } + + // Проверяем fmt chunk + if (buffer[12] != 'f' || buffer[13] != 'm' || buffer[14] != 't' || buffer[15] != ' ') { + return false; + } + + // Читаем параметры + int fmtSize = *(int*)(buffer + 16); + if (fmtSize < 16) return false; + + int audioFormat = *(short*)(buffer + 20); + if (audioFormat != 1) return false; // Только PCM + + channels = *(short*)(buffer + 22); + sampleRate = *(int*)(buffer + 24); + bitsPerSample = *(short*)(buffer + 34); + + // Ищем data chunk + int offset = 36; + while (offset < file.size()) { + file.seek(offset); + char chunkId[4]; + if (file.read(chunkId, 4) != 4) break; + + int chunkSize; + if (file.read((char*)&chunkSize, 4) != 4) break; + + if (chunkId[0] == 'd' && chunkId[1] == 'a' && chunkId[2] == 't' && chunkId[3] == 'a') { + dataSize = chunkSize; + file.seek(offset + 8); + return true; + } + + offset += 8 + chunkSize; + } + + return false; +} + +int16_t BrrConverter::clamp16(int sample) +{ + if (sample > 32767) return 32767; + if (sample < -32768) return -32768; + return (int16_t)sample; +} + +int BrrConverter::encodeADPCMNibble(int sample, ADPCMState &state) +{ + int diff = sample - state.prev_sample; + int step = step_table[state.prev_index]; + + // Квантование + int nibble = 0; + int predicted = state.prev_sample; + + // Применяем фильтр (простейший - без фильтра) + int filtered = predicted; + + diff = sample - filtered; + + // Находим наилучший nibble + int best_nibble = 0; + int best_error = INT_MAX; + + for (int n = 0; n < 16; ++n) { + int step_index = state.prev_index + ((n & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (n & 8) ? -current_step : current_step; + + int current_sample = filtered + delta; + int error = abs(sample - current_sample); + + if (error < best_error) { + best_error = error; + best_nibble = n; + } + } + + // Декодируем выбранный nibble для обновления состояния + int step_index = state.prev_index + ((best_nibble & 7) * 2 - 7); + if (step_index < 0) step_index = 0; + if (step_index > 88) step_index = 88; + + int current_step = step_table[step_index]; + int delta = (best_nibble & 8) ? -current_step : current_step; + + state.prev_sample = filtered + delta; + state.prev_index = step_index; + + // Ограничиваем индекс + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + // Ограничиваем сэмпл + state.prev_sample = clamp16(state.prev_sample); + + return best_nibble; +} + +void BrrConverter::writeBrrBlock(QFile &file, const QVector &samples, bool loop) +{ + if (samples.size() != 32) { + qDebug() << "Invalid sample count for BRR block:" << samples.size(); + return; + } + + unsigned char header = 0x00; + if (loop) { + header = 0x03; // Фильтр 0 + loop + } + + file.write((char*)&header, 1); + + // Упаковываем 32 ниббла в 8 байт + for (int i = 0; i < 16; ++i) { + unsigned char byte = (samples[i * 2] << 4) | (samples[i * 2 + 1] & 0x0F); + file.write((char*)&byte, 1); + } +} + +int BrrConverter::decodeADPCMNibble(int nibble, ADPCMState &state) +{ + int step = step_table[state.prev_index]; + int delta = step >> 3; + + if (nibble & 1) delta += step >> 2; + if (nibble & 2) delta += step >> 1; + if (nibble & 4) delta += step; + + if (nibble & 8) delta = -delta; + + // Применяем фильтр (простейший) + int sample = state.prev_sample + delta; + + // Ограничиваем + sample = clamp16(sample); + + // Обновляем индекс + state.prev_index += ((nibble & 7) * 2 - 7); + if (state.prev_index < 0) state.prev_index = 0; + if (state.prev_index > 88) state.prev_index = 88; + + state.prev_sample = sample; + + return sample; +} + +QVector BrrConverter::decodeBrrFile(const QString &brrFilePath) +{ + QVector samples; + QFile file(brrFilePath); + + if (!file.open(QIODevice::ReadOnly)) { + qDebug() << "Cannot open BRR file for reading:" << brrFilePath; + return samples; + } + + ADPCMState state; + + while (!file.atEnd()) { + unsigned char header; + if (file.read((char*)&header, 1) != 1) break; + + unsigned char data[8]; + if (file.read((char*)data, 8) != 8) break; + + // Извлекаем нибблы + for (int i = 0; i < 8; ++i) { + unsigned char byte = data[i]; + int nibble1 = (byte >> 4) & 0x0F; + int nibble2 = byte & 0x0F; + + int sample1 = decodeADPCMNibble(nibble1, state); + int sample2 = decodeADPCMNibble(nibble2, state); + + samples.append(sample1); + samples.append(sample2); + } + + // Проверяем конец + if (header & 0x01) { + break; // Конец сэмпла + } + } + + file.close(); + return samples; +} diff --git a/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/brrconverter.h b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/brrconverter.h new file mode 100644 index 0000000..eb3b36f --- /dev/null +++ b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/brrconverter.h @@ -0,0 +1,54 @@ +#ifndef BRRCONVERTER_H +#define BRRCONVERTER_H + +#include +#include +#include +#include +#include + +class BrrConverter : public QObject +{ + Q_OBJECT + +public: + BrrConverter(QObject *parent = nullptr); + + bool convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath); + bool convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath); + +private: + struct ADPCMState { + int prev_sample; + int prev_index; + + ADPCMState() : prev_sample(0), prev_index(0) {} + }; + + struct BRRBlock { + unsigned char header; + unsigned char data[8]; + }; + + bool decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize); + int16_t clamp16(int sample); + int encodeADPCMNibble(int sample, ADPCMState &state); + void writeBrrBlock(QFile &file, const QVector &samples, bool loop = false); + int decodeADPCMNibble(int nibble, ADPCMState &state); + QVector decodeBrrFile(const QString &brrFilePath); + + static const int BRR_BLOCK_SIZE = 9; + static const int SAMPLES_PER_BLOCK = 16; + static const int FILTER_TYPES = 4; + + const int step_table[89] = { + 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, + 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, + 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, + 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327, + 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, + 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 + }; +}; + +#endif diff --git a/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/simplewavwriter.cpp b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/simplewavwriter.cpp new file mode 100644 index 0000000..b8c420e --- /dev/null +++ b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/simplewavwriter.cpp @@ -0,0 +1,885 @@ +#include "simplewavwriter.h" +#include +#include +#include +#include +#include + +SimpleWavWriter::SimpleWavWriter(QObject *parent) + : QObject(parent), recording(false), paused(false), playbackSpeed(1.0), bassVolumeMultiplier(2.0) +{ + // Инициализируем дорожки + tracks.resize(MAX_TRACKS); + for (int i = 0; i < MAX_TRACKS; i++) { + tracks[i] = Track(i); // Используем конструктор с индексом + tracks[i].instrument = 1; // По умолчанию Grand Piano + tracks[i].volume = 1.0; + tracks[i].muted = false; + tracks[i].solo = false; + } + + // Настраиваем формат аудио + format.setSampleRate(SAMPLE_RATE); + format.setChannelCount(1); // Моно + format.setSampleSize(BIT_DEPTH); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); +} + +bool SimpleWavWriter::startRecording(int sampleRate) +{ + if (recording) return false; + + format.setSampleRate(sampleRate); + recording = true; + paused = false; + + emit recordingStatusChanged(true); + return true; +} + +void SimpleWavWriter::stopRecording() +{ + recording = false; + paused = false; + emit recordingStatusChanged(false); +} + +void SimpleWavWriter::pauseRecording() +{ + if (recording && !paused) { + paused = true; + } +} + +void SimpleWavWriter::resumeRecording() +{ + if (recording && paused) { + paused = false; + } +} + +void SimpleWavWriter::addNote(int track, double time, int note, int velocity, double duration, int instrument) +{ + if (track < 0 || track >= MAX_TRACKS) return; + + // Применяем множитель громкости для басовых инструментов + double volume = velocity / 127.0; + static QSet bassInstruments = {28, 33, 39, 40, 29, 37, 38}; + if (bassInstruments.contains(instrument)) { + volume *= bassVolumeMultiplier; + volume = qMin(volume, 1.0); // Ограничиваем максимальную громкость + } + + tracks[track].events.append(NoteEvent(time, note, velocity, duration, instrument, volume)); + tracks[track].instrument = instrument; + + emit trackUpdated(track); +} + +void SimpleWavWriter::clearTrack(int track) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].events.clear(); + emit trackUpdated(track); + } +} + +void SimpleWavWriter::clearAllTracks() +{ + for (int i = 0; i < MAX_TRACKS; i++) { + tracks[i].events.clear(); + emit trackUpdated(i); + } +} + +QString SimpleWavWriter::getTrackName(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].name; + } + return QString(); +} + +void SimpleWavWriter::setTrackName(int track, const QString &name) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].name = name; + emit trackUpdated(track); + } +} + +int SimpleWavWriter::getEventCount(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].events.size(); + } + return 0; +} + +int SimpleWavWriter::getTrackInstrument(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].instrument; + } + return 1; +} + +void SimpleWavWriter::setTrackInstrument(int track, int instrument) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].instrument = instrument; + emit trackUpdated(track); + } +} + +double SimpleWavWriter::getTrackVolume(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].volume; + } + return 1.0; +} + +void SimpleWavWriter::setTrackVolume(int track, double volume) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].volume = qBound(0.0, volume, 2.0); + emit trackUpdated(track); + } +} + +bool SimpleWavWriter::isTrackMuted(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].muted; + } + return false; +} + +void SimpleWavWriter::muteTrack(int track, bool muted) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].muted = muted; + emit trackUpdated(track); + } +} + +bool SimpleWavWriter::isTrackSolo(int track) const +{ + if (track >= 0 && track < MAX_TRACKS) { + return tracks[track].solo; + } + return false; +} + +void SimpleWavWriter::soloTrack(int track, bool solo) +{ + if (track >= 0 && track < MAX_TRACKS) { + tracks[track].solo = solo; + emit trackUpdated(track); + } +} + +QByteArray SimpleWavWriter::getTrackAudioData(int track, bool mix) +{ + if (track < 0 || track >= MAX_TRACKS) return QByteArray(); + + if (mix) { + // Смешиваем все дорожки + QVector allTracks; + for (int i = 0; i < MAX_TRACKS; i++) { + allTracks.append(i); + } + return mixTracks(allTracks); + } + + return mixTracks(QVector{track}); +} + +QByteArray SimpleWavWriter::getAllTracksAudioData() +{ + // Собираем индексы всех дорожек, которые не заглушены и имеют данные + QVector activeTracks; + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].muted && !tracks[i].events.isEmpty()) { + activeTracks.append(i); + } + } + + if (activeTracks.isEmpty()) { + return QByteArray(); + } + + return mixTracks(activeTracks); +} + +bool SimpleWavWriter::loadWavToTrack(const QString &filename, int track) +{ + // Временно заглушка - в реальной реализации нужно парсить WAV файл + QFile file(filename); + if (!file.open(QIODevice::ReadOnly)) return false; + + // Пропускаем заголовок WAV (44 байта) + file.seek(44); + QByteArray audioData = file.readAll(); + file.close(); + + // Создаем событие для импортированного аудио + if (!audioData.isEmpty()) { + // Очищаем дорожку и добавляем специальное событие + tracks[track].events.clear(); + // Здесь нужно добавить логику для импорта WAV + emit trackUpdated(track); + return true; + } + + return false; +} + +void SimpleWavWriter::copyTrack(int fromTrack, int toTrack) +{ + if (fromTrack < 0 || fromTrack >= MAX_TRACKS || + toTrack < 0 || toTrack >= MAX_TRACKS || fromTrack == toTrack) { + return; + } + + tracks[toTrack] = tracks[fromTrack]; + tracks[toTrack].name = QString("Копия %1").arg(tracks[fromTrack].name); + emit trackUpdated(toTrack); +} + +void SimpleWavWriter::mergeTrack(int fromTrack, int toTrack) +{ + if (fromTrack < 0 || fromTrack >= MAX_TRACKS || + toTrack < 0 || toTrack >= MAX_TRACKS || fromTrack == toTrack) { + return; + } + + tracks[toTrack].events.append(tracks[fromTrack].events); + // Сортируем события по времени + std::sort(tracks[toTrack].events.begin(), tracks[toTrack].events.end(), + [](const NoteEvent &a, const NoteEvent &b) { return a.time < b.time; }); + + emit trackUpdated(toTrack); +} + +void SimpleWavWriter::setPlaybackSpeed(double speed) +{ + playbackSpeed = qBound(0.5, speed, 2.0); +} + +void SimpleWavWriter::setBassVolumeMultiplier(double multiplier) +{ + bassVolumeMultiplier = qBound(1.0, multiplier, 4.0); +} + +QByteArray SimpleWavWriter::generateNoteAudio(int note, int velocity, double duration, int instrument, double volume) +{ + double frequency = noteToFrequency(note); + double amplitude = (velocity / 127.0) * volume; + + return generateInstrumentWave(instrument, frequency, duration, amplitude); +} + +QByteArray SimpleWavWriter::generateSilence(double duration) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray silence(samples * sizeof(qint16), 0); + return silence; +} + +void SimpleWavWriter::writeWavHeader(QFile &file, quint32 dataSize) +{ + // RIFF header + file.write("RIFF"); + file.write(intToBytes(36 + dataSize)); + file.write("WAVE"); + + // fmt chunk + file.write("fmt "); + file.write(intToBytes(16)); // chunk size + file.write(shortToBytes(1)); // audio format (PCM) + file.write(shortToBytes(format.channelCount())); // channels + file.write(intToBytes(format.sampleRate())); // sample rate + file.write(intToBytes(format.sampleRate() * format.channelCount() * format.sampleSize() / 8)); // byte rate + file.write(shortToBytes(format.channelCount() * format.sampleSize() / 8)); // block align + file.write(shortToBytes(format.sampleSize())); // bits per sample + + // data chunk + file.write("data"); + file.write(intToBytes(dataSize)); +} + +bool SimpleWavWriter::saveToFile(const QString &filename) +{ + // Получаем аудиоданные всех активных дорожек + QByteArray audioData = getAllTracksAudioData(); + if (audioData.isEmpty()) { + qDebug() << "Нет данных для сохранения - все дорожки пусты или заглушены"; + return false; + } + + QFile file(filename); + if (!file.open(QIODevice::WriteOnly)) { + qDebug() << "Не удалось открыть файл для записи:" << filename; + return false; + } + + // Записываем WAV заголовок + writeWavHeader(file, audioData.size()); + + // Записываем аудиоданные + qint64 bytesWritten = file.write(audioData); + file.close(); + + if (bytesWritten != audioData.size()) { + qDebug() << "Ошибка записи файла: записано" << bytesWritten << "байт из" << audioData.size(); + return false; + } + + // Выводим информацию о каждой дорожке + qDebug() << "Информация о дорожках"; + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].events.isEmpty()) { + qDebug() << "Дорожка" << i << ":" + << "нот:" << tracks[i].events.size() + << "время начала:" << tracks[i].events.first().time + << "время конца:" << (tracks[i].events.last().time + tracks[i].events.last().duration); + } + } + + return true; + + // Выводим информацию о сохраненном файле + double duration = audioData.size() / (2.0 * SAMPLE_RATE); // байты / (2 байта на сэмпл * частота) + int activeTracks = 0; + int totalNotes = 0; + + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].muted && !tracks[i].events.isEmpty()) { + activeTracks++; + totalNotes += tracks[i].events.size(); + } + } + + qDebug() << "Файл успешно сохранен:"; + qDebug() << " Имя файла:" << filename; + qDebug() << " Размер:" << audioData.size() << "байт"; + qDebug() << " Частота дискретизации:" << SAMPLE_RATE << "Гц"; + qDebug() << " Битрейт:" << (SAMPLE_RATE * 2 * 8) / 1000 << "кбит/с"; + qDebug() << " Длительность:" << duration << "секунд"; + qDebug() << " Активных дорожек:" << activeTracks; + qDebug() << " Всего нот:" << totalNotes; + + return true; +} + +// НОВЫЙ МЕТОД: Конвертирует время в секундах в тики Pently (базовый темп 1000) +int SimpleWavWriter::secondsToPentlyTicks(double seconds) const +{ + // Базовый темп: 1000 тиков в секунде + return static_cast(seconds * 1000.0); +} + +// НОВЫЙ МЕТОД: Конвертирует тики в строку задержки +QString SimpleWavWriter::ticksToDelayString(int ticks) const +{ + if (ticks <= 0) return QString(); + + // Определяем наилучшее представление задержки + if (ticks >= 2000) return QString("D_2"); + if (ticks >= 1000) return QString("D_1"); + if (ticks >= 500) return QString("D_D2"); + if (ticks >= 250) return QString("D_D4"); + if (ticks >= 125) return QString("D_D8"); + if (ticks >= 62) return QString("D_D16"); + if (ticks >= 31) return QString("D_2"); + if (ticks >= 16) return QString("D_4"); + if (ticks >= 8) return QString("D_8"); + if (ticks >= 4) return QString("D_16"); + if (ticks >= 2) return QString("D_32"); + + return QString("D_32"); +} + +// НОВЫЙ МЕТОД: Создает паттерн из событий дорожки +QString SimpleWavWriter::generatePattern(int trackIndex) const +{ + if (trackIndex < 0 || trackIndex >= tracks.size()) return QString(); + + const Track& track = tracks[trackIndex]; + if (track.events.isEmpty()) return QString(); + + QString pattern; + + // Сортируем события по времени + QVector sortedEvents = track.events; + std::sort(sortedEvents.begin(), sortedEvents.end(), + [](const NoteEvent &a, const NoteEvent &b) { return a.time < b.time; }); + + double lastTime = 0; + for (const NoteEvent &event : sortedEvents) { + // Вычисляем задержку от предыдущего события + double delay = event.time - lastTime; + if (delay > 0) { + int delayTicks = secondsToPentlyTicks(delay); + QString delayCmd = ticksToDelayString(delayTicks); + if (!delayCmd.isEmpty()) { + pattern += QString(" .byt %1\n").arg(delayCmd); + } + } + + // Добавляем ноту с ее длительностью + QString noteStr = noteToPentlyNote(event.note); + int durationTicks = secondsToPentlyTicks(event.duration); + QString durationStr = ticksToDelayString(durationTicks); + + pattern += QString(" .byt %1|%2\n").arg(noteStr).arg(durationStr); + + lastTime = event.time + event.duration; + } + + return pattern; +} + +// ИСПРАВЛЕННЫЙ МЕТОД: Сохранение в музыкальный файл Pently +bool SimpleWavWriter::saveToMusicFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { + qDebug() << "Не удалось открыть файл для записи:" << filename; + return false; + } + + QTextStream out(&file); + out.setCodec("UTF-8"); + + // 1. Проверяем, есть ли данные для сохранения + int trackCount = 0; + QVector trackIndices; + for (int i = 0; i < MAX_TRACKS; i++) { + if (!tracks[i].events.isEmpty()) { + trackCount++; + trackIndices.append(i); + } + } + + if (trackCount == 0) { + out << "; Нет данных для сохранения\n"; + file.close(); + return false; + } + + qDebug() << "Сохранение музыки: найдено" << trackCount << "дорожек с данными"; + + // 2. Заголовок файла + out << "; Generated by Yamitracker\n"; + out << "; Date: " << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss") << "\n"; + out << "; Tracks: " << trackCount << "\n\n"; + + // 3. Таблица инструментов + out << "music_inst_table:\n"; + + // Карта преобразования инструментов GM в Pently + QMap pentlyInstruments = { + {1, "PLING_8"}, // Grand Piano + {2, "PLING_4"}, // Bright Piano + {3, "PLING_2"}, // Harpsichord + {6, "PLING_2"}, // Harpsichord 2 + + // Bass instruments + {28, "BASSGUITAR"}, + {33, "BASSGUITAR"}, + {39, "BASSGUITAR"}, + {40, "BASSGUITAR"}, + + // Guitar/Overdrive + {29, "XYLSHORT"}, + {37, "XYLSHORT"}, + {38, "XYLSHORT"}, + + // Strings + {48, "XYLMED"}, + {49, "XYLMED"}, + + // Sax/Horn + {81, "HORNBLAT"}, + + // Bright + {95, "XYLSHORT"}, + {96, "XYLSHORT"}, + {100, "XYLSHORT"} + }; + + // Карта параметров инструментов Pently (lv, rv, frq, smp, att, dec, sus, lvl) + QMap instrumentParams = { + {"PLING_8", " 3, 10, 1, 0, 31, 19, 15, 2"}, + {"PLING_4", " 7, 7, 1, 1, 31, 19, 15, 2"}, + {"PLING_2", " 9, 6, 1, 2, 31, 17, 15, 2"}, + {"BASSGUITAR", "12, 12, 1, 4, 31, 17, 15, 8"}, + {"BASSCLAR", "12, 12, 1, 2, 21, 21, 27, 4"}, + {"HORNBLAT", " 3, 9, 1, 0, 21, 21, 27, 4"}, + {"XYLSHORT", "10, 6, 1, 2, 31, 23, 20, 2"}, + {"XYLMED", "10, 6, 1, 2, 31, 19, 17, 2"}, + {"STRING", "10, 6, 1, 2, 31, 23, 20, 2"} + }; + + // Генерируем уникальные инструменты для каждой дорожки + QMap trackInstruments; + for (int trackIndex : trackIndices) { + int gmInstrument = tracks[trackIndex].instrument; + QString pentlyInst = pentlyInstruments.value(gmInstrument, "PLING_8"); + trackInstruments[trackIndex] = pentlyInst; + + QString params = instrumentParams.value(pentlyInst, "10, 10, 1, 1, 31, 17, 15, 8"); + out << " INST " << pentlyInst << "," << params << "\n"; + } + + out << "\n"; + + // 4. Таблица паттернов + out << "pently_patterns:\n"; + for (int trackIndex : trackIndices) { + out << " .addr PPDAT_track" << trackIndex << "\n"; + } + + // 5. Данные паттернов + for (int trackIndex : trackIndices) { + out << "\nPPDAT_track" << trackIndex << ":\n"; + QString patternData = generatePattern(trackIndex); + if (patternData.isEmpty()) { + out << " .byt PATEND\n"; + } else { + out << patternData; + out << " .byt PATEND\n"; + } + } + + // 6. Таблица песен (теперь только ОДНА песня) + out << "\npently_songs:\n"; + out << " .addr PSDAT_main_song\n\n"; + + // 7. Создаем ОДНУ главную песню, которая управляет всеми дорожками + out << "PSDAT_main_song:\n"; + + // Определяем общую длительность композиции + double maxDuration = 0; + for (int trackIndex : trackIndices) { + const Track& track = tracks[trackIndex]; + for (const NoteEvent &event : track.events) { + double endTime = event.time + event.duration; + if (endTime > maxDuration) { + maxDuration = endTime; + } + } + } + + int totalTicks = secondsToPentlyTicks(maxDuration); + if (totalTicks < 1) totalTicks = 100; // Минимальная длительность + + qDebug() << "Общая длительность:" << maxDuration << "секунд =" << totalTicks << "тиков"; + + // Устанавливаем темп + out << " setTempo 1000\n"; + + // Запускаем все паттерны одновременно + int channel = 0; + for (int trackIndex : trackIndices) { + QString instName = trackInstruments[trackIndex]; + out << QString(" playPat %1, %2, 23, %3\n") + .arg(channel).arg(trackIndex).arg(instName); + channel++; + } + + // Ждем полную длительность композиции + out << QString(" waitRows %1\n").arg(totalTicks); + + // Останавливаем все паттерны + for (int i = 0; i < channel; i++) { + out << QString(" stopPat %1\n").arg(i); + } + + // Зацикливаем + out << " dalSegno\n"; + + file.close(); + + qDebug() << "Музыкальный файл сохранен:" << filename; + qDebug() << "Треков:" << trackCount; + qDebug() << "Максимальная длительность:" << maxDuration << "сек"; + qDebug() << "В тиках:" << totalTicks; + + return true; +} + +QByteArray SimpleWavWriter::mixTracks(const QVector &trackIndices) +{ + double maxDuration = 0; + for (int trackIndex : trackIndices) { + if (trackIndex < 0 || trackIndex >= MAX_TRACKS) continue; + const Track &track = tracks[trackIndex]; + for (const NoteEvent &event : track.events) { + double endTime = event.time + event.duration; + if (endTime > maxDuration) { + maxDuration = endTime; + } + } + } + + if (maxDuration <= 0) { + return QByteArray(); + } + + // Создаем буфер для микширования + int totalSamples = static_cast(maxDuration * format.sampleRate()); + QVector mixBuffer(totalSamples, 0); // Используем qint32 для предотвращения клиппинга + + // Обрабатываем каждую дорожку + for (int trackIndex : trackIndices) { + if (trackIndex < 0 || trackIndex >= MAX_TRACKS) continue; + const Track &track = tracks[trackIndex]; + + // Проверяем mute/solo + if (track.muted) continue; + + double trackVolume = track.volume; + + // Обрабатываем каждое событие в дорожке + for (const NoteEvent &event : track.events) { + // Генерируем аудио для ноты + QByteArray noteAudio = generateNoteAudio( + event.note, + event.velocity, + event.duration, + event.instrument, + event.volume * trackVolume + ); + + // Вычисляем начальный сэмпл (на основе абсолютного времени) + int startSample = static_cast(event.time * format.sampleRate()); + const qint16 *noteData = reinterpret_cast(noteAudio.constData()); + int noteSamples = noteAudio.size() / sizeof(qint16); + + // Микшируем ноту в общий буфер + for (int i = 0; i < noteSamples && startSample + i < totalSamples; i++) { + // Прибавляем ноту к миксу (используем qint32) + qint32 mixed = mixBuffer[startSample + i] + noteData[i]; + mixBuffer[startSample + i] = mixed; + } + } + } + + // Конвертируем буфер в QByteArray с ограничением (clamping) + QByteArray result; + result.resize(totalSamples * sizeof(qint16)); + qint16 *resultData = reinterpret_cast(result.data()); + for (int i = 0; i < totalSamples; i++) { + // Ограничиваем значение для предотвращения клиппинга + qint32 sample = mixBuffer[i]; + if (sample > 32767) sample = 32767; + if (sample < -32768) sample = -32768; + resultData[i] = static_cast(sample); + } + return result; +} + +double SimpleWavWriter::noteToFrequency(int note) const +{ + // Формула для преобразования ноты в частоту + return 440.0 * pow(2.0, (note - 69) / 12.0); +} + +QByteArray SimpleWavWriter::generateSineWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double angularFreq = 2.0 * M_PI * frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double value = sin(angularFreq * t); + buffer[i] = static_cast(value * maxAmplitude); + } + + return data; +} + +QByteArray SimpleWavWriter::generateSquareWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double period = 1.0 / frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double phase = fmod(t, period) / period; + buffer[i] = static_cast((phase < 0.5 ? maxAmplitude : -maxAmplitude)); + } + + return data; +} + +QByteArray SimpleWavWriter::generateSawtoothWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double period = 1.0 / frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double phase = fmod(t, period) / period; + buffer[i] = static_cast((2.0 * phase - 1.0) * maxAmplitude); + } + + return data; +} + +QByteArray SimpleWavWriter::generateTriangleWave(double frequency, double duration, double amplitude) +{ + int samples = static_cast(duration * format.sampleRate()); + QByteArray data(samples * sizeof(qint16), 0); + qint16 *buffer = reinterpret_cast(data.data()); + + double period = 1.0 / frequency; + double maxAmplitude = 32767.0 * amplitude; + + for (int i = 0; i < samples; i++) { + double t = i / static_cast(format.sampleRate()); + double phase = fmod(t, period) / period; + double value; + + if (phase < 0.25) { + value = 4.0 * phase; + } else if (phase < 0.75) { + value = 2.0 - 4.0 * phase; + } else { + value = 4.0 * phase - 4.0; + } + + buffer[i] = static_cast(value * maxAmplitude); + } + + return data; +} + +QByteArray SimpleWavWriter::generateInstrumentWave(int instrument, double frequency, double duration, double amplitude) +{ + // Выбираем форму волны в зависимости от инструмента + static QMap waveTypes = { + {1, "sine"}, {2, "sine"}, // Piano + {3, "square"}, {6, "square"}, // Harpsichord + {28, "sawtooth"}, {33, "sawtooth"}, {39, "sawtooth"}, {40, "square"}, // Bass + {29, "square"}, {37, "square"}, {38, "square"}, // Guitar + {48, "sine"}, {49, "sine"}, // Strings + {81, "sine"}, // Sax + {95, "triangle"}, {96, "triangle"}, {100, "triangle"} // Bright + }; + + QString waveType = waveTypes.value(instrument, "sine"); + + if (waveType == "square") { + return generateSquareWave(frequency, duration, amplitude); + } else if (waveType == "sawtooth") { + return generateSawtoothWave(frequency, duration, amplitude); + } else if (waveType == "triangle") { + return generateTriangleWave(frequency, duration, amplitude); + } else { + return generateSineWave(frequency, duration, amplitude); + } +} + +QByteArray SimpleWavWriter::intToBytes(qint32 value) +{ + QByteArray bytes(4, 0); + bytes[0] = static_cast(value & 0xFF); + bytes[1] = static_cast((value >> 8) & 0xFF); + bytes[2] = static_cast((value >> 16) & 0xFF); + bytes[3] = static_cast((value >> 24) & 0xFF); + return bytes; +} + +QByteArray SimpleWavWriter::shortToBytes(qint16 value) +{ + QByteArray bytes(2, 0); + bytes[0] = static_cast(value & 0xFF); + bytes[1] = static_cast((value >> 8) & 0xFF); + return bytes; +} + +QString SimpleWavWriter::noteToPentlyNote(int note) const +{ + // Преобразуем MIDI номер ноты в формат Pently + // MIDI: 60 = C4, 61 = C#4, 62 = D4, и т.д. + + int octave = note / 12; + int noteInOctave = note % 12; + + // Базовые названия нот + QString noteName; + switch (noteInOctave) { + case 0: noteName = "N_C"; break; + case 1: noteName = "N_CS"; break; + case 2: noteName = "N_D"; break; + case 3: noteName = "N_DS"; break; + case 4: noteName = "N_E"; break; + case 5: noteName = "N_F"; break; + case 6: noteName = "N_FS"; break; + case 7: noteName = "N_G"; break; + case 8: noteName = "N_GS"; break; + case 9: noteName = "N_A"; break; + case 10: noteName = "N_AS"; break; + case 11: noteName = "N_B"; break; + } + + // Добавляем октаву + if (octave == 4) { + // Средняя октава (C4-B4) - без суффикса в Pently + return noteName; + } else if (octave == 5) { + // Высокая октава (C5-B5) - добавляем H + return noteName + "H"; + } else if (octave == 3) { + // Низкая октава (C3-B3) - добавляем суффикс октавы + return noteName + "|OCTAVE_1"; + } else if (octave == 2) { + // Очень низкая октава (C2-B2) - добавляем суффикс + return noteName + "L"; + } else if (octave == 6) { + // Очень высокая октава (C6+) - добавляем суффикс + return noteName + "H|OCTAVE_1"; + } + + // По умолчанию возвращаем базовое имя + return noteName; +} + +QString SimpleWavWriter::durationToPentlyDuration(double duration) const +{ + // Конвертируем длительность в секундах в формат Pently + int ticks = secondsToPentlyTicks(duration); + return ticksToDelayString(ticks); +} + +QString SimpleWavWriter::instrumentToPentlyInstrument(int instrument) const +{ + static QMap instMap = { + {1, "PLING_8"}, {2, "PLING_4"}, {3, "PLING_2"}, {6, "PLING_2"}, + {28, "BASSGUITAR"}, {33, "BASSGUITAR"}, {39, "BASSGUITAR"}, {40, "BASSGUITAR"}, + {29, "XYLSHORT"}, {37, "XYLSHORT"}, {38, "XYLSHORT"}, + {48, "XYLMED"}, {49, "XYLMED"}, {81, "HORNBLAT"}, + {95, "XYLSHORT"}, {96, "XYLSHORT"}, {100, "XYLSHORT"} + }; + + return instMap.value(instrument, "PLING_8"); +} \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/simplewavwriter.h b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/simplewavwriter.h new file mode 100644 index 0000000..fa6eb87 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/simplewavwriter.h @@ -0,0 +1,133 @@ +// simplewavwriter.h +#ifndef SIMPLEWAVWRITER_H +#define SIMPLEWAVWRITER_H + +#include +#include +#include +#include +#include +#include + +struct NoteEvent { + double time; // Время начала в секундах + int note; // Номер ноты (0-127) + int velocity; // Сила нажатия (0-127) + double duration; // Длительность в секундах + int instrument; // Номер инструмента + double volume; // Громкость ноты (0.0-1.0) + + NoteEvent(double t = 0, int n = 0, int v = 100, double d = 0, int i = 1, double vol = 1.0) + : time(t), note(n), velocity(v), duration(d), instrument(i), volume(vol) {} +}; + +class SimpleWavWriter : public QObject +{ + Q_OBJECT + +public: + static const int MAX_TRACKS = 7; // ИЗМЕНЕНО: было 16, стало 7 + static const int SAMPLE_RATE = 44100; // Улучшенное качество + static const int BIT_DEPTH = 16; + + explicit SimpleWavWriter(QObject *parent = nullptr); + + bool startRecording(int sampleRate = SAMPLE_RATE); + void stopRecording(); + bool isRecording() const { return recording; } + bool isPaused() const { return paused; } + void pauseRecording(); + void resumeRecording(); + + void addNote(int track, double time, int note, int velocity, double duration, int instrument = 1); + void clearTrack(int track); + void clearAllTracks(); + + bool saveToFile(const QString &filename); + bool saveToMusicFile(const QString &filename); + + // Работа с дорожками + QString getTrackName(int track) const; + void setTrackName(int track, const QString &name); + int getEventCount(int track) const; + int getTrackInstrument(int track) const; + void setTrackInstrument(int track, int instrument); + double getTrackVolume(int track) const; + void setTrackVolume(int track, double volume); + bool isTrackMuted(int track) const; + void muteTrack(int track, bool muted); + bool isTrackSolo(int track) const; + void soloTrack(int track, bool solo); + + // Работа с аудиоданными + QByteArray getTrackAudioData(int track, bool mix = false); + QByteArray getAllTracksAudioData(); + + // Загрузка/сохранение дорожек + bool loadWavToTrack(const QString &filename, int track); + void copyTrack(int fromTrack, int toTrack); + void mergeTrack(int fromTrack, int toTrack); + + // Эффекты и настройки + void setPlaybackSpeed(double speed); + void setBassVolumeMultiplier(double multiplier); + + // Генерация звука + QByteArray generateNoteAudio(int note, int velocity, double duration, int instrument, double volume = 1.0); + QByteArray generateSilence(double duration); + +signals: + void trackUpdated(int track); + void recordingStatusChanged(bool recording); + +private: + struct Track { + QString name; + QVector events; + int instrument; + double volume; + bool muted; + bool solo; + int index; // Добавляем индекс дорожки + + Track() : instrument(1), volume(1.0), muted(false), solo(false), index(0) { + } + + // Конструктор с индексом + Track(int idx) : instrument(1), volume(1.0), muted(false), solo(false), index(idx) { + name = QString("Дорожка %1").arg(idx + 1); + } + }; + + bool recording; + bool paused; + QVector tracks; + QAudioFormat format; + double playbackSpeed; + double bassVolumeMultiplier; + + void writeWavHeader(QFile &file, quint32 dataSize); + QByteArray mixTracks(const QVector &trackIndices); + double noteToFrequency(int note) const; + QByteArray generateSineWave(double frequency, double duration, double amplitude); + QByteArray generateSquareWave(double frequency, double duration, double amplitude); + QByteArray generateSawtoothWave(double frequency, double duration, double amplitude); + QByteArray generateTriangleWave(double frequency, double duration, double amplitude); + QByteArray generateInstrumentWave(int instrument, double frequency, double duration, double amplitude); + + // Инструменты для форматирования данных + QByteArray intToBytes(qint32 value); + QByteArray shortToBytes(qint16 value); + + // Форматирование для .s файла + QString noteToPentlyNote(int note) const; + QString durationToPentlyDuration(double duration) const; + QString instrumentToPentlyInstrument(int instrument) const; + + // НОВЫЕ МЕТОДЫ для конвертации в Pently формат + int secondsToPentlyTicks(double seconds) const; + QString ticksToDelayString(int ticks) const; + QString generatePattern(int trackIndex) const; +}; + +#endif // SIMPLEWAVWRITER_H \ No newline at end of file diff --git a/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/spcrecord.cpp b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/spcrecord.cpp new file mode 100644 index 0000000..38bfcd4 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/spcrecord.cpp @@ -0,0 +1,3 @@ +#include "spcrecord.h" + +spcrecord::spcrecord() {} diff --git a/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/spcrecord.h b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/spcrecord.h new file mode 100644 index 0000000..ebacc74 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/format/spcrecord.h @@ -0,0 +1,18 @@ +// #ifndef SPCRECORD_H +// #define SPCRECORD_H + +// #include +// #include +// #include + + + + +// class spcrecord +// { +// Q_OBJECT +// public: +// spcrecord(); +// }; + +// #endif // SPCRECORD_H diff --git a/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/main.cpp b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/main.cpp new file mode 100644 index 0000000..3439574 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/main.cpp @@ -0,0 +1,11 @@ +#include "yamitracker.h" + +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + Yamitracker w; + w.show(); + return a.exec(); +} diff --git a/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/src/yamitracker.cpp b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/src/yamitracker.cpp new file mode 100644 index 0000000..36cf30e --- /dev/null +++ b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/src/yamitracker.cpp @@ -0,0 +1,1724 @@ +#include "yamitracker.h" +#include "ui_yamitracker.h" +#include +#include +// #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Глобальная переменная для управления громкостью баса +double bassVolumeMultiplier = 2.0; // Увеличение громкости баса в 2 раза + +// Инструменты басового типа для усиления громкости +QSet bassInstruments = { + 28, // FngrBass (Фингер-бас) + 33, // FngrBass (Фингер-бас) - другой тип + 39, // FngrBass (Фингер-бас) - еще тип + 40, // SlapBas (Слэп-бас) + 38, // DstGtr (Дисторшн-гитара) - тоже можно усилить + 29, // Ovrdrive (Овердрайв-гитара) + 37 // Ovrdrive (Овердрайв-гитара) - другой тип +}; + +void SerialReader::run() +{ + while (!shouldStop) { + int fd = open(currentDevice.toUtf8().constData(), O_RDWR | O_NOCTTY); + if (fd < 0) { + emit error(QString("Cannot open %1").arg(currentDevice)); + emit; connectionStatusChanged(false); + sleep(2); + continue; + } + + emit connectionStatusChanged(true); + + QString manufacturer = "Unknown"; + QString model = "Unknown"; + + if (currentDevice.contains("yamaha", Qt::CaseInsensitive) || + currentDevice.contains("psr", Qt::CaseInsensitive)) { + manufacturer = "Yamaha"; + model = "PSR Series"; + } else if (currentDevice.contains("dmmidi")) { + manufacturer = "Yamaha"; + model = "PSR-E333 (Direct MIDI)"; + } + + emit deviceInfoReceived(manufacturer, model); + + struct termios tty; + tcgetattr(fd, &tty); + cfsetospeed(&tty, B115200); + cfsetispeed(&tty, B115200); + tty.c_cflag |= (CLOCAL | CREAD | CS8); + tty.c_cc[VMIN] = 1; + tcsetattr(fd, TCSANOW, &tty); + + unsigned char byte; + while (!shouldStop && read(fd, &byte, 1) > 0) { + if (byte == 0xF8 || byte == 0xFE) { + continue; + } + + if (byte & 0x80) { + if ((byte & 0xF0) == 0x90) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + + if (velocity == 0) + emit noteOffReceived(hexNote); + else + emit noteOnReceived(hexNote, velocity); + } + } + else if ((byte & 0xF0) == 0x80) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + QString hexNote = QString("%1").arg(note, 2, 16, QChar('0')).toUpper(); + emit noteOffReceived(hexNote); + } + } + } + } + + close(fd); + emit connectionStatusChanged(false); + + if (!shouldStop) { + emit error(QString("Connection lost to %1. Attempting to reconnect...").arg(currentDevice)); + sleep(2); + } + } +} + +Yamitracker::Yamitracker(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::Yamitracker) + , serialReader(new SerialReader(this)) + , reconnectTimer(new QTimer(this)) + , isConnected(false) + , wavWriter(new SimpleWavWriter(this)) + , recordingStartTime(0) + , brrConverter(new BrrConverter(this)) + , audioPlayerProcess(new QProcess(this)) + , playbackSpeedSlider(nullptr) + , bassVolumeSlider(nullptr) + , speedLabel(nullptr) + , volumeLabel(nullptr) + , audioOutput(nullptr) + , audioBuffer(nullptr) + , playbackTimer(new QTimer(this)) + , isPlayingBack(false) + , currentPlaybackTrack(-1) + , currentTrack(0) + , globalRecordingStartTime(0) + , isGlobalRecording(false) +{ + ui->setupUi(this); + + deviceLabel = ui->deviceLabel; + refreshDevicesButton = ui->refreshDevicesButton; + midiFilesList = ui->midiFilesList; + instrumentComboBox = ui->instrumentComboBox; + trackComboBox = ui->trackComboBox; + + // Ищем элементы в UI + playbackSpeedSlider = findChild("playbackSpeedSlider"); + bassVolumeSlider = findChild("bassVolumeSlider"); + speedLabel = findChild("speedLabel"); + volumeLabel = findChild("volumeLabel"); + + // Настраиваем слайдеры, если они найдены + if (playbackSpeedSlider) { + playbackSpeedSlider->setRange(50, 200); // 50% - 200% + playbackSpeedSlider->setValue(100); // 100% по умолчанию + playbackSpeedSlider->setTickInterval(10); + playbackSpeedSlider->setTickPosition(QSlider::TicksBelow); + } + + if (bassVolumeSlider) { + bassVolumeSlider->setRange(100, 400); // 100% - 400% + bassVolumeSlider->setValue(200); // 200% по умолчанию + bassVolumeSlider->setTickInterval(50); + bassVolumeSlider->setTickPosition(QSlider::TicksBelow); + } + + // Инициализируем дорожки + initializeTracks(); + initializeTrackControls(); + + // Обновляем метки + updateSpeedLabel(); + updateVolumeLabel(); + updateTrackInfo(); + + // Подключаем сигналы + if (playbackSpeedSlider) { + connect(playbackSpeedSlider, &QSlider::valueChanged, this, &Yamitracker::onPlaybackSpeedChanged); + } + if (bassVolumeSlider) { + connect(bassVolumeSlider, &QSlider::valueChanged, this, &Yamitracker::onBassVolumeChanged); + } + + // Заполняем комбобокс инструментами + QList instrumentIds = instruments.keys(); + std::sort(instrumentIds.begin(), instrumentIds.end()); + for (int id : instrumentIds) { + QString instrumentName = instruments[id]; + // Добавляем пометку для басовых инструментов + if (bassInstruments.contains(id)) { + instrumentName += " [БАС - усилено]"; + } + instrumentComboBox->addItem(QString("%1: %2").arg(id).arg(instrumentName), id); + } + + initializeKeyButtons(); + initializeDeviceDetection(); + + // Подключаем сигналы серийного порта + connect(serialReader, &SerialReader::noteOnReceived, this, &Yamitracker::onNoteOnReceived); + connect(serialReader, &SerialReader::noteOffReceived, this, &Yamitracker::onNoteOffReceived); + connect(serialReader, &SerialReader::error, this, &Yamitracker::onError); + connect(serialReader, &SerialReader::connectionStatusChanged, this, &Yamitracker::onConnectionStatusChanged); + connect(serialReader, &SerialReader::deviceInfoReceived, this, &Yamitracker::onDeviceInfoReceived); + + // Подключаем кнопки управления записью + connect(ui->playButton, &QPushButton::clicked, this, &Yamitracker::onPlayClicked); + connect(ui->pauseButton, &QPushButton::clicked, this, &Yamitracker::onPauseClicked); + connect(ui->stopButton, &QPushButton::clicked, this, &Yamitracker::onStopClicked); + connect(ui->convertButton, &QPushButton::clicked, this, &Yamitracker::onConvertToBrrClicked); + connect(refreshDevicesButton, &QPushButton::clicked, this, &Yamitracker::onRefreshDevicesClicked); + connect(ui->loadMidiButton, &QPushButton::clicked, this, &Yamitracker::onLoadMidiFileClicked); + connect(ui->selectFileButton, &QPushButton::clicked, this, &Yamitracker::onSelectFileForConversion); + connect(ui->playFileButton, &QPushButton::clicked, this, &Yamitracker::onSelectFileForPlayback); + connect(ui->saveRecordingButton, &QPushButton::clicked, this, &Yamitracker::onSaveRecordingClicked); + connect(ui->playMidiButton, &QPushButton::clicked, this, &Yamitracker::onPlayMidiFileClicked); + connect(ui->recordFromMidiButton, &QPushButton::clicked, this, &Yamitracker::onRecordFromMidiFile); + connect(midiFilesList, &QListWidget::itemSelectionChanged, this, &Yamitracker::onSelectedMidiFileChanged); + connect(ui->saveMusicButton, &QPushButton::clicked, this, &Yamitracker::onSaveMusicFileClicked); + connect(ui->addTrackButton, &QPushButton::clicked, this, &Yamitracker::onAddTrackClicked); + connect(ui->removeTrackButton, &QPushButton::clicked, this, &Yamitracker::onRemoveTrackClicked); + connect(ui->clearTrackButton, &QPushButton::clicked, this, &Yamitracker::onClearTrackClicked); + connect(trackComboBox, QOverload::of(&QComboBox::currentIndexChanged), this, &Yamitracker::onCurrentTrackChanged); + + // Подключаем новые кнопки + connect(ui->playTrackButton, &QPushButton::clicked, this, &Yamitracker::onPlayTrackClicked); + connect(ui->playAllButton, &QPushButton::clicked, this, &Yamitracker::onPlayAllTracksClicked); + connect(ui->stopPlaybackButton, &QPushButton::clicked, this, &Yamitracker::onStopPlaybackClicked); + connect(ui->loadWavButton, &QPushButton::clicked, this, &Yamitracker::onLoadWavToTrackClicked); + connect(ui->copyTrackButton, &QPushButton::clicked, this, &Yamitracker::onCopyTrackClicked); + connect(ui->mergeTrackButton, &QPushButton::clicked, this, &Yamitracker::onMergeTracksClicked); + + // Подключаем сигналы от wavWriter + connect(wavWriter, &SimpleWavWriter::trackUpdated, this, [this](int track) { + if (track == currentTrack) { + updateTrackInfo(); + } + }); + + connect(wavWriter, &SimpleWavWriter::recordingStatusChanged, this, [this](bool recording) { + if (recording) { + ui->statusLabel->setText("Запись активна"); + ui->playButton->setEnabled(false); + ui->stopButton->setEnabled(true); + ui->pauseButton->setEnabled(true); + } else { + ui->statusLabel->setText("Запись остановлена"); + ui->playButton->setEnabled(true); + ui->stopButton->setEnabled(false); + ui->pauseButton->setEnabled(false); + ui->pauseButton->setText("⏸ Пауза"); + } + }); + + connect(reconnectTimer, &QTimer::timeout, this, &Yamitracker::attemptReconnect); + reconnectTimer->start(5000); + + connect(audioPlayerProcess, QOverload::of(&QProcess::finished), + this, [this](int exitCode, QProcess::ExitStatus exitStatus) { + Q_UNUSED(exitCode); + if (exitStatus == QProcess::NormalExit) { + ui->statusLabel->setText("Воспроизведение завершено"); + } + }); + + // Подключаем таймер воспроизведения + connect(playbackTimer, &QTimer::timeout, this, &Yamitracker::onPlaybackFinished); + + // ОБНОВЛЕННЫЙ СТИЛЬ - черный текст на белом фоне для панели управления дорожками + // Остальные элементы остаются с белым текстом на темном фоне + setStyleSheet( + "QMainWindow { background-color: #2b2b2b; }" + "QLabel { color: #ffffff; font-size: 14px; font-weight: bold; }" + "QGroupBox { color: #ffffff; font-weight: bold; border: 2px solid #555; border-radius: 5px; margin-top: 10px; }" + "QGroupBox::title { color: #ffffff; subcontrol-origin: margin; left: 10px; padding: 0 5px 0 5px; }" + "QPushButton { background-color: #4a4a4a; color: #ffffff; border: 1px solid #555; border-radius: 3px; padding: 5px; font-weight: bold; }" + "QPushButton:hover { background-color: #5a5a5a; }" + "QPushButton:pressed { background-color: #3a3a3a; }" + "QPushButton[whiteKey=true] { background-color: white; color: black; border: 1px solid #ccc; font-size: 8pt; }" + "QPushButton[whiteKey=true]:pressed { background-color: #ff4444; color: white; }" + "QPushButton[blackKey=true] { background-color: black; color: white; font-size: 7pt; }" + "QPushButton[blackKey=true]:pressed { background-color: #ff4444; }" + "QProgressBar { border: 1px solid #555; background: #333; color: white; }" + "QProgressBar::chunk { background: #4CAF50; }" + "QListWidget { background-color: #333; color: #ffffff; border: 1px solid #555; selection-background-color: #555; }" + "QComboBox { background-color: #333; color: #ffffff; border: 1px solid #555; padding: 5px; }" + "QComboBox QAbstractItemView { background-color: #333; color: #ffffff; selection-background-color: #555; }" + "QComboBox::drop-down { border: none; }" + "QComboBox::down-arrow { image: none; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid white; }" + "QSlider::groove:horizontal { border: 1px solid #555; height: 8px; background: #333; margin: 2px 0; }" + "QSlider::handle:horizontal { background: #4CAF50; border: 1px solid #5f5f5f; width: 18px; margin: -2px 0; border-radius: 3px; }" + "QLineEdit { background-color: #ffffff; color: #000000; border: 1px solid #555; padding: 3px; }" // Изменено: белый фон, черный текст + "QCheckBox { color: #ffffff; }" + "QCheckBox::indicator { width: 16px; height: 16px; }" + // Стили для панели управления дорожками + "QScrollArea { background-color: white; }" + "QScrollArea QGroupBox { background-color: white; color: #000000; border: 2px solid #aaa; }" + "QScrollArea QGroupBox::title { color: #000000; }" + "QScrollArea QLabel { color: #000000; }" + "QScrollArea QComboBox { background-color: white; color: #000000; border: 1px solid #aaa; }" + "QScrollArea QComboBox QAbstractItemView { background-color: white; color: #000000; selection-background-color: #ddd; }" + "QScrollArea QPushButton { background-color: #e0e0e0; color: #000000; border: 1px solid #aaa; }" + "QScrollArea QPushButton:hover { background-color: #d0d0d0; }" + "QScrollArea QPushButton:pressed { background-color: #b0b0b0; }" + "QScrollArea QSlider::groove:horizontal { border: 1px solid #aaa; height: 8px; background: #ddd; }" + "QScrollArea QSlider::handle:horizontal { background: #4CAF50; border: 1px solid #5f5f5f; }" + ); + + QTimer::singleShot(1000, this, &Yamitracker::autoDetectAndConnect); + setWindowTitle("Yamaha PSR-E333 Monitor - Multitrack Recording"); + + // Сканируем MIDI файлы при запуске + scanMidiFiles(); + + // Информация о басовых инструментах + qDebug() << "Бас-инструменты усилены в" << bassVolumeMultiplier << "раз"; + qDebug() << "Бас-инструменты: FngrBass(28,33,39), SlapBas(40), Ovrdrive(29,37), DstGtr(38)"; +} + +void Yamitracker::initializeTracks() +{ + trackComboBox->clear(); + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { // Используем MAX_TRACKS + QString trackName = wavWriter->getTrackName(i); + trackComboBox->addItem(trackName, i); + } + trackComboBox->setCurrentIndex(0); + currentTrack = 0; +} + +void Yamitracker::initializeTrackControls() +{ + // Получаем ScrollArea для управления дорожками + QScrollArea* scrollArea = findChild("scrollArea"); + if (!scrollArea) return; + + QWidget* scrollContent = new QWidget(); + QVBoxLayout* tracksLayout = new QVBoxLayout(scrollContent); + + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + QGroupBox* trackGroup = new QGroupBox(QString("Дорожка %1").arg(i + 1), scrollContent); + trackGroup->setProperty("trackIndex", i); + + QHBoxLayout* trackLayout = new QHBoxLayout(trackGroup); + + // Название дорожки + QLineEdit* nameEdit = new QLineEdit(wavWriter->getTrackName(i), trackGroup); + nameEdit->setProperty("trackIndex", i); + nameEdit->setObjectName(QString("trackNameEdit_%1").arg(i)); + nameEdit->setMaximumWidth(150); + connect(nameEdit, &QLineEdit::textChanged, this, &Yamitracker::onTrackNameChanged); + trackNameEdits.append(nameEdit); + + // Инструмент дорожки + QComboBox* instrumentBox = new QComboBox(trackGroup); + instrumentBox->setProperty("trackIndex", i); + instrumentBox->setObjectName(QString("trackInstrumentBox_%1").arg(i)); + instrumentBox->setMaximumWidth(150); + + QList instrumentIds = instruments.keys(); + std::sort(instrumentIds.begin(), instrumentIds.end()); + for (int id : instrumentIds) { + QString instrumentName = instruments[id]; + if (bassInstruments.contains(id)) { + instrumentName += " [БАС]"; + } + instrumentBox->addItem(instrumentName, id); + } + + // Устанавливаем текущий инструмент + int currentInstrument = wavWriter->getTrackInstrument(i); + int index = instrumentBox->findData(currentInstrument); + if (index >= 0) { + instrumentBox->setCurrentIndex(index); + } + + connect(instrumentBox, QOverload::of(&QComboBox::currentIndexChanged), + this, &Yamitracker::onTrackInstrumentChanged); + trackInstrumentComboBoxes.append(instrumentBox); + + // Громкость + QSlider* volumeSlider = new QSlider(Qt::Horizontal, trackGroup); + volumeSlider->setProperty("trackIndex", i); + volumeSlider->setObjectName(QString("trackVolumeSlider_%1").arg(i)); + volumeSlider->setRange(0, 200); + volumeSlider->setValue(static_cast(wavWriter->getTrackVolume(i) * 100)); + volumeSlider->setMaximumWidth(100); + connect(volumeSlider, &QSlider::valueChanged, this, &Yamitracker::onTrackVolumeChanged); + trackVolumeSliders.append(volumeSlider); + + QLabel* volumeLabel = new QLabel(QString("%1%").arg(volumeSlider->value()), trackGroup); + volumeLabel->setProperty("trackIndex", i); + volumeLabel->setObjectName(QString("trackVolumeLabel_%1").arg(i)); + volumeLabel->setMaximumWidth(40); + + // Кнопка Mute + QPushButton* muteButton = new QPushButton(wavWriter->isTrackMuted(i) ? "🔇" : "🔊", trackGroup); + muteButton->setProperty("trackIndex", i); + muteButton->setObjectName(QString("trackMuteButton_%1").arg(i)); + muteButton->setMaximumWidth(40); + connect(muteButton, &QPushButton::clicked, this, &Yamitracker::onMuteTrackClicked); + trackMuteButtons.append(muteButton); + + // Кнопка Solo + QPushButton* soloButton = new QPushButton("🎧", trackGroup); + soloButton->setProperty("trackIndex", i); + soloButton->setObjectName(QString("trackSoloButton_%1").arg(i)); + soloButton->setMaximumWidth(40); + connect(soloButton, &QPushButton::clicked, this, &Yamitracker::onSoloTrackClicked); + trackSoloButtons.append(soloButton); + + // Информация о дорожке + QLabel* infoLabel = new QLabel(QString("%1 нот").arg(wavWriter->getEventCount(i)), trackGroup); + infoLabel->setProperty("trackIndex", i); + infoLabel->setObjectName(QString("trackInfoLabel_%1").arg(i)); + + // Кнопка выбора для одновременного воспроизведения + QCheckBox* selectCheck = new QCheckBox("Воспр.", trackGroup); + selectCheck->setProperty("trackIndex", i); + selectCheck->setObjectName(QString("trackSelectCheck_%1").arg(i)); + selectCheck->setChecked(true); + + // Добавляем элементы в layout + trackLayout->addWidget(new QLabel("Название:", trackGroup)); + trackLayout->addWidget(nameEdit); + trackLayout->addWidget(new QLabel("Инструмент:", trackGroup)); + trackLayout->addWidget(instrumentBox); + trackLayout->addWidget(new QLabel("Громкость:", trackGroup)); + trackLayout->addWidget(volumeSlider); + trackLayout->addWidget(volumeLabel); + trackLayout->addWidget(muteButton); + trackLayout->addWidget(soloButton); + trackLayout->addWidget(selectCheck); + trackLayout->addWidget(infoLabel); + + tracksLayout->addWidget(trackGroup); + } + + // Добавляем растягивающийся спейсер в конец + tracksLayout->addStretch(); + + scrollArea->setWidget(scrollContent); + scrollArea->setWidgetResizable(true); +} + +void Yamitracker::updateTrackControls() +{ + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i < trackNameEdits.size()) { + trackNameEdits[i]->setText(wavWriter->getTrackName(i)); + } + + if (i < trackInstrumentComboBoxes.size()) { + int currentInstrument = wavWriter->getTrackInstrument(i); + int index = trackInstrumentComboBoxes[i]->findData(currentInstrument); + if (index >= 0) { + trackInstrumentComboBoxes[i]->setCurrentIndex(index); + } + } + + if (i < trackVolumeSliders.size()) { + trackVolumeSliders[i]->setValue(static_cast(wavWriter->getTrackVolume(i) * 100)); + } + + if (i < trackMuteButtons.size()) { + trackMuteButtons[i]->setText(wavWriter->isTrackMuted(i) ? "🔇" : "🔊"); + } + + if (i < trackSoloButtons.size()) { + // Обновляем текст кнопки solo при необходимости + } + + // Обновляем информацию о дорожке + QLabel* infoLabel = findChild(QString("trackInfoLabel_%1").arg(i)); + if (infoLabel) { + infoLabel->setText(QString("%1 нот").arg(wavWriter->getEventCount(i))); + } + + // Обновляем метку громкости + QLabel* volumeLabel = findChild(QString("trackVolumeLabel_%1").arg(i)); + if (volumeLabel) { + volumeLabel->setText(QString("%1%").arg(trackVolumeSliders[i]->value())); + } + } +} + +void Yamitracker::updateTrackInfo() +{ + int eventCount = wavWriter->getEventCount(currentTrack); + QString trackName = wavWriter->getTrackName(currentTrack); + ui->trackInfoLabel->setText(QString("%1: %2 нот").arg(trackName).arg(eventCount)); +} + +void Yamitracker::onCurrentTrackChanged(int index) +{ + currentTrack = trackComboBox->itemData(index).toInt(); + updateTrackInfo(); +} + +void Yamitracker::onPlaybackSpeedChanged(int value) +{ + double speedPercent = value / 100.0; + wavWriter->setPlaybackSpeed(speedPercent); + updateSpeedLabel(); +} + +void Yamitracker::onBassVolumeChanged(int value) +{ + double volumeMultiplier = value / 100.0; + wavWriter->setBassVolumeMultiplier(volumeMultiplier); + bassVolumeMultiplier = volumeMultiplier; + updateVolumeLabel(); +} + +void Yamitracker::updateSpeedLabel() +{ + if (speedLabel && playbackSpeedSlider) { + int speed = playbackSpeedSlider->value(); + speedLabel->setText(QString("Скорость: %1%").arg(speed)); + } +} + +void Yamitracker::updateVolumeLabel() +{ + if (volumeLabel && bassVolumeSlider) { + int volume = bassVolumeSlider->value(); + volumeLabel->setText(QString("Бас: %1%").arg(volume)); + } +} + +void Yamitracker::onSaveMusicFileClicked() +{ + QString defaultName = "music_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".s"; + QString filename = QFileDialog::getSaveFileName(this, "Сохранить музыкальный файл", defaultName, "ASM файлы (*.s);;Все файлы (*)"); + + if (!filename.isEmpty()) { + saveMusicFile(filename); + } +} + +void Yamitracker::saveMusicFile(const QString &filename) +{ + if (wavWriter->saveToMusicFile(filename)) { + ui->statusLabel->setText(QString("Музыкальный файл сохранен: %1").arg(filename)); + + // Показываем информацию о сохраненном файле + QFileInfo fileInfo(filename); + QString info = QString("Музыкальный файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Pently-style assembler") + .arg(filename) + .arg(fileInfo.size()); + QMessageBox::information(this, "Файл сохранен", info); + + // Открываем файл для просмотра + QDesktopServices::openUrl(QUrl::fromLocalFile(filename)); + } else { + ui->statusLabel->setText("Ошибка сохранения музыкального файла"); + QMessageBox::warning(this, "Ошибка", "Не удалось сохранить музыкальный файл"); + } +} + +void Yamitracker::onAddTrackClicked() +{ + // Создаем новую дорожку + int newTrack = -1; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (wavWriter->getEventCount(i) == 0 && wavWriter->getTrackName(i).startsWith("Дорожка")) { + newTrack = i; + break; + } + } + + if (newTrack == -1) { + QMessageBox::warning(this, "Ошибка", "Достигнуто максимальное количество дорожек"); + return; + } + + // Устанавливаем название новой дорожки + QString newName = QString("Дорожка %1").arg(newTrack + 1); + wavWriter->setTrackName(newTrack, newName); + + // Переключаемся на новую дорожку + trackComboBox->setCurrentIndex(newTrack); + currentTrack = newTrack; + + ui->statusLabel->setText(QString("Создана новая дорожка %1").arg(newTrack + 1)); + updateTrackControls(); + updateTrackInfo(); +} + +void Yamitracker::onRemoveTrackClicked() +{ + if (wavWriter->getEventCount(currentTrack) == 0) { + QMessageBox::warning(this, "Ошибка", "Дорожка уже пуста"); + return; + } + + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Удаление дорожки", + QString("Вы уверены, что хотите удалить дорожку %1?\nВсе данные будут потеряны.") + .arg(currentTrack + 1), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + wavWriter->clearTrack(currentTrack); + ui->statusLabel->setText(QString("Дорожка %1 очищена").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onClearTrackClicked() +{ + if (wavWriter->getEventCount(currentTrack) == 0) { + ui->statusLabel->setText("Дорожка уже пуста"); + return; + } + + wavWriter->clearTrack(currentTrack); + ui->statusLabel->setText(QString("Дорожка %1 очищена").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); +} + +void Yamitracker::onPlayTrackClicked() +{ + playTrack(currentTrack); +} + +void Yamitracker::onPlayAllTracksClicked() +{ + playAllTracks(); +} + +void Yamitracker::onStopPlaybackClicked() +{ + stopPlayback(); +} + +void Yamitracker::playTrack(int track) +{ + if (isPlayingBack) { + stopPlayback(); + } + + QByteArray audioData = wavWriter->getTrackAudioData(track, false); + if (audioData.isEmpty()) { + ui->statusLabel->setText(QString("Дорожка %1 пуста").arg(track + 1)); + return; + } + + // Настраиваем аудиовыход с высоким качеством + QAudioFormat format; + format.setSampleRate(44100); // Высокое качество + format.setChannelCount(2); // Стерео + format.setSampleSize(16); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(format)) { + format = info.nearestFormat(format); + } + + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + } + if (audioBuffer) { + delete audioBuffer; + } + + audioOutput = new QAudioOutput(format, this); + + // Конвертируем моно в стерео для лучшего качества + QByteArray stereoData = convertMonoToStereo(audioData); + audioBuffer = new QBuffer(this); + audioBuffer->setData(stereoData); + audioBuffer->open(QIODevice::ReadOnly); + + connect(audioOutput, &QAudioOutput::stateChanged, this, &Yamitracker::handleAudioStateChanged); + + currentPlaybackTrack = track; + isPlayingBack = true; + ui->statusLabel->setText(QString("Воспроизведение дорожки %1...").arg(track + 1)); + + audioOutput->start(audioBuffer); + + // Запускаем таймер для отслеживания завершения воспроизведения + playbackTimer->start(100); +} + +void Yamitracker::playAllTracks() +{ + if (isPlayingBack) { + stopPlayback(); + } + + // Получаем аудиоданные всех дорожек (уже микшированные) + QByteArray audioData = wavWriter->getAllTracksAudioData(); + if (audioData.isEmpty()) { + ui->statusLabel->setText("Нет данных для воспроизведения"); + return; + } + + // Настраиваем аудиовыход с высоким качеством + QAudioFormat format; + format.setSampleRate(44100); // Высокое качество + format.setChannelCount(2); // Стерео + format.setSampleSize(16); + format.setCodec("audio/pcm"); + format.setByteOrder(QAudioFormat::LittleEndian); + format.setSampleType(QAudioFormat::SignedInt); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(format)) { + format = info.nearestFormat(format); + } + + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + } + if (audioBuffer) { + delete audioBuffer; + } + + audioOutput = new QAudioOutput(format, this); + + // Конвертируем моно в стерео для лучшего качества + QByteArray stereoData = convertMonoToStereo(audioData); + audioBuffer = new QBuffer(this); + audioBuffer->setData(stereoData); + audioBuffer->open(QIODevice::ReadOnly); + + connect(audioOutput, &QAudioOutput::stateChanged, this, &Yamitracker::handleAudioStateChanged); + + currentPlaybackTrack = -1; // Все дорожки + isPlayingBack = true; + + // Получаем количество активных дорожек + int activeTracks = 0; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (!wavWriter->isTrackMuted(i) && wavWriter->getEventCount(i) > 0) { + activeTracks++; + } + } + + ui->statusLabel->setText(QString("Воспроизведение всех дорожек (%1 активных)...").arg(activeTracks)); + + audioOutput->start(audioBuffer); + + // Запускаем таймер для отслеживания завершения воспроизведения + playbackTimer->start(100); +} + +QByteArray Yamitracker::mixSelectedTracks(const QVector &trackIndices) +{ + // Создаем временный WAV writer для микширования + SimpleWavWriter tempWriter; + + // Копируем данные из выбранных дорожек + for (int trackIndex : trackIndices) { + // Копируем события из оригинальной дорожки + // Здесь нужно добавить логику копирования событий + // Временно используем getAllTracksAudioData + } + + return wavWriter->getAllTracksAudioData(); +} + +QByteArray Yamitracker::convertMonoToStereo(const QByteArray &monoData) +{ + // Конвертируем моно 16-битные данные в стерео + const qint16 *monoSamples = reinterpret_cast(monoData.constData()); + int monoCount = monoData.size() / sizeof(qint16); + + QByteArray stereoData(monoCount * 2 * sizeof(qint16), 0); + qint16 *stereoSamples = reinterpret_cast(stereoData.data()); + + for (int i = 0; i < monoCount; i++) { + stereoSamples[i * 2] = monoSamples[i]; // Левый канал + stereoSamples[i * 2 + 1] = monoSamples[i]; // Правый канал + } + + return stereoData; +} + +void Yamitracker::stopPlayback() +{ + if (audioOutput) { + audioOutput->stop(); + delete audioOutput; + audioOutput = nullptr; + } + + if (audioBuffer) { + audioBuffer->close(); + delete audioBuffer; + audioBuffer = nullptr; + } + + isPlayingBack = false; + currentPlaybackTrack = -1; + ui->statusLabel->setText("Воспроизведение остановлено"); + playbackTimer->stop(); +} + +void Yamitracker::handleAudioStateChanged(QAudio::State state) +{ + switch (state) { + case QAudio::IdleState: + // Воспроизведение завершено + onPlaybackFinished(); + break; + case QAudio::StoppedState: + if (audioOutput && audioOutput->error() != QAudio::NoError) { + ui->statusLabel->setText("Ошибка воспроизведения"); + } + break; + default: + break; + } +} + +void Yamitracker::onPlaybackFinished() +{ + isPlayingBack = false; + + if (currentPlaybackTrack >= 0) { + ui->statusLabel->setText(QString("Воспроизведение дорожки %1 завершено").arg(currentPlaybackTrack + 1)); + } else if (currentPlaybackTrack == -1) { + ui->statusLabel->setText("Воспроизведение всех дорожек завершено"); + } else { + ui->statusLabel->setText("Воспроизведение завершено"); + } + + currentPlaybackTrack = -1; + playbackTimer->stop(); +} + +void Yamitracker::onLoadWavToTrackClicked() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + if (wavWriter->loadWavToTrack(filename, currentTrack)) { + ui->statusLabel->setText(QString("WAV файл загружен в дорожку %1").arg(currentTrack + 1)); + updateTrackInfo(); + updateTrackControls(); + } else { + ui->statusLabel->setText("Ошибка загрузки WAV файла"); + } + } +} + +void Yamitracker::onCopyTrackClicked() +{ + bool ok; + int targetTrack = QInputDialog::getInt(this, "Копирование дорожки", + "Введите номер целевой дорожки (1-7):", + currentTrack + 1, 1, 7, 1, &ok); + + if (ok && targetTrack - 1 != currentTrack) { + wavWriter->copyTrack(currentTrack, targetTrack - 1); + ui->statusLabel->setText(QString("Дорожка %1 скопирована в дорожку %2") + .arg(currentTrack + 1).arg(targetTrack)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onMergeTracksClicked() +{ + bool ok; + int targetTrack = QInputDialog::getInt(this, "Объединение дорожек", + "Введите номер дорожки для объединения (1-7):", + currentTrack + 1, 1, 7, 1, &ok); + + if (ok && targetTrack - 1 != currentTrack) { + wavWriter->mergeTrack(currentTrack, targetTrack - 1); + ui->statusLabel->setText(QString("Дорожка %1 объединена с дорожкой %2") + .arg(currentTrack + 1).arg(targetTrack)); + updateTrackInfo(); + updateTrackControls(); + } +} + +void Yamitracker::onMuteTrackClicked() +{ + QPushButton* button = qobject_cast(sender()); + if (!button) return; + + int track = button->property("trackIndex").toInt(); + bool muted = wavWriter->isTrackMuted(track); + wavWriter->muteTrack(track, !muted); + + button->setText(!muted ? "🔇" : "🔊"); + ui->statusLabel->setText(QString("Дорожка %1 %2") + .arg(track + 1) + .arg(!muted ? "заглушена" : "включена")); +} + +void Yamitracker::onSoloTrackClicked() +{ + QPushButton* button = qobject_cast(sender()); + if (!button) return; + + int soloTrack = button->property("trackIndex").toInt(); + + // Выключаем все дорожки кроме выбранной + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + wavWriter->muteTrack(i, i != soloTrack); + if (i < trackMuteButtons.size()) { + trackMuteButtons[i]->setText(i == soloTrack ? "🔊" : "🔇"); + } + } + + ui->statusLabel->setText(QString("Только дорожка %1 воспроизводится").arg(soloTrack + 1)); +} + +void Yamitracker::onTrackVolumeChanged(int value) +{ + QSlider* slider = qobject_cast(sender()); + if (!slider) return; + + int track = slider->property("trackIndex").toInt(); + wavWriter->setTrackVolume(track, value / 100.0); + + // Обновляем метку громкости + QLabel* volumeLabel = findChild(QString("trackVolumeLabel_%1").arg(track)); + if (volumeLabel) { + volumeLabel->setText(QString("%1%").arg(value)); + } +} + +void Yamitracker::onTrackNameChanged() +{ + QLineEdit* edit = qobject_cast(sender()); + if (!edit) return; + + int track = edit->property("trackIndex").toInt(); + wavWriter->setTrackName(track, edit->text()); + + // Обновляем комбобокс дорожек + if (track == currentTrack) { + trackComboBox->setItemText(trackComboBox->currentIndex(), edit->text()); + } +} + +void Yamitracker::onTrackInstrumentChanged(int index) +{ + QComboBox* combo = qobject_cast(sender()); + if (!combo) return; + + int track = combo->property("trackIndex").toInt(); + int instrument = combo->itemData(index).toInt(); + wavWriter->setTrackInstrument(track, instrument); + + ui->statusLabel->setText(QString("Инструмент дорожки %1 изменен на %2") + .arg(track + 1) + .arg(instruments.value(instrument, "Неизвестный"))); +} + +void Yamitracker::initializeKeyButtons() +{ + QList whiteKeys = { + ui->key_C1, ui->key_D1, ui->key_E1, ui->key_F1, ui->key_G1, ui->key_A1, ui->key_B1, + ui->key_C2, ui->key_D2, ui->key_E2, ui->key_F2, ui->key_G2, ui->key_A2, ui->key_B2, + ui->key_C3, ui->key_D3, ui->key_E3, ui->key_F3, ui->key_G3, ui->key_A3, ui->key_B3, + ui->key_C4, ui->key_D4, ui->key_E4, ui->key_F4, ui->key_G4, ui->key_A4, ui->key_B4, + ui->key_C5, ui->key_D5, ui->key_E5, ui->key_F5, ui->key_G5, ui->key_A5, ui->key_B5, + ui->key_C6 + }; + + for (QPushButton *key : whiteKeys) { + key->setProperty("whiteKey", true); + keyButtons[key->text()] = key; + } + + QList blackKeys = { + ui->key_Cs1, ui->key_Ds1, ui->key_Fs1, ui->key_Gs1, ui->key_As1, + ui->key_Cs2, ui->key_Ds2, ui->key_Fs2, ui->key_Gs2, ui->key_As2, + ui->key_Cs3, ui->key_Ds3, ui->key_Fs3, ui->key_Gs3, ui->key_As3, + ui->key_Cs4, ui->key_Ds4, ui->key_Fs4, ui->key_Gs4, ui->key_As4, + ui->key_Cs5, ui->key_Ds5, ui->key_Fs5, ui->key_Gs5, ui->key_As5 + }; + + for (QPushButton *key : blackKeys) { + key->setProperty("blackKey", true); + keyButtons[key->text()] = key; + } +} + +QString Yamitracker::getInstrumentName(int program) +{ + return instruments.contains(program) ? instruments[program] : QString("Unknown (%1)").arg(program); +} + +void Yamitracker::onNoteOnReceived(const QString &data, int velocity) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.insert(note); + highlightKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + int volume = (velocity * 100) / 127; + ui->volumeBar->setValue(volume); + + if (isGlobalRecording) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - globalRecordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + noteStartTimes[data] = currentTime; + + // Записываем начало ноты в текущую дорожку с относительным временем + int currentInstrument = instrumentComboBox->currentData().toInt(); + wavWriter->addNote(currentTrack, currentTime, noteNumber, velocity, 0.1, currentInstrument); + + // Обновляем информацию о дорожке + updateTrackInfo(); + updateTrackControls(); + } + } +} + +void Yamitracker::onNoteOffReceived(const QString &data) +{ + QHash noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} + }; + + if (!noteMapping.contains(data)) return; + + QString note = noteMapping[data]; + currentlyPressedKeys.remove(note); + clearKey(note); + + ui->keysInfoLabel->setText(QString("Нажато клавиш: %1").arg(currentlyPressedKeys.size())); + + if (currentlyPressedKeys.isEmpty()) { + ui->volumeBar->setValue(0); + } + + if (isGlobalRecording && noteStartTimes.contains(data)) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - globalRecordingStartTime; + + bool ok; + int noteNumber = data.toInt(&ok, 16); + if (ok) { + double noteStartTime = noteStartTimes[data]; + double duration = currentTime - noteStartTime; + + int noteVelocity = 100; + + // Обновляем длительность ноты (в реальном приложении нужно обновлять существующую ноту) + int currentInstrument = instrumentComboBox->currentData().toInt(); + wavWriter->addNote(currentTrack, noteStartTime, noteNumber, noteVelocity, duration, currentInstrument); + + noteStartTimes.remove(data); + + // Обновляем информацию о дорожке + updateTrackInfo(); + updateTrackControls(); + } + } +} + +void Yamitracker::onConnectionStatusChanged(bool connected) +{ + isConnected = connected; + if (connected) { + ui->statusLabel->setText("Статус: Подключено к синтезатору"); + } else { + ui->statusLabel->setText("Статус: Отключено (переподключение...)"); + } +} + +void Yamitracker::attemptReconnect() +{ + if (!isConnected && (!serialReader || !serialReader->isRunning())) { + qDebug() << "Attempting to reconnect..."; + startSerialReader(); + } +} + +void Yamitracker::onError(const QString &message) +{ + // НЕ показываем всплывающее окно с ошибкой подключения + // Просто обновляем статус в строке состояния + ui->statusLabel->setText("Ошибка: " + message); + + // Показываем окно только для критических ошибок (не связанных с подключением) + if (!message.contains("Cannot open", Qt::CaseInsensitive) && + !message.contains("Connection lost", Qt::CaseInsensitive) && + !message.contains("reconnect", Qt::CaseInsensitive)) { + QMessageBox::warning(this, "Ошибка", message); + } +} + +void Yamitracker::onPlayClicked() +{ + // Получаем выбранный инструмент + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Запись с синтезатора [БАС x%1]...").arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText("Запись с синтезатора..."); + } + + noteStartTimes.clear(); + currentlyPressedKeys.clear(); + clearAllHighlights(); + + // Если это первая запись в сессии, начинаем глобальную запись + if (!isGlobalRecording) { + globalRecordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + isGlobalRecording = true; + qDebug() << "Начало глобальной записи. Все дорожки будут синхронизированы."; + } + + // Начинаем запись с высоким качеством + if (wavWriter->startRecording(44100)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started WAV recording from synthesizer, track:" << currentTrack + << "sample rate: 44100, instrument:" << currentInstrument; + if (isBassInstrument) { + qDebug() << "Bass instrument detected - volume will be increased"; + } + + // Активируем кнопку паузы + ui->pauseButton->setEnabled(true); + } +} + +void Yamitracker::onPauseClicked() +{ + if (wavWriter->isRecording()) { + if (wavWriter->isPaused()) { + wavWriter->resumeRecording(); + ui->statusLabel->setText("Запись возобновлена..."); + ui->pauseButton->setText("⏸ Пауза"); + } else { + wavWriter->pauseRecording(); + ui->statusLabel->setText("Запись приостановлена"); + ui->pauseButton->setText("▶ Продолжить"); + } + } +} + +void Yamitracker::onStopClicked() +{ + ui->statusLabel->setText("Запись остановлена"); + + clearAllHighlights(); + currentlyPressedKeys.clear(); + ui->keysInfoLabel->setText("Нажато клавиш: 0"); + ui->volumeBar->setValue(0); + + if (wavWriter->isRecording()) { + wavWriter->stopRecording(); + + // Деактивируем кнопку паузы + ui->pauseButton->setEnabled(false); + ui->pauseButton->setText("⏸ Пауза"); + + // Предлагаем сохранить запись, если это последняя дорожка + bool hasMoreTracks = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i != currentTrack && wavWriter->getEventCount(i) == 0) { + hasMoreTracks = true; + break; + } + } + + if (!hasMoreTracks) { + onSaveRecordingClicked(); + } + } + + noteStartTimes.clear(); +} + +void Yamitracker::onSaveRecordingClicked() +{ + QString defaultName = "recording_" + QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".wav"; + QString filename = QFileDialog::getSaveFileName(this, "Сохранить запись", defaultName, "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + saveWavFile(filename); + + // Сбрасываем глобальную запись + isGlobalRecording = false; + globalRecordingStartTime = 0; + } +} + +void Yamitracker::saveWavFile(const QString &filename) +{ + // Проверяем, есть ли данные для сохранения + bool hasData = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (wavWriter->getEventCount(i) > 0) { + hasData = true; + break; + } + } + + if (!hasData) { + QMessageBox::warning(this, "Ошибка", + "Нет данных для сохранения. Запишите хотя бы одну ноту на любой дорожке."); + return; + } + + if (wavWriter->saveToFile(filename)) { + lastRecordedWavFile = filename; + ui->statusLabel->setText(QString("Сохранено: %1").arg(filename)); + + // Показываем информацию о сохраненном файле + QFileInfo fileInfo(filename); + QString info = QString("WAV файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: 44100 Гц, 16 бит, моно\n" + "Все дорожки микшированы для параллельного воспроизведения") + .arg(filename) + .arg(fileInfo.size()); + QMessageBox::information(this, "Файл сохранен", info); + + // Активируем кнопку конвертации + ui->convertButton->setEnabled(true); + ui->saveMusicButton->setEnabled(true); + + // Предлагаем воспроизвести файл + QMessageBox::StandardButton reply; + reply = QMessageBox::question(this, "Запись завершена", + QString("WAV файл сохранен:\n%1\n\nВоспроизвести файл?").arg(filename), + QMessageBox::Yes | QMessageBox::No); + + if (reply == QMessageBox::Yes) { + playWavExternal(lastRecordedWavFile); + } + } else { + ui->statusLabel->setText("Ошибка сохранения WAV файла"); + QMessageBox::warning(this, "Ошибка", + "Не удалось сохранить WAV файл. Возможно:\n" + "1. Нет данных для записи\n" + "2. Недостаточно прав для записи\n" + "3. Диск переполнен"); + } +} + +void Yamitracker::onConvertToBrrClicked() +{ + if (lastRecordedWavFile.isEmpty() || !QFile::exists(lastRecordedWavFile)) { + onSelectFileForConversion(); + return; + } + + QString baseName = QFileInfo(lastRecordedWavFile).completeBaseName(); + QString brrFile = QFileDialog::getSaveFileName(this, "Сохранить BRR файл", baseName + ".brr", "BRR файлы (*.brr)"); + + if (brrFile.isEmpty()) return; + + ui->statusLabel->setText("Конвертация WAV -> BRR..."); + QApplication::processEvents(); + + if (brrConverter->convertWavToBrr(lastRecordedWavFile, brrFile)) { + ui->statusLabel->setText(QString("Конвертация завершена: %1").arg(brrFile)); + + QFileInfo brrInfo(brrFile); + if (brrInfo.exists()) { + QString info = QString("BRR файл создан успешно!\n" + "Файл: %1\n" + "Размер: %2 байт\n" + "Формат: Nintendo SNES ADPCM") + .arg(brrFile) + .arg(brrInfo.size()); + QMessageBox::information(this, "Конвертация завершена", info); + } + } else { + ui->statusLabel->setText("Ошибка конвертации WAV -> BRR"); + QMessageBox::warning(this, "Ошибка", "Не удалось преобразовать WAV в BRR формат"); + } +} + +void Yamitracker::onSelectFileForConversion() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл для конвертации", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + lastRecordedWavFile = filename; + onConvertToBrrClicked(); + } +} + +void Yamitracker::onSelectFileForPlayback() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите WAV файл для воспроизведения", "", "WAV файлы (*.wav)"); + + if (!filename.isEmpty()) { + playWavExternal(filename); + } +} + +void Yamitracker::playWavExternal(const QString &wavFile) +{ + QStringList players = { + "aplay", "paplay", "play", "ffplay" + }; + + QString player; + + for (const QString &p : players) { + QProcess checkProcess; + checkProcess.start("which", QStringList() << p); + checkProcess.waitForFinished(); + if (checkProcess.exitCode() == 0) { + player = p; + break; + } + } + + if (player.isEmpty()) { + QMessageBox::warning(this, "Воспроизведение", + "Не найден аудиоплеер. Установите один из:\n" + "aplay, paplay, sox или ffmpeg"); + return; + } + + ui->statusLabel->setText("Воспроизведение WAV файла..."); + + audioPlayerProcess->start(player, QStringList() << wavFile); + + if (!audioPlayerProcess->waitForStarted(3000)) { + ui->statusLabel->setText("Не удалось запустить аудиоплеер"); + QMessageBox::warning(this, "Ошибка", + QString("Не удалось запустить %1. Убедитесь, что он установлен.").arg(player)); + } +} + +void Yamitracker::scanMidiFiles() +{ + QDir currentDir = QDir::current(); + QStringList filters; + filters << "*.txt"; + QStringList files = currentDir.entryList(filters, QDir::Files); + + midiFilesList->clear(); + for (const QString &file : files) { + // Проверяем, является ли файл MIDI логом + if (file.contains("midi_log_") || + file.contains("CrandPno") || + file.contains("BritePno") || + file.contains("Harpsi") || + file.contains("FngrBass") || + file.contains("Ovrdrive") || + file.contains("Bright")) { + + QFileInfo fileInfo(file); + QListWidgetItem *item = new QListWidgetItem(fileInfo.fileName()); + item->setData(Qt::UserRole, fileInfo.absoluteFilePath()); + midiFilesList->addItem(item); + } + } + + if (midiFilesList->count() == 0) { + QListWidgetItem *item = new QListWidgetItem("MIDI файлы не найдены"); + item->setFlags(item->flags() & ~Qt::ItemIsSelectable); + midiFilesList->addItem(item); + } +} + +void Yamitracker::onLoadMidiFileClicked() +{ + QString filename = QFileDialog::getOpenFileName(this, "Выберите MIDI лог файл", "", "Текстовые файлы (*.txt);;Все файлы (*)"); + + if (!filename.isEmpty()) { + loadMidiFile(filename); + } +} + +void Yamitracker::loadMidiFile(const QString &filename) +{ + QFile file(filename); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QMessageBox::warning(this, "Ошибка", "Не удалось открыть файл: " + filename); + return; + } + + QTextStream in(&file); + QString content = in.readAll(); + file.close(); + + currentMidiFilePath = filename; + parseMidiLog(content); + + ui->statusLabel->setText(QString("Загружен файл: %1").arg(QFileInfo(filename).fileName())); +} + +void Yamitracker::parseMidiLog(const QString &content) +{ + QStringList lines = content.split('\n'); + int program = 1; // По умолчанию + + for (const QString &line : lines) { + if (line.contains("PROGRAM_CHANGE: Program=")) { + // Извлекаем номер программы + QRegularExpression re("Program=(\\d+)"); + QRegularExpressionMatch match = re.match(line); + if (match.hasMatch()) { + program = match.captured(1).toInt(); + // Обновляем выбранный инструмент в комбобоксе + int index = instrumentComboBox->findData(program); + if (index >= 0) { + instrumentComboBox->setCurrentIndex(index); + } + } + } + } + + // Показываем информацию о загруженном файле + QString info = QString("Файл загружен\nИнструмент: %1\nСтрок: %2") + .arg(getInstrumentName(program)) + .arg(lines.count()); + + QMessageBox::information(this, "MIDI файл загружен", info); +} + +void Yamitracker::onPlayMidiFileClicked() +{ + if (currentMidiFilePath.isEmpty()) { + QMessageBox::information(this, "Воспроизведение", "Сначала загрузите MIDI файл"); + return; + } + + // Проверяем, является ли инструмент басовым + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Симуляция MIDI файла [БАС x%1]...").arg(bassVolumeMultiplier)); + QApplication::processEvents(); + + QMessageBox::information(this, "Симуляция MIDI (БАС)", + QString("Симуляция воспроизведения MIDI файла с БАС-инструментом:\n" + "Файл: %1\n" + "Инструмент: %2\n" + "Громкость усилена в %3 раза\n\n" + "В реальной версии бас будет звучать громче.") + .arg(QFileInfo(currentMidiFilePath).fileName()) + .arg(getInstrumentName(currentInstrument)) + .arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText("Симуляция MIDI файла..."); + QApplication::processEvents(); + + QMessageBox::information(this, "Симуляция MIDI", + QString("Симуляция воспроизведения MIDI файла:\n%1\n\nВ реальной версии здесь будет воспроизведение нот.") + .arg(QFileInfo(currentMidiFilePath).fileName())); + } + + ui->statusLabel->setText("Симуляция завершена"); +} + +void Yamitracker::simulateNote(int note, int velocity, double duration) +{ + if (wavWriter->isRecording()) { + double currentTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - recordingStartTime; + wavWriter->addNote(currentTrack, currentTime, note, velocity, duration); + } +} + +void Yamitracker::onSelectedMidiFileChanged() +{ + QList selectedItems = midiFilesList->selectedItems(); + if (!selectedItems.isEmpty()) { + QString filePath = selectedItems.first()->data(Qt::UserRole).toString(); + loadMidiFile(filePath); + } +} + +void Yamitracker::onRecordFromMidiFile() +{ + if (currentMidiFilePath.isEmpty()) { + QMessageBox::information(this, "Запись", "Сначала загрузите MIDI файл"); + return; + } + + // Получаем выбранный инструмент + int currentInstrument = instrumentComboBox->currentData().toInt(); + bool isBassInstrument = bassInstruments.contains(currentInstrument); + + if (isBassInstrument) { + ui->statusLabel->setText(QString("Запись из MIDI файла [БАС x%1]...").arg(bassVolumeMultiplier)); + } else { + ui->statusLabel->setText(QString("Запись из MIDI файла [Инструмент: %1]...").arg(getInstrumentName(currentInstrument))); + } + + // Если это первая запись в сессии, начинаем глобальную запись + if (!isGlobalRecording) { + globalRecordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + isGlobalRecording = true; + } + + // Начинаем запись с высоким качеством + if (wavWriter->startRecording(44100)) { + recordingStartTime = QDateTime::currentMSecsSinceEpoch() / 1000.0; + qDebug() << "Started WAV recording from MIDI file, instrument:" << currentInstrument << "track:" << currentTrack; + + // Генерируем мелодию в зависимости от инструмента + generateInstrumentMelody(currentInstrument); + + wavWriter->stopRecording(); + + // Предлагаем сохранить, если это последняя дорожка + bool hasMoreTracks = false; + for (int i = 0; i < SimpleWavWriter::MAX_TRACKS; i++) { + if (i != currentTrack && wavWriter->getEventCount(i) == 0) { + hasMoreTracks = true; + break; + } + } + + if (!hasMoreTracks) { + onSaveRecordingClicked(); + } + } +} + +void Yamitracker::generateInstrumentMelody(int instrument) +{ + double volumeMultiplier = bassInstruments.contains(instrument) ? bassVolumeMultiplier : 1.0; + + // Время относительно глобального начала записи + double currentGlobalTime = QDateTime::currentMSecsSinceEpoch() / 1000.0 - globalRecordingStartTime; + + // Разные мелодии для разных инструментов + switch (instrument) { + case 1: // CrandPno (Гранд-пианино) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 1.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.5, 64, 80 * volumeMultiplier, 0.5, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 67, 90 * volumeMultiplier, 1.0, instrument); // G4 + wavWriter->addNote(currentTrack, currentGlobalTime + 2.0, 72, 100 * volumeMultiplier, 1.0, instrument); // C5 + break; + + case 2: // BritePno (Яркое пианино) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 0.3, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.1, 64, 90 * volumeMultiplier, 0.3, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.2, 67, 80 * volumeMultiplier, 0.3, instrument); // G4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 72, 100 * volumeMultiplier, 0.5, instrument); // C5 + break; + + case 3: // Harpsi (Клавесин) + case 6: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 0.1, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.1, 62, 90 * volumeMultiplier, 0.1, instrument); // D4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.2, 64, 100 * volumeMultiplier, 0.1, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 65, 90 * volumeMultiplier, 0.1, instrument); // F4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.4, 67, 100 * volumeMultiplier, 0.2, instrument); // G4 + break; + + case 28: // FngrBass (Фингер-бас) + case 33: + case 39: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 36, 120 * volumeMultiplier, 1.0, instrument); // C2 (бас) + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 40, 100 * volumeMultiplier, 0.5, instrument); // E2 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.5, 43, 110 * volumeMultiplier, 1.0, instrument); // G2 + wavWriter->addNote(currentTrack, currentGlobalTime + 2.5, 48, 100 * volumeMultiplier, 0.5, instrument); // C3 + break; + + case 40: // SlapBas (Слэп-бас) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 36, 150 * volumeMultiplier, 0.2, instrument); // C2 (щелчок) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 40, 120 * volumeMultiplier, 0.3, instrument); // E2 (пул) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.7, 43, 140 * volumeMultiplier, 0.2, instrument); // G2 (щелчок) + break; + + case 29: // Ovrdrive (Овердрайв-гитара) + case 37: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 40, 100 * volumeMultiplier, 1.5, instrument); // E2 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.5, 43, 90 * volumeMultiplier, 1.0, instrument); // G2 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 45, 100 * volumeMultiplier, 0.5, instrument); // A2 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.5, 47, 110 * volumeMultiplier, 1.0, instrument); // B2 + break; + + case 48: // String (Струнные) + case 49: // SlowStr (Медленные струнные) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 80 * volumeMultiplier, 2.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.5, 64, 70 * volumeMultiplier, 1.5, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 67, 75 * volumeMultiplier, 2.0, instrument); // G4 + break; + + case 81: // LeadSx (Саксофон) + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 65, 90 * volumeMultiplier, 1.5, instrument); // F4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.3, 67, 85 * volumeMultiplier, 0.5, instrument); // G4 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.8, 69, 95 * volumeMultiplier, 2.0, instrument); // A4 + break; + + case 95: // Bright (Яркий звук) + case 96: + case 100: + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 72, 100 * volumeMultiplier, 0.2, instrument); // C5 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.2, 76, 90 * volumeMultiplier, 0.2, instrument); // E5 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.4, 79, 100 * volumeMultiplier, 0.2, instrument); // G5 + wavWriter->addNote(currentTrack, currentGlobalTime + 0.6, 84, 110 * volumeMultiplier, 0.3, instrument); // C6 + break; + + default: + // Стандартная мелодия для неизвестных инструментов + wavWriter->addNote(currentTrack, currentGlobalTime + 0.0, 60, 100 * volumeMultiplier, 1.0, instrument); // C4 + wavWriter->addNote(currentTrack, currentGlobalTime + 1.0, 64, 80 * volumeMultiplier, 1.0, instrument); // E4 + wavWriter->addNote(currentTrack, currentGlobalTime + 2.0, 67, 90 * volumeMultiplier, 1.0, instrument); // G4 + break; + } +} + +void Yamitracker::highlightKey(const QString ¬e) +{ + if (keyButtons.contains(note)) { + QPushButton *key = keyButtons[note]; + key->setStyleSheet("background-color: #ff4444; color: white; border: 2px solid red;"); + } +} + +void Yamitracker::clearKey(const QString ¬e) +{ + if (!keyButtons.contains(note)) return; + QPushButton *key = keyButtons[note]; + if (key->property("whiteKey").toBool()) + key->setStyleSheet("background-color: white; color: black; border: 1px solid #ccc;"); + else + key->setStyleSheet("background-color: black; color: white;"); +} + +void Yamitracker::clearAllHighlights() +{ + for (auto i = keyButtons.begin(); i != keyButtons.end(); ++i) { + clearKey(i.key()); + } +} + +void Yamitracker::clearStatusMessage() +{ + ui->statusLabel->setText("Статус: Готов"); +} + +void Yamitracker::initializeDeviceDetection() +{ + deviceLabel->setText("Устройство: Поиск..."); +} + +void Yamitracker::autoDetectAndConnect() +{ + QString device = "/dev/dmmidi1"; + serialReader->setDevice(device); + deviceLabel->setText(QString("Устройство: %1").arg(device)); + qDebug() << "Using device:" << device; + + startSerialReader(); +} + +void Yamitracker::onDeviceInfoReceived(const QString &manufacturer, const QString &model) +{ + deviceLabel->setText(QString("Устройство: %1 %2").arg(manufacturer, model)); + + setWindowTitle(QString("Yamitracker - %1 %2").arg(manufacturer, model)); +} + +void Yamitracker::onRefreshDevicesClicked() +{ + deviceLabel->setText("Устройство: Обновление..."); + + autoDetectAndConnect(); +} + +void Yamitracker::startSerialReader() +{ + if (serialReader && !serialReader->isRunning()) { + serialReader->start(); + } +} + +Yamitracker::~Yamitracker() +{ + stopPlayback(); + + if (serialReader) { + serialReader->stop(); + if (serialReader->isRunning()) { + serialReader->terminate(); + serialReader->wait(); + } + } + + delete ui; +} diff --git a/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/src/yamitracker.h b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/src/yamitracker.h new file mode 100644 index 0000000..c0c955a --- /dev/null +++ b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/src/yamitracker.h @@ -0,0 +1,209 @@ +// yamitracker.h +#ifndef YAMITRACKER_H +#define YAMITRACKER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "simplewavwriter.h" +#include "brrconverter.h" + +QT_BEGIN_NAMESPACE +namespace Ui { class Yamitracker; } +QT_END_NAMESPACE + +class SerialReader : public QThread +{ + Q_OBJECT + +public: + SerialReader(QObject *parent = nullptr) : QThread(parent), shouldStop(false) {} + void setDevice(const QString &device) { currentDevice = device; } + void stop() { shouldStop = true; } + +signals: + void noteOnReceived(const QString &data, int velocity); + void noteOffReceived(const QString &data); + void error(const QString &message); + void connectionStatusChanged(bool connected); + void deviceInfoReceived(const QString &manufacturer, const QString &model); + +protected: + void run() override; + +private: + QString currentDevice; + bool shouldStop; +}; + +class Yamitracker : public QMainWindow +{ + Q_OBJECT + +public: + Yamitracker(QWidget *parent = nullptr); + ~Yamitracker(); + +private slots: + // Основные слоты + void onPlayClicked(); + void onPauseClicked(); + void onStopClicked(); + void onSaveRecordingClicked(); + void onConvertToBrrClicked(); + void onSaveMusicFileClicked(); + + // Слоты для устройств и MIDI + void onRefreshDevicesClicked(); + void onLoadMidiFileClicked(); + void onPlayMidiFileClicked(); + void onRecordFromMidiFile(); + void onSelectedMidiFileChanged(); + + // Слоты для файлов + void onSelectFileForConversion(); + void onSelectFileForPlayback(); + + // Слоты для клавиш и устройств + void onNoteOnReceived(const QString &data, int velocity); + void onNoteOffReceived(const QString &data); + void onConnectionStatusChanged(bool connected); + void onError(const QString &message); + void onDeviceInfoReceived(const QString &manufacturer, const QString &model); + + // Слоты для управления дорожками + void onCurrentTrackChanged(int index); + void onAddTrackClicked(); + void onRemoveTrackClicked(); + void onClearTrackClicked(); + void onCopyTrackClicked(); + void onMergeTracksClicked(); + void onLoadWavToTrackClicked(); + + // Слоты для воспроизведения + void onPlayTrackClicked(); + void onPlayAllTracksClicked(); + void onStopPlaybackClicked(); + void onPlaybackFinished(); + + // Слоты для управления элементами дорожек + void onMuteTrackClicked(); + void onSoloTrackClicked(); + void onTrackVolumeChanged(int value); + void onTrackNameChanged(); + void onTrackInstrumentChanged(int index); + + // Слоты для эффектов + void onPlaybackSpeedChanged(int value); + void onBassVolumeChanged(int value); + + // Вспомогательные слоты + void attemptReconnect(); + void handleAudioStateChanged(QAudio::State state); + void clearStatusMessage(); + +private: + Ui::Yamitracker *ui; + SerialReader *serialReader; + QTimer *reconnectTimer; + bool isConnected; + SimpleWavWriter *wavWriter; + double recordingStartTime; + BrrConverter *brrConverter; + QProcess *audioPlayerProcess; + QTimer *playbackTimer; + + // Элементы UI + QSlider *playbackSpeedSlider; + QSlider *bassVolumeSlider; + QLabel *speedLabel; + QLabel *volumeLabel; + QLabel *deviceLabel; + QPushButton *refreshDevicesButton; + QListWidget *midiFilesList; + QComboBox *instrumentComboBox; + QComboBox *trackComboBox; + + // Аудио воспроизведение + QAudioOutput *audioOutput; + QBuffer *audioBuffer; + bool isPlayingBack; + int currentPlaybackTrack; + int currentTrack; + + // Данные + QString lastRecordedWavFile; + QString currentMidiFilePath; + QHash keyButtons; + QSet currentlyPressedKeys; + QHash noteStartTimes; + + // Управление дорожками + QVector trackNameEdits; + QVector trackInstrumentComboBoxes; + QVector trackVolumeSliders; + QVector trackVolumeLabels; + QVector trackMuteButtons; + QVector trackSoloButtons; + + // Вспомогательные методы + void initializeTracks(); + void initializeTrackControls(); + void updateTrackControls(); + void updateTrackInfo(); + void updateSpeedLabel(); + void updateVolumeLabel(); + + void initializeKeyButtons(); + void initializeDeviceDetection(); + void autoDetectAndConnect(); + void startSerialReader(); + + void highlightKey(const QString ¬e); + void clearKey(const QString ¬e); + void clearAllHighlights(); + + void scanMidiFiles(); + void loadMidiFile(const QString &filename); + void parseMidiLog(const QString &content); + void generateInstrumentMelody(int instrument); + void simulateNote(int note, int velocity, double duration); + + void saveWavFile(const QString &filename); + void saveMusicFile(const QString &filename); + void playWavExternal(const QString &wavFile); + void playTrack(int track); + void playAllTracks(); + void stopPlayback(); + + QByteArray mixSelectedTracks(const QVector &trackIndices); + QByteArray convertMonoToStereo(const QByteArray &monoData); + + QString getInstrumentName(int program); + + // Карта инструментов + QMap instruments = { + {1, "CrandPno"}, {2, "BritePno"}, {3, "Harpsi"}, {6, "Harpsi2"}, + {28, "FngrBass"}, {33, "FngrBass2"}, {39, "FngrBass3"}, {40, "SlapBas"}, + {29, "Ovrdrive"}, {37, "Ovrdrive2"}, {38, "DstGtr"}, + {48, "String"}, {49, "SlowStr"}, {81, "LeadSx"}, + {95, "Bright"}, {96, "Bright2"}, {100, "Bright3"} + }; + + // Флаг для отслеживания относительного времени записи + double globalRecordingStartTime; + bool isGlobalRecording; +}; + +#endif // YAMITRACKER_H diff --git a/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/ui/yamitracker.ui b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/ui/yamitracker.ui new file mode 100644 index 0000000..5622c06 --- /dev/null +++ b/Yamitracker-reoload/YamitrackerTestQT/Yamitracker/ui/yamitracker.ui @@ -0,0 +1,1000 @@ + + + Yamitracker + + + + 0 + 0 + 1400 + 1000 + + + + Yamaha PSR-E333 Monitor - Multitrack Recording + + + + + + + + + Статус: Готов + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Устройство: Не подключено + + + + + + + + + + + Нажато клавиш: 0 + + + + + + + 0 + + + + + + + + + Управление записью + + + + + + ▶ Запись с синтезатора + + + + + + + ⏸ Пауза + + + false + + + + + + + ⏹ Стоп + + + + + + + 💾 Сохранить запись + + + + + + + 🔄 Конвертировать в BRR + + + + + + + 🎵 Сохранить музыку (Pently) + + + + + + + + + + Управление воспроизведением + + + + + + ▶ Текущая дорожка + + + + + + + ▶▶ Все дорожки + + + + + + + ⏹ Стоп воспроизведение + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 📂 Загрузить WAV в дорожку + + + + + + + + + + Управление дорожками + + + + + + Текущая дорожка: + + + + + + + + + + ➕ Новая дорожка + + + + + + + 🗑 Удалить дорожку + + + + + + + 🗑 Очистить дорожку + + + + + + + 📋 Копировать дорожку + + + + + + + 🔀 Объединить дорожки + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Дорожка 1: 0 нот + + + + + + + + + + true + + + + + 0 + 0 + 1380 + 300 + + + + + + + Панель управления дорожками: + + + + + + + + + + + Работа с MIDI файлами + + + + + + + + Инструмент: + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Скорость: 100% + + + + + + + Qt::Horizontal + + + 50 + + + 200 + + + 100 + + + + + + + Бас: 200% + + + + + + + Qt::Horizontal + + + 100 + + + 400 + + + 200 + + + + + + + 🔃 Обновить устройства + + + + + + + + + + + 📂 Загрузить MIDI файл + + + + + + + ▶ Воспроизвести MIDI + + + + + + + ● Записать из MIDI + + + + + + + 📁 Выбрать файл для конвертации + + + + + + + ▶ Воспроизвести WAV + + + + + + + + + Доступные MIDI файлы: + + + + + + + + + + + + + + + + + + + C1 + + + + + + + D1 + + + + + + + E1 + + + + + + + F1 + + + + + + + G1 + + + + + + + A1 + + + + + + + B1 + + + + + + + C2 + + + + + + + D2 + + + + + + + E2 + + + + + + + F2 + + + + + + + G2 + + + + + + + A2 + + + + + + + B2 + + + + + + + C3 + + + + + + + D3 + + + + + + + E3 + + + + + + + F3 + + + + + + + G3 + + + + + + + A3 + + + + + + + B3 + + + + + + + C4 + + + + + + + D4 + + + + + + + E4 + + + + + + + F4 + + + + + + + G4 + + + + + + + A4 + + + + + + + B4 + + + + + + + C5 + + + + + + + D5 + + + + + + + E5 + + + + + + + F5 + + + + + + + G5 + + + + + + + A5 + + + + + + + B5 + + + + + + + C6 + + + + + + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#1 + + + + + + + D#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#1 + + + + + + + G#1 + + + + + + + A#1 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#2 + + + + + + + D#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#2 + + + + + + + G#2 + + + + + + + A#2 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#3 + + + + + + + D#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#3 + + + + + + + G#3 + + + + + + + A#3 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#4 + + + + + + + D#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#4 + + + + + + + G#4 + + + + + + + A#4 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + C#5 + + + + + + + D#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + F#5 + + + + + + + G#5 + + + + + + + A#5 + + + + + + + Qt::Horizontal + + + + 15 + 20 + + + + + + + + + + + + + + + diff --git a/Yamitracker-reoload/a b/Yamitracker-reoload/a new file mode 100755 index 0000000..dd134ea Binary files /dev/null and b/Yamitracker-reoload/a differ diff --git a/Yamitracker-reoload/trackCode.cpp b/Yamitracker-reoload/trackCode.cpp new file mode 100644 index 0000000..513f80b --- /dev/null +++ b/Yamitracker-reoload/trackCode.cpp @@ -0,0 +1,330 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // Добавлено для std::replace + +// Флаги для управления циклом +volatile bool running = true; +volatile bool shouldStop = false; + +// Карта соответствия нот MIDI +std::map noteMapping = { + {"24","C1"},{"25","C#1"},{"26","D1"},{"27","D#1"},{"28","E1"},{"29","F1"},{"2A","F#1"},{"2B","G1"},{"2C","G#1"},{"2D","A1"},{"2E","A#1"},{"2F","B1"}, + {"30","C2"},{"31","C#2"},{"32","D2"},{"33","D#2"},{"34","E2"},{"35","F2"},{"36","F#2"},{"37","G2"},{"38","G#2"},{"39","A2"},{"3A","A#2"},{"3B","B2"}, + {"3C","C3"},{"3D","C#3"},{"3E","D3"},{"3F","D#3"},{"40","E3"},{"41","F3"},{"42","F#3"},{"43","G3"},{"44","G#3"},{"45","A3"},{"46","A#3"},{"47","B3"}, + {"48","C4"},{"49","C#4"},{"4A","D4"},{"4B","D#4"},{"4C","E4"},{"4D","F4"},{"4E","F#4"},{"4F","G4"},{"50","G#4"},{"51","A4"},{"52","A#4"},{"53","B4"}, + {"54","C5"},{"55","C#5"},{"56","D5"},{"57","D#5"},{"58","E5"},{"59","F5"},{"5A","F#5"},{"5B","G5"},{"5C","G#5"},{"5D","A5"},{"5E","A#5"},{"5F","B5"}, + {"60","C6"} +}; + +// Обработчик сигнала для корректного завершения +void signalHandler(int signum) { + (void)signum; // Используем параметр, чтобы избежать предупреждения + std::cout << "\nПолучен сигнал завершения. Завершаем работу..." << std::endl; + running = false; + shouldStop = true; +} + +// Функция для получения текущего времени в формате строки +std::string getCurrentTime() { + time_t now = time(0); + char buffer[80]; + struct tm* timeinfo = localtime(&now); + strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", timeinfo); + return std::string(buffer); +} + +// Функция для получения имени файла без запрещенных символов +std::string getSafeFilename() { + std::string timestamp = getCurrentTime(); + std::string filename = "midi_log_" + timestamp + ".txt"; + + // Заменяем недопустимые символы в имени файла + std::replace(filename.begin(), filename.end(), ':', '-'); + std::replace(filename.begin(), filename.end(), ' ', '_'); + + return filename; +} + +// Функция для записи данных в файл +void logToFile(std::ofstream& logFile, const std::string& type, const std::string& hexNote, + const std::string& noteName = "", int velocity = -1, int program = -1) { + + std::string timestamp = getCurrentTime(); + std::string logEntry = "[" + timestamp + "] "; + + if (type == "NOTE_ON") { + logEntry += "NOTE_ON: Hex=" + hexNote + " Note=" + noteName + " Velocity=" + std::to_string(velocity); + } else if (type == "NOTE_OFF") { + logEntry += "NOTE_OFF: Hex=" + hexNote + " Note=" + noteName; + } else if (type == "PROGRAM_CHANGE") { + logEntry += "PROGRAM_CHANGE: Program=" + std::to_string(program); + } else if (type == "STATUS") { + logEntry += "STATUS: " + hexNote; + } else if (type == "CONTROL") { + logEntry += "CONTROL: " + hexNote; + } else if (type == "PITCH_BEND") { + logEntry += "PITCH_BEND: " + hexNote; + } + + // Записываем в файл + logFile << logEntry << std::endl; + logFile.flush(); // Сразу записываем на диск + + // Выводим в консоль + std::cout << logEntry << std::endl; +} + +// Основная функция чтения MIDI данных +void readMidiData(const std::string& devicePath) { + std::string filename = getSafeFilename(); + std::ofstream logFile(filename); + + if (!logFile.is_open()) { + std::cerr << "Ошибка открытия файла для записи: " << filename << std::endl; + return; + } + + std::cout << "Логирование запущено. Данные записываются в файл: " << filename << std::endl; + std::cout << "Для остановки нажмите Ctrl+C" << std::endl; + + logToFile(logFile, "STATUS", "Запуск логгирования MIDI данных"); + logToFile(logFile, "STATUS", "Устройство: " + devicePath); + + int fd = open(devicePath.c_str(), O_RDWR | O_NOCTTY); + if (fd < 0) { + logToFile(logFile, "STATUS", "Ошибка: Не удалось открыть устройство " + devicePath); + std::cerr << "Ошибка: Не удалось открыть устройство " << devicePath << std::endl; + std::cerr << "Ошибка системы: " << strerror(errno) << std::endl; + logFile.close(); + return; + } + + logToFile(logFile, "STATUS", "Устройство успешно открыто"); + + // Настройка последовательного порта + struct termios tty; + tcgetattr(fd, &tty); + cfsetospeed(&tty, B115200); + cfsetispeed(&tty, B115200); + tty.c_cflag |= (CLOCAL | CREAD | CS8); + tty.c_cc[VMIN] = 1; + tcsetattr(fd, TCSANOW, &tty); + + logToFile(logFile, "STATUS", "Настройка порта завершена, скорость: 115200 бод"); + + unsigned char byte; + int programNumber = -1; // Номер текущей программы (инструмента) + + while (running) { + ssize_t bytesRead = read(fd, &byte, 1); + + if (bytesRead <= 0) { + if (shouldStop) break; + if (bytesRead < 0) { + // Ошибка чтения + std::cerr << "Ошибка чтения: " << strerror(errno) << std::endl; + break; + } + continue; + } + + // Пропускаем системные сообщения + if (byte == 0xF8 || byte == 0xFE) { + continue; + } + + // Проверяем статус байт + if (byte & 0x80) { + // NOTE ON (0x90) - нажатие клавиши + if ((byte & 0xF0) == 0x90) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + char hexStr[3]; + snprintf(hexStr, sizeof(hexStr), "%02X", note); + std::string hexNote = hexStr; + + std::string noteName = "Unknown"; + if (noteMapping.find(hexNote) != noteMapping.end()) { + noteName = noteMapping[hexNote]; + } + + if (velocity == 0) { + // velocity=0 интерпретируем как NOTE OFF + logToFile(logFile, "NOTE_OFF", hexNote, noteName); + } else { + logToFile(logFile, "NOTE_ON", hexNote, noteName, velocity, programNumber); + } + } + } + // NOTE OFF (0x80) - отпускание клавиши + else if ((byte & 0xF0) == 0x80) { + unsigned char note, velocity; + if (read(fd, ¬e, 1) > 0 && read(fd, &velocity, 1) > 0) { + char hexStr[3]; + snprintf(hexStr, sizeof(hexStr), "%02X", note); + std::string hexNote = hexStr; + + std::string noteName = "Unknown"; + if (noteMapping.find(hexNote) != noteMapping.end()) { + noteName = noteMapping[hexNote]; + } + + logToFile(logFile, "NOTE_OFF", hexNote, noteName); + } + } + // PROGRAM CHANGE (0xC0) - смена программы/инструмента + else if ((byte & 0xF0) == 0xC0) { + unsigned char program; + if (read(fd, &program, 1) > 0) { + programNumber = program; + logToFile(logFile, "PROGRAM_CHANGE", "", "", -1, programNumber); + } + } + // CONTROL CHANGE (0xB0) - управляющие изменения + else if ((byte & 0xF0) == 0xB0) { + unsigned char controller, value; + if (read(fd, &controller, 1) > 0 && read(fd, &value, 1) > 0) { + char hexController[3]; + snprintf(hexController, sizeof(hexController), "%02X", controller); + + // Логируем только важные контроллеры + if (controller == 0x07) { // Volume + logToFile(logFile, "CONTROL", + "Controller=0x" + std::string(hexController) + " (Volume) Value=" + std::to_string(value)); + } else if (controller == 0x0A) { // Pan + logToFile(logFile, "CONTROL", + "Controller=0x" + std::string(hexController) + " (Pan) Value=" + std::to_string(value)); + } else { + logToFile(logFile, "CONTROL", + "Controller=0x" + std::string(hexController) + " Value=" + std::to_string(value)); + } + } + } + // PITCH BEND (0xE0) - изгиб тона + else if ((byte & 0xF0) == 0xE0) { + unsigned char lsb, msb; + if (read(fd, &lsb, 1) > 0 && read(fd, &msb, 1) > 0) { + int bendValue = ((msb << 7) | lsb) - 8192; // Центр = 0 + logToFile(logFile, "PITCH_BEND", + "Value=" + std::to_string(bendValue)); + } + } + // Другие MIDI сообщения + else { + char hexByte[3]; + snprintf(hexByte, sizeof(hexByte), "%02X", byte); + logToFile(logFile, "STATUS", + "Неизвестное MIDI сообщение: 0x" + std::string(hexByte)); + } + } else { + // Данные без статусного байта (продолжение предыдущего сообщения) + char hexByte[3]; + snprintf(hexByte, sizeof(hexByte), "%02X", byte); + logToFile(logFile, "STATUS", + "Данные без статуса: 0x" + std::string(hexByte)); + } + } + + close(fd); + logToFile(logFile, "STATUS", "Логгирование остановлено"); + logFile.close(); + + std::cout << "\nЛоггирование завершено. Данные сохранены в файле: " << filename << std::endl; +} + +// Функция для автоматического поиска MIDI-устройств +std::string findMidiDevice() { + const char* possibleDevices[] = { + "/dev/dmmidi1", + "/dev/dmmidi2", + "/dev/ttyACM0", + "/dev/ttyACM1", + "/dev/ttyUSB0", + "/dev/ttyUSB1", + "/dev/midi1", + "/dev/midi2", + "/dev/midi", + "/dev/ttyS0", + "/dev/ttyS1", + "/dev/ttyS2", + "/dev/ttyS3" + }; + + int numDevices = sizeof(possibleDevices) / sizeof(possibleDevices[0]); + + std::cout << "Поиск MIDI устройств..." << std::endl; + + for (int i = 0; i < numDevices; i++) { + if (access(possibleDevices[i], F_OK) != -1) { + std::cout << "✓ Найдено устройство: " << possibleDevices[i] << std::endl; + return std::string(possibleDevices[i]); + } else { + std::cout << " Проверено: " << possibleDevices[i] << " (не найдено)" << std::endl; + } + } + + return ""; +} + +int main() { + // Устанавливаем обработчики сигналов + signal(SIGINT, signalHandler); + signal(SIGTERM, signalHandler); + + std::cout << "=== Yamaha MIDI Data Logger ===" << std::endl; + std::cout << "Программа для записи MIDI данных с синтезатора Yamaha" << std::endl; + std::cout << "===================================" << std::endl; + + // Автоматический поиск устройства + std::string devicePath = findMidiDevice(); + + if (devicePath.empty()) { + std::cout << "\nMIDI устройство не найдено автоматически." << std::endl; + std::cout << "Введите путь к устройству вручную: "; + std::getline(std::cin, devicePath); + + if (devicePath.empty()) { + devicePath = "/dev/dmmidi1"; // Значение по умолчанию + std::cout << "Используется устройство по умолчанию: " << devicePath << std::endl; + } + } + + std::cout << "\nНастройки логгирования:" << std::endl; + std::cout << "1. Записывать все MIDI сообщения" << std::endl; + std::cout << "2. Записывать только ноты (Note On/Off)" << std::endl; + std::cout << "3. Записывать ноты и программы" << std::endl; + std::cout << "\nВыберите режим (1-3, по умолчанию 3): "; + + std::string modeInput; + std::getline(std::cin, modeInput); + + int mode = 3; // Режим по умолчанию + if (!modeInput.empty()) { + try { + mode = std::stoi(modeInput); + if (mode < 1 || mode > 3) mode = 3; + } catch (...) { + mode = 3; + } + } + + std::cout << "\nНачинаю логгирование с устройства: " << devicePath << std::endl; + std::cout << "Режим: " << mode << std::endl; + std::cout << "===================================" << std::endl; + std::cout << "Для остановки нажмите Ctrl+C" << std::endl; + std::cout << "===================================" << std::endl; + + // Запускаем чтение данных + readMidiData(devicePath); + + std::cout << "\nПрограмма завершена." << std::endl; + return 0; +} \ No newline at end of file diff --git a/yama.c b/Yamitracker-reoload/yama.c similarity index 100% rename from yama.c rename to Yamitracker-reoload/yama.c diff --git a/localGit/Yamitracker/.gitignore b/localGit/Yamitracker/.gitignore new file mode 100644 index 0000000..aa3808c --- /dev/null +++ b/localGit/Yamitracker/.gitignore @@ -0,0 +1,82 @@ +# This file is used to ignore files which are generated +# ---------------------------------------------------------------------------- + +*~ +*.autosave +*.a +*.core +*.moc +*.o +*.obj +*.orig +*.rej +*.so +*.so.* +*_pch.h.cpp +*_resource.rc +*.qm +.#* +*.*# +core +!core/ +tags +.DS_Store +.directory +*.debug +Makefile* +*.prl +*.app +moc_*.cpp +ui_*.h +qrc_*.cpp +Thumbs.db +*.res +*.rc +/.qmake.cache +/.qmake.stash + +# qtcreator generated files +*.pro.user* +*.qbs.user* +CMakeLists.txt.user* + +# xemacs temporary files +*.flc + +# Vim temporary files +.*.swp + +# Visual Studio generated files +*.ib_pdb_index +*.idb +*.ilk +*.pdb +*.sln +*.suo +*.vcproj +*vcproj.*.*.user +*.ncb +*.sdf +*.opensdf +*.vcxproj +*vcxproj.* + +# MinGW generated files +*.Debug +*.Release + +# Python byte code +*.pyc + +# Binaries +# -------- +*.dll +*.exe + +# Directories with generated files +.moc/ +.obj/ +.pch/ +.rcc/ +.uic/ +/build*/ diff --git a/localGit/Yamitracker/Yamitracker.pro b/localGit/Yamitracker/Yamitracker.pro new file mode 100644 index 0000000..7bcca5f --- /dev/null +++ b/localGit/Yamitracker/Yamitracker.pro @@ -0,0 +1,37 @@ +QT += core gui multimedia serialport + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +# Добавляем пути для include +INCLUDEPATH += /usr/include/rtmidi +INCLUDEPATH += src +INCLUDEPATH += converter +INCLUDEPATH += format +INCLUDEPATH += detected + +LIBS += -lrtmidi -lasound + +CONFIG += c++17 + +SOURCES += \ + converter/csvrecorder.cpp \ + detected/detecteddevaice.cpp \ + main.cpp \ + format/midireader.cpp \ + format/midirecorder.cpp \ + src/yamitracker.cpp + +HEADERS += \ + converter/csvrecorder.h \ + detected/detecteddevaice.h \ + format/midireader.h \ + format/midirecorder.h \ + src/yamitracker.h + +FORMS += \ + ui/yamitracker.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target diff --git a/localGit/Yamitracker/converter/csvrecorder.cpp b/localGit/Yamitracker/converter/csvrecorder.cpp new file mode 100644 index 0000000..2ebd01b --- /dev/null +++ b/localGit/Yamitracker/converter/csvrecorder.cpp @@ -0,0 +1,96 @@ +// csvrecorder.cpp +#include "csvrecorder.h" +#include + +CsvRecorder::CsvRecorder(QObject *parent) + : QObject(parent) + , recording(false) +{ +} + +CsvRecorder::~CsvRecorder() +{ + if (recording) { + stopRecording(); + } +} + +void CsvRecorder::startRecording(const QString &filename) +{ + file.setFileName(filename); + if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { + qDebug() << "Cannot open file:" << filename; + return; + } + + stream.setDevice(&file); + writeHeader(); + + recording = true; + timer.start(); + startTime = 0; +} + +void CsvRecorder::stopRecording() +{ + if (recording) { + recording = false; + file.close(); + qDebug() << "Recording saved to" << file.fileName(); + } +} + +void CsvRecorder::writeHeader() +{ + stream << "time_ms,type,channel,note,velocity,controller,value,raw_data\n"; + stream.flush(); +} + +void CsvRecorder::writeEvent(const QString &type, const QString &details) +{ + if (!recording) return; + + qint64 elapsed = timer.elapsed(); + if (startTime == 0) { + startTime = elapsed; + elapsed = 0; + } else { + elapsed -= startTime; + } + + stream << elapsed << "," << type << "," << details << "\n"; + stream.flush(); +} + +void CsvRecorder::recordMidiMessage(const QByteArray &data) +{ + QString details = QString(",,,,\"%1\"").arg(QString(data.toHex())); + writeEvent("MIDI", details); +} + +void CsvRecorder::recordNoteOn(int channel, int note, int velocity) +{ + QString details = QString("%1,%2,%3,,,") + .arg(channel) + .arg(note) + .arg(velocity); + writeEvent("NOTE_ON", details); +} + +void CsvRecorder::recordNoteOff(int channel, int note, int velocity) +{ + QString details = QString("%1,%2,%3,,,") + .arg(channel) + .arg(note) + .arg(velocity); + writeEvent("NOTE_OFF", details); +} + +void CsvRecorder::recordControlChange(int channel, int controller, int value) +{ + QString details = QString("%1,,,%2,%3,") + .arg(channel) + .arg(controller) + .arg(value); + writeEvent("CONTROL", details); +} diff --git a/localGit/Yamitracker/converter/csvrecorder.h b/localGit/Yamitracker/converter/csvrecorder.h new file mode 100644 index 0000000..66af863 --- /dev/null +++ b/localGit/Yamitracker/converter/csvrecorder.h @@ -0,0 +1,37 @@ +// csvrecorder.h +#ifndef CSVRECORDER_H +#define CSVRECORDER_H + +#include +#include +#include +#include + +class CsvRecorder : public QObject +{ + Q_OBJECT +public: + explicit CsvRecorder(QObject *parent = nullptr); + ~CsvRecorder(); + + void startRecording(const QString &filename); + void stopRecording(); + +public slots: + void recordMidiMessage(const QByteArray &data); + void recordNoteOn(int channel, int note, int velocity); + void recordNoteOff(int channel, int note, int velocity); + void recordControlChange(int channel, int controller, int value); + +private: + QFile file; + QTextStream stream; + QElapsedTimer timer; + qint64 startTime; + bool recording; + + void writeHeader(); + void writeEvent(const QString &type, const QString &details); +}; + +#endif diff --git a/localGit/Yamitracker/detected/detecteddevaice.cpp b/localGit/Yamitracker/detected/detecteddevaice.cpp new file mode 100644 index 0000000..370cced --- /dev/null +++ b/localGit/Yamitracker/detected/detecteddevaice.cpp @@ -0,0 +1,304 @@ +// #include "detecteddevaice.h" +// #include +// #include +// #include +// #include +// #include +// #include + +// DetectedDevaice::DetectedDevaice(QObject *parent) +// : QObject(parent) +// , m_detectionTimer(new QTimer(this)) +// , m_midiProcess(new QProcess(this)) +// , m_readTimer(new QTimer(this)) +// , m_isConnected(false) +// { +// // Настройка таймера обнаружения +// m_detectionTimer->setSingleShot(false); +// connect(m_detectionTimer, &QTimer::timeout, this, &DetectedDevaice::checkDevices); + +// // Настройка процесса для чтения MIDI данных +// m_midiProcess->setProcessChannelMode(QProcess::MergedChannels); +// connect(m_midiProcess, &QProcess::readyReadStandardOutput, this, &DetectedDevaice::onMidiDataReady); +// connect(m_midiProcess, QOverload::of(&QProcess::finished), +// this, &DetectedDevaice::onProcessFinished); + +// // Таймер для периодического чтения данных +// m_readTimer->setInterval(100); +// m_readTimer->setSingleShot(false); +// connect(m_readTimer, &QTimer::timeout, this, &DetectedDevaice::onMidiDataReady); + +// // Первоначальная проверка устройств +// QTimer::singleShot(1000, this, &DetectedDevaice::checkDevices); +// } + +// DetectedDevaice::~DetectedDevaice() +// { +// stopDetection(); +// disconnectDevice(); +// } + +// void DetectedDevaice::startDetection(int intervalMs) +// { +// m_detectionTimer->start(intervalMs); +// } + +// void DetectedDevaice::stopDetection() +// { +// m_detectionTimer->stop(); +// } + +// void DetectedDevaice::forceReconnect() +// { +// disconnectDevice(); +// checkDevices(); +// } + +// void DetectedDevaice::checkDevices() +// { +// // Если уже подключены, проверяем доступность текущего порта +// if (m_isConnected) { +// QSerialPortInfo info(m_currentPort); +// if (!info.isValid()) { +// qDebug() << "Device disconnected:" << m_currentPort; +// disconnectDevice(); +// } +// return; +// } + +// // Ищем новые MIDI устройства +// detectMIDIDevices(); +// } + +// void DetectedDevaice::detectMIDIDevices() +// { +// qDebug() << "Scanning for MIDI devices..."; + +// // Метод 1: Проверка через ALSA (наиболее надежно для Linux) +// QDir seqDir("/dev/snd/"); +// QStringList midiDevices; + +// // Поиск MIDI устройств в /dev/snd/ +// if (seqDir.exists()) { +// QStringList filters; +// filters << "midi*" << "seq"; +// QFileInfoList devices = seqDir.entryInfoList(filters, QDir::System | QDir::Files); + +// foreach (const QFileInfo &device, devices) { +// QString devPath = device.absoluteFilePath(); +// qDebug() << "Found potential MIDI device:" << devPath; + +// if (testMIDIDevice(devPath)) { +// midiDevices.append(devPath); +// } +// } +// } + +// // Метод 2: Проверка через aconnect (ALSA) +// QProcess aconnectProcess; +// aconnectProcess.start("aconnect", QStringList() << "-i" << "-l"); +// if (aconnectProcess.waitForFinished(2000)) { +// QString output = QString::fromLocal8Bit(aconnectProcess.readAllStandardOutput()); +// QRegularExpression regex("client\\s+(\\d+):\\s+'([^']+)'"); +// QRegularExpressionMatchIterator matches = regex.globalMatch(output); + +// while (matches.hasNext()) { +// QRegularExpressionMatch match = matches.next(); +// QString clientId = match.captured(1); +// QString clientName = match.captured(2); + +// qDebug() << "ALSA MIDI client found:" << clientId << clientName; + +// // Проверяем, есть ли у клиента выходные порты +// if (output.contains(QString("client %1").arg(clientId)) && +// output.contains("Output")) { + +// // Формируем виртуальное устройство ALSA +// QString alsaDevice = QString("virtual:%1").arg(clientId); +// if (testMIDIDevice(alsaDevice)) { +// midiDevices.append(alsaDevice); +// m_deviceName = clientName; +// } +// } +// } +// } + +// // Метод 3: Проверка через /proc/asound/ (альтернативный метод) +// QFile cardsFile("/proc/asound/cards"); +// if (cardsFile.open(QIODevice::ReadOnly | QIODevice::Text)) { +// QTextStream in(&cardsFile); +// QString cardsData = in.readAll(); +// cardsFile.close(); + +// QRegularExpression regex("\\[(.*?)\\]"); +// QRegularExpressionMatchIterator matches = regex.globalMatch(cardsData); + +// while (matches.hasNext()) { +// QRegularExpressionMatch match = matches.next(); +// QString cardName = match.captured(1).trimmed(); +// if (!cardName.isEmpty()) { +// qDebug() << "Sound card found:" << cardName; +// } +// } +// } + +// // Подключаемся к первому найденному устройству +// if (!midiDevices.isEmpty()) { +// connectToDevice(midiDevices.first()); +// } else { +// qDebug() << "No MIDI devices found"; +// } +// } + +// bool DetectedDevaice::testMIDIDevice(const QString &device) +// { +// // Для ALSA виртуальных устройств +// if (device.startsWith("virtual:")) { +// // Проверяем доступность через aconnect +// QProcess checkProcess; +// checkProcess.start("aconnect", QStringList() << "-i" << "-l"); +// if (checkProcess.waitForFinished(2000)) { +// QString output = checkProcess.readAllStandardOutput(); +// QString clientId = device.mid(8); // Убираем "virtual:" + +// return output.contains(QString("client %1").arg(clientId)); +// } +// return false; +// } + +// // Для физических устройств +// QFile deviceFile(device); +// if (deviceFile.exists() && deviceFile.permission(QFile::ReadUser | QFile::WriteUser)) { +// // Пробуем открыть устройство для теста +// if (deviceFile.open(QIODevice::ReadWrite | QIODevice::Unbuffered)) { +// deviceFile.close(); +// return true; +// } +// } + +// return false; +// } + +// void DetectedDevaice::connectToDevice(const QString &device) +// { +// if (m_isConnected && m_currentPort == device) { +// return; // Уже подключены к этому устройству +// } + +// disconnectDevice(); + +// qDebug() << "Connecting to MIDI device:" << device; + +// m_currentPort = device; +// m_deviceName = getDeviceFriendlyName(device); + +// // Для физических устройств используем cat для чтения +// if (!device.startsWith("virtual:")) { +// m_midiProcess->start("cat", QStringList() << device); +// } else { +// // Для ALSA виртуальных устройств используем arecordmidi +// QString clientId = device.mid(8); +// m_midiProcess->start("arecordmidi", QStringList() << "-p" << clientId << "/dev/null"); +// } + +// if (m_midiProcess->waitForStarted(2000)) { +// m_isConnected = true; +// m_readTimer->start(); +// emit deviceConnected(m_currentPort, m_deviceName); +// qDebug() << "Successfully connected to:" << m_deviceName << "on" << m_currentPort; +// } else { +// QString error = QString("Failed to connect to device: %1").arg(m_midiProcess->errorString()); +// qDebug() << error; +// emit deviceError(error); +// disconnectDevice(); +// } +// } + +// void DetectedDevaice::disconnectDevice() +// { +// if (m_midiProcess->state() != QProcess::NotRunning) { +// m_midiProcess->terminate(); +// m_midiProcess->waitForFinished(1000); +// if (m_midiProcess->state() != QProcess::NotRunning) { +// m_midiProcess->kill(); +// } +// } + +// m_readTimer->stop(); +// m_isConnected = false; +// m_currentPort.clear(); +// m_deviceName.clear(); + +// emit deviceDisconnected(); +// qDebug() << "Device disconnected"; +// } + +// QString DetectedDevaice::getDeviceFriendlyName(const QString &device) +// { +// // Для физических устройств пытаемся получить понятное имя +// if (device.startsWith("/dev/snd/")) { +// // Пробуем найти相关信息 в /proc/asound/ +// QFile infoFile("/proc/asound/cards"); +// if (infoFile.open(QIODevice::ReadOnly | QIODevice::Text)) { +// QTextStream in(&infoFile); +// QString line; +// while (in.readLineInto(&line)) { +// if (line.contains(device.section('/', -1))) { +// QRegularExpression regex("\\[(.*?)\\]"); +// QRegularExpressionMatch match = regex.match(line); +// if (match.hasMatch()) { +// QString name = match.captured(1); +// infoFile.close(); +// return name; +// } +// } +// } +// infoFile.close(); +// } +// } +// // Для ALSA виртуальных устройств +// else if (device.startsWith("virtual:")) { +// QProcess nameProcess; +// nameProcess.start("aconnect", QStringList() << "-i" << "-l"); +// if (nameProcess.waitForFinished(2000)) { +// QString output = nameProcess.readAllStandardOutput(); +// QString clientId = device.mid(8); +// QRegularExpression regex(QString("client\\s+%1:\\s+'([^']+)'").arg(clientId)); +// QRegularExpressionMatch match = regex.match(output); +// if (match.hasMatch()) { +// return match.captured(1); +// } +// } +// } + +// // Проверяем известных производителей +// foreach (const QString &vendor, m_knownVendors) { +// if (device.contains(vendor, Qt::CaseInsensitive)) { +// return vendor + " Synthesizer"; +// } +// } + +// // Возвращаем базовое имя файла, если ничего не найдено +// return device.section('/', -1); +// } + +// void DetectedDevaice::onMidiDataReady() +// { +// if (!m_isConnected || m_midiProcess->state() != QProcess::Running) { +// return; +// } + +// QByteArray data = m_midiProcess->readAllStandardOutput(); +// if (!data.isEmpty()) { +// qDebug() << "MIDI data received:" << data.toHex(); +// emit midiEvent(data); +// } +// } + +// void DetectedDevaice::onProcessFinished() +// { +// if (m_isConnected) { +// qDebug() << "MIDI process finished unexpectedly"; +// disconnectDevice(); +// } +// } diff --git a/localGit/Yamitracker/detected/detecteddevaice.h b/localGit/Yamitracker/detected/detecteddevaice.h new file mode 100644 index 0000000..8bb2445 --- /dev/null +++ b/localGit/Yamitracker/detected/detecteddevaice.h @@ -0,0 +1,59 @@ +// #ifndef DETECTEDDEVAICE_H +// #define DETECTEDDEVAICE_H + +// #include +// #include +// #include +// #include +// #include + +// class DetectedDevaice : QObject{ +// Q_OBJECT + +// public: +// explicit DetectedDevaice(QObject *parent = nullptr); +// ~DetectedDevaice(); + +// // Статус подключения +// bool isConnected() const { return m_isConnected; } +// QString getCurrentPort() const { return m_currentPort; } +// QString getDeviceName() const { return m_deviceName; } + +// // Управление +// void startDetection(int intervalMs = 5000); +// void stopDetection(); +// void forceReconnect(); + +// signals: +// void deviceConnected(const QString &port, const QString &deviceName); +// void deviceDisconnected(); +// void deviceError(const QString &error); +// void midiEvent(const QByteArray &data); + +// public slots: +// void checkDevices(); + +// private slots: +// void onMidiDataReady(); +// void onProcessFinished(); + +// private: +// void detectMIDIDevices(); +// bool testMIDIDevice(const QString &device); +// void connectToDevice(const QString &device); +// void disconnectDevice(); +// QString getDeviceFriendlyName(const QString &device); + +// QTimer *m_detectionTimer; +// QProcess *m_midiProcess; +// QTimer *m_readTimer; + +// bool m_isConnected; +// QString m_currentPort; +// QString m_deviceName; + +// // Известные производители MIDI устройств +// const QStringList m_knownVendors = {"Yamaha", "Roland", "Korg", "Casio", "MIDI"}; +// }; + +// #endif // DETECTEDDEVAICE_H diff --git a/localGit/Yamitracker/format/midireader.cpp b/localGit/Yamitracker/format/midireader.cpp new file mode 100644 index 0000000..e69de29 diff --git a/localGit/Yamitracker/format/midireader.h b/localGit/Yamitracker/format/midireader.h new file mode 100644 index 0000000..20eea85 --- /dev/null +++ b/localGit/Yamitracker/format/midireader.h @@ -0,0 +1,38 @@ +// midireader.h +#ifndef MIDIREADER_H +#define MIDIREADER_H + +#include +#include +#include + +class MidiReader : public QObject +{ + Q_OBJECT +public: + explicit MidiReader(QObject *parent = nullptr); + ~MidiReader(); + + bool connectToMidiDevice(const QString &deviceName = QString()); + QStringList getAvailableDevices(); + +signals: + void noteOn(int channel, int note, int velocity); + void noteOff(int channel, int note, int velocity); + void controlChange(int channel, int controller, int value); + void pitchBend(int channel, int value); + void midiMessage(const QByteArray &data); + +private slots: + void readMidiData(); + +private: + snd_seq_t *seq; + int clientId; + int portId; + QSocketNotifier *notifier; + + void processMidiEvent(snd_seq_event_t *ev); +}; + +#endif diff --git a/localGit/Yamitracker/format/midirecorder.cpp b/localGit/Yamitracker/format/midirecorder.cpp new file mode 100644 index 0000000..50533aa --- /dev/null +++ b/localGit/Yamitracker/format/midirecorder.cpp @@ -0,0 +1,215 @@ +// midireader.cpp +#include "midireader.h" +#include +#include + +MidiReader::MidiReader(QObject *parent) + : QObject(parent) + , seq(nullptr) + , notifier(nullptr) +{ + // Открываем ALSA секвенсор + if (snd_seq_open(&seq, "default", SND_SEQ_OPEN_INPUT, 0) < 0) { + qCritical() << "Cannot open ALSA sequencer"; + return; + } + + // Устанавливаем имя клиента + snd_seq_set_client_name(seq, "Qt MIDI Reader"); + + // Создаем порт для входящих сообщений + clientId = snd_seq_client_id(seq); + portId = snd_seq_create_simple_port( + seq, + "input", + SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE, + SND_SEQ_PORT_TYPE_APPLICATION + ); + + if (portId < 0) { + qCritical() << "Cannot create port"; + return; + } + + // Создаем сокет для отслеживания MIDI событий + int pollFd = snd_seq_poll_descriptors_count(seq, POLLIN); + if (pollFd > 0) { + struct pollfd *pfd = new struct pollfd[pollFd]; + snd_seq_poll_descriptors(seq, pfd, pollFd, POLLIN); + + notifier = new QSocketNotifier(pfd[0].fd, QSocketNotifier::Read, this); + connect(notifier, &QSocketNotifier::activated, this, &MidiReader::readMidiData); + + delete[] pfd; + } +} + +MidiReader::~MidiReader() +{ + if (notifier) delete notifier; + if (seq) snd_seq_close(seq); +} + +QStringList MidiReader::getAvailableDevices() +{ + QStringList devices; + + if (!seq) return devices; + + snd_seq_client_info_t *cinfo; + snd_seq_port_info_t *pinfo; + + snd_seq_client_info_alloca(&cinfo); + snd_seq_port_info_alloca(&pinfo); + + snd_seq_client_info_set_client(cinfo, -1); + + while (snd_seq_query_next_client(seq, cinfo) >= 0) { + int client = snd_seq_client_info_get_client(cinfo); + + // Пропускаем системные клиенты + if (client == 0) continue; + + snd_seq_port_info_set_client(pinfo, client); + snd_seq_port_info_set_port(pinfo, -1); + + while (snd_seq_query_next_port(seq, pinfo) >= 0) { + int caps = snd_seq_port_info_get_capability(pinfo); + + // Ищем порты, которые могут отправлять данные + if (caps & SND_SEQ_PORT_CAP_READ) { + QString deviceName = QString("%1:%2 %3") + .arg(snd_seq_client_info_get_name(cinfo)) + .arg(snd_seq_port_info_get_name(pinfo)); + + devices << deviceName; + } + } + } + + return devices; +} + +bool MidiReader::connectToMidiDevice(const QString &deviceName) +{ + if (!seq) return false; + + snd_seq_client_info_t *cinfo; + snd_seq_port_info_t *pinfo; + + snd_seq_client_info_alloca(&cinfo); + snd_seq_port_info_alloca(&pinfo); + + snd_seq_client_info_set_client(cinfo, -1); + + while (snd_seq_query_next_client(seq, cinfo) >= 0) { + int client = snd_seq_client_info_get_client(cinfo); + if (client == 0) continue; + + snd_seq_port_info_set_client(pinfo, client); + snd_seq_port_info_set_port(pinfo, -1); + + while (snd_seq_query_next_port(seq, pinfo) >= 0) { + QString currentName = QString("%1:%2") + .arg(snd_seq_client_info_get_name(cinfo)) + .arg(snd_seq_port_info_get_name(pinfo)); + + if (currentName == deviceName) { + // Подключаемся к найденному порту + int result = snd_seq_connect_from(seq, portId, client, + snd_seq_port_info_get_port(pinfo)); + if (result >= 0) { + qDebug() << "Connected to:" << currentName; + return true; + } else { + qDebug() << "Failed to connect:" << snd_strerror(result); + return false; + } + } + } + } + + return false; +} + +void MidiReader::readMidiData() +{ + if (!seq) return; + + snd_seq_event_t *ev; + + // Читаем все доступные события + do { + snd_seq_event_input(seq, &ev); + + if (ev) { + processMidiEvent(ev); + snd_seq_free_event(ev); + } + } while (snd_seq_event_input_pending(seq, 0) > 0); +} + +void MidiReader::processMidiEvent(snd_seq_event_t *ev) +{ + QByteArray midiData; + + switch (ev->type) { + case SND_SEQ_EVENT_NOTEON: + if (ev->data.note.velocity > 0) { + emit noteOn(ev->data.note.channel, + ev->data.note.note, + ev->data.note.velocity); + + // Формируем сырые MIDI данные + midiData.append(static_cast(0x90 | (ev->data.note.channel & 0x0F))); + midiData.append(static_cast(ev->data.note.note & 0x7F)); + midiData.append(static_cast(ev->data.note.velocity & 0x7F)); + } else { + emit noteOff(ev->data.note.channel, + ev->data.note.note, + 0); + + midiData.append(static_cast(0x80 | (ev->data.note.channel & 0x0F))); + midiData.append(static_cast(ev->data.note.note & 0x7F)); + midiData.append(static_cast(0)); + } + break; + + case SND_SEQ_EVENT_NOTEOFF: + emit noteOff(ev->data.note.channel, + ev->data.note.note, + ev->data.note.velocity); + + midiData.append(static_cast(0x80 | (ev->data.note.channel & 0x0F))); + midiData.append(static_cast(ev->data.note.note & 0x7F)); + midiData.append(static_cast(ev->data.note.velocity & 0x7F)); + break; + + case SND_SEQ_EVENT_CONTROLLER: + emit controlChange(ev->data.control.channel, + ev->data.control.param, + ev->data.control.value); + + midiData.append(static_cast(0xB0 | (ev->data.control.channel & 0x0F))); + midiData.append(static_cast(ev->data.control.param & 0x7F)); + midiData.append(static_cast(ev->data.control.value & 0x7F)); + break; + + case SND_SEQ_EVENT_PITCHBEND: + emit pitchBend(ev->data.control.channel, + ev->data.control.value); + + midiData.append(static_cast(0xE0 | (ev->data.control.channel & 0x0F))); + midiData.append(static_cast(ev->data.control.value & 0x7F)); + midiData.append(static_cast((ev->data.control.value >> 7) & 0x7F)); + break; + + default: + // Другие типы MIDI событий + break; + } + + if (!midiData.isEmpty()) { + emit midiMessage(midiData); + } +} diff --git a/localGit/Yamitracker/format/midirecorder.h b/localGit/Yamitracker/format/midirecorder.h new file mode 100644 index 0000000..e69de29 diff --git a/localGit/Yamitracker/main.cpp b/localGit/Yamitracker/main.cpp new file mode 100644 index 0000000..a2c8a50 --- /dev/null +++ b/localGit/Yamitracker/main.cpp @@ -0,0 +1,11 @@ +#include "yamitracker.h" + +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + yamitracker w; + w.show(); + return a.exec(); +} diff --git a/localGit/Yamitracker/src/yamitracker.cpp b/localGit/Yamitracker/src/yamitracker.cpp new file mode 100644 index 0000000..4624236 --- /dev/null +++ b/localGit/Yamitracker/src/yamitracker.cpp @@ -0,0 +1,182 @@ +#include "yamitracker.h" +#include "ui_yamitracker.h" + +yamitracker::yamitracker(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::yamitracker) +{ + ui->setupUi(this); + + //Радио кнопка дорожки + trackGroup = new QButtonGroup(this); + trackGroup->addButton(ui->track_button_1, 1); + trackGroup->addButton(ui->track_button_2, 2); + trackGroup->addButton(ui->track_button_3, 3); + trackGroup->addButton(ui->track_button_4, 4); + trackGroup->addButton(ui->track_button_5, 5); + trackGroup->addButton(ui->track_button_6, 6); + trackGroup->addButton(ui->track_button_7, 7); + trackGroup->setExclusive(true); + + setTarckButtonStyles(); + connect(trackGroup, QOverload::of(&QButtonGroup::buttonClicked), + this, &yamitracker::onTrackSelected); + + deleteTrackGroup = new QButtonGroup(this); + deleteTrackGroup->addButton(ui->delete_track_button_1, 1); + deleteTrackGroup->addButton(ui->delete_track_button_2, 2); + deleteTrackGroup->addButton(ui->delete_track_button_3, 3); + deleteTrackGroup->addButton(ui->delete_track_button_4, 4); + deleteTrackGroup->addButton(ui->delete_track_button_5, 5); + deleteTrackGroup->addButton(ui->delete_track_button_6, 6); + deleteTrackGroup->addButton(ui->delete_track_button_7, 7); + + setDeleteTarckButtonStyles(); + connect(deleteTrackGroup, QOverload::of(&QButtonGroup::buttonClicked), + this, &yamitracker::onDeleteTrackSelected); + + selectTrackGroup = new QButtonGroup(this); + selectTrackGroup->addButton(ui->delete_track_button_1, 1); + selectTrackGroup->addButton(ui->delete_track_button_2, 2); + selectTrackGroup->addButton(ui->delete_track_button_3, 3); + selectTrackGroup->addButton(ui->delete_track_button_4, 4); + selectTrackGroup->addButton(ui->delete_track_button_5, 5); + selectTrackGroup->addButton(ui->delete_track_button_6, 6); + selectTrackGroup->addButton(ui->delete_track_button_7, 7); + + setSelectTrackButtonStules(); + +} + +void yamitracker::onDeleteTrackSelected(QAbstractButton *button){ + qDebug() << "Выбрана дорожка: " << button->text() << " " << getDeleteTrackGroup(button); +} + +void yamitracker::onTrackSelected(QAbstractButton *button) +{ + qDebug() << "Выбрана дорожка: " << button->text(); + + // Ваша логика выбора дорожки + // switch(trackGroup->id(button)) { + // case 1: + // // Активировать дорожку 1 + // break; + // case 2: + // // Активировать дорожку 2 + // break; + // case 3: + // // Активировать дорожку 3 + // break; + // case 4: + // // Активировать дорожку 4 + // break; + // case 5: + // // Активировать дорожку 5 + // break; + // case 6: + // // Активировать дорожку 6 + // break; + // } +} + +void yamitracker::setDeleteTarckButtonStyles(){ + QList buttons = { + ui->delete_track_button_1, ui->delete_track_button_2, + ui->delete_track_button_3, ui->delete_track_button_4, + ui->delete_track_button_5, ui->delete_track_button_6, + ui->delete_track_button_7 + }; + + QString styleSheet = + "QPushButton:hover {" + " background-color: #D3D3D3;" + " color: #000000" + "}" + "QPushButton:click {" + " background-color: #4CAF50;" + " color: white;" + " border: 2px solid #45a049;" + "}"; + + for (QPushButton *btn : buttons){ + btn->setStyleSheet(styleSheet); + } +} + +void yamitracker::setSelectTrackButtonStules(){ + QList button = { + ui->select_button_1, ui->select_button_2, + ui->select_button_3, ui->select_button_4, + ui->select_button_5, ui->select_button_6, + ui->select_button_7, + }; + + QString styleSheet = + "QPushButton:hover {" + " background-color: #D3D3D3;" + " color: #000000" + "}" + "QPushButton:checked {" + " background-color: #4CAF50;" + " color: white;" + " border: 2px solid #45a049;" + "}"; + + for (QPushButton *btn : button){ + btn->setCheckable(true); + btn->setStyleSheet(styleSheet); + } +} + +void yamitracker::setTarckButtonStyles() +{ + QList buttons = { + ui->track_button_1, ui->track_button_2, ui->track_button_3, + ui->track_button_4, ui->track_button_5, ui->track_button_6, + ui->track_button_7 + }; + + QString styleSheet = + "QPushButton:hover {" + " background-color: #D3D3D3;" + " color: #000000" + "}" + "QPushButton:checked {" + " background-color: #4CAF50;" + " color: white;" + " border: 2px solid #45a049;" + "}"; + + for (QPushButton *btn : buttons) { + btn->setCheckable(true); + btn->setStyleSheet(styleSheet); + } +} + +yamitracker::~yamitracker() +{ + delete ui; +} + +void yamitracker::on_select_all_trackbutton_clicked() +{ + QList buttons = { + ui->select_button_1, ui->select_button_2, + ui->select_button_3, ui->select_button_4, + ui->select_button_5, ui->select_button_6, + ui->select_button_7, + }; + + bool allChecked = true; + for (QPushButton* btn : buttons){ + if(!btn->isChecked()){ + allChecked = false; + break; + } + } + + for (QPushButton* btn : buttons){ + btn->setChecked(!allChecked); + } + +} diff --git a/localGit/Yamitracker/src/yamitracker.h b/localGit/Yamitracker/src/yamitracker.h new file mode 100644 index 0000000..e4bab9d --- /dev/null +++ b/localGit/Yamitracker/src/yamitracker.h @@ -0,0 +1,40 @@ +#ifndef YAMITRACKER_H +#define YAMITRACKER_H + +#include +#include +#include + +QT_BEGIN_NAMESPACE +namespace Ui { +class yamitracker; +} +QT_END_NAMESPACE + +class yamitracker : public QMainWindow +{ + Q_OBJECT + +public: + yamitracker(QWidget *parent = nullptr); + ~yamitracker(); + void onTrackSelected(QAbstractButton *button); + void onDeleteTrackSelected(QAbstractButton *button); + void onSelectTrackSelect(QAbstractButton *button); + void setTarckButtonStyles(); + void setDeleteTarckButtonStyles(); + void setSelectTrackButtonStules(); + int getDeleteTrackGroup(QAbstractButton *button){return deleteTrackGroup->id(button);}; + int getSelectTrackGroup(QAbstractButton *button){return selectTrackGroup->id(button);} + + +private slots: + void on_select_all_trackbutton_clicked(); + +private: + Ui::yamitracker *ui; + QButtonGroup *trackGroup; + QButtonGroup *deleteTrackGroup; + QButtonGroup *selectTrackGroup; +}; +#endif // YAMITRACKER_H diff --git a/localGit/Yamitracker/ui/yamitracker.ui b/localGit/Yamitracker/ui/yamitracker.ui new file mode 100644 index 0000000..3319fcc --- /dev/null +++ b/localGit/Yamitracker/ui/yamitracker.ui @@ -0,0 +1,2140 @@ + + + yamitracker + + + + 0 + 0 + 1462 + 674 + + + + yamitracker + + + + + + + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Track 1 + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Track 2 + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Trakc 3 + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Track 4 + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Track 5 + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Track 6 + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Track 7 + + + + + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 250 + 200 + + + + 0 + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 250 + 200 + + + + 0 + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 250 + 200 + + + + 0 + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 250 + 200 + + + + 0 + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 250 + 200 + + + + 0 + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 250 + 200 + + + + 0 + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 250 + 200 + + + + 0 + + + + + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Select + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Select + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Select + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Select + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Select + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Select + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Select + + + + + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Delete + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Delete + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Delete + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Delete + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Delete + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Delete + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Delete + + + + + + + + + + + 0 + + + + + + 0 + 0 + + + + + 87 + 10 + + + + Select all track + + + + + + + + 0 + 0 + + + + + 87 + 10 + + + + P + + + + + + + + + + + + + 0 + + + + + + 0 + 0 + + + + + 40 + 40 + + + + + + + C1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + D1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + E1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + F1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + G1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + A1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + B1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + C2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + D2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + E2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + F2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + G2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + A2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + B2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + C3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + D3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + E3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + F3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + G3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + A3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + B3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + C4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + D4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + E4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + F4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + G4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + A4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + B4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + C5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + D5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + E5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + F5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + A5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + G5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + B5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + C6 + + + + + + + + + 0 + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + C#1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + D#1 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + F#1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + G#1 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + A#1 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + C#2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + D#2 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + F#2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + G#2 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + A#2 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + C#3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + D#3 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + F#3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + G#3 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + A#3 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + C#4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + D#4 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + F#4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + G#4 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + A#4 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + C#5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + D#5 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + F#5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + G#5 + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + A#5 + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + Menu + + + + + + + + + + + + + QLayout::SizeConstraint::SetMinimumSize + + + 11 + + + + + + 0 + 0 + + + + START + + + + + + + + 0 + 0 + + + + STOP + + + + + + + + 0 + 0 + + + + END + + + + + + + + 0 + 0 + + + + SAVE + + + + + + + + + + + + 0 + 0 + + + + Start all + + + + + + + + 0 + 0 + + + + Start only selected + + + + + + + + 0 + 0 + + + + PushButton + + + + + + + + + + + + + 0 + 0 + 1462 + 23 + + + + + + + +