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

ウィンドウパラメータ設定

Syntax
C++
int32_t AG903_DSPMgrSetWindowParam(AG903_DSPMgrHandle * handle, AG903_DSPMgrWindowParam * param);
引数 
説明 
AG903_DSPMgrHandle * handle 
[in] DSPハンドル 
AG903_DSPMgrWindowParam * param 
[in] ウィンドウパラメータ 

エラーコード

返値の詳細 
説明 
正常終了 
-AG903_EINVAL 
パラメータ異常, 境界条件違反 
-AG903_EBUSY 
表示回路動作中 
-AG903_ECHRNG 
最大ウィンドウ数超過 

ウィンドウパラメータの設定を変更します.

表示回路動作中には設定できません. 

ウィンドウアトリビュートリストは8Byte境界に配置する必要があります. 

ウィンドウアトリビュートリストの領域のメモリ属性はキャッシュ不可として下さい. 

ウィンドウアトリビュートリストのウインドウ数の値が不正でエラーになった場合は関連するパラメターも含めて確認してください。 

リリースビルド等でPrimitive層をNDEBUGを定義してコンパイルしている場合、ウィンドウアトリビュートリストの値の妥当性はチェックされません。

1: int32_t AG903_DSPMgrSetWindowParam(AG903_DSPMgrHandle *handle, AG903_DSPMgrWindowParam *param) 2: { 3: int32_t rc = AG903_ENONE; 4: uint8_t ch; 5: 6: if ((handle == NULL) || (param == NULL)) 7: return -AG903_EINVAL; 8: if (param->window_attr_base & ~0xFFFFFFF8) 9: return -AG903_EINVAL; 10: 11: rc = DSPMgrCheckHandle(handle, &ch); 12: 13: if (rc == AG903_ENONE) { 14: rc = AG903_DSPMgrCheckStopped(handle); 15: } 16: 17: if (rc == AG903_ENONE) { 18: DSPPrmParamMOD mod; 19: uint32_t act, conf; 20: 21: AG903_DSPPrmGetMOD(ch, &mod); 22: mod.upd = param->update_timing; 23: AG903_DSPPrmSetMOD(ch, &mod); 24: 25: AG903_DSPPrmSetBGCOL(ch, param->background); 26: AG903_DSPPrmSetWINNUM(ch, param->num_config); 27: AG903_DSPPrmSetWATNUM(ch, param->num_attr); 28: AG903_DSPPrmSetWATBASE(ch, param->window_attr_base); 29: AG903_DSPPrmSetLSTCTRL(ch, 30: param->palette_update, 31: param->window_attr_update); 32: AG903_DSPPrmGetWINNUM(ch, &act, &conf); 33: if (param->num_config != act) { 34: rc = -AG903_ECHRNG; 35: } 36: } 37: 38: return rc; 39: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.