diff --git a/include/cdll.h b/include/cdll.h deleted file mode 100644 index 591c786..0000000 --- a/include/cdll.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __CDLL_H__ -#define __CDLL_H__ - -#include "VoicemeeterRemote.h" - -PT_VMR create_interface(); - -#endif /*__CDLL_H__*/ \ No newline at end of file diff --git a/include/ivmr.h b/include/ivmr.h new file mode 100644 index 0000000..44376f0 --- /dev/null +++ b/include/ivmr.h @@ -0,0 +1,15 @@ +/** + * Copyright (c) 2024 Onyx and Iris + * + * This library is free software; you can redistribute it and/or modify it + * under the terms of the MIT license. See `ivmr.c` for details. + */ + +#ifndef __IVMR_H__ +#define __IVMR_H__ + +#include "VoicemeeterRemote.h" + +PT_VMR create_interface(); + +#endif /* __IVMR_H__ */ \ No newline at end of file diff --git a/include/util.h b/include/util.h index 5b305eb..bbbab8c 100644 --- a/include/util.h +++ b/include/util.h @@ -1,3 +1,10 @@ +/** + * Copyright (c) 2024 Onyx and Iris + * + * This library is free software; you can redistribute it and/or modify it + * under the terms of the MIT license. See `util.c` for details. + */ + #ifndef __UTIL_H__ #define __UTIL_H__ diff --git a/include/vmr.h b/include/wrapper.h similarity index 77% rename from include/vmr.h rename to include/wrapper.h index 94cc6d2..3654b55 100644 --- a/include/vmr.h +++ b/include/wrapper.h @@ -1,5 +1,12 @@ -#ifndef __VMR_H__ -#define __VMR_H__ +/** + * Copyright (c) 2024 Onyx and Iris + * + * This library is free software; you can redistribute it and/or modify it + * under the terms of the MIT license. See `wrapper.c` for details. + */ + +#ifndef __WRAPPER_H__ +#define __WRAPPER_H__ #include #include "voicemeeterRemote.h" @@ -36,4 +43,4 @@ long macrobutton_setstatus(PT_VMR vmr, long n, float val, long mode); void clear_dirty(PT_VMR vmr); -#endif /* __VMR_H__ */ \ No newline at end of file +#endif /* __WRAPPER_H__ */ \ No newline at end of file diff --git a/src/cdll.c b/src/ivmr.c similarity index 92% rename from src/cdll.c rename to src/ivmr.c index ee4b954..3b0cc10 100644 --- a/src/cdll.c +++ b/src/ivmr.c @@ -1,7 +1,22 @@ +/** + * @file ivmr.c + * @author Vincent Burel, Onyx and Iris (code@onyxandiris.online) + * @brief Functions for initializing the iVMR interface. + * Defines a single public function that returns a pointer to the interface. + * @version 0.5.0 + * @date 2024-07-06 + * + * @copyright Vincent Burel(c)2015-2021 All Rights Reserved + * https://github.com/onyx-and-iris/Voicemeeter-SDK/blob/main/LICENSE + * + * Copyright (c) 2024 + * https://github.com/onyx-and-iris/vmrcli/blob/main/LICENSE + */ + #include #include #include -#include "cdll.h" +#include "ivmr.h" #include "util.h" #include "log.h" @@ -10,6 +25,11 @@ static T_VBVMR_INTERFACE iVMR; static long initialize_dll_interfaces(PT_VMR vmr); static bool registry_get_voicemeeter_folder(char *szDir); +/** + * @brief Create an interface object + * + * @return PT_VMR Pointer to the iVMR interface + */ PT_VMR create_interface() { PT_VMR vmr = &iVMR; diff --git a/src/util.c b/src/util.c index 9efb820..213c55d 100644 --- a/src/util.c +++ b/src/util.c @@ -1,12 +1,23 @@ +/** + * @file util.c + * @author Onyx and Iris (code@onyxandiris.online) + * @brief Utility functions. + * @version 0.5.0 + * @date 2024-07-06 + * + * @copyright Copyright (c) 2024 + * https://github.com/onyx-and-iris/vmrcli/blob/main/LICENSE + */ + #include #include -#include "vmr.h" +#include "wrapper.h" #include "util.h" /** * @brief Removes the last part of a path * - * @param szPath + * @param szPath Pointer to the path string */ void remove_name_in_path(char *szPath) { @@ -23,9 +34,9 @@ void remove_name_in_path(char *szPath) /** * @brief replaces multiple newlines and tabs with single spaces * - * @param s the string to be reduced - * @param len current length of the string - * @return int new length of the string + * @param s The tring to be reduced + * @param len Current length of the string + * @return int New length of the string */ int replace_multiple_space_with_one(char *s, size_t len) { @@ -67,7 +78,7 @@ int replace_multiple_space_with_one(char *s, size_t len) * * @param s Pointer to a character buffer * @param kind The kind of Voicemeeter. - * @param n maximum number of characters to be written to the buffer + * @param n Maximum number of characters to be written to the buffer * @return char* The kind of Voicemeeter as a string */ char *kind_as_string(char *s, int kind, int n) @@ -87,10 +98,10 @@ char *kind_as_string(char *s, int kind, int n) /** * @brief returns Voicemeeter's version as a string * - * @param s string buffer the version will be written to - * @param v unprocessed version as a long int - * @param n maximum number of characters to be written to the buffer - * @return char* + * @param s Pointer to a character buffer + * @param v Unprocessed version as a long int + * @param n Maximum number of characters to be written to the buffer + * @return char* Pointer to a character buffer */ char *version_as_string(char *s, long v, int n) { diff --git a/src/vmrcli.c b/src/vmrcli.c index 8b15c82..354272f 100644 --- a/src/vmrcli.c +++ b/src/vmrcli.c @@ -1,20 +1,29 @@ +/** + * @file vmrcli.c + * @author Onyx and Iris (code@onyxandiris.online) + * @brief A Voicemeeter Remote Command Line Interface + * @version 0.5.0 + * @date 2024-07-06 + * + * @copyright Copyright (c) 2024 + * https://github.com/onyx-and-iris/vmrcli/blob/main/LICENSE + */ + #include #include #include #include #include #include -#include "cdll.h" -#include "vmr.h" +#include "ivmr.h" +#include "wrapper.h" #include "log.h" #include "util.h" #define MAX_LINE 512 /** - * @brief An enum used to define the kind of value - * a 'get' call returns. - * + * @enum The kind of values a get call may return. */ enum { @@ -23,8 +32,7 @@ enum }; /** - * @brief A struct holding the result of a get call. - * + * @struct A struct holding the result of a get call. */ struct result { @@ -167,7 +175,6 @@ int main(int argc, char *argv[]) /** * @brief prints the help message - * */ void help() { @@ -185,9 +192,10 @@ void help() } /** - * @brief Set the kind object + * @brief Set the kind of Voicemeeter based on the value of -k flag. + * For 64 bit systems the value is promoted to X64. * - * @param kval + * @param kval Value of the -k flag * @return enum kind */ enum kind set_kind(char *kval) @@ -224,7 +232,7 @@ enum kind set_kind(char *kval) * Break if 'Q' is entered on the interactive prompt. * Each line is passed to parse_input() * - * @param vmr The API interface as a struct + * @param vmr Pointer to the iVMR interface */ void interactive(PT_VMR vmr) { @@ -250,7 +258,7 @@ void interactive(PT_VMR vmr) * @brief Walks through each line split by a space delimiter. * Each token is passed to parse_command() * - * @param vmr The API interface as a struct + * @param vmr Pointer to the iVMR interface * @param input Each input line, from stdin or CLI args * @param len The length of the input line */ @@ -272,7 +280,7 @@ void parse_input(PT_VMR vmr, char *input, int len) * See command type definitions in: * https://github.com/onyx-and-iris/vmrcli?tab=readme-ov-file#api-commands * - * @param vmr The API interface as a struct + * @param vmr Pointer to the iVMR interface * @param command Each token from the input line as its own command string */ void parse_command(PT_VMR vmr, char *command) @@ -331,7 +339,7 @@ void parse_command(PT_VMR vmr, char *command) /** * @brief * - * @param vmr The API interface as a struct + * @param vmr Pointer to the iVMR interface * @param command A parsed 'get' command as a string * @param res A struct holding the result of the API call. */ diff --git a/src/vmr.c b/src/wrapper.c similarity index 87% rename from src/vmr.c rename to src/wrapper.c index 3bd1fea..18097f7 100644 --- a/src/vmr.c +++ b/src/wrapper.c @@ -1,21 +1,32 @@ +/** + * @file wrapper.c + * @author Onyx and Iris (code@onyxandiris.online) + * @brief Provides public functions that wrap the iVMR calls + * @version 0.5.0 + * @date 2024-07-06 + * + * @copyright Copyright (c) 2024 + * https://github.com/onyx-and-iris/vmrcli/blob/main/LICENSE + */ + #include #include #include -#include "vmr.h" +#include "wrapper.h" #include "log.h" #include "util.h" -#define VERSION_STR_LEN 128 #define KIND_STR_LEN 64 +#define VERSION_STR_LEN 32 /** * @brief Logs into the API. * Tests for valid connection for up to 2 seconds. * If successful initializes the dirty parameters. * - * @param vmr - * @param kind - * @return long + * @param vmr Pointer to the iVMR interface + * @param kind The kind of Voicemeeter Gui to launch. + * @return long VBVMR_Login return value */ long login(PT_VMR vmr, int kind) { @@ -59,7 +70,7 @@ long login(PT_VMR vmr, int kind) * @brief Logs out of the API giving a short wait to allow a * final instruction to complete. * - * @param vmr The API interface as a struct + * @param vmr Pointer to the iVMR interface * @return long VBVMR_Logout return value */ long logout(PT_VMR vmr)