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