2024-07-06 09:03:13 +01:00
|
|
|
/**
|
|
|
|
* @file util.c
|
|
|
|
* @author Onyx and Iris (code@onyxandiris.online)
|
|
|
|
* @brief Utility functions.
|
2024-07-09 13:14:52 +01:00
|
|
|
* @version 0.7.0
|
2024-07-06 09:03:13 +01:00
|
|
|
* @date 2024-07-06
|
|
|
|
*
|
|
|
|
* @copyright Copyright (c) 2024
|
|
|
|
* https://github.com/onyx-and-iris/vmrcli/blob/main/LICENSE
|
|
|
|
*/
|
|
|
|
|
2024-06-27 22:06:15 +01:00
|
|
|
#include <stddef.h>
|
2024-06-28 03:21:38 +01:00
|
|
|
#include <stdio.h>
|
2024-07-08 16:01:14 +01:00
|
|
|
#include <string.h>
|
|
|
|
#include <ctype.h>
|
2024-07-06 09:03:13 +01:00
|
|
|
#include "wrapper.h"
|
2024-06-28 03:21:38 +01:00
|
|
|
#include "util.h"
|
|
|
|
|
2024-07-02 11:15:17 +01:00
|
|
|
/**
|
|
|
|
* @brief Removes the last part of a path
|
|
|
|
*
|
2024-07-08 16:01:14 +01:00
|
|
|
* @param fullpath The entire path
|
2024-07-02 11:15:17 +01:00
|
|
|
*/
|
2024-07-08 16:01:14 +01:00
|
|
|
void remove_last_part_of_path(char *fullpath)
|
2024-06-28 03:21:38 +01:00
|
|
|
{
|
2024-07-08 16:01:14 +01:00
|
|
|
char *p;
|
2024-06-28 03:21:38 +01:00
|
|
|
|
2024-07-08 16:01:14 +01:00
|
|
|
if ((p = strrchr(fullpath, '\\')) != NULL)
|
|
|
|
{
|
2024-06-28 03:21:38 +01:00
|
|
|
*p = '\0';
|
2024-07-08 16:01:14 +01:00
|
|
|
}
|
2024-06-28 03:21:38 +01:00
|
|
|
}
|
2024-06-27 19:18:28 +01:00
|
|
|
|
2024-07-02 11:15:17 +01:00
|
|
|
/**
|
2024-07-06 09:09:11 +01:00
|
|
|
* @brief Converts Voicemeeter's kind into a string.
|
2024-07-02 11:15:17 +01:00
|
|
|
*
|
|
|
|
* @param s Pointer to a character buffer
|
|
|
|
* @param kind The kind of Voicemeeter.
|
2024-07-06 09:03:13 +01:00
|
|
|
* @param n Maximum number of characters to be written to the buffer
|
2024-07-06 09:09:11 +01:00
|
|
|
* @return char* String representation of the kind of Voicemeeter.
|
2024-07-02 11:15:17 +01:00
|
|
|
*/
|
2024-07-03 15:24:44 +01:00
|
|
|
char *kind_as_string(char *s, int kind, int n)
|
2024-06-29 03:05:51 +01:00
|
|
|
{
|
2024-07-03 17:52:08 +01:00
|
|
|
static const char *kinds[] = {
|
2024-06-29 03:05:51 +01:00
|
|
|
"Basic",
|
|
|
|
"Banana",
|
|
|
|
"Potato",
|
|
|
|
"Basic x64",
|
|
|
|
"Banana x64",
|
|
|
|
"Potato x64",
|
|
|
|
};
|
|
|
|
snprintf(s, n, kinds[kind - 1]);
|
|
|
|
return s;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2024-07-06 09:09:11 +01:00
|
|
|
* @brief Converts Voicemeeter's version into a string.
|
2024-06-29 03:05:51 +01:00
|
|
|
*
|
2024-07-06 09:03:13 +01:00
|
|
|
* @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
|
2024-07-06 09:09:11 +01:00
|
|
|
* @return char* String representation of the Voicemeeter version
|
2024-06-29 03:05:51 +01:00
|
|
|
*/
|
2024-06-28 03:21:38 +01:00
|
|
|
char *version_as_string(char *s, long v, int n)
|
|
|
|
{
|
|
|
|
long v1 = (v & 0xFF000000) >> 24,
|
|
|
|
v2 = (v & 0x00FF0000) >> 16,
|
|
|
|
v3 = (v & 0x0000FF00) >> 8,
|
|
|
|
v4 = (v & 0x000000FF);
|
|
|
|
snprintf(s, n, "%i.%i.%i.%i", (int)v1, (int)v2, (int)v3, (int)v4);
|
|
|
|
return s;
|
2024-06-27 19:18:28 +01:00
|
|
|
}
|