74 lines
1.1 KiB
C++
74 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <stdint.h>
|
|
|
|
#define RADIO_ID 0x165
|
|
#define VOLUME_ID 0x1A5
|
|
#define BUTTONS_ID 0x21f
|
|
|
|
namespace can {
|
|
enum Source : uint8_t {
|
|
Bluetooth = 0b111,
|
|
USB = 0b110,
|
|
AUX2 = 0b101,
|
|
AUX1 = 0b100,
|
|
CD_Changer = 0b011,
|
|
CD = 0b010,
|
|
Tuner = 0b001
|
|
};
|
|
|
|
enum DiskStatus : uint8_t {
|
|
Init = 0b00,
|
|
Unavailable = 0b01,
|
|
Available = 0b10
|
|
};
|
|
|
|
#pragma pack(1)
|
|
struct Radio {
|
|
uint8_t _1 : 5;
|
|
bool muted : 1;
|
|
uint8_t _2 : 1;
|
|
bool enabled : 1;
|
|
|
|
uint8_t _3 : 4;
|
|
bool cd_changer_available : 1;
|
|
DiskStatus disk_status : 2;
|
|
uint8_t _4 : 1;
|
|
|
|
uint8_t _5 : 4;
|
|
Source source : 3;
|
|
uint8_t _6 : 1;
|
|
|
|
uint8_t _7 : 8;
|
|
};
|
|
#pragma pack()
|
|
|
|
#pragma pack(1)
|
|
struct Buttons {
|
|
uint8_t _1 : 1;
|
|
bool source : 1;
|
|
bool volume_down : 1;
|
|
bool volume_up : 1;
|
|
uint8_t _2 : 2;
|
|
bool backward : 1;
|
|
bool forward : 1;
|
|
|
|
uint8_t scroll : 8;
|
|
|
|
uint8_t _3 : 8;
|
|
};
|
|
#pragma pack()
|
|
|
|
#pragma pack(1)
|
|
struct Volume {
|
|
uint8_t _upper : 3;
|
|
uint8_t volume : 5;
|
|
|
|
bool scrolled() {
|
|
return _upper == 0b000;
|
|
}
|
|
};
|
|
#pragma pack()
|
|
}
|