1 libcec (2.2.0-1) unstable; urgency=low
4 * read the physical address from X11 randr extension. credits: @smithereens
5 * support for Exynos HDMI. credits: @vamanea
6 * another vendor ID for Harman/Kardon. credits: @ksooo
7 * some 1.4 keycodes have been added. credits: @ksooo
8 * cec-client: fix typo prevent keycodes to be passed. credits: @popcornmix
11 * various Raspberry Pi fixes. credits: @mk01
12 * vendor specific handlers weren't used for Toshiba and Onkyo.
14 * LibCecTray: keypress not sent when multiple instances of eshell.exe are
15 running. thanks @pvanbaren
17 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 28 Oct 2014 10:45:00 +0200
19 libcec (2.1.4-2) unstable; urgency=low
24 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 18 Dec 2013 02:14:00 +0100
26 libcec (2.1.4-1) unstable; urgency=low
29 * set the vendor id of devices handled by libCEC to our vendor id
30 * added protection against standby without a notification from XBMC and
31 clock changes. issue #186
32 * update system audio mode when audio system devices are activated
33 * added vendor id and name 'Harman/Kardon'
34 * added vendor id and name 'Marantz'
35 * cec-tray: support for away mode
36 * cec-tray: support for screensaver events
38 * fixed potential crash when SendCommand returns NULL
39 * fixed crash when CCECProcessor::Transmit was called after
41 * always call the SourceActivated() callback in
42 CCECBusDevice::MarkAsActiveSource(), even when we were already active,
43 and let clients handle dupes. this prevented the screensaver from
44 being cancelled in XBMC
45 * send our vendor id when the tv sends it's vendor id
46 * transmit our physical address when the TV sends it's physical address
48 * leak on exit in CWaitForResponse::Clear()
49 * also transmit an active source message as response to a set stream path
50 command when we were already marked as active. bugzid: 3116
51 * only send an active source message when receiving a routing change to an
52 address handled by libCEC. issue #56
53 * HandleVendorRemoteButtonUp -> HandleUserControlRelease for all vendors
54 * silence warning for xx:a0:00:09:b0:00:80:20. bugzid: 2559
55 * fixed comboKeyTimeout=0. closes #168
56 * Panasonic: doesn't request the active source status when powered up, but
57 it does send a vendor command. send an active source message when we're
58 marked as active source after receiving this command. issue #192
59 * possible crash when the tv does not respond to polls and the client isn't
60 registered yet. don't poll the tv in monitoring mode. closes #163
61 * Panasonic: standby command
62 * Panasonic: silence 'unmapped code' warning. bugzid: 2375
63 * LG: clean up and attempt to fix issue #176
64 * LG: newer firmwares don't send a second power status request after it's
65 been requested once and replied with 'standby -> on' like previous
66 versions. send an active source message in an attempt to fix this. issue:
68 * Sharp: check whether the 'auto power on' option is disabled and tell the
70 * Samsung: respond to vendor command 0x23 sent by samsung. attempt to fix
72 * cec-client: try to reconnect when the connection was lost
73 * cec-tray: crash on load (MissingManifestResourceException)
74 * cec-tray: crash or deadlock on exit
75 * cec-tray: crash when the connection to the adapter was lost
76 * cec-tray: display TV not responding warning on top
77 * windows: build libCEC and cec-client against toolset v100 (VS2010)
78 * FreeBSD: proper the adapter detection. credits @fneufneu
79 * suppress mangling warning. credits @warped-rudi. closes #190
81 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sat, 13 Dec 2013 16:02:00 +0100
83 libcec (2.1.3-1) unstable; urgency=low
86 * ask users to send an email when receiving an unhandled vendor command
87 * toshiba: map top menu and dvd menu buttons. closes #148
88 * LibCecSharp: sync alert types
89 * LibCecSharp: added CurrentVersion to the version enum
90 * CecSharpClient: use CurrentVersion instead of a hardcoded version
91 * CecTray: power management
92 * CecTray: split up asyncform
93 * CecTray: try/catch xml exceptions when reading the xml config. bugzid:
95 * CecTray: use CurrentVersion instead of a hardcoded version
96 * CecTray: display a warning if we can't poll the TV
97 * CecTray: display alerts from libCEC
98 * CecTray: don't use lazy loading for the main controller, but pass the
99 instance. bugzid: 2082
100 * windows: converted to vs2012
102 * toshiba: toshiba handler wasn't initialised, and toshiba uses more than
104 * libCEC marked itself as inactive source when the stream path changed to
105 a device with a different physical address. bugzid: 2157
106 * TDA995x: report proper firmware revision (credits: @warped-rudi)
107 * TDA995x: avoid callback when already stopped (credits: @warped-rudi)
108 * windows: fix resource files and backwards compat dll names
110 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sat, 11 May 2013 10:06:00 +0000
112 libcec (2.1.1-1) unstable; urgency=low
115 * send an alert when the TV does not respond to polls
117 * LG didn't switch sources after the TV powered up
118 * always poll a device when the status is unknown, and don't try to
119 determine whether it needs to be polled by checking the status of other
121 * don't mark a device as inactive when receiving a routing change message,
122 only when another device was made acive. fixes the issue that rc
123 passthrough doesn't work when a tv sends a quick routing change to
124 another port before requesting the active source when coming out of
126 * LibCecSharp: fixed 14 char long OSD name (wasn't \0 terminated)
127 * LibCecSharp: fixed return value of GetActiveDevices(). issue #131
128 * cec-tray: fixed index out of range exception in CECSettingNumeric.cs.
130 * cec-tray: ensure that the tray app only initialises once. bugzid: 2082
131 * rpi: don't set the physical address to 1.0.0.0 when receiving
132 VC_HDMI_UNPLUGGED. it may wake up device when they were just sent to
134 * osx: use the correct dylib name in cecloader.h, used by cec-client
136 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 8 Mar 2013 17:21:00 +0100
138 libcec (2.1.0-1) unstable; urgency=low
141 * added vendor id for Denon
142 * added DetectAdapters() method, that returns all device information for
143 detected adapters, not just the com port
144 * added new method PowerOnScreensaver. credits: @jmarcet
145 * LibCECTray: Added ability to send modifiers by nesting commands in
146 KeyInput.cs. credits: Nate Burr
147 * rpi: Added /opt/vc/include/interface/vmcs_host/linux to rpi_cflags to fix
148 building on 'next' firmware branch. credits: Nedim Lisica
150 * don't send two active source message sequences to philips. issue #118
151 * don't send deck status updates to philips when activating the source
152 * update the active source status correctly after a manual switch to
153 another source. closes #124
154 * rename cec_audio_status() to cec_audio_get_status() to avoid conflict
155 with the cec_audio_status enum. This makes the C API compile again.
156 credits: Dave Chapman
157 * LibCECTray: Fixed bug with libcec adding the keyup for button commands
158 and making sure they are still executed. credits: Nate Burr
159 * rpi: register callback for HPD. re-read the physical address when we
160 received VC_HDMI_ATTACHED. issue #109
162 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 26 Feb 2013 23:06:00 +0100
164 libcec (2.0.5-1) unstable; urgency=low
167 * also try polls at least twice when it failed
168 * added methods to get the audiostatus and toggle the mute status from the
169 amplifier (if connected)
170 * added comboKey and iComboKeyTimeoutMs to libcec_configuration
171 * force cec_user_control_code_unknown to 0xFF
173 * check unsupported features properly
174 * only send an active source message when the stream path changed and we
175 weren't the active source yet
176 * don't mark as inactive source on routing changes
178 * never mark user control opcodes as unsupported
179 * report our OSD name to the TV, since some TVs don't request it
180 * initial audiostatus value
181 * don't log a no longer relevant FIXME
183 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 6 Dec 2012 20:58:00 +0100
185 libcec (2.0.4-1) unstable; urgency=low
188 * dropped obsolete cec-config
189 * added CEC_CLIENT_VERSION_CURRENT and CEC_SERVER_VERSION_CURRENT. closes
191 * support colon separated data for the 'tx' command in cec-client
192 * mark the adapter as (in)active source for firmware v3+
193 * added 'is' command to cec-client, to mark libCEC as inactive source
195 * only change the handler of the primary device if the tv has a quirks mode
196 not for other devices
197 * send an active source message when the route was set to the physical
198 address that is handled by libCEC
199 * default double tap timeout wasn't set for panasonic
200 * philips TVs sometimes keep sending key presses without key releases
201 * philips TVs ignore 'image view on' right after they were sent into
202 standby. check the power status of the tv every 5 seconds, until it
203 reports to have powered on
204 * mark a device as powered on when receiving a stream path or routing
206 * update the active source status correctly on stream path changes
207 * ensure that we only send 'image view on' when needed
208 * mark the TV as 'in transition standby -> on' after sending
209 'image view on', so we don't spam the TV with 'image view on' command
210 while waiting for it to finish powering up. bugzid: 1603. bugzid: 1609.
212 * request the active source before requesting device information in
213 cec-client, or it'll display incorrect information when called the first
215 * update the value of CCECProcessor::m_bMonitor when registering a client.
216 SetControlled() wasn't called on exit, so it took 30 seconds until it was
218 * silence 'unused' warning properly. closes #86
219 * only change the type of the client to 'playback device' instead of
220 'recorder' for panasonic if the TV is a panasonic. issue #84
221 * always poll the TV if it's marked as not present. issue #83. issue #84
222 * only set m_iCurrentButton when the duration isn't known yet. fixes
223 duplicate key press for vendor remote codes. closes #81
224 * delete the right registry key
225 * send active source message when we received a routing change with a
226 device that is handled by libCEC as address. issue #89
227 * return value wasn't updated in GetLogicalAddresses()
229 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 15 Nov 2012 02:26:00 +0100
231 libcec (2.0.3-1) unstable; urgency=low
234 * log unhandled vendor remote keycodes in the log, so they get logged
235 without debugging enabled
236 * double tap timeout increased from 200ms to 250ms
237 * CuBox/NXP* renamed to TDA995x*
239 * handling of active route changes. github issue #56 and issue #58
240 * new combo key handling broke samsung's vendor specific remote buttons.
242 * don't try to set controlled mode when using firmware version 1 and crash.
244 * fix for LG models that send a vendor key up after a normal key down.
246 * some TVs send keypresses to us without making us the active source. mark
247 us as active source when this happens. github issue #71
248 * LG doesn't send routing changes, and marks the TV as active source when
249 switching to another source that's not been selected in the simplink menu
250 instead. this change keeps libCEC marked as powered on and keep the deck
251 state set to CEC_DECK_INFO_OTHER_STATUS_LG. fixes keypresses not working
252 after switching to another source and back to libCEC's hdmi port via the
253 source select menu instead of the simplink menu. github issue #71
254 * don't respond with an abort message when receiving a vendor remote button
256 * respond with CEC_ABORT_REASON_INVALID_OPERAND when receiving a keypress
258 * typo in stop+pause combo key that prevented one of the keys from working
259 * rpi: log what data we received exactly when we receive an response from
260 the pi's firmware that doesn't match any command that we sent. issue #77
261 * cubox: added adapter ID interface
263 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 31 Oct 2012 15:57:00 +0100
265 libcec (2.0.2-2) unstable; urgency=medium
268 * updating the device status after a poll was broken and could reset the
269 status of devices that were marked as handled by libCEC to 'not
271 * don't keep spamming the bus with a vendor command when an active source
272 switch is pending for panasonic, but only send it when needed
273 * reset CVLCommandHandler::m_bCapabilitiesSent when the TV goes to standby
275 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 15 Oct 2012 13:52:00 +0100
277 libcec (2.0.2-1) unstable; urgency=low
280 * missing from the previous changelog: added support for the CuBox TDA995x
282 * lower retry timeout for source switches
283 * cec-client: wait for the source switch to finish when cec-client is
284 called with the -s switch
285 * request the power status of the TV directly after registering a new
288 * don't keep trying to send 'image view on' commands to the TV when no TV
289 is connected, and just send the 'set active source' command. fixes source
290 switch and debug log spam for people without a TV connected
291 * don't keep waiting for an updated power status from the TV for Panasonic,
292 but request a status update once every 5 seconds, or we can possibly wait
293 forever for the tv to send it
294 * log what we received exactly when logging FIXME
295 * typo in CVLCommandHandler::VendorPreActivateSourceHook. bugzid: 1087
296 * if we failed to get the physical address of the device that we are
297 connected to in the config, then try to use the address that was
298 persisted in the eeprom before resetting to the default value, 1.0.0.0.
300 * don't update the device status of unregistered/broadcast
301 * log all device status changes
302 * CCECClient::IsLibCECActiveSource returns false now while the active
303 source command is pending
304 * log failed acks and other errors in the debug log again
305 * don't send 'image view on' when the TV is already powering up
306 * reset the delayed source switch timeout properly, so we don't spam
307 commands every second
308 * don't change the device status when sending a delayed source switch
309 * don't send out commands to a device that is marked as not present or
312 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 11 Oct 2012 15:48:00 +0100
314 libcec (2.0.1-1) unstable; urgency=low
317 * added Loewe support
318 * added signal handlers to client applications
319 * Documentation updated
320 * replaced cec-config-gui by libCEC tray
321 * log the exact data for failed transmissions, not the opcode
322 * don't log every frame, unless debugging was enabled in ./configure or
324 * changed some log levels from NOTICE to DEBUG, so the non-debugging output
327 * WARNING: breaking API changes
328 * clean up: deprecated methods and fields removed
329 * callback parameters changed to fix plain C compilation
330 * added GetAdapterProductId()+GetAdapterVendorId()/
331 cec_get_adapter_product_id()+cec_get_adapter_vendor_id()
332 * added iDoubleTapTimeoutMs to libcec_configuration
333 * remove all pre-v2.0 compatibility checks
335 * fix plain C compilation
336 * prevent sending directly addressed commands from being sent to broadcast
337 * don't wait for a response when sending a reply, so we don't block message
339 * message response signaling and logging
340 * prevent double taps by not sending the same key press twice within 200ms
341 * fall back to the primary client when
342 CCECProcessor::HandleLogicalAddressLost() and no client could be found
343 * no more delay up to 2 seconds when exiting libCEC
344 * don't get caught in a loop in CVLCommandHandler when the source switch
345 was not allowed and no power status request was sent
346 * always send image view on to the tv, don't check the power status
347 * only respond to vendor commands for panasonic if we are the destination
348 * rpi: current firmware first sends a change to logical address 'broadcast'
349 and then signals us that the address was lost. libCEC then failed to
350 re-register, because it didn't know any client at this address
352 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 8 Oct 2012 21:30:00 +0100
354 libcec (1.9.1-1) unstable; urgency=low
357 * added the type of adapter to libcec_configuration,
358 and display the type in cec-client -l
359 * added device detection support for composite usb devices on windows.
360 needs the windows ddk, and it's expected to be found in
361 C:\WinDDK\7600.16385.1
364 * adapter type was added to libcec_configuration
365 * moved cec_adapter_messagecode from cectypes.h to USBCECAdapterMessage.h
368 * retry m_port->Read(..) if an EINTR errror occurs instead of closing the
369 connection. credits @Obruni. closes #38
370 * make cec-client include cecloader.h from our project, not from system
371 * fixed duplicate entries check in CUSBCECAdapterDetection
372 * fixed missing cec_version updates in libcec_configuration
373 * transmit an active source message after <set stream path> to a device
374 that's handled by libCEC. closes #43
375 * rpi: handle vendor specific remote control presses. closes #42
376 * rpi: handle VC_CEC_LOGICAL_ADDR_LOST, sent by the Pi's firmware when
377 the logical address was taken while CEC was being reinitialised
378 * panasonic: send out an active source message when the tv started up
379 because it sometimes doesn't request this
381 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 5 Sep 2012 16:54:00 +0100
383 libcec (1.8.2-1) unstable; urgency=low
386 * p8: match to the response provided by the firmware when checking
387 responses (added in firmware v2 rev6)
390 * windows: update the error message when an error occurs while writing to
392 * delayed source switch time was reset, resulting in an attempt every
393 second until it succeeded
394 * ensure that the vendor commands are always sent for panasonic, and that
395 the deck status for lg isn't reset. fixes some buttons not working after
396 a second or delayed source switch
397 * added guard so ReplaceHandler() doesn't accidently try to replace a
398 handler for the broadcast address
399 * wait until the commandhandler is replaced before registering a client,
400 so we don't register a client and replace it directly afterwards if the
401 tv doesn't support the device type
402 * ensure that the command handler of the tv is replaced before registering
403 a client, or it might result in a double eeprom write attempt
404 * p8: don't disable controlled mode when switching to monitoring mode
405 * p8: do delayed eeprom writes async or it'll block processing other input
407 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 3 Aug 2012 02:35:00 +0100
409 libcec (1.8.1-1) unstable; urgency=low
412 * added support for the Raspberry Pi.
413 * added cec-client -i / cec-client --info that calls GetLibInfo()
415 * added CAdapterFactory, to create IAdapterCommunication instances
416 * added --debug to configure, to include -ggdb
419 * added GetLibInfo()/cec_get_lib_info(), that shows how libCEC was compiled
420 and with which features included.
421 * added ToString(cec_user_control_code_key) to the interface
424 * disallow sending CEC_OPCODE_SET_STREAM_PATH - not allowed by the CEC spec
425 * persist the configuration in the eeprom after initialising the client.
426 fixes wrong/old settings being used in autonomous mode, which broke the
428 * persist the new configuration when the hdmi port setting changed
429 * cleaned locks around callbacks
430 * always set controlled mode to false when unregistering the last client.
431 fixes 30 second timeout before controlled mode gets deactivated
432 * updated the cached device type setting properly when persisting new
433 settings. correct return value from WriteEEPROM(). lock a mutex when
435 * LibCecSharp: set the primary LA in CecLogicalAddresses
437 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 25 Jul 2012 13:05:00 +0100
439 libcec (1.7.2-1) unstable; urgency=low
442 * display a warning message if libCEC was not compiled with adapter
443 detection for the target platform
444 * panasonic: added a vendor command for panasonic that will enable routing
445 of some more buttons on the remote (guide, text, ...)
446 * standby command won't be forwarded more than once every 10 seconds
447 * added vendor ids for Akai, AOC, Benq, Daewoo, Grundig, Medion, Sharp and
449 * cec-client: don't display debug output by default in 'cec-client -l'
452 * added a callback for clients that is called when a source is
453 (de)activated, so the client can respond to this action
454 * added cec_command::PushArray()
457 * command forwarding. fixes player not going into standby mode
458 * missing virtual keyword in CCECCommandHandler::
459 GetReplacementDeviceType()
460 * replace the handler (if needed) in GetHandler()
461 * reply with abort reason 'invalid operand' to vendor commands that we
463 * changed all Handle...() commands to return a cec_abort_reason and send
464 the correct abort reason to the initiator as a response to directly
466 * changed 'couldn't change the ackmask: the connection is closed' into a
468 * don't send active source commands when the physical address is invalid or
470 * set the power status of a device to 'powered on' after it sends a stream
471 path change. can save an unneeded power state update request
472 * removed dupe code around delayed activate source commands. check for
473 delayed active source commands every 5 seconds instead of 15 seconds.
474 * panasonic: reset m_bPowerUpEventReceived in CVLCommandHandler when the
475 device lets us know it went into standby mode. fixes possibly failed
476 active source switches after it succeeded once
477 * panasonic: fixed delayed source switch for panasonic
478 * panasonic: mark the tv as powered up once it sends the audiomode request
479 * set the physical address of each device controlled by a CCECClient if
481 * Windows could get stuck in a loop in case there an error occured while
482 reading registry entries
483 * ABI fixes (binary compat with v1.2 for Windows and v1.5.2 for others)
484 * replace the handler directly after getting the vendor id of a device when
486 * copy the class member values of the old handler when creating a new
487 command handler, or a delayed activate source will get lost when the
489 * cec-client: wrong client version
490 * Makefile cleanups. don't link cec-client and cec-config against libudev
492 * pin libcec to the same version as libcec1
493 * LibCecSharp: update the local configuration after connecting
494 * LibCecSharp: better handling of callbacks
496 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 27 Jun 2012 02:06:00 +0100
498 libcec (1.7.1-1) unstable; urgency=low
501 * added physical address detection via ADL for AMD graphics cards
502 * attempt to get the edid from nvidia's graphics card driver on linux via
503 /proc/acpi/video/NGFX/HDMI/EDID
504 * attempt to get the PA from the registry on windows if we fail to get the
505 physical address from the display driver
506 * changed the order in CCECClient::SetPhysicalAddress() so it first checks
507 whether a PA override is set in libcec_configuration.iPhysicalAddress,
508 then checks whether the address can be detected, and if both failed it'll
509 use the HDMI port + base device setting
510 * cec-client: only active the source when reconnecting if libcec was the
511 active source before closing the connection
512 * platform: added tcp server sockets for posix
515 * libcec_configuration.bAutodetectAddress is now read-only, and will be set
516 to 1 by libCEC if the PA was autodetected
517 * LibCecSharp: don't use an int but a CecUserControlCode in a CecKeypress
520 * don't unregister clients in CLibCEC when disconnecting, but only in
521 CCECProcessor. fixes reconnect after close
522 * MSGCODE_TIMEOUT_ERROR is a response to a transmission
523 * retry 'activate source' every 10 seconds if it failed
524 * don't respond with a poll from the broadcast address when receiving
525 in CSLCommandHandler::HandleDeviceVendorId(), but use the primary LA of
526 the client as source instead
527 * hold a lock when changing the ackmask in
528 CUSBCECAdapterCommunication::Open
529 * don't respond with a feature abort to opcode play messages. bugzid: 873
530 * get the vendor id of the TV before allocating logical addresses, so we
531 can determine if the TV supports the requested device type directly
532 * TransmitImageViewOn() and TransmitActiveSource() always returned true,
533 even if sending the command failed, so the retry for failed source
534 activations was never triggered
535 * open libcec.so.1 instead of libcec.so in cecloader.h. credits @coling.
537 * fixed missing firmware version and build date in cec-client -l /
538 GetDeviceInformation()
540 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sun, 10 Jun 2012 13:39:00 +0100
542 libcec (1.6.1-5) unstable; urgency=low
544 * synced /debian directory with the one in precise (with a couple of changes)
546 * serial port locking on linux
547 * cec-client: added -m/--monitor startup options, which will start a
548 monitor-only client. use 'mon 0' to switch to a normal client
549 * display an alert message when the firmware of the adapter can be upgraded
550 * added CEC 1.4 opcodes
551 * send a feature abort again for all unhandled commands
552 * refactored CLibCEC so a client registers itself within CCECProcessor,
553 which then allocates one or more logical addresses for it.
556 * added a new setting, bMonitorOnly, which will start a monitor-only client
559 * ensure that we don't crash out when trying to stop a thread that hasn't
561 * don't send a 'disconnected' alert when the close method is called
562 * use the correct source when transmitting an abort message as a reposonse
563 to a vendor command with id
565 * check the client version, not the server version in
566 libcec_configuration::operator==()
567 * cec-config: fix physical address detection
568 * LibCecSharp: fixed buffer overrun when copying libcec_configuration.
569 fixes crash when trying to save the configuration in the config gui.
571 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 14 May 2012 22:39:00 +0100
573 libcec (1.6.1-2) unstable; urgency=low
575 * Build depends on pkg-config. (Closes: #669919)
576 * libudev-dev only optionally needed for Linux.
578 -- Andres Mejia <amejia@debian.org> Sat, 21 Apr 2012 19:03:19 -0400
580 libcec (1.6.1-1) unstable; urgency=low
582 [ Mario Limonciello ]
583 * New upstream version (LP: #982272)
586 * New release fixes build failure with GCC-4.7. (Closes: #667241)
587 * Bump to Standards-Version 3.9.3.
589 -- Andres Mejia <amejia@debian.org> Sat, 21 Apr 2012 00:02:08 -0400
591 libcec (1.3.2-3) unstable; urgency=low
593 * Make dpkg-source options default for packaging.
595 -- Andres Mejia <amejia@debian.org> Tue, 10 Jan 2012 18:12:57 -0500
597 libcec (1.3.2-2) unstable; urgency=low
599 * Add options to pass to dpkg-source.
601 -- Andres Mejia <amejia@debian.org> Sun, 08 Jan 2012 22:59:34 -0500
603 libcec (1.3.2-1) unstable; urgency=low
605 * Initial release. (Closes: #655143)
607 -- Andres Mejia <amejia@debian.org> Sun, 08 Jan 2012 15:36:49 -0500
609 libcec (1.6-3) unstable; urgency=low
612 * cec-client: show the firmware build date if available in cec-client -l
613 * cec-client: don't activate the source when starting
614 * cec-client: group up the output of the 'scan' command, and add the
615 currently active source to the output
616 * log the libCEC version in the 'connected to the CEC adapter' log entry,
617 and add the firmware build date to the line if it's available, so all
618 relevant version info is available in 1 log line.
619 * async writes for CUSBCECAdapterCommunication. less locks and polls, more
621 * added 'make docs' target, that updates the doxygen documentation
624 * added operator == and != for libcec_configuration
625 * added GetResponseOpcode(cec_opcode opcode) to cec_command
626 * added the firmware build date to libcec_configuration, so it can be
627 displayed by the client too.
628 * added static CLibCEC::Alert() method and CEC_ALERT_CONNECTION_LOST value
629 * added a callback to handle menu state changes. if the callback method
630 returns 1, then the change is processed by the CCECBusDevice too. if 0,
631 then the CCECBusDevice will always have menu state 'activated', so
632 keypresses are routed. bugzid: 724
633 * added a default menu language to libcec_configuration and set this
634 language for devices controlled by libcec. bugzid: 69
637 * CCECProcessor::IsActiveSource() - TV was never checked
638 * don't call the deprecated SetActiveView() method in cec-client
639 * request the active source if unknown in CCECProcessor::GetActiveSource()
640 * don't try to match a device with PA 0xFFFF.
641 * don't change the power status of a device when changing the stream path
642 * don't set the power status to 'powered off' when marking the source
643 managed by libcec as inactive, or the tv will might send a power control
644 keycode when making it active again, potentially shutting down the system
645 * potential segfault in CCECProcessor::GetDeviceByPhysicalAddress()
646 * stream path changes when changed to the TV source (PA 0)
647 * clear the unsupported features list in CCECBusDevice::ResetDeviceStatus()
648 * never mark vendor commands as unsupported (only some may be unsupported),
649 as well as some others that should never be marked unsupported
650 * don't retry in CCECCommandHandler if the command has been marked as
652 * don't request the PA of devices when handling an incoming CEC command, or
653 it'll block things while waiting for a response. if that response never
654 comes, or comes late, then other incoming commands will be timed out
655 before they are handled
656 * optimisation - strip unneeded virtual keywords from top level
658 * use the vlcommandhandler for the primary device that is handled by libCEC
659 when a panasonic tv is detected, so delayed activate source commands are
660 using the correct handler. bugzid: 723
661 * set the power status of device controlled by libCEC to
663 instead of IN_TRANSITION_STANDBY_TO_ON. reset the device status of a
664 device if it was detected as removed. bugzid: 755
665 * potentially uninitialised values in cec_command
666 * delay the 'active source' command for panasonic, until the vendor command
667 that reports that the TV is powered on has been received. bugzid: 723
668 * only respond to Give Physical Address with Report Physical Address.
670 This fixes several reports of the TV improperly switching to the libcec
671 device after it has previously switched to another source. Fix confirmed
672 with Panasonic and also reported to be an issue with Samsung and
674 * check whether callback methods are set to a valid ptr
675 * number of retries for polls
676 * win32: fix build in paths with spaces. bugzid: 730
677 * LibCecSharp: free the alert GC callback when cleaning up
678 * the wrong setting was being read when powering on devices
679 * close the connection when a comm error was detected, and notify the
681 * don't segfault when calling ThreadsWait() without a valid thread
682 * lib/platform: fixed memleak
683 * leak in CCECAdapterMessageQueue::Write
684 * don't send commands if we know them to be unsupported. bugzid: 725
686 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 18 Apr 2012 11:30:00 +0100
688 libcec (1.6-2) unstable; urgency=low
691 * fixed typo in CUSBCECAdapterCommands::RequestSettings() that prevented
692 the settings from being read. the settings were still written, but never
693 read when bGetSettingsFromROM = 1.
695 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 18 Apr 2012 11:30:00 +0100
697 libcec (1.6-1) unstable; urgency=medium
700 * full firmware V2 support
701 * -o/--osdname argument for cec-client to set a custom osd name
702 * added the firmware version to cec-client's -l / --list-devices command.
704 * added power on command for Samsung AVR devices. bugzid: 361
705 * added buttoncode for 'channels list' on Samsung (0x96)
706 * don't check for the windows ddk when a prebuilt driver installer is
708 * respond to Get Menu Language. bugzid: 547. In the event that the menu
709 language is undefined in libcec (currently the default), the response
710 will be a feature abort.
713 * added the firmware version to libcec_configuration (read-only). bumped
714 server version to 1.6.0. fixed 'unknown server version' message on
716 * added a new setting to control whether to put the TV in standby when the
717 player is put in standby. added some missing bits (version numbers,
718 config) to LibCecSharp. bugzid: 558
719 * added an alert callback. bugzid: 462
720 * added bShutdownOnStandby to libcec_configuration. bugzid: 660. This
721 setting tells the client to shutdown when the TV switches off and is
722 complimentary to bPowerOffOnStandby, which tells the PC to suspend.
723 They are kept separate to maintain backwards compatability.
726 * gcc 4.7 compilation
727 * poll doesn't have an opcode. bugzid: 591
728 * wait for MSGEND when data was received when opening the connection.
730 * mark the correct device as active source after a stream path change.
731 if the new address is not found, but the old address is, then mark the
732 old address as inactive. fixes TV switching back to the old active source
733 when it scans for devices. bugzid: 592
734 * ensure that the vendor ID is sent before trying to activate any SL device
736 * fixed possible crash when in CLibCEC::IsLibCECActiveSource() when libCEC
737 doesn't know which device is the active source. bugzid: 479
738 * correct handling CEC_USER_CONTROL_CODE_POWER. This ensures that the power
739 code always operates as a toggle, depending on the current state, and
740 that SetCurrentButton is always called for a valid user control code.
742 * frequency wasn't checked in GetTimeMs(), leading to incorrect wait times
743 on some windows systems
744 * refactored USB adapter communication. less locks, shorter locks, added
745 documentation, lots of clean ups and no more incoming messages that are
747 * the destructor of CSerialSocket didn't call Close()
748 * added guards in CSerialPort
749 * reset m_socket to INVALID_SERIAL_SOCKET_VALUE after closing the
751 * always wait for thread exit in CThread's desctructor
752 * crash on exit after GetDeviceInformation()
753 * check whether the destination is valid before setting anything in
754 m_bWaitingForAck. fixes heap corruption and crash on exit. bugzid: 479
755 * bUseTVMenuLanguage from libcec_configuration wasn't copied in
756 SetConfiguration(), so this setting was reset to the default value
757 (enabled) every time. bugzid: 617
758 * request the vendor id of a device if needed when the device status is
759 changed into 'present'. bugzid: 361
760 * give priority to messages from the TV. removed the global lock in
761 CCECProcessor when sending. this is no longer needed. bugzid: 238
762 * add some bounds checking to the HDMI port number. bugzid: 508
763 * fixed usbser.sys copying in the driver .INF. bugzid: 503
764 * only update the physical address when it has actually changed. bugzid:
766 * moved the static variables in os-threads from the header to a separate
767 cpp file, or it could lead to problems when included multiple times
768 * don't send an active source command when the physical address couldn't be
769 set, or it might confuse other CEC devices
770 * serial socket timeouts. bugzid: 654
771 * fixed possible crash when trying to request a vendor id of a device when
772 the address of libCEC isn't known yet. bugzid: 654
773 * extra guard so no commands are transmitted without a valid initiator.
775 * moved the timed ping to a separate thread. bugzid: 654
776 * persist settings directly when they're changed, only persist settings
777 that actually changed, only instruct the device to persist the settings
778 in eeprom when something changed, and don't persist settings on exit.
780 * cec-config-gui: persist settings both in the eeprom and in the settings
782 * validate the input in CCECProcessor::IsActiveSource(). fixes potential
783 crash when the active source isn't known. bugzid: 671
785 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 16 Apr 2012 18:03:00 +0100
787 libcec (1.5-4) unstable; urgency=low
790 * OS-X installation requirements and pointer
791 * full v2 firmware support:
792 * ping the adapter every 15 seconds. bugzid: 541
793 * added v2 msgcodes. bugzid: 543
794 * implemented the write methods for the v2 configuration. bugzid: 543
795 * included the logical addresses in the persisted configuration for v2.
797 * persist the configuration before closing the connection. only try to
798 persist the configuration when talking to a v2 firmware. bugzid: 543
799 * added GetSetting() to CUSBCECAdapterCommunication. bugzid: 543
800 * read the persisted settings from the ROM, and update it in
801 libcec_configuration if found. bugzid: 543
802 * cec-client: set bGetSettingsFromROM to 1 in cec-client. bugzid: 543
803 * cec-client: only read persisted EEPROM settings when -r or --rom is
804 provided as cmdline arg. bugzid: 543
805 * call SetControlledMode(false) as last command when closing the
806 connection in v2. bugzid: 542
807 * initial FreeBSD support: simply try to use ttyU*
810 * set controlled mode and retry to send the previous command if it failed
811 with MSGCODE_COMMAND_REJECTED
812 * m_iLineTimeout was never initialised and used. fixes MSGCODE_REJECTED
813 when transmitting a message and incorrect line timeouts being used
814 * mac configure compile bugzid: 157
815 * cec-config-gui: fixed application exit when the user clicked 'no' when
816 asked to reconnect. bugzid: 556
817 * only wait for multiple 'command accepted' response when sending a
818 transmit command, and only to 1 in other cases. bugzid: 543
819 * set the correct logical address mask before switching to autonomous mode.
821 * re-added SetLineTimeout(). bugzid: 543
822 * CUSBCECAdapterCommunication::SetControlledMode checked for the wrong sent
824 * os-x: don't add 0.5 before dividing in GetTimeMs()
825 * os-x: struct timespec now values weren't set correctly
827 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 16 Mar 2012 10:12:00 +0100
829 libcec (1.5-3) unstable; urgency=low
833 * default to firmware version 1 after 3 tries. some versions didn't send a
835 * fixed cec-config win32 compilation
837 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sat, 03 Mar 2012 15:21:00 +0100
839 libcec (1.5-2) unstable; urgency=low
842 * added Toshiba's vendor id, and set the device ID of the primary device to
843 Toshiba's and transmit it when starting
844 * lock in SyncedBuffer
845 * added a timeout to StopThread()
846 * also add commands to unsupported features when receiving
847 CEC_ABORT_REASON_REFUSED
848 * cec-config-gui: set cbPortNumber enabled when the physical address
849 override isn't checked instead
850 * cec-config-gui: added support for the new 'send inactive source' setting
853 * added an 'send inactive source' option to libcec_configuration, only
854 supported by client/server 1.5.1 and up. bugzid: 439
855 * added a command to the interface to start the bootloader directly,
856 without going through all checks. bugzid: 218
857 * LibCecSharp: implemented support for the new 'send inactive source'
861 * don't send an updated configuration when libCEC hasn't been initialised
863 * don't send an updated configuration back when initialising. let the
864 client call the GetCurrentConfiguration() method. bugzid: 459
865 * configuration updates from libCEC. bugzid: 459
866 * fixed accidental double deref. the method parameter already does that.
868 * use CLOCK_MONOTONIC for timing info, since gettimeofday is affected by
869 ntp and by manually adjusting the system time
870 * the timeout value of pthread_cond_timedwait has to be referenced to
872 * don't add data to the input buffer in CUSBCECAdapterCommunication before
873 it's fully initialised
874 * fixed return value of CUSBCECAdapterCommunication::ParseMessage(). fixes
875 messages not being parsed in certain occasions
876 * don't try to transmit when the processor is being stopped
877 * set the server version in the LibCEC's constructor, since this is
878 checked by clients. fixes 'invalid libCEC version' popup when inserting
880 * don't wait for the full timeout to pass in CCECProcessor::
881 OpenConnection(), but retry to connect 2 times. fixes 'port busy' errors
882 when initialising libCEC. bugzid: 436
883 * use the correct Sleep() method in CCECProcessor::OpenConnection(). the
884 thread hasn't been started there yet, so the sleep wasn't working. fixes
885 'device or resource busy' when plugging in the adapter. bugzid: 436
886 * check the adapter ping and firmware before starting the reader thread, so
887 we really leave the com port alone for a second when it fails because of
888 a busy error. bugzid: 436
889 * ensure that the connection is really closed before retrying to connect.
891 * LibCecSharp: recreate the delegates properly when (re)connecting to
894 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 28 Feb 2012 21:19:00 +0100
896 libcec (1.5-1) unstable; urgency=low
899 * a new libcec_configuration structs, which allows the client app to pass
900 a number of new options, like waking multiple devices on startup,
901 overriding the vendor id, etc.
902 * a new configuration GUI for Windows (.NET). this allows you to set
903 libCEC's configuration for XBMC in a convenient GUI.
904 * a CLI configuration tool (unfinished) for other platforms. will be
905 finished in an update.
906 * implemented power up for LG devices other than a TV
907 * win32: don't install libcec to the system directory by default, and
908 delete previous (testing) copies if present
909 * wait for multiple responses, not just for one at a time
910 * set the ackmask to 0 when closing the connection
911 * don't send 'image view on' when calling SetActiveSource()
912 * don't send power on, acitve source and standby commands by default in
914 * platform: added CTryLockObject
915 * platform: added an Init() method in CTimeout, so it can be reset
918 * added a new initialiser method: CecInitialise()/cec_initialise(), that
919 accepts a "libc_configuration" struct as parameter. this way, the
920 signature of the init method can stay the same when adding new options.
921 in LibCecSharp, the new method appears as a new constructor.
922 * added CanPersistConfiguration()/cec_can_persist_configuration()
923 * added PersistConfiguration()/cec_persist_configuration()
924 * added GetCurrentConfiguration()/cec_get_current_configuration()
925 * added SetConfiguration()/cec_set_configuration()
926 * added GetLogicalAddresses()/cec_get_logical_addresses(): returns the list
927 of addresses controlled by libCEC
928 * added RescanDevices()/cec_rescan_devices(): lets libCEC force polls to
929 all logical addresses.
930 * added a callback that is called when libCEC's configuration changed.
931 * moved the autodetect address api call to libcec_configuration. only send
932 power up commands to non-tv devices when the power state is not
933 on/transition->on. let players call the power up/power down command.
934 * return the anynet return keycode directly instead of translating it to
935 'return' for v1.5.0+ clients
936 * extracted CecSharpTypes.h in LibCecSharp. LibCecSharp is now in the
938 * include the local cectypes.h in cec.h and cecc.h instead of system wide
939 * deprecated GetLibVersion() methods. use libcec_configuration instead
940 * removed deprecated CECCreate() method
943 * fixed a lot of LG specific issues
944 * fixed OS-X compilation. credits: Dustin Cooper
945 * fixed a couple of possible deadlocks, e.g. when closing the connection
947 * cleaned up existing code
948 * libCEC no longer puts incoming data in a fifo buffer, but tries to
949 process it directly, which fixes issues like libCEC blocking processing
950 new commands while waiting for transmission acks.
951 * 'unsupported command' marking in CCECBusDevice
952 * ensure that the ackmask is always set to 0 when closing the connection
953 and that the call doesn't block the Close() call
954 * don't try to read or write in CUSBCECAdapterCommunication when the
955 connection has been closed
956 * LibCecSharp: added quotes to the linker statement for libcec.lib. fixes
957 compilation in paths with spaces. closes #20
958 * LibCecSharp: set the callback methods in libcec to NULL before closing
959 the connection, since these might already have been destroyed in .NET
960 * LibCecSharp: delete the internal callback struct when closing the
962 * LibCecSharp: pass correctly formatted logical address lists
963 * ensure that the vendor id is requested first when requesting info from a
964 device, so we are using the correct handler
965 * keep the 'busy state' of the command handler in CCECBusDevice
966 * poll the next device when the current is handled by libCEC.
967 * check the vendor id of a device before sending a power on command
968 * ensure that there always is at least one device type set
969 * transmit a keypress and key release as power on command when the target
971 * don't do a full reinit when not needed
972 * fix active source switches for the standard CEC implementation
973 * ensure that we don't send data to ourself
974 * check whether the port is open, not whether libCEC is initialised in
976 * platform: fixed return value from CCondition::Wait()
977 * platform: don't broadcast but wake one thread in
978 CProtectedSocket::MarkReady()
979 * platform: include stdint.h in windows/os-types.h instead of typedef'ing
981 * platform: fixed tcp socket error handling and return value.
982 * platform: fixed return values of socket operations in lib/platform
983 * platform: added predicate in CCondition
984 * deleted the signed driver from the tree, since that doesn't work. let the
985 installer create a new signed driver on the production build system
987 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 19 Feb 2012 01:04:00 +0100
989 libcec (1.4-4) unstable; urgency=low
992 * added tcp client sockets to lib/platform (WIP)
993 * clean up lib/platform
994 * added: set controlled mode on after opening a connection to the adapter
996 * added an IAdapterCommunicationCallback interface an use a callback method
997 to pass newly received cec_commands to CCECProcessor
998 * added "driver only" and "driver + libcec" sections to the installer
999 * added a signed driver
1000 * created a separate driver installer, which is included in the libCEC
1001 installer. uninstalls the old unsigned version of libCEC and the driver
1002 when it's found and installs the new one in C:\Program Files(x86)\
1003 Pulse Eight\USB-CEC Adapter.
1004 * don't sign development binaries with a temporary key. devs can do that
1005 themselves when they want LibCecSharp in the GAC
1006 * interface changes:
1007 * added SetStreamPath()/cec_set_stream_path_logical()/
1008 cec_set_stream_path_physical() to the interface, to send a
1009 "set stream path" command over the CEC bus, used to activate another
1012 * transmit 'menu state activated' after the stream path has been set to a
1013 device that is handled by libCEC. should fix remote commands not working
1014 properly on Panasonic TVs and after another source has been active.
1016 * set the ackmask to 0x0 when trying to find a free logical address
1017 * keep trying to reconnect to the com port until the timeout runs out.
1019 * wait 500 ms before trying to retransmit a command. always wait for the
1020 result of a transmission in CCECCommandHandler::Transmit()
1021 * receive and send full cec_commands, not CCECAdapterMessages in
1022 CAdapterCommunication. extract an IAdapterCommunication interface. fixed
1023 potentially missed data in CAdapterCommunication
1024 * close and delete the connection when the processor thread ends. fixes
1025 reconnect after standby (access denied / connection already opened)
1026 * don't replace handlers when not initialised, or the primary device's
1027 logical addres isn't known yet, which can lead to crashes. don't call
1028 handlers directly in CCECProcessor without holding a lock on them
1029 * fixed possible crash when command handler were switched while it was
1031 * keep the mutex locked when calling ReplaceHandlers() in CCECProcessor
1032 * win32: also timeout when data is received in SocketRead()
1033 * win32: fixed < vista runtime and compilation
1034 * win32: ping the adapter and request the firmware version in
1035 CUSBCECAdapterCommunication instead of CCECProcesssor. fixes failed
1037 * win32: fixed crash on exit in LibCecSharp
1039 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 6 Feb 2012 14:26:00 +0100
1041 libcec (1.4-3) unstable; urgency=low
1044 * try to ping the device and grab the firmware version until the connect
1045 timeout runs out. fixes failed reconnect after standby, when the adapter
1046 is still being initialised
1048 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 27 Jan 2012 13:05:00 +0100
1050 libcec (1.4-2) unstable; urgency=low
1053 * added a firmware flash script for linux.
1054 usage: ./support/cec-flash-device.sh /path/to/firware.hex
1055 * refactored threading/locking - added windows native instead of
1056 pthread-win32, so we can compile native x64 too
1057 * check whether the adapter responds when connecting to it and report the
1058 firmware version of the adapter after connecting
1059 * moved create-installer.cmd to support/
1060 * completely removed AM_SILENT_RULES
1061 * interface changes:
1062 * compile LibCecSharp against .NET framework 2.0 and sign the assembly
1064 * only the key release events were sent, not keypresses, which appeared in
1065 clients as laggy keypresses
1066 * fixed reconnect after standby
1067 * wait for active tranmission to finish when opening a connection to the
1068 adapter. fixes initialisation errors
1069 * set the default transmit timeout properly instead of using 0
1070 * fixed possible deadlock because of a negative timeout in
1071 CAdapterCommunication::WaitForTransmitSucceeded()
1072 * fixed error message in cec-client (unable to open the device on port ...)
1073 * exit cec-client after entering bootloader mode
1074 * MSGCODE_START_BOOTLOADER doesn't respond with MSGCODE_COMMAND_ACCEPTED
1076 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 25 Jan 2012 23:28:00 +0100
1078 libcec (1.4-1) unstable; urgency=low
1081 * added the vendor id for Sony
1082 * always refresh the power state of a device when it hasn't been updated
1084 * do silent builds by default
1085 * interface changes:
1086 * added optional callback methods to libCEC. enable them by calling
1087 EnableCallbacks(ICECCallbacks *callbacks) /
1088 cec_enable_callbacks(ICECCallbacks *callbacks). after this method is
1089 called, the GetNext...() methods will not return any data
1090 * added the same callbacks to LibCecSharp. implement CecCallbackMethods
1091 and override the methods in there
1093 * use the given timeout when trying to open a connection to the CEC
1095 * resolved difference between method name in LibCECC.cpp and cecc.h.
1096 credits: Doug Johnson
1097 * don't transmit physical addresses while holding a lock in CCECProcessor
1098 * don't hold a lock when sending an active source message.
1099 * unload libCEC when the lib version is invalid
1100 * "unused" warnings suppressed
1102 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 12 Jan 2012 19:06:00 +0100
1104 libcec (1.3-3) unstable; urgency=low
1107 * place in libudev include in an extern C block. fixes compilations on
1108 older libudev versions (e.g. on Hardy). closes #2. credits @fbuenemann
1109 * added pkg-config to the dependencies list. issue #15
1110 * updated README. closes #14
1111 * added a script that tests some basic functions of the CEC adapter:
1112 /support/cec-test-device.sh
1114 * don't make libCEC the active source when changing the physical address.
1115 don't send active source messages on startup, when not the active source
1116 fixes unwanted device power ups
1117 * replace the command handler directly after receiving a changed vendor
1118 id. change the primary type from recording device to playback device
1120 * don't send a deck status update when sending an active source message
1122 * only switch handlers once when using the generic handler
1123 * don't switch handlers when not needed
1124 * hold a lock in CCECProcessor::SetHDMIPort()
1125 * don't send deck status updates when sending an active source message by
1128 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 3 Jan 2012 22:48:00 +0100
1130 libcec (1.3-2) unstable; urgency=low
1133 * copy libcec.dll to the XBMC installation dir when XBMC is found
1134 * disable background polling. let the client request this info when needed
1135 * update the power status of a device when it's set to
1136 CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON
1137 * wait for the correct response when requesting something, not just any
1139 * don't keep trying the same command/request after receiving a feature
1141 * interface changes:
1142 * change the previously unused boolean parameter in volume control methods
1143 to bSendRelease, and only send a key release when it's true. default to
1146 * don't send the power up/down keypress to listeners when in the initial
1147 device state (powered off). fixes unexpected shutdown in XBMC when
1148 connecting to the CEC adapter.
1149 * send a 'menu state activated' command when starting up. bugzid: 113
1150 * don't wait for a response when not needed
1151 * don't hold a lock while waiting for a response. fixes failed libCEC
1152 inits and slow responses
1153 * don't replace a command handler when it's being used. fixes possible
1155 * don't try to do anything before the processor thread has started
1156 * don't transmit active source messages when the physical address is
1158 * don't init the default handler before the physical address is known
1160 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 29 Dec 2011 03:05:00 +0100
1162 libcec (1.3-1) unstable; urgency=low
1165 * make libudev optional. if libudev is not available on linux, adapter
1166 autodetection will also not be available. fixes compilation on Hardy/ATV1
1167 * added a C++ CLR wrapper for libCEC, so libCEC can be used by any .NET
1169 * added vendor support for LG
1170 * added vendor support for Philips
1171 * added vendor support for Yamaha
1172 * added vendor support for Onkyo
1173 * added 'scan' command to cec-client, that displays info about devices on
1174 the bus. made all ToString() methods available on the interface.
1175 * added '-s' or '--single-command' to cec-client. starting cec-client with
1176 this parameter executes a single command in cec-client and does not power
1177 on devices on startup and power them off on exit. this way, you can use
1178 cec-client in a shell script. since there's some handshaking involved at
1179 startup, this is not very fast. to execute a command and only display the
1180 result and any error/warning, execute it with
1181 RESULT=`echo command | cec-client -s -d 3` (on linux/osx, win32 batch
1182 files are a bit different)
1183 * added HDMI port ('-p' or '--port') and base device ('-b' or '--base') to
1184 cec-client's parameters
1185 * handle image view on and text view on
1186 * handle routing information and report physical address opcodes
1187 * handle audio status updates
1188 * send ping and bootloader commands via the output queue
1189 * scan the CEC bus for devices when starting libcec
1190 * pass all commands that are directed at libcec to listeners
1191 * interface changes:
1192 * added GetActiveSource()/cec_get_active_source()
1193 * added IsActiveSource()/cec_is_active_source()
1194 * added GetDevicePhysicalAddress()/cec_get_device_physical_address()
1195 * added GetDeviceOSDName()/cec_get_osd_name()
1196 * added SendKeypress()/cec_send_keypress() and SendKeyRelease()/
1197 cec_send_key_release()
1198 * added VolumeUp()/cec_volume_up(), VolumeDown()/cec_volume_down(),
1199 MuteAudio()/cec_mute_audio()
1200 * added GetActiveDevices()/cec_get_active_devices(), IsActiveDevice()/
1201 cec_is_active_device(), IsActiveDeviceType()/cec_is_active_device_type().
1202 * added SetHDMIPort()/cec_set_hdmi_port(). devices are now detected on load
1203 and when a device with the same physical address is detected, libcec will
1204 use the selected hdmi port on that device. should fix source selection on
1205 other devices, like an amplifier
1206 * added a hook in libcec for physical address autodetection
1208 * don't request the physical address from the tv (it's always 0x0000)
1209 * set the proper ackmask before doing anything else
1210 * don't unlock the transmit mutex in CCECProcessor while waiting for an
1212 * fix device polling
1213 * refactor CEC read/write. keep a single lock for all writes, not one per
1215 * ignore other data while waiting for a response
1216 * retry failed tranmissions
1217 * don't delete a message before it's been sent when starting the bootloader
1218 * or when sending a ping
1219 * fixed possible segfault when switching the command handler after a vendor
1221 * handle audio opcodes correctly
1222 * inactive source should be directly addressed at the TV
1223 * don't report a changed physical address when it hasn't changed
1224 * routing information sets the stream path, not the physical address
1225 * don't scan the whole bus in CCECProcessor::IsActiveDeviceType()
1226 * don't request the vendor id from devices that are handled by libcec
1227 * mark device status as present when a command was received from a device
1228 * always send a power on command in CCECBusDevice::PowerOn()
1229 * don't request updates statusses unless needed
1230 * report physical address sends 3 parameters, not 2. check whether the
1231 device type is correct
1232 * devices can send vendor commands from other vendors, so don't assume the
1233 device is of a certain vendor when it sends commands with a vendor id
1234 * thread safety fixes. bugzid: 19
1235 * clear any previous input when opening a connection to the adapter.
1237 * use the correct source address in CSLCommandHandler::HandleVendorCommand()
1238 * uncorrected CEC_OPCODE_DEVICE_VENDOR_ID. closes #5
1239 * renamed enum methods. fixes potential macro collision with isset().
1241 * don't change the active device when receiving stream path changed
1242 messages. fixes wrong source selection when powering after the TV.
1244 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 09 Dec 2011 12:16:00 +0100
1246 libcec (1.2-1) unstable; urgency=low
1249 * pass the deck_control command to libcec listeners
1250 * check whether the initiator is valid in CCECProcessor::ParseCommand().
1251 fixes possible segfault when parsing invalid data
1253 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sat, 12 Nov 2011 13:36:00 +0100
1255 libcec (1.1-3) unstable; urgency=low
1257 * fixed return value in CCECProcessor::SetStreamPath(), which prevented
1258 active source and menu state from being sent
1260 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 23:36:00 +0100
1262 libcec (1.1-2) unstable; urgency=low
1264 * forgot to update the headers to v1.1
1266 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 18:56:00 +0100
1268 libcec (1.1-1) unstable; urgency=low
1270 * interface changes:
1271 * added logical address autodetection and let libcec handle multiple types
1272 simultaniously. for logical address autodetection, you have to use
1273 CECInit()/cec_init_typed() instead of CECCreate()/cec_init()
1274 * added SetActiveSource()/cec_set_active_source() to the interface.
1275 deprecated SetActiveView()/cec_set_active_view()
1276 * added SetMenuState()
1277 * added PollDevice()/cec_poll_device()
1278 * removed duplicate method SetActiveSource() / SetActiveView()
1279 * added SetDeckControlMode() and SetDeckInfo()
1281 * added vendor detection for panasonic and broadcast active view and set
1282 menu state when a panasonic device sets the stream path. thanks for the
1284 * added vendor code for pioneer
1285 * osd string is 13 chars max. don't send more
1286 * send the correct cec version for each device
1287 * switch to panasonic specific cec implementation if a panasonic device was
1289 * send the correct device type in TransmitPhysicalAddress()
1290 * send a reply from the correct device when the stream path is requested
1291 * opcode 0x80 means the stream path changed, not the physical address
1292 * don't poll for a vendor ID in monitoring mode
1293 * fixed parameter parsing in SetVendorId()
1294 * buffer up commands that are received while waiting for an ack. only send
1295 'active source' message for the actual active source
1296 * win32: prepend the com port path with '\\.\', so com ports > 9 can be
1297 accessed. thanks smolesen
1298 * audio systems cannot be an active source, so don't transmit active
1299 source message from this device
1300 * only send 'active source' when powered on
1301 * only set the osd name for the primary device. use default values for
1303 * increase physical address with 0x100 per device
1304 * win32: removed unneeded afxres.h include in the resource files, which
1305 is not present when using studio express. thanks Ghuron
1307 * mark the active source as active and other devices as inactive
1308 * set the power status to 'on' when receiving CEC_USER_CONTROL_CODE_POWER
1309 * transmit the menu state as (active) when the stream path is set
1311 * changed copyright of boblight files with permission of the original
1313 * partial handling of audio related opcodes
1314 * more consistent log messages
1315 * set a device type and name for each CCECBusDevice
1316 * keep a power and menu state per device
1317 * renamed all Broadcast...() and Report...() methods to Transmit...()
1318 * renamed SetOSDString() to TransmitOSDString()
1319 * changed debug level of 'did not receive ack' from error to debug
1320 * only set the power status to 'on' for the primary device
1321 * moved method decriptions from cecc.h to cec.h
1322 * only send a power on command when a device isn't on already and set
1323 the power state to CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON while
1325 * handle CEC_OPCODE_STANDBY
1326 * handle CEC_OPCODE_ACTIVE_SOURCE
1327 * always start in standby mode and let the tv (or other device) send the
1329 * renamed the last few enums
1330 * handle deck related opcodes.
1331 * added TransmitVendorId(), but only transmit the id if it's not set to 'unknown'
1333 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 17:42:00 +0100
1335 libcec (1.0-1) unstable; urgency=low
1337 * interface changes:
1338 * set lib interface version back to 1.0 and rename GetLibVersion() to
1339 GetLibVersionMajor() and GetMinVersion() to GetMinLibVersion()
1340 * added GetLibVersionMinor()/cec_get_lib_version_minor() and set the minor
1343 * samsung's vendor specific remote keypresses don't send key releases. added
1344 call to AddKey() directly after the keypress
1345 * always reset the button press time in CLibCEC::AddKey()
1346 * always wait for a signal in CCECProcessor::Transmit()
1348 * drop shared_ptr and use a normal pointer. removed boost dependency
1350 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 04 Nov 2011 00:14:00 +0100
1352 libcec (0.8-2) unstable; urgency=low
1354 * added 'libboost-dev' to build deps
1356 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 01 Nov 2011 23:31:00 +0100
1358 libcec (0.8-1) unstable; urgency=low
1360 * interface changes:
1361 * added GetDevicePowerStatus()/cec_get_device_power_status()
1362 * added GetDeviceVendorId()/cec_get_device_vendor_id()
1363 * added GetDeviceMenuLanguage()/cec_get_device_menu_language()
1364 * added GetDeviceCecVersion()/cec_get_device_cec_version()
1365 * added SwitchMonitoring()/cec_switch_monitoring() to the interface. when
1366 monitoring is enabled, the device will only log the data it received,
1367 but will not respond to any message
1368 * removed timeout parameter in Transmit() and included the ack timeout in
1369 the cec_command struct
1370 * made the vendor id -> vendor name translation available
1371 * made CEC_LOG levels powers of 2
1372 * introduced CEC_LOG_TRAFFIC log level
1374 * set the correct ackmask on startup
1375 * wait for ack while keeping a lock
1376 * wait for the processor thread to start before continueing on startup
1377 * wait for messages to be transmitted before continueing in
1378 CCECProcessor::Transmit()
1379 * only set the logical address once when it has changed
1380 * correct source for broadcast messages
1381 * win32: create Release type installer
1383 * make all reads and write in CAdapterCommunication go through buffers.
1384 * poll for a vendor ID of connected devices and switch to a non-standard
1385 CEC implementation if needed.
1386 * added vendor detection of Samsung and LG devices
1387 * handle samsung remote command 'return'
1389 * added -la and --logical-address to the command line params
1390 * added -d and --log-level params to cec-client
1391 * added -sf and --short-log-file, which only log the actual messages, not
1392 the level and timestamp
1393 * added -f and --log-file parameters to cec-client
1394 * added option to change the log level to cec-client
1396 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 01 Nov 2011 22:58:00 +0100
1398 libcec (0.7-1) unstable; urgency=low
1400 * send a keypress with 0 duration when a key is pressed and with a duration
1401 set when it's released
1402 * added SetOSDString() to the interface (not supported by all tvs)
1403 * fixed: 'routing change' is a broadcast message. log routing changes, but
1404 don't send a 'set active view' message, so the active input won't be
1406 * log keypresses in the debug log
1407 * added 'pa' command to cec-client, to change the physical address
1408 * added SetPhysicalAddress()/cec_set_physical_address() to the interface, so
1409 the HDMI port number to use can be changed
1410 * fixed: put the message processing code from WaitForAck() in ParseMessage().
1411 fixes missing incoming message logging of non-data messages when not
1413 * added 'txn' command to cec-client. same as 'tx', but doesn't wait for ACK
1415 * fixed: set initiator and destination first in cec_command::push_back().
1416 fixes 'tx' command in cec-client
1417 * fixed: keep trying to connect while iTimeout isn't reached (default 10
1418 seconds). fixes exit with a 'permission denied' error when the device isn't
1419 ready yet. remove CEC_SETTLE_DOWN_TIME
1420 * fixed: don't call SetActiveView() when reporting the power status. fixes
1421 loop which causes some TVs to report failed connections
1422 * fixed: eom was not being parsed when receiving MSGCODE_FRAME_DATA. fixed.
1423 * fixed: add the device type as parameter when sending the physical address.
1425 * fixed: typo in libcec.pc.in
1426 * added optional strLib parameter to LoadLibCec(), so the location of the
1427 shared library can be specified
1428 * only link cec-client against ld. use AC_SEARCH_LIBS instead of AC_CHECK_LIB
1429 * use int instead of bool on the public C interface and remove stdbool.h include
1430 * renamed: CECExports.h => cec.h, CECExportsC.h => cecc.h, CECLoader.h =>
1431 cecloader.h, CECTypes.h => cectypes.h
1432 * updated debian package. split up libcec and libcec-dev
1433 * fixed: changed to use dlopen instead of static linkage. shuffled headers a
1434 bit. bumped interface to version 7
1435 * removed 'rt' from libraries. it's not needed (anymore)
1436 * fixed: reset the active view after a routing change. issue #1
1437 * fixed: changed attached license to be GPLv2 instead of GPLv3 this was an
1438 error as libCEC is licensed GPLv2 not GPLv3 thanks @garbear
1439 * added contributors link
1441 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 14 Oct 2011 17:34:00 +0200
1443 libcec (0.6-1) unstable; urgency=low
1445 * bumped interface version to 6
1446 * fixed packet output (reporting the OSD name correctly now)
1447 * refactored packet structs: split up in cec commands and adapter messages
1449 * added Darwin support (thanks Davilla!)
1450 * fixed WaitForAck()
1451 * fixed possible deadlock when starting a new thread
1452 * implemented vendor id and device class parsing. full detection will follow
1453 * added "on" and "standby" commands to the test client
1454 * retransmit packets if needed
1455 * fix GetTimeMs() on linux
1456 * added timestamp to log messages
1458 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sun, 09 Oct 2011 15:15:00 +0200
1460 libcec (0.5-1) unstable; urgency=low
1462 * bumped interface version to 5
1463 * don't pass std::string and std::vector accross the interface
1464 * fixed heap corruption crashes on windows
1465 * fixed some memory leaks
1466 * reset all structs to default values before doing with them
1468 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 07 Oct 2011 22:00:00 +0200
1470 libcec (0.4-3) unstable; urgency=low
1473 * fixed some threading related bugs
1474 * fixed deadlock on exit
1475 * fixed wrongly reported physical address
1477 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 06 Oct 2011 00:19:00 +0200
1479 libcec (0.4-2) unstable; urgency=low
1481 * fixed int parameter sizes and some signed/unsigned warnings
1482 * check whether m_port isn't NULL in ReadFromDevice
1483 * stop the processor thread and delete the CSerialPort instance on exit
1484 * added mutex in CSerialPort
1485 * fix segfault on exit
1486 * renamed libPlatform -> platform.
1487 * stuck everything from libCEC in the CEC namespace to avoid namespace
1490 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 04 Oct 2011 23:45:00 +0200
1492 libcec (0.4-1) unstable; urgency=low
1494 * bumped interface version to 4
1495 * timeout parameter removed from Close()/cec_close(). return type changed to
1497 * added cec_destroy() method
1498 * removed timeout parameter from Transmit()
1499 * change the default argument of PowerOnDevices() to CECDEVICE_TV
1500 * removed PowerOffDevices(). use StandbyDevices() instead
1501 * removed obsolete methods from the interface
1502 * fixed bug: pthread_cond_wait was called without the mutex locked
1503 * fixed possible deadlock: don't send messages and wait for an ack with the
1504 mutex locked in CCECParser
1505 * created a separate reader thread and fixed the 'lock timeout' bug
1506 * testclient: use CECDEVICE_TV instead of the default argument
1507 (CECDEVICE_BROADCAST) for PowerOnDevices() and PowerOffDevices()
1509 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 04 Oct 2011 00:48:00 +0200
1511 libcec (0.3-1) unstable; urgency=low
1513 * added device detection support for Windows
1515 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sun, 02 Oct 2011 12:09:33 +0200
1517 libcec (0.2-1) unstable; urgency=low
1519 * added a Close() method to the interface
1520 * Added CEC command that were received by the adapter in a buffer that can be
1521 read by a client with GetNextCommand()/cec_get_next_command(). added a
1522 'help' command to the test client, that displays all available commands
1523 * Fixed setting the ackmask. deprecated SetAckMask()/cec_set_ack_mask(). use
1524 SetLogicalAddress()/cec_set_logical_address() instead. add 'la' command to
1525 the testclient to set the logical address of the cec adapter
1526 * Added optional logical and physical address parameters to
1527 LoadLibCec()/cec_init() on the interface. fixed wrongly placed namespace
1528 close tag in CECExports.h. updated interface documentation. bumped
1529 interface version to 2.
1530 * fixed hardcoded ackmask in SetAckMast(). set a shorter display name in the
1531 test client. the previous one was too long and being rejected
1533 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 28 Sep 2011 01:33:00 +0200
1535 libcec (0.1-1) unstable; urgency=low
1537 * Initial release v0.1
1539 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 28 Sep 2011 23:55:48 +0200