diff options
Diffstat (limited to 'src/Classes/UCatCovers.pas')
-rw-r--r-- | src/Classes/UCatCovers.pas | 173 |
1 files changed, 0 insertions, 173 deletions
diff --git a/src/Classes/UCatCovers.pas b/src/Classes/UCatCovers.pas deleted file mode 100644 index d8f6cdb0..00000000 --- a/src/Classes/UCatCovers.pas +++ /dev/null @@ -1,173 +0,0 @@ -unit UCatCovers; -///////////////////////////////////////////////////////////////////////// -// UCatCovers by Whiteshark // -// Class for listing and managing the Category Covers // -///////////////////////////////////////////////////////////////////////// - -interface - -{$I switches.inc} - -uses UIni; - -type - TCatCovers = class - protected - cNames: array [0..high(ISorting)] of array of string; - cFiles: array [0..high(ISorting)] of array of string; - public - constructor Create; - procedure Load; //Load Cover aus Cover.ini and Cover Folder - procedure LoadPath(const CoversPath: string); - procedure Add(Sorting: integer; Name, Filename: string); //Add a Cover - function CoverExists(Sorting: integer; Name: string): boolean; //Returns True when a cover with the given Name exists - function GetCover(Sorting: integer; Name: string): string; //Returns the Filename of a Cover - end; - -var - CatCovers: TCatCovers; - -implementation - -uses - IniFiles, - SysUtils, - Classes, - // UFiles, - UMain, - ULog; - -constructor TCatCovers.Create; -begin - inherited; - Load; -end; - -procedure TCatCovers.Load; -var - I: integer; -begin - for I := 0 to CoverPaths.Count-1 do - LoadPath(CoverPaths[I]); -end; - -(** - * Load Cover from Cover.ini and Cover Folder - *) -procedure TCatCovers.LoadPath(const CoversPath: string); -var - Ini: TMemIniFile; - SR: TSearchRec; - List: TStringlist; - I, J: Integer; - Name, Filename, Temp: string; -begin - Ini := nil; - List := nil; - - try - Ini := TMemIniFile.Create(CoversPath + 'covers.ini'); - List := TStringlist.Create; - - //Add every Cover in Covers Ini for Every Sorting option - for I := 0 to High(ISorting) do - begin - Ini.ReadSection(ISorting[I], List); - - for J := 0 to List.Count - 1 do - Add(I, List.Strings[J], CoversPath + Ini.ReadString(ISorting[I], List.Strings[J], 'NoCover.jpg')); - end; - finally - Ini.Free; - List.Free; - end; - - try - //Add Covers from Folder - if (FindFirst (CoversPath + '*.jpg', faAnyFile, SR) = 0) then - repeat - //Add Cover if it doesn't exist for every Section - Name := SR.Name; - Filename := CoversPath + Name; - Delete (Name, length(Name) - 3, 4); - - for I := 0 to high(ISorting) do - begin - Temp := Name; - if ((I = sTitle) or (I = sTitle2)) and (Pos ('Title', Temp) <> 0) then - Delete (Temp, Pos ('Title', Temp), 5) - else if (I = sArtist) or (I = sArtist2) and (Pos ('Artist', Temp) <> 0) then - Delete (Temp, Pos ('Artist', Temp), 6); - - if not CoverExists(I, Temp) then - Add (I, Temp, Filename); - end; - until FindNext (SR) <> 0; - finally - FindClose (SR); - end; -end; - - //Add a Cover -procedure TCatCovers.Add(Sorting: integer; Name, Filename: string); -begin - if FileExists (Filename) then //If Exists -> Add - begin - SetLength (CNames[Sorting], Length(CNames[Sorting]) + 1); - SetLength (CFiles[Sorting], Length(CNames[Sorting]) + 1); - - CNames[Sorting][high(cNames[Sorting])] := Uppercase(Name); - CFiles[Sorting][high(cNames[Sorting])] := FileName; - end; -end; - - //Returns True when a cover with the given Name exists -function TCatCovers.CoverExists(Sorting: integer; Name: string): boolean; -var - I: Integer; -begin - Result := False; - Name := Uppercase(Name); //Case Insensitiv - - for I := 0 to high(cNames[Sorting]) do - begin - if (cNames[Sorting][I] = Name) then //Found Name - begin - Result := true; - break; //Break For Loop - end; - end; -end; - - //Returns the Filename of a Cover -function TCatCovers.GetCover(Sorting: integer; Name: string): string; -var - I: Integer; -begin - Result := ''; - Name := Uppercase(Name); - - for I := 0 to high(cNames[Sorting]) do - begin - if cNames[Sorting][I] = Name then - begin - Result := cFiles[Sorting][I]; - Break; - end; - end; - - //No Cover - if (Result = '') then - begin - for I := 0 to CoverPaths.Count-1 do - begin - if (FileExists(CoverPaths[I] + 'NoCover.jpg')) then - begin - Result := CoverPaths[I] + 'NoCover.jpg'; - Break; - end; - end; - end; -end; - -end. |