예제 #1
0
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;
}
예제 #2
0
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);
}