Hi Takashi,
Glad that we could be of help. We checked this on the firmware side and yes, we can confirm that the Weiss MAN301 is the only device with AV/C protocol (using vendor dependent commands).
We are deploying a small set of commands in order to probe and control the parameters on the MAN301:
WEISS_CMD_ID_DEV_CONST: probe the number of parameters
WEISS_CMD_ID_PARAM_OP: read/write to a parameter
WEISS_CMD_ID_PARAM_INFO: read parameter info (index, type, iface type, name)
WEISS_CMD_ID_ENUM_ITEM_INFO: read parameter enum type info
This allows us to populate and control snd-control instances that represent the device's featured parameters [1].
How would you like to proceed for `snd-firewire-ctl-services`? We can start by giving you the output of `amixer contents` for the MAN301, so you see all the controls and their possible values (see below).
Let us know if there's any additional information we can provide.
Kind regards, Rolf Anderegg
[1] https://github.com/weiss-engineering/snd-dice/blob/avc/dice-avc.c
-- $ amixer contents numid=3,iface=CARD,name='Dual Wire Mode Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=4,iface=CARD,name='Dual Wire Word Clock Half Rate Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=1,iface=CARD,name='Sync source' ; type=ENUMERATED,access=rw------,values=1,items=13 ; Item #0 'AES1' ; Item #1 'AES2' ; Item #2 'AES3' ; Item #3 'AES4' ; Item #4 'AES' ; Item #5 'ADAT' ; Item #6 'TDIF' ; Item #7 'Wordclock' ; Item #8 'ARX1' ; Item #9 'ARX2' ; Item #10 'ARX3' ; Item #11 'ARX4' ; Item #12 'Internal' : values=2 numid=10,iface=MIXER,name='DAC::Analog Output Level' ; type=ENUMERATED,access=rw------,values=1,items=4 ; Item #0 '0 dB' ; Item #1 '-10 dB' ; Item #2 '-20 dB' ; Item #3 '-30 dB' : values=1 numid=8,iface=MIXER,name='DAC::DAC Filter Type' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'A' ; Item #1 'B' : values=0 numid=9,iface=MIXER,name='DAC::DAC Output Playback Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=7,iface=MIXER,name='DAC::DAC Polarity Inversion Playback Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=2,iface=MIXER,name='Digital Input Capture Route' ; type=ENUMERATED,access=rw------,values=1,items=3 ; Item #0 'AES/EBU (XLR)' ; Item #1 'S/PDIF (RCA)' ; Item #2 'S/PDIF (TOS)' : values=2 numid=6,iface=MIXER,name='RCA::RCA Output Playback Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=5,iface=MIXER,name='XLR::XLR Output Playback Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on
On 31.08.23 15:28, Takashi Sakamoto wrote:
Hi Michele,
Thanks for your contribution of configuration ROM for Weiss models[1]. I'm sorry for my little reaction but currently I'm working for Debian ITP to linux-firewire-utils package[2][3].
As a quick glance, all of configuration ROMs except for Weiss MAN301 include single unit directory, while the exception includes two unit directories; 1394TA AV/C protocol and TCAT protocol. It means that the vendor-dependent AV/C command[4] is implemented in MAN301, but not in the others. Then I would like to figure out whether it is correct or not. If it is unique for MAN301, the implementation of control service can be simpler to support the command just for MAN301.
[1] https://github.com/takaswie/am-config-roms/pull/5 [2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050551 [3] https://mentors.debian.net/package/linux-firewire-utils/ [4] https://github.com/weiss-engineering/snd-dice/blob/avc/dice-avc.c
Regards
Takashi Sakamoto