diff --git a/app/src/main/java/com/mkulesh/onpc/MainActivity.java b/app/src/main/java/com/mkulesh/onpc/MainActivity.java index d7a27d41..16a67071 100644 --- a/app/src/main/java/com/mkulesh/onpc/MainActivity.java +++ b/app/src/main/java/com/mkulesh/onpc/MainActivity.java @@ -263,6 +263,12 @@ public boolean connectToDevice(final String device, final int port) try { stateHolder.setStateManager(new StateManager(connectionState, this, device, port, zone)); + // By default, add all possible device selectors + { + final State s = stateHolder.getState(); + s.createDefaultSelectors(this); + configuration.setReceiverInformation(s); + } if (autoPower) { // Auto power-on once at application startup diff --git a/app/src/main/java/com/mkulesh/onpc/iscp/State.java b/app/src/main/java/com/mkulesh/onpc/iscp/State.java index 8c932b27..ce1ffbfe 100644 --- a/app/src/main/java/com/mkulesh/onpc/iscp/State.java +++ b/app/src/main/java/com/mkulesh/onpc/iscp/State.java @@ -227,6 +227,21 @@ public String getDeviceName(boolean useFriendlyName) return ""; } + public void createDefaultSelectors(final Context context) + { + deviceSelectors.clear(); + for (InputSelectorMsg.InputType it : InputSelectorMsg.InputType.values()) + { + if (it != InputSelectorMsg.InputType.NONE) + { + final ReceiverInformationMsg.Selector s = new ReceiverInformationMsg.Selector( + it.getCode(), context.getString(it.getDescriptionId()), + ReceiverInformationMsg.ALL_ZONE, it.getCode(), false); + deviceSelectors.add(s); + } + } + } + private void clearTrackInfo() { cover = null; diff --git a/app/src/main/java/com/mkulesh/onpc/iscp/messages/ReceiverInformationMsg.java b/app/src/main/java/com/mkulesh/onpc/iscp/messages/ReceiverInformationMsg.java index bdd87e25..f2b2bc39 100644 --- a/app/src/main/java/com/mkulesh/onpc/iscp/messages/ReceiverInformationMsg.java +++ b/app/src/main/java/com/mkulesh/onpc/iscp/messages/ReceiverInformationMsg.java @@ -45,6 +45,7 @@ public class ReceiverInformationMsg extends ISCPMessage { public final static String CODE = "NRI"; public final static int DEFAULT_ACTIVE_ZONE = 0; + public final static int ALL_ZONE = 0xFF; public static class Zone {