#ifndef _FM_EMITTTER_MANAGE_H #define _FM_EMITTTER_MANAGE_H #include "printf.h" #include "cpu.h" #include "asm/iic_hw.h" #include "asm/iic_soft.h" #include "timer.h" #include "app_config.h" #include "event.h" #include "system/includes.h" #define FM_EMITTER_MAX_VOL (30) typedef struct { u8 name[20]; u8(*init)(u16 fre); u8(*start)(void); u8(*stop)(void); u8(*set_fre)(u16 fre); u8(*set_power)(u8 power, u16 fre); void (*data_cb)(void *cb); } FM_EMITTER_INTERFACE; extern FM_EMITTER_INTERFACE fm_emitter_dev_begin[]; extern FM_EMITTER_INTERFACE fm_emitter_dev_end[]; #define REGISTER_FM_EMITTER(fm) \ static FM_EMITTER_INTERFACE fm SEC_USED(.fm_emitter_dev) #define list_for_each_fm_emitter(c) \ for (c=fm_emitter_dev_begin; c