拔除allartist和allsongs,清理不必要函數
This commit is contained in:
parent
67c05a122b
commit
924d6229e7
@ -8,28 +8,11 @@ namespace DBObj
|
|||||||
*/
|
*/
|
||||||
public class ArtistManager
|
public class ArtistManager
|
||||||
{
|
{
|
||||||
private static ArtistManager _instance;
|
|
||||||
public List<Artist> AllArtists { get; private set; }
|
|
||||||
|
|
||||||
public static ArtistManager Instance
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (_instance == null)
|
|
||||||
{
|
|
||||||
_instance = new ArtistManager();
|
|
||||||
}
|
|
||||||
return _instance;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public ArtistManager()
|
public ArtistManager()
|
||||||
{
|
{
|
||||||
AllArtists = new List<Artist>();
|
|
||||||
//LoadArtists();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
// 筆畫問題
|
||||||
public List<Artist> GetArtistsByCategoryAndStrokeCountRange(string category, int minStrokes, int maxStrokes)
|
public List<Artist> GetArtistsByCategoryAndStrokeCountRange(string category, int minStrokes, int maxStrokes)
|
||||||
{
|
{
|
||||||
if (category == "全部")
|
if (category == "全部")
|
||||||
|
@ -7,140 +7,14 @@ namespace DBObj
|
|||||||
{
|
{
|
||||||
public class SongListManager
|
public class SongListManager
|
||||||
{
|
{
|
||||||
private static SongListManager _instance;
|
|
||||||
public List<SongData> AllSongs { get; private set; }
|
|
||||||
public static Dictionary<string, List<SongData>> NewSongLists { get; private set; }
|
|
||||||
public static Dictionary<string, List<SongData>> HotSongLists { get; private set; }
|
|
||||||
public List<SongData> FavoriteSongs { get; private set; }
|
public List<SongData> FavoriteSongs { get; private set; }
|
||||||
//public const int SongsPerPage = 9;
|
//public bool IsUserLoggedIn { get; set; }
|
||||||
|
//public string UserPhoneNumber { get; set; }
|
||||||
public bool IsUserLoggedIn { get; set; }
|
|
||||||
public string UserPhoneNumber { get; set; }
|
|
||||||
|
|
||||||
public SongListManager()
|
public SongListManager()
|
||||||
{
|
{
|
||||||
AllSongs = new List<SongData>();
|
|
||||||
NewSongLists = new Dictionary<string, List<SongData>>();
|
|
||||||
HotSongLists = new Dictionary<string, List<SongData>>();
|
|
||||||
FavoriteSongs = new List<SongData>();
|
FavoriteSongs = new List<SongData>();
|
||||||
|
|
||||||
// 尝试更新数据库,但无论结果如何都继续运行
|
|
||||||
//TryUpdateDatabase();
|
|
||||||
|
|
||||||
// 继续使用可用的数据库(可能是更新后的或原本的本地数据库)
|
|
||||||
//InitializeDatabase();
|
|
||||||
//LoadSongs();
|
|
||||||
//InitializeNewSongLists();
|
|
||||||
//InitializeHotSongLists();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
private bool TryUpdateDatabase()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// 1. 检查是否能连接到 SVR01
|
|
||||||
if (!Directory.Exists(@"\\SVR01\SuperstarB"))
|
|
||||||
{
|
|
||||||
Console.WriteLine("未連接到SVR使用本地DB");
|
|
||||||
return true; // 继续使用本地数据库
|
|
||||||
}
|
|
||||||
|
|
||||||
// 2. 比较本地和服务器文件
|
|
||||||
string localDbPath = Path.Combine(Application.StartupPath,"db" ,"KSongDatabase.db");
|
|
||||||
string serverDbPath = @"\\SVR01\SuperstarB\KSongDatabase.db";
|
|
||||||
|
|
||||||
if (!File.Exists(localDbPath))
|
|
||||||
{
|
|
||||||
Console.WriteLine("本地無db");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FileInfo localFile = new FileInfo(localDbPath);
|
|
||||||
FileInfo serverFile = new FileInfo(serverDbPath);
|
|
||||||
|
|
||||||
if (serverFile.LastWriteTime <= localFile.LastWriteTime)
|
|
||||||
{
|
|
||||||
Console.WriteLine("歌單已是最新");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 3. 需要更新时,复制新文件
|
|
||||||
Process copyProcess = new Process();
|
|
||||||
copyProcess.StartInfo.FileName = "cmd.exe";
|
|
||||||
copyProcess.StartInfo.Arguments = "/C copy /Y \\\\SVR01\\SuperstarB\\KSongDatabase.db \\db\\KSongDatabase.db";
|
|
||||||
copyProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
|
|
||||||
copyProcess.StartInfo.CreateNoWindow = true;
|
|
||||||
copyProcess.Start();
|
|
||||||
copyProcess.WaitForExit();
|
|
||||||
|
|
||||||
if (copyProcess.ExitCode == 0)
|
|
||||||
{
|
|
||||||
Console.WriteLine("歌單更新成功");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Console.WriteLine("歌單複製失敗,使用本地歌單");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Console.WriteLine($"更新歌單失敗:{ex.Message}");
|
|
||||||
return true; // 出错时继续使用本地数据库
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
public static SongListManager Instance
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (_instance == null)
|
|
||||||
{
|
|
||||||
_instance = new SongListManager();
|
|
||||||
}
|
|
||||||
return _instance;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<SongData> GetSongsByArtist(string artistName)
|
|
||||||
{
|
|
||||||
return AllSongs.Where(song => song.ArtistA == artistName || song.ArtistB == artistName).ToList();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void InitializeDatabase()
|
|
||||||
{
|
|
||||||
string databaseFileName = "KSongDatabase.db";
|
|
||||||
string databasePath = Path.Combine(Application.StartupPath, "db", databaseFileName);
|
|
||||||
string connectionString = String.Format("Data Source={0};Version=3;", databasePath);
|
|
||||||
|
|
||||||
using (var connection = new SQLiteConnection(connectionString))
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
connection.Open();
|
|
||||||
string createTableSql = @"
|
|
||||||
CREATE TABLE IF NOT EXISTS FavoriteSongs (
|
|
||||||
PhoneNumber TEXT NOT NULL,
|
|
||||||
SongNumber TEXT NOT NULL,
|
|
||||||
PRIMARY KEY (PhoneNumber, SongNumber)
|
|
||||||
);";
|
|
||||||
using (var command = new SQLiteCommand(createTableSql, connection))
|
|
||||||
{
|
|
||||||
command.ExecuteNonQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
connection.Close();
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Console.WriteLine("Failed to initialize SQLite database: " + ex.Message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void AddNewUser(string phoneNumber)
|
public void AddNewUser(string phoneNumber)
|
||||||
{
|
{
|
||||||
string databaseFileName = "KSongDatabase.db";
|
string databaseFileName = "KSongDatabase.db";
|
||||||
@ -179,100 +53,31 @@ namespace DBObj
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
public void AddToFavorite(string songNumber)
|
public List<SongData> SearchNewSongs(){
|
||||||
{
|
string query= $"SELECT * FROM song_library_cache WHERE language_name = '國語' ORDER BY add_date DESC LIMIT {PrimaryForm.ReadNewSongLimit()}";
|
||||||
if (!IsUserLoggedIn || string.IsNullOrEmpty(UserPhoneNumber))
|
return PrimaryForm.Instance.SearchSongs_Mysql(query);
|
||||||
{
|
}
|
||||||
Console.WriteLine("User is not logged in.");
|
public List<SongData> SearchHotSongs(){
|
||||||
return;
|
string query= $"SELECT * FROM song_library_cache WHERE language_name = '國語' ORDER BY add_date DESC LIMIT {PrimaryForm.ReadHotSongLimit()}";
|
||||||
}
|
return PrimaryForm.Instance.SearchSongs_Mysql(query);
|
||||||
|
|
||||||
string databaseFileName = "KSongDatabase.db";
|
|
||||||
string databasePath = Path.Combine(Application.StartupPath, "db", databaseFileName);
|
|
||||||
string connectionString = String.Format("Data Source={0};Version=3;", databasePath);
|
|
||||||
|
|
||||||
using (var connection = new SQLiteConnection(connectionString))
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
connection.Open();
|
|
||||||
|
|
||||||
|
|
||||||
string checkSql = "SELECT COUNT(*) FROM FavoriteSongs WHERE PhoneNumber = @PhoneNumber AND SongNumber = @SongNumber";
|
|
||||||
using (var checkCommand = new SQLiteCommand(checkSql, connection))
|
|
||||||
{
|
|
||||||
checkCommand.Parameters.AddWithValue("@PhoneNumber", UserPhoneNumber);
|
|
||||||
checkCommand.Parameters.AddWithValue("@SongNumber", songNumber);
|
|
||||||
long count = (long)checkCommand.ExecuteScalar();
|
|
||||||
|
|
||||||
if (count > 0)
|
|
||||||
{
|
|
||||||
|
|
||||||
Console.WriteLine(String.Format("Song {0} is already in favorites.", songNumber));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
string sql = "INSERT INTO FavoriteSongs (PhoneNumber, SongNumber) VALUES (@PhoneNumber, @SongNumber)";
|
|
||||||
using (var command = new SQLiteCommand(sql, connection))
|
|
||||||
{
|
|
||||||
command.Parameters.AddWithValue("@PhoneNumber", UserPhoneNumber);
|
|
||||||
command.Parameters.AddWithValue("@SongNumber", songNumber);
|
|
||||||
command.ExecuteNonQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
connection.Close();
|
|
||||||
|
|
||||||
|
|
||||||
var song = AllSongs.FirstOrDefault(s => s.SongNumber == songNumber);
|
|
||||||
if (song != null)
|
|
||||||
{
|
|
||||||
FavoriteSongs.Add(song);
|
|
||||||
Console.WriteLine(String.Format("Added song {0} to favorites.", songNumber));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Console.WriteLine(String.Format("Song {0} not found in AllSongs.", songNumber));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Console.WriteLine("Failed to add song to favorites: " + ex.Message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SongData> SearchSongsBySinger(string keyword)
|
public List<SongData> SearchSongsBySinger(string keyword)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
var keywordLower = keyword.ToLower();
|
var keywordLower = keyword.ToLower();
|
||||||
return AllSongs.Where(song => song.ArtistA.ToLower().Contains(keywordLower)
|
string query = $"SELECT * FROM song_library_cache WHERE artistA ='{keywordLower}' OR artistB='{keywordLower}'";
|
||||||
|| song.ArtistB.ToLower().Contains(keywordLower))
|
return PrimaryForm.Instance.SearchSongs_Mysql(query);
|
||||||
.ToList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SongData> SearchSongsByName(string keyword)
|
public List<SongData> SearchSongsByName(string keyword)
|
||||||
{
|
{
|
||||||
|
string query = $"SELECT * FROM song_library_cache WHERE LOWER(song_name) LIKE CONCAT('%', LOWER('{keyword}'), '%')";
|
||||||
|
return PrimaryForm.Instance.SearchSongs_Mysql(query);
|
||||||
var keywordLower = keyword.ToLower();
|
}
|
||||||
return AllSongs.Where(song => song.Song.ToLower().Contains(keywordLower)).ToList();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public SongData SearchSongByNumber(string songNumber)
|
public SongData SearchSongByNumber(string songNumber)
|
||||||
{
|
{
|
||||||
|
string query = $"SELECT * FROM song_library_cache WHERE song_id = {songNumber}";
|
||||||
foreach (var song in AllSongs)
|
var searchResults =PrimaryForm.Instance.SearchSongs_Mysql(query);
|
||||||
{
|
return searchResults.FirstOrDefault();
|
||||||
if (song.SongNumber == songNumber)
|
|
||||||
{
|
|
||||||
return song;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -348,15 +348,14 @@ namespace DualScreenDemo
|
|||||||
{
|
{
|
||||||
string requestBody = await ReadRequestBodyAsync(context.Request);
|
string requestBody = await ReadRequestBodyAsync(context.Request);
|
||||||
var searchRequest = JsonConvert.DeserializeObject<SearchRequest>(requestBody);
|
var searchRequest = JsonConvert.DeserializeObject<SearchRequest>(requestBody);
|
||||||
|
|
||||||
List<SongData> searchResults;
|
List<SongData> searchResults;
|
||||||
switch (searchRequest.Type)
|
switch (searchRequest.Type)
|
||||||
{
|
{
|
||||||
case "new-songs":
|
case "new-songs":
|
||||||
searchResults = SongListManager.NewSongLists["國語"];
|
searchResults = songListManager.SearchNewSongs();
|
||||||
break;
|
break;
|
||||||
case "top-ranking":
|
case "top-ranking":
|
||||||
searchResults = SongListManager.HotSongLists["國語"];
|
searchResults = songListManager.SearchHotSongs();
|
||||||
break;
|
break;
|
||||||
case "singer":
|
case "singer":
|
||||||
searchResults = songListManager.SearchSongsBySinger(searchRequest.Query);
|
searchResults = songListManager.SearchSongsBySinger(searchRequest.Query);
|
||||||
|
@ -1095,7 +1095,9 @@ private static void SongDisplayTimer_Elapsed(object sender, EventArgs e)
|
|||||||
selectedArtist = currentArtistList[artistIndex];
|
selectedArtist = currentArtistList[artistIndex];
|
||||||
currentLanguage = selectedArtist.Name;
|
currentLanguage = selectedArtist.Name;
|
||||||
SetUIState(UIState.SelectingSong);
|
SetUIState(UIState.SelectingSong);
|
||||||
LanguageSongList = SongListManager.Instance.GetSongsByArtist(selectedArtist.Name);
|
string query = $"SELECT * FROM song_library_cache WHERE artistA ='{selectedArtist.Name}' OR artistB='{selectedArtist.Name}' ";
|
||||||
|
LanguageSongList = PrimaryForm.Instance.SearchSongs_Mysql(query);
|
||||||
|
//LanguageSongList = SongListManager.Instance.GetSongsByArtist(selectedArtist.Name);
|
||||||
currentPage = 1;
|
currentPage = 1;
|
||||||
totalSongs = LanguageSongList.Count;
|
totalSongs = LanguageSongList.Count;
|
||||||
DisplaySongs(currentPage);
|
DisplaySongs(currentPage);
|
||||||
@ -1303,26 +1305,27 @@ public void UpdateHistoryLabel(List<SongData> historySongs, List<PlayState> play
|
|||||||
private void ProcessStrokeCountSelection(int number)
|
private void ProcessStrokeCountSelection(int number)
|
||||||
{
|
{
|
||||||
List<Artist> selectedArtists = null;
|
List<Artist> selectedArtists = null;
|
||||||
|
var manager =new ArtistManager();
|
||||||
switch (number)
|
switch (number)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
selectedArtists = ArtistManager.Instance.GetArtistsByCategoryAndStrokeCountRange(currentArtistCategory ,0, 3);
|
selectedArtists = manager.GetArtistsByCategoryAndStrokeCountRange(currentArtistCategory ,0, 3);
|
||||||
strokeRange = "00~03";
|
strokeRange = "00~03";
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
selectedArtists = ArtistManager.Instance.GetArtistsByCategoryAndStrokeCountRange(currentArtistCategory, 4, 7);
|
selectedArtists = manager.GetArtistsByCategoryAndStrokeCountRange(currentArtistCategory, 4, 7);
|
||||||
strokeRange = "04~07";
|
strokeRange = "04~07";
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
selectedArtists = ArtistManager.Instance.GetArtistsByCategoryAndStrokeCountRange(currentArtistCategory, 8, 11);
|
selectedArtists = manager.GetArtistsByCategoryAndStrokeCountRange(currentArtistCategory, 8, 11);
|
||||||
strokeRange = "08~11";
|
strokeRange = "08~11";
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
selectedArtists = ArtistManager.Instance.GetArtistsByCategoryAndStrokeCountRange(currentArtistCategory, 12, 15);
|
selectedArtists = manager.GetArtistsByCategoryAndStrokeCountRange(currentArtistCategory, 12, 15);
|
||||||
strokeRange = "12~15";
|
strokeRange = "12~15";
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
selectedArtists = ArtistManager.Instance.GetArtistsByCategoryAndStrokeCountRange(currentArtistCategory, 16, int.MaxValue);
|
selectedArtists = manager.GetArtistsByCategoryAndStrokeCountRange(currentArtistCategory, 16, int.MaxValue);
|
||||||
strokeRange = "16以上";
|
strokeRange = "16以上";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -1437,42 +1440,43 @@ private void DisplayArtists(List<Artist> artists, int page)//歌星點進去後
|
|||||||
UpdateDisplayLabels(messages);
|
UpdateDisplayLabels(messages);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DisplaySongsInLanguage(string language, Category category)
|
private void DisplaySongsInLanguage(string language, Category category)
|
||||||
{
|
{
|
||||||
Dictionary<string, List<SongData>> selectedSongList;
|
string sqlQuery;
|
||||||
|
|
||||||
// 確定類別
|
if (category == Category.NewSongs)
|
||||||
if (category == Category.NewSongs)
|
{
|
||||||
{
|
sqlQuery = $"SELECT * FROM song_library_cache WHERE language_name = '{language}' ORDER BY add_date DESC LIMIT {PrimaryForm.ReadNewSongLimit()}";
|
||||||
selectedSongList = SongListManager.NewSongLists;
|
}
|
||||||
}
|
else if (category == Category.HotSongs)
|
||||||
else if (category == Category.HotSongs)
|
{
|
||||||
{
|
sqlQuery = $"SELECT * FROM song_library_cache WHERE language_name = '{language}' ORDER BY add_date DESC LIMIT {PrimaryForm.ReadHotSongLimit()}";
|
||||||
selectedSongList = SongListManager.HotSongLists;
|
}
|
||||||
}
|
else
|
||||||
else
|
{
|
||||||
{
|
ClearDisplay();
|
||||||
ClearDisplay();
|
displayLabel.Text = "無效的類別";
|
||||||
displayLabel.Text = "無效的類別";
|
return;
|
||||||
return;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (!selectedSongList.TryGetValue(language, out var songsInLanguage) || songsInLanguage == null || songsInLanguage.Count == 0)
|
var songsInLanguage = PrimaryForm.Instance.SearchSongs_Mysql(sqlQuery);
|
||||||
{
|
|
||||||
ClearDisplay();
|
|
||||||
displayLabel.Text = $"{language} - 熱門中未找到歌曲";
|
|
||||||
LanguageSongList = null;
|
|
||||||
totalSongs = 0;
|
|
||||||
currentPage = 0;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
LanguageSongList = songsInLanguage;
|
|
||||||
totalSongs = songsInLanguage.Count;
|
|
||||||
currentPage = 1;
|
|
||||||
|
|
||||||
ClearDisplay();
|
if (songsInLanguage == null || songsInLanguage.Count == 0)
|
||||||
DisplaySongs(currentPage);
|
{
|
||||||
}
|
ClearDisplay();
|
||||||
|
displayLabel.Text = $"{language} - 熱門中未找到歌曲";
|
||||||
|
LanguageSongList = null;
|
||||||
|
totalSongs = 0;
|
||||||
|
currentPage = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
LanguageSongList = songsInLanguage;
|
||||||
|
totalSongs = songsInLanguage.Count;
|
||||||
|
currentPage = 1;
|
||||||
|
|
||||||
|
ClearDisplay();
|
||||||
|
DisplaySongs(currentPage);
|
||||||
|
}
|
||||||
|
|
||||||
public void AddSongToPlaylist(SongData songData)
|
public void AddSongToPlaylist(SongData songData)
|
||||||
{
|
{
|
||||||
@ -1483,6 +1487,7 @@ private void DisplaySongsInLanguage(string language, Category category)
|
|||||||
|
|
||||||
if (!File.Exists(filePath1) && !File.Exists(filePath2))
|
if (!File.Exists(filePath1) && !File.Exists(filePath2))
|
||||||
{
|
{
|
||||||
|
// 點播失敗時,寫LOG至logfile.txt
|
||||||
PrimaryForm.WriteLog(String.Format("File not found on both hosts: {0} and {1}", filePath1, filePath2));
|
PrimaryForm.WriteLog(String.Format("File not found on both hosts: {0} and {1}", filePath1, filePath2));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1519,7 +1524,7 @@ private void DisplaySongsInLanguage(string language, Category category)
|
|||||||
{
|
{
|
||||||
var filePath1 = songData.SongFilePathHost1;
|
var filePath1 = songData.SongFilePathHost1;
|
||||||
var filePath2 = songData.SongFilePathHost2;
|
var filePath2 = songData.SongFilePathHost2;
|
||||||
|
|
||||||
if (!File.Exists(filePath1) && !File.Exists(filePath2))
|
if (!File.Exists(filePath1) && !File.Exists(filePath2))
|
||||||
{
|
{
|
||||||
PrimaryForm.WriteLog(String.Format("File not found on both hosts: {0} and {1}", filePath1, filePath2));
|
PrimaryForm.WriteLog(String.Format("File not found on both hosts: {0} and {1}", filePath1, filePath2));
|
||||||
@ -1527,7 +1532,7 @@ private void DisplaySongsInLanguage(string language, Category category)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
var pathToPlay = File.Exists(filePath1) ? filePath1 : filePath2;
|
var pathToPlay = File.Exists(filePath1) ? filePath1 : filePath2;
|
||||||
|
Console.WriteLine("path to play"+pathToPlay);
|
||||||
bool wasEmpty = PrimaryForm.userRequestedSongs.Count == 0;
|
bool wasEmpty = PrimaryForm.userRequestedSongs.Count == 0;
|
||||||
|
|
||||||
if (wasEmpty)
|
if (wasEmpty)
|
||||||
|
@ -118,7 +118,6 @@ namespace DualScreenDemo
|
|||||||
|
|
||||||
private void VodButton_Click(object sender, EventArgs e)
|
private void VodButton_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
|
||||||
OverlayForm.MainForm.AddSongToPlaylist(currentSelectedSong);
|
OverlayForm.MainForm.AddSongToPlaylist(currentSelectedSong);
|
||||||
SetVodScreenPictureBoxAndButtonsVisibility(false);
|
SetVodScreenPictureBoxAndButtonsVisibility(false);
|
||||||
}
|
}
|
||||||
@ -167,11 +166,6 @@ namespace DualScreenDemo
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private bool IsUserLoggedIn()
|
|
||||||
{
|
|
||||||
|
|
||||||
return SongListManager.Instance.IsUserLoggedIn;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SetVodScreenPictureBoxAndButtonsVisibility(bool isVisible)
|
private void SetVodScreenPictureBoxAndButtonsVisibility(bool isVisible)
|
||||||
{
|
{
|
||||||
|
@ -9,7 +9,7 @@ namespace DualScreenDemo
|
|||||||
{
|
{
|
||||||
// 定义全局变量
|
// 定义全局变量
|
||||||
internal static SongListManager songListManager;
|
internal static SongListManager songListManager;
|
||||||
internal static ArtistManager artistManager;
|
//internal static ArtistManager artistManager;
|
||||||
internal static SerialPortManager serialPortManager;
|
internal static SerialPortManager serialPortManager;
|
||||||
private static PrimaryForm primaryForm; // 儲存實例的參考
|
private static PrimaryForm primaryForm; // 儲存實例的參考
|
||||||
|
|
||||||
@ -27,8 +27,8 @@ static void Main()
|
|||||||
}
|
}
|
||||||
// 初始化管理器
|
// 初始化管理器
|
||||||
|
|
||||||
songListManager = SongListManager.Instance; // 使用单例
|
songListManager = new SongListManager(); // 使用单例
|
||||||
artistManager = new ArtistManager();
|
//artistManager = new ArtistManager();
|
||||||
|
|
||||||
var commandHandler = new CommandHandler(songListManager);
|
var commandHandler = new CommandHandler(songListManager);
|
||||||
serialPortManager = new SerialPortManager(commandHandler);
|
serialPortManager = new SerialPortManager(commandHandler);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user