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