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

📄 playlist.h

📁 编译后直接运行的MP3播放器全部C语言源代码 一个包含FAT文件系统、系统引导 Boot、FLASH Driver等内容的
💻 H
字号:
/*************************************************************************** *             __________               __   ___. *   Open      \______   \ ____   ____ |  | _\_ |__   _______  ___ *   Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  / *   Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  < *   Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \ *                     \/            \/     \/    \/            \/ * $Id: playlist.h,v 1.32 2004/01/26 17:05:21 hardeeps Exp $ * * Copyright (C) 2002 by wavey@wavey.org * * All files in this archive are subject to the GNU General Public License. * See the file COPYING in the source tree root for full license agreement. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ****************************************************************************/#ifndef __PLAYLIST_H__#define __PLAYLIST_H__#include <stdbool.h>#include "file.h"#include "kernel.h"/* playlist data */struct playlist_info{    bool current;        /* current playing playlist                */    char filename[MAX_PATH];  /* path name of m3u playlist on disk  */    char control_filename[MAX_PATH]; /* full path of control file   */    int  fd;             /* descriptor of the open playlist file    */    int  control_fd;     /* descriptor of the open control file     */    bool control_created; /* has control file been created?         */    int  dirlen;         /* Length of the path to the playlist file */    unsigned int *indices; /* array of indices                      */    int  max_playlist_size; /* Max number of files in playlist. Mirror of                              global_settings.max_files_in_playlist */    bool in_ram;         /* playlist stored in ram (dirplay)        */    char *buffer;        /* buffer for in-ram playlists             */    int  buffer_size;    /* size of buffer                          */    int  buffer_end_pos; /* last position where buffer was written  */    int  index;          /* index of current playing track          */    int  first_index;    /* index of first song in playlist         */    int  amount;         /* number of tracks in the index           */    int  last_insert_pos; /* last position we inserted a track      */    int  seed;           /* shuffle seed                            */    bool shuffle_modified; /* has playlist been shuffled with                              inserted tracks?                      */    bool deleted;        /* have any tracks been deleted?           */    int num_inserted_tracks; /* number of tracks inserted           */    bool shuffle_flush;  /* does shuffle value need to be flushed?  */    struct mutex control_mutex; /* mutex for control file access    */};#define PLAYLIST_ATTR_QUEUED    0x01#define PLAYLIST_ATTR_INSERTED  0x02struct playlist_track_info{    char filename[MAX_PATH]; /* path name of mp3 file               */    int  attr;               /* playlist attributes for track       */    int  index;              /* index of track in playlist          */    int  display_index;      /* index of track for display          */};/* Exported functions only for current playlist. */void playlist_init(void);int playlist_create(char *dir, char *file);int playlist_resume(void);int playlist_add(char *filename);int playlist_shuffle(int random_seed, int start_index);int playlist_start(int start_index, int offset);bool playlist_check(int steps);char *playlist_peek(int steps);int playlist_next(int steps);int playlist_get_resume_info(int *resume_index);int playlist_get_display_index(void);int playlist_amount(void);/* Exported functions for all playlists.  Pass NULL for playlist_info   structure to work with current playlist. */int playlist_create_ex(struct playlist_info* playlist, char* dir, char* file,                       void* index_buffer, int index_buffer_size,                       void* temp_buffer, int temp_buffer_size);int playlist_set_current(struct playlist_info* playlist);void playlist_close(struct playlist_info* playlist);int playlist_insert_track(struct playlist_info* playlist, char *filename,                          int position, bool queue);int playlist_insert_directory(struct playlist_info* playlist, char *dirname,                              int position, bool queue, bool recurse);int playlist_insert_playlist(struct playlist_info* playlist, char *filename,                             int position, bool queue);int playlist_delete(struct playlist_info* playlist, int index);int playlist_move(struct playlist_info* playlist, int index, int new_index);int playlist_randomise(struct playlist_info* playlist, unsigned int seed,                       bool start_current);int playlist_sort(struct playlist_info* playlist, bool start_current);bool playlist_modified(struct playlist_info* playlist);int playlist_get_first_index(struct playlist_info* playlist);int playlist_get_seed(struct playlist_info* playlist);int playlist_amount_ex(struct playlist_info* playlist);char *playlist_name(struct playlist_info* playlist, char *buf, int buf_size);char *playlist_get_name(struct playlist_info* playlist, char *buf,                        int buf_size);int playlist_get_track_info(struct playlist_info* playlist, int index,                            struct playlist_track_info* info);int playlist_save(struct playlist_info* playlist, char *filename);enum {    PLAYLIST_PREPEND = -1,    PLAYLIST_INSERT = -2,    PLAYLIST_INSERT_LAST = -3,    PLAYLIST_INSERT_FIRST = -4};enum {    PLAYLIST_DELETE_CURRENT = -1};#endif /* __PLAYLIST_H__ */

⌨️ 快捷键说明

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