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