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