add doxygen via opencode
This commit is contained in:
@@ -29,37 +29,98 @@
|
||||
#include "pithread.h"
|
||||
|
||||
|
||||
//! \~english HID device information
|
||||
//! \~russian Информация об HID устройстве
|
||||
struct PIP_EXPORT PIHIDeviceInfo {
|
||||
friend class PIHIDevice;
|
||||
|
||||
//! \~english Base class for value info
|
||||
//! \~russian Базовый класс для информации о значении
|
||||
struct PIP_EXPORT ValueInfoBase {
|
||||
//! \~english Checks if info is valid
|
||||
//! \~russian Проверяет валидна ли информация
|
||||
bool isValid() const { return index >= 0; }
|
||||
int index = -1;
|
||||
int data_index = -1;
|
||||
};
|
||||
|
||||
//! \~english Axis information
|
||||
//! \~russian Информация об оси
|
||||
struct PIP_EXPORT AxisInfo: public ValueInfoBase {
|
||||
int bits = 0;
|
||||
int min = 0;
|
||||
int max = 1;
|
||||
bool is_relative = false;
|
||||
};
|
||||
|
||||
//! \~english Button information
|
||||
//! \~russian Информация о кнопке
|
||||
struct PIP_EXPORT ButtonInfo: public ValueInfoBase {
|
||||
int code = 0;
|
||||
};
|
||||
|
||||
//! \~english Device path
|
||||
//! \~russian Путь к устройству
|
||||
PIString path;
|
||||
|
||||
//! \~english Manufacturer name
|
||||
//! \~russian Имя производителя
|
||||
PIString manufacturer;
|
||||
|
||||
//! \~english Product name
|
||||
//! \~russian Название продукта
|
||||
PIString product;
|
||||
|
||||
//! \~english Serial number
|
||||
//! \~russian Серийный номер
|
||||
PIString serial;
|
||||
|
||||
//! \~english Version
|
||||
//! \~russian Версия
|
||||
PIString version;
|
||||
|
||||
//! \~english Vendor ID
|
||||
//! \~russian Идентификатор производителя
|
||||
PIString VID;
|
||||
|
||||
//! \~english Product ID
|
||||
//! \~russian Идентификатор продукта
|
||||
PIString PID;
|
||||
|
||||
//! \~english List of axes
|
||||
//! \~russian Список осей
|
||||
PIVector<AxisInfo> axes;
|
||||
|
||||
//! \~english List of buttons
|
||||
//! \~russian Список кнопок
|
||||
PIVector<ButtonInfo> buttons;
|
||||
|
||||
//! \~english Checks if info is null
|
||||
//! \~russian Проверяет является ли информация пустой
|
||||
bool isNull() const { return path.isEmpty(); }
|
||||
|
||||
//! \~english Checks if info is not null
|
||||
//! \~russian Проверяет является ли информация не пустой
|
||||
bool isNotNull() const { return !isNull(); }
|
||||
|
||||
//! \~english Matches device by string
|
||||
//! \~russian Сопоставляет устройство по строке
|
||||
bool match(const PIString & str) const;
|
||||
|
||||
//! \~english Returns axes count
|
||||
//! \~russian Возвращает количество осей
|
||||
int axesCount() const { return axes.size_s(); }
|
||||
|
||||
//! \~english Returns absolute axes count
|
||||
//! \~russian Возвращает количество абсолютных осей
|
||||
int axesAbsoluteCount() const;
|
||||
|
||||
//! \~english Returns relative axes count
|
||||
//! \~russian Возвращает количество относительных осей
|
||||
int axesRelativeCount() const;
|
||||
|
||||
//! \~english Returns buttons count
|
||||
//! \~russian Возвращает количество кнопок
|
||||
int buttonsCount() const { return buttons.size_s(); }
|
||||
|
||||
private:
|
||||
@@ -74,13 +135,19 @@ private:
|
||||
PIP_EXPORT PICout operator<<(PICout s, const PIHIDeviceInfo & v);
|
||||
|
||||
|
||||
//! \~english HID device
|
||||
//! \~russian HID устройство
|
||||
class PIP_EXPORT PIHIDevice: public PIThread {
|
||||
PIOBJECT_SUBCLASS(PIHIDevice, PIThread)
|
||||
|
||||
public:
|
||||
~PIHIDevice();
|
||||
|
||||
//! \~english HID event
|
||||
//! \~russian Событие HID
|
||||
struct PIP_EXPORT Event {
|
||||
//! \~english Event type
|
||||
//! \~russian Тип события
|
||||
enum Type {
|
||||
tNone,
|
||||
tButton,
|
||||
@@ -92,19 +159,48 @@ public:
|
||||
float value = 0.;
|
||||
};
|
||||
|
||||
//! \~english Checks if device is opened
|
||||
//! \~russian Проверяет открыто ли устройство
|
||||
bool isOpened() const;
|
||||
|
||||
//! \~english Opens device by info
|
||||
//! \~russian Открывает устройство по информации
|
||||
bool open(const PIHIDeviceInfo & device);
|
||||
|
||||
//! \~english Opens device
|
||||
//! \~russian Открывает устройство
|
||||
bool open();
|
||||
|
||||
//! \~english Closes device
|
||||
//! \~russian Закрывает устройство
|
||||
void close();
|
||||
|
||||
//! \~english Starts reading device
|
||||
//! \~russian Начинает чтение устройства
|
||||
void start();
|
||||
|
||||
//! \~english Stops reading device
|
||||
//! \~russian Останавливает чтение устройства
|
||||
void stop();
|
||||
|
||||
//! \~english Sets dead zone for axes
|
||||
//! \~russian Устанавливает мёртвую зону для осей
|
||||
void setDeadZone(float v) { dead_zone = v; }
|
||||
|
||||
//! \~english Returns dead zone
|
||||
//! \~russian Возвращает мёртвую зону
|
||||
float deadZone() const { return dead_zone; }
|
||||
|
||||
//! \~english Event fired on device event
|
||||
//! \~russian Событие при событии устройства
|
||||
EVENT1(event, PIHIDevice::Event, e);
|
||||
|
||||
//! \~english Returns all available HID devices
|
||||
//! \~russian Возвращает все доступные HID устройства
|
||||
static PIVector<PIHIDeviceInfo> allDevices(bool try_open = true);
|
||||
|
||||
//! \~english Finds device by name
|
||||
//! \~russian Находит устройство по имени
|
||||
static PIHIDeviceInfo findDevice(const PIString & name);
|
||||
|
||||
private:
|
||||
|
||||
@@ -30,36 +30,54 @@
|
||||
|
||||
#include <functional>
|
||||
|
||||
//! \~english System signals handler
|
||||
//! \~russian Обработчик системных сигналов
|
||||
class PIP_EXPORT PISignals {
|
||||
public:
|
||||
//! \~english Signal types
|
||||
//! \~russian Типы сигналов
|
||||
enum Signal {
|
||||
Interrupt /** Interrupt from keyboard */ = 0x01, // Term Interrupt from keyboard
|
||||
Illegal /** Illegal Instruction */ = 0x02, // Core Illegal Instruction
|
||||
Abort /** Abort signal */ = 0x04, // Core Abort signal from abort
|
||||
FPE /** Floating point exception */ = 0x08, // Core Floating point exception
|
||||
SegFault /** Invalid memory reference */ = 0x10, // Core Invalid memory reference
|
||||
Termination /** Termination signal */ = 0x20, // Term Termination signal
|
||||
Hangup = 0x40, // Term Hangup detected on controlling terminal or death of controlling process
|
||||
Quit = 0x80, // Core Quit from keyboard
|
||||
Kill = 0x100, // Term Kill signal
|
||||
BrokenPipe = 0x200, // Term Broken pipe: write to pipe with no readers
|
||||
Timer = 0x400, // Term Timer signal from alarm
|
||||
UserDefined1 = 0x800, // Term User-defined signal 1
|
||||
UserDefined2 = 0x1000, // Term User-defined signal 2
|
||||
ChildStopped = 0x2000, // Ign Child stopped or terminated
|
||||
Continue = 0x4000, // Cont Continue if stopped
|
||||
StopProcess = 0x8000, // Stop Stop process
|
||||
StopTTY = 0x10000, // Stop Stop typed at tty
|
||||
StopTTYInput = 0x20000, // Stop tty input for background process
|
||||
StopTTYOutput = 0x40000, // Stop tty output for background process
|
||||
All = 0xFFFFF
|
||||
Interrupt = 0x01, //!< Interrupt from keyboard
|
||||
Illegal = 0x02, //!< Illegal Instruction
|
||||
Abort = 0x04, //!< Abort signal
|
||||
FPE = 0x08, //!< Floating point exception
|
||||
SegFault = 0x10, //!< Invalid memory reference
|
||||
Termination = 0x20, //!< Termination signal
|
||||
Hangup = 0x40, //!< Hangup detected
|
||||
Quit = 0x80, //!< Quit from keyboard
|
||||
Kill = 0x100, //!< Kill signal
|
||||
BrokenPipe = 0x200, //!< Broken pipe
|
||||
Timer = 0x400, //!< Timer signal
|
||||
UserDefined1 = 0x800, //!< User-defined signal 1
|
||||
UserDefined2 = 0x1000, //!< User-defined signal 2
|
||||
ChildStopped = 0x2000, //!< Child stopped or terminated
|
||||
Continue = 0x4000, //!< Continue if stopped
|
||||
StopProcess = 0x8000, //!< Stop process
|
||||
StopTTY = 0x10000, //!< Stop typed at tty
|
||||
StopTTYInput = 0x20000, //!< Stop tty input
|
||||
StopTTYOutput = 0x40000, //!< Stop tty output
|
||||
All = 0xFFFFF //!< All signals
|
||||
};
|
||||
|
||||
//! \~english Signal handler callback type
|
||||
//! \~russian Тип коллбэка обработчика сигналов
|
||||
//! \note slot is any function with format "void(PISignals::Signal)"
|
||||
typedef std::function<void(PISignals::Signal)> SignalEvent;
|
||||
// slot is any function format "void(PISignals::Signal)"
|
||||
|
||||
//! \~english Sets signal handler callback
|
||||
//! \~russian Устанавливает коллбэк обработчика сигналов
|
||||
static void setSlot(SignalEvent slot) { ret_func = slot; }
|
||||
|
||||
//! \~english Grabs specified signals
|
||||
//! \~russian Перехватывает указанные сигналы
|
||||
static void grabSignals(PIFlags<PISignals::Signal> signals_);
|
||||
|
||||
//! \~english Releases specified signals
|
||||
//! \~russian Освобождает указанные сигналы
|
||||
static void releaseSignals(PIFlags<PISignals::Signal> signals_);
|
||||
|
||||
//! \~english Raises signal
|
||||
//! \~russian Генерирует сигнал
|
||||
static void raiseSignal(PISignals::Signal signal);
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user