Refresh 11

This commit is contained in:
n64
2020-07-04 11:18:55 -04:00
parent 05c7d7031c
commit 9214dddabc
47 changed files with 489 additions and 290 deletions

View File

@@ -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;

View File

@@ -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);
}