|
首页
基础模块
Windows R3
Windows R0
Linux R3
Linux R0
专项分支
WIKI快查
帐号登录
QQ注册或登录
ASIO
+
-
ASIO 简介
ASIO 状态机
ASIO 函数功能介绍
ASIO 应用层函数分类大全
ASIO 应用层C++类声明
Windows下注册ASIO
ASIO 应用层工程组成
ASIO asiosample.dll注册及注册表信息变化
ASIO 示例代码调试准备
ASIO hostsample工程分析
ASIO 驱动加载loadAsioDriver
ASIO 初始化函数ASIOInit
ASIO 获取音频参数init_asio_static_data函数
ASIO 创建数据缓冲区create_asio_buffers及通道依赖获取
timeSetEvent定时器
Windows内核线程休眠KeSleep函数
Windows内核获取当前系统时间
ASIO asiosample.dll注册及注册表信息变化
ASIO hostsample工程分析
ASIO 示例代码调试准备
2022-01-29
142
0
您好,该文仅对登录用户可见,请
登录访问!
¥打赏
随手分享,手有余香
ASIO asiosample.dll注册及注册表信息变化
ASIO hostsample工程分析
0 篇笔记
写笔记
ASIO
简介
ASIO
是Audio Stream I/O的简称。
ASIO
主要用于对希望在个人电脑音频设备相对于系统的音频设备实现高效音频处理、高数据吞吐量,音频硬件端的同步、低延迟和可扩展性等方面的性能改善。
ASIO
比较灵活,音频接口不需要绑定到任何固定数量的输入和输出通道(当然,此数量受计算机系统本身的处理......
ASIO
状态机
主机应用程序加载设备的
ASIO
驱动程序,其时序状态机如下图:LOADED(加载驱动程序):应用程序加载
ASIO
驱动程序。Initialized(初始化):驱动程序接收应用程序控制查询,不过设备不必要在此时创建。Prepared(准备好):收发音频数据的缓冲区已经被分配,并且设备准备工作。Runn......
ASIO
函数功能介绍
主机应用查询设备驱动
ASIO
API为主机应用程序和驱动程序提供多个查询功能。驱动程序初始化后,应用程序将查询以下全部或部分功能:
ASIO
GetChannels()查询可用音频通道的数量
ASIO
GetBufferSize()获取支持的音频缓冲区大小
ASIO
CanSampleRate()询问驱动程......
ASIO
应用层函数分类大全
初始化/终止
ASIO
Error
ASIO
Init(
ASIO
DriverInfo *info);
ASIO
Error
ASIO
Exit(void);开始、停止
ASIO
Error
ASIO
Start(void);
ASIO
Error
ASIO
Stop(void);查询方法和抽样率
ASIO
Error ......
ASIO
应用层C++类声明
class AsioDriver {public:AsioDriver(); ~AsioDriver();
ASIO
Bool init(void *);void getDriverName(char *name);long getDriverVersion();void getErrorM......
Windows下注册
ASIO
在带有WOW6432
ASIO
的Windows 64位系统上,32位和64位主机应用程序都可以使用
ASIO
。要求
ASIO
驱动程序的COM部分以32位和64位二进制形式提供32位主机应用程序将查询32位Windows注册表部分(Wow6432)。64位主机应用程序将查询普通Windows注册表。A......
ASIO
应用层工程组成
ASIO
工程目录如下:asio:工程文件目录。asio.slncommon:
asiosample.dll
和hostsample.exe工程使用的公共文件 driver: asiosample文件目录host: hostsample文件目录
ASIO
应用层由asiosample工程和hostsa......
ASIO
asiosample.dll
注册及注册表信息变化
在Windows下注册
ASIO
一节中,是需要对COM进入注册的。故我们使用Regsvr32命令注册。如:K:usbzhasioasiosdk_2.3.3_2019-06-14driverasiosampleasiosampleDebug>
REGSVR32
asiosample.......
ASIO
示例代码调试准备
ASIO
提供的示例代码在进行调试前,需要做以下几个步骤:第一,就是按上节的要求将编译好的
asiosample.dll
通过命令行进行注册,这里使用的命令是
REGSVR32
asiosample.dll
当然,这个注册分为32位和DLL和64位的DLL,所以会有差别。本人在现有的机器使用的是32位编程......
ASIO
hostsample工程分析
hostsample总共分为4个文件,分别为:asiolist.h/asiolist.cpp : 基类,主要功能是枚举系统中已经安装的
ASIO
的COMM类asiodriver.h/asiodriver.cpp 继承于asiolist,实现对指定
ASIO
驱动类的安装,卸载和当前信息获取asio.......
ASIO
驱动加载loadAsioDriver
loadAsioDriver用于加载指定的
ASIO
驱动程序,由main函数调用。int main(int argc, char* argv[]){ // load the driver, this will setup all the necessary internal data st......
ASIO
初始化函数
ASIO
Init
ASIO
Init();初始化应用程序使用的驱动程序。可选择获取硬件或加载其他驱动程序组件
ASIO
Error
ASIO
Init(
ASIO
DriverInfo *info);其调用关系统如下:int main(int argc, char* argv[]){ // load the d......
ASIO
获取音频参数init_asio_static_data函数
要打开音频设备,总得先获取参数吧。比如UAC设备,在打开MIC时,系统会通过特定类请求设置采样率,这样固件会源源不断地通过此采样率获取音频数据,然后通过USB要同步传输将数据发送给主机。在
ASIO
中,获取
ASIO
设备的参数有几个函数,详情可见:
ASIO
函数功能介绍 。
ASIO
的测试用例是通过in......
ASIO
创建数据缓冲区create_asio_buffers及通道依赖获取
在获取了基本的
ASIO
通道参数后,是需要创建数据缓冲区的,数据缓冲区由
ASIO
驱动创建,并由DriverInfo的成员bufferInfos导出,这样可以实现数据无拷贝操作,实现低延迟。注意,这里是输入与输出缓冲区同时创建。当然,另一部分是实现回调函数的引入,这样当
ASIO
驱动需要反馈某些信......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
分类导航
ARP
ASIO
ASIO
音频处理对象APO
文件系统
NTFS文件系统
FAT文件系统
文件系统
磁盘分区
Win32应用层
Win32 API功能封装
Inno Setup
MFC应用代码
WIN32磁盘操作代码
Windows串口编程
Windows基础
Windows基础知识
COM原理
Duilib学习笔记
PE
SetupApi函数
Windows Update
Windows电源管理
Windows运维
微软技术分享
批处理BAT
注册表
WIKI
技术提问/意见反馈
加入QQ群
感谢您的支持,我会继续努力的!
扫码打赏,你说多少就多少
打开
支付宝
扫一扫,即可进行扫码打赏哦
您的支持,是我们前进的动力!