《将多模式音频设备展示为单个一致的音频设备.pdf》由会员分享,可在线阅读,更多相关《将多模式音频设备展示为单个一致的音频设备.pdf(20页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN102067096A43申请公布日20110518CN102067096ACN102067096A21申请号200980124692822申请日2009062312/144,61520080623USG06F13/10200601H04L12/1620060171申请人微软公司地址美国华盛顿州72发明人C刘EH奥米亚DJ西索勒克FD叶瑞斯74专利代理机构上海专利商标事务所有限公司31100代理人胡利鸣钱静芳54发明名称将多模式音频设备展示为单个一致的音频设备57摘要驱动支持两个或多个音频模式的音频设备通过以下步骤来实现将音频设备的第一物理设备对象关联于第一设备标识符,所述第一。
2、物理设备对象表示由总线枚举器所枚举的第一音频模式;将音频设备的第二物理设备对象关联于第二设备标识符,所述第二物理设备对象表示由总线枚举器所枚举的第二音频模式;以及,如果所述第一设备标识符与第二设备标识符匹配,则启用与所述第一物理设备对象和第二物理设备对象兼容的耦合的内核流音频接口。30优先权数据85PCT申请进入国家阶段日2010122286PCT申请的申请数据PCT/US2009/0483432009062387PCT申请的公布数据WO2010/008868EN2010012151INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书6页附图11页CN10206710。
3、6A1/2页21一种驱动支持两个或更多音频模式的音频设备的方法,其特征在于,所述方法包括将音频设备的第一物理设备对象13与第一设备标识符15相关联602,所述第一物理设备对象表示由总线枚举器所枚举的第一音频模式;将音频设备的第二物理设备对象与第二设备标识符相关联604,所述第二物理设备对象表示由总线枚举器所枚举的第二音频模式;以及如果所述第一设备标识符与所述第二设备标识符匹配,则启用608与所述第一物理设备对象和第二物理设备对象都兼容的耦合内核流音频接口40。2如权利要求1所述的方法,其特征在于,进一步包括,如果所述第一设备标识符与所述第二设备标识符匹配,则将具有匹配的第一设备标识符和第二设备。
4、标识符的音频设备表示为单个一致的音频设备。3如权利要求1所述的方法,其特征在于,进一步包括,如果所述第一设备标识符与所述第二设备标识符不匹配,则启用与所述第一物理设备对象兼容的第一非耦合内核流音频接口,或启用与所述第二物理设备对象兼容的第二非耦合内核流音频接口。4如权利要求1所述的方法,其特征在于,进一步包括,如果所述音频设备以第一模式进行操作,则使用所述耦合内核流音频接口来实现所述第一音频模式,以及如果所述音频设备以第二模式进行操作,则使用所述耦合内核流音频接口来实现所述第二音频模式。5如权利要求4所述的方法,其特征在于,进一步包括,临时将所述耦合内核流音频接口锁定到音频模式。6如权利要求1。
5、所述的方法,其特征在于,所述第一音频模式支持单声道音频回放和语音捕捉,并且所述第二音频模式支持立体声音频回放而没有语音捕捉。7如权利要求1所述的方法,其特征在于,所述耦合内核流接口以单个音频输入端点和单个音频输出端点来表征。8如权利要求1所述的方法,其特征在于,所述将第一物理设备对象与第一设备标识符相关联包括将所述第一物理设备对象与第一设备标识符一起列在表中,以及所述将第二物理设备对象与第二设备标识符相关联包括将所述第二物理设备对象与第二设备标识符一起列在所述表中。9如权利要求8所述的方法,其特征在于,所述第一设备标识符包括设备地址,以及所述第二设备标识符包括设备地址。10如权利要求1所述的方。
6、法,其特征在于,在所述音频设备启动音频输出之后,确定所述耦合内核流音频接口是否被锁定于第一音频模式,如果所述耦合内核流音频接口被锁定于第一音频模式,则开始使用第一音频模式的音频输出,如果所述耦合内核流音频接口没有被锁定于第一音频模式,则确定所述耦合内核流音频接口是否被锁定于第二音频模式,如果所述耦合内核流音频接口被锁定于第二音频模式,则开始使用第二音频模式的音频输出,如果所述耦合内核流音频接口没有被锁定于第一音频模式或第二音频模式,则确定音频输入是否是活动的,如果音频输入是活动的,则开始使用第一音频模式的音频输出,如果音频输入是不活动的,则开始使用第二音频模式的音频输出。11如权利要求1所述的。
7、方法,其特征在于,在所述音频设备启动音频输入之后,确定所述耦合内核流音频接口是否被锁定于第二音频模式,如果所述耦合内核流音频接口被锁权利要求书CN102067096ACN102067106A2/2页3定于第二音频模式,则音频输入失败,如果所述耦合内核流音频接口没有被锁定于第二音频模式,则确定音频输出是否使用第二音频模式,如果音频输出使用第二音频模式,则停止使用第二音频模式的音频输出,并且开始使用第一音频模式的音频输出、以及开始使用第一音频模式的音频输入。12如权利要求1所述的方法,其特征在于,在所述音频设备关闭音频输入之后,停止使用第一音频模式的音频输入,确定所述耦合内核流音频接口被锁定于第一。
8、音频模式,如果所述耦合内核流音频接口没有被锁定于第一音频模式,则确定音频输出是否使用第一音频模式,如果音频输出使用第一音频模式,则停止使用第一音频模式的音频输出、并且开始使用第二音频模式的音频输出。权利要求书CN102067096ACN102067106A1/6页4将多模式音频设备展示为单个一致的音频设备0001背景0002诸如蓝牙音频设备等许多无线音频设备支持多个音频模式。无线音频设备的每个音频模式在初始化、操纵和流传送音频数据时往往被主机计算设备作为可独立寻址的编程实体来对待,并且当被操作系统显示为可视元素时,每个音频模式往往被主机计算设备作为独立的声音输入或输出来展示。0003然而,由于。
9、计算资源的约束,每个无线音频设备往往每次只能操作一个音频模式。然而,最终用户可能看到单个无线视频设备的多个可视元素,并且可能期望无线音频设备能够同时操作多个音频模式。因此,音频设备可能不如所期望的那样工作。类似地,编程者可在编程API中看到多个可独立寻址的项。0004概述0005公开了支持两个或更多音频模式的音频设备的驱动。每个所支持的音频模式与一物理设备对象和一设备标识符相关联。当两个或更多物理设备对象具有匹配的设备标识符时,启用与该物理设备对象兼容的耦合内核流音频接口。0006提供本概述以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键。
10、特征或必要特征,也不旨在用于限定所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。0007附图简述0008图1是示出用于驱动支持两个或更多音频模式的无线音频设备的示意图。0009图2是示出图1的计算设备的总线的示意图。0010图3是示出图1的计算设备的音频驱动程序的示意图。0011图4是用于选择内核流音频接口的方法的过程流程。0012图5示意性地示出图1的计算设备的用户界面。0013图6是用于驱动支持两个或更多音频模式的音频设备的方法的流程图。0014图7是可被实现来添加音频设备的添加音频设备例程的流程图。0015图8是可被实现来开始音频设。
11、备的开始音频设备例程的流程图。0016图9是可被实现来在启动向无线音频设备的音频输出流传送之后选择供耦合HFPA2DP内核流音频接口使用的音频模式的在音频输出打开时例程的流程图。0017图10是可被实现来在启动来自无线音频设备的音频输入流传送之后选择供耦合HFPA2DP内核流音频接口使用的音频模式的在音频输入打开时例程的流程图。0018图11是可被实现来在关闭来自无线音频设备的音频输入流之后选择供耦合HFPA2DP内核流音频接口使用的音频模式的在输入关闭时例程的流程图。0019详细描述0020公开了支持两个或更多音频模式的无线音频设备的驱动。尽管使用支持免提情景模式HANDSFREEPROFI。
12、LE,HFP和高级音频分发情景模式ADVANCEDAUDIODISTRIBUTIONPROFILE,A2DP的无线蓝牙音频设备的驱动作为示例,但应当理解,支持其他音频模式的其说明书CN102067096ACN102067106A2/6页5他无线设备可以使用此处所描述的驱动过程。本发明适用于能够支持两个或更多无线模式的基本上任何无线音频设备的驱动。0021如将在下文中更详细描述的,所公开的驱动过程提供了一种例如在操作系统中将多模式无线音频设备展示为单个一致的音频设备的机制,从而隐藏多模式音频设备所支持的各个音频模式的细节和资源约束。例如,单个无线音频设备的音频模式作为单个程序上可寻址项来对待,且。
13、被表示为单个可视元素来表示,诸如图标或列表项,而不是对每个音频模式有一个单独的元素。0022图1示出被配置成驱动诸如无线音频设备A和无线音频设备B等音频设备的示例计算设备10,该音频设备可支持诸如音频模式X和音频模式Y等一个或多个音频模式。该计算设备可支持计算设备与音频设备之间的音频数据流传送。计算设备可包括计算机存储器18,计算机存储器包括当由逻辑子系统22执行时使得逻辑子系统22执行此处公开的各种过程或例程的指令20。计算设备可以另外包括总线24,并且可以实现各种内核流接口,诸如内核流音频接口26。如此处所使用的,短语“内核流接口”用于指最低级的独立于硬件的I/O接口,并且这一接口在各种不。
14、同的体系结构中可以采用各种不同的形式。在一个示例中,内核流音频接口26可以由计算设备的音频驱动程序28来实现。0023逻辑子系统可以被配置成执行一个或多个指令。例如,逻辑子系统22可被配置成执行一个或多个指令,该一个或多个指令是一个或多个程序、例程、对象、组件、数据结构、或其它逻辑构造的一部分。可实现这些指令来执行任务、实现抽象数据类型、或以其他方式得到所需结果。逻辑子系统可包括被配置成执行软件指令的一个或多个处理器。另外或另选地,逻辑子系统22可包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机器。逻辑子系统22可任选地包括分布在两个或更多设备上的独立组件,这些独立组件在某些实施例中。
15、可位于远程。0024存储器18可以是被配置成保存指令的设备,这些指令当由逻辑子系统执行时使得逻辑子系统22实现此处公开的方法和过程。存储器18可以包括易失性部分和/或非易失性部分。在一些实施例中,存储器18可以包括彼此协作来保存供逻辑子系统执行的指令的一个或多个不同的设备。在一些实施例中,逻辑子系统22和存储器18可以集成到一个或多个公共设备中。0025计算设备还可以包括用于无线地与音频设备进行通信的无线通信子系统30,以及具有用户界面34的显示器32,用户界面34被配置成即使当该内核流音频接口是耦合内核流音频接口时也通过单个音频输入端点和单个音频输出端点来表征内核流音频接口。换言之,耦合内核。
16、流音频接口是通过单个音频输入端点和单个音频输出端点来表征的。如此处所使用的,短语“端点”用于指表示音频输入或输出的可独立标识的软件对象。短语“端点”不应当被解释为限于任何特定的实现例如,特定操作系统的实现。例如,用户界面34可以显示将音频设备表征为具有单个音频输入端点的单个可视元素36A,以及将同样的音频设备表征为具有单个音频输出端点的单个可视元素36B。0026由计算设备所主存的每个音频设备可以由设备标识符15来标识。音频设备可以是例如由蓝牙地址所标识的蓝牙音频设备。在这个示例中,示出了计算设备主存由设备标识符“123”所标识的无线音频设备A,以及由设备标识符“456”所标识的无线音频设备B。
17、。另外,无线音频设备A被示为支持两个音频模式音频模式X和音频模式Y,而无线音频设说明书CN102067096ACN102067106A3/6页6备B被示为支持单个音频模式音频模式X。应当理解,尽管在该示例中示出了两个无线音频设备,但是计算设备10可以潜在地主存任何数量的音频设备,包括无线和非无线音频设备两者。0027现在参考图2,计算设备的总线24可以被配置成创建或枚举对应于计算设备所主存的音频设备的每个音频模式的单独的PDO13物理设备对象。如此处所使用的,术语“PDO”用于指表示特定音频模式的软件对象。术语“PDO”不应当被解释为限于任何特定的实现例如,特定操作系统的实现。在该示例中,总线。
18、24为音频设备A的音频模式X枚举PDO1,为音频设备A的音频模式Y枚举PDO2,为音频设备B的音频模式X枚举PDO3。0028现在参考图3,计算设备可以例如经由计算设备的音频驱动程序28为由总线24所枚举的每个PDO13创建FDO11功能设备对象。音频驱动程序28可以另外例如经由计算设备的音频驱动程序28来维护设备条目表38。设备条目表38可以将每个所创建的FDO11与为其创建FDO11的PDO13相关。设备条目表38可以另外被配置成标识FDO11所支持的音频模式,以及标识与FDO11相关联的音频设备的设备标识符15。计算设备可以被配置成使用设备条目表来利用与音频模式相关联的设备标识符15匹配。
19、单个音频设备的音频模式。如果存在匹配,则计算设备可以使得耦合内核流音频接口与第一物理设备对象和第二物理设备对象两者都兼容。0029在该示例中,设备条目表38列出功能设备对象FDO1、FDO2和FDO3,以及相关联的物理设备对象PDO1、PDO2和PDO3。设备条目表38另外标识了FDO1支持音频模式X、FDO2支持音频模式Y、以及FDO3支持音频模式X。设备条目表38可以基于FDO1和FDO2两者都与具有设备标识符“123”的同一音频设备相关联的事实来匹配FDO1与FDO2。相反,由于FDO3与具有设备标识符“456”的不同音频设备相关联,因此FDO1和FDO2与FDO3不匹配。0030仍然参。
20、考图3。音频驱动程序28可以实现各种类型的内核音频流接口。在该示例中,音频驱动程序28可以实现支持音频模式X和音频模式Y两者的耦合内核流音频接口40,支持音频模式X的非耦合内核流音频接口42,支持音频模式Y的非耦合内核流音频接口44。音频设备28可以被配置成内部地确定要实现哪个类型的内核流音频接口26。0031图4示出计算设备的音频驱动程序28中示例性数据流,该数据流用于在向和/或从支持HFP音频情景模式和A2DP音频情景模式两者的音频设备流传送音频数据时,决定要实现哪个类型的内核流音频接口26。在该示例中,音频驱动程序28为HFP音频情景模式创建HFPFDO46,并且为A2DP音频情景模式创。
21、建A2DPFDO48。0032HFPFDO46取决于HFPFDO46的设备标识符15是否与A2DPFDO48的设备标识符15匹配,来展示非耦合HFP音频接口50或耦合HFPA2DP音频接口52。如果设备标识符不匹配,则HFPFDO46展示非耦合HFP内核流音频接口50。另一方面,如果设备标识符匹配,则HFPFDO46展示耦合HFPA2DP内核流音频接口52。0033A2DPFDO48取决于HFPFDO46的设备标识符15是否与A2DPFDO48的设备标识符15匹配,来展示非耦合A2DP内核流音频接口54或耦合HFPA2DP内核流音频接口52。如果设备标识符匹配,则A2DPFDO48展示耦合HF。
22、PA2DP内核流音频接口52。另一方面,如果设备标识符不匹配,则A2DPFDO48展示非耦合A2DP内核流音频接口54。0034图5是示出示例用户界面34的示意图,该用户界面被配置成显示支持多个音频模式的单个音频设备的用于所有能够进行音频捕捉的模式的单个可视表示36A、以及用于所说明书CN102067096ACN102067106A4/6页7有能够进行音频回放的模式的单个可视表示36B。在其他实施例中,能够进行音频捕捉的模式和能够进行音频回放的模式两者可以由单个可视元素来表示。0035图6是用于驱动支持两个或更多音频模式的音频设备的示例方法600的流程图。尽管该流程图描绘了两个音频模式的耦合,。
23、但应当理解,可以按相同或类似的方式来耦合三个或更多音频模式。方法600可以由图1的计算设备10来实现。方法600可以包括,在602处,将音频设备的第一物理设备对象与第一设备标识符相关联,该第一物理设备对象表示由总线枚举器所枚举的第一音频模式。0036在604处,该方法还可以包括将音频设备的第二物理设备对象与第二设备标识符相关联,该第二设备对象表示由总线枚举器所枚举的第二音频模式。在一些示例中,第一音频模式支持单声道音频回放和语音捕捉,并且第二音频模式支持立体声音频回放而没有语音捕捉。在一个具体示例中,第一音频模式是HFP音频情景模式,并且第二音频模式是A2DP音频情景模式。0037在606处,。
24、该方法可以包括确定第一设备标识符是否与第二设备标识符匹配。如果第一设备标识符与第二设备标识符匹配,则该方法前进到608,否则,该方法前进到610。0038在608处,该方法可以包括启用与第一物理设备对象和第二物理设备对象两者都兼容的耦合内核流音频接口。耦合内核流音频接口可以在音频设备以第一模式操作的情况下实现第一音频模式,或者在音频设备以第二模式操作的情况下实现第二音频模式。此外,该方法可以包括将耦合的内核流音频接口锁定在一音频模式。0039在一些示例中,该方法还可以包括将音频设备作为单个一致的音频设备来表示。例如,该方法可以包括将音频设备的所有能够进行音频捕捉的音频模式表示为单个可视表示,并。
25、且将音频设备的所有能够进行音频回放的音频模式表示为不同的单个可视表示、或相同的单个可视表示。0040在601处,该方法可以包括启用与第一物理设备对象兼容的第一非耦合内核流音频接口,或启用与第二物理设备对象兼容的第二非耦合内核流音频接口。0041图711是可以作为用于驱动支持多个音频模式的音频设备的方法例如,方法600的一部分来实现的示例例程。0042现在参考图7,该图是可以由计算设备作为方法600的一部分来实现的用于添加音频设备的示例添加音频设备例程700。例程700可以包括,在702处,获得由总线所枚举或创建的PDO的设备标识符,以及在704处,创建对应于PDO的FDO。0043该例程还可以。
26、包括,在706处,检查设备条目表以寻找具有相同设备标识符的另一FDO,以及在708处,确定是否存在这样的另一FDO。该例程还可以包括,在710处,如果存在其他FDO,则禁用其他FDO上的非耦合内核流音频接口,以及在712处,将新的FDO添加到设备条目表。0044图8是用于启动该支持HFP音频情景模式和A2DP音频情景模式的音频设备的启动音频设备例程800的示例。该例程800可以包括,在802处,检查设备条目表以寻找具有相同设备标识符的另一FDO,以及在804处,确定是否存在另一FDO。如果不存在另一FDO,则例程800继续至806。如果存在另一FDO,则例程800继续至808。0045该例程可。
27、以另外包括,在806处,启用HFP或A2DP非耦合内核流音频接口。或者,该例程可以包括,在808处,检查其他FDO的即插即用启动状态,在810处,确定其他FDO是说明书CN102067096ACN102067106A5/6页8否已被启动,以及在812处,如果其他FDO已被启动,则启用耦合HFPA2DP内核流音频接口。0046图9是用于在启动向无线音频设备的音频输出流传送之后选择在实现耦合HFPA2DP内核流音频接口时要使用的音频模式的在音频输出打开时例程900的流程图。例程900可以包括,在902处,确定内核流音频接口是否被锁定在HFP音频情景模式中。如果HFP被锁定在其中,该例程继续至904。
28、。如果HFP没有被锁定在其中,该例程继续至906。0047该例程可以包括,在904处,开始使用HFP音频情景模式的音频设备的音频输出。或者,该例程可以包括,在906处,确定音频设备的内核流音频接口是否被锁定在A2DP音频情景模式中。如果A2DP情景模式没有被锁定在其中,则该例程继续至908,否则,该例程继续至910。0048在908处,该例程可以包括确定音频设备的音频输入是否是活动的。如果回答为是,则该例程继续至904以便经由例如支持HFP音频情景模式的非耦合内核流音频接口来开始使用HFP音频情景模式的音频设备的音频输出。如果回答为否,则该例程继续至910以便经由例如支持A2DP音频情景模式的。
29、非耦合内核流音频接口来开始使用A2DP音频情景模式的音频设备的音频输出。0049图10是用于在启用音频输入之后选择供耦合HFPA2DP内核流音频接口使用的音频模式的示例性在音频输入打开时例程1000。例程1000可以包括,在1002处,确定耦合内核流音频接口是否被锁定在A2DP音频情景模式中。如果回答为是,则例程1000在1012处失败。如果回答为否,该例程继续至1004。0050在1004处,该例程可以包括确定使用A2DP音频情景模式的耦合HFPA2DP内核流音频接口的音频输出是否是活动的。如果回答为是,则该例程可以包括在1004处,停止使用A2DP音频情景模式的耦合HFPA2DP内核流音频。
30、接口的音频输出。如果回答为否,该例程可以继续至1010。0051该例程还可以包括,在1008处,开始使用HFP音频情景模式的HFPA2DP内核流音频接口的音频输出,以及在1010处,开始使用HFP音频接口的HFPA2DP内核流音频接口的音频输入。0052图11是用于在关闭音频输入之后选择供耦合HFPA2DP内核流音频接口使用的音频模式的示例性在音频输入关闭时例程1100。例程1100可以包括,在1102处,停止使用HFP音频情景模式的音频输入,以及在1104处,确定耦合HFPA2DP内核流音频接口是否被锁定在HFP音频情景模式中。0053如果耦合HFPA2DP内核流音频接口没有被锁定在HFP音。
31、频情景模式中,则例程可以包括,在1106处,确定使用HFP音频情景模式的音频输出是否是活动的。如果使用HFP音频情景模式的音频输出是活动的,该例程可包括,在1108处,停止通过HFP音频情景模式的音频输出,以及在1110处,开始使用A2DP音频情景模式的音频输出。0054可以理解,此处所描述的各实施例可例如经由诸如程序等被存储在计算机可读存储介质上并由计算设备执行的计算机可执行指令或代码来实现。一般而言,程序包括执行特定任务或实现特定抽象数据类型的例程、对象、组件、数据结构等。如此处所使用的,术语“程序”可指示单个程序或协同工作的多个程序,并可用于表示应用程序、服务、或任何其它类型或种类的程序。
32、。同样,如此处所使用的术语“计算机”、“计算设备”包括电子地执行一说明书CN102067096ACN102067106A6/6页9个或多个程序的任何设备,包括协同工作的两个或多个此类设备。0055应当理解,此处所述的配置和/或方法在本质上示例性的,且这些具体实施例或示例不是局限性的,因为众多变体是可能。此处所述的具体例程或方法可表示任何数量的处理策略中的一个或多个。由此,所示出的各个动作可以按所示顺序执行、按其他顺序执行、并行地执行、或者在某些情况下省略。同样,可以改变上述过程的次序。0056本发明的主题包括各种过程、系统和配置的所有新颖和非显而易见的组合和子组合、和此处所公开的其它特征、功能。
33、、动作、和/或特性、以及其任何和全部等效方案。说明书CN102067096ACN102067106A1/11页10图1说明书附图CN102067096ACN102067106A2/11页11图2说明书附图CN102067096ACN102067106A3/11页12图3说明书附图CN102067096ACN102067106A4/11页13图4说明书附图CN102067096ACN102067106A5/11页14图5说明书附图CN102067096ACN102067106A6/11页15图6说明书附图CN102067096ACN102067106A7/11页16图7说明书附图CN102067096ACN102067106A8/11页17图8说明书附图CN102067096ACN102067106A9/11页18图9说明书附图CN102067096ACN102067106A10/11页19图10说明书附图CN102067096ACN102067106A11/11页20图11说明书附图CN102067096A。