⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 playlist.h

📁 一款MP3 Player Firmware 的原代码,非常有参考价值
💻 H
字号:
#ifndef PLAYLIST_H#define PLAYLIST_H 1#include "malloc.h"typedef enum {	MODE_MIN = 0,	MODE_DIRONLY = 0, // play files sequentially within one directory	MODE_DIRRAND,     // play files randomly within one directory	MODE_SEQNTIAL,    // play all files sequentially	MODE_PLSTRAND,    // play each dir sequentially, but randomly choose dirs	MODE_KEYRAND,	  // play all files sequentially until a key is pressed			  // choose randomly from all files on key press	MODE_ALLRAND,     // play all files randomly	MODE_MAX = 5} play_modes_t;extern const play_modes_t play_mode;struct playlist_list_struct {        simm_id name;	unsigned int num_unrand_files;        simm_id /* struct playlist_list_struct */ prev_sequential;        simm_id /* struct playlist_list_struct */ next_sequential;        simm_id /* struct playlist_struct */ playlist_start_sequential;        simm_id /* struct playlist_struct */ playlist_end_sequential;        simm_id /* struct playlist_list_struct */ prev_random;        simm_id /* struct playlist_list_struct */ next_random;        simm_id /* struct playlist_struct */ playlist_start_random;        simm_id /* struct playlist_struct */ playlist_random_head;        simm_id /* struct playlist_struct */ playlist_random_tail;	char is_randomized_l;};typedef xdata struct playlist_list_struct playlist_list_t;struct playlist_struct {        simm_id /* struct filelist_struct */ fl_rec;	simm_id /* struct playlist_list_struct */ playlist;        simm_id /* struct playlist_struct */ prev_sequential;        simm_id /* struct playlist_struct */ next_sequential;        simm_id /* struct playlist_struct */ prev_random;        simm_id /* struct playlist_struct */ next_random;	char is_randomized;};typedef xdata struct playlist_struct playlist_t;typedef union {	struct {		unsigned int song_offset;		unsigned int list_offset;	} part;	struct {		unsigned char song_offset_lsb;		unsigned char song_offset_msb;		unsigned char list_offset_lsb;		unsigned char list_offset_msb;	} byte;	unsigned long whole;} playlist_state_t;extern simm_id first_playlist;       /* in list of playlists */extern simm_id last_playlist;        /* in list of playlists */ extern simm_id current_playlist;extern void playlist_init();extern void playlist_create(simm_id pl_name);extern void playlist_add_file(simm_id fl_rec);extern void playlist_show();extern void playlist_show_all();extern void playlist_purge_empty(void);extern void play_mode_next(void);extern void play_mode_prev(void);extern void play_mode_toggle(void);extern void save_play_mode(void);extern void play_mode_set(play_modes_t new_play_mode);extern void play_mode_change(void);extern simm_id next_file_ptr(playlist_t *p, unsigned char keyflag);extern simm_id prev_file_ptr(playlist_t *p);extern simm_id next_playlist_ptr(playlist_t *p, unsigned char keyflag);extern simm_id prev_playlist_ptr(playlist_t *p);extern unsigned long playlist_to_state(playlist_t *p);extern simm_id state_to_playlist(unsigned long state_in);extern void playlist_show_rand(void);#define next_file(ID, KEY) (next_file_ptr((playlist_t *)addr6(ID), KEY))#define prev_file(ID) (prev_file_ptr((playlist_t *)addr6(ID)))#define next_playlist(ID, KEY) (next_playlist_ptr((playlist_t *)addr6(ID), KEY))#define prev_playlist(ID) (prev_playlist_ptr((playlist_t *)addr6(ID)))#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -