📄 fileselect.h
字号:
/*
*********************************************************************************************************
* uC/OS-II
* The Real-Time Kernel
*
* (c) Copyright 1992-2001, Jean J. Labrosse, Weston, FL
* All Rights Reserved
*
* File : declare.h
* By : wurui
*********************************************************************************************************
*/
#ifndef __FILESELECT_H
#define __FILESELECT_H
#ifdef __IAR_SYSTEMS_ICC
#endif /* __IAR_SYSTEMS_ICC */
#include "includes.h"
#include "fs_api.h"
#include "my_os_q.h"
#include "task_cfg.h"
extern OS_EVENT *FileSelect_In;
#define FSEL_TotalDirLayer 8
/**********************************************
* 0x00~~~~~0x0F预留给系统消息
**********************************************/
/**********************************************
* 任务消息由0x10开始
**********************************************/
/**********************************************
* fileselector接收其它任务发过来的消息
**********************************************/
#define MSG_fsel_NoOperate 0x10
#define MSG_fsel_SetLocation 0x11
#define MSG_fsel_ComputerFileNo 0x12
#define MSG_fsel_GetCurFile 0x13
#define MSG_fsel_GetNextFile 0x14
#define MSG_fsel_GetPrevFile 0x15
#define MSG_fsel_GetNextGroup 0x16
#define MSG_fsel_GetPrevGroup 0x17
#define MSG_fsel_GetCurGroupL 0x18
#define MSG_fsel_GetCurFNameL 0x19
#define MSG_fsel_DelCurFile 0x1a
#define MSG_fsel_DelGroupFile 0x1b
#define MSG_fsel_GetNextNFiles 0x1c
#define MSG_fsel_GetPrevNFiles 0x1d
#define MSG_fsel_Close 0x1e
#define MSG_fsel_GetFileByNo 0x1f
#define MSG_fsel_GetNFilesByNo 0x20
#define MSG_playlist_NextClass 0x21
#define MSG_playlist_PrevClass 0x22
#define MSG_fsel_ToNextDir 0x31
#define MSG_fsel_ToPrevDir 0x32
#define MSG_fsel_GetFileFullNameByNo 0x33
/*********************************
* fileselector错误类型
**********************************/
#define MS_FSELErr 0x50
#define MS_fsel_NoErr 0
#define MS_fsel_NoFileErr 0xe0
#define MS_fsel_LocationErr 0xe1
#define MS_fsel_ExtNameErr 0xe2
#define MS_fsel_GetLongNameErr 0xe3
//#define MSG_fsel_ReadNextDir 0xe4
#define MS_fsel_ModeErr 0xf7
#define MS_fsel_FileSearchEnd 0xf8
#define MS_fsel_NoSubDirErr 0xf9
#define MS_fsel_DirNotExistErr 0xfa
#define MS_fsel_RechRootEndErr 0xfb
#define MS_fsel_RechRootHeadErr 0xfc
#define MS_fsel_EntryNotExistErr 0xfd
#define MS_fsel_NoMoreDirErr MS_fsel_EntryNotExistErr
#define MS_fsel_NoMoreFileErr 0xfe
#define MS_fsel_UndefineErr 0xff
/*********************************
* fileselector选择方式
**********************************/
#define FSEL_TYPE_COMMONDIR 0
#define FSEL_TYPE_PLAYLIST 1
/*********************************
* fileselector选择类型
**********************************/
typedef enum
{
FSEL_ALL_SEQUENCE=0, // 全部文件遍历搜索(每一个文件只搜一次)
FSEL_ALL_REPEATONE, // 文件单独循环
FSEL_DIR_SEQUENCE, // 当前目录遍历搜索(每一个文件只搜一次)
FSEL_DIR_REPEATALL, // 当前目录循环搜索
FSEL_ALL_REPEATALL, // 全部文件循环搜索
FSEL_DIR_RANDOM, // 当前目录随机选择
FSEL_DIR_INTRO // 浏览模式 在文件选择器上等同于FSEL_ALL_SEQUENCE
}fselect_mode_t;
typedef char* fselect_fileExts;
typedef struct
{
WORD fsel_TotalNo; //Number of total file,
WORD fsel_FileNo; //Number of current file,
WORD fsel_SeekFileNo;
BYTE fsel_DirLayer; //当前目录层次.与fselDirNo[]共同记录当前目录在目录树中的位置.
BYTE fsel_DirNo[FSEL_TotalDirLayer]; //Number of current valid directory
// WORD fsel_CurDirFirseFileNo;
OS_EVENT *FileSelect_Out;
OS_EVENT *FSelSem;
fselect_mode_t fsel_mode;
FS_DIR *fsel_CurDir;
char fsel_LocationDir[74]; //8*8+9+1
char fsel_CurDirName[FS_DIRNAME_MAX];
struct FS_DIRENT *fsel_Dirent;
fselect_fileExts *fsel_Exts; //fsel_Exts={"WMA","MP3","OGG","ASF",NULL};
BYTE fsel_ExtNo; //fsel_Exts[fsel_ExtNo=0] == "WMA";
//char fsel_DiskLetter;
BYTE fsel_Error; // store error id;
//WORD fselRandCount;//用空闲任务的IdleCtr替代
BYTE fsel_Playlist_Dir_mode; //
char **fsel_NFileNames;
int *fileno;
char direction;
char *fsel_FileLocationName;
char *fsel_FileLongName;
}fselector_t;
void FileSelectEngineCreate();
#endif /*__FILESELECT_H*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -