JNIEXPORT jint JNICALL Java_com_ssb_droidsound_plugins_OpenMPTPlugin_N_1getSoundData(JNIEnv *env, jobject obj, jlong song, jshortArray sArray, jint size) { size_t samples_done = 0; openmpt_module* mod = (openmpt_module*)song; jshort *ptr = env->GetShortArrayElements(sArray, NULL); samples_done = openmpt_module_read_interleaved_stereo(mod, 44100, size/2, ptr); env->ReleaseShortArrayElements(sArray, ptr, 0); return size; }
std::int64_t MPTWrap::read(void *buf, std::int64_t bufsiz) { bufsiz /= sizeof(std::int16_t); std::size_t n; n = openmpt_module_read_interleaved_stereo(mod, rate(), bufsiz / channels(), reinterpret_cast<std::int16_t *>(buf)); return n * channels() * sizeof(std::int16_t); }