├── .gitignore ├── BassUnits ├── bass.pas ├── bass_aac.pas ├── bass_ac3.pas ├── bass_ape.pas ├── bass_fx.pas ├── bass_mpc.pas ├── bass_ofr.pas ├── bass_spx.pas ├── bass_tta.pas ├── bassalac.pas ├── bassenc.pas ├── bassflac.pas ├── bassmix.pas ├── bassopus.pas ├── basswma.pas └── basswv.pas ├── Constants └── ThreadMsgConstants.pas ├── Forms ├── UnitAbout.dfm ├── UnitAbout.pas ├── UnitEQ.dfm ├── UnitEQ.pas ├── UnitLog.dfm ├── UnitLog.pas ├── UnitMain.dfm ├── UnitMain.pas ├── UnitNewRadio.dfm ├── UnitNewRadio.pas ├── UnitProgress.dfm ├── UnitProgress.pas ├── UnitRadioInfo.dfm ├── UnitRadioInfo.pas ├── UnitRadioRecordOptions.dfm ├── UnitRadioRecordOptions.pas ├── UnitSearch.dfm ├── UnitSearch.pas ├── UnitSettings.dfm ├── UnitSettings.pas ├── UnitShuffleList.dfm └── UnitShuffleList.pas ├── LastFMTool ├── compile.py ├── lastfmscrobble.py ├── lastfmscrobbler_build.bat └── setup.py ├── OooPlayer.dpr ├── OooPlayerProjectGroup.groupproj ├── OooTagEditor.dpr ├── OooTagEditor.dproj ├── Readme.md ├── Release ├── Win32 │ ├── EQ.txt │ ├── EQ │ │ ├── Ballad.txt │ │ ├── Classical.txt │ │ ├── Club.txt │ │ ├── Dance.txt │ │ ├── Flat.txt │ │ ├── Full Bass & Treble.txt │ │ ├── Full Bass.txt │ │ ├── Full Treble.txt │ │ ├── Headphone.txt │ │ ├── Heavy Metal.txt │ │ ├── Jazz.txt │ │ ├── Large Hall.txt │ │ ├── Live.txt │ │ ├── Party.txt │ │ ├── Pop.txt │ │ ├── Rap.txt │ │ ├── Reggae.txt │ │ ├── Rock.txt │ │ ├── Ska.txt │ │ ├── Soft Rock.txt │ │ ├── Soft.txt │ │ ├── Techno.txt │ │ └── Vocal.txt │ ├── GPL.txt │ ├── Radios │ │ ├── 60 s & 70 s.txt │ │ ├── 80 s & 90 s.txt │ │ ├── All.txt │ │ ├── Alternative.txt │ │ ├── Ambient & Chill.txt │ │ ├── Anime.txt │ │ ├── Black & Rap.txt │ │ ├── Blues & Love.txt │ │ ├── Children.txt │ │ ├── Classical.txt │ │ ├── Club.txt │ │ ├── Country.txt │ │ ├── Dance & Pop.txt │ │ ├── Electronic.txt │ │ ├── Folk & Latino.txt │ │ ├── Gothic.txt │ │ ├── Hits.txt │ │ ├── Imported.txt │ │ ├── Jazz & Soul.txt │ │ ├── Others.txt │ │ ├── Reggae.txt │ │ ├── Retro.txt │ │ ├── Rock & Metal.txt │ │ ├── Schlager.txt │ │ ├── Season.txt │ │ ├── Soundtrack & Movie.txt │ │ └── Talk.txt │ ├── changelog.txt │ ├── ico │ │ ├── 1.ico │ │ ├── 2.ico │ │ └── 3.ico │ ├── logo.png │ ├── radios.txt │ └── skins.txt └── Win64 │ ├── EQ.txt │ ├── EQ │ ├── Ballad.txt │ ├── Classical.txt │ ├── Club.txt │ ├── Dance.txt │ ├── Flat.txt │ ├── Full Bass & Treble.txt │ ├── Full Bass.txt │ ├── Full Treble.txt │ ├── Headphone.txt │ ├── Heavy Metal.txt │ ├── Jazz.txt │ ├── Large hall.txt │ ├── Live.txt │ ├── Party.txt │ ├── Pop.txt │ ├── Rap.txt │ ├── Reggae.txt │ ├── Rock.txt │ ├── Ska.txt │ ├── Soft Rock.txt │ ├── Soft.txt │ ├── Techno.txt │ └── Vocal.txt │ ├── changelog.txt │ └── radios.txt ├── TFileInfo.dpr ├── TFileInfo ├── UnitAbout.dfm ├── UnitAbout.pas ├── UnitMain.dfm └── UnitMain.pas ├── TagEditor ├── UnitMain.dfm └── UnitMain.pas ├── TagEditor_Icon.ico ├── Types ├── CommonTypes.pas ├── Playlist.pas ├── Radiolist.pas └── VisTypes.pas ├── Units ├── Artwork │ ├── ArtworkInfo.pas │ ├── ArtworkReader.pas │ ├── ImageResize.pas │ ├── UnitArtworkInfo.pas │ ├── UnitArtworkReader.pas │ └── UnitImageResize.pas ├── Constants │ └── Constants.pas ├── Cue │ ├── CUESheetDefs.pas │ ├── CUESheetFunctions.pas │ ├── CueParser.pas │ └── UnitCueParser.pas ├── Others │ ├── JsonSerializer.pas │ ├── MediaInfoDLL.pas │ └── Utils.pas ├── Player │ └── UnitMusicPlayer.pas ├── Process │ ├── UnitLastFMToolLauncher.pas │ └── UnitSubProcessLauncher.pas ├── Tag │ ├── UnitTagReader.pas │ ├── UnitTagTypes.pas │ └── UnitTagWriter.pas └── TagLibraries │ ├── APEv2Library.pas │ ├── FlacTagLibrary.pas │ ├── ID3v1Library.pas │ ├── ID3v2Library.pas │ ├── MP4TagLibrary.pas │ ├── OggVorbisAndOpusTagLibrary.pas │ ├── WAVTagLibrary.pas │ ├── WMATagLibrary.pas │ └── uTExtendedX87.pas ├── Vis └── spectrum_vis.pas └── version.txt /.gitignore: -------------------------------------------------------------------------------- 1 | *.dcu 2 | *.dll 3 | *.i 4 | __history 5 | *.exe 6 | cache 7 | /Release/Win32/skins/*.asz 8 | lyric 9 | .hg 10 | .idea 11 | *.drc 12 | *.dat 13 | *.7z 14 | *.local 15 | /*.dproj 16 | /LastFMTool/dist/*.zip 17 | /*.mes 18 | OOOPLA~1.DP~ 19 | OOOPLA~1.ID~ 20 | OOOPLA~1.LO~ 21 | OOOPLA~1.ST~ 22 | OOOTAG~1.DP~ 23 | OOOTAG~1.ID~ 24 | OOOTAG~1.LO~ 25 | OOOTAG~1.ST~ 26 | Release/Win64/Radios/ 27 | Release/Win64/Encoders/fdkaac.txt 28 | Release/Win64/Encoders/lame.txt 29 | Release/Win64/Encoders/oggenc.txt 30 | Release/Win64/Encoders/opusenc.txt 31 | Release/Win64/bugreport.txt 32 | Release/Win64/TFileInfo.map 33 | .hg_archival.txt 34 | .hgignore 35 | LastFMTool/__pycache__/lastfmscrobble.cpython-34.pyc 36 | LastFMTool/lastfmscrobble.spec 37 | OooPlayer.identcache 38 | OooPlayer.res 39 | OooPlayer.stat 40 | OooPlayerProjectGroup_prjgroup.tvsconfig 41 | OooPlayer_Icon.ico 42 | OooPlayer_project.tvsconfig 43 | OooTagEditor.identcache 44 | OooTagEditor.res 45 | OooTagEditor.stat 46 | Release/Win32/Encoders/fdkaac.txt 47 | Release/Win32/Encoders/lame.txt 48 | Release/Win32/Encoders/oggenc.txt 49 | Release/Win32/Encoders/opusenc.txt 50 | Release/Win32/OooPlayer.map 51 | Release/Win32/OooTagEditor.map 52 | Release/Win32/Radios/User Favourites.txt 53 | Release/Win32/TFileInfo.map 54 | Release/Win32/TagEditor.map 55 | Release/Win32/bugreport.txt 56 | Release/Win32/cover.jpg 57 | Release/Win32/cover.png 58 | Release/Win32/fileinfo.txt 59 | Release/Win32/lastfm.ini 60 | Release/Win32/lastfm/library.zip 61 | Release/Win32/output.txt 62 | Release/Win32/playlist.json 63 | Release/Win32/position5.ini 64 | Release/Win32/settings.ini 65 | TFileInfo.identcache 66 | TFileInfo.res 67 | TFileInfo.stat 68 | TFileInfo/version.txt 69 | TFileInfo_Icon.ico 70 | TFileInfo_Icon1.ico 71 | TFileInfo_Icon2.ico 72 | TagEditor.identcache 73 | TagEditor.res 74 | Win64/Release/OooTagEditor.map 75 | Win64/Release/TFileInfo.map 76 | lastfmscrobble.spec 77 | nxTrans.cfg 78 | pause.png 79 | play.png 80 | queue.png 81 | Release/Win32/tfileinfo.settings.ini 82 | Release/Win32/tmp 83 | Release/Win32/tmp (2).jpg 84 | Release/Win32/tmp.jpg 85 | Release/Win64/GPL.txt 86 | Release/Win64/OooPlayer.map 87 | Release/Win64/OooTagEditor.map 88 | Release/Win64/ico/1.ico 89 | Release/Win64/ico/2.ico 90 | Release/Win64/ico/3.ico 91 | Release/Win64/lastfm/library.zip 92 | Release/Win64/logo.png 93 | Release/Win64/skins.txt 94 | *.pyc 95 | /LastFMTool/build/exe.win32-3.6/_bz2.pyd 96 | /LastFMTool/build/exe.win32-3.6/_hashlib.pyd 97 | /LastFMTool/build/exe.win32-3.6/_lzma.pyd 98 | /LastFMTool/build/exe.win32-3.6/_socket.pyd 99 | /LastFMTool/build/exe.win32-3.6/_ssl.pyd 100 | /LastFMTool/build/exe.win32-3.6/pyexpat.pyd 101 | /LastFMTool/build/exe.win32-3.6/select.pyd 102 | /LastFMTool/build/exe.win32-3.6/unicodedata.pyd 103 | /Release/Win64/lastfm/_bz2.pyd 104 | /Release/Win64/lastfm/_hashlib.pyd 105 | /Release/Win64/lastfm/_lzma.pyd 106 | /Release/Win64/lastfm/_socket.pyd 107 | /Release/Win64/lastfm/_ssl.pyd 108 | /Release/Win64/lastfm/pyexpat.pyd 109 | /Release/Win64/lastfm/select.pyd 110 | /Release/Win64/lastfm/unicodedata.pyd 111 | /LastFMTool/build/exe.win32-3.6/email/architecture.rst 112 | /Release/Win64/lastfm/email/architecture.rst 113 | /LastFMTool/build/exe.win32-3.6/python36.zip 114 | /Release/Win64/lastfm/python36.zip 115 | *.nxlog 116 | -------------------------------------------------------------------------------- /BassUnits/bass_aac.pas: -------------------------------------------------------------------------------- 1 | Unit BASS_AAC; 2 | 3 | interface 4 | 5 | {$IFDEF MSWINDOWS} 6 | uses BASS, Windows; 7 | {$ELSE} 8 | uses BASS; 9 | {$ENDIF} 10 | 11 | const 12 | // additional error codes returned by BASS_ErrorGetCode 13 | BASS_ERROR_MP4_NOSTREAM = 6000; // non-streamable due to MP4 atom order ("mdat" before "moov") 14 | 15 | // additional BASS_SetConfig options 16 | BASS_CONFIG_MP4_VIDEO = $10700; // play the audio from MP4 videos 17 | BASS_CONFIG_AAC_MP4 = $10701; // support MP4 in BASS_AAC_StreamCreateXXX functions (no need for BASS_MP4_StreamCreateXXX) 18 | BASS_CONFIG_AAC_PRESCAN = $10702; // pre-scan ADTS AAC files for seek points and accurate length 19 | 20 | // additional BASS_AAC_StreamCreateFile/etc flags 21 | BASS_AAC_FRAME960 = $1000; // 960 samples per frame 22 | BASS_AAC_STEREO = $400000; // downmatrix to stereo 23 | 24 | // BASS_CHANNELINFO type 25 | BASS_CTYPE_STREAM_AAC = $10b00; // AAC 26 | BASS_CTYPE_STREAM_MP4 = $10b01; // MP4 27 | 28 | const 29 | {$IFDEF MSWINDOWS} 30 | bassaacdll = 'bass_aac.dll'; 31 | {$ENDIF} 32 | {$IFDEF LINUX} 33 | bassaacdll = 'libbass_aac.so'; 34 | {$ENDIF} 35 | {$IFDEF MACOS} 36 | bassaacdll = 'libbass_aac.dylib'; 37 | {$ENDIF} 38 | 39 | function BASS_AAC_StreamCreateFile(mem:BOOL; f:Pointer; offset,length:QWORD; flags:DWORD): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassaacdll; 40 | function BASS_AAC_StreamCreateURL(URL:PChar; offset:DWORD; flags:DWORD; proc:DOWNLOADPROC; user:Pointer): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassaacdll; 41 | function BASS_AAC_StreamCreateFileUser(system,flags:DWORD; var procs:BASS_FILEPROCS; user:Pointer): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassaacdll; 42 | function BASS_MP4_StreamCreateFile(mem:BOOL; f:Pointer; offset,length:QWORD; flags:DWORD): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassaacdll; 43 | function BASS_MP4_StreamCreateFileUser(system,flags:DWORD; var procs:BASS_FILEPROCS; user:Pointer): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassaacdll; 44 | 45 | implementation 46 | 47 | end. -------------------------------------------------------------------------------- /BassUnits/bass_ac3.pas: -------------------------------------------------------------------------------- 1 | Unit BASS_AC3; 2 | 3 | interface 4 | 5 | uses windows, bass; 6 | 7 | const 8 | // BASS_Set/GetConfig options 9 | BASS_CONFIG_AC3_DYNRNG = $10001; 10 | 11 | // Additional BASS_AC3_StreamCreateFile/User/URL flags 12 | BASS_AC3_DYNAMIC_RANGE = $800; // enable dynamic range compression 13 | 14 | // BASS_CHANNELINFO type 15 | BASS_CTYPE_STREAM_AC3 = $11000; 16 | 17 | 18 | const 19 | bassac3dll = 'bass_ac3.dll'; 20 | 21 | function BASS_AC3_StreamCreateFile(mem:BOOL; f:Pointer; offset,length:QWORD; flags:DWORD): HSTREAM; stdcall; external bassac3dll; 22 | function BASS_AC3_StreamCreateURL(URL:PChar; offset:DWORD; flags:DWORD; proc:DOWNLOADPROC; user:Pointer): HSTREAM; stdcall; external bassac3dll; 23 | function BASS_AC3_StreamCreateFileUser(system,flags:DWORD; var procs:BASS_FILEPROCS; user:Pointer): HSTREAM; stdcall; external bassac3dll; 24 | 25 | implementation 26 | 27 | end. 28 | -------------------------------------------------------------------------------- /BassUnits/bass_ape.pas: -------------------------------------------------------------------------------- 1 | Unit BASS_APE; 2 | 3 | interface 4 | 5 | {$IFDEF MSWINDOWS} 6 | uses BASS, Windows; 7 | {$ELSE} 8 | uses BASS; 9 | {$ENDIF} 10 | 11 | const 12 | // BASS_CHANNELINFO type 13 | BASS_CTYPE_STREAM_APE = $10700; 14 | 15 | const 16 | {$IFDEF MSWINDOWS} 17 | bassapedll = 'bass_ape.dll'; 18 | {$ENDIF} 19 | {$IFDEF LINUX} 20 | bassapedll = 'libbass_ape.so'; 21 | {$ENDIF} 22 | {$IFDEF MACOS} 23 | bassapedll = 'libbass_ape.dylib'; 24 | {$ENDIF} 25 | 26 | function BASS_APE_StreamCreateFile(mem: BOOL; f: Pointer; offset, length: QWORD; flags: DWORD): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassapedll; 27 | function BASS_APE_StreamCreateFileUser(system: DWORD; flags: DWORD; procs:BASS_FILEPROCS; user:Pointer): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassapedll; 28 | 29 | implementation 30 | 31 | end. -------------------------------------------------------------------------------- /BassUnits/bass_mpc.pas: -------------------------------------------------------------------------------- 1 | Unit BASS_MPC; 2 | 3 | interface 4 | 5 | uses windows, bass; 6 | 7 | const 8 | // Additional tags available from BASS_StreamGetTags 9 | BASS_TAG_APE = 6; // APE tags 10 | // BASS_CHANNELINFO type 11 | BASS_CTYPE_STREAM_MPC = $10a00; 12 | 13 | 14 | const 15 | bassmpcdll = 'bass_mpc.dll'; 16 | 17 | 18 | function BASS_MPC_StreamCreateFile(mem: BOOL; f: Pointer; offset, length: QWORD; flags: DWORD): HSTREAM; stdcall; external bassmpcdll; 19 | function BASS_MPC_StreamCreateURL(URL:PAnsiChar; offset:DWORD; flags:DWORD; proc:DOWNLOADPROC; user:Pointer): HSTREAM; stdcall; external bassmpcdll; 20 | function BASS_MPC_StreamCreateFileUser(system, flags: DWORD; var procs: BASS_FILEPROCS; user: Pointer): HSTREAM; stdcall; external bassmpcdll; 21 | 22 | implementation 23 | 24 | end. -------------------------------------------------------------------------------- /BassUnits/bass_ofr.pas: -------------------------------------------------------------------------------- 1 | Unit BASS_OFR; 2 | 3 | interface 4 | 5 | uses windows, bass; 6 | 7 | const 8 | BASS_TAG_APE = 6; // APE tags 9 | // BASS_CHANNELINFO type 10 | BASS_CTYPE_STREAM_OFR = $10600; 11 | 12 | 13 | const 14 | bassofrdll = 'bass_ofr.dll'; 15 | 16 | 17 | function BASS_OFR_StreamCreateFile(mem:BOOL; f:Pointer; offset,length:QWORD; flags:DWORD): HSTREAM; stdcall; external bassofrdll; 18 | function BASS_OFR_StreamCreateFileUser(system,flags:DWORD; var procs:BASS_FILEPROCS; user:Pointer): HSTREAM; stdcall; external bassofrdll; 19 | 20 | implementation 21 | 22 | end. -------------------------------------------------------------------------------- /BassUnits/bass_spx.pas: -------------------------------------------------------------------------------- 1 | Unit BASS_SPX; 2 | 3 | interface 4 | 5 | {$IFDEF MSWINDOWS} 6 | uses BASS, Windows; 7 | {$ELSE} 8 | uses BASS; 9 | {$ENDIF} 10 | 11 | const 12 | // BASS_CHANNELINFO type 13 | BASS_CTYPE_STREAM_SPX = $10c00; 14 | 15 | 16 | const 17 | {$IFDEF MSWINDOWS} 18 | bassspxdll = 'bass_spx.dll'; 19 | {$ENDIF} 20 | {$IFDEF LINUX} 21 | bassspxdll = 'libbass_spx.so'; 22 | {$ENDIF} 23 | {$IFDEF MACOS} 24 | bassspxdll = 'libbass_spx.dylib'; 25 | {$ENDIF} 26 | 27 | 28 | function BASS_SPX_StreamCreateFile(mem:BOOL; f:Pointer; offset,length:QWORD; flags:DWORD): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassspxdll; 29 | function BASS_SPX_StreamCreateURL(url:PChar; offset:DWORD; flags:DWORD; proc:DOWNLOADPROC; user:Pointer): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassspxdll; 30 | function BASS_SPX_StreamCreateFileUser(system,flags:DWORD; var procs:BASS_FILEPROCS; user:Pointer): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassspxdll; 31 | 32 | implementation 33 | 34 | end. -------------------------------------------------------------------------------- /BassUnits/bass_tta.pas: -------------------------------------------------------------------------------- 1 | Unit BASS_TTA; 2 | 3 | interface 4 | 5 | uses windows, bass; 6 | 7 | const 8 | // BASS_CHANNELINFO type 9 | BASS_CTYPE_STREAM_TTA = $10f00; 10 | 11 | 12 | const 13 | bassttadll = 'bass_tta.dll'; 14 | 15 | 16 | function BASS_TTA_StreamCreateFile(mem:BOOL; f:Pointer; offset,length:QWORD; flags:DWORD): HSTREAM; stdcall; external bassttadll; 17 | function BASS_TTA_StreamCreateFileUser(system,flags:DWORD; var procs:BASS_FILEPROCS; user:Pointer): HSTREAM; stdcall; external bassttadll; 18 | 19 | implementation 20 | 21 | end. -------------------------------------------------------------------------------- /BassUnits/bassalac.pas: -------------------------------------------------------------------------------- 1 | { 2 | BASSALAC 2.4 Delphi unit 3 | Copyright (c) 2016 Un4seen Developments Ltd. 4 | 5 | See the BASSALAC.CHM file for more detailed documentation 6 | } 7 | 8 | unit BASSALAC; 9 | 10 | interface 11 | 12 | {$IFDEF MSWINDOWS} 13 | uses BASS, Windows; 14 | {$ELSE} 15 | uses BASS; 16 | {$ENDIF} 17 | 18 | const 19 | // additional error codes returned by BASS_ErrorGetCode 20 | BASS_ERROR_MP4_NOSTREAM = 6000; // non-streamable due to MP4 atom order ("mdat" before "moov") 21 | 22 | // BASS_CHANNELINFO type 23 | BASS_CTYPE_STREAM_ALAC = $10e00; 24 | 25 | const 26 | {$IFDEF MSWINDOWS} 27 | bassalacdll = 'bassalac.dll'; 28 | {$ENDIF} 29 | {$IFDEF LINUX} 30 | bassalacdll = 'libbassalac.so'; 31 | {$ENDIF} 32 | {$IFDEF MACOS} 33 | bassalacdll = 'libbassalac.dylib'; 34 | {$ENDIF} 35 | 36 | function BASS_ALAC_StreamCreateFile(mem:BOOL; f:Pointer; offset,length:QWORD; flags:DWORD): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassalacdll; 37 | function BASS_ALAC_StreamCreateURL(url:PAnsiChar; offset,flags:DWORD; proc:DOWNLOADPROC; user:Pointer): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassalacdll; 38 | function BASS_ALAC_StreamCreateFileUser(system,flags:DWORD; var procs:BASS_FILEPROCS; user:Pointer): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassalacdll; 39 | 40 | implementation 41 | 42 | end. -------------------------------------------------------------------------------- /BassUnits/bassflac.pas: -------------------------------------------------------------------------------- 1 | { 2 | BASSFLAC 2.4 Delphi unit 3 | Copyright (c) 2004-2014 Un4seen Developments Ltd. 4 | 5 | See the BASSFLAC.CHM file for more detailed documentation 6 | } 7 | 8 | unit BassFLAC; 9 | 10 | interface 11 | 12 | {$IFDEF MSWINDOWS} 13 | uses BASS, Windows; 14 | {$ELSE} 15 | uses BASS; 16 | {$ENDIF} 17 | 18 | const 19 | // BASS_CHANNELINFO type 20 | BASS_CTYPE_STREAM_FLAC = $10900; 21 | BASS_CTYPE_STREAM_FLAC_OGG = $10901; 22 | 23 | // Additional tag type 24 | BASS_TAG_FLAC_CUE = 12; // cuesheet : TAG_FLAC_CUE structure 25 | BASS_TAG_FLAC_PICTURE = $12000; // + index #, picture : TAG_FLAC_PICTURE structure 26 | 27 | type 28 | TAG_FLAC_PICTURE = record 29 | apic: DWORD; // ID3v2 "APIC" picture type 30 | mime: PAnsiChar; // mime type 31 | desc: PAnsiChar; // description 32 | width: DWORD; 33 | height: DWORD; 34 | depth: DWORD; 35 | colors: DWORD; 36 | length: DWORD; // data length 37 | data: Pointer; 38 | end; 39 | 40 | const 41 | {$IFDEF MSWINDOWS} 42 | bassflacdll = 'bassflac.dll'; 43 | {$ENDIF} 44 | {$IFDEF LINUX} 45 | bassflacdll = 'libbassflac.so'; 46 | {$ENDIF} 47 | {$IFDEF MACOS} 48 | bassflacdll = 'libbassflac.dylib'; 49 | {$ENDIF} 50 | 51 | function BASS_FLAC_StreamCreateFile(mem:BOOL; f:Pointer; offset,length:QWORD; flags:DWORD): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassflacdll; 52 | function BASS_FLAC_StreamCreateURL(url:PChar; offset:DWORD; flags:DWORD; proc:DOWNLOADPROC; user:Pointer): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassflacdll; 53 | function BASS_FLAC_StreamCreateFileUser(system,flags:DWORD; var procs:BASS_FILEPROCS; user:Pointer): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassflacdll; 54 | 55 | implementation 56 | 57 | end. 58 | -------------------------------------------------------------------------------- /BassUnits/bassmix.pas: -------------------------------------------------------------------------------- 1 | { 2 | BASSmix 2.4 Delphi unit 3 | Copyright (c) 2005-2017 Un4seen Developments Ltd. 4 | 5 | See the BASSMIX.CHM file for more detailed documentation 6 | } 7 | 8 | Unit BASSmix; 9 | 10 | interface 11 | 12 | {$IFDEF MSWINDOWS} 13 | uses BASS, Windows; 14 | {$ELSE} 15 | uses BASS; 16 | {$ENDIF} 17 | 18 | const 19 | // additional BASS_SetConfig option 20 | BASS_CONFIG_MIXER_BUFFER = $10601; 21 | BASS_CONFIG_MIXER_POSEX = $10602; 22 | BASS_CONFIG_SPLIT_BUFFER = $10610; 23 | 24 | // BASS_Mixer_StreamCreate flags 25 | BASS_MIXER_END = $10000; // end the stream when there are no sources 26 | BASS_MIXER_NONSTOP = $20000; // don't stall when there are no sources 27 | BASS_MIXER_RESUME = $1000; // resume stalled immediately upon new/unpaused source 28 | BASS_MIXER_POSEX = $2000; // enable BASS_Mixer_ChannelGetPositionEx support 29 | 30 | // source flags 31 | BASS_MIXER_BUFFER = $2000; // buffer data for BASS_Mixer_ChannelGetData/Level 32 | BASS_MIXER_LIMIT = $4000; // limit mixer processing to the amount available from this source 33 | BASS_MIXER_MATRIX = $10000; // matrix mixing 34 | BASS_MIXER_PAUSE = $20000; // don't process the source 35 | BASS_MIXER_DOWNMIX = $400000; // downmix to stereo/mono 36 | BASS_MIXER_NORAMPIN = $800000; // don't ramp-in the start 37 | 38 | // mixer attributes 39 | BASS_ATTRIB_MIXER_LATENCY = $15000; 40 | 41 | // splitter flags 42 | BASS_SPLIT_SLAVE = $1000; // only read buffered data 43 | BASS_SPLIT_POS = $2000; 44 | 45 | // splitter attributes 46 | BASS_ATTRIB_SPLIT_ASYNCBUFFER = $15010; 47 | BASS_ATTRIB_SPLIT_ASYNCPERIOD = $15011; 48 | 49 | // envelope types 50 | BASS_MIXER_ENV_FREQ = 1; 51 | BASS_MIXER_ENV_VOL = 2; 52 | BASS_MIXER_ENV_PAN = 3; 53 | BASS_MIXER_ENV_LOOP = $10000; // flag: loop 54 | 55 | // additional sync type 56 | BASS_SYNC_MIXER_ENVELOPE = $10200; 57 | BASS_SYNC_MIXER_ENVELOPE_NODE = $10201; 58 | 59 | // additional BASS_Mixer_ChannelSetPosition flag 60 | BASS_POS_MIXER_RESET = $10000; // flag: clear mixer's playback buffer 61 | 62 | // BASS_CHANNELINFO type 63 | BASS_CTYPE_STREAM_MIXER = $10800; 64 | BASS_CTYPE_STREAM_SPLIT = $10801; 65 | 66 | type 67 | // envelope node 68 | BASS_MIXER_NODE = record 69 | pos: QWORD; 70 | value: Single; 71 | end; 72 | PBASS_MIXER_NODE = ^BASS_MIXER_NODE; 73 | 74 | const 75 | {$IFDEF MSWINDOWS} 76 | bassmixdll = 'bassmix.dll'; 77 | {$ENDIF} 78 | {$IFDEF LINUX} 79 | bassmixdll = 'libbassmix.so'; 80 | {$ENDIF} 81 | {$IFDEF MACOS} 82 | bassmixdll = 'libbassmix.dylib'; 83 | {$ENDIF} 84 | 85 | function BASS_Mixer_GetVersion: DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 86 | 87 | function BASS_Mixer_StreamCreate(freq, chans, flags: DWORD): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 88 | function BASS_Mixer_StreamAddChannel(handle: HSTREAM; channel, flags: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 89 | function BASS_Mixer_StreamAddChannelEx(handle: HSTREAM; channel, flags: DWORD; start, length: QWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 90 | function BASS_Mixer_StreamGetChannels(handle: DWORD; channels: Pointer; count: DWORD): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 91 | 92 | function BASS_Mixer_ChannelGetMixer(handle: DWORD): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 93 | function BASS_Mixer_ChannelFlags(handle, flags, mask: DWORD): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 94 | function BASS_Mixer_ChannelRemove(handle: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 95 | function BASS_Mixer_ChannelSetPosition(handle: DWORD; pos: QWORD; mode: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 96 | function BASS_Mixer_ChannelGetPosition(handle, mode: DWORD): QWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 97 | function BASS_Mixer_ChannelGetPositionEx(handle, mode, delay: DWORD): QWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 98 | function BASS_Mixer_ChannelGetLevel(handle: DWORD): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 99 | function BASS_Mixer_ChannelGetLevelEx(handle: DWORD; levels: PSingle; length: Single; flags: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 100 | function BASS_Mixer_ChannelGetData(handle: DWORD; buffer: Pointer; length: DWORD): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 101 | function BASS_Mixer_ChannelSetSync(handle: DWORD; type_: DWORD; param: QWORD; proc: SYNCPROC; user: Pointer): HSYNC; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 102 | function BASS_Mixer_ChannelRemoveSync(handle: DWORD; sync: HSYNC): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 103 | function BASS_Mixer_ChannelSetMatrix(handle: DWORD; matrix: Pointer): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 104 | function BASS_Mixer_ChannelSetMatrixEx(handle: DWORD; matrix: Pointer; time: Single): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 105 | function BASS_Mixer_ChannelGetMatrix(handle: DWORD; matrix: Pointer): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 106 | function BASS_Mixer_ChannelSetEnvelope(handle, type_: DWORD; nodes: PBASS_MIXER_NODE; count: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 107 | function BASS_Mixer_ChannelSetEnvelopePos(handle, type_: DWORD; pos: QWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 108 | function BASS_Mixer_ChannelGetEnvelopePos(handle, type_: DWORD; value: PSingle): QWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 109 | 110 | function BASS_Split_StreamCreate(channel, flags: DWORD; chanmap: PLongInt): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 111 | function BASS_Split_StreamGetSource(handle: HSTREAM): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 112 | function BASS_Split_StreamGetSplits(handle: DWORD; splits: Pointer; count: DWORD): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 113 | function BASS_Split_StreamReset(handle: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 114 | function BASS_Split_StreamResetEx(handle, offset: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 115 | function BASS_Split_StreamGetAvailable(handle: DWORD): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassmixdll; 116 | 117 | implementation 118 | 119 | end. 120 | 121 | -------------------------------------------------------------------------------- /BassUnits/bassopus.pas: -------------------------------------------------------------------------------- 1 | { 2 | BASSOPUS 2.4 Delphi unit 3 | Copyright (c) 2012-2015 Un4seen Developments Ltd. 4 | 5 | See the BASSOPUS.CHM file for more detailed documentation 6 | } 7 | 8 | unit BassOPUS; 9 | 10 | interface 11 | 12 | {$IFDEF MSWINDOWS} 13 | uses BASS, Windows; 14 | {$ELSE} 15 | uses BASS; 16 | {$ENDIF} 17 | 18 | const 19 | // BASS_CHANNELINFO type 20 | BASS_CTYPE_STREAM_OPUS = $11200; 21 | 22 | // Additional attributes 23 | BASS_ATTRIB_OPUS_ORIGFREQ = $13000; 24 | BASS_ATTRIB_OPUS_GAIN = $13001; 25 | 26 | const 27 | {$IFDEF MSWINDOWS} 28 | bassopusdll = 'bassopus.dll'; 29 | {$ENDIF} 30 | {$IFDEF LINUX} 31 | bassopusdll = 'libbassopus.so'; 32 | {$ENDIF} 33 | {$IFDEF MACOS} 34 | bassopusdll = 'libbassopus.dylib'; 35 | {$ENDIF} 36 | 37 | function BASS_OPUS_StreamCreateFile(mem:BOOL; fl:pointer; offset,length:QWORD; flags:DWORD): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassopusdll; 38 | function BASS_OPUS_StreamCreateURL(url: PAnsiChar; offset: DWORD; flags: DWORD; proc: DOWNLOADPROC; user: Pointer): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassopusdll; 39 | function BASS_OPUS_StreamCreateFileUser(system,flags:DWORD; var procs:BASS_FILEPROCS; user:Pointer): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassopusdll; 40 | 41 | implementation 42 | 43 | end. -------------------------------------------------------------------------------- /BassUnits/basswma.pas: -------------------------------------------------------------------------------- 1 | { 2 | BASSWMA 2.4 Delphi unit 3 | Copyright (c) 2002-2014 Un4seen Developments Ltd. 4 | 5 | See the BASSWMA.CHM file for more detailed documentation 6 | } 7 | 8 | unit BassWMA; 9 | 10 | interface 11 | 12 | uses Windows, Bass; 13 | 14 | const 15 | // Additional error codes returned by BASS_ErrorGetCode 16 | BASS_ERROR_WMA_LICENSE = 1000; // the file is protected 17 | BASS_ERROR_WMA = 1001; // Windows Media (9 or above) is not installed 18 | BASS_ERROR_WMA_WM9 = BASS_ERROR_WMA; 19 | BASS_ERROR_WMA_DENIED = 1002; // access denied (user/pass is invalid) 20 | BASS_ERROR_WMA_INDIVIDUAL = 1004; // individualization is needed 21 | BASS_ERROR_WMA_PUBINIT = 1005; // publishing point initialization problem 22 | 23 | // Additional BASS_SetConfig options 24 | BASS_CONFIG_WMA_PRECHECK = $10100; 25 | BASS_CONFIG_WMA_PREBUF = $10101; 26 | BASS_CONFIG_WMA_BASSFILE = $10103; 27 | BASS_CONFIG_WMA_NETSEEK = $10104; 28 | BASS_CONFIG_WMA_VIDEO = $10105; 29 | BASS_CONFIG_WMA_BUFTIME = $10106; 30 | 31 | // additional WMA sync types 32 | BASS_SYNC_WMA_CHANGE = $10100; 33 | BASS_SYNC_WMA_META = $10101; 34 | 35 | // additional BASS_StreamGetFilePosition WMA mode 36 | BASS_FILEPOS_WMA_BUFFER = 1000; // internet buffering progress (0-100%) 37 | 38 | // Additional flags for use with BASS_WMA_EncodeOpen/File/Network/Publish 39 | BASS_WMA_ENCODE_STANDARD = $2000; // standard WMA 40 | BASS_WMA_ENCODE_PRO = $4000; // WMA Pro 41 | BASS_WMA_ENCODE_24BIT = $8000; // 24-bit 42 | BASS_WMA_ENCODE_PCM = $10000; // uncompressed PCM 43 | BASS_WMA_ENCODE_SCRIPT = $20000; // set script (mid-stream tags) in the WMA encoding 44 | BASS_WMA_ENCODE_QUEUE = $40000; // queue data to feed encoder asynchronously 45 | BASS_WMA_ENCODE_SOURCE = $80000; // use a BASS channel as source 46 | 47 | // Additional flag for use with BASS_WMA_EncodeGetRates 48 | BASS_WMA_ENCODE_RATES_VBR = $10000; // get available VBR quality settings 49 | 50 | // WMENCODEPROC "type" values 51 | BASS_WMA_ENCODE_HEAD = 0; 52 | BASS_WMA_ENCODE_DATA = 1; 53 | BASS_WMA_ENCODE_DONE = 2; 54 | 55 | // BASS_WMA_EncodeSetTag "form" values 56 | BASS_WMA_TAG_ANSI = 0; 57 | BASS_WMA_TAG_UNICODE = 1; 58 | BASS_WMA_TAG_UTF8 = 2; 59 | BASS_WMA_TAG_BINARY = $100; // FLAG: binary tag (HIWORD=length) 60 | 61 | // BASS_CHANNELINFO type 62 | BASS_CTYPE_STREAM_WMA = $10300; 63 | BASS_CTYPE_STREAM_WMA_MP3 = $10301; 64 | 65 | // Additional BASS_ChannelGetTags type 66 | BASS_TAG_WMA = 8; // WMA header tags : series of null-terminated UTF-8 strings 67 | BASS_TAG_WMA_META = 11; // WMA mid-stream tag : UTF-8 string 68 | BASS_TAG_WMA_CODEC = 12; // WMA codec 69 | 70 | 71 | type 72 | HWMENCODE = DWORD; // WMA encoding handle 73 | 74 | CLIENTCONNECTPROC = procedure(handle:HWMENCODE; connect:BOOL; ip:PAnsiChar; user:Pointer); stdcall; 75 | { 76 | Client connection notification callback function. 77 | handle : The encoder 78 | connect: TRUE=client is connecting, FALSE=disconnecting 79 | ip : The client's IP (xxx.xxx.xxx.xxx:port) 80 | user : The 'user' parameter value given when calling BASS_WMA_EncodeSetNotify 81 | } 82 | 83 | WMENCODEPROC = procedure(handle:HWMENCODE; dtype:DWORD; buffer:Pointer; length:DWORD; user:Pointer); stdcall; 84 | { 85 | Encoder callback function. 86 | handle : The encoder handle 87 | dtype : The type of data, one of BASS_WMA_ENCODE_xxx values 88 | buffer : The encoded data 89 | length : Length of the data 90 | user : The 'user' parameter value given when calling BASS_WMA_EncodeOpen 91 | } 92 | 93 | 94 | const 95 | basswmadll = 'basswma.dll'; 96 | 97 | function BASS_WMA_StreamCreateFile(mem:BOOL; fl:pointer; offset,length:QWORD; flags:DWORD): HSTREAM; stdcall; external basswmadll; 98 | function BASS_WMA_StreamCreateFileAuth(mem:BOOL; fl:pointer; offset,length:QWORD; flags:DWORD; user,pass:PChar): HSTREAM; stdcall; external basswmadll; 99 | function BASS_WMA_StreamCreateFileUser(system,flags:DWORD; var procs:BASS_FILEPROCS; user:Pointer): HSTREAM; stdcall; external basswmadll; 100 | 101 | function BASS_WMA_GetTags(fname:PChar; flags:DWORD): PAnsiChar; stdcall; external basswmadll; 102 | 103 | function BASS_WMA_EncodeGetRates(freq,chans,flags:DWORD): PDWORD; stdcall; external basswmadll; 104 | function BASS_WMA_EncodeOpen(freq,chans,flags,bitrate:DWORD; proc:WMENCODEPROC; user:Pointer): HWMENCODE; stdcall; external basswmadll; 105 | function BASS_WMA_EncodeOpenFile(freq,chans,flags,bitrate:DWORD; fname:PChar): HWMENCODE; stdcall; external basswmadll; 106 | function BASS_WMA_EncodeOpenNetwork(freq,chans,flags,bitrate,port,clients:DWORD): HWMENCODE; stdcall; external basswmadll; 107 | function BASS_WMA_EncodeOpenNetworkMulti(freq,chans,flags:DWORD; bitrates:PDWORD; port,clients:DWORD): HWMENCODE; stdcall; external basswmadll; 108 | function BASS_WMA_EncodeOpenPublish(freq,chans,flags,bitrate:DWORD; url,user,pass:PChar): HWMENCODE; stdcall; external basswmadll; 109 | function BASS_WMA_EncodeOpenPublishMulti(freq,chans,flags:DWORD; bitrates:PDWORD; url,user,pass:PChar): HWMENCODE; stdcall; external basswmadll; 110 | function BASS_WMA_EncodeGetPort(handle:HWMENCODE): DWORD; stdcall; external basswmadll; 111 | function BASS_WMA_EncodeSetNotify(handle:HWMENCODE; proc:CLIENTCONNECTPROC; user:Pointer): BOOL; stdcall; external basswmadll; 112 | function BASS_WMA_EncodeGetClients(handle:HWMENCODE): DWORD; stdcall; external basswmadll; 113 | function BASS_WMA_EncodeSetTag(handle:HWMENCODE; tag,text:PChar; form:DWORD): BOOL; stdcall; external basswmadll; 114 | function BASS_WMA_EncodeWrite(handle:HWMENCODE; buffer:Pointer; length:DWORD): BOOL; stdcall; external basswmadll; 115 | function BASS_WMA_EncodeClose(handle:HWMENCODE): BOOL; stdcall; external basswmadll; 116 | 117 | function BASS_WMA_GetWMObject(handle:DWORD): Pointer; stdcall; external basswmadll; 118 | 119 | implementation 120 | 121 | end. 122 | -------------------------------------------------------------------------------- /BassUnits/basswv.pas: -------------------------------------------------------------------------------- 1 | { 2 | BASSWV 2.4 Delphi unit 3 | Copyright (c) 2007-2012 Un4seen Developments Ltd. 4 | 5 | See the BASSWV.CHM file for more detailed documentation 6 | } 7 | 8 | unit BassWV; 9 | 10 | interface 11 | 12 | {$IFDEF MSWINDOWS} 13 | uses BASS, Windows; 14 | {$ELSE} 15 | uses BASS; 16 | {$ENDIF} 17 | 18 | const 19 | // BASS_CHANNELINFO type 20 | BASS_CTYPE_STREAM_WV = $10500; 21 | 22 | const 23 | {$IFDEF MSWINDOWS} 24 | basswvdll = 'basswv.dll'; 25 | {$ENDIF} 26 | {$IFDEF LINUX} 27 | basswvdll = 'libbasswv.so'; 28 | {$ENDIF} 29 | {$IFDEF MACOS} 30 | basswvdll = 'libbasswv.dylib'; 31 | {$ENDIF} 32 | 33 | function BASS_WV_StreamCreateFile(mem:BOOL; fl:pointer; offset,length:QWORD; flags:DWORD): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external basswvdll; 34 | function BASS_WV_StreamCreateURL(url: PAnsiChar; offset: DWORD; flags: DWORD; proc: DOWNLOADPROC; user: Pointer): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external basswvdll; 35 | function BASS_WV_StreamCreateFileUser(system,flags:DWORD; var procs:BASS_FILEPROCS; user:Pointer): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external basswvdll; 36 | 37 | implementation 38 | 39 | end. -------------------------------------------------------------------------------- /Constants/ThreadMsgConstants.pas: -------------------------------------------------------------------------------- 1 | unit ThreadMsgConstants; 2 | 3 | interface 4 | 5 | const 6 | THREAD_MSG_RESET_UI = 0; 7 | THREAD_MSG_SHOW_ERROR = 1; 8 | THREAD_MSG_UPDATE_PROGRESS = 2; 9 | THREAD_MSG_UPDATE_META_NAME = 3; 10 | THREAD_MSG_UPDATE_META_BITRATE = 4; 11 | THREAD_MSG_UPDATE_META = 7; 12 | THREAD_MSG_STATUS_UPDATE = 8; 13 | THREAD_MSG_REPAINT_RADIO_LIST = 9; 14 | THREAD_MSG_STOP_IMG_ANIM = 10; 15 | THREAD_MSG_DOWNLOAD_LYRIC = 11; 16 | THREAD_MSG_START_RECORDING = 12; 17 | THREAD_MSG_PLAY_NEXT_SONG = 13; 18 | THREAD_MSG_UPDATE_LEVELS = 14; 19 | 20 | implementation 21 | end. 22 | 23 | -------------------------------------------------------------------------------- /Forms/UnitAbout.pas: -------------------------------------------------------------------------------- 1 | { * 2 | * Copyright (C) 2014-2017 ozok 3 | * 4 | * This file is part of OooPlayer. 5 | * 6 | * OooPlayer is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * OooPlayer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with OooPlayer. If not, see . 18 | * 19 | * } 20 | 21 | unit UnitAbout; 22 | 23 | interface 24 | 25 | uses 26 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, 27 | Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, 28 | ShellAPI; 29 | 30 | type 31 | TAboutForm = class(TForm) 32 | Label1: TLabel; 33 | Image1: TImage; 34 | Label2: TLabel; 35 | Label3: TLabel; 36 | Button1: TButton; 37 | Button2: TButton; 38 | Label4: TLabel; 39 | Label5: TLabel; 40 | Label6: TLabel; 41 | sLabel1: TLabel; 42 | procedure Button1Click(Sender: TObject); 43 | procedure FormClose(Sender: TObject; var Action: TCloseAction); 44 | procedure Button2Click(Sender: TObject); 45 | procedure Label3Click(Sender: TObject); 46 | procedure Label4Click(Sender: TObject); 47 | procedure Label6Click(Sender: TObject); 48 | procedure Label5Click(Sender: TObject); 49 | procedure FormShow(Sender: TObject); 50 | procedure sLabel1Click(Sender: TObject); 51 | procedure sLabel2Click(Sender: TObject); 52 | private 53 | { Private declarations } 54 | public 55 | { Public declarations } 56 | end; 57 | 58 | var 59 | AboutForm: TAboutForm; 60 | 61 | implementation 62 | 63 | {$R *.dfm} 64 | 65 | uses 66 | UnitMain; 67 | 68 | procedure TAboutForm.Button1Click(Sender: TObject); 69 | begin 70 | Self.Close; 71 | end; 72 | 73 | procedure TAboutForm.Button2Click(Sender: TObject); 74 | begin 75 | ShellExecute(Handle, 'open', 'http://www.ozok26.com/categories/5/oooplayer', nil, nil, SW_NORMAL); 76 | end; 77 | 78 | procedure TAboutForm.FormClose(Sender: TObject; var Action: TCloseAction); 79 | begin 80 | MainForm.Enabled := True; 81 | MainForm.BringToFront; 82 | end; 83 | 84 | procedure TAboutForm.FormShow(Sender: TObject); 85 | begin 86 | Self.Color := MainForm.Color; 87 | end; 88 | 89 | procedure TAboutForm.Label3Click(Sender: TObject); 90 | begin 91 | ShellExecute(Handle, 'open', 'http://sbstnblnd.deviantart.com/art/Plateau-0-2-391110900', nil, nil, SW_NORMAL); 92 | end; 93 | 94 | procedure TAboutForm.Label4Click(Sender: TObject); 95 | begin 96 | ShellExecute(Handle, 'open', 'http://un4seen.com/', nil, nil, SW_NORMAL); 97 | end; 98 | 99 | procedure TAboutForm.Label5Click(Sender: TObject); 100 | begin 101 | ShellExecute(Handle, 'open', 'http://3delite.hu/', nil, nil, SW_NORMAL); 102 | end; 103 | 104 | procedure TAboutForm.Label6Click(Sender: TObject); 105 | begin 106 | ShellExecute(Handle, 'open', 'http://mediaarea.net/en/MediaInfo', nil, nil, SW_NORMAL); 107 | end; 108 | 109 | procedure TAboutForm.sLabel1Click(Sender: TObject); 110 | begin 111 | ShellExecute(Handle, 'open', 'https://github.com/pylast/pylast', nil, nil, SW_NORMAL); 112 | end; 113 | 114 | procedure TAboutForm.sLabel2Click(Sender: TObject); 115 | begin 116 | ShellExecute(Handle, 'open', 'http://www.alphaskins.com/index.php', nil, nil, SW_NORMAL); 117 | end; 118 | 119 | end. 120 | 121 | -------------------------------------------------------------------------------- /Forms/UnitLog.dfm: -------------------------------------------------------------------------------- 1 | object LogForm: TLogForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'Log - ESC to close' 5 | ClientHeight = 300 6 | ClientWidth = 635 7 | Color = clBtnFace 8 | DoubleBuffered = True 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -11 12 | Font.Name = 'Tahoma' 13 | Font.Style = [] 14 | KeyPreview = True 15 | OldCreateOrder = False 16 | Position = poMainFormCenter 17 | OnKeyDown = FormKeyDown 18 | OnShow = FormShow 19 | PixelsPerInch = 96 20 | TextHeight = 13 21 | object LogList: TMemo 22 | Left = 0 23 | Top = 0 24 | Width = 635 25 | Height = 300 26 | Align = alClient 27 | Font.Charset = DEFAULT_CHARSET 28 | Font.Color = clBlack 29 | Font.Height = -11 30 | Font.Name = 'Tahoma' 31 | Font.Style = [] 32 | ParentFont = False 33 | ReadOnly = True 34 | ScrollBars = ssBoth 35 | TabOrder = 0 36 | OnChange = LogListChange 37 | end 38 | end 39 | -------------------------------------------------------------------------------- /Forms/UnitLog.pas: -------------------------------------------------------------------------------- 1 | { * 2 | * Copyright (C) 2014-2017 ozok 3 | * 4 | * This file is part of OooPlayer. 5 | * 6 | * OooPlayer is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * OooPlayer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with OooPlayer. If not, see . 18 | * 19 | * } 20 | 21 | unit UnitLog; 22 | 23 | interface 24 | 25 | uses 26 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, 27 | Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; 28 | 29 | type 30 | TLogForm = class(TForm) 31 | LogList: TMemo; 32 | procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); 33 | procedure FormShow(Sender: TObject); 34 | procedure LogListChange(Sender: TObject); 35 | private 36 | { Private declarations } 37 | public 38 | { Public declarations } 39 | ESCCanClose: Boolean; 40 | end; 41 | 42 | var 43 | LogForm: TLogForm; 44 | 45 | implementation 46 | 47 | {$R *.dfm} 48 | 49 | procedure TLogForm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); 50 | begin 51 | if (Key = VK_ESCAPE) and ESCCanClose then 52 | Self.Close; 53 | end; 54 | 55 | procedure TLogForm.FormShow(Sender: TObject); 56 | begin 57 | Self.Color := clBtnFace; 58 | LogList.Color := clBtnFace; 59 | LogList.Font.Color := clBlack; 60 | ESCCanClose := True; 61 | end; 62 | 63 | procedure TLogForm.LogListChange(Sender: TObject); 64 | begin 65 | SendMessage(LogList.Handle, EM_LINESCROLL, 0, LogList.Lines.Count); 66 | end; 67 | 68 | end. 69 | 70 | -------------------------------------------------------------------------------- /Forms/UnitNewRadio.dfm: -------------------------------------------------------------------------------- 1 | object NewRadioForm: TNewRadioForm 2 | Left = 0 3 | Top = 0 4 | BorderStyle = bsToolWindow 5 | Caption = 'New radio station' 6 | ClientHeight = 127 7 | ClientWidth = 594 8 | Color = clBtnFace 9 | DoubleBuffered = True 10 | Font.Charset = DEFAULT_CHARSET 11 | Font.Color = clWindowText 12 | Font.Height = -11 13 | Font.Name = 'Tahoma' 14 | Font.Style = [] 15 | OldCreateOrder = False 16 | Position = poMainFormCenter 17 | OnClose = FormClose 18 | OnShow = FormShow 19 | DesignSize = ( 20 | 594 21 | 127) 22 | PixelsPerInch = 96 23 | TextHeight = 13 24 | object NameEdit: TLabeledEdit 25 | Left = 80 26 | Top = 8 27 | Width = 506 28 | Height = 21 29 | Anchors = [akLeft, akTop, akRight] 30 | EditLabel.Width = 68 31 | EditLabel.Height = 13 32 | EditLabel.Caption = 'Station Name:' 33 | LabelPosition = lpLeft 34 | TabOrder = 0 35 | end 36 | object WebEdit: TLabeledEdit 37 | Left = 80 38 | Top = 35 39 | Width = 506 40 | Height = 21 41 | Anchors = [akLeft, akTop, akRight] 42 | EditLabel.Width = 53 43 | EditLabel.Height = 13 44 | EditLabel.Caption = 'Web page:' 45 | LabelPosition = lpLeft 46 | TabOrder = 1 47 | end 48 | object StreamEdit: TLabeledEdit 49 | Left = 80 50 | Top = 62 51 | Width = 506 52 | Height = 21 53 | Anchors = [akLeft, akTop, akRight] 54 | EditLabel.Width = 56 55 | EditLabel.Height = 13 56 | EditLabel.Caption = 'Stream link:' 57 | LabelPosition = lpLeft 58 | TabOrder = 2 59 | end 60 | object SaveBtn: TButton 61 | Left = 511 62 | Top = 94 63 | Width = 75 64 | Height = 25 65 | Anchors = [akRight, akBottom] 66 | Caption = 'Add' 67 | TabOrder = 3 68 | OnClick = SaveBtnClick 69 | end 70 | object CancelBtn: TButton 71 | Left = 430 72 | Top = 94 73 | Width = 75 74 | Height = 25 75 | Anchors = [akRight, akBottom] 76 | Caption = 'Cancel' 77 | TabOrder = 4 78 | OnClick = CancelBtnClick 79 | end 80 | end 81 | -------------------------------------------------------------------------------- /Forms/UnitNewRadio.pas: -------------------------------------------------------------------------------- 1 | { * 2 | * Copyright (C) 2014-2017 ozok 3 | * 4 | * This file is part of OooPlayer. 5 | * 6 | * OooPlayer is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * OooPlayer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with OooPlayer. If not, see . 18 | * 19 | * } 20 | unit UnitNewRadio; 21 | 22 | interface 23 | 24 | uses 25 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, 26 | Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls; 27 | 28 | type 29 | TNewRadioForm = class(TForm) 30 | NameEdit: TLabeledEdit; 31 | WebEdit: TLabeledEdit; 32 | StreamEdit: TLabeledEdit; 33 | SaveBtn: TButton; 34 | CancelBtn: TButton; 35 | procedure CancelBtnClick(Sender: TObject); 36 | procedure FormShow(Sender: TObject); 37 | procedure FormClose(Sender: TObject; var Action: TCloseAction); 38 | procedure SaveBtnClick(Sender: TObject); 39 | private 40 | { Private declarations } 41 | public 42 | { Public declarations } 43 | RadioCategory: string; 44 | Portable: Boolean; 45 | end; 46 | 47 | var 48 | NewRadioForm: TNewRadioForm; 49 | 50 | implementation 51 | 52 | {$R *.dfm} 53 | 54 | uses 55 | UnitMain; 56 | 57 | procedure TNewRadioForm.SaveBtnClick(Sender: TObject); 58 | var 59 | LStreamWriter: TStreamWriter; 60 | begin 61 | if Length(NameEdit.Text) > 0 then 62 | begin 63 | if Length(StreamEdit.Text) > 0 then 64 | begin 65 | if Length(WebEdit.Text) > 0 then 66 | begin 67 | if not Portable then 68 | begin 69 | LStreamWriter := TStreamWriter.Create(MainForm.FAppDataFolder + '\' + RadioCategory + '.txt', True); 70 | end 71 | else 72 | begin 73 | LStreamWriter := TStreamWriter.Create(ExtractFileDir(Application.ExeName) + '\Radios\' + RadioCategory + '.txt', True); 74 | end; 75 | try 76 | LStreamWriter.WriteLine(NameEdit.Text + ';' + WebEdit.Text + ';' + StreamEdit.Text); 77 | finally 78 | LStreamWriter.Close; 79 | LStreamWriter.Free; 80 | end; 81 | Self.Close; 82 | MainForm.ReloadRadioCategory; 83 | if MainForm.FCurrentRadioIndex > -1 then 84 | begin 85 | if MainForm.RadioList.Items.Count > MainForm.FCurrentRadioIndex then 86 | begin 87 | MainForm.RadioList.Items[MainForm.FCurrentRadioIndex].MakeVisible(False); 88 | end; 89 | end; 90 | MainForm.RadioList.Invalidate; 91 | end 92 | else 93 | begin 94 | Application.MessageBox('Please enter web page.', 'Error', MB_ICONERROR); 95 | end; 96 | end 97 | else 98 | begin 99 | Application.MessageBox('Please enter stream link.', 'Error', MB_ICONERROR); 100 | end; 101 | end 102 | else 103 | begin 104 | Application.MessageBox('Please enter radio name.', 'Error', MB_ICONERROR); 105 | end; 106 | end; 107 | 108 | procedure TNewRadioForm.CancelBtnClick(Sender: TObject); 109 | begin 110 | Self.Close; 111 | end; 112 | 113 | procedure TNewRadioForm.FormClose(Sender: TObject; var Action: TCloseAction); 114 | begin 115 | MainForm.Enabled := True; 116 | MainForm.BringToFront; 117 | end; 118 | 119 | procedure TNewRadioForm.FormShow(Sender: TObject); 120 | begin 121 | // reset 122 | NameEdit.Clear; 123 | WebEdit.Clear; 124 | StreamEdit.Clear; 125 | end; 126 | 127 | end. 128 | 129 | -------------------------------------------------------------------------------- /Forms/UnitProgress.dfm: -------------------------------------------------------------------------------- 1 | object ProgressForm: TProgressForm 2 | Left = 0 3 | Top = 0 4 | BorderIcons = [] 5 | BorderStyle = bsSingle 6 | Caption = 'Progress' 7 | ClientHeight = 58 8 | ClientWidth = 645 9 | Color = clBtnFace 10 | DoubleBuffered = True 11 | Font.Charset = DEFAULT_CHARSET 12 | Font.Color = clWindowText 13 | Font.Height = -11 14 | Font.Name = 'Tahoma' 15 | Font.Style = [] 16 | OldCreateOrder = False 17 | Position = poMainFormCenter 18 | DesignSize = ( 19 | 645 20 | 58) 21 | PixelsPerInch = 96 22 | TextHeight = 13 23 | object StateLabel: TLabel 24 | Left = 8 25 | Top = 8 26 | Width = 51 27 | Height = 13 28 | Caption = 'StateLabel' 29 | end 30 | object MsgLabel: TLabel 31 | Left = 8 32 | Top = 29 33 | Width = 548 34 | Height = 13 35 | Anchors = [akLeft, akRight, akBottom] 36 | AutoSize = False 37 | Caption = 'MsgLabel' 38 | end 39 | object AbortBtn: TButton 40 | Left = 562 41 | Top = 17 42 | Width = 75 43 | Height = 25 44 | Anchors = [akRight, akBottom] 45 | Caption = 'Abort' 46 | TabOrder = 0 47 | OnClick = AbortBtnClick 48 | end 49 | object ProgressBar1: TProgressBar 50 | Left = 0 51 | Top = 48 52 | Width = 645 53 | Height = 10 54 | Align = alBottom 55 | TabOrder = 1 56 | ExplicitTop = 41 57 | end 58 | end 59 | -------------------------------------------------------------------------------- /Forms/UnitProgress.pas: -------------------------------------------------------------------------------- 1 | unit UnitProgress; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, 7 | Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls; 8 | 9 | type 10 | TProgressForm = class(TForm) 11 | StateLabel: TLabel; 12 | MsgLabel: TLabel; 13 | AbortBtn: TButton; 14 | ProgressBar1: TProgressBar; 15 | procedure AbortBtnClick(Sender: TObject); 16 | private 17 | { Private declarations } 18 | public 19 | { Public declarations } 20 | end; 21 | 22 | var 23 | ProgressForm: TProgressForm; 24 | 25 | implementation 26 | 27 | {$R *.dfm} 28 | 29 | uses 30 | UnitMain; 31 | 32 | procedure TProgressForm.AbortBtnClick(Sender: TObject); 33 | begin 34 | if MainForm.MusicSearch.Searching then 35 | begin 36 | MainForm.MusicSearch.Abort; 37 | end; 38 | MainForm.FStopAddFiles := True; 39 | end; 40 | 41 | end. 42 | 43 | -------------------------------------------------------------------------------- /Forms/UnitRadioInfo.dfm: -------------------------------------------------------------------------------- 1 | object RadioInfoForm: TRadioInfoForm 2 | Left = 0 3 | Top = 0 4 | BorderStyle = bsToolWindow 5 | Caption = 'Radio Station' 6 | ClientHeight = 99 7 | ClientWidth = 594 8 | Color = clBtnFace 9 | DoubleBuffered = True 10 | Font.Charset = DEFAULT_CHARSET 11 | Font.Color = clWindowText 12 | Font.Height = -11 13 | Font.Name = 'Tahoma' 14 | Font.Style = [] 15 | OldCreateOrder = False 16 | Position = poMainFormCenter 17 | OnClose = FormClose 18 | OnShow = FormShow 19 | DesignSize = ( 20 | 594 21 | 99) 22 | PixelsPerInch = 96 23 | TextHeight = 13 24 | object Label1: TLabel 25 | Left = 8 26 | Top = 8 27 | Width = 67 28 | Height = 13 29 | Caption = 'Station name:' 30 | end 31 | object Label2: TLabel 32 | Left = 29 33 | Top = 27 34 | Width = 46 35 | Height = 13 36 | Caption = 'Web site:' 37 | end 38 | object Label3: TLabel 39 | Left = 19 40 | Top = 46 41 | Width = 56 42 | Height = 13 43 | Caption = 'Stream link:' 44 | end 45 | object NameLabel: TLabel 46 | Left = 81 47 | Top = 8 48 | Width = 52 49 | Height = 13 50 | Caption = 'NameLabel' 51 | end 52 | object WebLabel: TLabel 53 | Left = 81 54 | Top = 27 55 | Width = 47 56 | Height = 13 57 | Cursor = crHandPoint 58 | Caption = 'WebLabel' 59 | Font.Charset = DEFAULT_CHARSET 60 | Font.Color = clBlue 61 | Font.Height = -11 62 | Font.Name = 'Tahoma' 63 | Font.Style = [fsUnderline] 64 | ParentFont = False 65 | OnClick = WebLabelClick 66 | end 67 | object StreamLabel: TLabel 68 | Left = 81 69 | Top = 46 70 | Width = 59 71 | Height = 13 72 | Cursor = crHandPoint 73 | Caption = 'StreamLabel' 74 | Font.Charset = DEFAULT_CHARSET 75 | Font.Color = clBlue 76 | Font.Height = -11 77 | Font.Name = 'Tahoma' 78 | Font.Style = [fsUnderline] 79 | ParentFont = False 80 | OnClick = StreamLabelClick 81 | end 82 | object Button1: TButton 83 | Left = 511 84 | Top = 66 85 | Width = 75 86 | Height = 25 87 | Anchors = [akRight, akBottom] 88 | Caption = 'Close' 89 | Font.Charset = DEFAULT_CHARSET 90 | Font.Color = clWindowText 91 | Font.Height = -11 92 | Font.Name = 'Tahoma' 93 | Font.Style = [] 94 | ParentFont = False 95 | TabOrder = 0 96 | OnClick = Button1Click 97 | end 98 | end 99 | -------------------------------------------------------------------------------- /Forms/UnitRadioInfo.pas: -------------------------------------------------------------------------------- 1 | { * 2 | * Copyright (C) 2014-2017 ozok 3 | * 4 | * This file is part of OooPlayer. 5 | * 6 | * OooPlayer is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * OooPlayer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with OooPlayer. If not, see . 18 | * 19 | * } 20 | unit UnitRadioInfo; 21 | 22 | interface 23 | 24 | uses 25 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, 26 | Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, ShellAPI; 27 | 28 | type 29 | TRadioInfoForm = class(TForm) 30 | Label1: TLabel; 31 | Label2: TLabel; 32 | Label3: TLabel; 33 | NameLabel: TLabel; 34 | WebLabel: TLabel; 35 | StreamLabel: TLabel; 36 | Button1: TButton; 37 | procedure Button1Click(Sender: TObject); 38 | procedure FormClose(Sender: TObject; var Action: TCloseAction); 39 | procedure FormShow(Sender: TObject); 40 | procedure WebLabelClick(Sender: TObject); 41 | procedure StreamLabelClick(Sender: TObject); 42 | private 43 | { Private declarations } 44 | public 45 | { Public declarations } 46 | end; 47 | 48 | implementation 49 | 50 | {$R *.dfm} 51 | 52 | uses 53 | UnitMain; 54 | 55 | procedure TRadioInfoForm.Button1Click(Sender: TObject); 56 | begin 57 | Self.Close; 58 | end; 59 | 60 | procedure TRadioInfoForm.FormClose(Sender: TObject; var Action: TCloseAction); 61 | begin 62 | Action := caFree; 63 | end; 64 | 65 | procedure TRadioInfoForm.FormShow(Sender: TObject); 66 | begin 67 | NameLabel.Caption := MainForm.FRadioStations[MainForm.RadioList.ItemIndex].Name; 68 | WebLabel.Caption := MainForm.FRadioStations[MainForm.RadioList.ItemIndex].Web; 69 | StreamLabel.Caption := MainForm.FRadioStations[MainForm.RadioList.ItemIndex].URL; 70 | end; 71 | 72 | procedure TRadioInfoForm.StreamLabelClick(Sender: TObject); 73 | begin 74 | ShellExecute(Handle, 'open', PWideChar(StreamLabel.Caption), nil, nil, SW_SHOWNORMAL); 75 | end; 76 | 77 | procedure TRadioInfoForm.WebLabelClick(Sender: TObject); 78 | begin 79 | ShellExecute(Handle, 'open', PWideChar(WebLabel.Caption), nil, nil, SW_SHOWNORMAL); 80 | end; 81 | 82 | end. 83 | 84 | -------------------------------------------------------------------------------- /Forms/UnitRadioRecordOptions.dfm: -------------------------------------------------------------------------------- 1 | object RadioRecordOptionsForm: TRadioRecordOptionsForm 2 | Left = 0 3 | Top = 0 4 | BorderStyle = bsToolWindow 5 | Caption = 'Radio Recording Options' 6 | ClientHeight = 92 7 | ClientWidth = 645 8 | Color = clBtnFace 9 | DoubleBuffered = True 10 | Font.Charset = DEFAULT_CHARSET 11 | Font.Color = clWindowText 12 | Font.Height = -11 13 | Font.Name = 'Tahoma' 14 | Font.Style = [] 15 | OldCreateOrder = False 16 | Position = poMainFormCenter 17 | OnClose = FormClose 18 | OnCreate = FormCreate 19 | DesignSize = ( 20 | 645 21 | 92) 22 | PixelsPerInch = 96 23 | TextHeight = 13 24 | object Label1: TLabel 25 | Left = 8 26 | Top = 11 27 | Width = 118 28 | Height = 13 29 | Caption = 'Recording save location:' 30 | end 31 | object Label2: TLabel 32 | Left = 57 33 | Top = 38 34 | Width = 69 35 | Height = 13 36 | Caption = 'Bitrate (kbps):' 37 | end 38 | object Label3: TLabel 39 | Left = 8 40 | Top = 71 41 | Width = 291 42 | Height = 13 43 | Caption = 'Changes will be effective the next time you start a recording' 44 | end 45 | object Button1: TButton 46 | Left = 562 47 | Top = 8 48 | Width = 75 49 | Height = 21 50 | Anchors = [akTop, akRight] 51 | Caption = 'Open' 52 | TabOrder = 0 53 | OnClick = Button1Click 54 | end 55 | object Button2: TButton 56 | Left = 562 57 | Top = 59 58 | Width = 75 59 | Height = 25 60 | Anchors = [akRight, akBottom] 61 | Caption = 'Close' 62 | TabOrder = 1 63 | OnClick = Button2Click 64 | end 65 | object BitrateList: TComboBox 66 | Left = 132 67 | Top = 35 68 | Width = 75 69 | Height = 21 70 | Font.Charset = DEFAULT_CHARSET 71 | Font.Color = 12102048 72 | Font.Height = -11 73 | Font.Name = 'Tahoma' 74 | Font.Style = [] 75 | ParentFont = False 76 | TabOrder = 2 77 | Text = '128' 78 | Items.Strings = ( 79 | '320' 80 | '256' 81 | '192' 82 | '160' 83 | '128' 84 | '112' 85 | '96' 86 | '80' 87 | '65' 88 | '56' 89 | '48' 90 | '32') 91 | end 92 | object RecordSaveEdit: TJvDirectoryEdit 93 | Left = 132 94 | Top = 8 95 | Width = 424 96 | Height = 21 97 | DialogKind = dkWin32 98 | Anchors = [akLeft, akTop, akRight] 99 | TabOrder = 3 100 | Text = '' 101 | end 102 | object Info: TJvComputerInfoEx 103 | Left = 384 104 | Top = 32 105 | end 106 | end 107 | -------------------------------------------------------------------------------- /Forms/UnitRadioRecordOptions.pas: -------------------------------------------------------------------------------- 1 | { * 2 | * Copyright (C) 2014-2017 ozok 3 | * 4 | * This file is part of OooPlayer. 5 | * 6 | * OooPlayer is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * OooPlayer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with OooPlayer. If not, see . 18 | * 19 | * } 20 | unit UnitRadioRecordOptions; 21 | 22 | interface 23 | 24 | uses 25 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, 26 | Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, 27 | JvExMask, JvToolEdit, Vcl.ComCtrls, IniFiles, JvComponentBase, 28 | JvComputerInfoEx, ShellAPI; 29 | 30 | type 31 | TRadioRecordOptionsForm = class(TForm) 32 | Label1: TLabel; 33 | Button1: TButton; 34 | Button2: TButton; 35 | Label2: TLabel; 36 | BitrateList: TComboBox; 37 | Info: TJvComputerInfoEx; 38 | Label3: TLabel; 39 | RecordSaveEdit: TJvDirectoryEdit; 40 | procedure Button2Click(Sender: TObject); 41 | procedure FormClose(Sender: TObject; var Action: TCloseAction); 42 | procedure FormCreate(Sender: TObject); 43 | procedure Button1Click(Sender: TObject); 44 | private 45 | { Private declarations } 46 | 47 | procedure LoadSettings; 48 | procedure SaveSettings; 49 | public 50 | { Public declarations } 51 | end; 52 | 53 | var 54 | RadioRecordOptionsForm: TRadioRecordOptionsForm; 55 | 56 | implementation 57 | 58 | {$R *.dfm} 59 | 60 | uses 61 | UnitMain; 62 | 63 | procedure TRadioRecordOptionsForm.Button1Click(Sender: TObject); 64 | begin 65 | if DirectoryExists(RecordSaveEdit.Text) then 66 | begin 67 | ShellExecute(Handle, 'open', 'explorer', PChar(RecordSaveEdit.Text), nil, SW_SHOWNORMAL); 68 | end; 69 | end; 70 | 71 | procedure TRadioRecordOptionsForm.Button2Click(Sender: TObject); 72 | begin 73 | Self.Close; 74 | end; 75 | 76 | procedure TRadioRecordOptionsForm.FormClose(Sender: TObject; var Action: TCloseAction); 77 | begin 78 | SaveSettings; 79 | MainForm.Enabled := True; 80 | MainForm.BringToFront; 81 | end; 82 | 83 | procedure TRadioRecordOptionsForm.FormCreate(Sender: TObject); 84 | begin 85 | LoadSettings; 86 | end; 87 | 88 | procedure TRadioRecordOptionsForm.LoadSettings; 89 | var 90 | SettingsFile: TIniFile; 91 | begin 92 | SettingsFile := TIniFile.Create(MainForm.FAppDataFolder + '\settings.ini'); 93 | try 94 | with SettingsFile do 95 | begin 96 | if not MainForm.PortableMode then 97 | begin 98 | RecordSaveEdit.Text := SettingsFile.ReadString('radiorecord', 'output', Info.Folders.Personal + '\OooPlayer\'); 99 | ForceDirectories(Info.Folders.Personal + '\OooPlayer\'); 100 | end 101 | else 102 | begin 103 | RecordSaveEdit.Text := SettingsFile.ReadString('radiorecord', 'output', ExtractFileDir(Application.ExeName) + '\Recordings\'); 104 | ForceDirectories(ExtractFileDir(Application.ExeName) + '\Recordings\'); 105 | end; 106 | BitrateList.Text := SettingsFile.ReadString('radiorecord', 'bitrate', '128'); 107 | end; 108 | finally 109 | SettingsFile.Free; 110 | end; 111 | end; 112 | 113 | procedure TRadioRecordOptionsForm.SaveSettings; 114 | var 115 | SettingsFile: TIniFile; 116 | begin 117 | SettingsFile := TIniFile.Create(MainForm.FAppDataFolder + '\settings.ini'); 118 | try 119 | with SettingsFile do 120 | begin 121 | SettingsFile.WriteString('radiorecord', 'output', RecordSaveEdit.Text); 122 | SettingsFile.WriteString('radiorecord', 'bitrate', BitrateList.Text); 123 | end; 124 | finally 125 | SettingsFile.Free; 126 | end; 127 | end; 128 | 129 | end. 130 | 131 | -------------------------------------------------------------------------------- /Forms/UnitSearch.dfm: -------------------------------------------------------------------------------- 1 | object SearchForm: TSearchForm 2 | Left = 0 3 | Top = 0 4 | BorderStyle = bsSizeToolWin 5 | Caption = 'Search' 6 | ClientHeight = 478 7 | ClientWidth = 787 8 | Color = clBtnFace 9 | DoubleBuffered = True 10 | Font.Charset = DEFAULT_CHARSET 11 | Font.Color = clWindowText 12 | Font.Height = -11 13 | Font.Name = 'Tahoma' 14 | Font.Style = [] 15 | KeyPreview = True 16 | OldCreateOrder = False 17 | Position = poMainFormCenter 18 | OnClose = FormClose 19 | OnCreate = FormCreate 20 | OnDestroy = FormDestroy 21 | OnKeyDown = FormKeyDown 22 | OnResize = FormResize 23 | OnShow = FormShow 24 | DesignSize = ( 25 | 787 26 | 478) 27 | PixelsPerInch = 96 28 | TextHeight = 13 29 | object ResultsLbl: TLabel 30 | Left = 0 31 | Top = 465 32 | Width = 787 33 | Height = 13 34 | Align = alBottom 35 | ExplicitWidth = 3 36 | end 37 | object QueryEdit: TLabeledEdit 38 | Left = 48 39 | Top = 10 40 | Width = 650 41 | Height = 21 42 | Anchors = [akLeft, akTop, akRight] 43 | EditLabel.Width = 34 44 | EditLabel.Height = 13 45 | EditLabel.Caption = 'Query:' 46 | EditLabel.Layout = tlBottom 47 | LabelPosition = lpLeft 48 | TabOrder = 0 49 | OnKeyDown = QueryEditKeyDown 50 | OnMouseEnter = QueryEditMouseEnter 51 | end 52 | object SearchBtn: TButton 53 | Left = 704 54 | Top = 8 55 | Width = 75 56 | Height = 25 57 | Anchors = [akTop, akRight] 58 | Caption = 'Search' 59 | TabOrder = 1 60 | OnClick = SearchBtnClick 61 | end 62 | object ResultsList: TListView 63 | Left = 8 64 | Top = 39 65 | Width = 771 66 | Height = 397 67 | Anchors = [akLeft, akTop, akRight, akBottom] 68 | Columns = < 69 | item 70 | Caption = 'Title' 71 | end 72 | item 73 | Alignment = taCenter 74 | Caption = 'Duration' 75 | Width = 80 76 | end> 77 | Font.Charset = DEFAULT_CHARSET 78 | Font.Color = clWindowText 79 | Font.Height = -11 80 | Font.Name = 'Tahoma' 81 | Font.Style = [] 82 | ReadOnly = True 83 | RowSelect = True 84 | ParentFont = False 85 | PopupMenu = ListMenu 86 | ShowColumnHeaders = False 87 | TabOrder = 2 88 | ViewStyle = vsReport 89 | OnClick = ResultsListClick 90 | OnDblClick = ResultsListDblClick 91 | end 92 | object chkCloseOnPlayBtn: TCheckBox 93 | Left = 8 94 | Top = 440 95 | Width = 250 96 | Height = 19 97 | Anchors = [akLeft, akBottom] 98 | Caption = 'Close this window if a result is selected to play' 99 | Checked = True 100 | State = cbChecked 101 | TabOrder = 3 102 | end 103 | object ListMenu: TPopupMenu 104 | Left = 312 105 | Top = 152 106 | object A1: TMenuItem 107 | Caption = 'Add to queue' 108 | OnClick = A1Click 109 | end 110 | end 111 | end 112 | -------------------------------------------------------------------------------- /Forms/UnitShuffleList.dfm: -------------------------------------------------------------------------------- 1 | object ShuffleListForm: TShuffleListForm 2 | Left = 0 3 | Top = 0 4 | BorderIcons = [biSystemMenu] 5 | Caption = 'Shuffle List' 6 | ClientHeight = 539 7 | ClientWidth = 967 8 | Color = clBtnFace 9 | DoubleBuffered = True 10 | Font.Charset = DEFAULT_CHARSET 11 | Font.Color = clWindowText 12 | Font.Height = -11 13 | Font.Name = 'Tahoma' 14 | Font.Style = [] 15 | OldCreateOrder = False 16 | Position = poMainFormCenter 17 | OnResize = FormResize 18 | OnShow = FormShow 19 | DesignSize = ( 20 | 967 21 | 539) 22 | PixelsPerInch = 96 23 | TextHeight = 13 24 | object ShuffleCountLabel: TLabel 25 | AlignWithMargins = True 26 | Left = 3 27 | Top = 523 28 | Width = 961 29 | Height = 13 30 | Align = alBottom 31 | ExplicitWidth = 3 32 | end 33 | object ShuffleList: TListView 34 | Left = 8 35 | Top = 8 36 | Width = 951 37 | Height = 505 38 | Anchors = [akLeft, akTop, akRight, akBottom] 39 | Columns = < 40 | item 41 | Caption = 'Title' 42 | end 43 | item 44 | Alignment = taCenter 45 | Caption = 'Duration' 46 | Width = 120 47 | end> 48 | Font.Charset = DEFAULT_CHARSET 49 | Font.Color = clWindowText 50 | Font.Height = -11 51 | Font.Name = 'Tahoma' 52 | Font.Style = [] 53 | OwnerData = True 54 | ReadOnly = True 55 | RowSelect = True 56 | ParentFont = False 57 | ShowColumnHeaders = False 58 | TabOrder = 0 59 | ViewStyle = vsReport 60 | OnAdvancedCustomDrawItem = ShuffleListAdvancedCustomDrawItem 61 | OnData = ShuffleListData 62 | OnDblClick = ShuffleListDblClick 63 | end 64 | end 65 | -------------------------------------------------------------------------------- /Forms/UnitShuffleList.pas: -------------------------------------------------------------------------------- 1 | unit UnitShuffleList; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, 7 | Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls; 8 | 9 | type 10 | TShuffleListForm = class(TForm) 11 | ShuffleList: TListView; 12 | ShuffleCountLabel: TLabel; 13 | procedure ShuffleListData(Sender: TObject; Item: TListItem); 14 | procedure FormShow(Sender: TObject); 15 | procedure FormResize(Sender: TObject); 16 | procedure ShuffleListAdvancedCustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage; var DefaultDraw: Boolean); 17 | procedure ShuffleListDblClick(Sender: TObject); 18 | private 19 | { Private declarations } 20 | public 21 | { Public declarations } 22 | end; 23 | 24 | var 25 | ShuffleListForm: TShuffleListForm; 26 | 27 | implementation 28 | 29 | {$R *.dfm} 30 | 31 | uses 32 | UnitMain; 33 | 34 | procedure TShuffleListForm.FormResize(Sender: TObject); 35 | begin 36 | try 37 | ShuffleList.Columns[0].Width := ShuffleList.ClientWidth - ShuffleList.Columns[1].Width - 20; 38 | except 39 | on E: Exception do 40 | begin 41 | 42 | end; 43 | end; 44 | end; 45 | 46 | procedure TShuffleListForm.FormShow(Sender: TObject); 47 | begin 48 | ShuffleList.Items.Count := MainForm.FShuffleIndexes.Count; 49 | ShuffleCountLabel.Caption := FloatToStr(ShuffleList.Items.Count) + ' songs in shuffle list'; 50 | if MainForm.FShuffleIndex > -1 then 51 | begin 52 | ShuffleList.Items[MainForm.FShuffleIndex].MakeVisible(False); 53 | end; 54 | end; 55 | 56 | procedure TShuffleListForm.ShuffleListAdvancedCustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage; var DefaultDraw: Boolean); 57 | begin 58 | if Item.Index = MainForm.FShuffleIndex then 59 | begin 60 | Sender.Canvas.Font.Style := [fsBold]; 61 | end 62 | else 63 | begin 64 | Sender.Canvas.Font.Style := []; 65 | end; 66 | end; 67 | 68 | procedure TShuffleListForm.ShuffleListData(Sender: TObject; Item: TListItem); 69 | var 70 | LSongIndex: integer; 71 | begin 72 | if Item.Index < MainForm.FShuffleIndexes.Count then 73 | begin 74 | LSongIndex := MainForm.FShuffleIndexes[Item.Index]; 75 | with MainForm.FPlaylists[MainForm.FSelectedPlaylistIndex][LSongIndex] do 76 | begin 77 | Item.Caption := Artist + ' - ' + Album + ' - ' + Title; 78 | Item.SubItems.Add(DurationStr) 79 | end; 80 | end; 81 | end; 82 | 83 | procedure TShuffleListForm.ShuffleListDblClick(Sender: TObject); 84 | begin 85 | if ShuffleList.ItemIndex > -1 then 86 | begin 87 | with MainForm do 88 | begin 89 | FShuffleIndex := ShuffleList.ItemIndex; 90 | 91 | try 92 | ShuffleList.Refresh; 93 | except 94 | on E: Exception do 95 | begin 96 | 97 | end; 98 | end; 99 | 100 | PositionTimer.Enabled := False; 101 | ProgressTimer.Enabled := PositionTimer.Enabled; 102 | 103 | try 104 | if FShuffleIndex < FShuffleIndexes.Count then 105 | begin 106 | if FShuffleIndexes[FShuffleIndex] < FPlaylists[FSelectedPlaylistIndex].Count then 107 | begin 108 | PlayItem(FShuffleIndexes[FShuffleIndex]); 109 | PlayItemUIUpdate; 110 | ShuffleList.Items[ShuffleList.ItemIndex].Update; 111 | end; 112 | end; 113 | finally 114 | PositionTimer.Enabled := True; 115 | ProgressTimer.Enabled := PositionTimer.Enabled; 116 | ShuffleList.Update; 117 | end; 118 | end; 119 | end; 120 | end; 121 | 122 | end. 123 | 124 | -------------------------------------------------------------------------------- /LastFMTool/compile.py: -------------------------------------------------------------------------------- 1 | from distutils.core import setup 2 | import py2exe 3 | setup(console=['lastfmscrobble.py']) -------------------------------------------------------------------------------- /LastFMTool/lastfmscrobble.py: -------------------------------------------------------------------------------- 1 | __author__ = 'ozok' 2 | 3 | import pylast 4 | import time 5 | import sys 6 | 7 | API_KEY = "0a5674077da2782718075412eab00800" 8 | API_SECRET = "56668ad9e4293be48def8f5ab1a6c658" 9 | network = pylast.LastFMNetwork(api_key=API_KEY, api_secret=API_SECRET, username=sys.argv[1], 10 | password_hash=str(sys.argv[2].strip())) 11 | a = network.scrobble(artist=sys.argv[3], title=sys.argv[4], timestamp=int(time.time())) -------------------------------------------------------------------------------- /LastFMTool/lastfmscrobbler_build.bat: -------------------------------------------------------------------------------- 1 | CD /D %~dp0 2 | "C:\python36_32\python.exe" compile.py py2exe --compressed --bundle-files=1 --optimize=2 -------------------------------------------------------------------------------- /LastFMTool/setup.py: -------------------------------------------------------------------------------- 1 | import cx_Freeze 2 | 3 | exe = [cx_Freeze.Executable("lastfmscrobble.py")] 4 | 5 | cx_Freeze.setup( name = "lastfmscrobble", version = "1.0", options = {"build_exe": {"packages": ["errno", "os", "re", "stat", "subprocess","collections", "pprint","shutil"], "include_files": []}}, executables = exe ) -------------------------------------------------------------------------------- /OooPlayer.dpr: -------------------------------------------------------------------------------- 1 | program OooPlayer; 2 | 3 | uses 4 | madExcept, 5 | Vcl.Forms, 6 | UnitMain in 'Forms\UnitMain.pas' {MainForm}, 7 | MediaInfoDLL in 'Units\Others\MediaInfoDLL.pas', 8 | UnitSearch in 'Forms\UnitSearch.pas' {SearchForm}, 9 | UnitSettings in 'Forms\UnitSettings.pas' {SettingsForm}, 10 | UnitTagTypes in 'Units\Tag\UnitTagTypes.pas', 11 | APEv2Library in 'Units\TagLibraries\APEv2Library.pas', 12 | FlacTagLibrary in 'Units\TagLibraries\FlacTagLibrary.pas', 13 | ID3v1Library in 'Units\TagLibraries\ID3v1Library.pas', 14 | ID3v2Library in 'Units\TagLibraries\ID3v2Library.pas', 15 | MP4TagLibrary in 'Units\TagLibraries\MP4TagLibrary.pas', 16 | OggVorbisAndOpusTagLibrary in 'Units\TagLibraries\OggVorbisAndOpusTagLibrary.pas', 17 | UnitLog in 'Forms\UnitLog.pas' {LogForm}, 18 | UnitAbout in 'Forms\UnitAbout.pas' {AboutForm}, 19 | UnitMusicPlayer in 'Units\Player\UnitMusicPlayer.pas', 20 | uTExtendedX87 in 'Units\TagLibraries\uTExtendedX87.pas', 21 | WMATagLibrary in 'Units\TagLibraries\WMATagLibrary.pas', 22 | WAVTagLibrary in 'Units\TagLibraries\WAVTagLibrary.pas', 23 | bass in 'BassUnits\bass.pas', 24 | bass_aac in 'BassUnits\bass_aac.pas', 25 | bass_ac3 in 'BassUnits\bass_ac3.pas', 26 | bass_ape in 'BassUnits\bass_ape.pas', 27 | bass_mpc in 'BassUnits\bass_mpc.pas', 28 | bass_ofr in 'BassUnits\bass_ofr.pas', 29 | bass_spx in 'BassUnits\bass_spx.pas', 30 | bass_tta in 'BassUnits\bass_tta.pas', 31 | bassflac in 'BassUnits\bassflac.pas', 32 | bassopus in 'BassUnits\bassopus.pas', 33 | basswma in 'BassUnits\basswma.pas', 34 | basswv in 'BassUnits\basswv.pas', 35 | UnitLyricDownloader in 'Units\Lyric\UnitLyricDownloader.pas', 36 | UnitRadioInfo in 'Forms\UnitRadioInfo.pas' {RadioInfoForm}, 37 | UnitNewRadio in 'Forms\UnitNewRadio.pas' {NewRadioForm}, 38 | bassenc in 'BassUnits\bassenc.pas', 39 | UnitRadioRecordOptions in 'Forms\UnitRadioRecordOptions.pas' {RadioRecordOptionsForm}, 40 | bassmix in 'BassUnits\bassmix.pas', 41 | UnitTagWriter in 'Units\Tag\UnitTagWriter.pas', 42 | Vcl.Themes, 43 | Vcl.Styles, 44 | UnitImageResize in 'Units\Artwork\UnitImageResize.pas', 45 | UnitArtworkReader in 'Units\Artwork\UnitArtworkReader.pas', 46 | UnitEQ in 'Forms\UnitEQ.pas' {EQForm}, 47 | UnitArtworkInfo in 'Units\Artwork\UnitArtworkInfo.pas', 48 | UnitLastFMToolLauncher in 'Units\Process\UnitLastFMToolLauncher.pas', 49 | UnitTagReader in 'Units\Tag\UnitTagReader.pas', 50 | UnitSubProcessLauncher in 'Units\Process\UnitSubProcessLauncher.pas', 51 | UnitCueParser in 'Units\Cue\UnitCueParser.pas', 52 | bass_fx in 'BassUnits\bass_fx.pas', 53 | bassalac in 'BassUnits\bassalac.pas', 54 | UnitShuffleList in 'Forms\UnitShuffleList.pas' {ShuffleListForm}, 55 | Playlist in 'Types\Playlist.pas', 56 | Radiolist in 'Types\Radiolist.pas', 57 | CommonTypes in 'Types\CommonTypes.pas', 58 | UnitProgress in 'Forms\UnitProgress.pas' {ProgressForm}, 59 | Utils in 'Units\Others\Utils.pas', 60 | JsonSerializer in 'Units\Others\JsonSerializer.pas', 61 | Constants in 'Units\Constants\Constants.pas'; 62 | 63 | {$R *.res} 64 | 65 | begin 66 | Application.Initialize; 67 | Application.MainFormOnTaskbar := True; 68 | TStyleManager.TrySetStyle('Glow'); 69 | Application.Title := 'OooPlayer'; 70 | Application.CreateForm(TMainForm, MainForm); 71 | Application.CreateForm(TSearchForm, SearchForm); 72 | Application.CreateForm(TSettingsForm, SettingsForm); 73 | Application.CreateForm(TLogForm, LogForm); 74 | Application.CreateForm(TAboutForm, AboutForm); 75 | Application.CreateForm(TNewRadioForm, NewRadioForm); 76 | Application.CreateForm(TRadioRecordOptionsForm, RadioRecordOptionsForm); 77 | Application.CreateForm(TEQForm, EQForm); 78 | Application.CreateForm(TShuffleListForm, ShuffleListForm); 79 | Application.CreateForm(TProgressForm, ProgressForm); 80 | Application.Run; 81 | 82 | end. 83 | -------------------------------------------------------------------------------- /OooPlayerProjectGroup.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {C65DA1E6-C35D-4828-9D34-EC3F1516D842} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | Default.Personality.12 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /OooTagEditor.dpr: -------------------------------------------------------------------------------- 1 | program OooTagEditor; 2 | 3 | uses 4 | madExcept, 5 | madLinkDisAsm, 6 | madListHardware, 7 | madListProcesses, 8 | madListModules, 9 | Vcl.Forms, 10 | UnitMain in 'TagEditor\UnitMain.pas' {MainForm}, 11 | UnitTagReader in 'Units\Tag\UnitTagReader.pas', 12 | UnitTagTypes in 'Units\Tag\UnitTagTypes.pas', 13 | MediaInfoDLL in 'Units\Others\MediaInfoDLL.pas', 14 | APEv2Library in 'units\taglibraries\APEv2Library.pas', 15 | FlacTagLibrary in 'units\taglibraries\FlacTagLibrary.pas', 16 | ID3v1Library in 'Units\TagLibraries\ID3v1Library.pas', 17 | ID3v2Library in 'Units\TagLibraries\ID3v2Library.pas', 18 | MP4TagLibrary in 'units\taglibraries\MP4TagLibrary.pas', 19 | OggVorbisAndOpusTagLibrary in 'units\taglibraries\OggVorbisAndOpusTagLibrary.pas', 20 | uTExtendedX87 in 'units\taglibraries\uTExtendedX87.pas', 21 | WAVTagLibrary in 'units\taglibraries\WAVTagLibrary.pas', 22 | WMATagLibrary in 'units\taglibraries\WMATagLibrary.pas'; 23 | 24 | {$R *.res} 25 | 26 | begin 27 | 28 | Application.Initialize; 29 | Application.MainFormOnTaskbar := True; 30 | Application.CreateForm(TMainForm, MainForm); 31 | Application.Run; 32 | 33 | end. 34 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | OooPlayer 2 | ========= 3 | 4 | ####OooPlayer is a lightweight music player for Windows. It's written in Delphi and uses Bass library and it's plugins from http://www.un4seen.com/ 5 | 6 | You can download it from http://www.fosshub.com/OooPlayer.html 7 | 8 | Supported formats 9 | -- 10 | * Audio formats: mp3, aac, alac, flac, ogg, opus, ape, mpc, tta, tak, wav, ofr, wv, wma, ac3 and spx 11 | * Playlist formats: m3u, m3u8, ppf (OooPlayer's own playlist format) 12 | 13 | Features 14 | ---- 15 | ####OooPlayer aims to be simple and fast. But while keeping it simple, it offers many features: 16 | * Several playback modes: Normal, Random, Repeat Track, Shuffle 17 | * OooPlayer can display both embedded and external cover art 18 | * Oooplayer has a very fast search mechanism 19 | * Oooplayer supports gapless playback 20 | * Oooplayer supports multiple playlists 21 | * Oooplayer has a song queue 22 | * Oooplayer has an online radio player that has more than 1500 radio stations 23 | * You can record radios to mp3, ogg vorbis, aac and opus or record without encoding 24 | * OooPlayer can download lyrics automatically from many sources 25 | * OooPlayer has a very simple interface that offers sufficient functionality 26 | 27 | To-Do 28 | --- 29 | ####While OooPlayer is very much functional in it's current state, development continues. Things planned for it: 30 | * CD player 31 | * Tag editor 32 | * ReplayGain support 33 | * Online cover art downloader 34 | 35 | Version and download location 36 | --- 37 | * Latest version of OooPlayer is 2.1.2 38 | * You can download OooPlayer from http://www.fosshub.com/OooPlayer.html 39 | 40 | Licence 41 | --- 42 | OooPlayer is released under GPLv2 -------------------------------------------------------------------------------- /Release/Win32/EQ.txt: -------------------------------------------------------------------------------- 1 | Flat 2 | Ballad 3 | Classical 4 | Club 5 | Dance 6 | Full Bass 7 | Full Bass & Treble 8 | Full Treble 9 | Headphone 10 | Heavy Metal 11 | Jazz 12 | Large Hall 13 | Live 14 | Party 15 | Pop 16 | Rap 17 | Reggae 18 | Rock 19 | Ska 20 | Soft 21 | Soft Rock 22 | Techno 23 | Vocal -------------------------------------------------------------------------------- /Release/Win32/EQ/Ballad.txt: -------------------------------------------------------------------------------- 1 | -474 2 | -316 3 | 0 4 | 158 5 | 316 6 | 395 7 | 474 8 | 395 9 | 316 10 | 237 11 | 0 12 | -158 13 | -316 14 | -316 15 | -316 16 | -420 17 | 158 18 | -474 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Classical.txt: -------------------------------------------------------------------------------- 1 | 0 2 | 0 3 | 0 4 | 0 5 | 0 6 | 0 7 | 0 8 | 0 9 | 0 10 | 0 11 | 0 12 | 0 13 | 0 14 | -286 15 | -583 16 | -583 17 | -600 18 | -810 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Club.txt: -------------------------------------------------------------------------------- 1 | 0 2 | 0 3 | 0 4 | 90 5 | 180 6 | 210 7 | 240 8 | 330 9 | 420 10 | 450 11 | 360 12 | 240 13 | 210 14 | 150 15 | 90 16 | 0 17 | 0 18 | 0 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Dance.txt: -------------------------------------------------------------------------------- 1 | 900 2 | 660 3 | 480 4 | 210 5 | 60 6 | 0 7 | 0 8 | -120 9 | -210 10 | -270 11 | -390 12 | -420 13 | -420 14 | -420 15 | -450 16 | -420 17 | 0 18 | 0 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Flat.txt: -------------------------------------------------------------------------------- 1 | 0 2 | 0 3 | 0 4 | 0 5 | 0 6 | 0 7 | 0 8 | 0 9 | 0 10 | 0 11 | 0 12 | 0 13 | 0 14 | 0 15 | 0 16 | 0 17 | 0 18 | 0 -------------------------------------------------------------------------------- /Release/Win32/EQ/Full Bass & Treble.txt: -------------------------------------------------------------------------------- 1 | 741 2 | 720 3 | 720 4 | 660 5 | 390 6 | 0 7 | -605 8 | -210 9 | -150 10 | 0 11 | 120 12 | 210 13 | 420 14 | 600 15 | 780 16 | 840 17 | 921 18 | 921 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Full Bass.txt: -------------------------------------------------------------------------------- 1 | 741 2 | 720 3 | 720 4 | 720 5 | 570 6 | 420 7 | 90 8 | -30 9 | -180 10 | -300 11 | -420 12 | -450 13 | -510 14 | -600 15 | -660 16 | -720 17 | -840 18 | -898 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Full Treble.txt: -------------------------------------------------------------------------------- 1 | -794 2 | -789 3 | -789 4 | -782 5 | -660 6 | -600 7 | -455 8 | -240 9 | 60 10 | 270 11 | 510 12 | 810 13 | 1050 14 | 1230 15 | 1290 16 | 1290 17 | 1311 18 | 1293 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Headphone.txt: -------------------------------------------------------------------------------- 1 | 670 2 | 670 3 | 670 4 | 670 5 | 660 6 | 470 7 | 240 8 | -50 9 | -230 10 | -170 11 | -120 12 | -40 13 | 70 14 | 160 15 | 260 16 | 390 17 | 550 18 | 900 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Heavy Metal.txt: -------------------------------------------------------------------------------- 1 | -207 2 | 237 3 | 395 4 | 300 5 | 0 6 | -390 7 | -485 8 | -510 9 | -480 10 | -480 11 | -240 12 | -90 13 | 60 14 | 270 15 | 570 16 | 660 17 | 673 18 | 248 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Jazz.txt: -------------------------------------------------------------------------------- 1 | 303 2 | 627 3 | 515 4 | 360 5 | 180 6 | -390 7 | -485 8 | -510 9 | -210 10 | 120 11 | 450 12 | 900 13 | 300 14 | -180 15 | -450 16 | -240 17 | -47 18 | 248 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Large Hall.txt: -------------------------------------------------------------------------------- 1 | 670 2 | 670 3 | 670 4 | 670 5 | 660 6 | 490 7 | 360 8 | 360 9 | 270 10 | 0 11 | -60 12 | -160 13 | -290 14 | -320 15 | -320 16 | -320 17 | -320 18 | 0 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Live.txt: -------------------------------------------------------------------------------- 1 | -420 2 | -300 3 | -150 4 | 330 5 | 450 6 | 510 7 | 480 8 | 480 9 | 510 10 | 420 11 | 360 12 | 300 13 | 240 14 | 240 15 | 210 16 | 210 17 | 180 18 | 150 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Party.txt: -------------------------------------------------------------------------------- 1 | 540 2 | 540 3 | 540 4 | 0 5 | 0 6 | 0 7 | 0 8 | 0 9 | 0 10 | 0 11 | 0 12 | 0 13 | 0 14 | 0 15 | 0 16 | 0 17 | 540 18 | 542 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Pop.txt: -------------------------------------------------------------------------------- 1 | -158 2 | 60 3 | 390 4 | 540 5 | 553 6 | 450 7 | 210 8 | 90 9 | -60 10 | -150 11 | -150 12 | -180 13 | -210 14 | -210 15 | -270 16 | -210 17 | -210 18 | -30 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Rap.txt: -------------------------------------------------------------------------------- 1 | 0 2 | 420 3 | 534 4 | 270 5 | 0 6 | -390 7 | -450 8 | -330 9 | 30 10 | 150 11 | -180 12 | -540 13 | -60 14 | 270 15 | 450 16 | 510 17 | 240 18 | 0 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Reggae.txt: -------------------------------------------------------------------------------- 1 | 0 2 | 0 3 | 0 4 | 0 5 | 0 6 | -30 7 | -100 8 | -260 9 | -270 10 | 0 11 | 90 12 | 220 13 | 400 14 | 440 15 | 440 16 | 290 17 | 60 18 | 0 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Rock.txt: -------------------------------------------------------------------------------- 1 | 540 2 | 450 3 | 360 4 | -365 5 | -630 6 | -660 7 | -360 8 | -270 9 | -30 10 | 210 11 | 450 12 | 600 13 | 690 14 | 750 15 | 780 16 | 780 17 | 780 18 | 810 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Ska.txt: -------------------------------------------------------------------------------- 1 | -130 2 | -170 3 | -210 4 | -260 5 | -320 6 | -300 7 | -260 8 | -140 9 | 20 10 | 250 11 | 270 12 | 310 13 | 350 14 | 420 15 | 520 16 | 560 17 | 580 18 | 590 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Soft Rock.txt: -------------------------------------------------------------------------------- 1 | 180 2 | 210 3 | 210 4 | 205 5 | 90 6 | -30 7 | -150 8 | -270 9 | -450 10 | -390 11 | -450 12 | -390 13 | -390 14 | -210 15 | 0 16 | 240 17 | 540 18 | 810 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Soft.txt: -------------------------------------------------------------------------------- 1 | 390 2 | 240 3 | 90 4 | 55 5 | -180 6 | -300 7 | -210 8 | -150 9 | 60 10 | 210 11 | 450 12 | 600 13 | 690 14 | 750 15 | 810 16 | 810 17 | 840 18 | 810 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Techno.txt: -------------------------------------------------------------------------------- 1 | 510 2 | 480 3 | 450 4 | 410 5 | 350 6 | 150 7 | -50 8 | -240 9 | -350 10 | -320 11 | -260 12 | -160 13 | -30 14 | 160 15 | 420 16 | 520 17 | 580 18 | 550 19 | -------------------------------------------------------------------------------- /Release/Win32/EQ/Vocal.txt: -------------------------------------------------------------------------------- 1 | -480 2 | -450 3 | -390 4 | -210 5 | -30 6 | 120 7 | 180 8 | 360 9 | 660 10 | 900 11 | 690 12 | 450 13 | 240 14 | 30 15 | -90 16 | -210 17 | -270 18 | -300 19 | -------------------------------------------------------------------------------- /Release/Win32/Radios/60 s & 70 s.txt: -------------------------------------------------------------------------------- 1 | .977 - The Oldies Channel;http://www.977music.com;http://7659.live.streamtheworld.com:80/977_OLDIES_SC 2 | 1.Fm - 70s;http://www.1.fm;http://sc-70s.1.fm:8656 3 | 1.Fm - Disco One;http://www.1.fm;http://sc-disco.1.fm:8100 4 | 1.Fm - Luxuria Music;http://www.1.fm;http://64.62.252.136:3142 5 | 181.Fm - Super 70s;http://www.181.fm;http://relay.181.fm:8066 6 | 20th Century Radio;http://www.20thcenturyradio.com;http://74.53.80.173:6006 7 | AddictedToRadio - 70s Decade;http://addictedtoradio.com;http://208.77.21.31:9210 8 | AddictedToRadio - 70s Lite;http://addictedtoradio.com;http://rfe-r1.alldigital.net:8000/lmjc355 9 | AddictedToRadio - Jammin Oldies;http://addictedtoradio.com;http://wms-13.streamsrus.com:9010 10 | AddictedToRadio - Oldies Channel;http://addictedtoradio.com;http://wms-13.streamsrus.com:9810 11 | AddictedToRadio - Quiet Storm;http://addictedtoradio.com;http://wms-13.streamsrus.com:12110 12 | AddictedToRadio - Studio 54;http://addictedtoradio.com;http://wms-13.streamsrus.com:9810 13 | ADR 211 70s;http://alldigitalradionetwork.com;http://192.169.70.194:8040 14 | American Graffiti;http://www.radionomy.com/en/radio/american-graffiti/index;http://listen.radionomy.com/american-graffiti 15 | Angel Radio;http://www.angelradio.co.uk/#/listen-live/4522509190;http://s6.viastreaming.net:7030/ 16 | Antenne Bayern - Oldies;http://www.antenne.de/;http://mp3channels.webradio.antenne.de/oldies-but-goldies 17 | BayRadio North;http://www.bayradio.fm/listen-live;http://64.150.191.39:8434 18 | BayRadio South;http://www.bayradio.fm/listen-live;http://68.168.103.13:8220 19 | Beatles Radio;http://www.beatlesradio.com/;http://64.40.99.2:8088 20 | BestNetRadio 70s Pop;http://www.bestnetradio.com;http://173.192.32.199:7020 21 | Calm Radio - Big Band;https://calmradio.com;http://calm2.calmradio.com:10856/stream 22 | Compass Fm UK;http://www.compassfm.co.uk;http://icy-e-04.sharp-stream.com:80/lincsfmcompass.mp3 23 | Crik Fm - Super 70s;http://www.lynxradionetwork.com;http://94.23.62.189:6046 24 | Fun 45s;http://www.fun45s.com/#;http://173.193.205.96:8076/ 25 | Gapfreeradio - Rock n Roll;http://gapfreeradio.com/listen-to-rock-n-roll-thru-time;http://162.251.160.2:80/gapfreeradiohigh 26 | Gold fm;http://www.goldfm.de/;http://sc1.netstreamer.net:8060 27 | Gold Mx Albany;http://www.goldmx.com.au/;http://mega6.radioserver.co.uk:8038/ 28 | Got Radio - Classic 60s;http://www.gotradio.com/;http://173.244.215.163:8370 29 | Gramox Finland;http://gramox.fi;http://suomiradio.pro:8000/gramox.mp3 30 | Hitradio Sundaymusic;http://www.hitradio-sundaymusic.repage.de;http://stream.laut.fm/sundaymusic 31 | HotMixRadio - Funky;http://www.hotmixradio.fr/90s;http://streamingads.hotmixradio.fm/hotmixradio-funky-128.mp3 32 | Italian Graffiati;http://www.italiangraffiati.com;http://kos.broadstreamer.com:8500 33 | just70s;http://www.laut.fm/just70s;http://www.laut.fm/just70s 34 | Legend Fm.gr;http://www.legendfm.gr;http://s6.onweb.gr:8002/ 35 | Nostalgie.fr;http://www.nostalgie.fr;http://mp3.live.tv-radio.com/nostalgie/all/nos_113812.mp3 36 | Offshore Music Radio;http://www.offshoremusicradio.com;http://bitsmitter.com:8000/ 37 | Oldies104;http://www.oldies104.net;http://ando1.cdn.radiostorm.com/oldies-mp3 38 | ORSRADIO 80s Metal;http://www.shoutcast.com/Internet-Radio/ORSRADIO;http://192.81.248.43:8018 39 | PapaJoe´s Bar;http://www.papajoes-bar.com;http://stream2.sxcore.net:9974 40 | Pear Radio;http://loudcity.com/stations/pear-radio/files/show/listen.htm;http://mega6.radioserver.co.uk:8030 41 | PolskaStacja.pl - 80s;http://www.polskastacja.pl;http://188.165.23.150:9700 42 | Radio Bavaria International;http://www.radio-bavaria-international.de/;http://streamplus18.leonex.de:18576 43 | Radio Bop;http://radiobop.com;http://208.53.158.48:8362/ 44 | Radio Bop 60s;http://radiobop60s.com;http://208.53.158.48:8410/ 45 | Radio F 94.5;http://www.radiof.de/radiof.de/index.php#;http://webradio.radiof.de:8000/ 46 | radio GOLD - real classics;http://www.radiogold.de;http://www.digitalradiostream.de:7000 47 | Radio One Retro.sk;http://www.radiorock.sk;http://217.75.92.14:8000/retro 48 | Radio Riel - Dieselpunk;http://radioriel.org/;http://64.34.173.110:8408/ 49 | Radio Riel - New Toulouse;http://radioriel.org/;http://argon.slserver.com:8052/ 50 | Red River Radio;http://www.redriverradio.org/;http://pubint.ic.llnwd.net/stream/pubint_rrr 51 | Rich Bro Radio;http://www.streamlicensing.com/stations/richbro/index.html;http://sc2.paulmerrell.net:8236/ 52 | Sky.fm - American Songbook;http://www.sky.fm/americansongbook;http://pub1.sky.fm/sky_americansongbook 53 | Sky.fm - Beatles Tribute;http://www.sky.fm/beatles/;http://pub2.sky.fm/sky_beatles 54 | Sky.fm - Hit 70s;http://www.sky.fm/hit70s/;http://pub2.sky.fm/sky_hit70s 55 | -------------------------------------------------------------------------------- /Release/Win32/Radios/80 s & 90 s.txt: -------------------------------------------------------------------------------- 1 | .977 - The 80s Channel;http://www.977music.com;http://7649.live.streamtheworld.com:80/977_80_SC 2 | .977 - The 90s Channel;http://www.977music.com;http://7599.live.streamtheworld.com:80/977_90_SC 3 | 1.Fm - 80s;http://www.1.fm;http://sc-80s.1.fm:8097 4 | 1.Fm - 90s;http://www.1.fm;http://sc-90s.1.fm:8065 5 | 1.Fm - Back 80s US;http://www.1.fm;http://sc-b280s.1.fm:6900 6 | 181.Fm - Awesome 80s;http://www.181.fm ;http://relay.181.fm:8000/ 7 | 181.Fm - Lite 80s;http://www.181.fm;http://relay.181.fm:8040/ 8 | 80s Mixed;http://www.80smixed.com;http://184.154.202.243:8108/ 9 | 4U 80's;http://www.radionomy.com/en/radio/4u-80s/index#;http://streaming.radionomy.com/4u-80s 10 | AddictedToRadio - 80s Decade;http://addictedtoradio.com;http://wms-13.streamsrus.com:9310 11 | AddictedToRadio - 80s Lite;http://addictedtoradio.com;http://wms-13.streamsrus.com:9410 12 | AddictedToRadio - 90s;http://addictedtoradio.com;http://wms-13.streamsrus.com:14010 13 | AddictedToRadio - 90s and RnB;http://addictedtoradio.com;http://wms-13.streamsrus.com:14310 14 | AddictedToRadio - 90s Dance;http://addictedtoradio.com;http://wms-13.streamsrus.com:13910 15 | AddictedToRadio - At Work;http://addictedtoradio.com;http://208.77.21.33:11510 16 | All4Fun Radio - Mainstream;http://www.all4funradio.eu;http://46.163.108.110:30716 17 | All 80s Dublin;http://www.all80s.ie/listen/;http://5.63.151.52:8101 18 | Anarchy n Angels on Air;http://www.internetradio.co.uk/index.php?option=com_k2&view=item&layout=item&id=78&Itemid=202;http://199.101.51.168:8022 19 | Antenna 1 - Roma;http://www.antenna1.fm/#;http://s3.mediastreaming.it:7568/ 20 | Antenne Bayern - 80er;http://www.antenne.de/;http://mp3channels.webradio.antenne.de/80er-kulthits 21 | BestNetRadio 90s;http://www.bestnetradio.com;http://173.192.32.199:7080 22 | Central Fm;http://www.centralfm.com;http://85.17.177.8:8040 23 | Classic 21 - 80s;http://www.rtbf.be/classic21;http://broadcast.infomaniak.net:80/wr-classic21-80-128.mp3 24 | Crik Fm - Classic Hits;http://www.lynxradionetwork.com;http://94.23.62.189:6044 25 | Crik Fm - Retro 80s;http://www.lynxradionetwork.com;http://94.23.62.189:6048 26 | Generation Disco Funk;http://www.generationdiscofunk.com/v4/index.php;http://streaming304.radionomy.com:80/GENERATIONSOULDISCOFUNK-MP3 27 | Got Radio - Rockin 80s;http://www.gotradio.com/;http://173.244.215.163:8420 28 | gr8tunes - 80s;http://www.gr8tunes.com;http://184.107.202.178:8138/ 29 | gr8tunes - 90s;http://www.gr8tunes.com;http://184.107.202.178:8132/ 30 | HookedOnRadio - 90s;http://hookedonradio.com;http://174.37.110.72:8540 31 | HotMixRadio - 80s;http://www.hotmixradio.fr/80s;http://streamingads.hotmixradio.fm/hotmixradio-80-128.mp3 32 | HotMixRadio - 90s;http://www.hotmixradio.fr/90s;http://streamingads.hotmixradio.fm/hotmixradio-90-128.mp3 33 | Inolvidable Fm Espana;http://www.inolvidablefm.es;http://s7.voscast.com:7608 34 | just80s;http://www.laut.fm/just80s;http://www.laut.fm/just80s 35 | just90s;http://www.laut.fm/just90s;http://www.laut.fm/just90s 36 | Kool Mix Radio;http://www.koolmixradio.com;http://s7.voscast.com:8004 37 | K-Lite Online;http://www.kliteonline.com;http://50.7.77.114:9042/ 38 | Loo-Radio.nl;http://www.loo-tv.nl;http://icecast.streamone.nl/t2Dns9sQwv 39 | M2 Analog 80s;http://www.m2radio.fr/index.php?m2=analog;http://live.m2stream.fr:80/m280-128.mp3 40 | M2 Digital 90s;http://www.m2radio.fr/index.php?m2=digital;http://neo.m2stream.fr:80/m290-128.mp3 41 | Naxi Radio - Cafe;http://www.naxi.rs;http://naxidigital-128.kbcnet.rs:8020/ 42 | ORSRADIO 90s Rock;http://www.shoutcast.com/Internet-Radio/ORSRADIO;http://192.81.248.43:8020 43 | PowerRadio Greece;http://powerradio.blogspot.de;http://195.97.106.232:8002 44 | Radio1 Fm88 Gold;http://www.radio1.gr/listenlive;http://111.gr:8008 45 | Radio Crazy - 80s;http://www.radiocrazy.ch;http://stream2183.init7.net:80 46 | Radio Freewoodbury;http://radiofreewoodbury.org/2322.html;http://69.4.232.119:80/ 47 | Radio GO DeeJay (sk);http://www.djgo.sk;http://195.168.11.25:8000/live64 48 | Radio Live SK (sk);http://www.radiolive.sk/o-radiu.html;http://server1.internetoveradio.sk:8840 49 | Radio Regenbogen - 80er;http://www.regenbogen.de;http://217.151.151.91/live4 50 | Rautemusik FM - Goldies;http://www.rautemusik.fm/;http://goldies-high.rautemusik.fm 51 | Retro Fm SPB;http://spb.retrofm.ru;http://onair.eltel.net/retrofm-128k 52 | Sky.fm - Best of the 60s;http://www.sky.fm/hit60s/;http://pub4.sky.fm/sky_hit60s 53 | Sky.fm - Best of the 80s;http://www.sky.fm/the80s/;http://pub1.sky.fm/sky_the80s 54 | Sky.fm - New Age;http://www.sky.fm/newage/;http://pub1.sky.fm/sky_newage 55 | SomaFM - Underground80s;http://somafm.com/play/u80s;http://sfstream1.somafm.com:8884 56 | Surf Radio 80;http://www.radionomy.com/en/radio/surf-radio-80/index;http://listen.radionomy.com/surf-radio-80 57 | The Cube;http://www.caps.wegetitserved.com/rrr/wordpress;http://50.7.77.114:8002/ 58 | Vibration - Classic Hits;http://www.vibrationclassic80.ch/spip.php?page=vibrationclassic;http://vibrationclassic80.stream2net.eu:8060/ 59 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Alternative.txt: -------------------------------------------------------------------------------- 1 | .977 - The Alternative Channel;http://www.977music.com;http://7639.live.streamtheworld.com:80/977_ALTERN_SC 2 | 1.Fm - High Voltage;http://www.1.fm;http://sc-hv.1.fm:8035 3 | 3Fm - Alternative;http://www.3fm.nl;http://icecast.omroep.nl/3fm-alternative-mp3 4 | 3Fm - On Stage;http://www.3fm.nl;http://icecast.omroep.nl/3fm-live-mp3 5 | 4 Ever Floyd;http://4everfloyd.com;http://99.198.112.59:8000 6 | Acoustic Alternative;http://www.streamlicensing.com/directory/index.cgi?sid=42&start=1&g=&e=0&s=Acoustic;http://162.251.160.2:80/acoustichigh 7 | amazing radio;http://amazingradio.com;http://109.74.195.10:8000 8 | Atlantic Sound Factory;http://loudcity.com/stations/atlantic-sound-factory/files/show/default.htm;http://streaming304.radionomy.com:80/atlanticsoundfactory 9 | BigBeats.ru;http://bigbeats.ru/how-to-listen;http://50.7.158.42:8048/stream 10 | Birmingham Mountain Radio;http://www.bhammountainradio.com;http://38.96.148.18:4376 11 | BoxTree Radio;http://boxtreeradio.com/;http://sc.digitaleagles.com:8010 12 | Break Pirates;http://www.breakpirates.com/tune-in/;http://bpstream.hostco.de:3000/ 13 | CFRE Radio;http://www.cfreradio.com/;http://142.150.7.99:8000/listen 14 | Dirtybass Fm;http://dirtybass.fm:8111/;http://dirtybass.fm:8000/ 15 | DRS - Virus MetalX;http://www.virus.ch;http://streaming.swisstxt.ch/m/drsvirus/mp3_128 16 | Eastside Fm;http://eastsidefm.org/listen-online;http://eastsideradio.serverroom.us:6034 17 | EDA Music Radio;http://eda-music-radio.playtheradio.com;http://streaming.radionomy.com/eda-music-radio 18 | Fiksz Radio.hu;http://www.fikszradio.hu;http://157.181.47.204:9000/ 19 | Frequence Geek;http://www.frequencegeek.com/;http://94.23.221.212:404 20 | Frequence Orange;http://www.frequenceorange.com/v4.php?site=static&staticID=2;http://94.23.213.103:8000/ 21 | Gapfreeradio - Mix;http://gapfreeradio.com/listen-to-in-the-mix;http://162.251.160.2:80/gapfreemixhigh 22 | GD Radio;http://www.gdradio.net;http://216.119.152.213:8019/ 23 | Got Radio - Alternative;http://www.gotradio.com;http://173.244.215.162:8200 24 | Hazzard Of Darkness;http://www.hazzardofdarkness.net;http://188.138.74.113:7777 25 | HookedOnRadio - AdultAlt;http://hookedonradio.com;http://174.37.110.72:8510 26 | HookedOnRadio - Alternative;http://hookedonradio.com;http://174.37.110.72:8530 27 | Indie Authority;http://www.theindieauthority.com;http://66.85.154.211:8394/stream 28 | I Love Mashup;http://www.iloveradio.de;http://87.230.53.70/iloveradio5.mp3 29 | ledjam;http://www.ledjamradio.com;http://ledjamradio.ice.infomaniak.ch/ledjamradio.mp3?group=961 30 | Linn Radio;http://radio.linnrecords.com/;http://89.16.185.174:8003/stream 31 | NSM88 Records;http://live.nsm88records.com;http://live.nsm88records.com:8088/ 32 | Radio B92;http://www.b92.net/radio;http://stream.b92.net:7999/radio-b92.mp3 33 | Radio Canale Zero;http://www.radiocanalezero.com;http://50.7.158.42:8064/ 34 | Radio Pepito;http://www.radiopepito.com/sitioeng/indexeng.htm;http://radiopepito.purestream.net:8010/ 35 | Radio Riel - Steampunk;http://radioriel.org/;http://apollo.slserver.com:8402 36 | Radio SiTy (sk);http://www.radiosity.sk;http://217.73.17.42:8000/hq.mp3 37 | Rautemusik FM - 12punks;http://www.rautemusik.fm;http://12punks-high.rautemusik.fm 38 | Reboot.fm;http://reboot.fm;http://91.213.60.47:8002/stream 39 | Sky.fm - Ska;http://www.sky.fm/ska;http://pub2.sky.fm/sky_ska 40 | SomaFM - Iceland Airwaves;http://somafm.com/play/airwaves;http://uwstream2.somafm.com:5400 41 | Soundportal;http://soundportal.at;http://212.48.110.149:8000 42 | Star Fm - Alternative;http://www.starfm.de;http://87.230.53.43:7004/ 43 | Todo exitos - Indie;http://www.todoexitos.com;http://hertz.todoexitos.com:8222 44 | Twen fm - Live;http://twenfm.org/884/2011/03/tv-clubnacht-25-03-2011/;http://ice.rosebud-media.de:8000/88vier 45 | WGLT Acusticity Radio;http://wglt.org/streams/acousticity.shtml;http://wgltradio.ilstu.edu:8000/wgltfolk.mp3 46 | WRFA LP NY;http://wrfalp.com/index.php?content=home&page=streaming;http://radioforthearts.serverroom.us:6128/ 47 | WSRF;http://www.wsrf.com/#;http://www.live365.com/play/planet17 48 | Xtreme Radio;http://xtremeradio.org;http://streams.xtremeradio.org/high.mp3 49 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Ambient & Chill.txt: -------------------------------------------------------------------------------- 1 | 1.Fm - Chillout Lounge;http://www.1.fm;http://sc-tcl.1.fm:8010 2 | 100 CHILL radio;http://100chill.net;http://listen.radionomy.com/100-chill 3 | 106.3 The Lounge;http://www.1063thelounge.com/listen.htm;http://ic2329.c564.fast-serv.com:80/stream 4 | 12xiiiix12 Dallas;http://www.radionomy.com/en/radio/12xiiiix12;http://listen.radionomy.com/12xiiiix12 5 | 181.Fm - Classic Guitar;http://www.181.fm;http://relay.181.fm:8020/ 6 | 2CH Sydney;http://www.2ch.com;http://68.169.38.82:8002 7 | A-A Ambient;http://www.anthologywebradio.com;http://streaming.radionomy.com/A-A-Ambient 8 | A-A Lounge;http://www.anthologywebradio.com;http://streaming.radionomy.com/A-ALounge 9 | AddictedToRadio - Day Spa;http://addictedtoradio.com;http://208.77.21.15:15010 10 | AddictedToRadio - Easy Listening;http://addictedtoradio.com;http://208.77.21.33:16710 11 | Air Lounge Radio;http://airloungeradio.eurodance90.fr;http://listen.radionomy.com/aair-lounge-radio 12 | Ambiance Radio;http://www.radionomy.com/en/radio/ambiance-radio;http://listen.radionomy.com/ambiance-radio 13 | Antenne Bayern - Chillout;http://www.antenne.de/;http://mp3channels.webradio.antenne.de/chillout 14 | AVRO Easy Listening;http://www.avro.nl/radio/;http://icecast.omroep.nl/radio6-easylistening-bb-mp3 15 | BestNetRadio Spa;http://www.bestnetradio.com;http://173.192.32.199:7270 16 | BestNetRadio Warms;http://www.bestnetradio.com;http://173.192.32.199:7300 17 | Blast Fm.ch - Ambient;http://www.blastfm.ch;http://de1.streamhosting.ch:8050/ 18 | Blast Fm.ch - Dub;http://www.blastfm.ch;http://72.55.137.82:8002/ 19 | Blast Fm.ch - Electro Chill;http://www.blastfm.ch;http://72.55.137.82:8000/ 20 | BRN - Music Massage;http://blakeradio.com/html/music_massage/mm.shtml;http://70.38.38.42:8110 21 | Cafe Cody;http://www.cafecody.com;http://70.38.11.155:8092 22 | Calm Radio - Balance;https://calmradio.com;http://calm11.calmradio.com:8466/stream 23 | Calm Radio - Om;https://calmradio.com;http://calm11.calmradio.com:10076/stream 24 | Calm Radio - Positivity;https://calmradio.com;http://calm3.calmradio.com:8556/stream 25 | Calm Radio - Reiki;https://calmradio.com;http://67.21.244.246:9556/stream 26 | Calm Radio - Singings Bowls;https://calmradio.com;http://67.21.244.248:8856/stream 27 | Calm Radio - Sleep;https://calmradio.com;http://calm3.calmradio.com:8656/stream 28 | Calm Radio - Spa;https://calmradio.com;http://calm3.calmradio.com:8356/stream 29 | Calm Radio - Spaced;https://calmradio.com;http://67.21.244.248:9956/stream 30 | Calm Radio - Zen;https://calmradio.com;http://calm1.calmradio.com:9376/stream 31 | Chill;http://www.helpmechill.com/;http://media-ice.musicradio.com:80/ChillMP3 32 | Chilltime;http://chilltimeradio.webnode.com;http://93.104.210.97:8989/ 33 | Chilltrax;http://www.chilltrax.com;http://server1.chilltrax.com:9000/ 34 | Chroma - Nature Sounds;http://chromaradio.net;http://176.9.22.6:8134 35 | Chroma - Newage;http://chromaradio.net;http://176.9.22.6:8006 36 | Costa Del Mar;http://www.radionomy.com/en/radio/costa-del-mar/index;http://listen.radionomy.com/costa-del-mar 37 | Crystal Radio Canada;http://crystalradio.ca;http://50.22.217.204:8000 38 | Digitally Imported - Ambient;http://www.di.fm/ambient;http://pub4.di.fm:80/di_ambient 39 | Digitally Imported - Chillhop;http://www.di.fm;http://pub2.di.fm/di_chillhop 40 | Digitally Imported - Chillout;http://www.di.fm/chillout/;http://pub3.di.fm:80/di_chillout 41 | Digitally Imported - Lounge;http://www.di.fm/lounge/;http://pub1.di.fm:80/di_lounge 42 | Digitally Imported - Space Music;http://www.di.fm/spacemusic;http://pub5.di.fm:80/di_spacemusic 43 | Digitally Imported - Voc. Chill;http://www.di.fm/vocalchillout;http://pub5.di.fm:80/di_vocalchillout 44 | Eclectic Traxxx;http://www.radionomy.com/fr/radio/eclectic-traxxx;http://streaming203.radionomy.com/Eclectic-Traxxx 45 | Energy - Lounge;http://www.energy.ch/webradios/musicinfos-detail/channel/energy-lounge-das-chillout-radio-mit-lounge-music-downbeat/;http://energylounge.ice.infomaniak.ch:80/energylounge-high.mp3 46 | Friedrich Frieden;http://www.friedrichfrieden.de/;http://streamplus21.leonex.de:25426 47 | G-Radio (sk);http://www.gradio.sk/index.php?cid=312577;http://88.212.34.18:8050/mp3midband 48 | Happyday Newage;http://inewage.com/happyday;http://222.122.131.69:8000 49 | Hirschmilch - Chillout;http://hirschmilch.de;http://hirschmilch.de:7000/chillout.mp3 50 | hitRadio.fr - Groove;http://www.hitradio.fr;http://listen.radionomy.com/hitradiofr-groove 51 | Humboldt 101;http://www.humboldt101.com/Humboldt_101/Welcome.html;http://humboldt101-ice.streamguys1.com/player 52 | Janga Beach;http://www.jangabeach.com/janga-radio;http://listen.radionomy.com/jangaradio 53 | Klassik Radio Lounge;http://www.klassikradio.de;http://62.27.47.226:8000/klassikradiolounge128/livestream.mp3 54 | Klassik Radio Nature;http://www.klassikradio.de;http://62.27.47.223:8000/klassikradionature128/livestream.mp3 55 | Klassik Radio Smooth;http://www.klassikradio.de;http://62.27.47.223:8000/klassikradiosmooth128/livestream.mp3 56 | Lite Favorites;http://www.streamlicensing.com/stations/lite/listen.html;http://162.251.160.2:80/litefavoriteshigh 57 | M2 Chillout;http://www.m2radio.fr/index.php?m2=chillout;http://live.m2stream.fr:80/m2chillout-128.mp3 58 | Metro Oslo;http://radiometro.no;http://89.105.32.8:8100 59 | Nirvana Radio - Meditation;http://www.108.pl;http://radio.108.pl:8004/ 60 | Nirvana Radio - Relaxation;http://www.108.pl/;http://sc9106.xpx.pl:9106/ 61 | ORSRADIO Chillout Chill;http://www.shoutcast.com/Internet-Radio/ORSRADIO;http://192.81.248.43:8028 62 | ORSRADIO Lounge;http://www.shoutcast.com/Internet-Radio/ORSRADIO;http://192.81.248.43:8044 63 | Partyviberadio - Ambient;http://www.partyviberadio.com/player/ambient-chillout/index.html;http://206.190.152.194:8008/ 64 | Partyviberadio - Breakbeat;http://www.partyviberadio.com/player/breakbeat/index.html;http://206.190.152.194:8012/ 65 | piu Lounge;http://www.piu.at/piu_Lounge/Willkommen.html;http://streamplus3.leonex.de:10922 66 | PolskaStacja.pl - Chillout;http://www.polskastacja.pl/;http://91.121.89.153:7100 67 | Radio1 Fm88 Lounge;http://www.radio1.gr/listenlive;http://111.gr:8018 68 | RadioCoast;http://radiocoast.com;http://198.154.106.103:8407/ 69 | Radio Piestany (sk);http://www.;http://live.radiopiestany.sk:8000/live.mp3 70 | Rautemusik FM - Lounge;http://www.rautemusik.fm/;http://lounge-high.rautemusik.fm 71 | Seeburg 1000;http://www.seeburg1000.com/listen.php;http://50.7.96.210:8204 72 | Sky.fm - Cafe de Paris;http://www.sky.fm/cafedeparis;http://pub2.sky.fm/sky_cafedeparis 73 | Sky.fm - DaTempo Lounge;http://www.sky.fm/datempolounge/;http://pub2.sky.fm/sky_datempolounge 74 | Sky.fm - Dreamscapes;http://www.sky.fm/dreamscapes;http://pub2.sky.fm/sky_dreamscapes 75 | Sky.fm - Nature;http://www.sky.fm/nature/;http://pub2.sky.fm/sky_nature 76 | Sky.fm - World;http://www.sky.fm/world;http://pub2.sky.fm/sky_world 77 | Soft 'N Easy Net Radio;http://www.streamlicensing.com/stations/softneasy/listen.html;http://162.251.160.2:80/softneasyhigh 78 | Soft Tracks;http://www.soft-tracks.com;http://199.195.194.140:8285/ 79 | Star Citizen News Radio;http://www.star-citizen-news-radio.de;http://217.172.179.47:5021/ 80 | Word of Truth Radio;http://www.wordoftruthradio.com/listen.php;http://199.189.86.22:80 81 | World Fusion Radio Chillout;http://worldfusionradio.com/launchGC.htm;http://5.135.158.160:9000/ 82 | World Fusion Radio Revolutions;http://worldfusionradio.com/launchWR.htm;http://5.135.158.160:18000/ 83 | You kounkoun - Groove;http://youkounkoun-radio.com;http://youkounkoun-radio.com:8000/groove.mp3 84 | Zen Fm;http://www.kndinteractive.eu/zenfm;http://stream4.topradio.be:8000/zenfm.mp3 85 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Anime.txt: -------------------------------------------------------------------------------- 1 | 1.Fm - Chinamerica;http://www.1.fm;http://sc7.1.fm:26814 2 | AnimeAMAZE;http://www.animeamaze.net;http://apple.neostreams.info:10007/ 3 | AnimeRadio.su;http://animeradio.su;http://78.46.91.38:8000 4 | Anime Thai;http://www.anime-thai.net/radio.php;http://202.162.78.203:9020/ 5 | JPopsuki Radio;http://jpopsuki.eu/media.php;http://213.239.204.252:8000/stream 6 | Musicradio.in.th;http://www.musicradio.in.th;http://111.223.33.232:8050/ 7 | Radio Rakuen Peru;http://radiorakuen.blogspot.com;http://67.212.165.162:7018 8 | Radio Tensai;http://www.radiotensai.com.br/site;http://ouvir.radiotensai.in:8007/autodj 9 | Radio Waizon;http://radio.waizon.com;http://112.121.150.38:8888/ 10 | Sky.fm - Jpop;http://www.sky.fm/jpop;http://pub2.sky.fm/sky_jpop 11 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Black & Rap.txt: -------------------------------------------------------------------------------- 1 | .977 - The Jamz Channel;http://www.977music.com;http://7609.live.streamtheworld.com:80/977_JAMZ_SC 2 | 1.Fm - Jamz;http://www.1.fm;http://sc-jamz.1.fm:8052 3 | 181.Fm - Old School;http://www.181.fm;http://relay.181.fm:8068/ 4 | 181.Fm - Soul;http://www.181.fm;http://relay.181.fm:8058 5 | 181.Fm - True R&B;http://www.181.fm;http://relay.181.fm:8022 6 | A-A Hip Hop;http://www.anthologywebradio.com;http://62.210.131.213:8000/stream/2/ 7 | AddictedToRadio - v101 RnB;http://addictedtoradio.com;http://208.77.21.33:10710 8 | Ado Paris;http://www.adofm.fr;http://broadcast.infomaniak.ch/start-adofm-high.mp3 9 | ADR 208 Rennessy Rap;http://alldigitalradionetwork.com;http://192.169.70.194:8118 10 | Antenne Bayern - Black Beatz;http://www.antenne.de/;http://mp3channels.webradio.antenne.de/black-beatz 11 | BestNetRadio Bombs Beats;http://www.bestnetradio.com;http://173.192.32.199:7280 12 | Black Box France;http://www.blackboxfm.fr;http://broadcast.infomaniak.ch/start-blackbox-high.mp3 13 | FG Dubstep;http://www.radiofg.com;http://radiofg.impek.com/fgv 14 | Freek Fm;http://www.freekfm.net/live.php;http://freekfmlive.com:41960/ 15 | Got Radio - Hip Hop;http://www.gotradio.com/;http://173.244.215.162:8140 16 | hitRadio.fr - Rap RnB;http://www.hitradio.fr;http://listen.radionomy.com/hitradiofr-rap-rb 17 | HookedOnRadio - Rap;http://hookedonradio.com;http://174.37.110.72:8570 18 | Kronehit - Black;http://www.kronehit.at;http://onair.krone.at:80/kronehit-charts.mp3 19 | Luxfunk.hu;http://www.luxfunkradio.com/hu;http://87.229.45.44:8200/ 20 | Partyviberadio - Rap;http://www.partyviberadio.com/player/rap/index.html;http://206.190.152.194:8002/ 21 | Rautemusik FM - Deutschrap;http://www.rautemusik.fm;http://deutschrap-high.rautemusik.fm 22 | Route 1 Radio;http://route1radio.com/v2;http://s5.voscast.com:7720/ 23 | RTBF La Première;http://www.rtbf.be/lapremiere;http://lapremiere.ice.rtbf.be/lapremiere.mp3 24 | RuneTime Radio;http://www.runetime.com/index.php?/page/Media/radio.html;http://runetime.primcast.com:6582/ 25 | Shems Fm;http://www.shemsfm.net/fr;http://46.105.235.26:80 26 | ShoutedFM - Black;http://www.shouted.fm/index.php?area=black;http://black.mthn.net:8300 27 | Sky.fm - Classic Motown;http://www.sky.fm/sky_classicmotown;http://pub3.sky.fm/sky_classicmotown 28 | Sky.fm - Modern Blues;http://www.sky.fm/modernblues/;http://pub2.sky.fm/sky_modernblues 29 | Sky.fm - Urban Jamz;http://www.sky.fm/urbanjamz/;http://pub1.sky.fm/sky_urbanjamz 30 | Studio Brussel;http://www.stubru.be/home;http://mp3.streampower.be/stubru-high 31 | Urban Hit;http://www.urbanhit.fr;http://91.121.105.180:9010 32 | VVCRadio;http://vvcradio.ning.com;http://198.154.106.104:8451 33 | Woods Radio Hip Hop;http://woodsradio.webnode.com/radio-station;http://listen.radionomy.com/woods-hit-radio-hip-hop-rnb 34 | You Fm - Black;http://www.you-fm.de;http://gffstream.ic.llnwd.net/stream/gffstream_mp3_w75a 35 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Blues & Love.txt: -------------------------------------------------------------------------------- 1 | 1.Fm - Americas Ballads;http://www.1.fm;http://sc-abb.1.fm:8680 2 | AddictedToRadio - Bar Blues;http://addictedtoradio.com;http://208.77.21.33:11710 3 | AddictedToRadio - Blues Classics;http://addictedtoradio.com;http://208.77.21.33:11610 4 | ADR 203 Love;http://alldigitalradionetwork.com;http://192.169.70.194:8038 5 | ADR 204 Idol Rewind;http://alldigitalradionetwork.com;http://192.169.70.194:8110 6 | AKA Radio;http://community.loudcity.com/stations/akaradio/files/show;http://radio.akaradio.com:8090 7 | Antenne Bayern - Lovesongs;http://www.antenne.de/;http://mp3channels.webradio.antenne.de/lovesongs 8 | BellyUp4Blues;http://www.bellyup4blues.com;http://72.13.82.82:5100 9 | BestNetRadio Love;http://www.bestnetradio.com;http://173.192.32.199:7210 10 | Big Blue Swing;http://web.bigblueswing.com;http://radio.bigblueswing.com:8002/ 11 | Blues Connection on Air;http://www.internetradio.co.uk/index.php?option=com_k2&view=item&layout=item&id=46&Itemid=198;http://199.101.51.168:8004 12 | Blues Radio UK;http://www.bluesradio.co.uk;http://206.217.213.16:8430 13 | Cafe Romantico Radio;http://cafe-romantico-radio.playtheradio.com;http://listen.radionomy.com/cafe-romantico-radio 14 | Calm Radio - Blues;https://calmradio.com;http://calm11.calmradio.com:9556/stream 15 | detour Blues;http://www.detourblues.com/;http://arizona.thedetour.us:8081 16 | Ez Does It Net Radio;http://loudcity.com/stations/ez-does-it/files/show/listennow.html;http://208.85.242.52:8164 17 | Hard as a rock on Air;http://www.internetradio.co.uk/index.php?option=com_k2&view=item&layout=item&id=101&Itemid=199;http://199.101.51.168:8012 18 | Heartbeat Radio;http://www.heartbeatofflagler.com/Heartbeatclicktolisten.htm;http://s2.streamorbit.com:8139 19 | Hearttime Radio;http://www.hearttime-radio.com/news.php;http://hearttime-radio.com:8000/ 20 | Heart Fm Alexandroupolis;https://www.facebook.com/heatradio.gr;http://eu02.egihosting.com:9108/ 21 | Hope Radio Ireland;http://www.hope-radio.com;http://174.127.114.128:8110/stream 22 | Indie Show on Air;http://www.internetradio.co.uk/index.php?option=com_k2&view=item&layout=item&id=101&Itemid=199;http://199.101.51.168:8008 23 | I Love You;http://www.iloveradio.de;http://87.230.53.70/iloveradio4.mp3 24 | Klassik Radio Live;http://www.klassikradio.de;http://62.27.87.92:8000/klassikradiolive128/livestream.mp3 25 | Kronehit - Love;http://www.kronehit.at;http://onair.krone.at:80/kronehit-love.mp3 26 | Latido 90.1;http://www.latido.com.mx/index.cfm#;http://gpazos.centrocibernetico.com:42000/ 27 | Latido Fm;http://www.latido.com.mx/index.cfm;http://latido.centrocibernetico.com:42000/ 28 | Life Radio.at - Love;http://www.liferadio.at;http://liferadio.liwest.at:8000/special 29 | Loveradio.ie;http://www.shoutcast.com/#;http://31.14.40.241:9722 30 | Love Radio USA;http://loveradiousa.com;http://184.95.47.178:9328 31 | M2 Love;http://www.m2radio.fr/index.php?m2=love;http://live.m2stream.fr:80/m2love-128.mp3 32 | Naxi Radio - Love;http://www.naxi.rs;http://naxidigital128.kbcnet.rs:8100/ 33 | ORSRADIO Blues;http://www.shoutcast.com/Internet-Radio/ORSRADIO;http://192.81.248.43:8026 34 | ORSRADIO Romantica baladas;http://www.shoutcast.com/Internet-Radio/ORSRADIO;http://192.81.248.43:8010 35 | PolskaStacja.pl - Blues;http://www.polskastacja.pl;http://188.165.20.29:5500 36 | Radio1 Fm88 Ballads;http://www.radio1.gr/listenlive;http://111.gr:8010 37 | Rádio Blesk (sk);http://www.radioblesk.net;http://stream.radioblesk.net:7777 38 | Radio Expres (sk);http://www.expres.sk;http://85.248.7.162:8000/64.mp3 39 | Radio Logos (sk);http://www.radiologos.sk;http://server1.internetoveradio.sk:8834 40 | Radio Moonlight;http://www.radio-moonlight.org;http://85.25.246.7:18080 41 | RFP Radio - Soul Heaven;http://rfpradio.com/tunein;http://108.163.213.202:8192/stream 42 | Sky.fm - Christian;http://www.sky.fm/christian;http://pub2.sky.fm/sky_christian 43 | Sky.fm - Love Music;http://www.sky.fm/lovemusic;http://pub2.sky.fm/sky_lovemusic 44 | Sunshine Fm 104.9;http://www.sunshinefm.com.au/listen-live.html;http://199.71.212.205:7104/ 45 | Swing Fm Limoges;http://www.swingfm.asso.fr/html/index.php;http://swingfm.ice.infomaniak.ch:80/swingfm-128 46 | Todo exitos - Romatico;http://www.todoexitos.com/index.php/romantico;http://hertz.todoexitos.com:8210 47 | Vibration - Soft Hits;http://www.vibrationclassic80.ch/spip.php?page=vibrationclassic;http://vibrationsofthits.stream2net.eu:8350 48 | WGLT Blues Radio;http://wglt.org/streams/blues.shtml;http://wgltradio.ilstu.edu:8000/wgltblues.mp3 49 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Children.txt: -------------------------------------------------------------------------------- 1 | Abiding Radio - Sesonal;http://www.abidingradio.org/format.html;http://streams.abidingradio.org:7842/1 2 | Antenne Bayern - Kids;http://www.antenne.de/;http://mp3channels.webradio.antenne.de/hits-fuer-kids 3 | Bright.Fm Kids;http://www.brightfmkids.nl;http://wms.bright.fm:8020/ 4 | SRo Radio Junior (sk);http://junior.rtvs.sk;http://live.slovakradio.sk:8000/Junior_128.mp3 5 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Club.txt: -------------------------------------------------------------------------------- 1 | 1.Fm - Amsterdam Trance;http://www.1.fm;http://sc-atr.1.fm:7700 2 | 1.Fm - Circuit Pride;http://www.1.fm;http://sc-tgway.1.fm:5090 3 | 1.Fm - Club One;http://www.1.fm;http://sc-club.1.fm:8060 4 | AddictedToRadio - House Channel;http://addictedtoradio.com;http://208.77.21.13:12610 5 | AddictedToRadio - Trance Channel;http://addictedtoradio.com;http://wms-13.streamsrus.com:13610 6 | Adntrance;http://adntrance.com;http://72.46.136.154:7073 7 | All4Fun Radio - Clubstream;http://www.all4funradio.eu;http://46.163.108.110:30740 8 | Bash Fm;http://www.bash.fm/index.php?option=com_wrapper&view=wrapper&Itemid=164;http://www.bash-music.com:8000 9 | Beta Radio (sk);http://www.beta.sk;http://server1.internetoveradio.sk:8842/ 10 | BHJMS Radio 1;http://www.bhjms-radio.de;http://www.bhjms-radio.de:8000/ 11 | Blast Fm.ch - Tech House;http://www.blastfm.ch;http://stream.uzic.ch:9010/ 12 | Cavo Paradisoradio;http://www.cavoparadisoradio.com/live.php;http://s5.onweb.gr:8488/ 13 | Clubmix;http://www.;http://under.radioclubmix.ro:9999/listen64.aac 14 | ClubTime Fm;http://www.clubtime.fm;http://mp3.clt-stream.net/ 15 | Club Zero;http://www.clubzeroradio.com;http://74.86.34.45:8458 16 | Deepvibes Radio;http://www.deepvibes.co.uk;http://88.208.218.19:9106/stream 17 | Digitally Imported - BR House;http://www.di.fm/breaks;http://pub3.di.fm:80/di_bigroomhouse 18 | Digitally Imported - Breaks;http://www.di.fm/breaks;http://pub4.di.fm:80/di_breaks 19 | Digitally Imported - DJ Mixes;http://www.di.fm/djmixes;http://pub4.di.fm:80/di_djmixes 20 | Digitally Imported - Dubstep;http://www.di.fm/drumandbass/;http://pub5.di.fm:80/di_dubstep 21 | Digitally Imported - Electro;http://www.di.fm/electro;http://pub4.di.fm:80/di_electrohouse 22 | Digitally Imported - Funky House;http://www.di.fm/funkyhouse;http://pub5.di.fm:80/di_funkyhouse 23 | Digitally Imported - Goa & Psy;http://www.di.fm/goapsy/;http://pub1.di.fm:80/di_goapsy 24 | Digitally Imported - Hardcore;http://www.di.fm/hardcore;http://pub1.di.fm:80/di_hardcore 25 | Digitally Imported - Hard Dance;http://www.di.fm/harddance;http://pub5.di.fm:80/di_harddance 26 | Digitally Imported - House;http://www.di.fm/house/;http://pub5.di.fm:80/di_house 27 | Digitally Imported - Minimal;http://www.di.fm/minimal;http://pub1.di.fm:80/di_minimal 28 | Digitally Imported - Soulful;http://www.di.fm/soulfulhouse;http://pub5.di.fm:80/di_soulfulhouse 29 | Digitally Imported - Tech House;http://www.di.fm/techhouse/;http://pub3.di.fm:80/di_techhouse 30 | Digitally Imported - Techno;http://www.di.fm/techno/;http://pub4.di.fm:80/di_techno 31 | Digitally Imported - Trance;http://www.di.fm/trance/;http://pub3.di.fm:80/di_trance 32 | Digitally Imported - Tribal House;http://www.di.fm/tribalhouse;http://pub5.di.fm:80/di_tribalhouse 33 | Digitally Imported - Voc. Trance;http://www.di.fm/vocaltrance/;http://pub5.di.fm:80/di_vocaltrance 34 | Discoid;http://discoid.fr/;http://discoid.fr:8080/radio.mp3 35 | DJ Tiesto Stream;http://www.djtiestostream.nl/playing.php;http://141.105.4.234:8020/ 36 | Electrosound TV;http://www.electrosound.tv/;http://media.electrosound.tv:8000/stream/3/ 37 | FG DJ House;http://www.radiofg.com;http://radiofg.impek.com/fgc 38 | FloatStylez.fm;http://floatstylez.fm;http://78.46.48.172:8000 39 | GlobalBeats;http://www.globalbeats.fm/;http://gbs01.de:7220/ 40 | Gremlin Radio;http://www.gremlinradio.com/gr3/news.php;http://208.53.138.125:8294/ 41 | Hirschmilch - Prog-House;http://hirschmilch.de;http://hirschmilch.de:7000/prog-house.mp3 42 | Hirschmilch - Progressive;http://hirschmilch.de;http://hirschmilch.de:7000/progressive.mp3 43 | Hirschmilch - Psytrance;http://hirschmilch.de;http://hirschmilch.de:7000/psytrance.mp3 44 | HotMixRadio - Dance;http://www.hotmixradio.fr/90s;http://streamingads.hotmixradio.fm/hotmixradio-dance-128.mp3 45 | Ibiza Sonica;http://www.ibizasonica.com;http://s1.sonicabroadcast.com:7005/ 46 | I Love The Dome;http://www.iloveradio.de;http://87.230.53.70/iloveradio3.mp3 47 | katzenpuff;http://www.katzenpuff.com;http://www.laut.fm/katzenpuff 48 | Kronehit - Clubhouse;http://www.kronehit.at/;http://onair.krone.at:80/kronehit-clubland.mp3 49 | Mix Nation;http://www.mixnation.de;http://stream.mixnation.de 50 | MusicBase - TranceSection;http://www.radiohoeren.at/index.php?sectionname=djschoolsection;http://89.31.134.133:88 51 | Naxi Radio - House;http://www.naxi.rs;http://naxidigital128.kbcnet.rs:8000/ 52 | Nightfly - Club;http://www.radio-city-light-nightfly.de/news.php;http://178.63.94.81:8006/ 53 | ORSRADIO Techno & House;http://www.shoutcast.com/Internet-Radio/ORSRADIO;http://192.81.248.43:8012 54 | Partyviberadio - Techno;http://www.partyviberadio.com/player/techno-house-trance/index.html;http://206.190.152.194:8006/ 55 | PolskaStacja.pl - Club;http://www.polskastacja.pl;http://91.121.165.51:7800 56 | PolskaStacja.pl - Country;http://www.polskastacja.pl;http://91.121.116.107:7300 57 | PolskaStacja.pl - DJ Top50;http://www.polskastacja.pl;http://91.121.157.133:7600 58 | PolskaStacja.pl - Hot House;http://www.polskastacja.pl;http://91.121.89.198:7700 59 | PolskaStacja.pl - House & Dance;http://www.polskastacja.pl;http://91.121.116.107:9500 60 | PolskaStacja.pl - Jazz;http://www.polskastacja.pl;http://91.121.92.167:8700 61 | Radio ClubMix - Romania;http://www.radioclubmix.ro;http://live.radioclubmix.ro:9999 62 | RadioParty.pl;http://www.radioparty.pl;http://djmixes.radioparty.pl:8035 63 | Radio BestSound (sk);http://bestsound.eu;http://stream.bestsound.eu:8000 64 | Radio Talent.br;http://www.radiotalent.com.br;http://74.50.122.103:9354 65 | Rouge Fm;http://www.rougefm.com;http://broadcast.infomaniak.net/rougeplatine-high.mp3 66 | Sense.fm Progressive;http://www.sense.fm/#;http://212.83.148.215:5010 67 | Sense.fm Trance;http://www.sense.fm/#;http://212.83.148.215:5004 68 | ShoutedFM - Break;http://www.shouted.fm/index.php?area=break;http://break.mthn.net:8800 69 | ShoutedFM - Electro;http://www.shouted.fm/index.php?area=electro;http://electro.mthn.net:8400 70 | ShoutedFM - House;http://www.shouted.fm/index.php?area=house;http://house.mthn.net:8500 71 | ShoutedFM - Main;http://www.shouted.fm/index.php?area=main;http://main.mthn.net:8000 72 | Sound-Generation - House;http://www.sound-generation.fm/house.php;http://housestream.sound-generation.fm:80 73 | Techno4ever Radio - Club;http://www.techno4ever.net;http://tunein01.t4e.dj/club/dsl/mp3 74 | Techno4ever Radio - Main;http://www.techno4ever.net;http://tunein01.t4e.dj/main/dsl/mp3 75 | The Base - Imperium;http://radio.starcitizenbase.com;http://199.195.194.140:8339/stream 76 | VFR Europe;http://www.internet-radio.com/station/vfreurope;http://uk3.internet-radio.com:10936 77 | You Fm - Club;http://www.you-fm.de;http://gffstream.ic.llnwd.net/stream/gffstream_mp3_w76a 78 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Country.txt: -------------------------------------------------------------------------------- 1 | .977 - The Country Channel;http://www.977music.com;http://7599.live.streamtheworld.com:80/977_COUNTRY_SC 2 | 1.Fm - Classic Country Hits;http://www.1.fm;http://sc-ccountry.1.fm:7806 3 | 1.Fm - Country One;http://www.1.fm;http://sc-countryone.1.fm:8020 4 | 107.7 The Bull;http://www.1077thebull.com/;http://1.ice1.firststreaming.com/wibl_fm.mp3 5 | AddictedToRadio - Big Band;http://addictedtoradio.com;http://208.77.21.31:16510 6 | AddictedToRadio - BlueGrass;http://addictedtoradio.com;http://208.77.21.33:12410 7 | AddictedToRadio - Country;http://addictedtoradio.com;http://208.77.21.33:11110 8 | Always Country;http://loudcity.com/stations/alwayscountry/files/show/tune_in.html;http://sc708.c531.fast-serv.com:80/ 9 | AMPZ Country;http://country.ampzradio.com;http://50.7.77.114:8579/ 10 | Barnyard Radio;http://www.heartbeatofflagler.com;http://s2.streamorbit.com:8147 11 | BestNetRadio Country Mix;http://www.bestnetradio.com;http://173.192.32.199:7170 12 | BestNetRadio Country Oldies;http://www.bestnetradio.com;http://173.192.32.199:7180 13 | Big Hits Country Australia;http://www.bighitscountry.com.au/BHC/bhc.html;http://s7.voscast.com:7472 14 | Calm Radio - Blue Grass;https://calmradio.com;http://calm11.calmradio.com:8606/stream 15 | Calm Radio - Calm Country;https://calmradio.com;http://calm11.calmradio.com:8776/stream 16 | CMR Nashville;http://www.cmrnashville.com/listenlive.php;http://91.121.122.94:8000 17 | CMR Nashville 1;http://www.cmrnashville.com/listenlive.php;http://46.231.87.21:8300 18 | CMR Nashville 2;http://www.cmrnashville.com/listenlive.php;http://62.212.132.26:8300 19 | CMR Nashville 3;http://www.cmrnashville.com/listenlive.php;http://46.231.87.20:8300 20 | Countrymusic 24;http://www.countrymusic24.com/content/mainpage/frame.htm;http://countrymusic24.powerstream.de:9000/ 21 | Country 108 ;http://www.country108.com/;http://tuner.country108.com:80 22 | Got Radio - Country;http://www.gotradio.com;http://173.244.215.162:8090 23 | HookedOnRadio - Hot Country;http://hookedonradio.com;http://174.37.110.72:8580 24 | HPR1 - Classic Country;http://www.hpr.org;http://50.7.70.58:8708/ 25 | HPR2 - Western Music;http://www.hpr.org;http://50.7.77.179:8022/ 26 | HPR4 - Bluegrass;http://www.hpr.org;http://50.7.77.179:8024/ 27 | Irish Country Music Radio;http://www.irishcountrymusicradio.com;http://46.28.49.164:7502/ 28 | ORSRADIO Alt Country;http://www.shoutcast.com/Internet-Radio/ORSRADIO;http://192.81.248.43:8022 29 | ORSRADIO Blue Grass;http://www.shoutcast.com/Internet-Radio/ORSRADIO;http://192.81.248.43:8024 30 | Radio Kosice (sk);http://www.radiokosice.sk;http://stream.ecce.sk:8000/radiokosice-128.mp3 31 | Radio Nashville International;http://www.radionashvilleinternational.com;http://62.212.132.54:8612 32 | RAZR Country;http://country.razrradio.com;http://50.7.77.114:8579/ 33 | RFP Radio - Classic Country;http://rfpradio.com/tunein;http://108.163.213.202:8174/stream 34 | RFP Radio - Country Silk;http://rfpradio.com/tunein;http://108.163.213.202:8228/stream 35 | Scott Fm Country;http://www.scottfm.net;http://ibiza.broadstreamer.com:7100/ 36 | The Badlands;http://badlandscountry.com/;http://65.49.77.146:9574 37 | The Bluegrass Mix;http://www.thebluegrassexpressonline.com/bluegrassmix/listen.html;http://s1.nexuscast.com:8069 38 | The Buffalo;http://www.thebuffalo.fr;http://listen.radionomy.com/the-buffalo 39 | Wild West Radio;http://wildwestradio.com/;http://s7.viastreaming.net:7430 40 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Dance & Pop.txt: -------------------------------------------------------------------------------- 1 | 1.Fm - Adult Urban Hits;http://www.1.fm;http://sc-ua.1.fm:8023 2 | 1005 Das Hitradio;http://www.dashitradio.de;http://skyserver5.skydisc.net:8000/ 3 | 121 Webradio - Pop n Rock;http://jazz.121webradio.com/;http://www.121webradio.com:8010/ 4 | 181.Fm - Studio 181;http://www.181.fm/;http://relay.181.fm:8072/ 5 | ABradio Dance;http://www.abradio.cz/radio/59/dance-radio;http://mp3stream4.abradio.cz:8000/dance128.mp3 6 | AddictedToRadio - BreakBeat;http://addictedtoradio.com;http://208.77.21.31:13010 7 | AddictedToRadio - Love Bites;http://addictedtoradio.com;http://208.77.21.33:15910 8 | AddictedToRadio - Old School;http://addictedtoradio.com;http://208.77.21.31:14910 9 | ADR 206 Pop Nation;http://alldigitalradionetwork.com;http://192.169.70.194:8112 10 | BestNetRadio Coffee House;http://www.bestnetradio.com;http://173.192.32.199:7160 11 | Boom Station;http://boomstation.net;http://206.190.150.90:8217 12 | Cadena Dial;http://www.dialandaluciaeste.com;http://4633.live.streamtheworld.com:80/CADENADIAL_SC 13 | City Dance Radio Spain;http://www.citypopradio.es/index2.html;http://listen.radionomy.com/City-Dance-Radio 14 | City Funk Radio Spain;http://www.citypopradio.es/index2.html;http://listen.radionomy.com/CITY-FUNK-RADIO 15 | City Pop Radio Spain;http://www.citypopradio.es/index2.html;http://listen.radionomy.com/City-Pop-Radio 16 | Cosmo Radio - Greece;http://www.cosmoradio.gr/;http://shout.cosmoradio.gr:8130/ 17 | c.t. - Das Radio;http://www.radioct.de/;http://live.radioct.de:8008/ 18 | Disco Fm.nl;http://www.discofm.nl;http://174.36.1.92:8508/ 19 | Dobre Radio (sk);http://www.dobreradio.sk;http://stream.dobreradio.sk:8000/Dobre128mp3 20 | Electro Radio;http://www.electroradio.ch/;http://stream.electroradio.ch:26630 21 | Energy - Dance;http://www.energy.ch/webradios/musicinfos-detail/channel/energy-dance-internet-radio-techno-trance-house-und-elektro/;http://energydance.ice.infomaniak.ch:80/energydance-high.mp3 22 | FG Dance;http://www.radiofg.com;http://radiofg.impek.com/fgd 23 | FG DJ Mix;http://www.radiofg.com;http://radiofg.impek.com/fg6 24 | FG Radio;http://www.radiofg.com;http://radiofg.impek.com/fg 25 | FG Underground;http://www.radiofg.com;http://radiofg.impek.com/ufg 26 | Fitmix.fm;http://www.fitmix.fm;http://198.105.220.12:6443/live 27 | Fresh Radio;http://www.freshradio.org;http://176.31.113.37:8080 28 | FunX - Amsterdam;http://www.funx.nl;http://icecast.omroep.nl/funx-amsterdam-bb-mp3 29 | FunX - Den Haag;http://www.funx.nl;http://icecast.omroep.nl/funx-denhaag-bb-mp3 30 | FunX - Utrecht;http://www.funx.nl;http://icecast.omroep.nl/funx-utrecht-bb-mp3 31 | Fun Radio FM (sk);http://www.funradio.sk;http://stream.funradio.sk:8000/fun128.mp3 32 | Fun Radio Lorraine;http://www.funradiolorraine.fr;http://88.191.152.65:8014 33 | Fusion Radio Chicago - Pop;http://popfusion.fusionchicago.com/;http://pop.fusionchicago.com:9006 34 | Future Radio UK;http://futureradio.co.uk;http://radio.canstream.co.uk:8007/live.mp3 35 | Gapfreeradio - Flashback;http://gapfreeradio.com/listen-to-flashback-now;http://162.251.160.2:80/gapfreeflashbackhigh 36 | Got Radio - Dance;http://www.gotradio.com/;http://173.244.215.163:8570 37 | Got Radio - The Beat;http://www.gotradio.com/;http://173.244.215.162:8130 38 | hitRadio.fr - Dance;http://www.hitradio.fr;http://listen.radionomy.com/hitradiofr-dance 39 | hitRadio.fr - Disco;http://www.hitradio.fr;http://listen.radionomy.com/hitradiofr-disco 40 | hitRadio.fr - Pop;http://www.hitradio.fr;http://listen.radionomy.com/hitradiofr-pop 41 | Imagine Fm Belgium;http://www.imaginefm.be;http://str43.streamakaci.com:6710 42 | I Love 2 Dance;http://www.iloveradio.de;http://80.237.156.44:80/iloveradio2.mp3 43 | Jack Fm - Berlin;http://www.jackfm.de/;http://sc1.netstreamer.net:8050 44 | Jemne Melodie (sk);http://www.jemnemelodie.sk/titulna-stranka;http://93.184.69.143:8000/;jemnemelodie-high-mp3.mp3 45 | Kronehit - Dance;http://www.kronehit.at;http://onair.krone.at:80/kronehit-dance.mp3 46 | LifeGate Sound;http://www.shoutcast.com;http://95.211.113.141:8254 47 | Lite Fm;http://www.litefmnh.com/lite-fm;http://162.251.160.2:80/bobcountryhigh 48 | Magic Radio - France;http://www.magic-radio.net;http://mp3.magic-radio.net 49 | Magic Radio - Switzerland;http://www.magicradio.ch/v2/index.php/ecoutez;http://magicradio.ice.infomaniak.ch/magicradio-high.mp3 50 | Naxi Radio - Dance;http://www.naxi.rs;http://naxidigital128.kbcnet.rs:8110/ 51 | ORSRADIO Disco;http://www.shoutcast.com/Internet-Radio/ORSRADIO;http://192.81.248.43:8014 52 | Partyviberadio - Pop;http://www.partyviberadio.com/player/pop/index.html;http://206.190.152.194:8018/ 53 | PlaZma Radio;http://www.plazmaradio.com;http://50.7.70.66:8638 54 | PolskaStacja.pl - Dance100;http://www.polskastacja.pl;http://91.121.165.51:2200 55 | PolskaStacja.pl - Dancehall;http://www.polskastacja.pl;http://91.121.92.167:4800 56 | PolskaStacja.pl - Italia;http://www.polskastacja.pl;http://91.121.157.133:5000 57 | Puls Fm;http://www.pulsfm.de;http://87.230.82.41:80 58 | Q Music.be;http://q-music.be;http://146.185.49.37:80/QBE_MP3_HI 59 | Radio1 Fm88 Dance;http://www.radio1.gr/listenlive;http://111.gr:8004 60 | Radio DEEA;http://www.shoutcast.com/Internet-Radio/Radio%20DEEA;http://89.46.222.8:9940 61 | Radio puntonuovo;http://www.radiopuntonuovo.it/;http://s3.mediastreaming.it:7260/ 62 | Radio Rasman (sk);http://www.shoutcast.com;http://server1.internetoveradio.sk:8856 63 | Radio SAW 2000er;http://www.radiosaw.de;http://stream.saw-musikwelt.de/saw-2000er/ 64 | Radio SAW Deutsch;http://www.radiosaw.de;http://stream.saw-musikwelt.de/saw-deutsch/ 65 | Radio SAW Party;http://www.radiosaw.de;http://stream.saw-musikwelt.de/saw-party/ 66 | Radio Sever (sk);http://www.radiosever.sk;http://stream.sepia.sk:8000/sever128.mp3 67 | Retropraha.cz;http://retropraha.cz;http://icecast4.play.cz/retromusichallradio128.mp3 68 | RFP Radio - Dancehall Queen;http://rfpradio.com/tunein;http://108.163.213.202:8072/stream 69 | RFP Radio - Make it Pop;http://rfpradio.com/tunein;http://108.163.213.202:8120/ 70 | RL Tech Radio;http://rl-tech-radio.playtheradio.com;http://listen.radionomy.com/rl-tech-radio 71 | San Antonio Dance Radio;http://www.streamlicensing.com/stations/sadanceradio/SanAntonioDanceRadio.html;http://64.150.176.87:8203 72 | Sky.fm - Russian Dance;http://www.sky.fm/russiandance;http://pub1.sky.fm/sky_russiandance 73 | Sky.fm - Russian Pop;http://www.sky.fm/russianpop;http://pub2.sky.fm/sky_russianpop 74 | Smart Fm.gr;http://www.smartfm.gr;http://smartfm.serverroom.us:8030 75 | SomaFM - PopTron;http://somafm.com/play/poptron;http://ice.somafm.com/poptron 76 | SunRise Fm (sk);http://www.sunrisefm.sk/kontakt.html;http://server1.internetoveradio.sk:8809 77 | Two Lochs Radio.uk;http://www.2lr.co.uk;http://icecast.commedia.org.uk:8000/twolochs.mp3 78 | Zap Fm 1;http://www.zap.fm;http://83.149.112.83:8000/ 79 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Electronic.txt: -------------------------------------------------------------------------------- 1 | 1.Fm - Afterbeat Electronica;http://www.1.fm;http://sc-electronica.1.fm:8250 2 | 121 Webradio - Electronica;http://jazz.121webradio.com/;http://www.121webradio.com:8000/ 3 | 35TNT - Techno n Trance;http://www.35tnt.com;http://198.20.96.53:80/ 4 | A-A Electro;http://www.anthologywebradio.com;http://62.210.131.213:8000/stream/1/ 5 | A-A Funk;http://www.anthologywebradio.com;http://62.210.131.213:8000/stream/4/ 6 | Acidic Infektion.br;http://www.acidicinfektion.com;http://173.193.195.155:9976 7 | AddictedToRadio - DH Chicago;http://addictedtoradio.com;http://wms-21.streamsrus.com:10025 8 | Bass Junkees;http://www.bassjunkees.com;http://space.ducks.invasion.started.at.bassjunkees.com:8442 9 | BigBeats;http://bigbeats.sytes.net;http://bigbeats.sytes.net:9000/ 10 | BlitzRadio Fm;http://www.blitzradio.fm;http://listen.blitzradio.fm 11 | Chillkyway;http://chillkyway.net;http://78.47.229.156:8000 12 | Destroyer Radio;http://www.destroyer.net/radio/;http://www.destroyer.net:8800/ 13 | Digitally Imported - Chiptunes;http://www.di.fm/chiptunes;http://pub4.di.fm:80/di_chiptunes 14 | Digitally Imported - Electronica;http://www.di.fm/classictechno/;http://pub5.di.fm:80/di_eclectronica 15 | Digitally Imported - Glitchhop;http://www.di.fm;http://pub3.di.fm:80/di_glitchhop 16 | Digitally Imported - Liquid DnB;http://www.di.fm;http://pub4.di.fm:80/di_liquiddnb 17 | Digitally Imported - Liquid Dub;http://www.di.fm/;http://pub2.di.fm:80/di_liquiddubstep 18 | Digitally Imported - Old Elec;http://www.di.fm/oldschoolelectronica;http://pub3.di.fm:80/di_oldschoolelectronica 19 | Digitally Imported - Progressive;http://www.di.fm/progressive/;http://pub5.di.fm:80/di_progressive 20 | Digitally Imported - Prog Psy;http://www.di.fm/progressive/;http://pub2.di.fm:80/di_progressivepsy 21 | Digitally Imported - Synthpop;http://www.di.fm;http://pub5.di.fm:80/di_futuresynthpop 22 | dubplate fm - Drum & Bass;https://dubplate.fm;http://sc2.dubplate.fm:5000/DnB/192 23 | dubplate fm - Dub & Bass;https://dubplate.fm;http://sc2.dubplate.fm:5000/dubstep/192 24 | dubplate fm - Heavy;https://dubplate.fm;http://sc2.dubplate.fm:5000/Heavy/192 25 | dubplate fm - Urban Boogie;https://dubplate.fm;http://sc2.dubplate.fm:5000/Electro/192 26 | Full Vibes Radio;http://radio.full-vibes.com;http://radio.full-vibes.com:8023/ 27 | Hirschmilch - Electronic;http://hirschmilch.de;http://hirschmilch.de:7000/electronic.mp3 28 | In Grog We Trust;http://www.;http://87.117.193.10:8100/ 29 | Lazer Hot Hits - Belgium;http://www.shoutcast.com;http://46.18.35.19:3730 30 | Music Victim 2;http://musicvictim.com/radio.php?idioma=de;http://radio.musicvictim.com:8022/ 31 | Mylene Farmer;http://mylenefarmer.vestaradio.com;http://sv3.vestaradio.com:5020 32 | Oem Radio;http://oem-radio.org/tune-in-now;http://46.23.68.170:9116/ 33 | OpenLab;http://www.openlab.fm/#!playlist/listen-links;http://198.105.220.12:7179/live 34 | ORSRADIO Indie Pop;http://www.shoutcast.com/Internet-Radio/ORSRADIO;http://192.81.248.43:8040 35 | Partyviberadio - Drum Bass;http://www.partyviberadio.com/player/drumandbass-jungle/index.html;http://206.190.152.194:8004/ 36 | Partyviberadio - Dubstep;http://www.partyviberadio.com/player/dubstep/index.html;http://206.190.152.194:8014/ 37 | Partyviberadio - Psychedelic;http://www.partyviberadio.com/player/psytrance-progressive/index.html;http://206.190.152.194:8010/ 38 | Play Fm Dublin;http://playdublin.net;http://46.29.255.39:8000/ 39 | PolskaStacja.pl - Electro & House;http://www.polskastacja.pl;http://188.165.20.29:6001 40 | Q-Dance Radio;http://www.q-dance.com/germany/en;http://stream01.platform02.true.nl:8000/qdance-hard 41 | RadioBass;http://www.shoutcast.com;http://94.23.240.167:9524 42 | Radio Static UK;http://www.statichq.com;http://a10.streamgb.com:8053/stream 43 | UZIC;http://www.uzic.ch;http://stream.uzic.ch:9010/ 44 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Gothic.txt: -------------------------------------------------------------------------------- 1 | Abnormally Dead on Air;http://www.internetradio.co.uk/?gk_menu=mega#;http://199.101.51.168:8006 2 | Asylum Radio;http://www.asylumradio.eu;http://67.159.5.57:9258/ 3 | German Gothic Radio;http://www.german-gothic-radio.de;http://dsl.german-gothic-radio.de:8046/ 4 | Gothville;http://www.gothville.com;http://radio.gothville.com:8000/ 5 | Radio Schwarze Welle;http://www.schwarze-welle.de/;http://85.25.43.132:7500 6 | Real Industrial Radio;http://realindustrialradio.com/;http://radio.realindustrialradio.com:8000/ 7 | Ultra Dark Radio;http://www.ultradarkradio.com;http://stream1.laut.fm/ultradarkradio 8 | Vox Noctem;http://www.voxnoctem.de;http://r2d2.voxnoctem.de:8000/voxnoctem.mp3 9 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Jazz & Soul.txt: -------------------------------------------------------------------------------- 1 | .977 - The Smooth Jazz Channel;http://www.977music.com;http://7609.live.streamtheworld.com:80/977_SMOOJAZZ_SC 2 | 1.Fm - Adore Jazz;http://www.1.fm;http://sc-ajazz.1.fm:5080 3 | 1.Fm - All & Gospel;http://www.1.fm;http://sc-gospel.1.fm:7102 4 | 1.Fm - Bay Smooth Jazz;http://www.1.fm;http://sc-sjazz.1.fm:9010 5 | 121 Webradio - Jazz n Classic;http://jazz.121webradio.com/;http://www.121webradio.com:8020/ 6 | 90.9 Jazzy Hungaria;http://www.jazzy.hu/;http://online.jazzy.hu/jazzy.mp3 7 | ABC - Jazz;http://www.abc.net.au/radio/listenlive.htm#directlinks;http://shoutmedia.abc.net.au:10430/ 8 | AddictedToRadio - Jazz Masters;http://addictedtoradio.com;http://wms-15.streamsrus.com:16810 9 | ADR 104 Jazz Lab;http://alldigitalradionetwork.com;http://192.169.70.194:8116 10 | ADR 207 Gospel Station;http://alldigitalradionetwork.com;http://192.169.70.194:8114 11 | Amazing Smooth and Jazz;http://smoothandjazz.com;http://uk1.amazingradios.com:8090/ 12 | Audiophile Jazz;http://stream.psychomed.gr/webstream%20jazz.html;http://50.7.173.162:8014/ 13 | Bossajazzbrasil;http://www.bossajazzbrasil.com;http://streaming17.brlogic.com:8238/live 14 | Calm Radio - Be Bop;https://calmradio.com;http://67.21.244.246:8156/stream 15 | Calm Radio - Bossa Nova;https://calmradio.com;http://67.21.244.246:10056/stream 16 | Calm Radio - Jazz Guitar;https://calmradio.com;http://calm11.calmradio.com:9566/stream 17 | Calm Radio - Jazz Piano;https://calmradio.com;http://calm3.calmradio.com:8756/stream 18 | Calm Radio - Jazz Vocals;https://calmradio.com;http://67.21.244.246:8356/stream 19 | Calm Radio - Just Jazz;https://calmradio.com;http://calm11.calmradio.com:8856/stream 20 | Calm Radio - Latin Jazz;https://calmradio.com;http://calm11.calmradio.com:9686/stream 21 | Calm Radio - Movieola;https://calmradio.com;http://calm2.calmradio.com:8156/stream 22 | Calm Radio - Smooth Jazz;https://calmradio.com;http://calm3.calmradio.com:10856/stream 23 | Chroma - Classic Jazz;http://chromaradio.net;http://176.9.22.6:8052 24 | Chroma - Jazz Smooth;http://chromaradio.net;http://176.9.22.6:8002 25 | Chroma - Soul;http://chromaradio.net;http://176.9.22.6:8680 26 | Concertzender - Jazz;http://www.concertzender.nl/;http://streams.greenhost.nl:8080/jazz 27 | Crooze Fm;http://www.crooze.fm/;http://77.92.64.44:8045/stream 28 | Gong Radio - Abalone;http://www.gongradio.fr/5/abalone.html;http://listen.radionomy.com/abalone 29 | Got Radio - Jazz;http://www.gotradio.com/;http://173.244.215.163:8460 30 | Groove Fm;http://www.groovefm.de/;http://stream.groovefm.de:10028/ 31 | JazzRadio.net;http://www.jazzradio.net/;http://80.237.159.26:8250 32 | Jazz 88.3;http://www.jazz88.org/listen.php;http://listen.jazz88.org/ksds.mp3 33 | Jazz Radio - Blues;http://www.jazzradio.fr/radio/webradio/blues;http://jazzblues.ice.infomaniak.ch/jazzblues-high.mp3 34 | Jazz Radio - Beatles;http://www.jazzradio.fr/radio/webradio/beatles-jazz;http://jazz-wr16.ice.infomaniak.ch/jazz-wr16-128.mp3 35 | Jazz Radio - Black;http://www.jazzradio.fr/radio/webradio/black-music;http://jazzblackmusic.ice.infomaniak.ch/jazzblackmusic-high.mp3 36 | Jazz Radio;http://www.jazzradio.fr/;http://jazzradio.ice.infomaniak.ch/jazzradio-high.mp3 37 | Jazz Radio - Classic;http://www.jazzradio.fr/radio/webradio/jazz-and-classique;http://jazz-wr17.ice.infomaniak.ch/jazz-wr17-128.mp3 38 | Jazz Radio - Classic Jazz;http://www.jazzradio.fr/radio/webradio/classic-jazz;http://jazz-wr01.ice.infomaniak.ch/jazz-wr01-128.mp3 39 | Jazz Radio - Contemporary;http://www.jazzradio.fr/radio/webradio/contemporary-jazz;http://jazz-wr05.ice.infomaniak.ch/jazz-wr05-128.mp3 40 | Jazz Radio - French;http://www.jazzradio.fr/radio/webradio/jazzy-french-radio-by-jazz-radio;http://jazz-wr18.ice.infomaniak.ch/jazz-wr18-128.mp3 41 | Jazz Radio - Grovv;http://www.jazzradio.fr/radio/webradio/groov-up;http://jazz-wr13.ice.infomaniak.ch/jazz-wr13-128.mp3 42 | Jazz Radio - Ladies;http://www.jazzradio.fr/radio/webradio/ladies-n-crooners;http://jazzladiescrooners.ice.infomaniak.ch/jazzladiescrooners-high.mp3 43 | Jazz Radio - Lounge;http://www.jazzradio.fr/radio/webradio/lounge;http://jazzlounge.ice.infomaniak.ch/jazzlounge-high.mp3 44 | Jazz Radio - Manouche;http://www.jazzradio.fr/radio/webradio/jazz-manouche;http://jazz-wr02.ice.infomaniak.ch/jazz-wr02-128.mp3 45 | Jazz Radio - New Orleans;http://www.jazzradio.fr/radio/webradio/new-orleans;http://jazz-wr03.ice.infomaniak.ch/jazz-wr03-128.mp3 46 | Jazz Radio - Reprises;http://www.jazzradio.fr/radio/webradio/reprises;http://reprises.ice.infomaniak.ch/reprises-high.mp3 47 | Jazz Radio - Rhino;http://www.jazzradio.fr/radio/webradio/rhino-jazz;http://jazz-wr15.ice.infomaniak.ch/jazz-wr15-128.mp3 48 | Jazz Radio - Soul;http://www.jazzradio.fr/radio/webradio/soul;http://jazz-wr10.ice.infomaniak.ch/jazz-wr10-128.mp3 49 | M2 Jazz;http://www.m2radio.fr/?m2=jazz;http://live.m2stream.fr:80/m2jazz-128.mp3 50 | ORSRADIO Hip Hop;http://www.shoutcast.com/Internet-Radio/ORSRADIO;http://192.81.248.43:8032 51 | Pure Jazz Radio;http://loudcity.com/stations/pure-jazz-radio/tune_in;http://71.125.12.37:8000 52 | Qfm Tenerife ;http://www.qmusica.com/index_de.php;http://s1.viastreaming.net:7420/ 53 | Radio Crazy - Jazz & Swing;http://www.radiocrazy.ch;http://friends-of-radius.ethz.ch:8000/radiocrazy-jazz.mp3 54 | Radio Jazz Plus;http://www.radiojazzplus.com;http://70.38.64.240:8000/ 55 | Radio Slow Jamz.br;http://www.slowjamz.com.br;http://slow01.slowjamz.com.br:8028/ 56 | Radio Wax;http://www.radiowax.com/listenlive.html;http://50.7.96.210:8494 57 | Renessans 94.2;http://www.jazzfm.com.ua/;http://217.20.164.163:8014/ 58 | RFP Radio - Kingston Ska;http://rfpradio.com/tunein;http://108.163.213.202:8210/stream 59 | RFP Radio - Music for the Soul;http://rfpradio.com/tunein;http://108.163.213.202:8222/stream 60 | RFP Radio - Neo Soul;http://rfpradio.com/tunein;http://108.163.213.202:8060/stream 61 | Sky.fm - BeBop Jazz;http://www.sky.fm/sky_bebop/;http://pub2.sky.fm/sky_bebop 62 | Sky.fm - BossaNova Jazz;http://www.sky.fm/sky_bossanova/;http://pub2.sky.fm/sky_bossanova 63 | Sky.fm - Smooth Jazz;http://www.sky.fm/smoothjazz/;http://pub5.sky.fm/sky_smoothjazz 64 | SmoothJazz station;http://smj.delfa.net;http://radioserver1.delfa.net/192.mp3 65 | Smooth Jazz and More Radio;http://www.myspace.com/thesourcesmoothjazzandmor;http://149.255.33.71:8002 66 | SomaFM - Sonic Universe;http://somafm.com/sonicuniverse/played;http://uwstream2.somafm.com:8604 67 | Sublime Fm;http://www.sublimefm.nl/home;http://82.201.47.68/SublimeFM2 68 | WGLT Jazz Radio;http://wglt.org/streams/jazz.shtml;http://wgltradio.ilstu.edu:8000/wgltjazz.mp3 69 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Others.txt: -------------------------------------------------------------------------------- 1 | Aktiv Radio.hu;http://www.aktivradio.hu;http://aktivradio.hu:8000/aktiv.mp3 2 | Empneusi Radio.gr;http://empneusi.radiojar.com;http://95.211.205.23/listen/2rsrhmepefq 3 | Mez Radio.hu;http://www.mezradio.hu/index.php?pg=online;http://host2.radioszerver.hu:9200/ 4 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Reggae.txt: -------------------------------------------------------------------------------- 1 | AddictedToRadio - Raggaeton;http://addictedtoradio.com;http://wms-13.streamsrus.com:17210 2 | AddictedToRadio - Raggaeton;http://addictedtoradio.com;http://wms-13.streamsrus.com:17110 3 | AddictedToRadio - Salsa;http://addictedtoradio.com;http://208.77.21.31:17310 4 | BigUp Radio - Reggaeton;http://www.bigupradio.com;http://173.224.124.232:9914 5 | BigUp Radio - Roots;http://www.bigupradio.com;http://radio.bigupradio.com:8005/ 6 | Calm Radio - Native;https://calmradio.com;http://calm11.calmradio.com:10256/stream 7 | Calm Radio - Persia;https://calmradio.com;http://calm4.calmradio.com:8756/stream 8 | FunX - Reggae;http://www.funx.nl;http://icecast.omroep.nl/funx-reggae-bb-mp3 9 | Got Radio - Reggae;http://www.gotradio.com;http://173.244.215.163:8470 10 | hitRadio.fr - Frenchy;http://www.hitradio.fr;http://listen.radionomy.com/hitradiofr-frenchy 11 | LA X 103.9 Fm;http://www.laxelectronica.com/lax/home;http://66.240.202.106:8074 12 | Partyviberadio - Reggae;http://www.partyviberadio.com/player/dancehall-reggae/index.html;http://206.190.152.194:8000/ 13 | PolskaStacja.pl - Bollywood;http://www.polskastacja.pl/radiochannel/Bollywood.htm;http://91.121.92.167:4600 14 | PolskaStacja.pl - CCM;http://www.polskastacja.pl;http://188.165.20.29:4100 15 | PolskaStacja.pl - Hip Hop;http://www.polskastacja.pl;http://91.121.116.107:9300 16 | Pondends;www.pondends.net;http://198.178.123.20:7000 17 | Radio 6;http://www.radio-6.de/;http://streamplus3.leonex.de:41204 18 | Sky.fm - Roots Reggae;http://www.sky.fm/rootsreggae/;http://pub2.sky.fm/sky_rootsreggae 19 | Sky Radio Macedonia;http://www.skyradio.com.mk/;http://89.205.123.70:8002 20 | Slam101 Fm;http://www.slam101fm.com;http://s2.nexuscast.com:8014/ 21 | Tambareen Radio;http://mixupyaad.com/tambareenradio;http://198.178.123.14:8044 22 | The Healing Light;http://loudcity.com/stations/the-healing-light/files/show/index.html;http://sc3.mystreamserver.com:8076 23 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Retro.txt: -------------------------------------------------------------------------------- 1 | AI Radio;http://ai-radio.org;http://mp3.ai-radio.org:8000/radio.mp3 2 | Radio Paralax;http://www.radio-paralax.de;http://stream.t-n-media.de:8030 3 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Schlager.txt: -------------------------------------------------------------------------------- 1 | 1000 Schlager;http://www.1000schlager.de;http://www.laut.fm/1000schlager 2 | All4Fun Radio - Deutschstream;http://www.all4funradio.eu;http://46.163.108.110:30730 3 | Antenne 50plus;http://zentrum50plus.de/index.php?page=44;http://85.214.65.158:8500 4 | Antenne Bayern - Schlagersahne;http://www.antenne.de/;http://mp3channels.webradio.antenne.de/das-schlager-karussell 5 | DanceFox Radio;http://www.dancefox-radio.de;http://dfr-radio.de:80/ 6 | Deutsch.fm;http://deutschfmradio.de;http://streamplus7.leonex.de:35466 7 | Elmar Radio.ee;http://www.elmar.ee;http://217.146.71.24:80/elmar.mp3 8 | fox4you;http://fox4you.de;http://80.237.158.41:8100/ 9 | Kronehit - Vollgas;http://www.kronehit.at;http://onair.krone.at:80/kronehit-vollgas.mp3 10 | Memory Radio 1;http://www.memoryradio.de/;http://www.memoryradio.de:4000/ 11 | Ole Fm - Kult;http://www.ole-radio.com;http://kult.ole.fm:8000 12 | Ole Fm - Schlager;http://www.ole-radio.com;http://schlager.ole.fm:8000 13 | Palmenstrandradio;http://www.palmenstrandradio.com/#;http://listen.palmenstrandradio.com:8000/ 14 | Radio2000 Suedtirol;http://www.radio2000.it;http://server2.digital-webstream.de:9840/ 15 | Radio 700 - Schlager und Oldies;http://www.radio700.de;http://streamserver.funkhaus.info:80 16 | Radio Arabella;http://www.arabellamusic.de;http://stream01.arabella-at.vss.kapper.net:8000 17 | Radio Chantre 1;http://radiochantre.com/news.php;http://188.138.91.134:9000/ 18 | Radio Chantre 2;http://radiochantre.com/news.php;http://188.138.91.134:8002/ 19 | Radio Jodlerwirt;http://www.radio-jodlerwirt.de;http://stream.laut.fm/radio-jodlerwirt 20 | Radio MN NL;http://www.radiomn.nl;http://server-09.stream-server.nl:8628 21 | Radio Seefunk;http://www.radio-seefunk.de;http://webradio.radio-seefunk.de:8000/ 22 | Rautemusik FM - Schlager;http://www.rautemusik.fm;http://schlager-high.rautemusik.fm 23 | Slager Radio (sk);http://www.slagerradio.sk;http://209.105.232.220:8585/slager 24 | SWR 4 BW;http://www.swr.de/swr4/bw/-/id=233374/mqfgxh/index.html;http://swr-mp3-m-swr4bw.akacast.akamaistream.net/7/426/137137/v1/gnl.akacast.akamaistream.net/swr-mp3-m-swr4bw 25 | SWR 4 RP;http://www.swr.de/swr4/rp/-/id=233378/oihljy/index.html;http://swr-mp3-m-swr4rp.akacast.akamaistream.net/7/906/137138/v1/gnl.akacast.akamaistream.net/swr-mp3-m-swr4rp 26 | THMR;http://thmr.eu;http://thmrhosting.de:9110 27 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Season.txt: -------------------------------------------------------------------------------- 1 | 181.Fm - Christmas R&B;http://www.181.fm;http://108.61.35.91:8088 2 | 181.Fm - Christmas Smooth Jazz;http://www.181.fm;http://108.61.35.91:8092 3 | Abiding Radio - Instrumental;http://www.abidingradio.org/format.html;http://streams.abidingradio.org:7824/1 4 | Abiding Radio - Sacred;http://www.abidingradio.org/format.html;http://streams.abidingradio.org:7840/1 5 | Abiding Radio - Sesonal;http://www.abidingradio.org/format.html;http://streams.abidingradio.org:7844/1 6 | Chroma - Xmas;http://chromaradio.net;http://176.9.22.6:8076 7 | Got Radio - Xmas;http://www.gotradio.com;http://173.244.215.163:8560 8 | HookedOnRadio - Cool Christmas;http://hookedonradio.com;http://173.193.9.69:7380 9 | Radio Santa Claus;http://www.radiosantaclaus.com;http://75.126.107.126:9000 10 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Soundtrack & Movie.txt: -------------------------------------------------------------------------------- 1 | Energy - Soundtracks;http://www.energy.ch/webradios/musicinfos-detail/channel/energy-soundtrack-filmmusik-und-titelsongs-im-internet-hoeren/;http://energysoundtrack.ice.infomaniak.ch:80/energysoundtrack-high.mp3 2 | Klassik Radio Movie;http://www.klassikradio.de;http://62.27.87.92:8000/klassikradiomovie128/livestream.mp3 3 | ORSRADIO New Age;http://www.shoutcast.com/Internet-Radio/ORSRADIO;http://192.81.248.43:8016 4 | Radio FxTrailer;http://www.streamlicensing.com/stations/fxtrailer/livestream.html;http://stream-ch01-mp3-128.fxtrailer.com:9000/ 5 | -------------------------------------------------------------------------------- /Release/Win32/Radios/Talk.txt: -------------------------------------------------------------------------------- 1 | .977 - The Comedy Channel;http://www.977music.com;http://7639.live.streamtheworld.com:80/977_COMEDY_SC 2 | 106five.fm;http://106five.com;http://stereo.wavestreamer.com:7428/live 3 | 95.5_Metropolis.gr;http://www.metropolisradio.gr;http://radio.lancom.gr:8000/stream4 4 | ABC - Local Adelaide;http://www.abc.net.au/radio/listenlive.htm#directlinks;http://shoutmedia.abc.net.au:10452 5 | ABC - Local Brisbane;http://www.abc.net.au/radio/listenlive.htm#directlinks;http://shoutmedia.abc.net.au:10446/ 6 | ABC - Local Darwin;http://www.abc.net.au/radio/listenlive.htm#directlinks;http://shoutmedia.abc.net.au:10460 7 | ABC - Gold Coast;http://www.abc.net.au/radio/listenlive.htm#directlinks;http://shoutmedia.abc.net.au:10434 8 | ABC - Local Melbourne;http://www.abc.net.au/radio/listenlive.htm#directlinks;http://shoutmedia.abc.net.au:10450 9 | ABC - Local Perth;http://www.abc.net.au/radio/listenlive.htm#directlinks;http://shoutmedia.abc.net.au:10448 10 | ABC - Local Sidney;http://www.abc.net.au/radio/listenlive.htm#directlinks;http://shoutmedia.abc.net.au:10436 11 | ADR 101 Talk Station;http://alldigitalradionetwork.com;http://192.169.70.194:8102 12 | ADR 104 Laugh Out Loud;http://alldigitalradionetwork.com;http://192.169.70.194:8092 13 | Alex Jones;http://www.infowars.com;http://74.202.111.236:2500 14 | BCN - Comedy;http://www.bcnonline.com/;http://shoutcast.bcnonline.com:8181/ 15 | Bel RTL;http://www.rtl.be/belrtl;http://audiostream.rtl.be/belrtl128 16 | Buisness Fm Moscow;http://radio.bfm.ru/air.html;http://bfmstream.bfm.ru:8004/fm64 17 | Buisness Fm SPB;http://www.businessfm.spb.ru/;http://stream02.media.rambler.ru/businessfmspb128.mp3 18 | Canal Sur;http://www.canalsur.es/portal_rtva/web/pagina?seccion=555;http://198.27.68.112:9998 19 | Comedypipe Media Network;http://www.comedypipe.com;http://comedypipe.no-ip.biz:80/ 20 | DJFM Ukraine;http://www.;http://217.20.164.163:8010 21 | eDiveRadio;http://www.ediveradio.com;http://icecast4.play.cz/e-dive128.mp3 22 | France Inter;http://sites.radiofrance.fr/franceinter/accueil/;http://mp3.live.tv-radio.com/franceinter/all/franceinterhautdebit.mp3 23 | Free Talk Live;http://www.freetalklive.com/listen/live;http://high.freetalklive.com 24 | Gorod Fm;https://www.facebook.com/GorodFM;http://radio.gorodfm.ru:8000/gorodfm 25 | Humor Fm.ru;http://www.veseloeradio.ru;http://81.19.85.196:80/umor128.mp3 26 | Info Radio.hu;http://www.inforadio.hu;http://87.229.45.44:8400 27 | Insight Radio UK;http://www.insightradio.co.uk;http://185.14.85.162:8020 28 | Life Fm Australia;http://www.life.on.net;http://public-radio1.internode.on.net:8002/21 29 | Lyrebird Radio;http://lyrebirdradio.com;http://50.7.70.66:8282 30 | No Holds Barred Radio;http://www.shoutcast.com/Internet-Radio/no%20holds;http://162.213.196.53:8000 31 | Okitalk;http://www.okitalk.com;http://194.29.5.4:8020/stream/1/ 32 | Pure Fm 2 RTBF;http://www.rtbf.be/purefm;http://wr-pure2.ice.infomaniak.ch/wr-pure2-128.mp3 33 | Pure Fm RTBF;http://www.rtbf.be/purefm;http://purefm.ice.rtbf.be/purefm.mp3 34 | RAC 1 Barcelona;http://rac1.org;http://streaming3.radiocat.net 35 | RadioMv - Russian Christian;http://www.;http://65.19.173.132:2204 36 | Radio 538 Comedy;http://www.radio538.nl;http://82.201.100.10:8000/WEB21 37 | Radio Horeb;http://www.horeb.org/index.php?id=live_36;http://rs16.stream24.org:8000/horeb.mp3 38 | Radio Lumen (sk);http://www.lumen.sk;http://audio.lumen.sk:8000/live128.mp3 39 | Radio Mabou;http://www.radiomabou.net;http://67.228.177.153:8213/radiomabou 40 | Radio Radicale.it;http://www.radioradicale.it;http://live.radioradicale.it:80/live.mp3 41 | Radio Sport.cl;http://www.radiosport.cl;http://95.65.87.128/broadwave.mp3 42 | Slobodna Ludova Misia (sk);http://www.misia.sk/?locale=sk;http://206.190.136.212:7313/Live 43 | Social Crime Radio;http://socialcrime.com;http://209.105.232.220:8508/ 44 | Sporza.be;http://www.sporza.be/cm/sporza/radio;http://mp3.streampower.be/sporza-high 45 | SRo Radio Litera (sk);http://litera.rtvs.sk;http://live.slovakradio.sk:8000/Litera_256.mp3 46 | SRo Radio Slovensko (sk);http://slovensko.rtvs.sk;http://live.slovakradio.sk:8000/Slovensko_128.mp3 47 | The Breeze East Hampshire;http://easthampshire.thebreeze.com;http://war.str3am.com:8380 48 | TOK Fm.pl;http://www.tokfm.pl/Tokfm/0,0.html;http://gdansk1-1.radio.pionier.net.pl:8000/pl/tuba10-1.mp3 49 | Tom Leykis Show;http://blowmeuptom.com/;http://2633.live.streamtheworld.com:80/TOM_LEYKIS_SHOW_SC 50 | Voice of Russia - Eng;http://voiceofrussia.com;http://engserver.streamr.ru:8020/eng 51 | Voice of Russia - Fr;http://voiceofrussia.com;http://freserver.streamr.ru:8024/fre 52 | Voice of Russia - Ger;http://voiceofrussia.com;http://gerserver.streamr.ru:8023/ger 53 | Voice of Russia - US;http://voiceofrussia.com;http://usaserver.streamr.ru:8020/usa 54 | WHRV Public Media;http://www.whrv.org/home;http://whrv.mediaplayer.whro.org/128 55 | WHRV Voice;http://www.whrv.org/home;http://thewhrovoice.mediaplayer.whro.org/128 56 | WMFE;http://www.wmfe.org/site/PageServer;http://64.202.98.133:2030 57 | WNML- Sports Animal;http://www.sportsanimal99.com/staff.asp;http://2963.live.streamtheworld.com:80/WNMLAM_SC 58 | -------------------------------------------------------------------------------- /Release/Win32/changelog.txt: -------------------------------------------------------------------------------- 1 | --2.2.0 2 | -Added: [General] New UI layout 3 | -Added: [Music Player] 18 band equalizer with several presets 4 | -Added: [Music Player] Detailed file info program 5 | -Added: [Music Player] Playlist now has columns for title, album, artist and bitrate, channel, codec and samplerate 6 | -Added: [Music Player] Pressing previous button in shuffle mode will return to previous random song instead playing the next random song 7 | -Added: [Music Player] Added an option to enable/disable loading of already downloaded lyrics 8 | -Improved: [Music Player] Seperated options of loading and downloading lyric 9 | -Improved: [Radio Player] Usability by making radio playlist and playlist selection like music player 10 | -Fixed: [Music Player] Lyric list's width was not adjusted according to the content 11 | -Fixed: [Music Player] Queue list right-click menu options were not working 12 | -Fixed: [General] Improved search function results 13 | -Fixed: [General] Clicking on a taskbar button would make buttons disappear 14 | -Fixed: [Radio Player] Metatag related bugs 15 | -Updated: Bassmix to 2.4.8 16 | -Updated: BassOpus to 2.4.1.4 17 | -Updated: MediaInfo to 0.7.76 18 | -Updated: Tag libraries 19 | -Removed: Skin component 20 | 21 | --2.1.2 22 | -Added: [General] Many skins (over 100) 23 | -Added: [General] An option to specify playlist item text combination 24 | -Added: [Music player] Small buttons below the playlist for easier access to some functions 25 | -Fixed: [Music player] New playlists could overwrite the old ones in some cases 26 | -Fixed: [General] Blinking when changing a skin 27 | -Updated: Tag libraries 28 | -Updated: Skin library 29 | 30 | --2.1.1 31 | -Fixed: [General] Title text wasn't reset properly after resizing the window 32 | -Fixed: [Lyric Downloader] Extra text was displayed when downloaded from metrolyrics.com 33 | -Fixed: [General] A few small bugs 34 | -Updated: Tag libraries 35 | 36 | --2.1.0 37 | -Added: [Music player] An option to specify window title combination 38 | -Added: [Music player] An option to hide queue list 39 | -Added: [Radio player] Recording radio stations without encoding 40 | -Added: [General] Title text will scroll if it is too long 41 | -Added: [General] Some interface changes 42 | -Fixed: [Radio player] Lyric downloader didn't function on song change 43 | -Fixed: [General] Some controls were not skinned 44 | -Fixed: [General] Some interface bugs that appeared if skins were disabled 45 | -Fixed: [General] A few small bugs 46 | -Updated: Bass to 2.4.11 47 | 48 | --2.0 49 | -Added: Support for multiple playlists 50 | -Added: Support for skins 51 | -Added: Some interface changes 52 | -Added: An option to hide/show lyric panel 53 | -Added: New buttons and icons 54 | -Fixed: Taskbar overlay icon wasn't updated in radio mode 55 | -Fixed: Users could clear the playlist while adding files 56 | -Updated: BassFLAC to 2.4.2 57 | -Updated: WMA, Mp4 and APEv2 tag libraries 58 | 59 | --1.9 60 | -Added: Program now accepts file paths as parameters, adds them to playlist and starts playback 61 | -Added: Many Interface changes (thx to Alptekin) 62 | -Added: Taskbar overlay icon and thumbbuttons for Windows 7 and later (thx to Alptekin) 63 | -Improved: CPU usage is even lower now in most cases 64 | -Improved: Cover art loading performance 65 | -Fixed: Cover art loading could interfere with gapless playback in some PCs 66 | -Fixed: "No mapping for the Unicode char..." errors while downloading lyrics 67 | -Fixed: Queue list had no right click menu 68 | -Fixed: Position text and lyric box weren't reseted after stoping in some cases 69 | -Fixed: Couldn't load ppf playlist files (thx to Alptekin) 70 | -Fixed: Couldn't resume with play button (thx to Alptekin) 71 | -Updated: ID3v1 and ID3v2 libraries 72 | -Updated: MediaInfo to 0.7.71 73 | 74 | --1.8 75 | -Added: Support for external png, bmp and gif cover art files 76 | -Improved: Jpeg and png cover art display performance 77 | -Improved: Jpeg and png cover arts are now resized smoother 78 | -Fixed: Clearing the playlist didn't clear queue list 79 | -Fixed: Couldn't read artwork in some cases and showed cover art from previous file 80 | -Updated: Basswma to 2.4.5 81 | 82 | --1.7 83 | -Added: A new interface layout moving lyric out of tabs 84 | -Added: An option close search window when a result is selected to play (thx to Midas) 85 | -Added: Options to search songs in YouTube and Google 86 | -Added: Default lyric source is now batlyrics.net 87 | -Added: Icons to playback controls 88 | -Added: An animation to show that player is connecting to a radio 89 | -Fixed: Memory leaks 90 | -Fixed: Button to open radio recordings folder didn't function 91 | -Updated: BassEnc to 2.4.12 92 | -Updated: Ogg and WMA tag libs 93 | 94 | --1.6 95 | -Added: Radio recording to mp3, ogg vorbis, aac 96 | -Added: New lyric sources batlyrics.net and metrolyrics.com 97 | -Added: Option to select between lyric sources 98 | -Added: Lyric downloader now works for radio player too 99 | -Added: An option to specify playback buffer in ms 100 | -Added: Play count information is now stored in playlist and shown in the interface 101 | -Added: An option to enable/disable lyric download failure logging 102 | -Fixed: A playlist bug where there'd be an unnecessary horizontal scrollbar 103 | 104 | --1.5.1 105 | -Fixed: Double clicking a radio search result caused "Argument out of reach" error (thx to Midas) 106 | -Fixed: Selecting a radio search result didn't scroll to that station in radio list 107 | 108 | --1.5 109 | -Added: Queue in music playlist 110 | -Added: Radio favourites 111 | -Added: Add/remove radio stations 112 | -Added: Song number to playlist 113 | -Fixed: Player getting stuck when it reaches the end of the playlist 114 | -Fixed: Couldn't download lyric if title or artist contained "." 115 | -Fixed: Possible fix for access vialotion errors when closing the program 116 | -Fixed: Playlist color problem under dark classic Windows themes 117 | 118 | --1.4 119 | -Added: Gapless playback 120 | -Added: Lyric downloader 121 | -Added: Search function for radio station list 122 | -Added: Radio station info window (thx to Midas) 123 | -Improved: Lowered CPU usage significantly in some cases 124 | -Removed: Visualization 125 | 126 | --1.3 127 | -Added: Radio player 128 | -Added: Visualization 129 | -Added: A few interface changes 130 | -Fixed: Keyboard shortcuts for "Save Playlist" and "Stop" were the same 131 | 132 | --1.2 133 | -Added: Dragging items in the playlist 134 | -Added: Support for internal artwork 135 | -Added: An option to load external or internal artworks first 136 | -Added: Support for WAV files 137 | -Added: An option to delete selected files from the playlist 138 | -Added: Tray icon and tray menu 139 | -Added: Some shortcuts 140 | -Fixed: Program would stop working if user tried to play a non-existing file 141 | -Updated: MediaInfo to 0.7.69 142 | 143 | --1.1 144 | -Added: Support for speex, TAK and OptimFrog files 145 | -Added: An option to not to load cover art 146 | -Added: Smaller package size 147 | -Fixed: Unable to drag&drop audio files to playlist 148 | -Updated: FLAC, WacPack and Opus playback libraries 149 | -Updated: ID3v1 and ID3v2 tag libraries 150 | 151 | --1.0 152 | -First release -------------------------------------------------------------------------------- /Release/Win32/ico/1.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Release/Win32/ico/1.ico -------------------------------------------------------------------------------- /Release/Win32/ico/2.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Release/Win32/ico/2.ico -------------------------------------------------------------------------------- /Release/Win32/ico/3.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Release/Win32/ico/3.ico -------------------------------------------------------------------------------- /Release/Win32/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Release/Win32/logo.png -------------------------------------------------------------------------------- /Release/Win32/radios.txt: -------------------------------------------------------------------------------- 1 | All 2 | Others 3 | 60 s & 70 s 4 | 80 s & 90 s 5 | Alternative 6 | Ambient & Chill 7 | Anime 8 | Black & Rap 9 | Blues & Love 10 | Classical 11 | Club 12 | Children 13 | Country 14 | Dance & Pop 15 | Electronic 16 | Folk & Latino 17 | Gothic 18 | Hits 19 | Jazz & Soul 20 | Reggae 21 | Retro 22 | Rock & Metal 23 | Talk 24 | Schlager 25 | Soundtrack & Movie 26 | Season 27 | User Favourites 28 | Imported 29 | -------------------------------------------------------------------------------- /Release/Win32/skins.txt: -------------------------------------------------------------------------------- 1 | None 2 | Acryl.asz 3 | Afterburner.asz 4 | Air.asz 5 | AlterMetro.asz 6 | Aluminium.asz 7 | Android OS.asz 8 | AutumnSky.asz 9 | Beijing Ext.asz 10 | Beijing.asz 11 | Black Box.asz 12 | BlueGauze.asz 13 | BlueGlass.asz 14 | BlueIce.asz 15 | BluePlastic.asz 16 | Calcium.asz 17 | Cappuccino.asz 18 | Cappuccino_contrast.asz 19 | Cold.asz 20 | DarkGlass.asz 21 | DarkMetro.asz 22 | DarkMetro_contrast.asz 23 | Deep.asz 24 | DeepPurple.asz 25 | Desert.asz 26 | Elegant.asz 27 | Emerald.asz 28 | FalloutStyle.asz 29 | Flatline.asz 30 | FM.asz 31 | Garnet II.asz 32 | Golden.asz 33 | GPlus.asz 34 | Graphite.asz 35 | GrayPlastic.asz 36 | HeroesStyle.asz 37 | iOS dark.asz 38 | iOS4.asz 39 | KaraKum.asz 40 | Ledenets.asz 41 | Light Board.asz 42 | LikeOperaStyle.asz 43 | LongHorn.asz 44 | Lucky.asz 45 | Lunar Base.asz 46 | MacMetal.asz 47 | MacOS.asz 48 | MacOS2.asz 49 | Matrix.asz 50 | Matrix_contrast.asz 51 | MetroUI.asz 52 | Mint.asz 53 | Moonlight.asz 54 | Nautilus.asz 55 | Nautilus_contrast.asz 56 | NeonNight.asz 57 | Neutral.asz 58 | Neutral2.asz 59 | Neutral3.asz 60 | Neutral4.asz 61 | NextAlpha.asz 62 | NextAlpha2.asz 63 | Notes Leather.asz 64 | Notes Sport.asz 65 | Notes Wood.asz 66 | Office12Style.asz 67 | Office2003.asz 68 | Office2007 Black.asz 69 | Office2007 Blue.asz 70 | Office2010 Blue.asz 71 | Office2013 Blue.asz 72 | Office2013 Green.asz 73 | Office2013 Red.asz 74 | Opus.asz 75 | Pulsar.asz 76 | Retro.asz 77 | Rhombus.asz 78 | Sand.asz 79 | Sapphire.asz 80 | Shine.asz 81 | Smoky.asz 82 | Snow Leopard.asz 83 | SoapSky - Blue.asz 84 | SoapSky - Lime.asz 85 | Spring Willow.asz 86 | Steam.asz 87 | Steam2.asz 88 | Subway.asz 89 | Terminal4bit.asz 90 | Terminal4bit_contrast.asz 91 | TheFrog.asz 92 | Topaz.asz 93 | Toxic.asz 94 | TV-b.asz 95 | Ubuntu.asz 96 | UnderWater.asz 97 | Vienna Ext.asz 98 | Vienna.asz 99 | Vista.asz 100 | WEB.asz 101 | WEB2.asz 102 | Windows 8.asz 103 | Winter2003.asz 104 | Winter2011.asz 105 | WLM.asz 106 | WMP 2008.asz 107 | WMP11.asz 108 | Wood.asz 109 | WOT.asz 110 | XPLuna.asz 111 | XPSilver.asz 112 | Zest.asz 113 | Windows 10.asz -------------------------------------------------------------------------------- /Release/Win64/EQ.txt: -------------------------------------------------------------------------------- 1 | Flat 2 | Ballad 3 | Classical 4 | Club 5 | Dance 6 | Full Bass 7 | Full Bass & Treble 8 | Full Treble 9 | Headphone 10 | Heavy Metal 11 | Jazz 12 | Large Hall 13 | Live 14 | Party 15 | Pop 16 | Rap 17 | Reggae 18 | Rock 19 | Ska 20 | Soft 21 | Soft Rock 22 | Techno 23 | Vocal -------------------------------------------------------------------------------- /Release/Win64/EQ/Ballad.txt: -------------------------------------------------------------------------------- 1 | -474 2 | -316 3 | 0 4 | 158 5 | 316 6 | 395 7 | 474 8 | 395 9 | 316 10 | 237 11 | 0 12 | -158 13 | -316 14 | -316 15 | -316 16 | -420 17 | 158 18 | -474 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Classical.txt: -------------------------------------------------------------------------------- 1 | 0 2 | 0 3 | 0 4 | 0 5 | 0 6 | 0 7 | 0 8 | 0 9 | 0 10 | 0 11 | 0 12 | 0 13 | 0 14 | -286 15 | -583 16 | -583 17 | -600 18 | -810 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Club.txt: -------------------------------------------------------------------------------- 1 | 0 2 | 0 3 | 0 4 | 90 5 | 180 6 | 210 7 | 240 8 | 330 9 | 420 10 | 450 11 | 360 12 | 240 13 | 210 14 | 150 15 | 90 16 | 0 17 | 0 18 | 0 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Dance.txt: -------------------------------------------------------------------------------- 1 | 900 2 | 660 3 | 480 4 | 210 5 | 60 6 | 0 7 | 0 8 | -120 9 | -210 10 | -270 11 | -390 12 | -420 13 | -420 14 | -420 15 | -450 16 | -420 17 | 0 18 | 0 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Flat.txt: -------------------------------------------------------------------------------- 1 | 0 2 | 0 3 | 0 4 | 0 5 | 0 6 | 0 7 | 0 8 | 0 9 | 0 10 | 0 11 | 0 12 | 0 13 | 0 14 | 0 15 | 0 16 | 0 17 | 0 18 | 0 -------------------------------------------------------------------------------- /Release/Win64/EQ/Full Bass & Treble.txt: -------------------------------------------------------------------------------- 1 | 741 2 | 720 3 | 720 4 | 660 5 | 390 6 | 0 7 | -605 8 | -210 9 | -150 10 | 0 11 | 120 12 | 210 13 | 420 14 | 600 15 | 780 16 | 840 17 | 921 18 | 921 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Full Bass.txt: -------------------------------------------------------------------------------- 1 | 741 2 | 720 3 | 720 4 | 720 5 | 570 6 | 420 7 | 90 8 | -30 9 | -180 10 | -300 11 | -420 12 | -450 13 | -510 14 | -600 15 | -660 16 | -720 17 | -840 18 | -898 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Full Treble.txt: -------------------------------------------------------------------------------- 1 | -794 2 | -789 3 | -789 4 | -782 5 | -660 6 | -600 7 | -455 8 | -240 9 | 60 10 | 270 11 | 510 12 | 810 13 | 1050 14 | 1230 15 | 1290 16 | 1290 17 | 1311 18 | 1293 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Headphone.txt: -------------------------------------------------------------------------------- 1 | 670 2 | 670 3 | 670 4 | 670 5 | 660 6 | 470 7 | 240 8 | -50 9 | -230 10 | -170 11 | -120 12 | -40 13 | 70 14 | 160 15 | 260 16 | 390 17 | 550 18 | 900 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Heavy Metal.txt: -------------------------------------------------------------------------------- 1 | -207 2 | 237 3 | 395 4 | 300 5 | 0 6 | -390 7 | -485 8 | -510 9 | -480 10 | -480 11 | -240 12 | -90 13 | 60 14 | 270 15 | 570 16 | 660 17 | 673 18 | 248 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Jazz.txt: -------------------------------------------------------------------------------- 1 | 303 2 | 627 3 | 515 4 | 360 5 | 180 6 | -390 7 | -485 8 | -510 9 | -210 10 | 120 11 | 450 12 | 900 13 | 300 14 | -180 15 | -450 16 | -240 17 | -47 18 | 248 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Large hall.txt: -------------------------------------------------------------------------------- 1 | 670 2 | 670 3 | 670 4 | 670 5 | 660 6 | 490 7 | 360 8 | 360 9 | 270 10 | 0 11 | -60 12 | -160 13 | -290 14 | -320 15 | -320 16 | -320 17 | -320 18 | 0 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Live.txt: -------------------------------------------------------------------------------- 1 | -420 2 | -300 3 | -150 4 | 330 5 | 450 6 | 510 7 | 480 8 | 480 9 | 510 10 | 420 11 | 360 12 | 300 13 | 240 14 | 240 15 | 210 16 | 210 17 | 180 18 | 150 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Party.txt: -------------------------------------------------------------------------------- 1 | 540 2 | 540 3 | 540 4 | 0 5 | 0 6 | 0 7 | 0 8 | 0 9 | 0 10 | 0 11 | 0 12 | 0 13 | 0 14 | 0 15 | 0 16 | 0 17 | 540 18 | 542 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Pop.txt: -------------------------------------------------------------------------------- 1 | -158 2 | 60 3 | 390 4 | 540 5 | 553 6 | 450 7 | 210 8 | 90 9 | -60 10 | -150 11 | -150 12 | -180 13 | -210 14 | -210 15 | -270 16 | -210 17 | -210 18 | -30 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Rap.txt: -------------------------------------------------------------------------------- 1 | 0 2 | 420 3 | 534 4 | 270 5 | 0 6 | -390 7 | -450 8 | -330 9 | 30 10 | 150 11 | -180 12 | -540 13 | -60 14 | 270 15 | 450 16 | 510 17 | 240 18 | 0 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Reggae.txt: -------------------------------------------------------------------------------- 1 | 0 2 | 0 3 | 0 4 | 0 5 | 0 6 | -30 7 | -100 8 | -260 9 | -270 10 | 0 11 | 90 12 | 220 13 | 400 14 | 440 15 | 440 16 | 290 17 | 60 18 | 0 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Rock.txt: -------------------------------------------------------------------------------- 1 | 540 2 | 450 3 | 360 4 | -365 5 | -630 6 | -660 7 | -360 8 | -270 9 | -30 10 | 210 11 | 450 12 | 600 13 | 690 14 | 750 15 | 780 16 | 780 17 | 780 18 | 810 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Ska.txt: -------------------------------------------------------------------------------- 1 | -130 2 | -170 3 | -210 4 | -260 5 | -320 6 | -300 7 | -260 8 | -140 9 | 20 10 | 250 11 | 270 12 | 310 13 | 350 14 | 420 15 | 520 16 | 560 17 | 580 18 | 590 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Soft Rock.txt: -------------------------------------------------------------------------------- 1 | 180 2 | 210 3 | 210 4 | 205 5 | 90 6 | -30 7 | -150 8 | -270 9 | -450 10 | -390 11 | -450 12 | -390 13 | -390 14 | -210 15 | 0 16 | 240 17 | 540 18 | 810 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Soft.txt: -------------------------------------------------------------------------------- 1 | 390 2 | 240 3 | 90 4 | 55 5 | -180 6 | -300 7 | -210 8 | -150 9 | 60 10 | 210 11 | 450 12 | 600 13 | 690 14 | 750 15 | 810 16 | 810 17 | 840 18 | 810 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Techno.txt: -------------------------------------------------------------------------------- 1 | 510 2 | 480 3 | 450 4 | 410 5 | 350 6 | 150 7 | -50 8 | -240 9 | -350 10 | -320 11 | -260 12 | -160 13 | -30 14 | 160 15 | 420 16 | 520 17 | 580 18 | 550 19 | -------------------------------------------------------------------------------- /Release/Win64/EQ/Vocal.txt: -------------------------------------------------------------------------------- 1 | -480 2 | -450 3 | -390 4 | -210 5 | -30 6 | 120 7 | 180 8 | 360 9 | 660 10 | 900 11 | 690 12 | 450 13 | 240 14 | 30 15 | -90 16 | -210 17 | -270 18 | -300 19 | -------------------------------------------------------------------------------- /Release/Win64/changelog.txt: -------------------------------------------------------------------------------- 1 | --2.3.0 2 | -Added: [Music Player] Option to select audio device 3 | -Added: [UI] A progress window for adding files 4 | -Fixed: [UI] Minor problems 5 | 6 | --2.2.0 7 | -Added: [General] New UI layout 8 | -Added: [Music Player] 18 band equalizer with several presets 9 | -Added: [Music Player] Detailed file info program 10 | -Added: [Music Player] Playlist now has columns for title, album, artist and bitrate, channel, codec and samplerate 11 | -Added: [Music Player] Pressing previous button in shuffle mode will return to previous random song instead playing the next random song 12 | -Added: [Music Player] Added an option to enable/disable loading of already downloaded lyrics 13 | -Added: [UI] Shuffle list 14 | -Improved: [Music Player] Seperated options of loading and downloading lyric 15 | -Improved: [Radio Player] Usability by making radio playlist and playlist selection like music player 16 | -Fixed: [Music Player] Lyric list's width was not adjusted according to the content 17 | -Fixed: [Music Player] Queue list right-click menu options were not working 18 | -Fixed: [General] Improved search function results 19 | -Fixed: [General] Clicking on a taskbar button would make buttons disappear 20 | -Fixed: [Radio Player] Metatag related bugs 21 | -Updated: Bassmix to 2.4.8 22 | -Updated: BassOpus to 2.4.1.10 23 | -Updated: MediaInfo to 0.7.79 24 | -Updated: Tag libraries 25 | -Updated: Last.fm scrobbler library 26 | -Removed: Skin component 27 | 28 | --2.1.2 29 | -Added: [General] Many skins (over 100) 30 | -Added: [General] An option to specify playlist item text combination 31 | -Added: [Music player] Small buttons below the playlist for easier access to some functions 32 | -Fixed: [Music player] New playlists could overwrite the old ones in some cases 33 | -Fixed: [General] Blinking when changing a skin 34 | -Updated: Tag libraries 35 | -Updated: Skin library 36 | 37 | --2.1.1 38 | -Fixed: [General] Title text wasn't reset properly after resizing the window 39 | -Fixed: [Lyric Downloader] Extra text was displayed when downloaded from metrolyrics.com 40 | -Fixed: [General] A few small bugs 41 | -Updated: Tag libraries 42 | 43 | --2.1.0 44 | -Added: [Music player] An option to specify window title combination 45 | -Added: [Music player] An option to hide queue list 46 | -Added: [Radio player] Recording radio stations without encoding 47 | -Added: [General] Title text will scroll if it is too long 48 | -Added: [General] Some interface changes 49 | -Fixed: [Radio player] Lyric downloader didn't function on song change 50 | -Fixed: [General] Some controls were not skinned 51 | -Fixed: [General] Some interface bugs that appeared if skins were disabled 52 | -Fixed: [General] A few small bugs 53 | -Updated: Bass to 2.4.11 54 | 55 | --2.0 56 | -Added: Support for multiple playlists 57 | -Added: Support for skins 58 | -Added: Some interface changes 59 | -Added: An option to hide/show lyric panel 60 | -Added: New buttons and icons 61 | -Fixed: Taskbar overlay icon wasn't updated in radio mode 62 | -Fixed: Users could clear the playlist while adding files 63 | -Updated: BassFLAC to 2.4.2 64 | -Updated: WMA, Mp4 and APEv2 tag libraries 65 | 66 | --1.9 67 | -Added: Program now accepts file paths as parameters, adds them to playlist and starts playback 68 | -Added: Many Interface changes (thx to Alptekin) 69 | -Added: Taskbar overlay icon and thumbbuttons for Windows 7 and later (thx to Alptekin) 70 | -Improved: CPU usage is even lower now in most cases 71 | -Improved: Cover art loading performance 72 | -Fixed: Cover art loading could interfere with gapless playback in some PCs 73 | -Fixed: "No mapping for the Unicode char..." errors while downloading lyrics 74 | -Fixed: Queue list had no right click menu 75 | -Fixed: Position text and lyric box weren't reseted after stoping in some cases 76 | -Fixed: Couldn't load ppf playlist files (thx to Alptekin) 77 | -Fixed: Couldn't resume with play button (thx to Alptekin) 78 | -Updated: ID3v1 and ID3v2 libraries 79 | -Updated: MediaInfo to 0.7.71 80 | 81 | --1.8 82 | -Added: Support for external png, bmp and gif cover art files 83 | -Improved: Jpeg and png cover art display performance 84 | -Improved: Jpeg and png cover arts are now resized smoother 85 | -Fixed: Clearing the playlist didn't clear queue list 86 | -Fixed: Couldn't read artwork in some cases and showed cover art from previous file 87 | -Updated: Basswma to 2.4.5 88 | 89 | --1.7 90 | -Added: A new interface layout moving lyric out of tabs 91 | -Added: An option close search window when a result is selected to play (thx to Midas) 92 | -Added: Options to search songs in YouTube and Google 93 | -Added: Default lyric source is now batlyrics.net 94 | -Added: Icons to playback controls 95 | -Added: An animation to show that player is connecting to a radio 96 | -Fixed: Memory leaks 97 | -Fixed: Button to open radio recordings folder didn't function 98 | -Updated: BassEnc to 2.4.12 99 | -Updated: Ogg and WMA tag libs 100 | 101 | --1.6 102 | -Added: Radio recording to mp3, ogg vorbis, aac 103 | -Added: New lyric sources batlyrics.net and metrolyrics.com 104 | -Added: Option to select between lyric sources 105 | -Added: Lyric downloader now works for radio player too 106 | -Added: An option to specify playback buffer in ms 107 | -Added: Play count information is now stored in playlist and shown in the interface 108 | -Added: An option to enable/disable lyric download failure logging 109 | -Fixed: A playlist bug where there'd be an unnecessary horizontal scrollbar 110 | 111 | --1.5.1 112 | -Fixed: Double clicking a radio search result caused "Argument out of reach" error (thx to Midas) 113 | -Fixed: Selecting a radio search result didn't scroll to that station in radio list 114 | 115 | --1.5 116 | -Added: Queue in music playlist 117 | -Added: Radio favourites 118 | -Added: Add/remove radio stations 119 | -Added: Song number to playlist 120 | -Fixed: Player getting stuck when it reaches the end of the playlist 121 | -Fixed: Couldn't download lyric if title or artist contained "." 122 | -Fixed: Possible fix for access vialotion errors when closing the program 123 | -Fixed: Playlist color problem under dark classic Windows themes 124 | 125 | --1.4 126 | -Added: Gapless playback 127 | -Added: Lyric downloader 128 | -Added: Search function for radio station list 129 | -Added: Radio station info window (thx to Midas) 130 | -Improved: Lowered CPU usage significantly in some cases 131 | -Removed: Visualization 132 | 133 | --1.3 134 | -Added: Radio player 135 | -Added: Visualization 136 | -Added: A few interface changes 137 | -Fixed: Keyboard shortcuts for "Save Playlist" and "Stop" were the same 138 | 139 | --1.2 140 | -Added: Dragging items in the playlist 141 | -Added: Support for internal artwork 142 | -Added: An option to load external or internal artworks first 143 | -Added: Support for WAV files 144 | -Added: An option to delete selected files from the playlist 145 | -Added: Tray icon and tray menu 146 | -Added: Some shortcuts 147 | -Fixed: Program would stop working if user tried to play a non-existing file 148 | -Updated: MediaInfo to 0.7.69 149 | 150 | --1.1 151 | -Added: Support for speex, TAK and OptimFrog files 152 | -Added: An option to not to load cover art 153 | -Added: Smaller package size 154 | -Fixed: Unable to drag&drop audio files to playlist 155 | -Updated: FLAC, WacPack and Opus playback libraries 156 | -Updated: ID3v1 and ID3v2 tag libraries 157 | 158 | --1.0 159 | -First release -------------------------------------------------------------------------------- /Release/Win64/radios.txt: -------------------------------------------------------------------------------- 1 | All 2 | Others 3 | 60 s & 70 s 4 | 80 s & 90 s 5 | Alternative 6 | Ambient & Chill 7 | Anime 8 | Black & Rap 9 | Blues & Love 10 | Classical 11 | Club 12 | Children 13 | Country 14 | Dance & Pop 15 | Electronic 16 | Folk & Latino 17 | Gothic 18 | Hits 19 | Jazz & Soul 20 | Reggae 21 | Retro 22 | Rock & Metal 23 | Talk 24 | Schlager 25 | Soundtrack & Movie 26 | Season 27 | User Favourites 28 | Imported 29 | -------------------------------------------------------------------------------- /TFileInfo.dpr: -------------------------------------------------------------------------------- 1 | program TFileInfo; 2 | 3 | uses 4 | madExcept, 5 | madLinkDisAsm, 6 | madListHardware, 7 | madListProcesses, 8 | madListModules, 9 | Vcl.Forms, 10 | UnitMain in 'TFileInfo\UnitMain.pas' {MainForm}, 11 | MediaInfoDLL in 'Units\Others\MediaInfoDLL.pas', 12 | UnitAbout in 'TFileInfo\UnitAbout.pas' {AboutForm}; 13 | 14 | {$R *.res} 15 | 16 | begin 17 | Application.Initialize; 18 | Application.MainFormOnTaskbar := True; 19 | Application.CreateForm(TMainForm, MainForm); 20 | Application.CreateForm(TAboutForm, AboutForm); 21 | Application.Run; 22 | end. 23 | -------------------------------------------------------------------------------- /TFileInfo/UnitAbout.dfm: -------------------------------------------------------------------------------- 1 | object AboutForm: TAboutForm 2 | Left = 0 3 | Top = 0 4 | BorderStyle = bsToolWindow 5 | Caption = 'About' 6 | ClientHeight = 90 7 | ClientWidth = 258 8 | Color = clBtnFace 9 | DoubleBuffered = True 10 | Font.Charset = DEFAULT_CHARSET 11 | Font.Color = clWindowText 12 | Font.Height = -11 13 | Font.Name = 'Tahoma' 14 | Font.Style = [] 15 | OldCreateOrder = False 16 | Position = poMainFormCenter 17 | OnClose = FormClose 18 | DesignSize = ( 19 | 258 20 | 90) 21 | PixelsPerInch = 96 22 | TextHeight = 13 23 | object Label1: TLabel 24 | Left = 0 25 | Top = 0 26 | Width = 258 27 | Height = 13 28 | Align = alTop 29 | Alignment = taCenter 30 | Caption = 'TFileInfo 1.0' 31 | ExplicitWidth = 61 32 | end 33 | object Label2: TLabel 34 | Left = 0 35 | Top = 13 36 | Width = 258 37 | Height = 13 38 | Align = alTop 39 | Alignment = taCenter 40 | Caption = '(C) 2015 - ozok26@gmail.com' 41 | ExplicitWidth = 143 42 | end 43 | object Label3: TLabel 44 | Left = 0 45 | Top = 26 46 | Width = 258 47 | Height = 13 48 | Align = alTop 49 | Alignment = taCenter 50 | Caption = 'ozok26.com' 51 | ExplicitWidth = 57 52 | end 53 | object Button4: TButton 54 | Left = 8 55 | Top = 57 56 | Width = 75 57 | Height = 25 58 | Anchors = [akLeft, akBottom] 59 | Caption = 'Home' 60 | TabOrder = 0 61 | OnClick = Button4Click 62 | ExplicitTop = 136 63 | end 64 | object Button1: TButton 65 | Left = 175 66 | Top = 57 67 | Width = 75 68 | Height = 25 69 | Anchors = [akRight, akBottom] 70 | Caption = 'Close' 71 | TabOrder = 1 72 | OnClick = Button1Click 73 | ExplicitLeft = 274 74 | ExplicitTop = 136 75 | end 76 | object Button2: TButton 77 | Left = 89 78 | Top = 57 79 | Width = 75 80 | Height = 25 81 | Anchors = [akLeft, akBottom] 82 | Caption = 'Donate' 83 | TabOrder = 2 84 | OnClick = Button2Click 85 | ExplicitTop = 136 86 | end 87 | end 88 | -------------------------------------------------------------------------------- /TFileInfo/UnitAbout.pas: -------------------------------------------------------------------------------- 1 | unit UnitAbout; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, 7 | Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Winapi.ShellAPI; 8 | 9 | type 10 | TAboutForm = class(TForm) 11 | Label1: TLabel; 12 | Label2: TLabel; 13 | Label3: TLabel; 14 | Button4: TButton; 15 | Button1: TButton; 16 | Button2: TButton; 17 | procedure Button4Click(Sender: TObject); 18 | procedure Button1Click(Sender: TObject); 19 | procedure Button2Click(Sender: TObject); 20 | procedure FormClose(Sender: TObject; var Action: TCloseAction); 21 | private 22 | { Private declarations } 23 | public 24 | { Public declarations } 25 | end; 26 | 27 | var 28 | AboutForm: TAboutForm; 29 | 30 | implementation 31 | 32 | {$R *.dfm} 33 | 34 | uses UnitMain; 35 | 36 | procedure TAboutForm.Button1Click(Sender: TObject); 37 | begin 38 | Close; 39 | end; 40 | 41 | procedure TAboutForm.Button2Click(Sender: TObject); 42 | begin 43 | ShellExecute(0, 'open', 'https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZFWGU898KGWE4', nil, nil, SW_SHOWNORMAL); 44 | end; 45 | 46 | procedure TAboutForm.Button4Click(Sender: TObject); 47 | begin 48 | ShellExecute(0, 'open', 'http://www.ozok26.com/tflenfo-12', nil, nil, SW_SHOWNORMAL); 49 | end; 50 | 51 | procedure TAboutForm.FormClose(Sender: TObject; var Action: TCloseAction); 52 | begin 53 | MainForm.Enabled := True; 54 | MainForm.BringToFront; 55 | end; 56 | 57 | end. 58 | 59 | -------------------------------------------------------------------------------- /TFileInfo/UnitMain.dfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'TFileInfo' 5 | ClientHeight = 628 6 | ClientWidth = 756 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | Position = poScreenCenter 15 | OnClose = FormClose 16 | OnCreate = FormCreate 17 | OnDestroy = FormDestroy 18 | OnResize = FormResize 19 | OnShow = FormShow 20 | DesignSize = ( 21 | 756 22 | 628) 23 | PixelsPerInch = 96 24 | TextHeight = 13 25 | object Label1: TLabel 26 | Left = 8 27 | Top = 38 28 | Width = 65 29 | Height = 13 30 | Caption = 'Display Type:' 31 | end 32 | object sButton1: TButton 33 | Left = 673 34 | Top = 595 35 | Width = 75 36 | Height = 25 37 | Anchors = [akRight, akBottom] 38 | Caption = 'Close' 39 | TabOrder = 1 40 | OnClick = sButton1Click 41 | end 42 | object ExportBtn: TButton 43 | Left = 8 44 | Top = 595 45 | Width = 75 46 | Height = 25 47 | Anchors = [akLeft, akBottom] 48 | Caption = 'Export' 49 | TabOrder = 0 50 | OnClick = ExportBtnClick 51 | end 52 | object FilePathEdit: TJvFilenameEdit 53 | Left = 8 54 | Top = 8 55 | Width = 740 56 | Height = 21 57 | OnAfterDialog = FilePathEditAfterDialog 58 | Anchors = [akLeft, akTop, akRight] 59 | TabOrder = 2 60 | Text = '' 61 | end 62 | object DisplayModeList: TComboBox 63 | Left = 79 64 | Top = 35 65 | Width = 186 66 | Height = 21 67 | Style = csDropDownList 68 | ItemIndex = 0 69 | TabOrder = 3 70 | Text = 'Field - Value List (Default)' 71 | OnChange = DisplayModeListChange 72 | Items.Strings = ( 73 | 'Field - Value List (Default)' 74 | 'Plain Text List' 75 | 'Tree View') 76 | end 77 | object FullInfoModeBtn: TCheckBox 78 | Left = 651 79 | Top = 39 80 | Width = 97 81 | Height = 17 82 | Anchors = [akTop, akRight] 83 | Caption = 'Full info mode' 84 | TabOrder = 4 85 | OnClick = FullInfoModeBtnClick 86 | end 87 | object DisplayPages: TPageControl 88 | Left = 8 89 | Top = 57 90 | Width = 740 91 | Height = 532 92 | ActivePage = TabSheet3 93 | Anchors = [akLeft, akTop, akRight, akBottom] 94 | Style = tsFlatButtons 95 | TabOrder = 5 96 | object TabSheet1: TTabSheet 97 | Caption = 'TabSheet1' 98 | object InfoList: TListView 99 | Left = 0 100 | Top = 0 101 | Width = 732 102 | Height = 501 103 | Align = alClient 104 | Columns = < 105 | item 106 | Caption = 'Field' 107 | end 108 | item 109 | Caption = 'Value' 110 | end> 111 | Font.Charset = DEFAULT_CHARSET 112 | Font.Color = clWindowText 113 | Font.Height = -11 114 | Font.Name = 'Tahoma' 115 | Font.Style = [] 116 | ReadOnly = True 117 | RowSelect = True 118 | ParentFont = False 119 | TabOrder = 0 120 | ViewStyle = vsReport 121 | OnAdvancedCustomDrawItem = InfoListAdvancedCustomDrawItem 122 | end 123 | end 124 | object TabSheet2: TTabSheet 125 | Caption = 'TabSheet2' 126 | ImageIndex = 1 127 | object InfoMemo: TMemo 128 | Left = 0 129 | Top = 0 130 | Width = 732 131 | Height = 501 132 | Align = alClient 133 | ReadOnly = True 134 | ScrollBars = ssHorizontal 135 | TabOrder = 0 136 | end 137 | end 138 | object TabSheet3: TTabSheet 139 | Caption = 'TabSheet3' 140 | ImageIndex = 2 141 | object InfoTree: TTreeView 142 | Left = 0 143 | Top = 0 144 | Width = 732 145 | Height = 501 146 | Align = alClient 147 | Indent = 19 148 | ReadOnly = True 149 | RightClickSelect = True 150 | RowSelect = True 151 | TabOrder = 0 152 | end 153 | end 154 | end 155 | object Button1: TButton 156 | Left = 89 157 | Top = 595 158 | Width = 160 159 | Height = 25 160 | Anchors = [akLeft, akBottom] 161 | Caption = 'Register to right click menu' 162 | TabOrder = 6 163 | OnClick = Button1Click 164 | end 165 | object Button2: TButton 166 | Left = 255 167 | Top = 595 168 | Width = 160 169 | Height = 25 170 | Anchors = [akLeft, akBottom] 171 | Caption = 'Unregister from right click menu' 172 | TabOrder = 7 173 | OnClick = Button2Click 174 | end 175 | object Button3: TButton 176 | Left = 421 177 | Top = 595 178 | Width = 75 179 | Height = 25 180 | Anchors = [akLeft, akBottom] 181 | Caption = 'About' 182 | TabOrder = 8 183 | OnClick = Button3Click 184 | end 185 | object Button4: TButton 186 | Left = 502 187 | Top = 595 188 | Width = 75 189 | Height = 25 190 | Anchors = [akLeft, akBottom] 191 | Caption = 'Home' 192 | TabOrder = 9 193 | OnClick = Button4Click 194 | end 195 | object JvDragDrop1: TJvDragDrop 196 | DropTarget = Owner 197 | OnDrop = JvDragDrop1Drop 198 | Left = 128 199 | Top = 136 200 | end 201 | object ExportDialog: TSaveDialog 202 | Filter = 'Text Files|*.txt|CSV Files|*.csv' 203 | Options = [ofOverwritePrompt, ofHideReadOnly, ofEnableSizing] 204 | Left = 48 205 | Top = 136 206 | end 207 | object Info: TJvComputerInfoEx 208 | Left = 228 209 | Top = 132 210 | end 211 | object UpdateChecker: TJvHttpUrlGrabber 212 | FileName = 'output.txt' 213 | OutputMode = omStream 214 | Agent = 'JEDI-VCL' 215 | Port = 0 216 | ProxyAddresses = 'proxyserver' 217 | ProxyIgnoreList = '' 218 | OnDoneStream = UpdateCheckerDoneStream 219 | Left = 387 220 | Top = 138 221 | end 222 | object UpdateThread: TJvThread 223 | Exclusive = True 224 | MaxCount = 0 225 | RunOnCreate = True 226 | FreeOnTerminate = True 227 | OnExecute = UpdateThreadExecute 228 | Left = 304 229 | Top = 136 230 | end 231 | end 232 | -------------------------------------------------------------------------------- /TagEditor_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/TagEditor_Icon.ico -------------------------------------------------------------------------------- /Types/CommonTypes.pas: -------------------------------------------------------------------------------- 1 | unit CommonTypes; 2 | 3 | interface 4 | 5 | uses 6 | Classes, System.Generics.Collections; 7 | 8 | type 9 | TPlaybackType = (music = 0, radio = 1); 10 | 11 | type 12 | TCurrentItemInfo = packed record 13 | // ItemIndex: integer; 14 | FullFileName: string; 15 | DurationBass: int64; 16 | DurationAsSecInt: Integer; 17 | InfoStr: string; 18 | end; 19 | 20 | type 21 | TRadioRecordInfo = record 22 | FileName: string; 23 | Title: string; 24 | Artist: string; 25 | end; 26 | 27 | implementation 28 | 29 | end. 30 | 31 | 32 | -------------------------------------------------------------------------------- /Types/Playlist.pas: -------------------------------------------------------------------------------- 1 | unit Playlist; 2 | 3 | interface 4 | 5 | uses 6 | Classes, Generics.Collections; 7 | 8 | type 9 | TPlaylistFile = class 10 | Name, PlaylistFile: string; 11 | CurrentItemIndex: integer; 12 | end; 13 | 14 | TPlaylistFiles = TList; 15 | 16 | implementation 17 | 18 | end. 19 | 20 | 21 | -------------------------------------------------------------------------------- /Types/Radiolist.pas: -------------------------------------------------------------------------------- 1 | unit Radiolist; 2 | 3 | interface 4 | 5 | uses 6 | Classes, Generics.Collections; 7 | 8 | type 9 | TRadioStation = packed record 10 | Name: string; 11 | URL: Ansistring; 12 | Web: string; 13 | end; 14 | 15 | TRadioList = TList; 16 | 17 | implementation 18 | 19 | end. 20 | 21 | 22 | -------------------------------------------------------------------------------- /Types/VisTypes.pas: -------------------------------------------------------------------------------- 1 | unit VisTypes; 2 | 3 | interface 4 | 5 | type 6 | // TFFTData = array [0 .. 512] of Single; 7 | TFFTData = array[0..256] of Single; 8 | 9 | implementation 10 | 11 | end. 12 | -------------------------------------------------------------------------------- /Units/Artwork/ArtworkInfo.pas: -------------------------------------------------------------------------------- 1 | { * 2 | * Copyright (C) 2014-2017 ozok 3 | * 4 | * This file is part of OooPlayer. 5 | * 6 | * OooPlayer is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * OooPlayer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with OooPlayer. If not, see . 18 | * 19 | * } 20 | unit ArtworkInfo; 21 | 22 | interface 23 | 24 | uses 25 | Classes, Windows, SysUtils, Messages, StrUtils, TagTypes, MediaInfoDll; 26 | 27 | type 28 | TArtworkInfo = class 29 | private 30 | FFileName: string; 31 | FAppDataFolder: string; 32 | function GetInfo: string; 33 | public 34 | property InfoStr: string read GetInfo; 35 | property FileName: string read FFileName write FFileName; 36 | property AppData: string read FAppDataFolder write FAppDataFolder; 37 | constructor Create; 38 | destructor Destroy; override; 39 | function ReadFromStream(const Stream: TStream): string; 40 | end; 41 | 42 | implementation 43 | 44 | { TArtworkInfo } 45 | 46 | constructor TArtworkInfo.Create; 47 | begin 48 | 49 | end; 50 | 51 | destructor TArtworkInfo.Destroy; 52 | begin 53 | 54 | inherited; 55 | end; 56 | 57 | function TArtworkInfo.GetInfo: string; 58 | var 59 | LMediaInfoHandle: Cardinal; 60 | LImageFormat: string; 61 | LDimension: string; 62 | LBitDepth: string; 63 | begin 64 | Result := ''; 65 | LMediaInfoHandle := MediaInfo_New; 66 | if LMediaInfoHandle <> 0 then 67 | begin 68 | MediaInfo_Open(LMediaInfoHandle, PWideChar(FFileName)); 69 | MediaInfo_Option(0, 'Complete', ''); 70 | 71 | LImageFormat := MediaInfo_Get(LMediaInfoHandle, Stream_Image, 0, 'Format', Info_Text, Info_Name); 72 | LBitDepth := MediaInfo_Get(LMediaInfoHandle, Stream_Image, 0, 'BitDepth/String', Info_Text, Info_Name); 73 | LDimension := string(MediaInfo_Get(LMediaInfoHandle, Stream_Image, 0, 'Width', Info_Text, Info_Name)) + 'x' + string(MediaInfo_Get(LMediaInfoHandle, Stream_Image, 0, 'Height', Info_Text, Info_Name)); 74 | 75 | Result := LowerCase(LImageFormat + ', ' + LDimension + ', ' + LBitDepth); 76 | end; 77 | end; 78 | 79 | function TArtworkInfo.ReadFromStream(const Stream: TStream): string; 80 | var 81 | LMS: TMemoryStream; 82 | begin 83 | LMS := TMemoryStream.Create; 84 | try 85 | LMS.LoadFromStream(Stream); 86 | if FileExists(FAppDataFolder + '\tmp') then 87 | begin 88 | DeleteFile(FAppDataFolder + '\tmp') 89 | end; 90 | LMS.SaveToFile(FAppDataFolder + '\tmp'); 91 | FFileName := FAppDataFolder + '\tmp'; 92 | Result := GetInfo; 93 | finally 94 | LMS.Free; 95 | end; 96 | end; 97 | 98 | end. 99 | 100 | -------------------------------------------------------------------------------- /Units/Artwork/UnitArtworkInfo.pas: -------------------------------------------------------------------------------- 1 | { * 2 | * Copyright (C) 2014-2017 ozok 3 | * 4 | * This file is part of OooPlayer. 5 | * 6 | * OooPlayer is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * OooPlayer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with OooPlayer. If not, see . 18 | * 19 | * } 20 | unit UnitArtworkInfo; 21 | 22 | interface 23 | 24 | uses 25 | Classes, Windows, SysUtils, Messages, StrUtils, UnitTagTypes, MediaInfoDll; 26 | 27 | type 28 | TArtworkInfo = class 29 | private 30 | FFileName: string; 31 | FAppDataFolder: string; 32 | function GetInfo: string; 33 | public 34 | property InfoStr: string read GetInfo; 35 | property FileName: string read FFileName write FFileName; 36 | property AppData: string read FAppDataFolder write FAppDataFolder; 37 | constructor Create; 38 | destructor Destroy; override; 39 | function ReadFromStream(const Stream: TStream): string; 40 | end; 41 | 42 | implementation 43 | 44 | { TArtworkInfo } 45 | 46 | constructor TArtworkInfo.Create; 47 | begin 48 | 49 | end; 50 | 51 | destructor TArtworkInfo.Destroy; 52 | begin 53 | 54 | inherited; 55 | end; 56 | 57 | function TArtworkInfo.GetInfo: string; 58 | var 59 | LMediaInfoHandle: Cardinal; 60 | LImageFormat: string; 61 | LDimension: string; 62 | LBitDepth: string; 63 | begin 64 | Result := ''; 65 | LMediaInfoHandle := MediaInfo_New; 66 | if LMediaInfoHandle <> 0 then 67 | begin 68 | MediaInfo_Open(LMediaInfoHandle, PWideChar(FFileName)); 69 | MediaInfo_Option(0, 'Complete', ''); 70 | 71 | LImageFormat := MediaInfo_Get(LMediaInfoHandle, Stream_Image, 0, 'Format', Info_Text, Info_Name); 72 | LBitDepth := MediaInfo_Get(LMediaInfoHandle, Stream_Image, 0, 'BitDepth/String', Info_Text, Info_Name); 73 | LDimension := string(MediaInfo_Get(LMediaInfoHandle, Stream_Image, 0, 'Width', Info_Text, Info_Name)) + 'x' + string(MediaInfo_Get(LMediaInfoHandle, Stream_Image, 0, 'Height', Info_Text, Info_Name)); 74 | 75 | Result := LowerCase(LImageFormat + ', ' + LDimension + ', ' + LBitDepth); 76 | end; 77 | end; 78 | 79 | function TArtworkInfo.ReadFromStream(const Stream: TStream): string; 80 | var 81 | LMS: TMemoryStream; 82 | begin 83 | LMS := TMemoryStream.Create; 84 | try 85 | LMS.LoadFromStream(Stream); 86 | if FileExists(FAppDataFolder + '\tmp') then 87 | begin 88 | DeleteFile(FAppDataFolder + '\tmp') 89 | end; 90 | LMS.SaveToFile(FAppDataFolder + '\tmp'); 91 | FFileName := FAppDataFolder + '\tmp'; 92 | Result := GetInfo; 93 | finally 94 | LMS.Free; 95 | end; 96 | end; 97 | 98 | end. 99 | 100 | -------------------------------------------------------------------------------- /Units/Constants/Constants.pas: -------------------------------------------------------------------------------- 1 | unit Constants; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Messages; 7 | 8 | const 9 | OneKibiByte = Int64(1024); 10 | OneMebiByte = Int64(1024) * OneKibiByte; 11 | OneGibiByte = Int64(1024) * OneMebiByte; 12 | OneTebiByte = Int64(1024) * OneGibiByte; 13 | OnePebiByte = Int64(1024) * OneTebiByte; 14 | OneExbiByte = Int64(1024) * OnePebiByte; 15 | 16 | const 17 | THREAD_MSG_PLAY_NEXT = $0001; 18 | 19 | const 20 | {$DEFINE WRITEDEBUGLOG} 21 | BuildInt = 3422; 22 | Portable = False; 23 | WM_INFO_UPDATE = WM_USER + 101; 24 | RESET_UI = 0; 25 | SHOW_ERROR = 1; 26 | UPDATE_PROGRESS = 2; 27 | UPDATE_META_NAME = 3; 28 | UPDATE_META_BITRATE = 4; 29 | UPDATE_META = 7; 30 | STATUS_UPDATE = 8; 31 | REPAINT_RADIO_LIST = 9; 32 | STOP_IMG_ANIM = 10; 33 | DOWNLOAD_LYRIC = 11; 34 | START_RECORDING = 12; 35 | PLAY_NEXT_SONG = 13; 36 | UPDATE_LEVELS = 14; 37 | STOP_TIMERS = 15; 38 | 39 | implementation 40 | 41 | end. 42 | 43 | -------------------------------------------------------------------------------- /Units/Cue/CUESheetDefs.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Units/Cue/CUESheetDefs.pas -------------------------------------------------------------------------------- /Units/Cue/CUESheetFunctions.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Units/Cue/CUESheetFunctions.pas -------------------------------------------------------------------------------- /Units/Others/JsonSerializer.pas: -------------------------------------------------------------------------------- 1 | unit JsonSerializer; 2 | 3 | interface 4 | 5 | uses 6 | Generics.Collections, Classes, System.SysUtils, Winapi.Messages, Constants, REST.Json; 7 | 8 | type 9 | TJsonSerializer = class 10 | private 11 | public 12 | class function Serialize(const Obj: TObject): string; 13 | class function Deserialize(const JsonStr: string): TObject; 14 | end; 15 | 16 | implementation 17 | 18 | { TJsonSerializer } 19 | 20 | class function TJsonSerializer.Deserialize(const JsonStr: string): TObject; 21 | begin 22 | try 23 | Result := TJson.JsonToObject(JsonStr); 24 | except 25 | on E: Exception do 26 | begin 27 | Result := nil; 28 | end; 29 | end; 30 | end; 31 | 32 | class function TJsonSerializer.Serialize(const Obj: TObject): string; 33 | begin 34 | try 35 | Result := TJson.ObjectToJsonString(Obj); 36 | except 37 | on E: Exception do 38 | begin 39 | Result := ''; 40 | end; 41 | end; 42 | end; 43 | 44 | end. 45 | 46 | -------------------------------------------------------------------------------- /Units/Others/Utils.pas: -------------------------------------------------------------------------------- 1 | unit Utils; 2 | 3 | interface 4 | 5 | uses 6 | nxLogging, System.Classes, System.SysUtils, System.StrUtils, JsonSerializer, 7 | System.Types, Constants, Winapi.Windows, ShlObj; 8 | 9 | procedure LogSend(const Msg: string); 10 | 11 | procedure LogSendError(const Msg: string); 12 | 13 | procedure LogSendException(const Msg: string; const Ex: Exception); 14 | 15 | function FileSizetoString(_FileSize: Int64): string; 16 | 17 | 18 | function GetExeBuild(const ExePath: string): string; 19 | 20 | implementation 21 | 22 | function GetExeBuild(const ExePath: string): string; 23 | var 24 | VerInfoSize: Cardinal; 25 | VerValueSize: Cardinal; 26 | Dummy: Cardinal; 27 | PVerInfo: Pointer; 28 | PVerValue: PVSFixedFileInfo; 29 | begin 30 | Result := ''; 31 | VerInfoSize := GetFileVersionInfoSize(PWideChar(ExePath), Dummy); 32 | GetMem(PVerInfo, VerInfoSize); 33 | try 34 | if GetFileVersionInfo(PWideChar(ExePath), 0, VerInfoSize, PVerInfo) then 35 | begin 36 | if VerQueryValue(PVerInfo, '\', Pointer(PVerValue), VerValueSize) then 37 | begin 38 | with PVerValue^ do 39 | begin 40 | Result := FloatToStr(LoWord(dwFileVersionLS)); 41 | end; 42 | end; 43 | end; 44 | finally 45 | FreeMem(PVerInfo, VerInfoSize); 46 | end; 47 | end; 48 | 49 | function FileSizetoString(_FileSize: Int64): string; 50 | begin 51 | if _FileSize > OneExbiByte then 52 | Result := Format(('%.2f EB'), [_FileSize / OneExbiByte]) 53 | else if _FileSize > OnePebiByte then 54 | Result := Format(('%.2f PB'), [_FileSize / OnePebiByte]) 55 | else if _FileSize > OneTebiByte then 56 | Result := Format(('%.2f TB'), [_FileSize / OneTebiByte]) 57 | else if _FileSize > OneGibiByte then 58 | Result := Format(('%.2f GB'), [_FileSize / OneGibiByte]) 59 | else if _FileSize > OneMebiByte then 60 | Result := Format(('%.2f MB'), [_FileSize / OneMebiByte]) 61 | else if _FileSize > OneKibiByte then 62 | Result := Format(('%.2f KB'), [_FileSize / OneKibiByte]) 63 | else 64 | Result := Format(('%d Byte'), [_FileSize]) 65 | end; 66 | 67 | procedure LogSend(const Msg: string); 68 | begin 69 | try 70 | Logger.error(Msg); 71 | except 72 | on E: Exception do 73 | begin 74 | // Ignored. 75 | end; 76 | end; 77 | end; 78 | 79 | procedure LogSendError(const Msg: string); 80 | begin 81 | try 82 | Logger.log(NXLL_INFO, Msg); 83 | except 84 | on E: Exception do 85 | begin 86 | // Ignored. 87 | end; 88 | end; 89 | end; 90 | 91 | procedure LogSendException(const Msg: string; const Ex: Exception); 92 | const 93 | STR1 = #$A; 94 | STR2 = #$D; 95 | var 96 | LSB: TStringBuilder; 97 | LLines: TStringDynArray; 98 | I: Integer; 99 | LLine: string; 100 | LStackTrace: string; 101 | LJsonLine: string; 102 | LStrs: TStringList; 103 | LStepCount: integer; 104 | J: Integer; 105 | LMsg: string; 106 | begin 107 | // Check if destination exists. 108 | // If it does not exist, then it may 109 | // mean that it was destroyed. 110 | LSB := TStringBuilder.Create; 111 | try 112 | try 113 | Logger.error('', Msg, TNxLoggerCategory.NXLCAT_NONE, Ex); 114 | Logger.error('{"exception": ' + JsonSerializer.TJsonSerializer.Serialize(Ex) + '}'); 115 | 116 | LStackTrace := StringReplace(Ex.StackTrace, #$A, ' ', [rfReplaceAll]); 117 | LStackTrace := StringReplace(LStackTrace, #$D, ' ', [rfReplaceAll]).Trim; 118 | // Logger.error(LStackTrace); 119 | // 120 | LLines := System.StrUtils.SplitString(LStackTrace, ' '); 121 | LSB.Append('['); 122 | LStrs := TStringList.Create; 123 | try 124 | for I := 0 to Length(LLines) - 1 do 125 | begin 126 | LLine := LLines[I].Trim; 127 | if (Length(LLine) > 0) then 128 | begin 129 | LStrs.Add(LLine); 130 | end; 131 | end; 132 | 133 | LJsonLine := ''; 134 | LStepCount := LStrs.Count div 5; 135 | for I := 0 to LStepCount - 1 do 136 | begin 137 | LJsonLine := ''; 138 | for J := (I * 5) to ((I + 1) * 5) - 1 do 139 | begin 140 | if J < LStrs.Count then 141 | begin 142 | LLine := LStrs[J]; 143 | LJsonLine := LJsonLine + ' ' + LLine; 144 | end; 145 | end; 146 | LSB.Append('"' + LJsonLine + '",'); 147 | LJsonLine := ''; 148 | end; 149 | finally 150 | LStrs.Free; 151 | end; 152 | 153 | LSB.Append(']'); 154 | // 155 | Logger.error('{"Stack trace": ' + LSB.ToString + '}'); 156 | except 157 | on E: Exception do 158 | begin 159 | LMsg := E.StackTrace; 160 | end; 161 | end; 162 | finally 163 | LSB.Free; 164 | end; 165 | end; 166 | 167 | end. 168 | 169 | -------------------------------------------------------------------------------- /Units/Process/UnitLastFMToolLauncher.pas: -------------------------------------------------------------------------------- 1 | { * 2 | * Copyright (C) 2011-2017 ozok 3 | * 4 | * This file is part of OooPlayer. 5 | * 6 | * OooPlayer is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * OooPlayer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with OooPlayer. If not, see . 18 | * 19 | * } 20 | unit UnitLastFMToolLauncher; 21 | 22 | interface 23 | 24 | uses 25 | Classes, Windows, SysUtils, JvCreateProcess, Messages, StrUtils, ComCtrls; 26 | 27 | type 28 | TLastFMToolLauncher = class(TObject) 29 | private 30 | FProcess: TJvCreateProcess; 31 | procedure ProcessTerminate(Sender: TObject; ExitCode: Cardinal); 32 | function GetRunning: Boolean; 33 | public 34 | property IsRunning: Boolean read GetRunning; 35 | constructor Create(); 36 | destructor Destroy(); override; 37 | procedure Start(const SettingsFilePath: string; const ProcessPath: string); 38 | procedure Stop(); 39 | end; 40 | 41 | implementation 42 | 43 | { TLastFMToolLauncher } 44 | 45 | uses 46 | UnitLog; 47 | 48 | constructor TLastFMToolLauncher.Create; 49 | begin 50 | inherited Create; 51 | 52 | FProcess := TJvCreateProcess.Create(nil); 53 | with FProcess do 54 | begin 55 | OnTerminate := ProcessTerminate; 56 | ConsoleOptions := [coRedirect]; 57 | CreationFlags := [cfUnicode]; 58 | Priority := ppIdle; 59 | 60 | with StartupInfo do 61 | begin 62 | DefaultPosition := False; 63 | DefaultSize := False; 64 | DefaultWindowState := False; 65 | ShowWindow := swHide; 66 | end; 67 | 68 | WaitForTerminate := true; 69 | end; 70 | end; 71 | 72 | destructor TLastFMToolLauncher.Destroy; 73 | begin 74 | inherited Destroy; 75 | FProcess.Free; 76 | end; 77 | 78 | function TLastFMToolLauncher.GetRunning: Boolean; 79 | begin 80 | Result := 0 <> FProcess.ProcessInfo.hProcess; 81 | end; 82 | 83 | procedure TLastFMToolLauncher.ProcessTerminate(Sender: TObject; ExitCode: Cardinal); 84 | begin 85 | if ExitCode <> 0 then 86 | begin 87 | LogForm.LogList.Lines.Add('lastfmtoollauncher error code: ' + FloatToStr(ExitCode)); 88 | LogForm.LogList.Lines.Add('lastfmtoollauncher exe: ' + FProcess.ApplicationName); 89 | LogForm.LogList.Lines.Add('lastfmtoollauncher cmd: ' + FProcess.CommandLine); 90 | 91 | end; 92 | LogForm.LogList.Lines.AddStrings(FProcess.ConsoleOutput); 93 | end; 94 | 95 | procedure TLastFMToolLauncher.Start(const SettingsFilePath: string; const ProcessPath: string); 96 | begin 97 | if FProcess.ProcessInfo.hProcess = 0 then 98 | begin 99 | // if FileExists(SettingsFilePath) then 100 | begin 101 | if FileExists(ProcessPath) then 102 | begin 103 | FProcess.ApplicationName := ProcessPath; 104 | FProcess.CommandLine := SettingsFilePath; 105 | FProcess.Run; 106 | end 107 | else 108 | begin 109 | LogForm.LogList.Lines.Add('Unable to find file ' + ProcessPath) 110 | end; 111 | end 112 | // else 113 | // begin 114 | // LogForm.LogList.Lines.Add('Unable to find file ' + SettingsFilePath) 115 | // end;; 116 | end; 117 | end; 118 | 119 | procedure TLastFMToolLauncher.Stop; 120 | begin 121 | if FProcess.ProcessInfo.hProcess > 0 then 122 | begin 123 | TerminateProcess(FProcess.ProcessInfo.hProcess, 0); 124 | end; 125 | end; 126 | 127 | end. 128 | 129 | -------------------------------------------------------------------------------- /Units/Process/UnitSubProcessLauncher.pas: -------------------------------------------------------------------------------- 1 | { * 2 | * Copyright (C) 2011-2017 ozok 3 | * 4 | * This file is part of OooPlayer. 5 | * 6 | * OooPlayer is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * OooPlayer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with OooPlayer. If not, see . 18 | * 19 | * } 20 | unit UnitSubProcessLauncher; 21 | 22 | interface 23 | 24 | uses 25 | Classes, Windows, SysUtils, JvCreateProcess, Messages, StrUtils, ComCtrls; 26 | 27 | type 28 | TSubProcessLauncher = class(TObject) 29 | private 30 | FProcess: TJvCreateProcess; 31 | procedure ProcessTerminate(Sender: TObject; ExitCode: Cardinal); 32 | function GetRunning: Boolean; 33 | public 34 | property IsRunning: Boolean read GetRunning; 35 | constructor Create(); 36 | destructor Destroy(); override; 37 | procedure Start(const SettingsFilePath: string; const ProcessPath: string); 38 | procedure Stop(); 39 | end; 40 | 41 | implementation 42 | 43 | uses 44 | UnitLog; 45 | 46 | { TSubProcessLauncher } 47 | 48 | constructor TSubProcessLauncher.Create; 49 | begin 50 | inherited Create; 51 | 52 | FProcess := TJvCreateProcess.Create(nil); 53 | with FProcess do 54 | begin 55 | OnTerminate := ProcessTerminate; 56 | ConsoleOptions := [coRedirect]; 57 | CreationFlags := [cfUnicode]; 58 | Priority := ppIdle; 59 | 60 | with StartupInfo do 61 | begin 62 | DefaultPosition := True; 63 | DefaultSize := True; 64 | DefaultWindowState := True; 65 | ShowWindow := swNormal; 66 | end; 67 | 68 | WaitForTerminate := True; 69 | end; 70 | end; 71 | 72 | destructor TSubProcessLauncher.Destroy; 73 | begin 74 | inherited Destroy; 75 | FProcess.Free; 76 | end; 77 | 78 | function TSubProcessLauncher.GetRunning: Boolean; 79 | begin 80 | Result := 0 <> FProcess.ProcessInfo.hProcess; 81 | end; 82 | 83 | procedure TSubProcessLauncher.ProcessTerminate(Sender: TObject; ExitCode: Cardinal); 84 | begin 85 | if ExitCode <> 0 then 86 | begin 87 | LogForm.LogList.Lines.Add('lastfmtoollauncher error code: ' + FloatToStr(ExitCode)); 88 | LogForm.LogList.Lines.Add('lastfmtoollauncher exe: ' + FProcess.ApplicationName); 89 | LogForm.LogList.Lines.Add('lastfmtoollauncher cmd: ' + FProcess.CommandLine); 90 | 91 | end; 92 | LogForm.LogList.Lines.AddStrings(FProcess.ConsoleOutput); 93 | end; 94 | 95 | procedure TSubProcessLauncher.Start(const SettingsFilePath: string; const ProcessPath: string); 96 | begin 97 | if FProcess.ProcessInfo.hProcess = 0 then 98 | begin 99 | // if FileExists(SettingsFilePath) then 100 | begin 101 | if FileExists(ProcessPath) then 102 | begin 103 | FProcess.ApplicationName := ''; 104 | FProcess.CommandLine := ProcessPath + ' "' + SettingsFilePath + '"'; 105 | FProcess.Run; 106 | end 107 | else 108 | begin 109 | LogForm.LogList.Lines.Add('Unable to find file ' + ProcessPath) 110 | end; 111 | end 112 | // else 113 | // begin 114 | // LogForm.LogList.Lines.Add('Unable to find file ' + SettingsFilePath) 115 | // end;; 116 | end; 117 | end; 118 | 119 | procedure TSubProcessLauncher.Stop; 120 | begin 121 | if FProcess.ProcessInfo.hProcess > 0 then 122 | begin 123 | TerminateProcess(FProcess.ProcessInfo.hProcess, 0); 124 | end; 125 | end; 126 | 127 | end. 128 | 129 | -------------------------------------------------------------------------------- /Units/Tag/UnitTagReader.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Units/Tag/UnitTagReader.pas -------------------------------------------------------------------------------- /Units/Tag/UnitTagTypes.pas: -------------------------------------------------------------------------------- 1 | { * 2 | * Copyright (C) 2014-2017 ozok 3 | * 4 | * This file is part of OooPlayer. 5 | * 6 | * OooPlayer is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * OooPlayer is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with OooPlayer. If not, see . 18 | * 19 | * } 20 | 21 | unit UnitTagTypes; 22 | 23 | interface 24 | 25 | uses 26 | Classes, Generics.Collections; 27 | 28 | type 29 | TGeneralTag = class 30 | Tag, Value: string; 31 | Edited: Boolean; 32 | end; 33 | 34 | type 35 | TGeneralTagList = TList; 36 | 37 | type 38 | TCoverArtType = (none = 0, jpeg = 1, png = 2, bmp = 3, gif = 4); 39 | 40 | type 41 | PTag = ^TTag; 42 | 43 | TTag = packed record 44 | Title: string; 45 | Artist: string; 46 | Album: string; 47 | Comment: string; 48 | Genre: string; 49 | Track: string; 50 | TrackTotal: string; 51 | Disc: string; 52 | DiscTotal: string; 53 | Year: string; 54 | end; 55 | 56 | type 57 | TPlayItem = class 58 | FullFileName: string; 59 | DurationStr: string; 60 | Bitrate: string; 61 | Channels: string; 62 | Codec: string; 63 | SampleRate: string; 64 | Title: string; 65 | Artist: string; 66 | AlbumArtist: string; 67 | Album: string; 68 | PlayCount: integer; 69 | Stars: integer; 70 | Genre: string; 71 | Track: string; 72 | Comment: string; 73 | Composer: string; 74 | Date: string; 75 | StartPos: Integer; 76 | Duration: Integer; 77 | EndPos: Integer; 78 | constructor Create; 79 | destructor Destroy; override; 80 | end; 81 | 82 | TPlaylist = TList; 83 | 84 | TQueueList = TList; 85 | 86 | implementation 87 | 88 | { TPlayListItem } 89 | 90 | constructor TPlayItem.Create; 91 | begin 92 | 93 | end; 94 | 95 | destructor TPlayItem.Destroy; 96 | begin 97 | 98 | end; 99 | 100 | end. 101 | 102 | -------------------------------------------------------------------------------- /Units/Tag/UnitTagWriter.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Units/Tag/UnitTagWriter.pas -------------------------------------------------------------------------------- /Units/TagLibraries/APEv2Library.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Units/TagLibraries/APEv2Library.pas -------------------------------------------------------------------------------- /Units/TagLibraries/FlacTagLibrary.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Units/TagLibraries/FlacTagLibrary.pas -------------------------------------------------------------------------------- /Units/TagLibraries/ID3v1Library.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Units/TagLibraries/ID3v1Library.pas -------------------------------------------------------------------------------- /Units/TagLibraries/ID3v2Library.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Units/TagLibraries/ID3v2Library.pas -------------------------------------------------------------------------------- /Units/TagLibraries/MP4TagLibrary.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Units/TagLibraries/MP4TagLibrary.pas -------------------------------------------------------------------------------- /Units/TagLibraries/OggVorbisAndOpusTagLibrary.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Units/TagLibraries/OggVorbisAndOpusTagLibrary.pas -------------------------------------------------------------------------------- /Units/TagLibraries/WAVTagLibrary.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Units/TagLibraries/WAVTagLibrary.pas -------------------------------------------------------------------------------- /Units/TagLibraries/WMATagLibrary.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Units/TagLibraries/WMATagLibrary.pas -------------------------------------------------------------------------------- /Units/TagLibraries/uTExtendedX87.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Units/TagLibraries/uTExtendedX87.pas -------------------------------------------------------------------------------- /Vis/spectrum_vis.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozok/OooPlayer/3af71c67df4db6b7753420a7387c126782101091/Vis/spectrum_vis.pas -------------------------------------------------------------------------------- /version.txt: -------------------------------------------------------------------------------- 1 | 3422 --------------------------------------------------------------------------------