diff options
author | jaybinks <jaybinks@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2007-11-02 12:16:50 +0000 |
---|---|---|
committer | jaybinks <jaybinks@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2007-11-02 12:16:50 +0000 |
commit | ae057627ff135d55891e9f04f399608fbc47e9ee (patch) | |
tree | 7561eaee2663ea1308dcada578549e013f9110c4 /Game/Code/Classes | |
parent | 35b7a40253bd38d1e1df8469d4151e99f9978850 (diff) | |
download | usdx-ae057627ff135d55891e9f04f399608fbc47e9ee.tar.gz usdx-ae057627ff135d55891e9f04f399608fbc47e9ee.tar.xz usdx-ae057627ff135d55891e9f04f399608fbc47e9ee.zip |
Runtime Song Addition
jira:USDX-157
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@553 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to '')
-rw-r--r-- | Game/Code/Classes/UAudio_FFMpeg.pas | 1 | ||||
-rw-r--r-- | Game/Code/Classes/UCatCovers.pas | 2 | ||||
-rw-r--r-- | Game/Code/Classes/UMain.pas | 1 | ||||
-rw-r--r-- | Game/Code/Classes/USongs.pas | 66 |
4 files changed, 52 insertions, 18 deletions
diff --git a/Game/Code/Classes/UAudio_FFMpeg.pas b/Game/Code/Classes/UAudio_FFMpeg.pas index afbb23c1..b89fa00f 100644 --- a/Game/Code/Classes/UAudio_FFMpeg.pas +++ b/Game/Code/Classes/UAudio_FFMpeg.pas @@ -380,7 +380,6 @@ end; procedure TAudio_ffMpeg.PlayStart; begin - // LoadSoundFromFile(BassStart, SoundPath + 'foo fighters - best of you.mp3'); // TODO : jb_linux replace with something other than bass diff --git a/Game/Code/Classes/UCatCovers.pas b/Game/Code/Classes/UCatCovers.pas index b1c91e48..516544be 100644 --- a/Game/Code/Classes/UCatCovers.pas +++ b/Game/Code/Classes/UCatCovers.pas @@ -49,7 +49,7 @@ var Name, Filename, Temp: string;
begin
try
- Ini := TMemIniFile.Create(CoversPath + 'covers.ini');
+ Ini := TMemIniFile.Create(CoversPath + 'covers.ini');
List := TStringlist.Create;
//Add every Cover in Covers Ini for Every Sorting option
diff --git a/Game/Code/Classes/UMain.pas b/Game/Code/Classes/UMain.pas index d7ae51f4..fa4c45b5 100644 --- a/Game/Code/Classes/UMain.pas +++ b/Game/Code/Classes/UMain.pas @@ -303,6 +303,7 @@ begin Log.LogStatus('Creating 2nd Song Array', 'Initialization'); CatSongs := TCatSongs.Create; + Log.BenchmarkEnd(1); Log.LogBenchmark('Loading Songs', 1); diff --git a/Game/Code/Classes/USongs.pas b/Game/Code/Classes/USongs.pas index 6a58a8dd..2eeeec87 100644 --- a/Game/Code/Classes/USongs.pas +++ b/Game/Code/Classes/USongs.pas @@ -8,17 +8,21 @@ interface {$I switches.inc} -uses SysUtils, +uses {$ifndef MSWINDOWS} - {$IFDEF DARWIN} - baseunix, - {$ELSE} - oldlinux, - {$ENDIF} + {$IFDEF DARWIN} + baseunix, + {$ELSE} + oldlinux, + {$ENDIF} baseunix, UnixType, syscall, + {$else} + windows, + DirWatch, {$endif} + SysUtils, Classes, ULog, UTexture, @@ -87,7 +91,11 @@ type fWatch : longint; fParseSongDirectory : boolean; fProcessing : boolean; + {$ifdef win32} + fDirWatch : TDirectoryWatch; + {$endif} procedure int_LoadSongList; + procedure DoDirChanged(Sender: TObject); protected procedure Execute; override; public @@ -143,6 +151,8 @@ const implementation uses StrUtils, + UGraphic, + UCovers, UFiles, UMain, UIni; @@ -159,6 +169,14 @@ begin inherited create( false ); self.freeonterminate := true; + {$IFDEF Win32} + fDirWatch := TDirectoryWatch.create(nil); + fDirWatch.OnChange := DoDirChanged; + fDirWatch.Directory := SongPath; + fDirWatch.WatchSubDirs := true; + fDirWatch.active := true; + {$ENDIF} + {$IFDEF linux} (* Thankyou to : http://www.linuxjournal.com/article/8478 @@ -186,23 +204,21 @@ begin Setlength(Song, 0); end; +procedure TSongs.DoDirChanged(Sender: TObject); +begin + LoadSongList();
+end; + procedure TSongs.Execute(); -(* var - lrfds : fdSet; - time : Ttimeval; - res : integer; - buf : pchar; - len, bufflen : longint; - str : String; -*) + fChangeNotify : THandle; begin fParseSongDirectory := true; while not self.terminated do begin -// if fParseSongDirectory then + if fParseSongDirectory then begin writeln( 'int_LoadSongList' ); int_LoadSongList(); @@ -217,7 +233,8 @@ procedure TSongs.int_LoadSongList; begin try fProcessing := true; - + Setlength(Song, 0); + Log.LogError('SongList', 'Searching For Songs'); Setlength(Song, 50); @@ -228,6 +245,23 @@ begin //Set Correct SongArray Length SetLength(Song, BrowsePos); + + if assigned( CatSongs ) then + CatSongs.Refresh; + + if assigned( CatCovers ) then + CatCovers.Load; + + if assigned( Covers ) then + Covers.Load; + + if assigned(ScreenSong) then + begin + ScreenSong.GenerateThumbnails(); + ScreenSong.OnShow; // refresh ScreenSong + end; + + finally Log.LogError('SongList', 'Search Complete'); |