[alsa-devel] Trying to write control utility for YAMAHA Cavit DP-U50/AP-U70/RP-U200.
Hi
The devices of my interest is in fact 18yrs old, but just can't stop using them for being too useful. (I own DP-U50 and RP-U200).
For these devices: A.)Source selecting as well as alteration of the labels (for each input) to be displayed on the VDF are possible. B.)Internal DSP is highly configurable c.)Tuner presets are editable (RP-U200 only) through the Win32 utility (DP-U50.exe/AP-U70.exe/RP-U200.exe).
Most of sound-related details should be at http://www.alsa-project.org/db/?f=9aad4f38c69efd1c6ae90de239063efeb5a61dce.
Basically I am stuck with almost no experience in this, but am trying to write some code to implement the Linux-alternative of these utilities to at least enable the source selecting from Linux via USB (mostly intended to be used with shairplay-sync). Thought examples of device-specific utilities as found in alsa-tools may help but I just don't see connections between USB-dump and control signals that may be accepted by those listed in amixer.
Side-notes(Findings so far): The device appears as a composite with several Audio interfaces and a HID-Class interface. Knowing this from early days, I first decided to see hexdump outputs on "/dev/hidraw0" and it indicated what looked like the representation of current status of the device while turning knobs and switching inputs. My guess is, the device takes special commands via the control and echos the current status via HID which is visible as "/dev/hidraw0". ("/dev/input/event0" is also present but doesn't really spit anything.) At this point, thought this was a bi-directional communication via HID-Class (by which I was wrong, as I found out later).
Thinking collecting several packet captures under controlled conditions would help understand the mechanism, moved onto capturing WindowMessages (of RP-U200.exe) with Spy++ from which I was able to implement the automated operation of RP-U200.exe via Python. See: https://www.youtube.com/watch?v=-Il9vKtnr1A
Figured out 1.)messages of "WM_USER + 1" are from "hid_io.dll" to RP-U200.exe 2.)messages of "WM_USER + 201" are the actual inputs to RP-U200.exe
About files attached: a.)RP-U200.hexdump.txt shows outputs observed on "/dev/hidraw0" as I turned the volume knob from min to max and down to min. b.)"util_launch.pcapng.json" shows the interactions between host (Win10 x64) and RP-U200 as RP-U200.exe was being launched (Power:Off->Off). c.)"util_power_on.pcapng.json" shows the interactions between host (Win10 x64) and RP-U200 starting shortly before I pressed the Power button on RP-U200.exe, ending with the output relays closed for speaker outputs (Power:Off->On).
Any comments should keep me encouraged. Thanks in advance.
Tahiro.H
participants (1)
-
Tahiro Hashizume