⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 org_tritonus_lowlevel_alsa_alsapcm.c

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 C
📖 第 1 页 / 共 2 页
字号:
/* *	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 + -