qfedu-c-level/lyric_analysis/srcs/includes/lrc.h

28 lines
1.2 KiB
C
Raw Permalink Normal View History

#ifndef __LRC_H__
#define __LRC_H__
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct lrc
{
2023-07-23 17:30:05 +08:00
int time; // 歌词时间点
// long time; // 用于毫秒级延时
char lrc_buf[200]; // 歌词内容
int lrc_cur_num; // 当前歌词行数, 用于标记当前歌词(第几句歌词 从1开始)
2023-07-23 17:30:05 +08:00
struct lrc *next; // 指向下一行歌词(指向链表下一个节点)
} LRC;
2023-07-23 17:30:05 +08:00
FILE *open_lrc_file(const char *lrc_path); // 打开歌词文件
long get_lrc_size(FILE *fp); // 获取歌词文件大小
char *get_lrc_mem_data(FILE *fp); // 获取歌词文件内容
LRC *insert_lrc_node(LRC *head, LRC new_node); // 插入歌词节点 (尾插法)
LRC *search_lrc_node(LRC *head, int time); // 查找歌词节点 (根据时间点查找歌词节点)
// LRC *search_lrc_node(LRC *head, long time); // 查找歌词节点 (根据时间点查找歌词节点) (用于毫秒级延时)
void handle_first_4_lines(char *lrc_lines[]); // 处理前 4 行歌词
LRC *save_to_linklist(char *lrc_lines[], int rows); // 保存到链表
void show_lrcs(LRC *head); // 显示歌词
#endif