Merge branch 'development'
[deb_libcec.git] / ChangeLog
1 libcec (1.6.1-5) unstable; urgency=low
2
3 * synced /debian directory with the one in precise (with a couple of changes)
4 * changed/added:
5 * serial port locking on linux
6 * cec-client: added -m/--monitor startup options, which will start a
7 monitor-only client. use 'mon 0' to switch to a normal client
8 * display an alert message when the firmware of the adapter can be upgraded
9 * added CEC 1.4 opcodes
10 * send a feature abort again for all unhandled commands
11 * refactored CLibCEC so a client registers itself within CCECProcessor,
12 which then allocates one or more logical addresses for it.
13
14 * interface changes:
15 * added a new setting, bMonitorOnly, which will start a monitor-only client
16
17 * fixed:
18 * ensure that we don't crash out when trying to stop a thread that hasn't
19 been started yet
20 * don't send a 'disconnected' alert when the close method is called
21 * use the correct source when transmitting an abort message as a reposonse
22 to a vendor command with id
23 * removed statics
24 * check the client version, not the server version in
25 libcec_configuration::operator==()
26 * cec-config: fix physical address detection
27 * LibCecSharp: fixed buffer overrun when copying libcec_configuration.
28 fixes crash when trying to save the configuration in the config gui.
29
30 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 14 May 2012 22:39:00 +0100
31
32 libcec (1.6.1-2) unstable; urgency=low
33
34 * Build depends on pkg-config. (Closes: #669919)
35 * libudev-dev only optionally needed for Linux.
36
37 -- Andres Mejia <amejia@debian.org> Sat, 21 Apr 2012 19:03:19 -0400
38
39 libcec (1.6.1-1) unstable; urgency=low
40
41 [ Mario Limonciello ]
42 * New upstream version (LP: #982272)
43
44 [ Andres Mejia ]
45 * New release fixes build failure with GCC-4.7. (Closes: #667241)
46 * Bump to Standards-Version 3.9.3.
47
48 -- Andres Mejia <amejia@debian.org> Sat, 21 Apr 2012 00:02:08 -0400
49
50 libcec (1.3.2-3) unstable; urgency=low
51
52 * Make dpkg-source options default for packaging.
53
54 -- Andres Mejia <amejia@debian.org> Tue, 10 Jan 2012 18:12:57 -0500
55
56 libcec (1.3.2-2) unstable; urgency=low
57
58 * Add options to pass to dpkg-source.
59
60 -- Andres Mejia <amejia@debian.org> Sun, 08 Jan 2012 22:59:34 -0500
61
62 libcec (1.3.2-1) unstable; urgency=low
63
64 * Initial release. (Closes: #655143)
65
66 -- Andres Mejia <amejia@debian.org> Sun, 08 Jan 2012 15:36:49 -0500
67
68 libcec (1.6-3) unstable; urgency=low
69
70 * changed/added:
71 * cec-client: show the firmware build date if available in cec-client -l
72 * cec-client: don't activate the source when starting
73 * cec-client: group up the output of the 'scan' command, and add the
74 currently active source to the output
75 * log the libCEC version in the 'connected to the CEC adapter' log entry,
76 and add the firmware build date to the line if it's available, so all
77 relevant version info is available in 1 log line.
78 * async writes for CUSBCECAdapterCommunication. less locks and polls, more
79 speed
80 * added 'make docs' target, that updates the doxygen documentation
81
82 * interface changes:
83 * added operator == and != for libcec_configuration
84 * added GetResponseOpcode(cec_opcode opcode) to cec_command
85 * added the firmware build date to libcec_configuration, so it can be
86 displayed by the client too.
87 * added static CLibCEC::Alert() method and CEC_ALERT_CONNECTION_LOST value
88 * added a callback to handle menu state changes. if the callback method
89 returns 1, then the change is processed by the CCECBusDevice too. if 0,
90 then the CCECBusDevice will always have menu state 'activated', so
91 keypresses are routed. bugzid: 724
92 * added a default menu language to libcec_configuration and set this
93 language for devices controlled by libcec. bugzid: 69
94
95 * fixed
96 * CCECProcessor::IsActiveSource() - TV was never checked
97 * don't call the deprecated SetActiveView() method in cec-client
98 * request the active source if unknown in CCECProcessor::GetActiveSource()
99 * don't try to match a device with PA 0xFFFF.
100 * don't change the power status of a device when changing the stream path
101 * don't set the power status to 'powered off' when marking the source
102 managed by libcec as inactive, or the tv will might send a power control
103 keycode when making it active again, potentially shutting down the system
104 * potential segfault in CCECProcessor::GetDeviceByPhysicalAddress()
105 * stream path changes when changed to the TV source (PA 0)
106 * clear the unsupported features list in CCECBusDevice::ResetDeviceStatus()
107 * never mark vendor commands as unsupported (only some may be unsupported),
108 as well as some others that should never be marked unsupported
109 * don't retry in CCECCommandHandler if the command has been marked as
110 unsupported
111 * don't request the PA of devices when handling an incoming CEC command, or
112 it'll block things while waiting for a response. if that response never
113 comes, or comes late, then other incoming commands will be timed out
114 before they are handled
115 * optimisation - strip unneeded virtual keywords from top level
116 implementations
117 * use the vlcommandhandler for the primary device that is handled by libCEC
118 when a panasonic tv is detected, so delayed activate source commands are
119 using the correct handler. bugzid: 723
120 * set the power status of device controlled by libCEC to
121 CEC_POWER_STATUS_ON
122 instead of IN_TRANSITION_STANDBY_TO_ON. reset the device status of a
123 device if it was detected as removed. bugzid: 755
124 * potentially uninitialised values in cec_command
125 * delay the 'active source' command for panasonic, until the vendor command
126 that reports that the TV is powered on has been received. bugzid: 723
127 * only respond to Give Physical Address with Report Physical Address.
128 bugzid: 592
129 This fixes several reports of the TV improperly switching to the libcec
130 device after it has previously switched to another source. Fix confirmed
131 with Panasonic and also reported to be an issue with Samsung and
132 Philips.
133 * check whether callback methods are set to a valid ptr
134 * number of retries for polls
135 * win32: fix build in paths with spaces. bugzid: 730
136 * LibCecSharp: free the alert GC callback when cleaning up
137 * the wrong setting was being read when powering on devices
138 * close the connection when a comm error was detected, and notify the
139 client via an alert
140 * don't segfault when calling ThreadsWait() without a valid thread
141 * lib/platform: fixed memleak
142 * leak in CCECAdapterMessageQueue::Write
143 * don't send commands if we know them to be unsupported. bugzid: 725
144
145 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 18 Apr 2012 11:30:00 +0100
146
147 libcec (1.6-2) unstable; urgency=low
148
149 * fixed:
150 * fixed typo in CUSBCECAdapterCommands::RequestSettings() that prevented
151 the settings from being read. the settings were still written, but never
152 read when bGetSettingsFromROM = 1.
153
154 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 18 Apr 2012 11:30:00 +0100
155
156 libcec (1.6-1) unstable; urgency=medium
157
158 * changed/added:
159 * full firmware V2 support
160 * -o/--osdname argument for cec-client to set a custom osd name
161 * added the firmware version to cec-client's -l / --list-devices command.
162 bugzid: 631
163 * added power on command for Samsung AVR devices. bugzid: 361
164 * added buttoncode for 'channels list' on Samsung (0x96)
165 * don't check for the windows ddk when a prebuilt driver installer is
166 present
167 * respond to Get Menu Language. bugzid: 547. In the event that the menu
168 language is undefined in libcec (currently the default), the response
169 will be a feature abort.
170
171 * interface changes:
172 * added the firmware version to libcec_configuration (read-only). bumped
173 server version to 1.6.0. fixed 'unknown server version' message on
174 startup. bugzid: 631
175 * added a new setting to control whether to put the TV in standby when the
176 player is put in standby. added some missing bits (version numbers,
177 config) to LibCecSharp. bugzid: 558
178 * added an alert callback. bugzid: 462
179 * added bShutdownOnStandby to libcec_configuration. bugzid: 660. This
180 setting tells the client to shutdown when the TV switches off and is
181 complimentary to bPowerOffOnStandby, which tells the PC to suspend.
182 They are kept separate to maintain backwards compatability.
183
184 * fixed
185 * gcc 4.7 compilation
186 * poll doesn't have an opcode. bugzid: 591
187 * wait for MSGEND when data was received when opening the connection.
188 bugzid: 536
189 * mark the correct device as active source after a stream path change.
190 if the new address is not found, but the old address is, then mark the
191 old address as inactive. fixes TV switching back to the old active source
192 when it scans for devices. bugzid: 592
193 * ensure that the vendor ID is sent before trying to activate any SL device
194 bugzid: 574
195 * fixed possible crash when in CLibCEC::IsLibCECActiveSource() when libCEC
196 doesn't know which device is the active source. bugzid: 479
197 * correct handling CEC_USER_CONTROL_CODE_POWER. This ensures that the power
198 code always operates as a toggle, depending on the current state, and
199 that SetCurrentButton is always called for a valid user control code.
200 bugzid: 570
201 * frequency wasn't checked in GetTimeMs(), leading to incorrect wait times
202 on some windows systems
203 * refactored USB adapter communication. less locks, shorter locks, added
204 documentation, lots of clean ups and no more incoming messages that are
205 skipped
206 * the destructor of CSerialSocket didn't call Close()
207 * added guards in CSerialPort
208 * reset m_socket to INVALID_SERIAL_SOCKET_VALUE after closing the
209 connection
210 * always wait for thread exit in CThread's desctructor
211 * crash on exit after GetDeviceInformation()
212 * check whether the destination is valid before setting anything in
213 m_bWaitingForAck. fixes heap corruption and crash on exit. bugzid: 479
214 * bUseTVMenuLanguage from libcec_configuration wasn't copied in
215 SetConfiguration(), so this setting was reset to the default value
216 (enabled) every time. bugzid: 617
217 * request the vendor id of a device if needed when the device status is
218 changed into 'present'. bugzid: 361
219 * give priority to messages from the TV. removed the global lock in
220 CCECProcessor when sending. this is no longer needed. bugzid: 238
221 * add some bounds checking to the HDMI port number. bugzid: 508
222 * fixed usbser.sys copying in the driver .INF. bugzid: 503
223 * only update the physical address when it has actually changed. bugzid:
224 672
225 * moved the static variables in os-threads from the header to a separate
226 cpp file, or it could lead to problems when included multiple times
227 * don't send an active source command when the physical address couldn't be
228 set, or it might confuse other CEC devices
229 * serial socket timeouts. bugzid: 654
230 * fixed possible crash when trying to request a vendor id of a device when
231 the address of libCEC isn't known yet. bugzid: 654
232 * extra guard so no commands are transmitted without a valid initiator.
233 bugzid: 654
234 * moved the timed ping to a separate thread. bugzid: 654
235 * persist settings directly when they're changed, only persist settings
236 that actually changed, only instruct the device to persist the settings
237 in eeprom when something changed, and don't persist settings on exit.
238 bugzid: 715
239 * cec-config-gui: persist settings both in the eeprom and in the settings
240 xml file
241 * validate the input in CCECProcessor::IsActiveSource(). fixes potential
242 crash when the active source isn't known. bugzid: 671
243
244 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 16 Apr 2012 18:03:00 +0100
245
246 libcec (1.5-4) unstable; urgency=low
247
248 * changed/added:
249 * OS-X installation requirements and pointer
250 * full v2 firmware support:
251 * ping the adapter every 15 seconds. bugzid: 541
252 * added v2 msgcodes. bugzid: 543
253 * implemented the write methods for the v2 configuration. bugzid: 543
254 * included the logical addresses in the persisted configuration for v2.
255 bugzid: 543
256 * persist the configuration before closing the connection. only try to
257 persist the configuration when talking to a v2 firmware. bugzid: 543
258 * added GetSetting() to CUSBCECAdapterCommunication. bugzid: 543
259 * read the persisted settings from the ROM, and update it in
260 libcec_configuration if found. bugzid: 543
261 * cec-client: set bGetSettingsFromROM to 1 in cec-client. bugzid: 543
262 * cec-client: only read persisted EEPROM settings when -r or --rom is
263 provided as cmdline arg. bugzid: 543
264 * call SetControlledMode(false) as last command when closing the
265 connection in v2. bugzid: 542
266 * initial FreeBSD support: simply try to use ttyU*
267
268 * fixed:
269 * set controlled mode and retry to send the previous command if it failed
270 with MSGCODE_COMMAND_REJECTED
271 * m_iLineTimeout was never initialised and used. fixes MSGCODE_REJECTED
272 when transmitting a message and incorrect line timeouts being used
273 * mac configure compile bugzid: 157
274 * cec-config-gui: fixed application exit when the user clicked 'no' when
275 asked to reconnect. bugzid: 556
276 * only wait for multiple 'command accepted' response when sending a
277 transmit command, and only to 1 in other cases. bugzid: 543
278 * set the correct logical address mask before switching to autonomous mode.
279 bugzid: 543
280 * re-added SetLineTimeout(). bugzid: 543
281 * CUSBCECAdapterCommunication::SetControlledMode checked for the wrong sent
282 state
283 * os-x: don't add 0.5 before dividing in GetTimeMs()
284 * os-x: struct timespec now values weren't set correctly
285
286 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 16 Mar 2012 10:12:00 +0100
287
288 libcec (1.5-3) unstable; urgency=low
289
290 * fixed:
291 * OS-X compilation
292 * default to firmware version 1 after 3 tries. some versions didn't send a
293 version.
294 * fixed cec-config win32 compilation
295
296 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sat, 03 Mar 2012 15:21:00 +0100
297
298 libcec (1.5-2) unstable; urgency=low
299
300 * changed/added:
301 * added Toshiba's vendor id, and set the device ID of the primary device to
302 Toshiba's and transmit it when starting
303 * lock in SyncedBuffer
304 * added a timeout to StopThread()
305 * also add commands to unsupported features when receiving
306 CEC_ABORT_REASON_REFUSED
307 * cec-config-gui: set cbPortNumber enabled when the physical address
308 override isn't checked instead
309 * cec-config-gui: added support for the new 'send inactive source' setting
310
311 * interface changes:
312 * added an 'send inactive source' option to libcec_configuration, only
313 supported by client/server 1.5.1 and up. bugzid: 439
314 * added a command to the interface to start the bootloader directly,
315 without going through all checks. bugzid: 218
316 * LibCecSharp: implemented support for the new 'send inactive source'
317 setting
318
319 * fixed:
320 * don't send an updated configuration when libCEC hasn't been initialised
321 fully. bugzid: 459
322 * don't send an updated configuration back when initialising. let the
323 client call the GetCurrentConfiguration() method. bugzid: 459
324 * configuration updates from libCEC. bugzid: 459
325 * fixed accidental double deref. the method parameter already does that.
326 github #24
327 * use CLOCK_MONOTONIC for timing info, since gettimeofday is affected by
328 ntp and by manually adjusting the system time
329 * the timeout value of pthread_cond_timedwait has to be referenced to
330 CLOCK_REALTIME
331 * don't add data to the input buffer in CUSBCECAdapterCommunication before
332 it's fully initialised
333 * fixed return value of CUSBCECAdapterCommunication::ParseMessage(). fixes
334 messages not being parsed in certain occasions
335 * don't try to transmit when the processor is being stopped
336 * set the server version in the LibCEC's constructor, since this is
337 checked by clients. fixes 'invalid libCEC version' popup when inserting
338 the adapter
339 * don't wait for the full timeout to pass in CCECProcessor::
340 OpenConnection(), but retry to connect 2 times. fixes 'port busy' errors
341 when initialising libCEC. bugzid: 436
342 * use the correct Sleep() method in CCECProcessor::OpenConnection(). the
343 thread hasn't been started there yet, so the sleep wasn't working. fixes
344 'device or resource busy' when plugging in the adapter. bugzid: 436
345 * check the adapter ping and firmware before starting the reader thread, so
346 we really leave the com port alone for a second when it fails because of
347 a busy error. bugzid: 436
348 * ensure that the connection is really closed before retrying to connect.
349 bugzid: 436
350 * LibCecSharp: recreate the delegates properly when (re)connecting to
351 LibCecSharp
352
353 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 28 Feb 2012 21:19:00 +0100
354
355 libcec (1.5-1) unstable; urgency=low
356
357 * changed/added:
358 * a new libcec_configuration structs, which allows the client app to pass
359 a number of new options, like waking multiple devices on startup,
360 overriding the vendor id, etc.
361 * a new configuration GUI for Windows (.NET). this allows you to set
362 libCEC's configuration for XBMC in a convenient GUI.
363 * a CLI configuration tool (unfinished) for other platforms. will be
364 finished in an update.
365 * implemented power up for LG devices other than a TV
366 * win32: don't install libcec to the system directory by default, and
367 delete previous (testing) copies if present
368 * wait for multiple responses, not just for one at a time
369 * set the ackmask to 0 when closing the connection
370 * don't send 'image view on' when calling SetActiveSource()
371 * don't send power on, acitve source and standby commands by default in
372 cec-client
373 * platform: added CTryLockObject
374 * platform: added an Init() method in CTimeout, so it can be reset
375
376 * interface changes:
377 * added a new initialiser method: CecInitialise()/cec_initialise(), that
378 accepts a "libc_configuration" struct as parameter. this way, the
379 signature of the init method can stay the same when adding new options.
380 in LibCecSharp, the new method appears as a new constructor.
381 * added CanPersistConfiguration()/cec_can_persist_configuration()
382 * added PersistConfiguration()/cec_persist_configuration()
383 * added GetCurrentConfiguration()/cec_get_current_configuration()
384 * added SetConfiguration()/cec_set_configuration()
385 * added GetLogicalAddresses()/cec_get_logical_addresses(): returns the list
386 of addresses controlled by libCEC
387 * added RescanDevices()/cec_rescan_devices(): lets libCEC force polls to
388 all logical addresses.
389 * added a callback that is called when libCEC's configuration changed.
390 * moved the autodetect address api call to libcec_configuration. only send
391 power up commands to non-tv devices when the power state is not
392 on/transition->on. let players call the power up/power down command.
393 * return the anynet return keycode directly instead of translating it to
394 'return' for v1.5.0+ clients
395 * extracted CecSharpTypes.h in LibCecSharp. LibCecSharp is now in the
396 CecSharp namespace
397 * include the local cectypes.h in cec.h and cecc.h instead of system wide
398 * deprecated GetLibVersion() methods. use libcec_configuration instead
399 * removed deprecated CECCreate() method
400
401 * fixed:
402 * fixed a lot of LG specific issues
403 * fixed OS-X compilation. credits: Dustin Cooper
404 * fixed a couple of possible deadlocks, e.g. when closing the connection
405 while receiving data
406 * cleaned up existing code
407 * libCEC no longer puts incoming data in a fifo buffer, but tries to
408 process it directly, which fixes issues like libCEC blocking processing
409 new commands while waiting for transmission acks.
410 * 'unsupported command' marking in CCECBusDevice
411 * ensure that the ackmask is always set to 0 when closing the connection
412 and that the call doesn't block the Close() call
413 * don't try to read or write in CUSBCECAdapterCommunication when the
414 connection has been closed
415 * LibCecSharp: added quotes to the linker statement for libcec.lib. fixes
416 compilation in paths with spaces. closes #20
417 * LibCecSharp: set the callback methods in libcec to NULL before closing
418 the connection, since these might already have been destroyed in .NET
419 * LibCecSharp: delete the internal callback struct when closing the
420 connection
421 * LibCecSharp: pass correctly formatted logical address lists
422 * ensure that the vendor id is requested first when requesting info from a
423 device, so we are using the correct handler
424 * keep the 'busy state' of the command handler in CCECBusDevice
425 * poll the next device when the current is handled by libCEC.
426 * check the vendor id of a device before sending a power on command
427 * ensure that there always is at least one device type set
428 * transmit a keypress and key release as power on command when the target
429 device isn't the TV
430 * don't do a full reinit when not needed
431 * fix active source switches for the standard CEC implementation
432 * ensure that we don't send data to ourself
433 * check whether the port is open, not whether libCEC is initialised in
434 Transmit()
435 * platform: fixed return value from CCondition::Wait()
436 * platform: don't broadcast but wake one thread in
437 CProtectedSocket::MarkReady()
438 * platform: include stdint.h in windows/os-types.h instead of typedef'ing
439 ints
440 * platform: fixed tcp socket error handling and return value.
441 * platform: fixed return values of socket operations in lib/platform
442 * platform: added predicate in CCondition
443 * deleted the signed driver from the tree, since that doesn't work. let the
444 installer create a new signed driver on the production build system
445
446 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 19 Feb 2012 01:04:00 +0100
447
448 libcec (1.4-4) unstable; urgency=low
449
450 * changed/added:
451 * added tcp client sockets to lib/platform (WIP)
452 * clean up lib/platform
453 * added: set controlled mode on after opening a connection to the adapter
454 (for firmware v2)
455 * added an IAdapterCommunicationCallback interface an use a callback method
456 to pass newly received cec_commands to CCECProcessor
457 * added "driver only" and "driver + libcec" sections to the installer
458 * added a signed driver
459 * created a separate driver installer, which is included in the libCEC
460 installer. uninstalls the old unsigned version of libCEC and the driver
461 when it's found and installs the new one in C:\Program Files(x86)\
462 Pulse Eight\USB-CEC Adapter.
463 * don't sign development binaries with a temporary key. devs can do that
464 themselves when they want LibCecSharp in the GAC
465 * interface changes:
466 * added SetStreamPath()/cec_set_stream_path_logical()/
467 cec_set_stream_path_physical() to the interface, to send a
468 "set stream path" command over the CEC bus, used to activate another
469 source.
470 * fixed:
471 * transmit 'menu state activated' after the stream path has been set to a
472 device that is handled by libCEC. should fix remote commands not working
473 properly on Panasonic TVs and after another source has been active.
474 bugzid: 233
475 * set the ackmask to 0x0 when trying to find a free logical address
476 * keep trying to reconnect to the com port until the timeout runs out.
477 bugzid: 230
478 * wait 500 ms before trying to retransmit a command. always wait for the
479 result of a transmission in CCECCommandHandler::Transmit()
480 * receive and send full cec_commands, not CCECAdapterMessages in
481 CAdapterCommunication. extract an IAdapterCommunication interface. fixed
482 potentially missed data in CAdapterCommunication
483 * close and delete the connection when the processor thread ends. fixes
484 reconnect after standby (access denied / connection already opened)
485 * don't replace handlers when not initialised, or the primary device's
486 logical addres isn't known yet, which can lead to crashes. don't call
487 handlers directly in CCECProcessor without holding a lock on them
488 * fixed possible crash when command handler were switched while it was
489 being used
490 * keep the mutex locked when calling ReplaceHandlers() in CCECProcessor
491 * win32: also timeout when data is received in SocketRead()
492 * win32: fixed < vista runtime and compilation
493 * win32: ping the adapter and request the firmware version in
494 CUSBCECAdapterCommunication instead of CCECProcesssor. fixes failed
495 libCEC inits
496 * win32: fixed crash on exit in LibCecSharp
497
498 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 6 Feb 2012 14:26:00 +0100
499
500 libcec (1.4-3) unstable; urgency=low
501
502 * fixed:
503 * try to ping the device and grab the firmware version until the connect
504 timeout runs out. fixes failed reconnect after standby, when the adapter
505 is still being initialised
506
507 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 27 Jan 2012 13:05:00 +0100
508
509 libcec (1.4-2) unstable; urgency=low
510
511 * changed/added:
512 * added a firmware flash script for linux.
513 usage: ./support/cec-flash-device.sh /path/to/firware.hex
514 * refactored threading/locking - added windows native instead of
515 pthread-win32, so we can compile native x64 too
516 * check whether the adapter responds when connecting to it and report the
517 firmware version of the adapter after connecting
518 * moved create-installer.cmd to support/
519 * completely removed AM_SILENT_RULES
520 * interface changes:
521 * compile LibCecSharp against .NET framework 2.0 and sign the assembly
522 * fixed:
523 * only the key release events were sent, not keypresses, which appeared in
524 clients as laggy keypresses
525 * fixed reconnect after standby
526 * wait for active tranmission to finish when opening a connection to the
527 adapter. fixes initialisation errors
528 * set the default transmit timeout properly instead of using 0
529 * fixed possible deadlock because of a negative timeout in
530 CAdapterCommunication::WaitForTransmitSucceeded()
531 * fixed error message in cec-client (unable to open the device on port ...)
532 * exit cec-client after entering bootloader mode
533 * MSGCODE_START_BOOTLOADER doesn't respond with MSGCODE_COMMAND_ACCEPTED
534
535 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 25 Jan 2012 23:28:00 +0100
536
537 libcec (1.4-1) unstable; urgency=low
538
539 * changed/added:
540 * added the vendor id for Sony
541 * always refresh the power state of a device when it hasn't been updated
542 for 30 seconds
543 * do silent builds by default
544 * interface changes:
545 * added optional callback methods to libCEC. enable them by calling
546 EnableCallbacks(ICECCallbacks *callbacks) /
547 cec_enable_callbacks(ICECCallbacks *callbacks). after this method is
548 called, the GetNext...() methods will not return any data
549 * added the same callbacks to LibCecSharp. implement CecCallbackMethods
550 and override the methods in there
551 * fixed:
552 * use the given timeout when trying to open a connection to the CEC
553 adapter
554 * resolved difference between method name in LibCECC.cpp and cecc.h.
555 credits: Doug Johnson
556 * don't transmit physical addresses while holding a lock in CCECProcessor
557 * don't hold a lock when sending an active source message.
558 * unload libCEC when the lib version is invalid
559 * "unused" warnings suppressed
560
561 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 12 Jan 2012 19:06:00 +0100
562
563 libcec (1.3-3) unstable; urgency=low
564
565 * changed/added:
566 * place in libudev include in an extern C block. fixes compilations on
567 older libudev versions (e.g. on Hardy). closes #2. credits @fbuenemann
568 * added pkg-config to the dependencies list. issue #15
569 * updated README. closes #14
570 * added a script that tests some basic functions of the CEC adapter:
571 /support/cec-test-device.sh
572 * fixed:
573 * don't make libCEC the active source when changing the physical address.
574 don't send active source messages on startup, when not the active source
575 fixes unwanted device power ups
576 * replace the command handler directly after receiving a changed vendor
577 id. change the primary type from recording device to playback device
578 for panasonic TVs
579 * don't send a deck status update when sending an active source message
580 for panasonic TVs
581 * only switch handlers once when using the generic handler
582 * don't switch handlers when not needed
583 * hold a lock in CCECProcessor::SetHDMIPort()
584 * don't send deck status updates when sending an active source message by
585 default
586
587 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 3 Jan 2012 22:48:00 +0100
588
589 libcec (1.3-2) unstable; urgency=low
590
591 * changed/added:
592 * copy libcec.dll to the XBMC installation dir when XBMC is found
593 * disable background polling. let the client request this info when needed
594 * update the power status of a device when it's set to
595 CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON
596 * wait for the correct response when requesting something, not just any
597 response
598 * don't keep trying the same command/request after receiving a feature
599 abort message
600 * interface changes:
601 * change the previously unused boolean parameter in volume control methods
602 to bSendRelease, and only send a key release when it's true. default to
603 true
604 * fixed:
605 * don't send the power up/down keypress to listeners when in the initial
606 device state (powered off). fixes unexpected shutdown in XBMC when
607 connecting to the CEC adapter.
608 * send a 'menu state activated' command when starting up. bugzid: 113
609 * don't wait for a response when not needed
610 * don't hold a lock while waiting for a response. fixes failed libCEC
611 inits and slow responses
612 * don't replace a command handler when it's being used. fixes possible
613 crash on startup
614 * don't try to do anything before the processor thread has started
615 * don't transmit active source messages when the physical address is
616 still 0xFFFF
617 * don't init the default handler before the physical address is known
618
619 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 29 Dec 2011 03:05:00 +0100
620
621 libcec (1.3-1) unstable; urgency=low
622
623 * changed/added:
624 * make libudev optional. if libudev is not available on linux, adapter
625 autodetection will also not be available. fixes compilation on Hardy/ATV1
626 * added a C++ CLR wrapper for libCEC, so libCEC can be used by any .NET
627 language
628 * added vendor support for LG
629 * added vendor support for Philips
630 * added vendor support for Yamaha
631 * added vendor support for Onkyo
632 * added 'scan' command to cec-client, that displays info about devices on
633 the bus. made all ToString() methods available on the interface.
634 * added '-s' or '--single-command' to cec-client. starting cec-client with
635 this parameter executes a single command in cec-client and does not power
636 on devices on startup and power them off on exit. this way, you can use
637 cec-client in a shell script. since there's some handshaking involved at
638 startup, this is not very fast. to execute a command and only display the
639 result and any error/warning, execute it with
640 RESULT=`echo command | cec-client -s -d 3` (on linux/osx, win32 batch
641 files are a bit different)
642 * added HDMI port ('-p' or '--port') and base device ('-b' or '--base') to
643 cec-client's parameters
644 * handle image view on and text view on
645 * handle routing information and report physical address opcodes
646 * handle audio status updates
647 * send ping and bootloader commands via the output queue
648 * scan the CEC bus for devices when starting libcec
649 * pass all commands that are directed at libcec to listeners
650 * interface changes:
651 * added GetActiveSource()/cec_get_active_source()
652 * added IsActiveSource()/cec_is_active_source()
653 * added GetDevicePhysicalAddress()/cec_get_device_physical_address()
654 * added GetDeviceOSDName()/cec_get_osd_name()
655 * added SendKeypress()/cec_send_keypress() and SendKeyRelease()/
656 cec_send_key_release()
657 * added VolumeUp()/cec_volume_up(), VolumeDown()/cec_volume_down(),
658 MuteAudio()/cec_mute_audio()
659 * added GetActiveDevices()/cec_get_active_devices(), IsActiveDevice()/
660 cec_is_active_device(), IsActiveDeviceType()/cec_is_active_device_type().
661 * added SetHDMIPort()/cec_set_hdmi_port(). devices are now detected on load
662 and when a device with the same physical address is detected, libcec will
663 use the selected hdmi port on that device. should fix source selection on
664 other devices, like an amplifier
665 * added a hook in libcec for physical address autodetection
666 * fixed:
667 * don't request the physical address from the tv (it's always 0x0000)
668 * set the proper ackmask before doing anything else
669 * don't unlock the transmit mutex in CCECProcessor while waiting for an
670 answer
671 * fix device polling
672 * refactor CEC read/write. keep a single lock for all writes, not one per
673 device
674 * ignore other data while waiting for a response
675 * retry failed tranmissions
676 * don't delete a message before it's been sent when starting the bootloader
677 * or when sending a ping
678 * fixed possible segfault when switching the command handler after a vendor
679 * id changed
680 * handle audio opcodes correctly
681 * inactive source should be directly addressed at the TV
682 * don't report a changed physical address when it hasn't changed
683 * routing information sets the stream path, not the physical address
684 * don't scan the whole bus in CCECProcessor::IsActiveDeviceType()
685 * don't request the vendor id from devices that are handled by libcec
686 * mark device status as present when a command was received from a device
687 * always send a power on command in CCECBusDevice::PowerOn()
688 * don't request updates statusses unless needed
689 * report physical address sends 3 parameters, not 2. check whether the
690 device type is correct
691 * devices can send vendor commands from other vendors, so don't assume the
692 device is of a certain vendor when it sends commands with a vendor id
693 * thread safety fixes. bugzid: 19
694 * clear any previous input when opening a connection to the adapter.
695 bugzid: 54
696 * use the correct source address in CSLCommandHandler::HandleVendorCommand()
697 * uncorrected CEC_OPCODE_DEVICE_VENDOR_ID. closes #5
698 * renamed enum methods. fixes potential macro collision with isset().
699 thanks davilla
700 * don't change the active device when receiving stream path changed
701 messages. fixes wrong source selection when powering after the TV.
702
703 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 09 Dec 2011 12:16:00 +0100
704
705 libcec (1.2-1) unstable; urgency=low
706
707 * bugfixes:
708 * pass the deck_control command to libcec listeners
709 * check whether the initiator is valid in CCECProcessor::ParseCommand().
710 fixes possible segfault when parsing invalid data
711
712 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sat, 12 Nov 2011 13:36:00 +0100
713
714 libcec (1.1-3) unstable; urgency=low
715
716 * fixed return value in CCECProcessor::SetStreamPath(), which prevented
717 active source and menu state from being sent
718
719 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 23:36:00 +0100
720
721 libcec (1.1-2) unstable; urgency=low
722
723 * forgot to update the headers to v1.1
724
725 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 18:56:00 +0100
726
727 libcec (1.1-1) unstable; urgency=low
728
729 * interface changes:
730 * added logical address autodetection and let libcec handle multiple types
731 simultaniously. for logical address autodetection, you have to use
732 CECInit()/cec_init_typed() instead of CECCreate()/cec_init()
733 * added SetActiveSource()/cec_set_active_source() to the interface.
734 deprecated SetActiveView()/cec_set_active_view()
735 * added SetMenuState()
736 * added PollDevice()/cec_poll_device()
737 * removed duplicate method SetActiveSource() / SetActiveView()
738 * added SetDeckControlMode() and SetDeckInfo()
739 * fixed:
740 * added vendor detection for panasonic and broadcast active view and set
741 menu state when a panasonic device sets the stream path. thanks for the
742 pointer cptcoconut.
743 * added vendor code for pioneer
744 * osd string is 13 chars max. don't send more
745 * send the correct cec version for each device
746 * switch to panasonic specific cec implementation if a panasonic device was
747 detected
748 * send the correct device type in TransmitPhysicalAddress()
749 * send a reply from the correct device when the stream path is requested
750 * opcode 0x80 means the stream path changed, not the physical address
751 * don't poll for a vendor ID in monitoring mode
752 * fixed parameter parsing in SetVendorId()
753 * buffer up commands that are received while waiting for an ack. only send
754 'active source' message for the actual active source
755 * win32: prepend the com port path with '\\.\', so com ports > 9 can be
756 accessed. thanks smolesen
757 * audio systems cannot be an active source, so don't transmit active
758 source message from this device
759 * only send 'active source' when powered on
760 * only set the osd name for the primary device. use default values for
761 others
762 * increase physical address with 0x100 per device
763 * win32: removed unneeded afxres.h include in the resource files, which
764 is not present when using studio express. thanks Ghuron
765 * fixed C headers
766 * mark the active source as active and other devices as inactive
767 * set the power status to 'on' when receiving CEC_USER_CONTROL_CODE_POWER
768 * transmit the menu state as (active) when the stream path is set
769 * changed:
770 * changed copyright of boblight files with permission of the original
771 author
772 * partial handling of audio related opcodes
773 * more consistent log messages
774 * set a device type and name for each CCECBusDevice
775 * keep a power and menu state per device
776 * renamed all Broadcast...() and Report...() methods to Transmit...()
777 * renamed SetOSDString() to TransmitOSDString()
778 * changed debug level of 'did not receive ack' from error to debug
779 * only set the power status to 'on' for the primary device
780 * moved method decriptions from cecc.h to cec.h
781 * only send a power on command when a device isn't on already and set
782 the power state to CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON while
783 powering on
784 * handle CEC_OPCODE_STANDBY
785 * handle CEC_OPCODE_ACTIVE_SOURCE
786 * always start in standby mode and let the tv (or other device) send the
787 power on command
788 * renamed the last few enums
789 * handle deck related opcodes.
790 * added TransmitVendorId(), but only transmit the id if it's not set to 'unknown'
791
792 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 17:42:00 +0100
793
794 libcec (1.0-1) unstable; urgency=low
795
796 * interface changes:
797 * set lib interface version back to 1.0 and rename GetLibVersion() to
798 GetLibVersionMajor() and GetMinVersion() to GetMinLibVersion()
799 * added GetLibVersionMinor()/cec_get_lib_version_minor() and set the minor
800 version number to 1
801 * fixed:
802 * samsung's vendor specific remote keypresses don't send key releases. added
803 call to AddKey() directly after the keypress
804 * always reset the button press time in CLibCEC::AddKey()
805 * always wait for a signal in CCECProcessor::Transmit()
806 * changed:
807 * drop shared_ptr and use a normal pointer. removed boost dependency
808
809 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 04 Nov 2011 00:14:00 +0100
810
811 libcec (0.8-2) unstable; urgency=low
812
813 * added 'libboost-dev' to build deps
814
815 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 01 Nov 2011 23:31:00 +0100
816
817 libcec (0.8-1) unstable; urgency=low
818
819 * interface changes:
820 * added GetDevicePowerStatus()/cec_get_device_power_status()
821 * added GetDeviceVendorId()/cec_get_device_vendor_id()
822 * added GetDeviceMenuLanguage()/cec_get_device_menu_language()
823 * added GetDeviceCecVersion()/cec_get_device_cec_version()
824 * added SwitchMonitoring()/cec_switch_monitoring() to the interface. when
825 monitoring is enabled, the device will only log the data it received,
826 but will not respond to any message
827 * removed timeout parameter in Transmit() and included the ack timeout in
828 the cec_command struct
829 * made the vendor id -> vendor name translation available
830 * made CEC_LOG levels powers of 2
831 * introduced CEC_LOG_TRAFFIC log level
832 * fixed:
833 * set the correct ackmask on startup
834 * wait for ack while keeping a lock
835 * wait for the processor thread to start before continueing on startup
836 * wait for messages to be transmitted before continueing in
837 CCECProcessor::Transmit()
838 * only set the logical address once when it has changed
839 * correct source for broadcast messages
840 * win32: create Release type installer
841 * changed:
842 * make all reads and write in CAdapterCommunication go through buffers.
843 * poll for a vendor ID of connected devices and switch to a non-standard
844 CEC implementation if needed.
845 * added vendor detection of Samsung and LG devices
846 * handle samsung remote command 'return'
847 * cec-client:
848 * added -la and --logical-address to the command line params
849 * added -d and --log-level params to cec-client
850 * added -sf and --short-log-file, which only log the actual messages, not
851 the level and timestamp
852 * added -f and --log-file parameters to cec-client
853 * added option to change the log level to cec-client
854
855 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 01 Nov 2011 22:58:00 +0100
856
857 libcec (0.7-1) unstable; urgency=low
858
859 * send a keypress with 0 duration when a key is pressed and with a duration
860 set when it's released
861 * added SetOSDString() to the interface (not supported by all tvs)
862 * fixed: 'routing change' is a broadcast message. log routing changes, but
863 don't send a 'set active view' message, so the active input won't be
864 changed
865 * log keypresses in the debug log
866 * added 'pa' command to cec-client, to change the physical address
867 * added SetPhysicalAddress()/cec_set_physical_address() to the interface, so
868 the HDMI port number to use can be changed
869 * fixed: put the message processing code from WaitForAck() in ParseMessage().
870 fixes missing incoming message logging of non-data messages when not
871 waiting for an ACK
872 * added 'txn' command to cec-client. same as 'tx', but doesn't wait for ACK
873 before returning
874 * fixed: set initiator and destination first in cec_command::push_back().
875 fixes 'tx' command in cec-client
876 * fixed: keep trying to connect while iTimeout isn't reached (default 10
877 seconds). fixes exit with a 'permission denied' error when the device isn't
878 ready yet. remove CEC_SETTLE_DOWN_TIME
879 * fixed: don't call SetActiveView() when reporting the power status. fixes
880 loop which causes some TVs to report failed connections
881 * fixed: eom was not being parsed when receiving MSGCODE_FRAME_DATA. fixed.
882 * fixed: add the device type as parameter when sending the physical address.
883 thanks bobo1on1
884 * fixed: typo in libcec.pc.in
885 * added optional strLib parameter to LoadLibCec(), so the location of the
886 shared library can be specified
887 * only link cec-client against ld. use AC_SEARCH_LIBS instead of AC_CHECK_LIB
888 * use int instead of bool on the public C interface and remove stdbool.h include
889 * renamed: CECExports.h => cec.h, CECExportsC.h => cecc.h, CECLoader.h =>
890 cecloader.h, CECTypes.h => cectypes.h
891 * updated debian package. split up libcec and libcec-dev
892 * fixed: changed to use dlopen instead of static linkage. shuffled headers a
893 bit. bumped interface to version 7
894 * removed 'rt' from libraries. it's not needed (anymore)
895 * fixed: reset the active view after a routing change. issue #1
896 * fixed: changed attached license to be GPLv2 instead of GPLv3 this was an
897 error as libCEC is licensed GPLv2 not GPLv3 thanks @garbear
898 * added contributors link
899
900 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 14 Oct 2011 17:34:00 +0200
901
902 libcec (0.6-1) unstable; urgency=low
903
904 * bumped interface version to 6
905 * fixed packet output (reporting the OSD name correctly now)
906 * refactored packet structs: split up in cec commands and adapter messages
907 * fixed i/o timings
908 * added Darwin support (thanks Davilla!)
909 * fixed WaitForAck()
910 * fixed possible deadlock when starting a new thread
911 * implemented vendor id and device class parsing. full detection will follow
912 * added "on" and "standby" commands to the test client
913 * retransmit packets if needed
914 * fix GetTimeMs() on linux
915 * added timestamp to log messages
916
917 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sun, 09 Oct 2011 15:15:00 +0200
918
919 libcec (0.5-1) unstable; urgency=low
920
921 * bumped interface version to 5
922 * don't pass std::string and std::vector accross the interface
923 * fixed heap corruption crashes on windows
924 * fixed some memory leaks
925 * reset all structs to default values before doing with them
926
927 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 07 Oct 2011 22:00:00 +0200
928
929 libcec (0.4-3) unstable; urgency=low
930
931 * fixed reconnect
932 * fixed some threading related bugs
933 * fixed deadlock on exit
934 * fixed wrongly reported physical address
935
936 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 06 Oct 2011 00:19:00 +0200
937
938 libcec (0.4-2) unstable; urgency=low
939
940 * fixed int parameter sizes and some signed/unsigned warnings
941 * check whether m_port isn't NULL in ReadFromDevice
942 * stop the processor thread and delete the CSerialPort instance on exit
943 * added mutex in CSerialPort
944 * fix segfault on exit
945 * renamed libPlatform -> platform.
946 * stuck everything from libCEC in the CEC namespace to avoid namespace
947 polution
948
949 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 04 Oct 2011 23:45:00 +0200
950
951 libcec (0.4-1) unstable; urgency=low
952
953 * bumped interface version to 4
954 * timeout parameter removed from Close()/cec_close(). return type changed to
955 void
956 * added cec_destroy() method
957 * removed timeout parameter from Transmit()
958 * change the default argument of PowerOnDevices() to CECDEVICE_TV
959 * removed PowerOffDevices(). use StandbyDevices() instead
960 * removed obsolete methods from the interface
961 * fixed bug: pthread_cond_wait was called without the mutex locked
962 * fixed possible deadlock: don't send messages and wait for an ack with the
963 mutex locked in CCECParser
964 * created a separate reader thread and fixed the 'lock timeout' bug
965 * testclient: use CECDEVICE_TV instead of the default argument
966 (CECDEVICE_BROADCAST) for PowerOnDevices() and PowerOffDevices()
967
968 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 04 Oct 2011 00:48:00 +0200
969
970 libcec (0.3-1) unstable; urgency=low
971
972 * added device detection support for Windows
973
974 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sun, 02 Oct 2011 12:09:33 +0200
975
976 libcec (0.2-1) unstable; urgency=low
977
978 * added a Close() method to the interface
979 * Added CEC command that were received by the adapter in a buffer that can be
980 read by a client with GetNextCommand()/cec_get_next_command(). added a
981 'help' command to the test client, that displays all available commands
982 * Fixed setting the ackmask. deprecated SetAckMask()/cec_set_ack_mask(). use
983 SetLogicalAddress()/cec_set_logical_address() instead. add 'la' command to
984 the testclient to set the logical address of the cec adapter
985 * Added optional logical and physical address parameters to
986 LoadLibCec()/cec_init() on the interface. fixed wrongly placed namespace
987 close tag in CECExports.h. updated interface documentation. bumped
988 interface version to 2.
989 * fixed hardcoded ackmask in SetAckMast(). set a shorter display name in the
990 test client. the previous one was too long and being rejected
991
992 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 28 Sep 2011 01:33:00 +0200
993
994 libcec (0.1-1) unstable; urgency=low
995
996 * Initial release v0.1
997
998 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 28 Sep 2011 23:55:48 +0200