AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
AG903_ViaMgrGetInputHandle 関数

VIA ハンドル取得

Syntax
C++
int32_t AG903_ViaMgrGetInputHandle(int32_t * ports, int32_t num_ports, AG903_ViaMgrInputHandle ** handles);
引数 
説明 
int32_t * ports 
[in] 取得する入力ポート番号を格納した配列 
int32_t num_ports 
[in] portsの配列要素数(=取得するハンドル数) 
AG903_ViaMgrInputHandle ** handles 
[out] 取得したハンドルを格納する配列 

ハンドル取得結果

返値の詳細 
説明 
正常終了 
-AG903_EINVAL 
アナログビデオ入力の初期化が行われていない場合
ports に 0~3 の範囲外の値が指定された場合
ports、handles に NULL が指定された場合 
-AG903_ENOMEM 
ports で指定されたポートに対応するハンドルが取得済の場合 

入力ポート番号を指定してナログビデオア入力ハンドル(AG903_ViaMgrInputHandle)を取得します。 

要求された番号が使用中の場合、handles には何も格納しません。 

handles にはポート番号に指定された番号順にハンドルを格納します。

1: int32_t AG903_ViaMgrGetInputHandle(int32_t *ports, int32_t num_ports, AG903_ViaMgrInputHandle **handles) 2: { 3: int32_t i; 4: _Bool num_check[AG903_VIA_MGR_MAX_PORTS] = {false}; 5: 6: if (init_check != true) { 7: return -AG903_EINVAL; 8: } 9: if (num_ports > AG903_VIA_MGR_MAX_PORTS) { 10: return -AG903_EINVAL; 11: } 12: if ((ports == NULL) || (handles == NULL)) { 13: return -AG903_EINVAL; 14: } 15: for (i = 0; i < num_ports; i++) { 16: if ((ports[i] < 0) || (ports[i] >= AG903_VIA_MGR_MAX_PORTS)) { 17: return -AG903_EINVAL; 18: } 19: if (ViaContext.used_ports[ports[i]] != false) { 20: return -AG903_ENOMEM; 21: } 22: 23: if (num_check[ports[i]] == true) { 24: return -AG903_EINVAL; 25: } 26: num_check[ports[i]] = true; 27: } 28: 29: for (i = 0; i < num_ports; i++) { 30: 31: handles[i] = (AG903_ViaMgrInputHandle *)&ViaContext.ports[ports[i]]; 32: handles[i]->id = AG903_VIA_MGR_INPUT_HANDLE_ID; 33: handles[i]->port_no = ports[i]; 34: 35: ViaContext.used_ports[ports[i]] = true; 36: } 37: return AG903_ENONE; 38: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.