You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
Refresh 11
This commit is contained in:
@@ -5075,7 +5075,7 @@ bool ModuleState::fileModuleHandlesSeeking() const
|
||||
|
||||
status ModuleState::setup(AFfilehandle file, Track *track)
|
||||
{
|
||||
AFframecount fframepos = std::llrint((long double)track->nextvframe * track->f.sampleRate / track->v.sampleRate);
|
||||
AFframecount fframepos = std::llrint(track->nextvframe * track->f.sampleRate / track->v.sampleRate);
|
||||
bool isReading = file->m_access == _AF_READ_ACCESS;
|
||||
|
||||
if (!track->v.isUncompressed())
|
||||
@@ -5146,11 +5146,11 @@ status ModuleState::setup(AFfilehandle file, Track *track)
|
||||
if (track->totalfframes == -1)
|
||||
track->totalvframes = -1;
|
||||
else
|
||||
track->totalvframes = std::llrint((long double)track->totalfframes *
|
||||
track->totalvframes = std::llrint(track->totalfframes *
|
||||
(track->v.sampleRate / track->f.sampleRate));
|
||||
|
||||
track->nextfframe = fframepos;
|
||||
track->nextvframe = std::llrint((long double)fframepos * track->v.sampleRate / track->f.sampleRate);
|
||||
track->nextvframe = std::llrint(fframepos * track->v.sampleRate / track->f.sampleRate);
|
||||
|
||||
m_isDirty = false;
|
||||
|
||||
|
||||
@@ -54,31 +54,69 @@ static void parse_error(const char *filename, int lineNum, const char *msgfmt, .
|
||||
// Reads the whole file and returns a null-terminated buffer with its contents
|
||||
void *read_text_file(const char *filename)
|
||||
{
|
||||
FILE *file = fopen(filename, "rb");
|
||||
uint8_t *buffer;
|
||||
size_t size;
|
||||
if (strcmp(filename, "-") != 0)
|
||||
{
|
||||
FILE *file = fopen(filename, "rb");
|
||||
uint8_t *buffer;
|
||||
size_t size;
|
||||
|
||||
if (file == NULL)
|
||||
fatal_error("failed to open file '%s' for reading: %s", filename, strerror(errno));
|
||||
if (file == NULL)
|
||||
fatal_error("failed to open file '%s' for reading: %s", filename, strerror(errno));
|
||||
|
||||
// get size
|
||||
fseek(file, 0, SEEK_END);
|
||||
size = ftell(file);
|
||||
// get size
|
||||
fseek(file, 0, SEEK_END);
|
||||
size = ftell(file);
|
||||
|
||||
// allocate buffer
|
||||
buffer = malloc(size + 1);
|
||||
// allocate buffer
|
||||
buffer = malloc(size + 1);
|
||||
if (buffer == NULL)
|
||||
fatal_error("could not allocate buffer of size %u", (uint32_t)(size + 1));
|
||||
|
||||
// read file
|
||||
fseek(file, 0, SEEK_SET);
|
||||
if (fread(buffer, size, 1, file) != 1)
|
||||
fatal_error("error reading from file '%s': %s", filename, strerror(errno));
|
||||
// read file
|
||||
fseek(file, 0, SEEK_SET);
|
||||
if (fread(buffer, size, 1, file) != 1)
|
||||
fatal_error("error reading from file '%s': %s", filename, strerror(errno));
|
||||
|
||||
// null-terminate the buffer
|
||||
buffer[size] = 0;
|
||||
// null-terminate the buffer
|
||||
buffer[size] = 0;
|
||||
|
||||
fclose(file);
|
||||
fclose(file);
|
||||
|
||||
return buffer;
|
||||
return buffer;
|
||||
}
|
||||
else
|
||||
{
|
||||
size_t size = 0;
|
||||
size_t capacity = 1024;
|
||||
uint8_t *buffer = malloc(capacity + 1);
|
||||
|
||||
if (buffer == NULL)
|
||||
fatal_error("could not allocate buffer of size %u", (uint32_t)(capacity + 1));
|
||||
|
||||
for (;;)
|
||||
{
|
||||
size += fread(buffer + size, 1, capacity - size, stdin);
|
||||
if (size == capacity)
|
||||
{
|
||||
capacity *= 2;
|
||||
buffer = realloc(buffer, capacity + 1);
|
||||
if (buffer == NULL)
|
||||
fatal_error("could not allocate buffer of size %u", (uint32_t)(capacity + 1));
|
||||
}
|
||||
else if (feof(stdin))
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
fatal_error("error reading from stdin: %s", strerror(errno));
|
||||
}
|
||||
}
|
||||
|
||||
// null-terminate the buffer
|
||||
buffer[size] = 0;
|
||||
return buffer;
|
||||
}
|
||||
}
|
||||
|
||||
static char *skip_whitespace(char *str)
|
||||
@@ -351,7 +389,7 @@ static char *convert_string(char *pos, FILE *fout, const char *inputFileName, ch
|
||||
static void convert_file(const char *infilename, const char *outfilename)
|
||||
{
|
||||
char *in = read_text_file(infilename);
|
||||
FILE *fout = fopen(outfilename, "wb");
|
||||
FILE *fout = strcmp(outfilename, "-") != 0 ? fopen(outfilename, "wb") : stdout;
|
||||
|
||||
if (fout == NULL)
|
||||
fatal_error("failed to open file '%s' for writing: %s", strerror(errno));
|
||||
@@ -436,7 +474,8 @@ static void convert_file(const char *infilename, const char *outfilename)
|
||||
|
||||
eof:
|
||||
fwrite(start, pos - start, 1, fout);
|
||||
fclose(fout);
|
||||
if (strcmp(outfilename, "-") != 0)
|
||||
fclose(fout);
|
||||
free(in);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user