update clean code and compatibility

This commit is contained in:
Clément SAILLANT
2025-03-26 16:27:43 +01:00
parent 3c34e8382c
commit b3a104781e
3 changed files with 9 additions and 36 deletions
+9 -9
View File
@@ -117,7 +117,7 @@ uint8_t ADB::readBit() {
auto time_start = micros();
while (digitalRead(dataPin) == LOW) {
if (micros() - time_start > MAX_WAIT)
return BIT_ERROR;
return ADBProtocol::BIT_ERROR;
}
auto low_time = micros() - time_start;
@@ -125,7 +125,7 @@ uint8_t ADB::readBit() {
time_start = micros();
while (digitalRead(dataPin) == HIGH) {
if (micros() - time_start > MAX_WAIT)
return BIT_ERROR;
return ADBProtocol::BIT_ERROR;
}
auto high_time = micros() - time_start;
@@ -143,7 +143,7 @@ bool ADB::readDataPacket(uint16_t* buffer, uint8_t length) {
*buffer = 0;
for (uint8_t i = 0; i < length; i++) {
uint8_t current_bit = readBit();
if (current_bit == BIT_ERROR) {
if (current_bit == ADBProtocol::BIT_ERROR) {
return false;
}
*buffer = (*buffer << 1) | current_bit;
@@ -190,7 +190,7 @@ adb_data<adb_kb_modifiers> ADBDevices::keyboardReadModifiers(bool* error) {
adb_data<adb_kb_modifiers> modifiers = {0};
// Envoi d'une commande Talk au registre 2 du clavier
adb.writeCommand(CMD_TALK | ADB_ADDRESS(ADDR_KEYBOARD) | ADB_REGISTER(2));
adb.writeCommand(ADBProtocol::CMD_TALK | ADBProtocol::ADDRESS(ADBKey::Address::KEYBOARD) | ADBProtocol::REGISTER(2));
adb.waitTLT(true);
// Lecture des données et mise à jour du statut d'erreur
@@ -202,7 +202,7 @@ adb_data<adb_kb_keypress> ADBDevices::keyboardReadKeyPress(bool* error) {
adb_data<adb_kb_keypress> keyPress = {0};
// Envoi d'une commande Talk au registre 0 du clavier
adb.writeCommand(CMD_TALK | ADB_ADDRESS(ADDR_KEYBOARD) | ADB_REGISTER(0));
adb.writeCommand(ADBProtocol::CMD_TALK | ADBProtocol::ADDRESS(ADBKey::Address::KEYBOARD) | ADBProtocol::REGISTER(0));
adb.waitTLT(true);
// Lecture des touches pressées et mise à jour du statut d'erreur
@@ -219,7 +219,7 @@ void ADBDevices::keyboardWriteLEDs(bool scroll, bool caps, bool num) {
modifiers.data.led_num = !num;
// Envoi d'une commande Listen au registre 2 du clavier
adb.writeCommand(CMD_LISTEN | ADB_ADDRESS(ADDR_KEYBOARD) | ADB_REGISTER(2));
adb.writeCommand(ADBProtocol::CMD_LISTEN | ADBProtocol::ADDRESS(ADBKey::Address::KEYBOARD) | ADBProtocol::REGISTER(2));
adb.waitTLT(false);
// Envoi des données de configuration des LEDs
@@ -230,7 +230,7 @@ adb_data<adb_mouse_data> ADBDevices::mouseReadData(bool* error) {
adb_data<adb_mouse_data> mouseData = {0};
// Envoi d'une commande Talk au registre 0 de la souris
adb.writeCommand(CMD_TALK | ADB_ADDRESS(ADDR_MOUSE) | ADB_REGISTER(0));
adb.writeCommand(ADBProtocol::CMD_TALK | ADBProtocol::ADDRESS(ADBKey::Address::MOUSE) | ADBProtocol::REGISTER(0));
adb.waitTLT(true);
// Lecture des données de la souris et mise à jour du statut d'erreur
@@ -242,7 +242,7 @@ adb_data<adb_register3> ADBDevices::deviceReadRegister3(uint8_t addr, bool* erro
adb_data<adb_register3> reg3 = {0};
// Envoi d'une commande Talk au registre 3 du périphérique
adb.writeCommand(CMD_TALK | ADB_ADDRESS(addr) | ADB_REGISTER(3));
adb.writeCommand(ADBProtocol::CMD_TALK | ADBProtocol::ADDRESS(ADBKey::Address::KEYBOARD) | ADBProtocol::REGISTER(3));
adb.waitTLT(true);
// Lecture de la configuration du périphérique
@@ -262,7 +262,7 @@ bool ADBDevices::deviceUpdateRegister3(uint8_t addr, adb_data<adb_register3> new
reg3.raw = (reg3.raw & ~mask) | (newReg3.raw & mask);
// Envoi d'une commande Listen pour mettre à jour la configuration
adb.writeCommand(CMD_LISTEN | ADB_ADDRESS(addr) | ADB_REGISTER(3));
adb.writeCommand(ADBProtocol::CMD_LISTEN | ADBProtocol::ADDRESS(ADBKey::Address::KEYBOARD) | ADBProtocol::REGISTER(3));
adb.waitTLT(false);
adb.writeDataPacket(reg3.raw, 16);
-9
View File
@@ -26,15 +26,6 @@ namespace ADBProtocol {
constexpr uint8_t REGISTER(uint8_t reg) { return reg; }
}
// Pour compatibilité avec le code existant
#define CMD_TALK ADBProtocol::CMD_TALK
#define CMD_LISTEN ADBProtocol::CMD_LISTEN
#define CMD_FLUSH ADBProtocol::CMD_FLUSH
#define BIT_ERROR ADBProtocol::BIT_ERROR
#define POLL_DELAY ADBProtocol::POLL_DELAY
#define ADB_ADDRESS(addr) ADBProtocol::ADDRESS(addr)
#define ADB_REGISTER(reg) ADBProtocol::REGISTER(reg)
/**
* @brief Structures de données pour les périphériques ADB
*/
-18
View File
@@ -39,22 +39,4 @@ namespace ADBKey {
}
}
// Pour la compatibilité avec le code existant
#define ADDR_KEYBOARD ADBKey::Address::KEYBOARD
#define ADDR_MOUSE ADBKey::Address::MOUSE
#define ADB_KEY_CAPS_LOCK ADBKey::KeyCode::CAPS_LOCK
#define ADB_KEY_NUM_LOCK ADBKey::KeyCode::NUM_LOCK
#define ADB_KEY_POWER_DOWN ADBKey::KeyCode::POWER_DOWN
#define ADB_KEY_POWER_UP ADBKey::KeyCode::POWER_UP
// Définitions des modificateurs (compatibilité)
#define ADB_KEY_LEFT_SHIFT ADBKey::KeyCode::LEFT_SHIFT
#define ADB_KEY_RIGHT_SHIFT ADBKey::KeyCode::RIGHT_SHIFT
#define ADB_KEY_LEFT_CONTROL ADBKey::KeyCode::LEFT_CONTROL
#define ADB_KEY_RIGHT_CONTROL ADBKey::KeyCode::RIGHT_CONTROL
#define ADB_KEY_LEFT_OPTION ADBKey::KeyCode::LEFT_OPTION
#define ADB_KEY_RIGHT_OPTION ADBKey::KeyCode::RIGHT_OPTION
#define ADB_KEY_LEFT_COMMAND ADBKey::KeyCode::LEFT_COMMAND
#define ADB_KEY_RIGHT_COMMAND ADBKey::KeyCode::RIGHT_COMMAND
#endif // ADB_KEYCODES_H