Some checks failed
Linux Build / Linux cpu (push) Has been cancelled
Linux Build / Linux cpu-clang (push) Has been cancelled
Linux Build / Linux vulkan (push) Has been cancelled
mac-build / macOS CPU (push) Has been cancelled
Nix Build / Nix (cpu) (push) Has been cancelled
Nix Build / Nix (vulkan) (push) Has been cancelled
windows-build / Windows CPU (push) Has been cancelled
66 lines
2.1 KiB
C++
66 lines
2.1 KiB
C++
#include "omtd.h"
|
|
|
|
#include <cstring>
|
|
|
|
static void omtd_set_error(char * error, const size_t error_size, const char * msg) {
|
|
if (!error || error_size == 0) {
|
|
return;
|
|
}
|
|
const char * text = msg ? msg : "";
|
|
std::strncpy(error, text, error_size - 1);
|
|
error[error_size - 1] = '\0';
|
|
}
|
|
|
|
static bool omtd_has_text(const char * value) {
|
|
return value && value[0] != '\0';
|
|
}
|
|
|
|
extern "C" bool omtd_is_output_companion_gguf(const char * path) {
|
|
return omtd_get_model_type(path) != OMTD_MODEL_TYPE_UNKNOWN;
|
|
}
|
|
|
|
extern "C" omtd_model_type omtd_get_model_type(const char * path) {
|
|
if (!omtd_has_text(path)) {
|
|
return OMTD_MODEL_TYPE_UNKNOWN;
|
|
}
|
|
|
|
// Model-specific OMTD patches add companion GGUF metadata recognizers here.
|
|
return OMTD_MODEL_TYPE_UNKNOWN;
|
|
}
|
|
|
|
extern "C" omtd_modality omtd_get_model_modality(const char * path) {
|
|
switch (omtd_get_model_type(path)) {
|
|
case OMTD_MODEL_TYPE_UNKNOWN:
|
|
default:
|
|
return OMTD_MODALITY_UNKNOWN;
|
|
}
|
|
}
|
|
|
|
extern "C" omtd_status omtd_audio_generate_file(
|
|
const omtd_audio_generation_params * params,
|
|
char * error,
|
|
const size_t error_size) {
|
|
if (!params) {
|
|
omtd_set_error(error, error_size, "missing OMTD audio generation params");
|
|
return OMTD_STATUS_INVALID_PARAM;
|
|
}
|
|
if (!omtd_has_text(params->model_path)) {
|
|
omtd_set_error(error, error_size, "missing backbone model path");
|
|
return OMTD_STATUS_INVALID_PARAM;
|
|
}
|
|
if (!omtd_has_text(params->companion_path)) {
|
|
omtd_set_error(error, error_size, "missing OMTD companion path");
|
|
return OMTD_STATUS_INVALID_PARAM;
|
|
}
|
|
if (!omtd_has_text(params->prompt)) {
|
|
omtd_set_error(error, error_size, "missing audio generation prompt");
|
|
return OMTD_STATUS_INVALID_PARAM;
|
|
}
|
|
if (!omtd_has_text(params->output_path)) {
|
|
omtd_set_error(error, error_size, "missing output path");
|
|
return OMTD_STATUS_INVALID_PARAM;
|
|
}
|
|
|
|
omtd_set_error(error, error_size, "no OMTD audio backend is available");
|
|
return OMTD_STATUS_UNSUPPORTED;
|
|
}
|