2 * Copyright (c) 2010-2023 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.heos.internal;
15 import java.util.Collections;
17 import java.util.stream.Collectors;
18 import java.util.stream.Stream;
20 import org.eclipse.jdt.annotation.NonNullByDefault;
21 import org.openhab.binding.heos.internal.resources.HeosConstants;
22 import org.openhab.core.thing.ThingTypeUID;
23 import org.openhab.core.thing.type.ChannelTypeUID;
26 * The {@link HeosBinding} class defines common constants, which are
27 * used across the whole binding.
29 * @author Johannes Einig - Initial contribution
32 public class HeosBindingConstants extends HeosConstants {
34 public static final String BINDING_ID = "heos";
36 // List of all Bridge Type UIDs
38 public static final ThingTypeUID THING_TYPE_BRIDGE = new ThingTypeUID(BINDING_ID, "bridge");
39 public static final ThingTypeUID THING_TYPE_PLAYER = new ThingTypeUID(BINDING_ID, "player");
40 public static final ThingTypeUID THING_TYPE_GROUP = new ThingTypeUID(BINDING_ID, "group");
42 // List off all Channel Types
43 public static final ChannelTypeUID CH_TYPE_PLAYER = new ChannelTypeUID(BINDING_ID, "chPlayer");
45 // List of all Channel IDs
46 public static final String CH_ID_CONTROL = "Control";
47 public static final String CH_ID_VOLUME = "Volume";
48 public static final String CH_ID_MUTE = "Mute";
49 public static final String CH_ID_UNGROUP = "Ungroup";
50 public static final String CH_ID_SONG = "Title";
51 public static final String CH_ID_ARTIST = "Artist";
52 public static final String CH_ID_ALBUM = "Album";
53 public static final String CH_ID_BUILDGROUP = "BuildGroup";
54 public static final String CH_ID_REBOOT = "Reboot";
55 public static final String CH_ID_COVER = "Cover";
56 public static final String CH_ID_PLAYLISTS = "Playlists";
57 public static final String CH_ID_FAVORITES = "Favorites";
58 public static final String CH_ID_QUEUE = "Queue";
59 public static final String CH_ID_CLEAR_QUEUE = "ClearQueue";
60 public static final String CH_ID_INPUTS = "Inputs";
61 public static final String CH_ID_CUR_POS = "CurrentPosition";
62 public static final String CH_ID_DURATION = "Duration";
63 public static final String CH_ID_STATION = "Station";
64 public static final String CH_ID_RAW_COMMAND = "RawCommand";
65 public static final String CH_ID_TYPE = "Type";
66 public static final String CH_ID_PLAY_URL = "PlayUrl";
67 public static final String CH_ID_SHUFFLE_MODE = "Shuffle";
68 public static final String CH_ID_REPEAT_MODE = "RepeatMode";
70 // Values for Bridge, Player and Group Properties;
71 // Using this values to display the correct name
72 // within the thing properties.
74 public static final String PROP_PID = "pid";
75 public static final String PROP_GROUP_MEMBERS = "members";
76 public static final String PROP_NAME = "Name";
77 public static final String PROP_GID = "Group ID";
78 public static final String PROP_IP = "IP Address";
79 public static final String PROP_NETWORK = "Connection";
80 public static final String PROP_GROUP_HASH = "Members Hash value";
81 public static final String PROP_GROUP_LEADER = "Group leader";
83 public static final String USERNAME = "username";
84 public static final String PASSWORD = "password";
85 public static final String HEARTBEAT = "heartbeat";
87 public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Collections.unmodifiableSet(
88 Stream.of(THING_TYPE_BRIDGE, THING_TYPE_GROUP, THING_TYPE_PLAYER).collect(Collectors.toSet()));
90 public static final int FAILURE_COUNT_LIMIT = 5;