// init mididriver jboolean Java_org_billthefarmer_accordion_MidiDriver_init(JNIEnv *env, jobject obj) { EAS_RESULT result; if (result = initEAS() != EAS_SUCCESS) { shutdownEAS(); LOG_E(LOG_TAG, "Init EAS failed: %ld", result); return JNI_FALSE; } // LOG_D(LOG_TAG, "Init EAS success, buffer: %ld", bufferSize); // allocate buffer in bytes buffer = (EAS_PCM *)malloc(bufferSize * sizeof(EAS_PCM)); if (buffer == NULL) { shutdownEAS(); LOG_E(LOG_TAG, "Allocate buffer failed"); return JNI_FALSE; } // create the engine and output mix objects if (result = createEngine() != SL_RESULT_SUCCESS) { shutdownEAS(); shutdownAudio(); free(buffer); buffer = NULL; LOG_E(LOG_TAG, "Create engine failed: %ld", result); return JNI_FALSE; } // create buffer queue audio player if (result = createBufferQueueAudioPlayer() != SL_RESULT_SUCCESS) { shutdownEAS(); shutdownAudio(); free(buffer); buffer = NULL; LOG_E(LOG_TAG, "Create buffer queue audio player failed: %ld", result); return JNI_FALSE; } // call the callback to start playing bqPlayerCallback(bqPlayerBufferQueue, NULL); return JNI_TRUE; }
// shutdown EAS midi jboolean Java_org_billthefarmer_accordion_MidiDriver_shutdown(JNIEnv *env, jobject obj) { shutdownAudio(); if (buffer != NULL) free(buffer); buffer = NULL; shutdownEAS(); return JNI_TRUE; }
// shutdown EAS midi jboolean Java_org_billthefarmer_mididriver_MidiDriver_shutdown(JNIEnv *env, jobject obj) { EAS_RESULT result; shutdownAudio(); if (buffer != NULL) free(buffer); buffer = NULL; shutdownEAS(); return JNI_TRUE; }