Program Listing for File PDJE_CAbi_Input_Private.hpp
↰ Return to documentation for file (include\global\PDJE_CAbi_Input_Private.hpp)
#pragma once
#ifdef __cplusplus
#include <cstddef>
#include <string>
#include <vector>
#include "PDJE_Input_Device_Data.hpp"
#include "PDJE_MIDI.hpp"
struct PDJE_InputHandleV1 {
void *input = nullptr;
std::string backend_name_cache;
void *input_arena = nullptr;
void *midi_datas = nullptr;
};
struct PDJE_InputDeviceListHandleV1 {
std::vector<DeviceData> items;
};
struct PDJE_MidiDeviceListHandleV1 {
std::vector<libremidi::input_port> items;
};
namespace PDJE_CABI {
inline const PDJE_InputHandleV1 *
BorrowInputDataLine(PDJE_InputHandleV1 *input) noexcept
{
return input;
}
inline const DeviceData *
TryGetInputDevice(const PDJE_InputDeviceListHandleV1 *list, std::size_t index) noexcept
{
if (list == nullptr || index >= list->items.size()) {
return nullptr;
}
return &list->items[index];
}
inline const libremidi::input_port *
TryGetMidiDevice(const PDJE_MidiDeviceListHandleV1 *list,
std::size_t index) noexcept
{
if (list == nullptr || index >= list->items.size()) {
return nullptr;
}
return &list->items[index];
}
} // namespace PDJE_CABI
#endif