diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 00000000..6cdbf38d --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,16 @@ +{ + "configurations": [ + { + "name": "Linux", + "includePath": [ + "${workspaceFolder}/**" + ], + "defines": [], + "compilerPath": "/usr/bin/clang-14", + "cStandard": "c17", + "cppStandard": "c++14", + "intelliSenseMode": "linux-clang-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..8aa803f4 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,9 @@ +{ + "files.associations": { + "*.embeddedhtml": "html", + "*.moc": "cpp", + "array": "cpp", + "string": "cpp", + "string_view": "cpp" + } +} \ No newline at end of file diff --git a/include/com/IdLookup.h b/include/com/IdLookup.h index 1f0d954b..3c47c5d5 100644 --- a/include/com/IdLookup.h +++ b/include/com/IdLookup.h @@ -57,7 +57,7 @@ namespace plug case 0x6d: return amps::METAL_2000; - // Bronco amps + // Bronco 40 amps case 0x96: return amps::RUMBLE; case 0x97: @@ -159,6 +159,17 @@ namespace plug return effects::FENDER_63_SPRING_REVERB; case 0x0b: return effects::FENDER_65_SPRING_REVERB; + + // Bronco 40 effects + case 0xc6: + return effects::MODERN_BASS_OVERDRIVE; + case 0xc3: + return effects::OVERDRIVE_BASS; + case 0xc7: + return effects::FUZZ_BASS; + case 0xba: + return effects::GREENBOX; + default: throw std::invalid_argument{"Invalid effect id: " + std::to_string(id)}; } @@ -167,34 +178,37 @@ namespace plug constexpr cabinets lookupCabinetById(std::uint8_t id) { + // Bronco 40 cabinets switch (id) { case 0x00: return cabinets::OFF; case 0x01: - return cabinets::cab57DLX; + return cabinets::cab1x10M; case 0x02: - return cabinets::cabBSSMN; + return cabinets::cab2x10M; case 0x03: - return cabinets::cab65DLX; + return cabinets::cab4x10M; case 0x04: - return cabinets::cab65PRN; + return cabinets::cab4x10H; case 0x05: - return cabinets::cabCHAMP; + return cabinets::cab8x10M; case 0x06: - return cabinets::cab4x12M; + return cabinets::cab8x10V; case 0x07: - return cabinets::cab2x12C; + return cabinets::cab1x12M; case 0x08: - return cabinets::cab4x12G; + return cabinets::cab2x15V; case 0x09: - return cabinets::cab65TWN; + return cabinets::cab4x12M; case 0x0a: - return cabinets::cab4x12V; + return cabinets::cab1x15V; case 0x0b: - return cabinets::cabSS212; + return cabinets::cab1x15M; case 0x0c: - return cabinets::cabSS112; + return cabinets::cab1x18V; + case 0x0d: + return cabinets::cab4x10V; default: throw std::invalid_argument{"Invalid cabinet id: " + std::to_string(id)}; } diff --git a/include/effects_enum.h b/include/effects_enum.h index d3bc71ad..926147fe 100644 --- a/include/effects_enum.h +++ b/include/effects_enum.h @@ -29,6 +29,7 @@ namespace plug // list of all amplifiers enum class amps { + // Mustang amps FENDER_57_DELUXE, FENDER_59_BASSMAN, FENDER_57_CHAMP, @@ -42,7 +43,7 @@ namespace plug AMERICAN_90S, METAL_2000, - // Bronco amps + // Bronco 40 amps RUMBLE, BASSMAN_TV, BASSMAN_300, @@ -96,7 +97,13 @@ namespace plug AMBIENT_REVERB, ARENA_REVERB, FENDER_63_SPRING_REVERB, - FENDER_65_SPRING_REVERB + FENDER_65_SPRING_REVERB, + + // Bronco 40 effects + MODERN_BASS_OVERDRIVE, + OVERDRIVE_BASS, + FUZZ_BASS, + GREENBOX }; // list of all cabinets @@ -114,7 +121,21 @@ namespace plug cab65TWN, cab4x12V, cabSS212, - cabSS112 + cabSS112, + + // Bronco 40 cabinets + cab1x10M, + cab2x10M, + cab4x10M, + cab4x10H, + cab4x10V, + cab8x10M, + cab8x10V, + cab1x12M, + cab1x15V, + cab1x15M, + cab2x15V, + cab1x18V }; diff --git a/plug b/plug new file mode 100755 index 00000000..994d86f5 Binary files /dev/null and b/plug differ diff --git a/src/ui/amplifier.cpp b/src/ui/amplifier.cpp index 6593c553..06a2011d 100644 --- a/src/ui/amplifier.cpp +++ b/src/ui/amplifier.cpp @@ -33,7 +33,7 @@ namespace plug : QMainWindow(parent), ui(std::make_unique()), advanced(std::make_unique(this)), - amp_num(amps::FENDER_57_DELUXE), + amp_num(amps::FENDER_59_BASSMAN), gain(0), volume(0), treble(0), @@ -267,48 +267,48 @@ namespace plug setAccessibleName("Amplifier: Metal 2000"); break; - // TODO: Bronco amps + // TODO: Bronco 40 amps case amps::RUMBLE: - advanced->change_cabinet(value(cabinets::cab65PRN)); + advanced->change_cabinet(value(cabinets::OFF)); advanced->change_noise_gate(0); setWindowTitle("Amplifier: Fender Rumble"); setAccessibleName("Amplifier: Fender Rumble"); break; case amps::BASSMAN_TV: - advanced->change_cabinet(value(cabinets::cab65PRN)); + advanced->change_cabinet(value(cabinets::OFF)); advanced->change_noise_gate(0); setWindowTitle("Amplifier: Fender Bassman TV"); setAccessibleName("Amplifier: Fender Bassman TV"); break; case amps::BASSMAN_300: - advanced->change_cabinet(value(cabinets::cab65PRN)); + advanced->change_cabinet(value(cabinets::OFF)); advanced->change_noise_gate(0); setWindowTitle("Amplifier: Fender Bassman 300"); setAccessibleName("Amplifier: Fender Bassman 300"); break; case amps::KGB_800: - advanced->change_cabinet(value(cabinets::cab65PRN)); + advanced->change_cabinet(value(cabinets::OFF)); advanced->change_noise_gate(0); - setWindowTitle("Amplifier: Fender KGB 800"); - setAccessibleName("Amplifier: Fender KGB 800"); + setWindowTitle("Amplifier: KGB 800"); + setAccessibleName("Amplifier: KGB 800"); break; case amps::ROCKIN_PEG: - advanced->change_cabinet(value(cabinets::cab65PRN)); + advanced->change_cabinet(value(cabinets::OFF)); advanced->change_noise_gate(0); - setWindowTitle("Amplifier: Fender Rockin' PEG"); - setAccessibleName("Amplifier: Fender Rockin' PEG"); + setWindowTitle("Amplifier: Rockin' PEG"); + setAccessibleName("Amplifier: Rockin' PEG"); break; case amps::SWR_REDHEAD: - advanced->change_cabinet(value(cabinets::cab65PRN)); + advanced->change_cabinet(value(cabinets::OFF)); advanced->change_noise_gate(0); - setWindowTitle("Amplifier: Fender SWR Redhead"); - setAccessibleName("Amplifier: Fender SWR Redhead"); + setWindowTitle("Amplifier: SWR Redhead"); + setAccessibleName("Amplifier: SWR Redhead"); break; case amps::MONSTER: - advanced->change_cabinet(value(cabinets::cab65PRN)); + advanced->change_cabinet(value(cabinets::OFF)); advanced->change_noise_gate(0); - setWindowTitle("Amplifier: Fender Monster"); - setAccessibleName("Amplifier: Fender Monster"); + setWindowTitle("Amplifier: Monster"); + setAccessibleName("Amplifier: Monster"); break; default: break; diff --git a/src/ui/amplifier.ui b/src/ui/amplifier.ui index 5d0f26ed..e7146eb0 100644 --- a/src/ui/amplifier.ui +++ b/src/ui/amplifier.ui @@ -54,7 +54,7 @@ Allows you to choose amplifier to emulate - 12 + 19 @@ -116,6 +116,41 @@ Metal 2000 + + + Rumble + + + + + Bassman TV + + + + + Bassman 300 + + + + + KGB 800 + + + + + Rockin' Peg + + + + + SWR Redhead + + + + + Monster + + diff --git a/src/ui/defaulteffects.cpp b/src/ui/defaulteffects.cpp index 29b4e732..b40bfb0a 100644 --- a/src/ui/defaulteffects.cpp +++ b/src/ui/defaulteffects.cpp @@ -275,6 +275,10 @@ namespace plug tr("When you choose an effect you can set precise value of a parameter here")}); break; case effects::OVERDRIVE: + case effects::MODERN_BASS_OVERDRIVE: + case effects::OVERDRIVE_BASS: + case effects::FUZZ_BASS: + case effects::GREENBOX: setTexts(ui.get(), UIText{ tr("&Level"), diff --git a/src/ui/defaulteffects.ui b/src/ui/defaulteffects.ui index f62bfe5d..cb8f9fca 100644 --- a/src/ui/defaulteffects.ui +++ b/src/ui/defaulteffects.ui @@ -51,11 +51,40 @@ None + + + + + [1] Modern Bass Overdrive + + [1] Overdrive + + + [1] Fuzz + + + + + [1] Greenbox + + + + + [1] Simple Compressor + + + + + [2] Sine Chorus diff --git a/src/ui/effect.cpp b/src/ui/effect.cpp index 70bfae45..560b5dad 100644 --- a/src/ui/effect.cpp +++ b/src/ui/effect.cpp @@ -510,6 +510,23 @@ namespace plug case effects::FENDER_65_SPRING_REVERB: setTitleTexts(slot.id(), "Fender '65 Spring Reverb"); break; + + // Bronco 40 effects + case effects::MODERN_BASS_OVERDRIVE: + setTitleTexts(slot.id(), "Modern Bass Overdrive"); + break; + + case effects::OVERDRIVE_BASS: + setTitleTexts(slot.id(), "Overdrive"); + break; + + case effects::FUZZ_BASS: + setTitleTexts(slot.id(), "Fuzz"); + break; + + case effects::GREENBOX: + setTitleTexts(slot.id(), "Greenbox"); + break; } // set knobs labels and accessibility informations @@ -555,6 +572,10 @@ namespace plug tr("When you choose an effect you can set precise value of a parameter here")}); break; case effects::OVERDRIVE: + case effects::MODERN_BASS_OVERDRIVE: // Bronco 40 only + case effects::OVERDRIVE_BASS: // Bronco 40 only + case effects::FUZZ_BASS: // Bronco 40 only + case effects::GREENBOX: // Bronco 40 only setTexts(ui.get(), UIText{ tr("&Level"), @@ -1648,6 +1669,22 @@ namespace plug case effects::FENDER_65_SPRING_REVERB: setDialValues(0x80, 0x8b, 0x49, 0xff, 0x80, 0x00); break; + + // Bronco 40 efffects + // TODO: Values are placeholders! + case effects::MODERN_BASS_OVERDRIVE: + setDialValues(0x80, 0x80, 0x80, 0x80, 0x80, 0x00); + break; + case effects::OVERDRIVE_BASS: + setDialValues(0x80, 0x80, 0x80, 0x80, 0x80, 0x00); + break; + case effects::FUZZ_BASS: + setDialValues(0x80, 0x80, 0x80, 0x80, 0x80, 0x00); + break; + case effects::GREENBOX: + setDialValues(0x80, 0x80, 0x80, 0x80, 0x80, 0x00); + break; + } } } diff --git a/src/ui/savetofile.cpp b/src/ui/savetofile.cpp index 98bcbc63..1aec422e 100644 --- a/src/ui/savetofile.cpp +++ b/src/ui/savetofile.cpp @@ -507,6 +507,23 @@ namespace plug case effects::FENDER_65_SPRING_REVERB: model = 0x0b; break; + + // Bronco 40 effects + case effects::MODERN_BASS_OVERDRIVE: + model = 0xc6; + break; + + case effects::OVERDRIVE_BASS: + model = 0xc3; + break; + + case effects::FUZZ_BASS: + model = 0xc7; + break; + + case effects::GREENBOX: + model = 0xba; + break; } xml->writeStartElement("Module"); diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index a38e2420..3ad55de0 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -10,7 +10,6 @@ target_link_libraries(TestLibs INTERFACE add_subdirectory(mocks) - add_executable(MustangTest MustangTest.cpp PacketSerializerTest.cpp @@ -26,7 +25,6 @@ target_link_libraries(MustangTest PRIVATE ) - add_executable(CommunicationTest ConnectionFactoryTest.cpp UsbCommTest.cpp @@ -48,14 +46,12 @@ target_link_libraries(UsbTest PRIVATE LibUsbMocks ) - add_executable(IdLookupTest IdLookupTest.cpp) add_test(IdLookupTest IdLookupTest) target_link_libraries(IdLookupTest PRIVATE TestLibs ) - add_custom_target(unittest MustangTest COMMAND CommunicationTest COMMAND UsbTest