libcec (1.7.2-1) unstable; urgency=low

  * changed/added:
    * display a warning message if libCEC was not compiled with adapter
      detection for the target platform
    * panasonic: added a vendor command for panasonic that will enable routing
      of some more buttons on the remote (guide, text, ...)
    * standby command won't be forwarded more than once every 10 seconds
    * added vendor ids for Akai, AOC, Benq, Daewoo, Grundig, Medion, Sharp and
      Vizio
    * cec-client: don't display debug output by default in 'cec-client -l'

  * interface changes:
    * added a callback for clients that is called when a source is
      (de)activated, so the client can respond to this action
    * added cec_command::PushArray()

  * fixed:
    * command forwarding. fixes player not going into standby mode
    * missing virtual keyword in CCECCommandHandler::
      GetReplacementDeviceType()
    * replace the handler (if needed) in GetHandler()
    * reply with abort reason 'invalid operand' to vendor commands that we
      don't understand
    * changed all Handle...() commands to return a cec_abort_reason and send
      the correct abort reason to the initiator as a response to directly
      addressed messages
    * changed 'couldn't change the ackmask: the connection is closed' into a
      debug message
    * don't send active source commands when the physical address is invalid or
      unknown
    * set the power status of a device to 'powered on' after it sends a stream
      path change. can save an unneeded power state update request
    * removed dupe code around delayed activate source commands. check for
      delayed active source commands every 5 seconds instead of 15 seconds.
    * panasonic: reset m_bPowerUpEventReceived in CVLCommandHandler when the
      device lets us know it went into standby mode. fixes possibly failed
      active source switches after it succeeded once
    * panasonic: fixed delayed source switch for panasonic
    * panasonic: mark the tv as powered up once it sends the audiomode request
    * set the physical address of each device controlled by a CCECClient if
      it's valid
    * Windows could get stuck in a loop in case there an error occured while
      reading registry entries
    * ABI fixes (binary compat with v1.2 for Windows and v1.5.2 for others)
    * replace the handler directly after getting the vendor id of a device when
      registering a client
    * copy the class member values of the old handler when creating a new
      command handler, or a delayed activate source will get lost when the
      handler is switched
    * cec-client: wrong client version
    * Makefile cleanups. don't link cec-client and cec-config against libudev
      and liblockdev
    * pin libcec to the same version as libcec1
    * LibCecSharp: update the local configuration after connecting
    * LibCecSharp: better handling of callbacks

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Wed, 27 Jun 2012 02:06:00 +0100

libcec (1.7.1-1) unstable; urgency=low

  * changed/added:
    * added physical address detection via ADL for AMD graphics cards
    * attempt to get the edid from nvidia's graphics card driver on linux via
      /proc/acpi/video/NGFX/HDMI/EDID
    * attempt to get the PA from the registry on windows if we fail to get the
      physical address from the display driver
    * changed the order in CCECClient::SetPhysicalAddress() so it first checks
      whether a PA override is set in libcec_configuration.iPhysicalAddress,
      then checks whether the address can be detected, and if both failed it'll
      use the HDMI port + base device setting
    * cec-client: only active the source when reconnecting if libcec was the
      active source before closing the connection
    * platform: added tcp server sockets for posix

  * interface changes:
    * libcec_configuration.bAutodetectAddress is now read-only, and will be set
      to 1 by libCEC if the PA was autodetected
    * LibCecSharp: don't use an int but a CecUserControlCode in a CecKeypress

  * fixed:
    * don't unregister clients in CLibCEC when disconnecting, but only in
      CCECProcessor. fixes reconnect after close
    * MSGCODE_TIMEOUT_ERROR is a response to a transmission
    * retry 'activate source' every 10 seconds if it failed
    * don't respond with a poll from the broadcast address when receiving
      in CSLCommandHandler::HandleDeviceVendorId(), but use the primary LA of
      the client as source instead
    * hold a lock when changing the ackmask in
      CUSBCECAdapterCommunication::Open
    * don't respond with a feature abort to opcode play messages. bugzid: 873
    * get the vendor id of the TV before allocating logical addresses, so we
      can determine if the TV supports the requested device type directly
    * TransmitImageViewOn() and TransmitActiveSource() always returned true,
      even if sending the command failed, so the retry for failed source
      activations was never triggered
    * open libcec.so.1 instead of libcec.so in cecloader.h. credits @coling.
      github issue #30.
    * fixed missing firmware version and build date in cec-client -l /
      GetDeviceInformation()

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Sun, 10 Jun 2012 13:39:00 +0100

libcec (1.6.1-5) unstable; urgency=low

  * synced /debian directory with the one in precise (with a couple of changes)
  * changed/added:
    * serial port locking on linux
    * cec-client: added -m/--monitor startup options, which will start a
      monitor-only client. use 'mon 0' to switch to a normal client
    * display an alert message when the firmware of the adapter can be upgraded
    * added CEC 1.4 opcodes
    * send a feature abort again for all unhandled commands
    * refactored CLibCEC so a client registers itself within CCECProcessor,
      which then allocates one or more logical addresses for it.

  * interface changes:
    * added a new setting, bMonitorOnly, which will start a monitor-only client

  * fixed:
    * ensure that we don't crash out when trying to stop a thread that hasn't
      been started yet
    * don't send a 'disconnected' alert when the close method is called
    * use the correct source when transmitting an abort message as a reposonse
      to a vendor command with id
    * removed statics
    * check the client version, not the server version in
      libcec_configuration::operator==()
    * cec-config: fix physical address detection
    * LibCecSharp: fixed buffer overrun when copying libcec_configuration.
      fixes crash when trying to save the configuration in the config gui.

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Mon, 14 May 2012 22:39:00 +0100

