Added GetFileNameWithoutExt, GetFileName & strprbrk to raudio.c
This commit is contained in:
parent
40f3df5b86
commit
421ea866e3
46
src/raudio.c
46
src/raudio.c
|
|
@ -416,6 +416,8 @@ static void MixAudioFrames(float *framesOut, const float *framesIn, ma_uint32 fr
|
||||||
#if defined(RAUDIO_STANDALONE)
|
#if defined(RAUDIO_STANDALONE)
|
||||||
static bool IsFileExtension(const char *fileName, const char *ext); // Check file extension
|
static bool IsFileExtension(const char *fileName, const char *ext); // Check file extension
|
||||||
static const char *GetFileExtension(const char *fileName); // Get pointer to extension for a filename string (includes the dot: .png)
|
static const char *GetFileExtension(const char *fileName); // Get pointer to extension for a filename string (includes the dot: .png)
|
||||||
|
static const char *GetFileName(const char *filePath); // Get pointer to filename for a path string
|
||||||
|
static const char *GetFileNameWithoutExt(const char *filePath); // Get filename string without extension (uses static string)
|
||||||
|
|
||||||
static unsigned char *LoadFileData(const char *fileName, int *dataSize); // Load file data as byte array (read)
|
static unsigned char *LoadFileData(const char *fileName, int *dataSize); // Load file data as byte array (read)
|
||||||
static bool SaveFileData(const char *fileName, void *data, int dataSize); // Save data to file from byte array (write)
|
static bool SaveFileData(const char *fileName, void *data, int dataSize); // Save data to file from byte array (write)
|
||||||
|
|
@ -2642,6 +2644,50 @@ static const char *GetFileExtension(const char *fileName)
|
||||||
return dot;
|
return dot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// String pointer reverse break: returns right-most occurrence of charset in s
|
||||||
|
static const char *strprbrk(const char *s, const char *charset)
|
||||||
|
{
|
||||||
|
const char *latestMatch = NULL;
|
||||||
|
for (; s = strpbrk(s, charset), s != NULL; latestMatch = s++) { }
|
||||||
|
return latestMatch;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get pointer to filename for a path string
|
||||||
|
static const char *GetFileName(const char *filePath)
|
||||||
|
{
|
||||||
|
const char *fileName = NULL;
|
||||||
|
if (filePath != NULL) fileName = strprbrk(filePath, "\\/");
|
||||||
|
|
||||||
|
if (!fileName) return filePath;
|
||||||
|
|
||||||
|
return fileName + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get filename string without extension (uses static string)
|
||||||
|
static const char *GetFileNameWithoutExt(const char *filePath)
|
||||||
|
{
|
||||||
|
#define MAX_FILENAMEWITHOUTEXT_LENGTH 256
|
||||||
|
|
||||||
|
static char fileName[MAX_FILENAMEWITHOUTEXT_LENGTH] = { 0 };
|
||||||
|
memset(fileName, 0, MAX_FILENAMEWITHOUTEXT_LENGTH);
|
||||||
|
|
||||||
|
if (filePath != NULL) strcpy(fileName, GetFileName(filePath)); // Get filename with extension
|
||||||
|
|
||||||
|
int size = (int)strlen(fileName); // Get size in bytes
|
||||||
|
|
||||||
|
for (int i = 0; (i < size) && (i < MAX_FILENAMEWITHOUTEXT_LENGTH); i++)
|
||||||
|
{
|
||||||
|
if (fileName[i] == '.')
|
||||||
|
{
|
||||||
|
// NOTE: We break on first '.' found
|
||||||
|
fileName[i] = '\0';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return fileName;
|
||||||
|
}
|
||||||
|
|
||||||
// Load data from file into a buffer
|
// Load data from file into a buffer
|
||||||
static unsigned char *LoadFileData(const char *fileName, int *dataSize)
|
static unsigned char *LoadFileData(const char *fileName, int *dataSize)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user