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

📄 fileselect.h

📁 Actions ucOS-II mp3方案源码,可以做参考
💻 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 + -