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