📄 org_tritonus_lowlevel_alsa_alsapcm.c
字号:
/* * org_tritonus_lowlevel_alsa_AlsaPcm.c *//* * Copyright (c) 2000 - 2001 by Matthias Pfisterer <Matthias.Pfisterer@gmx.de> * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as published * by the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * */#include "common.h"#include "org_tritonus_lowlevel_alsa_AlsaPcm.h"// referring to methods in ..AlsaPcm_*.csnd_pcm_hw_params_t*getHWParamsNativeHandle(JNIEnv *env, jobject obj);snd_pcm_format_mask_t*getFormatMaskNativeHandle(JNIEnv *env, jobject obj);snd_pcm_sw_params_t*getSWParamsNativeHandle(JNIEnv *env, jobject obj);HandleFieldHandler(snd_pcm_t*)/* * Class: org_tritonus_lowlevel_alsa_AlsaPcm * Method: open * Signature: (Ljava/lang/String;II)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_open(JNIEnv *env, jobject obj, jstring strPcmName, jint nDirection, jint nMode){ const char* name = NULL; snd_pcm_t* handle; int nReturn; if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_open(): begin\n"); } name = (*env)->GetStringUTFChars(env, strPcmName, NULL); if (name == NULL) { throwRuntimeException(env, "cannot get characters from string argument"); } if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_open(): name: %s\n", name); fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_open(): direction: %d\n", (int) nDirection); fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_open(): mode: %d\n", (int) nMode); } nReturn = snd_pcm_open(&handle, name, (snd_pcm_stream_t) nDirection, nMode); (*env)->ReleaseStringUTFChars(env, strPcmName, name); if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_open(): handle: %p\n", handle); } if (nReturn >= 0) { setHandle(env, obj, handle); } else { if (debug_flag) { fprintf(debug_file, "org_tritonus_lowlevel_alsa_AlsaPcm.open(): returns %d\n", nReturn); } } if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_open(): end\n"); } return nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaPcm * Method: close * Signature: ()I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_close(JNIEnv *env, jobject obj){ snd_pcm_t* handle; int nReturn; if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_close(): begin\n"); } handle = getHandle(env, obj); nReturn = snd_pcm_close(handle); if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_close(): end\n"); } return nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaPcm * Method: getAnyHWParams * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$HWParams;)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_getAnyHWParams(JNIEnv *env, jobject obj, jobject objHwParams){ snd_pcm_t* handle; snd_pcm_hw_params_t* hwParams; int nReturn; if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_getAnyHWParams(): begin\n"); } handle = getHandle(env, obj); hwParams = getHWParamsNativeHandle(env, objHwParams); if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_getAnyHWParams(): hwparams handle: %p\n", hwParams); } nReturn = snd_pcm_hw_params_any(handle, hwParams); if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_getAnyHWParams(): snd_pcm_hw_params_any() returns: %d\n", nReturn); } if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_getAnyHWParams(): end\n"); } return nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaPcm * Method: setHWParamsAccess * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$HWParams;I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsAccess(JNIEnv *env, jobject obj, jobject objHwParams, jint nAccess){ snd_pcm_t* handle; snd_pcm_hw_params_t* hwParams; int nReturn; if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsAccess(): begin\n"); } handle = getHandle(env, obj); hwParams = getHWParamsNativeHandle(env, objHwParams); nReturn = snd_pcm_hw_params_set_access(handle, hwParams, (snd_pcm_access_t) nAccess); if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsAccess(): end\n"); } return nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaPcm * Method: setHWParamsFormat * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$HWParams;I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsFormat(JNIEnv *env, jobject obj, jobject objHwParams, jint nFormat){ snd_pcm_t* handle; snd_pcm_hw_params_t* hwParams; int nReturn; if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsFormat(): begin\n"); } handle = getHandle(env, obj); hwParams = getHWParamsNativeHandle(env, objHwParams); nReturn = snd_pcm_hw_params_set_format(handle, hwParams, (snd_pcm_format_t) nFormat); if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsFormat(): end\n"); } return nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaPcm * Method: setHWParamsFormatMask * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$HWParams;Lorg/tritonus/lowlevel/alsa/AlsaPcm$HWParams$FormatMask;)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsFormatMask(JNIEnv *env, jobject obj, jobject objHwParams, jobject objFormatMask){ snd_pcm_t* handle; snd_pcm_hw_params_t* hwParams; snd_pcm_format_mask_t* formatMask; int nReturn; if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsFormatMask(): begin\n"); } handle = getHandle(env, obj); hwParams = getHWParamsNativeHandle(env, objHwParams); formatMask = getFormatMaskNativeHandle(env, objFormatMask); nReturn = snd_pcm_hw_params_set_format_mask(handle, hwParams, formatMask); if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsFormatMask(): end\n"); } return nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaPcm * Method: setHWParamsChannels * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$HWParams;I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsChannels(JNIEnv *env, jobject obj, jobject objHwParams, jint nChannels){ snd_pcm_t* handle; snd_pcm_hw_params_t* hwParams; int nReturn; if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsChannels(): begin\n"); } handle = getHandle(env, obj); hwParams = getHWParamsNativeHandle(env, objHwParams); nReturn = snd_pcm_hw_params_set_channels(handle, hwParams, nChannels); if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsChannels(): end\n"); } return nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaPcm * Method: setHWParamsRateNear * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$HWParams;I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsRateNear(JNIEnv *env, jobject obj, jobject objHwParams, jint nRate){ snd_pcm_t* handle; snd_pcm_hw_params_t* hwParams; int nReturn; if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsRateNear(): begin\n"); } handle = getHandle(env, obj); hwParams = getHWParamsNativeHandle(env, objHwParams); nReturn = snd_pcm_hw_params_set_rate_near(handle, hwParams, (unsigned int*)&nRate, 0); if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsRateNear(): end\n"); } return nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaPcm * Method: setHWParamsBufferTimeNear * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$HWParams;I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsBufferTimeNear(JNIEnv *env, jobject obj, jobject objHwParams, jint nBufferTime){ snd_pcm_t* handle; snd_pcm_hw_params_t* hwParams; int nReturn; if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsBufferTimeNear(): begin\n"); } handle = getHandle(env, obj); hwParams = getHWParamsNativeHandle(env, objHwParams); nReturn = snd_pcm_hw_params_set_buffer_time_near(handle, hwParams, (unsigned int*) &nBufferTime, 0); if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsBufferTimeNear(): end\n"); } return nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaPcm * Method: setHWParamsPeriodTimeNear * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$HWParams;I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsPeriodTimeNear(JNIEnv *env, jobject obj, jobject objHwParams, jint nPeriodTime){ snd_pcm_t* handle; snd_pcm_hw_params_t* hwParams; int nReturn; if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsPeriodTimeNear(): begin\n"); } handle = getHandle(env, obj); hwParams = getHWParamsNativeHandle(env, objHwParams); nReturn = snd_pcm_hw_params_set_period_time_near(handle, hwParams, (unsigned int*) &nPeriodTime, 0); if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParamsPeriodTimeNear(): end\n"); } return nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaPcm * Method: setHWParams * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$HWParams;)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParams(JNIEnv *env, jobject obj, jobject objHwParams){ snd_pcm_t* handle; snd_pcm_hw_params_t* hwParams; int nReturn; if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParams(): begin\n"); } handle = getHandle(env, obj); hwParams = getHWParamsNativeHandle(env, objHwParams); nReturn = snd_pcm_hw_params(handle, hwParams); if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setHWParams(): end\n"); } return nReturn;}/* * Class: org_tritonus_lowlevel_alsa_AlsaPcm * Method: getHWParamsPeriodSize * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$HWParams;)I *//* JNIEXPORT jint JNICALL *//* Java_org_tritonus_lowlevel_alsa_AlsaPcm_getHWParamsPeriodSize *//* (JNIEnv *env, jobject obj, jobject objHwParams) *//* { *//* snd_pcm_t* handle; *//* snd_pcm_hw_params_t* hwParams; *//* int nReturn; *//* handle = getHandle(env, obj); *//* hwParams = getHWParamsNativeHandle(env, objHwParams); *//* nReturn = snd_pcm_hw_params_get_period_size(handle, hwParams, NULL); *//* return nReturn; *//* } *//* * Class: org_tritonus_lowlevel_alsa_AlsaPcm * Method: getHWParamsBufferSize * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$HWParams;)I *//* JNIEXPORT jint JNICALL *//* Java_org_tritonus_lowlevel_alsa_AlsaPcm_getHWParamsBufferSize *//* (JNIEnv *env, jobject obj, jobject objHwParams) *//* { *//* snd_pcm_t* handle; *//* snd_pcm_hw_params_t* hwParams; *//* int nReturn; *//* handle = getHandle(env, obj); *//* hwParams = getHWParamsNativeHandle(env, objHwParams); *//* nReturn = snd_pcm_hw_params_get_buffer_size(handle, hwParams); *//* return nReturn; *//* } *//* * Class: org_tritonus_lowlevel_alsa_AlsaPcm * Method: getSWParams * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$SWParams;)I */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -