From 05a4c31e60df3381328cc9e241a9acd1bee1508a Mon Sep 17 00:00:00 2001 From: daleclack Date: Sun, 24 Sep 2023 19:24:33 +0800 Subject: [PATCH] Fix some bugs --- .../gtk154_mediaplayer3/.vscode/settings.json | 5 +- Gtk4/gtk154_mediaplayer3/src/LyricsParser.cpp | 71 +++++++++---------- 2 files changed, 39 insertions(+), 37 deletions(-) diff --git a/Gtk4/gtk154_mediaplayer3/.vscode/settings.json b/Gtk4/gtk154_mediaplayer3/.vscode/settings.json index b4d8c35..6cdd3ad 100644 --- a/Gtk4/gtk154_mediaplayer3/.vscode/settings.json +++ b/Gtk4/gtk154_mediaplayer3/.vscode/settings.json @@ -1,3 +1,6 @@ { - "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools" + "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools", + "files.associations": { + "cstring": "cpp" + } } \ No newline at end of file diff --git a/Gtk4/gtk154_mediaplayer3/src/LyricsParser.cpp b/Gtk4/gtk154_mediaplayer3/src/LyricsParser.cpp index de9c241..c2b9b04 100644 --- a/Gtk4/gtk154_mediaplayer3/src/LyricsParser.cpp +++ b/Gtk4/gtk154_mediaplayer3/src/LyricsParser.cpp @@ -2,8 +2,6 @@ #include "LyricsParser.h" #include "MyMediaPlayer.h" #include -#include -#include #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];