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