]> git.basschouten.com Git - openhab-addons.git/blob
3711e3360c226397e3b20bedef24f25c211bc559
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2023 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
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
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.binding.upnpcontrol.internal;
14
15 import java.io.File;
16 import java.util.Set;
17 import java.util.stream.Collectors;
18 import java.util.stream.Stream;
19
20 import org.eclipse.jdt.annotation.NonNullByDefault;
21 import org.openhab.core.OpenHAB;
22 import org.openhab.core.thing.DefaultSystemChannelTypeProvider;
23 import org.openhab.core.thing.ThingTypeUID;
24 import org.openhab.core.thing.type.ChannelTypeUID;
25
26 /**
27  * The {@link UpnpControlBindingConstants} class defines common constants, which are
28  * used across the whole binding.
29  *
30  * @author Mark Herwege - Initial contribution
31  */
32 @NonNullByDefault
33 public class UpnpControlBindingConstants {
34
35     public static final String BINDING_ID = "upnpcontrol";
36
37     // List of all Thing Type UIDs
38     public static final ThingTypeUID THING_TYPE_RENDERER = new ThingTypeUID(BINDING_ID, "upnprenderer");
39     public static final ThingTypeUID THING_TYPE_SERVER = new ThingTypeUID(BINDING_ID, "upnpserver");
40     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Stream.of(THING_TYPE_RENDERER, THING_TYPE_SERVER)
41             .collect(Collectors.toSet());
42
43     // Binding config parameters
44     public static final String PATH = "path";
45
46     // Thing config parameters
47     public static final String UDN_PARAMETER = "udn";
48     public static final String REFRESH_INTERVAL = "refresh";
49     public static final String RESPONSE_TIMEOUT = "responsetimeout";
50     // Server thing only config parameters
51     public static final String CONFIG_FILTER = "filter";
52     public static final String SORT_CRITERIA = "sortcriteria";
53     public static final String BROWSE_DOWN = "browsedown";
54     public static final String SEARCH_FROM_ROOT = "searchfromroot";
55     // Renderer thing only config parameters
56     public static final String NOTIFICATION_VOLUME_ADJUSTMENT = "notificationvolumeadjustment";
57     public static final String MAX_NOTIFICATION_DURATION = "maxnotificationduration";
58     public static final String SEEK_STEP = "seekstep";
59
60     // List of all Channel ids
61     public static final String VOLUME = "volume";
62     public static final String MUTE = "mute";
63     public static final String CONTROL = "control";
64     public static final String STOP = "stop";
65     public static final String REPEAT = "repeat";
66     public static final String SHUFFLE = "shuffle";
67     public static final String ONLY_PLAY_ONE = "onlyplayone";
68     public static final String URI = "uri";
69     public static final String FAVORITE_SELECT = "favoriteselect";
70     public static final String FAVORITE = "favorite";
71     public static final String FAVORITE_ACTION = "favoriteaction";
72     public static final String TITLE = "title";
73     public static final String ALBUM = "album";
74     public static final String ALBUM_ART = "albumart";
75     public static final String CREATOR = "creator";
76     public static final String ARTIST = "artist";
77     public static final String PUBLISHER = "publisher";
78     public static final String GENRE = "genre";
79     public static final String TRACK_NUMBER = "tracknumber";
80     public static final String TRACK_DURATION = "trackduration";
81     public static final String TRACK_POSITION = "trackposition";
82     public static final String REL_TRACK_POSITION = "reltrackposition";
83
84     public static final String UPNPRENDERER = "upnprenderer";
85     public static final String CURRENTTITLE = "currenttitle";
86     public static final String BROWSE = "browse";
87     public static final String SEARCH = "search";
88     public static final String SERVE = "serve";
89     public static final String PLAYLIST_SELECT = "playlistselect";
90     public static final String PLAYLIST = "playlist";
91     public static final String PLAYLIST_ACTION = "playlistaction";
92
93     // Type constants for dynamic renderer channels
94     public static final String CHANNEL_TYPE_VOLUME = DefaultSystemChannelTypeProvider.SYSTEM_VOLUME.toString();
95     public static final String CHANNEL_TYPE_MUTE = DefaultSystemChannelTypeProvider.SYSTEM_MUTE.toString();
96     public static final String CHANNEL_TYPE_LOUDNESS = (new ChannelTypeUID(BINDING_ID, "loudness")).toString();
97
98     public static final String ITEM_TYPE_VOLUME = "Dimmer";
99     public static final String ITEM_TYPE_MUTE = "Switch";
100     public static final String ITEM_TYPE_LOUDNESS = "Switch";
101
102     // Command options for playlist and favorite actions
103     public static final String RESTORE = "RESTORE";
104     public static final String SAVE = "SAVE";
105     public static final String APPEND = "APPEND";
106     public static final String DELETE = "DELETE";
107
108     // Channels that are duplicated on server to control current renderer
109     public static final Set<String> SERVER_CONTROL_CHANNELS = Set.of(VOLUME, MUTE, CONTROL, STOP);
110
111     // Master volume and mute identifier
112     public static final String UPNP_MASTER = "Master";
113
114     // Filepath and extension defaults and constants for playlists and favorites
115     public static final String DEFAULT_PATH = OpenHAB.getUserDataFolder() + File.separator + BINDING_ID
116             + File.separator;
117     public static final String PLAYLIST_FILE_EXTENSION = ".lst";
118     public static final String FAVORITE_FILE_EXTENSION = ".fav";
119
120     // Notification audio sink name extension
121     public static final String NOTIFICATION_AUDIOSINK_EXTENSION = "-notify";
122 }