第1章 多媒体子系统概论 1
1.1 OS/2多媒体系统结构 1
1.2 可扩展设备支持 3
1.3 多媒体控制驱动程序 3
1.4 I/O控制程序过程 4
1.5 流处理器 5
第2章 媒体控制驱动程序 7
2.1 媒体控制驱动程序的体系结构 7
2.2 媒体控制驱动程序的入口点 8
2.3 命令消息的类型 9
2.3.1 必需命令消息 9
2.3.2 打开一个MCD 11
2.3.3 子系统消息 12
2.3.4 等待(Wait)和通知(Notify)标志 13
2.3.5 基本命令消息 14
2.3.6 系统命令消息 17
2.3.7 命令处理 17
2.3.8 错误返回码 17
2.3.9 返回值和返回类型 18
2.4 增加新的命令消息 19
2.4.1 定义新的消息 19
2.4.2 定义新的数据结构和标志 20
2.5 命令表 22
2.5.1 命令表的句法 25
2.5.2 命令清单的句法分析 28
2.5.3 错误表 33
2.6 设备状态 34
2.7 控制流式设备:波形音频MCD 35
2.7.1 波形音频到混响放大器的连接 36
2.7.2 MMIO操作 37
2.7.3 同步/流操作 43
2.7.4 波形音频MCD的组成模块 54
2.8 控制非流式设备:CD音频MCD 59
2.8.1 设置音频属性 60
2.8.2 处理MCL-PLAY命令 60
2.8.3 CD音频MCD的组成模块 68
2.9 资源单元和资源类 72
2.10 向多媒体设置笔记本中插入页 73
第3章 流处理器 79
3.1 流处理器的体系结构 79
3.2 同步的特点 80
3.2.1 主/从关系 81
3.2.2 同步脉冲的产生 82
3.2.3 同步脉冲处理 82
3.2.4 同步/流子系统事件 83
3.2.5 空的流处理器 85
3.3 流协议 85
3.3.1 创建流时的流协议协商 88
3.4 尾接提示点事件支持 89
3.5 CD-ROM XA流处理器 90
3.6 流动方案 90
3.6.1 从文件系统流动波形音频数据 91
3.6.2 同步化的MIDI和波形流 93
3.7 DLL模型:文件系统流处理器 98
3.7.1 文件系统流处理器模块 98
3.7.2 入口点图例 100
3.7.3 SMHEntryPoint 100
3.7.4 SHCEntryPoint 100
3.7.5 DLL初始化 102
3.7.6 同步 108
3.7.7 创建员工线程 109
3.8 设备驱动程序模型:视频PDD 113
3.8.1 SMHEntryPoint 114
3.8.2 DDCMDEntryPoint 114
3.8.3 SHCEntryPoint 114
3.8.4 SHDEntryPoint 116
3.8.5 事件检测 117
3.8.6 尾接提示点 120
3.8.7 错误检测 120
3.8.8 同步 120
3.9.1 IDC接口 122
3.9 内部设备驱动程序通信(IDC) 122
3.9.2 流处理器值 123
3.9.3 PDD值 124
3.10 调整同步/流管理器工作 124
第4章 I/O过程 126
4.1 I/O过程结构 126
4.1.1 消息处理 126
4.1.2 I/O过程标识符(FOURCC) 127
4.1.3 I/O过程类型 128
4.2 数据翻译和文件转换 130
4.2.1 MMFORMATINFO数据结构 131
4.4.1 MMIOM_OPEN 132
4.3 I/O过程入口指针 132
4.4 支持的消息 132
4.4.2 MMIOM_READ和MMIOM_WRITE 142
4.4.3 MMIOM_SEEK 147
4.4.4 MMIOM_CLOSE 150
4.4.5 MMIOM_IDENTIFYFILE 157
4.4.6 MMIOM_GETFORMATINFO 159
4.4.7 MMIOM_GETFORMATNAME 161
4.4.8 MMIOM_QUERYHEADERLENGTH 161
4.4.9 MMIOM_GETHEADER 162
4.4.10 MMIOM_SETHEADER 164
4.5.1 解压缩 170
4.5 CODEC支持 170
4.5.2 压缩 187
第5章 安装要求 199
5.1 主控制文件 199
5.1.1 CONTROL.SCR头文件 199
5.1.2 CONTROL.SCR子系统定义 201
5.2 列表控制文件 206
5.3 更改控制文件 210
5.3.1 宏支持 210
5.3.2 CONFIG.SYS更改控制文件 211
5.3.3 INI更改控制文件 212
5.4 编辑安装DLL文件 219
5.5 安装媒体控制驱动程序 223
5.6 安装流处理器 225
5.6.1 生成源文件 225
5.6.2 建立包含源文件的DLL 228
5.6.3 修改SPI.INI文件 230
5.6.4 安装流记录 231
5.7 安装I/O过程 234
5.8 插入外部设置页 236
5.9 安装LOG文件 241
附录A 流处理器模块定义 243
A.1 音频流处理器 243
A.1.1 外部接口描述 243
A.1.2 设备控制块 244
A.1.3 相关控制块 245
A.1.4 被支持的隐式事件(EVENT_IMPLICITTYPE) 245
A.1.5 被支持的显式事件 246
A.1.6 不被支持的显式事件 246
A.1.7 被支持的流处理器命令 246
A.1.8 被支持的基本流协议控制块(SPCB) 248
A.1.9 流处理器限制 250
A.2 MIDI影射流处理器 250
A.2.1 冲洗过滤器流群组 250
A.2.2 应用程序和媒体驱动程序效能 250
A.2.5 相关控制块 251
A.2.4 设备控制块 251
A.2.3 外部接口描述 251
A.2.6 被支持的隐式事件(EVENT_IMPLICIT_TYPE) 252
A.2.7 被支持的显式事件 252
A.2.8 被支持的流处理器命令 252
A.2.9 被支持的基本流协议控制块 254
A.2.10 流处理器限制 254
A.3 文件系统流处理器 255
A.3.1 外部接口描述 255
A.3.2 设备控制块 255
A.3.3 相关控制块 255
A.3.6 被支持的流处理器命令 256
A.3.4 被支持的隐式事件(EVENT_IMPLICIT_TYPE) 256
A.3.5 被支持的显式事件 256
A.3.7 被支持的基本流协议控制块数据类型 259
A.3.8 流处理器限制 259
A.4 内存流处理器 259
A.4.1 外部接口描述 259
A.4.2 设备控制块 260
A.4.3 相关控制块 260
A.4.4 被支持的隐式(EVENT_IMPLICIT_TYPE)事件 260
A.4.6 被支持的流处理器命令 261
A.4.5 被支持的显式事件 261
A.4.7 被支持的基本流协议控制块数据类型 263
A.4.8 流处理器限制 264
A.5 致密盘-数字音频流处理器 264
A.5.1 外部接口描述 264
A.5.2 设备控制块 265
A.5.3 相关控制块 265
A.5.4 被支持的隐式事件(EVENT_IMPLICIT_TYPE) 265
A.5.5 被支持的显式事件 266
A.5.6 被支持的流处理器命令 266
A.6 CD-ROM XA流处理器 268
A.6.1 外部接口描述 268
A.5.8 流处理器限制 268
A.5.7 被支持的基本流协议控制块数据类型 268
A.6.2 设备控制块 269
A.6.3 相关控制块 269
A.6.4 被支持的隐式事件(EVENT_IMPLICIT_TYPE) 269
A.6.5 被支持的显式事件 270
A.6.6 被支持的流处理器命令 270
A.6.7 被支持的基本流协议控制块数据类型 272
A.6.8 流处理器限制 275
附录B P2STRING工具 276
B.1 设置字体尺寸和类型 276
B.2 启动P2STRING 277
B.3 P2STRING命令组语言(Script Language) 278
B.3.1 注释 279
B.3.2 工具伪指令 279
B.3.3 OS/2多媒体字符串命令 281
B.3.4 预期的返回字符串 281
B.3.5 预期的错误消息 282
B.3.6 预期的通知消息 282
B.4 MM_MCIPOSITIONCHANGE验证的限制 284
B.5 处理逻辑 285
附录C 通告 286
C.1 商标 286
词汇表 287