repositories
/
deb_libcec.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cec-config-gui: fixed application exit when the user clicked 'no' when asked to recon...
[deb_libcec.git]
/
src
/
lib
/
CECProcessor.h
diff --git
a/src/lib/CECProcessor.h
b/src/lib/CECProcessor.h
index 2d6ca5e50907a84dfd107991b637dcb8d47eed52..4c877e5baa1a83340ef73cae5b2c13dd2431e5dd 100644
(file)
--- a/
src/lib/CECProcessor.h
+++ b/
src/lib/CECProcessor.h
@@
-2,7
+2,7
@@
/*
* This file is part of the libCEC(R) library.
*
/*
* This file is part of the libCEC(R) library.
*
- * libCEC(R) is Copyright (C) 2011 Pulse-Eight Limited. All rights reserved.
+ * libCEC(R) is Copyright (C) 2011
-2012
Pulse-Eight Limited. All rights reserved.
* libCEC(R) is an original work, containing original code.
*
* libCEC(R) is a trademark of Pulse-Eight Limited.
* libCEC(R) is an original work, containing original code.
*
* libCEC(R) is a trademark of Pulse-Eight Limited.
@@
-32,27
+32,29
@@
*/
#include <string>
*/
#include <string>
-#include <cectypes.h>
-#include "AdapterCommunication.h"
-#include "platform/os.h"
-
-class CSerialPort;
+#include "../../include/cectypes.h"
+#include "platform/threads/threads.h"
+#include "platform/util/buffer.h"
+#include "adapter/AdapterCommunication.h"
namespace CEC
{
class CLibCEC;
namespace CEC
{
class CLibCEC;
- class
C
AdapterCommunication;
+ class
I
AdapterCommunication;
class CCECBusDevice;
class CCECBusDevice;
- class CCECProcessor : public PLATFORM::CThread
+ class CCECProcessor : public PLATFORM::CThread
, public IAdapterCommunicationCallback
{
public:
{
public:
- CCECProcessor(CLibCEC *controller, const char *strDeviceName, c
ec_logical_address iLogicalAddress = CECDEVICE_PLAYBACKDEVICE1, uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS
);
- CCECProcessor(CLibCEC *controller,
const char *strDeviceName, const cec_device_type_list &types
);
+ CCECProcessor(CLibCEC *controller, const char *strDeviceName, c
onst cec_device_type_list &types, uint16_t iPhysicalAddress
);
+ CCECProcessor(CLibCEC *controller,
libcec_configuration *configuration
);
virtual ~CCECProcessor(void);
virtual bool Start(const char *strPort, uint16_t iBaudRate = 38400, uint32_t iTimeoutMs = 10000);
virtual void *Process(void);
virtual ~CCECProcessor(void);
virtual bool Start(const char *strPort, uint16_t iBaudRate = 38400, uint32_t iTimeoutMs = 10000);
virtual void *Process(void);
+ virtual void Close(void);
+
+ virtual bool OnCommandReceived(const cec_command &command);
virtual bool IsMonitoring(void) const { return m_bMonitor; }
virtual CCECBusDevice * GetDeviceByPhysicalAddress(uint16_t iPhysicalAddress, bool bRefresh = false) const;
virtual bool IsMonitoring(void) const { return m_bMonitor; }
virtual CCECBusDevice * GetDeviceByPhysicalAddress(uint16_t iPhysicalAddress, bool bRefresh = false) const;
@@
-60,23
+62,31
@@
namespace CEC
virtual CCECBusDevice * GetPrimaryDevice(void) const;
virtual cec_version GetDeviceCecVersion(cec_logical_address iAddress);
virtual bool GetDeviceMenuLanguage(cec_logical_address iAddress, cec_menu_language *language);
virtual CCECBusDevice * GetPrimaryDevice(void) const;
virtual cec_version GetDeviceCecVersion(cec_logical_address iAddress);
virtual bool GetDeviceMenuLanguage(cec_logical_address iAddress, cec_menu_language *language);
- virtual const std::string & GetDeviceName(void) { return m_strDeviceName; }
+ virtual CStdString GetDeviceName(void) const
+ {
+ CStdString strName;
+ strName = m_configuration.strDeviceName;
+ return strName;
+ }
virtual cec_osd_name GetDeviceOSDName(cec_logical_address iAddress);
virtual uint64_t GetDeviceVendorId(cec_logical_address iAddress);
virtual cec_power_status GetDevicePowerStatus(cec_logical_address iAddress);
virtual cec_osd_name GetDeviceOSDName(cec_logical_address iAddress);
virtual uint64_t GetDeviceVendorId(cec_logical_address iAddress);
virtual cec_power_status GetDevicePowerStatus(cec_logical_address iAddress);
- virtual cec_logical_address GetLogicalAddress(void) const { return m_logicalAddresses.primary; }
- virtual cec_logical_addresses GetLogicalAddresses(void) const { return m_logicalAddresses; }
+ virtual cec_logical_address GetLogicalAddress(void) const { return m_
configuration.
logicalAddresses.primary; }
+ virtual cec_logical_addresses GetLogicalAddresses(void) const { return m_
configuration.
logicalAddresses; }
virtual cec_logical_addresses GetActiveDevices(void);
virtual uint16_t GetDevicePhysicalAddress(cec_logical_address iAddress);
virtual cec_logical_addresses GetActiveDevices(void);
virtual uint16_t GetDevicePhysicalAddress(cec_logical_address iAddress);
- virtual bool HasLogicalAddress(cec_logical_address address) const { return m_logicalAddresses.IsSet(address); }
+ virtual bool HasLogicalAddress(cec_logical_address address) const { return m_
configuration.
logicalAddresses.IsSet(address); }
virtual bool IsPresentDevice(cec_logical_address address);
virtual bool IsPresentDeviceType(cec_device_type type);
virtual uint16_t GetPhysicalAddress(void) const;
virtual uint64_t GetLastTransmission(void) const { return m_iLastTransmission; }
virtual bool IsPresentDevice(cec_logical_address address);
virtual bool IsPresentDeviceType(cec_device_type type);
virtual uint16_t GetPhysicalAddress(void) const;
virtual uint64_t GetLastTransmission(void) const { return m_iLastTransmission; }
- virtual bool IsStarted(void) const { return m_bStarted; }
virtual cec_logical_address GetActiveSource(void);
virtual bool IsActiveSource(cec_logical_address iAddress);
virtual cec_logical_address GetActiveSource(void);
virtual bool IsActiveSource(cec_logical_address iAddress);
- virtual bool IsInitialised(void) const { return m_bInitialised; }
+ virtual bool IsInitialised(void);
+ virtual bool SetStreamPath(uint16_t iPhysicalAddress);
+ virtual cec_client_version GetClientVersion(void) const { return (cec_client_version)m_configuration.clientVersion; };
+ virtual bool StandbyDevices(cec_logical_address address = CECDEVICE_BROADCAST);
+ virtual bool PowerOnDevices(cec_logical_address address = CECDEVICE_BROADCAST);
virtual bool SetActiveView(void);
virtual bool SetActiveSource(cec_device_type type = CEC_DEVICE_TYPE_RESERVED);
virtual bool SetActiveView(void);
virtual bool SetActiveSource(cec_device_type type = CEC_DEVICE_TYPE_RESERVED);
@@
-95,9
+105,14
@@
namespace CEC
virtual uint8_t MuteAudio(bool bSendRelease = true);
virtual bool TransmitKeypress(cec_logical_address iDestination, cec_user_control_code key, bool bWait = true);
virtual bool TransmitKeyRelease(cec_logical_address iDestination, bool bWait = true);
virtual uint8_t MuteAudio(bool bSendRelease = true);
virtual bool TransmitKeypress(cec_logical_address iDestination, cec_user_control_code key, bool bWait = true);
virtual bool TransmitKeyRelease(cec_logical_address iDestination, bool bWait = true);
- virtual bool EnablePhysicalAddressDetection(void)
{ return false; }
;
+ virtual bool EnablePhysicalAddressDetection(void);
void SetStandardLineTimeout(uint8_t iTimeout);
void SetRetryLineTimeout(uint8_t iTimeout);
void SetStandardLineTimeout(uint8_t iTimeout);
void SetRetryLineTimeout(uint8_t iTimeout);
+ virtual bool GetCurrentConfiguration(libcec_configuration *configuration);
+ virtual bool SetConfiguration(const libcec_configuration *configuration);
+ virtual bool CanPersistConfiguration(void);
+ virtual bool PersistConfiguration(libcec_configuration *configuration);
+ virtual void RescanActiveDevices(void);
bool SetLineTimeout(uint8_t iTimeout);
bool SetLineTimeout(uint8_t iTimeout);
@@
-112,23
+127,20
@@
namespace CEC
const char *ToString(const cec_system_audio_status mode);
const char *ToString(const cec_audio_status status);
const char *ToString(const cec_vendor_id vendor);
const char *ToString(const cec_system_audio_status mode);
const char *ToString(const cec_audio_status status);
const char *ToString(const cec_vendor_id vendor);
+ const char *ToString(const cec_client_version version);
+ const char *ToString(const cec_server_version version);
virtual bool Transmit(const cec_command &data);
virtual bool Transmit(const cec_command &data);
- virtual bool Transmit(CCECAdapterMessage *output);
virtual void TransmitAbort(cec_logical_address address, cec_opcode opcode, cec_abort_reason reason = CEC_ABORT_REASON_UNRECOGNIZED_OPCODE);
virtual void TransmitAbort(cec_logical_address address, cec_opcode opcode, cec_abort_reason reason = CEC_ABORT_REASON_UNRECOGNIZED_OPCODE);
- virtual void SetCurrentButton(cec_user_control_code iButtonCode);
- virtual void AddCommand(const cec_command &command);
- virtual void AddKey(cec_keypress &key);
- virtual void AddKey(void);
- virtual void AddLog(cec_log_level level, const CStdString &strMessage);
-
virtual bool ChangeDeviceType(cec_device_type from, cec_device_type to);
virtual bool FindLogicalAddresses(void);
virtual bool SetAckMask(uint16_t iMask);
virtual bool ChangeDeviceType(cec_device_type from, cec_device_type to);
virtual bool FindLogicalAddresses(void);
virtual bool SetAckMask(uint16_t iMask);
- virtual bool StartBootloader(
void
);
+ virtual bool StartBootloader(
const char *strPort = NULL
);
virtual bool PingAdapter(void);
virtual bool PingAdapter(void);
+ virtual void HandlePoll(cec_logical_address initiator, cec_logical_address destination);
+ virtual bool HandleReceiveFailed(cec_logical_address initiator);
CCECBusDevice * m_busDevices[16];
PLATFORM::CMutex m_transmitMutex;
CCECBusDevice * m_busDevices[16];
PLATFORM::CMutex m_transmitMutex;
@@
-136,9
+148,10
@@
namespace CEC
private:
bool OpenConnection(const char *strPort, uint16_t iBaudRate, uint32_t iTimeoutMs);
bool Initialise(void);
private:
bool OpenConnection(const char *strPort, uint16_t iBaudRate, uint32_t iTimeoutMs);
bool Initialise(void);
+ void SetInitialised(bool bSetTo = true);
+ void CreateBusDevices(void);
void ReplaceHandlers(void);
void ReplaceHandlers(void);
- void ScanCECBus(void);
bool PhysicalAddressInUse(uint16_t iPhysicalAddress);
bool TryLogicalAddress(cec_logical_address address);
bool FindLogicalAddressRecordingDevice(void);
bool PhysicalAddressInUse(uint16_t iPhysicalAddress);
bool TryLogicalAddress(cec_logical_address address);
bool FindLogicalAddressRecordingDevice(void);
@@
-147,31
+160,21
@@
namespace CEC
bool FindLogicalAddressAudioSystem(void);
void LogOutput(const cec_command &data);
bool FindLogicalAddressAudioSystem(void);
void LogOutput(const cec_command &data);
- bool WaitForTransmitSucceeded(CCECAdapterMessage *message);
- bool ParseMessage(const CCECAdapterMessage &msg);
- void ParseCommand(cec_command &command);
+ void ParseCommand(const cec_command &command);
- bool m_b
Start
ed;
+ bool m_b
ConnectionOpen
ed;
bool m_bInitialised;
bool m_bInitialised;
- uint8_t m_iHDMIPort;
- cec_logical_address m_iBaseDevice;
- cec_command m_currentframe;
- cec_logical_addresses m_logicalAddresses;
- cec_logical_address m_lastInitiator;
- std::string m_strDeviceName;
- cec_device_type_list m_types;
PLATFORM::CMutex m_mutex;
PLATFORM::CMutex m_mutex;
- PLATFORM::CCondition m_startCondition;
- CAdapterCommunication* m_communication;
+ IAdapterCommunication * m_communication;
CLibCEC* m_controller;
bool m_bMonitor;
CLibCEC* m_controller;
bool m_bMonitor;
- PLATFORM::SyncedBuffer<cec_command> m_commandBuffer;
cec_keypress m_previousKey;
PLATFORM::CThread * m_busScan;
uint8_t m_iLineTimeout;
uint8_t m_iStandardLineTimeout;
uint8_t m_iRetryLineTimeout;
uint64_t m_iLastTransmission;
cec_keypress m_previousKey;
PLATFORM::CThread * m_busScan;
uint8_t m_iLineTimeout;
uint8_t m_iStandardLineTimeout;
uint8_t m_iRetryLineTimeout;
uint64_t m_iLastTransmission;
+ libcec_configuration m_configuration;
};
class CCECBusScan : public PLATFORM::CThread
};
class CCECBusScan : public PLATFORM::CThread