From 06a1f7ce2bb14634f1ffd73d709b91238d05e5d6 Mon Sep 17 00:00:00 2001 From: Lars Op den Kamp Date: Sun, 9 Oct 2011 14:36:27 +0200 Subject: [PATCH] cec: sync visual studio project files. removed pthreadVC2d.dll / .lib (we're not going to debug pthread). don't return a struct but set the values in a struct passed as a param in cec_command::format(). --- include/CECExports.h | 5 +- project/libcec.vcxproj | 4 +- project/testclient.vcxproj | 4 +- pthreadVC2d.dll | Bin 79360 -> 0 bytes src/lib/AdapterCommunication.cpp | 2 +- src/lib/CECProcessor.cpp | 47 ++++++++++++------ .../platform/pthread_win32/pthreadVC2d.lib | Bin 29172 -> 0 bytes src/lib/platform/timeutils.h | 5 +- src/lib/platform/windows/serialport.cpp | 2 +- 9 files changed, 42 insertions(+), 27 deletions(-) delete mode 100644 pthreadVC2d.dll delete mode 100644 src/lib/platform/pthread_win32/pthreadVC2d.lib diff --git a/include/CECExports.h b/include/CECExports.h index e5c52e3..e3f1b76 100644 --- a/include/CECExports.h +++ b/include/CECExports.h @@ -353,16 +353,13 @@ namespace CEC { cec_datapacket parameters; bool opcode_set; - static cec_command format(cec_logical_address initiator, cec_logical_address destination, cec_opcode opcode) + static void format(cec_command &command, cec_logical_address initiator, cec_logical_address destination, cec_opcode opcode) { - cec_command command; command.clear(); command.initiator = initiator; command.destination = destination; command.opcode = opcode; command.opcode_set = true; - - return command; } void push_back(uint8_t data) diff --git a/project/libcec.vcxproj b/project/libcec.vcxproj index 30a8848..8de2bf5 100644 --- a/project/libcec.vcxproj +++ b/project/libcec.vcxproj @@ -97,13 +97,13 @@ Disabled _CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_USE_32BIT_TIME_T;_WINSOCKAPI_;__STDC_CONSTANT_MACROS;__WINDOWS__;DLL_EXPORT;%(PreprocessorDefinitions) $(SolutionDir)..\src\lib\platform\pthread_win32;%(AdditionalIncludeDirectories) - 4996;4100;4309 + 4996;4100;4309;4505 true true $(SolutionDir)..\libcec.dll - %(AdditionalDependencies);setupapi.lib;$(SolutionDir)..\src\lib\platform\pthread_win32\pthreadVC2d.lib + %(AdditionalDependencies);setupapi.lib;$(SolutionDir)..\src\lib\platform\pthread_win32\pthreadVC2.lib libcmtd 5 diff --git a/project/testclient.vcxproj b/project/testclient.vcxproj index 42cc447..13b32a7 100644 --- a/project/testclient.vcxproj +++ b/project/testclient.vcxproj @@ -55,12 +55,12 @@ Disabled WIN32;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_USE_32BIT_TIME_T;_WINSOCKAPI_;__STDC_CONSTANT_MACROS;__WINDOWS__;%(PreprocessorDefinitions) true - 4100;4309 + 4100;4309;4505 Console true - $(ProjectDir)..\src\lib\platform\pthread_win32\pthreadVC2d.lib;%(AdditionalDependencies) + $(ProjectDir)..\src\lib\platform\pthread_win32\pthreadVC2.lib;%(AdditionalDependencies) $(SolutionDir)..\cec-client.exe diff --git a/pthreadVC2d.dll b/pthreadVC2d.dll deleted file mode 100644 index 6fffdc45d43ece6ae81e87977dd33d96df72620a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79360 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%0D!ioIT#c*)tF;Yikp> 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 diff --git a/src/lib/AdapterCommunication.cpp b/src/lib/AdapterCommunication.cpp index 7749911..2ee7270 100644 --- a/src/lib/AdapterCommunication.cpp +++ b/src/lib/AdapterCommunication.cpp @@ -406,7 +406,7 @@ void CAdapterCommunication::FormatAdapterMessage(const cec_command &command, cec // add opcode packet.push_back(MSGSTART); - PushEscaped(packet, command.parameters.empty() ? MSGCODE_TRANSMIT_EOM : MSGCODE_TRANSMIT); + PushEscaped(packet, command.parameters.empty() ? (uint8_t)MSGCODE_TRANSMIT_EOM : (uint8_t)MSGCODE_TRANSMIT); packet.push_back((uint8_t) command.opcode); packet.push_back(MSGEND); diff --git a/src/lib/CECProcessor.cpp b/src/lib/CECProcessor.cpp index 4b7b664..bf55906 100644 --- a/src/lib/CECProcessor.cpp +++ b/src/lib/CECProcessor.cpp @@ -125,7 +125,10 @@ bool CCECProcessor::PowerOnDevices(cec_logical_address address /* = CECDEVICE_TV strLog.Format("<< powering on device with logical address %d", (int8_t)address); m_controller->AddLog(CEC_LOG_DEBUG, strLog.c_str()); - return Transmit(cec_command::format(m_iLogicalAddress, address, CEC_OPCODE_IMAGE_VIEW_ON)); + cec_command command; + cec_command::format(command, m_iLogicalAddress, address, CEC_OPCODE_IMAGE_VIEW_ON); + + return Transmit(command); } bool CCECProcessor::StandbyDevices(cec_logical_address address /* = CECDEVICE_BROADCAST */) @@ -137,7 +140,10 @@ bool CCECProcessor::StandbyDevices(cec_logical_address address /* = CECDEVICE_BR strLog.Format("<< putting device with logical address %d in standby mode", (int8_t)address); m_controller->AddLog(CEC_LOG_DEBUG, strLog.c_str()); - return Transmit(cec_command::format(m_iLogicalAddress, address, CEC_OPCODE_STANDBY)); + cec_command command; + cec_command::format(command, m_iLogicalAddress, address, CEC_OPCODE_STANDBY); + + return Transmit(command); } bool CCECProcessor::SetActiveView(void) @@ -147,7 +153,8 @@ bool CCECProcessor::SetActiveView(void) m_controller->AddLog(CEC_LOG_DEBUG, "<< setting active view"); - cec_command command = cec_command::format(m_iLogicalAddress, CECDEVICE_BROADCAST, CEC_OPCODE_ACTIVE_SOURCE); + cec_command command; + cec_command::format(command, m_iLogicalAddress, CECDEVICE_BROADCAST, CEC_OPCODE_ACTIVE_SOURCE); command.parameters.push_back((m_physicaladdress >> 8) & 0xFF); command.parameters.push_back(m_physicaladdress & 0xFF); @@ -161,7 +168,8 @@ bool CCECProcessor::SetInactiveView(void) m_controller->AddLog(CEC_LOG_DEBUG, "<< setting inactive view"); - cec_command command = cec_command::format(m_iLogicalAddress, CECDEVICE_BROADCAST, CEC_OPCODE_INACTIVE_SOURCE); + cec_command command; + cec_command::format(command, m_iLogicalAddress, CECDEVICE_BROADCAST, CEC_OPCODE_INACTIVE_SOURCE); command.parameters.push_back((m_physicaladdress >> 8) & 0xFF); command.parameters.push_back(m_physicaladdress & 0xFF); @@ -174,7 +182,7 @@ void CCECProcessor::LogOutput(const cec_command &data) txStr.AppendFormat(" %02x", ((uint8_t)data.initiator << 4) + (uint8_t)data.destination); txStr.AppendFormat(" %02x", (uint8_t)data.opcode); - for (unsigned int iPtr = 0; iPtr < data.parameters.size; iPtr++) + for (uint8_t iPtr = 0; iPtr < data.parameters.size; iPtr++) txStr.AppendFormat(" %02x", data.parameters[iPtr]); m_controller->AddLog(CEC_LOG_DEBUG, txStr.c_str()); } @@ -215,7 +223,7 @@ bool CCECProcessor::TransmitFormatted(const cec_adapter_message &data, bool bWai while (!bGotAck && now < target) { - bGotAck = WaitForAck(&bError, (uint64_t) (target - now)); + bGotAck = WaitForAck(&bError, (uint32_t) (target - now)); now = GetTimeMs(); if (bError && now < target) @@ -234,7 +242,8 @@ void CCECProcessor::TransmitAbort(cec_logical_address address, cec_opcode opcode { m_controller->AddLog(CEC_LOG_DEBUG, "<< transmitting abort message"); - cec_command command = cec_command::format(m_iLogicalAddress, address, CEC_OPCODE_FEATURE_ABORT); + cec_command command; + cec_command::format(command, m_iLogicalAddress, address, CEC_OPCODE_FEATURE_ABORT); command.parameters.push_back((uint8_t)opcode); command.parameters.push_back((uint8_t)reason); @@ -245,7 +254,8 @@ void CCECProcessor::ReportCECVersion(cec_logical_address address /* = CECDEVICE_ { m_controller->AddLog(CEC_LOG_NOTICE, "<< reporting CEC version as 1.3a"); - cec_command command = cec_command::format(m_iLogicalAddress, address, CEC_OPCODE_CEC_VERSION); + cec_command command; + cec_command::format(command, m_iLogicalAddress, address, CEC_OPCODE_CEC_VERSION); command.parameters.push_back(CEC_VERSION_1_3A); Transmit(command); @@ -258,7 +268,8 @@ void CCECProcessor::ReportPowerState(cec_logical_address address /*= CECDEVICE_T else m_controller->AddLog(CEC_LOG_NOTICE, "<< reporting \"Off\" power status"); - cec_command command = cec_command::format(m_iLogicalAddress, address, CEC_OPCODE_REPORT_POWER_STATUS); + cec_command command; + cec_command::format(command, m_iLogicalAddress, address, CEC_OPCODE_REPORT_POWER_STATUS); command.parameters.push_back(bOn ? (uint8_t) CEC_POWER_STATUS_ON : (uint8_t) CEC_POWER_STATUS_STANDBY); Transmit(command); @@ -271,7 +282,8 @@ void CCECProcessor::ReportMenuState(cec_logical_address address /* = CECDEVICE_T else m_controller->AddLog(CEC_LOG_NOTICE, "<< reporting menu state as inactive"); - cec_command command = cec_command::format(m_iLogicalAddress, address, CEC_OPCODE_MENU_STATUS); + cec_command command; + cec_command::format(command, m_iLogicalAddress, address, CEC_OPCODE_MENU_STATUS); command.parameters.push_back(bActive ? (uint8_t) CEC_MENU_STATE_ACTIVATED : (uint8_t) CEC_MENU_STATE_DEACTIVATED); Transmit(command); @@ -290,7 +302,8 @@ void CCECProcessor::ReportOSDName(cec_logical_address address /* = CECDEVICE_TV strLog.Format("<< reporting OSD name as %s", osdname); m_controller->AddLog(CEC_LOG_NOTICE, strLog.c_str()); - cec_command command = cec_command::format(m_iLogicalAddress, address, CEC_OPCODE_SET_OSD_NAME); + cec_command command; + cec_command::format(command, m_iLogicalAddress, address, CEC_OPCODE_SET_OSD_NAME); for (unsigned int iPtr = 0; iPtr < strlen(osdname); iPtr++) command.parameters.push_back(osdname[iPtr]); @@ -303,7 +316,8 @@ void CCECProcessor::ReportPhysicalAddress(void) strLog.Format("<< reporting physical address as %04x", m_physicaladdress); m_controller->AddLog(CEC_LOG_NOTICE, strLog.c_str()); - cec_command command = cec_command::format(m_iLogicalAddress, CECDEVICE_BROADCAST, CEC_OPCODE_REPORT_PHYSICAL_ADDRESS); + cec_command command; + cec_command::format(command, m_iLogicalAddress, CECDEVICE_BROADCAST, CEC_OPCODE_REPORT_PHYSICAL_ADDRESS); command.parameters.push_back((uint8_t) ((m_physicaladdress >> 8) & 0xFF)); command.parameters.push_back((uint8_t) (m_physicaladdress & 0xFF)); @@ -314,7 +328,8 @@ void CCECProcessor::BroadcastActiveSource(void) { m_controller->AddLog(CEC_LOG_NOTICE, "<< broadcasting active source"); - cec_command command = cec_command::format(m_iLogicalAddress, CECDEVICE_BROADCAST, CEC_OPCODE_ACTIVE_SOURCE); + cec_command command; + cec_command::format(command, m_iLogicalAddress, CECDEVICE_BROADCAST, CEC_OPCODE_ACTIVE_SOURCE); command.parameters.push_back((uint8_t) ((m_physicaladdress >> 8) & 0xFF)); command.parameters.push_back((uint8_t) (m_physicaladdress & 0xFF)); @@ -334,7 +349,7 @@ bool CCECProcessor::WaitForAck(bool *bError, uint32_t iTimeout /* = 1000 */) cec_adapter_message msg; msg.clear(); - if (!m_communication->Read(msg, iTimeout > 0 ? iTargetTime - iNow : 1000)) + if (!m_communication->Read(msg, iTimeout > 0 ? (int32_t)(iTargetTime - iNow) : 1000)) { iNow = GetTimeMs(); continue; @@ -479,8 +494,8 @@ void CCECProcessor::ParseCommand(cec_command &command) if (command.parameters.size > 1) { dataStr += " data:"; - for (unsigned int iPtr = 0; iPtr < command.parameters.size; iPtr++) - dataStr.AppendFormat(" %02x", command.parameters[iPtr]); + for (uint8_t iPtr = 0; iPtr < command.parameters.size; iPtr++) + dataStr.AppendFormat(" %02x", (unsigned int)command.parameters[iPtr]); } m_controller->AddLog(CEC_LOG_DEBUG, dataStr.c_str()); diff --git a/src/lib/platform/pthread_win32/pthreadVC2d.lib b/src/lib/platform/pthread_win32/pthreadVC2d.lib deleted file mode 100644 index 0df71c7dfbf37c046823c184ed0f576b1d2b47c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29172 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 -#include #if defined(__APPLE__) #include #include +#elif defined(__WINDOWS__) +#include +#else +#include #endif namespace CEC diff --git a/src/lib/platform/windows/serialport.cpp b/src/lib/platform/windows/serialport.cpp index 6e1c7bd..de2a9a3 100644 --- a/src/lib/platform/windows/serialport.cpp +++ b/src/lib/platform/windows/serialport.cpp @@ -173,7 +173,7 @@ int8_t CSerialPort::Write(const cec_adapter_message &data) if (!m_bIsOpen) return -1; - if (!WriteFile(m_handle, data.data, data.size, &iBytesWritten, NULL)) + if (!WriteFile(m_handle, data.packet.data, data.size(), &iBytesWritten, NULL)) { m_error = "Error while writing to COM port"; FormatWindowsError(GetLastError(), m_error); -- 2.34.1