CEC_HDMI_PORT variable support for exynos hardware.
[deb_libcec.git] / debian / changelog
1 libcec (2.2.0-4~trusty) trusty; urgency=low
2
3 * Reintroduce CEC_HDMI_PORT for exynos platform
4
5 -- Piment Noir Packaging <contact@piment-noir.org> Tue, 27 Jan 2015 22:30:00 +0100
6
7 libcec (2.2.0-3~trusty) trusty; urgency=low
8
9 * Backport some fixes
10
11 -- Piment Noir Packaging <contact@piment-noir.org> Wed, 26 Nov 2014 19:43:00 +0100
12
13 libcec (2.2.0-2~trusty) trusty; urgency=low
14
15 * Add a build option for exynos support
16
17 -- Piment Noir Packaging <contact@piment-noir.org> Mon, 10 Nov 2014 18:44:00 +0100
18
19 libcec (2.1.4-4~trusty) trusty; urgency=low
20
21 * Build for Ubuntu 'trusty'
22
23 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sat, 14 Dec 2013 01:02:43 +0100
24
25 libcec (2.2.0-1) unstable; urgency=low
26
27 * changed / added:
28 * read the physical address from X11 randr extension. credits: @smithereens
29 * support for Exynos HDMI. credits: @vamanea
30 * another vendor ID for Harman/Kardon. credits: @ksooo
31 * some 1.4 keycodes have been added. credits: @ksooo
32 * cec-client: fix typo prevent keycodes to be passed. credits: @popcornmix
33
34 * fixed:
35 * various Raspberry Pi fixes. credits: @mk01
36 * vendor specific handlers weren't used for Toshiba and Onkyo.
37 credits: @ksooo
38 * LibCecTray: keypress not sent when multiple instances of eshell.exe are
39 running. thanks @pvanbaren
40 * deadlock on exit in XBMC, because of CEC_ALERT_CONNECTION_LOST
41
42 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 28 Oct 2014 10:45:00 +0200
43
44 libcec (2.1.4-2) unstable; urgency=low
45
46 * fixed:
47 * OS X build
48
49 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 18 Dec 2013 02:14:00 +0100
50
51 libcec (2.1.4-1) unstable; urgency=low
52
53 * changed / added:
54 * set the vendor id of devices handled by libCEC to our vendor id
55 * added protection against standby without a notification from XBMC and
56 clock changes. issue #186
57 * update system audio mode when audio system devices are activated
58 * added vendor id and name 'Harman/Kardon'
59 * added vendor id and name 'Marantz'
60 * cec-tray: support for away mode
61 * cec-tray: support for screensaver events
62 * fixed:
63 * fixed potential crash when SendCommand returns NULL
64 * fixed crash when CCECProcessor::Transmit was called after
65 CCECProcessor::Close
66 * always call the SourceActivated() callback in
67 CCECBusDevice::MarkAsActiveSource(), even when we were already active,
68 and let clients handle dupes. this prevented the screensaver from
69 being cancelled in XBMC
70 * send our vendor id when the tv sends it's vendor id
71 * transmit our physical address when the TV sends it's physical address
72 * potential deadlock
73 * leak on exit in CWaitForResponse::Clear()
74 * also transmit an active source message as response to a set stream path
75 command when we were already marked as active. bugzid: 3116
76 * only send an active source message when receiving a routing change to an
77 address handled by libCEC. issue #56
78 * HandleVendorRemoteButtonUp -> HandleUserControlRelease for all vendors
79 * silence warning for xx:a0:00:09:b0:00:80:20. bugzid: 2559
80 * fixed comboKeyTimeout=0. closes #168
81 * Panasonic: doesn't request the active source status when powered up, but
82 it does send a vendor command. send an active source message when we're
83 marked as active source after receiving this command. issue #192
84 * possible crash when the tv does not respond to polls and the client isn't
85 registered yet. don't poll the tv in monitoring mode. closes #163
86 * Panasonic: standby command
87 * Panasonic: silence 'unmapped code' warning. bugzid: 2375
88 * LG: clean up and attempt to fix issue #176
89 * LG: newer firmwares don't send a second power status request after it's
90 been requested once and replied with 'standby -> on' like previous
91 versions. send an active source message in an attempt to fix this. issue:
92 #176
93 * Sharp: check whether the 'auto power on' option is disabled and tell the
94 user how to enable it
95 * Samsung: respond to vendor command 0x23 sent by samsung. attempt to fix
96 bugzid: 2164
97 * cec-client: try to reconnect when the connection was lost
98 * cec-tray: crash on load (MissingManifestResourceException)
99 * cec-tray: crash or deadlock on exit
100 * cec-tray: crash when the connection to the adapter was lost
101 * cec-tray: display TV not responding warning on top
102 * windows: build libCEC and cec-client against toolset v100 (VS2010)
103 * FreeBSD: proper the adapter detection. credits @fneufneu
104 * suppress mangling warning. credits @warped-rudi. closes #190
105
106 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sat, 13 Dec 2013 16:02:00 +0100
107
108 libcec (2.1.3-1) unstable; urgency=low
109
110 * changed / added:
111 * ask users to send an email when receiving an unhandled vendor command
112 * toshiba: map top menu and dvd menu buttons. closes #148
113 * LibCecSharp: sync alert types
114 * LibCecSharp: added CurrentVersion to the version enum
115 * CecSharpClient: use CurrentVersion instead of a hardcoded version
116 * CecTray: power management
117 * CecTray: split up asyncform
118 * CecTray: try/catch xml exceptions when reading the xml config. bugzid:
119 2082
120 * CecTray: use CurrentVersion instead of a hardcoded version
121 * CecTray: display a warning if we can't poll the TV
122 * CecTray: display alerts from libCEC
123 * CecTray: don't use lazy loading for the main controller, but pass the
124 instance. bugzid: 2082
125 * windows: converted to vs2012
126 * fixed:
127 * toshiba: toshiba handler wasn't initialised, and toshiba uses more than
128 one vendor id
129 * libCEC marked itself as inactive source when the stream path changed to
130 a device with a different physical address. bugzid: 2157
131 * TDA995x: report proper firmware revision (credits: @warped-rudi)
132 * TDA995x: avoid callback when already stopped (credits: @warped-rudi)
133 * windows: fix resource files and backwards compat dll names
134
135 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sat, 11 May 2013 10:06:00 +0000
136
137 libcec (2.1.1-1) unstable; urgency=low
138
139 * changed / added:
140 * send an alert when the TV does not respond to polls
141 * fixed:
142 * LG didn't switch sources after the TV powered up
143 * always poll a device when the status is unknown, and don't try to
144 determine whether it needs to be polled by checking the status of other
145 devices
146 * don't mark a device as inactive when receiving a routing change message,
147 only when another device was made acive. fixes the issue that rc
148 passthrough doesn't work when a tv sends a quick routing change to
149 another port before requesting the active source when coming out of
150 standby
151 * LibCecSharp: fixed 14 char long OSD name (wasn't \0 terminated)
152 * LibCecSharp: fixed return value of GetActiveDevices(). issue #131
153 * cec-tray: fixed index out of range exception in CECSettingNumeric.cs.
154 bugzid: 2082
155 * cec-tray: ensure that the tray app only initialises once. bugzid: 2082
156 * rpi: don't set the physical address to 1.0.0.0 when receiving
157 VC_HDMI_UNPLUGGED. it may wake up device when they were just sent to
158 standby. issue #142
159 * osx: use the correct dylib name in cecloader.h, used by cec-client
160
161 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 8 Mar 2013 17:21:00 +0100
162
163 libcec (2.1.0-1) unstable; urgency=low
164
165 * changed / added:
166 * added vendor id for Denon
167 * added DetectAdapters() method, that returns all device information for
168 detected adapters, not just the com port
169 * added new method PowerOnScreensaver. credits: @jmarcet
170 * LibCECTray: Added ability to send modifiers by nesting commands in
171 KeyInput.cs. credits: Nate Burr
172 * rpi: Added /opt/vc/include/interface/vmcs_host/linux to rpi_cflags to fix
173 building on 'next' firmware branch. credits: Nedim Lisica
174 * fixed:
175 * don't send two active source message sequences to philips. issue #118
176 * don't send deck status updates to philips when activating the source
177 * update the active source status correctly after a manual switch to
178 another source. closes #124
179 * rename cec_audio_status() to cec_audio_get_status() to avoid conflict
180 with the cec_audio_status enum. This makes the C API compile again.
181 credits: Dave Chapman
182 * LibCECTray: Fixed bug with libcec adding the keyup for button commands
183 and making sure they are still executed. credits: Nate Burr
184 * rpi: register callback for HPD. re-read the physical address when we
185 received VC_HDMI_ATTACHED. issue #109
186
187 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 26 Feb 2013 23:06:00 +0100
188
189 libcec (2.0.5-1) unstable; urgency=low
190
191 * changed:
192 * also try polls at least twice when it failed
193 * added methods to get the audiostatus and toggle the mute status from the
194 amplifier (if connected)
195 * added comboKey and iComboKeyTimeoutMs to libcec_configuration
196 * force cec_user_control_code_unknown to 0xFF
197 * fixed:
198 * check unsupported features properly
199 * only send an active source message when the stream path changed and we
200 weren't the active source yet
201 * don't mark as inactive source on routing changes
202 * press & hold
203 * never mark user control opcodes as unsupported
204 * report our OSD name to the TV, since some TVs don't request it
205 * initial audiostatus value
206 * don't log a no longer relevant FIXME
207
208 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 6 Dec 2012 20:58:00 +0100
209
210 libcec (2.0.4-1) unstable; urgency=low
211
212 * changed:
213 * dropped obsolete cec-config
214 * added CEC_CLIENT_VERSION_CURRENT and CEC_SERVER_VERSION_CURRENT. closes
215 #88
216 * support colon separated data for the 'tx' command in cec-client
217 * mark the adapter as (in)active source for firmware v3+
218 * added 'is' command to cec-client, to mark libCEC as inactive source
219 * fixed:
220 * only change the handler of the primary device if the tv has a quirks mode
221 not for other devices
222 * send an active source message when the route was set to the physical
223 address that is handled by libCEC
224 * default double tap timeout wasn't set for panasonic
225 * philips TVs sometimes keep sending key presses without key releases
226 * philips TVs ignore 'image view on' right after they were sent into
227 standby. check the power status of the tv every 5 seconds, until it
228 reports to have powered on
229 * mark a device as powered on when receiving a stream path or routing
230 change
231 * update the active source status correctly on stream path changes
232 * ensure that we only send 'image view on' when needed
233 * mark the TV as 'in transition standby -> on' after sending
234 'image view on', so we don't spam the TV with 'image view on' command
235 while waiting for it to finish powering up. bugzid: 1603. bugzid: 1609.
236 bugzid: 1592
237 * request the active source before requesting device information in
238 cec-client, or it'll display incorrect information when called the first
239 time
240 * update the value of CCECProcessor::m_bMonitor when registering a client.
241 SetControlled() wasn't called on exit, so it took 30 seconds until it was
242 auto-enabled
243 * silence 'unused' warning properly. closes #86
244 * only change the type of the client to 'playback device' instead of
245 'recorder' for panasonic if the TV is a panasonic. issue #84
246 * always poll the TV if it's marked as not present. issue #83. issue #84
247 * only set m_iCurrentButton when the duration isn't known yet. fixes
248 duplicate key press for vendor remote codes. closes #81
249 * delete the right registry key
250 * send active source message when we received a routing change with a
251 device that is handled by libCEC as address. issue #89
252 * return value wasn't updated in GetLogicalAddresses()
253
254 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 15 Nov 2012 02:26:00 +0100
255
256 libcec (2.0.3-1) unstable; urgency=low
257
258 * changed:
259 * log unhandled vendor remote keycodes in the log, so they get logged
260 without debugging enabled
261 * double tap timeout increased from 200ms to 250ms
262 * CuBox/NXP* renamed to TDA995x*
263 * fixed:
264 * handling of active route changes. github issue #56 and issue #58
265 * new combo key handling broke samsung's vendor specific remote buttons.
266 github issue #54
267 * don't try to set controlled mode when using firmware version 1 and crash.
268 github issue #76
269 * fix for LG models that send a vendor key up after a normal key down.
270 github issue #71
271 * some TVs send keypresses to us without making us the active source. mark
272 us as active source when this happens. github issue #71
273 * LG doesn't send routing changes, and marks the TV as active source when
274 switching to another source that's not been selected in the simplink menu
275 instead. this change keeps libCEC marked as powered on and keep the deck
276 state set to CEC_DECK_INFO_OTHER_STATUS_LG. fixes keypresses not working
277 after switching to another source and back to libCEC's hdmi port via the
278 source select menu instead of the simplink menu. github issue #71
279 * don't respond with an abort message when receiving a vendor remote button
280 command
281 * respond with CEC_ABORT_REASON_INVALID_OPERAND when receiving a keypress
282 without a parameter
283 * typo in stop+pause combo key that prevented one of the keys from working
284 * rpi: log what data we received exactly when we receive an response from
285 the pi's firmware that doesn't match any command that we sent. issue #77
286 * cubox: added adapter ID interface
287
288 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 31 Oct 2012 15:57:00 +0100
289
290 libcec (2.0.2-2) unstable; urgency=medium
291
292 * fixed:
293 * updating the device status after a poll was broken and could reset the
294 status of devices that were marked as handled by libCEC to 'not
295 present'
296 * don't keep spamming the bus with a vendor command when an active source
297 switch is pending for panasonic, but only send it when needed
298 * reset CVLCommandHandler::m_bCapabilitiesSent when the TV goes to standby
299
300 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 15 Oct 2012 13:52:00 +0100
301
302 libcec (2.0.2-1) unstable; urgency=low
303
304 * changed/added:
305 * missing from the previous changelog: added support for the CuBox TDA995x
306 credits: warped-rudi
307 * lower retry timeout for source switches
308 * cec-client: wait for the source switch to finish when cec-client is
309 called with the -s switch
310 * request the power status of the TV directly after registering a new
311 client
312 * fixed:
313 * don't keep trying to send 'image view on' commands to the TV when no TV
314 is connected, and just send the 'set active source' command. fixes source
315 switch and debug log spam for people without a TV connected
316 * don't keep waiting for an updated power status from the TV for Panasonic,
317 but request a status update once every 5 seconds, or we can possibly wait
318 forever for the tv to send it
319 * log what we received exactly when logging FIXME
320 * typo in CVLCommandHandler::VendorPreActivateSourceHook. bugzid: 1087
321 * if we failed to get the physical address of the device that we are
322 connected to in the config, then try to use the address that was
323 persisted in the eeprom before resetting to the default value, 1.0.0.0.
324 closes #50.
325 * don't update the device status of unregistered/broadcast
326 * log all device status changes
327 * CCECClient::IsLibCECActiveSource returns false now while the active
328 source command is pending
329 * log failed acks and other errors in the debug log again
330 * don't send 'image view on' when the TV is already powering up
331 * reset the delayed source switch timeout properly, so we don't spam
332 commands every second
333 * don't change the device status when sending a delayed source switch
334 * don't send out commands to a device that is marked as not present or
335 handled by libCEC
336
337 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 11 Oct 2012 15:48:00 +0100
338
339 libcec (2.0.1-1) unstable; urgency=low
340
341 * changed/added:
342 * added Loewe support
343 * added signal handlers to client applications
344 * Documentation updated
345 * replaced cec-config-gui by libCEC tray
346 * log the exact data for failed transmissions, not the opcode
347 * don't log every frame, unless debugging was enabled in ./configure or
348 visual studio
349 * changed some log levels from NOTICE to DEBUG, so the non-debugging output
350 is less spammy
351 * interface changes:
352 * WARNING: breaking API changes
353 * clean up: deprecated methods and fields removed
354 * callback parameters changed to fix plain C compilation
355 * added GetAdapterProductId()+GetAdapterVendorId()/
356 cec_get_adapter_product_id()+cec_get_adapter_vendor_id()
357 * added iDoubleTapTimeoutMs to libcec_configuration
358 * remove all pre-v2.0 compatibility checks
359 * fixed:
360 * fix plain C compilation
361 * prevent sending directly addressed commands from being sent to broadcast
362 * don't wait for a response when sending a reply, so we don't block message
363 handling
364 * message response signaling and logging
365 * prevent double taps by not sending the same key press twice within 200ms
366 * fall back to the primary client when
367 CCECProcessor::HandleLogicalAddressLost() and no client could be found
368 * no more delay up to 2 seconds when exiting libCEC
369 * don't get caught in a loop in CVLCommandHandler when the source switch
370 was not allowed and no power status request was sent
371 * always send image view on to the tv, don't check the power status
372 * only respond to vendor commands for panasonic if we are the destination
373 * rpi: current firmware first sends a change to logical address 'broadcast'
374 and then signals us that the address was lost. libCEC then failed to
375 re-register, because it didn't know any client at this address
376
377 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 8 Oct 2012 21:30:00 +0100
378
379 libcec (1.9.1-1) unstable; urgency=low
380
381 * changed/added:
382 * added the type of adapter to libcec_configuration,
383 and display the type in cec-client -l
384 * added device detection support for composite usb devices on windows.
385 needs the windows ddk, and it's expected to be found in
386 C:\WinDDK\7600.16385.1
387
388 * interface changes:
389 * adapter type was added to libcec_configuration
390 * moved cec_adapter_messagecode from cectypes.h to USBCECAdapterMessage.h
391
392 * fixed:
393 * retry m_port->Read(..) if an EINTR errror occurs instead of closing the
394 connection. credits @Obruni. closes #38
395 * make cec-client include cecloader.h from our project, not from system
396 * fixed duplicate entries check in CUSBCECAdapterDetection
397 * fixed missing cec_version updates in libcec_configuration
398 * transmit an active source message after <set stream path> to a device
399 that's handled by libCEC. closes #43
400 * rpi: handle vendor specific remote control presses. closes #42
401 * rpi: handle VC_CEC_LOGICAL_ADDR_LOST, sent by the Pi's firmware when
402 the logical address was taken while CEC was being reinitialised
403 * panasonic: send out an active source message when the tv started up
404 because it sometimes doesn't request this
405
406 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 5 Sep 2012 16:54:00 +0100
407
408 libcec (1.8.2-1) unstable; urgency=low
409
410 * changed/added:
411 * p8: match to the response provided by the firmware when checking
412 responses (added in firmware v2 rev6)
413
414 * fixed:
415 * windows: update the error message when an error occurs while writing to
416 the serial port
417 * delayed source switch time was reset, resulting in an attempt every
418 second until it succeeded
419 * ensure that the vendor commands are always sent for panasonic, and that
420 the deck status for lg isn't reset. fixes some buttons not working after
421 a second or delayed source switch
422 * added guard so ReplaceHandler() doesn't accidently try to replace a
423 handler for the broadcast address
424 * wait until the commandhandler is replaced before registering a client,
425 so we don't register a client and replace it directly afterwards if the
426 tv doesn't support the device type
427 * ensure that the command handler of the tv is replaced before registering
428 a client, or it might result in a double eeprom write attempt
429 * p8: don't disable controlled mode when switching to monitoring mode
430 * p8: do delayed eeprom writes async or it'll block processing other input
431
432 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 3 Aug 2012 02:35:00 +0100
433
434 libcec (1.8.1-1) unstable; urgency=low
435
436 * changed/added:
437 * added support for the Raspberry Pi.
438 * added cec-client -i / cec-client --info that calls GetLibInfo()
439 * header cleanups
440 * added CAdapterFactory, to create IAdapterCommunication instances
441 * added --debug to configure, to include -ggdb
442
443 * interface changes:
444 * added GetLibInfo()/cec_get_lib_info(), that shows how libCEC was compiled
445 and with which features included.
446 * added ToString(cec_user_control_code_key) to the interface
447
448 * fixed:
449 * disallow sending CEC_OPCODE_SET_STREAM_PATH - not allowed by the CEC spec
450 * persist the configuration in the eeprom after initialising the client.
451 fixes wrong/old settings being used in autonomous mode, which broke the
452 wake on cec funtion
453 * persist the new configuration when the hdmi port setting changed
454 * cleaned locks around callbacks
455 * always set controlled mode to false when unregistering the last client.
456 fixes 30 second timeout before controlled mode gets deactivated
457 * updated the cached device type setting properly when persisting new
458 settings. correct return value from WriteEEPROM(). lock a mutex when
459 updating the state
460 * LibCecSharp: set the primary LA in CecLogicalAddresses
461
462 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 25 Jul 2012 13:05:00 +0100
463
464 libcec (1.7.2-1) unstable; urgency=low
465
466 * changed/added:
467 * display a warning message if libCEC was not compiled with adapter
468 detection for the target platform
469 * panasonic: added a vendor command for panasonic that will enable routing
470 of some more buttons on the remote (guide, text, ...)
471 * standby command won't be forwarded more than once every 10 seconds
472 * added vendor ids for Akai, AOC, Benq, Daewoo, Grundig, Medion, Sharp and
473 Vizio
474 * cec-client: don't display debug output by default in 'cec-client -l'
475
476 * interface changes:
477 * added a callback for clients that is called when a source is
478 (de)activated, so the client can respond to this action
479 * added cec_command::PushArray()
480
481 * fixed:
482 * command forwarding. fixes player not going into standby mode
483 * missing virtual keyword in CCECCommandHandler::
484 GetReplacementDeviceType()
485 * replace the handler (if needed) in GetHandler()
486 * reply with abort reason 'invalid operand' to vendor commands that we
487 don't understand
488 * changed all Handle...() commands to return a cec_abort_reason and send
489 the correct abort reason to the initiator as a response to directly
490 addressed messages
491 * changed 'couldn't change the ackmask: the connection is closed' into a
492 debug message
493 * don't send active source commands when the physical address is invalid or
494 unknown
495 * set the power status of a device to 'powered on' after it sends a stream
496 path change. can save an unneeded power state update request
497 * removed dupe code around delayed activate source commands. check for
498 delayed active source commands every 5 seconds instead of 15 seconds.
499 * panasonic: reset m_bPowerUpEventReceived in CVLCommandHandler when the
500 device lets us know it went into standby mode. fixes possibly failed
501 active source switches after it succeeded once
502 * panasonic: fixed delayed source switch for panasonic
503 * panasonic: mark the tv as powered up once it sends the audiomode request
504 * set the physical address of each device controlled by a CCECClient if
505 it's valid
506 * Windows could get stuck in a loop in case there an error occured while
507 reading registry entries
508 * ABI fixes (binary compat with v1.2 for Windows and v1.5.2 for others)
509 * replace the handler directly after getting the vendor id of a device when
510 registering a client
511 * copy the class member values of the old handler when creating a new
512 command handler, or a delayed activate source will get lost when the
513 handler is switched
514 * cec-client: wrong client version
515 * Makefile cleanups. don't link cec-client and cec-config against libudev
516 and liblockdev
517 * pin libcec to the same version as libcec1
518 * LibCecSharp: update the local configuration after connecting
519 * LibCecSharp: better handling of callbacks
520
521 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 27 Jun 2012 02:06:00 +0100
522
523 libcec (1.7.1-1) unstable; urgency=low
524
525 * changed/added:
526 * added physical address detection via ADL for AMD graphics cards
527 * attempt to get the edid from nvidia's graphics card driver on linux via
528 /proc/acpi/video/NGFX/HDMI/EDID
529 * attempt to get the PA from the registry on windows if we fail to get the
530 physical address from the display driver
531 * changed the order in CCECClient::SetPhysicalAddress() so it first checks
532 whether a PA override is set in libcec_configuration.iPhysicalAddress,
533 then checks whether the address can be detected, and if both failed it'll
534 use the HDMI port + base device setting
535 * cec-client: only active the source when reconnecting if libcec was the
536 active source before closing the connection
537 * platform: added tcp server sockets for posix
538
539 * interface changes:
540 * libcec_configuration.bAutodetectAddress is now read-only, and will be set
541 to 1 by libCEC if the PA was autodetected
542 * LibCecSharp: don't use an int but a CecUserControlCode in a CecKeypress
543
544 * fixed:
545 * don't unregister clients in CLibCEC when disconnecting, but only in
546 CCECProcessor. fixes reconnect after close
547 * MSGCODE_TIMEOUT_ERROR is a response to a transmission
548 * retry 'activate source' every 10 seconds if it failed
549 * don't respond with a poll from the broadcast address when receiving
550 in CSLCommandHandler::HandleDeviceVendorId(), but use the primary LA of
551 the client as source instead
552 * hold a lock when changing the ackmask in
553 CUSBCECAdapterCommunication::Open
554 * don't respond with a feature abort to opcode play messages. bugzid: 873
555 * get the vendor id of the TV before allocating logical addresses, so we
556 can determine if the TV supports the requested device type directly
557 * TransmitImageViewOn() and TransmitActiveSource() always returned true,
558 even if sending the command failed, so the retry for failed source
559 activations was never triggered
560 * open libcec.so.1 instead of libcec.so in cecloader.h. credits @coling.
561 github issue #30.
562 * fixed missing firmware version and build date in cec-client -l /
563 GetDeviceInformation()
564
565 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sun, 10 Jun 2012 13:39:00 +0100
566
567 libcec (1.6.1-5) unstable; urgency=low
568
569 * synced /debian directory with the one in precise (with a couple of changes)
570 * changed/added:
571 * serial port locking on linux
572 * cec-client: added -m/--monitor startup options, which will start a
573 monitor-only client. use 'mon 0' to switch to a normal client
574 * display an alert message when the firmware of the adapter can be upgraded
575 * added CEC 1.4 opcodes
576 * send a feature abort again for all unhandled commands
577 * refactored CLibCEC so a client registers itself within CCECProcessor,
578 which then allocates one or more logical addresses for it.
579
580 * interface changes:
581 * added a new setting, bMonitorOnly, which will start a monitor-only client
582
583 * fixed:
584 * ensure that we don't crash out when trying to stop a thread that hasn't
585 been started yet
586 * don't send a 'disconnected' alert when the close method is called
587 * use the correct source when transmitting an abort message as a reposonse
588 to a vendor command with id
589 * removed statics
590 * check the client version, not the server version in
591 libcec_configuration::operator==()
592 * cec-config: fix physical address detection
593 * LibCecSharp: fixed buffer overrun when copying libcec_configuration.
594 fixes crash when trying to save the configuration in the config gui.
595
596 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 14 May 2012 22:39:00 +0100
597
598 libcec (1.6.1-2) unstable; urgency=low
599
600 * Build depends on pkg-config. (Closes: #669919)
601 * libudev-dev only optionally needed for Linux.
602
603 -- Andres Mejia <amejia@debian.org> Sat, 21 Apr 2012 19:03:19 -0400
604
605 libcec (1.6.1-1) unstable; urgency=low
606
607 [ Mario Limonciello ]
608 * New upstream version (LP: #982272)
609
610 [ Andres Mejia ]
611 * New release fixes build failure with GCC-4.7. (Closes: #667241)
612 * Bump to Standards-Version 3.9.3.
613
614 -- Andres Mejia <amejia@debian.org> Sat, 21 Apr 2012 00:02:08 -0400
615
616 libcec (1.3.2-3) unstable; urgency=low
617
618 * Make dpkg-source options default for packaging.
619
620 -- Andres Mejia <amejia@debian.org> Tue, 10 Jan 2012 18:12:57 -0500
621
622 libcec (1.3.2-2) unstable; urgency=low
623
624 * Add options to pass to dpkg-source.
625
626 -- Andres Mejia <amejia@debian.org> Sun, 08 Jan 2012 22:59:34 -0500
627
628 libcec (1.3.2-1) unstable; urgency=low
629
630 * Initial release. (Closes: #655143)
631
632 -- Andres Mejia <amejia@debian.org> Sun, 08 Jan 2012 15:36:49 -0500
633
634 libcec (1.6-3) unstable; urgency=low
635
636 * changed/added:
637 * cec-client: show the firmware build date if available in cec-client -l
638 * cec-client: don't activate the source when starting
639 * cec-client: group up the output of the 'scan' command, and add the
640 currently active source to the output
641 * log the libCEC version in the 'connected to the CEC adapter' log entry,
642 and add the firmware build date to the line if it's available, so all
643 relevant version info is available in 1 log line.
644 * async writes for CUSBCECAdapterCommunication. less locks and polls, more
645 speed
646 * added 'make docs' target, that updates the doxygen documentation
647
648 * interface changes:
649 * added operator == and != for libcec_configuration
650 * added GetResponseOpcode(cec_opcode opcode) to cec_command
651 * added the firmware build date to libcec_configuration, so it can be
652 displayed by the client too.
653 * added static CLibCEC::Alert() method and CEC_ALERT_CONNECTION_LOST value
654 * added a callback to handle menu state changes. if the callback method
655 returns 1, then the change is processed by the CCECBusDevice too. if 0,
656 then the CCECBusDevice will always have menu state 'activated', so
657 keypresses are routed. bugzid: 724
658 * added a default menu language to libcec_configuration and set this
659 language for devices controlled by libcec. bugzid: 69
660
661 * fixed
662 * CCECProcessor::IsActiveSource() - TV was never checked
663 * don't call the deprecated SetActiveView() method in cec-client
664 * request the active source if unknown in CCECProcessor::GetActiveSource()
665 * don't try to match a device with PA 0xFFFF.
666 * don't change the power status of a device when changing the stream path
667 * don't set the power status to 'powered off' when marking the source
668 managed by libcec as inactive, or the tv will might send a power control
669 keycode when making it active again, potentially shutting down the system
670 * potential segfault in CCECProcessor::GetDeviceByPhysicalAddress()
671 * stream path changes when changed to the TV source (PA 0)
672 * clear the unsupported features list in CCECBusDevice::ResetDeviceStatus()
673 * never mark vendor commands as unsupported (only some may be unsupported),
674 as well as some others that should never be marked unsupported
675 * don't retry in CCECCommandHandler if the command has been marked as
676 unsupported
677 * don't request the PA of devices when handling an incoming CEC command, or
678 it'll block things while waiting for a response. if that response never
679 comes, or comes late, then other incoming commands will be timed out
680 before they are handled
681 * optimisation - strip unneeded virtual keywords from top level
682 implementations
683 * use the vlcommandhandler for the primary device that is handled by libCEC
684 when a panasonic tv is detected, so delayed activate source commands are
685 using the correct handler. bugzid: 723
686 * set the power status of device controlled by libCEC to
687 CEC_POWER_STATUS_ON
688 instead of IN_TRANSITION_STANDBY_TO_ON. reset the device status of a
689 device if it was detected as removed. bugzid: 755
690 * potentially uninitialised values in cec_command
691 * delay the 'active source' command for panasonic, until the vendor command
692 that reports that the TV is powered on has been received. bugzid: 723
693 * only respond to Give Physical Address with Report Physical Address.
694 bugzid: 592
695 This fixes several reports of the TV improperly switching to the libcec
696 device after it has previously switched to another source. Fix confirmed
697 with Panasonic and also reported to be an issue with Samsung and
698 Philips.
699 * check whether callback methods are set to a valid ptr
700 * number of retries for polls
701 * win32: fix build in paths with spaces. bugzid: 730
702 * LibCecSharp: free the alert GC callback when cleaning up
703 * the wrong setting was being read when powering on devices
704 * close the connection when a comm error was detected, and notify the
705 client via an alert
706 * don't segfault when calling ThreadsWait() without a valid thread
707 * lib/platform: fixed memleak
708 * leak in CCECAdapterMessageQueue::Write
709 * don't send commands if we know them to be unsupported. bugzid: 725
710
711 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 18 Apr 2012 11:30:00 +0100
712
713 libcec (1.6-2) unstable; urgency=low
714
715 * fixed:
716 * fixed typo in CUSBCECAdapterCommands::RequestSettings() that prevented
717 the settings from being read. the settings were still written, but never
718 read when bGetSettingsFromROM = 1.
719
720 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 18 Apr 2012 11:30:00 +0100
721
722 libcec (1.6-1) unstable; urgency=medium
723
724 * changed/added:
725 * full firmware V2 support
726 * -o/--osdname argument for cec-client to set a custom osd name
727 * added the firmware version to cec-client's -l / --list-devices command.
728 bugzid: 631
729 * added power on command for Samsung AVR devices. bugzid: 361
730 * added buttoncode for 'channels list' on Samsung (0x96)
731 * don't check for the windows ddk when a prebuilt driver installer is
732 present
733 * respond to Get Menu Language. bugzid: 547. In the event that the menu
734 language is undefined in libcec (currently the default), the response
735 will be a feature abort.
736
737 * interface changes:
738 * added the firmware version to libcec_configuration (read-only). bumped
739 server version to 1.6.0. fixed 'unknown server version' message on
740 startup. bugzid: 631
741 * added a new setting to control whether to put the TV in standby when the
742 player is put in standby. added some missing bits (version numbers,
743 config) to LibCecSharp. bugzid: 558
744 * added an alert callback. bugzid: 462
745 * added bShutdownOnStandby to libcec_configuration. bugzid: 660. This
746 setting tells the client to shutdown when the TV switches off and is
747 complimentary to bPowerOffOnStandby, which tells the PC to suspend.
748 They are kept separate to maintain backwards compatability.
749
750 * fixed
751 * gcc 4.7 compilation
752 * poll doesn't have an opcode. bugzid: 591
753 * wait for MSGEND when data was received when opening the connection.
754 bugzid: 536
755 * mark the correct device as active source after a stream path change.
756 if the new address is not found, but the old address is, then mark the
757 old address as inactive. fixes TV switching back to the old active source
758 when it scans for devices. bugzid: 592
759 * ensure that the vendor ID is sent before trying to activate any SL device
760 bugzid: 574
761 * fixed possible crash when in CLibCEC::IsLibCECActiveSource() when libCEC
762 doesn't know which device is the active source. bugzid: 479
763 * correct handling CEC_USER_CONTROL_CODE_POWER. This ensures that the power
764 code always operates as a toggle, depending on the current state, and
765 that SetCurrentButton is always called for a valid user control code.
766 bugzid: 570
767 * frequency wasn't checked in GetTimeMs(), leading to incorrect wait times
768 on some windows systems
769 * refactored USB adapter communication. less locks, shorter locks, added
770 documentation, lots of clean ups and no more incoming messages that are
771 skipped
772 * the destructor of CSerialSocket didn't call Close()
773 * added guards in CSerialPort
774 * reset m_socket to INVALID_SERIAL_SOCKET_VALUE after closing the
775 connection
776 * always wait for thread exit in CThread's desctructor
777 * crash on exit after GetDeviceInformation()
778 * check whether the destination is valid before setting anything in
779 m_bWaitingForAck. fixes heap corruption and crash on exit. bugzid: 479
780 * bUseTVMenuLanguage from libcec_configuration wasn't copied in
781 SetConfiguration(), so this setting was reset to the default value
782 (enabled) every time. bugzid: 617
783 * request the vendor id of a device if needed when the device status is
784 changed into 'present'. bugzid: 361
785 * give priority to messages from the TV. removed the global lock in
786 CCECProcessor when sending. this is no longer needed. bugzid: 238
787 * add some bounds checking to the HDMI port number. bugzid: 508
788 * fixed usbser.sys copying in the driver .INF. bugzid: 503
789 * only update the physical address when it has actually changed. bugzid:
790 672
791 * moved the static variables in os-threads from the header to a separate
792 cpp file, or it could lead to problems when included multiple times
793 * don't send an active source command when the physical address couldn't be
794 set, or it might confuse other CEC devices
795 * serial socket timeouts. bugzid: 654
796 * fixed possible crash when trying to request a vendor id of a device when
797 the address of libCEC isn't known yet. bugzid: 654
798 * extra guard so no commands are transmitted without a valid initiator.
799 bugzid: 654
800 * moved the timed ping to a separate thread. bugzid: 654
801 * persist settings directly when they're changed, only persist settings
802 that actually changed, only instruct the device to persist the settings
803 in eeprom when something changed, and don't persist settings on exit.
804 bugzid: 715
805 * cec-config-gui: persist settings both in the eeprom and in the settings
806 xml file
807 * validate the input in CCECProcessor::IsActiveSource(). fixes potential
808 crash when the active source isn't known. bugzid: 671
809
810 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 16 Apr 2012 18:03:00 +0100
811
812 libcec (1.5-4) unstable; urgency=low
813
814 * changed/added:
815 * OS-X installation requirements and pointer
816 * full v2 firmware support:
817 * ping the adapter every 15 seconds. bugzid: 541
818 * added v2 msgcodes. bugzid: 543
819 * implemented the write methods for the v2 configuration. bugzid: 543
820 * included the logical addresses in the persisted configuration for v2.
821 bugzid: 543
822 * persist the configuration before closing the connection. only try to
823 persist the configuration when talking to a v2 firmware. bugzid: 543
824 * added GetSetting() to CUSBCECAdapterCommunication. bugzid: 543
825 * read the persisted settings from the ROM, and update it in
826 libcec_configuration if found. bugzid: 543
827 * cec-client: set bGetSettingsFromROM to 1 in cec-client. bugzid: 543
828 * cec-client: only read persisted EEPROM settings when -r or --rom is
829 provided as cmdline arg. bugzid: 543
830 * call SetControlledMode(false) as last command when closing the
831 connection in v2. bugzid: 542
832 * initial FreeBSD support: simply try to use ttyU*
833
834 * fixed:
835 * set controlled mode and retry to send the previous command if it failed
836 with MSGCODE_COMMAND_REJECTED
837 * m_iLineTimeout was never initialised and used. fixes MSGCODE_REJECTED
838 when transmitting a message and incorrect line timeouts being used
839 * mac configure compile bugzid: 157
840 * cec-config-gui: fixed application exit when the user clicked 'no' when
841 asked to reconnect. bugzid: 556
842 * only wait for multiple 'command accepted' response when sending a
843 transmit command, and only to 1 in other cases. bugzid: 543
844 * set the correct logical address mask before switching to autonomous mode.
845 bugzid: 543
846 * re-added SetLineTimeout(). bugzid: 543
847 * CUSBCECAdapterCommunication::SetControlledMode checked for the wrong sent
848 state
849 * os-x: don't add 0.5 before dividing in GetTimeMs()
850 * os-x: struct timespec now values weren't set correctly
851
852 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 16 Mar 2012 10:12:00 +0100
853
854 libcec (1.5-3) unstable; urgency=low
855
856 * fixed:
857 * OS-X compilation
858 * default to firmware version 1 after 3 tries. some versions didn't send a
859 version.
860 * fixed cec-config win32 compilation
861
862 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sat, 03 Mar 2012 15:21:00 +0100
863
864 libcec (1.5-2) unstable; urgency=low
865
866 * changed/added:
867 * added Toshiba's vendor id, and set the device ID of the primary device to
868 Toshiba's and transmit it when starting
869 * lock in SyncedBuffer
870 * added a timeout to StopThread()
871 * also add commands to unsupported features when receiving
872 CEC_ABORT_REASON_REFUSED
873 * cec-config-gui: set cbPortNumber enabled when the physical address
874 override isn't checked instead
875 * cec-config-gui: added support for the new 'send inactive source' setting
876
877 * interface changes:
878 * added an 'send inactive source' option to libcec_configuration, only
879 supported by client/server 1.5.1 and up. bugzid: 439
880 * added a command to the interface to start the bootloader directly,
881 without going through all checks. bugzid: 218
882 * LibCecSharp: implemented support for the new 'send inactive source'
883 setting
884
885 * fixed:
886 * don't send an updated configuration when libCEC hasn't been initialised
887 fully. bugzid: 459
888 * don't send an updated configuration back when initialising. let the
889 client call the GetCurrentConfiguration() method. bugzid: 459
890 * configuration updates from libCEC. bugzid: 459
891 * fixed accidental double deref. the method parameter already does that.
892 github #24
893 * use CLOCK_MONOTONIC for timing info, since gettimeofday is affected by
894 ntp and by manually adjusting the system time
895 * the timeout value of pthread_cond_timedwait has to be referenced to
896 CLOCK_REALTIME
897 * don't add data to the input buffer in CUSBCECAdapterCommunication before
898 it's fully initialised
899 * fixed return value of CUSBCECAdapterCommunication::ParseMessage(). fixes
900 messages not being parsed in certain occasions
901 * don't try to transmit when the processor is being stopped
902 * set the server version in the LibCEC's constructor, since this is
903 checked by clients. fixes 'invalid libCEC version' popup when inserting
904 the adapter
905 * don't wait for the full timeout to pass in CCECProcessor::
906 OpenConnection(), but retry to connect 2 times. fixes 'port busy' errors
907 when initialising libCEC. bugzid: 436
908 * use the correct Sleep() method in CCECProcessor::OpenConnection(). the
909 thread hasn't been started there yet, so the sleep wasn't working. fixes
910 'device or resource busy' when plugging in the adapter. bugzid: 436
911 * check the adapter ping and firmware before starting the reader thread, so
912 we really leave the com port alone for a second when it fails because of
913 a busy error. bugzid: 436
914 * ensure that the connection is really closed before retrying to connect.
915 bugzid: 436
916 * LibCecSharp: recreate the delegates properly when (re)connecting to
917 LibCecSharp
918
919 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 28 Feb 2012 21:19:00 +0100
920
921 libcec (1.5-1) unstable; urgency=low
922
923 * changed/added:
924 * a new libcec_configuration structs, which allows the client app to pass
925 a number of new options, like waking multiple devices on startup,
926 overriding the vendor id, etc.
927 * a new configuration GUI for Windows (.NET). this allows you to set
928 libCEC's configuration for XBMC in a convenient GUI.
929 * a CLI configuration tool (unfinished) for other platforms. will be
930 finished in an update.
931 * implemented power up for LG devices other than a TV
932 * win32: don't install libcec to the system directory by default, and
933 delete previous (testing) copies if present
934 * wait for multiple responses, not just for one at a time
935 * set the ackmask to 0 when closing the connection
936 * don't send 'image view on' when calling SetActiveSource()
937 * don't send power on, acitve source and standby commands by default in
938 cec-client
939 * platform: added CTryLockObject
940 * platform: added an Init() method in CTimeout, so it can be reset
941
942 * interface changes:
943 * added a new initialiser method: CecInitialise()/cec_initialise(), that
944 accepts a "libc_configuration" struct as parameter. this way, the
945 signature of the init method can stay the same when adding new options.
946 in LibCecSharp, the new method appears as a new constructor.
947 * added CanPersistConfiguration()/cec_can_persist_configuration()
948 * added PersistConfiguration()/cec_persist_configuration()
949 * added GetCurrentConfiguration()/cec_get_current_configuration()
950 * added SetConfiguration()/cec_set_configuration()
951 * added GetLogicalAddresses()/cec_get_logical_addresses(): returns the list
952 of addresses controlled by libCEC
953 * added RescanDevices()/cec_rescan_devices(): lets libCEC force polls to
954 all logical addresses.
955 * added a callback that is called when libCEC's configuration changed.
956 * moved the autodetect address api call to libcec_configuration. only send
957 power up commands to non-tv devices when the power state is not
958 on/transition->on. let players call the power up/power down command.
959 * return the anynet return keycode directly instead of translating it to
960 'return' for v1.5.0+ clients
961 * extracted CecSharpTypes.h in LibCecSharp. LibCecSharp is now in the
962 CecSharp namespace
963 * include the local cectypes.h in cec.h and cecc.h instead of system wide
964 * deprecated GetLibVersion() methods. use libcec_configuration instead
965 * removed deprecated CECCreate() method
966
967 * fixed:
968 * fixed a lot of LG specific issues
969 * fixed OS-X compilation. credits: Dustin Cooper
970 * fixed a couple of possible deadlocks, e.g. when closing the connection
971 while receiving data
972 * cleaned up existing code
973 * libCEC no longer puts incoming data in a fifo buffer, but tries to
974 process it directly, which fixes issues like libCEC blocking processing
975 new commands while waiting for transmission acks.
976 * 'unsupported command' marking in CCECBusDevice
977 * ensure that the ackmask is always set to 0 when closing the connection
978 and that the call doesn't block the Close() call
979 * don't try to read or write in CUSBCECAdapterCommunication when the
980 connection has been closed
981 * LibCecSharp: added quotes to the linker statement for libcec.lib. fixes
982 compilation in paths with spaces. closes #20
983 * LibCecSharp: set the callback methods in libcec to NULL before closing
984 the connection, since these might already have been destroyed in .NET
985 * LibCecSharp: delete the internal callback struct when closing the
986 connection
987 * LibCecSharp: pass correctly formatted logical address lists
988 * ensure that the vendor id is requested first when requesting info from a
989 device, so we are using the correct handler
990 * keep the 'busy state' of the command handler in CCECBusDevice
991 * poll the next device when the current is handled by libCEC.
992 * check the vendor id of a device before sending a power on command
993 * ensure that there always is at least one device type set
994 * transmit a keypress and key release as power on command when the target
995 device isn't the TV
996 * don't do a full reinit when not needed
997 * fix active source switches for the standard CEC implementation
998 * ensure that we don't send data to ourself
999 * check whether the port is open, not whether libCEC is initialised in
1000 Transmit()
1001 * platform: fixed return value from CCondition::Wait()
1002 * platform: don't broadcast but wake one thread in
1003 CProtectedSocket::MarkReady()
1004 * platform: include stdint.h in windows/os-types.h instead of typedef'ing
1005 ints
1006 * platform: fixed tcp socket error handling and return value.
1007 * platform: fixed return values of socket operations in lib/platform
1008 * platform: added predicate in CCondition
1009 * deleted the signed driver from the tree, since that doesn't work. let the
1010 installer create a new signed driver on the production build system
1011
1012 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 19 Feb 2012 01:04:00 +0100
1013
1014 libcec (1.4-4) unstable; urgency=low
1015
1016 * changed/added:
1017 * added tcp client sockets to lib/platform (WIP)
1018 * clean up lib/platform
1019 * added: set controlled mode on after opening a connection to the adapter
1020 (for firmware v2)
1021 * added an IAdapterCommunicationCallback interface an use a callback method
1022 to pass newly received cec_commands to CCECProcessor
1023 * added "driver only" and "driver + libcec" sections to the installer
1024 * added a signed driver
1025 * created a separate driver installer, which is included in the libCEC
1026 installer. uninstalls the old unsigned version of libCEC and the driver
1027 when it's found and installs the new one in C:\Program Files(x86)\
1028 Pulse Eight\USB-CEC Adapter.
1029 * don't sign development binaries with a temporary key. devs can do that
1030 themselves when they want LibCecSharp in the GAC
1031 * interface changes:
1032 * added SetStreamPath()/cec_set_stream_path_logical()/
1033 cec_set_stream_path_physical() to the interface, to send a
1034 "set stream path" command over the CEC bus, used to activate another
1035 source.
1036 * fixed:
1037 * transmit 'menu state activated' after the stream path has been set to a
1038 device that is handled by libCEC. should fix remote commands not working
1039 properly on Panasonic TVs and after another source has been active.
1040 bugzid: 233
1041 * set the ackmask to 0x0 when trying to find a free logical address
1042 * keep trying to reconnect to the com port until the timeout runs out.
1043 bugzid: 230
1044 * wait 500 ms before trying to retransmit a command. always wait for the
1045 result of a transmission in CCECCommandHandler::Transmit()
1046 * receive and send full cec_commands, not CCECAdapterMessages in
1047 CAdapterCommunication. extract an IAdapterCommunication interface. fixed
1048 potentially missed data in CAdapterCommunication
1049 * close and delete the connection when the processor thread ends. fixes
1050 reconnect after standby (access denied / connection already opened)
1051 * don't replace handlers when not initialised, or the primary device's
1052 logical addres isn't known yet, which can lead to crashes. don't call
1053 handlers directly in CCECProcessor without holding a lock on them
1054 * fixed possible crash when command handler were switched while it was
1055 being used
1056 * keep the mutex locked when calling ReplaceHandlers() in CCECProcessor
1057 * win32: also timeout when data is received in SocketRead()
1058 * win32: fixed < vista runtime and compilation
1059 * win32: ping the adapter and request the firmware version in
1060 CUSBCECAdapterCommunication instead of CCECProcesssor. fixes failed
1061 libCEC inits
1062 * win32: fixed crash on exit in LibCecSharp
1063
1064 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Mon, 6 Feb 2012 14:26:00 +0100
1065
1066 libcec (1.4-3) unstable; urgency=low
1067
1068 * fixed:
1069 * try to ping the device and grab the firmware version until the connect
1070 timeout runs out. fixes failed reconnect after standby, when the adapter
1071 is still being initialised
1072
1073 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 27 Jan 2012 13:05:00 +0100
1074
1075 libcec (1.4-2) unstable; urgency=low
1076
1077 * changed/added:
1078 * added a firmware flash script for linux.
1079 usage: ./support/cec-flash-device.sh /path/to/firware.hex
1080 * refactored threading/locking - added windows native instead of
1081 pthread-win32, so we can compile native x64 too
1082 * check whether the adapter responds when connecting to it and report the
1083 firmware version of the adapter after connecting
1084 * moved create-installer.cmd to support/
1085 * completely removed AM_SILENT_RULES
1086 * interface changes:
1087 * compile LibCecSharp against .NET framework 2.0 and sign the assembly
1088 * fixed:
1089 * only the key release events were sent, not keypresses, which appeared in
1090 clients as laggy keypresses
1091 * fixed reconnect after standby
1092 * wait for active tranmission to finish when opening a connection to the
1093 adapter. fixes initialisation errors
1094 * set the default transmit timeout properly instead of using 0
1095 * fixed possible deadlock because of a negative timeout in
1096 CAdapterCommunication::WaitForTransmitSucceeded()
1097 * fixed error message in cec-client (unable to open the device on port ...)
1098 * exit cec-client after entering bootloader mode
1099 * MSGCODE_START_BOOTLOADER doesn't respond with MSGCODE_COMMAND_ACCEPTED
1100
1101 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 25 Jan 2012 23:28:00 +0100
1102
1103 libcec (1.4-1) unstable; urgency=low
1104
1105 * changed/added:
1106 * added the vendor id for Sony
1107 * always refresh the power state of a device when it hasn't been updated
1108 for 30 seconds
1109 * do silent builds by default
1110 * interface changes:
1111 * added optional callback methods to libCEC. enable them by calling
1112 EnableCallbacks(ICECCallbacks *callbacks) /
1113 cec_enable_callbacks(ICECCallbacks *callbacks). after this method is
1114 called, the GetNext...() methods will not return any data
1115 * added the same callbacks to LibCecSharp. implement CecCallbackMethods
1116 and override the methods in there
1117 * fixed:
1118 * use the given timeout when trying to open a connection to the CEC
1119 adapter
1120 * resolved difference between method name in LibCECC.cpp and cecc.h.
1121 credits: Doug Johnson
1122 * don't transmit physical addresses while holding a lock in CCECProcessor
1123 * don't hold a lock when sending an active source message.
1124 * unload libCEC when the lib version is invalid
1125 * "unused" warnings suppressed
1126
1127 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 12 Jan 2012 19:06:00 +0100
1128
1129 libcec (1.3-3) unstable; urgency=low
1130
1131 * changed/added:
1132 * place in libudev include in an extern C block. fixes compilations on
1133 older libudev versions (e.g. on Hardy). closes #2. credits @fbuenemann
1134 * added pkg-config to the dependencies list. issue #15
1135 * updated README. closes #14
1136 * added a script that tests some basic functions of the CEC adapter:
1137 /support/cec-test-device.sh
1138 * fixed:
1139 * don't make libCEC the active source when changing the physical address.
1140 don't send active source messages on startup, when not the active source
1141 fixes unwanted device power ups
1142 * replace the command handler directly after receiving a changed vendor
1143 id. change the primary type from recording device to playback device
1144 for panasonic TVs
1145 * don't send a deck status update when sending an active source message
1146 for panasonic TVs
1147 * only switch handlers once when using the generic handler
1148 * don't switch handlers when not needed
1149 * hold a lock in CCECProcessor::SetHDMIPort()
1150 * don't send deck status updates when sending an active source message by
1151 default
1152
1153 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 3 Jan 2012 22:48:00 +0100
1154
1155 libcec (1.3-2) unstable; urgency=low
1156
1157 * changed/added:
1158 * copy libcec.dll to the XBMC installation dir when XBMC is found
1159 * disable background polling. let the client request this info when needed
1160 * update the power status of a device when it's set to
1161 CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON
1162 * wait for the correct response when requesting something, not just any
1163 response
1164 * don't keep trying the same command/request after receiving a feature
1165 abort message
1166 * interface changes:
1167 * change the previously unused boolean parameter in volume control methods
1168 to bSendRelease, and only send a key release when it's true. default to
1169 true
1170 * fixed:
1171 * don't send the power up/down keypress to listeners when in the initial
1172 device state (powered off). fixes unexpected shutdown in XBMC when
1173 connecting to the CEC adapter.
1174 * send a 'menu state activated' command when starting up. bugzid: 113
1175 * don't wait for a response when not needed
1176 * don't hold a lock while waiting for a response. fixes failed libCEC
1177 inits and slow responses
1178 * don't replace a command handler when it's being used. fixes possible
1179 crash on startup
1180 * don't try to do anything before the processor thread has started
1181 * don't transmit active source messages when the physical address is
1182 still 0xFFFF
1183 * don't init the default handler before the physical address is known
1184
1185 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 29 Dec 2011 03:05:00 +0100
1186
1187 libcec (1.3-1) unstable; urgency=low
1188
1189 * changed/added:
1190 * make libudev optional. if libudev is not available on linux, adapter
1191 autodetection will also not be available. fixes compilation on Hardy/ATV1
1192 * added a C++ CLR wrapper for libCEC, so libCEC can be used by any .NET
1193 language
1194 * added vendor support for LG
1195 * added vendor support for Philips
1196 * added vendor support for Yamaha
1197 * added vendor support for Onkyo
1198 * added 'scan' command to cec-client, that displays info about devices on
1199 the bus. made all ToString() methods available on the interface.
1200 * added '-s' or '--single-command' to cec-client. starting cec-client with
1201 this parameter executes a single command in cec-client and does not power
1202 on devices on startup and power them off on exit. this way, you can use
1203 cec-client in a shell script. since there's some handshaking involved at
1204 startup, this is not very fast. to execute a command and only display the
1205 result and any error/warning, execute it with
1206 RESULT=`echo command | cec-client -s -d 3` (on linux/osx, win32 batch
1207 files are a bit different)
1208 * added HDMI port ('-p' or '--port') and base device ('-b' or '--base') to
1209 cec-client's parameters
1210 * handle image view on and text view on
1211 * handle routing information and report physical address opcodes
1212 * handle audio status updates
1213 * send ping and bootloader commands via the output queue
1214 * scan the CEC bus for devices when starting libcec
1215 * pass all commands that are directed at libcec to listeners
1216 * interface changes:
1217 * added GetActiveSource()/cec_get_active_source()
1218 * added IsActiveSource()/cec_is_active_source()
1219 * added GetDevicePhysicalAddress()/cec_get_device_physical_address()
1220 * added GetDeviceOSDName()/cec_get_osd_name()
1221 * added SendKeypress()/cec_send_keypress() and SendKeyRelease()/
1222 cec_send_key_release()
1223 * added VolumeUp()/cec_volume_up(), VolumeDown()/cec_volume_down(),
1224 MuteAudio()/cec_mute_audio()
1225 * added GetActiveDevices()/cec_get_active_devices(), IsActiveDevice()/
1226 cec_is_active_device(), IsActiveDeviceType()/cec_is_active_device_type().
1227 * added SetHDMIPort()/cec_set_hdmi_port(). devices are now detected on load
1228 and when a device with the same physical address is detected, libcec will
1229 use the selected hdmi port on that device. should fix source selection on
1230 other devices, like an amplifier
1231 * added a hook in libcec for physical address autodetection
1232 * fixed:
1233 * don't request the physical address from the tv (it's always 0x0000)
1234 * set the proper ackmask before doing anything else
1235 * don't unlock the transmit mutex in CCECProcessor while waiting for an
1236 answer
1237 * fix device polling
1238 * refactor CEC read/write. keep a single lock for all writes, not one per
1239 device
1240 * ignore other data while waiting for a response
1241 * retry failed tranmissions
1242 * don't delete a message before it's been sent when starting the bootloader
1243 * or when sending a ping
1244 * fixed possible segfault when switching the command handler after a vendor
1245 * id changed
1246 * handle audio opcodes correctly
1247 * inactive source should be directly addressed at the TV
1248 * don't report a changed physical address when it hasn't changed
1249 * routing information sets the stream path, not the physical address
1250 * don't scan the whole bus in CCECProcessor::IsActiveDeviceType()
1251 * don't request the vendor id from devices that are handled by libcec
1252 * mark device status as present when a command was received from a device
1253 * always send a power on command in CCECBusDevice::PowerOn()
1254 * don't request updates statusses unless needed
1255 * report physical address sends 3 parameters, not 2. check whether the
1256 device type is correct
1257 * devices can send vendor commands from other vendors, so don't assume the
1258 device is of a certain vendor when it sends commands with a vendor id
1259 * thread safety fixes. bugzid: 19
1260 * clear any previous input when opening a connection to the adapter.
1261 bugzid: 54
1262 * use the correct source address in CSLCommandHandler::HandleVendorCommand()
1263 * uncorrected CEC_OPCODE_DEVICE_VENDOR_ID. closes #5
1264 * renamed enum methods. fixes potential macro collision with isset().
1265 thanks davilla
1266 * don't change the active device when receiving stream path changed
1267 messages. fixes wrong source selection when powering after the TV.
1268
1269 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 09 Dec 2011 12:16:00 +0100
1270
1271 libcec (1.2-1) unstable; urgency=low
1272
1273 * bugfixes:
1274 * pass the deck_control command to libcec listeners
1275 * check whether the initiator is valid in CCECProcessor::ParseCommand().
1276 fixes possible segfault when parsing invalid data
1277
1278 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sat, 12 Nov 2011 13:36:00 +0100
1279
1280 libcec (1.1-3) unstable; urgency=low
1281
1282 * fixed return value in CCECProcessor::SetStreamPath(), which prevented
1283 active source and menu state from being sent
1284
1285 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 23:36:00 +0100
1286
1287 libcec (1.1-2) unstable; urgency=low
1288
1289 * forgot to update the headers to v1.1
1290
1291 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 18:56:00 +0100
1292
1293 libcec (1.1-1) unstable; urgency=low
1294
1295 * interface changes:
1296 * added logical address autodetection and let libcec handle multiple types
1297 simultaniously. for logical address autodetection, you have to use
1298 CECInit()/cec_init_typed() instead of CECCreate()/cec_init()
1299 * added SetActiveSource()/cec_set_active_source() to the interface.
1300 deprecated SetActiveView()/cec_set_active_view()
1301 * added SetMenuState()
1302 * added PollDevice()/cec_poll_device()
1303 * removed duplicate method SetActiveSource() / SetActiveView()
1304 * added SetDeckControlMode() and SetDeckInfo()
1305 * fixed:
1306 * added vendor detection for panasonic and broadcast active view and set
1307 menu state when a panasonic device sets the stream path. thanks for the
1308 pointer cptcoconut.
1309 * added vendor code for pioneer
1310 * osd string is 13 chars max. don't send more
1311 * send the correct cec version for each device
1312 * switch to panasonic specific cec implementation if a panasonic device was
1313 detected
1314 * send the correct device type in TransmitPhysicalAddress()
1315 * send a reply from the correct device when the stream path is requested
1316 * opcode 0x80 means the stream path changed, not the physical address
1317 * don't poll for a vendor ID in monitoring mode
1318 * fixed parameter parsing in SetVendorId()
1319 * buffer up commands that are received while waiting for an ack. only send
1320 'active source' message for the actual active source
1321 * win32: prepend the com port path with '\\.\', so com ports > 9 can be
1322 accessed. thanks smolesen
1323 * audio systems cannot be an active source, so don't transmit active
1324 source message from this device
1325 * only send 'active source' when powered on
1326 * only set the osd name for the primary device. use default values for
1327 others
1328 * increase physical address with 0x100 per device
1329 * win32: removed unneeded afxres.h include in the resource files, which
1330 is not present when using studio express. thanks Ghuron
1331 * fixed C headers
1332 * mark the active source as active and other devices as inactive
1333 * set the power status to 'on' when receiving CEC_USER_CONTROL_CODE_POWER
1334 * transmit the menu state as (active) when the stream path is set
1335 * changed:
1336 * changed copyright of boblight files with permission of the original
1337 author
1338 * partial handling of audio related opcodes
1339 * more consistent log messages
1340 * set a device type and name for each CCECBusDevice
1341 * keep a power and menu state per device
1342 * renamed all Broadcast...() and Report...() methods to Transmit...()
1343 * renamed SetOSDString() to TransmitOSDString()
1344 * changed debug level of 'did not receive ack' from error to debug
1345 * only set the power status to 'on' for the primary device
1346 * moved method decriptions from cecc.h to cec.h
1347 * only send a power on command when a device isn't on already and set
1348 the power state to CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON while
1349 powering on
1350 * handle CEC_OPCODE_STANDBY
1351 * handle CEC_OPCODE_ACTIVE_SOURCE
1352 * always start in standby mode and let the tv (or other device) send the
1353 power on command
1354 * renamed the last few enums
1355 * handle deck related opcodes.
1356 * added TransmitVendorId(), but only transmit the id if it's not set to 'unknown'
1357
1358 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 11 Nov 2011 17:42:00 +0100
1359
1360 libcec (1.0-1) unstable; urgency=low
1361
1362 * interface changes:
1363 * set lib interface version back to 1.0 and rename GetLibVersion() to
1364 GetLibVersionMajor() and GetMinVersion() to GetMinLibVersion()
1365 * added GetLibVersionMinor()/cec_get_lib_version_minor() and set the minor
1366 version number to 1
1367 * fixed:
1368 * samsung's vendor specific remote keypresses don't send key releases. added
1369 call to AddKey() directly after the keypress
1370 * always reset the button press time in CLibCEC::AddKey()
1371 * always wait for a signal in CCECProcessor::Transmit()
1372 * changed:
1373 * drop shared_ptr and use a normal pointer. removed boost dependency
1374
1375 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 04 Nov 2011 00:14:00 +0100
1376
1377 libcec (0.8-2) unstable; urgency=low
1378
1379 * added 'libboost-dev' to build deps
1380
1381 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 01 Nov 2011 23:31:00 +0100
1382
1383 libcec (0.8-1) unstable; urgency=low
1384
1385 * interface changes:
1386 * added GetDevicePowerStatus()/cec_get_device_power_status()
1387 * added GetDeviceVendorId()/cec_get_device_vendor_id()
1388 * added GetDeviceMenuLanguage()/cec_get_device_menu_language()
1389 * added GetDeviceCecVersion()/cec_get_device_cec_version()
1390 * added SwitchMonitoring()/cec_switch_monitoring() to the interface. when
1391 monitoring is enabled, the device will only log the data it received,
1392 but will not respond to any message
1393 * removed timeout parameter in Transmit() and included the ack timeout in
1394 the cec_command struct
1395 * made the vendor id -> vendor name translation available
1396 * made CEC_LOG levels powers of 2
1397 * introduced CEC_LOG_TRAFFIC log level
1398 * fixed:
1399 * set the correct ackmask on startup
1400 * wait for ack while keeping a lock
1401 * wait for the processor thread to start before continueing on startup
1402 * wait for messages to be transmitted before continueing in
1403 CCECProcessor::Transmit()
1404 * only set the logical address once when it has changed
1405 * correct source for broadcast messages
1406 * win32: create Release type installer
1407 * changed:
1408 * make all reads and write in CAdapterCommunication go through buffers.
1409 * poll for a vendor ID of connected devices and switch to a non-standard
1410 CEC implementation if needed.
1411 * added vendor detection of Samsung and LG devices
1412 * handle samsung remote command 'return'
1413 * cec-client:
1414 * added -la and --logical-address to the command line params
1415 * added -d and --log-level params to cec-client
1416 * added -sf and --short-log-file, which only log the actual messages, not
1417 the level and timestamp
1418 * added -f and --log-file parameters to cec-client
1419 * added option to change the log level to cec-client
1420
1421 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 01 Nov 2011 22:58:00 +0100
1422
1423 libcec (0.7-1) unstable; urgency=low
1424
1425 * send a keypress with 0 duration when a key is pressed and with a duration
1426 set when it's released
1427 * added SetOSDString() to the interface (not supported by all tvs)
1428 * fixed: 'routing change' is a broadcast message. log routing changes, but
1429 don't send a 'set active view' message, so the active input won't be
1430 changed
1431 * log keypresses in the debug log
1432 * added 'pa' command to cec-client, to change the physical address
1433 * added SetPhysicalAddress()/cec_set_physical_address() to the interface, so
1434 the HDMI port number to use can be changed
1435 * fixed: put the message processing code from WaitForAck() in ParseMessage().
1436 fixes missing incoming message logging of non-data messages when not
1437 waiting for an ACK
1438 * added 'txn' command to cec-client. same as 'tx', but doesn't wait for ACK
1439 before returning
1440 * fixed: set initiator and destination first in cec_command::push_back().
1441 fixes 'tx' command in cec-client
1442 * fixed: keep trying to connect while iTimeout isn't reached (default 10
1443 seconds). fixes exit with a 'permission denied' error when the device isn't
1444 ready yet. remove CEC_SETTLE_DOWN_TIME
1445 * fixed: don't call SetActiveView() when reporting the power status. fixes
1446 loop which causes some TVs to report failed connections
1447 * fixed: eom was not being parsed when receiving MSGCODE_FRAME_DATA. fixed.
1448 * fixed: add the device type as parameter when sending the physical address.
1449 thanks bobo1on1
1450 * fixed: typo in libcec.pc.in
1451 * added optional strLib parameter to LoadLibCec(), so the location of the
1452 shared library can be specified
1453 * only link cec-client against ld. use AC_SEARCH_LIBS instead of AC_CHECK_LIB
1454 * use int instead of bool on the public C interface and remove stdbool.h include
1455 * renamed: CECExports.h => cec.h, CECExportsC.h => cecc.h, CECLoader.h =>
1456 cecloader.h, CECTypes.h => cectypes.h
1457 * updated debian package. split up libcec and libcec-dev
1458 * fixed: changed to use dlopen instead of static linkage. shuffled headers a
1459 bit. bumped interface to version 7
1460 * removed 'rt' from libraries. it's not needed (anymore)
1461 * fixed: reset the active view after a routing change. issue #1
1462 * fixed: changed attached license to be GPLv2 instead of GPLv3 this was an
1463 error as libCEC is licensed GPLv2 not GPLv3 thanks @garbear
1464 * added contributors link
1465
1466 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 14 Oct 2011 17:34:00 +0200
1467
1468 libcec (0.6-1) unstable; urgency=low
1469
1470 * bumped interface version to 6
1471 * fixed packet output (reporting the OSD name correctly now)
1472 * refactored packet structs: split up in cec commands and adapter messages
1473 * fixed i/o timings
1474 * added Darwin support (thanks Davilla!)
1475 * fixed WaitForAck()
1476 * fixed possible deadlock when starting a new thread
1477 * implemented vendor id and device class parsing. full detection will follow
1478 * added "on" and "standby" commands to the test client
1479 * retransmit packets if needed
1480 * fix GetTimeMs() on linux
1481 * added timestamp to log messages
1482
1483 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sun, 09 Oct 2011 15:15:00 +0200
1484
1485 libcec (0.5-1) unstable; urgency=low
1486
1487 * bumped interface version to 5
1488 * don't pass std::string and std::vector accross the interface
1489 * fixed heap corruption crashes on windows
1490 * fixed some memory leaks
1491 * reset all structs to default values before doing with them
1492
1493 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 07 Oct 2011 22:00:00 +0200
1494
1495 libcec (0.4-3) unstable; urgency=low
1496
1497 * fixed reconnect
1498 * fixed some threading related bugs
1499 * fixed deadlock on exit
1500 * fixed wrongly reported physical address
1501
1502 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Thu, 06 Oct 2011 00:19:00 +0200
1503
1504 libcec (0.4-2) unstable; urgency=low
1505
1506 * fixed int parameter sizes and some signed/unsigned warnings
1507 * check whether m_port isn't NULL in ReadFromDevice
1508 * stop the processor thread and delete the CSerialPort instance on exit
1509 * added mutex in CSerialPort
1510 * fix segfault on exit
1511 * renamed libPlatform -> platform.
1512 * stuck everything from libCEC in the CEC namespace to avoid namespace
1513 polution
1514
1515 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 04 Oct 2011 23:45:00 +0200
1516
1517 libcec (0.4-1) unstable; urgency=low
1518
1519 * bumped interface version to 4
1520 * timeout parameter removed from Close()/cec_close(). return type changed to
1521 void
1522 * added cec_destroy() method
1523 * removed timeout parameter from Transmit()
1524 * change the default argument of PowerOnDevices() to CECDEVICE_TV
1525 * removed PowerOffDevices(). use StandbyDevices() instead
1526 * removed obsolete methods from the interface
1527 * fixed bug: pthread_cond_wait was called without the mutex locked
1528 * fixed possible deadlock: don't send messages and wait for an ack with the
1529 mutex locked in CCECParser
1530 * created a separate reader thread and fixed the 'lock timeout' bug
1531 * testclient: use CECDEVICE_TV instead of the default argument
1532 (CECDEVICE_BROADCAST) for PowerOnDevices() and PowerOffDevices()
1533
1534 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Tue, 04 Oct 2011 00:48:00 +0200
1535
1536 libcec (0.3-1) unstable; urgency=low
1537
1538 * added device detection support for Windows
1539
1540 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Sun, 02 Oct 2011 12:09:33 +0200
1541
1542 libcec (0.2-1) unstable; urgency=low
1543
1544 * added a Close() method to the interface
1545 * Added CEC command that were received by the adapter in a buffer that can be
1546 read by a client with GetNextCommand()/cec_get_next_command(). added a
1547 'help' command to the test client, that displays all available commands
1548 * Fixed setting the ackmask. deprecated SetAckMask()/cec_set_ack_mask(). use
1549 SetLogicalAddress()/cec_set_logical_address() instead. add 'la' command to
1550 the testclient to set the logical address of the cec adapter
1551 * Added optional logical and physical address parameters to
1552 LoadLibCec()/cec_init() on the interface. fixed wrongly placed namespace
1553 close tag in CECExports.h. updated interface documentation. bumped
1554 interface version to 2.
1555 * fixed hardcoded ackmask in SetAckMast(). set a shorter display name in the
1556 test client. the previous one was too long and being rejected
1557
1558 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Fri, 28 Sep 2011 01:33:00 +0200
1559
1560 libcec (0.1-1) unstable; urgency=low
1561
1562 * Initial release v0.1
1563
1564 -- Pulse-Eight Packaging <packaging@pulse-eight.com> Wed, 28 Sep 2011 23:55:48 +0200