📄 org_tritonus_lowlevel_alsa_alsaseq.c
字号:
else { nReturn = snd_seq_get_port_info(seq, nPort, portInfo); } if (nReturn < 0) { throwRuntimeException(env, "snd_seq_get_[any]_port_info() failed"); } if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_getPortInfo(): end\n"); } return (jint) nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaSeq * Method: getNextPort * Signature: (II[I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaSeq_getNextPort(JNIEnv* env, jobject obj, jint nClient, jint nPort, jintArray anValues){ snd_seq_t* seq; snd_seq_port_info_t* portInfo; int nReturn; if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_getNextPort(): begin\n"); } seq = getHandle(env, obj); snd_seq_port_info_alloca(&portInfo); snd_seq_port_info_set_client(portInfo, nClient); snd_seq_port_info_set_port(portInfo, nPort); nReturn = snd_seq_query_next_port(seq, portInfo); if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_getNextPort(): snd_seq_query_next_port() returns: %d\n", nReturn); } if (nReturn < 0) { // -2 (no such file or directory): returned when no more port is available if (nReturn != -2) { throwRuntimeException(env, "snd_seq_query_next_port() failed"); } } else { jint pnValues[2]; checkArrayLength(env, anValues, 2); pnValues[0] = snd_seq_port_info_get_client(portInfo); pnValues[1] = snd_seq_port_info_get_port(portInfo); (*env)->SetIntArrayRegion(env, anValues, 0, 2, pnValues); } if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_getNextPort(): end\n"); } return (jint) nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaSeq * Method: createPort * Signature: (Ljava/lang/String;IIIIII)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaSeq_createPort(JNIEnv* env, jobject obj, jstring strName, jint nCapabilities, jint nGroupPermissions, jint nType, jint nMidiChannels, jint nMidiVoices, jint nSynthVoices){ snd_seq_t* seq; snd_seq_port_info_t* portInfo; const char* name; int nReturn; int nPort; if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_createPort(): begin\n"); } snd_seq_port_info_alloca(&portInfo); seq = getHandle(env, obj); // TODO: check if another action is required instead // memset(&portInfo, 0, sizeof(portInfo)); name = (*env)->GetStringUTFChars(env, strName, NULL); if (name == NULL) { throwRuntimeException(env, "GetStringUTFChars() failed"); } snd_seq_port_info_set_name(portInfo, name); (*env)->ReleaseStringUTFChars(env, strName, name); snd_seq_port_info_set_capability(portInfo, nCapabilities); snd_seq_port_info_set_port(portInfo, nGroupPermissions); snd_seq_port_info_set_type(portInfo, nType); snd_seq_port_info_set_midi_channels(portInfo, nMidiChannels); snd_seq_port_info_set_midi_voices(portInfo, nMidiVoices); snd_seq_port_info_set_synth_voices(portInfo, nSynthVoices); //portInfo.write_use = 1; // R/O attrs? //portInfo.read_use = 1; // errno = 0; nReturn = snd_seq_create_port(seq, portInfo); if (nReturn < 0) { throwRuntimeException(env, "snd_seq_create_port() failed"); } nPort = snd_seq_port_info_get_port(portInfo); if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_createPort(): end\n"); } return (jint) nPort;}/* * Class: org_tritonus_lowlevel_alsa_AlsaSeq * Method: allocQueue * Signature: ()I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaSeq_allocQueue(JNIEnv* env, jobject obj){ snd_seq_t* seq; int nQueue; if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_allocQueue(): begin\n"); } seq = getHandle(env, obj); nQueue = snd_seq_alloc_queue(seq); if (nQueue < 0) { throwRuntimeException(env, "snd_seq_alloc_queue() failed"); }// snd_seq_queue_timer_t* timer;// const snd_timer_id_t* id;// snd_seq_queue_timer_alloca(&timer);// snd_seq_get_queue_timer(seq, nQueue, timer);// id = snd_seq_queue_timer_get_id(timer);// if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_allocQueue(): timer resolution: %d\n", snd_seq_queue_timer_get_resolution(timer)); } if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_allocQueue(): end\n"); } return (jint) nQueue;}/* * Class: org_tritonus_lowlevel_alsa_AlsaSeq * Method: freeQueue * Signature: (I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaSeq_freeQueue(JNIEnv* env, jobject obj, jint nQueue){ snd_seq_t* seq; int nReturn; if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_freeQueue(): begin\n"); } seq = getHandle(env, obj); nReturn = snd_seq_free_queue(seq, nQueue); if (nReturn < 0) { throwRuntimeException(env, "snd_seq_free_queue() failed"); } if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_freeQueue(): end\n"); } return (jint) nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaSeq * Method: getQueueUsage * Signature: (I)Z */JNIEXPORT jboolean JNICALLJava_org_tritonus_lowlevel_alsa_AlsaSeq_getQueueUsage(JNIEnv* env, jobject obj, jint nQueue){ snd_seq_t* seq; int nReturn; if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_getQueueUsage(): begin\n"); } seq = getHandle(env, obj); nReturn = snd_seq_get_queue_usage(seq, nQueue); if (nReturn < 0) { throwRuntimeException(env, "snd_seq_get_queue_usage() failed"); } if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_getQueueUsage(): end\n"); } return (jboolean) nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaSeq * Method: setQueueUsage * Signature: (IZ)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaSeq_setQueueUsage(JNIEnv* env, jobject obj, jint nQueue, jboolean bUsageAllowed){ snd_seq_t* seq; int nReturn; if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_setQueueUsage(): begin\n"); } seq = getHandle(env, obj); nReturn = snd_seq_set_queue_usage(seq, nQueue, bUsageAllowed); if (nReturn < 0) { throwRuntimeException(env, "snd_seq_set_queue_usage() failed"); } if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_setQueueUsage(): end\n"); } return (jint) nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaSeq * Method: getQueueInfo * Signature: (ILorg/tritonus/lowlevel/alsa/AlsaSeq$QueueInfo;)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaSeq_getQueueInfo(JNIEnv* env, jobject obj, jint nQueue, jobject queueInfoObj){ snd_seq_t* seq; snd_seq_queue_info_t* queueInfo; int nReturn; if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_getQueueInfo(): begin\n"); } seq = getHandle(env, obj); queueInfo = getQueueInfoNativeHandle(env, queueInfoObj); nReturn = snd_seq_get_queue_info(seq, nQueue, queueInfo); if (nReturn < 0) { throwRuntimeException(env, "snd_seq_get_queue_info() failed"); } if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_getQueueInfo(): end\n"); } return (jint) nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaSeq * Method: setQueueInfo * Signature: (ILorg/tritonus/lowlevel/alsa/AlsaSeq$QueueInfo;)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaSeq_setQueueInfo(JNIEnv* env, jobject obj, jint nQueue, jobject queueInfoObj){ snd_seq_t* seq; snd_seq_queue_info_t* queueInfo; int nReturn; if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_setQueueInfo(): begin\n"); } seq = getHandle(env, obj); queueInfo = getQueueInfoNativeHandle(env, queueInfoObj); nReturn = snd_seq_set_queue_info(seq, nQueue, queueInfo); if (nReturn < 0) { throwRuntimeException(env, "snd_seq_set_queue_info() failed"); } if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_setQueueInfo(): end\n"); } return (jint) nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaSeq * Method: getQueueStatus * Signature: (ILorg/tritonus/lowlevel/alsa/AlsaSeq$QueueStatus;)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaSeq_getQueueStatus(JNIEnv* env, jobject obj, jint nQueue, jobject queueStatusObj){ snd_seq_t* seq; snd_seq_queue_status_t* queueStatus; int nReturn; if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_getQueueStatus(): begin\n"); } seq = getHandle(env, obj); queueStatus = getQueueStatusNativeHandle(env, queueStatusObj); nReturn = snd_seq_get_queue_status(seq, nQueue, queueStatus); if (nReturn < 0) { throwRuntimeException(env, "snd_seq_get_queue_status() failed"); } if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_getQueueStatus(): end\n"); } return (jint) nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaSeq * Method: getQueueTempo * Signature: (ILorg/tritonus/lowlevel/alsa/AlsaSeq$QueueTempo;)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaSeq_getQueueTempo(JNIEnv* env, jobject obj, jint nQueue, jobject queueTempoObj){ snd_seq_t* seq; snd_seq_queue_tempo_t* pQueueTempo; int nReturn; if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_getQueueTempo(): begin\n"); } seq = getHandle(env, obj); pQueueTempo = getQueueTempoNativeHandle(env, queueTempoObj); nReturn = snd_seq_get_queue_tempo(seq, nQueue, pQueueTempo); if (nReturn < 0) { throwRuntimeException(env, "snd_seq_get_queue_tempo() failed"); } if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_getQueueTempo(): end\n"); } return (jint) nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaSeq * Method: setQueueTempo * Signature: (ILorg/tritonus/lowlevel/alsa/AlsaSeq$QueueTempo;)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaSeq_setQueueTempo(JNIEnv* env, jobject obj, jint nQueue, jobject queueTempoObj){ snd_seq_t* seq; snd_seq_queue_tempo_t* pQueueTempo; int nReturn; if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_setQueueTempo(): begin\n"); } seq = getHandle(env, obj); pQueueTempo = getQueueTempoNativeHandle(env, queueTempoObj); //fprintf(debug_file, "pQueueTempo: %p\n", pQueueTempo); fflush(debug_file); nReturn = snd_seq_set_queue_tempo(seq, nQueue, pQueueTempo); if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_setQueueTempo(): snd_seq_set_queue_tempo() returns %d\n", nReturn); } if (nReturn < 0) { //throwRuntimeException(env, "snd_seq_set_queue_tempo() failed"); throwRuntimeException(env, snd_strerror(nReturn)); } if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_setQueueTempo(): end\n"); } return (jint) nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaSeq * Method: getQueueTimer * Signature: (ILorg/tritonus/lowlevel/alsa/AlsaSeq$QueueTimer;)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaSeq_getQueueTimer(JNIEnv* env, jobject obj, jint nQueue, jobject queueTimerObj UNUSED){ snd_seq_t* seq; snd_seq_queue_timer_t* pQueueTimer; int nReturn; if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_getQueueTimer(): begin\n"); } seq = getHandle(env, obj); // TODO: implement timer API, then re-enable pQueueTimer = NULL; // getQueueTimerNativeHandle(env, queueTimerObj); nReturn = snd_seq_get_queue_timer(seq, nQueue, pQueueTimer); if (nReturn < 0) { throwRuntimeException(env, "snd_seq_get_queue_timer() failed"); } if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_getQueueTimer(): end\n"); } return (jint) nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaSeq * Method: setQueueTimer * Signature: (ILorg/tritonus/lowlevel/alsa/AlsaSeq$QueueTimer;)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaSeq_setQueueTimer(JNIEnv* env, jobject obj, jint nQueue, jobject queueTimerObj UNUSED){ snd_seq_t* seq; snd_seq_queue_timer_t* pQueueTimer; int nReturn; if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_setQueueTimer(): begin\n"); } seq = getHandle(env, obj); // TODO: pQueueTimer = NULL; // getQueueTimerNativeHandle(env, queueTimerObj); nReturn = snd_seq_set_queue_timer(seq, nQueue, pQueueTimer); if (nReturn < 0) { throwRuntimeException(env, "snd_seq_set_queue_timer() failed"); } if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_setQueueTimer(): end\n"); } return (jint) nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaSeq * Method: getPortSubscription * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaSeq$PortSubscribe;)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaSeq_getPortSubscription(JNIEnv* env, jobject obj, jobject portSubscribeObj){ snd_seq_t* seq; snd_seq_port_subscribe_t* pPortSubscribe; int nReturn; if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_getPortSubscription(): begin\n"); } seq = getHandle(env, obj); pPortSubscribe = getPortSubscribeNativeHandle(env, portSubscribeObj); nReturn = snd_seq_get_port_subscription(seq, pPortSubscribe); if (nReturn < 0) { throwRuntimeException(env, "snd_seq_get_port_subscription() failed"); } if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaSeq_getPortSubscription(): end\n"); } return (jint) nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaSeq * Method: subscribePort * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaSeq$PortSubscribe;)I */JNIEXPORT jint JNICALL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -