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

📄 playlist.c

📁 A MP3 Player Source Code, Enjoy it!
💻 C
字号:
#include <string.h>#include "as31glue.h"#include "printf.h"#include "paulmon2.h"#include "display.h"#include "malloc.h"#include "dirlist.h"#include "playlist.h"#include "stricmp.h"simm_id current_playlist;simm_id first_playlist;simm_id last_playlist;// #pragma NOGCSEvoid playlist_init(void){  first_playlist=0;  last_playlist=0;  current_playlist=0;}extern data simm_id temp_id;void playlist_create(simm_id pl_name) {  // simm_id temp_id;  playlist_list_t * pl_l_struct;  temp_id = simm_malloc((unsigned int)(sizeof(struct playlist_list_struct)));  if(first_playlist == 0)    {      first_playlist = temp_id;      last_playlist = temp_id;      pl_l_struct = addr6(temp_id);      pl_l_struct->prev = 0;    }  else    {      pl_l_struct = addr6(last_playlist);      pl_l_struct->next = temp_id;      pl_l_struct = addr6(temp_id);      pl_l_struct->prev = last_playlist;      last_playlist = temp_id;    }  current_playlist = temp_id;  pl_l_struct->next = 0;  pl_l_struct->playlist_start = 0;  pl_l_struct->playlist_end = 0;  pl_l_struct->name = pl_name;  //printf("playlist %s created\r\n", addr6(pl_name));}void playlist_add_file(simm_id /* struct filelist_struct */ fl_rec) // Add file to current playlist{  // xdata simm_id temp_id;  playlist_list_t * pl_l_struct;  playlist_t * pl_struct;   pl_l_struct = addr6(current_playlist);  temp_id = simm_malloc((unsigned int)(sizeof(struct playlist_struct)));  if(pl_l_struct->playlist_start == 0)    {      pl_l_struct->playlist_start = temp_id;      pl_l_struct->playlist_end = temp_id;      pl_struct = addr7(temp_id);      pl_struct->prev = 0;    }  else    {      pl_struct = addr7(pl_l_struct->playlist_end);      pl_struct->next = temp_id;       pl_struct = addr7(temp_id);      pl_struct->prev = pl_l_struct->playlist_end;      pl_l_struct->playlist_end = temp_id;    }  pl_struct->next = 0;  pl_struct->fl_rec = fl_rec;}void playlist_show(void) // Shows the Current Playlist{  playlist_t * pl_struct;  filelist_t * fl_struct;    temp_id = ((playlist_list_t *)addr7(current_playlist))->playlist_start;  while(temp_id != 0)    {      pl_struct = addr6(temp_id);      fl_struct = addr7(pl_struct->fl_rec);      print_str(addr6(fl_struct->long_name));      print_crlf();      temp_id = ((playlist_t *)addr6(temp_id))->next;    }}void playlist_show_all() // Show all playlists{  playlist_list_t * pl_l_struct;  current_playlist = first_playlist;  while(current_playlist != 0)    {      pl_l_struct = addr6(current_playlist);      print("\r\nPlaylist ");      print_str(addr7(pl_l_struct->name));      printf("(%s)",addr7(pl_l_struct->name)); // seems to print junk unless I do this      print_crlf();      playlist_show();      print_crlf();      pl_l_struct = addr6(current_playlist);      current_playlist = pl_l_struct->next;    }  current_playlist = first_playlist; // Reset to first}

⌨️ 快捷键说明

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