2 * Copyright (c) 2010-2024 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.kaleidescape.internal;
15 import java.util.Arrays;
16 import java.util.HashSet;
19 import org.eclipse.jdt.annotation.NonNullByDefault;
20 import org.openhab.core.thing.ThingTypeUID;
23 * The {@link KaleidescapeBindingConstants} class defines common constants, which are
24 * used across the whole binding.
26 * @author Michael Lobstein - Initial contribution
29 public class KaleidescapeBindingConstants {
30 public static final String BINDING_ID = "kaleidescape";
32 // List of all Thing Type UIDs
33 public static final ThingTypeUID THING_TYPE_PLAYER = new ThingTypeUID(BINDING_ID, "player");
34 public static final ThingTypeUID THING_TYPE_CINEMA_ONE = new ThingTypeUID(BINDING_ID, "cinemaone");
35 public static final ThingTypeUID THING_TYPE_ALTO = new ThingTypeUID(BINDING_ID, "alto");
36 public static final ThingTypeUID THING_TYPE_STRATO = new ThingTypeUID(BINDING_ID, "strato");
38 // Constants related to discovery
39 public static final String PROPERTY_UUID = "uuid";
40 public static final String PROPERTY_HOST_NAME = "host";
41 public static final String PROPERTY_PORT_NUM = "port";
42 public static final int DEFAULT_API_PORT = 10000;
43 public static final int DISCOVERY_THREAD_POOL_SIZE = 15;
44 public static final boolean DISCOVERY_DEFAULT_AUTO_DISCOVER = false;
45 public static final int DISCOVERY_DEFAULT_TIMEOUT_RATE_MS = 500;
46 public static final int DISCOVERY_DEFAULT_IP_TIMEOUT_RATE_MS = 750;
48 // List of all Channels
49 public static final String POWER = "ui#power";
50 public static final String VOLUME = "ui#volume";
51 public static final String MUTE = "ui#mute";
52 public static final String CONTROL = "ui#control";
53 public static final String TITLE_NAME = "ui#title_name";
54 public static final String PLAY_MODE = "ui#play_mode";
55 public static final String PLAY_SPEED = "ui#play_speed";
56 public static final String TITLE_NUM = "ui#title_num";
57 public static final String TITLE_LENGTH = "ui#title_length";
58 public static final String TITLE_LOC = "ui#title_loc";
59 public static final String CHAPTER_NUM = "ui#chapter_num";
60 public static final String CHAPTER_LENGTH = "ui#chapter_length";
61 public static final String CHAPTER_LOC = "ui#chapter_loc";
62 public static final String MOVIE_MEDIA_TYPE = "ui#movie_media_type";
63 public static final String MOVIE_LOCATION = "ui#movie_location";
64 public static final String ASPECT_RATIO = "ui#aspect_ratio";
65 public static final String VIDEO_MODE = "ui#video_mode";
66 public static final String VIDEO_MODE_COMPOSITE = "ui#video_mode_composite";
67 public static final String VIDEO_MODE_COMPONENT = "ui#video_mode_component";
68 public static final String VIDEO_MODE_HDMI = "ui#video_mode_hdmi";
69 public static final String VIDEO_COLOR = "ui#video_color";
70 public static final String VIDEO_COLOR_EOTF = "ui#video_color_eotf";
71 public static final String CONTENT_COLOR = "ui#content_color";
72 public static final String CONTENT_COLOR_EOTF = "ui#content_color_eotf";
73 public static final String SCALE_MODE = "ui#scale_mode";
74 public static final String SCREEN_MASK = "ui#screen_mask";
75 public static final String SCREEN_MASK2 = "ui#screen_mask2";
76 public static final String CINEMASCAPE_MASK = "ui#cinemascape_mask";
77 public static final String CINEMASCAPE_MODE = "ui#cinemascape_mode";
78 public static final String UI_STATE = "ui#ui_state";
79 public static final String CHILD_MODE_STATE = "ui#child_mode_state";
80 public static final String SYSTEM_READINESS_STATE = "ui#readiness_state";
81 public static final String HIGHLIGHTED_SELECTION = "ui#highlighted_selection";
82 public static final String USER_DEFINED_EVENT = "ui#user_defined_event";
83 public static final String USER_INPUT = "ui#user_input";
84 public static final String USER_INPUT_PROMPT = "ui#user_input_prompt";
85 public static final String CHANNEL_TYPE_SENDCMD = "ui#sendcmd";
87 public static final String MUSIC = "music#";
88 public static final String MUSIC_CONTROL = "music#control";
89 public static final String MUSIC_REPEAT = "music#repeat";
90 public static final String MUSIC_RANDOM = "music#random";
91 public static final String MUSIC_TRACK = "music#track";
92 public static final String MUSIC_ARTIST = "music#artist";
93 public static final String MUSIC_ALBUM = "music#album";
94 public static final String MUSIC_PLAY_MODE = "music#play_mode";
95 public static final String MUSIC_PLAY_SPEED = "music#play_speed";
96 public static final String MUSIC_TRACK_LENGTH = "music#track_length";
97 public static final String MUSIC_TRACK_POSITION = "music#track_position";
98 public static final String MUSIC_TRACK_PROGRESS = "music#track_progress";
99 public static final String MUSIC_TRACK_HANDLE = "music#track_handle";
100 public static final String MUSIC_ALBUM_HANDLE = "music#album_handle";
101 public static final String MUSIC_NOWPLAY_HANDLE = "music#nowplay_handle";
103 public static final String DETAIL = "detail#";
105 // metadata details - the values are keyed to what is sent by the component
106 // prefaced with 'detail_' when updating the channel
107 public static final String CONTENT_HANDLE = "content_handle";
108 public static final String ALBUM_CONTENT_HANDLE = "album_content_handle";
109 public static final String MOVIE = "movie";
110 public static final String ALBUM = "album";
111 public static final String DETAIL_TYPE = "type";
112 public static final String DETAIL_TITLE = "title"; // movie
113 public static final String DETAIL_ALBUM_TITLE = "album_title"; // album
114 public static final String DETAIL_COVER_ART = "cover_art"; // both
115 public static final String DETAIL_COVER_URL = "cover_url"; // both
116 public static final String DETAIL_HIRES_COVER_URL = "hires_cover_url"; // both
117 public static final String DETAIL_RATING = "rating"; // movie
118 public static final String DETAIL_YEAR = "year"; // both
119 public static final String DETAIL_RUNNING_TIME = "running_time"; // both
120 public static final String DETAIL_ACTORS = "actors"; // movie
121 public static final String DETAIL_ARTIST = "artist"; // album
122 public static final String DETAIL_DIRECTORS = "directors"; // movie
123 public static final String DETAIL_GENRES = "genres"; // both
124 public static final String DETAIL_RATING_REASON = "rating_reason"; // movie
125 public static final String DETAIL_SYNOPSIS = "synopsis"; // movie
126 public static final String DETAIL_REVIEW = "review"; // album
127 public static final String DETAIL_COLOR_DESCRIPTION = "color_description"; // movie
128 public static final String DETAIL_COUNTRY = "country"; // movie
129 public static final String DETAIL_ASPECT_RATIO = "aspect_ratio"; // movie
130 public static final String DETAIL_DISC_LOCATION = "disc_location"; // both
132 // make a list of all allowed metatdata channels,
133 // used to filter out what we don't want from the component
134 public static final Set<String> METADATA_CHANNELS = new HashSet<>(Arrays.asList(DETAIL_TITLE, DETAIL_ALBUM_TITLE,
135 DETAIL_COVER_URL, DETAIL_HIRES_COVER_URL, DETAIL_RATING, DETAIL_YEAR, DETAIL_RUNNING_TIME, DETAIL_ACTORS,
136 DETAIL_ARTIST, DETAIL_DIRECTORS, DETAIL_GENRES, DETAIL_RATING_REASON, DETAIL_SYNOPSIS, DETAIL_REVIEW,
137 DETAIL_COLOR_DESCRIPTION, DETAIL_COUNTRY, DETAIL_ASPECT_RATIO, DETAIL_DISC_LOCATION));
139 public static final String STANDBY_MSG = "Device is in standby";
140 public static final String PROPERTY_COMPONENT_TYPE = "Component Type";
141 public static final String PROPERTY_FRIENDLY_NAME = "Friendly Name";
142 public static final String PROPERTY_SERIAL_NUMBER = "Serial Number";
143 public static final String PROPERTY_CONTROL_PROTOCOL_ID = "Control Protocol ID";
144 public static final String PROPERTY_SYSTEM_VERSION = "System Version";
145 public static final String PROPERTY_PROTOCOL_VERSION = "Protocol Version";
147 public static final String GET_DEVICE_TYPE_NAME = "GET_DEVICE_TYPE_NAME";
148 public static final String GET_FRIENDLY_NAME = "GET_FRIENDLY_NAME";
149 public static final String GET_DEVICE_INFO = "GET_DEVICE_INFO";
150 public static final String GET_SYSTEM_VERSION = "GET_SYSTEM_VERSION";
151 public static final String GET_DEVICE_POWER_STATE = "GET_DEVICE_POWER_STATE";
152 public static final String GET_CINEMASCAPE_MASK = "GET_CINEMASCAPE_MASK";
153 public static final String GET_CINEMASCAPE_MODE = "GET_CINEMASCAPE_MODE";
154 public static final String GET_SCALE_MODE = "GET_SCALE_MODE";
155 public static final String GET_SCREEN_MASK = "GET_SCREEN_MASK";
156 public static final String GET_SCREEN_MASK2 = "GET_SCREEN_MASK2";
157 public static final String GET_VIDEO_MODE = "GET_VIDEO_MODE";
158 public static final String GET_UI_STATE = "GET_UI_STATE";
159 public static final String GET_HIGHLIGHTED_SELECTION = "GET_HIGHLIGHTED_SELECTION";
160 public static final String GET_CHILD_MODE_STATE = "GET_CHILD_MODE_STATE";
161 public static final String GET_MOVIE_LOCATION = "GET_MOVIE_LOCATION";
162 public static final String GET_MOVIE_MEDIA_TYPE = "GET_MOVIE_MEDIA_TYPE";
163 public static final String GET_PLAYING_TITLE_NAME = "GET_PLAYING_TITLE_NAME";
164 public static final String GET_PLAY_STATUS = "GET_PLAY_STATUS";
165 public static final String GET_MUSIC_NOW_PLAYING_STATUS = "GET_MUSIC_NOW_PLAYING_STATUS";
166 public static final String GET_MUSIC_PLAY_STATUS = "GET_MUSIC_PLAY_STATUS";
167 public static final String GET_MUSIC_TITLE = "GET_MUSIC_TITLE";
168 public static final String GET_SYSTEM_READINESS_STATE = "GET_SYSTEM_READINESS_STATE";
169 public static final String GET_VIDEO_COLOR = "GET_VIDEO_COLOR";
170 public static final String GET_CONTENT_COLOR = "GET_CONTENT_COLOR";
171 public static final String SET_STATUS_CUE_PERIOD_1 = "SET_STATUS_CUE_PERIOD:1";
172 public static final String GET_TIME = "GET_TIME";
173 public static final String GET_CONTENT_DETAILS = "GET_CONTENT_DETAILS:";
175 public static final String LEAVE_STANDBY = "LEAVE_STANDBY";
176 public static final String ENTER_STANDBY = "ENTER_STANDBY";
178 public static final String PLAY = "PLAY";
179 public static final String PAUSE = "PAUSE";
180 public static final String NEXT = "NEXT";
181 public static final String PREVIOUS = "PREVIOUS";
182 public static final String SCAN_FORWARD = "SCAN_FORWARD";
183 public static final String SCAN_REVERSE = "SCAN_REVERSE";
185 public static final String MUSIC_REPEAT_ON = "MUSIC_REPEAT_ON";
186 public static final String MUSIC_REPEAT_OFF = "MUSIC_REPEAT_OFF";
187 public static final String MUSIC_RANDOM_ON = "MUSIC_RANDOM_ON";
188 public static final String MUSIC_RANDOM_OFF = "MUSIC_RANDOM_OFF";
190 public static final String SEND_TO_SYSLOG = "SEND_TO_SYSLOG:INFORMATION:";
191 public static final String SEND_EVENT_VOLUME_CAPABILITIES_15 = "SEND_EVENT:VOLUME_CAPABILITIES=15";
192 public static final String SEND_EVENT_VOLUME_LEVEL_EQ = "SEND_EVENT:VOLUME_LEVEL=";
193 public static final String SEND_EVENT_MUTE = "SEND_EVENT:MUTE_";
194 public static final String MUTE_ON = "ON_FB";
195 public static final String MUTE_OFF = "OFF_FB";
197 public static final String ONE = "1";
198 public static final String ZERO = "0";
199 public static final String EMPTY = "";