cec: don't try to do anything before the processor thread has started
[deb_libcec.git] / ChangeLog
CommitLineData
2c7c8c4b 1libcec (1.3-1) unstable; urgency=low
dfb08039
LOK
2
3 * changed/added:
4 * make libudev optional. if libudev is not available on linux, adapter
5 autodetection will also not be available. fixes compilation on Hardy/ATV1
6 * added a C++ CLR wrapper for libCEC, so libCEC can be used by any .NET
7 language
8 * added vendor support for LG
9 * added vendor support for Philips
10 * added vendor support for Yamaha
11 * added vendor support for Onkyo
12 * added 'scan' command to cec-client, that displays info about devices on
13 the bus. made all ToString() methods available on the interface.
14 * added '-s' or '--single-command' to cec-client. starting cec-client with
15 this parameter executes a single command in cec-client and does not power
16 on devices on startup and power them off on exit. this way, you can use
17 cec-client in a shell script. since there's some handshaking involved at
18 startup, this is not very fast. to execute a command and only display the
19 result and any error/warning, execute it with
20 RESULT=`echo command | cec-client -s -d 3` (on linux/osx, win32 batch
21 files are a bit different)
19330705
LOK
22 * added HDMI port ('-p' or '--port') and base device ('-b' or '--base') to
23 cec-client's parameters
dfb08039
LOK
24 * handle image view on and text view on
25 * handle routing information and report physical address opcodes
26 * handle audio status updates
27 * send ping and bootloader commands via the output queue
28 * scan the CEC bus for devices when starting libcec
29 * pass all commands that are directed at libcec to listeners
30 * interface changes:
31 * added GetActiveSource()/cec_get_active_source()
32 * added IsActiveSource()/cec_is_active_source()
33 * added GetDevicePhysicalAddress()/cec_get_device_physical_address()
34 * added GetDeviceOSDName()/cec_get_osd_name()
35 * added SendKeypress()/cec_send_keypress() and SendKeyRelease()/
36 cec_send_key_release()
37 * added VolumeUp()/cec_volume_up(), VolumeDown()/cec_volume_down(),
38 MuteAudio()/cec_mute_audio()
39 * added GetActiveDevices()/cec_get_active_devices(), IsActiveDevice()/
40 cec_is_active_device(), IsActiveDeviceType()/cec_is_active_device_type().
41 * added SetHDMIPort()/cec_set_hdmi_port(). devices are now detected on load
42 and when a device with the same physical address is detected, libcec will
43 use the selected hdmi port on that device. should fix source selection on
44 other devices, like an amplifier
45 * added a hook in libcec for physical address autodetection
46 * fixed:
47 * don't request the physical address from the tv (it's always 0x0000)
48 * set the proper ackmask before doing anything else
49 * don't unlock the transmit mutex in CCECProcessor while waiting for an
50 answer
51 * fix device polling
52 * refactor CEC read/write. keep a single lock for all writes, not one per
53 device
54 * ignore other data while waiting for a response
55 * retry failed tranmissions
56 * don't delete a message before it's been sent when starting the bootloader
57 * or when sending a ping
58 * fixed possible segfault when switching the command handler after a vendor
59 * id changed
60 * handle audio opcodes correctly
61 * inactive source should be directly addressed at the TV
62 * don't report a changed physical address when it hasn't changed
63 * routing information sets the stream path, not the physical address
64 * don't scan the whole bus in CCECProcessor::IsActiveDeviceType()
65 * don't request the vendor id from devices that are handled by libcec
66 * mark device status as present when a command was received from a device
67 * always send a power on command in CCECBusDevice::PowerOn()
68 * don't request updates statusses unless needed
69 * report physical address sends 3 parameters, not 2. check whether the
70 device type is correct
71 * devices can send vendor commands from other vendors, so don't assume the
72 device is of a certain vendor when it sends commands with a vendor id
73 * thread safety fixes. bugzid: 19
74 * clear any previous input when opening a connection to the adapter.
75 bugzid: 54
76 * use the correct source address in CSLCommandHandler::HandleVendorCommand()
77 * uncorrected CEC_OPCODE_DEVICE_VENDOR_ID. closes #5
78 * renamed enum methods. fixes potential macro collision with isset().
79 thanks davilla
19330705
LOK
80 * don't change the active device when receiving stream path changed
81 messages. fixes wrong source selection when powering after the TV.
dfb08039 82
19330705 83 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 09 Dec 2011 12:16:00 +0100
dfb08039 84
94d98b71
LOK
85libcec (1.2-1) unstable; urgency=low
86
87 * bugfixes:
88 * pass the deck_control command to libcec listeners
89 * check whether the initiator is valid in CCECProcessor::ParseCommand().
90 fixes possible segfault when parsing invalid data
91
92 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sat, 12 Nov 2011 13:36:00 +0100
93
c3da3073
LOK
94libcec (1.1-3) unstable; urgency=low
95
96 * fixed return value in CCECProcessor::SetStreamPath(), which prevented
97 active source and menu state from being sent
98
99 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 23:36:00 +0100
100
f0197d4f
LOK
101libcec (1.1-2) unstable; urgency=low
102
103 * forgot to update the headers to v1.1
104
105 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 18:56:00 +0100
106
4f8dcef2
LOK
107libcec (1.1-1) unstable; urgency=low
108
109 * interface changes:
110 * added logical address autodetection and let libcec handle multiple types
111 simultaniously. for logical address autodetection, you have to use
112 CECInit()/cec_init_typed() instead of CECCreate()/cec_init()
113 * added SetActiveSource()/cec_set_active_source() to the interface.
114 deprecated SetActiveView()/cec_set_active_view()
115 * added SetMenuState()
116 * added PollDevice()/cec_poll_device()
117 * removed duplicate method SetActiveSource() / SetActiveView()
118 * added SetDeckControlMode() and SetDeckInfo()
119 * fixed:
120 * added vendor detection for panasonic and broadcast active view and set
121 menu state when a panasonic device sets the stream path. thanks for the
122 pointer cptcoconut.
123 * added vendor code for pioneer
124 * osd string is 13 chars max. don't send more
125 * send the correct cec version for each device
126 * switch to panasonic specific cec implementation if a panasonic device was
127 detected
128 * send the correct device type in TransmitPhysicalAddress()
129 * send a reply from the correct device when the stream path is requested
130 * opcode 0x80 means the stream path changed, not the physical address
131 * don't poll for a vendor ID in monitoring mode
132 * fixed parameter parsing in SetVendorId()
133 * buffer up commands that are received while waiting for an ack. only send
134 'active source' message for the actual active source
135 * win32: prepend the com port path with '\\.\', so com ports > 9 can be
136 accessed. thanks smolesen
137 * audio systems cannot be an active source, so don't transmit active
138 source message from this device
139 * only send 'active source' when powered on
140 * only set the osd name for the primary device. use default values for
141 others
142 * increase physical address with 0x100 per device
143 * win32: removed unneeded afxres.h include in the resource files, which
144 is not present when using studio express. thanks Ghuron
145 * fixed C headers
146 * mark the active source as active and other devices as inactive
147 * set the power status to 'on' when receiving CEC_USER_CONTROL_CODE_POWER
c6b7b98b 148 * transmit the menu state as (active) when the stream path is set
4f8dcef2
LOK
149 * changed:
150 * changed copyright of boblight files with permission of the original
151 author
152 * partial handling of audio related opcodes
153 * more consistent log messages
154 * set a device type and name for each CCECBusDevice
155 * keep a power and menu state per device
156 * renamed all Broadcast...() and Report...() methods to Transmit...()
157 * renamed SetOSDString() to TransmitOSDString()
158 * changed debug level of 'did not receive ack' from error to debug
159 * only set the power status to 'on' for the primary device
160 * moved method decriptions from cecc.h to cec.h
161 * only send a power on command when a device isn't on already and set
162 the power state to CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON while
163 powering on
164 * handle CEC_OPCODE_STANDBY
165 * handle CEC_OPCODE_ACTIVE_SOURCE
166 * always start in standby mode and let the tv (or other device) send the
167 power on command
168 * renamed the last few enums
169 * handle deck related opcodes.
170 * added TransmitVendorId(), but only transmit the id if it's not set to 'unknown'
171
172 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 17:42:00 +0100
173
35d9c32a
LOK
174libcec (1.0-1) unstable; urgency=low
175
176 * interface changes:
177 * set lib interface version back to 1.0 and rename GetLibVersion() to
178 GetLibVersionMajor() and GetMinVersion() to GetMinLibVersion()
179 * added GetLibVersionMinor()/cec_get_lib_version_minor() and set the minor
180 version number to 1
181 * fixed:
182 * samsung's vendor specific remote keypresses don't send key releases. added
183 call to AddKey() directly after the keypress
184 * always reset the button press time in CLibCEC::AddKey()
185 * always wait for a signal in CCECProcessor::Transmit()
186 * changed:
187 * drop shared_ptr and use a normal pointer. removed boost dependency
188
189 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 04 Nov 2011 00:14:00 +0100
190
b3efc8f2
LOK
191libcec (0.8-2) unstable; urgency=low
192
193 * added 'libboost-dev' to build deps
194
195 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 01 Nov 2011 23:31:00 +0100
196
971d0e9e
LOK
197libcec (0.8-1) unstable; urgency=low
198
199 * interface changes:
200 * added GetDevicePowerStatus()/cec_get_device_power_status()
201 * added GetDeviceVendorId()/cec_get_device_vendor_id()
202 * added GetDeviceMenuLanguage()/cec_get_device_menu_language()
203 * added GetDeviceCecVersion()/cec_get_device_cec_version()
204 * added SwitchMonitoring()/cec_switch_monitoring() to the interface. when
b3efc8f2
LOK
205 monitoring is enabled, the device will only log the data it received,
206 but will not respond to any message
971d0e9e 207 * removed timeout parameter in Transmit() and included the ack timeout in
b3efc8f2 208 the cec_command struct
971d0e9e
LOK
209 * made the vendor id -> vendor name translation available
210 * made CEC_LOG levels powers of 2
211 * introduced CEC_LOG_TRAFFIC log level
212 * fixed:
213 * set the correct ackmask on startup
214 * wait for ack while keeping a lock
215 * wait for the processor thread to start before continueing on startup
216 * wait for messages to be transmitted before continueing in
b3efc8f2 217 CCECProcessor::Transmit()
971d0e9e
LOK
218 * only set the logical address once when it has changed
219 * correct source for broadcast messages
220 * win32: create Release type installer
221 * changed:
222 * make all reads and write in CAdapterCommunication go through buffers.
223 * poll for a vendor ID of connected devices and switch to a non-standard
b3efc8f2 224 CEC implementation if needed.
971d0e9e
LOK
225 * added vendor detection of Samsung and LG devices
226 * handle samsung remote command 'return'
227 * cec-client:
228 * added -la and --logical-address to the command line params
229 * added -d and --log-level params to cec-client
230 * added -sf and --short-log-file, which only log the actual messages, not
b3efc8f2 231 the level and timestamp
971d0e9e
LOK
232 * added -f and --log-file parameters to cec-client
233 * added option to change the log level to cec-client
234
b3efc8f2 235 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 01 Nov 2011 22:58:00 +0100
971d0e9e 236
8f084f00
LOK
237libcec (0.7-1) unstable; urgency=low
238
239 * send a keypress with 0 duration when a key is pressed and with a duration
240 set when it's released
241 * added SetOSDString() to the interface (not supported by all tvs)
242 * fixed: 'routing change' is a broadcast message. log routing changes, but
243 don't send a 'set active view' message, so the active input won't be
244 changed
245 * log keypresses in the debug log
246 * added 'pa' command to cec-client, to change the physical address
247 * added SetPhysicalAddress()/cec_set_physical_address() to the interface, so
248 the HDMI port number to use can be changed
249 * fixed: put the message processing code from WaitForAck() in ParseMessage().
250 fixes missing incoming message logging of non-data messages when not
251 waiting for an ACK
252 * added 'txn' command to cec-client. same as 'tx', but doesn't wait for ACK
253 before returning
254 * fixed: set initiator and destination first in cec_command::push_back().
255 fixes 'tx' command in cec-client
256 * fixed: keep trying to connect while iTimeout isn't reached (default 10
257 seconds). fixes exit with a 'permission denied' error when the device isn't
258 ready yet. remove CEC_SETTLE_DOWN_TIME
259 * fixed: don't call SetActiveView() when reporting the power status. fixes
260 loop which causes some TVs to report failed connections
261 * fixed: eom was not being parsed when receiving MSGCODE_FRAME_DATA. fixed.
262 * fixed: add the device type as parameter when sending the physical address.
263 thanks bobo1on1
264 * fixed: typo in libcec.pc.in
265 * added optional strLib parameter to LoadLibCec(), so the location of the
266 shared library can be specified
267 * only link cec-client against ld. use AC_SEARCH_LIBS instead of AC_CHECK_LIB
268 * use int instead of bool on the public C interface and remove stdbool.h include
269 * renamed: CECExports.h => cec.h, CECExportsC.h => cecc.h, CECLoader.h =>
270 cecloader.h, CECTypes.h => cectypes.h
271 * updated debian package. split up libcec and libcec-dev
272 * fixed: changed to use dlopen instead of static linkage. shuffled headers a
273 bit. bumped interface to version 7
274 * removed 'rt' from libraries. it's not needed (anymore)
275 * fixed: reset the active view after a routing change. issue #1
276 * fixed: changed attached license to be GPLv2 instead of GPLv3 this was an
277 error as libCEC is licensed GPLv2 not GPLv3 thanks @garbear
278 * added contributors link
279
280 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 14 Oct 2011 17:34:00 +0200
281
11d0a2d6
LOK
282libcec (0.6-1) unstable; urgency=low
283
284 * bumped interface version to 6
285 * fixed packet output (reporting the OSD name correctly now)
286 * refactored packet structs: split up in cec commands and adapter messages
287 * fixed i/o timings
288 * added Darwin support (thanks Davilla!)
289 * fixed WaitForAck()
290 * fixed possible deadlock when starting a new thread
291 * implemented vendor id and device class parsing. full detection will follow
292 * added "on" and "standby" commands to the test client
293 * retransmit packets if needed
294 * fix GetTimeMs() on linux
295 * added timestamp to log messages
296
297 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sun, 09 Oct 2011 15:15:00 +0200
298
9519c249 299libcec (0.5-1) unstable; urgency=low
25701fa6
LOK
300
301 * bumped interface version to 5
302 * don't pass std::string and std::vector accross the interface
303 * fixed heap corruption crashes on windows
304 * fixed some memory leaks
305 * reset all structs to default values before doing with them
306
11d0a2d6 307 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 07 Oct 2011 22:00:00 +0200
25701fa6 308
262f3b05
LOK
309libcec (0.4-3) unstable; urgency=low
310
311 * fixed reconnect
312 * fixed some threading related bugs
313 * fixed deadlock on exit
314 * fixed wrongly reported physical address
315
316 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 06 Oct 2011 00:19:00 +0200
317
4463fb80
LOK
318libcec (0.4-2) unstable; urgency=low
319
320 * fixed int parameter sizes and some signed/unsigned warnings
321 * check whether m_port isn't NULL in ReadFromDevice
322 * stop the processor thread and delete the CSerialPort instance on exit
323 * added mutex in CSerialPort
324 * fix segfault on exit
325 * renamed libPlatform -> platform.
326 * stuck everything from libCEC in the CEC namespace to avoid namespace
327 polution
328
329 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 04 Oct 2011 23:45:00 +0200
330
88c5a743
LOK
331libcec (0.4-1) unstable; urgency=low
332
333 * bumped interface version to 4
334 * timeout parameter removed from Close()/cec_close(). return type changed to
335 void
336 * added cec_destroy() method
337 * removed timeout parameter from Transmit()
338 * change the default argument of PowerOnDevices() to CECDEVICE_TV
339 * removed PowerOffDevices(). use StandbyDevices() instead
340 * removed obsolete methods from the interface
341 * fixed bug: pthread_cond_wait was called without the mutex locked
342 * fixed possible deadlock: don't send messages and wait for an ack with the
343 mutex locked in CCECParser
344 * created a separate reader thread and fixed the 'lock timeout' bug
345 * testclient: use CECDEVICE_TV instead of the default argument
346 (CECDEVICE_BROADCAST) for PowerOnDevices() and PowerOffDevices()
347
348 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 04 Oct 2011 00:48:00 +0200
349
a9bb5b56
LOK
350libcec (0.3-1) unstable; urgency=low
351
352 * added device detection support for Windows
353
354 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sun, 02 Oct 2011 12:09:33 +0200
355
356libcec (0.2-1) unstable; urgency=low
357
358 * added a Close() method to the interface
359 * Added CEC command that were received by the adapter in a buffer that can be
360 read by a client with GetNextCommand()/cec_get_next_command(). added a
361 'help' command to the test client, that displays all available commands
362 * Fixed setting the ackmask. deprecated SetAckMask()/cec_set_ack_mask(). use
363 SetLogicalAddress()/cec_set_logical_address() instead. add 'la' command to
364 the testclient to set the logical address of the cec adapter
365 * Added optional logical and physical address parameters to
366 LoadLibCec()/cec_init() on the interface. fixed wrongly placed namespace
367 close tag in CECExports.h. updated interface documentation. bumped
368 interface version to 2.
369 * fixed hardcoded ackmask in SetAckMast(). set a shorter display name in the
370 test client. the previous one was too long and being rejected
371
372 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 28 Sep 2011 01:33:00 +0200
373
abbca718
LOK
374libcec (0.1-1) unstable; urgency=low
375
376 * Initial release v0.1
377
a9bb5b56 378 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 28 Sep 2011 23:55:48 +0200