1 libcec (1.4-1) unstable; urgency=low
4 * added the vendor id for Sony
5 * always refresh the power state of a device when it hasn't been updated
7 * do silent builds by default
9 * added optional callback methods to libCEC. enable them by calling
10 EnableCallbacks(ICECCallbacks *callbacks) /
11 cec_enable_callbacks(ICECCallbacks *callbacks). after this method is
12 called, the GetNext...() methods will not return any data
13 * added the same callbacks to LibCecSharp. implement CecCallbackMethods
14 and override the methods in there
16 * use the given timeout when trying to open a connection to the CEC
18 * resolved difference between method name in LibCECC.cpp and cecc.h.
20 * don't transmit physical addresses while holding a lock in CCECProcessor
21 * don't hold a lock when sending an active source message.
22 * unload libCEC when the lib version is invalid
23 * "unused" warnings suppressed
25 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 12 Jan 2012 19:06:00 +0100
27 libcec (1.3-3) unstable; urgency=low
30 * place in libudev include in an extern C block. fixes compilations on
31 older libudev versions (e.g. on Hardy). closes #2. credits @fbuenemann
32 * added pkg-config to the dependencies list. issue #15
33 * updated README. closes #14
34 * added a script that tests some basic functions of the CEC adapter:
35 /support/cec-test-device.sh
37 * don't make libCEC the active source when changing the physical address.
38 don't send active source messages on startup, when not the active source
39 fixes unwanted device power ups
40 * replace the command handler directly after receiving a changed vendor
41 id. change the primary type from recording device to playback device
43 * don't send a deck status update when sending an active source message
45 * only switch handlers once when using the generic handler
46 * don't switch handlers when not needed
47 * hold a lock in CCECProcessor::SetHDMIPort()
48 * don't send deck status updates when sending an active source message by
51 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 3 Jan 2012 22:48:00 +0100
53 libcec (1.3-2) unstable; urgency=low
56 * copy libcec.dll to the XBMC installation dir when XBMC is found
57 * disable background polling. let the client request this info when needed
58 * update the power status of a device when it's set to
59 CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON
60 * wait for the correct response when requesting something, not just any
62 * don't keep trying the same command/request after receiving a feature
65 * change the previously unused boolean parameter in volume control methods
66 to bSendRelease, and only send a key release when it's true. default to
69 * don't send the power up/down keypress to listeners when in the initial
70 device state (powered off). fixes unexpected shutdown in XBMC when
71 connecting to the CEC adapter.
72 * send a 'menu state activated' command when starting up. bugzid: 113
73 * don't wait for a response when not needed
74 * don't hold a lock while waiting for a response. fixes failed libCEC
75 inits and slow responses
76 * don't replace a command handler when it's being used. fixes possible
78 * don't try to do anything before the processor thread has started
79 * don't transmit active source messages when the physical address is
81 * don't init the default handler before the physical address is known
83 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 29 Dec 2011 03:05:00 +0100
85 libcec (1.3-1) unstable; urgency=low
88 * make libudev optional. if libudev is not available on linux, adapter
89 autodetection will also not be available. fixes compilation on Hardy/ATV1
90 * added a C++ CLR wrapper for libCEC, so libCEC can be used by any .NET
92 * added vendor support for LG
93 * added vendor support for Philips
94 * added vendor support for Yamaha
95 * added vendor support for Onkyo
96 * added 'scan' command to cec-client, that displays info about devices on
97 the bus. made all ToString() methods available on the interface.
98 * added '-s' or '--single-command' to cec-client. starting cec-client with
99 this parameter executes a single command in cec-client and does not power
100 on devices on startup and power them off on exit. this way, you can use
101 cec-client in a shell script. since there's some handshaking involved at
102 startup, this is not very fast. to execute a command and only display the
103 result and any error/warning, execute it with
104 RESULT=`echo command | cec-client -s -d 3` (on linux/osx, win32 batch
105 files are a bit different)
106 * added HDMI port ('-p' or '--port') and base device ('-b' or '--base') to
107 cec-client's parameters
108 * handle image view on and text view on
109 * handle routing information and report physical address opcodes
110 * handle audio status updates
111 * send ping and bootloader commands via the output queue
112 * scan the CEC bus for devices when starting libcec
113 * pass all commands that are directed at libcec to listeners
115 * added GetActiveSource()/cec_get_active_source()
116 * added IsActiveSource()/cec_is_active_source()
117 * added GetDevicePhysicalAddress()/cec_get_device_physical_address()
118 * added GetDeviceOSDName()/cec_get_osd_name()
119 * added SendKeypress()/cec_send_keypress() and SendKeyRelease()/
120 cec_send_key_release()
121 * added VolumeUp()/cec_volume_up(), VolumeDown()/cec_volume_down(),
122 MuteAudio()/cec_mute_audio()
123 * added GetActiveDevices()/cec_get_active_devices(), IsActiveDevice()/
124 cec_is_active_device(), IsActiveDeviceType()/cec_is_active_device_type().
125 * added SetHDMIPort()/cec_set_hdmi_port(). devices are now detected on load
126 and when a device with the same physical address is detected, libcec will
127 use the selected hdmi port on that device. should fix source selection on
128 other devices, like an amplifier
129 * added a hook in libcec for physical address autodetection
131 * don't request the physical address from the tv (it's always 0x0000)
132 * set the proper ackmask before doing anything else
133 * don't unlock the transmit mutex in CCECProcessor while waiting for an
136 * refactor CEC read/write. keep a single lock for all writes, not one per
138 * ignore other data while waiting for a response
139 * retry failed tranmissions
140 * don't delete a message before it's been sent when starting the bootloader
141 * or when sending a ping
142 * fixed possible segfault when switching the command handler after a vendor
144 * handle audio opcodes correctly
145 * inactive source should be directly addressed at the TV
146 * don't report a changed physical address when it hasn't changed
147 * routing information sets the stream path, not the physical address
148 * don't scan the whole bus in CCECProcessor::IsActiveDeviceType()
149 * don't request the vendor id from devices that are handled by libcec
150 * mark device status as present when a command was received from a device
151 * always send a power on command in CCECBusDevice::PowerOn()
152 * don't request updates statusses unless needed
153 * report physical address sends 3 parameters, not 2. check whether the
154 device type is correct
155 * devices can send vendor commands from other vendors, so don't assume the
156 device is of a certain vendor when it sends commands with a vendor id
157 * thread safety fixes. bugzid: 19
158 * clear any previous input when opening a connection to the adapter.
160 * use the correct source address in CSLCommandHandler::HandleVendorCommand()
161 * uncorrected CEC_OPCODE_DEVICE_VENDOR_ID. closes #5
162 * renamed enum methods. fixes potential macro collision with isset().
164 * don't change the active device when receiving stream path changed
165 messages. fixes wrong source selection when powering after the TV.
167 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 09 Dec 2011 12:16:00 +0100
169 libcec (1.2-1) unstable; urgency=low
172 * pass the deck_control command to libcec listeners
173 * check whether the initiator is valid in CCECProcessor::ParseCommand().
174 fixes possible segfault when parsing invalid data
176 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sat, 12 Nov 2011 13:36:00 +0100
178 libcec (1.1-3) unstable; urgency=low
180 * fixed return value in CCECProcessor::SetStreamPath(), which prevented
181 active source and menu state from being sent
183 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 23:36:00 +0100
185 libcec (1.1-2) unstable; urgency=low
187 * forgot to update the headers to v1.1
189 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 18:56:00 +0100
191 libcec (1.1-1) unstable; urgency=low
194 * added logical address autodetection and let libcec handle multiple types
195 simultaniously. for logical address autodetection, you have to use
196 CECInit()/cec_init_typed() instead of CECCreate()/cec_init()
197 * added SetActiveSource()/cec_set_active_source() to the interface.
198 deprecated SetActiveView()/cec_set_active_view()
199 * added SetMenuState()
200 * added PollDevice()/cec_poll_device()
201 * removed duplicate method SetActiveSource() / SetActiveView()
202 * added SetDeckControlMode() and SetDeckInfo()
204 * added vendor detection for panasonic and broadcast active view and set
205 menu state when a panasonic device sets the stream path. thanks for the
207 * added vendor code for pioneer
208 * osd string is 13 chars max. don't send more
209 * send the correct cec version for each device
210 * switch to panasonic specific cec implementation if a panasonic device was
212 * send the correct device type in TransmitPhysicalAddress()
213 * send a reply from the correct device when the stream path is requested
214 * opcode 0x80 means the stream path changed, not the physical address
215 * don't poll for a vendor ID in monitoring mode
216 * fixed parameter parsing in SetVendorId()
217 * buffer up commands that are received while waiting for an ack. only send
218 'active source' message for the actual active source
219 * win32: prepend the com port path with '\\.\', so com ports > 9 can be
220 accessed. thanks smolesen
221 * audio systems cannot be an active source, so don't transmit active
222 source message from this device
223 * only send 'active source' when powered on
224 * only set the osd name for the primary device. use default values for
226 * increase physical address with 0x100 per device
227 * win32: removed unneeded afxres.h include in the resource files, which
228 is not present when using studio express. thanks Ghuron
230 * mark the active source as active and other devices as inactive
231 * set the power status to 'on' when receiving CEC_USER_CONTROL_CODE_POWER
232 * transmit the menu state as (active) when the stream path is set
234 * changed copyright of boblight files with permission of the original
236 * partial handling of audio related opcodes
237 * more consistent log messages
238 * set a device type and name for each CCECBusDevice
239 * keep a power and menu state per device
240 * renamed all Broadcast...() and Report...() methods to Transmit...()
241 * renamed SetOSDString() to TransmitOSDString()
242 * changed debug level of 'did not receive ack' from error to debug
243 * only set the power status to 'on' for the primary device
244 * moved method decriptions from cecc.h to cec.h
245 * only send a power on command when a device isn't on already and set
246 the power state to CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON while
248 * handle CEC_OPCODE_STANDBY
249 * handle CEC_OPCODE_ACTIVE_SOURCE
250 * always start in standby mode and let the tv (or other device) send the
252 * renamed the last few enums
253 * handle deck related opcodes.
254 * added TransmitVendorId(), but only transmit the id if it's not set to 'unknown'
256 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 17:42:00 +0100
258 libcec (1.0-1) unstable; urgency=low
261 * set lib interface version back to 1.0 and rename GetLibVersion() to
262 GetLibVersionMajor() and GetMinVersion() to GetMinLibVersion()
263 * added GetLibVersionMinor()/cec_get_lib_version_minor() and set the minor
266 * samsung's vendor specific remote keypresses don't send key releases. added
267 call to AddKey() directly after the keypress
268 * always reset the button press time in CLibCEC::AddKey()
269 * always wait for a signal in CCECProcessor::Transmit()
271 * drop shared_ptr and use a normal pointer. removed boost dependency
273 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 04 Nov 2011 00:14:00 +0100
275 libcec (0.8-2) unstable; urgency=low
277 * added 'libboost-dev' to build deps
279 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 01 Nov 2011 23:31:00 +0100
281 libcec (0.8-1) unstable; urgency=low
284 * added GetDevicePowerStatus()/cec_get_device_power_status()
285 * added GetDeviceVendorId()/cec_get_device_vendor_id()
286 * added GetDeviceMenuLanguage()/cec_get_device_menu_language()
287 * added GetDeviceCecVersion()/cec_get_device_cec_version()
288 * added SwitchMonitoring()/cec_switch_monitoring() to the interface. when
289 monitoring is enabled, the device will only log the data it received,
290 but will not respond to any message
291 * removed timeout parameter in Transmit() and included the ack timeout in
292 the cec_command struct
293 * made the vendor id -> vendor name translation available
294 * made CEC_LOG levels powers of 2
295 * introduced CEC_LOG_TRAFFIC log level
297 * set the correct ackmask on startup
298 * wait for ack while keeping a lock
299 * wait for the processor thread to start before continueing on startup
300 * wait for messages to be transmitted before continueing in
301 CCECProcessor::Transmit()
302 * only set the logical address once when it has changed
303 * correct source for broadcast messages
304 * win32: create Release type installer
306 * make all reads and write in CAdapterCommunication go through buffers.
307 * poll for a vendor ID of connected devices and switch to a non-standard
308 CEC implementation if needed.
309 * added vendor detection of Samsung and LG devices
310 * handle samsung remote command 'return'
312 * added -la and --logical-address to the command line params
313 * added -d and --log-level params to cec-client
314 * added -sf and --short-log-file, which only log the actual messages, not
315 the level and timestamp
316 * added -f and --log-file parameters to cec-client
317 * added option to change the log level to cec-client
319 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 01 Nov 2011 22:58:00 +0100
321 libcec (0.7-1) unstable; urgency=low
323 * send a keypress with 0 duration when a key is pressed and with a duration
324 set when it's released
325 * added SetOSDString() to the interface (not supported by all tvs)
326 * fixed: 'routing change' is a broadcast message. log routing changes, but
327 don't send a 'set active view' message, so the active input won't be
329 * log keypresses in the debug log
330 * added 'pa' command to cec-client, to change the physical address
331 * added SetPhysicalAddress()/cec_set_physical_address() to the interface, so
332 the HDMI port number to use can be changed
333 * fixed: put the message processing code from WaitForAck() in ParseMessage().
334 fixes missing incoming message logging of non-data messages when not
336 * added 'txn' command to cec-client. same as 'tx', but doesn't wait for ACK
338 * fixed: set initiator and destination first in cec_command::push_back().
339 fixes 'tx' command in cec-client
340 * fixed: keep trying to connect while iTimeout isn't reached (default 10
341 seconds). fixes exit with a 'permission denied' error when the device isn't
342 ready yet. remove CEC_SETTLE_DOWN_TIME
343 * fixed: don't call SetActiveView() when reporting the power status. fixes
344 loop which causes some TVs to report failed connections
345 * fixed: eom was not being parsed when receiving MSGCODE_FRAME_DATA. fixed.
346 * fixed: add the device type as parameter when sending the physical address.
348 * fixed: typo in libcec.pc.in
349 * added optional strLib parameter to LoadLibCec(), so the location of the
350 shared library can be specified
351 * only link cec-client against ld. use AC_SEARCH_LIBS instead of AC_CHECK_LIB
352 * use int instead of bool on the public C interface and remove stdbool.h include
353 * renamed: CECExports.h => cec.h, CECExportsC.h => cecc.h, CECLoader.h =>
354 cecloader.h, CECTypes.h => cectypes.h
355 * updated debian package. split up libcec and libcec-dev
356 * fixed: changed to use dlopen instead of static linkage. shuffled headers a
357 bit. bumped interface to version 7
358 * removed 'rt' from libraries. it's not needed (anymore)
359 * fixed: reset the active view after a routing change. issue #1
360 * fixed: changed attached license to be GPLv2 instead of GPLv3 this was an
361 error as libCEC is licensed GPLv2 not GPLv3 thanks @garbear
362 * added contributors link
364 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 14 Oct 2011 17:34:00 +0200
366 libcec (0.6-1) unstable; urgency=low
368 * bumped interface version to 6
369 * fixed packet output (reporting the OSD name correctly now)
370 * refactored packet structs: split up in cec commands and adapter messages
372 * added Darwin support (thanks Davilla!)
374 * fixed possible deadlock when starting a new thread
375 * implemented vendor id and device class parsing. full detection will follow
376 * added "on" and "standby" commands to the test client
377 * retransmit packets if needed
378 * fix GetTimeMs() on linux
379 * added timestamp to log messages
381 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sun, 09 Oct 2011 15:15:00 +0200
383 libcec (0.5-1) unstable; urgency=low
385 * bumped interface version to 5
386 * don't pass std::string and std::vector accross the interface
387 * fixed heap corruption crashes on windows
388 * fixed some memory leaks
389 * reset all structs to default values before doing with them
391 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 07 Oct 2011 22:00:00 +0200
393 libcec (0.4-3) unstable; urgency=low
396 * fixed some threading related bugs
397 * fixed deadlock on exit
398 * fixed wrongly reported physical address
400 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 06 Oct 2011 00:19:00 +0200
402 libcec (0.4-2) unstable; urgency=low
404 * fixed int parameter sizes and some signed/unsigned warnings
405 * check whether m_port isn't NULL in ReadFromDevice
406 * stop the processor thread and delete the CSerialPort instance on exit
407 * added mutex in CSerialPort
408 * fix segfault on exit
409 * renamed libPlatform -> platform.
410 * stuck everything from libCEC in the CEC namespace to avoid namespace
413 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 04 Oct 2011 23:45:00 +0200
415 libcec (0.4-1) unstable; urgency=low
417 * bumped interface version to 4
418 * timeout parameter removed from Close()/cec_close(). return type changed to
420 * added cec_destroy() method
421 * removed timeout parameter from Transmit()
422 * change the default argument of PowerOnDevices() to CECDEVICE_TV
423 * removed PowerOffDevices(). use StandbyDevices() instead
424 * removed obsolete methods from the interface
425 * fixed bug: pthread_cond_wait was called without the mutex locked
426 * fixed possible deadlock: don't send messages and wait for an ack with the
427 mutex locked in CCECParser
428 * created a separate reader thread and fixed the 'lock timeout' bug
429 * testclient: use CECDEVICE_TV instead of the default argument
430 (CECDEVICE_BROADCAST) for PowerOnDevices() and PowerOffDevices()
432 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 04 Oct 2011 00:48:00 +0200
434 libcec (0.3-1) unstable; urgency=low
436 * added device detection support for Windows
438 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sun, 02 Oct 2011 12:09:33 +0200
440 libcec (0.2-1) unstable; urgency=low
442 * added a Close() method to the interface
443 * Added CEC command that were received by the adapter in a buffer that can be
444 read by a client with GetNextCommand()/cec_get_next_command(). added a
445 'help' command to the test client, that displays all available commands
446 * Fixed setting the ackmask. deprecated SetAckMask()/cec_set_ack_mask(). use
447 SetLogicalAddress()/cec_set_logical_address() instead. add 'la' command to
448 the testclient to set the logical address of the cec adapter
449 * Added optional logical and physical address parameters to
450 LoadLibCec()/cec_init() on the interface. fixed wrongly placed namespace
451 close tag in CECExports.h. updated interface documentation. bumped
452 interface version to 2.
453 * fixed hardcoded ackmask in SetAckMast(). set a shorter display name in the
454 test client. the previous one was too long and being rejected
456 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 28 Sep 2011 01:33:00 +0200
458 libcec (0.1-1) unstable; urgency=low
460 * Initial release v0.1
462 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 28 Sep 2011 23:55:48 +0200