Fix some bugs

This commit is contained in:
daleclack 2023-09-24 19:24:33 +08:00
parent 30f229d95a
commit 05a4c31e60
2 changed files with 39 additions and 37 deletions

View File

@ -1,3 +1,6 @@
{
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
"files.associations": {
"cstring": "cpp"
}
}

View File

@ -2,8 +2,6 @@
#include "LyricsParser.h"
#include "MyMediaPlayer.h"
#include <cstdio>
#include <cstring>
#include <vector>
#define lyrics_max_length 1024
@ -11,40 +9,6 @@ static FILE *lyrics_file = NULL;
static gboolean line_read = FALSE, lyrics_updated = FALSE;
static char current_lyrics[lyrics_max_length];
void update_lyrics(MyMediaPlayer *player)
{
// Get position between filename and extension
int point_pos;
char *current_filename = my_media_player_get_filename(player);
g_print("%s\n", current_filename);
for (int i = strlen(current_filename) - 1; i > 0; i--)
{
if (current_filename[i] == '.')
{
point_pos = i;
break;
}
}
// Get Lyrics file name
char lyric_filename[path_max_length];
strncpy(lyric_filename, current_filename, point_pos);
lyric_filename[point_pos] = '\0';
strncat(lyric_filename, ".lrc", 4);
g_print("%s\n", lyric_filename);
// Close pervious opened lyrics file
if (lyrics_file != NULL)
{
fclose(lyrics_file);
lyrics_file = NULL;
}
// Open the lyrics file
lyrics_file = fopen(lyric_filename, "rt+");
lyrics_updated = TRUE;
}
static void get_substr(char *src, char *dest, size_t start,
size_t end)
{
@ -110,6 +74,41 @@ static gint64 get_lrc_line_timestamp(const char *lyrics_line, size_t timestamp_l
return lyric_time;
}
void update_lyrics(MyMediaPlayer *player)
{
// Get position between filename and extension
int point_pos;
char *current_filename = my_media_player_get_filename(player);
g_print("%s\n", current_filename);
for (int i = strlen(current_filename) - 1; i > 0; i--)
{
if (current_filename[i] == '.')
{
point_pos = i;
break;
}
}
// Get Lyrics file name
char lyric_filename[path_max_length];
strncpy(lyric_filename, current_filename, point_pos);
lyric_filename[point_pos] = '\0';
strncat(lyric_filename, ".lrc", 4);
g_print("%s\n", lyric_filename);
// Close pervious opened lyrics file
if (lyrics_file != NULL)
{
fclose(lyrics_file);
lyrics_file = NULL;
}
// Open the lyrics file
lyrics_file = fopen(lyric_filename, "rt+");
lyrics_updated = TRUE;
line_read = FALSE;
}
static void get_lyrics(gint64 curr_time, gboolean playing, MyMediaPlayer *player)
{
char lyrics_line[lyrics_max_length];