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: }