mirror of
				https://github.com/onyx-and-iris/vmrcli.git
				synced 2025-10-30 20:51:48 +00:00 
			
		
		
		
	rename vmr module to wrapper.
rename cdll module to ivmr upd doc strings
This commit is contained in:
		
							parent
							
								
									09793afafa
								
							
						
					
					
						commit
						19a3a16b74
					
				| @ -1,8 +0,0 @@ | ||||
| #ifndef __CDLL_H__ | ||||
| #define __CDLL_H__ | ||||
| 
 | ||||
| #include "VoicemeeterRemote.h" | ||||
| 
 | ||||
| PT_VMR create_interface(); | ||||
| 
 | ||||
| #endif /*__CDLL_H__*/ | ||||
							
								
								
									
										15
									
								
								include/ivmr.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								include/ivmr.h
									
									
									
									
									
										Normal file
									
								
							| @ -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__ */ | ||||
| @ -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__ | ||||
| 
 | ||||
|  | ||||
| @ -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 <stdbool.h> | ||||
| #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__ */ | ||||
| #endif /* __WRAPPER_H__ */ | ||||
| @ -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 <stdbool.h> | ||||
| #include <stdio.h> | ||||
| #include <windows.h> | ||||
| #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; | ||||
							
								
								
									
										31
									
								
								src/util.c
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								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 <stddef.h> | ||||
| #include <stdio.h> | ||||
| #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) | ||||
| { | ||||
|  | ||||
							
								
								
									
										36
									
								
								src/vmrcli.c
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								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 <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <stdbool.h> | ||||
| #include <getopt.h> | ||||
| #include <string.h> | ||||
| #include <ctype.h> | ||||
| #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. | ||||
|  */ | ||||
|  | ||||
| @ -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 <windows.h> | ||||
| #include <stdio.h> | ||||
| #include <time.h> | ||||
| #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) | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user