📄 playlist.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 + -