1 libcec (1.6-1) unstable; urgency=medium
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.
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
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.
17 * added the firmware version to libcec_configuration (read-only). bumped
18 server version to 1.6.0. fixed 'unknown server version' message on
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.
31 * poll doesn't have an opcode. bugzid: 591
32 * wait for MSGEND when data was received when opening the connection.
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
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.
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
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
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:
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.
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.
84 * cec-config-gui: persist settings both in the eeprom and in the settings
86 * validate the input in CCECProcessor::IsActiveSource(). fixes potential
87 crash when the active source isn't known. bugzid: 671
89 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 16 Apr 2012 18:03:00 +0100
91 libcec (1.5-4) unstable; urgency=low
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.
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*
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.
125 * re-added SetLineTimeout(). bugzid: 543
126 * CUSBCECAdapterCommunication::SetControlledMode checked for the wrong sent
128 * os-x: don't add 0.5 before dividing in GetTimeMs()
129 * os-x: struct timespec now values weren't set correctly
131 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 16 Mar 2012 10:12:00 +0100
133 libcec (1.5-3) unstable; urgency=low
137 * default to firmware version 1 after 3 tries. some versions didn't send a
139 * fixed cec-config win32 compilation
141 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sat, 03 Mar 2012 15:21:00 +0100
143 libcec (1.5-2) unstable; urgency=low
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
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'
165 * don't send an updated configuration when libCEC hasn't been initialised
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.
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
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
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.
195 * LibCecSharp: recreate the delegates properly when (re)connecting to
198 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 28 Feb 2012 21:19:00 +0100
200 libcec (1.5-1) unstable; urgency=low
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
218 * platform: added CTryLockObject
219 * platform: added an Init() method in CTimeout, so it can be reset
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
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
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
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
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
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
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
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
291 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 19 Feb 2012 01:04:00 +0100
293 libcec (1.4-4) unstable; urgency=low
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
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
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
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.
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.
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
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
341 * win32: fixed crash on exit in LibCecSharp
343 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 6 Feb 2012 14:26:00 +0100
345 libcec (1.4-3) unstable; urgency=low
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
352 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 27 Jan 2012 13:05:00 +0100
354 libcec (1.4-2) unstable; urgency=low
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
366 * compile LibCecSharp against .NET framework 2.0 and sign the assembly
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
380 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 25 Jan 2012 23:28:00 +0100
382 libcec (1.4-1) unstable; urgency=low
385 * added the vendor id for Sony
386 * always refresh the power state of a device when it hasn't been updated
388 * do silent builds by default
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
397 * use the given timeout when trying to open a connection to the CEC
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
406 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 12 Jan 2012 19:06:00 +0100
408 libcec (1.3-3) unstable; urgency=low
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
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
424 * don't send a deck status update when sending an active source message
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
432 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 3 Jan 2012 22:48:00 +0100
434 libcec (1.3-2) unstable; urgency=low
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
443 * don't keep trying the same command/request after receiving a feature
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
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
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
462 * don't init the default handler before the physical address is known
464 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 29 Dec 2011 03:05:00 +0100
466 libcec (1.3-1) unstable; urgency=low
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
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
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
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
517 * refactor CEC read/write. keep a single lock for all writes, not one per
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
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.
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().
545 * don't change the active device when receiving stream path changed
546 messages. fixes wrong source selection when powering after the TV.
548 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 09 Dec 2011 12:16:00 +0100
550 libcec (1.2-1) unstable; urgency=low
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
557 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sat, 12 Nov 2011 13:36:00 +0100
559 libcec (1.1-3) unstable; urgency=low
561 * fixed return value in CCECProcessor::SetStreamPath(), which prevented
562 active source and menu state from being sent
564 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 23:36:00 +0100
566 libcec (1.1-2) unstable; urgency=low
568 * forgot to update the headers to v1.1
570 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 18:56:00 +0100
572 libcec (1.1-1) unstable; urgency=low
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()
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
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
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
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
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
615 * changed copyright of boblight files with permission of the original
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
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
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'
637 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 17:42:00 +0100
639 libcec (1.0-1) unstable; urgency=low
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
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()
652 * drop shared_ptr and use a normal pointer. removed boost dependency
654 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 04 Nov 2011 00:14:00 +0100
656 libcec (0.8-2) unstable; urgency=low
658 * added 'libboost-dev' to build deps
660 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 01 Nov 2011 23:31:00 +0100
662 libcec (0.8-1) unstable; urgency=low
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
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
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'
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
700 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 01 Nov 2011 22:58:00 +0100
702 libcec (0.7-1) unstable; urgency=low
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
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
717 * added 'txn' command to cec-client. same as 'tx', but doesn't wait for ACK
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.
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
745 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 14 Oct 2011 17:34:00 +0200
747 libcec (0.6-1) unstable; urgency=low
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
753 * added Darwin support (thanks Davilla!)
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
762 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sun, 09 Oct 2011 15:15:00 +0200
764 libcec (0.5-1) unstable; urgency=low
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
772 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 07 Oct 2011 22:00:00 +0200
774 libcec (0.4-3) unstable; urgency=low
777 * fixed some threading related bugs
778 * fixed deadlock on exit
779 * fixed wrongly reported physical address
781 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 06 Oct 2011 00:19:00 +0200
783 libcec (0.4-2) unstable; urgency=low
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
794 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 04 Oct 2011 23:45:00 +0200
796 libcec (0.4-1) unstable; urgency=low
798 * bumped interface version to 4
799 * timeout parameter removed from Close()/cec_close(). return type changed to
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()
813 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 04 Oct 2011 00:48:00 +0200
815 libcec (0.3-1) unstable; urgency=low
817 * added device detection support for Windows
819 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sun, 02 Oct 2011 12:09:33 +0200
821 libcec (0.2-1) unstable; urgency=low
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
837 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 28 Sep 2011 01:33:00 +0200
839 libcec (0.1-1) unstable; urgency=low
841 * Initial release v0.1
843 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 28 Sep 2011 23:55:48 +0200