removed deprecated methods and fields
[deb_libcec.git] / src / lib / LibCECC.cpp
... / ...
CommitLineData
1/*
2 * This file is part of the libCEC(R) library.
3 *
4 * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved.
5 * libCEC(R) is an original work, containing original code.
6 *
7 * libCEC(R) is a trademark of Pulse-Eight Limited.
8 *
9 * This program is dual-licensed; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 *
23 *
24 * Alternatively, you can license this library under a commercial license,
25 * please contact Pulse-Eight Licensing for more information.
26 *
27 * For more information contact:
28 * Pulse-Eight Licensing <license@pulse-eight.com>
29 * http://www.pulse-eight.com/
30 * http://www.pulse-eight.net/
31 */
32
33#include "env.h"
34#include "cec.h"
35#include "cecc.h"
36
37using namespace CEC;
38using namespace std;
39
40/*!
41 * C interface implementation
42 */
43//@{
44ICECAdapter *cec_parser;
45
46int cec_initialise(libcec_configuration *configuration)
47{
48 cec_parser = (ICECAdapter *) CECInitialise(configuration);
49 return (cec_parser != NULL) ? 1 : 0;
50}
51
52void cec_destroy(void)
53{
54 cec_close();
55 CECDestroy(cec_parser);
56 cec_parser = NULL;
57}
58
59int cec_open(const char *strPort, uint32_t iTimeout)
60{
61 if (cec_parser)
62 return cec_parser->Open(strPort, iTimeout);
63 return false;
64}
65
66void cec_close(void)
67{
68 if (cec_parser)
69 cec_parser->Close();
70}
71
72int cec_enable_callbacks(void *cbParam, ICECCallbacks *callbacks)
73{
74 if (cec_parser)
75 return cec_parser->EnableCallbacks(cbParam, callbacks) ? 1 : 0;
76 return -1;
77}
78
79int8_t cec_find_adapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath /* = NULL */)
80{
81 if (cec_parser)
82 return cec_parser->FindAdapters(deviceList, iBufSize, strDevicePath);
83 return -1;
84}
85
86int cec_ping_adapters(void)
87{
88 if (cec_parser)
89 return cec_parser->PingAdapter() ? 1 : 0;
90 return -1;
91}
92
93int cec_start_bootloader(void)
94{
95 if (cec_parser)
96 return cec_parser->StartBootloader() ? 1 : 0;
97 return -1;
98}
99
100int cec_transmit(const CEC::cec_command *data)
101{
102 if (cec_parser)
103 return cec_parser->Transmit(*data) ? 1 : 0;
104 return -1;
105}
106
107int cec_set_logical_address(cec_logical_address iLogicalAddress /* = CECDEVICE_PLAYBACKDEVICE1 */)
108{
109 if (cec_parser)
110 return cec_parser->SetLogicalAddress(iLogicalAddress) ? 1 : 0;
111 return -1;
112}
113
114int cec_set_physical_address(uint16_t iPhysicalAddress /* = CEC_DEFAULT_PHYSICAL_ADDRESS */)
115{
116 if (cec_parser)
117 return cec_parser->SetPhysicalAddress(iPhysicalAddress) ? 1 : 0;
118 return -1;
119}
120
121int cec_power_on_devices(cec_logical_address address /* = CECDEVICE_TV */)
122{
123 if (cec_parser)
124 return cec_parser->PowerOnDevices(address) ? 1 : 0;
125 return -1;
126}
127
128int cec_standby_devices(cec_logical_address address /* = CECDEVICE_BROADCAST */)
129{
130 if (cec_parser)
131 return cec_parser->StandbyDevices(address) ? 1 : 0;
132 return -1;
133}
134
135int cec_set_active_source(cec_device_type type)
136{
137 if (cec_parser)
138 return cec_parser->SetActiveSource(type) ? 1 : 0;
139 return -1;
140}
141
142int cec_set_deck_control_mode(cec_deck_control_mode mode, int bSendUpdate) {
143 if (cec_parser)
144 return cec_parser->SetDeckControlMode(mode, bSendUpdate == 1) ? 1 : 0;
145 return -1;
146}
147
148int cec_set_deck_info(cec_deck_info info, int bSendUpdate) {
149 if (cec_parser)
150 return cec_parser->SetDeckInfo(info, bSendUpdate == 1) ? 1 : 0;
151 return -1;
152
153}
154
155int cec_set_inactive_view(void)
156{
157 if (cec_parser)
158 return cec_parser->SetInactiveView() ? 1 : 0;
159 return -1;
160}
161
162int cec_set_menu_state(cec_menu_state state, int bSendUpdate) {
163 if (cec_parser)
164 return cec_parser->SetMenuState(state, bSendUpdate == 1) ? 1 : 0;
165 return -1;
166}
167
168int cec_set_osd_string(cec_logical_address iLogicalAddress, cec_display_control duration, const char *strMessage)
169{
170 if (cec_parser)
171 return cec_parser->SetOSDString(iLogicalAddress, duration, strMessage) ? 1 : 0;
172 return -1;
173}
174
175int cec_switch_monitoring(int bEnable)
176{
177 if (cec_parser)
178 return cec_parser->SwitchMonitoring(bEnable == 1) ? 1 : 0;
179 return -1;
180}
181
182cec_version cec_get_device_cec_version(cec_logical_address iLogicalAddress)
183{
184 if (cec_parser)
185 return cec_parser->GetDeviceCecVersion(iLogicalAddress);
186 return CEC_VERSION_UNKNOWN;
187}
188
189int cec_get_device_menu_language(cec_logical_address iLogicalAddress, cec_menu_language *language)
190{
191 if (cec_parser)
192 return cec_parser->GetDeviceMenuLanguage(iLogicalAddress, language) ? 1 : 0;
193 return -1;
194}
195
196uint64_t cec_get_device_vendor_id(cec_logical_address iLogicalAddress)
197{
198 if (cec_parser)
199 return cec_parser->GetDeviceVendorId(iLogicalAddress);
200 return 0;
201}
202
203uint16_t cec_get_device_physical_address(cec_logical_address iLogicalAddress)
204{
205 if (cec_parser)
206 return cec_parser->GetDevicePhysicalAddress(iLogicalAddress);
207 return 0;
208}
209
210cec_logical_address cec_get_active_source(void)
211{
212 if (cec_parser)
213 return cec_parser->GetActiveSource();
214 return CECDEVICE_UNKNOWN;
215}
216
217int cec_is_active_source(cec_logical_address iAddress)
218{
219 if (cec_parser)
220 return cec_parser->IsActiveSource(iAddress);
221 return false;
222}
223
224cec_power_status cec_get_device_power_status(cec_logical_address iLogicalAddress)
225{
226 if (cec_parser)
227 return cec_parser->GetDevicePowerStatus(iLogicalAddress);
228 return CEC_POWER_STATUS_UNKNOWN;
229}
230
231int cec_poll_device(cec_logical_address iLogicalAddress)
232{
233 if (cec_parser)
234 return cec_parser->PollDevice(iLogicalAddress) ? 1 : 0;
235 return -1;
236}
237
238cec_logical_addresses cec_get_active_devices(void)
239{
240 cec_logical_addresses addresses;
241 addresses.Clear();
242 if (cec_parser)
243 addresses = cec_parser->GetActiveDevices();
244 return addresses;
245}
246
247int cec_is_active_device(cec_logical_address iAddress)
248{
249 if (cec_parser)
250 return cec_parser->IsActiveDevice(iAddress) ? 1 : 0;
251 return -1;
252}
253
254int cec_is_active_device_type(cec_device_type type)
255{
256 if (cec_parser)
257 return cec_parser->IsActiveDeviceType(type) ? 1 : 0;
258 return -1;
259}
260
261int cec_set_hdmi_port(cec_logical_address iBaseDevice, uint8_t iPort)
262{
263 if (cec_parser)
264 return cec_parser->SetHDMIPort(iBaseDevice, iPort) ? 1 : 0;
265 return -1;
266}
267
268int cec_volume_up(int bSendRelease)
269{
270 if (cec_parser)
271 return cec_parser->VolumeUp(bSendRelease == 1);
272 return -1;
273}
274
275int cec_volume_down(int bSendRelease)
276{
277 if (cec_parser)
278 return cec_parser->VolumeDown(bSendRelease == 1);
279 return -1;
280}
281
282int cec_mute_audio(int bSendRelease)
283{
284 if (cec_parser)
285 return cec_parser->MuteAudio(bSendRelease == 1);
286 return -1;
287}
288
289int cec_send_keypress(cec_logical_address iDestination, cec_user_control_code key, int bWait)
290{
291 if (cec_parser)
292 return cec_parser->SendKeypress(iDestination, key, bWait == 1) ? 1 : 0;
293 return -1;
294}
295
296int cec_send_key_release(cec_logical_address iDestination, int bWait)
297{
298 if (cec_parser)
299 return cec_parser->SendKeyRelease(iDestination, bWait == 1) ? 1 : 0;
300 return -1;
301}
302
303cec_osd_name cec_get_device_osd_name(cec_logical_address iAddress)
304{
305 cec_osd_name retVal;
306 retVal.device = iAddress;
307 retVal.name[0] = 0;
308
309 if (cec_parser)
310 retVal = cec_parser->GetDeviceOSDName(iAddress);
311
312 return retVal;
313}
314
315int cec_set_stream_path_logical(CEC::cec_logical_address iAddress)
316{
317 return cec_parser ? (cec_parser->SetStreamPath(iAddress) ? 1 : 0) : -1;
318}
319
320int cec_set_stream_path_physical(uint16_t iPhysicalAddress)
321{
322 return cec_parser ? (cec_parser->SetStreamPath(iPhysicalAddress) ? 1 : 0) : -1;
323}
324
325cec_logical_addresses cec_get_logical_addresses(void)
326{
327 cec_logical_addresses addr;
328 addr.Clear();
329 if (cec_parser)
330 addr = cec_parser->GetLogicalAddresses();
331 return addr;
332}
333
334int cec_get_current_configuration(libcec_configuration *configuration)
335{
336 return cec_parser ? (cec_parser->GetCurrentConfiguration(configuration) ? 1 : 0) : -1;
337}
338
339int cec_can_persist_configuration(void)
340{
341 return cec_parser ? (cec_parser->CanPersistConfiguration() ? 1 : 0) : -1;
342}
343
344int cec_persist_configuration(libcec_configuration *configuration)
345{
346 return cec_parser ? (cec_parser->PersistConfiguration(configuration) ? 1 : 0) : -1;
347}
348
349int cec_set_configuration(libcec_configuration *configuration)
350{
351 return cec_parser ? (cec_parser->SetConfiguration(configuration) ? 1 : 0) : -1;
352}
353
354void cec_rescan_devices(void)
355{
356 if (cec_parser)
357 cec_parser->RescanActiveDevices();
358}
359
360int cec_is_libcec_active_source(void)
361{
362 return cec_parser ? (cec_parser->IsLibCECActiveSource() ? 1 : 0) : -1;
363}
364
365int cec_get_device_information(const char *strPort, CEC::libcec_configuration *config, uint32_t iTimeoutMs)
366{
367 return cec_parser ? (cec_parser->GetDeviceInformation(strPort, config, iTimeoutMs) ? 1 : 0) : -1;
368}
369
370const char * cec_get_lib_info(void)
371{
372 return cec_parser ? cec_parser->GetLibInfo() : NULL;
373}
374
375void cec_init_video_standalone(void)
376{
377 if (cec_parser)
378 cec_parser->InitVideoStandalone();
379}
380
381//@}