home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / bin / sample.scr < prev    next >
Text File  |  1999-05-11  |  13KB  |  591 lines

  1. #
  2. # DESCRIPTION:
  3. # --------------------------------------------------------------
  4. #
  5. #
  6. # open and switch through all valid states for waveaudio in three
  7. # different processes, only one acpa will involve
  8. # resource contention for acpa. To include masteraudio query/sets
  9. # in each process.
  10. # [switch mode each device[switch state each device]].
  11. #
  12. #
  13. @PROCESSES=2
  14. @EVENTS={HASCTRL1=1,HASCTRL2=0}
  15. #
  16. #
  17. #
  18. @PROCESS 1
  19. ;
  20. ; set masteraudio level for session to 10% - will affect all
  21. ; 3 processes
  22. ;
  23. masteraudio volume 10
  24. ;
  25. ; open waveaudio device non-exclusively
  26. ;
  27. open waveaudio alias wav1 shareable notify
  28. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_OPEN #1
  29. @WAIT_NOTIFY 1 60000
  30. @WAIT_PASSDEVICE wav1 60000
  31. @WAIT_NOTIFY 21 60000
  32. ;
  33. ; no way of knowing which open (in which process) was the last
  34. ; to complete. All opens were non-exclusive. Need to do an
  35. ; acquire to make sure process 1 has the active instance
  36. ;
  37. acquire wav1 wait
  38. @WAIT_PASSDEVICE wav1 45000
  39. ;
  40. ;
  41. load wav1 ?MMDATA-AUD?\8b22k.wav wait readonly
  42. play wav1 from 10000 to 40000
  43. @PAUSE 10000
  44. @SET_EVENT HASCTRL1 0
  45. @SET_EVENT HASCTRL2 1
  46. @WAIT_EVENT HASCTRL1 60000
  47. ;
  48. ;
  49. acquire wav1 wait
  50. @WAIT_PASSDEVICE wav1 45000
  51. #
  52. load wav1 ?MMDATA-AUD?\8b22ks.wav wait readonly
  53. play wav1 from 10000 to 40000
  54. @PAUSE 10000
  55. @SET_EVENT HASCTRL1 0
  56. @SET_EVENT HASCTRL2 1
  57. @WAIT_EVENT HASCTRL1 60000
  58. ;
  59. ; disable internal speaker by setting connector for associated
  60. ; ampmixer instance
  61. ;
  62. acquire wav1 wait
  63. @WAIT_PASSDEVICE wav1 45000
  64. #
  65. connector wav1 disable type speakers notify
  66. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_CONNECTOR #2
  67. @WAIT_NOTIFY 2 60000
  68. ;
  69. seek wav1 to start wait
  70. ;
  71. ; cue waveaudio for play
  72. ;
  73. cue wav1 output notify
  74. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_CUE #3
  75. @WAIT_NOTIFY 3 60000
  76. ;
  77. ; play waveaudio asynchronously for 3 seconds
  78. ;
  79. play wav1
  80. @PAUSE 3000
  81. ;
  82. ; close waveaudio device instance
  83. ;
  84. close wav1 wait
  85. ;
  86. ; open another waveaudio device instance non-exclusively
  87. ;
  88. open waveaudio alias wav1_1 shareable wait
  89. ;
  90. ; set speakers connector for associated ampmixer
  91. ;
  92. connector wav1_1 enable type speakers wait
  93. ;
  94. ;
  95. load wav1_1 ?MMDATA-AUD?\8b44k.wav wait readonly
  96. ;
  97. ; cue waveaudio for play
  98. ;
  99. cue wav1_1 output wait
  100. ;
  101. ; play waveaudio for 5 seconds
  102. ;
  103. play wav1_1 notify
  104. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_PLAY
  105. @PAUSE 5000
  106. ;
  107. @SET_EVENT HASCTRL1 0
  108. @SET_EVENT HASCTRL2 1
  109. @WAIT_EVENT HASCTRL1 60000
  110. ;
  111. ; recover control of resource (cd device/acpa) from PROCESS 2.
  112. ; play of waveaudio will resume. allow play to continue for
  113. ; 5 seconds
  114. ;
  115. acquire wav1_1 notify
  116. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_ACQUIREDEVICE #4
  117. @WAIT_NOTIFY 4 60000
  118. @WAIT_PASSDEVICE wav1_1 45000
  119. @PAUSE 5000
  120. ;
  121. ; pause play of waveaudio
  122. ;
  123. pause wav1_1 notify
  124. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_PAUSE #5
  125. @WAIT_NOTIFY 5 60000
  126. ;
  127. @SET_EVENT HASCTRL1 0
  128. @SET_EVENT HASCTRL2 1
  129. @WAIT_EVENT HASCTRL1 60000
  130. ;
  131. ; recover exclusive control of resource (cd device/acpa) from
  132. ; PROCESS 2
  133. ;
  134. ; wav1_1 & wav2 are both mono and at this point in the script
  135. ; both are active - hence wav1_1 will not receive gaining-use
  136. ;
  137. acquire wav1_1 exclusive wait
  138. ; @WAIT_PASSDEVICE wav1_1 45000
  139. ;
  140. @SET_EVENT HASCTRL1 0
  141. @SET_EVENT HASCTRL2 1
  142. @WAIT_EVENT HASCTRL1 60000
  143. ;
  144. ; allow play to resume for 5 seconds
  145. ;
  146. resume wav1_1 notify
  147. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_RESUME
  148. @PAUSE 5000
  149. ;
  150. ; release exclusive control of resource
  151. ;
  152. release wav1_1 wait
  153. ;
  154. @SET_EVENT HASCTRL1 0
  155. @SET_EVENT HASCTRL2 1
  156. @WAIT_EVENT HASCTRL1 60000
  157. ;
  158. ; recover exclusive control of resource from PROCESS 2
  159. ;
  160. acquire wav1_1 exclusive wait
  161. @WAIT_PASSDEVICE wav1_1 45000
  162. ;
  163. ; immediately stop play of waveaudio
  164. ;
  165. stop wav1_1 notify
  166. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_STOP #8
  167. @WAIT_NOTIFY 8 60000
  168. ;
  169. ; release exclusive control of resource
  170. ;
  171. release wav1_1 wait
  172. @SET_EVENT HASCTRL1 0
  173. @SET_EVENT HASCTRL2 1
  174. @WAIT_EVENT HASCTRL1 60000
  175. ;
  176. ; recover exclusive control of resource (cd device/acpa) from
  177. ; PROCESS 2
  178. ;
  179. acquire wav1_1 exclusive wait
  180. @WAIT_PASSDEVICE wav1_1 45000
  181. ;
  182. ; seek to start of media (currently loaded file)
  183. ;
  184. seek wav1_1 to start notify
  185. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_SEEK #10
  186. @WAIT_NOTIFY 10 60000
  187. ;
  188. ; release exclusive control of resource
  189. ;
  190. release wav1_1 wait
  191. ;
  192. @SET_EVENT HASCTRL1 0
  193. @SET_EVENT HASCTRL2 1
  194. @WAIT_EVENT HASCTRL1 60000
  195. ;
  196. ; recover control of resource (cd device/acpa) from PROCESS 2
  197. ;
  198. acquire wav1_1 notify
  199. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_ACQUIREDEVICE #11
  200. @WAIT_NOTIFY 11 60000
  201. @WAIT_PASSDEVICE wav1_1 45000
  202. ;
  203. ; query status then disable speakers connector (disables internal
  204. ; speaker)
  205. ;
  206. connector wav1_1 query type speakers wait
  207. =TRUE
  208. connector wav1_1 disable type speakers notify
  209. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_CONNECTOR #12
  210. @WAIT_NOTIFY 12 60000
  211. ;
  212. ; play for 3 seconds
  213. ;
  214. play wav1_1 notify
  215. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_PLAY
  216. @PAUSE 3000
  217. ;
  218. @SET_EVENT HASCTRL1 0
  219. @SET_EVENT HASCTRL2 1
  220. @WAIT_EVENT HASCTRL1 60000
  221. ;
  222. ; recover exclusive control of resource (cd device/acpa) from PROCESS 2
  223. ;
  224. acquire wav1_1 exclusive wait
  225. @WAIT_PASSDEVICE wav1_1 45000
  226. ;
  227. ; pause the play
  228. ;
  229. pause wav1_1 notify
  230. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_PAUSE #14
  231. @WAIT_NOTIFY 14 60000
  232. ;
  233. ; release exclusive control of resource
  234. ;
  235. release wav1_1 wait
  236. ;
  237. @SET_EVENT HASCTRL1 0
  238. @SET_EVENT HASCTRL2 1
  239. @WAIT_EVENT HASCTRL1 60000
  240. ;
  241. ; recover exclusive control of resource (cd device/acpa) from PROCESS 2
  242. ;
  243. acquire wav1_1 exclusive wait
  244. @WAIT_PASSDEVICE wav1_1 45000
  245. ;
  246. ; resume play for 3 seconds
  247. ;
  248. resume wav1_1 notify
  249. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_RESUME
  250. @PAUSE 3000
  251. ;
  252. ; release exclusive control of resource
  253. ;
  254. release wav1_1 wait
  255. ;
  256. @SET_EVENT HASCTRL1 0
  257. @SET_EVENT HASCTRL2 1
  258. @WAIT_EVENT HASCTRL1 60000
  259. ;
  260. ; recover exclusive control of resource (cd device/acpa) from PROCESS 2
  261. ;
  262. acquire wav1_1 exclusive wait
  263. @WAIT_PASSDEVICE wav1_1 45000
  264. ;
  265. ; stop play
  266. ;
  267. stop wav1_1 notify
  268. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_STOP #17
  269. @WAIT_NOTIFY 17 60000
  270. ;
  271. ; release exclusive control of resource (cd device/acpa) from PROCESS 2
  272. ;
  273. release wav1_1 wait
  274. ;
  275. @SET_EVENT HASCTRL1 0
  276. @SET_EVENT HASCTRL2 1
  277. @WAIT_EVENT HASCTRL1 60000
  278. ;
  279. ; instance is inactive. Do some statuses
  280. ;
  281. status wav1_1 time format wait
  282. =mmtime
  283. ;
  284. @WAIT_PASSDEVICE wav2 50000
  285. #
  286. ;
  287. status wav1_1 ready wait
  288. =TRUE
  289. ;
  290. ; recover control of resource (cd device/acpa) from PROCESS 2
  291. ;
  292. acquire wav1_1 notify
  293. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_ACQUIREDEVICE #18
  294. @WAIT_NOTIFY 18 60000
  295. @WAIT_PASSDEVICE wav1_1 45000
  296. ;
  297. ; seek to end of media (currently loaded element)
  298. ;
  299. seek wav1_1 to end notify
  300. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_SEEK #19
  301. @WAIT_NOTIFY 19 60000
  302. ;
  303. @SET_EVENT HASCTRL1 0
  304. @SET_EVENT HASCTRL2 1
  305. @WAIT_EVENT HASCTRL1 60000
  306. ;
  307. ; close waveaudio instance for process 1 (wav1_1)
  308. ;
  309. acquire wav1_1 wait
  310. @WAIT_PASSDEVICE wav1_1 45000
  311. #
  312. close wav1_1 notify
  313. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_CLOSE #20
  314. @WAIT_NOTIFY 20 60000
  315. ;
  316. @SET_EVENT HASCTRL1 0
  317. @SET_EVENT HASCTRL2 1
  318. ;
  319. ;
  320. ;
  321. @PROCESS 2
  322. ;
  323. ; open a non-exclusive waveaudio instance for process 2
  324. ;
  325. open waveaudio alias wav2 shareable notify
  326. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_OPEN #21
  327. @WAIT_PASSDEVICE wav2 60000
  328. ;
  329. @WAIT_EVENT HASCTRL2 180000
  330. ;
  331. ;
  332. acquire wav2 wait
  333. @WAIT_PASSDEVICE wav2 45000
  334. #
  335. load wav2 ?MMDATA-AUD?\8b11ks.wav wait readonly
  336. play wav2 from 10000 to 40000
  337. @PAUSE 10000
  338. @SET_EVENT HASCTRL2 0
  339. @SET_EVENT HASCTRL1 1
  340. @WAIT_EVENT HASCTRL2 60000
  341. ;
  342. ;
  343. acquire wav2 wait
  344. @WAIT_PASSDEVICE wav2 45000
  345. #
  346. load wav2 ?MMDATA-AUD?\16b11k.wav wait readonly
  347. play wav2 from 10000 to 40000
  348. @PAUSE 10000
  349. @SET_EVENT HASCTRL2 0
  350. @SET_EVENT HASCTRL1 1
  351. @WAIT_EVENT HASCTRL2 60000
  352. ;
  353. ;
  354. acquire wav2 wait
  355. @WAIT_PASSDEVICE wav2 45000
  356. #
  357. load wav2 ?MMDATA-AUD?\16b22ks.wav wait readonly
  358. play wav2 from 10000 to 40000
  359. @PAUSE 10000
  360. @SET_EVENT HASCTRL2 0
  361. @SET_EVENT HASCTRL1 1
  362. @WAIT_EVENT HASCTRL2 60000
  363. ;
  364. ; query the session masteraudio setting. Remember process 1
  365. ; changed it to 10%. Now change it to 50%
  366. ;
  367. masteraudio query volume wait
  368. =10
  369. masteraudio volume 50
  370. ;
  371. acquire wav2 wait
  372. @WAIT_PASSDEVICE wav2 45000
  373. #
  374. connector wav2 enable type speakers notify
  375. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_CONNECTOR #22
  376. @WAIT_NOTIFY 22 60000
  377. ;
  378. ; change time format to milliseconds format
  379. ;
  380. set wav2 time format milliseconds wait
  381. ;
  382. seek wav2 to start wait
  383. ;
  384. ; seek to 10 seconds into currently loaded element
  385. ;
  386. seek wav2 to 10000 notify
  387. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_SEEK #23
  388. @WAIT_NOTIFY 23 60000
  389. ;
  390. ; play asynchronously for 3 seconds
  391. ;
  392. play wav2
  393. @PAUSE 3000
  394. ;
  395. ; close device instance
  396. ;
  397. close wav2 wait
  398. ;
  399. ; open waveaudio device instance non-exclusively
  400. ;
  401. open waveaudio alias wav2_1 shareable wait
  402. @WAIT_PASSDEVICE wav2_1 45000
  403. ;
  404. ; enable speakers connector
  405. ;
  406. load wav2_1 ?MMDATA-AUD?\16b44k.wav wait readonly
  407. ;
  408. connector wav2_1 enable type speakers wait
  409. ;
  410. ; cue for play
  411. ;
  412. cue wav2_1 output wait
  413. ;
  414. ; play for 3 seconds
  415. ;
  416. play wav2_1 notify
  417. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_PLAY
  418. @PAUSE 3000
  419. ;
  420. ; change time format to milliseconds format
  421. ;
  422. set wav2_1 time format milliseconds wait
  423. #
  424. pause wav2_1 notify
  425. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_PAUSE #25
  426. @WAIT_NOTIFY 25 60000
  427. ;
  428. @SET_EVENT HASCTRL2 0
  429. @SET_EVENT HASCTRL1 1
  430. @WAIT_EVENT HASCTRL2 60000
  431. ;
  432. ; try to play waveaudio device instance (expect error as process 1 has
  433. ; control)
  434. ;
  435. ; wav1_1 & wav2_1 are both mono and at this point in the script
  436. ; both are active - hence wav1_1 will not receive gaining-use
  437. ;
  438. ; @WAIT_PASSDEVICE wav1_1 60000
  439. #
  440. play wav2_1 notify
  441. =!Instance inactive.
  442. ;
  443. ; try to gain control of resource (cd device/acpa) held exclusively
  444. ; by process 1 (expect error)
  445. ;
  446. acquire wav2_1 wait
  447. =!Device is locked.
  448. ;
  449. ;
  450. @SET_EVENT HASCTRL2 0
  451. @SET_EVENT HASCTRL1 1
  452. @WAIT_EVENT HASCTRL2 60000
  453. ;
  454. ; recover control from process 1
  455. ;
  456. acquire wav2_1 notify
  457. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_ACQUIREDEVICE #26
  458. @WAIT_NOTIFY 26 60000
  459. @WAIT_PASSDEVICE wav2_1 45000
  460. ;
  461. ; resume play for 3 seconds
  462. ;
  463. resume wav2_1 notify
  464. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_RESUME
  465. @PAUSE 3000
  466. ;
  467. @SET_EVENT HASCTRL2 0
  468. @SET_EVENT HASCTRL1 1
  469. @WAIT_EVENT HASCTRL2 60000
  470. ;
  471. ; recover control from process 1
  472. ;
  473. acquire wav2_1 notify
  474. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_ACQUIREDEVICE #27
  475. @WAIT_NOTIFY 27 60000
  476. @WAIT_PASSDEVICE wav2_1 45000
  477. stop wav2_1 notify
  478. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_STOP #28
  479. @WAIT_NOTIFY 28 60000
  480. ;
  481. @SET_EVENT HASCTRL2 0
  482. @SET_EVENT HASCTRL1 1
  483. @WAIT_EVENT HASCTRL2 60000
  484. ;
  485. ; recover control from process 1
  486. ;
  487. acquire wav2_1 notify
  488. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_ACQUIREDEVICE #29
  489. @WAIT_NOTIFY 29 60000
  490. @WAIT_PASSDEVICE wav2_1 45000
  491. seek wav2_1 to start notify
  492. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_SEEK #30
  493. @WAIT_NOTIFY 30 60000
  494. ;
  495. @SET_EVENT HASCTRL2 0
  496. @SET_EVENT HASCTRL1 1
  497. @WAIT_EVENT HASCTRL2 60000
  498. ;
  499. ; recover control from process 1
  500. ;
  501. acquire wav2_1 notify
  502. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_ACQUIREDEVICE #31
  503. @WAIT_NOTIFY 31 60000
  504. @WAIT_PASSDEVICE wav2_1 45000
  505. connector wav2_1 query type speakers notify
  506. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_CONNECTOR #32
  507. @WAIT_NOTIFY 32 60000
  508. ;
  509. ; play for 3 seconds
  510. ;
  511. play wav2_1 notify
  512. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_PLAY
  513. @PAUSE 3000
  514. ;
  515. @SET_EVENT HASCTRL2 0
  516. @SET_EVENT HASCTRL1 1
  517. @WAIT_EVENT HASCTRL2 60000
  518. ;
  519. ; recover control from process 1
  520. ;
  521. acquire wav2_1 notify
  522. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_ACQUIREDEVICE #33
  523. @WAIT_PASSDEVICE wav2_1 45000
  524. @WAIT_NOTIFY 33 60000
  525. pause wav2_1 notify
  526. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_PAUSE #34
  527. @WAIT_NOTIFY 34 60000
  528. ;
  529. @SET_EVENT HASCTRL2 0
  530. @SET_EVENT HASCTRL1 1
  531. @WAIT_EVENT HASCTRL2 60000
  532. ;
  533. ; recover control from process 1
  534. ;
  535. acquire wav2_1 notify
  536. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_ACQUIREDEVICE #35
  537. @WAIT_NOTIFY 35 60000
  538. @WAIT_PASSDEVICE wav2_1 45000
  539. ;
  540. ; resume play for 3 seconds
  541. ;
  542. resume wav2_1 notify
  543. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_RESUME
  544. @PAUSE 3000
  545. ;
  546. @SET_EVENT HASCTRL2 0
  547. @SET_EVENT HASCTRL1 1
  548. @WAIT_EVENT HASCTRL2 60000
  549. ;
  550. ; recover control from process 1
  551. ;
  552. acquire wav2_1 notify
  553. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_ACQUIREDEVICE #36
  554. @WAIT_NOTIFY 36 60000
  555. @WAIT_PASSDEVICE wav2_1 45000
  556. stop wav2_1 notify
  557. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_STOP #37
  558. @WAIT_NOTIFY 37 60000
  559. ;
  560. @SET_EVENT HASCTRL2 0
  561. @SET_EVENT HASCTRL1 1
  562. @WAIT_EVENT HASCTRL2 60000
  563. ;
  564. ; Do some statuses on the inactive instance
  565. ;
  566. status wav2_1 time format wait
  567. =milliseconds
  568. ;
  569. ; recover control from process 1
  570. ;
  571. acquire wav2_1 notify
  572. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_ACQUIREDEVICE #38
  573. @WAIT_NOTIFY 38 60000
  574. @WAIT_PASSDEVICE wav2_1 45000
  575. status wav2_1 ready wait
  576. =TRUE
  577. ;
  578. seek wav2_1 to end notify
  579. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_SEEK #39
  580. @WAIT_NOTIFY 39 60000
  581. ;
  582. ; close waveaudio device instance for this process
  583. ;
  584. close wav2_1 notify
  585. +MM_MCINOTIFY MCI_NOTIFY_SUCCESSFUL MCI_CLOSE #40
  586. @WAIT_NOTIFY 40 60000
  587. ;
  588. @SET_EVENT HASCTRL2 0
  589. @SET_EVENT HASCTRL1 1
  590. ;
  591.