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

📄 org_tritonus_lowlevel_alsa_alsapcm.c

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 C
📖 第 1 页 / 共 2 页
字号:
JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_getSWParams(JNIEnv *env, jobject obj, jobject objSwParams){	snd_pcm_t*		handle;	snd_pcm_sw_params_t*	swParams;	int			nReturn;	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_getSWParams(): begin\n"); }	handle = getHandle(env, obj);	swParams = getSWParamsNativeHandle(env, objSwParams);	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_getSWParams(): swparams handle: %p\n", swParams); }	nReturn = snd_pcm_sw_params_current(handle, swParams);	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_getSWParams(): snd_pcm_sw_params_any() returns: %d\n", nReturn); }	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_getSWParams(): end\n"); }	return nReturn;}/* * Class:     org_tritonus_lowlevel_alsa_AlsaPcm * Method:    setSWParamsStartMode * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$SWParams;I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsStartMode(JNIEnv *env, jobject obj, jobject objSwParams, jint nStartMode){	snd_pcm_t*		handle;	snd_pcm_sw_params_t*	swParams;	int			nReturn;	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsStartMode(): begin\n"); }	handle = getHandle(env, obj);	swParams = getSWParamsNativeHandle(env, objSwParams);	nReturn = snd_pcm_sw_params_set_start_mode(handle, swParams, (snd_pcm_start_t) nStartMode);	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsStartMode(): end\n"); }	return nReturn;}/* * Class:     org_tritonus_lowlevel_alsa_AlsaPcm * Method:    setSWParamsXrunMode * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$SWParams;I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsXrunMode(JNIEnv *env, jobject obj, jobject objSwParams, jint nXrunMode){	snd_pcm_t*		handle;	snd_pcm_sw_params_t*	swParams;	int			nReturn;	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsXrunMode(): begin\n"); }	handle = getHandle(env, obj);	swParams = getSWParamsNativeHandle(env, objSwParams);	nReturn = snd_pcm_sw_params_set_xrun_mode(handle, swParams, (snd_pcm_xrun_t) nXrunMode);	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsXrunMode(): end\n"); }	return nReturn;}/* * Class:     org_tritonus_lowlevel_alsa_AlsaPcm * Method:    setSWParamsTStampMode * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$SWParams;I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsTStampMode(JNIEnv *env, jobject obj, jobject objSwParams, jint nTStampMode){	snd_pcm_t*		handle;	snd_pcm_sw_params_t*	swParams;	int			nReturn;	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsTStampMode(): begin\n"); }	handle = getHandle(env, obj);	swParams = getSWParamsNativeHandle(env, objSwParams);	nReturn = snd_pcm_sw_params_set_tstamp_mode(handle, swParams, (snd_pcm_tstamp_t) nTStampMode);	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsTStampMode(): end\n"); }	return nReturn;}/* * Class:     org_tritonus_lowlevel_alsa_AlsaPcm * Method:    setSWParamsSleepMin * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$SWParams;I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsSleepMin(JNIEnv *env, jobject obj, jobject objSwParams, jint nSleepMin){	snd_pcm_t*		handle;	snd_pcm_sw_params_t*	swParams;	int			nReturn;	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsSleepMin(): begin\n"); }	handle = getHandle(env, obj);	swParams = getSWParamsNativeHandle(env, objSwParams);	nReturn = snd_pcm_sw_params_set_sleep_min(handle, swParams, nSleepMin);	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsSleepMin(): end\n"); }	return nReturn;}/* * Class:     org_tritonus_lowlevel_alsa_AlsaPcm * Method:    setSWParamsAvailMin * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$SWParams;I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsAvailMin(JNIEnv *env, jobject obj, jobject objSwParams, jint nAvailMin){	snd_pcm_t*		handle;	snd_pcm_sw_params_t*	swParams;	int			nReturn;	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsAvailMin(): begin\n"); }	handle = getHandle(env, obj);	swParams = getSWParamsNativeHandle(env, objSwParams);	nReturn = snd_pcm_sw_params_set_avail_min(handle, swParams, nAvailMin);	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsAvailMin(): end\n"); }	return nReturn;}/* * Class:     org_tritonus_lowlevel_alsa_AlsaPcm * Method:    setSWParamsXferAlign * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$SWParams;I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsXferAlign(JNIEnv *env, jobject obj, jobject objSwParams, jint nXferAlign){	snd_pcm_t*		handle;	snd_pcm_sw_params_t*	swParams;	int			nReturn;	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsXferAlign(): begin\n"); }	handle = getHandle(env, obj);	swParams = getSWParamsNativeHandle(env, objSwParams);	nReturn = snd_pcm_sw_params_set_xfer_align(handle, swParams, nXferAlign);	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsXferAlign(): end\n"); }	return nReturn;}/* * Class:     org_tritonus_lowlevel_alsa_AlsaPcm * Method:    setSWParamsStartThreshold * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$SWParams;I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsStartThreshold(JNIEnv *env, jobject obj, jobject objSwParams, jint nStartThreshold){	snd_pcm_t*		handle;	snd_pcm_sw_params_t*	swParams;	int			nReturn;	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsStartThreshold(): begin\n"); }	handle = getHandle(env, obj);	swParams = getSWParamsNativeHandle(env, objSwParams);	nReturn = snd_pcm_sw_params_set_start_threshold(handle, swParams, nStartThreshold);	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsStartThreshold(): end\n"); }	return nReturn;}/* * Class:     org_tritonus_lowlevel_alsa_AlsaPcm * Method:    setSWParamsStopThreshold * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$SWParams;I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsStopThreshold(JNIEnv *env, jobject obj, jobject objSwParams, jint nStopThreshold){	snd_pcm_t*		handle;	snd_pcm_sw_params_t*	swParams;	int			nReturn;	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsStopThreshold(): begin\n"); }	handle = getHandle(env, obj);	swParams = getSWParamsNativeHandle(env, objSwParams);	nReturn = snd_pcm_sw_params_set_stop_threshold(handle, swParams, nStopThreshold);	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsStopThreshold(): end\n"); }	return nReturn;}/* * Class:     org_tritonus_lowlevel_alsa_AlsaPcm * Method:    setSWParamsSilenceThreshold * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$SWParams;I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsSilenceThreshold(JNIEnv *env, jobject obj, jobject objSwParams, jint nSilenceThreshold){	snd_pcm_t*		handle;	snd_pcm_sw_params_t*	swParams;	int			nReturn;	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsSilenceThreshold(): begin\n"); }	handle = getHandle(env, obj);	swParams = getSWParamsNativeHandle(env, objSwParams);	nReturn = snd_pcm_sw_params_set_silence_threshold(handle, swParams, nSilenceThreshold);	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsSilenceThreshold(): end\n"); }	return nReturn;}/* * Class:     org_tritonus_lowlevel_alsa_AlsaPcm * Method:    setSWParamsSilenceSize * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$SWParams;I)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsSilenceSize(JNIEnv *env, jobject obj, jobject objSwParams, jint nSilenceSize){	snd_pcm_t*		handle;	snd_pcm_sw_params_t*	swParams;	int			nReturn;	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsSilenceSize(): begin\n"); }	handle = getHandle(env, obj);	swParams = getSWParamsNativeHandle(env, objSwParams);	nReturn = snd_pcm_sw_params_set_silence_size(handle, swParams, nSilenceSize);	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParamsSilenceSize(): end\n"); }	return nReturn;}/* * Class:     org_tritonus_lowlevel_alsa_AlsaPcm * Method:    setSWParams * Signature: (Lorg/tritonus/lowlevel/alsa/AlsaPcm$SWParams;)I */JNIEXPORT jint JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParams(JNIEnv *env, jobject obj, jobject objSwParams){	snd_pcm_t*		handle;	snd_pcm_sw_params_t*	swParams;	int			nReturn;	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParams(): begin\n"); }	handle = getHandle(env, obj);	swParams = getSWParamsNativeHandle(env, objSwParams);	nReturn = snd_pcm_sw_params(handle, swParams);	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_setSWParams(): end\n"); }	return nReturn;}/* * Class:     org_tritonus_lowlevel_alsa_AlsaPcm * Method:    writei * Signature: ([BJJ)J */JNIEXPORT jlong JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_writei(JNIEnv *env, jobject obj, jbyteArray abData, jlong lOffset, jlong lFrameCount){	snd_pcm_t*	handle;	signed char*	data;	snd_pcm_sframes_t	lWritten;	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_writei(): begin\n"); }	handle = getHandle(env, obj);	data = (*env)->GetByteArrayElements(env, abData, NULL);	if (data == NULL)	{ 		throwRuntimeException(env, "GetByteArrayElements() failed");	}	if (debug_flag) { printf("Java_org_tritonus_lowlevel_alsa_AlsaPcm_writei(): trying to write (frames): %lld\n", lFrameCount); }	lWritten = snd_pcm_writei(handle, data + lOffset, lFrameCount);	if (debug_flag) { printf("Java_org_tritonus_lowlevel_alsa_AlsaPcm_writei(): Written: %ld\n", lWritten); }	// we can do a JNI_ABORT because we know the data wasn't altered.	// This may improve performance (no copying back).	(*env)->ReleaseByteArrayElements(env, abData, data, JNI_ABORT);	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_writei(): end\n"); }	return lWritten;}/* * Class:     org_tritonus_lowlevel_alsa_AlsaPcm * Method:    readi * Signature: ([BJJ)J */JNIEXPORT jlong JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_readi(JNIEnv *env, jobject obj, jbyteArray abData, jlong lOffset, jlong lFrameCount){	snd_pcm_t*		handle;	signed char*		data;	snd_pcm_sframes_t	lRead;	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_readi(): begin\n"); }	handle = getHandle(env, obj);	data = (*env)->GetByteArrayElements(env, abData, NULL);	printf("native array: %p\n", data);	if (data == NULL)	{ 		throwRuntimeException(env, "GetByteArrayElements() failed");	}	if (debug_flag) { printf("Java_org_tritonus_lowlevel_alsa_AlsaPcm_readi(): trying to read (frames): %lld\n", lFrameCount); }	// To the ALSA method, frame count means number of complete PCM frames.	// Frame: sample data vector for all channels. For 16 Bit stereo data, one frame has a length of four bytes.	lRead = snd_pcm_readi(handle, data + lOffset, lFrameCount);	if (debug_flag) { printf("Java_org_tritonus_lowlevel_alsa_AlsaPcm_readi(): Read: %ld\n", lRead); }	// printf("1\n");	(*env)->ReleaseByteArrayElements(env, abData, data, 0);	// printf("2\n");	if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaPcm_readi(): end\n"); }	return lRead;}/* * Class:     org_tritonus_lowlevel_alsa_AlsaPcm * Method:    setTrace * Signature: (Z)V */JNIEXPORT void JNICALLJava_org_tritonus_lowlevel_alsa_AlsaPcm_setTrace(JNIEnv* env UNUSED, jclass cls UNUSED, jboolean bTrace){	debug_flag = bTrace;	debug_file = stderr;}/*** org_tritonus_lowlevel_alsa_AlsaPcm.c ***/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -