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