git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@509 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-10-30 01:29:45 +00:00
parent 65b09a7d8b
commit e70543cc64

View File

@@ -57,7 +57,7 @@ static void* thread_routine(void* arg){
while(!plm_has_ended(plm) && !quit){ while(!plm_has_ended(plm) && !quit){
ma_mutex_lock(&mutex); ma_mutex_lock(&mutex);
if(arrlen(frames) > 10 || paused){ if(arrlen(frames) > 1000 || paused){
ma_mutex_unlock(&mutex); ma_mutex_unlock(&mutex);
#ifdef _WIN32 #ifdef _WIN32
Sleep(1); Sleep(1);
@@ -88,7 +88,7 @@ static void data_callback(ma_device* device, void* out, const void* in, ma_uint3
memset(out, 0, sizeof(float) * frame * 2); memset(out, 0, sizeof(float) * frame * 2);
ma_mutex_lock(&mutex); ma_mutex_lock(&mutex);
while(fsz > 0 && arrlen(buffers) > 0){ while(!paused && fsz > 0 && arrlen(buffers) > 0){
int sz = 0; int sz = 0;
if(fsz > (buffers[0].size - buffers[0].seek)){ if(fsz > (buffers[0].size - buffers[0].seek)){
sz = buffers[0].size - buffers[0].seek; sz = buffers[0].size - buffers[0].seek;
@@ -115,7 +115,7 @@ static void tick(MwWidget handle, void* user, void* call){
(void)call; (void)call;
ma_mutex_lock(&mutex); ma_mutex_lock(&mutex);
if(arrlen(frames) > 0){ if(!paused && arrlen(frames) > 0){
double f = (1000.0 / wait) / plm_get_framerate(plm); double f = (1000.0 / wait) / plm_get_framerate(plm);
if(frames[0].count == 0){ if(frames[0].count == 0){
@@ -125,8 +125,8 @@ static void tick(MwWidget handle, void* user, void* call){
} }
frames[0].count++; frames[0].count++;
if(f >= 1 && frames[0].count >= (int)f + (int)a){ if(f >= 1 && frames[0].count >= (int)f + (int)a){
a += f - (int)f;
if(a > 1) a--; if(a > 1) a--;
a += f - (int)f;
free(frames[0].buffer); free(frames[0].buffer);
arrdel(frames, 0); arrdel(frames, 0);
}else if(f < 1){ }else if(f < 1){