doubao_chat/apps/common/fm/fm_manage.h

66 lines
1.8 KiB
C

#ifndef _FM_MANAGE_H
#define _FM_MANAGE_H
#include "app_config.h"
#include "os/os_api.h"
#define FREQ_STEP (100)//100 步进
#if 0
#define REAL_FREQ_MIN (875*10)
#define REAL_FREQ_MAX (1080*10)
#define VIRTUAL_FREQ_STEP (FREQ_STEP/10)
#define REAL_FREQ(x) ((REAL_FREQ_MIN-VIRTUAL_FREQ_STEP) + (x)*VIRTUAL_FREQ_STEP)
#define VIRTUAL_FREQ(x) ((x - (REAL_FREQ_MIN-VIRTUAL_FREQ_STEP))/VIRTUAL_FREQ_STEP)
#define MAX_CHANNEL ((REAL_FREQ_MAX - REAL_FREQ_MIN)/VIRTUAL_FREQ_STEP + 1)
#else
#define REAL_FREQ_MIN (875)
#define REAL_FREQ_MAX (1080)
#define REAL_FREQ(x) ((REAL_FREQ_MIN-1) + x)
#define VIRTUAL_FREQ(x) (x - (REAL_FREQ_MIN-1))
#define MAX_CHANNEL (REAL_FREQ_MAX - REAL_FREQ_MIN + 1)
#endif
#define FM_MUSIC_PP (0x01)
#define FM_SCAN_ALL_UP (0x02)
#define FM_SCAN_ALL_DOWN (0x03)
#define FM_PREV_STATION (0x04)
#define FM_NEXT_STATION (0x05)
#define FM_PREV_FREQ (0x06)
#define FM_NEXT_FREQ (0x07)
#define FM_VOLUME_UP (0x08)
#define FM_VOLUME_DOWN (0x09)
#define FM_DEC_ON (0x0a)
#define FM_DEC_OFF (0x0b)
#define FM_MSG_EXIT (0xff)
typedef const struct {
int (*init)(void *priv);
int (*close)(void *priv);
u8(*set_fre)(void *priv, u16 fre);
void(*mute)(void *priv, u8 flag);
u8(*read_id)(void *priv);
const char *logo;
} FM_INTERFACE;
extern FM_INTERFACE fm_dev_begin[];
extern FM_INTERFACE fm_dev_end[];
#define REGISTER_FM(fm) \
static FM_INTERFACE fm SEC_USED(.fm_dev)
#define list_for_each_fm(c) \
for (c=fm_dev_begin; c<fm_dev_end; c++)
void fm_IIC_write(u8 w_chip_id, u8 register_address, u8 *buf, u32 data_len);
u8 fm_IIC_readn(u8 r_chip_id, u8 register_address, u8 *buf, u8 data_len);
int fm_server_msg_post(int msg);
int fm_server_init(void);
void fm_sever_kill(void);
#endif