huyc

导航

2012年10月26日 #

基于Linux 2.6内核ALSA架构的PCM混音demo

摘要: 一个混音例程,多声道混音成单声道,录制下了原始声音和混音之后的声音。混音之后的声音是8kHz,16bit,带符号单声道的声音。#define ALSA_PCM_NEW_HW_PARAMS_API#include <alsa/asoundlib.h>#include <alloca.h>#include <stdio.h>void mixchannel(FILE *fp, const snd_pcm_channel_area_t *areas, unsigned int chs, snd_pcm_uframes_t offset, snd_pcm_uframe 阅读全文

posted @ 2012-10-26 16:44 huyc 阅读(6022) 评论(0) 推荐(0) 编辑

长度可变的C语言宏

摘要: 在上大学的时候,对printf就有非常困惑的疑问,因为它的原型是这样的:int printf(const char *fmt, ...);现在则需要另外一个类似的东西:长度可变的宏定义以下是两种方案,clang和gcc均测试通过。CASE 1:ISO c99标准里边定义了一个预处理宏__VA_ARGS__,可以像这样来定义一个println:#define println(fmt, ...) printf(fmt"\n", __VA_ARGS__)println("%d", 1);println("%d", 2);这个宏的麻烦之处在于 阅读全文

posted @ 2012-10-26 16:28 huyc 阅读(553) 评论(0) 推荐(0) 编辑