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