jint Java_de_illogical_modo_GmeDecoder_gmeIsStereoFormat(JNIEnv* env, jclass clazz, jint track) { if (emu == NULL) { return -1; } if (gme_type(emu) == gme_nsf_type) return 0; if (gme_type(emu) == gme_nsfe_type) return 0; if (gme_type(emu) == gme_kss_type) return 0; return 1; }
int crPlayerSetTrack(void *context, int track) { gmeContext *gme = (gmeContext*)context; gme_err_t status = NULL; int trueTrack; fileEntry *entry; /* initialize the engine */ if (gme->isGameMusicArchive) { /* when it's time to start a track, it's always going to be * track 0 (first and only) of a single-song file */ trueTrack = 0; /* if a file is already being played, free it first */ if (gme->emu) { gme_delete(gme->emu); gme->emu = NULL; } entry = &gme->entries[track]; status = gme_open_data(gme->dataBuffer + entry->offset, entry->size, &gme->emu, gme->sampleRate); if (status) return 0; } else { trueTrack = track; /* if the player isn't already open, do the initialization */ if (!gme->emu) { status = gme_open_data(gme->dataBuffer, gme->dataBufferSize, &gme->emu, gme->sampleRate); if (status) return 0; } } /* set the track */ status = gme_start_track(gme->emu, trueTrack); if (!status) { gme_type_t type = gme_type(gme->emu); gme->voiceCount = gme_voice_count(gme->emu); /* return either mono or stereo depending on the file type */ if ((type == gme_gbs_type) || (type == gme_spc_type) || (type == gme_vgm_type)) return 2; /* stereo */ else return 1; /* mono */ } else { gme_delete(gme->emu); gme->emu = NULL; return 0; } }
QString GME::name() const { return gme_type_system(gme_type(m_gme)); }