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.lgtvserial.internal.protocol.serial.commands;
15 import org.openhab.binding.lgtvserial.internal.protocol.serial.LGSerialCommand;
16 import org.openhab.binding.lgtvserial.internal.protocol.serial.LGSerialResponseListener;
17 import org.openhab.core.thing.ChannelUID;
20 * This class is used to convert a channel id to it's corresponding class command.
22 * @author Richard Lavoie - Initial contribution
25 public class CommandFactory {
27 public static LGSerialCommand createCommandFor(ChannelUID channel, LGSerialResponseListener listener) {
28 int setId = listener.getSetID();
29 String name = channel.getId();
32 return new LG3DCommand(setId);
34 return new LG3DExtendedCommand(setId);
36 return new AspectRatioCommand(setId);
38 return new AutoSleepCommand(setId);
40 return new AutoVolumeCommand(setId);
42 return new BacklightCommand(setId);
44 return new BalanceCommand(setId);
46 return new BassCommand(setId);
48 return new BrightnessCommand(setId);
50 return new ColorCommand(setId);
51 case "color-temperature":
52 return new ColorTemperatureCommand(setId);
53 case "color-temperature2":
54 return new ColorTemperature2Command(setId);
56 return new ContrastCommand(setId);
58 return new DPMCommand(setId);
60 return new ElapsedTimeCommand(setId);
62 return new EnergySavingCommand(setId);
63 case "fan-fault-check":
64 return new FanFaultCheckCommand(setId);
66 return new HPositionCommand(setId);
68 return new HSizeCommand(setId);
70 return new InputSelectCommand(setId);
72 return new InputSelect2Command(setId);
74 return new IRKeyCodeCommand(setId);
76 return new ISMMethodCommand(setId);
77 case "lamp-fault-check":
78 return new LampFaultCheckCommand(setId);
80 return new NaturalModeCommand(setId);
82 return new OSDLanguageCommand(setId);
84 return new OSDSelectCommand(setId);
86 return new PictureModeCommand(setId);
88 return new PowerCommand(setId);
89 case "power-indicator":
90 return new PowerIndicatorCommand(setId);
92 return new PowerSavingCommand(setId);
94 return new RawCommand();
96 return new ScreenMuteCommand(setId);
98 return new SerialNoCommand(setId);
100 return new SharpnessCommand(setId);
102 return new SleepTimeCommand(setId);
103 case "software-version":
104 return new SoftwareVersionCommand(setId);
106 return new SoundModeCommand(setId);
108 return new SpeakerCommand(setId);
109 case "temperature-value":
110 return new TemperatureValueCommand(setId);
112 return new TileCommand(setId);
113 case "tile-h-position":
114 return new TileHPositionCommand(setId);
116 return new TileHSizeCommand(setId);
118 return new TileIdSetCommand(setId);
119 case "tile-v-position":
120 return new TileVPositionCommand(setId);
122 return new TileVSizeCommand(setId);
124 return new TimeCommand(setId);
126 return new TintCommand(setId);
128 return new TrebleCommand(setId);
130 return new VolumeCommand(setId);
132 return new VolumeMuteCommand(setId);
134 return new VPositionCommand(setId);
136 return new VSizeCommand(setId);