cec: fixed setting the ackmask. deprecated SetAckMask()/cec_set_ack_mask(). use SetLo...
[deb_libcec.git] / include / CECExportsC.h
CommitLineData
abbca718
LOK
1#pragma once
2/*
3 * This file is part of the libCEC(R) library.
4 *
5 * libCEC(R) is Copyright (C) 2011 Pulse-Eight Limited. All rights reserved.
6 * libCEC(R) is an original work, containing original code.
7 *
8 * libCEC(R) is a trademark of Pulse-Eight Limited.
9 *
10 * This program is dual-licensed; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23 *
24 *
25 * Alternatively, you can license this library under a commercial license,
26 * please contact Pulse-Eight Licensing for more information.
27 *
28 * For more information contact:
29 * Pulse-Eight Licensing <license@pulse-eight.com>
30 * http://www.pulse-eight.com/
31 * http://www.pulse-eight.net/
32 */
33
34#ifndef CECEXPORTS_C_H_
35#define CECEXPORTS_C_H_
36
37#ifdef __cplusplus
38extern "C" {
39#endif
40
41/*!
df7339c6 42 * @brief Load the CEC adapter library.
abbca718 43 * @param strDeviceName How to present this device to other devices.
df7339c6
LOK
44 * @param iLogicalAddress The logical of this device. PLAYBACKDEVICE1 by default.
45 * @param iPhysicalAddress The physical address of this device. 0x1000 by default.
abbca718
LOK
46 * @return True when initialised, false otherwise.
47 */
df7339c6
LOK
48
49#ifdef __cplusplus
50extern DECLSPEC bool cec_init(const char *strDeviceName, CEC::cec_logical_address iLogicalAddress = CEC::CECDEVICE_PLAYBACKDEVICE1, int iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS);
51#else
52extern DECLSPEC bool cec_init(const char *strDeviceName, cec_logical_address iLogicalAddress = CECDEVICE_PLAYBACKDEVICE1, int iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS);
53#endif
abbca718
LOK
54
55/*!
df7339c6 56 * @brief Close the CEC adapter connection.
abbca718
LOK
57 * @return True when the device was closed, false otherwise.
58 */
59extern DECLSPEC bool cec_close(void);
60
61/*!
62 * @brief Open a connection to the CEC adapter.
63 * @param strPort The path to the port.
64 * @param iTimeout Connection timeout in ms.
65 * @return True when connected, false otherwise.
66 */
67extern DECLSPEC bool cec_open(const char *strPort, int iTimeout);
68
69/*!
70 * @brief Ping the CEC adapter.
71 * @return True when the ping was succesful, false otherwise.
72 */
73extern DECLSPEC bool cec_ping(void);
74
75/*!
76 * @brief Start the bootloader of the CEC adapter.
77 * @return True when the command was sent succesfully, false otherwise.
78 */
79extern DECLSPEC bool cec_start_bootloader(void);
80
81/*!
82 * @brief Power off connected CEC capable devices.
df7339c6 83 * @param address The logical address to power off.
abbca718
LOK
84 * @return True when the command was sent succesfully, false otherwise.
85 */
86#ifdef __cplusplus
87extern DECLSPEC bool cec_power_off_devices(CEC::cec_logical_address address = CEC::CECDEVICE_BROADCAST);
88#else
89extern DECLSPEC bool cec_power_off_devices(cec_logical_address address = CECDEVICE_BROADCAST);
90#endif
91
92/*!
93 * @brief Power on the connected CEC capable devices.
df7339c6 94 * @param address The logical address to power on.
abbca718
LOK
95 * @return True when the command was sent succesfully, false otherwise.
96 */
97#ifdef __cplusplus
98extern DECLSPEC bool cec_power_on_devices(CEC::cec_logical_address address = CEC::CECDEVICE_BROADCAST);
99#else
100extern DECLSPEC bool cec_power_on_devices(cec_logical_address address = CECDEVICE_BROADCAST);
101#endif
102
103/*!
104 * @brief Put connected CEC capable devices in standby mode.
df7339c6 105 * @brief address The logical address of the device to put in standby.
abbca718
LOK
106 * @return True when the command was sent succesfully, false otherwise.
107 */
108#ifdef __cplusplus
109extern DECLSPEC bool cec_standby_devices(CEC::cec_logical_address address = CEC::CECDEVICE_BROADCAST);
110#else
111extern DECLSPEC bool cec_standby_devices(cec_logical_address address = CECDEVICE_BROADCAST);
112#endif
113
114/*!
df7339c6 115 * @brief Broadcast a message that notifies connected CEC capable devices that this device is the active source.
abbca718
LOK
116 * @return True when the command was sent succesfully, false otherwise.
117 */
118extern DECLSPEC bool cec_set_active_view(void);
119
120/*!
df7339c6 121 * @brief Broadcast a message that notifies connected CEC capable devices that this device is no longer the active source.
abbca718
LOK
122 * @return True when the command was sent succesfully, false otherwise.
123 */
124extern DECLSPEC bool cec_set_inactive_view(void);
125
126/*!
127 * @brief Get the next log message in the queue, if there is one.
128 * @param message The next message.
129 * @return True if a message was passed, false otherwise.
130 */
131#ifdef __cplusplus
132extern DECLSPEC bool cec_get_next_log_message(CEC::cec_log_message *message);
133#else
134extern DECLSPEC bool cec_get_next_log_message(cec_log_message *message);
135#endif
136
137/*!
138 * @brief Get the next keypress in the queue, if there is one.
df7339c6 139 * @param key The next keypress.
abbca718
LOK
140 * @return True if a key was passed, false otherwise.
141 */
142#ifdef __cplusplus
143extern DECLSPEC bool cec_get_next_keypress(CEC::cec_keypress *key);
144#else
145extern DECLSPEC bool cec_get_next_keypress(cec_keypress *key);
146#endif
147
148/*!
df7339c6 149 * @brief Transmit a frame on the CEC line.
abbca718 150 * @param data The frame to send.
df7339c6
LOK
151 * @param bWaitForAck Wait for an ACK message for 1 second after this frame has been sent.
152 * @param iTimeout Timeout if the message could not be sent for this amount of ms. Does not influence the timeout of the wait for the ACK message. That timeout is specified by the CEC standard.
abbca718
LOK
153 * @return True when the data was sent and acked, false otherwise.
154 */
155#ifdef __cplusplus
156extern DECLSPEC bool cec_transmit(const CEC::cec_frame &data, bool bWaitForAck = true, int64_t iTimeout = (int64_t) 5000);
157#else
158extern DECLSPEC bool cec_transmit(const cec_frame &data, bool bWaitForAck = true, int64_t iTimeout = (int64_t) 5000);
159#endif
160
161/*!
6dfe9213
LOK
162 * @brief Set the logical address of the CEC adapter.
163 * @param iLogicalAddress The cec adapter's logical address.
164 * @return True when the logical address was set succesfully, false otherwise.
165 */
166#ifdef __cplusplus
167extern DECLSPEC bool cec_set_logical_address(CEC::cec_logical_address iLogicalAddress);
168#else
169extern DECLSPEC bool cec_set_logical_address(cec_logical_address myAddress, cec_logical_address targetAddress);
170#endif
171
172/*!
173 * @deprecated Use cec_set_logical_address() instead.
174 * @brief Set the ack mask of the CEC adapter.
175 * @param iMask The cec adapter's ack mask.
abbca718
LOK
176 * @return True when the ack mask was sent succesfully, false otherwise.
177 */
6dfe9213 178extern DECLSPEC bool cec_set_ack_mask(uint16_t iMask);
abbca718 179
df7339c6
LOK
180/*!
181 * @return Get the minimal version of libcec that this version of libcec can interface with.
182 */
abbca718 183extern DECLSPEC int cec_get_min_version(void);
df7339c6
LOK
184
185/*!
186 * @return Get the version of libcec.
187 */
abbca718
LOK
188extern DECLSPEC int cec_get_lib_version(void);
189
df7339c6
LOK
190/*!
191 * @brief Try to find all connected CEC adapters. Only implemented on Linux at the moment.
192 * @param deviceList The vector to store device descriptors in.
193 * @param strDevicePath Optional device path. Only adds device descriptors that match the given device path.
194 * @return The number of devices that were found, or -1 when an error occured.
195 */
abbca718
LOK
196#ifdef __cplusplus
197extern DECLSPEC int cec_find_devices(std::vector<CEC::cec_device> &deviceList, const char *strDevicePath = NULL);
198#else
199extern DECLSPEC int cec_find_devices(std::vector<cec_device> &deviceList, const char *strDevicePath = NULL);
200#endif
201
202#ifdef __cplusplus
203};
204#endif
205
206#endif /* CECEXPORTS_C_H_ */