libcec (1.6.1-2) unstable; urgency=low

  * Build depends on pkg-config. (Closes: #669919)
  * libudev-dev only optionally needed for Linux.

 -- Andres Mejia <amejia@debian.org>  Sat, 21 Apr 2012 19:03:19 -0400

libcec (1.6.1-1) unstable; urgency=low

  [ Mario Limonciello ]
  * New upstream version (LP: #982272)

  [ Andres Mejia ]
  * New release fixes build failure with GCC-4.7. (Closes: #667241)
  * Bump to Standards-Version 3.9.3.

 -- Andres Mejia <amejia@debian.org>  Sat, 21 Apr 2012 00:02:08 -0400

libcec (1.3.2-3) unstable; urgency=low

  * Make dpkg-source options default for packaging.

 -- Andres Mejia <amejia@debian.org>  Tue, 10 Jan 2012 18:12:57 -0500

libcec (1.3.2-2) unstable; urgency=low

  * Add options to pass to dpkg-source.

 -- Andres Mejia <amejia@debian.org>  Sun, 08 Jan 2012 22:59:34 -0500

libcec (1.3.2-1) unstable; urgency=low

  * Initial release. (Closes: #655143)

 -- Andres Mejia <amejia@debian.org>  Sun, 08 Jan 2012 15:36:49 -0500

libcec (1.6-3) unstable; urgency=low

  * changed/added:
    * cec-client: show the firmware build date if available in cec-client -l
    * cec-client: don't activate the source when starting
    * cec-client: group up the output of the 'scan' command, and add the
      currently active source to the output
    * log the libCEC version in the 'connected to the CEC adapter' log entry,
      and add the firmware build date to the line if it's available, so all
      relevant version info is available in 1 log line.
    * async writes for CUSBCECAdapterCommunication. less locks and polls, more
      speed
    * added 'make docs' target, that updates the doxygen documentation

  * interface changes:
    * added operator == and != for libcec_configuration
    * added GetResponseOpcode(cec_opcode opcode) to cec_command
    * added the firmware build date to libcec_configuration, so it can be
      displayed by the client too.
    * added static CLibCEC::Alert() method and CEC_ALERT_CONNECTION_LOST value
    * added a callback to handle menu state changes. if the callback method
      returns 1, then the change is processed by the CCECBusDevice too. if 0,
      then the CCECBusDevice will always have menu state 'activated', so
      keypresses are routed. bugzid: 724
    * added a default menu language to libcec_configuration and set this
      language for devices controlled by libcec. bugzid: 69

  * fixed
    * CCECProcessor::IsActiveSource() - TV was never checked
    * don't call the deprecated SetActiveView() method in cec-client
    * request the active source if unknown in CCECProcessor::GetActiveSource()
    * don't try to match a device with PA 0xFFFF.
    * don't change the power status of a device when changing the stream path
    * don't set the power status to 'powered off' when marking the source
      managed by libcec as inactive, or the tv will might send a power control
      keycode when making it active again, potentially shutting down the system
    * potential segfault in CCECProcessor::GetDeviceByPhysicalAddress()
    * stream path changes when changed to the TV source (PA 0)
    * clear the unsupported features list in CCECBusDevice::ResetDeviceStatus()
    * never mark vendor commands as unsupported (only some may be unsupported),
      as well as some others that should never be marked unsupported
    * don't retry in CCECCommandHandler if the command has been marked as
      unsupported
    * don't request the PA of devices when handling an incoming CEC command, or
      it'll block things while waiting for a response. if that response never
      comes, or comes late, then other incoming commands will be timed out
      before they are handled
    * optimisation - strip unneeded virtual keywords from top level
      implementations
    * use the vlcommandhandler for the primary device that is handled by libCEC
      when a panasonic tv is detected, so delayed activate source commands are
      using the correct handler. bugzid: 723
    * set the power status of device controlled by libCEC to
      CEC_POWER_STATUS_ON
      instead of IN_TRANSITION_STANDBY_TO_ON. reset the device status of a
      device if it was detected as removed. bugzid: 755
    * potentially uninitialised values in cec_command
    * delay the 'active source' command for panasonic, until the vendor command
      that reports that the TV is powered on has been received. bugzid: 723
    * only respond to Give Physical Address with Report Physical Address.
      bugzid: 592
      This fixes several reports of the TV improperly switching to the libcec
      device after it has previously switched to another source. Fix confirmed
      with Panasonic and also reported to be an issue with Samsung and
      Philips.
    * check whether callback methods are set to a valid ptr
    * number of retries for polls
    * win32: fix build in paths with spaces. bugzid: 730
    * LibCecSharp: free the alert GC callback when cleaning up
    * the wrong setting was being read when powering on devices
    * close the connection when a comm error was detected, and notify the
      client via an alert
    * don't segfault when calling ThreadsWait() without a valid thread
    * lib/platform: fixed memleak
    * leak in CCECAdapterMessageQueue::Write
    * don't send commands if we know them to be unsupported. bugzid: 725

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Wed, 18 Apr 2012 11:30:00 +0100

libcec (1.6-2) unstable; urgency=low

  * fixed:
    * fixed typo in CUSBCECAdapterCommands::RequestSettings() that prevented
      the settings from being read. the settings were still written, but never
      read when bGetSettingsFromROM = 1.

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Wed, 18 Apr 2012 11:30:00 +0100

libcec (1.6-1) unstable; urgency=medium

  * changed/added:
    * full firmware V2 support
    * -o/--osdname argument for cec-client to set a custom osd name
    * added the firmware version to cec-client's -l / --list-devices command.
      bugzid: 631
    * added power on command for Samsung AVR devices. bugzid: 361
    * added buttoncode for 'channels list' on Samsung (0x96)
    * don't check for the windows ddk when a prebuilt driver installer is
      present
    * respond to Get Menu Language. bugzid: 547. In the event that the menu
      language is undefined in libcec (currently the default), the response
      will be a feature abort.

  * interface changes:
    * added the firmware version to libcec_configuration (read-only). bumped
      server version to 1.6.0. fixed 'unknown server version' message on
      startup. bugzid: 631
    * added a new setting to control whether to put the TV in standby when the
      player is put in standby. added some missing bits (version numbers,
      config) to LibCecSharp. bugzid: 558
    * added an alert callback. bugzid: 462
    * added bShutdownOnStandby to libcec_configuration. bugzid: 660. This
      setting tells the client to shutdown when the TV switches off and is
      complimentary to bPowerOffOnStandby, which tells the PC to suspend.
      They are kept separate to maintain backwards compatability.

  * fixed
    * gcc 4.7 compilation
    * poll doesn't have an opcode. bugzid: 591
    * wait for MSGEND when data was received when opening the connection.
      bugzid: 536
    * mark the correct device as active source after a stream path change.
      if the new address is not found, but the old address is, then mark the
      old address as inactive. fixes TV switching back to the old active source
      when it scans for devices. bugzid: 592
    * ensure that the vendor ID is sent before trying to activate any SL device
      bugzid: 574
    * fixed possible crash when in CLibCEC::IsLibCECActiveSource() when libCEC
      doesn't know which device is the active source. bugzid: 479
    * correct handling CEC_USER_CONTROL_CODE_POWER. This ensures that the power
      code always operates as a toggle, depending on the current state, and
      that SetCurrentButton is always called for a valid user control code.
      bugzid: 570
    * frequency wasn't checked in GetTimeMs(), leading to incorrect wait times
      on some windows systems
    * refactored USB adapter communication. less locks, shorter locks, added
      documentation, lots of clean ups and no more incoming messages that are
      skipped
    * the destructor of CSerialSocket didn't call Close()
    * added guards in CSerialPort
    * reset m_socket to INVALID_SERIAL_SOCKET_VALUE after closing the
      connection
    * always wait for thread exit in CThread's desctructor
    * crash on exit after GetDeviceInformation()
    * check whether the destination is valid before setting anything in
      m_bWaitingForAck. fixes heap corruption and crash on exit. bugzid: 479
    * bUseTVMenuLanguage from libcec_configuration wasn't copied in
      SetConfiguration(), so this setting was reset to the default value
      (enabled) every time. bugzid: 617
    * request the vendor id of a device if needed when the device status is
      changed into 'present'. bugzid: 361
    * give priority to messages from the TV. removed the global lock in
      CCECProcessor when sending. this is no longer needed. bugzid: 238
    * add some bounds checking to the HDMI port number. bugzid: 508
    * fixed usbser.sys copying in the driver .INF. bugzid: 503
    * only update the physical address when it has actually changed. bugzid:
      672
    * moved the static variables in os-threads from the header to a separate
      cpp file, or it could lead to problems when included multiple times
    * don't send an active source command when the physical address couldn't be
      set, or it might confuse other CEC devices
    * serial socket timeouts. bugzid: 654
    * fixed possible crash when trying to request a vendor id of a device when
      the address of libCEC isn't known yet. bugzid: 654
    * extra guard so no commands are transmitted without a valid initiator.
      bugzid: 654
    * moved the timed ping to a separate thread. bugzid: 654
    * persist settings directly when they're changed, only persist settings
      that actually changed, only instruct the device to persist the settings
      in eeprom when something changed, and don't persist settings on exit.
      bugzid: 715
    * cec-config-gui: persist settings both in the eeprom and in the settings
      xml file
    * validate the input in CCECProcessor::IsActiveSource(). fixes potential
      crash when the active source isn't known. bugzid: 671

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Mon, 16 Apr 2012 18:03:00 +0100

libcec (1.5-4) unstable; urgency=low

  * changed/added:
    * OS-X installation requirements and pointer
    * full v2 firmware support:
      * ping the adapter every 15 seconds. bugzid: 541
      * added v2 msgcodes. bugzid: 543
      * implemented the write methods for the v2 configuration. bugzid: 543
      * included the logical addresses in the persisted configuration for v2.
        bugzid: 543
      * persist the configuration before closing the connection. only try to
        persist the configuration when talking to a v2 firmware. bugzid: 543
      * added GetSetting() to CUSBCECAdapterCommunication. bugzid: 543
      * read the persisted settings from the ROM, and update it in
        libcec_configuration if found. bugzid: 543
      * cec-client: set bGetSettingsFromROM to 1 in cec-client. bugzid: 543
      * cec-client: only read persisted EEPROM settings when -r or --rom is
        provided as cmdline arg. bugzid: 543
      * call SetControlledMode(false) as last command when closing the
        connection in v2. bugzid: 542
      * initial FreeBSD support: simply try to use ttyU*

  * fixed:
    * set controlled mode and retry to send the previous command if it failed
      with MSGCODE_COMMAND_REJECTED
    * m_iLineTimeout was never initialised and used. fixes MSGCODE_REJECTED
      when transmitting a message and incorrect line timeouts being used
    * mac configure compile bugzid: 157
    * cec-config-gui: fixed application exit when the user clicked 'no' when
      asked to reconnect. bugzid: 556
    * only wait for multiple 'command accepted' response when sending a
      transmit command, and only to 1 in other cases. bugzid: 543
    * set the correct logical address mask before switching to autonomous mode.
      bugzid: 543
    * re-added SetLineTimeout(). bugzid: 543
    * CUSBCECAdapterCommunication::SetControlledMode checked for the wrong sent
      state
    * os-x: don't add 0.5 before dividing in GetTimeMs()
    * os-x: struct timespec now values weren't set correctly

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Fri, 16 Mar 2012 10:12:00 +0100

libcec (1.5-3) unstable; urgency=low

  * fixed:
    * OS-X compilation
    * default to firmware version 1 after 3 tries. some versions didn't send a
      version.
    * fixed cec-config win32 compilation

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Sat, 03 Mar 2012 15:21:00 +0100

libcec (1.5-2) unstable; urgency=low

  * changed/added:
    * added Toshiba's vendor id, and set the device ID of the primary device to
      Toshiba's and transmit it when starting
    * lock in SyncedBuffer
    * added a timeout to StopThread()
    * also add commands to unsupported features when receiving
      CEC_ABORT_REASON_REFUSED
    * cec-config-gui: set cbPortNumber enabled when the physical address
      override isn't checked instead
    * cec-config-gui: added support for the new 'send inactive source' setting

  * interface changes:
    * added an 'send inactive source' option to libcec_configuration, only
      supported by client/server 1.5.1 and up. bugzid: 439
    * added a command to the interface to start the bootloader directly,
      without going through all checks. bugzid: 218
    * LibCecSharp: implemented support for the new 'send inactive source'
      setting

  * fixed:
    * don't send an updated configuration when libCEC hasn't been initialised
      fully. bugzid: 459
    * don't send an updated configuration back when initialising. let the
      client call the GetCurrentConfiguration() method. bugzid: 459
    * configuration updates from libCEC. bugzid: 459
    * fixed accidental double deref. the method parameter already does that.
      github #24
    * use CLOCK_MONOTONIC for timing info, since gettimeofday is affected by
      ntp and by manually adjusting the system time
    * the timeout value of pthread_cond_timedwait has to be referenced to
      CLOCK_REALTIME
    * don't add data to the input buffer in CUSBCECAdapterCommunication before
      it's fully initialised
    * fixed return value of CUSBCECAdapterCommunication::ParseMessage(). fixes
      messages not being parsed in certain occasions
    * don't try to transmit when the processor is being stopped
    * set the server version in the LibCEC's constructor, since this is
      checked by clients. fixes 'invalid libCEC version' popup when inserting
      the adapter
    * don't wait for the full timeout to pass in CCECProcessor::
      OpenConnection(), but retry to connect 2 times. fixes 'port busy' errors
      when initialising libCEC. bugzid: 436
    * use the correct Sleep() method in CCECProcessor::OpenConnection(). the
      thread hasn't been started there yet, so the sleep wasn't working. fixes
      'device or resource busy' when plugging in the adapter. bugzid: 436
    * check the adapter ping and firmware before starting the reader thread, so
      we really leave the com port alone for a second when it fails because of
      a busy error. bugzid: 436
    * ensure that the connection is really closed before retrying to connect.
      bugzid: 436
    * LibCecSharp: recreate the delegates properly when (re)connecting to
      LibCecSharp

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Tue, 28 Feb 2012 21:19:00 +0100

libcec (1.5-1) unstable; urgency=low

  * changed/added:
    * a new libcec_configuration structs, which allows the client app to pass
      a number of new options, like waking multiple devices on startup,
      overriding the vendor id, etc.
    * a new configuration GUI for Windows (.NET). this allows you to set
      libCEC's configuration for XBMC in a convenient GUI.
    * a CLI configuration tool (unfinished) for other platforms. will be
      finished in an update.
    * implemented power up for LG devices other than a TV
    * win32: don't install libcec to the system directory by default, and
      delete previous (testing) copies if present
    * wait for multiple responses, not just for one at a time
    * set the ackmask to 0 when closing the connection
    * don't send 'image view on' when calling SetActiveSource()
    * don't send power on, acitve source and standby commands by default in
      cec-client
    * platform: added CTryLockObject
    * platform: added an Init() method in CTimeout, so it can be reset

  * interface changes:
    * added a new initialiser method: CecInitialise()/cec_initialise(), that
      accepts a "libc_configuration" struct as parameter. this way, the
      signature of the init method can stay the same when adding new options.
      in LibCecSharp, the new method appears as a new constructor.
    * added CanPersistConfiguration()/cec_can_persist_configuration()
    * added PersistConfiguration()/cec_persist_configuration()
    * added GetCurrentConfiguration()/cec_get_current_configuration()
    * added SetConfiguration()/cec_set_configuration()
    * added GetLogicalAddresses()/cec_get_logical_addresses(): returns the list
      of addresses controlled by libCEC
    * added RescanDevices()/cec_rescan_devices(): lets libCEC force polls to
      all logical addresses.
    * added a callback that is called when libCEC's configuration changed.
    * moved the autodetect address api call to libcec_configuration. only send
      power up commands to non-tv devices when the power state is not
      on/transition->on. let players call the power up/power down command.
    * return the anynet return keycode directly instead of translating it to
      'return' for v1.5.0+ clients
    * extracted CecSharpTypes.h in LibCecSharp. LibCecSharp is now in the
      CecSharp namespace
    * include the local cectypes.h in cec.h and cecc.h instead of system wide
    * deprecated GetLibVersion() methods. use libcec_configuration instead
    * removed deprecated CECCreate() method
    
  * fixed:
    * fixed a lot of LG specific issues
    * fixed OS-X compilation. credits: Dustin Cooper
    * fixed a couple of possible deadlocks, e.g. when closing the connection
      while receiving data
    * cleaned up existing code
    * libCEC no longer puts incoming data in a fifo buffer, but tries to
      process it directly, which fixes issues like libCEC blocking processing
      new commands while waiting for transmission acks.
    * 'unsupported command' marking in CCECBusDevice
    * ensure that the ackmask is always set to 0 when closing the connection
      and that the call doesn't block the Close() call
    * don't try to read or write in CUSBCECAdapterCommunication when the
      connection has been closed
    * LibCecSharp: added quotes to the linker statement for libcec.lib. fixes
      compilation in paths with spaces. closes #20
    * LibCecSharp: set the callback methods in libcec to NULL before closing
      the connection, since these might already have been destroyed in .NET
    * LibCecSharp: delete the internal callback struct when closing the
      connection
    * LibCecSharp: pass correctly formatted logical address lists
    * ensure that the vendor id is requested first when requesting info from a
      device, so we are using the correct handler
    * keep the 'busy state' of the command handler in CCECBusDevice
    * poll the next device when the current is handled by libCEC.
    * check the vendor id of a device before sending a power on command
    * ensure that there always is at least one device type set
    * transmit a keypress and key release as power on command when the target
      device isn't the TV
    * don't do a full reinit when not needed
    * fix active source switches for the standard CEC implementation
    * ensure that we don't send data to ourself
    * check whether the port is open, not whether libCEC is initialised in
      Transmit()
    * platform: fixed return value from CCondition::Wait()
    * platform: don't broadcast but wake one thread in
      CProtectedSocket::MarkReady()
    * platform: include stdint.h in windows/os-types.h instead of typedef'ing
      ints
    * platform: fixed tcp socket error handling and return value.
    * platform: fixed return values of socket operations in lib/platform
    * platform: added predicate in CCondition
    * deleted the signed driver from the tree, since that doesn't work. let the
      installer create a new signed driver on the production build system

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Mon, 19 Feb 2012 01:04:00 +0100

libcec (1.4-4) unstable; urgency=low

  * changed/added:
    * added tcp client sockets to lib/platform (WIP)
    * clean up lib/platform
    * added: set controlled mode on after opening a connection to the adapter
      (for firmware v2)
    * added an IAdapterCommunicationCallback interface an use a callback method
      to pass newly received cec_commands to CCECProcessor
    * added "driver only" and "driver + libcec" sections to the installer
    * added a signed driver
    * created a separate driver installer, which is included in the libCEC
      installer. uninstalls the old unsigned version of libCEC and the driver
      when it's found and installs the new one in C:\Program Files(x86)\
      Pulse Eight\USB-CEC Adapter.
    * don't sign development binaries with a temporary key. devs can do that
      themselves when they want LibCecSharp in the GAC
  * interface changes:
    * added SetStreamPath()/cec_set_stream_path_logical()/
      cec_set_stream_path_physical() to the interface, to send a
      "set stream path" command over the CEC bus, used to activate another
      source.
  * fixed:
    * transmit 'menu state activated' after the stream path has been set to a
      device that is handled by libCEC. should fix remote commands not working
      properly on Panasonic TVs and after another source has been active.
      bugzid: 233
    * set the ackmask to 0x0 when trying to find a free logical address
    * keep trying to reconnect to the com port until the timeout runs out.
      bugzid: 230
    * wait 500 ms before trying to retransmit a command. always wait for the
      result of a transmission in CCECCommandHandler::Transmit()
    * receive and send full cec_commands, not CCECAdapterMessages in
      CAdapterCommunication. extract an IAdapterCommunication interface. fixed
      potentially missed data in CAdapterCommunication
    * close and delete the connection when the processor thread ends. fixes
      reconnect after standby (access denied / connection already opened)
    * don't replace handlers when not initialised, or the primary device's
      logical addres isn't known yet, which can lead to crashes. don't call
      handlers directly in CCECProcessor without holding a lock on them
    * fixed possible crash when command handler were switched while it was
      being used
    * keep the mutex locked when calling ReplaceHandlers() in CCECProcessor
    * win32: also timeout when data is received in SocketRead()
    * win32: fixed < vista runtime and compilation
    * win32: ping the adapter and request the firmware version in
      CUSBCECAdapterCommunication instead of CCECProcesssor. fixes failed
      libCEC inits
    * win32: fixed crash on exit in LibCecSharp

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Mon, 6 Feb 2012 14:26:00 +0100

libcec (1.4-3) unstable; urgency=low

  * fixed:
    * try to ping the device and grab the firmware version until the connect
      timeout runs out. fixes failed reconnect after standby, when the adapter
      is still being initialised

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Thu, 27 Jan 2012 13:05:00 +0100

libcec (1.4-2) unstable; urgency=low

   * changed/added:
     * added a firmware flash script for linux.
       usage: ./support/cec-flash-device.sh /path/to/firware.hex
     * refactored threading/locking - added windows native instead of
       pthread-win32, so we can compile native x64 too
     * check whether the adapter responds when connecting to it and report the
       firmware version of the adapter after connecting
     * moved create-installer.cmd to support/
     * completely removed AM_SILENT_RULES
   * interface changes:
     * compile LibCecSharp against .NET framework 2.0 and sign the assembly
   * fixed:
    * only the key release events were sent, not keypresses, which appeared in
      clients as laggy keypresses
    * fixed reconnect after standby
    * wait for active tranmission to finish when opening a connection to the
      adapter. fixes initialisation errors
    * set the default transmit timeout properly instead of using 0
    * fixed possible deadlock because of a negative timeout in
      CAdapterCommunication::WaitForTransmitSucceeded()
    * fixed error message in cec-client (unable to open the device on port ...)
    * exit cec-client after entering bootloader mode
    * MSGCODE_START_BOOTLOADER doesn't respond with MSGCODE_COMMAND_ACCEPTED

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Thu, 25 Jan 2012 23:28:00 +0100
 
libcec (1.4-1) unstable; urgency=low

   * changed/added:
     * added the vendor id for Sony
     * always refresh the power state of a device when it hasn't been updated
       for 30 seconds
     * do silent builds by default
   * interface changes:
     * added optional callback methods to libCEC. enable them by calling
       EnableCallbacks(ICECCallbacks *callbacks) /
       cec_enable_callbacks(ICECCallbacks *callbacks). after this method is
       called, the GetNext...() methods will not return any data
     * added the same callbacks to LibCecSharp. implement CecCallbackMethods
       and override the methods in there
   * fixed:
     * use the given timeout when trying to open a connection to the CEC
       adapter
     * resolved difference between method name in LibCECC.cpp and cecc.h.
       credits: Doug Johnson
     * don't transmit physical addresses while holding a lock in CCECProcessor
     * don't hold a lock when sending an active source message.
     * unload libCEC when the lib version is invalid
     * "unused" warnings suppressed     

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Thu, 12 Jan 2012 19:06:00 +0100
 
libcec (1.3-3) unstable; urgency=low

   * changed/added:
     * place in libudev include in an extern C block. fixes compilations on
       older libudev versions (e.g. on Hardy). closes #2. credits @fbuenemann
     * added pkg-config to the dependencies list. issue #15
     * updated README. closes #14
     * added a script that tests some basic functions of the CEC adapter:
       /support/cec-test-device.sh
   * fixed:
     * don't make libCEC the active source when changing the physical address.
       don't send active source messages on startup, when not the active source
       fixes unwanted device power ups
     * replace the command handler directly after receiving a changed vendor
       id. change the primary type from recording device to playback device
       for panasonic TVs
     * don't send a deck status update when sending an active source message
       for panasonic TVs
     * only switch handlers once when using the generic handler
     * don't switch handlers when not needed
     * hold a lock in CCECProcessor::SetHDMIPort()
     * don't send deck status updates when sending an active source message by
       default

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Thu, 3 Jan 2012 22:48:00 +0100

libcec (1.3-2) unstable; urgency=low

   * changed/added:
     * copy libcec.dll to the XBMC installation dir when XBMC is found
     * disable background polling. let the client request this info when needed
     * update the power status of a device when it's set to
       CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON
     * wait for the correct response when requesting something, not just any
       response
     * don't keep trying the same command/request after receiving a feature
       abort message
   * interface changes:
     * change the previously unused boolean parameter in volume control methods
       to bSendRelease, and only send a key release when it's true. default to
       true
   * fixed:
     * don't send the power up/down keypress to listeners when in the initial
       device state (powered off). fixes unexpected shutdown in XBMC when
       connecting to the CEC adapter.
     * send a 'menu state activated' command when starting up. bugzid: 113
     * don't wait for a response when not needed
     * don't hold a lock while waiting for a response. fixes failed libCEC
       inits and slow responses
     * don't replace a command handler when it's being used. fixes possible
       crash on startup
     * don't try to do anything before the processor thread has started
     * don't transmit active source messages when the physical address is
       still 0xFFFF
     * don't init the default handler before the physical address is known

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Thu, 29 Dec 2011 03:05:00 +0100

libcec (1.3-1) unstable; urgency=low

  * changed/added:
    * make libudev optional. if libudev is not available on linux, adapter
      autodetection will also not be available. fixes compilation on Hardy/ATV1
    * added a C++ CLR wrapper for libCEC, so libCEC can be used by any .NET
      language
    * added vendor support for LG
    * added vendor support for Philips
    * added vendor support for Yamaha
    * added vendor support for Onkyo
    * added 'scan' command to cec-client, that displays info about devices on
      the bus. made all ToString() methods available on the interface.
    * added '-s' or '--single-command' to cec-client. starting cec-client with
      this parameter executes a single command in cec-client and does not power
      on devices on startup and power them off on exit. this way, you can use
      cec-client in a shell script. since there's some handshaking involved at
      startup, this is not very fast. to execute a command and only display the
      result and any error/warning, execute it with
      RESULT=`echo command | cec-client -s -d 3` (on linux/osx, win32 batch
      files are a bit different)
    * added HDMI port ('-p' or '--port') and base device ('-b' or '--base') to
      cec-client's parameters
    * handle image view on and text view on
    * handle routing information and report physical address opcodes
    * handle audio status updates
    * send ping and bootloader commands via the output queue
    * scan the CEC bus for devices when starting libcec
    * pass all commands that are directed at libcec to listeners
  * interface changes:
    * added GetActiveSource()/cec_get_active_source()
    * added IsActiveSource()/cec_is_active_source()
    * added GetDevicePhysicalAddress()/cec_get_device_physical_address()
    * added GetDeviceOSDName()/cec_get_osd_name()
    * added SendKeypress()/cec_send_keypress() and SendKeyRelease()/
      cec_send_key_release()
    * added VolumeUp()/cec_volume_up(), VolumeDown()/cec_volume_down(),
      MuteAudio()/cec_mute_audio()
    * added GetActiveDevices()/cec_get_active_devices(), IsActiveDevice()/
      cec_is_active_device(), IsActiveDeviceType()/cec_is_active_device_type().
    * added SetHDMIPort()/cec_set_hdmi_port(). devices are now detected on load
      and when a device with the same physical address is detected, libcec will
      use the selected hdmi port on that device. should fix source selection on
      other devices, like an amplifier
    * added a hook in libcec for physical address autodetection
  * fixed:
    * don't request the physical address from the tv (it's always 0x0000)
    * set the proper ackmask before doing anything else
    * don't unlock the transmit mutex in CCECProcessor while waiting for an
      answer
    * fix device polling
    * refactor CEC read/write. keep a single lock for all writes, not one per
      device
    * ignore other data while waiting for a response
    * retry failed tranmissions
    * don't delete a message before it's been sent when starting the bootloader
    * or when sending a ping
    * fixed possible segfault when switching the command handler after a vendor
    * id changed
    * handle audio opcodes correctly
    * inactive source should be directly addressed at the TV
    * don't report a changed physical address when it hasn't changed
    * routing information sets the stream path, not the physical address
    * don't scan the whole bus in CCECProcessor::IsActiveDeviceType()
    * don't request the vendor id from devices that are handled by libcec
    * mark device status as present when a command was received from a device
    * always send a power on command in CCECBusDevice::PowerOn()
    * don't request updates statusses unless needed
    * report physical address sends 3 parameters, not 2. check whether the
      device type is correct
    * devices can send vendor commands from other vendors, so don't assume the
      device is of a certain vendor when it sends commands with a vendor id
    * thread safety fixes. bugzid: 19
    * clear any previous input when opening a connection to the adapter.
      bugzid: 54
    * use the correct source address in CSLCommandHandler::HandleVendorCommand()
    * uncorrected CEC_OPCODE_DEVICE_VENDOR_ID. closes #5
    * renamed enum methods. fixes potential macro collision with isset().
      thanks davilla
    * don't change the active device when receiving stream path changed
      messages. fixes wrong source selection when powering after the TV.

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Fri, 09 Dec 2011 12:16:00 +0100

libcec (1.2-1) unstable; urgency=low

  * bugfixes:
    * pass the deck_control command to libcec listeners
    * check whether the initiator is valid in CCECProcessor::ParseCommand().
      fixes possible segfault when parsing invalid data

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Sat, 12 Nov 2011 13:36:00 +0100

libcec (1.1-3) unstable; urgency=low

  * fixed return value in CCECProcessor::SetStreamPath(), which prevented
    active source and menu state from being sent

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Fri, 11 Nov 2011 23:36:00 +0100

libcec (1.1-2) unstable; urgency=low

  * forgot to update the headers to v1.1

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Fri, 11 Nov 2011 18:56:00 +0100

libcec (1.1-1) unstable; urgency=low

  * interface changes:
    * added logical address autodetection and let libcec handle multiple types
      simultaniously. for logical address autodetection, you have to use
      CECInit()/cec_init_typed() instead of CECCreate()/cec_init()
    * added SetActiveSource()/cec_set_active_source() to the interface.
      deprecated SetActiveView()/cec_set_active_view()
    * added SetMenuState()
    * added PollDevice()/cec_poll_device()
    * removed duplicate method SetActiveSource() / SetActiveView()
    * added SetDeckControlMode() and SetDeckInfo()
  * fixed:
    * added vendor detection for panasonic and broadcast active view and set
      menu state when a panasonic device sets the stream path. thanks for the
      pointer cptcoconut.
    * added vendor code for pioneer
    * osd string is 13 chars max. don't send more
    * send the correct cec version for each device
    * switch to panasonic specific cec implementation if a panasonic device was
      detected
    * send the correct device type in TransmitPhysicalAddress()
    * send a reply from the correct device when the stream path is requested
    * opcode 0x80 means the stream path changed, not the physical address
    * don't poll for a vendor ID in monitoring mode
    * fixed parameter parsing in SetVendorId()
    * buffer up commands that are received while waiting for an ack. only send
      'active source' message for the actual active source
    * win32: prepend the com port path with '\\.\', so com ports > 9 can be
      accessed. thanks smolesen
    * audio systems cannot be an active source, so don't transmit active
      source message from this device
    * only send 'active source' when powered on
    * only set the osd name for the primary device. use default values for
      others
    * increase physical address with 0x100 per device
    * win32: removed unneeded afxres.h include in the resource files, which
      is not present when using studio express. thanks Ghuron
    * fixed C headers
    * mark the active source as active and other devices as inactive
    * set the power status to 'on' when receiving CEC_USER_CONTROL_CODE_POWER
    * transmit the menu state as (active) when the stream path is set
  * changed:
    * changed copyright of boblight files with permission of the original
      author
    * partial handling of audio related opcodes
    * more consistent log messages
    * set a device type and name for each CCECBusDevice
    * keep a power and menu state per device
    * renamed all Broadcast...() and Report...() methods to Transmit...()
    * renamed SetOSDString() to TransmitOSDString()
    * changed debug level of 'did not receive ack' from error to debug
    * only set the power status to 'on' for the primary device
    * moved method decriptions from cecc.h to cec.h
    * only send a power on command when a device isn't on already and set
      the power state to CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON while
      powering on
    * handle CEC_OPCODE_STANDBY
    * handle CEC_OPCODE_ACTIVE_SOURCE
    * always start in standby mode and let the tv (or other device) send the
      power on command
    * renamed the last few enums
    * handle deck related opcodes.
    * added TransmitVendorId(), but only transmit the id if it's not set to 'unknown'

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Fri, 11 Nov 2011 17:42:00 +0100

libcec (1.0-1) unstable; urgency=low

  * interface changes:
    * set lib interface version back to 1.0 and rename GetLibVersion() to
      GetLibVersionMajor() and GetMinVersion() to GetMinLibVersion()
    * added GetLibVersionMinor()/cec_get_lib_version_minor() and set the minor
      version number to 1
  * fixed:
    * samsung's vendor specific remote keypresses don't send key releases. added
      call to AddKey() directly after the keypress
    * always reset the button press time in CLibCEC::AddKey()
    * always wait for a signal in CCECProcessor::Transmit()
  * changed:
    * drop shared_ptr and use a normal pointer. removed boost dependency

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Fri, 04 Nov 2011 00:14:00 +0100

libcec (0.8-2) unstable; urgency=low

  * added 'libboost-dev' to build deps

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Tue, 01 Nov 2011 23:31:00 +0100

libcec (0.8-1) unstable; urgency=low

  * interface changes:
    * added GetDevicePowerStatus()/cec_get_device_power_status()
    * added GetDeviceVendorId()/cec_get_device_vendor_id()
    * added GetDeviceMenuLanguage()/cec_get_device_menu_language()
    * added GetDeviceCecVersion()/cec_get_device_cec_version()
    * added SwitchMonitoring()/cec_switch_monitoring() to the interface. when
      monitoring is enabled, the device will only log the data it received,
      but will not respond to any message
    * removed timeout parameter in Transmit() and included the ack timeout in
       the cec_command struct
    * made the vendor id -> vendor name translation available
    * made CEC_LOG levels powers of 2
    * introduced CEC_LOG_TRAFFIC log level
  * fixed:
    * set the correct ackmask on startup
    * wait for ack while keeping a lock
    * wait for the processor thread to start before continueing on startup
    * wait for messages to be transmitted before continueing in
      CCECProcessor::Transmit()
    * only set the logical address once when it has changed
    * correct source for broadcast messages
    * win32: create Release type installer
  * changed:
    * make all reads and write in CAdapterCommunication go through buffers.
    * poll for a vendor ID of connected devices and switch to a non-standard
      CEC implementation if needed.
    * added vendor detection of Samsung and LG devices
    * handle samsung remote command 'return'
  * cec-client:
    * added -la and --logical-address to the command line params
    * added -d and --log-level params to cec-client
    * added -sf and --short-log-file, which only log the actual messages, not
      the level and timestamp
    * added -f and --log-file parameters to cec-client
    * added option to change the log level to cec-client

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Tue, 01 Nov 2011 22:58:00 +0100

libcec (0.7-1) unstable; urgency=low

  * send a keypress with 0 duration when a key is pressed and with a duration
    set when it's released
  * added SetOSDString() to the interface (not supported by all tvs)
  * fixed: 'routing change' is a broadcast message. log routing changes, but
    don't send a 'set active view' message, so the active input won't be
    changed
  * log keypresses in the debug log
  * added 'pa' command to cec-client, to change the physical address
  * added SetPhysicalAddress()/cec_set_physical_address() to the interface, so
    the HDMI port number to use can be changed
  * fixed: put the message processing code from WaitForAck() in ParseMessage().
    fixes missing incoming message logging of non-data messages when not
    waiting for an ACK
  * added 'txn' command to cec-client. same as 'tx', but doesn't wait for ACK
    before returning
  * fixed: set initiator and destination first in cec_command::push_back().
    fixes 'tx' command in cec-client
  * fixed: keep trying to connect while iTimeout isn't reached (default 10
    seconds). fixes exit with a 'permission denied' error when the device isn't
    ready yet. remove CEC_SETTLE_DOWN_TIME
  * fixed: don't call SetActiveView() when reporting the power status. fixes
    loop which causes some TVs to report failed connections
  * fixed: eom was not being parsed when receiving MSGCODE_FRAME_DATA. fixed.
  * fixed: add the device type as parameter when sending the physical address.
    thanks bobo1on1
  * fixed: typo in libcec.pc.in
  * added optional strLib parameter to LoadLibCec(), so the location of the
    shared library can be specified
  * only link cec-client against ld. use AC_SEARCH_LIBS instead of AC_CHECK_LIB
  * use int instead of bool on the public C interface and remove stdbool.h include
  * renamed: CECExports.h => cec.h, CECExportsC.h => cecc.h, CECLoader.h =>
    cecloader.h, CECTypes.h => cectypes.h
  * updated debian package. split up libcec and libcec-dev
  * fixed: changed to use dlopen instead of static linkage. shuffled headers a
    bit. bumped interface to version 7
  * removed 'rt' from libraries. it's not needed (anymore)
  * fixed: reset the active view after a routing change. issue #1
  * fixed: changed attached license to be GPLv2 instead of GPLv3 this was an
    error as libCEC is licensed GPLv2 not GPLv3 thanks @garbear
  * added contributors link

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Fri, 14 Oct 2011 17:34:00 +0200

libcec (0.6-1) unstable; urgency=low

  * bumped interface version to 6
  * fixed packet output (reporting the OSD name correctly now)
  * refactored packet structs: split up in cec commands and adapter messages
  * fixed i/o timings
  * added Darwin support (thanks Davilla!)
  * fixed WaitForAck()
  * fixed possible deadlock when starting a new thread
  * implemented vendor id and device class parsing. full detection will follow
  * added "on" and "standby" commands to the test client
  * retransmit packets if needed
  * fix GetTimeMs() on linux
  * added timestamp to log messages

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Sun, 09 Oct 2011 15:15:00 +0200

libcec (0.5-1) unstable; urgency=low

  * bumped interface version to 5
  * don't pass std::string and std::vector accross the interface
  * fixed heap corruption crashes on windows
  * fixed some memory leaks
  * reset all structs to default values before doing with them

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Fri, 07 Oct 2011 22:00:00 +0200

libcec (0.4-3) unstable; urgency=low

  * fixed reconnect
  * fixed some threading related bugs
  * fixed deadlock on exit
  * fixed wrongly reported physical address

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Thu, 06 Oct 2011 00:19:00 +0200

libcec (0.4-2) unstable; urgency=low

  * fixed int parameter sizes and some signed/unsigned warnings
  * check whether m_port isn't NULL in ReadFromDevice
  * stop the processor thread and delete the CSerialPort instance on exit
  * added mutex in CSerialPort
  * fix segfault on exit
  * renamed libPlatform -> platform.
  * stuck everything from libCEC in the CEC namespace to avoid namespace
    polution

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Tue, 04 Oct 2011 23:45:00 +0200

libcec (0.4-1) unstable; urgency=low

  * bumped interface version to 4
  * timeout parameter removed from Close()/cec_close(). return type changed to
    void
  * added cec_destroy() method
  * removed timeout parameter from Transmit()
  * change the default argument of PowerOnDevices() to CECDEVICE_TV
  * removed PowerOffDevices(). use StandbyDevices() instead
  * removed obsolete methods from the interface
  * fixed bug: pthread_cond_wait was called without the mutex locked
  * fixed possible deadlock: don't send messages and wait for an ack with the
    mutex locked in CCECParser
  * created a separate reader thread and fixed the 'lock timeout' bug
  * testclient: use CECDEVICE_TV instead of the default argument
    (CECDEVICE_BROADCAST) for PowerOnDevices() and PowerOffDevices()

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Tue, 04 Oct 2011 00:48:00 +0200

libcec (0.3-1) unstable; urgency=low

  * added device detection support for Windows

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Sun, 02 Oct 2011 12:09:33 +0200

libcec (0.2-1) unstable; urgency=low

  * added a Close() method to the interface
  * Added CEC command that were received by the adapter in a buffer that can be
    read by a client with GetNextCommand()/cec_get_next_command(). added a
    'help' command to the test client, that displays all available commands
  * Fixed setting the ackmask. deprecated SetAckMask()/cec_set_ack_mask(). use
    SetLogicalAddress()/cec_set_logical_address() instead. add 'la' command to
    the testclient to set the logical address of the cec adapter
  * Added optional logical and physical address parameters to
    LoadLibCec()/cec_init() on the interface. fixed wrongly placed namespace
    close tag in CECExports.h. updated interface documentation. bumped
    interface version to 2.
  * fixed hardcoded ackmask in SetAckMast(). set a shorter display name in the
    test client. the previous one was too long and being rejected

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Fri, 28 Sep 2011 01:33:00 +0200

libcec (0.1-1) unstable; urgency=low

  * Initial release v0.1

 -- Pulse-Eight Packaging <packaging@pulse-eight.com>  Wed, 28 Sep 2011 23:55:48 +0200
