offa / plug Goto Github PK
View Code? Open in Web Editor NEWSoftware for Fender Mustang Amps.
License: GNU General Public License v3.0
Software for Fender Mustang Amps.
License: GNU General Public License v3.0
I'm trying to compile Plug 1.4.1 in Manjaro, but I'm getting the following error after running make:
Scanning dependencies of target plug-updater
[ 36%] Building CXX object src/com/CMakeFiles/plug-updater.dir/plug-updater_autogen/mocs_compilation.cpp.o
[ 38%] Building CXX object src/com/CMakeFiles/plug-updater.dir/MustangUpdater.cpp.o
In file included from /home/snayler/Downloads/plug-1.4.1/src/com/MustangUpdater.cpp:25:
/home/snayler/Downloads/plug-1.4.1/include/com/Packet.h: In member function ‘plug::com::Type plug::com::Header::getType() const’:
/home/snayler/Downloads/plug-1.4.1/include/com/Packet.h:140:32: error: ‘domain_error’ is not a member of ‘std’
140 | throw std::domain_error("Invalid Type: " + std::to_string(bytes[1]));
| ^~~~~~~~~~~~
/home/snayler/Downloads/plug-1.4.1/include/com/Packet.h: In member function ‘plug::com::DSP plug::com::Header::getDSP() const’:
/home/snayler/Downloads/plug-1.4.1/include/com/Packet.h:200:32: error: ‘domain_error’ is not a member of ‘std’
200 | throw std::domain_error("Invalid DSP: " + std::to_string(bytes[2]));
| ^~~~~~~~~~~~
make[2]: *** [src/com/CMakeFiles/plug-updater.dir/build.make:95: src/com/CMakeFiles/plug-updater.dir/MustangUpdater.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:305: src/com/CMakeFiles/plug-updater.dir/all] Error 2
make: *** [Makefile:160: all] Error 2
From the error, I can't find anything obvious, so I'd like to see if anyone would have a clue of what's wrong.
I have installed plug from the AUR and while the application will start when there is no amp connected, once connected the application will crash with the following:
[~]$ plug
/usr/include/c++/12.1.0/bits/stl_vector.h:1142: std::vector<_Tp, _Alloc>::const_reference std::vector<_Tp, _Alloc>::operator const [with _Tp = std::__cxx11::basic_string; _Alloc = std::allocator<std::__cxx11::basic_string >; const_reference = const std::__cxx11::basic_string&; size_type = long unsigned int]: Assertion '__n < this->size()' failed.
Aborted (core dumped)
The amp appears to be well detected as per the following in dmesg:
[ 99.580968] usb 1-10: new full-speed USB device number 6 using xhci_hcd
[ 99.888788] usb 1-10: New USB device found, idVendor=1ed8, idProduct=0004, bcdDevice= 1.00
[ 99.888793] usb 1-10: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 99.888794] usb 1-10: Product: Mustang Amplifier
[ 99.888795] usb 1-10: Manufacturer: FMIC
[ 99.888796] usb 1-10: SerialNumber: 6FA6FF393638533243246843
[ 99.907619] hid-generic 0003:1ED8:0004.0007: hiddev98,hidraw5: USB HID v1.10 Device [FMIC Mustang Amplifier] on usb-0000:03:00.0-10/input0
It is even detected by pipewire and detected as Mustang I/II.
/cc @Odzinic
In decodeEffectsFromData()
, effects in Position::input
and Position::effectsLoop
collide.
plug/src/com/PacketSerializer.cpp
Lines 182 to 183 in 8d93d21
Position::input
and Position::effectsLoop
, the one in the later packet (in the order of stompbox, modulation, delay, reverb) will erase the other.
This occurs possibly in the preset created with Fender Fuse, and so in the built-in V2 presets "Amin 3rds Solo", "Angry Rodent", "Purple Fuzz" (maybe different POS value from V1's?).
Those are treated as valid presets when loaded at Mustang I V2.
In parseFX()
, fx_slot
is reset as its rank.
This will effectively make a preset safe for decodeEffectsFromData()
, but at the loss of exact user-defined position.
Lines 221 to 232 in 8d93d21
Lines 424 to 429 in 8d93d21
FTBFS GCC 13.
Fix is to add the following to include/com/Packet.h
#include <cstdint>
Regards
${CMAKE_INSTALL_LIBDIR}
expands to /usr/lib64
making the udev rules installed incorrectly, the proper path for udev rules is /usr/lib/udev/rules.d
(https://github.com/offa/plug/blob/master/cmake/Install.cmake#L5). Previously it was possible to set the correct path via PLUG_UDEV_RULE_PATH
, but such variable doesn't exist in the project's cmake files any more.
Plug v1.2.1 identifies the amp and works correctly, but this version does not. I'm not sure what the difference is. If you need any info from the Mustang V v2, just let me know and i'll get it.
I'm trying to make plug work with my Mustang GT 40.
I took to ownership of the AUR package for this plugin as the previous versions did not compile anymore.
I'm using version 1.4.5.
Is there any successful attempt by someone fro this amp ?
Feb 26 08:26:21 tuxedo2 kernel: usb 1-2: new high-speed USB device number 8 using xhci_hcd
Feb 26 08:26:21 tuxedo2 kernel: usb 1-2: New USB device found, idVendor=1ed8, idProduct=0032, bcdDevice= 4.01
Feb 26 08:26:21 tuxedo2 kernel: usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Feb 26 08:26:21 tuxedo2 kernel: usb 1-2: Product: Fender Mustang-GT USB Audio
Feb 26 08:26:21 tuxedo2 kernel: usb 1-2: Manufacturer: FMIC
Seems that the amp is seen by the system. I can use it as an audio device.
LIBUSB_DEBUG=4 plug
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
[timestamp] [threadID] facility level [function call] <message>
--------------------------------------------------------------------------------
[ 0.000028] [00005a41] libusb: debug [libusb_init_context] created default context
[ 0.000037] [00005a41] libusb: debug [libusb_init_context] libusb v1.0.27.11882
[ 0.000048] [00005a41] libusb: debug [usbi_add_event_source] add fd 11 events 1
[ 0.000053] [00005a41] libusb: debug [usbi_io_init] using timer for timeouts
[ 0.000056] [00005a41] libusb: debug [usbi_add_event_source] add fd 12 events 1
[ 0.000066] [00005a41] libusb: debug [get_kernel_version] reported kernel version is 6.6.16-2-MANJARO
[ 0.000086] [00005a41] libusb: debug [op_init] found usbfs at /dev/bus/usb
[ 0.000090] [00005a41] libusb: debug [op_init] max iso packet length is (likely) 98304 bytes
[ 0.000100] [00005a41] libusb: debug [op_init] sysfs is available
[ 0.000348] [00005a46] libusb: debug [linux_udev_event_thread_main] udev event thread entering
[ 0.004559] [00005a41] libusb: debug [linux_get_device_address] getting address for device: usb1 detached: 0
[ 0.004568] [00005a41] libusb: debug [linux_get_device_address] scan usb1
[ 0.004590] [00005a41] libusb: debug [linux_get_device_address] bus=1 dev=1
[ 0.004594] [00005a41] libusb: debug [linux_enumerate_device] busnum 1 devaddr 1 session_id 257
[ 0.004598] [00005a41] libusb: debug [linux_enumerate_device] allocating new device for 1/1 (session 257)
[ 0.004675] [00005a41] libusb: debug [linux_get_device_address] getting address for device: 1-3 detached: 0
[ 0.004679] [00005a41] libusb: debug [linux_get_device_address] scan 1-3
[ 0.004700] [00005a41] libusb: debug [linux_get_device_address] bus=1 dev=2
[ 0.004704] [00005a41] libusb: debug [linux_enumerate_device] busnum 1 devaddr 2 session_id 258
[ 0.004706] [00005a41] libusb: debug [linux_enumerate_device] allocating new device for 1/2 (session 258)
[ 0.004729] [00005a41] libusb: debug [linux_get_parent_info] dev 0x5558b2eac8b0 (1-3) has parent 0x5558b2eaa0d0 (usb1) port 3
[ 0.004784] [00005a41] libusb: debug [linux_get_device_address] getting address for device: 1-4 detached: 0
[ 0.004787] [00005a41] libusb: debug [linux_get_device_address] scan 1-4
[ 0.004808] [00005a41] libusb: debug [linux_get_device_address] bus=1 dev=3
[ 0.004812] [00005a41] libusb: debug [linux_enumerate_device] busnum 1 devaddr 3 session_id 259
[ 0.004815] [00005a41] libusb: debug [linux_enumerate_device] allocating new device for 1/3 (session 259)
[ 0.004837] [00005a41] libusb: debug [linux_get_parent_info] dev 0x5558b2eaaeb0 (1-4) has parent 0x5558b2eaa0d0 (usb1) port 4
[ 0.004891] [00005a41] libusb: debug [linux_get_device_address] getting address for device: 1-4.1 detached: 0
[ 0.004895] [00005a41] libusb: debug [linux_get_device_address] scan 1-4.1
[ 0.004916] [00005a41] libusb: debug [linux_get_device_address] bus=1 dev=4
[ 0.004920] [00005a41] libusb: debug [linux_enumerate_device] busnum 1 devaddr 4 session_id 260
[ 0.004922] [00005a41] libusb: debug [linux_enumerate_device] allocating new device for 1/4 (session 260)
[ 0.004948] [00005a41] libusb: debug [linux_get_parent_info] dev 0x5558b2eaa5f0 (1-4.1) has parent 0x5558b2eaaeb0 (1-4) port 1
[ 0.005004] [00005a41] libusb: debug [linux_get_device_address] getting address for device: 1-4.4 detached: 0
[ 0.005008] [00005a41] libusb: debug [linux_get_device_address] scan 1-4.4
[ 0.005030] [00005a41] libusb: debug [linux_get_device_address] bus=1 dev=6
[ 0.005034] [00005a41] libusb: debug [linux_enumerate_device] busnum 1 devaddr 6 session_id 262
[ 0.005040] [00005a41] libusb: debug [linux_enumerate_device] allocating new device for 1/6 (session 262)
[ 0.005062] [00005a41] libusb: debug [linux_get_parent_info] dev 0x5558b2eaafd0 (1-4.4) has parent 0x5558b2eaaeb0 (1-4) port 4
[ 0.005111] [00005a41] libusb: debug [linux_get_device_address] getting address for device: usb2 detached: 0
[ 0.005114] [00005a41] libusb: debug [linux_get_device_address] scan usb2
[ 0.005135] [00005a41] libusb: debug [linux_get_device_address] bus=2 dev=1
[ 0.005138] [00005a41] libusb: debug [linux_enumerate_device] busnum 2 devaddr 1 session_id 513
[ 0.005141] [00005a41] libusb: debug [linux_enumerate_device] allocating new device for 2/1 (session 513)
[ 0.005207] [00005a41] libusb: debug [linux_get_device_address] getting address for device: usb3 detached: 0
[ 0.005210] [00005a41] libusb: debug [linux_get_device_address] scan usb3
[ 0.005231] [00005a41] libusb: debug [linux_get_device_address] bus=3 dev=1
[ 0.005234] [00005a41] libusb: debug [linux_enumerate_device] busnum 3 devaddr 1 session_id 769
[ 0.005237] [00005a41] libusb: debug [linux_enumerate_device] allocating new device for 3/1 (session 769)
[ 0.005303] [00005a41] libusb: debug [linux_get_device_address] getting address for device: usb4 detached: 0
[ 0.005306] [00005a41] libusb: debug [linux_get_device_address] scan usb4
[ 0.005327] [00005a41] libusb: debug [linux_get_device_address] bus=4 dev=1
[ 0.005331] [00005a41] libusb: debug [linux_enumerate_device] busnum 4 devaddr 1 session_id 1025
[ 0.005333] [00005a41] libusb: debug [linux_enumerate_device] allocating new device for 4/1 (session 1025)
[ 0.125775] [00005a41] libusb: debug [libusb_get_device_list]
[ 0.125794] [00005a41] libusb: debug [libusb_get_device_descriptor]
[ 0.125798] [00005a41] libusb: debug [libusb_get_device_descriptor]
[ 0.125800] [00005a41] libusb: debug [libusb_get_device_descriptor]
[ 0.125802] [00005a41] libusb: debug [libusb_get_device_descriptor]
[ 0.125805] [00005a41] libusb: debug [libusb_get_device_descriptor]
[ 0.125808] [00005a41] libusb: debug [libusb_get_device_descriptor]
[ 0.125811] [00005a41] libusb: debug [libusb_get_device_descriptor]
[ 0.125814] [00005a41] libusb: debug [libusb_get_device_descriptor]
ERROR: No device found
[12.322935] [00005a46] libusb: debug [linux_get_device_address] getting address for device: 1-2 detached: 0
[12.322959] [00005a46] libusb: debug [linux_get_device_address] scan 1-2
[12.323072] [00005a46] libusb: debug [linux_get_device_address] bus=1 dev=7
[12.323084] [00005a46] libusb: debug [udev_hotplug_event] udev hotplug event. action: add.
[12.323102] [00005a46] libusb: debug [linux_enumerate_device] busnum 1 devaddr 7 session_id 263
[12.323118] [00005a46] libusb: debug [linux_enumerate_device] allocating new device for 1/7 (session 263)
[12.323205] [00005a46] libusb: debug [linux_get_parent_info] dev 0x7fc564002a00 (1-2) has parent 0x5558b2eaa0d0 (usb1) port 2
[12.426512] [00005a46] libusb: debug [linux_get_device_address] getting address for device: 1-2 detached: 0
[12.426543] [00005a46] libusb: debug [linux_get_device_address] scan 1-2
[12.426660] [00005a46] libusb: debug [linux_get_device_address] bus=1 dev=7
[12.426672] [00005a46] libusb: debug [udev_hotplug_event] udev hotplug event. action: bind.
[25.805772] [00005a41] libusb: debug [libusb_get_device_list]
[25.805833] [00005a41] libusb: debug [libusb_get_device_descriptor]
[25.805839] [00005a41] libusb: debug [libusb_get_device_descriptor]
[25.805844] [00005a41] libusb: debug [libusb_get_device_descriptor]
[25.805849] [00005a41] libusb: debug [libusb_get_device_descriptor]
[25.805854] [00005a41] libusb: debug [libusb_get_device_descriptor]
[25.805859] [00005a41] libusb: debug [libusb_get_device_descriptor]
[25.805864] [00005a41] libusb: debug [libusb_get_device_descriptor]
[25.805869] [00005a41] libusb: debug [libusb_get_device_descriptor]
[25.805875] [00005a41] libusb: debug [libusb_get_device_descriptor]
ERROR: No device found
[159.419649] [00005a41] libusb: debug [libusb_get_device_list]
[159.419686] [00005a41] libusb: debug [libusb_get_device_descriptor]
[159.419695] [00005a41] libusb: debug [libusb_get_device_descriptor]
[159.419703] [00005a41] libusb: debug [libusb_get_device_descriptor]
[159.419711] [00005a41] libusb: debug [libusb_get_device_descriptor]
[159.419718] [00005a41] libusb: debug [libusb_get_device_descriptor]
[159.419725] [00005a41] libusb: debug [libusb_get_device_descriptor]
[159.419733] [00005a41] libusb: debug [libusb_get_device_descriptor]
[159.419741] [00005a41] libusb: debug [libusb_get_device_descriptor]
[159.419749] [00005a41] libusb: debug [libusb_get_device_descriptor]
ERROR: No device found
[406.566071] [00005a46] libusb: debug [linux_get_device_address] getting address for device: 1-2 detached: 0
[406.566086] [00005a46] libusb: debug [linux_get_device_address] scan 1-2
[406.576224] [00005a46] libusb: debug [linux_get_device_address] getting address for device: 1-2 detached: 1
[406.576250] [00005a46] libusb: debug [udev_hotplug_event] udev hotplug event. action: remove.
[411.919224] [00005a46] libusb: debug [linux_get_device_address] getting address for device: 1-2 detached: 0
[411.919239] [00005a46] libusb: debug [linux_get_device_address] scan 1-2
[411.919303] [00005a46] libusb: debug [linux_get_device_address] bus=1 dev=8
[411.919310] [00005a46] libusb: debug [udev_hotplug_event] udev hotplug event. action: add.
[411.919314] [00005a46] libusb: debug [linux_enumerate_device] busnum 1 devaddr 8 session_id 264
[411.919318] [00005a46] libusb: debug [linux_enumerate_device] allocating new device for 1/8 (session 264)
[411.919349] [00005a46] libusb: debug [linux_get_parent_info] dev 0x7fc564003ed0 (1-2) has parent 0x5558b2eaa0d0 (usb1) port 2
[411.932435] [00005a46] libusb: debug [linux_get_device_address] getting address for device: 1-2 detached: 0
[411.932451] [00005a46] libusb: debug [linux_get_device_address] scan 1-2
[411.932496] [00005a46] libusb: debug [linux_get_device_address] bus=1 dev=8
[411.932500] [00005a46] libusb: debug [udev_hotplug_event] udev hotplug event. action: bind.
[601.283941] [00005a46] libusb: debug [linux_get_device_address] getting address for device: 1-2 detached: 0
[601.283959] [00005a46] libusb: debug [linux_get_device_address] scan 1-2
[601.292325] [00005a46] libusb: debug [linux_get_device_address] getting address for device: 1-2 detached: 1
[601.292355] [00005a46] libusb: debug [udev_hotplug_event] udev hotplug event. action: remove.
[608.703245] [00005a46] libusb: debug [linux_get_device_address] getting address for device: 1-2 detached: 0
[608.703273] [00005a46] libusb: debug [linux_get_device_address] scan 1-2
[608.703406] [00005a46] libusb: debug [linux_get_device_address] bus=1 dev=9
[608.703424] [00005a46] libusb: debug [udev_hotplug_event] udev hotplug event. action: add.
[608.703433] [00005a46] libusb: debug [linux_enumerate_device] busnum 1 devaddr 9 session_id 265
[608.703444] [00005a46] libusb: debug [linux_enumerate_device] allocating new device for 1/9 (session 265)
[608.703541] [00005a46] libusb: debug [linux_get_parent_info] dev 0x7fc5640050b0 (1-2) has parent 0x5558b2eaa0d0 (usb1) port 2
[608.720937] [00005a46] libusb: debug [linux_get_device_address] getting address for device: 1-2 detached: 0
[608.720961] [00005a46] libusb: debug [linux_get_device_address] scan 1-2
[608.721033] [00005a46] libusb: debug [linux_get_device_address] bus=1 dev=9
[608.721040] [00005a46] libusb: debug [udev_hotplug_event] udev hotplug event. action: bind.
[678.992878] [00005a46] libusb: debug [linux_get_device_address] getting address for device: 3-2 detached: 0
[678.992897] [00005a46] libusb: debug [linux_get_device_address] scan 3-2
[678.992965] [00005a46] libusb: debug [linux_get_device_address] bus=3 dev=2
[678.992969] [00005a46] libusb: debug [udev_hotplug_event] udev hotplug event. action: add.
[678.992973] [00005a46] libusb: debug [linux_enumerate_device] busnum 3 devaddr 2 session_id 770
[678.992977] [00005a46] libusb: debug [linux_enumerate_device] allocating new device for 3/2 (session 770)
[678.993015] [00005a46] libusb: debug [linux_get_parent_info] dev 0x7fc5640028c0 (3-2) has parent 0x5558b2eaaa80 (usb3) port 2
[679.009388] [00005a46] libusb: debug [linux_get_device_address] getting address for device: 3-2 detached: 0
[679.009405] [00005a46] libusb: debug [linux_get_device_address] scan 3-2
[679.009451] [00005a46] libusb: debug [linux_get_device_address] bus=3 dev=2
[679.009456] [00005a46] libusb: debug [udev_hotplug_event] udev hotplug event. action: bind.
[792.304043] [00005a41] libusb: debug [libusb_exit] destroying default context
[792.304058] [00005a41] libusb: debug [libusb_unref_device] destroy device 1.7
[792.304061] [00005a41] libusb: debug [libusb_unref_device] destroy device 1.8
[792.304065] [00005a41] libusb: debug [libusb_unref_device] destroy device 3.2
[792.304068] [00005a41] libusb: debug [libusb_unref_device] destroy device 1.9
[792.304072] [00005a41] libusb: debug [libusb_unref_device] destroy device 4.1
[792.304074] [00005a41] libusb: debug [libusb_unref_device] destroy device 3.1
[792.304078] [00005a41] libusb: debug [libusb_unref_device] destroy device 2.1
[792.304081] [00005a41] libusb: debug [libusb_unref_device] destroy device 1.6
[792.304085] [00005a41] libusb: debug [libusb_unref_device] destroy device 1.4
[792.304087] [00005a41] libusb: debug [libusb_unref_device] destroy device 1.3
[792.304090] [00005a41] libusb: debug [libusb_unref_device] destroy device 1.2
[792.304094] [00005a41] libusb: debug [libusb_unref_device] destroy device 1.1
[792.304112] [00005a46] libusb: debug [linux_udev_event_thread_main] udev event thread exiting
[792.304189] [00005a41] libusb: debug [usbi_remove_event_source] remove fd 12
[792.304195] [00005a41] libusb: debug [usbi_remove_event_source] remove fd 11
I don't see anything useful here.
Is there something I can try to make this work ?
I do know this project is for the Mustang amps, but I was wondering if the bass amp support was ever considered.
At the moment I still do not own the bass amp, but I wanted to check whether anyone using it with Linux, when I found this project.
I know it is wishful thinking, but I hope that it may have the same or very similar hardware in respect of the connectivity and I could use it under Linux.
Thanks in advance,
Does anyone know if this program will work with a Fender G-DEC 30 (First Generation Amp)?
cmake ..
Returns:
-- ~~~ plug v1.4.0 ~~~
-- Unit Tests : ON
-- Integrationtests : OFF
-- Coverage : OFF
-- LTO : OFF
-- ASan : OFF
-- UBSan : OFF
-- Build Type : None
CMake Error at /usr/lib64/cmake/Qt5Gui/Qt5Gui_QGtk2ThemePlugin.cmake:4 (_populate_Gui_plugin_properties):
_populate_Gui_plugin_properties Macro invoked with incorrect arguments for
macro named: _populate_Gui_plugin_properties
Call Stack (most recent call first):
/usr/lib64/cmake/Qt5Gui/Qt5GuiConfig.cmake:213 (include)
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:112 (find_package)
CMakeLists.txt:66 (find_package)
CMake Error at /usr/lib64/cmake/Qt5Widgets/Qt5Widgets_QBB10StylePlugin.cmake:4 (_populate_Widgets_plugin_properties):
_populate_Widgets_plugin_properties Macro invoked with incorrect arguments
for macro named: _populate_Widgets_plugin_properties
Call Stack (most recent call first):
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:213 (include)
CMakeLists.txt:66 (find_package)
CMake Error at /usr/lib64/cmake/Qt5Widgets/Qt5Widgets_QCleanlooksStylePlugin.cmake:4 (_populate_Widgets_plugin_properties):
_populate_Widgets_plugin_properties Macro invoked with incorrect arguments
for macro named: _populate_Widgets_plugin_properties
Call Stack (most recent call first):
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:213 (include)
CMakeLists.txt:66 (find_package)
CMake Error at /usr/lib64/cmake/Qt5Widgets/Qt5Widgets_QGtk2StylePlugin.cmake:4 (_populate_Widgets_plugin_properties):
_populate_Widgets_plugin_properties Macro invoked with incorrect arguments
for macro named: _populate_Widgets_plugin_properties
Call Stack (most recent call first):
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:213 (include)
CMakeLists.txt:66 (find_package)
CMake Error at /usr/lib64/cmake/Qt5Widgets/Qt5Widgets_QMotifStylePlugin.cmake:4 (_populate_Widgets_plugin_properties):
_populate_Widgets_plugin_properties Macro invoked with incorrect arguments
for macro named: _populate_Widgets_plugin_properties
Call Stack (most recent call first):
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:213 (include)
CMakeLists.txt:66 (find_package)
CMake Error at /usr/lib64/cmake/Qt5Widgets/Qt5Widgets_QPlastiqueStylePlugin.cmake:4 (_populate_Widgets_plugin_properties):
_populate_Widgets_plugin_properties Macro invoked with incorrect arguments
for macro named: _populate_Widgets_plugin_properties
Call Stack (most recent call first):
/usr/lib64/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:213 (include)
CMakeLists.txt:66 (find_package)
CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
Could NOT find GTest (missing: GTest_INCLUDE_DIR GTest_Mock_INCLUDE_DIR
GTest_LIBRARY GTest_Mock_LIBRARY GTest_Main_LIBRARY)
Call Stack (most recent call first):
/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE)
cmake/FindGTest.cmake:33 (find_package_handle_standard_args)
test/CMakeLists.txt:1 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/USER/Source/git/PLUG/build/CMakeFiles/CMakeOutput.log".
See also "/home/USER/Source/git/PLUG/build/CMakeFiles/CMakeError.log".
CMakeOutput.log
CMakeError.log
uname -a
Linux HOST.local 5.4.6-arch1-1 #1 SMP PREEMPT Sat, 21 Dec 2019 16:34:41 +0000 x86_64 GNU/Linux
core/libusb 1.0.23-2 [installed]
extra/cmake 3.16.2-1 [installed]
extra/qt5-3d 5.14.0-1 (qt qt5) [installed]
extra/qt5-base 5.14.0-1 (qt qt5) [installed]
extra/qt5-charts 5.14.0-1 (qt qt5) [installed]
extra/qt5-connectivity 5.14.0-1 (qt qt5) [installed]
extra/qt5-datavis3d 5.14.0-1 (qt qt5) [installed]
extra/qt5-declarative 5.14.0-2 (qt qt5) [installed]
extra/qt5-doc 5.14.0-1 (qt qt5) [installed]
extra/qt5-examples 5.14.0-1 (qt qt5) [installed]
extra/qt5-gamepad 5.14.0-1 (qt qt5) [installed]
extra/qt5-graphicaleffects 5.14.0-1 (qt qt5) [installed]
extra/qt5-imageformats 5.14.0-1 (qt qt5) [installed]
extra/qt5-location 5.14.0-1 (qt qt5) [installed]
extra/qt5-lottie 5.14.0-1 (qt qt5) [installed]
extra/qt5-multimedia 5.14.0-1 (qt qt5) [installed]
extra/qt5-networkauth 5.14.0-1 (qt qt5) [installed]
extra/qt5-purchasing 5.14.0-1 (qt qt5) [installed]
extra/qt5-quick3d 5.14.0-1 (qt qt5) [installed]
extra/qt5-quickcontrols 5.14.0-1 (qt qt5) [installed]
extra/qt5-quickcontrols2 5.14.0-1 (qt qt5) [installed]
extra/qt5-remoteobjects 5.14.0-1 (qt qt5) [installed]
extra/qt5-script 5.14.0-1 (qt qt5) [installed]
extra/qt5-scxml 5.14.0-1 (qt qt5) [installed]
extra/qt5-sensors 5.14.0-1 (qt qt5) [installed]
extra/qt5-serialbus 5.14.0-1 (qt qt5) [installed]
extra/qt5-serialport 5.14.0-1 (qt qt5) [installed]
extra/qt5-speech 5.14.0-1 (qt qt5) [installed]
extra/qt5-svg 5.14.0-1 (qt qt5) [installed]
extra/qt5-tools 5.14.0-1 (qt qt5) [installed]
extra/qt5-translations 5.14.0-1 (qt qt5) [installed]
extra/qt5-virtualkeyboard 5.14.0-1 (qt qt5) [installed]
extra/qt5-wayland 5.14.0-3 (qt qt5) [installed]
extra/qt5-webchannel 5.14.0-1 (qt qt5) [installed]
extra/qt5-webengine 5.14.0-1 (qt qt5) [installed]
extra/qt5-webglplugin 5.14.0-1 (qt qt5) [installed]
extra/qt5-webkit 5.212.0alpha3-8 [installed]
extra/qt5-websockets 5.14.0-1 (qt qt5) [installed]
extra/qt5-webview 5.14.0-1 (qt qt5) [installed]
extra/qt5-x11extras 5.14.0-1 (qt qt5) [installed]
extra/qt5-xmlpatterns 5.14.0-1 (qt qt5) [installed]
Fedora 36 FTBFS due to warnings as error - Allow?
`[ 98%] Linking CXX executable MustangTest
cd /builddir/build/BUILD/plug-1.4.3/redhat-linux-build/test && /usr/bin/cmake -E cmake_link_script CMakeFiles/MustangTest.dir/link.txt --verbose=1
/usr/bin/g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,-dT,/builddir/build/BUILD/plug-1.4.3/.package_note-plug-1.4.3-1.fc36.x86_64.ld CMakeFiles/MustangTest.dir/MustangTest.cpp.o CMakeFiles/MustangTest.dir/PacketSerializerTest.cpp.o CMakeFiles/MustangTest.dir/PacketTest.cpp.o -o MustangTest ../src/com/libplug-mustang.a ../src/com/libplug-communication.a mocks/libLibUsbMocks.a /usr/lib64/libgtest.so /usr/lib64/libgmock.so /usr/lib64/libgtest_main.so
In file included from /usr/include/gtest/internal/gtest-death-test-internal.h:39,
from /usr/include/gtest/gtest-death-test.h:41,
from /usr/include/gtest/gtest.h:64,
from /usr/include/gmock/internal/gmock-internal-utils.h:47,
from /usr/include/gmock/gmock-actions.h:145,
from /usr/include/gmock/gmock.h:59,
from /builddir/build/BUILD/plug-1.4.3/test/mocks/LibUsbMocks.h:23,
from /builddir/build/BUILD/plug-1.4.3/test/UsbTest.cpp:23:
In member function 'testing::internal::MatcherBase<libusb_context**>::MatcherBase(testing::internal::MatcherBase<libusb_context**> const&)',
inlined from 'testing::Matcher<libusb_context**>::Matcher(testing::Matcher<libusb_context**> const&)' at /usr/include/gtest/gtest-matchers.h:479:7,
inlined from 'mock::UsbMock::gmock_init(testing::Matcher<libusb_context**> const&)' at /builddir/build/BUILD/plug-1.4.3/test/mocks/LibUsbMocks.h:31:9,
inlined from 'UsbTest_contextDtorDeinitializesDefaultContext_Test::TestBody()' at /builddir/build/BUILD/plug-1.4.3/test/UsbTest.cpp:76:5:
/usr/include/gtest/gtest-matchers.h:302:33: error: 'MEM[(const struct MatcherBase &)&D.234397].buffer_' may be used uninitialized [-Werror=maybe-uninitialized]
302 | : vtable_(other.vtable_), buffer_(other.buffer_) {
| ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/gmock/gmock-function-mocker.h:42,
from /usr/include/gmock/gmock.h:61:
/builddir/build/BUILD/plug-1.4.3/test/UsbTest.cpp: In member function 'UsbTest_contextDtorDeinitializesDefaultContext_Test::TestBody()':
/builddir/build/BUILD/plug-1.4.3/test/UsbTest.cpp:76:31: note: '' declared here
76 | EXPECT_CALL(usbmock, init(_)).WillOnce(Return(LIBUSB_SUCCESS));
| ^
In member function 'testing::internal::MatcherBase<libusb_context>::MatcherBase(testing::internal::MatcherBase<libusb_context*> const&)',
inlined from 'testing::Matcher<libusb_context*>::Matcher(testing::Matcher<libusb_context*> const&)' at /usr/include/gtest/gtest-matchers.h:479:7,
inlined from 'mock::UsbMock::gmock_exit(testing::Matcher<libusb_context*> const&)' at /builddir/build/BUILD/plug-1.4.3/test/mocks/LibUsbMocks.h:34:9,
inlined from 'UsbTest_contextCtorInitializesDefaultContext_Test::TestBody()' at /builddir/build/BUILD/plug-1.4.3/test/UsbTest.cpp:60:5:
/usr/include/gtest/gtest-matchers.h:302:33: error: 'MEM[(const struct MatcherBase &)&D.231013].buffer_' may be used uninitialized [-Werror=maybe-uninitialized]
302 | : vtable_(other.vtable_), buffer_(other.buffer_) {
| ^~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/plug-1.4.3/test/UsbTest.cpp: In member function 'UsbTest_contextCtorInitializesDefaultContext_Test::TestBody()':
/builddir/build/BUILD/plug-1.4.3/test/UsbTest.cpp:60:31: note: '' declared here
60 | EXPECT_CALL(*usbmock, exit(_));
| ^
gmake[2]: Leaving directory '/builddir/build/BUILD/plug-1.4.3/redhat-linux-build'
[ 98%] Built target MustangTest
cc1plus: all warnings being treated as errors
gmake[2]: Leaving directory '/builddir/build/BUILD/plug-1.4.3/redhat-linux-build'
gmake[2]: *** [test/CMakeFiles/UsbTest.dir/build.make:79: test/CMakeFiles/UsbTest.dir/UsbTest.cpp.o] Error 1
gmake[1]: Leaving directory '/builddir/build/BUILD/plug-1.4.3/redhat-linux-build'
gmake[1]: *** [CMakeFiles/Makefile2:487: test/CMakeFiles/UsbTest.dir/all] Error 2
gmake: *** [Makefile:149: all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.ZZtdqK (%build)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.ZZtdqK (%build)
Finish: rpmbuild plug-1.4.3-1.el8.src.rpm
Finish: build phase for plug-1.4.3-1.el8.src.rpm
ERROR: Exception(SRPMS/plug-1.4.3-1.el8.src.rpm) Config(fedora-36-x86_64) 1 minutes 13 seconds
INFO: Results and/or logs in: /var/lib/mock/fedora-36-x86_64/result
~ » plug
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-wrzlprnft'
terminate called after throwing an instance of 'std::invalid_argument'
what(): Invalid amp id: 0
[1] 1213 abort plug
On Void Linux.
Edit: The Amp is a Mustang 1 V.2.
build passed the unittests.
I checked the udev rules, the group exists and the user is part of it, and the amp seems to be recognized by the laptop.
~ » cat /proc/asound/cards
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xf7910000 irq 33
1 [Amplifier ]: USB-Audio - Mustang Amplifier
FMIC Mustang Amplifier at usb-0000:00:14.0-1, full speed
Did a preset factory reset on the amp, did not help.
I don't know what to do for further troubleshooting. Is there a way to query the preset values on the amp?
Edit: I only am at the place with the amp at weekends
I haven't tried the "old" https://bitbucket.org/piorekf/plug/ on this particular installation yet.
cmake ends with error. What is missing?
$ cmake ..
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- ~~~ plug v1.4.1 ~~~
-- Unit Tests : ON
-- Integrationtests : OFF
-- Coverage : OFF
-- LTO : OFF
-- ASan : OFF
-- UBSan : OFF
-- Build Type : None
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Found libusb-1.0: /usr/lib/x86_64-linux-gnu/libusb-1.0.so
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
Could NOT find GTest (missing: GTest_INCLUDE_DIR GTest_Mock_INCLUDE_DIR
GTest_LIBRARY GTest_Mock_LIBRARY GTest_Main_LIBRARY)
Call Stack (most recent call first):
/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE)
cmake/FindGTest.cmake:33 (find_package_handle_standard_args)
test/CMakeLists.txt:1 (find_package)
-- Configuring incomplete, errors occurred!
See also "/SHARED/SSD_DATA/plug/build/CMakeFiles/CMakeOutput.log".
See also "/SHARED/SSD_DATA/plug/build/CMakeFiles/CMakeError.log".
Hello offa,
I have a Fender Bronco 40 amp which from what I understand is very similar to the Mustang series, just with different modeling presets for bass. (Fender Bronco 40 Manual)
It used to be controllable with the Fuse Silverlight-app from Fender.
I managed to build Plug v1.4.3 and the connection fails with the error message
ERROR: Invalid amp id: 239
This error changes depending on the position of the amp selection knob. It has 8 positions and for my setup it produces the ids 171, 0, 0, 244, 239, 219, 219, 219.
Here is the output from dmesg:
[56819.047021] usb 1-7: new full-speed USB device number 26 using xhci_hcd
[56819.204199] usb 1-7: New USB device found, idVendor=1ed8, idProduct=000a, bcdDevice= 1.00
[56819.204216] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[56819.204224] usb 1-7: Product: Bronco Amplifier
[56819.204230] usb 1-7: Manufacturer: FMIC
[56819.204236] usb 1-7: SerialNumber: F62BFF373537553057156631
[56819.210811] hid-generic 0003:1ED8:000A.0011: hiddev2,hidraw4: USB HID v1.10 Device [FMIC Bronco Amplifier ] on usb-0000:00:14.0-7/input0
lsusb:
Bus 001 Device 026: ID 1ed8:000a FMIC Bronco Amplifier
lsusb -v:
Bus 001 Device 026: ID 1ed8:000a FMIC Bronco Amplifier
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x1ed8
idProduct 0x000a
bcdDevice 1.00
iManufacturer 1 FMIC
iProduct 2 Bronco Amplifier
iSerial 3 F62BFF373537553057156631
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0084
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 32
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 0
iInterface 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 0x001e
bInCollection 1
baInterfaceNr(0) 1
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0200 Input Undefined
bAssocTerminal 0
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 2
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 1
iTerminal 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
bDelay 1 frames
wFormatTag 0x0001 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 2
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 44100
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x00c0 1x 192 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioStreaming Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0x0000
Sadly, I lack the C++ skills to look into this but if the Bronco is as similar to the Mustang as I suspect then making Plug compatible with the Bronco should be doable. If someone is interested I will try to help as good as I can.
Hello.
I'm trying to compile this on Mac (I know this is meant for Linux, but I believe at least I could get the application itself compiled even if it later has issues connecting to the amp).
Even though I have installed qt5, libusb-1.0 and googletest I'm getting fatal errors about libusb-1.0 not being found.
Here's the output of cmake:
cmake ..
-- The C compiler identification is AppleClang 13.0.0.13000029
-- The CXX compiler identification is AppleClang 13.0.0.13000029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- ~~~ plug v1.4.3 ~~~
-- Unit Tests : ON
-- Integrationtests : OFF
-- Coverage : OFF
-- LTO : OFF
-- ASan : OFF
-- UBSan : OFF
-- Build Type : None
-- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.29.2")
-- Found libusb-1.0: /usr/local/Cellar/libusb/1.0.26/lib/libusb-1.0.dylib
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found GTest: /usr/local/include
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/valeria/Downloads/plug-master/build
It seems to find libusb (installed via Homebrew) yet on the make part it doesn't seem to link it:
fatal error: 'libusb-1.0/libusb.h' file not found
I've tried manually editing all files in /src/com which have a libusb #include and swapping them to point to my /usr/local/Cellar/libusb/1.0.26/ libusb.h file yet it seems than it still shows an error when compiling the LibUsbCompat.cpp file, even though it doesn't seem to contain any libusb.h includes.
I'm also getting a ton of errors about old-style-casting and unsigned-conversions, which I've ignored using make -i
Am I missing something? Thank you.
Question: does the this work with the Super Champ XD amp?
The "cmake .." command fails due to Gtest dependency on Ubuntu Studio 22.04
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find GTest (missing: GTest_Mock_INCLUDE_DIR GTest_Mock_LIBRARY)
Call Stack (most recent call first):
/usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
cmake/FindGTest.cmake:33 (find_package_handle_standard_args)
test/CMakeLists.txt:1 (find_package)
I installed libgtest-dev, build the libraries (got 2 *.a files) and moved them to /usr/lib but cmake still fails as above. Any ideas? Is it maybe possible to build without the dependency to Gtest? Thanks in advance!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.