node-roon-api icon indicating copy to clipboard operation
node-roon-api copied to clipboard

Zones with more than one output device not shoen in zone dropdown of extensions

Open DrCWO opened this issue 3 years ago • 3 comments

I stuck with one Problem. In one of the images attached you see my roon setup combining two output devices to one zone. The transport.subscribe_zones API function also delivers the correct setup, also attached.

Now I have programmed a roon extension using the zone dropdown: l.layout.push({ type: "zone", title: "Zone", setting: "zone", }); In this dropdown only the individual output devices got listed instead of the zones I expected (see attached image) Is tis an error in the API or have I missed something?

This request is a bit urgent because one of my customers of rooDial complains.

roon_output transport.subscribe_zones.txt zones_dropdown

DrCWO avatar Jan 07 '21 08:01 DrCWO

You haven't missed anything--that is how it is supposed to work. I think the naming in the settings API is a little bit inconsistent. What it is calling a "zone" is called an "output" in the transport API. If we bound extension behavior like this to zones, the extension would effectively come and go as zones are grouped and ungrouped. We judged that that was not going to provide a good experience, and that is why it is this way.

There is no way to get a list of zones in settings, just the individual outputs. The idea is, you are going to tie the extension's behavior to a particular audio device and then the extension will automatically work with whichever group that is a part of, even as the output moves from group to group.

The user would set up your extension so that the Surface Dial is bound to the output in the same room as the knob. And then if they choose to group it later, the knob will apply to the whole group, "following around" the audio device that it is placed near.

blucz avatar Jan 08 '21 01:01 blucz

Brian,

thanks for your lines.

Meanwhile I understood that some of the methods in the transport API accept output_id , and some zone_id + output_id.

I decides to dropped the “zone” type and make my own dropdown with real zones! At luck subscribe_zones provides the

zones and all changes to them so I can hold a consistent mirror image of all zones with all their outputs within rooDial.

Users can now select a grouped zone and change volume for all the attached outputs.

For this I have to call the change_volume several times, once for each output but who cares ;-) I will publish it soon.

Please allow me two more question:

  1. In a grouped zone with multiple outputs I see in the right lower corner right above the speaker symbol a “+” and a “-“ that affects all outputs. Also a “Mute All” is in this line. Is there a chance to access these functions via transport API? I could not find a method for that.
  2. This “+” and “-“ buttons I can also see if the Deep Harmony plugin is loaded. In this case the “+” and “-“ fires infrared as long as the “+” and “-“ got pressed down. I also did not make it to access these by transport API. Any idea or “hidden” feature?

Thanks

Charly

Von: Brian Luczkiewicz [email protected] Gesendet: Freitag, 8. Januar 2021 02:49 An: RoonLabs/node-roon-api [email protected] Cc: DrCWO [email protected]; Author [email protected] Betreff: Re: [RoonLabs/node-roon-api] Zones with more than one output device not shoen in zone dropdown of extensions (#25)

You haven't missed anything--that is how it is supposed to work. I think the naming in the settings API is a little bit inconsistent. What it is calling a "zone" is called an "output" in the transport API. If we bound extension behavior like this to zones, the extension would effectively come and go as zones are grouped and ungrouped. We judged that that was not going to provide a good experience, and that is why it is this way.

There is no way to get a list of zones in settings, just the individual outputs. The idea is, you are going to tie the extension's behavior to a particular audio device and then the extension will automatically work with whichever group that is a part of, even as the output moves from group to group.

The user would set up your extension so that the Surface Dial is bound to the output in the same room as the knob. And then if they choose to group it later, the knob will apply to the whole group, "following around" the audio device that it is placed near.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/RoonLabs/node-roon-api/issues/25#issuecomment-756495343 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APRCIDQYF3A523PIB2CZDS3SYZQBRANCNFSM4VYT5LTQ . https://github.com/notifications/beacon/APRCIDTZPCOHUKLOZJCVFVTSYZQBRA5CNFSM4VYT5LT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFULTH3Y.gif

DrCWO avatar Jan 08 '21 13:01 DrCWO

There is a mute_all command in the transport API.

We do not plan to let extensions discover other extensions.

blucz avatar Jan 08 '21 15:01 blucz