InitHWCListwithDefaults();
}
-u1 Input::TranslateHWC(HWC_TYPE code)
+u1 Input::TranslateHWC(u8 code)
{
u1 ret = TranslateHWCFixed(code);
return TranslateHWCList(code);
}
-u1 Input::TranslateHWCList(HWC_TYPE code)
+u1 Input::TranslateHWCList(u8 code)
{
if (learnMode != NOLEARNMODE)
{
}
}
-void Input::setHWCtoCommand(HWC_TYPE hcw, u1 command)
+void Input::setHWCtoCommand(u8 hcw, u1 command)
{
translist[hcw] = command;
}
-void Input::unsetHWC(HWC_TYPE hcw) // FIXME never used
+void Input::unsetHWC(u8 hcw) // FIXME never used
{
translist.erase(hcw);
}
void Input::LoadKeysConfig(VDR *vdr,const char *cfg)
{
u4 number=0;
- if (sscanf(cfg,"%ld",&number) != 1) return;
+ if (sscanf(cfg,"%d",&number) != 1) return;
LogNT::getInstance()->info(TAG, "Config Input/Remote keys num keys {}", number);
char keybuf[1024];
for (u4 i = 0; i < number; i++) {
- sprintf(keybuf, "RemoteKey%lu", i);
+ sprintf(keybuf, "RemoteKey%u", i);
const char *keytrans = vdr->configLoad(modName(), keybuf);
if (keytrans) {
u4 ul1, ul2;
u4 uc;
- if (sscanf(keytrans, "%lXI%lXK%lX", &ul1, &ul2, &uc) == 3) {
+ if (sscanf(keytrans, "%XI%XK%X", &ul1, &ul2, &uc) == 3) {
translist[((u8) ul1) | ((u8) ul2) << 32] = (u1) uc;
}
delete[] keytrans;
RemoteTranslationList::const_iterator it;
for (it = translist.begin(); it != translist.end(); it++)
{
- sprintf(buffer,"%08lXI%08lXK%02X",
- (u4)it->first ,(u4) (it->first >> 32), it->second);
+ sprintf(buffer,"%08XI%08XK%02X", (u4)it->first, (u4)(it->first >> 32), it->second);
sprintf(keybuf,"RemoteKey%d",number);
VDR::getInstance()->configSave(modName(), keybuf, buffer);
number++;
#include "defines.h"
#include "abstractoption.h"
-#ifdef WIN32
-#define HWC_TYPE u8
-#else
-#define HWC_TYPE int
-#endif
-
-
class VDR;
-typedef std::map<HWC_TYPE, u1> RemoteTranslationList;
+typedef std::map<u8, u1> RemoteTranslationList;
class Input: public AbstractOption
{
static void sendInputKey(int key);
- void setHWCtoCommand(HWC_TYPE hcw, u1 command);
- void unsetHWC(HWC_TYPE hcw);
+ void setHWCtoCommand(u8 hcw, u1 command);
+ void unsetHWC(u8 hcw);
void LoadKeysConfig(VDR* vdr, const char* keynum);
void SaveKeysConfig();
void EnterLearnMode(u1 /* command */ ) {}; // Override and set lernMode to command
void cancelLearnMode() { learnMode = NOLEARNMODE; }
void ResetToDefault();
- virtual std::string getHardwareKeyName(HWC_TYPE hardwareKey) = 0;
+ virtual std::string getHardwareKeyName(u8 hardwareKey) = 0;
const static u4 NOLEARNMODE = 256;
RemoteTranslationList translist;
int learnMode{NOLEARNMODE};
- virtual u1 TranslateHWCFixed(HWC_TYPE code) = 0;
- u1 TranslateHWCList(HWC_TYPE code);
- u1 TranslateHWC(HWC_TYPE code);
+ virtual u1 TranslateHWCFixed(u8 code) = 0;
+ u1 TranslateHWCList(u8 code);
+ u1 TranslateHWC(u8 code);
};
#endif
translist[CEC_USER_CONTROL_CODE_CHANNEL_DOWN] = CHANNELDOWN;
}
-u1 InputCEC::TranslateHWCFixed(int code)
+u1 InputCEC::TranslateHWCFixed(u8 code)
{
switch (code)
{
return ""; // FIXME
}
-std::string InputCEC::getHardwareKeyName(int hardwareKey)
+std::string InputCEC::getHardwareKeyName(u8 hardwareKey)
{
- const char* desc = cec_keymap[hardwareKey];
-
std::string retval;
+ if (hardwareKey > CEC_USER_CONTROL_CODE_MAX) return retval;
+ const char* desc = cec_keymap[hardwareKey];
if (desc)
{
retval = desc;
else
{
char* rt = new char[10];
- sprintf(rt, "0x%x", hardwareKey);
+ sprintf(rt, "0x%llx", hardwareKey);
retval = rt;
}
bool addOptionsToPanes(int panenumber,Options *options,WOptionPane* pane);
bool handleOptionChanges(Option* option);
- std::string getHardwareKeyName(int hardwareKey);
+ std::string getHardwareKeyName(u8 hardwareKey);
const char* getHardCodedHardwareKeyNamesForVompKey(u1 vompKey);
private:
const char* modName() { return myModName; }
void InitKeymap();
void InitHWCListwithDefaults();
- u1 TranslateHWCFixed(int code);
+ u1 TranslateHWCFixed(u8 code);
bool cechandlesvolume{};
initted = 0;
}
-u1 InputLinux::TranslateHWCFixed(int code)
+u1 InputLinux::TranslateHWCFixed(u8 code)
{
// Translate /dev/input codes to VOMP codes for the hard coded buttons
switch (code)
}
}
-std::string InputLinux::getHardwareKeyName(int hardwareKey)
+std::string InputLinux::getHardwareKeyName(u8 hardwareKey)
{
- const char* desc = linux_keymap[hardwareKey];
-
std::string retval;
+ if (hardwareKey > KEY_MAX) return retval;
+ const char* desc = linux_keymap[hardwareKey];
if (desc)
{
retval = desc;
else
{
char* rt = new char[10];
- sprintf(rt, "0x%x", hardwareKey);
+ sprintf(rt, "0x%llx", hardwareKey);
retval = rt;
}
bool init();
void shutdown();
- std::string getHardwareKeyName(int hardwareKey);
+ std::string getHardwareKeyName(u8 hardwareKey);
const char* getHardCodedHardwareKeyNamesForVompKey(u1 vompKey);
void EnterLearningMode(u1 vompKey);
void InitKeymap();
void InitHWCListwithDefaults();
- u1 TranslateHWCFixed(int code);
+ u1 TranslateHWCFixed(u8 code);
std::vector<int> devices;
// return "";
// }
-std::string InputLIRC::getHardwareKeyName(HWC_TYPE /* hardwareKey */)
+std::string InputLIRC::getHardwareKeyName(u8 /* hardwareKey */)
{
std::string retval;
return retval;
void stop();
void InitHWCListwithDefaults() {};
- std::string getHardwareKeyName(HWC_TYPE hardwareKey);
+ std::string getHardwareKeyName(u8 hardwareKey);
private:
LogNT* log{};
bool threadReqStop{};
bool parse(const std::string& input, std::string& remoteName, std::string& remoteButton, int& repeatCount);
- u1 TranslateHWCFixed(HWC_TYPE code) { return static_cast<u1>(code); };
+ u1 TranslateHWCFixed(u8 code) { return static_cast<u1>(code); };
bool initted{};
TCP tcp;
return "";
}
-std::string InputUDP::getHardwareKeyName(HWC_TYPE /* hardwareKey */)
+std::string InputUDP::getHardwareKeyName(u8 /* hardwareKey */)
{
std::string retval;
return retval;
// InputUDP doesn't do any translation stuff so just keep everything happy here
void InitHWCListwithDefaults() {};
- u1 TranslateHWCFixed(HWC_TYPE code) { return static_cast<u1>(code); };
+ u1 TranslateHWCFixed(u8 code) { return static_cast<u1>(code); };
const char* getHardCodedHardwareKeyNamesForVompKey(u1 vompKey);
- std::string getHardwareKeyName(HWC_TYPE hardwareKey);
+ std::string getHardwareKeyName(u8 hardwareKey);
private:
static const char* myModName;
static pthread_t thisThreadID(); // Self identification - returns ID of calling thread
- static void threadSuicide(); // Self termination
+ [[ noreturn ]] static void threadSuicide(); // Self termination
};
#endif