lib/graphic/fast_test/demo_support/demo_manager.c¶
Functions¶
| Name | |
|---|---|
| void | CFBD_DemoManager_Run(CFBD_GraphicDevice * dev, const CFBD_DemoDescriptor * demos, uint32_t demo_count, CFBD_DemoRunMode mode, uint32_t index) Run demo list according to mode. |
Functions Documentation¶
function CFBD_DemoManager_Run¶
void CFBD_DemoManager_Run(
CFBD_GraphicDevice * dev,
const CFBD_DemoDescriptor * demos,
uint32_t demo_count,
CFBD_DemoRunMode mode,
uint32_t index
)
Run demo list according to mode.
Run demos according to selected mode.
Source code¶
#include "demo_manager.h"
#include "device/graphic_device.h"
#include "sys_clock/system_clock.h"
void CFBD_DemoManager_Run(CFBD_GraphicDevice* dev,
const CFBD_DemoDescriptor* demos,
uint32_t demo_count,
CFBD_DemoRunMode mode,
uint32_t index)
{
switch (mode) {
case CFBD_DEMO_RUN_SINGLE:
if (index < demo_count) {
dev->ops->clear(dev);
dev->ops->update(dev);
demos[index].entry(dev);
}
break;
case CFBD_DEMO_RUN_QUEUE:
for (uint32_t i = 0; i < demo_count; ++i) {
dev->ops->clear(dev);
dev->ops->update(dev);
demos[i].entry(dev);
if (demos[i].duration > 0) {
system_delay_ms(demos[i].duration);
}
}
break;
case CFBD_DEMO_RUN_LOOP:
while (1) {
for (uint32_t i = 0; i < demo_count; ++i) {
dev->ops->clear(dev);
dev->ops->update(dev);
demos[i].entry(dev);
if (demos[i].duration > 0) {
system_delay_ms(demos[i].duration);
}
}
}
break;
}
}
Updated on 2026-02-03 at 13:21:55 +0000