VIP.C
[目次 | 関数]
1|/**************************************************************************
2|* 1. <<< 仮想インスタンス (Vip) >>>
3|***************************************************************************/
4|
5|#include <Vip.ah> /* Auto include header, Look at mixer-... folder */
6|
7|
8|
9|/*---------------------------------------------------------------------*/
10|/* 2. <<<◆(Vip) 仮想インスタンス >>> */
11|/*---------------------------------------------------------------------*/
12|
13|
14|/**************************************************************************
15|* 3. <<< [Vip_init] 初期化する >>>
16|*【引数】
17|* ・Vip* m; 仮想インスタンス
18|*【補足】
19|*・
20|***************************************************************************/
21|#ifdef USES_OTHER
22|void Vip_init( Vip* m )
23|{
24| int a;
25|
26| ERRORS_INITCHK( m, 0 );
27| ASSERT( a >= 0 );
28|
29| m->a = a;
30|
31| ERRORS_FINISHCHK_FOR_INIT( Vip_finish );
32|}
33|#endif
34|
35|
36|
37|/**************************************************************************
38|* 4. <<< [Vip_finish] 後始末する >>>
39|***************************************************************************/
40|#ifdef USES_OTHER
41|void Vip_finish( Vip* m )
42|{
43| ERRORS_INITCHK( m, 1 );
44| ERRORS_FINISHCHK_FOR_FINISH( Vip_finish );
45|
46| Other_finish( &m->a );
47|}
48|#endif
49|
50|
51|
52|/**************************************************************************
53|* 5. <<< [Vip_print] デバッグ表示する >>>
54|***************************************************************************/
55|#ifndef ERRORS_CUT_DEBUG_TOOL
56|void Vip_print( Vip* m, const char* title )
57|{
58| Errors_printf( "%sVip[%p]", title, m );
59|}
60|#endif
61|
62|
63|
64|/**************************************************************************
65|* 6. <<< [Vip_Instance_sync_sub] 空いている対象デバイスを検索して属性を設定する >>>
66|*【引数】
67|* ・Vip_Instance* m; 仮想インスタンス
68|* ・Vip_DevPool* pool; デバイス・プール
69|*【補足】
70|*・Vip_Instance_sync マクロのサブ・ルーチンです。
71|***************************************************************************/
72|void Vip_Instance_sync_sub( Vip_Instance* m, Vip_DevPool* pool )
73|{
74| Vip_Device* dev;
75|
76| ASSERT( m->selector->vi != m );
77|
78| if ( m->device->vi == m ) {
79| Vip_Device_select( m->device );
80| }
81| else {
82| dev = DList_getRLU( &pool->dlist, m->device );
83| Vip_Device_sync( dev, m );
84| m->device = dev;
85| }
86|}
87|
88|
89|