Files
JustOneCacophony/tests/test_headers.cpp
T
TheM14 42d6da6302
ci / ubuntu-latest (push) Failing after 13s
ci / macos-latest (push) Has been cancelled
ci / windows-latest (push) Has been cancelled
Initial pure C++ implementation
2026-09-25 04:17:30 +08:00

32 lines
1.1 KiB
C++

// The same headers under C++: aggregate initialisation, enum values and the
// function declarations must all be usable from a C++ translation unit.
#include "joc_core.h"
#include "joc_stream.h"
namespace {
int probe() {
joc_task_config task{};
task.struct_size = sizeof(task);
task.operation = JOC_OP_BINAURAL;
task.binaural_mode = JOC_BINAURAL_MID;
joc_stream_config stream{};
stream.struct_size = sizeof(stream);
stream.input = JOC_STREAM_IN_CORE_PCM;
stream.output = JOC_STREAM_OUT_SPEAKER;
joc_stream_buffer buffer{};
buffer.struct_size = sizeof(buffer);
joc_stream_status_info status{};
status.struct_size = sizeof(status);
joc_error (*create)(const joc_stream_config*, joc_stream**) = &joc_stream_create;
joc_error (*execute)(const joc_task_config*, const joc_event_sink*, joc_task_result*) =
&joc_task_execute;
return static_cast<int>(task.operation) + static_cast<int>(stream.output) +
static_cast<int>(JOC_TIMESLOTS) + (create != nullptr ? 1 : 0) +
(execute != nullptr ? 1 : 0);
}
} // namespace
int joc_header_cpp_probe() { return probe(); }