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