|
From: Takashi S. <o-t...@sa...> - 2016-05-22 01:12:39
|
Hi, On May 19 2016 19:52, Marco wrote: > You should already have received a mail with a link to the file with the > results of hinawa-bebob-parser. > If anyone else is interested just let me know. Thanks for the mail with log file. As long as seeing the file, your unit supports some features. In BeBoB interface, these features are represented by 'Audio Subunit Function Block' according to a document of 1394 Trade Association[1]. This is a list of the function blocks implemented in your unit. - Selector function block: - 1: Capture PCM source - 0: Line In - 1: Phono In - 2: Mic In - 3: S/PDIF In - 2: S/PDIF output source - 0: PCM playback 1/2 - 1: PCM playback 9/10 - Feature function block: - 1: Analog output 1-8 volume/mute/pan - 2: Line input 1/2 volume/mute/pan - 3: Phono input 1/2 volume/mute/pan - 4: Mic input volume/mute/pan - Mixer function block: - Perhaps disabled so as the other BeBoB units do. So, you can change the state of your unit by sending commands and receiving responses. The simplest way is to use 'firewire-request' command in linux-firewire-utils[2]. For example, when getting volume of analog output, execute the command with proper arguments below: $ ./firewire-request /dev/fw1 fcp 0x0108b881xx1002yy0202ffff Here, xx means the numerical ID of the feature function block (1-4), and yy means channel number (0-7 for analog output, 0/1 for the others). For example: $ ./firewire-request /dev/fw1 fcp 0108b881011002010202ffff response: 000: 0c 08 b8 81 01 10 02 01 02 02 e8 00 In this case, 'e8 80' means the current volume. For the meaning, please refer to 'Table 10.5 - Values for the volume settings'[1]. When setting volume of analog output, execute the command with proper arguments below: $ ./firewire-request /dev/fw1 fcp 0x0008b881xx1002yy0202zzzz The value of first byte is different from the getting case. Please fill zzzz according to the table. They're examples for the feature function block. When setting/getting source selectors, we need to use different commands in the specification, like: $ ./firewire-request /dev/fw1 fcp 0x0108b880xx1002yy01 Here, xx means the numerical ID of selector function block (1-2), and yy means source ID (0-3 for capture PCM source, 0/1 for S/PDIF out source). For example, when getting current source of capture PCM, execute this command: $ ./firewire-request /dev/fw1 fcp 0108b880011002ff01 response: 000: 0c 08 b8 80 01 10 02 00 01 In this case, the unit returns '00'. In your unit, it means 'Line In'. When setting 'Phono In', execute like this: $ ./firewire-request /dev/fw1 fcp 0x0008b8800110020201 For your information, in FFADO project, there's no active developers who has enough knowledge about this command set. Therefore, it's better not to have excess of expectation to others. I think no one can help you. [1] AV/C Audio Subunit Specification 1.0 (TA Document 1999008) [2] https://github.com/cladisch/linux-firewire-utils Regards Takashi Sakamoto |