diff --git a/.gitignore b/.gitignore index 88ff6381..76cdb8ad 100644 --- a/.gitignore +++ b/.gitignore @@ -34,7 +34,7 @@ ppaslink.sh /src/**/*.identcache /src/config-linux.inc /src/paths.inc -/src/WorldParty-*.lps +/src/*.lps /src/WorldParty.res /scr/backup/ diff --git a/COPYRIGHT.txt b/COPYRIGHT.txt index 2ce39416..c5779a11 100644 --- a/COPYRIGHT.txt +++ b/COPYRIGHT.txt @@ -1,5 +1,5 @@ Ultrastar Deluxe WorldParty -Copyright (C) 2010-2017 by the following: +Copyright (C) 2010-2018 by the following: "Zup3r_vock" "Daniel20" diff --git a/VERSION b/VERSION index 528f7b56..f7bed874 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -18.2 +18.11 diff --git a/configure.ac b/configure.ac index daca2698..15c2870c 100644 --- a/configure.ac +++ b/configure.ac @@ -276,7 +276,10 @@ AC_SUBST_DEFINE(HAVE_SWRESAMPLE, $libswresample_HAVE) # map avutil library version to ffmpeg version AC_MSG_CHECKING([version of ffmpeg]) -if FFMPEG_LIBS_COMPATIBLE([55078100], [57107100], [57083100], [4008100], [2009100]); then +# the order is ([avutil], [avcodec], [avformat], [swscale], [swresample]) +if FFMPEG_LIBS_COMPATIBLE([56014100], [58018100], [58012100], [5001100], [3001100]); then + FFMPEG_VERSION="4.0" +elif FFMPEG_LIBS_COMPATIBLE([55078100], [57107100], [57083100], [4008100], [2009100]); then FFMPEG_VERSION="3.4" elif FFMPEG_LIBS_COMPATIBLE([55034100], [57064100,57093100], [57056100], [4002100], [2003100]); then FFMPEG_VERSION="3.2" # and 3.3 diff --git a/dists/lazarus/ultrastardx-win.lpi b/dists/lazarus/ultrastardx-win.lpi index 48c4ed2b..7a25d475 100644 --- a/dists/lazarus/ultrastardx-win.lpi +++ b/dists/lazarus/ultrastardx-win.lpi @@ -526,11 +526,6 @@ - - - - - diff --git a/game/fonts/Roboto/Roboto-Black.ttf b/game/fonts/Roboto/Roboto-Black.ttf deleted file mode 100644 index fbde625d..00000000 Binary files a/game/fonts/Roboto/Roboto-Black.ttf and /dev/null differ diff --git a/game/fonts/Roboto/Roboto-Medium.ttf b/game/fonts/Roboto/Roboto-Medium.ttf deleted file mode 100644 index 39c63d74..00000000 Binary files a/game/fonts/Roboto/Roboto-Medium.ttf and /dev/null differ diff --git a/game/fonts/fonts.ini b/game/fonts/fonts.ini index 0cb7d12b..bbe5747a 100644 --- a/game/fonts/fonts.ini +++ b/game/fonts/fonts.ini @@ -44,8 +44,8 @@ [Font_Normal] File=Roboto/Roboto-Regular.ttf -;GlyphSpacing=0.2 -Stretch=0.81 +GlyphSpacing=1.1 +Stretch=0.8 [Font_Bold] File=Roboto/Roboto-Bold.ttf @@ -53,20 +53,16 @@ File=Roboto/Roboto-Bold.ttf [Font_Outline1] File=Roboto/Roboto-Bold.ttf -Outline=0.05 -Stretch=0.86 +Outline=0.06 +Stretch=0.8 [Font_Outline2] File=Roboto/Roboto-Bold.ttf -Outline=0.08 -Stretch=0.89 +Outline=0.09 +Stretch=0.8 [Font_BoldHighRes] File=Roboto/Roboto-Bold.ttf MaxResolution=256 PreCache=0 -Outline=0.02 - -[Fallbacks] -File1=Roboto/Roboto-Regular.ttf -;File2=C:/Windows/Fonts/simsun.ttc +Outline=0.02 \ No newline at end of file diff --git "a/game/languages/Catal\303\240.ini" "b/game/languages/Catal\303\240.ini" index 8424e763..9bbe9faa 100644 --- "a/game/languages/Catal\303\240.ini" +++ "b/game/languages/Catal\303\240.ini" @@ -1,12 +1,73 @@ [Text] LANGUAGE=Català +SING_LOADING=Carregant... +SING_LOADING_SONGS=Carregant cançons de la carpeta %s + +SING_SING=Cantar +SING_SING_DESC=Joc ràpid: cantar un solo o un duet + +SING_MULTI=Festa +SING_MULTI_DESC=Cantar en mode festa + +SING_JUKEBOX=Reproductor de música +SING_JUKEBOX_DESC=Escoltar les meves cançons + +SING_STATS=Estadístiques +SING_STATS_DESC=Veure estadístiques + +SING_GAME_OPTIONS=Opcions de joc +SING_GAME_OPTIONS_DESC=Canviar preferències de joc + +SING_EXIT=Sortir +SING_EXIT_DESC=Sortir del joc + +SING_ABOUT=Quant a +SING_ABOUT_DESC=Quant a Ultrastar Deluxe WorldParty + +SING_PLAYER_TITLE=Perfils +SING_PLAYER_READY=Jugadors llestos per cantar +SING_PLAYER_COUNT=Nombre de jugadors +SING_PLAYER_EDIT=Personalitzar un jugador +SING_PLAYER_NAME=Escriu el teu nom +SING_PLAYER_COLOR=Tria un color +SING_PLAYER_LEVEL=Trieu un nivell +SING_PLAYER_AVATAR=Selecciona el teu avatar + OPTION_VALUE_EASY=Fàcil OPTION_VALUE_MEDIUM=Mitjà OPTION_VALUE_HARD=Difícil -;TODO: OPTION_VALUE_ON=On -;TODO: OPTION_VALUE_OFF=Off +SING_OPTIONS=Opcions + +SING_OPTIONS_GAME=Joc +SING_OPTIONS_GRAPHICS=Gràfics +SING_OPTIONS_SOUND=So +SING_OPTIONS_LYRICS=LLetres +SING_OPTIONS_THEMES=Aparença +SING_OPTIONS_MICROPHONES=Micròfons +SING_OPTIONS_ADVANCED=Avançat +SING_OPTIONS_NETWORK=Internet +;TODO: SING_OPTIONS_WEBCAM=Webcam +SING_OPTIONS_JUKEBOX=Jukebox +SING_OPTIONS_EXIT=Enrere + +SING_OPTIONS_GAME_LANGUAGE=Idioma +SING_OPTIONS_GAME_SONGMENU=Menú de cançons +SING_OPTIONS_GAME_TABS=Pestanyes +SING_OPTIONS_GAME_SORTING=Ordenació +;TODO: SING_OPTIONS_GAME_SHOWSCORES=Show Scores +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Gamepad + +OPTION_VALUE_ROULETTE=Ruleta +OPTION_VALUE_CHESSBOARD=Tauler d'escacs +OPTION_VALUE_CAROUSEL=Carrusel +OPTION_VALUE_SLOT_MACHINE=Escurabutxaques +OPTION_VALUE_LIST=LLista +OPTION_VALUE_MOSAIC=Rajola + +OPTION_VALUE_ON=Sí +OPTION_VALUE_OFF=No OPTION_VALUE_EDITION=Edició OPTION_VALUE_GENRE=Gènere @@ -14,24 +75,37 @@ OPTION_VALUE_LANGUAGE=Idioma OPTION_VALUE_FOLDER=Directori OPTION_VALUE_TITLE=Títol OPTION_VALUE_ARTIST=Artista -OPTION_VALUE_TITLE2=Títol2 OPTION_VALUE_ARTIST2=Artista2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade -OPTION_VALUE_PLAYLIST=llista +OPTION_VALUE_YEAR=Curs +OPTION_VALUE_DECADE=Dècada +OPTION_VALUE_PLAYLIST=LLista + +;TODO: OPTION_VALUE_WHEN_EXISTS=When Exists -;TODO: OPTION_VALUE_BORDERLESS=Borderless +SING_OPTIONS_GRAPHICS_FULLSCREEN=Pantalla complerta +SING_OPTIONS_GRAPHICS_RESOLUTION=Resolucị +SING_OPTIONS_GRAPHICS_SCREENFADE=Fos de pantalla +SING_OPTIONS_GRAPHICS_EFFECTSING=Efectes de cantar +SING_OPTIONS_GRAPHICS_VISUALIZER=Visualització +SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Mida pel·lícula -;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +OPTION_VALUE_BORDERLESS=Maximitzada -;TODO: OPTION_VALUE_SMALL=Small -;TODO: OPTION_VALUE_BIG=Big +OPTION_VALUE_WHENNOVIDEO=Quan no hi ha vídeo +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Quan no hi ha vídeo i imatge ;TODO: OPTION_VALUE_HALF=Half ;TODO: OPTION_VALUE_FULL_VID=Full (Video) ;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video) +SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Reproducció del micro +SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Música de fons +SING_OPTIONS_SOUND_CLICK_ASSIST=Assistència Click +SING_OPTIONS_SOUND_BEAT_CLICK=Clic de ritme +;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain +SING_OPTIONS_SOUND_PREVIEWVOLUME=Volum previsualitzar +SING_OPTIONS_SOUND_PREVIEWFADING=Fos previsualitzar + ;TODO: OPTION_VALUE_GAIN_SOFT=Soft ;TODO: OPTION_VALUE_GAIN_MEDIUM=Medium ;TODO: OPTION_VALUE_GAIN_HARD=Hard @@ -40,190 +114,214 @@ OPTION_VALUE_PLAYLIST=llista ;TODO: OPTION_VALUE_SEC=Second ;TODO: OPTION_VALUE_SECS=Seconds -;TODO: OPTION_VALUE_PLAIN=Plain -;TODO: OPTION_VALUE_OLINE1=OLine1 -;TODO: OPTION_VALUE_OLINE2=OLine2 +SING_OPTIONS_LYRICS_FONT=Font +SING_OPTIONS_LYRICS_EFFECT=Efecte +SING_OPTIONS_LYRICS_NOTELINES=Pentagrama + +OPTION_VALUE_PLAIN=Estilitzat +;TODO: OPTION_VALUE_OLINE1=With thin edge +;TODO: OPTION_VALUE_OLINE2=With thick edge -;TODO: OPTION_VALUE_SIMPLE=Simple -;TODO: OPTION_VALUE_ZOOM=Zoom +OPTION_VALUE_SIMPLE=Simple +OPTION_VALUE_ZOOM=Zoom ;TODO: OPTION_VALUE_SLIDE=Slide -;TODO: OPTION_VALUE_BALL=Ball +OPTION_VALUE_BALL=Pilota ;TODO: OPTION_VALUE_SHIFT=Shift -;TODO: OPTION_VALUE_EURO=Euro -;TODO: OPTION_VALUE_JAPAN=Japan -;TODO: OPTION_VALUE_AMERICAN=American - -;TODO: OPTION_VALUE_BLUE=Blue -;TODO: OPTION_VALUE_GREEN=Green -;TODO: OPTION_VALUE_PINK=Pink -;TODO: OPTION_VALUE_RED=Red -;TODO: OPTION_VALUE_VIOLET=Violet -;TODO: OPTION_VALUE_ORANGE=Orange -;TODO: OPTION_VALUE_YELLOW=Yellow -;TODO: OPTION_VALUE_BROWN=Brown -;TODO: OPTION_VALUE_BLACK=Black - -OPTION_VALUE_SING=cantar -;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players -;TODO: OPTION_VALUE_OPEN_MENU=Open Menu - -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor -;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor - -SING_LOADING=Carregant... +SING_OPTIONS_THEMES_THEME=Aparença +SING_OPTIONS_THEMES_SKIN=Pell +SING_OPTIONS_THEMES_COLOR=Color -SING_CHOOSE_MODE=Triar mode -SING_SING=cantar -SING_SING_DESC=joc ràpid: cantar un solo o un duet +SING_OPTIONS_MICROPHONES_CARD=Tarjeta de so +SING_OPTIONS_MICROPHONES_INPUT=Entrada +SING_OPTIONS_MICROPHONES_CHANNEL=Canal +SING_OPTIONS_MICROPHONES_THRESHOLD=Llindar +SING_OPTIONS_MICROPHONES_MIC_BOOST=Ampli Micro -SING_MULTI=festa -SING_MULTI_DESC=cantar en mode festa +SING_OPTIONS_ADVANCED_DEBUG=Debug +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Oscil·loscopi +SING_OPTIONS_ADVANCED_ONSONGCLICK=Després de triar cançó +SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Prequnta abans de sortida +SING_OPTIONS_ADVANCED_PARTYPOPUP=Menú Automàtic de festa +SING_OPTIONS_ADVANCED_TOPSCORES=Puntuacions més altes +SING_OPTIONS_ADVANCED_SINGSCORES=Puntuacions sobre el cant -SING_TOOLS=eines +OPTION_VALUE_ALL=Tot +OPTION_VALUE_PLAYER=Jugador -SING_STATS=estadístiques -SING_STATS_DESC=veure estadístiques +SING_OPTIONS_NETWORK_INSERT_USER_INFO=Premeu la tecla "Insereix" per afegir l'usuari a aquesta web... +;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website +SING_OPTIONS_NETWORK_USERNAME=Nom d'usuari +SING_OPTIONS_NETWORK_PASSWORD=Contrasenya +SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Envia el nom +;TODO: SING_OPTIONS_NETWORK_AUTO_MODE=Auto +SING_OPTIONS_NETWORK_AUTO_PLAYER=Jugador +;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) +;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) +;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) +;TODO: SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! +;TODO: SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? +SING_OPTIONS_NETWORK_LEGEND_INSERT=Insereix +SING_OPTIONS_NETWORK_LEGEND_DELETE=Suprimeix + +OPTION_PLAYER_1=Jugador 1 +OPTION_PLAYER_2=Jugador 2 +OPTION_PLAYER_3=Jugador 3 +OPTION_PLAYER_4=Jugador 4 +OPTION_PLAYER_5=Jugador 5 +OPTION_PLAYER_6=Jugador 6 +OPTION_ALL_PLAYERS=Tot +OPTION_ALL_SCORES=Tot +OPTION_VALUE_SAVE=Desa +OPTION_VALUE_SEND=Enviar -SING_EDITOR=editor -SING_EDITOR_DESC=crea les teves propies cançons +MSG_INSERT_USER_TITLE=%0:s +MSG_INSERT_USER_DESC=Omple els camps: +;TODO: MSG_INSERT_USER_ADD=Add +MSG_INSERT_USER_CANCEL=Cancel·lar -SING_GAME_OPTIONS=opcions de joc -SING_GAME_OPTIONS_DESC=canviar preferències de joc +WEBSITE_NO_CONNECTION=No hi ha cap connexió al lloc web! +;TODO: WEBSITE_LOGIN_ERROR=Login Incorrect! +WEBSITE_BLANK_LOGIN=Hi ha camps buits! +WEBSITE_EXIST_USER=Usuari existent! +WEBSITE_ERROR_SCORE=S'ha produït un error de puntuació +WEBSITE_OK_SEND=La puntuació s'ha enviat correctament +WEBSITE_ERROR_SCORE_DUPLICATED=Puntuació existent! +WEBSITE_ERROR_SONG=Cançó no trobada +;TODO: WEBSITE_SAVE_SCORE=Score save successfully! +;TODO: WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? -SING_EXIT=sortir -SING_EXIT_DESC=sortir del joc +;TODO: SONG_MENU_REFRESH_SCORES=Update Scores +;TODO: SONG_MENU_REFRESH_SCORES_TITLE=Update +;TODO: SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! +;TODO: SONG_MENU_REFRESH_SCORES_ONLINE=Online +;TODO: SONG_MENU_REFRESH_SCORES_FILE=File +;TODO: SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites +;TODO: SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs +;TODO: SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song +;TODO: SONG_MENU_REFRESH_SCORES_REFRESH=Update +;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! +;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! -SING_OPTIONS=opcions -SING_OPTIONS_DESC=canviar preferències -SING_OPTIONS_WHEREAMI=Opcions +;TODO: SONG_SCORE_MAX=Best: +;TODO: SONG_SCORE_MEDIA=Average: -SING_OPTIONS_GAME=joc -SING_OPTIONS_GRAPHICS=gràfics -SING_OPTIONS_SOUND=so -;TODO: SING_OPTIONS_INPUT=Input -SING_OPTIONS_LYRICS=lletres -SING_OPTIONS_THEMES=aparença -SING_OPTIONS_RECORD=gravar -SING_OPTIONS_ADVANCED=avançat -SING_OPTIONS_EXIT=enrere +;TODO: SCORE_SEND_DESC=Send Score +;TODO: SCORE_SEND=Send +;TODO: SCORE_SEND_PLAYER=Player +;TODO: SCORE_SEND_OTHER_USER= Other Username +;TODO: SCORE_SAVE=Save -SING_OPTIONS_GAME_WHEREAMI=Opcions de joc -SING_OPTIONS_GAME_DESC=opcions generals del joc -SING_OPTIONS_GAME_PLAYERS=Jugadors -SING_OPTIONS_GAME_DIFFICULTY=Dificultat -SING_OPTIONS_GAME_LANGUAGE=Idioma -SING_OPTIONS_GAME_TABS=Pestanyes -SING_OPTIONS_GAME_SORTING=Ordenació -SING_OPTIONS_GAME_DEBUG=Debug +;TODO: SCORE_DOWNLOAD_TITLE=Download +;TODO: SCORE_DOWNLOAD_SONG=Song: +;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... +;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... +SCORE_DOWNLOAD_CANCEL=Cancel·lar +;TODO: SCORE_DOWNLOAD_OK=OK +;TODO: SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! -SING_OPTIONS_GRAPHICS_WHEREAMI=Opcions Gràfiques -SING_OPTIONS_GRAPHICS_DESC=configurar gràfics -SING_OPTIONS_GRAPHICS_RESOLUTION=Resolucị -SING_OPTIONS_GRAPHICS_FULLSCREEN=Pantalla complerta -SING_OPTIONS_GRAPHICS_DEPTH=Profunditat -SING_OPTIONS_GRAPHICS_VISUALIZER=Visualització -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oscil·loscopi -SING_OPTIONS_GRAPHICS_LINEBONUS=Bonus de línia -SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Mida pel·lícula +;TODO: SING_OPTIONS_WEBCAM_ID=Webcam +SING_OPTIONS_WEBCAM_RESOLUTION=Resolucị +;TODO: SING_OPTIONS_WEBCAM_FPS=FPS +;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip +;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness +;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation +;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +SING_OPTIONS_WEBCAM_EFFECT=Efecte +;TODO: SING_OPTIONS_WEBCAM_PREVIEW=Activate preview -SING_OPTIONS_SOUND_WHEREAMI=Opcions de so -SING_OPTIONS_SOUND_DESC=configurar so -SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Reproducció del micro -SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Música de fons -SING_OPTIONS_SOUND_MIC_BOOST=Ampli Micro -SING_OPTIONS_SOUND_CLICK_ASSIST=Assistència Click -SING_OPTIONS_SOUND_BEAT_CLICK=Clic de ritme -SING_OPTIONS_SOUND_THRESHOLD=Llindar -SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Mode dos jugadors -;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain -SING_OPTIONS_SOUND_PREVIEWVOLUME=Volum previsualitzar -SING_OPTIONS_SOUND_PREVIEWFADING=Fos previsualitzar +;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview +;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview +;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! +;TODO: SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal +;TODO: SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Grayscale +;TODO: SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Black & White +;TODO: SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negative +;TODO: SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image +;TODO: SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate +SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Llindar +;TODO: SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges +;TODO: SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur +;TODO: SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized +;TODO: SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Transparència +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property +JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Color +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Red +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Green +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blue -SING_OPTIONS_LYRICS_WHEREAMI=Opcions Lletra -SING_OPTIONS_LYRICS_DESC=configuració de lletres -SING_OPTIONS_LYRICS_FONT=Font -SING_OPTIONS_LYRICS_EFFECT=Efecte -SING_OPTIONS_LYRICS_SOLMIZATION=Solfeig -SING_OPTIONS_LYRICS_NOTELINES=Pentagrama +JUKEBOX_SONGOPTIONS_VIDEO=Opcions de vídeo +JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspecte +JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Ample +;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height +;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -SING_OPTIONS_THEMES_WHEREAMI=Options d'Aparença -SING_OPTIONS_THEMES_DESC=Configuració d'aparença -SING_OPTIONS_THEMES_THEME=Aparença -SING_OPTIONS_THEMES_SKIN=Pell -SING_OPTIONS_THEMES_COLOR=Color +OPTION_VALUE_TO_SING=Canta +OPTION_VALUE_ACTUAL=Superior +OPTION_VALUE_NEXT=Inferior +;TODO: OPTION_VALUE_OTHER=Other +;TODO: OPTION_VALUE_FILL=Fill +;TODO: OPTION_VALUE_OUTLINE=Outline +OPTION_VALUE_BLUE=Blau +OPTION_VALUE_GREEN=Verd +OPTION_VALUE_PINK=Rosa +OPTION_VALUE_RED=Vermell +OPTION_VALUE_VIOLET=Violeta +OPTION_VALUE_ORANGE=Taronja +OPTION_VALUE_YELLOW=Groc +OPTION_VALUE_BROWN=Marró +OPTION_VALUE_BLACK=Negre +OPTION_VALUE_MAGENTA=Magenta +OPTION_VALUE_GRAY=Gris +OPTION_VALUE_WHITE=Blanc +OPTION_VALUE_TURQUOISE=Turquesa +OPTION_VALUE_SALMON=Salmó +;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow +;TODO: OPTION_VALUE_LAVENDER=Lavender +;TODO: OPTION_VALUE_BEIGE=Beige +;TODO: OPTION_VALUE_TEAL=Teal +;TODO: OPTION_VALUE_ORCHID=Orchid +;TODO: OPTION_VALUE_STEELBLUE=Steel Blue +;TODO: OPTION_VALUE_PLUM=Plum +;TODO: OPTION_VALUE_CHOCOLATE=Chocolate +;TODO: OPTION_VALUE_GOLD=Gold +;TODO: OPTION_VALUE_DARKBLUE=Dark Blue +;TODO: OPTION_VALUE_SKY=Sky +;TODO: OPTION_VALUE_HARLEQUIN=Harlequin +;TODO: OPTION_VALUE_CYAN=Cyan +;TODO: OPTION_VALUE_FLAME=Flame -SING_OPTIONS_RECORD_WHEREAMI=Opcions de micro -SING_OPTIONS_RECORD_DESC=configuració del micro -SING_OPTIONS_RECORD_CARD=Tarjeta de so -SING_OPTIONS_RECORD_INPUT=Entrada -SING_OPTIONS_RECORD_CHANNEL=Canal - -SING_OPTIONS_ADVANCED_WHEREAMI=Opcions Avançades -SING_OPTIONS_ADVANCED_DESC=opcions avançades -SING_OPTIONS_ADVANCED_EFFECTSING=Efectes de cantar -SING_OPTIONS_ADVANCED_SCREENFADE=Fos de pantalla -SING_OPTIONS_ADVANCED_LOADANIMATION=Animació càrrega -SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Prequnta abans d'esborrar -SING_OPTIONS_ADVANCED_LINEBONUS=Bonus de línia -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= -SING_OPTIONS_ADVANCED_ONSONGCLICK=després de triar cançó -SING_OPTIONS_ADVANCED_PARTYPOPUP=Menú Automàtic de festa +SING_LEGEND_SELECT=Seleccionar +SING_LEGEND_NAVIGATE=Navegar +SING_LEGEND_CONTINUE=Continuar +SING_LEGEND_ESC=Enrere -SING_EDIT=Editor -SING_EDIT_MENU_DESCRIPTION=crea cançons - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Importar text de fitxer midi -SING_EDIT_BUTTON_DESCRIPTION_EXIT=tornar -SING_EDIT_BUTTON_CONVERT=Importar -SING_EDIT_BUTTON_EXIT=enrere - -SING_EDIT_NAVIGATE=navegar -SING_EDIT_SELECT=triar -SING_EDIT_EXIT=enrere - -SING_LEGEND_SELECT=seleccionar -SING_LEGEND_NAVIGATE=navegar -SING_LEGEND_CONTINUE=continuar -SING_LEGEND_ESC=enrere - -SING_PLAYER_DESC=entrar nom de jugador/s -SING_PLAYER_WHEREAMI=Nom dels jugadors -SING_PLAYER_ENTER_NAME=introduir nom - -SING_DIFFICULTY_DESC=triar dificultat -SING_DIFFICULTY_WHEREAMI=Dificultat -SING_DIFFICULTY_CONTINUE=a selecció de cançó -SING_EASY=Fàcil -SING_MEDIUM=Mitjà -SING_HARD=Difícil - -SING_SONG_SELECTION_DESC=triar cançó -SING_SONG_SELECTION_WHEREAMI=Selecció de cançons -SING_SONG_SELECTION_GOTO=Anar a .. -SING_SONG_SELECTION=selecció de cançons -SING_SONG_SELECTION_MENU=menú -SING_SONG_SELECTION_PLAYLIST=llista +SING_SONG_SELECTION=Selecció de cançons +SING_SONG_SELECTION_MENU=Menú +SING_SONG_SELECTION_PLAYLIST=LLista +SING_SONG_IN_CAT=Cançon SING_SONGS_IN_CAT=Cançons PLAYLIST_CATTEXT=Playlist: %s - -;TODO: SING_TIME=TIME -SING_TOTAL=total -SING_MODE=cantar sol -SING_NOTES=notes -SING_GOLDEN_NOTES=notes daurades -SING_PHRASE_BONUS=bonus de línia +SING_SONG_SELECTION_LEGEND_TITLE=Llegenda +SING_SONG_SELECTION_LEGEND_VIDEO=Vídeo +SING_SONG_SELECTION_LEGEND_MEDLEY=Versió curta +SING_SONG_SELECTION_LEGEND_MEDLEYC=Versió curta calculada +SING_SONG_SELECTION_LEGEND_DUET=Duo + +SING_TOTAL=Total +SING_MODE=Cantar sol +SING_NOTES=Notes +SING_GOLDEN_NOTES=Notes daurades +SING_PHRASE_BONUS=Bonus de línia SING_MENU=Menú principal -SONG_SCORE=puntuació cançó +SONG_SCORE=Puntuació cançó SONG_SCORE_WHEREAMI=Puntuació SING_SCORE_TONE_DEAF=Sense oïda @@ -235,28 +333,26 @@ SING_SCORE_LEAD_SINGER=Bon cantant SING_SCORE_SUPERSTAR=Estrella SING_SCORE_ULTRASTAR=Super estrella -SING_TOP_5_CHARTS=millors 5 jugadors -SING_TOP_5_CHARTS_WHEREAMI=millors 5 -SING_TOP_5_CHARTS_CONTINUE=a selecció de cançó -SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=switch difficulty +SING_TOP_5_CHARTS=Millors 5 jugadors +SING_TOP_5_CHARTS_WHEREAMI=Millors 5 +SING_TOP_5_CHARTS_CONTINUE=A selecció de cançó +SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Switch difficulty -POPUP_PERFECT=perfecte! -POPUP_AWESOME=genial! -POPUP_GREAT=molt bo! -POPUP_GOOD=esta bé! -POPUP_NOTBAD=pots millorar! -POPUP_BAD=malament! -POPUP_POOR=pobre! -POPUP_AWFUL=boo fora! +POPUP_PERFECT=Perfecte! +POPUP_AWESOME=Genial! +POPUP_GREAT=Molt bo! +POPUP_GOOD=Esta bé! +POPUP_NOTBAD=Pots millorar! +POPUP_BAD=Malament! +POPUP_POOR=Pobre! +POPUP_AWFUL=Boo fora! IMPLODE_GLUE1=, IMPLODE_GLUE2= i -SONG_MENU_NAME_MAIN=menú de cançons +SONG_MENU_NAME_MAIN=Menú de cançons SONG_MENU_PLAY=Cantar SONG_MENU_CHANGEPLAYERS=Canviar jugadors -SONG_MENU_EDIT=Editar -SONG_MENU_MODI=Cantar un Modi SONG_MENU_CANCEL=Cancel·lar SONG_MENU_NAME_PLAYLIST=Menú de cançons @@ -264,8 +360,8 @@ SONG_MENU_PLAYLIST_ADD=Afegir Cançó SONG_MENU_PLAYLIST_DEL=Esborrar Cançó SONG_MENU_NAME_PLAYLIST_ADD=Afegir Song -SONG_MENU_PLAYLIST_ADD_NEW=a nova llista -SONG_MENU_PLAYLIST_ADD_EXISTING=a llista existent +SONG_MENU_PLAYLIST_ADD_NEW=A nova llista +SONG_MENU_PLAYLIST_ADD_EXISTING=A llista existent SONG_MENU_PLAYLIST_NOEXISTING=No hi ha llistes SONG_MENU_NAME_PLAYLIST_NEW=Nova llista @@ -277,77 +373,67 @@ SONG_MENU_YES=Si SONG_MENU_NO=No SONG_MENU_NAME_PLAYLIST_LOAD=Obrir llista -SONG_MENU_PLAYLIST_LOAD=obrir -SONG_MENU_PLAYLIST_DELCURRENT=esborrar llista +SONG_MENU_PLAYLIST_LOAD=Obrir +SONG_MENU_PLAYLIST_DELCURRENT=Esborrar llista SONG_MENU_NAME_PLAYLIST_DEL=Esborrar llista? SONG_MENU_NAME_PARTY_MAIN=Menú festa SONG_MENU_JOKER=Comodí -SONG_MENU_NAME_PARTY_JOKER=utilitzar comodí +SONG_MENU_NAME_PARTY_JOKER=Utilitzar comodí -SONG_JUMPTO_DESC=buscar cançó +SONG_JUMPTO_DESC=Buscar cançó SONG_JUMPTO_TYPE_DESC=Buscar: -SONG_JUMPTO_TYPE1=Tot -SONG_JUMPTO_TYPE2=Títol -SONG_JUMPTO_TYPE3=Artista -SONG_JUMPTO_SONGSFOUND=%d Cançons trobades -SONG_JUMPTO_NOSONGSFOUND=No s'han trobat cançons -SONG_JUMPTO_HELP=Introduir text a cercar -SONG_JUMPTO_CATTEXT=Cercant: %s - -PARTY_MODE=mode festa + +PARTY_MODE=Mode festa PARTY_DIFFICULTY=Dificultat PARTY_PLAYLIST=Mode llista PARTY_PLAYLIST_ALL=Tot PARTY_PLAYLIST_CATEGORY=Directori -PARTY_PLAYLIST_PLAYLIST=llista +PARTY_PLAYLIST_PLAYLIST=LLista PARTY_TEAMS=Equips PARTY_TEAMS_PLAYER1=Player Team1 PARTY_TEAMS_PLAYER2=Player Team2 PARTY_TEAMS_PLAYER3=Player Team3 -PARTY_LEGEND_CONTINUE=continuar +PARTY_LEGEND_CONTINUE=Continuar -PARTY_OPTIONS_DESC=opcions mode festa +PARTY_OPTIONS_DESC=Opcions mode festa PARTY_OPTIONS_WHEREAMI=Opcions Festa -PARTY_PLAYER_DESC=introduïr noms de jugadors i equips -PARTY_PLAYER_WHEREAMI=Noms -PARTY_PLAYER_ENTER_NAME=introduïr noms - +PARTY_PLAYER_ENTER_NAME=Introduïr noms -;TODO: PARTY_ROUNDS_DESC=Select which modes you want to play -;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds -PARTY_ROUNDS_LEGEND_CONTINUE=iniciar festa -;TODO: PARTY_ROUNDCOUNT=Number of rounds -;TODO: PARTY_SELECTMODE=Round %d +PARTY_ROUNDS_LEGEND_CONTINUE=Iniciar festa +PARTY_ROUNDCOUNT=Nombre de rondes +PARTY_SELECTMODE=Rondes %d -PARTY_ROUND_DESC=següent jugador al micro -PARTY_ROUND_WHEREAMI=Següent Ronda -PARTY_ROUND_LEGEND_CONTINUE=iniciar ronda +PARTY_ROUND_LEGEND_CONTINUE=Iniciar ronda PARTY_SONG_WHEREAMI=Selecció de cançó mode festa -PARTY_SONG_LEGEND_CONTINUE=cantar -PARTY_SONG_MENU=menú festa +PARTY_SONG_LEGEND_CONTINUE=Cantar +PARTY_SONG_MENU=Menú festa -PARTY_SCORE_DESC=puntuació de l'última ronda +OPTION_VALUE_SING=Cantar +OPTION_VALUE_SELECT_PLAYERS=Seleccioneu els jugadors +OPTION_VALUE_OPEN_MENU=Menú obert + +PARTY_SCORE_DESC=Puntuació de l'última ronda PARTY_SCORE_WHEREAMI=Punts mode festa -PARTY_WIN_DESC=guanyador de la festa +PARTY_WIN_DESC=Guanyador de la festa PARTY_WIN_WHEREAMI=Guanyador -PARTY_WIN_LEGEND_CONTINUE=tornar al menú principal +PARTY_WIN_LEGEND_CONTINUE=Tornar al menú principal PARTY_ROUND=Ronda PARTY_ROUND_WINNER=Guanyador -PARTY_NOTPLAYEDYET=no s'ha jugat encara -PARTY_NOBODY=ningú +PARTY_NOTPLAYEDYET=No s'ha jugat encara +PARTY_NOBODY=Ningú NEXT_ROUND=Següent ronda: PARTY_DISMISSED=Abandona! PARTY_SCORE_WINS=%s -PARTY_SCORE_WINS2=guanya! +PARTY_SCORE_WINS2=Guanya! ;TODO: MODE_RANDOM_NAME=Random Mode ;TODO: MODE_RANDOM_DESC=Keep yourself on your toes! The game will select a mode for you at random! @@ -407,8 +493,6 @@ MODE_DUEL_NAME=Duel ;TODO: MODE_HARDCORE_DESC=Battle for a three-line lead on your opponent! STAT_MAIN=Estadístiques -STAT_MAIN_DESC=General -STAT_MAIN_WHEREAMI=Estadístiques STAT_OVERVIEW_INTRO=%0:s Estadístiques\nÚltima reinicialització %2:.2d.%1:.2d.%3:d STAT_OVERVIEW_SONG=%0:d Cançons(%3:d amb Video), de les que %1:d ya han sonat i %2:d encara no s'han jugat mai.\n La cançó més popular és %5:s de %4:s. @@ -422,7 +506,7 @@ STAT_DETAIL_WHEREAMI=Estadístiques STAT_NEXT=Següent pàgina STAT_PREV=Pàgina anterior STAT_REVERSE=Ordre invers -STAT_PAGE=%0:d de %1:d Pàgines\n (%2:d de %3:d Entrades) +STAT_PAGE=%0:d de %1:d Pàgines\n Entrades %2:d de %3:d STAT_DESC_SCORES=Màximes puntuacions STAT_DESC_SCORES_REVERSED=Mínimes puntuacions @@ -440,119 +524,12 @@ STAT_DESC_BANDS=Grups més populars STAT_DESC_BANDS_REVERSED=Grups menys populars STAT_FORMAT_BANDS=%0:s \n %1:dx Cantades -;TODO: SCREENSHOT_SAVED=Screenshot saved -;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot - -;TODO: INFO_FILE_SAVED=File saved -;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file -;TODO: ERROR_FILE_NOT_FOUND=File not found - -;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? -;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected - -MSG_ERROR_TITLE=Error -;TODO: MSG_INFO_TITLE=Information -MSG_QUESTION_TITLE=Qüestió -MSG_QUIT_USDX=Realment vols sortir d'UltraStar? -MSG_END_PARTY=Realment vols sortir del mode festa? - -ERROR_NO_SONGS=No hi ha cançons -ERROR_NO_PLUGINS=No hi ha Plugins -;TODO: ERROR_NO_MODES_FOR_CURRENT_SETUP=No modes available for current player/team setup -;TODO: ERROR_CAN_NOT_START_PARTY=An error occurred starting the party game -ERROR_CORRUPT_SONG=No es poden carregar les cançons -ERROR_CORRUPT_SONG_FILE_NOT_FOUND=No es pot carregar: Fitxer no trobat -ERROR_CORRUPT_SONG_NO_NOTES=No es pot carregar: No s'han trobat notes -ERROR_CORRUPT_SONG_NO_BREAKS=No es pot carregar: No s'han trobat línies -ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=No es pot carregar: Error llegint línia %0:d -;TODO: ERROR_NO_EDITOR=This feature is not available on this version. -;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options -;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options - -;TODO: SING_OPTIONS_NETWORK=Internet -;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options -;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings -;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... -;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password -;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name -;TODO: SING_OPTIONS_NETWORK_AUTO_MODE=Auto -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) -;TODO: SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! -;TODO: SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? -;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert -;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete - -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 -OPTION_ALL_PLAYERS=Tot -OPTION_ALL_SCORES=Tot -;TODO: OPTION_VALUE_SAVE=Save -;TODO: OPTION_VALUE_SEND=Send - -;TODO: MSG_INSERT_USER_TITLE=%0:s -;TODO: MSG_INSERT_USER_DESC=Fill the fields: -;TODO: MSG_INSERT_USER_ADD=Add -MSG_INSERT_USER_CANCEL=Cancel·lar - -;TODO: WEBSITE_NO_CONNECTION=No website connection! -;TODO: WEBSITE_LOGIN_ERROR=Login Incorrect! -;TODO: WEBSITE_BLANK_LOGIN=There are blank fields! -;TODO: WEBSITE_EXIST_USER=Existing user! -;TODO: WEBSITE_ERROR_SCORE=Scoring Error! -;TODO: WEBSITE_OK_SEND=Score sent successfully! -;TODO: WEBSITE_ERROR_SCORE_DUPLICATED=Existing Score! -;TODO: WEBSITE_ERROR_SONG=Song Not Found! -;TODO: WEBSITE_SAVE_SCORE=Score save successfully! -;TODO: WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? - -;TODO: SONG_MENU_REFRESH_SCORES=Update Scores -;TODO: SONG_MENU_REFRESH_SCORES_TITLE=Update -;TODO: SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! -;TODO: SONG_MENU_REFRESH_SCORES_ONLINE=Online -;TODO: SONG_MENU_REFRESH_SCORES_FILE=File -;TODO: SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites -;TODO: SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs -;TODO: SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song -;TODO: SONG_MENU_REFRESH_SCORES_REFRESH=Update -;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! -;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! - -;TODO: SONG_SCORE_MAX=Best: -;TODO: SONG_SCORE_MEDIA=Average: - -;TODO: SCORE_SEND_DESC=Send Score -;TODO: SCORE_SEND=Send -;TODO: SCORE_SEND_PLAYER=Player -;TODO: SCORE_SEND_OTHER_USER= Other Username -;TODO: SCORE_SAVE=Save - -;TODO: SCORE_DOWNLOAD_TITLE=Download -;TODO: SCORE_DOWNLOAD_SONG=Song: -;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... -;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... -SCORE_DOWNLOAD_CANCEL=Cancel·lar -;TODO: SCORE_DOWNLOAD_OK=OK -;TODO: SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! - -;TODO: SING_OPTIONS_GAME_SHOWSCORES=Show Scores -;TODO: OPTION_VALUE_WHEN_EXISTS=When Exists - ;TODO: PARTY_SELECT_MODE=Mode ;TODO: PARTY_MODE_CLASSIC=Classic ;TODO: PARTY_MODE_CLASSIC_FREE=Classic Free ;TODO: PARTY_MODE_CHALLENGE=Challenge ;TODO: PARTY_MODE_TOURNAMENT=Tournament ;TODO: PARTY_MODE_JUKEBOX=Jukebox -;TODO: PARTY_MODE_NOT_AVAILABLE=Not Available! ;TODO: PARTY_MODE_TOURNAMENT_PLAYER_DESC=Insert number and players name ;TODO: PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Number of Players @@ -561,43 +538,10 @@ SCORE_DOWNLOAD_CANCEL=Cancel·lar ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Semifinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Quarterfinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL=Round of 16 -PARTY_MODE_TOURNAMENT_ROUNDS_DESC=següent jugador al micro +PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Següent jugador al micro ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -;TODO: INFO_FILE_SAVED=File saved -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - -;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! -;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! - ;TODO: MSG_END_JUKEBOX=Do you want leave Jukebox Mode? ;TODO: JUKEBOX_RANDOM=Random ;TODO: JUKEBOX_REPEAT=Repeat @@ -609,8 +553,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=següent jugador al micro ;TODO: SONG_MENU_SONG=Song ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Menú de cançons ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -626,33 +568,6 @@ SONG_MENU_SORTING_ALL=Tot ;TODO: SONG_MENU_SORTING_DUET=Duets ;TODO: SONG_MENU_SORTING_APPLY=Apply -;TODO: SING_OPTIONS_WEBCAM=Webcam -;TODO: SING_OPTIONS_WEBCAM_DESC=Webcam Settings -;TODO: SING_OPTIONS_WEBCAM_WHEREAMI=Webcam Options -;TODO: SING_OPTIONS_WEBCAM_ID=Webcam -SING_OPTIONS_WEBCAM_RESOLUTION=Resolucị -;TODO: SING_OPTIONS_WEBCAM_FPS=FPS -;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! -;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip -SING_OPTIONS_WEBCAM_EFFECT=Efecte -;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation -;TODO: SING_OPTIONS_WEBCAM_HUE=Hue -;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview -;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview - -;TODO: SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal -;TODO: SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Grayscale -;TODO: SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Black & White -;TODO: SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negative -;TODO: SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image -;TODO: SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate -SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Llindar -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges -;TODO: SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized -;TODO: SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode - ;TODO: PARTY_PLAYLIST_MANUAL=Manual Selection ;TODO: PARTY_MODE_JUKEBOX_NO_SONGS=Playlist is empty! ;TODO: SONG_MENU_OPEN_CATEGORY=Open category @@ -663,60 +578,8 @@ SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Llindar ;TODO: WEBSITE_EXIST_SONG=The song belongs to the website: %0:s ;TODO: WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! -;TODO: NAME_PLAYERS_COUNT=Number of Players -;TODO: NAME_CURRENT_PLAYER=Player - -SING_OPTIONS_GAME_SONGMENU=Menú de cançons -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List -;TODO: OPTION_VALUE_MOSAIC=Tile - -;TODO: SING_OPTIONS_JUKEBOX=Jukebox -;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox -;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options - -OPTION_VALUE_TO_SING=cantar -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next -;TODO: OPTION_VALUE_OTHER=Other -;TODO: OPTION_VALUE_FILL=Fill -;TODO: OPTION_VALUE_OUTLINE=Outline -;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -;TODO: OPTION_VALUE_SALMON=Salmon -;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige -;TODO: OPTION_VALUE_TEAL=Teal -;TODO: OPTION_VALUE_ORCHID=Orchid -;TODO: OPTION_VALUE_STEELBLUE=Steel Blue -;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold -;TODO: OPTION_VALUE_DARKBLUE=Dark Blue -;TODO: OPTION_VALUE_SKY=Sky -;TODO: OPTION_VALUE_HARLEQUIN=Harlequin -;TODO: OPTION_VALUE_CYAN=Cyan -;TODO: OPTION_VALUE_FLAME=Flame - -;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height -;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha -JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Color -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Red -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Green -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blue +NAME_PLAYERS_COUNT=Nombre de jugadors +NAME_CURRENT_PLAYER=Jugador ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop @@ -727,24 +590,37 @@ JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Color ;TODO: JUKEBOX_SONGOPTIONS_DEFAULT=Default ;TODO: JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Saved! -;TODO: SING_SONG_CREDITS=Credits -;TODO: SING_JUKEBOX=Jukebox -;TODO: SING_JUKEBOX_DESC=Listen to my collection ;TODO: JUKEBOX_MODE=Jukebox Mode -;TODO: JUKEBOX_OPTIONS_DESC=Playlist Options -;TODO: JUKEBOX_OPTIONS_WHEREAMI=Jukebox Options -JUKEBOX_OPTIONS_PLAYLIST=llista -;TODO: JUKEBOX_OPTIONS_PLAYLIST_MODE=Mode +JUKEBOX_OPTIONS_PLAYLIST=LLista +JUKEBOX_OPTIONS_PLAYLIST_MODE=Mode -;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing -;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores -OPTION_VALUE_ALL=Tot -;TODO: OPTION_VALUE_PLAYER=Player - -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +ABOUT_MAIN=Quant a... +ABOUT_USDX_DEVELOPEDBY=Desenvolupat per +ABOUT_CHECK_CHECKING=S'estan cercant noves actualitzacions... +ABOUT_CHECK_AVAILABLE=Hi ha una nova versió disponible +ABOUT_CHECK_UPTODATE=WorldParty està actualitzat +ABOUT_CHECK_CONNECTION=No hi ha connexió a Internet +ABOUT_OVERVIEW=Descobreix una nova manera de cantar, sol, en parella o amb amics. \n La diversió està garantida.\n\nWorldParty és un fork de la versió original Ultrastar Deluxe 1.1 dissenyat i desenvolupat per l'equip UltraStar España, compta amb la comunitat de karaoke més gran.\n\n\nAquest programa és gratuït i libre sota la llicència GPL. \n\n Visiteu-nos per obtenir més informació.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Desenvolupat per +DEVELOPERS_OVERVIEW=Persones que han contribuït a aquest projecte:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Visiteu-nos per obtenir més informació.\n\nhttps://ultrastar-es.org + +SCREENSHOT_SAVED=S'ha desat la captura de pantalla +;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot + +MSG_ERROR_TITLE=Error +;TODO: MSG_INFO_TITLE=Information +MSG_QUESTION_TITLE=Qüestió +MSG_QUIT_USDX=Realment vols sortir d'UltraStar? +MSG_END_PARTY=Realment vols sortir del mode festa? + +ERROR_NO_SONGS=No hi ha cançons +ERROR_NO_PLUGINS=No hi ha Plugins +;TODO: ERROR_LOADING_SONGS=Wait for loading all the songs +ERROR_CORRUPT_SONG=No es poden carregar les cançons +ERROR_CORRUPT_SONG_FILE_NOT_FOUND=No es pot carregar: Fitxer no trobat +ERROR_CORRUPT_SONG_NO_NOTES=No es pot carregar: No s'han trobat notes +ERROR_CORRUPT_SONG_NO_BREAKS=No es pot carregar: No s'han trobat línies +ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=No es pot carregar: Error llegint línia %0:d +ERROR_PLAYER_DEVICE_ASSIGNMENT=Jugador %d s'assigna a diversos micròfons. Comproveu les opcions del micròfon. +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Jugador %d no està assignat a un micròfon. Comproveu les opcions del micròfon. diff --git a/game/languages/Dansk.ini b/game/languages/Dansk.ini index ec62b01f..d77f97cd 100644 --- a/game/languages/Dansk.ini +++ b/game/languages/Dansk.ini @@ -1,220 +1,318 @@ [Text] LANGUAGE=Dansk -OPTION_VALUE_EASY=Let -OPTION_VALUE_MEDIUM=Normal -OPTION_VALUE_HARD=Svær - -;TODO: OPTION_VALUE_ON=On -;TODO: OPTION_VALUE_OFF=Off - -;TODO: OPTION_VALUE_EDITION=Edition -;TODO: OPTION_VALUE_GENRE=Genre -OPTION_VALUE_LANGUAGE=Sprog -OPTION_VALUE_FOLDER=Mappe -OPTION_VALUE_TITLE=Titel -OPTION_VALUE_ARTIST=Kunstner -;TODO: OPTION_VALUE_TITLE2=Title2 -;TODO: OPTION_VALUE_ARTIST2=Artist2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade -OPTION_VALUE_PLAYLIST=Afspilningsliste - -;TODO: OPTION_VALUE_BORDERLESS=Borderless - -;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image - -;TODO: OPTION_VALUE_SMALL=Small -;TODO: OPTION_VALUE_BIG=Big - -;TODO: OPTION_VALUE_HALF=Half -;TODO: OPTION_VALUE_FULL_VID=Full (Video) -;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video) - -;TODO: OPTION_VALUE_GAIN_SOFT=Soft -;TODO: OPTION_VALUE_GAIN_MEDIUM=Medium -;TODO: OPTION_VALUE_GAIN_HARD=Hard - -;TODO: OPTION_VALUE_AUTO=Auto -;TODO: OPTION_VALUE_SEC=Second -;TODO: OPTION_VALUE_SECS=Seconds - -;TODO: OPTION_VALUE_PLAIN=Plain -;TODO: OPTION_VALUE_OLINE1=OLine1 -;TODO: OPTION_VALUE_OLINE2=OLine2 - -;TODO: OPTION_VALUE_SIMPLE=Simple -;TODO: OPTION_VALUE_ZOOM=Zoom -;TODO: OPTION_VALUE_SLIDE=Slide -;TODO: OPTION_VALUE_BALL=Ball -;TODO: OPTION_VALUE_SHIFT=Shift - -;TODO: OPTION_VALUE_EURO=Euro -;TODO: OPTION_VALUE_JAPAN=Japan -;TODO: OPTION_VALUE_AMERICAN=American - -;TODO: OPTION_VALUE_BLUE=Blue -;TODO: OPTION_VALUE_GREEN=Green -;TODO: OPTION_VALUE_PINK=Pink -;TODO: OPTION_VALUE_RED=Red -;TODO: OPTION_VALUE_VIOLET=Violet -;TODO: OPTION_VALUE_ORANGE=Orange -;TODO: OPTION_VALUE_YELLOW=Yellow -;TODO: OPTION_VALUE_BROWN=Brown -;TODO: OPTION_VALUE_BLACK=Black - -OPTION_VALUE_SING=Syng -;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players -;TODO: OPTION_VALUE_OPEN_MENU=Open Menu - -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor -;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor - SING_LOADING=Loader... +SING_LOADING_SONGS=Indlæser sange fra mappe %s -SING_CHOOSE_MODE=Vælg modus SING_SING=Syng SING_SING_DESC=Hurtigt spil: Syng solo eller duet SING_MULTI=Fest SING_MULTI_DESC=Syng i fest modus -SING_TOOLS=Værktøjer +;TODO: SING_JUKEBOX=Jukebox +;TODO: SING_JUKEBOX_DESC=Listen to my collection SING_STATS=stats SING_STATS_DESC=Se statestikker -SING_EDITOR=editor -SING_EDITOR_DESC=Lav dine egne sange - SING_GAME_OPTIONS=Spil Indstillinger SING_GAME_OPTIONS_DESC=Ændre spil Indstillinger SING_EXIT=Forlad SING_EXIT_DESC=Forlad spillet +SING_ABOUT=Om +SING_ABOUT_DESC=Om Ultrastar Deluxe WorldParty + +SING_PLAYER_TITLE=Profiler +SING_PLAYER_READY=Spillere klar til at synge +SING_PLAYER_COUNT=Antal spillere +SING_PLAYER_EDIT=Tilpas en spiller +SING_PLAYER_NAME=Skriv dit navn +SING_PLAYER_COLOR=Vælg en farve +SING_PLAYER_LEVEL=Vælg et niveau +SING_PLAYER_AVATAR=Vælg din avatar + +OPTION_VALUE_EASY=Let +OPTION_VALUE_MEDIUM=Normal +OPTION_VALUE_HARD=Svær + SING_OPTIONS=Indstillinger -SING_OPTIONS_DESC=Ændre Instillinger -SING_OPTIONS_WHEREAMI=Indstillinger SING_OPTIONS_GAME=Spil SING_OPTIONS_GRAPHICS=Grafik SING_OPTIONS_SOUND=Lyd -;TODO: SING_OPTIONS_INPUT=Input SING_OPTIONS_LYRICS=Tekster SING_OPTIONS_THEMES=Temaer -SING_OPTIONS_RECORD=Optag +SING_OPTIONS_MICROPHONES=Optag SING_OPTIONS_ADVANCED=Advanceret +;TODO: SING_OPTIONS_NETWORK=Internet +;TODO: SING_OPTIONS_WEBCAM=Webcam +;TODO: SING_OPTIONS_JUKEBOX=Jukebox SING_OPTIONS_EXIT=Tilbage -SING_OPTIONS_GAME_WHEREAMI=Spil Indstillinger -SING_OPTIONS_GAME_DESC=Generelle Spil Indstillinger -SING_OPTIONS_GAME_PLAYERS=Spillere -SING_OPTIONS_GAME_DIFFICULTY=Sværhedsgrad SING_OPTIONS_GAME_LANGUAGE=Sprog +SING_OPTIONS_GAME_SONGMENU=Sang Menu SING_OPTIONS_GAME_TABS=Tabs SING_OPTIONS_GAME_SORTING=Sorting -SING_OPTIONS_GAME_DEBUG=Debug +;TODO: SING_OPTIONS_GAME_SHOWSCORES=Show Scores +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Aktiver gamepad + +OPTION_VALUE_ROULETTE=Roulette +OPTION_VALUE_CHESSBOARD=Skakbræt +OPTION_VALUE_CAROUSEL=Karrusel +OPTION_VALUE_SLOT_MACHINE=Spilleautomat +OPTION_VALUE_LIST=Liste +OPTION_VALUE_MOSAIC=Flise + +OPTION_VALUE_ON=På +OPTION_VALUE_OFF=Af + +;TODO: OPTION_VALUE_EDITION=Edition +;TODO: OPTION_VALUE_GENRE=Genre +OPTION_VALUE_LANGUAGE=Sprog +OPTION_VALUE_FOLDER=Mappe +OPTION_VALUE_TITLE=Titel +OPTION_VALUE_ARTIST=Kunstner +;TODO: OPTION_VALUE_ARTIST2=Artist2 +OPTION_VALUE_YEAR=År +OPTION_VALUE_DECADE=Årti +OPTION_VALUE_PLAYLIST=Afspilningsliste + +;TODO: OPTION_VALUE_WHEN_EXISTS=When Exists -SING_OPTIONS_GRAPHICS_WHEREAMI=Grafik Indstillinger -SING_OPTIONS_GRAPHICS_DESC=Grafik Indstillinger -SING_OPTIONS_GRAPHICS_RESOLUTION=Opløsning SING_OPTIONS_GRAPHICS_FULLSCREEN=Fuldskærm -SING_OPTIONS_GRAPHICS_DEPTH=Farve dybte -;TODO: SING_OPTIONS_GRAPHICS_VISUALIZER=Visualization -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oscilloskop -SING_OPTIONS_GRAPHICS_LINEBONUS=Linie Bonus +SING_OPTIONS_GRAPHICS_RESOLUTION=Opløsning +SING_OPTIONS_GRAPHICS_SCREENFADE=Skærm Fading +SING_OPTIONS_GRAPHICS_EFFECTSING=Sang Effekter +SING_OPTIONS_GRAPHICS_VISUALIZER=Visualisering SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Film Størrelse -SING_OPTIONS_SOUND_WHEREAMI=Lyd Indstillinger -SING_OPTIONS_SOUND_DESC=Lyd Indstillinger -;TODO: SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Microphone Playback -;TODO: SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Background music -SING_OPTIONS_SOUND_MIC_BOOST=Mikrofon Boost +;TODO: OPTION_VALUE_BORDERLESS=Borderless + +;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video +;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image + +;TODO: OPTION_VALUE_HALF=Half +;TODO: OPTION_VALUE_FULL_VID=Full (Video) +;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video) + +SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Mikrofon afspilning +SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Baggrunds musik SING_OPTIONS_SOUND_CLICK_ASSIST=Click assist SING_OPTIONS_SOUND_BEAT_CLICK=Beat click -SING_OPTIONS_SOUND_THRESHOLD=Tærskel -SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=2 Spiller modus ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Frosmag Volume SING_OPTIONS_SOUND_PREVIEWFADING=Forsmag Fader -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support +;TODO: OPTION_VALUE_GAIN_SOFT=Soft +;TODO: OPTION_VALUE_GAIN_MEDIUM=Medium +;TODO: OPTION_VALUE_GAIN_HARD=Hard + +;TODO: OPTION_VALUE_AUTO=Auto +;TODO: OPTION_VALUE_SEC=Second +;TODO: OPTION_VALUE_SECS=Seconds -SING_OPTIONS_LYRICS_WHEREAMI=Tekst Indstillinger -SING_OPTIONS_LYRICS_DESC=Tekst Indstillinger SING_OPTIONS_LYRICS_FONT=Tekst Type SING_OPTIONS_LYRICS_EFFECT=Effekt -SING_OPTIONS_LYRICS_SOLMIZATION=Solmization ;TODO: SING_OPTIONS_LYRICS_NOTELINES=Staves -SING_OPTIONS_THEMES_WHEREAMI=Tema Indstillinger -SING_OPTIONS_THEMES_DESC=Tema og Skin Indstillinger +;TODO: OPTION_VALUE_PLAIN=stylized +;TODO: OPTION_VALUE_OLINE1=with thin edge +;TODO: OPTION_VALUE_OLINE2=with thick edge + +;TODO: OPTION_VALUE_SIMPLE=Simple +;TODO: OPTION_VALUE_ZOOM=Zoom +;TODO: OPTION_VALUE_SLIDE=Slide +;TODO: OPTION_VALUE_BALL=Ball +;TODO: OPTION_VALUE_SHIFT=Shift + SING_OPTIONS_THEMES_THEME=Tema SING_OPTIONS_THEMES_SKIN=Skin SING_OPTIONS_THEMES_COLOR=Farve -SING_OPTIONS_RECORD_WHEREAMI=Optagelses Indstillinger -SING_OPTIONS_RECORD_DESC=Mikrofon Indstillinger -SING_OPTIONS_RECORD_CARD=Lydkort -SING_OPTIONS_RECORD_INPUT=Input -SING_OPTIONS_RECORD_CHANNEL=Kanal - -SING_OPTIONS_ADVANCED_WHEREAMI=Advancerede Indstillinger -SING_OPTIONS_ADVANCED_DESC=Advancerede Indstillinger -SING_OPTIONS_ADVANCED_EFFECTSING=Sang Effekter -SING_OPTIONS_ADVANCED_SCREENFADE=Skærm Fading -SING_OPTIONS_ADVANCED_LOADANIMATION=Load Animation -SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Savety Questions -SING_OPTIONS_ADVANCED_LINEBONUS=Linie Bonus -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= +SING_OPTIONS_MICROPHONES_CARD=Lydkort +SING_OPTIONS_MICROPHONES_INPUT=Input +SING_OPTIONS_MICROPHONES_CHANNEL=Kanal +SING_OPTIONS_MICROPHONES_THRESHOLD=Tærskel +SING_OPTIONS_MICROPHONES_MIC_BOOST=Mikrofon Boost + +SING_OPTIONS_ADVANCED_DEBUG=Fejlfinde +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Oscilloskop SING_OPTIONS_ADVANCED_ONSONGCLICK=Efter sang valg +SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Savety Questions SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto Festmodus +;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing +;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores -SING_EDIT=editor -SING_EDIT_MENU_DESCRIPTION=Lav dine egne sange +OPTION_VALUE_ALL=Alle +;TODO: OPTION_VALUE_PLAYER=Player -;TODO: SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Import text from midi file -SING_EDIT_BUTTON_DESCRIPTION_EXIT=Tilbage -;TODO: SING_EDIT_BUTTON_CONVERT=Import -SING_EDIT_BUTTON_EXIT=Tilbage +;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... +;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website +;TODO: SING_OPTIONS_NETWORK_USERNAME=Username +;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password +;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name +;TODO: SING_OPTIONS_NETWORK_AUTO_MODE=Auto +SING_OPTIONS_NETWORK_AUTO_PLAYER=Spiller +;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) +;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) +;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) +;TODO: SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! +;TODO: SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? +;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert +;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete -SING_EDIT_NAVIGATE=Naviger -SING_EDIT_SELECT=Vælg -SING_EDIT_EXIT=Tilbage +OPTION_PLAYER_1=Spiller 1 +OPTION_PLAYER_2=Spiller 2 +OPTION_PLAYER_3=Spiller 3 +OPTION_PLAYER_4=Spiller 4 +OPTION_PLAYER_5=Spiller 5 +OPTION_PLAYER_6=Spiller 6 +OPTION_ALL_PLAYERS=Alle +OPTION_ALL_SCORES=Alle +OPTION_VALUE_SAVE=Gemme +OPTION_VALUE_SEND=Sende + +MSG_INSERT_USER_TITLE=%0:s +;TODO: MSG_INSERT_USER_DESC=Fill the fields: +;TODO: MSG_INSERT_USER_ADD=Add +MSG_INSERT_USER_CANCEL=Annuller + +;TODO: WEBSITE_NO_CONNECTION=No website connection! +;TODO: WEBSITE_LOGIN_ERROR=Login Incorrect! +;TODO: WEBSITE_BLANK_LOGIN=There are blank fields! +;TODO: WEBSITE_EXIST_USER=Existing user! +;TODO: WEBSITE_ERROR_SCORE=Scoring Error! +;TODO: WEBSITE_OK_SEND=Score sent successfully! +;TODO: WEBSITE_ERROR_SCORE_DUPLICATED=Existing Score! +;TODO: WEBSITE_ERROR_SONG=Song Not Found! +;TODO: WEBSITE_SAVE_SCORE=Score save successfully! +;TODO: WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? + +;TODO: SONG_MENU_REFRESH_SCORES=Update Scores +;TODO: SONG_MENU_REFRESH_SCORES_TITLE=Update +;TODO: SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! +;TODO: SONG_MENU_REFRESH_SCORES_ONLINE=Online +;TODO: SONG_MENU_REFRESH_SCORES_FILE=File +;TODO: SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites +;TODO: SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs +;TODO: SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song +;TODO: SONG_MENU_REFRESH_SCORES_REFRESH=Update +;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! +;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! + +SONG_SCORE_MAX=Bedst: +SONG_SCORE_MEDIA=Gennemsnit: + +;TODO: SCORE_SEND_DESC=Send Score +;TODO: SCORE_SEND=Send +;TODO: SCORE_SEND_PLAYER=Player +;TODO: SCORE_SEND_OTHER_USER= Other Username +;TODO: SCORE_SAVE=Save + +;TODO: SCORE_DOWNLOAD_TITLE=Download +;TODO: SCORE_DOWNLOAD_SONG=Song: +;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... +;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... +SCORE_DOWNLOAD_CANCEL=Annuller +;TODO: SCORE_DOWNLOAD_OK=OK +;TODO: SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! + +;TODO: SING_OPTIONS_WEBCAM_ID=Webcam +SING_OPTIONS_WEBCAM_RESOLUTION=Opløsning +;TODO: SING_OPTIONS_WEBCAM_FPS=FPS +;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip +;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness +;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation +;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +SING_OPTIONS_WEBCAM_EFFECT=Effekt +;TODO: SING_OPTIONS_WEBCAM_PREVIEW=Activate preview + +;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview +;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview +SING_OPTIONS_WEBCAM_NO_WEBCAM=Ingen Webcam fundet! +;TODO: SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal +;TODO: SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Grayscale +;TODO: SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Black & White +;TODO: SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negative +;TODO: SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image +;TODO: SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate +SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Tærskel +;TODO: SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges +;TODO: SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur +;TODO: SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized +;TODO: SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode + +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Gennemsigtighed +JUKEBOX_SONGOPTIONS_LYRIC_LINE=Linje +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property +JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Farve +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Rød +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Grøn +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blå + +;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options +;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect +;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width +;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height +;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options +JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Størrelse +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position + +OPTION_VALUE_TO_SING=Syng +OPTION_VALUE_ACTUAL=Øverst +OPTION_VALUE_NEXT=Bund +OPTION_VALUE_OTHER=Andet +;TODO: OPTION_VALUE_FILL=Fill +;TODO: OPTION_VALUE_OUTLINE=Outline +OPTION_VALUE_BLUE=Blå +OPTION_VALUE_GREEN=Grøn +OPTION_VALUE_PINK=Lyserød +OPTION_VALUE_RED=Rød +;TODO: OPTION_VALUE_VIOLET=Violet +;TODO: OPTION_VALUE_ORANGE=Orange +OPTION_VALUE_YELLOW=Gul +OPTION_VALUE_BROWN=Brun +OPTION_VALUE_BLACK=Sort +OPTION_VALUE_MAGENTA=Magenta +OPTION_VALUE_GRAY=Grå +OPTION_VALUE_WHITE=Hvid +;TODO: OPTION_VALUE_TURQUOISE=Turquoise +;TODO: OPTION_VALUE_SALMON=Salmon +;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow +;TODO: OPTION_VALUE_LAVENDER=Lavender +;TODO: OPTION_VALUE_BEIGE=Beige +;TODO: OPTION_VALUE_TEAL=Teal +;TODO: OPTION_VALUE_ORCHID=Orchid +;TODO: OPTION_VALUE_STEELBLUE=Steel Blue +;TODO: OPTION_VALUE_PLUM=Plum +;TODO: OPTION_VALUE_CHOCOLATE=Chocolate +;TODO: OPTION_VALUE_GOLD=Gold +;TODO: OPTION_VALUE_DARKBLUE=Dark Blue +;TODO: OPTION_VALUE_SKY=Sky +;TODO: OPTION_VALUE_HARLEQUIN=Harlequin +;TODO: OPTION_VALUE_CYAN=Cyan +;TODO: OPTION_VALUE_FLAME=Flame SING_LEGEND_SELECT=Vælg SING_LEGEND_NAVIGATE=Naviger SING_LEGEND_CONTINUE=Fortsæt SING_LEGEND_ESC=Tilbage -SING_PLAYER_DESC=Skriv Spiller Navn/e -SING_PLAYER_WHEREAMI=Spiller Navne -SING_PLAYER_ENTER_NAME=Skriv navn - -SING_DIFFICULTY_DESC=Vælg Sværhedsgrad -SING_DIFFICULTY_WHEREAMI=Sværhedsgrad -SING_DIFFICULTY_CONTINUE=Til sang valg -SING_EASY=Let -SING_MEDIUM=Normal -SING_HARD=Svær - -SING_SONG_SELECTION_DESC=Vælg Din Sang -SING_SONG_SELECTION_WHEREAMI=Sang Valg -SING_SONG_SELECTION_GOTO=Gå Til .. SING_SONG_SELECTION=Sang Valg SING_SONG_SELECTION_MENU=Menu SING_SONG_SELECTION_PLAYLIST=Afspilningsliste +SING_SONG_IN_CAT=Song SING_SONGS_IN_CAT=Songs PLAYLIST_CATTEXT=Playlist: %s +SING_SONG_SELECTION_LEGEND_TITLE=Legende +SING_SONG_SELECTION_LEGEND_VIDEO=Video +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Duet -;TODO: SING_TIME=TIME SING_TOTAL=Total SING_MODE=Syng Solo SING_NOTES=Noder @@ -255,8 +353,6 @@ IMPLODE_GLUE2= og SONG_MENU_NAME_MAIN=Sang Menu SONG_MENU_PLAY=Syng SONG_MENU_CHANGEPLAYERS=Skift Spillere -SONG_MENU_EDIT=Ændre -SONG_MENU_MODI=Sing a Modi SONG_MENU_CANCEL=Annuller SONG_MENU_NAME_PLAYLIST=Sang Menu @@ -289,13 +385,6 @@ SONG_MENU_NAME_PARTY_JOKER=Brug Jokeren SONG_JUMPTO_DESC=Søg Sang SONG_JUMPTO_TYPE_DESC=Søg Efter: -SONG_JUMPTO_TYPE1=Alle -SONG_JUMPTO_TYPE2=Titel -SONG_JUMPTO_TYPE3=Kunstner -SONG_JUMPTO_SONGSFOUND=%d Sang(e) fundet! -SONG_JUMPTO_NOSONGSFOUND=Ingen Sange Fundet -SONG_JUMPTO_HELP=Skriv Teksten Du Vil Søge Efter -SONG_JUMPTO_CATTEXT=Søg Efter: %s PARTY_MODE=Fest modus PARTY_DIFFICULTY=Sværhedsgrad @@ -313,25 +402,22 @@ PARTY_LEGEND_CONTINUE=Fortsæt PARTY_OPTIONS_DESC=Indstillinger for Fest spil PARTY_OPTIONS_WHEREAMI=Fest Indstillinger -PARTY_PLAYER_DESC=Skriv Spiller of Team Navn! -PARTY_PLAYER_WHEREAMI=Fest navne PARTY_PLAYER_ENTER_NAME=Skriv Navne - -;TODO: PARTY_ROUNDS_DESC=Select which modes you want to play -;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds PARTY_ROUNDS_LEGEND_CONTINUE=Start Fest Spil ;TODO: PARTY_ROUNDCOUNT=Number of rounds ;TODO: PARTY_SELECTMODE=Round %d -PARTY_ROUND_DESC=Næste spillere til mikrofonerne -PARTY_ROUND_WHEREAMI=Fest Næste runde PARTY_ROUND_LEGEND_CONTINUE=Start runde PARTY_SONG_WHEREAMI=Fest Sang-Valg PARTY_SONG_LEGEND_CONTINUE=Syng PARTY_SONG_MENU=Fest menu +OPTION_VALUE_SING=Syng +;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players +;TODO: OPTION_VALUE_OPEN_MENU=Open Menu + PARTY_SCORE_DESC=Sidste Rundes Score PARTY_SCORE_WHEREAMI=Fest Point @@ -407,8 +493,6 @@ MODE_BLIND_NAME=Blind Modus ;TODO: MODE_HARDCORE_DESC=Battle for a three-line lead on your opponent! STAT_MAIN=Statestikker -STAT_MAIN_DESC=Generelle -STAT_MAIN_WHEREAMI=Statestikker STAT_OVERVIEW_INTRO=%0:s Statistics. \n Last Reset at %2:.2d.%1:.2d.%3:d STAT_OVERVIEW_SONG=%0:d Songs(%3:d with Video), whereof %1:d already were played and %2:d were not played yet.\n The most popular Song is %5:s from %4:s. @@ -422,7 +506,7 @@ STAT_DETAIL_WHEREAMI=Detaljerede Statestikker STAT_NEXT=Næste Side STAT_PREV=Tidligere Side STAT_REVERSE=Omvendt Orden -STAT_PAGE=Seite %0:d of %1:d Pages\n (%2:d of %3:d Entrys) +STAT_PAGE=Seite %0:d of %1:d Pages \n Entries %2:d of %3:d STAT_DESC_SCORES=HighScore STAT_DESC_SCORES_REVERSED=LowScore @@ -440,119 +524,12 @@ STAT_DESC_BANDS=Mest Populære Bands STAT_DESC_BANDS_REVERSED=Mindst Populære Bands STAT_FORMAT_BANDS=%0:s \n %1:dx Sung -;TODO: SCREENSHOT_SAVED=Screenshot saved -;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot - -;TODO: INFO_FILE_SAVED=File saved -;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file -;TODO: ERROR_FILE_NOT_FOUND=File not found - -;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? -;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected - -MSG_ERROR_TITLE=Fejl -;TODO: MSG_INFO_TITLE=Information -MSG_QUESTION_TITLE=Spørgsmål -MSG_QUIT_USDX=Vil du virkelig forlade UltraStar? -MSG_END_PARTY=Vil du virkelig forlade fest Modus? - -ERROR_NO_SONGS=Ingen Sange hentet -ERROR_NO_PLUGINS=Igen Plugins hentet -;TODO: ERROR_NO_MODES_FOR_CURRENT_SETUP=No modes available for current player/team setup -;TODO: ERROR_CAN_NOT_START_PARTY=An error occurred starting the party game -ERROR_CORRUPT_SONG=Sangen kunne ikke hentes. -;TODO: ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Song could not be loaded: File not found -;TODO: ERROR_CORRUPT_SONG_NO_NOTES=Song could not be loaded: Can''t find any notes -;TODO: ERROR_CORRUPT_SONG_NO_BREAKS=Song could not be loaded: Can''t find any linebreaks -;TODO: ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song could not be loaded: Error parsing line %0:d -;TODO: ERROR_NO_EDITOR=This feature is not available on this version. -;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options -;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options - -;TODO: SING_OPTIONS_NETWORK=Internet -;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options -;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings -;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... -;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password -;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name -;TODO: SING_OPTIONS_NETWORK_AUTO_MODE=Auto -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) -;TODO: SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! -;TODO: SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? -;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert -;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete - -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 -OPTION_ALL_PLAYERS=Alle -OPTION_ALL_SCORES=Alle -;TODO: OPTION_VALUE_SAVE=Save -;TODO: OPTION_VALUE_SEND=Send - -;TODO: MSG_INSERT_USER_TITLE=%0:s -;TODO: MSG_INSERT_USER_DESC=Fill the fields: -;TODO: MSG_INSERT_USER_ADD=Add -MSG_INSERT_USER_CANCEL=Annuller - -;TODO: WEBSITE_NO_CONNECTION=No website connection! -;TODO: WEBSITE_LOGIN_ERROR=Login Incorrect! -;TODO: WEBSITE_BLANK_LOGIN=There are blank fields! -;TODO: WEBSITE_EXIST_USER=Existing user! -;TODO: WEBSITE_ERROR_SCORE=Scoring Error! -;TODO: WEBSITE_OK_SEND=Score sent successfully! -;TODO: WEBSITE_ERROR_SCORE_DUPLICATED=Existing Score! -;TODO: WEBSITE_ERROR_SONG=Song Not Found! -;TODO: WEBSITE_SAVE_SCORE=Score save successfully! -;TODO: WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? - -;TODO: SONG_MENU_REFRESH_SCORES=Update Scores -;TODO: SONG_MENU_REFRESH_SCORES_TITLE=Update -;TODO: SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! -;TODO: SONG_MENU_REFRESH_SCORES_ONLINE=Online -;TODO: SONG_MENU_REFRESH_SCORES_FILE=File -;TODO: SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites -;TODO: SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs -;TODO: SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song -;TODO: SONG_MENU_REFRESH_SCORES_REFRESH=Update -;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! -;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! - -;TODO: SONG_SCORE_MAX=Best: -;TODO: SONG_SCORE_MEDIA=Average: - -;TODO: SCORE_SEND_DESC=Send Score -;TODO: SCORE_SEND=Send -;TODO: SCORE_SEND_PLAYER=Player -;TODO: SCORE_SEND_OTHER_USER= Other Username -;TODO: SCORE_SAVE=Save - -;TODO: SCORE_DOWNLOAD_TITLE=Download -;TODO: SCORE_DOWNLOAD_SONG=Song: -;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... -;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... -SCORE_DOWNLOAD_CANCEL=Annuller -;TODO: SCORE_DOWNLOAD_OK=OK -;TODO: SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! - -;TODO: SING_OPTIONS_GAME_SHOWSCORES=Show Scores -;TODO: OPTION_VALUE_WHEN_EXISTS=When Exists - ;TODO: PARTY_SELECT_MODE=Mode ;TODO: PARTY_MODE_CLASSIC=Classic ;TODO: PARTY_MODE_CLASSIC_FREE=Classic Free ;TODO: PARTY_MODE_CHALLENGE=Challenge ;TODO: PARTY_MODE_TOURNAMENT=Tournament ;TODO: PARTY_MODE_JUKEBOX=Jukebox -;TODO: PARTY_MODE_NOT_AVAILABLE=Not Available! ;TODO: PARTY_MODE_TOURNAMENT_PLAYER_DESC=Insert number and players name ;TODO: PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Number of Players @@ -565,39 +542,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Næste spillere til mikrofonerne ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -;TODO: INFO_FILE_SAVED=File saved -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - -;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! -;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! - ;TODO: MSG_END_JUKEBOX=Do you want leave Jukebox Mode? ;TODO: JUKEBOX_RANDOM=Random ;TODO: JUKEBOX_REPEAT=Repeat @@ -607,10 +551,8 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Næste spillere til mikrofonerne ;TODO: SING_ERROR_DUET_MODE_PARTY = Duet! Not playable in Party Mode! -;TODO: SONG_MENU_SONG=Song +SONG_MENU_SONG=Sang ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Sang Menu ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -626,33 +568,6 @@ SONG_MENU_SORTING_ALL=Alle ;TODO: SONG_MENU_SORTING_DUET=Duets ;TODO: SONG_MENU_SORTING_APPLY=Apply -;TODO: SING_OPTIONS_WEBCAM=Webcam -;TODO: SING_OPTIONS_WEBCAM_DESC=Webcam Settings -;TODO: SING_OPTIONS_WEBCAM_WHEREAMI=Webcam Options -;TODO: SING_OPTIONS_WEBCAM_ID=Webcam -SING_OPTIONS_WEBCAM_RESOLUTION=Opløsning -;TODO: SING_OPTIONS_WEBCAM_FPS=FPS -;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! -;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip -SING_OPTIONS_WEBCAM_EFFECT=Effekt -;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation -;TODO: SING_OPTIONS_WEBCAM_HUE=Hue -;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview -;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview - -;TODO: SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal -;TODO: SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Grayscale -;TODO: SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Black & White -;TODO: SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negative -;TODO: SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image -;TODO: SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate -SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Tærskel -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges -;TODO: SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized -;TODO: SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode - ;TODO: PARTY_PLAYLIST_MANUAL=Manual Selection ;TODO: PARTY_MODE_JUKEBOX_NO_SONGS=Playlist is empty! ;TODO: SONG_MENU_OPEN_CATEGORY=Open category @@ -666,58 +581,6 @@ SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Tærskel ;TODO: NAME_PLAYERS_COUNT=Number of Players ;TODO: NAME_CURRENT_PLAYER=Player -SING_OPTIONS_GAME_SONGMENU=Sang Menu -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List -;TODO: OPTION_VALUE_MOSAIC=Tile - -;TODO: SING_OPTIONS_JUKEBOX=Jukebox -;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox -;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options - -OPTION_VALUE_TO_SING=Syng -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next -;TODO: OPTION_VALUE_OTHER=Other -;TODO: OPTION_VALUE_FILL=Fill -;TODO: OPTION_VALUE_OUTLINE=Outline -;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -;TODO: OPTION_VALUE_SALMON=Salmon -;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige -;TODO: OPTION_VALUE_TEAL=Teal -;TODO: OPTION_VALUE_ORCHID=Orchid -;TODO: OPTION_VALUE_STEELBLUE=Steel Blue -;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold -;TODO: OPTION_VALUE_DARKBLUE=Dark Blue -;TODO: OPTION_VALUE_SKY=Sky -;TODO: OPTION_VALUE_HARLEQUIN=Harlequin -;TODO: OPTION_VALUE_CYAN=Cyan -;TODO: OPTION_VALUE_FLAME=Flame - -;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height -;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha -JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Farve -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Red -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Green -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blue - ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=LetterBox @@ -727,24 +590,37 @@ JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Farve ;TODO: JUKEBOX_SONGOPTIONS_DEFAULT=Default ;TODO: JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Saved! -;TODO: SING_SONG_CREDITS=Credits -;TODO: SING_JUKEBOX=Jukebox -;TODO: SING_JUKEBOX_DESC=Listen to my collection ;TODO: JUKEBOX_MODE=Jukebox Mode -;TODO: JUKEBOX_OPTIONS_DESC=Playlist Options -;TODO: JUKEBOX_OPTIONS_WHEREAMI=Jukebox Options JUKEBOX_OPTIONS_PLAYLIST=Afspilningsliste ;TODO: JUKEBOX_OPTIONS_PLAYLIST_MODE=Mode -;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing -;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores -OPTION_VALUE_ALL=Alle -;TODO: OPTION_VALUE_PLAYER=Player +ABOUT_MAIN=Om... +ABOUT_USDX_DEVELOPEDBY=Udviklet af +;TODO: ABOUT_CHECK_CHECKING=Checking for new updates... +;TODO: ABOUT_CHECK_AVAILABLE=There is a new version available +;TODO: ABOUT_CHECK_UPTODATE=WorldParty is up to date +;TODO: ABOUT_CHECK_CONNECTION=There is no Internet connection +ABOUT_OVERVIEW=Opdag en ny måde at synge, alene, par eller venner med. \n Sjov er garanteret.\n\nWorldParty er en gaffel af den oprindelige version Ultrastar Deluxe 1.1 designet og udviklet af UltraStar España Team, tæller det med det største karaoke-fællesskab.\n\n\nDette program er gratis og libre under GPL-licensen. \n\n Besøg os for mere information.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Udviklet af +DEVELOPERS_OVERVIEW=Folk der har bidraget til dette projekt:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Besøg os for mere information.\n\nhttps://ultrastar-es.org + +;TODO: SCREENSHOT_SAVED=Screenshot saved +;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot + +MSG_ERROR_TITLE=Fejl +;TODO: MSG_INFO_TITLE=Information +MSG_QUESTION_TITLE=Spørgsmål +MSG_QUIT_USDX=Vil du virkelig forlade UltraStar? +MSG_END_PARTY=Vil du virkelig forlade fest Modus? -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +ERROR_NO_SONGS=Ingen Sange hentet +ERROR_NO_PLUGINS=Igen Plugins hentet +;TODO: ERROR_LOADING_SONGS=Wait for loading all the songs +ERROR_CORRUPT_SONG=Sangen kunne ikke hentes. +;TODO: ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Song could not be loaded: File not found +;TODO: ERROR_CORRUPT_SONG_NO_NOTES=Song could not be loaded: Can''t find any notes +;TODO: ERROR_CORRUPT_SONG_NO_BREAKS=Song could not be loaded: Can''t find any linebreaks +;TODO: ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song could not be loaded: Error parsing line %0:d +;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your microphone options +;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your microphone options \ No newline at end of file diff --git a/game/languages/Deutsch.ini b/game/languages/Deutsch.ini index 5f14d418..703219b5 100644 --- a/game/languages/Deutsch.ini +++ b/game/languages/Deutsch.ini @@ -1,10 +1,71 @@ [Text] LANGUAGE=Deutsch +SING_LOADING=Lädt... +;TODO: SING_LOADING_SONGS=Loading songs from folder %s + +SING_SING=Singen +SING_SING_DESC=Singen + +SING_MULTI=Party +SING_MULTI_DESC=Rundenbasiertes Teamspiel + +SING_JUKEBOX=Jukebox +SING_JUKEBOX_DESC=Spiele meine Sammlung ab + +SING_STATS=Statistiken +SING_STATS_DESC=Die Statistiken anschauen + +SING_GAME_OPTIONS=Spieloptionen +SING_GAME_OPTIONS_DESC=Verändere die Spieleinstellungen + +SING_EXIT=Beenden +SING_EXIT_DESC=Spiel verlassen + +SING_ABOUT=Über +SING_ABOUT_DESC=Über Utrastar Deluxe WorldParty + +;TODO: SING_PLAYER_TITLE=Profiles +SING_PLAYER_READY=Spieler bereit zum Singen +SING_PLAYER_COUNT=Anzahl der Spieler +;TODO: SING_PLAYER_EDIT=Customize a player +SING_PLAYER_NAME=Schreib deinen Namen +SING_PLAYER_COLOR=Wähle eine Farbe +SING_PLAYER_LEVEL=Wähle ein Level +SING_PLAYER_AVATAR=Wähle deinen Avatar + OPTION_VALUE_EASY=Einfach OPTION_VALUE_MEDIUM=Mittel OPTION_VALUE_HARD=Schwierig +SING_OPTIONS=Optionen + +SING_OPTIONS_GAME=Spiel +SING_OPTIONS_GRAPHICS=Grafik +SING_OPTIONS_SOUND=Sound +SING_OPTIONS_LYRICS=Lyrics +SING_OPTIONS_THEMES=Design +SING_OPTIONS_MICROPHONES=Mikrofone +SING_OPTIONS_ADVANCED=Erweitert +SING_OPTIONS_NETWORK=Internet +SING_OPTIONS_WEBCAM=Webcam +SING_OPTIONS_JUKEBOX=Jukebox +SING_OPTIONS_EXIT=Zurück + +SING_OPTIONS_GAME_LANGUAGE=Sprache +SING_OPTIONS_GAME_SONGMENU=Menü +SING_OPTIONS_GAME_TABS=Ordner +SING_OPTIONS_GAME_SORTING=Sortierung +SING_OPTIONS_GAME_SHOWSCORES=Punktzahl anzeigen +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Aktiviere das Gamepad + +OPTION_VALUE_ROULETTE=Roulette +OPTION_VALUE_CHESSBOARD=Raster +OPTION_VALUE_CAROUSEL=Karussell +OPTION_VALUE_SLOT_MACHINE=Walze +OPTION_VALUE_LIST=Liste +OPTION_VALUE_MOSAIC=Kacheln + OPTION_VALUE_ON=An OPTION_VALUE_OFF=Aus @@ -14,24 +75,37 @@ OPTION_VALUE_LANGUAGE=Sprache OPTION_VALUE_FOLDER=Ordner OPTION_VALUE_TITLE=Titel OPTION_VALUE_ARTIST=Künstler -OPTION_VALUE_TITLE2=Titel2 OPTION_VALUE_ARTIST2=Künstler2 OPTION_VALUE_YEAR=Jahr OPTION_VALUE_DECADE=Dekade OPTION_VALUE_PLAYLIST=Playlist +OPTION_VALUE_WHEN_EXISTS=Wenn vorhanden + +SING_OPTIONS_GRAPHICS_FULLSCREEN=Vollbild +SING_OPTIONS_GRAPHICS_RESOLUTION=Auflösung +SING_OPTIONS_GRAPHICS_SCREENFADE=Bildschirm-Fade +SING_OPTIONS_GRAPHICS_EFFECTSING=Singeffekte +SING_OPTIONS_GRAPHICS_VISUALIZER=Visualisierung +SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Videogröße + OPTION_VALUE_BORDERLESS=Fenster-Vollbild OPTION_VALUE_WHENNOVIDEO=Wenn kein Video OPTION_VALUE_WHENNOVIDEOANDIMAGE=Wenn kein Video und kein Bild -OPTION_VALUE_SMALL=Klein -OPTION_VALUE_BIG=Groß - OPTION_VALUE_HALF=Halb OPTION_VALUE_FULL_VID=Voll (Video) OPTION_VALUE_FULL_VID_BG=Voll (HG & Video) +SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Mikrofon Wiedergabe +SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Hintergrundmusik +SING_OPTIONS_SOUND_CLICK_ASSIST=Click-Assistent +SING_OPTIONS_SOUND_BEAT_CLICK=Beat-Click +SING_OPTIONS_SOUND_MUSICAUTOGAIN=Normalisierung +SING_OPTIONS_SOUND_PREVIEWVOLUME=Vorschau Lautst. +SING_OPTIONS_SOUND_PREVIEWFADING=Vorschau Fading + OPTION_VALUE_GAIN_SOFT=Sanft OPTION_VALUE_GAIN_MEDIUM=Medium OPTION_VALUE_GAIN_HARD=Hart @@ -40,9 +114,13 @@ OPTION_VALUE_AUTO=Automatisch OPTION_VALUE_SEC=Sekunde OPTION_VALUE_SECS=Sekunden -OPTION_VALUE_PLAIN=Einfach -OPTION_VALUE_OLINE1=OLine1 -OPTION_VALUE_OLINE2=OLine2 +SING_OPTIONS_LYRICS_FONT=Schriftart +SING_OPTIONS_LYRICS_EFFECT=Effekt +SING_OPTIONS_LYRICS_NOTELINES=Notenlinien + +;TODO: OPTION_VALUE_PLAIN=Stylized +;TODO: OPTION_VALUE_OLINE1=With thin edge +;TODO: OPTION_VALUE_OLINE2=With thick edge OPTION_VALUE_SIMPLE=Einfach OPTION_VALUE_ZOOM=Vergrößern @@ -50,171 +128,191 @@ OPTION_VALUE_SLIDE=Rutschen OPTION_VALUE_BALL=Ball OPTION_VALUE_SHIFT=Schieben -OPTION_VALUE_EURO=Europäisch -OPTION_VALUE_JAPAN=Japanisch -OPTION_VALUE_AMERICAN=Amerikanisch - -OPTION_VALUE_BLUE=Blau -OPTION_VALUE_GREEN=Grün -OPTION_VALUE_PINK=Rosa -OPTION_VALUE_RED=Rot -OPTION_VALUE_VIOLET=Violett -OPTION_VALUE_ORANGE=Orange -OPTION_VALUE_YELLOW=Gelb -OPTION_VALUE_BROWN=Braun -OPTION_VALUE_BLACK=Schwarz - -OPTION_VALUE_SING=Singen -OPTION_VALUE_SELECT_PLAYERS=Spieler auswählen -OPTION_VALUE_OPEN_MENU=Menü öffnen - -OPTION_VALUE_SYSTEM_CURSOR=An [Systemzeiger] -OPTION_VALUE_GAME_CURSOR=An [Spielzeiger] -OPTION_VALUE_HARDWARE_CURSOR=Hardware Zeiger -OPTION_VALUE_SOFTWARE_CURSOR=Software Zeiger - -SING_LOADING=Lädt... - -SING_CHOOSE_MODE=Modus wählen -SING_SING=Singen -SING_SING_DESC=Singen - -SING_MULTI=Party -SING_MULTI_DESC=Rundenbasiertes Teamspiel - -SING_TOOLS=Werkzeuge +SING_OPTIONS_THEMES_THEME=Design +SING_OPTIONS_THEMES_SKIN=Skin +SING_OPTIONS_THEMES_COLOR=Farbe -SING_STATS=Statistiken -SING_STATS_DESC=Die Statistiken anschauen +SING_OPTIONS_MICROPHONES_CARD=Soundkarte +SING_OPTIONS_MICROPHONES_INPUT=Eingang +SING_OPTIONS_MICROPHONES_CHANNEL=Kanal +SING_OPTIONS_MICROPHONES_THRESHOLD=Rauschunterdr. +SING_OPTIONS_MICROPHONES_MIC_BOOST=Mic-Anhebung -SING_EDITOR=Editor -SING_EDITOR_DESC=Erstelle deinen eigenen Song +SING_OPTIONS_ADVANCED_DEBUG=Debug +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Oszilloskop +SING_OPTIONS_ADVANCED_ONSONGCLICK=Nach Songauswahl +SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Sicherheitsabfr. +SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto Party-Menü +SING_OPTIONS_ADVANCED_TOPSCORES=Höchstpunktzahlen +SING_OPTIONS_ADVANCED_SINGSCORES=Punkte vergeben -SING_GAME_OPTIONS=Spieloptionen -SING_GAME_OPTIONS_DESC=Verändere die Spieleinstellungen +OPTION_VALUE_ALL=Alle +OPTION_VALUE_PLAYER=Spieler -SING_EXIT=Beenden -SING_EXIT_DESC=Spiel verlassen +SING_OPTIONS_NETWORK_INSERT_USER_INFO=Drücke 'Einfügen' um Spieler dem Internet hinzuzufügen. +SING_OPTIONS_NETWORK_WEBSITE=Webseite +SING_OPTIONS_NETWORK_USERNAME=Benutzername +SING_OPTIONS_NETWORK_PASSWORD=Passwort +SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Spielername +SING_OPTIONS_NETWORK_AUTO_MODE=Automatisch +SING_OPTIONS_NETWORK_AUTO_PLAYER=Spieler +SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto Senden (Einfach) +SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto Senden (Mittel) +SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto Senden (Schwierig) +SING_OPTIONS_NETWORK_NO_DLL=Kein kompatibles Ranglisten-Plugin gefunden! +SING_OPTIONS_NETWORK_DELETE_PLAYER=Spieler %0:s wirklich von der Webseite %1:s löschen? +SING_OPTIONS_NETWORK_LEGEND_INSERT=Einfg +SING_OPTIONS_NETWORK_LEGEND_DELETE=Entf -SING_OPTIONS=Optionen -SING_OPTIONS_DESC=Einstellungen verändern -SING_OPTIONS_WHEREAMI=Optionen +OPTION_PLAYER_1=Spieler 1 +OPTION_PLAYER_2=Spieler 2 +OPTION_PLAYER_3=Spieler 3 +OPTION_PLAYER_4=Spieler 4 +OPTION_PLAYER_5=Spieler 5 +OPTION_PLAYER_6=Spieler 6 +OPTION_ALL_PLAYERS=Allem +OPTION_ALL_SCORES=Allem +OPTION_VALUE_SAVE=Speichern +OPTION_VALUE_SEND=Senden -SING_OPTIONS_GAME=Spiel -SING_OPTIONS_GRAPHICS=Grafik -SING_OPTIONS_SOUND=Sound -SING_OPTIONS_INPUT=Eingabe -SING_OPTIONS_LYRICS=Lyrics -SING_OPTIONS_THEMES=Design -SING_OPTIONS_RECORD=Aufnahme -SING_OPTIONS_ADVANCED=Erweitert -SING_OPTIONS_EXIT=zurück +MSG_INSERT_USER_TITLE=%0:s +MSG_INSERT_USER_DESC=Felder eintragen: +MSG_INSERT_USER_ADD=Hinzufügen +MSG_INSERT_USER_CANCEL=Abbrechen -SING_OPTIONS_GAME_WHEREAMI=Spieloptionen -SING_OPTIONS_GAME_DESC=Allgemeine Spieleinstellungen -SING_OPTIONS_GAME_PLAYERS=Spieler -SING_OPTIONS_GAME_DIFFICULTY=Schwierigkeit -SING_OPTIONS_GAME_LANGUAGE=Sprache -SING_OPTIONS_GAME_TABS=Ordner -SING_OPTIONS_GAME_SORTING=Sortierung -SING_OPTIONS_GAME_DEBUG=Debug +WEBSITE_NO_CONNECTION=Keine Verbindung zu Webseite! +WEBSITE_LOGIN_ERROR=Login nicht richtig! +WEBSITE_BLANK_LOGIN=Es sind leere Felder vorhanden! +WEBSITE_EXIST_USER=Benutzer existiert bereits! +WEBSITE_ERROR_SCORE=Fehler bei Punktzahlübertragung! +WEBSITE_OK_SEND=Punktzahl erfolgreich übermittelt! +WEBSITE_ERROR_SCORE_DUPLICATED=Punktzahl bereits vorhanden! +WEBSITE_ERROR_SONG=Song nicht gefunden! +WEBSITE_SAVE_SCORE=Punktzahl erfolgreich gesichert! +WEBSITE_NO_CONNECTION_SAVE=Keine Verbindung zur Webseite! Benutzer trotzdem sichern? -SING_OPTIONS_GRAPHICS_WHEREAMI=Grafikoptionen -SING_OPTIONS_GRAPHICS_DESC=Grafikeinstellungen -SING_OPTIONS_GRAPHICS_RESOLUTION=Auflösung -SING_OPTIONS_GRAPHICS_FULLSCREEN=Vollbild -SING_OPTIONS_GRAPHICS_DEPTH=Farbtiefe -SING_OPTIONS_GRAPHICS_VISUALIZER=Visualisierung -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oszilloskop -SING_OPTIONS_GRAPHICS_LINEBONUS=Phrasenbonus -SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Videogröße +SONG_MENU_REFRESH_SCORES=Punktzahl aktualisieren +SONG_MENU_REFRESH_SCORES_TITLE=Aktualisieren +SONG_MENU_REFRESH_SCORES_NO_WEB=Es sind keine Webseiten eingetragen! +SONG_MENU_REFRESH_SCORES_ONLINE=Online +SONG_MENU_REFRESH_SCORES_FILE=Datei +SONG_MENU_REFRESH_SCORES_ALL_WEB=Alle Webseiten +SONG_MENU_REFRESH_SCORES_ALL_SONGS=Alle Songs +SONG_MENU_REFRESH_SCORES_ONLY_SONG=Diesen Song +SONG_MENU_REFRESH_SCORES_REFRESH=Update +SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Fehler beim Verbindungsaufbau zur Webseite: %0:s! +SONG_MENU_REFRESH_SCORES_ERROR_FILE=Datei nicht gefunden: '%0:s [Download Scores]'! -SING_OPTIONS_SOUND_WHEREAMI=Soundoptionen -SING_OPTIONS_SOUND_DESC=Soundeinstellungen -SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Mikrofon Wiedergabe -SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Hintergrundmusik -SING_OPTIONS_SOUND_MIC_BOOST=Mic-Anhebung -SING_OPTIONS_SOUND_CLICK_ASSIST=Click-Assistent -SING_OPTIONS_SOUND_BEAT_CLICK=Beat-Click -SING_OPTIONS_SOUND_THRESHOLD=Rauschunterdr. -SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=2-Spieler-Modus -SING_OPTIONS_SOUND_MUSICAUTOGAIN=Normalisierung -SING_OPTIONS_SOUND_PREVIEWVOLUME=Vorschau Lautst. -SING_OPTIONS_SOUND_PREVIEWFADING=Vorschau Fading +SONG_SCORE_MAX=Beste: +SONG_SCORE_MEDIA=Durchschnitt: -SING_OPTIONS_INPUT_WHEREAMI=Eingabeeinstellungen -SING_OPTIONS_INPUT_DESC=Eingabeeinstellungen -SING_OPTIONS_INPUT_MOUSE=Maus -SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller Support +SCORE_SEND_DESC=Punktzahl hochladen +SCORE_SEND=Senden +SCORE_SEND_PLAYER=Spieler +SCORE_SEND_OTHER_USER=Anderer Spielername +SCORE_SAVE=Speichern -SING_OPTIONS_LYRICS_WHEREAMI=Lyricsoptionen -SING_OPTIONS_LYRICS_DESC=Einstellungen für die Lyrics -SING_OPTIONS_LYRICS_FONT=Schriftart -SING_OPTIONS_LYRICS_EFFECT=Effekt -SING_OPTIONS_LYRICS_SOLMIZATION=Solmisation -SING_OPTIONS_LYRICS_NOTELINES=Notenlinien +SCORE_DOWNLOAD_TITLE=Download +SCORE_DOWNLOAD_SONG=Song: +SCORE_DOWNLOAD_CREATE_LIST=Liste aufbauen... +SCORE_DOWNLOAD_RECEIVE_LIST=Herunterladend... +SCORE_DOWNLOAD_CANCEL=Abbrechen +SCORE_DOWNLOAD_OK=OK +SCORE_DOWNLOAD_SONG_UPDATE=%0:d Song(s) sind von der Webseite verschieden! -SING_OPTIONS_THEMES_WHEREAMI=Designoptionen -SING_OPTIONS_THEMES_DESC=Design und Skineinstellungen -SING_OPTIONS_THEMES_THEME=Design -SING_OPTIONS_THEMES_SKIN=Skin -SING_OPTIONS_THEMES_COLOR=Farbe +SING_OPTIONS_WEBCAM_ID=Webcam +SING_OPTIONS_WEBCAM_RESOLUTION=Auflösung +SING_OPTIONS_WEBCAM_FPS=Bildfrequenz +SING_OPTIONS_WEBCAM_FLIP=Drehen +SING_OPTIONS_WEBCAM_BRIGHTNESS=Helligkeit +SING_OPTIONS_WEBCAM_SATURATION=Sättigung +SING_OPTIONS_WEBCAM_HUE=Farbton +SING_OPTIONS_WEBCAM_EFFECT=Effekt +;TODO: SING_OPTIONS_WEBCAM_PREVIEW=Activate preview -SING_OPTIONS_RECORD_WHEREAMI=Aufnahmeoptionen -SING_OPTIONS_RECORD_DESC=Mikrofoneinstellungen -SING_OPTIONS_RECORD_CARD=Soundkarte -SING_OPTIONS_RECORD_INPUT=Eingang -SING_OPTIONS_RECORD_CHANNEL=Kanal - -SING_OPTIONS_ADVANCED_WHEREAMI=Erweiterte Optionen -SING_OPTIONS_ADVANCED_DESC=Erweiterte Einstellungen -SING_OPTIONS_ADVANCED_EFFECTSING=Singeffekte -SING_OPTIONS_ADVANCED_SCREENFADE=Bildschirm-Fade -SING_OPTIONS_ADVANCED_LOADANIMATION=Lade-Animation -SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Sicherheitsabfr. -SING_OPTIONS_ADVANCED_LINEBONUS=Phrasenbonus -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= -SING_OPTIONS_ADVANCED_ONSONGCLICK=Nach Songauswahl -SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto Party-Menü +SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Vorschau aktivieren +SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Vorschau deaktivieren +SING_OPTIONS_WEBCAM_NO_WEBCAM=Keine Webcam gefunden! +SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal +SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Graustufen +SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Schwarz & Weiß +SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negativ +SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binärbild +SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilatieren +SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Schwellenwert +SING_OPTIONS_WEBCAM_EFFECT_EDGES=Kanten +SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Weichzeichnen +SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Ausgegleichen +SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erodieren -SING_EDIT=Editor -SING_EDIT_MENU_DESCRIPTION=Erstelle deinen eigenen Song +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Transparenz +JUKEBOX_SONGOPTIONS_LYRIC_LINE=Phrase +JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Art +JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Farbe +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Rot +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Grün +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blau -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Midi/Kar-Datei in Text exportieren -SING_EDIT_BUTTON_DESCRIPTION_EXIT=zurück -SING_EDIT_BUTTON_CONVERT=Importieren -SING_EDIT_BUTTON_EXIT=zurück +JUKEBOX_SONGOPTIONS_VIDEO=Video Optionen +JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Bildformat +JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Breite +JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Höhe +JUKEBOX_SONGOPTIONS_LYRIC=Lyricsoptionen +JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Größe +JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -SING_EDIT_NAVIGATE=Navigieren -SING_EDIT_SELECT=Auswählen -SING_EDIT_EXIT=zurück +OPTION_VALUE_TO_SING=Singen +OPTION_VALUE_ACTUAL=Aktuelle +OPTION_VALUE_NEXT=Nächste +OPTION_VALUE_OTHER=Other +OPTION_VALUE_FILL=Füllung +OPTION_VALUE_OUTLINE=Umriss +OPTION_VALUE_BLUE=Blau +OPTION_VALUE_GREEN=Grün +OPTION_VALUE_PINK=Rosa +OPTION_VALUE_RED=Rot +OPTION_VALUE_VIOLET=Violett +OPTION_VALUE_ORANGE=Orange +OPTION_VALUE_YELLOW=Gelb +OPTION_VALUE_BROWN=Braun +OPTION_VALUE_BLACK=Schwarz +OPTION_VALUE_MAGENTA=Magenta +OPTION_VALUE_GRAY=Grau +OPTION_VALUE_WHITE=Weiß +OPTION_VALUE_TURQUOISE=Türkis +OPTION_VALUE_SALMON=Lachsfarben +OPTION_VALUE_GREENYELLOW=Grüngelb +OPTION_VALUE_LAVENDER=Lavendel +OPTION_VALUE_BEIGE=Beige +OPTION_VALUE_TEAL=Blaugrün +OPTION_VALUE_ORCHID=Orchidee +OPTION_VALUE_STEELBLUE=Stahlblau +OPTION_VALUE_PLUM=Pflaume +OPTION_VALUE_CHOCOLATE=Schokolade +OPTION_VALUE_GOLD=Gold +OPTION_VALUE_DARKBLUE=Dunkelblau +OPTION_VALUE_SKY=Himmelblau +OPTION_VALUE_HARLEQUIN=Harlekin +OPTION_VALUE_CYAN=Cyan +OPTION_VALUE_FLAME=Flamme SING_LEGEND_SELECT=Auswählen SING_LEGEND_NAVIGATE=Navigieren SING_LEGEND_CONTINUE=Weiter -SING_LEGEND_ESC=zurück - -SING_PLAYER_DESC=Spielernamen eingeben. -SING_PLAYER_WHEREAMI=Spielernamen -SING_PLAYER_ENTER_NAME=Namen eingeben - -SING_DIFFICULTY_DESC=Schwierigkeitsgrad auswählen -SING_DIFFICULTY_WHEREAMI=Schwierigkeitsgrad -SING_DIFFICULTY_CONTINUE=zur Song-Auswahl -SING_EASY=Einfach -SING_MEDIUM=Mittel -SING_HARD=Schwierig - -SING_SONG_SELECTION_DESC=Wähle deinen Song -SING_SONG_SELECTION_WHEREAMI=Song-Auswahl -SING_SONG_SELECTION_GOTO=Gehe zu .. +SING_LEGEND_ESC=Zurück + SING_SONG_SELECTION=Song-Auswahl SING_SONG_SELECTION_MENU=Menü SING_SONG_SELECTION_PLAYLIST=Playlist +SING_SONG_IN_CAT=Song SING_SONGS_IN_CAT=Songs PLAYLIST_CATTEXT=Playlist: %s +SING_SONG_SELECTION_LEGEND_TITLE=Legende +SING_SONG_SELECTION_LEGEND_VIDEO=Video +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Duett -SING_TIME=ZEIT SING_TOTAL=Gesamt SING_MODE=Singmodus SING_NOTES=Noten @@ -255,8 +353,6 @@ IMPLODE_GLUE2= und SONG_MENU_NAME_MAIN=Menü SONG_MENU_PLAY=Singen SONG_MENU_CHANGEPLAYERS=Spieler wechseln -SONG_MENU_EDIT=Editor -SONG_MENU_MODI=Einen Modus singen SONG_MENU_CANCEL=Abbrechen SONG_MENU_NAME_PLAYLIST=Menü @@ -289,13 +385,6 @@ SONG_MENU_NAME_PARTY_JOKER=Joker einsetzen SONG_JUMPTO_DESC=Song suchen SONG_JUMPTO_TYPE_DESC=Suchen in: -SONG_JUMPTO_TYPE1=Allem -SONG_JUMPTO_TYPE2=Titel -SONG_JUMPTO_TYPE3=Artist -SONG_JUMPTO_SONGSFOUND=%d Song(s) gefunden -SONG_JUMPTO_NOSONGSFOUND=Keinen Song gefunden -SONG_JUMPTO_HELP=Suchtext eingeben -SONG_JUMPTO_CATTEXT=Suche nach: %s PARTY_MODE=Party-Modus PARTY_DIFFICULTY=Schwierigkeit @@ -308,30 +397,27 @@ PARTY_TEAMS_PLAYER1=Spieleranzahl PARTY_TEAMS_PLAYER2=Spieleranzahl PARTY_TEAMS_PLAYER3=Spieleranzahl -PARTY_LEGEND_CONTINUE=weiter +PARTY_LEGEND_CONTINUE=Weiter PARTY_OPTIONS_DESC=Einstellungen für das Partyspiel. PARTY_OPTIONS_WHEREAMI=Party Optionen -PARTY_PLAYER_DESC=Team- und Spielernamen eingeben. -PARTY_PLAYER_WHEREAMI=Party Spielernamen PARTY_PLAYER_ENTER_NAME=Namen eingeben - -PARTY_ROUNDS_DESC= Wähle welche Modi du spielen möchtest -PARTY_ROUNDS_WHEREAMI=Party Runden PARTY_ROUNDS_LEGEND_CONTINUE=Partyspiel starten PARTY_ROUNDCOUNT=Anzahl der Runden PARTY_SELECTMODE=Runde %d -PARTY_ROUND_DESC=Die nächsten Spieler an die Mikros! -PARTY_ROUND_WHEREAMI=Party nächste Runde PARTY_ROUND_LEGEND_CONTINUE=Runde starten PARTY_SONG_WHEREAMI=Party Song-Auswahl PARTY_SONG_LEGEND_CONTINUE=Singen PARTY_SONG_MENU=Party-Menü +OPTION_VALUE_SING=Singen +OPTION_VALUE_SELECT_PLAYERS=Spieler auswählen +OPTION_VALUE_OPEN_MENU=Menü öffnen + PARTY_SCORE_DESC=Punkte der letzten Runde. PARTY_SCORE_WHEREAMI=Party Punkte @@ -347,7 +433,7 @@ NEXT_ROUND=Nächste Runde: PARTY_DISMISSED=Ausgeschieden! PARTY_SCORE_WINS=%s -PARTY_SCORE_WINS2=hat gewonnen! +PARTY_SCORE_WINS2=Hat gewonnen! MODE_RANDOM_NAME= zufälliger Modus MODE_RANDOM_DESC=Sei gespannt! Das Spiel entscheidet zufällige Spiel-Modi für euch. @@ -407,8 +493,6 @@ MODE_HARDCORE_NAME=Hardcore MODE_HARDCORE_DESC=Umkämpfe eine Führung über 3 Phrasen hinweg und siege! STAT_MAIN=Statistiken -STAT_MAIN_DESC=Allgemein -STAT_MAIN_WHEREAMI=Statistiken STAT_OVERVIEW_INTRO=%0:s Statistiken. \n Letzter Reset am %1:.2d.%2:.2d.%3:d STAT_OVERVIEW_SONG=%0:d Songs (%3:d mit Video), davon wurden bereits %1:d gesungen, andere %2:d noch nicht.\nDer am häufigsten gesungene Song ist:\n"%5:s" von %4:s. @@ -422,7 +506,7 @@ STAT_DETAIL_WHEREAMI=Detaillierte Statistiken STAT_NEXT=Nächste Seite STAT_PREV=Vorherige Seite STAT_REVERSE=Umkehren -STAT_PAGE=Seite %0:d von %1:d\n(%2:d von %3:d Einträgen) +STAT_PAGE=Seite %0:d von %1:d \n Einträgen %2:d von %3:d STAT_DESC_SCORES=Höchstpunktzahl STAT_DESC_SCORES_REVERSED=Niedrigste Punktzahl @@ -440,119 +524,12 @@ STAT_DESC_BANDS=Beliebteste Bands STAT_DESC_BANDS_REVERSED=Unbeliebteste Bands STAT_FORMAT_BANDS=%0:s\nGesungene Songs: %1:d -SCREENSHOT_SAVED=Bildschirmfoto gesichert -SCREENSHOT_FAILED=Konnte Bildschirmfoto nicht sichern - -INFO_FILE_SAVED=Datei gesichert -ERROR_SAVE_FILE_FAILED=Konnte Datei nicht sichern -ERROR_FILE_NOT_FOUND=Datei nicht gefunden - -ENCODING_ERROR_ASK_FOR_UTF8=Änderungen können nicht in der aktuellen Kodierung gesichert werden. Nach UTF-8 konvertieren? -EDITOR_ERROR_NO_TRACK_SELECTED=Keine Spur ausgewählt - -MSG_ERROR_TITLE=Fehler -MSG_INFO_TITLE=Information -MSG_QUESTION_TITLE=Frage -MSG_QUIT_USDX=UltraStar wirklich beenden? -MSG_END_PARTY=Party-Modus wirklich beenden? - -ERROR_NO_SONGS=Keine Songs vorhanden. -ERROR_NO_PLUGINS=Keine Plugins vorhanden. -ERROR_NO_MODES_FOR_CURRENT_SETUP=Es sind keine Modi für die aktuellen Spieler und/oder Teameinstellungen vorhanden -ERROR_CAN_NOT_START_PARTY= Ein Fehler ist beim Starten des Partyspiels aufgetreten -ERROR_CORRUPT_SONG=Song konnte nicht geladen werden. -ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Song konnte nicht geladen werden: Datei wurde nicht gefunden. -ERROR_CORRUPT_SONG_NO_NOTES=Song konnte nicht geladen werden: Es wurden keine Noten gefunden. -ERROR_CORRUPT_SONG_NO_BREAKS=Song konnte nicht geladen werden: Es wurden keine Satzwechsel gefunden. -ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song konnte nicht geladen werden: Fehler beim Einlesen der Zeile %0:d -ERROR_NO_EDITOR=Diese Funktion ist unter Linux/Mac noch nicht verfügbar -ERROR_PLAYER_DEVICE_ASSIGNMENT=Mehrere Mikrofone für Spieler %d gewählt.\nAufnahmeoptionen überprüfen. -ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Kein Mikrofon für Spieler %d gewählt.\nAufnahmeoptionen überprüfen. - -SING_OPTIONS_NETWORK=Internet -SING_OPTIONS_NETWORK_WHEREAMI=Interneteinstellungen -SING_OPTIONS_NETWORK_DESC=Allgemeine Netzwerk- und Interneteinstellungen -SING_OPTIONS_NETWORK_INSERT_USER_INFO=Drücke 'Einfügen' um Spieler dem Internet hinzuzufügen. -SING_OPTIONS_NETWORK_WEBSITE=Webseite -SING_OPTIONS_NETWORK_USERNAME=Benutzername -SING_OPTIONS_NETWORK_PASSWORD=Passwort -SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Spielername -SING_OPTIONS_NETWORK_AUTO_MODE=Automatisch -SING_OPTIONS_NETWORK_AUTO_PLAYER=Spieler -SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto Senden (Einfach) -SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto Senden (Mittel) -SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto Senden (Schwierig) -SING_OPTIONS_NETWORK_NO_DLL=Kein kompatibles Ranglisten-Plugin gefunden! -SING_OPTIONS_NETWORK_DELETE_PLAYER=Spieler %0:s wirklich von der Webseite %1:s löschen? -SING_OPTIONS_NETWORK_LEGEND_INSERT=Einfg -SING_OPTIONS_NETWORK_LEGEND_DELETE=Entf - -OPTION_PLAYER_1=Spieler 1 -OPTION_PLAYER_2=Spieler 2 -OPTION_PLAYER_3=Spieler 3 -OPTION_PLAYER_4=Spieler 4 -OPTION_PLAYER_5=Spieler 5 -OPTION_PLAYER_6=Spieler 6 -OPTION_ALL_PLAYERS=Allem -OPTION_ALL_SCORES=Allem -OPTION_VALUE_SAVE=Speichern -OPTION_VALUE_SEND=Senden - -MSG_INSERT_USER_TITLE=%0:s -MSG_INSERT_USER_DESC=Felder eintragen: -MSG_INSERT_USER_ADD=Hinzufügen -MSG_INSERT_USER_CANCEL=Abbrechen - -WEBSITE_NO_CONNECTION=Keine Verbindung zu Webseite! -WEBSITE_LOGIN_ERROR=Login nicht richtig! -WEBSITE_BLANK_LOGIN=Es sind leere Felder vorhanden! -WEBSITE_EXIST_USER=Benutzer existiert bereits! -WEBSITE_ERROR_SCORE=Fehler bei Punktzahlübertragung! -WEBSITE_OK_SEND=Punktzahl erfolgreich übermittelt! -WEBSITE_ERROR_SCORE_DUPLICATED=Punktzahl bereits vorhanden! -WEBSITE_ERROR_SONG=Song nicht gefunden! -WEBSITE_SAVE_SCORE=Punktzahl erfolgreich gesichert! -WEBSITE_NO_CONNECTION_SAVE=Keine Verbindung zur Webseite! Benutzer trotzdem sichern? - -SONG_MENU_REFRESH_SCORES=Punktzahl aktualisieren -SONG_MENU_REFRESH_SCORES_TITLE=Aktualisieren -SONG_MENU_REFRESH_SCORES_NO_WEB=Es sind keine Webseiten eingetragen! -SONG_MENU_REFRESH_SCORES_ONLINE=Online -SONG_MENU_REFRESH_SCORES_FILE=Datei -SONG_MENU_REFRESH_SCORES_ALL_WEB=Alle Webseiten -SONG_MENU_REFRESH_SCORES_ALL_SONGS=Alle Songs -SONG_MENU_REFRESH_SCORES_ONLY_SONG=Diesen Song -SONG_MENU_REFRESH_SCORES_REFRESH=Update -SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Fehler beim Verbindungsaufbau zur Webseite: %0:s! -SONG_MENU_REFRESH_SCORES_ERROR_FILE=Datei nicht gefunden: '%0:s [Download Scores]'! - -SONG_SCORE_MAX=Beste: -SONG_SCORE_MEDIA=Durchschnitt: - -SCORE_SEND_DESC=Punktzahl hochladen -SCORE_SEND=Senden -SCORE_SEND_PLAYER=Spieler -SCORE_SEND_OTHER_USER=Anderer Spielername -SCORE_SAVE=Speichern - -SCORE_DOWNLOAD_TITLE=Download -SCORE_DOWNLOAD_SONG=Song: -SCORE_DOWNLOAD_CREATE_LIST=Liste aufbauen... -SCORE_DOWNLOAD_RECEIVE_LIST=Herunterladend... -SCORE_DOWNLOAD_CANCEL=Abbrechen -SCORE_DOWNLOAD_OK=OK -SCORE_DOWNLOAD_SONG_UPDATE=%0:d Song(s) sind von der Webseite verschieden! - -SING_OPTIONS_GAME_SHOWSCORES=Punktzahl anzeigen -OPTION_VALUE_WHEN_EXISTS=Wenn vorhanden - PARTY_SELECT_MODE=Modus PARTY_MODE_CLASSIC=Standard PARTY_MODE_CLASSIC_FREE=Standard (freie Auswahl) PARTY_MODE_CHALLENGE=Wettkampf PARTY_MODE_TOURNAMENT=Turnier PARTY_MODE_JUKEBOX=Jukebox -PARTY_MODE_NOT_AVAILABLE=Nicht verfügbar! PARTY_MODE_TOURNAMENT_PLAYER_DESC=Spieleranzahl und Spieler angeben PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Anzahl der Spieler @@ -565,39 +542,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Die nächsten Spieler an die Mikros! PARTY_MODE_TOURNAMENT_WIN_DESC=Rundenergebnis PARTY_MODE_TOURNAMENT_CHAMPION=Der Champion ist: %0:s! -EDIT_TITLE=Titel: -EDIT_ARTIST=Interpret: -EDIT_MP3=MP3: -EDIT_BPM=BPM: -EDIT_GAP=GAP: -EDIT_COVER=Cover: -EDIT_BACKGROUND=Hintergrund: - -EDIT_START=Start: -EDIT_DURATION=Laufzeit: -EDIT_TONE=Note: -EDIT_LYRIC=Lyric: -EDIT_VIDEOGAP=Video-Versatz: -EDIT_VOLUME_AUDIO=Musik Lautstärke -EDIT_VOLUME_MIDI=Midi Lautstärke -EDIT_VOLUME_CLICK=Takt Lautstärke -INFO_UNDO=Letzte Änderung rückgängig - -INFO_FILE_SAVED=Datei gesichert -INFO_TIME_FIXED=Zeiteinteilung korrigiert -INFO_CAPITALIZE=Großschreibung korrigiert -INFO_EXIT=Möchtest du den Editor ohne zu Speichern wirklich verlassen? -INFO_SONG_RELOADED=Song erneut geladen -INFO_DIVIDED_BPM=BPM halbiert -INFO_MULTIPLIED_BPM=BPM verdoppelt -INFO_PLAY_SONG=Spiele Song... -INFO_PLAY_SENTENCE=Spiele Phrase... -INFO_CURRENT_LINE=Phrase -INFO_CURRENT_NOTE=Note: - -INFO_MIDI_CHANNEL_OFF=Kanal %0:s aus! -INFO_MIDI_CHANNEL_RESET=Alle Kanäle an! - MSG_END_JUKEBOX=Möchtest du den Jukebox Modus verlassen? JUKEBOX_RANDOM=Zufallsmodus JUKEBOX_REPEAT=Wiederholen @@ -609,8 +553,6 @@ SING_ERROR_DUET_MODE_PARTY =Duett! Ist im Party Modus nicht spielbar! SONG_MENU_SONG=Song SONG_MENU_MEDLEY=Medley -SONG_MENU_SORTING=Sortieren -SONG_MENU_EXTRA=Extras SONG_MENU_NAME_SONG=Song Menü SONG_MENU_NAME_MEDLEY=Medley Menü @@ -626,33 +568,6 @@ SONG_MENU_SORTING_ALL=Alles SONG_MENU_SORTING_DUET=DuettScores SONG_MENU_SORTING_APPLY=Anwenden -SING_OPTIONS_WEBCAM=Webcam -SING_OPTIONS_WEBCAM_DESC=Verändere Webcam Einstellungen -SING_OPTIONS_WEBCAM_WHEREAMI=Webcam Einstellungen -SING_OPTIONS_WEBCAM_ID=Webcam -SING_OPTIONS_WEBCAM_RESOLUTION=Auflösung -SING_OPTIONS_WEBCAM_FPS=Bildfrequenz -SING_OPTIONS_WEBCAM_NO_WEBCAM=Keine Webcam gefunden! -SING_OPTIONS_WEBCAM_FLIP=Drehen -SING_OPTIONS_WEBCAM_EFFECT=Effekt -SING_OPTIONS_WEBCAM_BRIGHTNESS=Helligkeit -SING_OPTIONS_WEBCAM_SATURATION=Sättigung -SING_OPTIONS_WEBCAM_HUE=Farbton -SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Vorschau aktivieren -SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Vorschau deaktivieren - -SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal -SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Graustufen -SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Schwarz & Weiß -SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negativ -SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binärbild -SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilatieren -SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Schwellenwert -SING_OPTIONS_WEBCAM_EFFECT_EDGES=Kanten -SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Weichzeichnen -SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Ausgegleichen -SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erodieren - PARTY_PLAYLIST_MANUAL=Manuelle Auswahl PARTY_MODE_JUKEBOX_NO_SONGS=Playlist ist leer! SONG_MENU_OPEN_CATEGORY=Kategorie öffnen @@ -666,58 +581,6 @@ WEBSITE_NOT_EXIST_SONG=Dieser Song ist keiner Webseite zugeordnet! NAME_PLAYERS_COUNT=Anzahl der Spieler NAME_CURRENT_PLAYER=Spieler -SING_OPTIONS_GAME_SONGMENU=Menü -OPTION_VALUE_ROULETTE=Roulette -OPTION_VALUE_CHESSBOARD=Raster -OPTION_VALUE_CAROUSEL=Karussell -OPTION_VALUE_SLOT_MACHINE=Walze -OPTION_VALUE_LIST=Liste -OPTION_VALUE_MOSAIC=Kacheln - -SING_OPTIONS_JUKEBOX=Jukebox -SING_OPTIONS_JUKEBOX_DESC=Verändere Jukebox Einstellungen -SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Einstellungen - -OPTION_VALUE_TO_SING=Singen -OPTION_VALUE_ACTUAL=Aktuelle -OPTION_VALUE_NEXT=Nächste -OPTION_VALUE_OTHER=Other -OPTION_VALUE_FILL=Füllung -OPTION_VALUE_OUTLINE=Umriss -OPTION_VALUE_GRAY=Grau -OPTION_VALUE_WHITE=Weiß -OPTION_VALUE_TURQUOISE=Türkis -OPTION_VALUE_SALMON=Lachsfarben -OPTION_VALUE_GREENYELLOW=Grüngelb -OPTION_VALUE_LAVENDER=Lavendel -OPTION_VALUE_BEIGE=Beige -OPTION_VALUE_TEAL=Blaugrün -OPTION_VALUE_ORCHID=Orchidee -OPTION_VALUE_STEELBLUE=Stahlblau -OPTION_VALUE_PLUM=Pflaume -OPTION_VALUE_CHOCOLATE=Schokolade -OPTION_VALUE_GOLD=Gold -OPTION_VALUE_DARKBLUE=Dunkelblau -OPTION_VALUE_SKY=Himmelblau -OPTION_VALUE_HARLEQUIN=Harlekin -OPTION_VALUE_CYAN=Cyan -OPTION_VALUE_FLAME=Flamme - -JUKEBOX_SONGOPTIONS_VIDEO=Video Optionen -JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Bildformat -JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Breite -JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Höhe -JUKEBOX_SONGOPTIONS_LYRIC=Lyricsoptionen -JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Größe -JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Transparenz -JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Farbe -JUKEBOX_SONGOPTIONS_LYRIC_LINE=Phrase -JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Art -JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Rot -JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Grün -JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blau - JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Füllen JUKEBOX_SONGOPTIONS_VIDEO_CROP=Zuschneiden JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=Balken @@ -727,24 +590,37 @@ JUKEBOX_SONGOPTIONS_CLOSE=Schließen JUKEBOX_SONGOPTIONS_DEFAULT=Werkseinstellung JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Gesichert! -SING_SONG_CREDITS=Credits -SING_JUKEBOX=Jukebox -SING_JUKEBOX_DESC=Spiele meine Sammlung ab JUKEBOX_MODE=Jukebox Modus -JUKEBOX_OPTIONS_DESC=Playlist Optionen -JUKEBOX_OPTIONS_WHEREAMI=Jukebox Optionen JUKEBOX_OPTIONS_PLAYLIST=Playlist JUKEBOX_OPTIONS_PLAYLIST_MODE=Playlist Modus -SING_OPTIONS_ADVANCED_SINGSCORES=Punkte vergeben -SING_OPTIONS_ADVANCED_TOPSCORES=Höchstpunktzahlen -OPTION_VALUE_ALL=Alle -OPTION_VALUE_PLAYER=Spieler - -SING_ABOUT=Über -SING_ABOUT_DESC=Über Utrastar Deluxe ABOUT_MAIN=Über... -ABOUT_MAIN_DESC=Ultrastar Deluxe -ABOUT_MAIN_WHEREAMI=Erfahre etwas über... -ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +ABOUT_USDX_DEVELOPEDBY=Entwickelt von +;TODO: ABOUT_CHECK_CHECKING=Checking for new updates... +;TODO: ABOUT_CHECK_AVAILABLE=There is a new version available +;TODO: ABOUT_CHECK_UPTODATE=WorldParty is up to date +;TODO: ABOUT_CHECK_CONNECTION=There is no Internet connection +;TODO: ABOUT_OVERVIEW=Discover a new way of singing, alone, in couple, or with friends. \n Fun is guaranteed.\n\nWorldParty is a fork of the original version Ultrastar Deluxe 1.1 designed and developed by UltraStar España Team, it counts with the biggest karaoke community.\n\n\nThis program is free and libre under the GPL license. \n\n Visit us for more information.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Entwickelt von +DEVELOPERS_OVERVIEW=Menschen, die zu diesem Projekt beigetragen haben:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Besuchen Sie uns für weitere Informationen.\n\nhttps://ultrastar-es.org + +SCREENSHOT_SAVED=Bildschirmfoto gesichert +SCREENSHOT_FAILED=Konnte Bildschirmfoto nicht sichern + +MSG_ERROR_TITLE=Fehler +MSG_INFO_TITLE=Information +MSG_QUESTION_TITLE=Frage +MSG_QUIT_USDX=UltraStar wirklich beenden? +MSG_END_PARTY=Party-Modus wirklich beenden? + +ERROR_NO_SONGS=Keine Songs vorhanden. +ERROR_NO_PLUGINS=Keine Plugins vorhanden. +ERROR_LOADING_SONGS=Warten Sie, bis alle Songs geladen sind +ERROR_CORRUPT_SONG=Song konnte nicht geladen werden. +ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Song konnte nicht geladen werden: Datei wurde nicht gefunden. +ERROR_CORRUPT_SONG_NO_NOTES=Song konnte nicht geladen werden: Es wurden keine Noten gefunden. +ERROR_CORRUPT_SONG_NO_BREAKS=Song konnte nicht geladen werden: Es wurden keine Satzwechsel gefunden. +ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song konnte nicht geladen werden: Fehler beim Einlesen der Zeile %0:d +ERROR_PLAYER_DEVICE_ASSIGNMENT=Mehrere Mikrofone für Spieler %d gewählt.\nÜberprüfen Sie Ihre Mikrofonoptionen. +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Kein Mikrofon für Spieler %d gewählt.\nÜberprüfen Sie Ihre Mikrofonoptionen. \ No newline at end of file diff --git a/game/languages/English.ini b/game/languages/English.ini index d1191719..002b7169 100644 --- a/game/languages/English.ini +++ b/game/languages/English.ini @@ -1,87 +1,17 @@ [Text] LANGUAGE=English -OPTION_VALUE_EASY=Easy -OPTION_VALUE_MEDIUM=Medium -OPTION_VALUE_HARD=Hard - -OPTION_VALUE_ON=On -OPTION_VALUE_OFF=Off - -OPTION_VALUE_EDITION=Edition -OPTION_VALUE_GENRE=Genre -OPTION_VALUE_LANGUAGE=Language -OPTION_VALUE_FOLDER=Folder -OPTION_VALUE_TITLE=Title -OPTION_VALUE_ARTIST=Artist -OPTION_VALUE_TITLE2=Title2 -OPTION_VALUE_ARTIST2=Artist2 -OPTION_VALUE_YEAR=Year -OPTION_VALUE_DECADE=Decade -OPTION_VALUE_PLAYLIST=Playlist - -OPTION_VALUE_BORDERLESS=Borderless - -OPTION_VALUE_WHENNOVIDEO=When No Video -OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image - -OPTION_VALUE_SMALL=Small -OPTION_VALUE_BIG=Big - -OPTION_VALUE_HALF=Half -OPTION_VALUE_FULL_VID=Full (Video) -OPTION_VALUE_FULL_VID_BG=Full (BG & Video) - -OPTION_VALUE_GAIN_SOFT=Soft -OPTION_VALUE_GAIN_MEDIUM=Medium -OPTION_VALUE_GAIN_HARD=Hard - -OPTION_VALUE_AUTO=Auto -OPTION_VALUE_SEC=Second -OPTION_VALUE_SECS=Seconds - -OPTION_VALUE_PLAIN=Plain -OPTION_VALUE_OLINE1=OLine1 -OPTION_VALUE_OLINE2=OLine2 - -OPTION_VALUE_SIMPLE=Simple -OPTION_VALUE_ZOOM=Zoom -OPTION_VALUE_SLIDE=Slide -OPTION_VALUE_BALL=Ball -OPTION_VALUE_SHIFT=Shift - -OPTION_VALUE_EURO=Euro -OPTION_VALUE_JAPAN=Japan -OPTION_VALUE_AMERICAN=American - -OPTION_VALUE_BLUE=Blue -OPTION_VALUE_GREEN=Green -OPTION_VALUE_PINK=Pink -OPTION_VALUE_RED=Red -OPTION_VALUE_VIOLET=Violet -OPTION_VALUE_ORANGE=Orange -OPTION_VALUE_YELLOW=Yellow -OPTION_VALUE_BROWN=Brown -OPTION_VALUE_BLACK=Black -OPTION_VALUE_MAGENTA=Magenta - -OPTION_VALUE_SING=Sing -OPTION_VALUE_SELECT_PLAYERS=Select Players -OPTION_VALUE_OPEN_MENU=Open Menu - - SING_LOADING=Loading... -SING_LOADING_CHECK_FOLDER=Searching songs on folder %s -SING_LOADING_FINISH=Load finished. ¡Sing! +SING_LOADING_SONGS=Loading songs from folder %s -SING_CHOOSE_MODE=Choose Mode SING_SING=Sing -SING_SING_DESC=sing solo or duet +SING_SING_DESC=Sing solo or duet SING_MULTI=Party SING_MULTI_DESC=Sing in party-mode -SING_TOOLS=Tools +SING_JUKEBOX=Jukebox +SING_JUKEBOX_DESC=Listen to my collection SING_STATS=Stats SING_STATS_DESC=View the statistics @@ -92,107 +22,285 @@ SING_GAME_OPTIONS_DESC=Change game settings SING_EXIT=Quit SING_EXIT_DESC=Quit game +SING_ABOUT=About +SING_ABOUT_DESC=About Ultrastar Deluxe WorldParty + +SING_PLAYER_TITLE=Profiles +SING_PLAYER_READY=Players ready to sing +SING_PLAYER_COUNT=Number of players +SING_PLAYER_EDIT=Customize a player +SING_PLAYER_NAME=Write your name +SING_PLAYER_COLOR=Pick a color +SING_PLAYER_LEVEL=Choose a level +SING_PLAYER_AVATAR=Select your avatar + +OPTION_VALUE_EASY=Easy +OPTION_VALUE_MEDIUM=Medium +OPTION_VALUE_HARD=Hard + SING_OPTIONS=Options -SING_OPTIONS_DESC=Change settings -SING_OPTIONS_WHEREAMI=Options SING_OPTIONS_GAME=Game SING_OPTIONS_GRAPHICS=Graphics SING_OPTIONS_SOUND=Sound SING_OPTIONS_LYRICS=Lyrics SING_OPTIONS_THEMES=Themes -SING_OPTIONS_RECORD=Record +SING_OPTIONS_MICROPHONES=Microphones SING_OPTIONS_ADVANCED=Advanced +SING_OPTIONS_NETWORK=Internet +SING_OPTIONS_WEBCAM=Webcam +SING_OPTIONS_JUKEBOX=Jukebox SING_OPTIONS_EXIT=Back -SING_OPTIONS_GAME_WHEREAMI=Options Game -SING_OPTIONS_GAME_DESC=General game settings -SING_OPTIONS_GAME_PLAYERS=Players -SING_OPTIONS_GAME_DIFFICULTY=Difficulty SING_OPTIONS_GAME_LANGUAGE=Language +SING_OPTIONS_GAME_SONGMENU=Song Menu SING_OPTIONS_GAME_TABS=Tabs SING_OPTIONS_GAME_SORTING=Sorting -SING_OPTIONS_GAME_JOYPAD_SUPPORT=Controller support +SING_OPTIONS_GAME_SHOWSCORES=Show Scores +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Activate gamepad + +OPTION_VALUE_ROULETTE=Roulette +OPTION_VALUE_CHESSBOARD=Chessboard +OPTION_VALUE_CAROUSEL=Carousel +OPTION_VALUE_SLOT_MACHINE=Slot Machine +OPTION_VALUE_LIST=List +OPTION_VALUE_MOSAIC=Tile + +OPTION_VALUE_ON=On +OPTION_VALUE_OFF=Off + +OPTION_VALUE_EDITION=Edition +OPTION_VALUE_GENRE=Genre +OPTION_VALUE_LANGUAGE=Language +OPTION_VALUE_FOLDER=Folder +OPTION_VALUE_TITLE=Title +OPTION_VALUE_ARTIST=Artist +OPTION_VALUE_ARTIST2=Artist2 +OPTION_VALUE_YEAR=Year +OPTION_VALUE_DECADE=Decade +OPTION_VALUE_PLAYLIST=Playlist + +OPTION_VALUE_WHEN_EXISTS=When Exists -SING_OPTIONS_GRAPHICS_WHEREAMI=Options Graphics -SING_OPTIONS_GRAPHICS_DESC=Graphic settings -SING_OPTIONS_GRAPHICS_RESOLUTION=Resolution SING_OPTIONS_GRAPHICS_FULLSCREEN=Fullscreen -SING_OPTIONS_GRAPHICS_EFFECTSING=Sing Effects +SING_OPTIONS_GRAPHICS_RESOLUTION=Resolution SING_OPTIONS_GRAPHICS_SCREENFADE=Screen Fading -SING_OPTIONS_GRAPHICS_LOADANIMATION=Load Animation +SING_OPTIONS_GRAPHICS_EFFECTSING=Sing Effects SING_OPTIONS_GRAPHICS_VISUALIZER=Visualization -SING_OPTIONS_GRAPHICS_LINEBONUS=Line Bonus SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Movie size -SING_OPTIONS_SOUND_WHEREAMI=Options Sound -SING_OPTIONS_SOUND_DESC=Sound settings +OPTION_VALUE_BORDERLESS=Borderless + +OPTION_VALUE_WHENNOVIDEO=When No Video +OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image + +OPTION_VALUE_HALF=Half +OPTION_VALUE_FULL_VID=Full (Video) +OPTION_VALUE_FULL_VID_BG=Full (BG & Video) + SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Microphone Playback SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Background music -SING_OPTIONS_SOUND_MIC_BOOST=Mic boost SING_OPTIONS_SOUND_CLICK_ASSIST=Click assist SING_OPTIONS_SOUND_BEAT_CLICK=Beat click -SING_OPTIONS_SOUND_THRESHOLD=Threshold -SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Two players mode SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Preview Volume SING_OPTIONS_SOUND_PREVIEWFADING=Preview Fading -SING_OPTIONS_LYRICS_WHEREAMI=Options Lyrics -SING_OPTIONS_LYRICS_DESC=Lyrics settings +OPTION_VALUE_GAIN_SOFT=Soft +OPTION_VALUE_GAIN_MEDIUM=Medium +OPTION_VALUE_GAIN_HARD=Hard + +OPTION_VALUE_AUTO=Auto +OPTION_VALUE_SEC=Second +OPTION_VALUE_SECS=Seconds + SING_OPTIONS_LYRICS_FONT=Font SING_OPTIONS_LYRICS_EFFECT=Effect -SING_OPTIONS_LYRICS_SOLMIZATION=Solmization SING_OPTIONS_LYRICS_NOTELINES=Staves -SING_OPTIONS_THEMES_WHEREAMI=Options Themes -SING_OPTIONS_THEMES_DESC=Theme and Skin settings +OPTION_VALUE_PLAIN=Stylized +OPTION_VALUE_OLINE1=With thin edge +OPTION_VALUE_OLINE2=With thick edge + +OPTION_VALUE_SIMPLE=Simple +OPTION_VALUE_ZOOM=Zoom +OPTION_VALUE_SLIDE=Slide +OPTION_VALUE_BALL=Ball +OPTION_VALUE_SHIFT=Shift + SING_OPTIONS_THEMES_THEME=Theme SING_OPTIONS_THEMES_SKIN=Skin SING_OPTIONS_THEMES_COLOR=Color -SING_OPTIONS_RECORD_WHEREAMI=Options Record -SING_OPTIONS_RECORD_DESC=Microphone settings -SING_OPTIONS_RECORD_CARD=Soundcard -SING_OPTIONS_RECORD_INPUT=Input -SING_OPTIONS_RECORD_CHANNEL=Channel - -SING_OPTIONS_ADVANCED_WHEREAMI=Options Advanced -SING_OPTIONS_ADVANCED_DESC=Advanced settings +SING_OPTIONS_MICROPHONES_CARD=Soundcard +SING_OPTIONS_MICROPHONES_INPUT=Input +SING_OPTIONS_MICROPHONES_CHANNEL=Channel +SING_OPTIONS_MICROPHONES_THRESHOLD=Threshold +SING_OPTIONS_MICROPHONES_MIC_BOOST=Mic boost SING_OPTIONS_ADVANCED_DEBUG=Debug SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Oscilloscope -SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Safety Questions -SING_OPTIONS_ADVANCED_LINEBONUS=Line Bonus -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=After Song Select +SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Safety Questions SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto PartyMenu +SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores +SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing + +OPTION_VALUE_ALL=All +OPTION_VALUE_PLAYER=Player +SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... +SING_OPTIONS_NETWORK_WEBSITE=Website +SING_OPTIONS_NETWORK_USERNAME=Username +SING_OPTIONS_NETWORK_PASSWORD=Password +SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name +SING_OPTIONS_NETWORK_AUTO_MODE=Auto +SING_OPTIONS_NETWORK_AUTO_PLAYER=Player +SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) +SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) +SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) +SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! +SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? +SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert +SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete + +OPTION_PLAYER_1=Player 1 +OPTION_PLAYER_2=Player 2 +OPTION_PLAYER_3=Player 3 +OPTION_PLAYER_4=Player 4 +OPTION_PLAYER_5=Player 5 +OPTION_PLAYER_6=Player 6 +OPTION_ALL_PLAYERS=All +OPTION_ALL_SCORES=All +OPTION_VALUE_SAVE=Save +OPTION_VALUE_SEND=Send + +MSG_INSERT_USER_TITLE=%0:s +MSG_INSERT_USER_DESC=Fill the fields: +MSG_INSERT_USER_ADD=Add +MSG_INSERT_USER_CANCEL=Cancel + +WEBSITE_NO_CONNECTION=No website connection! +WEBSITE_LOGIN_ERROR=Login Incorrect! +WEBSITE_BLANK_LOGIN=There are blank fields! +WEBSITE_EXIST_USER=Existing user! +WEBSITE_ERROR_SCORE=Scoring Error! +WEBSITE_OK_SEND=Score sent successfully! +WEBSITE_ERROR_SCORE_DUPLICATED=Existing Score! +WEBSITE_ERROR_SONG=Song Not Found! +WEBSITE_SAVE_SCORE=Score save successfully! +WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? + +SONG_MENU_REFRESH_SCORES=Update Scores +SONG_MENU_REFRESH_SCORES_TITLE=Update +SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! +SONG_MENU_REFRESH_SCORES_ONLINE=Online +SONG_MENU_REFRESH_SCORES_FILE=File +SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites +SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs +SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song +SONG_MENU_REFRESH_SCORES_REFRESH=Update +SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! +SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! + +SONG_SCORE_MAX=Best: +SONG_SCORE_MEDIA=Average: + +SCORE_SEND_DESC=Send Score +SCORE_SEND=Send +SCORE_SEND_PLAYER=Player +SCORE_SEND_OTHER_USER= Other Username +SCORE_SAVE=Save + +SCORE_DOWNLOAD_TITLE=Download +SCORE_DOWNLOAD_SONG=Song: +SCORE_DOWNLOAD_CREATE_LIST=Preparing List... +SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... +SCORE_DOWNLOAD_CANCEL=Cancel +SCORE_DOWNLOAD_OK=OK +SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! + +SING_OPTIONS_WEBCAM_ID=Webcam +SING_OPTIONS_WEBCAM_RESOLUTION=Resolution +SING_OPTIONS_WEBCAM_FPS=FPS +SING_OPTIONS_WEBCAM_FLIP=Flip +SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness +SING_OPTIONS_WEBCAM_SATURATION=Saturation +SING_OPTIONS_WEBCAM_HUE=Hue +SING_OPTIONS_WEBCAM_EFFECT=Effect +SING_OPTIONS_WEBCAM_PREVIEW=Activate preview + +SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview +SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview +SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! +SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal +SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Grayscale +SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Black & White +SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negative +SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image +SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate +SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Threshold +SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges +SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur +SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized +SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode + +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Transparency +JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line +JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property +JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Color +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Red +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Green +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blue + +JUKEBOX_SONGOPTIONS_VIDEO=Video Options +JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect +JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width +JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height +JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options +JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size +JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position + +OPTION_VALUE_TO_SING=Sing +OPTION_VALUE_ACTUAL=Actual +OPTION_VALUE_NEXT=Next +OPTION_VALUE_OTHER=Other +OPTION_VALUE_FILL=Fill +OPTION_VALUE_OUTLINE=Outline +OPTION_VALUE_BLUE=Blue +OPTION_VALUE_GREEN=Green +OPTION_VALUE_PINK=Pink +OPTION_VALUE_RED=Red +OPTION_VALUE_VIOLET=Violet +OPTION_VALUE_ORANGE=Orange +OPTION_VALUE_YELLOW=Yellow +OPTION_VALUE_BROWN=Brown +OPTION_VALUE_BLACK=Black +OPTION_VALUE_MAGENTA=Magenta +OPTION_VALUE_GRAY=Gray +OPTION_VALUE_WHITE=White +OPTION_VALUE_TURQUOISE=Turquoise +OPTION_VALUE_SALMON=Salmon +OPTION_VALUE_GREENYELLOW=GreenYellow +OPTION_VALUE_LAVENDER=Lavender +OPTION_VALUE_BEIGE=Beige +OPTION_VALUE_TEAL=Teal +OPTION_VALUE_ORCHID=Orchid +OPTION_VALUE_STEELBLUE=Steel Blue +OPTION_VALUE_PLUM=Plum +OPTION_VALUE_CHOCOLATE=Chocolate +OPTION_VALUE_GOLD=Gold +OPTION_VALUE_DARKBLUE=Dark Blue +OPTION_VALUE_SKY=Sky +OPTION_VALUE_HARLEQUIN=Harlequin +OPTION_VALUE_CYAN=Cyan +OPTION_VALUE_FLAME=Flame SING_LEGEND_SELECT=Select SING_LEGEND_NAVIGATE=Navigate SING_LEGEND_CONTINUE=Continue SING_LEGEND_ESC=Back -SING_PLAYER_TITLE=Profiles -SING_PLAYER_READY=Players ready to sing -SING_PLAYER_COUNT=Number of players -SING_PLAYER_EDIT=Customize a player -SING_PLAYER_NAME=Write your name -SING_PLAYER_COLOR=Pick a color -SING_PLAYER_LEVEL=Choose a level -SING_PLAYER_AVATAR=Select your avatar - -SING_DIFFICULTY_DESC=Select difficulty -SING_DIFFICULTY_WHEREAMI=Difficulty -SING_DIFFICULTY_CONTINUE=To song selection -SING_EASY=Easy -SING_MEDIUM=Medium -SING_HARD=Hard - -SING_SONG_SELECTION_DESC=Choose your song -SING_SONG_SELECTION_WHEREAMI=Song Selection -SING_SONG_SELECTION_GOTO=Go to .. SING_SONG_SELECTION=Song selection SING_SONG_SELECTION_MENU=Menu SING_SONG_SELECTION_PLAYLIST=Playlist @@ -230,14 +338,14 @@ SING_TOP_5_CHARTS_WHEREAMI=Top 5 SING_TOP_5_CHARTS_CONTINUE=To song selection SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Switch difficulty -POPUP_PERFECT=perfect! -POPUP_AWESOME=awesome! -POPUP_GREAT=great! -POPUP_GOOD=good! -POPUP_NOTBAD=not bad! -POPUP_BAD=bad! -POPUP_POOR=poor! -POPUP_AWFUL=awful! +POPUP_PERFECT=Perfect! +POPUP_AWESOME=Awesome! +POPUP_GREAT=Great! +POPUP_GOOD=Good! +POPUP_NOTBAD=Not bad! +POPUP_BAD=Bad! +POPUP_POOR=Poor! +POPUP_AWFUL=Awful! IMPLODE_GLUE1=, IMPLODE_GLUE2= and @@ -245,8 +353,6 @@ IMPLODE_GLUE2= and SONG_MENU_NAME_MAIN=Song menu SONG_MENU_PLAY=Sing SONG_MENU_CHANGEPLAYERS=Change Players -SONG_MENU_EDIT=Edit -SONG_MENU_MODI=Sing a Modi SONG_MENU_CANCEL=Cancel SONG_MENU_NAME_PLAYLIST=Song Menu @@ -279,13 +385,6 @@ SONG_MENU_NAME_PARTY_JOKER=Take joker SONG_JUMPTO_DESC=Search song SONG_JUMPTO_TYPE_DESC=Search for: -SONG_JUMPTO_TYPE1=All -SONG_JUMPTO_TYPE2=Title -SONG_JUMPTO_TYPE3=Artist -SONG_JUMPTO_SONGSFOUND=%d Song(s) found -SONG_JUMPTO_NOSONGSFOUND=No Song found -SONG_JUMPTO_HELP=Type Text to Search for -SONG_JUMPTO_CATTEXT=Search for: %s PARTY_MODE=Party mode PARTY_DIFFICULTY=Difficulty @@ -303,25 +402,22 @@ PARTY_LEGEND_CONTINUE=Continue PARTY_OPTIONS_DESC=Settings for the party-game PARTY_OPTIONS_WHEREAMI=Party Options -PARTY_PLAYER_DESC=Enter player- and teamnames! -PARTY_PLAYER_WHEREAMI=Party Names PARTY_PLAYER_ENTER_NAME=Enter names - -PARTY_ROUNDS_DESC=Select which modes you want to play -PARTY_ROUNDS_WHEREAMI=Party Rounds PARTY_ROUNDS_LEGEND_CONTINUE=Start party-game PARTY_ROUNDCOUNT=Number of rounds PARTY_SELECTMODE=Round %d -PARTY_ROUND_DESC=Next players to the mics -PARTY_ROUND_WHEREAMI=Party Next Round PARTY_ROUND_LEGEND_CONTINUE=Start round PARTY_SONG_WHEREAMI=Party Song-Selection PARTY_SONG_LEGEND_CONTINUE=Sing PARTY_SONG_MENU=Party menu +OPTION_VALUE_SING=Sing +OPTION_VALUE_SELECT_PLAYERS=Select Players +OPTION_VALUE_OPEN_MENU=Open Menu + PARTY_SCORE_DESC=Score of the last round PARTY_SCORE_WHEREAMI=Party Points @@ -397,8 +493,6 @@ MODE_HARDCORE_NAME=Hardcore MODE_HARDCORE_DESC=Battle for a three-line lead on your opponent! STAT_MAIN=Statistics -STAT_MAIN_DESC=General -STAT_MAIN_WHEREAMI=Statistics STAT_OVERVIEW_INTRO=%0:s Statistics. \n Last Reset at %2:.2d.%1:.2d.%3:d STAT_OVERVIEW_SONG=%0:d Songs(%3:d with Video), whereof %1:d already were played and %2:d were not played yet.\n The most popular Song is %5:s from %4:s. @@ -412,7 +506,7 @@ STAT_DETAIL_WHEREAMI=Detail Statistics STAT_NEXT=Next Page STAT_PREV=Previous Page STAT_REVERSE=Reverse Order -STAT_PAGE=Page %0:d of %1:d pages\n (%2:d of %3:d Entrys) +STAT_PAGE=Page %0:d of %1:d \n Entries %2:d of %3:d STAT_DESC_SCORES=HighScores STAT_DESC_SCORES_REVERSED=LowScores @@ -430,121 +524,12 @@ STAT_DESC_BANDS=Most popular Bands STAT_DESC_BANDS_REVERSED=Least popular Bands STAT_FORMAT_BANDS=%0:s \n %1:dx Sung -SCREENSHOT_SAVED=Screenshot saved -SCREENSHOT_FAILED=Couldn''t save screenshot - -INFO_FILE_SAVED=File saved -ERROR_SAVE_FILE_FAILED=Couldn''t save file -ERROR_FILE_NOT_FOUND=File not found - -ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? -EDITOR_ERROR_NO_TRACK_SELECTED=No track selected - -MSG_ERROR_TITLE=Error -MSG_INFO_TITLE=Information -MSG_QUESTION_TITLE=Question -MSG_QUIT_USDX=Really leave UltraStar? -MSG_END_PARTY=Really leave Party Mode? - -ERROR_NO_SONGS=No Songs loaded -ERROR_NO_PLUGINS=No Plugins loaded -ERROR_NO_MODES_FOR_CURRENT_SETUP=No modes available for current player/team setup -ERROR_LOADING_SONGS=Wait to finish songs loading -ERROR_CAN_NOT_START_PARTY=An error occurred starting the party game -ERROR_CORRUPT_SONG=Song could not be loaded. -ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Song could not be loaded: File not found -ERROR_CORRUPT_SONG_NO_NOTES=Song could not be loaded: Can''t find any notes -ERROR_CORRUPT_SONG_NO_BREAKS=Song could not be loaded: Can''t find any linebreaks -ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song could not be loaded: Error parsing line %0:d -ERROR_DUETS_NOT_EDITABLE=Duet songs are currently not editable. -ERROR_NO_EDITOR=This feature is not available on this version. -ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options -ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options - -SING_OPTIONS_NETWORK=Internet -SING_OPTIONS_NETWORK_WHEREAMI=Internet Options -SING_OPTIONS_NETWORK_DESC=Internet General Settings -SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... -SING_OPTIONS_NETWORK_WEBSITE=Website -SING_OPTIONS_NETWORK_USERNAME=Username -SING_OPTIONS_NETWORK_PASSWORD=Password -SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name -SING_OPTIONS_NETWORK_AUTO_MODE=Auto -SING_OPTIONS_NETWORK_AUTO_PLAYER=Player -SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) -SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) -SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) -SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! -SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? -SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert -SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete - -OPTION_PLAYER_1=Player 1 -OPTION_PLAYER_2=Player 2 -OPTION_PLAYER_3=Player 3 -OPTION_PLAYER_4=Player 4 -OPTION_PLAYER_5=Player 5 -OPTION_PLAYER_6=Player 6 -OPTION_ALL_PLAYERS=All -OPTION_ALL_SCORES=All -OPTION_VALUE_SAVE=Save -OPTION_VALUE_SEND=Send - -MSG_INSERT_USER_TITLE=%0:s -MSG_INSERT_USER_DESC=Fill the fields: -MSG_INSERT_USER_ADD=Add -MSG_INSERT_USER_CANCEL=Cancel - -WEBSITE_NO_CONNECTION=No website connection! -WEBSITE_LOGIN_ERROR=Login Incorrect! -WEBSITE_BLANK_LOGIN=There are blank fields! -WEBSITE_EXIST_USER=Existing user! -WEBSITE_ERROR_SCORE=Scoring Error! -WEBSITE_OK_SEND=Score sent successfully! -WEBSITE_ERROR_SCORE_DUPLICATED=Existing Score! -WEBSITE_ERROR_SONG=Song Not Found! -WEBSITE_SAVE_SCORE=Score save successfully! -WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? - -SONG_MENU_REFRESH_SCORES=Update Scores -SONG_MENU_REFRESH_SCORES_TITLE=Update -SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! -SONG_MENU_REFRESH_SCORES_ONLINE=Online -SONG_MENU_REFRESH_SCORES_FILE=File -SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites -SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs -SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song -SONG_MENU_REFRESH_SCORES_REFRESH=Update -SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! -SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! - -SONG_SCORE_MAX=Best: -SONG_SCORE_MEDIA=Average: - -SCORE_SEND_DESC=Send Score -SCORE_SEND=Send -SCORE_SEND_PLAYER=Player -SCORE_SEND_OTHER_USER= Other Username -SCORE_SAVE=Save - -SCORE_DOWNLOAD_TITLE=Download -SCORE_DOWNLOAD_SONG=Song: -SCORE_DOWNLOAD_CREATE_LIST=Preparing List... -SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... -SCORE_DOWNLOAD_CANCEL=Cancel -SCORE_DOWNLOAD_OK=OK -SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! - -SING_OPTIONS_GAME_SHOWSCORES=Show Scores -OPTION_VALUE_WHEN_EXISTS=When Exists - PARTY_SELECT_MODE=Mode PARTY_MODE_CLASSIC=Classic PARTY_MODE_CLASSIC_FREE=Classic Free PARTY_MODE_CHALLENGE=Challenge PARTY_MODE_TOURNAMENT=Tournament PARTY_MODE_JUKEBOX=Jukebox -PARTY_MODE_NOT_AVAILABLE=Not Available! PARTY_MODE_TOURNAMENT_PLAYER_DESC=Insert number and players name PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Number of Players @@ -557,39 +542,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Next players to the mics PARTY_MODE_TOURNAMENT_WIN_DESC=Round result PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -EDIT_TITLE=Title: -EDIT_ARTIST=Artist: -EDIT_MP3=MP3: -EDIT_BPM=BPM: -EDIT_GAP=GAP: -EDIT_COVER=Cover: -EDIT_BACKGROUND=Background: - -EDIT_START=Start: -EDIT_DURATION=Duration: -EDIT_TONE=Tone: -EDIT_LYRIC=Lyric: -EDIT_VIDEOGAP=Video Gap: -EDIT_VOLUME_AUDIO=Audio Volume: -EDIT_VOLUME_MIDI=Midi Volume: -EDIT_VOLUME_CLICK=Click Volume: -INFO_UNDO=Undo last operation - -INFO_FILE_SAVED=File saved -INFO_TIME_FIXED=Timings corrected -INFO_CAPITALIZE=Capitalization corrected -INFO_EXIT=Do you want to leave editor without saving ? -INFO_SONG_RELOADED=Song reloaded -INFO_DIVIDED_BPM=BPM Divided by 2 -INFO_MULTIPLIED_BPM=BPM Multiplied by 2 -INFO_PLAY_SONG=Play song -INFO_PLAY_SENTENCE=Play sentence -INFO_CURRENT_LINE=Line: -INFO_CURRENT_NOTE=Note: - -INFO_MIDI_CHANNEL_OFF= Channel %0:s off! -INFO_MIDI_CHANNEL_RESET= All channels on! - MSG_END_JUKEBOX=Do you want leave Jukebox Mode? JUKEBOX_RANDOM=Random JUKEBOX_REPEAT=Repeat @@ -601,8 +553,6 @@ SING_ERROR_DUET_MODE_PARTY = Duet! Not playable in Party Mode! SONG_MENU_SONG=Song SONG_MENU_MEDLEY=Medley -SONG_MENU_SORTING=Sort -SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Song Menu SONG_MENU_NAME_MEDLEY=Medley Menu @@ -618,34 +568,6 @@ SONG_MENU_SORTING_ALL=All SONG_MENU_SORTING_DUET=Duets SONG_MENU_SORTING_APPLY=Apply -SING_OPTIONS_WEBCAM=Webcam -SING_OPTIONS_WEBCAM_DESC=Webcam Settings -SING_OPTIONS_WEBCAM_WHEREAMI=Webcam Options -SING_OPTIONS_WEBCAM_ID=Webcam -SING_OPTIONS_WEBCAM_RESOLUTION=Resolution -SING_OPTIONS_WEBCAM_FPS=FPS -SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! -SING_OPTIONS_WEBCAM_FLIP=Flip -SING_OPTIONS_WEBCAM_EFFECT=Effect -SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -SING_OPTIONS_WEBCAM_SATURATION=Saturation -SING_OPTIONS_WEBCAM_HUE=Hue -SING_OPTIONS_WEBCAM_PREVIEW=Activate preview -SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview -SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview - -SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal -SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Grayscale -SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Black & White -SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negative -SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image -SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate -SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Threshold -SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges -SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur -SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized -SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode - PARTY_PLAYLIST_MANUAL=Manual Selection PARTY_MODE_JUKEBOX_NO_SONGS=Playlist is empty! SONG_MENU_OPEN_CATEGORY=Open category @@ -659,58 +581,6 @@ WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! NAME_PLAYERS_COUNT=Number of Players NAME_CURRENT_PLAYER=Player -SING_OPTIONS_GAME_SONGMENU=Song Menu -OPTION_VALUE_ROULETTE=Roulette -OPTION_VALUE_CHESSBOARD=Chessboard -OPTION_VALUE_CAROUSEL=Carousel -OPTION_VALUE_SLOT_MACHINE=Slot Machine -OPTION_VALUE_LIST=List -OPTION_VALUE_MOSAIC=Tile - -SING_OPTIONS_JUKEBOX=Jukebox -SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox -SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options - -OPTION_VALUE_TO_SING=Sing -OPTION_VALUE_ACTUAL=Actual -OPTION_VALUE_NEXT=Next -OPTION_VALUE_OTHER=Other -OPTION_VALUE_FILL=Fill -OPTION_VALUE_OUTLINE=Outline -OPTION_VALUE_GRAY=Gray -OPTION_VALUE_WHITE=White -OPTION_VALUE_TURQUOISE=Turquoise -OPTION_VALUE_SALMON=Salmon -OPTION_VALUE_GREENYELLOW=GreenYellow -OPTION_VALUE_LAVENDER=Lavender -OPTION_VALUE_BEIGE=Beige -OPTION_VALUE_TEAL=Teal -OPTION_VALUE_ORCHID=Orchid -OPTION_VALUE_STEELBLUE=Steel Blue -OPTION_VALUE_PLUM=Plum -OPTION_VALUE_CHOCOLATE=Chocolate -OPTION_VALUE_GOLD=Gold -OPTION_VALUE_DARKBLUE=Dark Blue -OPTION_VALUE_SKY=Sky -OPTION_VALUE_HARLEQUIN=Harlequin -OPTION_VALUE_CYAN=Cyan -OPTION_VALUE_FLAME=Flame - -JUKEBOX_SONGOPTIONS_VIDEO=Video Options -JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect -JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width -JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height -JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options -JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size -JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Transparency -JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Color -JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line -JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property -JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Red -JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Green -JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blue - JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=LetterBox @@ -720,29 +590,37 @@ JUKEBOX_SONGOPTIONS_CLOSE=Close JUKEBOX_SONGOPTIONS_DEFAULT=Default JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Saved! -SING_SONG_CREDITS=Credits -SING_JUKEBOX=Jukebox -SING_JUKEBOX_DESC=Listen to my collection JUKEBOX_MODE=Jukebox Mode -JUKEBOX_OPTIONS_DESC=Playlist Options -JUKEBOX_OPTIONS_WHEREAMI=Jukebox Options JUKEBOX_OPTIONS_PLAYLIST=Playlist JUKEBOX_OPTIONS_PLAYLIST_MODE=Mode -SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing -SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores -OPTION_VALUE_ALL=All -OPTION_VALUE_PLAYER=Player - -SING_ABOUT=About -SING_ABOUT_DESC=About Ultrastar Deluxe WorldParty ABOUT_MAIN=About... -ABOUT_MAIN_DESC=Ultrastar Deluxe WorldParty -ABOUT_MAIN_WHEREAMI=About... -ABOUT_USDX_CREDITS=Credits ABOUT_USDX_DEVELOPEDBY=Developed by +ABOUT_CHECK_CHECKING=Checking for new updates... +ABOUT_CHECK_AVAILABLE=There is a new version available +ABOUT_CHECK_UPTODATE=WorldParty is up to date +ABOUT_CHECK_CONNECTION=There is no Internet connection ABOUT_OVERVIEW=Discover a new way of singing, alone, in couple, or with friends. \n Fun is guaranteed.\n\nWorldParty is a fork of the original version Ultrastar Deluxe 1.1 designed and developed by UltraStar España Team, it counts with the biggest karaoke community.\n\n\nThis program is free and libre under the GPL license. \n\n Visit us for more information.\n\nhttps://ultrastar-es.org - DEVELOPERS_TITLE=Developed by -DEVELOPERS_OVERVIEW=People who has contribuited to this project:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\n\n Visit us for more information.\n\nhttps://ultrastar-es.org +DEVELOPERS_OVERVIEW=People who has contributed to this project:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Visit us for more information.\n\nhttps://ultrastar-es.org + +SCREENSHOT_SAVED=Screenshot saved +SCREENSHOT_FAILED=Couldn't save screenshot + +MSG_ERROR_TITLE=Error +MSG_INFO_TITLE=Information +MSG_QUESTION_TITLE=Question +MSG_QUIT_USDX=Really leave UltraStar? +MSG_END_PARTY=Really leave Party Mode? + +ERROR_NO_SONGS=No Songs loaded +ERROR_NO_PLUGINS=No Plugins loaded +ERROR_LOADING_SONGS=Wait for loading all the songs +ERROR_CORRUPT_SONG=Song could not be loaded. +ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Song could not be loaded: File not found +ERROR_CORRUPT_SONG_NO_NOTES=Song could not be loaded: Can''t find any notes +ERROR_CORRUPT_SONG_NO_BREAKS=Song could not be loaded: Can''t find any linebreaks +ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song could not be loaded: Error parsing line %0:d +ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your microphone options +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your microphone options diff --git "a/game/languages/Espa\303\261ol.ini" "b/game/languages/Espa\303\261ol.ini" index bd61e243..b2d31f49 100644 --- "a/game/languages/Espa\303\261ol.ini" +++ "b/game/languages/Espa\303\261ol.ini" @@ -1,86 +1,17 @@ [Text] LANGUAGE=Español -OPTION_VALUE_EASY=Fácil -OPTION_VALUE_MEDIUM=Medio -OPTION_VALUE_HARD=Difícil - -OPTION_VALUE_ON=Sí -OPTION_VALUE_OFF=No - -OPTION_VALUE_EDITION=Edición -OPTION_VALUE_GENRE=Género -OPTION_VALUE_LANGUAGE=Idioma -OPTION_VALUE_FOLDER=Carpeta -OPTION_VALUE_TITLE=Título -OPTION_VALUE_ARTIST=Artista -OPTION_VALUE_TITLE2=Título2 -OPTION_VALUE_ARTIST2=Artista2 -OPTION_VALUE_YEAR=Año -OPTION_VALUE_DECADE=Década -OPTION_VALUE_PLAYLIST=Lista - -OPTION_VALUE_BORDERLESS=Maximizada - -OPTION_VALUE_WHENNOVIDEO=Si no hay video -OPTION_VALUE_WHENNOVIDEOANDIMAGE=Si no hay video ni imagen - -OPTION_VALUE_SMALL=Pequeño -OPTION_VALUE_BIG=Grande - -OPTION_VALUE_HALF=Mitad -OPTION_VALUE_FULL_VID=Completo (video) -OPTION_VALUE_FULL_VID_BG=Completo (fondo y video) - -OPTION_VALUE_GAIN_SOFT=Poca -OPTION_VALUE_GAIN_MEDIUM=Media -OPTION_VALUE_GAIN_HARD=Mucha - -OPTION_VALUE_AUTO=Auto -OPTION_VALUE_SEC=Segundo -OPTION_VALUE_SECS=Segundos - -OPTION_VALUE_PLAIN=Estilizada -OPTION_VALUE_OLINE1=Con borde fino -OPTION_VALUE_OLINE2=Con borde grueso - -OPTION_VALUE_SIMPLE=Simple -OPTION_VALUE_ZOOM=Acercar -OPTION_VALUE_SLIDE=Deslizar -OPTION_VALUE_BALL=Pelotita -OPTION_VALUE_SHIFT=Saltar - -OPTION_VALUE_EURO=Europeo -OPTION_VALUE_JAPAN=Japonés -OPTION_VALUE_AMERICAN=Americano - -OPTION_VALUE_BLUE=Azul -OPTION_VALUE_GREEN=Verde -OPTION_VALUE_PINK=Rosa -OPTION_VALUE_RED=Rojo -OPTION_VALUE_VIOLET=Violeta -OPTION_VALUE_ORANGE=Naranja -OPTION_VALUE_YELLOW=Amarillo -OPTION_VALUE_BROWN=Marrón -OPTION_VALUE_BLACK=Negro -OPTION_VALUE_MAGENTA=Magenta - -OPTION_VALUE_SING=Cantar -OPTION_VALUE_SELECT_PLAYERS=Elegir jugadores -OPTION_VALUE_OPEN_MENU=Abrir menú - SING_LOADING=Cargando... -SING_LOADING_CHECK_FOLDER=Buscando canciones en la carpeta %s -SING_LOADING_FINISH=Carga finalizada. ¡Ya puedes cantar! +SING_LOADING_SONGS=Cargando canciones de la carpeta %s -SING_CHOOSE_MODE=Elige SING_SING=Canta SING_SING_DESC=Canta solo o acompañado SING_MULTI=Fiesta SING_MULTI_DESC=Canta en una fiesta o en grupos -SING_TOOLS=Utilidades +SING_JUKEBOX=Reproductor de música +SING_JUKEBOX_DESC=Escuchar mis canciones SING_STATS=Estadísticas SING_STATS_DESC=Ver estadísticas @@ -91,29 +22,42 @@ SING_GAME_OPTIONS_DESC=Cambia las opciones del juego SING_EXIT=Salir SING_EXIT_DESC=Salir del juego +SING_ABOUT=Acerca de +SING_ABOUT_DESC=Acerca de Ultrastar Deluxe WorldParty + +SING_PLAYER_TITLE=Perfiles +SING_PLAYER_READY=Jugadores listos para cantar +SING_PLAYER_COUNT=Número de jugadores +SING_PLAYER_EDIT=Edita un jugador +SING_PLAYER_NAME=Escribe tu nombre +SING_PLAYER_COLOR=Escoge un color +SING_PLAYER_LEVEL=Elige un nivel +SING_PLAYER_AVATAR=Selecciona tu avatar + +OPTION_VALUE_EASY=Fácil +OPTION_VALUE_MEDIUM=Medio +OPTION_VALUE_HARD=Difícil + SING_OPTIONS=Opciones -SING_OPTIONS_DESC=Cambia las opciones -SING_OPTIONS_WHEREAMI=Opciones SING_OPTIONS_GAME=Juego SING_OPTIONS_GRAPHICS=Gráficos SING_OPTIONS_SOUND=Sonido SING_OPTIONS_LYRICS=Letras SING_OPTIONS_THEMES=Apariencia -SING_OPTIONS_RECORD=Micrófonos +SING_OPTIONS_MICROPHONES=Micrófonos SING_OPTIONS_ADVANCED=Avanzado +SING_OPTIONS_NETWORK=Internet +SING_OPTIONS_WEBCAM=Webcam +SING_OPTIONS_JUKEBOX=Jukebox SING_OPTIONS_EXIT=Atrás -SING_OPTIONS_GAME_WHEREAMI=Opciones del juego -SING_OPTIONS_GAME_DESC=Cambia las preferencias generales del juego -SING_OPTIONS_GAME_PLAYERS=Jugadores -SING_OPTIONS_GAME_DIFFICULTY=Dificultad SING_OPTIONS_GAME_LANGUAGE=Idioma +SING_OPTIONS_GAME_SONGMENU=Menú SING_OPTIONS_GAME_TABS=Mostrar carpetas SING_OPTIONS_GAME_SORTING=Clasificar por -SING_OPTIONS_GAME_SONGMENU=Menú -SING_OPTIONS_GAME_JOYPAD_SUPPORT=Activar gamepad SING_OPTIONS_GAME_SHOWSCORES=Ver puntuación online +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Activar gamepad OPTION_VALUE_ROULETTE=Ruleta OPTION_VALUE_CHESSBOARD=Ajedrez @@ -122,87 +66,245 @@ OPTION_VALUE_SLOT_MACHINE=Máquina tragaperras OPTION_VALUE_LIST=Lista OPTION_VALUE_MOSAIC=Baldosas +OPTION_VALUE_ON=Sí +OPTION_VALUE_OFF=No -SING_OPTIONS_GRAPHICS_WHEREAMI=Opciones gráficas -SING_OPTIONS_GRAPHICS_DESC=Cambia los ajustes de video +OPTION_VALUE_EDITION=Edición +OPTION_VALUE_GENRE=Género +OPTION_VALUE_LANGUAGE=Idioma +OPTION_VALUE_FOLDER=Carpeta +OPTION_VALUE_TITLE=Título +OPTION_VALUE_ARTIST=Artista +OPTION_VALUE_ARTIST2=Artista2 +OPTION_VALUE_YEAR=Año +OPTION_VALUE_DECADE=Década +OPTION_VALUE_PLAYLIST=Lista + +OPTION_VALUE_WHEN_EXISTS=Cuando exista + +SING_OPTIONS_GRAPHICS_FULLSCREEN=Pantalla completa SING_OPTIONS_GRAPHICS_RESOLUTION=Resolución -SING_OPTIONS_GRAPHICS_EFFECTSING=Efectos al cantar SING_OPTIONS_GRAPHICS_SCREENFADE=Animaciones -SING_OPTIONS_GRAPHICS_LOADANIMATION=Animación de carga -SING_OPTIONS_GRAPHICS_FULLSCREEN=Pantalla completa -SING_OPTIONS_GRAPHICS_DEPTH=Profundidad de color +SING_OPTIONS_GRAPHICS_EFFECTSING=Efectos al cantar SING_OPTIONS_GRAPHICS_VISUALIZER=Visualización SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Tamaño del video -SING_OPTIONS_SOUND_WHEREAMI=Opciones de sonido -SING_OPTIONS_SOUND_DESC=Cambia los ajustes de audio +OPTION_VALUE_BORDERLESS=Maximizada + +OPTION_VALUE_WHENNOVIDEO=Si no hay video +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Si no hay video ni imagen + +OPTION_VALUE_HALF=Mitad +OPTION_VALUE_FULL_VID=Completo (video) +OPTION_VALUE_FULL_VID_BG=Completo (fondo y video) + SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Escucha tu voz SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Música de fondo -SING_OPTIONS_SOUND_MIC_BOOST=Potenciar micrófono SING_OPTIONS_SOUND_CLICK_ASSIST=Clic en notas SING_OPTIONS_SOUND_BEAT_CLICK=Activar metrónomo -SING_OPTIONS_SOUND_THRESHOLD=Reducción de ruido -SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Modo 2 jugadores SING_OPTIONS_SOUND_MUSICAUTOGAIN=Ganancia SING_OPTIONS_SOUND_PREVIEWVOLUME=Volumen vista previa SING_OPTIONS_SOUND_PREVIEWFADING=Desvanecer audio +OPTION_VALUE_GAIN_SOFT=Poca +OPTION_VALUE_GAIN_MEDIUM=Media +OPTION_VALUE_GAIN_HARD=Mucha + +OPTION_VALUE_AUTO=Auto +OPTION_VALUE_SEC=Segundo +OPTION_VALUE_SECS=Segundos -SING_OPTIONS_LYRICS_WHEREAMI=Opciones de letras -SING_OPTIONS_LYRICS_DESC=Cambia la forma en que se ven las canciones SING_OPTIONS_LYRICS_FONT=Tipografía SING_OPTIONS_LYRICS_EFFECT=Efecto -SING_OPTIONS_LYRICS_SOLMIZATION=Solfeo SING_OPTIONS_LYRICS_NOTELINES=Pentagrama -SING_OPTIONS_THEMES_WHEREAMI=Opciones de apariencia -SING_OPTIONS_THEMES_DESC=Cambia la apariencia del juego +OPTION_VALUE_PLAIN=Estilizada +OPTION_VALUE_OLINE1=Con borde fino +OPTION_VALUE_OLINE2=Con borde grueso + +OPTION_VALUE_SIMPLE=Simple +OPTION_VALUE_ZOOM=Acercar +OPTION_VALUE_SLIDE=Deslizar +OPTION_VALUE_BALL=Pelotita +OPTION_VALUE_SHIFT=Saltar + SING_OPTIONS_THEMES_THEME=Tema SING_OPTIONS_THEMES_SKIN=Piel SING_OPTIONS_THEMES_COLOR=Color -SING_OPTIONS_RECORD_WHEREAMI=Opciones de micrófonos -SING_OPTIONS_RECORD_DESC=Cambia tus micrófonos -SING_OPTIONS_RECORD_CARD=Dispositivo de sonido -SING_OPTIONS_RECORD_INPUT=Entrada -SING_OPTIONS_RECORD_CHANNEL=Canal +SING_OPTIONS_MICROPHONES_CARD=Dispositivo de sonido +SING_OPTIONS_MICROPHONES_INPUT=Entrada +SING_OPTIONS_MICROPHONES_CHANNEL=Canal +SING_OPTIONS_MICROPHONES_THRESHOLD=Reducción de ruido +SING_OPTIONS_MICROPHONES_MIC_BOOST=Potenciar micrófono SING_OPTIONS_ADVANCED_DEBUG=Mostrar FPS SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Osciloscopio -SING_OPTIONS_ADVANCED_WHEREAMI=Opciones avanzadas -SING_OPTIONS_ADVANCED_DESC=Opciones avanzadas -SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Confirmar al salir -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=Al seleccionar canción +SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Confirmar al salir SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto menú de fiesta +SING_OPTIONS_ADVANCED_TOPSCORES=Mostrar calificaciones +SING_OPTIONS_ADVANCED_SINGSCORES=Marcador al cantar + +OPTION_VALUE_ALL=Todos los jugadores +OPTION_VALUE_PLAYER=Jugador actual + +SING_OPTIONS_NETWORK_INSERT_USER_INFO=Pulsa la tecla "Insert" para añadir un usuario a esta web +SING_OPTIONS_NETWORK_WEBSITE=Página web +SING_OPTIONS_NETWORK_USERNAME=Usuario +SING_OPTIONS_NETWORK_PASSWORD=Contraseña +SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Enviar nombre +SING_OPTIONS_NETWORK_AUTO_MODE=Auto +SING_OPTIONS_NETWORK_AUTO_PLAYER=Jugador +SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Puntuación (Fácil) +SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Puntuación (Medio) +SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Puntuación (Difícil) +SING_OPTIONS_NETWORK_NO_DLL=Está usando una versión desactualizada. Visite nuestra web. +SING_OPTIONS_NETWORK_DELETE_PLAYER=¿De verdad quieres eliminar el usuario %0:s de la web de %1:s? +SING_OPTIONS_NETWORK_LEGEND_INSERT=Insertar +SING_OPTIONS_NETWORK_LEGEND_DELETE=Eliminar + +OPTION_PLAYER_1=Jugador 1 +OPTION_PLAYER_2=Jugador 2 +OPTION_PLAYER_3=Jugador 3 +OPTION_PLAYER_4=Jugador 4 +OPTION_PLAYER_5=Jugador 5 +OPTION_PLAYER_6=Jugador 6 +OPTION_ALL_PLAYERS=Todos +OPTION_ALL_SCORES=Todas +OPTION_VALUE_SAVE=Guardar +OPTION_VALUE_SEND=Enviar + +MSG_INSERT_USER_TITLE=%0:s +MSG_INSERT_USER_DESC= Rellena los campos: +MSG_INSERT_USER_ADD=Añadir +MSG_INSERT_USER_CANCEL=Cancelar + +WEBSITE_NO_CONNECTION=¡No hay conexión a la web! +WEBSITE_LOGIN_ERROR=¡Usuario y contraseña incorrectos! +WEBSITE_BLANK_LOGIN=¡Las casillas estan en blanco! +WEBSITE_EXIST_USER=¡El usuario ya existe! +WEBSITE_ERROR_SCORE=¡Error al enviar la puntuación! +WEBSITE_OK_SEND=¡Puntuación enviada satisfactoriamente! +WEBSITE_ERROR_SCORE_DUPLICATED=¡Ya existe la puntuación! +WEBSITE_ERROR_SONG=¡Canción no encontrada en la web! +WEBSITE_SAVE_SCORE=Puntuación guardada correctamente +WEBSITE_NO_CONNECTION_SAVE=No se puede conectar a la web ¿Desea guardar? + +SONG_MENU_REFRESH_SCORES=Actualizar puntuación +SONG_MENU_REFRESH_SCORES_TITLE=Actualización +SONG_MENU_REFRESH_SCORES_NO_WEB=No hay páginas web +SONG_MENU_REFRESH_SCORES_ONLINE=En red +SONG_MENU_REFRESH_SCORES_FILE=Archivo +SONG_MENU_REFRESH_SCORES_ALL_WEB=Todas las páginas web +SONG_MENU_REFRESH_SCORES_ALL_SONGS=Todas las canciones +SONG_MENU_REFRESH_SCORES_ONLY_SONG=Esta canción +SONG_MENU_REFRESH_SCORES_REFRESH=Actualizar +SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error,no se puede conectar a la web: %0:s +SONG_MENU_REFRESH_SCORES_ERROR_FILE=No existe el ficheiro '%0:s [Download Scores]' + +SONG_SCORE_MAX=Máximo: +SONG_SCORE_MEDIA=Media: + +SCORE_SEND_DESC=Enviar puntuación +SCORE_SEND=Enviar +SCORE_SEND_PLAYER=Jugador +SCORE_SEND_OTHER_USER= Otro nombre de usuario +SCORE_SAVE=Guardar + +SCORE_DOWNLOAD_TITLE=Descargar +SCORE_DOWNLOAD_SONG=Canción: +SCORE_DOWNLOAD_CREATE_LIST=Preparando lista... +SCORE_DOWNLOAD_RECEIVE_LIST=Descargando... +SCORE_DOWNLOAD_CANCEL=Cancelar +SCORE_DOWNLOAD_OK=OK +SCORE_DOWNLOAD_SONG_UPDATE=Existe %0:d canciones(s) modificadas(s) en la web + +SING_OPTIONS_WEBCAM_ID=Cámara +SING_OPTIONS_WEBCAM_RESOLUTION=Resolución +SING_OPTIONS_WEBCAM_FPS=FPS +SING_OPTIONS_WEBCAM_FLIP=Espejo +SING_OPTIONS_WEBCAM_BRIGHTNESS=Brillo +SING_OPTIONS_WEBCAM_SATURATION=Saturación +SING_OPTIONS_WEBCAM_HUE=Matiz +SING_OPTIONS_WEBCAM_EFFECT=Efecto +SING_OPTIONS_WEBCAM_PREVIEW=Activar previsualización + +SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Sí +SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=No +SING_OPTIONS_WEBCAM_NO_WEBCAM=¡No se ha encontrado ninguna cámara! +SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal +SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Escala de grises +SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Blanco y negro +SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negativo +SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Imagen binaria +SING_OPTIONS_WEBCAM_EFFECT_DILATE=Estirada +SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Umbral +SING_OPTIONS_WEBCAM_EFFECT_EDGES=Bordes +SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Difuminado Gaussiano +SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equilibrada +SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erosión + +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Transparencia +JUKEBOX_SONGOPTIONS_LYRIC_LINE=Línea +JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Personalizado +JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Color +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Rojo +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Verde +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Azul + +JUKEBOX_SONGOPTIONS_VIDEO=Opciones de vídeo +JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspecto +JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Ancho +JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Alto +JUKEBOX_SONGOPTIONS_LYRIC=Opciones de letra +JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Tamaño +JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Posición + +OPTION_VALUE_TO_SING=Canta +OPTION_VALUE_ACTUAL=Superior +OPTION_VALUE_NEXT=Inferior +OPTION_VALUE_OTHER=Otro +OPTION_VALUE_FILL=Relleno +OPTION_VALUE_OUTLINE=Borde +OPTION_VALUE_BLUE=Azul +OPTION_VALUE_GREEN=Verde +OPTION_VALUE_PINK=Rosa +OPTION_VALUE_RED=Rojo +OPTION_VALUE_VIOLET=Violeta +OPTION_VALUE_ORANGE=Naranja +OPTION_VALUE_YELLOW=Amarillo +OPTION_VALUE_BROWN=Marrón +OPTION_VALUE_BLACK=Negro +OPTION_VALUE_MAGENTA=Magenta +OPTION_VALUE_GRAY=Gris +OPTION_VALUE_WHITE=Blanco +OPTION_VALUE_TURQUOISE=Turquesa +OPTION_VALUE_SALMON=Salmón +OPTION_VALUE_GREENYELLOW=Lima +OPTION_VALUE_LAVENDER=Lavanda +OPTION_VALUE_BEIGE=Beis +OPTION_VALUE_TEAL=Verde azulado +OPTION_VALUE_ORCHID=Orquídea +OPTION_VALUE_STEELBLUE=Azul Metálico +OPTION_VALUE_PLUM=Ciruela +OPTION_VALUE_CHOCOLATE=Chocolate +OPTION_VALUE_GOLD=Oro +OPTION_VALUE_DARKBLUE=Azul Marino +OPTION_VALUE_SKY=Cielo +OPTION_VALUE_HARLEQUIN=Arlequín +OPTION_VALUE_CYAN=Cian +OPTION_VALUE_FLAME=LLama SING_LEGEND_SELECT=Seleccionar SING_LEGEND_NAVIGATE=Navegar SING_LEGEND_CONTINUE=Continuar SING_LEGEND_ESC=Atrás -SING_PLAYER_TITLE=Perfiles -SING_PLAYER_READY=Jugadores listos para cantar -SING_PLAYER_COUNT=Número de jugadores -SING_PLAYER_EDIT=Edita un jugador -SING_PLAYER_NAME=Escribe tu nombre -SING_PLAYER_COLOR=Escoge un color -SING_PLAYER_LEVEL=Elige un nivel -SING_PLAYER_AVATAR=Selecciona tu avatar - -SING_DIFFICULTY_DESC=Selecciona la dificultad -SING_DIFFICULTY_WHEREAMI=Dificultad -SING_DIFFICULTY_CONTINUE=Selección de canción -SING_EASY=Fácil -SING_MEDIUM=Normal -SING_HARD=Difícil - -SING_SONG_SELECTION_DESC=Elige tu canción -SING_SONG_SELECTION_WHEREAMI=Elige la canción -SING_SONG_SELECTION_GOTO=Ir a... SING_SONG_SELECTION=Selección de canción SING_SONG_SELECTION_MENU=Menú SING_SONG_SELECTION_PLAYLIST=Lista +SING_SONG_IN_CAT=canción SING_SONGS_IN_CAT=canciones PLAYLIST_CATTEXT=Lista: %s SING_SONG_SELECTION_LEGEND_TITLE=Leyenda @@ -251,8 +353,6 @@ IMPLODE_GLUE2= y SONG_MENU_NAME_MAIN=Menú canciones SONG_MENU_PLAY=Cantar esta canción SONG_MENU_CHANGEPLAYERS=Elegir jugadores -SONG_MENU_EDIT=Editar -SONG_MENU_MODI=Cantar una Modi SONG_MENU_CANCEL=Cancelar SONG_MENU_NAME_PLAYLIST=Menú canciones @@ -285,13 +385,6 @@ SONG_MENU_NAME_PARTY_JOKER=Gastar comodín SONG_JUMPTO_DESC=Buscar canción SONG_JUMPTO_TYPE_DESC=Buscar por: -SONG_JUMPTO_TYPE1=Todo -SONG_JUMPTO_TYPE2=Título -SONG_JUMPTO_TYPE3=Artista -SONG_JUMPTO_SONGSFOUND=%d resultados -SONG_JUMPTO_NOSONGSFOUND=0 resultados -SONG_JUMPTO_HELP=Escribe el texto a buscar -SONG_JUMPTO_CATTEXT=Buscar por: %s PARTY_MODE=Modo fiesta PARTY_DIFFICULTY=Dificultad @@ -309,25 +402,22 @@ PARTY_LEGEND_CONTINUE=Continuar PARTY_OPTIONS_DESC=Opciones del modo fiesta PARTY_OPTIONS_WHEREAMI=Opciones del modo fiesta -PARTY_PLAYER_DESC=Escribe los nombres de jugadores y equipos -PARTY_PLAYER_WHEREAMI=Nombre de los equipos PARTY_PLAYER_ENTER_NAME=Escribe los nombres - -PARTY_ROUNDS_DESC=Elige qué modos quieres jugar -PARTY_ROUNDS_WHEREAMI=Rondas PARTY_ROUNDS_LEGEND_CONTINUE=Empezar PARTY_ROUNDCOUNT=Número de rondas PARTY_SELECTMODE=Ronda %d -PARTY_ROUND_DESC=Siguientes jugadores -PARTY_ROUND_WHEREAMI=Siguiente ronda PARTY_ROUND_LEGEND_CONTINUE=Iniciar ronda PARTY_SONG_WHEREAMI=Selección de canción PARTY_SONG_LEGEND_CONTINUE=Cantar PARTY_SONG_MENU=Menú fiesta +OPTION_VALUE_SING=Cantar +OPTION_VALUE_SELECT_PLAYERS=Elegir jugadores +OPTION_VALUE_OPEN_MENU=Abrir menú + PARTY_SCORE_DESC=Puntación de la última ronda PARTY_SCORE_WHEREAMI=Puntación @@ -403,8 +493,6 @@ MODE_HARDCORE_NAME=Extremo MODE_HARDCORE_DESC=Gana quien consiga 3 líneas de ventaja STAT_MAIN=Estadísticas -STAT_MAIN_DESC=General -STAT_MAIN_WHEREAMI=Estadísticas STAT_OVERVIEW_INTRO=Estadísticas de %0:s\n Desde el %1:.2d/%2:.2d/%3:d STAT_OVERVIEW_SONG=Hay %0:d canciones (%3:d con vídeo),\n de las cuales %1:d han sido cantadas y %2:d aún no.\n La más popular es %5:s de %4:s. @@ -418,11 +506,11 @@ STAT_DETAIL_WHEREAMI=Estadísticas detalladas STAT_NEXT=Siguiente STAT_PREV=Anterior STAT_REVERSE=Invertir el orden -STAT_PAGE=Página %0:d de %1:d \n (%2:d ítems de un total de %3:d) +STAT_PAGE=Página %0:d de %1:d \n Registros %2:d de %3:d STAT_DESC_SCORES=Calificaciones STAT_DESC_SCORES_REVERSED=Peores Calificaciones -STAT_FORMAT_SCORES=%0:d - %1:s\n %2:s - %5:s (%3:s) el %4:s +STAT_FORMAT_SCORES=%0:s - %1:d puntos [%2:s] el %5:s \n%3:s - %4:s STAT_DESC_SINGERS=Cantantes STAT_DESC_SINGERS_REVERSED=Peores cantantes @@ -436,119 +524,12 @@ STAT_DESC_BANDS=Grupos populares STAT_DESC_BANDS_REVERSED=Grupos menos cantados STAT_FORMAT_BANDS=%0:s \n cantado %1:d veces -SCREENSHOT_SAVED=Pantalla guardada -SCREENSHOT_FAILED=No se pudo guardar - -INFO_FILE_SAVED=Archivo guardado -ERROR_SAVE_FILE_FAILED=No se pudo guardar -ERROR_FILE_NOT_FOUND=No se encontró el archivo - -ENCODING_ERROR_ASK_FOR_UTF8=No se pueden guardar los cambios en la codificación actual. ¿Convertir a UTF-8? -EDITOR_ERROR_NO_TRACK_SELECTED=Sin pista seleccionada - -MSG_ERROR_TITLE=Error -MSG_INFO_TITLE=Información -MSG_QUESTION_TITLE=Pregunta -MSG_QUIT_USDX=¿Seguro que quieres salir? -MSG_END_PARTY=¿Seguro que quieres salir del modo fiesta? - -ERROR_NO_SONGS=No hay canciones -ERROR_NO_PLUGINS=No hay plugins -ERROR_NO_MODES_FOR_CURRENT_SETUP=No hay modos disponibles para la configuración actual de equipos y jugadores -ERROR_LOADING_SONGS=Espera a que terminen de cargar las canciones -ERROR_CAN_NOT_START_PARTY=Ocurrió un error al iniciar el juego -ERROR_CORRUPT_SONG=Imposible cargar la canción. -ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Imposible cargar la canción: Archivo no encontrado -ERROR_CORRUPT_SONG_NO_NOTES=Imposible cargar la canción: No se encuentran notas -ERROR_CORRUPT_SONG_NO_BREAKS=Imposible cargar la canción: No se encuentran interrupciones de línea -ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Imposible cargar la canción: Error durante el parsing de la línea %0:d -ERROR_NO_EDITOR=Esta función no está disponible en ésta versión -ERROR_PLAYER_DEVICE_ASSIGNMENT=Se han asignado más de 1 micrófono al jugador %d. Comprueba las opciones de micrófonos. -ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Al jugador %d no se le ha asignado ningún micrófono. Comprueba las opciones de micrófonos - -SING_OPTIONS_NETWORK=Internet -SING_OPTIONS_NETWORK_WHEREAMI=Opciones de internet -SING_OPTIONS_NETWORK_DESC=Sincroniza tu cuenta con nuestra web -SING_OPTIONS_NETWORK_INSERT_USER_INFO=Pulsa la tecla "Insert" para añadir un usuario a esta web -SING_OPTIONS_NETWORK_WEBSITE=Página web -SING_OPTIONS_NETWORK_USERNAME=Usuario -SING_OPTIONS_NETWORK_PASSWORD=Contraseña -SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Enviar nombre -SING_OPTIONS_NETWORK_AUTO_MODE=Auto -SING_OPTIONS_NETWORK_AUTO_PLAYER=Jugador -SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Puntuación (Fácil) -SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Puntuación (Medio) -SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Puntuación (Difícil) -SING_OPTIONS_NETWORK_NO_DLL=Está usando una versión desactualizada. Visite nuestra web. -SING_OPTIONS_NETWORK_DELETE_PLAYER=¿De verdad quieres eliminar el usuario %0:s de la web de %1:s? -SING_OPTIONS_NETWORK_LEGEND_INSERT=Insertar -SING_OPTIONS_NETWORK_LEGEND_DELETE=Eliminar - -OPTION_PLAYER_1=Jugador 1 -OPTION_PLAYER_2=Jugador 2 -OPTION_PLAYER_3=Jugador 3 -OPTION_PLAYER_4=Jugador 4 -OPTION_PLAYER_5=Jugador 5 -OPTION_PLAYER_6=Jugador 6 -OPTION_ALL_PLAYERS=Todos -OPTION_ALL_SCORES=Todas -OPTION_VALUE_SAVE=Guardar -OPTION_VALUE_SEND=Enviar - -MSG_INSERT_USER_TITLE=%0:s -MSG_INSERT_USER_DESC= Rellena los campos: -MSG_INSERT_USER_ADD=Añadir -MSG_INSERT_USER_CANCEL=Cancelar - -WEBSITE_NO_CONNECTION=¡No hay conexión a la web! -WEBSITE_LOGIN_ERROR=¡Usuario y contraseña incorrectos! -WEBSITE_BLANK_LOGIN=¡Las casillas estan en blanco! -WEBSITE_EXIST_USER=¡El usuario ya existe! -WEBSITE_ERROR_SCORE=¡Error al enviar la puntuación! -WEBSITE_OK_SEND=¡Puntuación enviada satisfactoriamente! -WEBSITE_ERROR_SCORE_DUPLICATED=¡Ya existe la puntuación! -WEBSITE_ERROR_SONG=¡Canción no encontrada en la web! -WEBSITE_SAVE_SCORE=Puntuación guardada correctamente -WEBSITE_NO_CONNECTION_SAVE=No se puede conectar a la web ¿Desea guardar? - -SONG_MENU_REFRESH_SCORES=Actualizar puntuación -SONG_MENU_REFRESH_SCORES_TITLE=Actualización -SONG_MENU_REFRESH_SCORES_NO_WEB=No hay páginas web -SONG_MENU_REFRESH_SCORES_ONLINE=En red -SONG_MENU_REFRESH_SCORES_FILE=Archivo -SONG_MENU_REFRESH_SCORES_ALL_WEB=Todas las páginas web -SONG_MENU_REFRESH_SCORES_ALL_SONGS=Todas las canciones -SONG_MENU_REFRESH_SCORES_ONLY_SONG=Esta canción -SONG_MENU_REFRESH_SCORES_REFRESH=Actualizar -SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error,no se puede conectar a la web: %0:s -SONG_MENU_REFRESH_SCORES_ERROR_FILE=No existe el ficheiro '%0:s [Download Scores]' - -SONG_SCORE_MAX=Máximo: -SONG_SCORE_MEDIA=Media: - -SCORE_SEND_DESC=Enviar puntuación -SCORE_SEND=Enviar -SCORE_SEND_PLAYER=Jugador -SCORE_SEND_OTHER_USER= Otro nombre de usuario -SCORE_SAVE=Guardar - -SCORE_DOWNLOAD_TITLE=Descargar -SCORE_DOWNLOAD_SONG=Canción: -SCORE_DOWNLOAD_CREATE_LIST=Preparando lista... -SCORE_DOWNLOAD_RECEIVE_LIST=Descargando... -SCORE_DOWNLOAD_CANCEL=Cancelar -SCORE_DOWNLOAD_OK=OK -SCORE_DOWNLOAD_SONG_UPDATE=Existe %0:d canciones(s) modificadas(s) en la web - -OPTION_VALUE_WHEN_EXISTS=Cuando exista - PARTY_SELECT_MODE=Modo PARTY_MODE_CLASSIC=Clásico PARTY_MODE_CLASSIC_FREE=Clásico Libre PARTY_MODE_CHALLENGE=Desafío PARTY_MODE_TOURNAMENT=Torneo PARTY_MODE_JUKEBOX=Jukebox -PARTY_MODE_NOT_AVAILABLE=No Disponible PARTY_MODE_TOURNAMENT_PLAYER_DESC=Inserta el nº y los nombres de los jugadores PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Nº de jugadores @@ -561,39 +542,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Jugadores siguientes para los micrófonos PARTY_MODE_TOURNAMENT_WIN_DESC=Resultados de la ronda PARTY_MODE_TOURNAMENT_CHAMPION=El campeón es: %0:s -EDIT_TITLE=Título: -EDIT_ARTIST=Artista: -EDIT_MP3=MP3: -EDIT_BPM=BPM: -EDIT_GAP=GAP: -EDIT_COVER=Carátula -EDIT_BACKGROUND=Fondo: - -EDIT_START=Inicio: -EDIT_DURATION=Duración -EDIT_TONE=Tono -EDIT_LYRIC=Letra: -EDIT_VIDEOGAP=Video Gap: -EDIT_VOLUME_AUDIO=Volumen del audio: -EDIT_VOLUME_MIDI=Volumen del midi: -EDIT_VOLUME_CLICK=Volumen del click: -INFO_UNDO=Deshacer la operación - -INFO_FILE_SAVED=Archivo guardado -INFO_TIME_FIXED=Tiempos corregidos -INFO_CAPITALIZE=Capitalización corregida -INFO_EXIT=¿Desea salir del editor sin guardar? -INFO_SONG_RELOADED=Canción Reabierta -INFO_DIVIDED_BPM=Dividir BPM -INFO_MULTIPLIED_BPM=Multiplicar BPM -INFO_PLAY_SONG=Reproducir música -INFO_PLAY_SENTENCE=Reproducir línea -INFO_CURRENT_LINE=Línea: -INFO_CURRENT_NOTE=Nota: - -INFO_MIDI_CHANNEL_OFF= Canal %0:s desactivado -INFO_MIDI_CHANNEL_RESET= Todos los canales activos - MSG_END_JUKEBOX=¿Seguro que quieres salir del reproductor de música? JUKEBOX_RANDOM=Aleatorio JUKEBOX_REPEAT=Repetir @@ -605,8 +553,6 @@ SING_ERROR_DUET_MODE_PARTY = ¡Dueto! ¡No se puede jugar en el modo fiesta! SONG_MENU_SONG=Canción SONG_MENU_MEDLEY=Medley -SONG_MENU_SORTING=Ordenar -SONG_MENU_EXTRA=Extras SONG_MENU_NAME_SONG=Menu Canción SONG_MENU_NAME_MEDLEY=Menu Medley @@ -622,41 +568,12 @@ SONG_MENU_SORTING_ALL=Todas SONG_MENU_SORTING_DUET=Duetos SONG_MENU_SORTING_APPLY=Aplicar -SING_OPTIONS_WEBCAM=Cámara -SING_OPTIONS_WEBCAM_DESC=Configuración de la cámara -SING_OPTIONS_WEBCAM_WHEREAMI=Opciones de la cámara -SING_OPTIONS_WEBCAM_ID=Cámara -SING_OPTIONS_WEBCAM_RESOLUTION=Resolución -SING_OPTIONS_WEBCAM_FPS=FPS -SING_OPTIONS_WEBCAM_NO_WEBCAM=¡No se ha encontrado ninguna cámara! -SING_OPTIONS_WEBCAM_FLIP=Espejo -SING_OPTIONS_WEBCAM_EFFECT=Efecto -SING_OPTIONS_WEBCAM_BRIGHTNESS=Brillo -SING_OPTIONS_WEBCAM_SATURATION=Saturación -SING_OPTIONS_WEBCAM_HUE=Matiz -SING_OPTIONS_WEBCAM_PREVIEW=Activar previsualización -SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Sí -SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=No - -SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal -SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Escala de grises -SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Blanco y negro -SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negativo -SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Imagen binaria -SING_OPTIONS_WEBCAM_EFFECT_DILATE=Estirada -SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Umbral -SING_OPTIONS_WEBCAM_EFFECT_EDGES=Bordes -SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Difuminado Gaussiano -SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equilibrada -SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erosión - - PARTY_PLAYLIST_MANUAL=Seleción manual PARTY_MODE_JUKEBOX_NO_SONGS=La lista de canciones está vacía SONG_MENU_OPEN_CATEGORY=Abrir categoria SONG_MENU_CLOSE_CATEGORY=Cerrar categoria SONG_MENU_START_JUKEBOX=¡Iniciar Jukebox! -SONG_MENU_NAME_JUKEBOX=Menu Jukebox +SONG_MENU_NAME_JUKEBOX=Menú Jukebox WEBSITE_EXIST_SONG=La cancion pertenece al sitio: %0:s WEBSITE_NOT_EXIST_SONG=La canción no pertenece a ningún sitio @@ -664,46 +581,6 @@ WEBSITE_NOT_EXIST_SONG=La canción no pertenece a ningún sitio NAME_PLAYERS_COUNT=Número de jugadores NAME_CURRENT_PLAYER=Jugador -OPTION_VALUE_TO_SING=Canta -OPTION_VALUE_ACTUAL=Superior -OPTION_VALUE_NEXT=Inferior -OPTION_VALUE_OTHER=Otro -OPTION_VALUE_FILL=Relleno -OPTION_VALUE_OUTLINE=Borde -OPTION_VALUE_GRAY=Gris -OPTION_VALUE_WHITE=Blanco -OPTION_VALUE_TURQUOISE=Turquesa -OPTION_VALUE_SALMON=Salmón -OPTION_VALUE_GREENYELLOW=Lima -OPTION_VALUE_LAVENDER=Lavanda -OPTION_VALUE_BEIGE=Beis -OPTION_VALUE_TEAL=Verde azulado -OPTION_VALUE_ORCHID=Orquídea -OPTION_VALUE_STEELBLUE=Azul Metálico -OPTION_VALUE_PLUM=Ciruela -OPTION_VALUE_CHOCOLATE=Chocolate -OPTION_VALUE_GOLD=Oro -OPTION_VALUE_DARKBLUE=Azul Marino -OPTION_VALUE_SKY=Cielo -OPTION_VALUE_HARLEQUIN=Arlequín -OPTION_VALUE_CYAN=Cian -OPTION_VALUE_FLAME=LLama - -JUKEBOX_SONGOPTIONS_VIDEO=Opciones de vídeo -JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspecto -JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Ancho -JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Alto -JUKEBOX_SONGOPTIONS_LYRIC=Opciones de letra -JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Tamaño -JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Posición -JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Transparencia -JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Color -JUKEBOX_SONGOPTIONS_LYRIC_LINE=Línea -JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Personalizado -JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Rojo -JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Verde -JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Azul - JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Estirar JUKEBOX_SONGOPTIONS_VIDEO_CROP=Recortar JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=4:3 @@ -713,28 +590,37 @@ JUKEBOX_SONGOPTIONS_CLOSE=Cerrar JUKEBOX_SONGOPTIONS_DEFAULT=Reiniciar valores JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Cambios guardados -SING_SONG_CREDITS=Créditos -SING_JUKEBOX=Reproductor de música -SING_JUKEBOX_DESC=Escuchar mis canciones JUKEBOX_MODE=Modo reproductor -JUKEBOX_OPTIONS_DESC=Opciones de la lista de música -JUKEBOX_OPTIONS_WHEREAMI=Opciones del reproductor JUKEBOX_OPTIONS_PLAYLIST=Lista de música JUKEBOX_OPTIONS_PLAYLIST_MODE=Modo -SING_OPTIONS_ADVANCED_SINGSCORES=Marcador al cantar -SING_OPTIONS_ADVANCED_TOPSCORES=Mostrar calificaciones -OPTION_VALUE_ALL=Todos los jugadores -OPTION_VALUE_PLAYER=Jugador actual -SING_ABOUT=Acerca de -SING_ABOUT_DESC=Acerca de Ultrastar Deluxe WorldParty ABOUT_MAIN=Acerca de... -ABOUT_MAIN_DESC=Ultrastar Deluxe WorldParty -ABOUT_MAIN_WHEREAMI=Acerca de... -ABOUT_USDX_CREDITS=Créditos originales ABOUT_USDX_DEVELOPEDBY=Desarrollado por +ABOUT_CHECK_CHECKING=Buscando actualizaciones... +ABOUT_CHECK_AVAILABLE=Hay disponible una nueva versión +ABOUT_CHECK_UPTODATE=WorldParty está actualizado +ABOUT_CHECK_CONNECTION=No hay conexión a Internet ABOUT_OVERVIEW=Descubre una nueva manera de cantar, solo, en pareja o con amigos. \nLa diversión estará asegurada.\n\nWorldParty es una modificación de la versión original Ultrastar Deluxe 1.1 diseñado y desarrollado por el equipo de UltraStar España, cuenta con el apoyo de la comunidad más grande del mundo de karaoke. \n\n\nEste programa es gratuito y libre bajo licencia GPL. \n\nVisitad nuestra web para más información.\n\nhttps://ultrastar-es.org DEVELOPERS_TITLE=Desarrollado por DEVELOPERS_OVERVIEW=Gente que ha contribuido en este proyecto:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiXj\n\n\n Visítanos para más información.\n\nhttps://ultrastar-es.org -DEVELOPERS_USDX_OVERVIEW=Gracias a Corvus5, brian-ch, brunzelchen, canni0, k-m_schindler, whiteshark0, BasisBit y todos los que han colaborado con UltraStar y UltraStar Deluxe + +SCREENSHOT_SAVED=Pantalla guardada +SCREENSHOT_FAILED=No se pudo guardar + +MSG_ERROR_TITLE=Error +MSG_INFO_TITLE=Información +MSG_QUESTION_TITLE=Pregunta +MSG_QUIT_USDX=¿Seguro que quieres salir? +MSG_END_PARTY=¿Seguro que quieres salir del modo fiesta? + +ERROR_NO_SONGS=No hay canciones +ERROR_NO_PLUGINS=No hay plugins +ERROR_LOADING_SONGS=Espera a que terminen de cargar las canciones +ERROR_CORRUPT_SONG=Imposible cargar la canción. +ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Imposible cargar la canción: Archivo no encontrado +ERROR_CORRUPT_SONG_NO_NOTES=Imposible cargar la canción: No se encuentran notas +ERROR_CORRUPT_SONG_NO_BREAKS=Imposible cargar la canción: No se encuentran interrupciones de línea +ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Imposible cargar la canción: Error durante el parsing de la línea %0:d +ERROR_PLAYER_DEVICE_ASSIGNMENT=Se han asignado más de 1 micrófono al jugador %d. Comprueba las opciones de micrófonos. +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Al jugador %d no se le ha asignado ningún micrófono. Comprueba las opciones de micrófonos diff --git a/game/languages/Euskara.ini b/game/languages/Euskara.ini index 29a80a7c..6fb099f5 100644 --- a/game/languages/Euskara.ini +++ b/game/languages/Euskara.ini @@ -1,220 +1,318 @@ [Text] LANGUAGE=Euskara -OPTION_VALUE_EASY=Erraza -OPTION_VALUE_MEDIUM=Bitartekoa -OPTION_VALUE_HARD=Zaila - -OPTION_VALUE_ON=On -OPTION_VALUE_OFF=Off - -OPTION_VALUE_EDITION=Edizioa -OPTION_VALUE_GENRE=Generoa -OPTION_VALUE_LANGUAGE=Hizkuntza -OPTION_VALUE_FOLDER=Fitxategia -OPTION_VALUE_TITLE=Titulua -OPTION_VALUE_ARTIST=Artista -OPTION_VALUE_TITLE2=2.titulua -OPTION_VALUE_ARTIST2=2.artista -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade -OPTION_VALUE_PLAYLIST=Zerrenda - -;TODO: OPTION_VALUE_BORDERLESS=Borderless - -OPTION_VALUE_WHENNOVIDEO=Bideorik ez badago -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image - -OPTION_VALUE_SMALL=Txikia -OPTION_VALUE_BIG=Handia - -OPTION_VALUE_HALF=Erdia -OPTION_VALUE_FULL_VID=Osoa (Bideoa) -OPTION_VALUE_FULL_VID_BG=Osoa (BG eta bideoa) - -;TODO: OPTION_VALUE_GAIN_SOFT=Soft -;TODO: OPTION_VALUE_GAIN_MEDIUM=Medium -;TODO: OPTION_VALUE_GAIN_HARD=Hard - -OPTION_VALUE_AUTO=Automatikoa -OPTION_VALUE_SEC=Segundu -OPTION_VALUE_SECS=Segundu - -OPTION_VALUE_PLAIN=Plain -OPTION_VALUE_OLINE1=OLine1 -OPTION_VALUE_OLINE2=OLine2 - -OPTION_VALUE_SIMPLE=Arrunta -OPTION_VALUE_ZOOM=Zoom-a -OPTION_VALUE_SLIDE=Slide-a -OPTION_VALUE_BALL=Baloia -OPTION_VALUE_SHIFT=Shift-a - -OPTION_VALUE_EURO=Europearra -OPTION_VALUE_JAPAN=Japoniarra -OPTION_VALUE_AMERICAN=Amerikarra - -OPTION_VALUE_BLUE=Urdina -OPTION_VALUE_GREEN=Berdea -OPTION_VALUE_PINK=Arrosa -OPTION_VALUE_RED=Gorria -OPTION_VALUE_VIOLET=Morea -OPTION_VALUE_ORANGE=Laranja -OPTION_VALUE_YELLOW=Horia -OPTION_VALUE_BROWN=Marroia -OPTION_VALUE_BLACK=Beltza - -OPTION_VALUE_SING=Abestu -OPTION_VALUE_SELECT_PLAYERS=Aukeratu jokalariak -OPTION_VALUE_OPEN_MENU=Menua zabaldu - -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -OPTION_VALUE_HARDWARE_CURSOR=Hardware kurtsorea -OPTION_VALUE_SOFTWARE_CURSOR=Software kurtsorea - SING_LOADING=Kargatzen... +;TODO: SING_LOADING_SONGS=Loading songs from folder %s -SING_CHOOSE_MODE=Aukeratu SING_SING=Abestu SING_SING_DESC=Abestu: bakarka edo binaka SING_MULTI=Taldea SING_MULTI_DESC=Taldean abestu -SING_TOOLS=Tresnak +;TODO: SING_JUKEBOX=Jukebox +;TODO: SING_JUKEBOX_DESC=Listen to my collection SING_STATS=Estatistikak SING_STATS_DESC=Estatistikak ikusi -SING_EDITOR=Editorea -SING_EDITOR_DESC=Zure kantuak sortu - SING_GAME_OPTIONS=Hobespenak SING_GAME_OPTIONS_DESC=Jokoaren hobespenak aldatu SING_EXIT=Irten SING_EXIT_DESC=Jokotik irten +;TODO: SING_ABOUT=About +;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe WorldParty + +;TODO: SING_PLAYER_TITLE=Profiles +;TODO: SING_PLAYER_READY=Players ready to sing +;TODO: SING_PLAYER_COUNT=Number of players +;TODO: SING_PLAYER_EDIT=Customize a player +;TODO: SING_PLAYER_NAME=Write your name +;TODO: SING_PLAYER_COLOR=Pick a color +;TODO: SING_PLAYER_LEVEL=Choose a level +;TODO: SING_PLAYER_AVATAR=Select your avatar + +OPTION_VALUE_EASY=Erraza +OPTION_VALUE_MEDIUM=Bitartekoa +OPTION_VALUE_HARD=Zaila + SING_OPTIONS=Hobespenak -SING_OPTIONS_DESC=Aukerak aldatu -SING_OPTIONS_WHEREAMI=Hobespenak SING_OPTIONS_GAME=Jokoa SING_OPTIONS_GRAPHICS=Grafikoak SING_OPTIONS_SOUND=Soinua -;TODO: SING_OPTIONS_INPUT=Input SING_OPTIONS_LYRICS=Letrak SING_OPTIONS_THEMES=Gaiak -SING_OPTIONS_RECORD=Grabazioa +SING_OPTIONS_MICROPHONES=Grabazioa SING_OPTIONS_ADVANCED=Aurreratuak +;TODO: SING_OPTIONS_NETWORK=Internet +;TODO: SING_OPTIONS_WEBCAM=Webcam +;TODO: SING_OPTIONS_JUKEBOX=Jukebox SING_OPTIONS_EXIT=Itzuli -SING_OPTIONS_GAME_WHEREAMI=Jokoaren hobespenak -SING_OPTIONS_GAME_DESC=Jokoaren hobespen orokorrak -SING_OPTIONS_GAME_PLAYERS=Jokalariak -SING_OPTIONS_GAME_DIFFICULTY=Zailtasuna SING_OPTIONS_GAME_LANGUAGE=Hizkuntza +SING_OPTIONS_GAME_SONGMENU=Menua SING_OPTIONS_GAME_TABS=Etiketak SING_OPTIONS_GAME_SORTING=Sailkapena -SING_OPTIONS_GAME_DEBUG=Araztu +;TODO: SING_OPTIONS_GAME_SHOWSCORES=Show Scores +;TODO: SING_OPTIONS_GAME_JOYPAD_SUPPORT=Controller support + +;TODO: OPTION_VALUE_ROULETTE=Roulette +;TODO: OPTION_VALUE_CHESSBOARD=Chessboard +;TODO: OPTION_VALUE_CAROUSEL=Carousel +;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine +;TODO: OPTION_VALUE_LIST=List +;TODO: OPTION_VALUE_MOSAIC=Tile + +OPTION_VALUE_ON=On +OPTION_VALUE_OFF=Off + +OPTION_VALUE_EDITION=Edizioa +OPTION_VALUE_GENRE=Generoa +OPTION_VALUE_LANGUAGE=Hizkuntza +OPTION_VALUE_FOLDER=Fitxategia +OPTION_VALUE_TITLE=Titulua +OPTION_VALUE_ARTIST=Artista +OPTION_VALUE_ARTIST2=2.artista +;TODO: OPTION_VALUE_YEAR=Year +;TODO: OPTION_VALUE_DECADE=Decade +OPTION_VALUE_PLAYLIST=Zerrenda + +;TODO: OPTION_VALUE_WHEN_EXISTS=When Exists -SING_OPTIONS_GRAPHICS_WHEREAMI=Grafikoen hobespenak -SING_OPTIONS_GRAPHICS_DESC=Grafikoen hobespenak -SING_OPTIONS_GRAPHICS_RESOLUTION=Erresoluzioa SING_OPTIONS_GRAPHICS_FULLSCREEN=Pantaila osoa -SING_OPTIONS_GRAPHICS_DEPTH=Kolore kalitatea +SING_OPTIONS_GRAPHICS_RESOLUTION=Erresoluzioa +;TODO: SING_OPTIONS_GRAPHICS_SCREENFADE=Screen Fading +;TODO: SING_OPTIONS_GRAPHICS_EFFECTSING=Sing Effects SING_OPTIONS_GRAPHICS_VISUALIZER=Bistaratzeak -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Osziloskopioa -SING_OPTIONS_GRAPHICS_LINEBONUS=Lerro Bonusa SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Bideo tamaina -SING_OPTIONS_SOUND_WHEREAMI=Soinu hobespenak -SING_OPTIONS_SOUND_DESC=Soinu hobespenak +;TODO: OPTION_VALUE_BORDERLESS=Borderless + +OPTION_VALUE_WHENNOVIDEO=Bideorik ez badago +;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image + +OPTION_VALUE_HALF=Erdia +OPTION_VALUE_FULL_VID=Osoa (Bideoa) +OPTION_VALUE_FULL_VID_BG=Osoa (BG eta bideoa) + SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Mikrofono playback-a SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Atzeko soinua -SING_OPTIONS_SOUND_MIC_BOOST=Mikrofonoa indartu SING_OPTIONS_SOUND_CLICK_ASSIST=Noten laguntza SING_OPTIONS_SOUND_BEAT_CLICK=Kolpeen laguntza -SING_OPTIONS_SOUND_THRESHOLD=Arintzea -SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Bi jokalari modua ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Bolumena aurreikusi SING_OPTIONS_SOUND_PREVIEWFADING=Desagerpena aurreikusi -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support +;TODO: OPTION_VALUE_GAIN_SOFT=Soft +;TODO: OPTION_VALUE_GAIN_MEDIUM=Medium +;TODO: OPTION_VALUE_GAIN_HARD=Hard + +OPTION_VALUE_AUTO=Automatikoa +OPTION_VALUE_SEC=Segundu +OPTION_VALUE_SECS=Segundu -SING_OPTIONS_LYRICS_WHEREAMI=Letren hobespenak -SING_OPTIONS_LYRICS_DESC=Letren hobespenak SING_OPTIONS_LYRICS_FONT=Letra-mota SING_OPTIONS_LYRICS_EFFECT=Efektua -SING_OPTIONS_LYRICS_SOLMIZATION=Solfeoa SING_OPTIONS_LYRICS_NOTELINES=Pentagramak -SING_OPTIONS_THEMES_WHEREAMI=Gaien hobespenak -SING_OPTIONS_THEMES_DESC=Gaien eta azalen hobespenak +;TODO: OPTION_VALUE_PLAIN=stylized +;TODO: OPTION_VALUE_OLINE1=with thin edge +;TODO: OPTION_VALUE_OLINE2=with thick edge + +OPTION_VALUE_SIMPLE=Arrunta +OPTION_VALUE_ZOOM=Zoom-a +OPTION_VALUE_SLIDE=Slide-a +OPTION_VALUE_BALL=Baloia +OPTION_VALUE_SHIFT=Shift-a + SING_OPTIONS_THEMES_THEME=Gaia SING_OPTIONS_THEMES_SKIN=Azala SING_OPTIONS_THEMES_COLOR=Kolorea -SING_OPTIONS_RECORD_WHEREAMI=Grabazioaren hobespenak -SING_OPTIONS_RECORD_DESC=Mikrofonoaren hobespenak -SING_OPTIONS_RECORD_CARD=Soinu-txartela -SING_OPTIONS_RECORD_INPUT=Sarrera -SING_OPTIONS_RECORD_CHANNEL=Kanala - -SING_OPTIONS_ADVANCED_WHEREAMI=Hobespen aurreratuak -SING_OPTIONS_ADVANCED_DESC=Hobespen aurreratuak -SING_OPTIONS_ADVANCED_EFFECTSING=Kantu efektuak -SING_OPTIONS_ADVANCED_SCREENFADE=Pantaila desagertu -SING_OPTIONS_ADVANCED_LOADANIMATION=Animazioa kargatzerakoan +SING_OPTIONS_MICROPHONES_CARD=Soinu-txartela +SING_OPTIONS_MICROPHONES_INPUT=Sarrera +SING_OPTIONS_MICROPHONES_CHANNEL=Kanala +SING_OPTIONS_MICROPHONES_THRESHOLD=Arintzea +SING_OPTIONS_MICROPHONES_MIC_BOOST=Mikrofonoa indartu + +;TODO: SING_OPTIONS_ADVANCED_DEBUG=Debug +;TODO: SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Oscilloscope SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Ziurtasun galderak -SING_OPTIONS_ADVANCED_LINEBONUS=Lerro bonusa -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=Aukeratu ondoren SING_OPTIONS_ADVANCED_PARTYPOPUP=Talde menu auto +;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores +;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing + +OPTION_VALUE_ALL=Guztia +;TODO: OPTION_VALUE_PLAYER=Player + +;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... +;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website +;TODO: SING_OPTIONS_NETWORK_USERNAME=Username +;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password +;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name +SING_OPTIONS_NETWORK_AUTO_MODE=Automatikoa +;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player +;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) +;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) +;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) +;TODO: SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! +;TODO: SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? +;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert +;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete + +;TODO: OPTION_PLAYER_1=Player 1 +;TODO: OPTION_PLAYER_2=Player 2 +;TODO: OPTION_PLAYER_3=Player 3 +;TODO: OPTION_PLAYER_4=Player 4 +;TODO: OPTION_PLAYER_5=Player 5 +;TODO: OPTION_PLAYER_6=Player 6 +OPTION_ALL_PLAYERS=Guztia +OPTION_ALL_SCORES=Guztia +;TODO: OPTION_VALUE_SAVE=Save +;TODO: OPTION_VALUE_SEND=Send + +;TODO: MSG_INSERT_USER_TITLE=%0:s +;TODO: MSG_INSERT_USER_DESC=Fill the fields: +;TODO: MSG_INSERT_USER_ADD=Add +MSG_INSERT_USER_CANCEL=Itzuli + +;TODO: WEBSITE_NO_CONNECTION=No website connection! +;TODO: WEBSITE_LOGIN_ERROR=Login Incorrect! +;TODO: WEBSITE_BLANK_LOGIN=There are blank fields! +;TODO: WEBSITE_EXIST_USER=Existing user! +;TODO: WEBSITE_ERROR_SCORE=Scoring Error! +;TODO: WEBSITE_OK_SEND=Score sent successfully! +;TODO: WEBSITE_ERROR_SCORE_DUPLICATED=Existing Score! +;TODO: WEBSITE_ERROR_SONG=Song Not Found! +;TODO: WEBSITE_SAVE_SCORE=Score save successfully! +;TODO: WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? + +;TODO: SONG_MENU_REFRESH_SCORES=Update Scores +;TODO: SONG_MENU_REFRESH_SCORES_TITLE=Update +;TODO: SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! +;TODO: SONG_MENU_REFRESH_SCORES_ONLINE=Online +;TODO: SONG_MENU_REFRESH_SCORES_FILE=File +;TODO: SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites +;TODO: SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs +;TODO: SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song +;TODO: SONG_MENU_REFRESH_SCORES_REFRESH=Update +;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! +;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! -SING_EDIT=Editorea -SING_EDIT_MENU_DESCRIPTION=Zure kantuak sortu +;TODO: SONG_SCORE_MAX=Best: +;TODO: SONG_SCORE_MEDIA=Average: -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Testua inportatu MIDI fitxategiatik -SING_EDIT_BUTTON_DESCRIPTION_EXIT=Itzuli -SING_EDIT_BUTTON_CONVERT=Inportatu -SING_EDIT_BUTTON_EXIT=Itzuli +;TODO: SCORE_SEND_DESC=Send Score +;TODO: SCORE_SEND=Send +;TODO: SCORE_SEND_PLAYER=Player +;TODO: SCORE_SEND_OTHER_USER= Other Username +;TODO: SCORE_SAVE=Save + +;TODO: SCORE_DOWNLOAD_TITLE=Download +;TODO: SCORE_DOWNLOAD_SONG=Song: +;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... +;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... +SCORE_DOWNLOAD_CANCEL=Itzuli +;TODO: SCORE_DOWNLOAD_OK=OK +;TODO: SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! -SING_EDIT_NAVIGATE=Nabigatu -SING_EDIT_SELECT=Aukeratu -SING_EDIT_EXIT=Itzuli +;TODO: SING_OPTIONS_WEBCAM_ID=Webcam +SING_OPTIONS_WEBCAM_RESOLUTION=Erresoluzioa +;TODO: SING_OPTIONS_WEBCAM_FPS=FPS +;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip +;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness +;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation +;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +SING_OPTIONS_WEBCAM_EFFECT=Efektua +;TODO: SING_OPTIONS_WEBCAM_PREVIEW=Activate preview + +;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview +;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview +;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! +;TODO: SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal +;TODO: SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Grayscale +;TODO: SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Black & White +;TODO: SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negative +;TODO: SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image +;TODO: SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate +SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Arintzea +;TODO: SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges +;TODO: SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur +;TODO: SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized +;TODO: SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode + +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Transparency +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property +JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Kolorea +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Gorria +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Berdea +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Urdina + +;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options +;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect +;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width +;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height +;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position + +OPTION_VALUE_TO_SING=Abestu +;TODO: OPTION_VALUE_ACTUAL=Actual +;TODO: OPTION_VALUE_NEXT=Next +;TODO: OPTION_VALUE_OTHER=Other +;TODO: OPTION_VALUE_FILL=Fill +;TODO: OPTION_VALUE_OUTLINE=Outline +OPTION_VALUE_BLUE=Urdina +OPTION_VALUE_GREEN=Berdea +OPTION_VALUE_PINK=Arrosa +OPTION_VALUE_RED=Gorria +OPTION_VALUE_VIOLET=Morea +OPTION_VALUE_ORANGE=Laranja +OPTION_VALUE_YELLOW=Horia +OPTION_VALUE_BROWN=Marroia +OPTION_VALUE_BLACK=Beltza +OPTION_VALUE_MAGENTA=Magenta +;TODO: OPTION_VALUE_GRAY=Gray +;TODO: OPTION_VALUE_WHITE=White +;TODO: OPTION_VALUE_TURQUOISE=Turquoise +;TODO: OPTION_VALUE_SALMON=Salmon +;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow +;TODO: OPTION_VALUE_LAVENDER=Lavender +;TODO: OPTION_VALUE_BEIGE=Beige +;TODO: OPTION_VALUE_TEAL=Teal +;TODO: OPTION_VALUE_ORCHID=Orchid +;TODO: OPTION_VALUE_STEELBLUE=Steel Blue +;TODO: OPTION_VALUE_PLUM=Plum +;TODO: OPTION_VALUE_CHOCOLATE=Chocolate +;TODO: OPTION_VALUE_GOLD=Gold +;TODO: OPTION_VALUE_DARKBLUE=Dark Blue +;TODO: OPTION_VALUE_SKY=Sky +;TODO: OPTION_VALUE_HARLEQUIN=Harlequin +;TODO: OPTION_VALUE_CYAN=Cyan +;TODO: OPTION_VALUE_FLAME=Flame SING_LEGEND_SELECT=Hautatu SING_LEGEND_NAVIGATE=Nabigatu SING_LEGEND_CONTINUE=Jarraitu SING_LEGEND_ESC=Itzuli -SING_PLAYER_DESC=Jokalarien izenak sartu -SING_PLAYER_WHEREAMI=Jokalarien izenak -SING_PLAYER_ENTER_NAME=Izenak idatzi - -SING_DIFFICULTY_DESC=Zailtasuna aukeratu -SING_DIFFICULTY_WHEREAMI=Zailtasuna -SING_DIFFICULTY_CONTINUE=Abestia aukeratu -SING_EASY=Erraza -SING_MEDIUM=Bitartekoa -SING_HARD=Zaila - -SING_SONG_SELECTION_DESC=Abestia aukeratu -SING_SONG_SELECTION_WHEREAMI=Abestia aukeratu -SING_SONG_SELECTION_GOTO=... joan SING_SONG_SELECTION=Abestia aukeratu SING_SONG_SELECTION_MENU=Menu SING_SONG_SELECTION_PLAYLIST=Zerrenda +;TODO: SING_SONG_IN_CAT=Song SING_SONGS_IN_CAT=Abestiak PLAYLIST_CATTEXT=Zerrenda: %s +;TODO: SING_SONG_SELECTION_LEGEND_TITLE=Legend +;TODO: SING_SONG_SELECTION_LEGEND_VIDEO=Video +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +;TODO: SING_SONG_SELECTION_LEGEND_DUET=Duet -;TODO: SING_TIME=TIME SING_TOTAL=Guztira SING_MODE=Bakarka abestu SING_NOTES=Notak @@ -255,8 +353,6 @@ IMPLODE_GLUE2= eta SONG_MENU_NAME_MAIN=Menua SONG_MENU_PLAY=Abestu SONG_MENU_CHANGEPLAYERS=Jokalariak aukeratu -SONG_MENU_EDIT=Editorera bidali -SONG_MENU_MODI=Modi bat abestu SONG_MENU_CANCEL=Itzuli SONG_MENU_NAME_PLAYLIST=Menua @@ -289,13 +385,6 @@ SONG_MENU_NAME_PARTY_JOKER=Komodina erabili SONG_JUMPTO_DESC=Bilatu SONG_JUMPTO_TYPE_DESC=Bilatu: -SONG_JUMPTO_TYPE1=Guztia -SONG_JUMPTO_TYPE2=Titulua -SONG_JUMPTO_TYPE3=Artista -SONG_JUMPTO_SONGSFOUND=%d kantu aurkituta -SONG_JUMPTO_NOSONGSFOUND=Ez dago kanturik -SONG_JUMPTO_HELP=Hitz gakoak idatzi -SONG_JUMPTO_CATTEXT=Bilatu: %s PARTY_MODE=Taldean Abestu PARTY_DIFFICULTY=Zailtasuna @@ -313,25 +402,22 @@ PARTY_LEGEND_CONTINUE=Jarraitu PARTY_OPTIONS_DESC=Taldean jokatzeko aukerak PARTY_OPTIONS_WHEREAMI=Taldeko hobespenak -PARTY_PLAYER_DESC=Jokalarien eta taldeen izenak -PARTY_PLAYER_WHEREAMI=Taldeen izenak PARTY_PLAYER_ENTER_NAME=Izenak idatzi - -PARTY_ROUNDS_DESC=Aukeratu zein modurekin jokatu nahi duzun -PARTY_ROUNDS_WHEREAMI=Errondak PARTY_ROUNDS_LEGEND_CONTINUE=Jokoa hasi PARTY_ROUNDCOUNT=Erronda kopurua PARTY_SELECTMODE=%d. errondaren -PARTY_ROUND_DESC=Hurrengoa mikrofonora -PARTY_ROUND_WHEREAMI=Hurrengo erronda PARTY_ROUND_LEGEND_CONTINUE=Erronda hasi PARTY_SONG_WHEREAMI=Talde Abestia aukeratu PARTY_SONG_LEGEND_CONTINUE=Abestu PARTY_SONG_MENU=Talde menua +OPTION_VALUE_SING=Abestu +OPTION_VALUE_SELECT_PLAYERS=Aukeratu jokalariak +OPTION_VALUE_OPEN_MENU=Menua zabaldu + PARTY_SCORE_DESC=Azken Errondako puntuazioa PARTY_SCORE_WHEREAMI=Talde puntuazioa @@ -407,8 +493,6 @@ MODE_BLIND_NAME=Itsuan ;TODO: MODE_HARDCORE_DESC=Battle for a three-line lead on your opponent! STAT_MAIN=Estatistikak -STAT_MAIN_DESC=Orokorrak -STAT_MAIN_WHEREAMI=Estatistikak STAT_OVERVIEW_INTRO=%0:s estatistikak. \n Azken aldiz ezabatutak %3:dko %2:.2daren %1:.2dan STAT_OVERVIEW_SONG=%0:d abesti daude (%3:d bideoarekin), hauetatik %1:d dagoeneko abestu dira, %2:d oraindik ez dira abestu.\n Gehien abestu den kantua %5:s da, %4:s-ena. @@ -422,7 +506,7 @@ STAT_DETAIL_WHEREAMI=Estatistika zehatzak STAT_NEXT=Hurrengo orria STAT_PREV=Aurreko orria STAT_REVERSE=Ordena alderanztu -STAT_PAGE=Seite %0:d orri %1:dtik \n (%2:d sarrera %3:dtik) +STAT_PAGE=Seite %0:d orri %1:d tik \n Tik %2:d sarrera %3:d STAT_DESC_SCORES=Puntuazio onenak STAT_DESC_SCORES_REVERSED=Puntuazio txarrenak @@ -440,119 +524,12 @@ STAT_DESC_BANDS=Talde ospetsuak STAT_DESC_BANDS_REVERSED=Talde ez ospetsuak STAT_FORMAT_BANDS=%0:s \n %1:dx aldiz abestuta -SCREENSHOT_SAVED=Pantaila-irudia gordeta -SCREENSHOT_FAILED=Pantaila irudia ezin izan da gorde - -INFO_FILE_SAVED=Fitxategia gordeta -ERROR_SAVE_FILE_FAILED=Ezin izan da fitxategia gorde -ERROR_FILE_NOT_FOUND=Fitxategia ez da aurkitu - -ENCODING_ERROR_ASK_FOR_UTF8=Ezin dira aldaketan kodeaketa honetan gorde izan. UTF-8-ra bihurtu? -EDITOR_ERROR_NO_TRACK_SELECTED=Ez da abestirik aukeratu - -MSG_ERROR_TITLE=Hutsa -MSG_INFO_TITLE=Informazioa -MSG_QUESTION_TITLE=Galdera -MSG_QUIT_USDX=Ziur zaude irten nahi duzula? -MSG_END_PARTY=Ziur zaude talde jokoa bukatu nahi duzula? - -ERROR_NO_SONGS=Ez dago abestirik -ERROR_NO_PLUGINS=Ez dago pluginik -ERROR_NO_MODES_FOR_CURRENT_SETUP=Ez dago modu eskuragarririk jokalari/talde honetarako -ERROR_CAN_NOT_START_PARTY=Errore bat gertatu da jokoa hastean -ERROR_CORRUPT_SONG=Ezin da abestia kargatu -ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Ezin da abestia kargatu: Fitxategia falta da -ERROR_CORRUPT_SONG_NO_NOTES=Ezin da abestia kargatu: Ez daude notak -ERROR_CORRUPT_SONG_NO_BREAKS=Ezin da abestia kargatu: Ez daude lerro jauziak -ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Ezin da abestia kargatu: Okerra %0:d lerroan -ERROR_NO_EDITOR=Ezaugarri hau ez dago Linux/Mac-en -ERROR_PLAYER_DEVICE_ASSIGNMENT= %d.jokalariak mikrofono bat baino gehiago aukeratuta ditu . Mesedez grabazioaren aukerak begiratu -ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Mesedez grabazioaren aukerak begiratu - -;TODO: SING_OPTIONS_NETWORK=Internet -;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options -;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings -;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... -;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password -;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name -SING_OPTIONS_NETWORK_AUTO_MODE=Automatikoa -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) -;TODO: SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! -;TODO: SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? -;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert -;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete - -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 -OPTION_ALL_PLAYERS=Guztia -OPTION_ALL_SCORES=Guztia -;TODO: OPTION_VALUE_SAVE=Save -;TODO: OPTION_VALUE_SEND=Send - -;TODO: MSG_INSERT_USER_TITLE=%0:s -;TODO: MSG_INSERT_USER_DESC=Fill the fields: -;TODO: MSG_INSERT_USER_ADD=Add -MSG_INSERT_USER_CANCEL=Itzuli - -;TODO: WEBSITE_NO_CONNECTION=No website connection! -;TODO: WEBSITE_LOGIN_ERROR=Login Incorrect! -;TODO: WEBSITE_BLANK_LOGIN=There are blank fields! -;TODO: WEBSITE_EXIST_USER=Existing user! -;TODO: WEBSITE_ERROR_SCORE=Scoring Error! -;TODO: WEBSITE_OK_SEND=Score sent successfully! -;TODO: WEBSITE_ERROR_SCORE_DUPLICATED=Existing Score! -;TODO: WEBSITE_ERROR_SONG=Song Not Found! -;TODO: WEBSITE_SAVE_SCORE=Score save successfully! -;TODO: WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? - -;TODO: SONG_MENU_REFRESH_SCORES=Update Scores -;TODO: SONG_MENU_REFRESH_SCORES_TITLE=Update -;TODO: SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! -;TODO: SONG_MENU_REFRESH_SCORES_ONLINE=Online -;TODO: SONG_MENU_REFRESH_SCORES_FILE=File -;TODO: SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites -;TODO: SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs -;TODO: SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song -;TODO: SONG_MENU_REFRESH_SCORES_REFRESH=Update -;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! -;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! - -;TODO: SONG_SCORE_MAX=Best: -;TODO: SONG_SCORE_MEDIA=Average: - -;TODO: SCORE_SEND_DESC=Send Score -;TODO: SCORE_SEND=Send -;TODO: SCORE_SEND_PLAYER=Player -;TODO: SCORE_SEND_OTHER_USER= Other Username -;TODO: SCORE_SAVE=Save - -;TODO: SCORE_DOWNLOAD_TITLE=Download -;TODO: SCORE_DOWNLOAD_SONG=Song: -;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... -;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... -SCORE_DOWNLOAD_CANCEL=Itzuli -;TODO: SCORE_DOWNLOAD_OK=OK -;TODO: SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! - -;TODO: SING_OPTIONS_GAME_SHOWSCORES=Show Scores -;TODO: OPTION_VALUE_WHEN_EXISTS=When Exists - ;TODO: PARTY_SELECT_MODE=Mode ;TODO: PARTY_MODE_CLASSIC=Classic ;TODO: PARTY_MODE_CLASSIC_FREE=Classic Free ;TODO: PARTY_MODE_CHALLENGE=Challenge ;TODO: PARTY_MODE_TOURNAMENT=Tournament ;TODO: PARTY_MODE_JUKEBOX=Jukebox -;TODO: PARTY_MODE_NOT_AVAILABLE=Not Available! ;TODO: PARTY_MODE_TOURNAMENT_PLAYER_DESC=Insert number and players name ;TODO: PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Number of Players @@ -565,39 +542,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Hurrengoa mikrofonora ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -INFO_FILE_SAVED=Fitxategia gordeta -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - -;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! -;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! - ;TODO: MSG_END_JUKEBOX=Do you want leave Jukebox Mode? ;TODO: JUKEBOX_RANDOM=Random ;TODO: JUKEBOX_REPEAT=Repeat @@ -609,8 +553,6 @@ INFO_FILE_SAVED=Fitxategia gordeta ;TODO: SONG_MENU_SONG=Song ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Menua ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -626,33 +568,6 @@ SONG_MENU_SORTING_ALL=Guztia ;TODO: SONG_MENU_SORTING_DUET=Duets ;TODO: SONG_MENU_SORTING_APPLY=Apply -;TODO: SING_OPTIONS_WEBCAM=Webcam -;TODO: SING_OPTIONS_WEBCAM_DESC=Webcam Settings -;TODO: SING_OPTIONS_WEBCAM_WHEREAMI=Webcam Options -;TODO: SING_OPTIONS_WEBCAM_ID=Webcam -SING_OPTIONS_WEBCAM_RESOLUTION=Erresoluzioa -;TODO: SING_OPTIONS_WEBCAM_FPS=FPS -;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! -;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip -SING_OPTIONS_WEBCAM_EFFECT=Efektua -;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation -;TODO: SING_OPTIONS_WEBCAM_HUE=Hue -;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview -;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview - -;TODO: SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal -;TODO: SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Grayscale -;TODO: SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Black & White -;TODO: SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negative -;TODO: SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image -;TODO: SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate -SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Arintzea -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges -;TODO: SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized -;TODO: SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode - ;TODO: PARTY_PLAYLIST_MANUAL=Manual Selection ;TODO: PARTY_MODE_JUKEBOX_NO_SONGS=Playlist is empty! ;TODO: SONG_MENU_OPEN_CATEGORY=Open category @@ -666,58 +581,6 @@ SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Arintzea ;TODO: NAME_PLAYERS_COUNT=Number of Players ;TODO: NAME_CURRENT_PLAYER=Player -SING_OPTIONS_GAME_SONGMENU=Menua -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List -;TODO: OPTION_VALUE_MOSAIC=Tile - -;TODO: SING_OPTIONS_JUKEBOX=Jukebox -;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox -;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options - -OPTION_VALUE_TO_SING=Abestu -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next -;TODO: OPTION_VALUE_OTHER=Other -;TODO: OPTION_VALUE_FILL=Fill -;TODO: OPTION_VALUE_OUTLINE=Outline -;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -;TODO: OPTION_VALUE_SALMON=Salmon -;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige -;TODO: OPTION_VALUE_TEAL=Teal -;TODO: OPTION_VALUE_ORCHID=Orchid -;TODO: OPTION_VALUE_STEELBLUE=Steel Blue -;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold -;TODO: OPTION_VALUE_DARKBLUE=Dark Blue -;TODO: OPTION_VALUE_SKY=Sky -;TODO: OPTION_VALUE_HARLEQUIN=Harlequin -;TODO: OPTION_VALUE_CYAN=Cyan -;TODO: OPTION_VALUE_FLAME=Flame - -;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height -;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha -JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Kolorea -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property -JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Gorria -JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Berdea -JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Urdina - ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=LetterBox @@ -727,24 +590,37 @@ JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Urdina ;TODO: JUKEBOX_SONGOPTIONS_DEFAULT=Default ;TODO: JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Saved! -;TODO: SING_SONG_CREDITS=Credits -;TODO: SING_JUKEBOX=Jukebox -;TODO: SING_JUKEBOX_DESC=Listen to my collection ;TODO: JUKEBOX_MODE=Jukebox Mode -;TODO: JUKEBOX_OPTIONS_DESC=Playlist Options -;TODO: JUKEBOX_OPTIONS_WHEREAMI=Jukebox Options JUKEBOX_OPTIONS_PLAYLIST=Zerrenda ;TODO: JUKEBOX_OPTIONS_PLAYLIST_MODE=Mode -;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing -;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores -OPTION_VALUE_ALL=Guztia -;TODO: OPTION_VALUE_PLAYER=Player - -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe ;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +;TODO: ABOUT_USDX_DEVELOPEDBY=Developed by +;TODO: ABOUT_CHECK_CHECKING=Checking for new updates... +;TODO: ABOUT_CHECK_AVAILABLE=There is a new version available +;TODO: ABOUT_CHECK_UPTODATE=WorldParty is up to date +;TODO: ABOUT_CHECK_CONNECTION=There is no Internet connection +;TODO: ABOUT_OVERVIEW=Discover a new way of singing, alone, in couple, or with friends. \n Fun is guaranteed.\n\nWorldParty is a fork of the original version Ultrastar Deluxe 1.1 designed and developed by UltraStar España Team, it counts with the biggest karaoke community.\n\n\nThis program is free and libre under the GPL license. \n\n Visit us for more information.\n\nhttps://ultrastar-es.org + +;TODO: DEVELOPERS_TITLE=Developed by +;TODO: DEVELOPERS_OVERVIEW=People who has contributed to this project:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Visit us for more information.\n\nhttps://ultrastar-es.org + +SCREENSHOT_SAVED=Pantaila-irudia gordeta +SCREENSHOT_FAILED=Pantaila irudia ezin izan da gorde + +MSG_ERROR_TITLE=Hutsa +MSG_INFO_TITLE=Informazioa +MSG_QUESTION_TITLE=Galdera +MSG_QUIT_USDX=Ziur zaude irten nahi duzula? +MSG_END_PARTY=Ziur zaude talde jokoa bukatu nahi duzula? + +ERROR_NO_SONGS=Ez dago abestirik +ERROR_NO_PLUGINS=Ez dago pluginik +ERROR_LOADING_SONGS=Wait for loading all the songs +ERROR_CORRUPT_SONG=Ezin da abestia kargatu +ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Ezin da abestia kargatu: Fitxategia falta da +ERROR_CORRUPT_SONG_NO_NOTES=Ezin da abestia kargatu: Ez daude notak +ERROR_CORRUPT_SONG_NO_BREAKS=Ezin da abestia kargatu: Ez daude lerro jauziak +ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Ezin da abestia kargatu: Okerra %0:d lerroan +ERROR_PLAYER_DEVICE_ASSIGNMENT= %d.jokalariak mikrofono bat baino gehiago aukeratuta ditu . Egiaztatu mikrofonoaren aukerak +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Egiaztatu mikrofonoaren aukerak \ No newline at end of file diff --git "a/game/languages/Fran\303\247ais.ini" "b/game/languages/Fran\303\247ais.ini" index f95bbe60..ca69775b 100644 --- "a/game/languages/Fran\303\247ais.ini" +++ "b/game/languages/Fran\303\247ais.ini" @@ -1,215 +1,319 @@ [Text] LANGUAGE=Français -OPTION_VALUE_EASY=Facile -OPTION_VALUE_MEDIUM=Moyen -OPTION_VALUE_HARD=Difficile - -OPTION_VALUE_ON=Activé -OPTION_VALUE_OFF=Désactivé - -OPTION_VALUE_EDITION=Édition -OPTION_VALUE_GENRE=Genre -OPTION_VALUE_LANGUAGE=Langue -OPTION_VALUE_FOLDER=Dossier -OPTION_VALUE_TITLE=Titre -OPTION_VALUE_ARTIST=Artiste -OPTION_VALUE_TITLE2=Titre2 -OPTION_VALUE_ARTIST2=Artiste2 -OPTION_VALUE_YEAR=Année -OPTION_VALUE_DECADE=Décennie -OPTION_VALUE_PLAYLIST=Playlist - -OPTION_VALUE_BORDERLESS=Plein écran - -OPTION_VALUE_WHENNOVIDEO=Si pas de vidéo -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image - -OPTION_VALUE_SMALL=Petit -OPTION_VALUE_BIG=Grand - -OPTION_VALUE_HALF=Moitiée -OPTION_VALUE_FULL_VID=Complète -OPTION_VALUE_FULL_VID_BG=Complète (Fond + Vidéo) - -OPTION_VALUE_GAIN_SOFT=Doux -;TODO: OPTION_VALUE_GAIN_MEDIUM=Medium -;TODO: OPTION_VALUE_GAIN_HARD=Hard - -OPTION_VALUE_AUTO=Automatique -OPTION_VALUE_SEC=Seconde -OPTION_VALUE_SECS=Secondes - -OPTION_VALUE_PLAIN=Classique -OPTION_VALUE_OLINE1=Bordures -OPTION_VALUE_OLINE2=Gras - -OPTION_VALUE_SIMPLE=Syllabes -OPTION_VALUE_ZOOM=Zoomer -OPTION_VALUE_SLIDE=Glisser -OPTION_VALUE_BALL=Balle -OPTION_VALUE_SHIFT=Bond - -OPTION_VALUE_EURO=Européen -OPTION_VALUE_JAPAN=Japonais -OPTION_VALUE_AMERICAN=Américain - -OPTION_VALUE_BLUE=Bleu -OPTION_VALUE_GREEN=Vert -OPTION_VALUE_PINK=Rose -OPTION_VALUE_RED=Rouge -OPTION_VALUE_VIOLET=Violet -OPTION_VALUE_ORANGE=Orange -OPTION_VALUE_YELLOW=Jaune -OPTION_VALUE_BROWN=Marron -OPTION_VALUE_BLACK=Noir - -OPTION_VALUE_SING=Chanter -OPTION_VALUE_SELECT_PLAYERS=Choix des joueurs -OPTION_VALUE_OPEN_MENU=Ouvrir le menu - SING_LOADING=Chargement... +SING_LOADING_SONGS=Chargement des chansons à partir du dossier %s -SING_CHOOSE_MODE=Choisissez un mode de jeu SING_SING=Chanter SING_SING_DESC=Chantez en solo SING_MULTI=Fête SING_MULTI_DESC=Faites la fête -SING_TOOLS=Outils +SING_JUKEBOX=Jukebox +SING_JUKEBOX_DESC=Écouter mes chansons SING_STATS=Statistiques SING_STATS_DESC=Consultez les statistiques -SING_EDITOR=Éditeur -SING_EDITOR_DESC=Créez vos propres chansons - SING_GAME_OPTIONS=Options SING_GAME_OPTIONS_DESC=Modifiez les paramètres du jeu SING_EXIT=Quitter SING_EXIT_DESC=Quitter le jeu +SING_ABOUT=À propos +SING_ABOUT_DESC=À propos Ultrastar Deluxe WorldParty + +SING_PLAYER_TITLE=Profils +SING_PLAYER_READY=Joueurs prêts à chanter +SING_PLAYER_COUNT=Nombre de joueurs +SING_PLAYER_EDIT=Personnaliser un joueur +SING_PLAYER_NAME=Écrivez votre nom +SING_PLAYER_COLOR=Choisissez une couleur +SING_PLAYER_LEVEL=Choisissez un niveau +SING_PLAYER_AVATAR=Sélectionnez votre avatar + +OPTION_VALUE_EASY=Facile +OPTION_VALUE_MEDIUM=Moyen +OPTION_VALUE_HARD=Difficile + SING_OPTIONS=Options -SING_OPTIONS_DESC=Changez les paramètres -SING_OPTIONS_WHEREAMI=Options SING_OPTIONS_GAME=Jeu SING_OPTIONS_GRAPHICS=Graphismes SING_OPTIONS_SOUND=Audio -SING_OPTIONS_INPUT=Contrôles SING_OPTIONS_LYRICS=Paroles SING_OPTIONS_THEMES=Thèmes -SING_OPTIONS_RECORD=Micros +SING_OPTIONS_MICROPHONES=Micros SING_OPTIONS_ADVANCED=Avancé +SING_OPTIONS_NETWORK=Internet +SING_OPTIONS_WEBCAM=Caméra +SING_OPTIONS_JUKEBOX=Jukebox SING_OPTIONS_EXIT=Retour -SING_OPTIONS_GAME_WHEREAMI=Options du jeu -SING_OPTIONS_GAME_DESC=Options générales du jeu -SING_OPTIONS_GAME_PLAYERS=Joueur(s) -SING_OPTIONS_GAME_DIFFICULTY=Difficulté SING_OPTIONS_GAME_LANGUAGE=Langue +SING_OPTIONS_GAME_SONGMENU=Menu SING_OPTIONS_GAME_TABS=Dossier SING_OPTIONS_GAME_SORTING=Tri par -SING_OPTIONS_GAME_DEBUG=Débogage +SING_OPTIONS_GAME_SHOWSCORES=Montrer les scores +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Activer gamepad + +OPTION_VALUE_ROULETTE=Roulette +OPTION_VALUE_CHESSBOARD=Échiquier +OPTION_VALUE_CAROUSEL=Carrousel +OPTION_VALUE_SLOT_MACHINE=Machine à sous +OPTION_VALUE_LIST=Liste +OPTION_VALUE_MOSAIC=Tuile + +OPTION_VALUE_ON=Activé +OPTION_VALUE_OFF=Désactivé + +OPTION_VALUE_EDITION=Édition +OPTION_VALUE_GENRE=Genre +OPTION_VALUE_LANGUAGE=Langue +OPTION_VALUE_FOLDER=Dossier +OPTION_VALUE_TITLE=Titre +OPTION_VALUE_ARTIST=Artiste +OPTION_VALUE_ARTIST2=Artiste2 +OPTION_VALUE_YEAR=Année +OPTION_VALUE_DECADE=Décennie +OPTION_VALUE_PLAYLIST=Playlist + +OPTION_VALUE_WHEN_EXISTS=S'ils existent -SING_OPTIONS_GRAPHICS_WHEREAMI=Options graphiques -SING_OPTIONS_GRAPHICS_DESC=Paramètres des graphismes -SING_OPTIONS_GRAPHICS_RESOLUTION=Résolution SING_OPTIONS_GRAPHICS_FULLSCREEN=Plein écran -SING_OPTIONS_GRAPHICS_DEPTH=Profondeur +SING_OPTIONS_GRAPHICS_RESOLUTION=Résolution +SING_OPTIONS_GRAPHICS_SCREENFADE=Fondu écran +SING_OPTIONS_GRAPHICS_EFFECTSING=Effet de chant SING_OPTIONS_GRAPHICS_VISUALIZER=Visualisation -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oscilloscope -SING_OPTIONS_GRAPHICS_LINEBONUS=Bonus de phrases SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Taille vidéo -SING_OPTIONS_SOUND_WHEREAMI=Options du son -SING_OPTIONS_SOUND_DESC=Paramètres du son +OPTION_VALUE_BORDERLESS=Plein écran fenêtré + +OPTION_VALUE_WHENNOVIDEO=Si pas de vidéo +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Quand pas de vidéo et d'image + +OPTION_VALUE_HALF=Moitiée +OPTION_VALUE_FULL_VID=Complète +OPTION_VALUE_FULL_VID_BG=Complète (Fond + Vidéo) + SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Entendre le micro SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Musique de fond -SING_OPTIONS_SOUND_MIC_BOOST=Amplifier le micro SING_OPTIONS_SOUND_CLICK_ASSIST=Clics d'aide SING_OPTIONS_SOUND_BEAT_CLICK=Métronome -SING_OPTIONS_SOUND_THRESHOLD=Suppression du bruit -SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Mode 2 joueurs -;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain +SING_OPTIONS_SOUND_MUSICAUTOGAIN=Ajustement du volume SING_OPTIONS_SOUND_PREVIEWVOLUME=Prévisualiser volume SING_OPTIONS_SOUND_PREVIEWFADING=Prévisualiser fondu -SING_OPTIONS_INPUT_WHEREAMI=Options Contrôles -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -SING_OPTIONS_INPUT_MOUSE=Souris -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support +OPTION_VALUE_GAIN_SOFT=Doux +OPTION_VALUE_GAIN_MEDIUM=Moyen +OPTION_VALUE_GAIN_HARD=Fort + +OPTION_VALUE_AUTO=Automatique +OPTION_VALUE_SEC=Seconde +OPTION_VALUE_SECS=Secondes -SING_OPTIONS_LYRICS_WHEREAMI=Options des paroles -SING_OPTIONS_LYRICS_DESC=Paramètres des paroles SING_OPTIONS_LYRICS_FONT=Caractères SING_OPTIONS_LYRICS_EFFECT=Effet -SING_OPTIONS_LYRICS_SOLMIZATION=Afficher gamme SING_OPTIONS_LYRICS_NOTELINES=Barres -SING_OPTIONS_THEMES_WHEREAMI=Options des thèmes -SING_OPTIONS_THEMES_DESC=Paramètres des thèmes +OPTION_VALUE_PLAIN=Stylisé +OPTION_VALUE_OLINE1=Avec bord mince +OPTION_VALUE_OLINE2=Avec bord épais + +OPTION_VALUE_SIMPLE=Syllabes +OPTION_VALUE_ZOOM=Zoomer +OPTION_VALUE_SLIDE=Glisser +OPTION_VALUE_BALL=Balle +OPTION_VALUE_SHIFT=Bond + SING_OPTIONS_THEMES_THEME=Thèmes SING_OPTIONS_THEMES_SKIN=Aspect SING_OPTIONS_THEMES_COLOR=Couleur -SING_OPTIONS_RECORD_WHEREAMI=Options d'enregistrement -SING_OPTIONS_RECORD_DESC=Paramètres des micros -SING_OPTIONS_RECORD_CARD=Carte son -SING_OPTIONS_RECORD_INPUT=Entrée -SING_OPTIONS_RECORD_CHANNEL=Canal - -SING_OPTIONS_ADVANCED_WHEREAMI=Options avancées -SING_OPTIONS_ADVANCED_DESC=Paramètres avancés -SING_OPTIONS_ADVANCED_EFFECTSING=Effet de chant -SING_OPTIONS_ADVANCED_SCREENFADE=Fondu écran -SING_OPTIONS_ADVANCED_LOADANIMATION=Charge animation -SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Confirm. suppression -SING_OPTIONS_ADVANCED_LINEBONUS=Bonus des phrases -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= +SING_OPTIONS_MICROPHONES_CARD=Carte son +SING_OPTIONS_MICROPHONES_INPUT=Entrée +SING_OPTIONS_MICROPHONES_CHANNEL=Canal +SING_OPTIONS_MICROPHONES_THRESHOLD=Suppression du bruit +SING_OPTIONS_MICROPHONES_MIC_BOOST=Amplifier le micro + +SING_OPTIONS_ADVANCED_DEBUG=Débogage +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Oscilloscope SING_OPTIONS_ADVANCED_ONSONGCLICK=Choix ap. chanson +SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Demander avant de quitter SING_OPTIONS_ADVANCED_PARTYPOPUP=Menu fête auto +SING_OPTIONS_ADVANCED_SINGSCORES=Scores sur le chant +SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores + +OPTION_VALUE_ALL=Tout +OPTION_VALUE_PLAYER=Joueur + +SING_OPTIONS_NETWORK_INSERT_USER_INFO=Appuyer sur "Insert" pour ajouter cet utilisateur au site... +SING_OPTIONS_NETWORK_WEBSITE=Site Internet +SING_OPTIONS_NETWORK_USERNAME=Utilisateur +SING_OPTIONS_NETWORK_PASSWORD=Mot de passe +SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Sauvergarder le nom +SING_OPTIONS_NETWORK_AUTO_MODE=Automatique +SING_OPTIONS_NETWORK_AUTO_PLAYER=Joueur +SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Envoi automatique (Facile) +SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Envoi automatique (Moyen) +SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Envoi automatique (Difficile) +SING_OPTIONS_NETWORK_NO_DLL=Aucun plugin de scores compatible trouvé ! +SING_OPTIONS_NETWORK_DELETE_PLAYER=Voulez-vous vraiment supprimer l'utilisateur %0:s du site %1:s ? +SING_OPTIONS_NETWORK_LEGEND_INSERT=Insérer +SING_OPTIONS_NETWORK_LEGEND_DELETE=Supprimer + +OPTION_PLAYER_1=Joueur 1 +OPTION_PLAYER_2=Joueur 2 +OPTION_PLAYER_3=Joueur 3 +OPTION_PLAYER_4=Joueur 4 +OPTION_PLAYER_5=Joueur 5 +OPTION_PLAYER_6=Joueur 6 +OPTION_ALL_PLAYERS=Tout +OPTION_ALL_SCORES=Tout +OPTION_VALUE_SAVE=Enregistrer +OPTION_VALUE_SEND=Envoyer -SING_EDIT=Éditeur -SING_EDIT_MENU_DESCRIPTION=Créez vos propres chansons +MSG_INSERT_USER_TITLE=%0:s +MSG_INSERT_USER_DESC=remplissez les champs : +MSG_INSERT_USER_ADD=Ajouter +MSG_INSERT_USER_CANCEL=Annuler -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Exporter du texte depuis un fichier MIDI -SING_EDIT_BUTTON_DESCRIPTION_EXIT=Retour -SING_EDIT_BUTTON_CONVERT=Importer -SING_EDIT_BUTTON_EXIT=Retour +WEBSITE_NO_CONNECTION=Aucune connexion au site ! +WEBSITE_LOGIN_ERROR=Login incorrect ! +WEBSITE_BLANK_LOGIN=Il reste des champs non-remplis ! +WEBSITE_EXIST_USER=L'utilisateur existe déjà ! +WEBSITE_ERROR_SCORE=Erreur de score ! +WEBSITE_OK_SEND=Score envoyé ! +WEBSITE_ERROR_SCORE_DUPLICATED=Le score existe déjà ! +WEBSITE_ERROR_SONG=Chanson non trouvée ! +WEBSITE_SAVE_SCORE=Score sauvegardé ! +WEBSITE_NO_CONNECTION_SAVE=Pas de connexion au site ! Enregistrer tout de même l'utilisateur ? + +SONG_MENU_REFRESH_SCORES=mettre à jour les scores +SONG_MENU_REFRESH_SCORES_TITLE=Mettre à jour +SONG_MENU_REFRESH_SCORES_NO_WEB=Aucun site ! +SONG_MENU_REFRESH_SCORES_ONLINE=En ligne +SONG_MENU_REFRESH_SCORES_FILE=Fichier +SONG_MENU_REFRESH_SCORES_ALL_WEB=Tous les sites +SONG_MENU_REFRESH_SCORES_ALL_SONGS=Toutes les chansons +SONG_MENU_REFRESH_SCORES_ONLY_SONG=Cette chanson +SONG_MENU_REFRESH_SCORES_REFRESH=Mettre à jour +SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Erreur de connexion au site : %0:s! +SONG_MENU_REFRESH_SCORES_ERROR_FILE=Fichier absent : '%0:s [Téléchargement des scores]'! + + +SONG_SCORE_MAX=Meilleur : +SONG_SCORE_MEDIA=Moyenne : + +SCORE_SEND_DESC=Envoyer le score +SCORE_SEND=Envoyer +SCORE_SEND_PLAYER=Joueur +SCORE_SEND_OTHER_USER= Autre utilisateur +SCORE_SAVE=Enregistrer -SING_EDIT_NAVIGATE=Naviguer -SING_EDIT_SELECT=Valider -SING_EDIT_EXIT=Retour +SCORE_DOWNLOAD_TITLE=Téléchargement +SCORE_DOWNLOAD_SONG=Chanson: +SCORE_DOWNLOAD_CREATE_LIST=Prépartion de la liste... +SCORE_DOWNLOAD_RECEIVE_LIST=Téléchargement... +SCORE_DOWNLOAD_CANCEL=Annuler +SCORE_DOWNLOAD_OK=OK +SCORE_DOWNLOAD_SONG_UPDATE=%0:d chansons(s) mise(s) à jour par internet ! + +SING_OPTIONS_WEBCAM_ID=Caméra +SING_OPTIONS_WEBCAM_RESOLUTION=Résolution +SING_OPTIONS_WEBCAM_FPS=Images/secondes +SING_OPTIONS_WEBCAM_FLIP=Inversion +SING_OPTIONS_WEBCAM_BRIGHTNESS=Luminosité +SING_OPTIONS_WEBCAM_SATURATION=Saturation +SING_OPTIONS_WEBCAM_HUE=Teinte +SING_OPTIONS_WEBCAM_EFFECT=Effet +SING_OPTIONS_WEBCAM_PREVIEW=Aperçu + +SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Activer l'aperçu +SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Desactiver l'aperçu +SING_OPTIONS_WEBCAM_NO_WEBCAM=Aucune caméra trouvée! +SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal +SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Nuances de gris +SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Noir et blanc +SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Négatif +SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Image binaire +SING_OPTIONS_WEBCAM_EFFECT_DILATE=Etendre +SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Suppression du bruit +SING_OPTIONS_WEBCAM_EFFECT_EDGES=Bords +SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Flou gaussien +SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Egaliser +SING_OPTIONS_WEBCAM_EFFECT_ERODE=Couper + +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Transparence +JUKEBOX_SONGOPTIONS_LYRIC_LINE=Ligne +JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Propriété +JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Couleur +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Rouge +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Vert +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Bleu + +JUKEBOX_SONGOPTIONS_VIDEO=Paramètres vidéo +JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect +JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Largeur +JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Hauteur +JUKEBOX_SONGOPTIONS_LYRIC=Options des paroles +JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Taille +JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position + +OPTION_VALUE_TO_SING=Chantée +OPTION_VALUE_ACTUAL=Supérieure +OPTION_VALUE_NEXT=Inférieure +OPTION_VALUE_OTHER=Autre +OPTION_VALUE_FILL=Rempli +OPTION_VALUE_OUTLINE=Bord +OPTION_VALUE_BLUE=Bleu +OPTION_VALUE_GREEN=Vert +OPTION_VALUE_PINK=Rose +OPTION_VALUE_RED=Rouge +OPTION_VALUE_VIOLET=Violet +OPTION_VALUE_ORANGE=Orange +OPTION_VALUE_YELLOW=Jaune +OPTION_VALUE_BROWN=Marron +OPTION_VALUE_BLACK=Noir +OPTION_VALUE_MAGENTA=Magenta +OPTION_VALUE_GRAY=Gris +OPTION_VALUE_WHITE=Blanc +OPTION_VALUE_TURQUOISE=Turquoise +OPTION_VALUE_SALMON=Saumon +OPTION_VALUE_GREENYELLOW=Vert pomme +OPTION_VALUE_LAVENDER=Lavande +OPTION_VALUE_BEIGE=Beige +OPTION_VALUE_TEAL=Vert canard +OPTION_VALUE_ORCHID=Rose orchidée +OPTION_VALUE_STEELBLUE=Bleu acier +OPTION_VALUE_PLUM=Prune +OPTION_VALUE_CHOCOLATE=Chocolat +OPTION_VALUE_GOLD=Doré +OPTION_VALUE_DARKBLUE=Bleu foncé +OPTION_VALUE_SKY=Bleu ciel +OPTION_VALUE_HARLEQUIN=Vert fluo +OPTION_VALUE_CYAN=Cyan +OPTION_VALUE_FLAME=Flamme SING_LEGEND_SELECT=Valider SING_LEGEND_NAVIGATE=Naviguer SING_LEGEND_CONTINUE=Continuer SING_LEGEND_ESC=Retour -SING_PLAYER_DESC=Entrez le nom du/des joueur(s) -SING_PLAYER_WHEREAMI=Nom du joueur -SING_PLAYER_ENTER_NAME=Modifier - -SING_DIFFICULTY_DESC=Sélectionnez le niveau de difficulté -SING_DIFFICULTY_WHEREAMI=Difficulté -SING_DIFFICULTY_CONTINUE=Valider -SING_EASY=Facile -SING_MEDIUM=Moyen -SING_HARD=Difficile - -SING_SONG_SELECTION_DESC=Choisissez une chanson -SING_SONG_SELECTION_WHEREAMI=Sélection du titre -SING_SONG_SELECTION_GOTO=Atteindre SING_SONG_SELECTION=Choix de chansons SING_SONG_SELECTION_MENU=Menu SING_SONG_SELECTION_PLAYLIST=Playlist +SING_SONG_IN_CAT=Chanson SING_SONGS_IN_CAT=Chansons PLAYLIST_CATTEXT=Playlist: %s +SING_SONG_SELECTION_LEGEND_TITLE=Légende +SING_SONG_SELECTION_LEGEND_VIDEO=Vidéo +SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculé +SING_SONG_SELECTION_LEGEND_DUET=Duo -SING_TIME=Temps SING_TOTAL=Total SING_MODE=Mode chanter SING_NOTES=Notes @@ -250,8 +354,6 @@ IMPLODE_GLUE2= et SONG_MENU_NAME_MAIN=Menu SONG_MENU_PLAY=Chanter SONG_MENU_CHANGEPLAYERS=Changer de joueurs -SONG_MENU_EDIT=Éditeur -SONG_MENU_MODI=Chanter un mode SONG_MENU_CANCEL=Annuler SONG_MENU_NAME_PLAYLIST=Menu @@ -284,13 +386,6 @@ SONG_MENU_NAME_PARTY_JOKER=Utiliser Joker SONG_JUMPTO_DESC=Rechercher SONG_JUMPTO_TYPE_DESC=Recherche : -SONG_JUMPTO_TYPE1=Tout -SONG_JUMPTO_TYPE2=Titre -SONG_JUMPTO_TYPE3=Artiste -SONG_JUMPTO_SONGSFOUND=%d Chanson(s) trouvée(s) -SONG_JUMPTO_NOSONGSFOUND=Aucune chanson trouvée -SONG_JUMPTO_HELP=Entrez le texte à rechercher -SONG_JUMPTO_CATTEXT=Recherche : %s PARTY_MODE=Mode fête PARTY_DIFFICULTY=Difficulté @@ -308,25 +403,22 @@ PARTY_LEGEND_CONTINUE=Suivant PARTY_OPTIONS_DESC=Paramètres du mode fête PARTY_OPTIONS_WHEREAMI=Mode fête : Options -PARTY_PLAYER_DESC=Entrez le nom des équipes et des joueurs -PARTY_PLAYER_WHEREAMI=Mode fête : Équipes PARTY_PLAYER_ENTER_NAME=Modifier - -PARTY_ROUNDS_DESC= Sélectionnez les modes -PARTY_ROUNDS_WHEREAMI=Mode fête : Manches PARTY_ROUNDS_LEGEND_CONTINUE=Commencer la fête PARTY_ROUNDCOUNT=Nbre des manches PARTY_SELECTMODE=Manche %d -PARTY_ROUND_DESC=Joueurs suivants, à vos micros ! -PARTY_ROUND_WHEREAMI=Mode fête : Manche suivante PARTY_ROUND_LEGEND_CONTINUE=Commencer la manche PARTY_SONG_WHEREAMI=Mode fête : Choix de la chanson PARTY_SONG_LEGEND_CONTINUE=Chanter PARTY_SONG_MENU=Menu fête +OPTION_VALUE_SING=Chanter +OPTION_VALUE_SELECT_PLAYERS=Choix des joueurs +OPTION_VALUE_OPEN_MENU=Ouvrir le menu + PARTY_SCORE_DESC=Score de la manche PARTY_SCORE_WHEREAMI=Mode fête : Score @@ -345,65 +437,63 @@ PARTY_SCORE_WINS=%s PARTY_SCORE_WINS2=l'emporte ! MODE_RANDOM_NAME=Mode hasard -;TODO: MODE_RANDOM_DESC=Keep yourself on your toes! The game will select a mode for you at random! +MODE_RANDOM_DESC=Soyez prêts ! Le jeu choisira pour vous un mode au hasard ! MODE_HOLDTHELINE_NAME=Tenez la barre -;TODO: MODE_HOLDTHELINE_DESC=Keep your rating above the line for the longest! +MODE_HOLDTHELINE_DESC=Chantez juste le plus longtemps possible ! -;TODO: MODE_HOLDTHELINEBLIND_NAME=Hold the Blind -;TODO: MODE_HOLDTHELINEBLIND_DESC=Keep your rating above the line for the longest, but with the notes hidden! +MODE_HOLDTHELINEBLIND_NAME=Tenez la barre à l'aveugle +MODE_HOLDTHELINEBLIND_DESC=Chantez juste le plus longtemps possible, mais sans les notes ! -;TODO: MODE_7000POINTS_NAME=Until 7000 -;TODO: MODE_7000POINTS_DESC=Race to 7000 Points! +MODE_7000POINTS_NAME=Jusqu'à 7000 +MODE_7000POINTS_DESC=Le premier à 7000 Points ! -;TODO: MODE_7000POINTSBLIND_NAME=Blind 7000 -;TODO: MODE_7000POINTSBLIND_DESC=Race to 7000 points, but without seeing the notes! +MODE_7000POINTSBLIND_NAME=7000 à l'aveugle +MODE_7000POINTSBLIND_DESC=Le premier à 7000 points, mais sans les notes ! MODE_5000POINTS_NAME=Jusqu'à 5000 -;TODO: MODE_5000POINTS_DESC=Race to 5000 Points! +MODE_5000POINTS_DESC=Le premier à 5000 Points ! -;TODO: MODE_5000POINTSBLIND_NAME=Blind 5000 -;TODO: MODE_5000POINTSBLIND_DESC=Race to 5000 points, but without seeing the notes! +MODE_5000POINTSBLIND_NAME=5000 à l'aveugle +MODE_5000POINTSBLIND_DESC=Le premier à 5000 points, mais sans les notes ! -;TODO: MODE_2000POINTS_NAME=Until 2000 -;TODO: MODE_2000POINTS_DESC=Race to 2000 Points! +MODE_2000POINTS_NAME=Jusqu'à 2000 +MODE_2000POINTS_DESC=Le premier à 2000 Points ! -;TODO: MODE_2000POINTSBLIND_NAME=Blind 2000 -;TODO: MODE_2000POINTSBLIND_DESC=Race to 2000 points, but without seeing the notes! +MODE_2000POINTSBLIND_NAME=2000 à l'aveugle +MODE_2000POINTSBLIND_DESC=Le premier à 2000 points, mais sans les notes ! MODE_DUEL_NAME=Duel -;TODO: MODE_DUEL_DESC=A 1v1 duel to get the highest score! +MODE_DUEL_DESC=un duel à un contre un pour avoir le meilleur score ! -;TODO: MODE_TEAMDUEL_NAME=Team Duel -;TODO: MODE_TEAMDUEL_DESC=Pass The Mic! Work together to get a higher score than the other team! +MODE_TEAMDUEL_NAME=Match en équipes +MODE_TEAMDUEL_DESC=Passez vous le micro ! Travaillez ensemble pour battre l'autre équipe ! MODE_BLIND_NAME=À l'aveugle -;TODO: MODE_BLIND_DESC=A 1v1 duel, but with the notes hidden! +MODE_BLIND_DESC=un duel à un contre un, mais sans les notes ! -;TODO: MODE_BLINDTOTAL_NAME=Total Darkness! -;TODO: MODE_BLINDTOTAL_DESC=A duel, but with the notes and the lyrics hidden. Only for the brave! +MODE_BLINDTOTAL_NAME=Noir total ! +MODE_BLINDTOTAL_DESC=Un duel sans notes ni paroles. Seulement pour les courageux ! -;TODO: MODE_1000BLIND_NAME = +1000 Blind -;TODO: MODE_1000BLIND_DESC = Gain a lead of more than 1000 points, but without seeing the notes! +MODE_1000BLIND_NAME = +1000 à l'aveugle +MODE_1000BLIND_DESC = Gagnez 1000 points de plus, mais sans voir les notes ! -;TODO: MODE_DEAF_NAME = Deaf -;TODO: MODE_DEAF_DESC = Think you know the notes? Can you sing it without the acompaniment? +MODE_DEAF_NAME = Silencieux +MODE_DEAF_DESC = Vou pensez connaitre la mélodie ? Pouvez vous chantez sans l'accompagnement ? -;TODO: MODE_BLINDLYRICS_NAME = No Lyrics -;TODO: MODE_BLINDLYRICS_DESC = Think you know all the lyrics? Sing with the lyrics hidden! +MODE_BLINDLYRICS_NAME = Sans paroles +MODE_BLINDLYRICS_DESC = Vous connaissez les paroles ? Chantez sans les voir ! -;TODO: MODE_500BLIND_NAME = +500 Blind -;TODO: MODE_500BLIND_DESC = Gain a lead of more than 500 points, but without seeing the notes! +MODE_500BLIND_NAME = +500 à l'aveugle +MODE_500BLIND_DESC = Gagnez 500 points de plus, mais sans voir les notes ! -;TODO: MODE_SHORTSONG_NAME = Short Song -;TODO: MODE_SHORTSONG_DESC = A fast-paced 1v1 duel over half the song! +MODE_SHORTSONG_NAME = Chanson raccourcie +MODE_SHORTSONG_DESC = Un duel rapide sur la moitié d'une chanson ! -;TODO: MODE_HARDCORE_NAME=Hardcore -;TODO: MODE_HARDCORE_DESC=Battle for a three-line lead on your opponent! +MODE_HARDCORE_NAME=Hardcore +MODE_HARDCORE_DESC=Gagnez trois lignes d'avance sur votre adversaire ! STAT_MAIN=Statistiques -STAT_MAIN_DESC=Général -STAT_MAIN_WHEREAMI=Statistiques STAT_OVERVIEW_INTRO=Statistiques d'%0:s \n Dernière réinitialisation le %1:.2d.%2:.2d.%3:d STAT_OVERVIEW_SONG=Le jeu contient %0:d chansons dont %3:d avec vidéo.\n%1:d ont déjà été chantées une fois et %2:d pas encore. \n\n La chanson la plus chantée est %5:s de %4:s. @@ -417,7 +507,7 @@ STAT_DETAIL_WHEREAMI=Statistiques détaillées STAT_NEXT=Page suiv. STAT_PREV=Page préc. STAT_REVERSE=Inverser -STAT_PAGE=Page %0:d de %1:d \n (%2:d entrées sur %3:d) +STAT_PAGE=Page %0:d de %1:d \n Entrées %2:d sur %3:d STAT_DESC_SCORES=Meilleurs Scores STAT_DESC_SCORES_REVERSED=Pires scores @@ -435,311 +525,103 @@ STAT_DESC_BANDS=Artistes favoris STAT_DESC_BANDS_REVERSED=Artistes impopulaires STAT_FORMAT_BANDS=%0:s \n Chansons chantées: %1:d -SCREENSHOT_SAVED=Capture d'écran sauvegardée -SCREENSHOT_FAILED=Impossible de sauvegarder la capture - -INFO_FILE_SAVED=Fichier sauvegardé -ERROR_SAVE_FILE_FAILED=Impossible de sauvegarder le fichier -ERROR_FILE_NOT_FOUND=Fichier introuvable - -ENCODING_ERROR_ASK_FOR_UTF8=Impossible de sauvegarder sous l'encodage actuel. Convertir en UTF-8 ? -EDITOR_ERROR_NO_TRACK_SELECTED=Aucune piste n'est sélectionnée - -MSG_ERROR_TITLE=Erreur -MSG_INFO_TITLE=Information -MSG_QUESTION_TITLE=Confirmation -MSG_QUIT_USDX=Quitter le jeu ? -MSG_END_PARTY=Quitter la fête ? - -ERROR_NO_SONGS=Chansons introuvables -ERROR_NO_PLUGINS=Plugins introuvables -ERROR_NO_MODES_FOR_CURRENT_SETUP=Aucun mode n'est disponible pour les équipes/joueurs actuels. -ERROR_CAN_NOT_START_PARTY= Une erreur s'est produite au démarrage du mode fête. -ERROR_CORRUPT_SONG=Impossible de charger la chanson. -ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Chargement impossible : Fichier non trouvé -ERROR_CORRUPT_SONG_NO_NOTES=Chargement impossible : Pas de partition trouvée -ERROR_CORRUPT_SONG_NO_BREAKS=Chargement impossible : Saut de ligne introuvable -ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Chargement impossible : Erreur analyseur à la ligne %0:d -ERROR_NO_EDITOR=Éditeur introuvable -ERROR_PLAYER_DEVICE_ASSIGNMENT=Plusieurs micros sont attribués au joueur %d. Merci de vérifier vos options d'enregistrement -ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Aucun micro n'est attribué au joueur %d. Merci de vérifier vos options d'enregistrement - -;TODO: SING_OPTIONS_NETWORK=Internet -;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options -;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings -;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... -;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password -;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name -SING_OPTIONS_NETWORK_AUTO_MODE=Automatique -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) -;TODO: SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! -;TODO: SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? -;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert -;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete - -OPTION_PLAYER_1=Jouer 1 -OPTION_PLAYER_2=Jouer 2 -OPTION_PLAYER_3=Jouer 3 -OPTION_PLAYER_4=Jouer 4 -OPTION_PLAYER_5=Jouer 5 -OPTION_PLAYER_6=Jouer 6 -OPTION_ALL_PLAYERS=Tout -OPTION_ALL_SCORES=Tout -;TODO: OPTION_VALUE_SAVE=Save -;TODO: OPTION_VALUE_SEND=Send - -;TODO: MSG_INSERT_USER_TITLE=%0:s -;TODO: MSG_INSERT_USER_DESC=Fill the fields: -;TODO: MSG_INSERT_USER_ADD=Add -MSG_INSERT_USER_CANCEL=Annuler - -;TODO: WEBSITE_NO_CONNECTION=No website connection! -;TODO: WEBSITE_LOGIN_ERROR=Login Incorrect! -;TODO: WEBSITE_BLANK_LOGIN=There are blank fields! -;TODO: WEBSITE_EXIST_USER=Existing user! -;TODO: WEBSITE_ERROR_SCORE=Scoring Error! -;TODO: WEBSITE_OK_SEND=Score sent successfully! -;TODO: WEBSITE_ERROR_SCORE_DUPLICATED=Existing Score! -;TODO: WEBSITE_ERROR_SONG=Song Not Found! -;TODO: WEBSITE_SAVE_SCORE=Score save successfully! -;TODO: WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? - -;TODO: SONG_MENU_REFRESH_SCORES=Update Scores -;TODO: SONG_MENU_REFRESH_SCORES_TITLE=Update -;TODO: SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! -;TODO: SONG_MENU_REFRESH_SCORES_ONLINE=Online -;TODO: SONG_MENU_REFRESH_SCORES_FILE=File -;TODO: SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites -;TODO: SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs -;TODO: SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song -;TODO: SONG_MENU_REFRESH_SCORES_REFRESH=Update -;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! -;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! - -;TODO: SONG_SCORE_MAX=Best: -;TODO: SONG_SCORE_MEDIA=Average: - -;TODO: SCORE_SEND_DESC=Send Score -;TODO: SCORE_SEND=Send -;TODO: SCORE_SEND_PLAYER=Player -;TODO: SCORE_SEND_OTHER_USER= Other Username -;TODO: SCORE_SAVE=Save - -SCORE_DOWNLOAD_TITLE=Téléchargement -;TODO: SCORE_DOWNLOAD_SONG=Song: -SCORE_DOWNLOAD_CREATE_LIST=Prépartion de la liste... -SCORE_DOWNLOAD_RECEIVE_LIST=Téléchargement... -SCORE_DOWNLOAD_CANCEL=Annuler -SCORE_DOWNLOAD_OK=OK -;TODO: SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! - -;TODO: SING_OPTIONS_GAME_SHOWSCORES=Show Scores -;TODO: OPTION_VALUE_WHEN_EXISTS=When Exists - -;TODO: PARTY_SELECT_MODE=Mode -;TODO: PARTY_MODE_CLASSIC=Classic -;TODO: PARTY_MODE_CLASSIC_FREE=Classic Free -;TODO: PARTY_MODE_CHALLENGE=Challenge -;TODO: PARTY_MODE_TOURNAMENT=Tournament -;TODO: PARTY_MODE_JUKEBOX=Jukebox -;TODO: PARTY_MODE_NOT_AVAILABLE=Not Available! - -;TODO: PARTY_MODE_TOURNAMENT_PLAYER_DESC=Insert number and players name -;TODO: PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Number of Players -PARTY_MODE_TOURNAMENT_OPTIONS_DESC=Nbre des manches -;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_FINAL=Final -;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Semifinals -;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Quarterfinals -;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL=Round of 16 +PARTY_SELECT_MODE=Mode +PARTY_MODE_CLASSIC=Classique +PARTY_MODE_CLASSIC_FREE=Classique libre +PARTY_MODE_CHALLENGE=Challenge +PARTY_MODE_TOURNAMENT=Tournoi +PARTY_MODE_JUKEBOX=Jukebox + +PARTY_MODE_TOURNAMENT_PLAYER_DESC=Insérer le nombre et le nom des joueurs +PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Nombre de joueurs +PARTY_MODE_TOURNAMENT_OPTIONS_DESC=Nombre des manches +PARTY_MODE_TOURNAMENT_ROUNDS_FINAL=Finale +PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Demi-finales +PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Quart de finales +PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL=8ème de finale PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Joueurs suivants, à vos micros ! -;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result -;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! - -EDIT_TITLE=Titre: -EDIT_ARTIST=Artiste: -EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -INFO_FILE_SAVED=Fichier sauvegardé -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -INFO_EXIT=Quitter l'éditeur sans enregistrer ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - -;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! -;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! - -;TODO: MSG_END_JUKEBOX=Do you want leave Jukebox Mode? +PARTY_MODE_TOURNAMENT_WIN_DESC=résultat du tour +PARTY_MODE_TOURNAMENT_CHAMPION=le champion est : %0:s ! + +MSG_END_JUKEBOX=Voulez-vous quittez le Jukebox ? JUKEBOX_RANDOM=Aléatoire JUKEBOX_REPEAT=Répéter JUKEBOX_FIND=Rechercher: JUKEBOX_SORT=Trier: JUKEBOX_SONGLIST=Liste de chansons -;TODO: SING_ERROR_DUET_MODE_PARTY = Duet! Not playable in Party Mode! +SING_ERROR_DUET_MODE_PARTY = On ne peut pas jouer les duos en mode Fête ! -;TODO: SONG_MENU_SONG=Song -;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra +SONG_MENU_SONG=Chanson +SONG_MENU_MEDLEY=Medley SONG_MENU_NAME_SONG=Menu -;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu +SONG_MENU_NAME_MEDLEY=Menu des Medley SONG_MENU_ADD_SONG=Ajouter la chanson SONG_MENU_DELETE_SONG=Supprimer la chanson -;TODO: SONG_MENU_START_MEDLEY=Sing! -;TODO: SONG_MENU_START_5_MEDLEY=Sing %0:d Songs! +SONG_MENU_START_MEDLEY=Chantez ! +SONG_MENU_START_5_MEDLEY=Chantez %0:d chansons ! -;TODO: SONG_MENU_NAME_SORTING=Sort Menu -;TODO: SONG_MENU_SORTING_TABS_ON=Tabs On -;TODO: SONG_MENU_SORTING_TABS_OFF=Tabs Off +SONG_MENU_NAME_SORTING=Trier... +SONG_MENU_SORTING_TABS_ON=Tabulations activées +SONG_MENU_SORTING_TABS_OFF=Tabulations désactivées SONG_MENU_SORTING_ALL=Tout -;TODO: SONG_MENU_SORTING_DUET=Duets -;TODO: SONG_MENU_SORTING_APPLY=Apply +SONG_MENU_SORTING_DUET=Duos +SONG_MENU_SORTING_APPLY=Appliquer -SING_OPTIONS_WEBCAM=Caméra -;TODO: SING_OPTIONS_WEBCAM_DESC=Webcam Settings -;TODO: SING_OPTIONS_WEBCAM_WHEREAMI=Webcam Options -SING_OPTIONS_WEBCAM_ID=Caméra -SING_OPTIONS_WEBCAM_RESOLUTION=Résolution -;TODO: SING_OPTIONS_WEBCAM_FPS=FPS -SING_OPTIONS_WEBCAM_NO_WEBCAM=Aucune caméra trouvée! -;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip -SING_OPTIONS_WEBCAM_EFFECT=Effet -SING_OPTIONS_WEBCAM_BRIGHTNESS=Luminosité -SING_OPTIONS_WEBCAM_SATURATION=Saturation -;TODO: SING_OPTIONS_WEBCAM_HUE=Hue -SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Activer l'aperçu -SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Desactiver l'aperçu +PARTY_PLAYLIST_MANUAL=Sélection manuelle +PARTY_MODE_JUKEBOX_NO_SONGS=La playlist est vide ! +SONG_MENU_OPEN_CATEGORY=Ouvrir la catégorie +SONG_MENU_CLOSE_CATEGORY=Fermer la catégorie +SONG_MENU_START_JUKEBOX=Démarrez le Jukebox ! +SONG_MENU_NAME_JUKEBOX=Menu Jukebox -SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal -SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Nuances de gris -SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Noir et blanc -SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Négatif -;TODO: SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image -;TODO: SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate -SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Suppression du bruit -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges -SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Flou gaussien -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized -;TODO: SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode - -;TODO: PARTY_PLAYLIST_MANUAL=Manual Selection -;TODO: PARTY_MODE_JUKEBOX_NO_SONGS=Playlist is empty! -;TODO: SONG_MENU_OPEN_CATEGORY=Open category -;TODO: SONG_MENU_CLOSE_CATEGORY=Close category -;TODO: SONG_MENU_START_JUKEBOX=Start Jukebox! -;TODO: SONG_MENU_NAME_JUKEBOX=Menu Jukebox - -;TODO: WEBSITE_EXIST_SONG=The song belongs to the website: %0:s -;TODO: WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! +WEBSITE_EXIST_SONG=La chanson appartient au site : %0:s +WEBSITE_NOT_EXIST_SONG=La chanson n'appartient à aucun site ! NAME_PLAYERS_COUNT=Nombre de joueurs NAME_CURRENT_PLAYER=Joueur -SING_OPTIONS_GAME_SONGMENU=Menu -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -OPTION_VALUE_LIST=Liste -;TODO: OPTION_VALUE_MOSAIC=Tile +JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Etirer +JUKEBOX_SONGOPTIONS_VIDEO_CROP=Couper +JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=LetterBox -;TODO: SING_OPTIONS_JUKEBOX=Jukebox -;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox -;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options +JUKEBOX_SONGOPTIONS_SAVE=Sauver +JUKEBOX_SONGOPTIONS_CLOSE=Fermer +JUKEBOX_SONGOPTIONS_DEFAULT=Défaut +JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Sauvé ! -OPTION_VALUE_TO_SING=Chanter -;TODO: OPTION_VALUE_ACTUAL=Actual -OPTION_VALUE_NEXT=Suivant -OPTION_VALUE_OTHER=Autre -;TODO: OPTION_VALUE_FILL=Fill -;TODO: OPTION_VALUE_OUTLINE=Outline -OPTION_VALUE_GRAY=Gris -OPTION_VALUE_WHITE=Blanc -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -OPTION_VALUE_SALMON=Saumon -;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige -;TODO: OPTION_VALUE_TEAL=Teal -;TODO: OPTION_VALUE_ORCHID=Orchid -;TODO: OPTION_VALUE_STEELBLUE=Steel Blue -;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold -;TODO: OPTION_VALUE_DARKBLUE=Dark Blue -;TODO: OPTION_VALUE_SKY=Sky -;TODO: OPTION_VALUE_HARLEQUIN=Harlequin -;TODO: OPTION_VALUE_CYAN=Cyan -;TODO: OPTION_VALUE_FLAME=Flame +JUKEBOX_MODE=Mode Jukebox +JUKEBOX_OPTIONS_PLAYLIST=Playlist +JUKEBOX_OPTIONS_PLAYLIST_MODE=Mode -JUKEBOX_SONGOPTIONS_VIDEO=Paramètres vidéo -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height -;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options -JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Taille -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha -JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Couleur -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property -JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Rouge -JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Vert -JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Bleu +ABOUT_MAIN=À propos... +ABOUT_USDX_DEVELOPEDBY=Développé par +ABOUT_CHECK_CHECKING=recherche de mises à jour... +ABOUT_CHECK_AVAILABLE=Une nouvelle version est disponible +ABOUT_CHECK_UPTODATE=WorldParty est à jour +ABOUT_CHECK_CONNECTION=Pas de connexion internet +ABOUT_OVERVIEW=Découvrez une nouvelle façon de chanter, seul, en couple ou entre amis. \n L'amusement est garanti.\n\nWorldParty est une fork de la version originale Ultrastar Deluxe 1.1 conçu et développé par l'équipe UltraStar España, il compte avec la plus grande communauté de karaoké.\n\n\nCe programme est gratuit et libre sous licence GPL. \n\n Visitez-nous pour plus d'informations.\n\nhttps://ultrastar-es.org -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=LetterBox - -;TODO: JUKEBOX_SONGOPTIONS_SAVE=Save -;TODO: JUKEBOX_SONGOPTIONS_CLOSE=Close -;TODO: JUKEBOX_SONGOPTIONS_DEFAULT=Default -;TODO: JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Saved! - -SING_SONG_CREDITS=Crédits -;TODO: SING_JUKEBOX=Jukebox -;TODO: SING_JUKEBOX_DESC=Listen to my collection -;TODO: JUKEBOX_MODE=Jukebox Mode -;TODO: JUKEBOX_OPTIONS_DESC=Playlist Options -;TODO: JUKEBOX_OPTIONS_WHEREAMI=Jukebox Options -JUKEBOX_OPTIONS_PLAYLIST=Playlist -;TODO: JUKEBOX_OPTIONS_PLAYLIST_MODE=Mode +DEVELOPERS_TITLE=Développé par +DEVELOPERS_OVERVIEW=Personnes qui ont contribué à ce projet:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Visitez-nous pour plus d'informations.\n\nhttps://ultrastar-es.org -;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing -;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores -OPTION_VALUE_ALL=Tout -OPTION_VALUE_PLAYER=Joueur +SCREENSHOT_SAVED=Capture d'écran sauvegardée +SCREENSHOT_FAILED=Impossible de sauvegarder la capture -SING_ABOUT=À propos -SING_ABOUT_DESC=À propos Ultrastar Deluxe WorldParty -ABOUT_MAIN=À propos... -ABOUT_MAIN_DESC=Ultrastar Deluxe WorldParty -ABOUT_MAIN_WHEREAMI=À propos... -ABOUT_USDX_CREDITS=Crédits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +MSG_ERROR_TITLE=Erreur +MSG_INFO_TITLE=Information +MSG_QUESTION_TITLE=Confirmation +MSG_QUIT_USDX=Quitter le jeu ? +MSG_END_PARTY=Quitter la fête ? + +ERROR_NO_SONGS=Chansons introuvables +ERROR_NO_PLUGINS=Plugins introuvables +ERROR_LOADING_SONGS=Attendez que le chargement de toutes les chansons +ERROR_CORRUPT_SONG=Impossible de charger la chanson. +ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Chargement impossible : Fichier non trouvé +ERROR_CORRUPT_SONG_NO_NOTES=Chargement impossible : Pas de partition trouvée +ERROR_CORRUPT_SONG_NO_BREAKS=Chargement impossible : Saut de ligne introuvable +ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Chargement impossible : Erreur analyseur à la ligne %0:d +ERROR_PLAYER_DEVICE_ASSIGNMENT=Plusieurs micros sont attribués au joueur %d. Merci de vérifier vos options de microphone +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Aucun micro n'est attribué au joueur %d. Merci de vérifier vos options de microphone \ No newline at end of file diff --git a/game/languages/Galego.ini b/game/languages/Galego.ini index 126a96ba..7b81f38b 100644 --- a/game/languages/Galego.ini +++ b/game/languages/Galego.ini @@ -16,14 +16,14 @@ OPTION_VALUE_TITLE=Título OPTION_VALUE_ARTIST=Artista OPTION_VALUE_TITLE2=Título2 OPTION_VALUE_ARTIST2=Artista2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade +OPTION_VALUE_YEAR=Ano +OPTION_VALUE_DECADE=Década OPTION_VALUE_PLAYLIST=Listaxe -;TODO: OPTION_VALUE_BORDERLESS=Borderless +OPTION_VALUE_BORDERLESS=Maximizada OPTION_VALUE_WHENNOVIDEO=Se non hai video -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Cando non hai vídeo e imaxe OPTION_VALUE_SMALL=Pequeno OPTION_VALUE_BIG=Grande @@ -68,12 +68,8 @@ OPTION_VALUE_SING=Cantar OPTION_VALUE_SELECT_PLAYERS=Elixir Xogadores OPTION_VALUE_OPEN_MENU=Abrir menú -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -OPTION_VALUE_HARDWARE_CURSOR=Cursor por hardware -OPTION_VALUE_SOFTWARE_CURSOR=Cursor por software - SING_LOADING=Cargando... +SING_LOADING_SONGS=Cargando cancións do cartafol %s SING_CHOOSE_MODE=Elixe SING_SING=Canta! @@ -87,9 +83,6 @@ SING_TOOLS=Utilidades SING_STATS=Estatística SING_STATS_DESC=Ver estatísticas -SING_EDITOR=Editor -SING_EDITOR_DESC=Crea a túa propia canción - SING_GAME_OPTIONS=Opcións SING_GAME_OPTIONS_DESC=Cambia as opcións do xogo @@ -103,29 +96,29 @@ SING_OPTIONS_WHEREAMI=Opcións SING_OPTIONS_GAME=Xogo SING_OPTIONS_GRAPHICS=Gráficos SING_OPTIONS_SOUND=Son -;TODO: SING_OPTIONS_INPUT=Input SING_OPTIONS_LYRICS=Letras SING_OPTIONS_THEMES=Aparencia -SING_OPTIONS_RECORD=Micrófonos +SING_OPTIONS_MICROPHONES=Micrófonos SING_OPTIONS_ADVANCED=Avanzado SING_OPTIONS_EXIT=Volta SING_OPTIONS_GAME_WHEREAMI=Opcións do xogo SING_OPTIONS_GAME_DESC=Cambiar as preferencias xerais do xogo -;TODO: SING_OPTIONS_GAME_PLAYERS=Players +SING_OPTIONS_GAME_PLAYERS=Xogadores SING_OPTIONS_GAME_DIFFICULTY=Dificultade SING_OPTIONS_GAME_LANGUAGE=Idioma SING_OPTIONS_GAME_TABS=Etiquetas SING_OPTIONS_GAME_SORTING=Clasificar por -SING_OPTIONS_GAME_DEBUG=Modo depuración +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Activar o gamepad SING_OPTIONS_GRAPHICS_WHEREAMI=Opcións gráficas SING_OPTIONS_GRAPHICS_DESC=Cambiar os axustes do video SING_OPTIONS_GRAPHICS_RESOLUTION=Resolución SING_OPTIONS_GRAPHICS_FULLSCREEN=Pantalla completa -SING_OPTIONS_GRAPHICS_DEPTH=Profundidade de cor +SING_OPTIONS_GRAPHICS_EFFECTSING=Efectes de cantar +SING_OPTIONS_GRAPHICS_SCREENFADE=Fos de pantalla +SING_OPTIONS_GRAPHICS_LOADANIMATION=Animació càrrega SING_OPTIONS_GRAPHICS_VISUALIZER=Visualización -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Osciloscopio SING_OPTIONS_GRAPHICS_LINEBONUS=Bonus de liña SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Tamaño do video @@ -133,20 +126,13 @@ SING_OPTIONS_SOUND_WHEREAMI=Opcións de son SING_OPTIONS_SOUND_DESC=Cambiar os axustes de audio SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Escoitar o micrófono SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Música de fondo -SING_OPTIONS_SOUND_MIC_BOOST=Potenciar micrófono SING_OPTIONS_SOUND_CLICK_ASSIST=Axuda de notas SING_OPTIONS_SOUND_BEAT_CLICK=Clic en compases -SING_OPTIONS_SOUND_THRESHOLD=Umbral do micro. SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Modo 2 xogadores ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Volume do adianto SING_OPTIONS_SOUND_PREVIEWFADING=Desvanecemento -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - SING_OPTIONS_LYRICS_WHEREAMI=Opcións de letras SING_OPTIONS_LYRICS_DESC=Cambiar a forma na que se ven as cancións SING_OPTIONS_LYRICS_FONT=Tipografía @@ -160,43 +146,36 @@ SING_OPTIONS_THEMES_THEME=Tema SING_OPTIONS_THEMES_SKIN=Pel SING_OPTIONS_THEMES_COLOR=Cor -SING_OPTIONS_RECORD_WHEREAMI=Opcións de micrófonos -SING_OPTIONS_RECORD_DESC=Cambiar entradas de son -SING_OPTIONS_RECORD_CARD=Dispositivo de son -SING_OPTIONS_RECORD_INPUT=Entrada -SING_OPTIONS_RECORD_CHANNEL=Canle +SING_OPTIONS_MICROPHONES_WHEREAMI=Opcións de micrófonos +SING_OPTIONS_MICROPHONES_DESC=Cambiar entradas de son +SING_OPTIONS_MICROPHONES_CARD=Dispositivo de son +SING_OPTIONS_MICROPHONES_INPUT=Entrada +SING_OPTIONS_MICROPHONES_CHANNEL=Canle +SING_OPTIONS_MICROPHONES_THRESHOLD=Umbral do micro. +SING_OPTIONS_MICROPHONES_MIC_BOOST=Potenciar micrófono SING_OPTIONS_ADVANCED_WHEREAMI=Opcións avanzadas SING_OPTIONS_ADVANCED_DESC=Opcións avanzadas -SING_OPTIONS_ADVANCED_EFFECTSING=Efectos ó cantar -SING_OPTIONS_ADVANCED_SCREENFADE=Desvanecemento -SING_OPTIONS_ADVANCED_LOADANIMATION=Animación de carga +SING_OPTIONS_ADVANCED_DEBUG=Debug +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Oscil·loscopi SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Preguntar ó borrar SING_OPTIONS_ADVANCED_LINEBONUS=Bonus de liña -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=Ó seleccionar canción SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto menú de festa -SING_EDIT=Editor -SING_EDIT_MENU_DESCRIPTION=Crear a túa propia canción - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Importar texto desde arquivo MIDI -SING_EDIT_BUTTON_DESCRIPTION_EXIT=Volta -SING_EDIT_BUTTON_CONVERT=Importar -SING_EDIT_BUTTON_EXIT=Volta - -SING_EDIT_NAVIGATE=Navegar -SING_EDIT_SELECT=Seleccionar -SING_EDIT_EXIT=Volta - SING_LEGEND_SELECT=Seleccionar SING_LEGEND_NAVIGATE=Navegar SING_LEGEND_CONTINUE=Proseguir SING_LEGEND_ESC=Volta -SING_PLAYER_DESC=Nome dos xogadores -SING_PLAYER_WHEREAMI=Nome dos xogadores -SING_PLAYER_ENTER_NAME=Escribe o nome +SING_PLAYER_TITLE=Perfís +SING_PLAYER_READY=Xogadores listos para cantar +SING_PLAYER_COUNT=Número de xogadores +SING_PLAYER_EDIT=Personaliza un xogador +SING_PLAYER_NAME=Escribe o teu nome +SING_PLAYER_COLOR=Escolla unha cor +SING_PLAYER_LEVEL=Elixe un nivel +SING_PLAYER_AVATAR=Selecciona o teu avatar SING_DIFFICULTY_DESC=Selecciona a dificultade SING_DIFFICULTY_WHEREAMI=Dificultade @@ -211,10 +190,15 @@ SING_SONG_SELECTION_GOTO=Ir a... SING_SONG_SELECTION=Selección de canción SING_SONG_SELECTION_MENU=Menú SING_SONG_SELECTION_PLAYLIST=Listaxe +SING_SONG_IN_CAT=Canción SING_SONGS_IN_CAT=Cancións PLAYLIST_CATTEXT=Listaxe: %s +SING_SONG_SELECTION_LEGEND_TITLE=Lenda +SING_SONG_SELECTION_LEGEND_VIDEO=Vídeo +SING_SONG_SELECTION_LEGEND_MEDLEY=Versión curta +SING_SONG_SELECTION_LEGEND_MEDLEYC=Versión curta calculada +SING_SONG_SELECTION_LEGEND_DUET=Dueto -;TODO: SING_TIME=TIME SING_TOTAL=Total SING_MODE=Só SING_NOTES=Notas @@ -255,7 +239,6 @@ IMPLODE_GLUE2= e SONG_MENU_NAME_MAIN=Menú cancións SONG_MENU_PLAY=Cantar SONG_MENU_CHANGEPLAYERS=Elixir xogadores -SONG_MENU_EDIT=Editar SONG_MENU_MODI=Cantar unha Modi SONG_MENU_CANCEL=Anular @@ -422,7 +405,7 @@ STAT_DETAIL_WHEREAMI=Estatísticas detalladas STAT_NEXT=Seguinte STAT_PREV=Anterior STAT_REVERSE=Invertilo orde -STAT_PAGE=Páxina %0:d de %1:d \n (%2:d ítems dun total de %3:d) +STAT_PAGE=Páxina %0:d de %1:d \n Rexistros %2:d de %3:d STAT_DESC_SCORES=Puntación STAT_DESC_SCORES_REVERSED=Peores puntacións @@ -448,7 +431,6 @@ ERROR_SAVE_FILE_FAILED=Non se puido gardar ERROR_FILE_NOT_FOUND=Non se encontrou o arquivo ENCODING_ERROR_ASK_FOR_UTF8=Non se poden gardar os cambios na codificación actual. Converter a UTF-8? -EDITOR_ERROR_NO_TRACK_SELECTED=Sen pista seleccionada MSG_ERROR_TITLE=Erro MSG_INFO_TITLE=Información @@ -465,7 +447,6 @@ ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Imposible cargar a canción: Arquivo non atopa ERROR_CORRUPT_SONG_NO_NOTES=Imposible cargar a canción: Non se atopan as notas ERROR_CORRUPT_SONG_NO_BREAKS=Imposible cargar a canción: Non se atopan interrupcións de liña ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Imposible cargar a canción: Erro durante o parsing da liña %0:d -ERROR_NO_EDITOR=Esta función non está dispoñible en Linux/Mac ERROR_PLAYER_DEVICE_ASSIGNMENT=Asignaronse máis dun micrófono ó xogador %d. Comproba as opcións de micrófonos. ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Ó xogador %d non se lle asignou ningún micrófono. Comproba as opcións de micrófonos. @@ -565,36 +546,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Xogadores seguintes para os microfonos PARTY_MODE_TOURNAMENT_WIN_DESC=Resultados da rolda PARTY_MODE_TOURNAMENT_CHAMPION=O campeón é: %0:s! -EDIT_TITLE=Título: -EDIT_ARTIST=Artista: -EDIT_MP3=MP3: -EDIT_BPM=BPM: -EDIT_GAP=GAP: -EDIT_COVER=Carátula -EDIT_BACKGROUND=Background: - -EDIT_START=Inicio: -EDIT_DURATION=Duración -EDIT_TONE=Ton -EDIT_LYRIC=Letra: -EDIT_VIDEOGAP=Video Gap: -EDIT_VOLUME_AUDIO=Volume do audio: -EDIT_VOLUME_MIDI=Volume do midi: -EDIT_VOLUME_CLICK=Volume do click: -INFO_UNDO=Desfacer a operación - -INFO_FILE_SAVED=Arquivo gardado -INFO_TIME_FIXED=Tempos correxidos -INFO_CAPITALIZE=Capitalización correxida -INFO_EXIT=Desea saír do editor sen gardar? -INFO_SONG_RELOADED=Canción Reaberta -INFO_DIVIDED_BPM=Dividir BPM -INFO_MULTIPLIED_BPM=Multiplicar BPM -INFO_PLAY_SONG=Play Música -INFO_PLAY_SENTENCE=Play Frase -INFO_CURRENT_LINE=Liña: -INFO_CURRENT_NOTE=Nota: - INFO_MIDI_CHANNEL_OFF= Canle %0:s desactivado! INFO_MIDI_CHANNEL_RESET= Todos os canles activos! @@ -609,8 +560,6 @@ SING_ERROR_DUET_MODE_PARTY = Dueto! Non se pode xogar no modo festa! SONG_MENU_SONG=Canción SONG_MENU_MEDLEY=Medley -SONG_MENU_SORTING=Ordear -SONG_MENU_EXTRA=Extras SONG_MENU_NAME_SONG=Menu Canción SONG_MENU_NAME_MEDLEY=Menu Medley @@ -667,11 +616,11 @@ NAME_PLAYERS_COUNT=Nº de xogadores NAME_CURRENT_PLAYER=Xogador SING_OPTIONS_GAME_SONGMENU=Menú cancións -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List +OPTION_VALUE_ROULETTE=Roleta +OPTION_VALUE_CHESSBOARD=Tabuleiro de xadrez +OPTION_VALUE_CAROUSEL=Carrusel +OPTION_VALUE_SLOT_MACHINE=Máquina tragamonedas + OPTION_VALUE_LIST=Lista ;TODO: OPTION_VALUE_MOSAIC=Tile SING_OPTIONS_JUKEBOX=Jukebox @@ -679,9 +628,9 @@ SING_OPTIONS_JUKEBOX=Jukebox ;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options OPTION_VALUE_TO_SING=Cantar -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next -;TODO: OPTION_VALUE_OTHER=Other +OPTION_VALUE_ACTUAL=Superior +OPTION_VALUE_NEXT=Inferior +OPTION_VALUE_OTHER=Outro ;TODO: OPTION_VALUE_FILL=Fill ;TODO: OPTION_VALUE_OUTLINE=Outline ;TODO: OPTION_VALUE_GRAY=Gray @@ -710,7 +659,7 @@ OPTION_VALUE_TO_SING=Cantar ;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Transparencia JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Cor ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property @@ -727,9 +676,9 @@ JUKEBOX_SONGOPTIONS_SAVE=Gardar ;TODO: JUKEBOX_SONGOPTIONS_DEFAULT=Default ;TODO: JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Saved! -;TODO: SING_SONG_CREDITS=Credits +SING_SONG_CREDITS=Créditos SING_JUKEBOX=Jukebox -;TODO: SING_JUKEBOX_DESC=Listen to my collection +SING_JUKEBOX_DESC=Escoitar as miñas cancións ;TODO: JUKEBOX_MODE=Jukebox Mode ;TODO: JUKEBOX_OPTIONS_DESC=Playlist Options ;TODO: JUKEBOX_OPTIONS_WHEREAMI=Jukebox Options @@ -741,10 +690,15 @@ JUKEBOX_OPTIONS_PLAYLIST_MODE=Modo OPTION_VALUE_ALL=Todo OPTION_VALUE_PLAYER=Xogador -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +SING_ABOUT=Acerca de +SING_ABOUT_DESC=Acerca de Ultrastar Deluxe WorldParty +ABOUT_MAIN=Acerca de... +ABOUT_USDX_DEVELOPEDBY=Desenvolvido por +;TODO: ABOUT_CHECK_CHECKING=Checking for new updates... +;TODO: ABOUT_CHECK_AVAILABLE=There is a new version available +;TODO: ABOUT_CHECK_UPTODATE=WorldParty is up to date +;TODO: ABOUT_CHECK_CONNECTION=There is no Internet connection +ABOUT_OVERVIEW=Descubre unha nova forma de cantar, só, en parella ou cos amigos. \n A diversión está garantida.\n\nWorldParty é un fork da versión orixinal Ultrastar Deluxe 1.1 deseñado e desenvolvido polo equipo UltraStar España, conta coa maior comunidade de karaoke.\n\n\nEste programa é gratuíto e libre baixo a licenza GPL. \n\n Visita connosco para obter máis información.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Desenvolvido por +DEVELOPERS_OVERVIEW=Persoas que contribuíron a este proxecto:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Visita connosco para obter máis información.\n\nhttps://ultrastar-es.org diff --git "a/game/languages/G\303\240idhlig.ini" "b/game/languages/G\303\240idhlig.ini" index d97e75f4..861315a3 100644 --- "a/game/languages/G\303\240idhlig.ini" +++ "b/game/languages/G\303\240idhlig.ini" @@ -1,220 +1,318 @@ [Text] LANGUAGE=Gàidhlig -OPTION_VALUE_EASY=Furasta -OPTION_VALUE_MEDIUM=Meadhanach -OPTION_VALUE_HARD=Doirbh - -OPTION_VALUE_ON=Air -OPTION_VALUE_OFF=Dheth - -OPTION_VALUE_EDITION=Deasachadh -OPTION_VALUE_GENRE=Gnè -OPTION_VALUE_LANGUAGE=Cànan -OPTION_VALUE_FOLDER=Pasgan -OPTION_VALUE_TITLE=Tiotal -OPTION_VALUE_ARTIST=Neach-ciùil -OPTION_VALUE_TITLE2=Tiotal 2 -OPTION_VALUE_ARTIST2=Neach-ciùil 2 -OPTION_VALUE_YEAR=Bliadhna -OPTION_VALUE_DECADE=Deichead -OPTION_VALUE_PLAYLIST=Liosta-chluich - -OPTION_VALUE_BORDERLESS=Gun iomall - -OPTION_VALUE_WHENNOVIDEO=Mur eil video ann -OPTION_VALUE_WHENNOVIDEOANDIMAGE=Mur eil video no dealbh ann - -OPTION_VALUE_SMALL=Beag -OPTION_VALUE_BIG=Mòr - -OPTION_VALUE_HALF=Leth-mheud -OPTION_VALUE_FULL_VID=Làn-sgrìn (video) -OPTION_VALUE_FULL_VID_BG=Làn-sgrìn (cùlaibh ⁊ video) - -OPTION_VALUE_GAIN_SOFT=Bog -OPTION_VALUE_GAIN_MEDIUM=Meadhanach -OPTION_VALUE_GAIN_HARD=Cruaidh - -OPTION_VALUE_AUTO=Fèin-obrachail -OPTION_VALUE_SEC=Diog -OPTION_VALUE_SECS=diog(an) - -OPTION_VALUE_PLAIN=Lom -OPTION_VALUE_OLINE1=Oir-loidhne 1 -OPTION_VALUE_OLINE2=Oir-loidhne 2 - -OPTION_VALUE_SIMPLE=Simplidh -OPTION_VALUE_ZOOM=Sùm -OPTION_VALUE_SLIDE=Lìonadh -OPTION_VALUE_BALL=Bàla -OPTION_VALUE_SHIFT=Leum - -OPTION_VALUE_EURO=Eòrpach -OPTION_VALUE_JAPAN=Seapanach -OPTION_VALUE_AMERICAN=Aimeireaganach - -OPTION_VALUE_BLUE=Gorm -OPTION_VALUE_GREEN=Uaine -OPTION_VALUE_PINK=Pinc -OPTION_VALUE_RED=Dearg -OPTION_VALUE_VIOLET=Purpaidh -OPTION_VALUE_ORANGE=Orainds -OPTION_VALUE_YELLOW=Buidhe -OPTION_VALUE_BROWN=Donn -OPTION_VALUE_BLACK=Dubh - -OPTION_VALUE_SING=Seinn -OPTION_VALUE_SELECT_PLAYERS=Tagh cluicheadairean -OPTION_VALUE_OPEN_MENU=Fosgail an clàr-taice - -OPTION_VALUE_SYSTEM_CURSOR=Air [cùrsair an t-siostaim] -OPTION_VALUE_GAME_CURSOR=Air [cùrsair a’ gheama] -OPTION_VALUE_HARDWARE_CURSOR=Cùrsair bathair-chruaidh -OPTION_VALUE_SOFTWARE_CURSOR=Cùrsair bathair-bhog - SING_LOADING=’Ga luchdadh… +;TODO: SING_LOADING_SONGS=Loading songs from folder %s -SING_CHOOSE_MODE=Tagh am modh SING_SING=Seinn SING_SING_DESC=Geama luath: seinn ’nad aonar no òran-càraid SING_MULTI=Cèilidh SING_MULTI_DESC=Seinn sa mhodh-chèilidh -SING_TOOLS=Innealan +SING_JUKEBOX=Inneal-chlàr +SING_JUKEBOX_DESC=Èist ris a’ chruinneachadh agam SING_STATS=Stadastaireachd SING_STATS_DESC=Seall an stadastaireachd -SING_EDITOR=Deasaiche -SING_EDITOR_DESC=Cruthaich òran agad fhèin - SING_GAME_OPTIONS=Roghainnean a’ gheama SING_GAME_OPTIONS_DESC=Atharraich roghainnean a’ gheama SING_EXIT=Fàg an-seo SING_EXIT_DESC=Fàg an geama +SING_ABOUT=Mu dhèidhinn +SING_ABOUT_DESC=Mu Ultrastar Deluxe WorldParty + +SING_PLAYER_TITLE=Pròifil +SING_PLAYER_READY=Luchd-cluiche deiseil airson seinn +SING_PLAYER_COUNT=Àireamh de chluicheadairean +SING_PLAYER_EDIT=Dèan gnàthachadh air cluicheadair +SING_PLAYER_NAME=Sgrìobh do ainm +SING_PLAYER_COLOR=Tagh dath +SING_PLAYER_LEVEL=Tagh ìre +SING_PLAYER_AVATAR=Tagh do avatar + +OPTION_VALUE_EASY=Furasta +OPTION_VALUE_MEDIUM=Meadhanach +OPTION_VALUE_HARD=Doirbh + SING_OPTIONS=Roghainnean -SING_OPTIONS_DESC=Atharraich na roghainnean -SING_OPTIONS_WHEREAMI=Roghainnean SING_OPTIONS_GAME=Geama SING_OPTIONS_GRAPHICS=Grafaigeachd SING_OPTIONS_SOUND=Fuaim -SING_OPTIONS_INPUT=Ion-chur SING_OPTIONS_LYRICS=Faclan SING_OPTIONS_THEMES=Ùrlaran -SING_OPTIONS_RECORD=Clàradh +SING_OPTIONS_MICROPHONES=Clàradh SING_OPTIONS_ADVANCED=Adhartach +SING_OPTIONS_NETWORK=Eadar-lìon +SING_OPTIONS_WEBCAM=Camara-lìn +SING_OPTIONS_JUKEBOX=Inneal-chlàr SING_OPTIONS_EXIT=Air ais -SING_OPTIONS_GAME_WHEREAMI=Roghainnean a’ gheama -SING_OPTIONS_GAME_DESC=Roghainnean coitcheann a’ gheama -SING_OPTIONS_GAME_PLAYERS=Cluicheadairean -SING_OPTIONS_GAME_DIFFICULTY=Duilgheadas SING_OPTIONS_GAME_LANGUAGE=Cànan +SING_OPTIONS_GAME_SONGMENU=Clàr-taice nan òran SING_OPTIONS_GAME_TABS=Tabaichean SING_OPTIONS_GAME_SORTING=Seòrsachadh -SING_OPTIONS_GAME_DEBUG=Dì-bhugachadh +SING_OPTIONS_GAME_SHOWSCORES=Seall na sgòran +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Gnìomhaich gamepad + +OPTION_VALUE_ROULETTE=Roulette +OPTION_VALUE_CHESSBOARD=Clàr-taileisg +OPTION_VALUE_CAROUSEL=Timcheallan +OPTION_VALUE_SLOT_MACHINE=Inneal-cluiche +OPTION_VALUE_LIST=Liosta +OPTION_VALUE_MOSAIC=Tiotal + +OPTION_VALUE_ON=Air +OPTION_VALUE_OFF=Dheth + +OPTION_VALUE_EDITION=Deasachadh +OPTION_VALUE_GENRE=Gnè +OPTION_VALUE_LANGUAGE=Cànan +OPTION_VALUE_FOLDER=Pasgan +OPTION_VALUE_TITLE=Tiotal +OPTION_VALUE_ARTIST=Neach-ciùil +OPTION_VALUE_ARTIST2=Neach-ciùil 2 +OPTION_VALUE_YEAR=Bliadhna +OPTION_VALUE_DECADE=Deichead +OPTION_VALUE_PLAYLIST=Liosta-chluich + +OPTION_VALUE_WHEN_EXISTS=Nuair a bhios gin ann -SING_OPTIONS_GRAPHICS_WHEREAMI=Roghainnean na grafaigeachd -SING_OPTIONS_GRAPHICS_DESC=Roghainnean na grafaigeachd -SING_OPTIONS_GRAPHICS_RESOLUTION=Dùmhlachd-bhreacaidh SING_OPTIONS_GRAPHICS_FULLSCREEN=Làn-sgrìn -SING_OPTIONS_GRAPHICS_DEPTH=Doimhne +SING_OPTIONS_GRAPHICS_RESOLUTION=Dùmhlachd-bhreacaidh +SING_OPTIONS_GRAPHICS_SCREENFADE=Crìonadh na sgrìn +SING_OPTIONS_GRAPHICS_EFFECTSING=Èifeachdan seinne SING_OPTIONS_GRAPHICS_VISUALIZER=Fir chlis -;TODO: SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oscilloscope -SING_OPTIONS_GRAPHICS_LINEBONUS=Duais loidhne SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Meud an fhilm -SING_OPTIONS_SOUND_WHEREAMI=Roghainnean fuaime -SING_OPTIONS_SOUND_DESC=Roghainnean fuaime +OPTION_VALUE_BORDERLESS=Gun iomall + +OPTION_VALUE_WHENNOVIDEO=Mur eil video ann +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Mur eil video no dealbh ann + +OPTION_VALUE_HALF=Leth-mheud +OPTION_VALUE_FULL_VID=Làn-sgrìn (video) +OPTION_VALUE_FULL_VID_BG=Làn-sgrìn (cùlaibh ⁊ video) + SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Cluich a’ mhicreofon SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Ceòl a’ chùlaibh -SING_OPTIONS_SOUND_MIC_BOOST=Meudachadh a’ mhic SING_OPTIONS_SOUND_CLICK_ASSIST=Cuidiche cliog SING_OPTIONS_SOUND_BEAT_CLICK=Cliog nam buillean -SING_OPTIONS_SOUND_THRESHOLD=Stairsneach -SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Modh dà-chluicheadair SING_OPTIONS_SOUND_MUSICAUTOGAIN=Meudachadh a’ chiùil SING_OPTIONS_SOUND_PREVIEWVOLUME=Ro-sheall an àirde SING_OPTIONS_SOUND_PREVIEWFADING=Ro-sheall an crìonadh -SING_OPTIONS_INPUT_WHEREAMI=Roghainnean an ion-chuir -SING_OPTIONS_INPUT_DESC=Roghainnean an ion-chuir -SING_OPTIONS_INPUT_MOUSE=Luchag -SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Uidheaman-smachd +OPTION_VALUE_GAIN_SOFT=Bog +OPTION_VALUE_GAIN_MEDIUM=Meadhanach +OPTION_VALUE_GAIN_HARD=Cruaidh + +OPTION_VALUE_AUTO=Fèin-obrachail +OPTION_VALUE_SEC=Diog +OPTION_VALUE_SECS=diog(an) -SING_OPTIONS_LYRICS_WHEREAMI=Roghainnean nam faclan -SING_OPTIONS_LYRICS_DESC=Roghainnean nam faclan SING_OPTIONS_LYRICS_FONT=Cruth-clò SING_OPTIONS_LYRICS_EFFECT=Èifeachd -SING_OPTIONS_LYRICS_SOLMIZATION=Canntaireachd SING_OPTIONS_LYRICS_NOTELINES=Clàran -SING_OPTIONS_THEMES_WHEREAMI=Roghainnean nan ùrlaran -SING_OPTIONS_THEMES_DESC=Roghainnean nan ùrlaran ’s nan craicnean +;TODO: OPTION_VALUE_PLAIN=stylized +;TODO: OPTION_VALUE_OLINE1=with thin edge +;TODO: OPTION_VALUE_OLINE2=with thick edge + +OPTION_VALUE_SIMPLE=Simplidh +OPTION_VALUE_ZOOM=Sùm +OPTION_VALUE_SLIDE=Lìonadh +OPTION_VALUE_BALL=Bàla +OPTION_VALUE_SHIFT=Leum + SING_OPTIONS_THEMES_THEME=Ùrlar SING_OPTIONS_THEMES_SKIN=Craiceann SING_OPTIONS_THEMES_COLOR=Dath -SING_OPTIONS_RECORD_WHEREAMI=Roghainnean a’ chlàraidh -SING_OPTIONS_RECORD_DESC=Roghainnean a’ mhicreofon -SING_OPTIONS_RECORD_CARD=Cairt fuaime -SING_OPTIONS_RECORD_INPUT=Ion-chur -SING_OPTIONS_RECORD_CHANNEL=Seanail - -SING_OPTIONS_ADVANCED_WHEREAMI=Roghainnean adhartach -SING_OPTIONS_ADVANCED_DESC=Roghainnean adhartach -SING_OPTIONS_ADVANCED_EFFECTSING=Èifeachdan seinne -SING_OPTIONS_ADVANCED_SCREENFADE=Crìonadh na sgrìn -SING_OPTIONS_ADVANCED_LOADANIMATION=Luchdaich beòthachadh +SING_OPTIONS_MICROPHONES_CARD=Cairt fuaime +SING_OPTIONS_MICROPHONES_INPUT=Ion-chur +SING_OPTIONS_MICROPHONES_CHANNEL=Seanail +SING_OPTIONS_MICROPHONES_THRESHOLD=Stairsneach +SING_OPTIONS_MICROPHONES_MIC_BOOST=Meudachadh a’ mhic + +SING_OPTIONS_ADVANCED_DEBUG=Dì-bhugachadh +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Oscilloscope SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Ceistean dìonaidh -SING_OPTIONS_ADVANCED_LINEBONUS=Duais loidhne -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=Às dèidh òrain tagh SING_OPTIONS_ADVANCED_PARTYPOPUP=Fèin-chlàr-cèilidh +SING_OPTIONS_ADVANCED_TOPSCORES=Na sgòran as àirde +SING_OPTIONS_ADVANCED_SINGSCORES=Sgòran seinn + +OPTION_VALUE_ALL=Na h-uile +OPTION_VALUE_PLAYER=Cluicheadair + +SING_OPTIONS_NETWORK_INSERT_USER_INFO=Brùth air an iuchair “Insert” gus an cleachdaiche a chur ris an lìon seo… +SING_OPTIONS_NETWORK_WEBSITE=Làrach-lìn +SING_OPTIONS_NETWORK_USERNAME=Ainm-cleachdaiche +SING_OPTIONS_NETWORK_PASSWORD=Facal-faire +SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Cuir a-null an t-ainm +SING_OPTIONS_NETWORK_AUTO_MODE=Fèin-obrachail +SING_OPTIONS_NETWORK_AUTO_PLAYER=Cluicheadair +SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Cuir gu fèin-obrachail (furasta) +SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Cuir gu fèin-obrachail (meadhanach) +SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Cuir gu fèin-obrachail (doirbh) +SING_OPTIONS_NETWORK_NO_DLL=Cha deach clàr curaidh co-chòrdail a lorg! +SING_OPTIONS_NETWORK_DELETE_PLAYER=A bheil thu airson an cleachdaiche %0:s air an làrach-lìn %1:s a sguabadh ás? +SING_OPTIONS_NETWORK_LEGEND_INSERT=Cuir a-steach +SING_OPTIONS_NETWORK_LEGEND_DELETE=Sguab às + +OPTION_PLAYER_1=Cluicheadair 1 +OPTION_PLAYER_2=Cluicheadair 2 +OPTION_PLAYER_3=Cluicheadair 3 +OPTION_PLAYER_4=Cluicheadair 4 +OPTION_PLAYER_5=Cluicheadair 5 +OPTION_PLAYER_6=Cluicheadair 6 +OPTION_ALL_PLAYERS=Na h-uile +OPTION_ALL_SCORES=Na h-uile +OPTION_VALUE_SAVE=Sàbhail +OPTION_VALUE_SEND=Cuir a-null + +MSG_INSERT_USER_TITLE=%0:s +MSG_INSERT_USER_DESC=Lìon na raointean: +MSG_INSERT_USER_ADD=Cuir ris +MSG_INSERT_USER_CANCEL=Sguir dheth + +WEBSITE_NO_CONNECTION=Chan eil ceangal dhan làrach-lìn ann! +WEBSITE_LOGIN_ERROR=Chan eil an clàradh a-steach mar bu chòir! +WEBSITE_BLANK_LOGIN=Cha raon falamh ann! +WEBSITE_EXIST_USER=Tha an cleachdaiche seo ann mar-thà! +WEBSITE_ERROR_SCORE=Mearachd an sgòir! +WEBSITE_OK_SEND=Chaidh an sgòr a chur a-null! +WEBSITE_ERROR_SCORE_DUPLICATED=Tha an sgòr seo ann mar-thà! +WEBSITE_ERROR_SONG=Cha deach a t-òran a lorg! +WEBSITE_SAVE_SCORE=Chaidh an sgòr a shàbhaladh! +WEBSITE_NO_CONNECTION_SAVE=Chan eil ceangal dhan làrach-lìn ann! A bheil thu airson an chleachdaiche a shàbhaladh co-dhiù? + +SONG_MENU_REFRESH_SCORES=Ùraich na sgòran +SONG_MENU_REFRESH_SCORES_TITLE=Ùraich +SONG_MENU_REFRESH_SCORES_NO_WEB=Chan eil làrach-lìn ann! +SONG_MENU_REFRESH_SCORES_ONLINE=Air loidhne +SONG_MENU_REFRESH_SCORES_FILE=Faidhle +SONG_MENU_REFRESH_SCORES_ALL_WEB=A h-uile làrach-lìn +SONG_MENU_REFRESH_SCORES_ALL_SONGS=A h-uile òran +SONG_MENU_REFRESH_SCORES_ONLY_SONG=An t-òran seo +SONG_MENU_REFRESH_SCORES_REFRESH=Ùraich +SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Mearachd leis a’ cheangal dhan làrach-lìn: %0:s! +SONG_MENU_REFRESH_SCORES_ERROR_FILE=Cha deach am faidhle a lorg: “%0:s [Download Scores]”! -SING_EDIT=Deasaiche -SING_EDIT_MENU_DESCRIPTION=Cruthaich òran agad fhèin +SONG_SCORE_MAX=As fearr: +SONG_SCORE_MEDIA=Cuibheasach: -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Ion-phortaich teacsa o fhaidhle MIDI -SING_EDIT_BUTTON_DESCRIPTION_EXIT=Air ais -SING_EDIT_BUTTON_CONVERT=Ion-phortaich -SING_EDIT_BUTTON_EXIT=Air ais +SCORE_SEND_DESC=Cuir a-null an sgòr +SCORE_SEND=Cuir a-null +SCORE_SEND_PLAYER=Cluicheadair +SCORE_SEND_OTHER_USER=Ainm-cleachdaiche eile +SCORE_SAVE=Sàbhail + +SCORE_DOWNLOAD_TITLE=Luchdadh a-nuas +SCORE_DOWNLOAD_SONG=Òran: +SCORE_DOWNLOAD_CREATE_LIST=Ag ullachadh na liosta… +SCORE_DOWNLOAD_RECEIVE_LIST=’Ga luchdadh a-nuas… +SCORE_DOWNLOAD_CANCEL=Sguir dheth +SCORE_DOWNLOAD_OK=Ceart ma-thà +SCORE_DOWNLOAD_SONG_UPDATE=Chaidh %0:d òra(i)n atharrachadh leis an lìon! -SING_EDIT_NAVIGATE=Seòl -SING_EDIT_SELECT=Tagh -SING_EDIT_EXIT=Air ais +SING_OPTIONS_WEBCAM_ID=Camara-lìn +SING_OPTIONS_WEBCAM_RESOLUTION=Dùmhlachd-bhreacaidh +SING_OPTIONS_WEBCAM_FPS=FPS +SING_OPTIONS_WEBCAM_FLIP=Thoir flip +SING_OPTIONS_WEBCAM_BRIGHTNESS=Soilleireachd +SING_OPTIONS_WEBCAM_SATURATION=Sàthachd +SING_OPTIONS_WEBCAM_HUE=Tuar +SING_OPTIONS_WEBCAM_EFFECT=Èifeachd +;TODO: SING_OPTIONS_WEBCAM_PREVIEW=Activate preview + +SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Cuir an ro-shealladh an comas +SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Cuir an ro-shealladh à comas +SING_OPTIONS_WEBCAM_NO_WEBCAM=cha deach camara-lìn a lorg! +SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Àbhaisteach +SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Liath-sgèile +SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Dubh ⁊ geal +SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Neagataibh +SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Dealbh bìnearaidh +SING_OPTIONS_WEBCAM_EFFECT_DILATE=Sgaoil +SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Stairsneach +SING_OPTIONS_WEBCAM_EFFECT_EDGES=Oirean +SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Sgleò Gaussach +SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Co-chothromaichte +SING_OPTIONS_WEBCAM_EFFECT_ERODE=Bleith + +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Follaiseachd +JUKEBOX_SONGOPTIONS_LYRIC_LINE=Loidhne +JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Cruth +JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Dath +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Dearg +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Uaine +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Gorm + +JUKEBOX_SONGOPTIONS_VIDEO=Roghainnean video +JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Co-mheas deilbh +JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Leud +JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Àirde +JUKEBOX_SONGOPTIONS_LYRIC=Roghainnean nam faclan +JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Meud +JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Suidheachadh + +OPTION_VALUE_TO_SING=Seinn +OPTION_VALUE_ACTUAL=Ann an da-rìribh +OPTION_VALUE_NEXT=Air adhart +OPTION_VALUE_OTHER=Eile +OPTION_VALUE_FILL=Lìon +OPTION_VALUE_OUTLINE=Oir-loidhne +OPTION_VALUE_BLUE=Gorm +OPTION_VALUE_GREEN=Uaine +OPTION_VALUE_PINK=Pinc +OPTION_VALUE_RED=Dearg +OPTION_VALUE_VIOLET=Purpaidh +OPTION_VALUE_ORANGE=Orainds +OPTION_VALUE_YELLOW=Buidhe +OPTION_VALUE_BROWN=Donn +OPTION_VALUE_BLACK=Dubh +OPTION_VALUE_MAGENTA=Magenta +OPTION_VALUE_GRAY=Liath +OPTION_VALUE_WHITE=Geal +OPTION_VALUE_TURQUOISE=Tuirc-ghorm +OPTION_VALUE_SALMON=Dath a’ bhradain +OPTION_VALUE_GREENYELLOW=Uaine-buidhe +OPTION_VALUE_LAVENDER=Dath an lus-liath +OPTION_VALUE_BEIGE=Bèis +OPTION_VALUE_TEAL=Dath a’ chrann-lacha +OPTION_VALUE_ORCHID=Dath na mogairle +OPTION_VALUE_STEELBLUE=Gorm na stàilinne +OPTION_VALUE_PLUM=Dath a’ phlumais +OPTION_VALUE_CHOCOLATE=Donn an teòclaid +OPTION_VALUE_GOLD=Dath an òir +OPTION_VALUE_DARKBLUE=Dorch-ghorm +OPTION_VALUE_SKY=Gorm an speura +OPTION_VALUE_HARLEQUIN=Cleasaiche-fanaid +OPTION_VALUE_CYAN=Saidhean +OPTION_VALUE_FLAME=Lasair SING_LEGEND_SELECT=Tagh SING_LEGEND_NAVIGATE=Seòl SING_LEGEND_CONTINUE=Air adhart SING_LEGEND_ESC=Air ais -SING_PLAYER_DESC=Cuir a-steach ainmean nan cluicheadairean -SING_PLAYER_WHEREAMI=Ainmean nan cluicheadairean -SING_PLAYER_ENTER_NAME=Cuir a-steach ainm - -SING_DIFFICULTY_DESC=Tagh an duilgheadas -SING_DIFFICULTY_WHEREAMI=Duilgheadas -SING_DIFFICULTY_CONTINUE=Gu taghadh an òrain -SING_EASY=Furasta -SING_MEDIUM=Meadhanach -SING_HARD=Doirbh - -SING_SONG_SELECTION_DESC=Tagh an t-òran agad -SING_SONG_SELECTION_WHEREAMI=Taghadh an òrain -SING_SONG_SELECTION_GOTO=Rach gu … SING_SONG_SELECTION=Taghadh an òrain SING_SONG_SELECTION_MENU=Clàr-taice SING_SONG_SELECTION_PLAYLIST=Liosta-chluich +SING_SONG_IN_CAT=Òran SING_SONGS_IN_CAT=Òrain PLAYLIST_CATTEXT=Liosta-chluich: %s +SING_SONG_SELECTION_LEGEND_TITLE=Sgeulachd +SING_SONG_SELECTION_LEGEND_VIDEO=Bhidio +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Duet -SING_TIME=ÙINE SING_TOTAL=Iomlan SING_MODE=Seinn ’nad aonar SING_NOTES=Pongan @@ -255,8 +353,6 @@ IMPLODE_GLUE2=’s SONG_MENU_NAME_MAIN=Clàr-taice an òrain SONG_MENU_PLAY=Seinn SONG_MENU_CHANGEPLAYERS=Cluicheadairean eile -SONG_MENU_EDIT=Deasaich -SONG_MENU_MODI=Seinn modh SONG_MENU_CANCEL=Sguir dheth SONG_MENU_NAME_PLAYLIST=Clàr-taice @@ -289,13 +385,6 @@ SONG_MENU_NAME_PARTY_JOKER=Cleachd amadan SONG_JUMPTO_DESC=Lorg òran SONG_JUMPTO_TYPE_DESC=Lorg: -SONG_JUMPTO_TYPE1=Na h-uile -SONG_JUMPTO_TYPE2=Tiotal -SONG_JUMPTO_TYPE3=Neach-ciùil -SONG_JUMPTO_SONGSFOUND=Chaidh %d òra(i)n a lorg -SONG_JUMPTO_NOSONGSFOUND=Cha deach òran a lorg -SONG_JUMPTO_HELP=Sgrìobh an teacsa ri lorg -SONG_JUMPTO_CATTEXT=Lorg: %s PARTY_MODE=Modh cèilidh PARTY_DIFFICULTY=Duilgheadas @@ -313,25 +402,22 @@ PARTY_LEGEND_CONTINUE=Air adhart PARTY_OPTIONS_DESC=Roghainnean aig a’ gheama chèilidh PARTY_OPTIONS_WHEREAMI=Roghainnean cèilidh -PARTY_PLAYER_DESC=Cuir a-steach ainmean nan cluicheadairean ’s nan sgiobaidhean! -PARTY_PLAYER_WHEREAMI=Ainmean na cèilidh PARTY_PLAYER_ENTER_NAME=Sgrìobh ainmean - -PARTY_ROUNDS_DESC=Tagh na modhan a tha thu airson cluich -PARTY_ROUNDS_WHEREAMI=Cuairtean na cèilidh PARTY_ROUNDS_LEGEND_CONTINUE=Tòisich air geama cèilidh PARTY_ROUNDCOUNT=Cuairtean PARTY_SELECTMODE=Cuairt %d -PARTY_ROUND_DESC=Na h-ath-chluicheadairean dhan mhicreofon -PARTY_ROUND_WHEREAMI=Ath-chuairt na cèilidh PARTY_ROUND_LEGEND_CONTINUE=Tòisich a’ chuairt PARTY_SONG_WHEREAMI=Tagh òrain na cèilidh PARTY_SONG_LEGEND_CONTINUE=Seinn PARTY_SONG_MENU=Clàr-taice +OPTION_VALUE_SING=Seinn +OPTION_VALUE_SELECT_PLAYERS=Tagh cluicheadairean +OPTION_VALUE_OPEN_MENU=Fosgail an clàr-taice + PARTY_SCORE_DESC=Sgòr na cuairte mu dheireadh PARTY_SCORE_WHEREAMI=Puingean na cèilidh @@ -407,8 +493,6 @@ MODE_HARDCORE_NAME=Gaisgich MODE_HARDCORE_DESC=Strì airsona bhith trì loidhnichean air thoiseach a’ cho-fharpaisich! STAT_MAIN=Stadastaireachd -STAT_MAIN_DESC=Coitcheann -STAT_MAIN_WHEREAMI=Stadastaireachd STAT_OVERVIEW_INTRO=Stadastaireachd %0:s. \nAn t-ath-shuidheachadh mu dheireadh aig %2:.2d.%1:.2d.%3:d STAT_OVERVIEW_SONG=%0:d òrain (%3:d le video), %1:d dhiubh air an cluich roimhe is %2:d gun chluich fhathast.\n Is %5:s le %4:s an t-òran as fhèillmhoire. @@ -422,7 +506,7 @@ STAT_DETAIL_WHEREAMI=Stadastaireachd STAT_NEXT=An ath-dhuilleag STAT_PREV=An duilleag roimhpe STAT_REVERSE=Òrdugh contrarra -STAT_PAGE=Duilleag %0:d à %1:d\n(innteart %2:d à %3:d) +STAT_PAGE=Duilleag %0:d à %1:d \n Innteart %2:d à %3:d STAT_DESC_SCORES=Sgòran àrda STAT_DESC_SCORES_REVERSED=Sgòran ìosal @@ -440,119 +524,12 @@ STAT_DESC_BANDS=Còmhlanan fèillmhor STAT_DESC_BANDS_REVERSED=Còmhlanan nach do chòrd STAT_FORMAT_BANDS=%0:s \nChaidh a sheinn %1:d turas/tursan -SCREENSHOT_SAVED=Chaidh an glacadh-sgrìn a shàbhaladh -SCREENSHOT_FAILED=Cha b’ urrainn dhuinn an glacadh-sgrìn a shàbhaladh - -INFO_FILE_SAVED=Chaidh am faidhle a shàbhaladh -ERROR_SAVE_FILE_FAILED=Cha b’ urrainn dhuinn am faidhle a shàbhaladh -ERROR_FILE_NOT_FOUND=Cha deach am faidhle a lorg - -ENCODING_ERROR_ASK_FOR_UTF8=Cha ghabh na h-atharraichean a shàbhaladh leis a’ chòdachadh seo. A bheil thu airson iompachadh gu UTF-8? -EDITOR_ERROR_NO_TRACK_SELECTED=Cha deach traca a thaghadh - -MSG_ERROR_TITLE=Mearachd -MSG_INFO_TITLE=Fiosrachadh -MSG_QUESTION_TITLE=Ceist -MSG_QUIT_USDX=A bheil thu airson UltraStar fhàgail? -MSG_END_PARTY=A bheil thu airson am modh cèilidh fhàgail? - -ERROR_NO_SONGS=Cha deach òran a luchdadh -ERROR_NO_PLUGINS=Cha deach plugan a luchdadh -ERROR_NO_MODES_FOR_CURRENT_SETUP=Chan eil modh ri làimh airson an roghainn de chluicheadair/sgioba seo -ERROR_CAN_NOT_START_PARTY=Thachair mearachd le tòiseachadh a’ gheama chèilidh -ERROR_CORRUPT_SONG=Cha b’ urrainn dhuinn an t-òran a luchdadh. -ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Cha b’ urrainn dhuinn an t-òran a luchdadh: Cha deach am faidhle a lorg -ERROR_CORRUPT_SONG_NO_NOTES=Cha b’ urrainn dhuinn an t-òran a luchdadh: Cha deach pong a lorg -ERROR_CORRUPT_SONG_NO_BREAKS=Cha b’ urrainn dhuinn an t-òran a luchdadh: Cha deach brisidhean loidhne a lorg -ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Cha b’ urrainn dhuinn an t-òran a luchdadh: Mearachd e parsadh na loidhne %0:d -ERROR_NO_EDITOR=Chan eil an gleus seo ri làimh san tionndadh seo. -ERROR_PLAYER_DEVICE_ASSIGNMENT=Chaidh iomadh micreofon a shònrachadh dha chluicheadair %d. Feuch an toir thu sùil air na roghainnean clàraidh agad -ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Cha deach micreofon a shònrachadh dha chluicheadair %d. Feuch an toir thu sùil air na roghainnean clàraidh agad - -SING_OPTIONS_NETWORK=Eadar-lìon -SING_OPTIONS_NETWORK_WHEREAMI=Roghainnean an eadar-lìn -SING_OPTIONS_NETWORK_DESC=Roghainnean coitcheann an eadar-lìn -SING_OPTIONS_NETWORK_INSERT_USER_INFO=Brùth air an iuchair “Insert” gus an cleachdaiche a chur ris an lìon seo… -SING_OPTIONS_NETWORK_WEBSITE=Làrach-lìn -SING_OPTIONS_NETWORK_USERNAME=Ainm-cleachdaiche -SING_OPTIONS_NETWORK_PASSWORD=Facal-faire -SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Cuir a-null an t-ainm -SING_OPTIONS_NETWORK_AUTO_MODE=Fèin-obrachail -SING_OPTIONS_NETWORK_AUTO_PLAYER=Cluicheadair -SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Cuir gu fèin-obrachail (furasta) -SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Cuir gu fèin-obrachail (meadhanach) -SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Cuir gu fèin-obrachail (doirbh) -SING_OPTIONS_NETWORK_NO_DLL=Cha deach clàr curaidh co-chòrdail a lorg! -SING_OPTIONS_NETWORK_DELETE_PLAYER=A bheil thu airson an cleachdaiche %0:s air an làrach-lìn %1:s a sguabadh ás? -SING_OPTIONS_NETWORK_LEGEND_INSERT=Cuir a-steach -SING_OPTIONS_NETWORK_LEGEND_DELETE=Sguab às - -OPTION_PLAYER_1=Cluicheadair 1 -OPTION_PLAYER_2=Cluicheadair 2 -OPTION_PLAYER_3=Cluicheadair 3 -OPTION_PLAYER_4=Cluicheadair 4 -OPTION_PLAYER_5=Cluicheadair 5 -OPTION_PLAYER_6=Cluicheadair 6 -OPTION_ALL_PLAYERS=Na h-uile -OPTION_ALL_SCORES=Na h-uile -OPTION_VALUE_SAVE=Sàbhail -OPTION_VALUE_SEND=Cuir a-null - -MSG_INSERT_USER_TITLE=%0:s -MSG_INSERT_USER_DESC=Lìon na raointean: -MSG_INSERT_USER_ADD=Cuir ris -MSG_INSERT_USER_CANCEL=Sguir dheth - -WEBSITE_NO_CONNECTION=Chan eil ceangal dhan làrach-lìn ann! -WEBSITE_LOGIN_ERROR=Chan eil an clàradh a-steach mar bu chòir! -WEBSITE_BLANK_LOGIN=Cha raon falamh ann! -WEBSITE_EXIST_USER=Tha an cleachdaiche seo ann mar-thà! -WEBSITE_ERROR_SCORE=Mearachd an sgòir! -WEBSITE_OK_SEND=Chaidh an sgòr a chur a-null! -WEBSITE_ERROR_SCORE_DUPLICATED=Tha an sgòr seo ann mar-thà! -WEBSITE_ERROR_SONG=Cha deach a t-òran a lorg! -WEBSITE_SAVE_SCORE=Chaidh an sgòr a shàbhaladh! -WEBSITE_NO_CONNECTION_SAVE=Chan eil ceangal dhan làrach-lìn ann! A bheil thu airson an chleachdaiche a shàbhaladh co-dhiù? - -SONG_MENU_REFRESH_SCORES=Ùraich na sgòran -SONG_MENU_REFRESH_SCORES_TITLE=Ùraich -SONG_MENU_REFRESH_SCORES_NO_WEB=Chan eil làrach-lìn ann! -SONG_MENU_REFRESH_SCORES_ONLINE=Air loidhne -SONG_MENU_REFRESH_SCORES_FILE=Faidhle -SONG_MENU_REFRESH_SCORES_ALL_WEB=A h-uile làrach-lìn -SONG_MENU_REFRESH_SCORES_ALL_SONGS=A h-uile òran -SONG_MENU_REFRESH_SCORES_ONLY_SONG=An t-òran seo -SONG_MENU_REFRESH_SCORES_REFRESH=Ùraich -SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Mearachd leis a’ cheangal dhan làrach-lìn: %0:s! -SONG_MENU_REFRESH_SCORES_ERROR_FILE=Cha deach am faidhle a lorg: “%0:s [Download Scores]”! - -SONG_SCORE_MAX=As fearr: -SONG_SCORE_MEDIA=Cuibheasach: - -SCORE_SEND_DESC=Cuir a-null an sgòr -SCORE_SEND=Cuir a-null -SCORE_SEND_PLAYER=Cluicheadair -SCORE_SEND_OTHER_USER=Ainm-cleachdaiche eile -SCORE_SAVE=Sàbhail - -SCORE_DOWNLOAD_TITLE=Luchdadh a-nuas -SCORE_DOWNLOAD_SONG=Òran: -SCORE_DOWNLOAD_CREATE_LIST=Ag ullachadh na liosta… -SCORE_DOWNLOAD_RECEIVE_LIST=’Ga luchdadh a-nuas… -SCORE_DOWNLOAD_CANCEL=Sguir dheth -SCORE_DOWNLOAD_OK=Ceart ma-thà -SCORE_DOWNLOAD_SONG_UPDATE=Chaidh %0:d òra(i)n atharrachadh leis an lìon! - -SING_OPTIONS_GAME_SHOWSCORES=Seall na sgòran -OPTION_VALUE_WHEN_EXISTS=Nuair a bhios gin ann - PARTY_SELECT_MODE=Modh PARTY_MODE_CLASSIC=Clasaigeach PARTY_MODE_CLASSIC_FREE=Saor ’s clasaigeach PARTY_MODE_CHALLENGE=Dùbhlan PARTY_MODE_TOURNAMENT=Co-fharpais PARTY_MODE_JUKEBOX=Inneal-chlàr -PARTY_MODE_NOT_AVAILABLE=Chan eil seo ri fhaighinn! PARTY_MODE_TOURNAMENT_PLAYER_DESC=Cuir a-steach àireamh is ainm a’ chluicheadair PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Co mheud cluicheadair @@ -565,39 +542,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Na h-ath-chluicheadairean dhan mhicreofon PARTY_MODE_TOURNAMENT_WIN_DESC=Toradh na cuairte PARTY_MODE_TOURNAMENT_CHAMPION=Bhuannaich %0:s! -EDIT_TITLE=Tiotal: -EDIT_ARTIST=Neach-ciùil: -EDIT_MP3=MP3: -EDIT_BPM=BPM: -EDIT_GAP=Beàrn: -EDIT_COVER=Còmhdachadh: -EDIT_BACKGROUND=Cùlaibh: - -EDIT_START=Toiseach: -EDIT_DURATION=Faide: -EDIT_TONE=Pong: -EDIT_LYRIC=Faclan: -EDIT_VIDEOGAP=Beàrn a' video: -EDIT_VOLUME_AUDIO=Àirde na fuaime: -EDIT_VOLUME_MIDI=Àirde MIDI: -EDIT_VOLUME_CLICK=Àirde a’ chliog: -INFO_UNDO=Neo-dhèan an gnìomh mu dheireadh - -INFO_FILE_SAVED=Chaidh am faidhle a shàbhaladh -INFO_TIME_FIXED=Chaidh na tìmeachaidhean a cheartachadh -INFO_CAPITALIZE=Chaidh na faclan mòra is beaga a cheartachadh -INFO_EXIT=A bheil thu airson an deasaiche fhàgail gun a bhith ’ga shàbhaladh? -INFO_SONG_RELOADED=Chaidh an t-òran ath-luchdadh -INFO_DIVIDED_BPM=BPM roinnte -INFO_MULTIPLIED_BPM=BPM iomadaichte -INFO_PLAY_SONG=Cluich an t-òran -INFO_PLAY_SENTENCE=Cluich an seantans -INFO_CURRENT_LINE=Loidhne: -INFO_CURRENT_NOTE=An aire: - -INFO_MIDI_CHANNEL_OFF= Seanail %0:s dheth! -INFO_MIDI_CHANNEL_RESET=Tha gach seanail air! - MSG_END_JUKEBOX=A bheil thu airson modh an inneil-chlàr fhàgail? JUKEBOX_RANDOM=Air thuaiream JUKEBOX_REPEAT=Ath-chluich @@ -609,8 +553,6 @@ SING_ERROR_DUET_MODE_PARTY =Seo òran-càraid! Cha ghabh a chluich sa mhodh chè SONG_MENU_SONG=Òran SONG_MENU_MEDLEY=Measgachadh -SONG_MENU_SORTING=Seòrsaich -SONG_MENU_EXTRA=Roghainnean eile SONG_MENU_NAME_SONG=Clàr-taice nan òran SONG_MENU_NAME_MEDLEY=Clàr-taice a' mheasgachaidh @@ -626,33 +568,6 @@ SONG_MENU_SORTING_ALL=Na h-uile SONG_MENU_SORTING_DUET=Òrain-chàraid SONG_MENU_SORTING_APPLY=Cuir an sàs -SING_OPTIONS_WEBCAM=Camara-lìn -SING_OPTIONS_WEBCAM_DESC=Roghainnean a’ chamara-lìn -SING_OPTIONS_WEBCAM_WHEREAMI=Roghainnean a’ chamara-lìn -SING_OPTIONS_WEBCAM_ID=Camara-lìn -SING_OPTIONS_WEBCAM_RESOLUTION=Dùmhlachd-bhreacaidh -SING_OPTIONS_WEBCAM_FPS=FPS -SING_OPTIONS_WEBCAM_NO_WEBCAM=cha deach camara-lìn a lorg! -SING_OPTIONS_WEBCAM_FLIP=Thoir flip -SING_OPTIONS_WEBCAM_EFFECT=Èifeachd -SING_OPTIONS_WEBCAM_BRIGHTNESS=Soilleireachd -SING_OPTIONS_WEBCAM_SATURATION=Sàthachd -SING_OPTIONS_WEBCAM_HUE=Tuar -SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Cuir an ro-shealladh an comas -SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Cuir an ro-shealladh à comas - -SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Àbhaisteach -SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Liath-sgèile -SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Dubh ⁊ geal -SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Neagataibh -SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Dealbh bìnearaidh -SING_OPTIONS_WEBCAM_EFFECT_DILATE=Sgaoil -SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Stairsneach -SING_OPTIONS_WEBCAM_EFFECT_EDGES=Oirean -SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Sgleò Gaussach -SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Co-chothromaichte -SING_OPTIONS_WEBCAM_EFFECT_ERODE=Bleith - PARTY_PLAYLIST_MANUAL=Taghadh a làimh PARTY_MODE_JUKEBOX_NO_SONGS=Tha an liosta-chluich falamh! SONG_MENU_OPEN_CATEGORY=Fosgail roinn-seòrsa @@ -666,58 +581,6 @@ WEBSITE_NOT_EXIST_SONG=Chan eil an t-òran a’ buntainn ri làrach-lìn sam bit NAME_PLAYERS_COUNT=Co mheud cluicheadair NAME_CURRENT_PLAYER=Cluicheadair -SING_OPTIONS_GAME_SONGMENU=Clàr-taice nan òran -OPTION_VALUE_ROULETTE=Roulette -OPTION_VALUE_CHESSBOARD=Clàr-taileisg -OPTION_VALUE_CAROUSEL=Timcheallan -OPTION_VALUE_SLOT_MACHINE=Inneal-cluiche -OPTION_VALUE_LIST=Liosta -OPTION_VALUE_MOSAIC=Tiotal - -SING_OPTIONS_JUKEBOX=Inneal-chlàr -SING_OPTIONS_JUKEBOX_DESC=Bun-roghainnean an inneil-chlàr -SING_OPTIONS_JUKEBOX_WHEREAMI=Roghainnean an inneil-chlàr - -OPTION_VALUE_TO_SING=Seinn -OPTION_VALUE_ACTUAL=Ann an da-rìribh -OPTION_VALUE_NEXT=Air adhart -OPTION_VALUE_OTHER=Eile -OPTION_VALUE_FILL=Lìon -OPTION_VALUE_OUTLINE=Oir-loidhne -OPTION_VALUE_GRAY=Liath -OPTION_VALUE_WHITE=Geal -OPTION_VALUE_TURQUOISE=Tuirc-ghorm -OPTION_VALUE_SALMON=Dath a’ bhradain -OPTION_VALUE_GREENYELLOW=Uaine-buidhe -OPTION_VALUE_LAVENDER=Dath an lus-liath -OPTION_VALUE_BEIGE=Bèis -OPTION_VALUE_TEAL=Dath a’ chrann-lacha -OPTION_VALUE_ORCHID=Dath na mogairle -OPTION_VALUE_STEELBLUE=Gorm na stàilinne -OPTION_VALUE_PLUM=Dath a’ phlumais -OPTION_VALUE_CHOCOLATE=Donn an teòclaid -OPTION_VALUE_GOLD=Dath an òir -OPTION_VALUE_DARKBLUE=Dorch-ghorm -OPTION_VALUE_SKY=Gorm an speura -OPTION_VALUE_HARLEQUIN=Cleasaiche-fanaid -OPTION_VALUE_CYAN=Saidhean -OPTION_VALUE_FLAME=Lasair - -JUKEBOX_SONGOPTIONS_VIDEO=Roghainnean video -JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Co-mheas deilbh -JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Leud -JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Àirde -JUKEBOX_SONGOPTIONS_LYRIC=Roghainnean nam faclan -JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Meud -JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Suidheachadh -JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha -JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Dath -JUKEBOX_SONGOPTIONS_LYRIC_LINE=Loidhne -JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Cruth -JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Dearg -JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Uaine -JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Gorm - JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Sìn JUKEBOX_SONGOPTIONS_VIDEO_CROP=Bearr JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=Bogsa-litrichean @@ -727,24 +590,37 @@ JUKEBOX_SONGOPTIONS_CLOSE=Dùin JUKEBOX_SONGOPTIONS_DEFAULT=Bun-roghainn JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Chaidh a shàbhaladh! -SING_SONG_CREDITS=Urram -SING_JUKEBOX=Inneal-chlàr -SING_JUKEBOX_DESC=Èist ris a’ chruinneachadh agam JUKEBOX_MODE=Modh an inneil-chlàr -JUKEBOX_OPTIONS_DESC=Roghainnean na liosta-cluich -JUKEBOX_OPTIONS_WHEREAMI=Roghainnean an inneil-chlàr JUKEBOX_OPTIONS_PLAYLIST=Liosta-chluich JUKEBOX_OPTIONS_PLAYLIST_MODE=Modh -SING_OPTIONS_ADVANCED_SINGSCORES=Sgòran seinn -SING_OPTIONS_ADVANCED_TOPSCORES=Na sgòran as àirde -OPTION_VALUE_ALL=Na h-uile -OPTION_VALUE_PLAYER=Cluicheadair - -SING_ABOUT=Mu dhèidhinn -SING_ABOUT_DESC=Mu Ultrastar Deluxe ABOUT_MAIN=Mu dhèidhinn… -ABOUT_MAIN_DESC=Ultrastar Deluxe -ABOUT_MAIN_WHEREAMI=Mu dhèidhinn… -ABOUT_USDX_CREDITS=Urram -ABOUT_OVERVIEW=’S e geama karaoke saor is OpenSource airson PC a th’ ann an UltraStar Deluxe. Tha cluiche a’ gheama coltach ris a’ bhathar choimeirsealta SingStar™ le Sony Computer Entertainment nach fhaighear ach air Playstation®. Co-dhiù, leigidh UltraStar Deluxe leis an luchd-cleachdaidh na h-òrain aca fhèin a chruthachadh agus a’ seinn air a’ PC aca, rud nach gabh dèanamh le SingStar™.\nOn a dh’fhoillsich sinn am bun-tùs, ’s urrainn dhut an geama a ghnàthachadh gu tur a-rèir do mhiann, d’ ùidhean is nam feumalachdan agad.\nGu sònraichte, faodaidh tu am bathar atharrachadh mar a thogras tu.\n\nCruthaich na h-ùrlaran agad fhèin no luchdaich a-nuas susbaint on choimhearsnachd, can plugain, òrain shaora no bloighean còd airson gleusan leudaichte.\nSa mhodh chèilidh, ’s urrainn do suas ri dusan cluicheadair na h-òrain as fhearr leibh a sheinn còmhla feuch cò gheibh barrachd puingean na càch, a-rèir gleus a’ ghutha agus ruitheam na seinne. +ABOUT_USDX_DEVELOPEDBY=Leasaichte le +;TODO: ABOUT_CHECK_CHECKING=Checking for new updates... +;TODO: ABOUT_CHECK_AVAILABLE=There is a new version available +;TODO: ABOUT_CHECK_UPTODATE=WorldParty is up to date +;TODO: ABOUT_CHECK_CONNECTION=There is no Internet connection +;TODO: ABOUT_OVERVIEW=Discover a new way of singing, alone, in couple, or with friends. \n Fun is guaranteed.\n\nWorldParty is a fork of the original version Ultrastar Deluxe 1.1 designed and developed by UltraStar España Team, it counts with the biggest karaoke community.\n\n\nThis program is free and libre under the GPL license. \n\n Visit us for more information.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Leasaichte le +DEVELOPERS_OVERVIEW=Daoine a tha air cur ris a 'phròiseact seo:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Tadhail oirnne airson barrachd fiosrachaidh.\n\nhttps://ultrastar-es.org + +SCREENSHOT_SAVED=Chaidh an glacadh-sgrìn a shàbhaladh +SCREENSHOT_FAILED=Cha b’ urrainn dhuinn an glacadh-sgrìn a shàbhaladh + +MSG_ERROR_TITLE=Mearachd +MSG_INFO_TITLE=Fiosrachadh +MSG_QUESTION_TITLE=Ceist +MSG_QUIT_USDX=A bheil thu airson UltraStar fhàgail? +MSG_END_PARTY=A bheil thu airson am modh cèilidh fhàgail? + +ERROR_NO_SONGS=Cha deach òran a luchdadh +ERROR_NO_PLUGINS=Cha deach plugan a luchdadh +ERROR_LOADING_SONGS=Wait for loading all the songs +ERROR_CORRUPT_SONG=Cha b’ urrainn dhuinn an t-òran a luchdadh. +ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Cha b’ urrainn dhuinn an t-òran a luchdadh: Cha deach am faidhle a lorg +ERROR_CORRUPT_SONG_NO_NOTES=Cha b’ urrainn dhuinn an t-òran a luchdadh: Cha deach pong a lorg +ERROR_CORRUPT_SONG_NO_BREAKS=Cha b’ urrainn dhuinn an t-òran a luchdadh: Cha deach brisidhean loidhne a lorg +ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Cha b’ urrainn dhuinn an t-òran a luchdadh: Mearachd e parsadh na loidhne %0:d +ERROR_PLAYER_DEVICE_ASSIGNMENT=Chaidh iomadh micreofon a shònrachadh dha chluicheadair %d. Thoir sùil air na roghainnean microfòn agad +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Cha deach micreofon a shònrachadh dha chluicheadair %d. Thoir sùil air na roghainnean microfòn agad \ No newline at end of file diff --git a/game/languages/Hrvatski.ini b/game/languages/Hrvatski.ini index ff911529..f71e9240 100644 --- a/game/languages/Hrvatski.ini +++ b/game/languages/Hrvatski.ini @@ -5,25 +5,25 @@ OPTION_VALUE_EASY=Lako OPTION_VALUE_MEDIUM=Srednje OPTION_VALUE_HARD=Teško -;TODO: OPTION_VALUE_ON=On -;TODO: OPTION_VALUE_OFF=Off +OPTION_VALUE_ON=Na +OPTION_VALUE_OFF=Od -;TODO: OPTION_VALUE_EDITION=Edition -;TODO: OPTION_VALUE_GENRE=Genre +OPTION_VALUE_EDITION=Izdanje +OPTION_VALUE_GENRE=Žanr OPTION_VALUE_LANGUAGE=Jezik OPTION_VALUE_FOLDER=Folder OPTION_VALUE_TITLE=Naslov OPTION_VALUE_ARTIST=Izvođač -;TODO: OPTION_VALUE_TITLE2=Title2 -;TODO: OPTION_VALUE_ARTIST2=Artist2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade +OPTION_VALUE_TITLE2=Naslov2 +OPTION_VALUE_ARTIST2=Izvođač2 +OPTION_VALUE_YEAR=Godina +OPTION_VALUE_DECADE=Desetljeće OPTION_VALUE_PLAYLIST=Playliste -;TODO: OPTION_VALUE_BORDERLESS=Borderless +OPTION_VALUE_BORDERLESS=Maksimizirati -;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +OPTION_VALUE_WHENNOVIDEO=Kada nema videozapisa +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Kada nema videozapisa i slika ;TODO: OPTION_VALUE_SMALL=Small ;TODO: OPTION_VALUE_BIG=Big @@ -40,9 +40,9 @@ OPTION_VALUE_PLAYLIST=Playliste ;TODO: OPTION_VALUE_SEC=Second ;TODO: OPTION_VALUE_SECS=Seconds -;TODO: OPTION_VALUE_PLAIN=Plain -;TODO: OPTION_VALUE_OLINE1=OLine1 -;TODO: OPTION_VALUE_OLINE2=OLine2 +;TODO: OPTION_VALUE_PLAIN=Stylized +;TODO: OPTION_VALUE_OLINE1=With thin edge +;TODO: OPTION_VALUE_OLINE2=With thick edge ;TODO: OPTION_VALUE_SIMPLE=Simple ;TODO: OPTION_VALUE_ZOOM=Zoom @@ -54,176 +54,160 @@ OPTION_VALUE_PLAYLIST=Playliste ;TODO: OPTION_VALUE_JAPAN=Japan ;TODO: OPTION_VALUE_AMERICAN=American -;TODO: OPTION_VALUE_BLUE=Blue -;TODO: OPTION_VALUE_GREEN=Green -;TODO: OPTION_VALUE_PINK=Pink -;TODO: OPTION_VALUE_RED=Red -;TODO: OPTION_VALUE_VIOLET=Violet +OPTION_VALUE_BLUE=Plava +OPTION_VALUE_GREEN=Zelena +OPTION_VALUE_PINK=Ružičasta +OPTION_VALUE_RED=Crvena +OPTION_VALUE_VIOLET=Ljubičasta ;TODO: OPTION_VALUE_ORANGE=Orange -;TODO: OPTION_VALUE_YELLOW=Yellow -;TODO: OPTION_VALUE_BROWN=Brown -;TODO: OPTION_VALUE_BLACK=Black +OPTION_VALUE_YELLOW=Žuta boja +OPTION_VALUE_BROWN=Smeđ +OPTION_VALUE_BLACK=Crno -OPTION_VALUE_SING=pjevaj -;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players -;TODO: OPTION_VALUE_OPEN_MENU=Open Menu - -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor -;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor +OPTION_VALUE_SING=Pjevaj +OPTION_VALUE_SELECT_PLAYERS=Odaberite Igrači +OPTION_VALUE_OPEN_MENU=Otvorite izbornik SING_LOADING=Učitavanje... +SING_LOADING_SONGS=Učitavanje pjesama u mapi %s SING_CHOOSE_MODE=Izaberi način igre -SING_SING=pjevaj -SING_SING_DESC=brza igra: pjevaj solo ili duet - -SING_MULTI=party -SING_MULTI_DESC=pjevaj u party mode-u +SING_SING=Pjevaj +SING_SING_DESC=Brza igra: pjevaj solo ili duet -SING_TOOLS=alati +SING_MULTI=Party +SING_MULTI_DESC=Pjevaj u party mode-u -SING_STATS=statistika -SING_STATS_DESC=pogledaj statistiku +SING_TOOLS=Alati -SING_EDITOR=editor -SING_EDITOR_DESC=napravi svoje pjesme +SING_STATS=Statistika +SING_STATS_DESC=Pogledaj statistiku -SING_GAME_OPTIONS=opcije igre -SING_GAME_OPTIONS_DESC=promijeni postavke +SING_GAME_OPTIONS=Opcije igre +SING_GAME_OPTIONS_DESC=Promijeni postavke -SING_EXIT=izlaz -SING_EXIT_DESC=izlaz iz igre +SING_EXIT=Izlaz +SING_EXIT_DESC=Izlaz iz igre -SING_OPTIONS=opcije -SING_OPTIONS_DESC=promijeni postavke +SING_OPTIONS=Opcije +SING_OPTIONS_DESC=Promijeni postavke SING_OPTIONS_WHEREAMI=Opcije -SING_OPTIONS_GAME=igra -SING_OPTIONS_GRAPHICS=video -SING_OPTIONS_SOUND=audio -;TODO: SING_OPTIONS_INPUT=Input -SING_OPTIONS_LYRICS=tekstovi -SING_OPTIONS_THEMES=teme -SING_OPTIONS_RECORD=snimanje -SING_OPTIONS_ADVANCED=ostalo -SING_OPTIONS_EXIT=natrag +SING_OPTIONS_GAME=Igra +SING_OPTIONS_GRAPHICS=Video +SING_OPTIONS_SOUND=Audio +SING_OPTIONS_LYRICS=Tekstovi +SING_OPTIONS_THEMES=Teme +SING_OPTIONS_MICROPHONES=Snimanje +SING_OPTIONS_ADVANCED=Ostalo +SING_OPTIONS_EXIT=Natrag SING_OPTIONS_GAME_WHEREAMI=Opcije Igre -SING_OPTIONS_GAME_DESC=osnovne opcije igre +SING_OPTIONS_GAME_DESC=Osnovne opcije igre SING_OPTIONS_GAME_PLAYERS=Br. igrača SING_OPTIONS_GAME_DIFFICULTY=Težina SING_OPTIONS_GAME_LANGUAGE=Jezik SING_OPTIONS_GAME_TABS=Tabovi SING_OPTIONS_GAME_SORTING=Sortiranje -SING_OPTIONS_GAME_DEBUG=Debug +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Aktivirajte gamepad SING_OPTIONS_GRAPHICS_WHEREAMI=Opcije Videa -SING_OPTIONS_GRAPHICS_DESC=video opcije +SING_OPTIONS_GRAPHICS_DESC=Video opcije SING_OPTIONS_GRAPHICS_RESOLUTION=Rezolucija SING_OPTIONS_GRAPHICS_FULLSCREEN=Cijeli ekran -SING_OPTIONS_GRAPHICS_DEPTH=Dubina boja +SING_OPTIONS_GRAPHICS_EFFECTSING=Efekti kod pjevanja +SING_OPTIONS_GRAPHICS_SCREENFADE=Fade-out ekrana +SING_OPTIONS_GRAPHICS_LOADANIMATION=Anim. tijekom učit. SING_OPTIONS_GRAPHICS_VISUALIZER=Vizualizacije -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Osciloskop SING_OPTIONS_GRAPHICS_LINEBONUS=Bonus linije SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Veličina videa SING_OPTIONS_SOUND_WHEREAMI=Opcije Zvuka -SING_OPTIONS_SOUND_DESC=postavke zvuka +SING_OPTIONS_SOUND_DESC=Postavke zvuka SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Microphone Playback SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Pozadinska glazba -SING_OPTIONS_SOUND_MIC_BOOST=Mic boost SING_OPTIONS_SOUND_CLICK_ASSIST=Pomoć klikovima SING_OPTIONS_SOUND_BEAT_CLICK=Klik na udarce -SING_OPTIONS_SOUND_THRESHOLD=Threshold SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Igra za dva igrača ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Glasnoća prikaza SING_OPTIONS_SOUND_PREVIEWFADING=Fade-in vrijeme -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - SING_OPTIONS_LYRICS_WHEREAMI=Opcije Tekstova -SING_OPTIONS_LYRICS_DESC=postavke tekstova +SING_OPTIONS_LYRICS_DESC=Postavke tekstova SING_OPTIONS_LYRICS_FONT=Font SING_OPTIONS_LYRICS_EFFECT=Efekt SING_OPTIONS_LYRICS_SOLMIZATION=Solmizacija SING_OPTIONS_LYRICS_NOTELINES=Crtovlje SING_OPTIONS_THEMES_WHEREAMI=Opcije Tema -SING_OPTIONS_THEMES_DESC=postavke tema i skinova +SING_OPTIONS_THEMES_DESC=Postavke tema i skinova SING_OPTIONS_THEMES_THEME=Tema SING_OPTIONS_THEMES_SKIN=Skin SING_OPTIONS_THEMES_COLOR=Boja -SING_OPTIONS_RECORD_WHEREAMI=Opcije Snimanja -SING_OPTIONS_RECORD_DESC=postavke mikrofona -SING_OPTIONS_RECORD_CARD=Zv. kartica -SING_OPTIONS_RECORD_INPUT=Ulaz -SING_OPTIONS_RECORD_CHANNEL=Kanal +SING_OPTIONS_MICROPHONES_WHEREAMI=Opcije Snimanja +SING_OPTIONS_MICROPHONES_DESC=Postavke mikrofona +SING_OPTIONS_MICROPHONES_CARD=Zv. kartica +SING_OPTIONS_MICROPHONES_INPUT=Ulaz +SING_OPTIONS_MICROPHONES_CHANNEL=Kanal +SING_OPTIONS_MICROPHONES_THRESHOLD=Threshold +SING_OPTIONS_MICROPHONES_MIC_BOOST=Mic boost SING_OPTIONS_ADVANCED_WHEREAMI=Ostale Opcije -SING_OPTIONS_ADVANCED_DESC=ostale postavke -SING_OPTIONS_ADVANCED_EFFECTSING=Efekti kod pjevanja -SING_OPTIONS_ADVANCED_SCREENFADE=Fade-out ekrana -SING_OPTIONS_ADVANCED_LOADANIMATION=Anim. tijekom učit. +SING_OPTIONS_ADVANCED_DESC=Ostale postavke +SING_OPTIONS_ADVANCED_DEBUG=Debug +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Osciloskop SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Sigurn. pitanja SING_OPTIONS_ADVANCED_LINEBONUS=Bonus linije -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=Nakon pjesme SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto party meni -SING_EDIT=Editor -SING_EDIT_MENU_DESCRIPTION=napravi svoje pjesme - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Učitaj tekst iz midi datoteke -SING_EDIT_BUTTON_DESCRIPTION_EXIT=natrag -SING_EDIT_BUTTON_CONVERT=Učitaj -SING_EDIT_BUTTON_EXIT=natrag - -SING_EDIT_NAVIGATE=upravljanje -SING_EDIT_SELECT=odaberi -SING_EDIT_EXIT=natrag - -SING_LEGEND_SELECT=odaberi -SING_LEGEND_NAVIGATE=navigacija -SING_LEGEND_CONTINUE=nastavi -SING_LEGEND_ESC=natrag - -SING_PLAYER_DESC=unesi ime igrača -SING_PLAYER_WHEREAMI=Imena igrača -SING_PLAYER_ENTER_NAME=unesi ime - -SING_DIFFICULTY_DESC=odaberi težinu +SING_LEGEND_SELECT=Odaberi +SING_LEGEND_NAVIGATE=Navigacija +SING_LEGEND_CONTINUE=Nastavi +SING_LEGEND_ESC=Natrag + +SING_PLAYER_TITLE=Profili +SING_PLAYER_READY=Igrači spremni za pjevanje +SING_PLAYER_COUNT=Broj igrača +SING_PLAYER_EDIT=Prilagodite igrač +SING_PLAYER_NAME=Napisati svoje ime +SING_PLAYER_COLOR=Odaberite boju +SING_PLAYER_LEVEL=Odaberite razinu +SING_PLAYER_AVATAR=Odaberite svoj avatar + +SING_DIFFICULTY_DESC=Odaberi težinu SING_DIFFICULTY_WHEREAMI=Težina -SING_DIFFICULTY_CONTINUE=odabir pjesme +SING_DIFFICULTY_CONTINUE=Odabir pjesme SING_EASY=Lako SING_MEDIUM=Srednje SING_HARD=Teško -SING_SONG_SELECTION_DESC=odaberi pjesmu +SING_SONG_SELECTION_DESC=Odaberi pjesmu SING_SONG_SELECTION_WHEREAMI=Odabir Pjesme -SING_SONG_SELECTION_GOTO=idi na .. -SING_SONG_SELECTION=odabir pjesme -SING_SONG_SELECTION_MENU=meni -SING_SONG_SELECTION_PLAYLIST=playlista +SING_SONG_SELECTION_GOTO=Idi na .. +SING_SONG_SELECTION=Odabir pjesme +SING_SONG_SELECTION_MENU=Meni +SING_SONG_SELECTION_PLAYLIST=Playlista +SING_SONG_IN_CAT=Pjesma SING_SONGS_IN_CAT=Pjesme PLAYLIST_CATTEXT=Playlista: %s - -;TODO: SING_TIME=TIME -SING_TOTAL=ukupno -SING_MODE=pjevaj solo -SING_NOTES=note -SING_GOLDEN_NOTES=zlatne note -SING_PHRASE_BONUS=bonus +SING_SONG_SELECTION_LEGEND_TITLE=Legenda +SING_SONG_SELECTION_LEGEND_VIDEO=Video +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Duet + +SING_TOTAL=Ukupno +SING_MODE=Pjevaj solo +SING_NOTES=Note +SING_GOLDEN_NOTES=Zlatne note +SING_PHRASE_BONUS=Bonus SING_MENU=Glavni Meni -SONG_SCORE=bodovi +SONG_SCORE=Bodovi SONG_SCORE_WHEREAMI=Rezultat SING_SCORE_TONE_DEAF=Bez sluha @@ -235,19 +219,19 @@ SING_SCORE_LEAD_SINGER=Vodeći pjevač SING_SCORE_SUPERSTAR=Superstar SING_SCORE_ULTRASTAR=Ultrastar -SING_TOP_5_CHARTS=top 5 Igrača -SING_TOP_5_CHARTS_WHEREAMI=top 5 -SING_TOP_5_CHARTS_CONTINUE=odabir pjesme -SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=switch difficulty +SING_TOP_5_CHARTS=Top 5 Igrača +SING_TOP_5_CHARTS_WHEREAMI=Top 5 +SING_TOP_5_CHARTS_CONTINUE=Odabir pjesme +SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Switch difficulty -POPUP_PERFECT=izvanredno! -POPUP_AWESOME=predivno! -POPUP_GREAT=odlično! -POPUP_GOOD=dobro! -POPUP_NOTBAD=nije loše! -POPUP_BAD=loše! -POPUP_POOR=jadno! -POPUP_AWFUL=grozno! +POPUP_PERFECT=Izvanredno! +POPUP_AWESOME=Predivno! +POPUP_GREAT=Odlično! +POPUP_GOOD=Dobro! +POPUP_NOTBAD=Nije loše! +POPUP_BAD=Loše! +POPUP_POOR=Jadno! +POPUP_AWFUL=Grozno! IMPLODE_GLUE1=, IMPLODE_GLUE2= i @@ -255,7 +239,6 @@ IMPLODE_GLUE2= i SONG_MENU_NAME_MAIN=Kolekcija pjesama SONG_MENU_PLAY=Pjevaj SONG_MENU_CHANGEPLAYERS=Promijeni igrače -SONG_MENU_EDIT=Uredi SONG_MENU_MODI=Pjevaj Modi SONG_MENU_CANCEL=Poništi @@ -264,8 +247,8 @@ SONG_MENU_PLAYLIST_ADD=Dodaj Pjesmu SONG_MENU_PLAYLIST_DEL=Izbriši Pjesmu SONG_MENU_NAME_PLAYLIST_ADD=Dodaj Pjesmu -SONG_MENU_PLAYLIST_ADD_NEW=na novu playlistu -SONG_MENU_PLAYLIST_ADD_EXISTING=na postojeću playlistu +SONG_MENU_PLAYLIST_ADD_NEW=Na novu playlistu +SONG_MENU_PLAYLIST_ADD_EXISTING=Na postojeću playlistu SONG_MENU_PLAYLIST_NOEXISTING=Nema playlisti. SONG_MENU_NAME_PLAYLIST_NEW=Nova Playlista @@ -277,17 +260,17 @@ SONG_MENU_YES=Da SONG_MENU_NO=Ne SONG_MENU_NAME_PLAYLIST_LOAD=Otvori Playlistu -SONG_MENU_PLAYLIST_LOAD=otvori -SONG_MENU_PLAYLIST_DELCURRENT=obriši trenutnu Playlistu +SONG_MENU_PLAYLIST_LOAD=Otvori +SONG_MENU_PLAYLIST_DELCURRENT=Obriši trenutnu Playlistu SONG_MENU_NAME_PLAYLIST_DEL=Stvarno obrisati? SONG_MENU_NAME_PARTY_MAIN=Party Meni SONG_MENU_JOKER=Joker -SONG_MENU_NAME_PARTY_JOKER=iskoristi joker +SONG_MENU_NAME_PARTY_JOKER=Iskoristi joker -SONG_JUMPTO_DESC=pretraži pjesme +SONG_JUMPTO_DESC=Pretraži pjesme SONG_JUMPTO_TYPE_DESC=Traži : SONG_JUMPTO_TYPE1=Sve SONG_JUMPTO_TYPE2=Naslov @@ -297,7 +280,7 @@ SONG_JUMPTO_NOSONGSFOUND=Niti jedna pjesma nije pronađena. SONG_JUMPTO_HELP=Unesi tekst koji želiš tražiti. SONG_JUMPTO_CATTEXT=Traži: %s -PARTY_MODE=party mod +PARTY_MODE=Party mod PARTY_DIFFICULTY=Težina PARTY_PLAYLIST=Playlist Mod PARTY_PLAYLIST_ALL=Sve pjesme @@ -308,46 +291,46 @@ PARTY_TEAMS_PLAYER1=Br. Igrača - Tim1 PARTY_TEAMS_PLAYER2=Br. Igrača - Tim2 PARTY_TEAMS_PLAYER3=Br. Igrača - Tim3 -PARTY_LEGEND_CONTINUE=nastavi +PARTY_LEGEND_CONTINUE=Nastavi -PARTY_OPTIONS_DESC=postavke za party igru +PARTY_OPTIONS_DESC=Postavke za party igru PARTY_OPTIONS_WHEREAMI=Party Opcije -PARTY_PLAYER_DESC=unesi imena timova i igrača! +PARTY_PLAYER_DESC=Unesi imena timova i igrača! PARTY_PLAYER_WHEREAMI=Party Imena -PARTY_PLAYER_ENTER_NAME=unesi imena +PARTY_PLAYER_ENTER_NAME=Unesi imena -;TODO: PARTY_ROUNDS_DESC=Select which modes you want to play +PARTY_ROUNDS_DESC=Odaberite koji način rada želite reproducirati ;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds -PARTY_ROUNDS_LEGEND_CONTINUE=započni party-igru -;TODO: PARTY_ROUNDCOUNT=Number of rounds -;TODO: PARTY_SELECTMODE=Round %d +PARTY_ROUNDS_LEGEND_CONTINUE=Započni party-igru +PARTY_ROUNDCOUNT=Broj krugova +PARTY_SELECTMODE=Krug %d -PARTY_ROUND_DESC=sljed. igrači za mikr. +PARTY_ROUND_DESC=Sljed. igrači za mikr. PARTY_ROUND_WHEREAMI=Party Sljed runda -PARTY_ROUND_LEGEND_CONTINUE=započni rundu +PARTY_ROUND_LEGEND_CONTINUE=Započni rundu PARTY_SONG_WHEREAMI=Party Odabir pjesme -PARTY_SONG_LEGEND_CONTINUE=pjevaj -PARTY_SONG_MENU=party meni +PARTY_SONG_LEGEND_CONTINUE=Pjevaj +PARTY_SONG_MENU=Party meni -PARTY_SCORE_DESC=bodovi zadnje runde +PARTY_SCORE_DESC=Bodovi zadnje runde PARTY_SCORE_WHEREAMI=Party Bodovi -PARTY_WIN_DESC=pobjednik party igre +PARTY_WIN_DESC=Pobjednik party igre PARTY_WIN_WHEREAMI=Party Pobjednik -PARTY_WIN_LEGEND_CONTINUE=natrag na glavni meni +PARTY_WIN_LEGEND_CONTINUE=Natrag na glavni meni PARTY_ROUND=Runda PARTY_ROUND_WINNER=Pobjednik -PARTY_NOTPLAYEDYET=nije još odigr. -PARTY_NOBODY=nitko ni +PARTY_NOTPLAYEDYET=Nije još odigr. +PARTY_NOBODY=Nitko ni NEXT_ROUND=Sljed. runda: PARTY_DISMISSED=Izbacen! PARTY_SCORE_WINS=%s je -PARTY_SCORE_WINS2=pobijedio! +PARTY_SCORE_WINS2=Pobijedio! ;TODO: MODE_RANDOM_NAME=Random Mode ;TODO: MODE_RANDOM_DESC=Keep yourself on your toes! The game will select a mode for you at random! @@ -422,7 +405,7 @@ STAT_DETAIL_WHEREAMI=Detaljna statistika STAT_NEXT=Sljed. strana STAT_PREV=Preth. strana STAT_REVERSE=Obrnuti redoslijed -STAT_PAGE=Strana %0:d od %1:d\n (%2:d od %3:d unosa) +STAT_PAGE=Strana %0:d od %1:d \n Unosa %2:d od %3:d STAT_DESC_SCORES=HighScores STAT_DESC_SCORES_REVERSED=LowScores @@ -448,7 +431,6 @@ STAT_FORMAT_BANDS=%0:s \n %1:dx otpjevano ;TODO: ERROR_FILE_NOT_FOUND=File not found ;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? -;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected MSG_ERROR_TITLE=Greška ;TODO: MSG_INFO_TITLE=Information @@ -465,38 +447,37 @@ ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Pjesma se ne može učitati: Datoteka nije na ERROR_CORRUPT_SONG_NO_NOTES=Pjesma se ne može učitati: Nije nađena niti jedna nota ERROR_CORRUPT_SONG_NO_BREAKS=Pjesma se ne može učitati: Nije nađen niti jedan 'linebreak' ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Pjesma se ne može učitati: Greška u obradi linije %0:d -;TODO: ERROR_NO_EDITOR=This feature is not available on this version. -;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options -;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options +ERROR_PLAYER_DEVICE_ASSIGNMENT=Igrač %d je dodijeljen više mikrofona. Provjerite opcije mikrofona +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Igrač %d nije dodijeljen mikrofonu. Provjerite opcije mikrofona -;TODO: SING_OPTIONS_NETWORK=Internet -;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options +SING_OPTIONS_NETWORK=Internet +SING_OPTIONS_NETWORK_WHEREAMI=Internet opcije ;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings ;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... ;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password +SING_OPTIONS_NETWORK_USERNAME=Korisničko ime +SING_OPTIONS_NETWORK_PASSWORD=Lozinka ;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name ;TODO: SING_OPTIONS_NETWORK_AUTO_MODE=Auto -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player +SING_OPTIONS_NETWORK_AUTO_PLAYER=Igrač ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) ;TODO: SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! ;TODO: SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? ;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert -;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete - -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 +SING_OPTIONS_NETWORK_LEGEND_DELETE=Izbrisati + +OPTION_PLAYER_1=Igrač 1 +OPTION_PLAYER_2=Igrač 2 +OPTION_PLAYER_3=Igrač 3 +OPTION_PLAYER_4=Igrač 4 +OPTION_PLAYER_5=Igrač 5 +OPTION_PLAYER_6=Igrač 6 OPTION_ALL_PLAYERS=Sve OPTION_ALL_SCORES=Sve -;TODO: OPTION_VALUE_SAVE=Save -;TODO: OPTION_VALUE_SEND=Send +OPTION_VALUE_SAVE=Uštedjeti +OPTION_VALUE_SEND=Poslati ;TODO: MSG_INSERT_USER_TITLE=%0:s ;TODO: MSG_INSERT_USER_DESC=Fill the fields: @@ -526,12 +507,12 @@ MSG_INSERT_USER_CANCEL=Poništi ;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! ;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! -;TODO: SONG_SCORE_MAX=Best: +SONG_SCORE_MAX=Najbolje: ;TODO: SONG_SCORE_MEDIA=Average: ;TODO: SCORE_SEND_DESC=Send Score ;TODO: SCORE_SEND=Send -;TODO: SCORE_SEND_PLAYER=Player +SCORE_SEND_PLAYER=Igrač ;TODO: SCORE_SEND_OTHER_USER= Other Username ;TODO: SCORE_SAVE=Save @@ -561,39 +542,10 @@ SCORE_DOWNLOAD_CANCEL=Poništi ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Semifinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Quarterfinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL=Round of 16 -PARTY_MODE_TOURNAMENT_ROUNDS_DESC=sljed. igrači za mikr. +PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Sljed. igrači za mikr. ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -;TODO: INFO_FILE_SAVED=File saved -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: ;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! ;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! @@ -609,8 +561,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=sljed. igrači za mikr. ;TODO: SONG_MENU_SONG=Song ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Playliste ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -638,6 +588,7 @@ SING_OPTIONS_WEBCAM_EFFECT=Efekt ;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness ;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation ;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +;TODO: SING_OPTIONS_WEBCAM_PREVIEW=Activate preview ;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview ;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview @@ -663,24 +614,24 @@ SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Threshold ;TODO: WEBSITE_EXIST_SONG=The song belongs to the website: %0:s ;TODO: WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! -;TODO: NAME_PLAYERS_COUNT=Number of Players -;TODO: NAME_CURRENT_PLAYER=Player +NAME_PLAYERS_COUNT=Broj igrača +NAME_CURRENT_PLAYER=Igrač SING_OPTIONS_GAME_SONGMENU=Playliste -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine +OPTION_VALUE_ROULETTE=Roulet +OPTION_VALUE_CHESSBOARD=šahovska tabla +OPTION_VALUE_CAROUSEL=Karusel +OPTION_VALUE_SLOT_MACHINE=Automat za kockanje ;TODO: OPTION_VALUE_LIST=List -;TODO: OPTION_VALUE_MOSAIC=Tile +OPTION_VALUE_MOSAIC=Pločica ;TODO: SING_OPTIONS_JUKEBOX=Jukebox ;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox ;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options -OPTION_VALUE_TO_SING=pjevaj -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next +OPTION_VALUE_TO_SING=Pjevaj +OPTION_VALUE_ACTUAL=Gornji +;TODO: OPTION_VALUE_NEXT=Dno ;TODO: OPTION_VALUE_OTHER=Other ;TODO: OPTION_VALUE_FILL=Fill ;TODO: OPTION_VALUE_OUTLINE=Outline @@ -710,13 +661,13 @@ OPTION_VALUE_TO_SING=pjevaj ;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Prozirnost JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Boja -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line +JUKEBOX_SONGOPTIONS_LYRIC_LINE=Crta ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Red -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Green -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blue +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Crvena +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Zelena +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Plava ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop @@ -727,7 +678,7 @@ JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Boja ;TODO: JUKEBOX_SONGOPTIONS_DEFAULT=Default ;TODO: JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Saved! -;TODO: SING_SONG_CREDITS=Credits +SING_SONG_CREDITS=Krediti ;TODO: SING_JUKEBOX=Jukebox ;TODO: SING_JUKEBOX_DESC=Listen to my collection ;TODO: JUKEBOX_MODE=Jukebox Mode @@ -739,12 +690,17 @@ JUKEBOX_OPTIONS_PLAYLIST=Playliste ;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing ;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores OPTION_VALUE_ALL=Sve -;TODO: OPTION_VALUE_PLAYER=Player - -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +OPTION_VALUE_PLAYER=Igrač + +SING_ABOUT=Oko +SING_ABOUT_DESC=Oko Ultrastar Deluxe WorldParty +ABOUT_MAIN=Oko... +ABOUT_USDX_DEVELOPEDBY=Razvijen od +;TODO: ABOUT_CHECK_CHECKING=Checking for new updates... +;TODO: ABOUT_CHECK_AVAILABLE=There is a new version available +;TODO: ABOUT_CHECK_UPTODATE=WorldParty is up to date +;TODO: ABOUT_CHECK_CONNECTION=There is no Internet connection +ABOUT_OVERVIEW=Otkrijte novi način pjevanja, sam, u paru ili s prijateljima. \n Zabava je zajamčena.\n\nWorldParty je fork izvorne verzije Ultrastar Deluxe 1.1 dizajniran i razvijen od strane UltraStar España tima, to broji s najvećom karaoke zajednice.\n\n\nOvaj je program besplatan i libre pod GPL licencom. \n\n Posjetite nas za više informacija.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Razvijen od +DEVELOPERS_OVERVIEW=Ljudi koji su pridonijeli ovom projektu:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Posjetite nas za više informacija.\n\nhttps://ultrastar-es.org diff --git a/game/languages/Italiano.ini b/game/languages/Italiano.ini index e72e8b87..3706c8df 100644 --- a/game/languages/Italiano.ini +++ b/game/languages/Italiano.ini @@ -1,48 +1,126 @@ [Text] LANGUAGE=Italiano +SING_LOADING=Caricamento... +SING_LOADING_SONGS=Caricamento di canzoni dalla cartella %s + +SING_SING=Canta +SING_SING_DESC=Gara veloce: Solista o duetto + +SING_MULTI=Modalità party +SING_MULTI_DESC=Canta in modalità party + +SING_JUKEBOX=Jukebox +SING_JUKEBOX_DESC=Ascolta le mie canzoni + +SING_STATS=Statistiche +SING_STATS_DESC=Guarda le statistiche + +SING_GAME_OPTIONS=Impostazioni +SING_GAME_OPTIONS_DESC=Cambia le impostazioni del gioco + +SING_EXIT=Esci +SING_EXIT_DESC=Esci da Ultrastar + +SING_ABOUT=Sul gioco +SING_ABOUT_DESC=A proposito di Ultrastar Deluxe WorldParty + +SING_PLAYER_TITLE=Profili +SING_PLAYER_READY=Giocatori pronti a cantare +SING_PLAYER_COUNT=Numero di giocatori +SING_PLAYER_EDIT=Personalizza un giocatore +SING_PLAYER_NAME=Scrivi il tuo nome +SING_PLAYER_COLOR=Scegli un colore +SING_PLAYER_LEVEL=Scegli un livello +SING_PLAYER_AVATAR=Seleziona il tuo avatar + OPTION_VALUE_EASY=Facile OPTION_VALUE_MEDIUM=Media OPTION_VALUE_HARD=Difficile -OPTION_VALUE_ON=Si -OPTION_VALUE_OFF=No +SING_OPTIONS=Impostazioni + +SING_OPTIONS_GAME=Generali +SING_OPTIONS_GRAPHICS=Grafica +SING_OPTIONS_SOUND=Audio +SING_OPTIONS_LYRICS=Testi +SING_OPTIONS_THEMES=Temi +SING_OPTIONS_MICROPHONES=Microfono +SING_OPTIONS_ADVANCED=Avanzate +SING_OPTIONS_NETWORK=Internet +SING_OPTIONS_WEBCAM=Webcam +SING_OPTIONS_JUKEBOX=Jukebox +SING_OPTIONS_EXIT=Indietro + +SING_OPTIONS_GAME_LANGUAGE=Lingua +SING_OPTIONS_GAME_SONGMENU=Menu Canzone +SING_OPTIONS_GAME_TABS=Schede +SING_OPTIONS_GAME_SORTING=Organizza per +SING_OPTIONS_GAME_SHOWSCORES=Mostra punteggi +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Attiva il gamepad + +OPTION_VALUE_ROULETTE=Roulette +OPTION_VALUE_CHESSBOARD=Scacchiera +OPTION_VALUE_CAROUSEL=Giostra +OPTION_VALUE_SLOT_MACHINE=Slot Machine +OPTION_VALUE_LIST=Lista +OPTION_VALUE_MOSAIC=Piastrella + +OPTION_VALUE_ON=On +OPTION_VALUE_OFF=Off OPTION_VALUE_EDITION=Edizione OPTION_VALUE_GENRE=Genere OPTION_VALUE_LANGUAGE=Lingua -OPTION_VALUE_FOLDER=Folder +OPTION_VALUE_FOLDER=Cartella OPTION_VALUE_TITLE=Titolo OPTION_VALUE_ARTIST=Artista -OPTION_VALUE_TITLE2=Titolo2 OPTION_VALUE_ARTIST2=Artista2 OPTION_VALUE_YEAR=Anno OPTION_VALUE_DECADE=Decennio OPTION_VALUE_PLAYLIST=Playlist -;TODO: OPTION_VALUE_BORDERLESS=Borderless +OPTION_VALUE_WHEN_EXISTS=Quando già esistente + +SING_OPTIONS_GRAPHICS_FULLSCREEN=Schermo intero +SING_OPTIONS_GRAPHICS_RESOLUTION=Risoluzione +SING_OPTIONS_GRAPHICS_SCREENFADE=Dissolvenza dello schermo +SING_OPTIONS_GRAPHICS_EFFECTSING=Effetti del canto +SING_OPTIONS_GRAPHICS_VISUALIZER=Visualizzazioni +SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Dimensioni video -OPTION_VALUE_WHENNOVIDEO=Quando non c'è videl -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +OPTION_VALUE_BORDERLESS=Senza bordi -OPTION_VALUE_SMALL=Piccolo -OPTION_VALUE_BIG=Grande +OPTION_VALUE_WHENNOVIDEO=Quando non c'è video +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Quando non c'è video ne immagine OPTION_VALUE_HALF=Metà OPTION_VALUE_FULL_VID=Pieno (Solo video) OPTION_VALUE_FULL_VID_BG=Full (sia BG che Video) -;TODO: OPTION_VALUE_GAIN_SOFT=Soft -;TODO: OPTION_VALUE_GAIN_MEDIUM=Medium -;TODO: OPTION_VALUE_GAIN_HARD=Hard +SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Ascolta il microfono +SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Musica di sottofondo +SING_OPTIONS_SOUND_CLICK_ASSIST=Finestre di assistenza +SING_OPTIONS_SOUND_BEAT_CLICK=Attiva il metronomo +SING_OPTIONS_SOUND_MUSICAUTOGAIN=Volume +SING_OPTIONS_SOUND_PREVIEWVOLUME=Volume Anteprima +SING_OPTIONS_SOUND_PREVIEWFADING=Dissolvenza anteprima + +OPTION_VALUE_GAIN_SOFT=Leggero +OPTION_VALUE_GAIN_MEDIUM=Medio +OPTION_VALUE_GAIN_HARD=Forte OPTION_VALUE_AUTO=Auto OPTION_VALUE_SEC=Secondo OPTION_VALUE_SECS=Secondi -OPTION_VALUE_PLAIN=Piatto -OPTION_VALUE_OLINE1=Linea1 -OPTION_VALUE_OLINE2=Linea2 +SING_OPTIONS_LYRICS_FONT=Carattere +SING_OPTIONS_LYRICS_EFFECT=Effetti +SING_OPTIONS_LYRICS_NOTELINES=Pentagramma + +OPTION_VALUE_PLAIN=Stilizzato +OPTION_VALUE_OLINE1=Con bordo sottile +OPTION_VALUE_OLINE2=Con bordo grosso OPTION_VALUE_SIMPLE=Semplice OPTION_VALUE_ZOOM=Zoom @@ -50,166 +128,190 @@ OPTION_VALUE_SLIDE=Scorrimento OPTION_VALUE_BALL=Ball OPTION_VALUE_SHIFT=Shift -;TODO: OPTION_VALUE_EURO=Euro -;TODO: OPTION_VALUE_JAPAN=Japan -;TODO: OPTION_VALUE_AMERICAN=American - -OPTION_VALUE_BLUE=Blu -OPTION_VALUE_GREEN=Verde -OPTION_VALUE_PINK=Rosa -OPTION_VALUE_RED=Rosso -OPTION_VALUE_VIOLET=Viola -OPTION_VALUE_ORANGE=Arancione -OPTION_VALUE_YELLOW=Giallo -OPTION_VALUE_BROWN=Marrone -OPTION_VALUE_BLACK=Nero - -OPTION_VALUE_SING=Canta -OPTION_VALUE_SELECT_PLAYERS=Seleziona giocatore -OPTION_VALUE_OPEN_MENU=Apri il Menu - - - -SING_LOADING=Caricamento... - -SING_CHOOSE_MODE=Scegli la modalità -SING_SING=Canta -SING_SING_DESC=Gara veloce: canta da solo o duetta - -SING_MULTI=Modalità party -SING_MULTI_DESC=Canta in modalità party - -SING_TOOLS=Strumenti - -SING_STATS=Statistiche -SING_STATS_DESC=Guarda le statistiche +SING_OPTIONS_THEMES_THEME=Temi +SING_OPTIONS_THEMES_SKIN=Skin +SING_OPTIONS_THEMES_COLOR=Colori -SING_EDITOR=Editor -SING_EDITOR_DESC=Crea la tua canzone +SING_OPTIONS_MICROPHONES_CARD=Scheda Audio +SING_OPTIONS_MICROPHONES_INPUT=Input +SING_OPTIONS_MICROPHONES_CHANNEL=Canale +SING_OPTIONS_MICROPHONES_THRESHOLD=Limite +SING_OPTIONS_MICROPHONES_MIC_BOOST=Amplifica suono mic. -SING_GAME_OPTIONS=Impostazioni di gioco -SING_GAME_OPTIONS_DESC=Cambia le impostazioni di gioco +SING_OPTIONS_ADVANCED_DEBUG=Debug +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Oscilloscopio +SING_OPTIONS_ADVANCED_ONSONGCLICK=Dopo canzone selezzionata +SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Domande di sicurezza +SING_OPTIONS_ADVANCED_PARTYPOPUP=Menu Party automatico +SING_OPTIONS_ADVANCED_TOPSCORES=Migliori risultati +SING_OPTIONS_ADVANCED_SINGSCORES=Punteggi sul canto -SING_EXIT=Esci -SING_EXIT_DESC=Esci da Ultrastar +OPTION_VALUE_ALL=Tutti i giocatori +OPTION_VALUE_PLAYER=Giocatore -SING_OPTIONS=Impostazioni -SING_OPTIONS_DESC=Cambia impostazioni -SING_OPTIONS_WHEREAMI=Impostazioni +SING_OPTIONS_NETWORK_INSERT_USER_INFO=Premi il tasto "Ins" per aggiungere un giocatore a questa rete... +SING_OPTIONS_NETWORK_WEBSITE=Website +SING_OPTIONS_NETWORK_USERNAME=Nome utente +SING_OPTIONS_NETWORK_PASSWORD=Password +SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Invia Nome +SING_OPTIONS_NETWORK_AUTO_MODE=Auto +SING_OPTIONS_NETWORK_AUTO_PLAYER=Riproduttore +SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Punteggio (Facile) +SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Punteggio (Medio) +SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Punteggio (Difficile) +SING_OPTIONS_NETWORK_NO_DLL=Non ci sono DLL compatibili con Ultrastar... +SING_OPTIONS_NETWORK_DELETE_PLAYER= Sei sicuro di voler cancellare l'utente %0:s dal sito %1:s? +SING_OPTIONS_NETWORK_LEGEND_INSERT=Inserisci +SING_OPTIONS_NETWORK_LEGEND_DELETE=Cancella -SING_OPTIONS_GAME=Generali -SING_OPTIONS_GRAPHICS=Grafica -SING_OPTIONS_SOUND=Audio -;TODO: SING_OPTIONS_INPUT=Input -SING_OPTIONS_LYRICS=Testi -SING_OPTIONS_THEMES=Temi -SING_OPTIONS_RECORD=Microfono -SING_OPTIONS_ADVANCED=Avanzate -SING_OPTIONS_EXIT=Indietro +OPTION_PLAYER_1=Giocatore 1 +OPTION_PLAYER_2=Giocatore 2 +OPTION_PLAYER_3=Giocatore 3 +OPTION_PLAYER_4=Giocatore 4 +OPTION_PLAYER_5=Giocatore 5 +OPTION_PLAYER_6=Giocatore 6 +OPTION_ALL_PLAYERS=Tutti i giocatori +OPTION_ALL_SCORES=Tutti i punteggi +OPTION_VALUE_SAVE=Salva +OPTION_VALUE_SEND=Invia -SING_OPTIONS_GAME_WHEREAMI=Impostazioni Gioco -SING_OPTIONS_GAME_DESC=Impostazioni generali di gioco -SING_OPTIONS_GAME_PLAYERS=Giocatori -SING_OPTIONS_GAME_DIFFICULTY=Difficoltà -SING_OPTIONS_GAME_LANGUAGE=Lingua -SING_OPTIONS_GAME_TABS=Schede -SING_OPTIONS_GAME_SORTING=Ordinamento -SING_OPTIONS_GAME_DEBUG=Debug +MSG_INSERT_USER_TITLE=%0:s +MSG_INSERT_USER_DESC=Riempi il campo: +MSG_INSERT_USER_ADD=Aggiungi +MSG_INSERT_USER_CANCEL=Anulla -SING_OPTIONS_GRAPHICS_WHEREAMI=Impostazioni Grafica -SING_OPTIONS_GRAPHICS_DESC=Modifica le impostazioni grafiche -SING_OPTIONS_GRAPHICS_RESOLUTION=Risoluzione -SING_OPTIONS_GRAPHICS_FULLSCREEN=Schermo intero -SING_OPTIONS_GRAPHICS_DEPTH=Profondità -SING_OPTIONS_GRAPHICS_VISUALIZER=Visualizzazioni -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oscilloscopio -SING_OPTIONS_GRAPHICS_LINEBONUS=Linee Bonus -SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Grandezza video +WEBSITE_NO_CONNECTION=Impossibile connettersi al sito! +WEBSITE_LOGIN_ERROR=Errore di Login! +WEBSITE_BLANK_LOGIN=Ci sono campi vuoti! +WEBSITE_EXIST_USER=Utente già esistente! +WEBSITE_ERROR_SCORE=Errore nel punteggio! +WEBSITE_OK_SEND=Punteggio inviato con successo! +WEBSITE_ERROR_SCORE_DUPLICATED=Punteggio già esistente! +WEBSITE_ERROR_SONG=Canzone non trovata! +WEBSITE_SAVE_SCORE=Punteggio salvato con successo! +WEBSITE_NO_CONNECTION_SAVE=Nessuna connessione al sito! Salvare comunque l'utente? -SING_OPTIONS_SOUND_WHEREAMI=Impostazioni Audio -SING_OPTIONS_SOUND_DESC=Modifica le impostazioni Audio -SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Ascolta microfono -SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Musica di sottofondo -SING_OPTIONS_SOUND_MIC_BOOST=Preampificaz. -SING_OPTIONS_SOUND_CLICK_ASSIST=Finestre di assistenza -SING_OPTIONS_SOUND_BEAT_CLICK=Click di Beat -SING_OPTIONS_SOUND_THRESHOLD=Soglia -SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Modalità due giocatori -;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain -SING_OPTIONS_SOUND_PREVIEWVOLUME=Volume Anteprima -SING_OPTIONS_SOUND_PREVIEWFADING=Dissolvenza ant. +SONG_MENU_REFRESH_SCORES=Aggiorna punteggi +SONG_MENU_REFRESH_SCORES_TITLE=Aggiorna +SONG_MENU_REFRESH_SCORES_NO_WEB=Non ci sono siti! +SONG_MENU_REFRESH_SCORES_ONLINE=Online +SONG_MENU_REFRESH_SCORES_FILE=File +SONG_MENU_REFRESH_SCORES_ALL_WEB=Tutti i siti +SONG_MENU_REFRESH_SCORES_ALL_SONGS=Tutte le canzoni +SONG_MENU_REFRESH_SCORES_ONLY_SONG=Questa canzone +SONG_MENU_REFRESH_SCORES_REFRESH=Aggiorna +SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Errore nella connessione al sito: %0:s! +SONG_MENU_REFRESH_SCORES_ERROR_FILE=File non trovato: '%0:s [Download punteggi]'! -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support +SONG_SCORE_MAX=Migliore: +SONG_SCORE_MEDIA=Media: -SING_OPTIONS_LYRICS_WHEREAMI=Impostazioni Testi -SING_OPTIONS_LYRICS_DESC=Modifica le impostazioni dei testi in gioco -SING_OPTIONS_LYRICS_FONT=Carattere -SING_OPTIONS_LYRICS_EFFECT=Effetti -SING_OPTIONS_LYRICS_SOLMIZATION=Solfeggio -SING_OPTIONS_LYRICS_NOTELINES=Pentagramma +SCORE_SEND_DESC=Invia punteggio +SCORE_SEND=Invia +SCORE_SEND_PLAYER=Giocatore +SCORE_SEND_OTHER_USER=Altro Username +SCORE_SAVE=Salva -SING_OPTIONS_THEMES_WHEREAMI=Impostazioni Temi -SING_OPTIONS_THEMES_DESC=scegli temi e skin -SING_OPTIONS_THEMES_THEME=Temi -SING_OPTIONS_THEMES_SKIN=Skin -SING_OPTIONS_THEMES_COLOR=Colore - -SING_OPTIONS_RECORD_WHEREAMI=Impostazioni microfono -SING_OPTIONS_RECORD_DESC=Modifica le impostazioni del microfono -SING_OPTIONS_RECORD_CARD=Scheda Audio -SING_OPTIONS_RECORD_INPUT=Input -SING_OPTIONS_RECORD_CHANNEL=Canale - -SING_OPTIONS_ADVANCED_WHEREAMI=Impostazioni Avanzate -SING_OPTIONS_ADVANCED_DESC=Modifica ulteriori impostazioni -SING_OPTIONS_ADVANCED_EFFECTSING=Effetti del canto -SING_OPTIONS_ADVANCED_SCREENFADE=Dissolvenza dello schermo -SING_OPTIONS_ADVANCED_LOADANIMATION=Animazione caricamento -SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Domande di sicurezza -SING_OPTIONS_ADVANCED_LINEBONUS=Linee Bonus -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= -SING_OPTIONS_ADVANCED_ONSONGCLICK=Finita vai a -SING_OPTIONS_ADVANCED_PARTYPOPUP=Menu Party automatico +SCORE_DOWNLOAD_TITLE=Download +SCORE_DOWNLOAD_SONG=Canzone: +SCORE_DOWNLOAD_CREATE_LIST=Preparando la lista... +SCORE_DOWNLOAD_RECEIVE_LIST=Download in corso... +SCORE_DOWNLOAD_CANCEL=Annulla +SCORE_DOWNLOAD_OK=OK +SCORE_DOWNLOAD_SONG_UPDATE=%0:d Canzone(i) cambiata(e) dal sito! -SING_EDIT=Editor -SING_EDIT_MENU_DESCRIPTION=crea la tua canzone +SING_OPTIONS_WEBCAM_ID=Webcam +SING_OPTIONS_WEBCAM_RESOLUTION=Risoluzione +SING_OPTIONS_WEBCAM_FPS=FPS +SING_OPTIONS_WEBCAM_FLIP=Flip +SING_OPTIONS_WEBCAM_BRIGHTNESS=Luminosità +SING_OPTIONS_WEBCAM_SATURATION=Saturazione +SING_OPTIONS_WEBCAM_HUE=Tonalità +SING_OPTIONS_WEBCAM_EFFECT=Effetti +SING_OPTIONS_WEBCAM_PREVIEW=Attiva l'anteprima + +SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Abilta Anteprima +SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disabilita Anteprima +SING_OPTIONS_WEBCAM_NO_WEBCAM=Webcam non trovata! +SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normale +SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Scala di grigi +SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Nero e bianco +SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negativo +SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Immagine binaria +SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilatato +SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Limite +SING_OPTIONS_WEBCAM_EFFECT_EDGES=Bordi +SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Sfocatura gaussiana +SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalizzato +SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erodere + +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Trasparenza +JUKEBOX_SONGOPTIONS_LYRIC_LINE=Linea +JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Proprietà +JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Colore +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Rosso +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Verde +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blu -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Importa testo dal file midi -SING_EDIT_BUTTON_DESCRIPTION_EXIT=Indietro -SING_EDIT_BUTTON_CONVERT=Importa -SING_EDIT_BUTTON_EXIT=Indietro +JUKEBOX_SONGOPTIONS_VIDEO=Opzioni video +JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspetto +JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Larghezza +JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Altezza +JUKEBOX_SONGOPTIONS_LYRIC=Opzioni testo +JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Dimensione +JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Posizione -SING_EDIT_NAVIGATE=Spostati -SING_EDIT_SELECT=Seleziona -SING_EDIT_EXIT=Indietro +OPTION_VALUE_TO_SING=Inizia la sfida! +OPTION_VALUE_ACTUAL=Attuale +OPTION_VALUE_NEXT=Seguente +OPTION_VALUE_OTHER=Altro +OPTION_VALUE_FILL=Riempire +OPTION_VALUE_OUTLINE=Contorno +OPTION_VALUE_BLUE=Blu +OPTION_VALUE_GREEN=Verde +OPTION_VALUE_PINK=Rosa +OPTION_VALUE_RED=Rosso +OPTION_VALUE_VIOLET=Viola +OPTION_VALUE_ORANGE=Arancione +OPTION_VALUE_YELLOW=Giallo +OPTION_VALUE_BROWN=Marrone +OPTION_VALUE_BLACK=Nero +OPTION_VALUE_MAGENTA=Magenta +OPTION_VALUE_GRAY=Grigio +OPTION_VALUE_WHITE=Bianco +OPTION_VALUE_TURQUOISE=Turchese +OPTION_VALUE_SALMON=Salmone +OPTION_VALUE_GREENYELLOW=Verde giallo +OPTION_VALUE_LAVENDER=Lavanda +OPTION_VALUE_BEIGE=Beige +OPTION_VALUE_TEAL=Verde acqua +OPTION_VALUE_ORCHID=Orchidea +OPTION_VALUE_STEELBLUE=Blu acciaio +OPTION_VALUE_PLUM=Prugna +OPTION_VALUE_CHOCOLATE=Cioccolato +OPTION_VALUE_GOLD=Oro +OPTION_VALUE_DARKBLUE=Blu scuro +OPTION_VALUE_SKY=Celeste +OPTION_VALUE_HARLEQUIN=Arlecchino +OPTION_VALUE_CYAN=Ciano +OPTION_VALUE_FLAME=Fiamma SING_LEGEND_SELECT=Seleziona SING_LEGEND_NAVIGATE=Naviga SING_LEGEND_CONTINUE=Continua SING_LEGEND_ESC=Indietro -SING_PLAYER_DESC=Inserisci i nomi dei giocatori -SING_PLAYER_WHEREAMI=Nomi giocatori -SING_PLAYER_ENTER_NAME=Inserisci nome - -SING_DIFFICULTY_DESC=Seleziona la difficoltà -SING_DIFFICULTY_WHEREAMI=Difficoltà -SING_DIFFICULTY_CONTINUE=Scegli -SING_EASY=Facile -SING_MEDIUM=Media -SING_HARD=Difficile - -SING_SONG_SELECTION_DESC=scegli la tua canzone -SING_SONG_SELECTION_WHEREAMI=Selezione canzone -SING_SONG_SELECTION_GOTO=vai a .. SING_SONG_SELECTION=Brano SING_SONG_SELECTION_MENU=Menu SING_SONG_SELECTION_PLAYLIST=Playlist +SING_SONGS_IN_CAT=Canzone SING_SONGS_IN_CAT=Canzoni PLAYLIST_CATTEXT=Playlist: %s +SING_SONG_SELECTION_LEGEND_TITLE=Leggenda +SING_SONG_SELECTION_LEGEND_VIDEO=Video +SING_SONG_SELECTION_LEGEND_MEDLEY=Versione breve +SING_SONG_SELECTION_LEGEND_MEDLEYC=Versione breve calcolata +SING_SONG_SELECTION_LEGEND_DUET=Duetto SING_TOTAL=Punteggio SING_MODE=Canta @@ -223,7 +325,7 @@ SONG_SCORE=Punteggio SONG_SCORE_WHEREAMI=Punti SING_SCORE_TONE_DEAF=Muto -SING_SCORE_AMATEUR=Alle prime armi +SING_SCORE_AMATEUR=Principiante SING_SCORE_WANNABE=Aspirante cantante SING_SCORE_HOPEFUL=Promessa della musica SING_SCORE_RISING_STAR=Stella Nascente @@ -231,7 +333,7 @@ SING_SCORE_LEAD_SINGER=Cantante professionista SING_SCORE_SUPERSTAR=Superstar mondiale! SING_SCORE_ULTRASTAR=Campione di Ultrastar! -SING_TOP_5_CHARTS=Punteggi +SING_TOP_5_CHARTS=Punteggio primi 5 Giocatori SING_TOP_5_CHARTS_WHEREAMI=Migliori 5 SING_TOP_5_CHARTS_CONTINUE=Continua SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Cambia difficoltà @@ -251,8 +353,6 @@ IMPLODE_GLUE2= e SONG_MENU_NAME_MAIN=Menu canzone SONG_MENU_PLAY=Canta SONG_MENU_CHANGEPLAYERS=Cambia giocatori -SONG_MENU_EDIT=Modifica -SONG_MENU_MODI=Canta modifiche SONG_MENU_CANCEL=Annulla SONG_MENU_NAME_PLAYLIST=Menu Canzone @@ -269,14 +369,14 @@ SONG_MENU_PLAYLIST_NEW_CREATE=Crea SONG_MENU_PLAYLIST_NEW_UNNAMED=Senza Nome SONG_MENU_NAME_PLAYLIST_DELITEM=Vuoi davvero eliminare? -SONG_MENU_YES=Sì +SONG_MENU_YES=Si SONG_MENU_NO=No SONG_MENU_NAME_PLAYLIST_LOAD=Apri Playlist SONG_MENU_PLAYLIST_LOAD=Apri SONG_MENU_PLAYLIST_DELCURRENT=Elimina Playlist corrente -SONG_MENU_NAME_PLAYLIST_DEL=Elimina Playlist? +SONG_MENU_NAME_PLAYLIST_DEL=Eliminare Playlist? SONG_MENU_NAME_PARTY_MAIN=Menu Party SONG_MENU_JOKER=Jolly @@ -285,13 +385,6 @@ SONG_MENU_NAME_PARTY_JOKER=Gioca il jolly SONG_JUMPTO_DESC=Cerca Canzone SONG_JUMPTO_TYPE_DESC=Cerca per: -SONG_JUMPTO_TYPE1=Tutto -SONG_JUMPTO_TYPE2=Titolo -SONG_JUMPTO_TYPE3=Artista -SONG_JUMPTO_SONGSFOUND=%d Canzone(i) trovata(e) -SONG_JUMPTO_NOSONGSFOUND=Nessuna Canzone trovata -SONG_JUMPTO_HELP=Scrivi il Testo da cercare: -SONG_JUMPTO_CATTEXT=Cerca per: %s PARTY_MODE=Modalità party PARTY_DIFFICULTY=Difficoltà @@ -309,106 +402,101 @@ PARTY_LEGEND_CONTINUE=Continua PARTY_OPTIONS_DESC=Scegli le impostazioni per il party PARTY_OPTIONS_WHEREAMI=Impostazioni Party -PARTY_PLAYER_DESC=Scegli il numero e i nomi delle squadre -PARTY_PLAYER_WHEREAMI=Nomi squadre PARTY_PLAYER_ENTER_NAME=Inserisci nomi - -PARTY_ROUNDS_DESC=Scegli le regole del gioco! -PARTY_ROUNDS_WHEREAMI=Numero di sfide PARTY_ROUNDS_LEGEND_CONTINUE=Incomincia il party! PARTY_ROUNDCOUNT=Numero di sfide PARTY_SELECTMODE=Sfida %d -PARTY_ROUND_DESC=I prossimi che si sfideranno sono -PARTY_ROUND_WHEREAMI=Prossima sfida -PARTY_ROUND_LEGEND_CONTINUE=incomincia la sfida +PARTY_ROUND_LEGEND_CONTINUE=Incomincia la sfida PARTY_SONG_WHEREAMI=Seleziona la canzone PARTY_SONG_LEGEND_CONTINUE=Inizia la sfida! PARTY_SONG_MENU=Menu sfida -PARTY_SCORE_DESC=PUNTEGGIO SFIDA +OPTION_VALUE_SING=Canta +OPTION_VALUE_SELECT_PLAYERS=Seleziona giocatore +OPTION_VALUE_OPEN_MENU=Apri il Menu + +PARTY_SCORE_DESC=Punteggio Sfida PARTY_SCORE_WHEREAMI=Punti -PARTY_WIN_DESC=CLASSIFICA FINALE +PARTY_WIN_DESC=Classifica Finale PARTY_WIN_WHEREAMI=Vincitori PARTY_WIN_LEGEND_CONTINUE=Torna al menu principale PARTY_ROUND=Sfida PARTY_ROUND_WINNER=Vincitore -PARTY_NOTPLAYEDYET=Non ancora disputata +PARTY_NOTPLAYEDYET=Non ancora giocata PARTY_NOBODY=Pareggio NEXT_ROUND=Prossima sfida: PARTY_DISMISSED=Respinto! PARTY_SCORE_WINS=%s -PARTY_SCORE_WINS2=vince! +PARTY_SCORE_WINS2=Vincitore! MODE_RANDOM_NAME=Casuale -;TODO: MODE_RANDOM_DESC=Keep yourself on your toes! The game will select a mode for you at random! +MODE_RANDOM_DESC=Tieniti forte! Il gioco selezionerà una modalità per te a caso! -MODE_HOLDTHELINE_NAME=Attenzione alla linea! -;TODO: MODE_HOLDTHELINE_DESC=Keep your rating above the line for the longest! +MODE_HOLDTHELINE_NAME=Mantieni la linea! +MODE_HOLDTHELINE_DESC=Mantieni i tuoi valori al di sopra della line il massimo tempo possibile. ;TODO: MODE_HOLDTHELINEBLIND_NAME=Hold the Blind -;TODO: MODE_HOLDTHELINEBLIND_DESC=Keep your rating above the line for the longest, but with the notes hidden! +MODE_HOLDTHELINEBLIND_DESC=Mantieni i tuoi valori al di sopra della linea il massimo tempo possibile, ma con le note nascoste. -;TODO: MODE_7000POINTS_NAME=Until 7000 -;TODO: MODE_7000POINTS_DESC=Race to 7000 Points! +MODE_7000POINTS_NAME=Fino a 7000 +MODE_7000POINTS_DESC=Arriva a 7000 Punti! -;TODO: MODE_7000POINTSBLIND_NAME=Blind 7000 -;TODO: MODE_7000POINTSBLIND_DESC=Race to 7000 points, but without seeing the notes! +MODE_7000POINTSBLIND_NAME=7000 ciechi +MODE_7000POINTSBLIND_DESC=Fino a 7000 points senza vedere le note! MODE_5000POINTS_NAME=Fino a 5000! -;TODO: MODE_5000POINTS_DESC=Race to 5000 Points! +MODE_5000POINTS_DESC=Arriva a 5000 Points! -;TODO: MODE_5000POINTSBLIND_NAME=Blind 5000 -;TODO: MODE_5000POINTSBLIND_DESC=Race to 5000 points, but without seeing the notes! +MODE_5000POINTSBLIND_NAME=5000 ciechi +MODE_5000POINTSBLIND_DESC=Arriva a 5000 points senza vedere le note! -;TODO: MODE_2000POINTS_NAME=Until 2000 -;TODO: MODE_2000POINTS_DESC=Race to 2000 Points! +MODE_2000POINTS_NAME=Fino a 2000 +MODE_2000POINTS_DESC=Arriva a 2000 Punti! -;TODO: MODE_2000POINTSBLIND_NAME=Blind 2000 -;TODO: MODE_2000POINTSBLIND_DESC=Race to 2000 points, but without seeing the notes! +MODE_2000POINTSBLIND_NAME=2000 ciechi +MODE_2000POINTSBLIND_DESC=Arriva a 2000 punti senza vedere le note! MODE_DUEL_NAME=Duello -;TODO: MODE_DUEL_DESC=A 1v1 duel to get the highest score! +MODE_DUEL_DESC=Un duello 1vs1 per ottenere il miglior punteggio! -;TODO: MODE_TEAMDUEL_NAME=Team Duel -;TODO: MODE_TEAMDUEL_DESC=Pass The Mic! Work together to get a higher score than the other team! +MODE_TEAMDUEL_NAME=Squadra Duello +MODE_TEAMDUEL_DESC=Passa il microfono! Lavorate insieme per ottenere un punteggio maggiore che la squadra avversaria! -MODE_BLIND_NAME=Modalità ceca -;TODO: MODE_BLIND_DESC=A 1v1 duel, but with the notes hidden! +MODE_BLIND_NAME=Modalità cieca +MODE_BLIND_DESC=Duello 1vs1 con le note nascoste! -;TODO: MODE_BLINDTOTAL_NAME=Total Darkness! -;TODO: MODE_BLINDTOTAL_DESC=A duel, but with the notes and the lyrics hidden. Only for the brave! +MODE_BLINDTOTAL_NAME=Oscurità totale! +MODE_BLINDTOTAL_DESC=Duello con le note e testo nascosto. Solo per i più coraggiosi. MODE_1000BLIND_NAME =+1000 cieco -;TODO: MODE_1000BLIND_DESC = Gain a lead of more than 1000 points, but without seeing the notes! +MODE_1000BLIND_DESC =Ottieni un vantaggio di più di 1000 punti, ma senza vedere le note! -;TODO: MODE_DEAF_NAME = Deaf -;TODO: MODE_DEAF_DESC = Think you know the notes? Can you sing it without the acompaniment? +MODE_DEAF_NAME =Sordo +MODE_DEAF_DESC = Credi di conoscere le note? Puoi cantare senza accompagnamenti? -;TODO: MODE_BLINDLYRICS_NAME = No Lyrics -;TODO: MODE_BLINDLYRICS_DESC = Think you know all the lyrics? Sing with the lyrics hidden! +MODE_BLINDLYRICS_NAME =Senza testo +MODE_BLINDLYRICS_DESC =Credi di conoscere il testo? Canta con il testo nascosto! MODE_500BLIND_NAME =+500 cieco -;TODO: MODE_500BLIND_DESC = Gain a lead of more than 500 points, but without seeing the notes! +MODE_500BLIND_DESC =Ottieni un vantaggio di più di 500 punti senza vedere le note! -MODE_SHORTSONG_NAME =Gara breve -;TODO: MODE_SHORTSONG_DESC = A fast-paced 1v1 duel over half the song! +MODE_SHORTSONG_NAME =Canzone corta +MODE_SHORTSONG_DESC =Duello 1vs1 fino metà canzone! MODE_HARDCORE_NAME=Hardcore -;TODO: MODE_HARDCORE_DESC=Battle for a three-line lead on your opponent! +MODE_HARDCORE_DESC=Vince chi ottenga 3 linee di vantaggio! STAT_MAIN=Statistiche -STAT_MAIN_DESC=Generale -STAT_MAIN_WHEREAMI=Statistiche -STAT_OVERVIEW_INTRO=%0:s Statistiche. \n Ultimo Azzeramento a %2:.2d.%1:.2d.%3:d +STAT_OVERVIEW_INTRO=%0:s Statistiche. \n Ultimo Reset a %2:.2d.%1:.2d.%3:d STAT_OVERVIEW_SONG=%0:d Canzoni presenti(%3:d con Video), delle quali %1:d sono state già cantate e %2:d non lo sono ancora state.\n La Canzone più popolare è %5:s di %4:s. -STAT_OVERVIEW_PLAYER=Dall'ultimo Azzeramente c'è/ci sono stato/i %0:d Giocatore/i differente/i.\n Il miglior giocatore è %1:s con un Punteggio medio di %2:d Punti.\n %3:s ha fatto il Punteggio più alto con %4:d Punti. +STAT_OVERVIEW_PLAYER=Dall'ultimo Reset c'è/ci sono stato/i %0:d Giocatore/i differente/i.\n Il miglior giocatore è %1:s con un Punteggio medio di %2:d Punti.\n %3:s ha fatto il Punteggio più alto con %4:d Punti. STAT_FORMAT_DATE=%1:.2d.%0:.2d.%2:d @@ -418,7 +506,7 @@ STAT_DETAIL_WHEREAMI=Dettagli Statistiche STAT_NEXT=Prossima Pagina STAT_PREV=Pagina Precedente STAT_REVERSE=Ordine Inverso -STAT_PAGE=Pagina %0:d di %1:d Pagine\n (%2:d di %3:d Inserimenti) +STAT_PAGE=Pagina %0:d di %1:d \n Inserimenti %2:d di %3:d STAT_DESC_SCORES=Punteggi alti STAT_DESC_SCORES_REVERSED=Punteggi bassi @@ -428,127 +516,20 @@ STAT_DESC_SINGERS=Cantanti migliori STAT_DESC_SINGERS_REVERSED=Cantanti peggiori STAT_FORMAT_SINGERS=%0:s \n Punteggio medio: %1:d -STAT_DESC_SONGS=La Canzone più popolare -STAT_DESC_SONGS_REVERSED=La Canzone meno popolare +STAT_DESC_SONGS=Canzoni più popolari +STAT_DESC_SONGS_REVERSED=Canzoni meno popolari STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx Cantate STAT_DESC_BANDS=Gli artisti più popolari STAT_DESC_BANDS_REVERSED=Gli artisti meno popolari STAT_FORMAT_BANDS=%0:s \n %1:dx cantate -SCREENSHOT_SAVED=Screenshot salvato! -SCREENSHOT_FAILED=Impossibile salvato lo screenshot! - -INFO_FILE_SAVED=Salvataggio eseguito! -ERROR_SAVE_FILE_FAILED=Impossibile salvare! -ERROR_FILE_NOT_FOUND=File non trovato - -ENCODING_ERROR_ASK_FOR_UTF8=Impossibile salvare le modifiche nella codifica attuale. Converti in UTF-8? -EDITOR_ERROR_NO_TRACK_SELECTED=Nessun file selezionato - -MSG_ERROR_TITLE=Errore -MSG_INFO_TITLE=Informazione -MSG_QUESTION_TITLE=Domanda -MSG_QUIT_USDX=Vuoi davvero uscire da UltraStar? -MSG_END_PARTY=Vuoi davvero terminare la Modalità Party? - -ERROR_NO_SONGS=Nessuna Canzone caricata! -ERROR_NO_PLUGINS=Nessun Plugin caricato! -ERROR_NO_MODES_FOR_CURRENT_SETUP=Nessuna modalità disponibile -ERROR_CAN_NOT_START_PARTY=Si è verificato un errore avviando il party -ERROR_CORRUPT_SONG=La canzone non è stata caricata. -ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Impossibile aprire la canzone: controllare il file .txt! -ERROR_CORRUPT_SONG_NO_NOTES=Impossibile aprire la canzone: nessuna nota trovata nel .txt! -ERROR_CORRUPT_SONG_NO_BREAKS=Impossibile aprire la canzone: nessuna pausa trovata, correggere il file .txt! -ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Impossibile aprire la canzone: errore durante l'interpretazione della linea %0:d -ERROR_NO_EDITOR=Questa funzione non è disponibile su Linux o Mac! -ERROR_PLAYER_DEVICE_ASSIGNMENT=Il giocatore %d è assegnato a più microfoni. Selezionare un canale libero! -ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Il giocatore %d non è assegnato ad un microfono. Selezionare un canale nelle opzioni del microfono. - -SING_OPTIONS_NETWORK=Internet -SING_OPTIONS_NETWORK_WHEREAMI=Impostazioni Internet -SING_OPTIONS_NETWORK_DESC=Impostazioni generali -SING_OPTIONS_NETWORK_INSERT_USER_INFO=Premi il tasto "Ins" per aggiungere un giocatore a questa rete... -SING_OPTIONS_NETWORK_WEBSITE=Website SING_OPTIONS_NETWORK_USERNAME=Username SING_OPTIONS_NETWORK_PASSWORD=Password -SING_OPTIONS_NETWORK_USERNAME=Nome utente -SING_OPTIONS_NETWORK_PASSWORD=Parola d'ordine -SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Invia Nome -SING_OPTIONS_NETWORK_AUTO_MODE=Auto -SING_OPTIONS_NETWORK_AUTO_PLAYER=Riproduci -SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Punteggio (Facile) -SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Punteggio (Medio) -SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Punteggio (Difficile) -SING_OPTIONS_NETWORK_NO_DLL=Non ci sono DLL compatibili con Ultrastar Deluxe... -SING_OPTIONS_NETWORK_DELETE_PLAYER= Sei sicuro di voler cancellare il giocatore %0:s del sito %1:s? -SING_OPTIONS_NETWORK_LEGEND_INSERT=Inserisci -SING_OPTIONS_NETWORK_LEGEND_DELETE=Cancella - -OPTION_PLAYER_1=Giocatore 1 -OPTION_PLAYER_2=Giocatore 2 -OPTION_PLAYER_3=Giocatore 3 -OPTION_PLAYER_4=Giocatore 4 -OPTION_PLAYER_5=Giocatore 5 -OPTION_PLAYER_6=Giocatore 6 -OPTION_ALL_PLAYERS=Tutti i giocatori -OPTION_ALL_SCORES=Tutti i punteggi -OPTION_VALUE_SAVE=Salva -OPTION_VALUE_SEND=Invia - -MSG_INSERT_USER_TITLE=%0:s -MSG_INSERT_USER_DESC=Riempi il campo: -MSG_INSERT_USER_ADD=Aggiungi -MSG_INSERT_USER_CANCEL=Cancella - -WEBSITE_NO_CONNECTION=Impossibile connettersi al sito! -WEBSITE_LOGIN_ERROR=Login fallito! -WEBSITE_BLANK_LOGIN=Ci sono campi vuoti! -WEBSITE_EXIST_USER=Giocatore già esistente! -WEBSITE_ERROR_SCORE=Errore nel punteggio! -WEBSITE_OK_SEND=Punteggio inviato con successo! -WEBSITE_ERROR_SCORE_DUPLICATED=Punteggio già esistente! -WEBSITE_ERROR_SONG=Canzone non trovata! -WEBSITE_SAVE_SCORE=Punteggio salvato con successo! -WEBSITE_NO_CONNECTION_SAVE=Nessuna connessione al sito! Salvare comunque il giocatore? - -SONG_MENU_REFRESH_SCORES=Aggiorna punteggi -SONG_MENU_REFRESH_SCORES_TITLE=Aggiorna -SONG_MENU_REFRESH_SCORES_NO_WEB=Non ci sono siti! -SONG_MENU_REFRESH_SCORES_ONLINE=Online -SONG_MENU_REFRESH_SCORES_FILE=File -SONG_MENU_REFRESH_SCORES_ALL_WEB=Tutti i siti -SONG_MENU_REFRESH_SCORES_ALL_SONGS=Tutte le canzoni -SONG_MENU_REFRESH_SCORES_ONLY_SONG=Questa canzone -SONG_MENU_REFRESH_SCORES_REFRESH=Aggiorna -SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Errore nella connessione al sito: %0:s! -SONG_MENU_REFRESH_SCORES_ERROR_FILE=File non trovato: '%0:s [Download punteggi]'! - -SONG_SCORE_MAX=Migliore: -SONG_SCORE_MEDIA=Media: - -SCORE_SEND_DESC=Invia punteggio -SCORE_SEND=Invia -SCORE_SEND_PLAYER=Giocatore -SCORE_SEND_OTHER_USER=Altro Username -SCORE_SAVE=Salva - -SCORE_DOWNLOAD_TITLE=Download -SCORE_DOWNLOAD_SONG=Canzone: -SCORE_DOWNLOAD_CREATE_LIST=Sto preparando la lista... -SCORE_DOWNLOAD_RECEIVE_LIST=Download in corso... -SCORE_DOWNLOAD_CANCEL=Annulla -SCORE_DOWNLOAD_OK=OK -SCORE_DOWNLOAD_SONG_UPDATE=%0:d Canzone(i) cambiata(e) dal sito! - -SING_OPTIONS_GAME_SHOWSCORES=Mostra punteggi -OPTION_VALUE_WHEN_EXISTS=Quando già esistente - PARTY_SELECT_MODE=Modalità PARTY_MODE_CLASSIC=Classica PARTY_MODE_CLASSIC_FREE=Classica libera PARTY_MODE_CHALLENGE=Sfida PARTY_MODE_TOURNAMENT=Torneo PARTY_MODE_JUKEBOX=Jukebox -PARTY_MODE_NOT_AVAILABLE=Non disponibile! PARTY_MODE_TOURNAMENT_PLAYER_DESC=Scegli il numero e i nomi dei giocatori PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Numero di giocatori @@ -558,46 +539,13 @@ PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Semifinali PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Quarti di finale PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL=Ottavi di finale PARTY_MODE_TOURNAMENT_ROUNDS_DESC=I prossimi che si sfideranno sono -PARTY_MODE_TOURNAMENT_WIN_DESC=CLASSIFICA FINALE +PARTY_MODE_TOURNAMENT_WIN_DESC=Risultati classifica PARTY_MODE_TOURNAMENT_CHAMPION=Il campione è: %0:s! -EDIT_TITLE=Titolo: -EDIT_ARTIST=Artista: -EDIT_MP3=MP3: -EDIT_BPM=BPM: -EDIT_GAP=GAP: -EDIT_COVER=Copertina: -EDIT_BACKGROUND=Sfondo: - -EDIT_START=Inizio: -EDIT_DURATION=Durata: -EDIT_TONE=Tono: -EDIT_LYRIC=Testo: -EDIT_VIDEOGAP=Video Gap: -EDIT_VOLUME_AUDIO=Volume audio: -EDIT_VOLUME_MIDI=Volume midi: -EDIT_VOLUME_CLICK=Volume Click: -INFO_UNDO=Annulla ultima operazione - -INFO_FILE_SAVED=Salvataggio eseguito! -INFO_TIME_FIXED=Timing corretto -INFO_CAPITALIZE=Maiuscole corrette -INFO_EXIT=Vuoi uscire dall'editor senza salvare? -INFO_SONG_RELOADED=Canzone ricaricata -INFO_DIVIDED_BPM=Dimezzati i BPM -INFO_MULTIPLIED_BPM=Raddoppiati i BPM -INFO_PLAY_SONG=Esegui brano -INFO_PLAY_SENTENCE=Esegui la frase -INFO_CURRENT_LINE=Linea: -INFO_CURRENT_NOTE=Nota: - -;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! -;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! - MSG_END_JUKEBOX=Vuoi uscire dalla modalità Jukebox? JUKEBOX_RANDOM=Casuale JUKEBOX_REPEAT=Ripeti -JUKEBOX_FIND=Trova +JUKEBOX_FIND=Trova: JUKEBOX_SORT=Genere: JUKEBOX_SONGLIST=Lista delle canzoni @@ -605,8 +553,6 @@ SING_ERROR_DUET_MODE_PARTY = Duetto! Non disponibile in modalità Party! SONG_MENU_SONG=Brano SONG_MENU_MEDLEY=Medley -SONG_MENU_SORTING=Genere -SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Menu canzoni SONG_MENU_NAME_MEDLEY=Menu Medley @@ -622,125 +568,59 @@ SONG_MENU_SORTING_ALL=Tutte SONG_MENU_SORTING_DUET=Duetti SONG_MENU_SORTING_APPLY=Applica -SING_OPTIONS_WEBCAM=Webcam -;TODO: SING_OPTIONS_WEBCAM_DESC=Webcam Settings -;TODO: SING_OPTIONS_WEBCAM_WHEREAMI=Webcam Options -SING_OPTIONS_WEBCAM_ID=Webcam -SING_OPTIONS_WEBCAM_RESOLUTION=Risoluzione -;TODO: SING_OPTIONS_WEBCAM_FPS=FPS -;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! -;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip -SING_OPTIONS_WEBCAM_EFFECT=Effetti -;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation -;TODO: SING_OPTIONS_WEBCAM_HUE=Hue -;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview -;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview - -;TODO: SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal -;TODO: SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Grayscale -;TODO: SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Black & White -;TODO: SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negative -;TODO: SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image -;TODO: SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate -SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Soglia -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges -;TODO: SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized -;TODO: SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode - -;TODO: PARTY_PLAYLIST_MANUAL=Manual Selection -;TODO: PARTY_MODE_JUKEBOX_NO_SONGS=Playlist is empty! -;TODO: SONG_MENU_OPEN_CATEGORY=Open category -;TODO: SONG_MENU_CLOSE_CATEGORY=Close category -;TODO: SONG_MENU_START_JUKEBOX=Start Jukebox! -;TODO: SONG_MENU_NAME_JUKEBOX=Menu Jukebox - -;TODO: WEBSITE_EXIST_SONG=The song belongs to the website: %0:s -;TODO: WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! +PARTY_PLAYLIST_MANUAL=Selezione manuale +PARTY_MODE_JUKEBOX_NO_SONGS=Playlist vuota! +SONG_MENU_OPEN_CATEGORY=Categoria aperta +SONG_MENU_CLOSE_CATEGORY=Chiudi categoria +SONG_MENU_START_JUKEBOX=Inizia Jukebox! +SONG_MENU_NAME_JUKEBOX=Menu Jukebox + +WEBSITE_EXIST_SONG=La canzone appartiene al sito web: %0:s +WEBSITE_NOT_EXIST_SONG=La canzone non appartiene a nessun sito web! NAME_PLAYERS_COUNT=Numero di giocatori NAME_CURRENT_PLAYER=Giocatore -SING_OPTIONS_GAME_SONGMENU=Menu Canzone -OPTION_VALUE_ROULETTE=Roulette -OPTION_VALUE_CHESSBOARD=Scacchiera -OPTION_VALUE_CAROUSEL=Giostra -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -OPTION_VALUE_LIST=Lista -OPTION_VALUE_MOSAIC=Piastrella - -SING_OPTIONS_JUKEBOX=Jukebox -;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox -;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options - -OPTION_VALUE_TO_SING=Inizia la sfida! -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next -;TODO: OPTION_VALUE_OTHER=Other -;TODO: OPTION_VALUE_FILL=Fill -;TODO: OPTION_VALUE_OUTLINE=Outline -;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -;TODO: OPTION_VALUE_SALMON=Salmon -;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige -;TODO: OPTION_VALUE_TEAL=Teal -;TODO: OPTION_VALUE_ORCHID=Orchid -;TODO: OPTION_VALUE_STEELBLUE=Steel Blue -;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold -;TODO: OPTION_VALUE_DARKBLUE=Dark Blue -;TODO: OPTION_VALUE_SKY=Sky -;TODO: OPTION_VALUE_HARLEQUIN=Harlequin -;TODO: OPTION_VALUE_CYAN=Cyan -;TODO: OPTION_VALUE_FLAME=Flame - -;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height -;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha -JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Colore -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property -JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Rosso -JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Verde -JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blu - -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=LetterBox +JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Allungare +JUKEBOX_SONGOPTIONS_VIDEO_CROP=Ritagliare +JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=LetterBox JUKEBOX_SONGOPTIONS_SAVE=Salva -;TODO: JUKEBOX_SONGOPTIONS_CLOSE=Close -;TODO: JUKEBOX_SONGOPTIONS_DEFAULT=Default -;TODO: JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Saved! +JUKEBOX_SONGOPTIONS_CLOSE=Esci +JUKEBOX_SONGOPTIONS_DEFAULT=Predefinito +JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Salvato! -;TODO: SING_SONG_CREDITS=Credits -SING_JUKEBOX=Jukebox -;TODO: SING_JUKEBOX_DESC=Listen to my collection -;TODO: JUKEBOX_MODE=Jukebox Mode -;TODO: JUKEBOX_OPTIONS_DESC=Playlist Options -;TODO: JUKEBOX_OPTIONS_WHEREAMI=Jukebox Options +JUKEBOX_MODE=Modalità Jukebox JUKEBOX_OPTIONS_PLAYLIST=Playlist JUKEBOX_OPTIONS_PLAYLIST_MODE=Modalità -;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing -;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores -OPTION_VALUE_ALL=Tutti i giocatori -OPTION_VALUE_PLAYER=Giocatore +ABOUT_MAIN=Sul gioco +ABOUT_USDX_DEVELOPEDBY=Sviluppato da +ABOUT_CHECK_CHECKING=Verifica nuovi aggiornamenti... +ABOUT_CHECK_AVAILABLE=C'è una nuova versione disponibile +ABOUT_CHECK_UPTODATE=WorldParty è stato aggiornato +ABOUT_CHECK_CONNECTION=Non c'è connessione a Internet +ABOUT_OVERVIEW=Scopri un nuovo modo di cantare, da solo, in coppia o con gli amici. \n Il divertimento è garantito.\n\nWorldParty è un modifica della versione originale Ultrastar Deluxe 1.1 progettato e sviluppato dal team UltraStar España, conta con la più grande comunità di karaoke.\n\n\nQuesto programma è gratuito e libero sotto licenza GPL. \n\n Visitaci per maggiori informazioni.\n\nhttps://ultrastar-es.org -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +DEVELOPERS_TITLE=Sviluppato da +DEVELOPERS_OVERVIEW=Persone che hanno contribuito a questo progetto:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Visitaci per maggiori informazioni.\n\nhttps://ultrastar-es.org + +SCREENSHOT_SAVED=Screenshot salvato! +SCREENSHOT_FAILED=Impossibile salvare lo screenshot! + +MSG_ERROR_TITLE=Errore +MSG_INFO_TITLE=Informazione +MSG_QUESTION_TITLE=Domanda +MSG_QUIT_USDX=Vuoi davvero uscire da UltraStar? +MSG_END_PARTY=Vuoi davvero terminare la Modalità Party? + +ERROR_NO_SONGS=Nessuna Canzone caricata! +ERROR_NO_PLUGINS=Nessun Plugin caricato! +ERROR_LOADING_SONGS=Attendi la fine del caricamento di tutte le canzoni +ERROR_CORRUPT_SONG=La canzone non è stata caricata. +ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Impossibile aprire la canzone: file non trovato, correggere il file .txt! +ERROR_CORRUPT_SONG_NO_NOTES=Impossibile aprire la canzone: note non trovate, correggere il file .txt! +ERROR_CORRUPT_SONG_NO_BREAKS=Impossibile aprire la canzone: nessuna pausa trovata, correggere il file .txt! +ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Impossibile aprire la canzone: errore durante l'interpretazione della linea %0:d +ERROR_PLAYER_DEVICE_ASSIGNMENT=Il giocatore %d è assegnato a più microfoni. Per favore, selezionare un canale libero! +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Il giocatore %d non è assegnato ad un microfono. Per favore, selezionare un canale nelle opzioni del microfono. \ No newline at end of file diff --git a/game/languages/Language.new b/game/languages/Language.new index 1cd9dccc..42be1bb6 100644 --- a/game/languages/Language.new +++ b/game/languages/Language.new @@ -75,9 +75,6 @@ TODO: LANGUAGE=Language ;TODO: SING_STATS=stats ;TODO: SING_STATS_DESC=view the statistics -;TODO: SING_EDITOR=editor -;TODO: SING_EDITOR_DESC=create your own song - ;TODO: SING_GAME_OPTIONS=game options ;TODO: SING_GAME_OPTIONS_DESC=change game settings @@ -157,18 +154,6 @@ TODO: LANGUAGE=Language ;TODO: SING_OPTIONS_ADVANCED_ONSONGCLICK=after Song Select ;TODO: SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto PartyMenu -;TODO: SING_EDIT=Editor -;TODO: SING_EDIT_MENU_DESCRIPTION=create your own song - -;TODO: SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Import text from midi file -;TODO: SING_EDIT_BUTTON_DESCRIPTION_EXIT=back -;TODO: SING_EDIT_BUTTON_CONVERT=Import -;TODO: SING_EDIT_BUTTON_EXIT=back - -;TODO: SING_EDIT_NAVIGATE=navigate -;TODO: SING_EDIT_SELECT=select -;TODO: SING_EDIT_EXIT=back - ;TODO: SING_LEGEND_SELECT=select ;TODO: SING_LEGEND_NAVIGATE=navigate ;TODO: SING_LEGEND_CONTINUE=continue @@ -235,7 +220,6 @@ TODO: LANGUAGE=Language ;TODO: SONG_MENU_NAME_MAIN=song menu ;TODO: SONG_MENU_PLAY=Sing ;TODO: SONG_MENU_CHANGEPLAYERS=Change Players -;TODO: SONG_MENU_EDIT=Edit ;TODO: SONG_MENU_MODI=Sing a Modi ;TODO: SONG_MENU_CANCEL=Cancel @@ -391,11 +375,10 @@ TODO: LANGUAGE=Language ;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot ;TODO: INFO_FILE_SAVED=File saved -;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file +;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file ;TODO: ERROR_FILE_NOT_FOUND=File not found ;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? -;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected ;TODO: MSG_ERROR_TITLE=Error ;TODO: MSG_INFO_TITLE=Information @@ -412,6 +395,5 @@ TODO: LANGUAGE=Language ;TODO: ERROR_CORRUPT_SONG_NO_NOTES=Song could not be loaded: Can''t find any notes ;TODO: ERROR_CORRUPT_SONG_NO_BREAKS=Song could not be loaded: Can''t find any linebreaks ;TODO: ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song could not be loaded: Error parsing line %0:d -;TODO: ERROR_NO_EDITOR=This feature is not available on this version. ;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options ;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options diff --git "a/game/languages/Lietuvi\305\263.ini" "b/game/languages/Lietuvi\305\263.ini" index c80388c6..c39a57be 100644 --- "a/game/languages/Lietuvi\305\263.ini" +++ "b/game/languages/Lietuvi\305\263.ini" @@ -19,18 +19,18 @@ OPTION_VALUE_ARTIST2=Menininkas2 OPTION_VALUE_YEAR=Metai OPTION_VALUE_DECADE=Dešimtmetis OPTION_VALUE_PLAYLIST=Grojaraštis -//------------------------------------------------------------------ + OPTION_VALUE_BORDERLESS=Be sienų -OPTION_VALUE_WHENNOVIDEO=When No Video -OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +OPTION_VALUE_WHENNOVIDEO=Kai nėra vaizdo įrašo +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Kai nėra vaizdo ir fono OPTION_VALUE_SMALL=Mažas OPTION_VALUE_BIG=Didelis -OPTION_VALUE_HALF=Half -OPTION_VALUE_FULL_VID=Full (Video) -OPTION_VALUE_FULL_VID_BG=Full (BG & Video) +OPTION_VALUE_HALF=Pusė +OPTION_VALUE_FULL_VID=Pilnas (Video) +OPTION_VALUE_FULL_VID_BG=Pilnas (BG & Video) OPTION_VALUE_GAIN_SOFT=Minkštas OPTION_VALUE_GAIN_MEDIUM=Vidutinis @@ -41,8 +41,8 @@ OPTION_VALUE_SEC=Antra OPTION_VALUE_SECS=Sekundes OPTION_VALUE_PLAIN=Stilizuotas -OPTION_VALUE_OLINE1=OLine1 -OPTION_VALUE_OLINE2=OLine2 +OPTION_VALUE_OLINE1=Su plonu kraštu +OPTION_VALUE_OLINE2=Su storu kraštu OPTION_VALUE_SIMPLE=Paprasta OPTION_VALUE_ZOOM=Priartinti @@ -68,8 +68,8 @@ OPTION_VALUE_SING=Dainuoti OPTION_VALUE_SELECT_PLAYERS=Pasirinkite žaidėjus OPTION_VALUE_OPEN_MENU=Atidarykite meniu - SING_LOADING=Kraunasi... +SING_LOADING_SONGS=Įkeliamos dainos iš aplanko %s SING_CHOOSE_MODE=Pasirinkite režimą SING_SING=Dainuoti @@ -89,81 +89,79 @@ SING_GAME_OPTIONS_DESC=Keisti žaidimo nustatymus SING_EXIT=Išeiti SING_EXIT_DESC=Baigti žaidimą -SING_OPTIONS=Options -SING_OPTIONS_DESC=Change settings -SING_OPTIONS_WHEREAMI=Options - -SING_OPTIONS_GAME=Game -SING_OPTIONS_GRAPHICS=Graphics -SING_OPTIONS_SOUND=Sound -SING_OPTIONS_LYRICS=Lyrics -SING_OPTIONS_THEMES=Themes -SING_OPTIONS_RECORD=Record -SING_OPTIONS_ADVANCED=Advanced -SING_OPTIONS_EXIT=Back - -SING_OPTIONS_GAME_WHEREAMI=Options Game -SING_OPTIONS_GAME_DESC=General game settings -SING_OPTIONS_GAME_PLAYERS=Players -SING_OPTIONS_GAME_DIFFICULTY=Difficulty -SING_OPTIONS_GAME_LANGUAGE=Language -SING_OPTIONS_GAME_TABS=Tabs -SING_OPTIONS_GAME_SORTING=Sorting -SING_OPTIONS_GAME_JOYPAD_SUPPORT=Controller support - -SING_OPTIONS_GRAPHICS_WHEREAMI=Options Graphics -SING_OPTIONS_GRAPHICS_DESC=Graphic settings -SING_OPTIONS_GRAPHICS_RESOLUTION=Resolution -SING_OPTIONS_GRAPHICS_FULLSCREEN=Fullscreen -SING_OPTIONS_GRAPHICS_EFFECTSING=Sing Effects -SING_OPTIONS_GRAPHICS_SCREENFADE=Screen Fading -SING_OPTIONS_GRAPHICS_LOADANIMATION=Load Animation -SING_OPTIONS_GRAPHICS_VISUALIZER=Visualization -SING_OPTIONS_GRAPHICS_LINEBONUS=Line Bonus -SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Movie size - -SING_OPTIONS_SOUND_WHEREAMI=Options Sound -SING_OPTIONS_SOUND_DESC=Sound settings -SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Microphone Playback -SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Background music -SING_OPTIONS_SOUND_MIC_BOOST=Mic boost -SING_OPTIONS_SOUND_CLICK_ASSIST=Click assist -SING_OPTIONS_SOUND_BEAT_CLICK=Beat click -SING_OPTIONS_SOUND_THRESHOLD=Threshold -SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Two players mode -SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain -SING_OPTIONS_SOUND_PREVIEWVOLUME=Preview Volume -SING_OPTIONS_SOUND_PREVIEWFADING=Preview Fading - -SING_OPTIONS_LYRICS_WHEREAMI=Options Lyrics -SING_OPTIONS_LYRICS_DESC=Lyrics settings -SING_OPTIONS_LYRICS_FONT=Font -SING_OPTIONS_LYRICS_EFFECT=Effect -SING_OPTIONS_LYRICS_SOLMIZATION=Solmization -SING_OPTIONS_LYRICS_NOTELINES=Staves - -SING_OPTIONS_THEMES_WHEREAMI=Options Themes -SING_OPTIONS_THEMES_DESC=Theme and Skin settings -SING_OPTIONS_THEMES_THEME=Theme -SING_OPTIONS_THEMES_SKIN=Skin -SING_OPTIONS_THEMES_COLOR=Color - -SING_OPTIONS_RECORD_WHEREAMI=Options Record -SING_OPTIONS_RECORD_DESC=Microphone settings -SING_OPTIONS_RECORD_CARD=Soundcard -SING_OPTIONS_RECORD_INPUT=Input -SING_OPTIONS_RECORD_CHANNEL=Channel - -SING_OPTIONS_ADVANCED_WHEREAMI=Options Advanced -SING_OPTIONS_ADVANCED_DESC=Advanced settings - -SING_OPTIONS_ADVANCED_DEBUG=Debug -SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Oscilloscope -SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Safety Questions -SING_OPTIONS_ADVANCED_LINEBONUS=Line Bonus -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= -SING_OPTIONS_ADVANCED_ONSONGCLICK=After Song Select -SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto PartyMenu +SING_OPTIONS=Galimybės +SING_OPTIONS_DESC=Pakeisti nustatymus +SING_OPTIONS_WHEREAMI=Galimybės + +SING_OPTIONS_GAME=Žaidimas +SING_OPTIONS_GRAPHICS=Grafika +SING_OPTIONS_SOUND=Garsas +SING_OPTIONS_LYRICS=Dainos žodžiai +SING_OPTIONS_THEMES=Temos +SING_OPTIONS_MICROPHONES=Įrašyti +SING_OPTIONS_ADVANCED=Išplėstinė +SING_OPTIONS_EXIT=Atgal + +SING_OPTIONS_GAME_WHEREAMI=Parinkčių žaidimas +SING_OPTIONS_GAME_DESC=Bendrieji žaidimo parametrai +SING_OPTIONS_GAME_PLAYERS=Žaidėjai +SING_OPTIONS_GAME_DIFFICULTY=Sunkumas +SING_OPTIONS_GAME_LANGUAGE=Kalba +SING_OPTIONS_GAME_TABS=Skirtukai +SING_OPTIONS_GAME_SORTING=Rūšiavimas +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Kontrolieriaus palaikymas + +SING_OPTIONS_GRAPHICS_WHEREAMI=Parinktys Grafika +SING_OPTIONS_GRAPHICS_DESC=Grafiniai nustatymai +SING_OPTIONS_GRAPHICS_RESOLUTION=Rezoliucija +SING_OPTIONS_GRAPHICS_FULLSCREEN=Visas ekranas +;TODO: SING_OPTIONS_GRAPHICS_EFFECTSING=Sing Effects +SING_OPTIONS_GRAPHICS_SCREENFADE=Ekrano blukimas +SING_OPTIONS_GRAPHICS_LOADANIMATION=Įkelti animaciją +SING_OPTIONS_GRAPHICS_VISUALIZER=Vizualizacija +SING_OPTIONS_GRAPHICS_LINEBONUS=Linijos premija +SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Filmo dydis + +SING_OPTIONS_SOUND_WHEREAMI=Funkcijos Garsas +SING_OPTIONS_SOUND_DESC=Garso nustatymai +SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Mikrofono atkūrimas +SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Fonine muzika +SING_OPTIONS_SOUND_CLICK_ASSIST=Spustelėkite padėti +SING_OPTIONS_SOUND_BEAT_CLICK=Mušti spustelėkite +SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Du žaidėjų režimai +SING_OPTIONS_SOUND_MUSICAUTOGAIN=Muzikos priaugimas +SING_OPTIONS_SOUND_PREVIEWVOLUME=Peržiūrėti tomas +SING_OPTIONS_SOUND_PREVIEWFADING=Peržiūra išblukimas + +SING_OPTIONS_LYRICS_WHEREAMI=Pasirinkimai Lyrics +;TODO: SING_OPTIONS_LYRICS_DESC=Lyrics settings +SING_OPTIONS_LYRICS_FONT=Šriftas +SING_OPTIONS_LYRICS_EFFECT=Efektas +SING_OPTIONS_LYRICS_SOLMIZATION=Solminacija +SING_OPTIONS_LYRICS_NOTELINES=Poliai + +SING_OPTIONS_THEMES_WHEREAMI=Parinktys Temos +SING_OPTIONS_THEMES_DESC=Temos ir odos nustatymai +SING_OPTIONS_THEMES_THEME=Tema +SING_OPTIONS_THEMES_SKIN=Odos +SING_OPTIONS_THEMES_COLOR=Spalva + +SING_OPTIONS_MICROPHONES_WHEREAMI=Parinktys Įrašas +SING_OPTIONS_MICROPHONES_DESC=Mikrofono nustatymai +SING_OPTIONS_MICROPHONES_CARD=Garso plokštė +SING_OPTIONS_MICROPHONES_INPUT=Įvestis +SING_OPTIONS_MICROPHONES_CHANNEL=Kanalas +SING_OPTIONS_MICROPHONES_THRESHOLD=Slenkstis +SING_OPTIONS_MICROPHONES_MIC_BOOST=Mikrobangų krosnelė + +SING_OPTIONS_ADVANCED_WHEREAMI=Pasirinktys Išplėstinė +SING_OPTIONS_ADVANCED_DESC=Pažangūs nustatymai +SING_OPTIONS_ADVANCED_DEBUG=Derinti +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Osciloskopas +SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Saugos klausimai +SING_OPTIONS_ADVANCED_LINEBONUS=Linijos premija +;TODO: SING_OPTIONS_ADVANCED_ONSONGCLICK=After song select +;TODO: SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto PartyMenu SING_LEGEND_SELECT=Pasirinkite @@ -180,51 +178,52 @@ SING_PLAYER_COLOR=Pasirinkite spalvą SING_PLAYER_LEVEL=Pasirinkite lygį SING_PLAYER_AVATAR=Pasirinkite savo avatarą -SING_DIFFICULTY_DESC=Select difficulty -SING_DIFFICULTY_WHEREAMI=Difficulty -SING_DIFFICULTY_CONTINUE=To song selection -SING_EASY=Easy -SING_MEDIUM=Medium -SING_HARD=Hard - -SING_SONG_SELECTION_DESC=Choose your song -SING_SONG_SELECTION_WHEREAMI=Song Selection -SING_SONG_SELECTION_GOTO=Go to .. -SING_SONG_SELECTION=Song selection -SING_SONG_SELECTION_MENU=Menu -SING_SONG_SELECTION_PLAYLIST=Playlist -SING_SONGS_IN_CAT=Songs -PLAYLIST_CATTEXT=Playlist: %s -SING_SONG_SELECTION_LEGEND_TITLE=Legend -SING_SONG_SELECTION_LEGEND_VIDEO=Video -SING_SONG_SELECTION_LEGEND_MEDLEY=Short version -SING_SONG_SELECTION_LEGEND_MEDLEYC=Short version calculated -SING_SONG_SELECTION_LEGEND_DUET=Duet - -SING_TOTAL=Total -SING_MODE=Sing solo -SING_NOTES=Notes -SING_GOLDEN_NOTES=Golden notes -SING_PHRASE_BONUS=Line bonus - -SING_MENU=Main Menu - -SONG_SCORE=Song score -SONG_SCORE_WHEREAMI=Score - -SING_SCORE_TONE_DEAF=Tone Deaf -SING_SCORE_AMATEUR=Amateur +SING_DIFFICULTY_DESC=Pasirinkite sunkumus +SING_DIFFICULTY_WHEREAMI=Sunkumas +SING_DIFFICULTY_CONTINUE=Parinkti dainą +SING_EASY=Lengva +SING_MEDIUM=Vidutinis +SING_HARD=Sunku + +SING_SONG_SELECTION_DESC=Pasirinkite dainą +SING_SONG_SELECTION_WHEREAMI=Dainų pasirinkimas +SING_SONG_SELECTION_GOTO=Eiti į .. +SING_SONG_SELECTION=Dainų pasirinkimas +SING_SONG_SELECTION_MENU=Meniu +SING_SONG_SELECTION_PLAYLIST=Grojaraštis +SING_SONG_IN_CAT=Daina +SING_SONGS_IN_CAT=Dainos +PLAYLIST_CATTEXT=Grojaraštis: %s +SING_SONG_SELECTION_LEGEND_TITLE=Legenda +SING_SONG_SELECTION_LEGEND_VIDEO=Vaizdo įrašas +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Duetas + +SING_TOTAL=Iš viso +SING_MODE=Dainuoti solo +SING_NOTES=Pastabos +SING_GOLDEN_NOTES=Auksinės užrašai +SING_PHRASE_BONUS=Line premija + +SING_MENU=Pagrindinis meniu + +SONG_SCORE=Dainos rezultatas +SONG_SCORE_WHEREAMI=Rezultatas + +SING_SCORE_TONE_DEAF=Kurčias +SING_SCORE_AMATEUR=Mėgėjas SING_SCORE_WANNABE=Wannabe -SING_SCORE_HOPEFUL=Hopeful -SING_SCORE_RISING_STAR=Rising Star -SING_SCORE_LEAD_SINGER=Lead Singer -SING_SCORE_SUPERSTAR=Superstar +SING_SCORE_HOPEFUL=Tikiuosi +SING_SCORE_RISING_STAR=Kylanti žvaigždė +SING_SCORE_LEAD_SINGER=Pagrindinis dainininkas +SING_SCORE_SUPERSTAR=Superžvaigždė SING_SCORE_ULTRASTAR=Ultrastar -SING_TOP_5_CHARTS=Top 5 Players +SING_TOP_5_CHARTS=5 geriausi žaidėjai SING_TOP_5_CHARTS_WHEREAMI=Top 5 -SING_TOP_5_CHARTS_CONTINUE=To song selection -SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Switch difficulty +SING_TOP_5_CHARTS_CONTINUE=Parinkti dainą +SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Perjungti sunkumus POPUP_PERFECT=puikus POPUP_AWESOME=nuostabu @@ -238,505 +237,470 @@ POPUP_AWFUL=baisus IMPLODE_GLUE1=, IMPLODE_GLUE2= ir -SONG_MENU_NAME_MAIN=Song menu -SONG_MENU_PLAY=Sing -SONG_MENU_CHANGEPLAYERS=Change Players -SONG_MENU_EDIT=Edit -SONG_MENU_MODI=Sing a Modi -SONG_MENU_CANCEL=Cancel +SONG_MENU_NAME_MAIN=Dainų meniu +SONG_MENU_PLAY=Dainuoti +SONG_MENU_CHANGEPLAYERS=Keisti žaidėjus +SONG_MENU_MODI=Dainuoti modi +SONG_MENU_CANCEL=Atšaukti -SONG_MENU_NAME_PLAYLIST=Song Menu -SONG_MENU_PLAYLIST_ADD=Add Song -SONG_MENU_PLAYLIST_DEL=Delete Song +SONG_MENU_NAME_PLAYLIST=Dainų meniu +SONG_MENU_PLAYLIST_ADD=Pridėti dainą +SONG_MENU_PLAYLIST_DEL=Ištrinti daina -SONG_MENU_NAME_PLAYLIST_ADD=Add Song -SONG_MENU_PLAYLIST_ADD_NEW=To new playlist -SONG_MENU_PLAYLIST_ADD_EXISTING=To existing playlist -SONG_MENU_PLAYLIST_NOEXISTING=No playlist available +SONG_MENU_NAME_PLAYLIST_ADD=Pridėti dainą +SONG_MENU_PLAYLIST_ADD_NEW=Naujam grojaraščiui +SONG_MENU_PLAYLIST_ADD_EXISTING=Esamas grojaraštis +SONG_MENU_PLAYLIST_NOEXISTING=Nėra grojaraščio -SONG_MENU_NAME_PLAYLIST_NEW=New Playlist -SONG_MENU_PLAYLIST_NEW_CREATE=Create -SONG_MENU_PLAYLIST_NEW_UNNAMED=Unnamed +SONG_MENU_NAME_PLAYLIST_NEW=Naujas grojaraštis +SONG_MENU_PLAYLIST_NEW_CREATE=Sukurti +SONG_MENU_PLAYLIST_NEW_UNNAMED=Be pavadinimo -SONG_MENU_NAME_PLAYLIST_DELITEM=Really Delete? -SONG_MENU_YES=Yes -SONG_MENU_NO=No +SONG_MENU_NAME_PLAYLIST_DELITEM=Tikrai ištrinti? +SONG_MENU_YES=Taip +SONG_MENU_NO=Ne -SONG_MENU_NAME_PLAYLIST_LOAD=Open Playlist -SONG_MENU_PLAYLIST_LOAD=Open -SONG_MENU_PLAYLIST_DELCURRENT=Delete current Playlist +SONG_MENU_NAME_PLAYLIST_LOAD=Atidaryti grojaraštį +SONG_MENU_PLAYLIST_LOAD=Atviras +SONG_MENU_PLAYLIST_DELCURRENT=Ištrinti dabartinį grojaraštį -SONG_MENU_NAME_PLAYLIST_DEL=Delete Playlist? +SONG_MENU_NAME_PLAYLIST_DEL=Ištrinti grojaraštį? -SONG_MENU_NAME_PARTY_MAIN=Party Menu +SONG_MENU_NAME_PARTY_MAIN=Vakarėlio meniu SONG_MENU_JOKER=Joker -SONG_MENU_NAME_PARTY_JOKER=Take joker +SONG_MENU_NAME_PARTY_JOKER=Paimk jokerį -SONG_JUMPTO_DESC=Search song -SONG_JUMPTO_TYPE_DESC=Search for: -SONG_JUMPTO_TYPE1=All -SONG_JUMPTO_TYPE2=Title -SONG_JUMPTO_TYPE3=Artist -SONG_JUMPTO_SONGSFOUND=%d Song(s) found -SONG_JUMPTO_NOSONGSFOUND=No Song found -SONG_JUMPTO_HELP=Type Text to Search for -SONG_JUMPTO_CATTEXT=Search for: %s +SONG_JUMPTO_DESC=Ieškoti dainos +SONG_JUMPTO_TYPE_DESC=Ieškoti: +SONG_JUMPTO_TYPE1=Visi +SONG_JUMPTO_TYPE2=Pavadinimas +SONG_JUMPTO_TYPE3=Menininkas +SONG_JUMPTO_SONGSFOUND=%d Dainos rasta +SONG_JUMPTO_NOSONGSFOUND=Nerasta daina +SONG_JUMPTO_HELP=Įveskite ieškomą tekstą +SONG_JUMPTO_CATTEXT=Ieškoti: %s -PARTY_MODE=Party mode -PARTY_DIFFICULTY=Difficulty -PARTY_PLAYLIST=Playlist Mode -PARTY_PLAYLIST_ALL=All songs -PARTY_PLAYLIST_CATEGORY=Folder -PARTY_PLAYLIST_PLAYLIST=Playlist -PARTY_TEAMS=Number of teams -PARTY_TEAMS_PLAYER1=Num. of singers -PARTY_TEAMS_PLAYER2=Num. of singers -PARTY_TEAMS_PLAYER3=Num. of singers +;TODO: PARTY_MODE=Party mode +;TODO: PARTY_DIFFICULTY=Difficulty +;TODO: PARTY_PLAYLIST=Playlist Mode +;TODO: PARTY_PLAYLIST_ALL=All songs +PARTY_PLAYLIST_CATEGORY=Aplankas +;TODO: PARTY_PLAYLIST_PLAYLIST=Playlist +;TODO: PARTY_TEAMS=Number of teams +;TODO: PARTY_TEAMS_PLAYER1=Num. of singers +;TODO: PARTY_TEAMS_PLAYER2=Num. of singers +;TODO: PARTY_TEAMS_PLAYER3=Num. of singers -PARTY_LEGEND_CONTINUE=Continue +PARTY_LEGEND_CONTINUE=Tęsti -PARTY_OPTIONS_DESC=Settings for the party-game -PARTY_OPTIONS_WHEREAMI=Party Options +;TODO: PARTY_OPTIONS_DESC=Settings for the party-game +;TODO: PARTY_OPTIONS_WHEREAMI=Party Options -PARTY_PLAYER_DESC=Enter player- and teamnames! -PARTY_PLAYER_WHEREAMI=Party Names -PARTY_PLAYER_ENTER_NAME=Enter names +;TODO: PARTY_PLAYER_DESC=Enter player- and teamnames! +;TODO: PARTY_PLAYER_WHEREAMI=Party Names +PARTY_PLAYER_ENTER_NAME=Įveskite pavadinimus -PARTY_ROUNDS_DESC=Select which modes you want to play -PARTY_ROUNDS_WHEREAMI=Party Rounds -PARTY_ROUNDS_LEGEND_CONTINUE=Start party-game -PARTY_ROUNDCOUNT=Number of rounds -PARTY_SELECTMODE=Round %d +;TODO: PARTY_ROUNDS_DESC=Select which modes you want to play +;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds +;TODO: PARTY_ROUNDS_LEGEND_CONTINUE=Start party-game +;TODO: PARTY_ROUNDCOUNT=Number of rounds +;TODO: PARTY_SELECTMODE=Round %d -PARTY_ROUND_DESC=Next players to the mics -PARTY_ROUND_WHEREAMI=Party Next Round -PARTY_ROUND_LEGEND_CONTINUE=Start round +;TODO: PARTY_ROUND_DESC=Next players to the mics +;TODO: PARTY_ROUND_WHEREAMI=Party Next Round +;TODO: PARTY_ROUND_LEGEND_CONTINUE=Start round -PARTY_SONG_WHEREAMI=Party Song-Selection -PARTY_SONG_LEGEND_CONTINUE=Sing -PARTY_SONG_MENU=Party menu +;TODO: PARTY_SONG_WHEREAMI=Party Song-Selection +;TODO: PARTY_SONG_LEGEND_CONTINUE=Sing +;TODO: PARTY_SONG_MENU=Party menu -PARTY_SCORE_DESC=Score of the last round -PARTY_SCORE_WHEREAMI=Party Points +;TODO: PARTY_SCORE_DESC=Score of the last round +;TODO: PARTY_SCORE_WHEREAMI=Party Points -PARTY_WIN_DESC=Winner of the party-game -PARTY_WIN_WHEREAMI=Party Winner -PARTY_WIN_LEGEND_CONTINUE=Back to main-menu +;TODO: PARTY_WIN_DESC=Winner of the party-game +;TODO: PARTY_WIN_WHEREAMI=Party Winner +;TODO: PARTY_WIN_LEGEND_CONTINUE=Back to main-menu -PARTY_ROUND=Round -PARTY_ROUND_WINNER=Winner -PARTY_NOTPLAYEDYET=Not played yet -PARTY_NOBODY=Nobody -NEXT_ROUND=Next round: +;TODO: PARTY_ROUND=Round +PARTY_ROUND_WINNER=Nugalėtojas +;TODO: PARTY_NOTPLAYEDYET=Not played yet +PARTY_NOBODY=Niekas +;TODO: NEXT_ROUND=Next round: -PARTY_DISMISSED=Dismissed! -PARTY_SCORE_WINS=%s -PARTY_SCORE_WINS2=Wins! +;TODO: PARTY_DISMISSED=Dismissed! +;TODO: PARTY_SCORE_WINS=%s +;TODO: PARTY_SCORE_WINS2=Wins! -MODE_RANDOM_NAME=Random Mode -MODE_RANDOM_DESC=Keep yourself on your toes! The game will select a mode for you at random! +;TODO: MODE_RANDOM_NAME=Random Mode +;TODO: MODE_RANDOM_DESC=Keep yourself on your toes! The game will select a mode for you at random! -MODE_HOLDTHELINE_NAME=Hold the Line -MODE_HOLDTHELINE_DESC=Keep your rating above the line for the longest! +;TODO: MODE_HOLDTHELINE_NAME=Hold the Line +;TODO: MODE_HOLDTHELINE_DESC=Keep your rating above the line for the longest! -MODE_HOLDTHELINEBLIND_NAME=Hold the Blind -MODE_HOLDTHELINEBLIND_DESC=Keep your rating above the line for the longest, but with the notes hidden! +;TODO: MODE_HOLDTHELINEBLIND_NAME=Hold the Blind +;TODO: MODE_HOLDTHELINEBLIND_DESC=Keep your rating above the line for the longest, but with the notes hidden! -MODE_7000POINTS_NAME=Until 7000 -MODE_7000POINTS_DESC=Race to 7000 Points! +MODE_7000POINTS_NAME=Iki 7000 +;TODO: MODE_7000POINTS_DESC=Race to 7000 Points! -MODE_7000POINTSBLIND_NAME=Blind 7000 -MODE_7000POINTSBLIND_DESC=Race to 7000 points, but without seeing the notes! +MODE_7000POINTSBLIND_NAME=Aklas 7000 +;TODO: MODE_7000POINTSBLIND_DESC=Race to 7000 points, but without seeing the notes! -MODE_5000POINTS_NAME=Until 5000 -MODE_5000POINTS_DESC=Race to 5000 Points! +MODE_5000POINTS_NAME=Iki 5000 +;TODO: MODE_5000POINTS_DESC=Race to 5000 Points! -MODE_5000POINTSBLIND_NAME=Blind 5000 -MODE_5000POINTSBLIND_DESC=Race to 5000 points, but without seeing the notes! +MODE_5000POINTSBLIND_NAME=Aklas 5000 +;TODO: MODE_5000POINTSBLIND_DESC=Race to 5000 points, but without seeing the notes! -MODE_2000POINTS_NAME=Until 2000 -MODE_2000POINTS_DESC=Race to 2000 Points! +MODE_2000POINTS_NAME=Iki 2000 +;TODO: MODE_2000POINTS_DESC=Race to 2000 Points! -MODE_2000POINTSBLIND_NAME=Blind 2000 -MODE_2000POINTSBLIND_DESC=Race to 2000 points, but without seeing the notes! +MODE_2000POINTSBLIND_NAME=Aklas 2000 +;TODO: MODE_2000POINTSBLIND_DESC=Race to 2000 points, but without seeing the notes! -MODE_DUEL_NAME=Duel -MODE_DUEL_DESC=A 1v1 duel to get the highest score! +;TODO: MODE_DUEL_NAME=Duel +;TODO: MODE_DUEL_DESC=A 1v1 duel to get the highest score! -MODE_TEAMDUEL_NAME=Team Duel -MODE_TEAMDUEL_DESC=Pass The Mic! Work together to get a higher score than the other team! +;TODO: MODE_TEAMDUEL_NAME=Team Duel +;TODO: MODE_TEAMDUEL_DESC=Pass The Mic! Work together to get a higher score than the other team! -MODE_BLIND_NAME=Blind Mode -MODE_BLIND_DESC=A 1v1 duel, but with the notes hidden! +MODE_BLIND_NAME=Aklųjų režimas +;TODO: MODE_BLIND_DESC=A 1v1 duel, but with the notes hidden! -MODE_BLINDTOTAL_NAME=Total Darkness! -MODE_BLINDTOTAL_DESC=A duel, but with the notes and the lyrics hidden. Only for the brave! +;TODO: MODE_BLINDTOTAL_NAME=Total Darkness! +;TODO: MODE_BLINDTOTAL_DESC=A duel, but with the notes and the lyrics hidden. Only for the brave! -MODE_1000BLIND_NAME = +1000 Blind -MODE_1000BLIND_DESC = Gain a lead of more than 1000 points, but without seeing the notes! +MODE_1000BLIND_NAME = +1000 Aklas +;TODO: MODE_1000BLIND_DESC = Gain a lead of more than 1000 points, but without seeing the notes! -MODE_DEAF_NAME = Deaf -MODE_DEAF_DESC = Think you know the notes? Can you sing it without the acompaniment? +;TODO: MODE_DEAF_NAME = Deaf +;TODO: MODE_DEAF_DESC = Think you know the notes? Can you sing it without the acompaniment? -MODE_BLINDLYRICS_NAME = No Lyrics -MODE_BLINDLYRICS_DESC = Think you know all the lyrics? Sing with the lyrics hidden! +MODE_BLINDLYRICS_NAME = Nėra dainų +;TODO: MODE_BLINDLYRICS_DESC = Think you know all the lyrics? Sing with the lyrics hidden! -MODE_500BLIND_NAME = +500 Blind -MODE_500BLIND_DESC = Gain a lead of more than 500 points, but without seeing the notes! +MODE_500BLIND_NAME = +500 Aklas +;TODO: MODE_500BLIND_DESC = Gain a lead of more than 500 points, but without seeing the notes! -MODE_SHORTSONG_NAME = Short Song -MODE_SHORTSONG_DESC = A fast-paced 1v1 duel over half the song! +;TODO: MODE_SHORTSONG_NAME = Short Song +;TODO: MODE_SHORTSONG_DESC = A fast-paced 1v1 duel over half the song! MODE_HARDCORE_NAME=Hardcore -MODE_HARDCORE_DESC=Battle for a three-line lead on your opponent! - -STAT_MAIN=Statistics -STAT_MAIN_DESC=General -STAT_MAIN_WHEREAMI=Statistics - -STAT_OVERVIEW_INTRO=%0:s Statistics. \n Last Reset at %2:.2d.%1:.2d.%3:d -STAT_OVERVIEW_SONG=%0:d Songs(%3:d with Video), whereof %1:d already were played and %2:d were not played yet.\n The most popular Song is %5:s from %4:s. -STAT_OVERVIEW_PLAYER=Since the last Reset there were/was %0:d different Player(s).\n The best Player is %1:s with an average Score of %2:d Points.\n %3:s did the highest Score with %4:d Points. - -STAT_FORMAT_DATE=%1:.2d.%0:.2d.%2:d - -STAT_DETAIL=Statistics -STAT_DETAIL_WHEREAMI=Detail Statistics - -STAT_NEXT=Next Page -STAT_PREV=Previous Page -STAT_REVERSE=Reverse Order -STAT_PAGE=Page %0:d of %1:d pages\n (%2:d of %3:d Entrys) - -STAT_DESC_SCORES=HighScores -STAT_DESC_SCORES_REVERSED=LowScores -STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] %5:s \n (%3:s - %4:s) - -STAT_DESC_SINGERS=Best Singers -STAT_DESC_SINGERS_REVERSED=Worst Singers -STAT_FORMAT_SINGERS=%0:s \n Average Score: %1:d - -STAT_DESC_SONGS=Most popular Songs -STAT_DESC_SONGS_REVERSED=Least popular Songs -STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx sung - -STAT_DESC_BANDS=Most popular Bands -STAT_DESC_BANDS_REVERSED=Least popular Bands -STAT_FORMAT_BANDS=%0:s \n %1:dx Sung - -SCREENSHOT_SAVED=Screenshot saved -SCREENSHOT_FAILED=Couldn''t save screenshot - -INFO_FILE_SAVED=File saved -ERROR_SAVE_FILE_FAILED=Couldn''t save file -ERROR_FILE_NOT_FOUND=File not found - -ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? -EDITOR_ERROR_NO_TRACK_SELECTED=No track selected - -MSG_ERROR_TITLE=Error -MSG_INFO_TITLE=Information -MSG_QUESTION_TITLE=Question -MSG_QUIT_USDX=Really leave UltraStar? -MSG_END_PARTY=Really leave Party Mode? - -ERROR_NO_SONGS=No Songs loaded -ERROR_NO_PLUGINS=No Plugins loaded -ERROR_NO_MODES_FOR_CURRENT_SETUP=No modes available for current player/team setup -ERROR_CAN_NOT_START_PARTY=An error occurred starting the party game -ERROR_CORRUPT_SONG=Song could not be loaded. -ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Song could not be loaded: File not found -ERROR_CORRUPT_SONG_NO_NOTES=Song could not be loaded: Can''t find any notes -ERROR_CORRUPT_SONG_NO_BREAKS=Song could not be loaded: Can''t find any linebreaks -ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song could not be loaded: Error parsing line %0:d -ERROR_NO_EDITOR=This feature is not available on this version. -ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options -ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options - -SING_OPTIONS_NETWORK=Internet -SING_OPTIONS_NETWORK_WHEREAMI=Internet Options -SING_OPTIONS_NETWORK_DESC=Internet General Settings -SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... -SING_OPTIONS_NETWORK_WEBSITE=Website -SING_OPTIONS_NETWORK_USERNAME=Username -SING_OPTIONS_NETWORK_PASSWORD=Password -SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name -SING_OPTIONS_NETWORK_AUTO_MODE=Auto -SING_OPTIONS_NETWORK_AUTO_PLAYER=Player -SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) -SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) -SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) -SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! -SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? -SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert -SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete - -OPTION_PLAYER_1=Player 1 -OPTION_PLAYER_2=Player 2 -OPTION_PLAYER_3=Player 3 -OPTION_PLAYER_4=Player 4 -OPTION_PLAYER_5=Player 5 -OPTION_PLAYER_6=Player 6 -OPTION_ALL_PLAYERS=All -OPTION_ALL_SCORES=All -OPTION_VALUE_SAVE=Save -OPTION_VALUE_SEND=Send +;TODO: MODE_HARDCORE_DESC=Battle for a three-line lead on your opponent! + +STAT_MAIN=Statistika +;TODO: STAT_MAIN_DESC=General +STAT_MAIN_WHEREAMI=Statistika + +;TODO: STAT_OVERVIEW_INTRO=%0:s Statistics. \n Last Reset at %2:.2d.%1:.2d.%3:d +;TODO: STAT_OVERVIEW_SONG=%0:d Songs(%3:d with Video), whereof %1:d already were played and %2:d were not played yet.\n The most popular Song is %5:s from %4:s. +;TODO: STAT_OVERVIEW_PLAYER=Since the last Reset there were/was %0:d different Player(s).\n The best Player is %1:s with an average Score of %2:d Points.\n %3:s did the highest Score with %4:d Points. + +;TODO: STAT_FORMAT_DATE=%1:.2d.%0:.2d.%2:d + +STAT_DETAIL=Statistika +;TODO: STAT_DETAIL_WHEREAMI=Detail Statistics + +STAT_NEXT=Kitas puslapis +STAT_PREV=Ankstesnis puslapis +STAT_REVERSE=Atvirkštinė tvarka +;TODO: STAT_PAGE=Page %0:d of %1:d \n Entries %2:d of %3:d + +;TODO: STAT_DESC_SCORES=HighScores +;TODO: STAT_DESC_SCORES_REVERSED=LowScores +;TODO: STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] %5:s \n (%3:s - %4:s) + +STAT_DESC_SINGERS=Geriausi dainininkai +;TODO: STAT_DESC_SINGERS_REVERSED=Worst Singers +;TODO: STAT_FORMAT_SINGERS=%0:s \n Average Score: %1:d + +STAT_DESC_SONGS=Populiariausi dainos +;TODO: STAT_DESC_SONGS_REVERSED=Least popular Songs +;TODO: STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx sung + +;TODO: STAT_DESC_BANDS=Most popular Bands +;TODO: STAT_DESC_BANDS_REVERSED=Least popular Bands +;TODO: STAT_FORMAT_BANDS=%0:s \n %1:dx Sung + +;TODO: SCREENSHOT_SAVED=Screenshot saved +;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot + +;TODO: INFO_FILE_SAVED=File saved +;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file +ERROR_FILE_NOT_FOUND=Failas nerastas + +;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? + +MSG_ERROR_TITLE=Klaida +;TODO: MSG_INFO_TITLE=Information +;TODO: MSG_QUESTION_TITLE=Question +;TODO: MSG_QUIT_USDX=Really leave UltraStar? +;TODO: MSG_END_PARTY=Really leave Party Mode? + +;TODO: ERROR_NO_SONGS=No Songs loaded +;TODO: ERROR_NO_PLUGINS=No Plugins loaded +;TODO: ERROR_NO_MODES_FOR_CURRENT_SETUP=No modes available for current player/team setup +;TODO: ERROR_CAN_NOT_START_PARTY=An error occurred starting the party game +;TODO: ERROR_CORRUPT_SONG=Song could not be loaded. +;TODO: ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Song could not be loaded: File not found +;TODO: ERROR_CORRUPT_SONG_NO_NOTES=Song could not be loaded: Can''t find any notes +;TODO: ERROR_CORRUPT_SONG_NO_BREAKS=Song could not be loaded: Can''t find any linebreaks +;TODO: ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song could not be loaded: Error parsing line %0:d +;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your microphone options +;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your microphone options + +SING_OPTIONS_NETWORK=Internetas +SING_OPTIONS_NETWORK_WHEREAMI=Interneto nustatymai +;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings +;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... +;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website +SING_OPTIONS_NETWORK_USERNAME=Vartotojo vardas +SING_OPTIONS_NETWORK_PASSWORD=Slaptažodis +;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name +;TODO: SING_OPTIONS_NETWORK_AUTO_MODE=Auto +SING_OPTIONS_NETWORK_AUTO_PLAYER=Žaidėjas +SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Siųsti (Lengva) +SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Siųsti (Vidutinis) +SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Siųsti (Sunku) +;TODO: SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! +;TODO: SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? +SING_OPTIONS_NETWORK_LEGEND_INSERT=Įdėti +SING_OPTIONS_NETWORK_LEGEND_DELETE=Ištrinti + +OPTION_PLAYER_1=Žaidėjas 1 +OPTION_PLAYER_2=Žaidėjas 2 +OPTION_PLAYER_3=Žaidėjas 3 +OPTION_PLAYER_4=Žaidėjas 4 +OPTION_PLAYER_5=Žaidėjas 5 +OPTION_PLAYER_6=Žaidėjas 6 +;TODO: OPTION_ALL_PLAYERS=All +;TODO: OPTION_ALL_SCORES=All +;TODO: OPTION_VALUE_SAVE=Save +OPTION_VALUE_SEND=Siųsti MSG_INSERT_USER_TITLE=%0:s -MSG_INSERT_USER_DESC=Fill the fields: -MSG_INSERT_USER_ADD=Add -MSG_INSERT_USER_CANCEL=Cancel - -WEBSITE_NO_CONNECTION=No website connection! -WEBSITE_LOGIN_ERROR=Login Incorrect! -WEBSITE_BLANK_LOGIN=There are blank fields! -WEBSITE_EXIST_USER=Existing user! -WEBSITE_ERROR_SCORE=Scoring Error! -WEBSITE_OK_SEND=Score sent successfully! -WEBSITE_ERROR_SCORE_DUPLICATED=Existing Score! -WEBSITE_ERROR_SONG=Song Not Found! -WEBSITE_SAVE_SCORE=Score save successfully! -WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? - -SONG_MENU_REFRESH_SCORES=Update Scores -SONG_MENU_REFRESH_SCORES_TITLE=Update -SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! -SONG_MENU_REFRESH_SCORES_ONLINE=Online -SONG_MENU_REFRESH_SCORES_FILE=File -SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites -SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs -SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song -SONG_MENU_REFRESH_SCORES_REFRESH=Update -SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! -SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! - -SONG_SCORE_MAX=Best: -SONG_SCORE_MEDIA=Average: - -SCORE_SEND_DESC=Send Score -SCORE_SEND=Send -SCORE_SEND_PLAYER=Player -SCORE_SEND_OTHER_USER= Other Username -SCORE_SAVE=Save - -SCORE_DOWNLOAD_TITLE=Download -SCORE_DOWNLOAD_SONG=Song: -SCORE_DOWNLOAD_CREATE_LIST=Preparing List... -SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... -SCORE_DOWNLOAD_CANCEL=Cancel -SCORE_DOWNLOAD_OK=OK -SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! - -SING_OPTIONS_GAME_SHOWSCORES=Show Scores -OPTION_VALUE_WHEN_EXISTS=When Exists - -PARTY_SELECT_MODE=Mode -PARTY_MODE_CLASSIC=Classic -PARTY_MODE_CLASSIC_FREE=Classic Free -PARTY_MODE_CHALLENGE=Challenge -PARTY_MODE_TOURNAMENT=Tournament -PARTY_MODE_JUKEBOX=Jukebox -PARTY_MODE_NOT_AVAILABLE=Not Available! - -PARTY_MODE_TOURNAMENT_PLAYER_DESC=Insert number and players name -PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Number of Players -PARTY_MODE_TOURNAMENT_OPTIONS_DESC=Number of rounds -PARTY_MODE_TOURNAMENT_ROUNDS_FINAL=Final -PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Semifinals -PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Quarterfinals -PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL=Round of 16 -PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Next players to the mics -PARTY_MODE_TOURNAMENT_WIN_DESC=Round result -PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! - -EDIT_TITLE=Title: -EDIT_ARTIST=Artist: -EDIT_MP3=MP3: -EDIT_BPM=BPM: -EDIT_GAP=GAP: -EDIT_COVER=Cover: -EDIT_BACKGROUND=Background: - -EDIT_START=Start: -EDIT_DURATION=Duration: -EDIT_TONE=Tone: -EDIT_LYRIC=Lyric: -EDIT_VIDEOGAP=Video Gap: -EDIT_VOLUME_AUDIO=Audio Volume: -EDIT_VOLUME_MIDI=Midi Volume: -EDIT_VOLUME_CLICK=Click Volume: -INFO_UNDO=Undo last operation - -INFO_FILE_SAVED=File saved -INFO_TIME_FIXED=Timings corrected -INFO_CAPITALIZE=Capitalization corrected -INFO_EXIT=Do you want leave editor without save ? -INFO_SONG_RELOADED=Song reloaded -INFO_DIVIDED_BPM=BPM Divided -INFO_MULTIPLIED_BPM=BPM Multiplied -INFO_PLAY_SONG=Play song -INFO_PLAY_SENTENCE=Play sentence -INFO_CURRENT_LINE=Line: -INFO_CURRENT_NOTE=Note: - -INFO_MIDI_CHANNEL_OFF= Channel %0:s off! -INFO_MIDI_CHANNEL_RESET= All channel's on! - -MSG_END_JUKEBOX=Do you want leave Jukebox Mode? -JUKEBOX_RANDOM=Random -JUKEBOX_REPEAT=Repeat -JUKEBOX_FIND=Find: -JUKEBOX_SORT=Sort: -JUKEBOX_SONGLIST=List of Songs - -SING_ERROR_DUET_MODE_PARTY = Duet! Not playable in Party Mode! - -SONG_MENU_SONG=Song -SONG_MENU_MEDLEY=Medley -SONG_MENU_SORTING=Sort -SONG_MENU_EXTRA=Extra - -SONG_MENU_NAME_SONG=Song Menu -SONG_MENU_NAME_MEDLEY=Medley Menu -SONG_MENU_ADD_SONG=Add Song -SONG_MENU_DELETE_SONG=Delete Song -SONG_MENU_START_MEDLEY=Sing! -SONG_MENU_START_5_MEDLEY=Sing %0:d Songs! - -SONG_MENU_NAME_SORTING=Sort Menu -SONG_MENU_SORTING_TABS_ON=Tabs On -SONG_MENU_SORTING_TABS_OFF=Tabs Off -SONG_MENU_SORTING_ALL=All -SONG_MENU_SORTING_DUET=Duets -SONG_MENU_SORTING_APPLY=Apply - -SING_OPTIONS_WEBCAM=Webcam -SING_OPTIONS_WEBCAM_DESC=Webcam Settings -SING_OPTIONS_WEBCAM_WHEREAMI=Webcam Options -SING_OPTIONS_WEBCAM_ID=Webcam -SING_OPTIONS_WEBCAM_RESOLUTION=Resolution -SING_OPTIONS_WEBCAM_FPS=FPS -SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! -SING_OPTIONS_WEBCAM_FLIP=Flip -SING_OPTIONS_WEBCAM_EFFECT=Effect -SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -SING_OPTIONS_WEBCAM_SATURATION=Saturation -SING_OPTIONS_WEBCAM_HUE=Hue -SING_OPTIONS_WEBCAM_PREVIEW=Activate preview -SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview -SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview - -SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal -SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Grayscale -SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Black & White -SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negative -SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image -SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate -SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Threshold -SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges -SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur -SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized -SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode - -PARTY_PLAYLIST_MANUAL=Manual Selection -PARTY_MODE_JUKEBOX_NO_SONGS=Playlist is empty! -SONG_MENU_OPEN_CATEGORY=Open category -SONG_MENU_CLOSE_CATEGORY=Close category -SONG_MENU_START_JUKEBOX=Start Jukebox! -SONG_MENU_NAME_JUKEBOX=Menu Jukebox - -WEBSITE_EXIST_SONG=The song belongs to the website: %0:s -WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! - -NAME_PLAYERS_COUNT=Number of Players -NAME_CURRENT_PLAYER=Player - -SING_OPTIONS_GAME_SONGMENU=Song Menu -OPTION_VALUE_ROULETTE=Roulette -OPTION_VALUE_CHESSBOARD=Chessboard -OPTION_VALUE_CAROUSEL=Carousel -OPTION_VALUE_SLOT_MACHINE=Slot Machine -OPTION_VALUE_LIST=List -OPTION_VALUE_MOSAIC=Tile - -SING_OPTIONS_JUKEBOX=Jukebox -SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox -SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options - -OPTION_VALUE_TO_SING=Sing -OPTION_VALUE_ACTUAL=Actual -OPTION_VALUE_NEXT=Next -OPTION_VALUE_OTHER=Other -OPTION_VALUE_FILL=Fill -OPTION_VALUE_OUTLINE=Outline -OPTION_VALUE_GRAY=Gray -OPTION_VALUE_WHITE=White -OPTION_VALUE_TURQUOISE=Turquoise -OPTION_VALUE_SALMON=Salmon -OPTION_VALUE_GREENYELLOW=GreenYellow -OPTION_VALUE_LAVENDER=Lavender -OPTION_VALUE_BEIGE=Beige -OPTION_VALUE_TEAL=Teal -OPTION_VALUE_ORCHID=Orchid -OPTION_VALUE_STEELBLUE=Steel Blue -OPTION_VALUE_PLUM=Plum -OPTION_VALUE_CHOCOLATE=Chocolate -OPTION_VALUE_GOLD=Gold -OPTION_VALUE_DARKBLUE=Dark Blue -OPTION_VALUE_SKY=Sky -OPTION_VALUE_HARLEQUIN=Harlequin -OPTION_VALUE_CYAN=Cyan -OPTION_VALUE_FLAME=Flame - -JUKEBOX_SONGOPTIONS_VIDEO=Video Options -JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect -JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width -JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height -JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options -JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size -JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Transparency -JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Color -JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line -JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property -JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Red -JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Green -JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blue - -JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch -JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop -JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=LetterBox - -JUKEBOX_SONGOPTIONS_SAVE=Save -JUKEBOX_SONGOPTIONS_CLOSE=Close -JUKEBOX_SONGOPTIONS_DEFAULT=Default -JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Saved! - -SING_SONG_CREDITS=Credits +;TODO: MSG_INSERT_USER_DESC=Fill the fields: +MSG_INSERT_USER_ADD=Papildyti +MSG_INSERT_USER_CANCEL=Atšaukti + +;TODO: WEBSITE_NO_CONNECTION=No website connection! +WEBSITE_LOGIN_ERROR=Neteisingas prisijungimas! +;TODO: WEBSITE_BLANK_LOGIN=There are blank fields! +;TODO: WEBSITE_EXIST_USER=Existing user! +;TODO: WEBSITE_ERROR_SCORE=Scoring Error! +;TODO: WEBSITE_OK_SEND=Score sent successfully! +;TODO: WEBSITE_ERROR_SCORE_DUPLICATED=Existing Score! +;TODO: WEBSITE_ERROR_SONG=Song Not Found! +;TODO: WEBSITE_SAVE_SCORE=Score save successfully! +;TODO: WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? + +;TODO: SONG_MENU_REFRESH_SCORES=Update Scores +;TODO: SONG_MENU_REFRESH_SCORES_TITLE=Update +;TODO: SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! +;TODO: SONG_MENU_REFRESH_SCORES_ONLINE=Online +;TODO: SONG_MENU_REFRESH_SCORES_FILE=File +;TODO: SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites +SONG_MENU_REFRESH_SCORES_ALL_SONGS=Visos dainos +SONG_MENU_REFRESH_SCORES_ONLY_SONG=Ši daina +;TODO: SONG_MENU_REFRESH_SCORES_REFRESH=Update +;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! +;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! + +;TODO: SONG_SCORE_MAX=Best: +SONG_SCORE_MEDIA=Vidurkis: + +;TODO: SCORE_SEND_DESC=Send Score +SCORE_SEND=Siųsti +SCORE_SEND_PLAYER=Žaidėjas +;TODO: SCORE_SEND_OTHER_USER= Other Username +;TODO: SCORE_SAVE=Save + +SCORE_DOWNLOAD_TITLE=Parsisiųsti +SCORE_DOWNLOAD_SONG=Daina: +;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... +;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... +SCORE_DOWNLOAD_CANCEL=Atšaukti +SCORE_DOWNLOAD_OK=Gerai +;TODO: SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! + +;TODO: SING_OPTIONS_GAME_SHOWSCORES=Show Scores +;TODO: OPTION_VALUE_WHEN_EXISTS=When Exists + +;TODO: PARTY_SELECT_MODE=Mode +;TODO: PARTY_MODE_CLASSIC=Classic +;TODO: PARTY_MODE_CLASSIC_FREE=Classic Free +PARTY_MODE_CHALLENGE=Iššūkis +PARTY_MODE_TOURNAMENT=Turnyras +;TODO: PARTY_MODE_JUKEBOX=Jukebox +;TODO: PARTY_MODE_NOT_AVAILABLE=Not Available! + +;TODO: PARTY_MODE_TOURNAMENT_PLAYER_DESC=Insert number and players name +;TODO: PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Number of Players +;TODO: PARTY_MODE_TOURNAMENT_OPTIONS_DESC=Number of rounds +;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_FINAL=Final +;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Semifinals +;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Quarterfinals +;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL=Round of 16 +;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Next players to the mics +;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result +;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! + +;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! +;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! + +;TODO: MSG_END_JUKEBOX=Do you want leave Jukebox Mode? +;TODO: JUKEBOX_RANDOM=Random +JUKEBOX_REPEAT=Pakartokite +JUKEBOX_FIND=Rasti: +JUKEBOX_SORT=Rūšiuoti: +;TODO: JUKEBOX_SONGLIST=List of Songs + +;TODO: SING_ERROR_DUET_MODE_PARTY = Duet! Not playable in Party Mode! + +SONG_MENU_SONG=Daina +;TODO: SONG_MENU_MEDLEY=Medley + +;TODO: SONG_MENU_NAME_SONG=Song Menu +;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu +;TODO: SONG_MENU_ADD_SONG=Add Song +;TODO: SONG_MENU_DELETE_SONG=Delete Song +;TODO: SONG_MENU_START_MEDLEY=Sing! +;TODO: SONG_MENU_START_5_MEDLEY=Sing %0:d Songs! + +;TODO: SONG_MENU_NAME_SORTING=Sort Menu +;TODO: SONG_MENU_SORTING_TABS_ON=Tabs On +;TODO: SONG_MENU_SORTING_TABS_OFF=Tabs Off +;TODO: SONG_MENU_SORTING_ALL=All +;TODO: SONG_MENU_SORTING_DUET=Duets +;TODO: SONG_MENU_SORTING_APPLY=Apply + +;TODO: SING_OPTIONS_WEBCAM=Webcam +;TODO: SING_OPTIONS_WEBCAM_DESC=Webcam Settings +;TODO: SING_OPTIONS_WEBCAM_WHEREAMI=Webcam Options +;TODO: SING_OPTIONS_WEBCAM_ID=Webcam +SING_OPTIONS_WEBCAM_RESOLUTION=Rezoliucija +;TODO: SING_OPTIONS_WEBCAM_FPS=FPS +;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! +;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip +SING_OPTIONS_WEBCAM_EFFECT=Efektas +SING_OPTIONS_WEBCAM_BRIGHTNESS=Ryškumas +;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation +;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +;TODO: SING_OPTIONS_WEBCAM_PREVIEW=Activate preview +;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview +;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview + +SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normalus +;TODO: SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Grayscale +;TODO: SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Black & White +;TODO: SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negative +;TODO: SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image +;TODO: SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate +SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Slenkstis +;TODO: SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges +;TODO: SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur +;TODO: SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized +;TODO: SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode + +;TODO: PARTY_PLAYLIST_MANUAL=Manual Selection +;TODO: PARTY_MODE_JUKEBOX_NO_SONGS=Playlist is empty! +;TODO: SONG_MENU_OPEN_CATEGORY=Open category +;TODO: SONG_MENU_CLOSE_CATEGORY=Close category +;TODO: SONG_MENU_START_JUKEBOX=Start Jukebox! +;TODO: SONG_MENU_NAME_JUKEBOX=Menu Jukebox + +;TODO: WEBSITE_EXIST_SONG=The song belongs to the website: %0:s +;TODO: WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! + +NAME_PLAYERS_COUNT=Žaidėjų skaičius +NAME_CURRENT_PLAYER=Žaidėjas + +SING_OPTIONS_GAME_SONGMENU=Daina Meniu +OPTION_VALUE_ROULETTE=Ruletė +OPTION_VALUE_CHESSBOARD=Šachmatų lenta +OPTION_VALUE_CAROUSEL=Karuselė +OPTION_VALUE_SLOT_MACHINE=Lošimų automatas +OPTION_VALUE_LIST=Sąrašas +;TODO: OPTION_VALUE_MOSAIC=Tile + +;TODO: SING_OPTIONS_JUKEBOX=Jukebox +;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox +;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options + +;TODO: OPTION_VALUE_TO_SING=Sing +OPTION_VALUE_ACTUAL=Viršutinė +OPTION_VALUE_NEXT=Apatinė +;TODO: OPTION_VALUE_OTHER=Other +;TODO: OPTION_VALUE_FILL=Fill +;TODO: OPTION_VALUE_OUTLINE=Outline +;TODO: OPTION_VALUE_GRAY=Gray +OPTION_VALUE_WHITE=Balta +;TODO: OPTION_VALUE_TURQUOISE=Turquoise +;TODO: OPTION_VALUE_SALMON=Salmon +;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow +OPTION_VALUE_LAVENDER=Levanda +;TODO: OPTION_VALUE_BEIGE=Beige +;TODO: OPTION_VALUE_TEAL=Teal +;TODO: OPTION_VALUE_ORCHID=Orchid +;TODO: OPTION_VALUE_STEELBLUE=Steel Blue +;TODO: OPTION_VALUE_PLUM=Plum +OPTION_VALUE_CHOCOLATE=Šokoladas +OPTION_VALUE_GOLD=Auksas +;TODO: OPTION_VALUE_DARKBLUE=Dark Blue +OPTION_VALUE_SKY=Dangus +;TODO: OPTION_VALUE_HARLEQUIN=Harlequin +;TODO: OPTION_VALUE_CYAN=Cyan +;TODO: OPTION_VALUE_FLAME=Flame + +JUKEBOX_SONGOPTIONS_VIDEO=Vaizdo parinktys +JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspektas +JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Plotis +JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Aukštis +;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options +JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Dydis +JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Pozicija +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Skaidrumas +JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Spalva +JUKEBOX_SONGOPTIONS_LYRIC_LINE=Linija +JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Nuosavybė +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Raudona +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Žalias +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Mėlyna + +JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Tempkite +JUKEBOX_SONGOPTIONS_VIDEO_CROP=Apkarpyti +;TODO: JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=LetterBox + +JUKEBOX_SONGOPTIONS_SAVE=Sutaupyti +JUKEBOX_SONGOPTIONS_CLOSE=Uždaryti +JUKEBOX_SONGOPTIONS_DEFAULT=Numatytas +JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Išsaugotas! + +SING_SONG_CREDITS=Kreditai SING_JUKEBOX=Jukebox -SING_JUKEBOX_DESC=Listen to my collection -JUKEBOX_MODE=Jukebox Mode -JUKEBOX_OPTIONS_DESC=Playlist Options -JUKEBOX_OPTIONS_WHEREAMI=Jukebox Options -JUKEBOX_OPTIONS_PLAYLIST=Playlist -JUKEBOX_OPTIONS_PLAYLIST_MODE=Mode - -SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing -SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores -OPTION_VALUE_ALL=All -OPTION_VALUE_PLAYER=Player - -SING_ABOUT=About -SING_ABOUT_DESC=About Ultrastar Deluxe WorldParty -ABOUT_MAIN=About... -ABOUT_MAIN_DESC=Ultrastar Deluxe WorldParty -ABOUT_MAIN_WHEREAMI=About... -ABOUT_USDX_CREDITS=Credits +SING_JUKEBOX_DESC=Klausyk mano kolekciją +JUKEBOX_MODE=Jukebox režimas +JUKEBOX_OPTIONS_DESC=Grojaraščio parinktys +JUKEBOX_OPTIONS_WHEREAMI=Jukebox parinktys +JUKEBOX_OPTIONS_PLAYLIST=Grojaraštis +JUKEBOX_OPTIONS_PLAYLIST_MODE=Režimas + +SING_OPTIONS_ADVANCED_SINGSCORES=Dainos rezultatai +SING_OPTIONS_ADVANCED_TOPSCORES=Geriausi rezultatai +OPTION_VALUE_ALL=Visi +OPTION_VALUE_PLAYER=Žaidėjas + +SING_ABOUT=Apie +SING_ABOUT_DESC=Apie Ultrastar Deluxe WorldParty +ABOUT_MAIN=Apie... ABOUT_USDX_DEVELOPEDBY=Sukūrė -ABOUT_OVERVIEW=Discover a new way of singing, alone, in couple, or with friends. \n Fun is guaranteed.\n\nWorldParty is a fork of the original version Ultrastar Deluxe 1.1 designed and developed by UltraStar España Team, it counts with the biggest karaoke community.\n\n\nThis program is free and libre under the GPL license. \n\n Visit us for more information.\n\nhttp://ultrastar-es.org - - -DEVELOPERS_TITLE=Sukūrė -DEVELOPERS_OVERVIEW=Žmonės, prisidėję prie šio projekto:\n\n\nZup3r_vock\n\nDaniel20\n\n\n\n Visit us for more information.\n\nhttp://ultrastar-es.org +ABOUT_CHECK_CHECKING=Naujų naujinių tikrinimas... +ABOUT_CHECK_AVAILABLE=Yra nauja versija +ABOUT_CHECK_UPTODATE=WorldParty yra atnaujintas +ABOUT_CHECK_CONNECTION=Nėra interneto ryšio +ABOUT_OVERVIEW=Atraskite naują būdą dainuoti vieni, poroje ar drauge. \n Pramogos yra garantuotos.\n\nWorldParty yra Ultrastar Deluxe 1.1 originalios versijos šakutės sukurta ir sukurta UltraStar España Team, tai skaičiuojama su didžiausia karaoke bendruomene.\n\n\nŠi programa yra nemokama ir nemokama pagal GPL licenciją. \n\n Aplankykite mus, jei norite gauti daugiau informacijos.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Sukurta +DEVELOPERS_OVERVIEW=Žmonės, prisidėję prie šio projekto:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Visit us for more information.\n\nhttps://ultrastar-es.org diff --git "a/game/languages/L\303\253tzebuergesch.ini" "b/game/languages/L\303\253tzebuergesch.ini" index ff7e2077..e56ffcc0 100644 --- "a/game/languages/L\303\253tzebuergesch.ini" +++ "b/game/languages/L\303\253tzebuergesch.ini" @@ -16,14 +16,14 @@ OPTION_VALUE_TITLE=Titel OPTION_VALUE_ARTIST=Kënschtler OPTION_VALUE_TITLE2=Titel2 OPTION_VALUE_ARTIST2=Kënschtler2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade +OPTION_VALUE_YEAR=Joer +OPTION_VALUE_DECADE=Joerzéngt OPTION_VALUE_PLAYLIST=Playlist ;TODO: OPTION_VALUE_BORDERLESS=Borderless OPTION_VALUE_WHENNOVIDEO=Wa kee Video -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Wa kee Video an Image sinn OPTION_VALUE_SMALL=Kleng OPTION_VALUE_BIG=Grouss @@ -68,12 +68,8 @@ OPTION_VALUE_SING=Sangen OPTION_VALUE_SELECT_PLAYERS=Spiller auswielen OPTION_VALUE_OPEN_MENU=Menü opmaachen -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -OPTION_VALUE_HARDWARE_CURSOR=Hardware Zeiger -OPTION_VALUE_SOFTWARE_CURSOR=Software Zeiger - SING_LOADING=Lueden... +;TODO: SING_LOADING_SONGS=Loading songs from folder %s SING_CHOOSE_MODE=Wielt e Modus aus SING_SING=Sangen @@ -87,9 +83,6 @@ SING_TOOLS=Geschir SING_STATS=Statistiken SING_STATS_DESC=Kuckt d'Statistiken un -SING_EDITOR=Editor -SING_EDITOR_DESC=Erstellt Är eege Lidder - SING_GAME_OPTIONS=Optiounen SING_GAME_OPTIONS_DESC=Ännert d'Astellunge vum Spill @@ -103,10 +96,9 @@ SING_OPTIONS_WHEREAMI=Optiounen SING_OPTIONS_GAME=Spill SING_OPTIONS_GRAPHICS=Graphik SING_OPTIONS_SOUND=Toun -;TODO: SING_OPTIONS_INPUT=Input SING_OPTIONS_LYRICS=Lyric SING_OPTIONS_THEMES=Design -SING_OPTIONS_RECORD=Mikro +SING_OPTIONS_MICROPHONES=Mikro SING_OPTIONS_ADVANCED=Erweidert SING_OPTIONS_EXIT=Zeréck @@ -117,15 +109,16 @@ SING_OPTIONS_GAME_DIFFICULTY=Schwieregkeet SING_OPTIONS_GAME_LANGUAGE=Sprooch SING_OPTIONS_GAME_TABS=Ordner SING_OPTIONS_GAME_SORTING=Zortéieren no -SING_OPTIONS_GAME_DEBUG=Debug +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Aktivéieren gamepad SING_OPTIONS_GRAPHICS_WHEREAMI=Graphikoptiounen SING_OPTIONS_GRAPHICS_DESC=Graphikastellungen SING_OPTIONS_GRAPHICS_RESOLUTION=Ofléisung SING_OPTIONS_GRAPHICS_FULLSCREEN=Vollbild -SING_OPTIONS_GRAPHICS_DEPTH=Faarfdéift +SING_OPTIONS_GRAPHICS_EFFECTSING=Sangeffekt +SING_OPTIONS_GRAPHICS_SCREENFADE=Bildschierm-Faden +SING_OPTIONS_GRAPHICS_LOADANIMATION=Lued-Animatioun SING_OPTIONS_GRAPHICS_VISUALIZER=Visualiséierung -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oszilloskop SING_OPTIONS_GRAPHICS_LINEBONUS=Sazbonus SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Videogréisst @@ -133,20 +126,13 @@ SING_OPTIONS_SOUND_WHEREAMI=Tounoptiounen SING_OPTIONS_SOUND_DESC=Tounastellungen SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Mikro lauschteren SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Hannergrondmusik -SING_OPTIONS_SOUND_MIC_BOOST=Mikro-Unhiewung SING_OPTIONS_SOUND_CLICK_ASSIST=Click-Assistent SING_OPTIONS_SOUND_BEAT_CLICK=Metronom -SING_OPTIONS_SOUND_THRESHOLD=Rauschënnerdrëck. SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=2-Spiller-Modus ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Iwwerbléck Lautst. SING_OPTIONS_SOUND_PREVIEWFADING=Iwwerbléck Fading -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - SING_OPTIONS_LYRICS_WHEREAMI=Lyricsoptiounen SING_OPTIONS_LYRICS_DESC=Lyricsastellungen SING_OPTIONS_LYRICS_FONT=Schrëftart @@ -160,43 +146,36 @@ SING_OPTIONS_THEMES_THEME=Design SING_OPTIONS_THEMES_SKIN=Skin SING_OPTIONS_THEMES_COLOR=Faarf -SING_OPTIONS_RECORD_WHEREAMI=Opzeechnungsoptiounen -SING_OPTIONS_RECORD_DESC=Mikrofonastellungen -SING_OPTIONS_RECORD_CARD=Soundkaart -SING_OPTIONS_RECORD_INPUT=Agank -SING_OPTIONS_RECORD_CHANNEL=Kanal +SING_OPTIONS_MICROPHONES_WHEREAMI=Opzeechnungsoptiounen +SING_OPTIONS_MICROPHONES_DESC=Mikrofonastellungen +SING_OPTIONS_MICROPHONES_CARD=Soundkaart +SING_OPTIONS_MICROPHONES_INPUT=Agank +SING_OPTIONS_MICROPHONES_CHANNEL=Kanal +SING_OPTIONS_MICROPHONES_THRESHOLD=Rauschënnerdrëck. +SING_OPTIONS_MICROPHONES_MIC_BOOST=Mikro-Unhiewung. SING_OPTIONS_ADVANCED_WHEREAMI=Erweidert Optiounen SING_OPTIONS_ADVANCED_DESC=Erweidert Astellungen -SING_OPTIONS_ADVANCED_EFFECTSING=Sangeffekt -SING_OPTIONS_ADVANCED_SCREENFADE=Bildschierm-Faden -SING_OPTIONS_ADVANCED_LOADANIMATION=Lued-Animatioun +SING_OPTIONS_ADVANCED_DEBUG=Debug +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Oszilloskop SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Sécherheetsfro SING_OPTIONS_ADVANCED_LINEBONUS=Sazbonus -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=No Liddauswiel SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto Partymenü -SING_EDIT=Editor -SING_EDIT_MENU_DESCRIPTION=Erstellt Är eege Lidder - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Midi/Kar Datei als Text exportéieren -SING_EDIT_BUTTON_DESCRIPTION_EXIT=Zeréck -SING_EDIT_BUTTON_CONVERT=Importéieren -SING_EDIT_BUTTON_EXIT=Zeréck - -SING_EDIT_NAVIGATE=Navigéieren -SING_EDIT_SELECT=Auswielen -SING_EDIT_EXIT=Zeréck - SING_LEGEND_SELECT=Auswielen SING_LEGEND_NAVIGATE=Navigéieren SING_LEGEND_CONTINUE=Weider SING_LEGEND_ESC=Zeréck -SING_PLAYER_DESC=Gitt de Numm an -SING_PLAYER_WHEREAMI=Numm vum Spiller -SING_PLAYER_ENTER_NAME=Änneren +;TODO: SING_PLAYER_TITLE=Profiles +SING_PLAYER_READY=Spiller prett ze sangen +SING_PLAYER_COUNT=Zuel vu Spiller +;TODO: SING_PLAYER_EDIT=Customize a player +SING_PLAYER_NAME=Schreift Ären Numm +;TODO: SING_PLAYER_COLOR=Pick a color +SING_PLAYER_LEVEL=Wielt e Niveau +SING_PLAYER_AVATAR=Wielt Äre Avatar SING_DIFFICULTY_DESC=Gräift e Schwieregkeetsgrad eraus SING_DIFFICULTY_WHEREAMI=Schwieregkeetsgrad @@ -211,10 +190,15 @@ SING_SONG_SELECTION_GOTO=Erreechen SING_SONG_SELECTION=Liddauswiel SING_SONG_SELECTION_MENU=Menü SING_SONG_SELECTION_PLAYLIST=Playlist +SING_SONG_IN_CAT=Lidd SING_SONGS_IN_CAT=Lidder PLAYLIST_CATTEXT=Playlist: %s +;TODO: SING_SONG_SELECTION_LEGEND_TITLE=Legend +SING_SONG_SELECTION_LEGEND_VIDEO=Video +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +;TODO: SING_SONG_SELECTION_LEGEND_DUET=Duet -;TODO: SING_TIME=TIME SING_TOTAL=Am Ganzen SING_MODE=Sangmodus SING_NOTES=Nouten @@ -255,7 +239,6 @@ IMPLODE_GLUE2= an SONG_MENU_NAME_MAIN=Menü SONG_MENU_PLAY=Sangen SONG_MENU_CHANGEPLAYERS=Spiller tauschen -SONG_MENU_EDIT=Editor SONG_MENU_MODI=E Modus sangen SONG_MENU_CANCEL=Offbriechen @@ -422,7 +405,7 @@ STAT_DETAIL_WHEREAMI=Detailléiert Statistiken STAT_NEXT=Nächst Säit STAT_PREV=Vireg Säit STAT_REVERSE=Ëmkéieren -STAT_PAGE=Säit %0:d/%1:d \n (%2:d Antrag vun %3:d %3:d ) +STAT_PAGE=Säit %0:d/%1:d \n Antrag %2:d vun %3:d STAT_DESC_SCORES=Highscore STAT_DESC_SCORES_REVERSED=Schlechtst Punkten @@ -448,7 +431,6 @@ ERROR_SAVE_FILE_FAILED=Datei kann net gespäichert ginn. ERROR_FILE_NOT_FOUND=Datei net fonnt ENCODING_ERROR_ASK_FOR_UTF8=Ännerunge konnten net an der aktueller Kodéierung geséchert ginn. Op UTF-8 konvertéieren? -EDITOR_ERROR_NO_TRACK_SELECTED=Keng Spuer ausgewielt MSG_ERROR_TITLE=Feeler MSG_INFO_TITLE=Informatioun @@ -465,7 +447,6 @@ ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Lidd gëtt net gelueden: Datei gouf net fonnt. ERROR_CORRUPT_SONG_NO_NOTES=Lidd gëtt net gelueden: Et goufe keng Noute fonnt. ERROR_CORRUPT_SONG_NO_BREAKS=Lidd gëtt net gelueden: Et goufe keng Saazwiessel fonnt. ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Lidd gëtt net gelueden: Feeler beim Parze vun der Zeil %0:d -ERROR_NO_EDITOR=Den Editor geet net op Linux/Mac ERROR_PLAYER_DEVICE_ASSIGNMENT=De Spiller %d huet ze vill Mikroe gewielt. Iwwerpréift d'Opzeechnungsoptiounen. ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=De Spiller %d huet kee Mikro gewielt. Iwwerpréift d'Opzeechnungsoptiounen. @@ -565,36 +546,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Déi nächst Spiller un är Mikroen! ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -INFO_FILE_SAVED=Datei ass gespäichert. -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - ;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! ;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! @@ -609,8 +560,6 @@ INFO_FILE_SAVED=Datei ass gespäichert. ;TODO: SONG_MENU_SONG=Song ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Menü ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -638,6 +587,7 @@ SING_OPTIONS_WEBCAM_EFFECT=Effekt ;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness ;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation ;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +;TODO: SING_OPTIONS_WEBCAM_PREVIEW=Activate preview ;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview ;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview @@ -741,10 +691,15 @@ JUKEBOX_OPTIONS_PLAYLIST=Playlist OPTION_VALUE_ALL=Alles ;TODO: OPTION_VALUE_PLAYER=Player -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +SING_ABOUT=Iwwer +SING_ABOUT_DESC=Iwwer Ultrastar Deluxe WorldParty +ABOUT_MAIN=Iwwer... +;TODO: ABOUT_USDX_DEVELOPEDBY=Developed by +;TODO: ABOUT_CHECK_CHECKING=Checking for new updates... +;TODO: ABOUT_CHECK_AVAILABLE=There is a new version available +;TODO: ABOUT_CHECK_UPTODATE=WorldParty is up to date +;TODO: ABOUT_CHECK_CONNECTION=There is no Internet connection +;TODO: ABOUT_OVERVIEW=Discover a new way of singing, alone, in couple, or with friends. \n Fun is guaranteed.\n\nWorldParty is a fork of the original version Ultrastar Deluxe 1.1 designed and developed by UltraStar España Team, it counts with the biggest karaoke community.\n\n\nThis program is free and libre under the GPL license. \n\n Visit us for more information.\n\nhttps://ultrastar-es.org + +;TODO: DEVELOPERS_TITLE=Developed by +;TODO: DEVELOPERS_OVERVIEW=People who has contributed to this project:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Visit us for more information.\n\nhttps://ultrastar-es.org diff --git a/game/languages/Magyar.ini b/game/languages/Magyar.ini index 96f23476..fac1f36d 100644 --- a/game/languages/Magyar.ini +++ b/game/languages/Magyar.ini @@ -1,10 +1,71 @@ [Text] LANGUAGE=Magyar +SING_LOADING=Betöltés... +SING_LOADING_SONGS=Dalok betöltése %s + +SING_SING=Ének +SING_SING_DESC=Éneklés egyedül vagy duettben + +SING_MULTI=Buli mód +SING_MULTI_DESC=Énekelj csapatban + +SING_JUKEBOX=Zenedoboz +SING_JUKEBOX_DESC=Zenék hallgatása + +SING_STATS=Statisztika +SING_STATS_DESC=Statisztika megnézése + +SING_GAME_OPTIONS=Játék beállítások +SING_GAME_OPTIONS_DESC=Beállítások + +SING_EXIT=Kilépés +SING_EXIT_DESC=Kilépés a játékból + +SING_ABOUT=Rólunk +SING_ABOUT_DESC=Az Ultrastar Deluxe WorldParty-ról + +SING_PLAYER_TITLE=Profilok +SING_PLAYER_READY=Ezek az énekesek játszanak: +SING_PLAYER_COUNT=Játékosok száma +SING_PLAYER_EDIT=Játékos testreszabása +SING_PLAYER_NAME=Adj meg egy nevet +SING_PLAYER_COLOR=Válassz egy színt +SING_PLAYER_LEVEL=Válassz egy szintet +SING_PLAYER_AVATAR=Válassz egy avatárt + OPTION_VALUE_EASY=Könnyű OPTION_VALUE_MEDIUM=Normál OPTION_VALUE_HARD=Nehéz +SING_OPTIONS=Beállítások + +SING_OPTIONS_GAME=Játék +SING_OPTIONS_GRAPHICS=Grafika +SING_OPTIONS_SOUND=Hang +SING_OPTIONS_LYRICS=Dalszöveg +SING_OPTIONS_THEMES=Témák +SING_OPTIONS_MICROPHONES=Mikrofonok +SING_OPTIONS_ADVANCED=Haladó +SING_OPTIONS_NETWORK=Internet +SING_OPTIONS_WEBCAM=Webkamera +SING_OPTIONS_JUKEBOX=Zenedoboz +SING_OPTIONS_EXIT=Vissza + +SING_OPTIONS_GAME_LANGUAGE=Nyelv +SING_OPTIONS_GAME_SONGMENU=Dal Menü +SING_OPTIONS_GAME_TABS=Elválasztók +SING_OPTIONS_GAME_SORTING=Rendezés +SING_OPTIONS_GAME_SHOWSCORES=Pontszámok +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Gamepad aktiválás + +OPTION_VALUE_ROULETTE=Rulett +OPTION_VALUE_CHESSBOARD=Sakktábla +OPTION_VALUE_CAROUSEL=Körhinta +OPTION_VALUE_SLOT_MACHINE=Nyerőgép +OPTION_VALUE_LIST=Lista +OPTION_VALUE_MOSAIC=Csempe + OPTION_VALUE_ON=Be OPTION_VALUE_OFF=Ki @@ -14,46 +75,198 @@ OPTION_VALUE_LANGUAGE=Nyelv OPTION_VALUE_FOLDER=Mappa OPTION_VALUE_TITLE=Cím OPTION_VALUE_ARTIST=Előadó -OPTION_VALUE_TITLE2=Cím2 OPTION_VALUE_ARTIST2=Előadó2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade +OPTION_VALUE_YEAR=Év +OPTION_VALUE_DECADE=Évtized OPTION_VALUE_PLAYLIST=Számlista -;TODO: OPTION_VALUE_BORDERLESS=Borderless +OPTION_VALUE_WHEN_EXISTS=Ha létezik -OPTION_VALUE_WHENNOVIDEO=Ha nincs videó -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +SING_OPTIONS_GRAPHICS_FULLSCREEN=Teljes képernyő +SING_OPTIONS_GRAPHICS_RESOLUTION=Felbontás +SING_OPTIONS_GRAPHICS_SCREENFADE=Háttér átmenet +SING_OPTIONS_GRAPHICS_EFFECTSING=Ének effektek +SING_OPTIONS_GRAPHICS_VISUALIZER=Megjelenítés +SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Videó mérete + +OPTION_VALUE_BORDERLESS=Maximalizált -OPTION_VALUE_SMALL=Kicsi -OPTION_VALUE_BIG=Nagy +OPTION_VALUE_WHENNOVIDEO=Ha nincs videó +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Ha nincs se kép, se videó OPTION_VALUE_HALF=Fél -OPTION_VALUE_FULL_VID=Egész (Video) -OPTION_VALUE_FULL_VID_BG=Egész (háttér & Video) +OPTION_VALUE_FULL_VID=Egész (Videó) +OPTION_VALUE_FULL_VID_BG=Egész (Háttér & Videó) + +SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Mikrofon visszahallás +SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Háttér zene +SING_OPTIONS_SOUND_CLICK_ASSIST=Ütem segítség +SING_OPTIONS_SOUND_BEAT_CLICK=Ütem +SING_OPTIONS_SOUND_MUSICAUTOGAIN=Zene autó-erősítés +SING_OPTIONS_SOUND_PREVIEWVOLUME=Előzetes hangereje +SING_OPTIONS_SOUND_PREVIEWFADING=Előz. hang késleltetése -;TODO: OPTION_VALUE_GAIN_SOFT=Soft -;TODO: OPTION_VALUE_GAIN_MEDIUM=Medium -;TODO: OPTION_VALUE_GAIN_HARD=Hard +OPTION_VALUE_GAIN_SOFT=Lágy +OPTION_VALUE_GAIN_MEDIUM=Közepes +OPTION_VALUE_GAIN_HARD=Kemény OPTION_VALUE_AUTO=Automatikus OPTION_VALUE_SEC=Másodperc OPTION_VALUE_SECS=Másodperc -OPTION_VALUE_PLAIN=Egyszerű -OPTION_VALUE_OLINE1=OLine1 -OPTION_VALUE_OLINE2=OLine2 +SING_OPTIONS_LYRICS_FONT=Betűtípus +SING_OPTIONS_LYRICS_EFFECT=Effekt +SING_OPTIONS_LYRICS_NOTELINES=Hangjegyek + +OPTION_VALUE_PLAIN=Normál +OPTION_VALUE_OLINE1=Vékony él +OPTION_VALUE_OLINE2=Vastag él -OPTION_VALUE_SIMPLE=Sima -OPTION_VALUE_ZOOM=Zoom +OPTION_VALUE_SIMPLE=Egyszerű +OPTION_VALUE_ZOOM=Nagyító OPTION_VALUE_SLIDE=Csúszó OPTION_VALUE_BALL=Labda OPTION_VALUE_SHIFT=Nagy -OPTION_VALUE_EURO=Euro -OPTION_VALUE_JAPAN=Japán -OPTION_VALUE_AMERICAN=Amerikai +SING_OPTIONS_THEMES_THEME=Téma +SING_OPTIONS_THEMES_SKIN=Háttér +SING_OPTIONS_THEMES_COLOR=Szín +SING_OPTIONS_MICROPHONES_CARD=Hangkártya +SING_OPTIONS_MICROPHONES_INPUT=Bemenet +SING_OPTIONS_MICROPHONES_CHANNEL=Csatorna +SING_OPTIONS_MICROPHONES_THRESHOLD=Tűréshatár +SING_OPTIONS_MICROPHONES_MIC_BOOST=Mikr. erősítése + +SING_OPTIONS_ADVANCED_DEBUG=Hibakezelő mód +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Oszcilloszkóp +SING_OPTIONS_ADVANCED_ONSONGCLICK=Zeneválasztás után +SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Megerősítést kér +SING_OPTIONS_ADVANCED_PARTYPOPUP=Partymenü megj. +SING_OPTIONS_ADVANCED_TOPSCORES=Ranglista +SING_OPTIONS_ADVANCED_SINGSCORES=Ének Pontszámok + +OPTION_VALUE_ALL=Összes +OPTION_VALUE_PLAYER=Játékos + +SING_OPTIONS_NETWORK_INSERT_USER_INFO=Nyomd meg az "Insert"-et hogy felhasználót adj hozzá. +SING_OPTIONS_NETWORK_WEBSITE=Weboldal +SING_OPTIONS_NETWORK_USERNAME=Felhasználónév +SING_OPTIONS_NETWORK_PASSWORD=Jelszó +SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Név küldése +SING_OPTIONS_NETWORK_AUTO_MODE=Automatikus +SING_OPTIONS_NETWORK_AUTO_PLAYER=Játékos +SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-küldés (Könnyű) +SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-küldés (Normál) +SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-küldés (Nehéz) +SING_OPTIONS_NETWORK_NO_DLL=Nem találtam kompatibilis leaderboard-plugin-t! +SING_OPTIONS_NETWORK_DELETE_PLAYER=Biztos hogy törlöd %0:s , erről az oldalról %1:s? +SING_OPTIONS_NETWORK_LEGEND_INSERT=Beilleszt +SING_OPTIONS_NETWORK_LEGEND_DELETE=Töröl + +OPTION_PLAYER_1=Játékos 1 +OPTION_PLAYER_2=Játékos 2 +OPTION_PLAYER_3=Játékos 3 +OPTION_PLAYER_4=Játékos 4 +OPTION_PLAYER_5=Játékos 5 +OPTION_PLAYER_6=Játékos 6 +OPTION_ALL_PLAYERS=Összes +OPTION_ALL_SCORES=Összes +OPTION_VALUE_SAVE=Mentés +OPTION_VALUE_SEND=Küldés + +MSG_INSERT_USER_TITLE=%0:s +MSG_INSERT_USER_DESC=Töltsd ki a mezőt: +MSG_INSERT_USER_ADD=Hozzáadás +MSG_INSERT_USER_CANCEL=Mégsem + +WEBSITE_NO_CONNECTION=Nincs kapcsolat a weboldalhoz! +WEBSITE_LOGIN_ERROR=Hibás bejelentkezés! +WEBSITE_BLANK_LOGIN=Üres mező! +WEBSITE_EXIST_USER=Létező felhasználó! +WEBSITE_ERROR_SCORE=Pontszám hiba! +WEBSITE_OK_SEND=Pontszám sikeresen elküldve! +WEBSITE_ERROR_SCORE_DUPLICATED=Létező pontszám! +WEBSITE_ERROR_SONG=Dal nem található! +WEBSITE_SAVE_SCORE=Pontszám sikeresen elmentve! +WEBSITE_NO_CONNECTION_SAVE=Nincs kapcsolat a weboldalhoz! Így is elmented a felhasználót? + +SONG_MENU_REFRESH_SCORES=Pontszám frissítése +SONG_MENU_REFRESH_SCORES_TITLE=Frissítés +SONG_MENU_REFRESH_SCORES_NO_WEB=Nincsenek weboldalak! +SONG_MENU_REFRESH_SCORES_ONLINE=Online +SONG_MENU_REFRESH_SCORES_FILE=Fájl +SONG_MENU_REFRESH_SCORES_ALL_WEB=Összes weboldal +SONG_MENU_REFRESH_SCORES_ALL_SONGS=Minden dal +SONG_MENU_REFRESH_SCORES_ONLY_SONG=Ez a dal +SONG_MENU_REFRESH_SCORES_REFRESH=Frissítés +SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Hiba a weboldal kapcsolódásánál: %0:s! +SONG_MENU_REFRESH_SCORES_ERROR_FILE=Fájl nem található: '%0:s [Pontszám letöltés]'! + +SONG_SCORE_MAX=Legjobb: +SONG_SCORE_MEDIA=Átlag: + +SCORE_SEND_DESC=Pontszám küldés +SCORE_SEND=Küldés +SCORE_SEND_PLAYER=Játékos +SCORE_SEND_OTHER_USER= Másik felhasználónév +SCORE_SAVE=Mentés + +SCORE_DOWNLOAD_TITLE=Letöltés +SCORE_DOWNLOAD_SONG=Dal: +SCORE_DOWNLOAD_CREATE_LIST=Lista előkészítése... +SCORE_DOWNLOAD_RECEIVE_LIST=Letöltés... +SCORE_DOWNLOAD_CANCEL=Mégsem +SCORE_DOWNLOAD_OK=OK +SCORE_DOWNLOAD_SONG_UPDATE=%0:d dal(ok) megváltoztak a weben! + +SING_OPTIONS_WEBCAM_ID=Webkamera +SING_OPTIONS_WEBCAM_RESOLUTION=Felbontás +SING_OPTIONS_WEBCAM_FPS=FPS +SING_OPTIONS_WEBCAM_FLIP=Megfordítás +SING_OPTIONS_WEBCAM_BRIGHTNESS=Fényerő +SING_OPTIONS_WEBCAM_SATURATION=Szaturáció +SING_OPTIONS_WEBCAM_HUE=Szín +SING_OPTIONS_WEBCAM_EFFECT=Effektek +SING_OPTIONS_WEBCAM_PREVIEW=Előnézetet aktiválás + +SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Előnézet bekapcsolása +SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Előnézet kikapcsolása +SING_OPTIONS_WEBCAM_NO_WEBCAM=Webkamera nem található! +SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normál +SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Szürkeárnyalat +SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Fekete-Fehér +SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negatív +SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Bináris kép +SING_OPTIONS_WEBCAM_EFFECT_DILATE=Nyújtott +SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Tűréshatár +SING_OPTIONS_WEBCAM_EFFECT_EDGES=Élek +SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gauss életlenítés +SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Kiegyenlített +SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erodált + +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Átlátszóság +JUKEBOX_SONGOPTIONS_LYRIC_LINE=Vonal +JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Sajátosság +JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Szín +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Piros +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Zöld +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Kék + +JUKEBOX_SONGOPTIONS_VIDEO=Video Beállítások +JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Vonatkozás +JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Szélesség +JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Magasság +JUKEBOX_SONGOPTIONS_LYRIC=Dalszöveg beállítások +JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Méret +JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Pozíció + +OPTION_VALUE_TO_SING=Énekelt szöveg +OPTION_VALUE_ACTUAL=Aktuális sor +OPTION_VALUE_NEXT=Következő sor +OPTION_VALUE_OTHER=Egyéb +OPTION_VALUE_FILL=Egyszerű +OPTION_VALUE_OUTLINE=Körvonal OPTION_VALUE_BLUE=Kék OPTION_VALUE_GREEN=Zöld OPTION_VALUE_PINK=Rózsaszín @@ -63,186 +276,71 @@ OPTION_VALUE_ORANGE=Narancs OPTION_VALUE_YELLOW=Sárga OPTION_VALUE_BROWN=Barna OPTION_VALUE_BLACK=Fekete - -OPTION_VALUE_SING=dalválasztás -OPTION_VALUE_SELECT_PLAYERS=játékos választás -OPTION_VALUE_OPEN_MENU=Menü megnyitása - -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -OPTION_VALUE_HARDWARE_CURSOR=Hardver Kurzor -OPTION_VALUE_SOFTWARE_CURSOR=Softver Kurzor - -SING_LOADING=Betöltés... - -SING_CHOOSE_MODE=válassz menüpontot -SING_SING=ének -SING_SING_DESC=gyors játék: énekelj egyedül vagy duettet - -SING_MULTI=Buli -SING_MULTI_DESC=énekelj buli módban - -SING_TOOLS=eszközök - -SING_STATS=statisztika -SING_STATS_DESC=nézd meg a statisztikát - -SING_EDITOR=szerkesztő -SING_EDITOR_DESC=készíts saját zenét - -SING_GAME_OPTIONS=játék beállításai -SING_GAME_OPTIONS_DESC=változtasd meg a beállításokat - -SING_EXIT=kilépés -SING_EXIT_DESC=kilépés a játékból - -SING_OPTIONS=beállítások -SING_OPTIONS_DESC=beállítások megváltoztatása -SING_OPTIONS_WHEREAMI=beállítások - -SING_OPTIONS_GAME=játék -SING_OPTIONS_GRAPHICS=grafika -SING_OPTIONS_SOUND=hang -;TODO: SING_OPTIONS_INPUT=Input -SING_OPTIONS_LYRICS=szöveg -SING_OPTIONS_THEMES=téma -SING_OPTIONS_RECORD=felvétel -SING_OPTIONS_ADVANCED=haladó -SING_OPTIONS_EXIT=vissza - -SING_OPTIONS_GAME_WHEREAMI=játékbeállítások -SING_OPTIONS_GAME_DESC=általános beállítások -SING_OPTIONS_GAME_PLAYERS=játékosok -SING_OPTIONS_GAME_DIFFICULTY=nehézség -SING_OPTIONS_GAME_LANGUAGE=nyelv -SING_OPTIONS_GAME_TABS=elválasztók -SING_OPTIONS_GAME_SORTING=rendezés -SING_OPTIONS_GAME_DEBUG=hibakezelő mód - -SING_OPTIONS_GRAPHICS_WHEREAMI=grafikai beállítások -SING_OPTIONS_GRAPHICS_DESC=grafika beállítása -SING_OPTIONS_GRAPHICS_RESOLUTION=felbontás -SING_OPTIONS_GRAPHICS_FULLSCREEN=teljes képernyő -SING_OPTIONS_GRAPHICS_DEPTH=színmélység -SING_OPTIONS_GRAPHICS_VISUALIZER=Visualization -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=oszcilloszkóp -SING_OPTIONS_GRAPHICS_LINEBONUS=sáv bónusz -SING_OPTIONS_GRAPHICS_MOVIE_SIZE=videó mérete - -SING_OPTIONS_SOUND_WHEREAMI=hang beállításai -SING_OPTIONS_SOUND_DESC=hangbeállítások -SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Microphone Playback -SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Background music -SING_OPTIONS_SOUND_MIC_BOOST=mikr. erősítése -SING_OPTIONS_SOUND_CLICK_ASSIST=ütem segítség -SING_OPTIONS_SOUND_BEAT_CLICK=Ütem -SING_OPTIONS_SOUND_THRESHOLD=tűréshatár -SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=két játékos mód -;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain -SING_OPTIONS_SOUND_PREVIEWVOLUME=előzetes hang -SING_OPTIONS_SOUND_PREVIEWFADING=előz. hang késése - -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - -SING_OPTIONS_LYRICS_WHEREAMI=szöveg beállítások -SING_OPTIONS_LYRICS_DESC=szöveg beállítása -SING_OPTIONS_LYRICS_FONT=betűtípus -SING_OPTIONS_LYRICS_EFFECT=effektek -SING_OPTIONS_LYRICS_SOLMIZATION=szolmizáció -SING_OPTIONS_LYRICS_NOTELINES=Staves - -SING_OPTIONS_THEMES_WHEREAMI=téma beállítása -SING_OPTIONS_THEMES_DESC=téma és kinézet beállítása -SING_OPTIONS_THEMES_THEME=téma -SING_OPTIONS_THEMES_SKIN=háttér -SING_OPTIONS_THEMES_COLOR=szín - -SING_OPTIONS_RECORD_WHEREAMI=felvétel beállítása -SING_OPTIONS_RECORD_DESC=mikrofon beállítás -SING_OPTIONS_RECORD_CARD=hangkártya -SING_OPTIONS_RECORD_INPUT=bement -SING_OPTIONS_RECORD_CHANNEL=csatorna: - -SING_OPTIONS_ADVANCED_WHEREAMI=haladó beállítások -SING_OPTIONS_ADVANCED_DESC=további beállítások -SING_OPTIONS_ADVANCED_EFFECTSING=hang effektek -SING_OPTIONS_ADVANCED_SCREENFADE=háttér áttűnése -SING_OPTIONS_ADVANCED_LOADANIMATION=betöltési animáció -SING_OPTIONS_ADVANCED_ASKBEFOREDEL=megerősítést kér -SING_OPTIONS_ADVANCED_LINEBONUS=sáv bónusz -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= -SING_OPTIONS_ADVANCED_ONSONGCLICK=éneklés után -SING_OPTIONS_ADVANCED_PARTYPOPUP=partymenü megj. - -SING_EDIT=szerkesztő -SING_EDIT_MENU_DESCRIPTION=készíts saját zenét - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Importálj szöveget midiből -SING_EDIT_BUTTON_DESCRIPTION_EXIT=vissza -SING_EDIT_BUTTON_CONVERT=Importálás -SING_EDIT_BUTTON_EXIT=Vissza - -SING_EDIT_NAVIGATE=Navigálás -SING_EDIT_SELECT=Választás -SING_EDIT_EXIT=Vissza +OPTION_VALUE_MAGENTA=Magenta +OPTION_VALUE_GRAY=Szürke +OPTION_VALUE_WHITE=Fehér +OPTION_VALUE_TURQUOISE=Türkiz +OPTION_VALUE_SALMON=Vörösessárga +OPTION_VALUE_GREENYELLOW=Sárgászöld +OPTION_VALUE_LAVENDER=Levendulakék +OPTION_VALUE_BEIGE=Bézs +OPTION_VALUE_TEAL=Kékeszöld +OPTION_VALUE_ORCHID=Orgonalila +OPTION_VALUE_STEELBLUE=Acélkék +OPTION_VALUE_PLUM=Pasztelpink +OPTION_VALUE_CHOCOLATE=Csokoládébarna +OPTION_VALUE_GOLD=Aranysárga +OPTION_VALUE_DARKBLUE=Sötétkék +OPTION_VALUE_SKY=Égszínkék +OPTION_VALUE_HARLEQUIN=Limezöld +OPTION_VALUE_CYAN=Ciánkék +OPTION_VALUE_FLAME=Tűzvörös SING_LEGEND_SELECT=Választás SING_LEGEND_NAVIGATE=Navigálás SING_LEGEND_CONTINUE=Folytatás SING_LEGEND_ESC=Vissza -SING_PLAYER_DESC=Kérem a játékos(ok) nevét -SING_PLAYER_WHEREAMI=Játékos Neve -SING_PLAYER_ENTER_NAME=Név - -SING_DIFFICULTY_DESC=Nehézségi szint választása -SING_DIFFICULTY_WHEREAMI=Nehézség -SING_DIFFICULTY_CONTINUE=Szám kiválasztása -SING_EASY=Könnyű -SING_MEDIUM=Normál -SING_HARD=Nehéz - -SING_SONG_SELECTION_DESC=Válassz számot -SING_SONG_SELECTION_WHEREAMI=Szám választása -SING_SONG_SELECTION_GOTO=Szám keresés -SING_SONG_SELECTION=Szám választása +SING_SONG_SELECTION=Szám választás SING_SONG_SELECTION_MENU=Menü -SING_SONG_SELECTION_PLAYLIST=számlista -SING_SONGS_IN_CAT=Számok +SING_SONG_SELECTION_PLAYLIST=Számlista +SING_SONG_IN_CAT=Dal +SING_SONGS_IN_CAT=Dalok PLAYLIST_CATTEXT=Számlista: %s +SING_SONG_SELECTION_LEGEND_TITLE=Jelmagyarázat +SING_SONG_SELECTION_LEGEND_VIDEO=Videó +SING_SONG_SELECTION_LEGEND_MEDLEY=Egyveleg +SING_SONG_SELECTION_LEGEND_MEDLEYC=Egyveleg kiszámolva +SING_SONG_SELECTION_LEGEND_DUET=Duett -;TODO: SING_TIME=TIME SING_TOTAL=Összesen SING_MODE=Egyszeri játékos -SING_NOTES=Hang +SING_NOTES=Eltalált hangok SING_GOLDEN_NOTES=Arany pont SING_PHRASE_BONUS=Sáv bónusz SING_MENU=Főmenü -SONG_SCORE=Szám pontok +SONG_SCORE=Dal pontok SONG_SCORE_WHEREAMI=Pontok -SING_SCORE_TONE_DEAF=Pontszámok -SING_SCORE_AMATEUR=Amatőr -SING_SCORE_WANNABE=Wannabe -SING_SCORE_HOPEFUL=Hopeful -SING_SCORE_RISING_STAR=Kezdő Sztár -SING_SCORE_LEAD_SINGER=Főállású énekes +SING_SCORE_TONE_DEAF=Botfülű +SING_SCORE_AMATEUR=Lelkes Amatőr +SING_SCORE_WANNABE=Önjelölt Sztár +SING_SCORE_HOPEFUL=Reményteljes Énekes +SING_SCORE_RISING_STAR=Feltörekvő Csillag +SING_SCORE_LEAD_SINGER=Főállású Énekes SING_SCORE_SUPERSTAR=Szupersztár -SING_SCORE_ULTRASTAR=Ultrasztár +SING_SCORE_ULTRASTAR=Ultrasztár! SING_TOP_5_CHARTS=Legjobb 5 játékos SING_TOP_5_CHARTS_WHEREAMI=Legjobb 5 SING_TOP_5_CHARTS_CONTINUE=Szám kiválasztás -SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=switch difficulty +SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Nehézségi szintválasztás POPUP_PERFECT=Hibátlan! -POPUP_AWESOME=Nagyon jó! -POPUP_GREAT=Elég Jó! +POPUP_AWESOME=Bámulatos! +POPUP_GREAT=Nagyszerű! POPUP_GOOD=Jó! POPUP_NOTBAD=Elmegy! POPUP_BAD=Rossz! @@ -252,23 +350,21 @@ POPUP_AWFUL=Borzalmas! IMPLODE_GLUE1=, IMPLODE_GLUE2= és -SONG_MENU_NAME_MAIN=Szám menü +SONG_MENU_NAME_MAIN=Dal menü SONG_MENU_PLAY=Szám -SONG_MENU_CHANGEPLAYERS=Váltó játékosok -SONG_MENU_EDIT=Edit -SONG_MENU_MODI=Énekeljegy modi-t +SONG_MENU_CHANGEPLAYERS=Játékos váltás SONG_MENU_CANCEL=Mégsem -SONG_MENU_NAME_PLAYLIST=Song Menu +SONG_MENU_NAME_PLAYLIST=Szám Menü SONG_MENU_PLAYLIST_ADD=Hozzáad SONG_MENU_PLAYLIST_DEL=Töröl SONG_MENU_NAME_PLAYLIST_ADD=Hozzáad -SONG_MENU_PLAYLIST_ADD_NEW=Új Számlista -SONG_MENU_PLAYLIST_ADD_EXISTING=Kilépés a Számlistából -SONG_MENU_PLAYLIST_NOEXISTING=Nem elérhető a számlista +SONG_MENU_PLAYLIST_ADD_NEW=Új számlista +SONG_MENU_PLAYLIST_ADD_EXISTING=Kilépés a listából +SONG_MENU_PLAYLIST_NOEXISTING=Nem elérhető a lista -SONG_MENU_NAME_PLAYLIST_NEW=Új Számlista +SONG_MENU_NAME_PLAYLIST_NEW=Új számlista SONG_MENU_PLAYLIST_NEW_CREATE=Létrehoz SONG_MENU_PLAYLIST_NEW_UNNAMED=Névtelen @@ -282,469 +378,249 @@ SONG_MENU_PLAYLIST_DELCURRENT=Törli a számlistát SONG_MENU_NAME_PLAYLIST_DEL=Törli a számlistát? -SONG_MENU_NAME_PARTY_MAIN=Buli Menu +SONG_MENU_NAME_PARTY_MAIN=Buli Menü SONG_MENU_JOKER=Joker -SONG_MENU_NAME_PARTY_JOKER=joker felhasználása +SONG_MENU_NAME_PARTY_JOKER=Joker felhasználása -SONG_JUMPTO_DESC=Tovább +SONG_JUMPTO_DESC=Dal keresés SONG_JUMPTO_TYPE_DESC=Keresés: -SONG_JUMPTO_TYPE1=Összes -SONG_JUMPTO_TYPE2=Cím -SONG_JUMPTO_TYPE3=Előadó -SONG_JUMPTO_SONGSFOUND=%d Szám(ok) találat -SONG_JUMPTO_NOSONGSFOUND=Nincs szám találat -SONG_JUMPTO_HELP=Text típusú fájl keresése -SONG_JUMPTO_CATTEXT=Keresés: %s PARTY_MODE=Buli mód PARTY_DIFFICULTY=Nehézségi Szint -PARTY_PLAYLIST=Listából éneklés +PARTY_PLAYLIST=Számlista mód PARTY_PLAYLIST_ALL=Minden dal PARTY_PLAYLIST_CATEGORY=Mappa PARTY_PLAYLIST_PLAYLIST=Számlista -PARTY_TEAMS=Csapat +PARTY_TEAMS=Csapatok száma PARTY_TEAMS_PLAYER1=Csapat1 PARTY_TEAMS_PLAYER2=Csapat2 PARTY_TEAMS_PLAYER3=Csapat3 PARTY_LEGEND_CONTINUE=Folytatás -PARTY_OPTIONS_DESC=Buli beállításai -PARTY_OPTIONS_WHEREAMI=Buli Beállítások +PARTY_OPTIONS_DESC=Buli mód beállításai +PARTY_OPTIONS_WHEREAMI=Buli beállítások -PARTY_PLAYER_DESC=Név- és Csapatnév! -PARTY_PLAYER_WHEREAMI=Buli nevek PARTY_PLAYER_ENTER_NAME=Nevek +PARTY_ROUNDS_LEGEND_CONTINUE=Parti játék indítása +PARTY_ROUNDCOUNT=Körök száma +PARTY_SELECTMODE=Kör %d -;TODO: PARTY_ROUNDS_DESC=Select which modes you want to play -;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds -;TODO: PARTY_ROUNDS_LEGEND_CONTINUE=Start party-game -;TODO: PARTY_ROUNDCOUNT=Number of rounds -;TODO: PARTY_SELECTMODE=Round %d - -PARTY_ROUND_DESC=következő játékosok a mikrofonhoz -PARTY_ROUND_WHEREAMI=Következő forduló PARTY_ROUND_LEGEND_CONTINUE=Indul a menet -PARTY_SONG_WHEREAMI=Buli szám választása +PARTY_SONG_WHEREAMI=Buli dal választása PARTY_SONG_LEGEND_CONTINUE=Szám PARTY_SONG_MENU=Buli menü -PARTY_SCORE_DESC=Pontok az elöző fordulóból +OPTION_VALUE_SING=Dalválasztás +OPTION_VALUE_SELECT_PLAYERS=Játékos választás +OPTION_VALUE_OPEN_MENU=Menü megnyitása + +PARTY_SCORE_DESC=Előző forduló pontjai PARTY_SCORE_WHEREAMI=Buli pontok -PARTY_WIN_DESC=Nyert a Buli játékban +PARTY_WIN_DESC=A parti játék nyertese PARTY_WIN_WHEREAMI=Buli Nyertes PARTY_WIN_LEGEND_CONTINUE=Vissza a főmenübe PARTY_ROUND=Forduló PARTY_ROUND_WINNER=Nyertes -PARTY_NOTPLAYEDYET=Nem játszott szám +PARTY_NOTPLAYEDYET= PARTY_NOBODY=Senki NEXT_ROUND=Következő menet: -PARTY_DISMISSED=Hibátlan! +PARTY_DISMISSED=Feloszlott! PARTY_SCORE_WINS=%s -PARTY_SCORE_WINS2=Nem nyert! +PARTY_SCORE_WINS2=Nyert! -MODE_RANDOM_NAME=Random Mode -;TODO: MODE_RANDOM_DESC=Keep yourself on your toes! The game will select a mode for you at random! +MODE_RANDOM_NAME=Véletlenszerű mód +MODE_RANDOM_DESC=A játék véletlenszerűen fog választani módot! -MODE_HOLDTHELINE_NAME=Tartsd a sávot! -;TODO: MODE_HOLDTHELINE_DESC=Keep your rating above the line for the longest! +MODE_HOLDTHELINE_NAME=Tartsd az előnyt +MODE_HOLDTHELINE_DESC=Tartsd meg az előnyöd amilyen hosszan csak tudod! -;TODO: MODE_HOLDTHELINEBLIND_NAME=Hold the Blind -;TODO: MODE_HOLDTHELINEBLIND_DESC=Keep your rating above the line for the longest, but with the notes hidden! +MODE_HOLDTHELINEBLIND_NAME=Tartsd az előnyt vakon! +MODE_HOLDTHELINEBLIND_DESC=Tartsd a sávot amilyen hosszan csak tudod, de nem látod a hangokat! -;TODO: MODE_7000POINTS_NAME=Until 7000 -;TODO: MODE_7000POINTS_DESC=Race to 7000 Points! +MODE_7000POINTS_NAME=7000 Pontig +MODE_7000POINTS_DESC=Verseny 7000 Pontig! -;TODO: MODE_7000POINTSBLIND_NAME=Blind 7000 -;TODO: MODE_7000POINTSBLIND_DESC=Race to 7000 points, but without seeing the notes! +MODE_7000POINTSBLIND_NAME=Vakon 7000 Pontig +MODE_7000POINTSBLIND_DESC=Verseny 7000 pontig, de nem látod a hangokat! -MODE_5000POINTS_NAME=5000-ig -;TODO: MODE_5000POINTS_DESC=Race to 5000 Points! +MODE_5000POINTS_NAME=5000 Pontig +MODE_5000POINTS_DESC=Verseny 5000 Pontig! -;TODO: MODE_5000POINTSBLIND_NAME=Blind 5000 -;TODO: MODE_5000POINTSBLIND_DESC=Race to 5000 points, but without seeing the notes! +MODE_5000POINTSBLIND_NAME=Vakon 5000 Pontig +MODE_5000POINTSBLIND_DESC=Verseny 5000 pontig, de nem látod a hangokat! -;TODO: MODE_2000POINTS_NAME=Until 2000 -;TODO: MODE_2000POINTS_DESC=Race to 2000 Points! +MODE_2000POINTS_NAME=2000 Pontig +MODE_2000POINTS_DESC=Verseny 2000 Pontig! -;TODO: MODE_2000POINTSBLIND_NAME=Blind 2000 -;TODO: MODE_2000POINTSBLIND_DESC=Race to 2000 points, but without seeing the notes! +MODE_2000POINTSBLIND_NAME=Vakon 2000 Pontig +MODE_2000POINTSBLIND_DESC=Verseny 2000 pontig, de nem látod a hangokat! -MODE_DUEL_NAME=Ketten -;TODO: MODE_DUEL_DESC=A 1v1 duel to get the highest score! +MODE_DUEL_NAME=Párbaj +MODE_DUEL_DESC=Irány egymás ellen a legmagasabb pontért! -;TODO: MODE_TEAMDUEL_NAME=Team Duel -;TODO: MODE_TEAMDUEL_DESC=Pass The Mic! Work together to get a higher score than the other team! +MODE_TEAMDUEL_NAME=Csapat párbaj +MODE_TEAMDUEL_DESC=Add át a mikrofont! Dolgozzatok együtt a másik csapat ellen a legjobb pontért! -MODE_BLIND_NAME="Vak Mód" -;TODO: MODE_BLIND_DESC=A 1v1 duel, but with the notes hidden! +MODE_BLIND_NAME=Vak mód +MODE_BLIND_DESC=Egymás elleni párbaj, anélkül hogy látnád a hangokat! -;TODO: MODE_BLINDTOTAL_NAME=Total Darkness! -;TODO: MODE_BLINDTOTAL_DESC=A duel, but with the notes and the lyrics hidden. Only for the brave! +MODE_BLINDTOTAL_NAME=Teljes vakság! +MODE_BLINDTOTAL_DESC=Párbaj ahol a hangok és a szöveg is rejtve marad. Csak bátraknak! -;TODO: MODE_1000BLIND_NAME = +1000 Blind -;TODO: MODE_1000BLIND_DESC = Gain a lead of more than 1000 points, but without seeing the notes! +MODE_1000BLIND_NAME = +1000 pont vakon +MODE_1000BLIND_DESC = Gyűjts minimum 1000 pont előnyt, annélkül hogy látnád a hangokat! -;TODO: MODE_DEAF_NAME = Deaf -;TODO: MODE_DEAF_DESC = Think you know the notes? Can you sing it without the acompaniment? +MODE_DEAF_NAME = Hang nélkül +MODE_DEAF_DESC = Azt hiszed ismered a hangokat? Akkor énekelj nélkülük! -;TODO: MODE_BLINDLYRICS_NAME = No Lyrics -;TODO: MODE_BLINDLYRICS_DESC = Think you know all the lyrics? Sing with the lyrics hidden! +MODE_BLINDLYRICS_NAME = Dalszöveg nélkül +MODE_BLINDLYRICS_DESC = Ismered a dalszöveget? Énekeld el úgy hogy rejtve marad! -;TODO: MODE_500BLIND_NAME = +500 Blind -;TODO: MODE_500BLIND_DESC = Gain a lead of more than 500 points, but without seeing the notes! +MODE_500BLIND_NAME = +500 pont vakon +MODE_500BLIND_DESC = Gyűjts minimum 500 pont előnyt, annélkül hogy látnád a hangokat! -;TODO: MODE_SHORTSONG_NAME = Short Song -;TODO: MODE_SHORTSONG_DESC = A fast-paced 1v1 duel over half the song! +MODE_SHORTSONG_NAME = Rövid dal +MODE_SHORTSONG_DESC = Gyors menet a dal feléig! -;TODO: MODE_HARDCORE_NAME=Hardcore -;TODO: MODE_HARDCORE_DESC=Battle for a three-line lead on your opponent! +MODE_HARDCORE_NAME=Háromsoros +MODE_HARDCORE_DESC=Három sornyi előny és tiéd a győzelem! STAT_MAIN=Statisztikák -STAT_MAIN_DESC=Általános -STAT_MAIN_WHEREAMI=Statisztika -STAT_OVERVIEW_INTRO=%0:s Statistics. \n Last Reset at %2:.2d.%1:.2d.%3:d -STAT_OVERVIEW_SONG=%0:d Számok(%3:d Video-val), Melyből %1:d Lejátszott és %2:d Még nem.\n Legtöbbet hallgatott: %5:s %4:s-tól/től -STAT_OVERVIEW_PLAYER=A játék kezdetétől %0:d játékos(ok) játszottak.\n A legjobb játékos: %1:s Átlageredménye: %2:d Pont.\n %3:s Legjobb eredménye: %4:d Pont. +STAT_OVERVIEW_INTRO=%0:s Statisztika. \n Utoljára nullázva %3:.2d.%2:.2d.%1:d +STAT_OVERVIEW_SONG=%0:d Szám(%3:d Video-val), Melyből %1:d lejátszott és %2:d még nem.\n Legtöbbet hallgatott: %5:s %4:s-tól/től +STAT_OVERVIEW_PLAYER=A játék kezdetétől %0:d játékos játszott.\n A legjobb játékos: %1:s Átlageredménye: %2:d Pont.\n %3:s Legjobb eredménye: %4:d Pont. STAT_FORMAT_DATE=%1:.2d.%0:.2d.%2:d STAT_DETAIL=Statisztika -STAT_DETAIL_WHEREAMI=Részletes +STAT_DETAIL_WHEREAMI=Részletesen STAT_NEXT=Következő oldal -STAT_PREV=Elöző oldal -STAT_REVERSE=Ellenkező sorrend -STAT_PAGE=Seite %0:d of %1:d Oldalak\n (%2:d of %3:d Entrys) +STAT_PREV=Előző oldal +STAT_REVERSE=Fordított sorrend +STAT_PAGE=Oldal %0:d ból %1:d \n Bejegyzés %2:d ból %3:d -STAT_DESC_SCORES=Legjobb eredmény +STAT_DESC_SCORES=Legjobb Eredmény STAT_DESC_SCORES_REVERSED=Alacsony pontszám STAT_FORMAT_SCORES=%0:s - %1:d [%2:s] \n (%3:s - %4:s) -STAT_DESC_SINGERS=Legjobb énekesek -STAT_DESC_SINGERS_REVERSED=Legrosszagg játékosok -STAT_FORMAT_SINGERS=%0:s \n Átlag pontszám: %1:d +STAT_DESC_SINGERS=Legjobb Énekesek +STAT_DESC_SINGERS_REVERSED=Legrosszabb Énekesek +STAT_FORMAT_SINGERS=%0:s \n Átlag pontszáma: %1:d STAT_DESC_SONGS=Közkedvelt számok STAT_DESC_SONGS_REVERSED=Kevésbé kedvelt számok -STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx sung +STAT_FORMAT_SONGS=%0:s - %1:s \n %2:dx Énekelve STAT_DESC_BANDS=Közkedvelt együttesek STAT_DESC_BANDS_REVERSED=Kevésbé kedvelt együttesek -STAT_FORMAT_BANDS=%0:s \n %1:dx Ének +STAT_FORMAT_BANDS=%0:s \n %1:dx Énekeve + +PARTY_SELECT_MODE=Mód +PARTY_MODE_CLASSIC=Klasszikus +PARTY_MODE_CLASSIC_FREE=Klasszikus Szabadmód +PARTY_MODE_CHALLENGE=Kihívás +PARTY_MODE_TOURNAMENT=Versenysorozat +PARTY_MODE_JUKEBOX=Zenedoboz + +PARTY_MODE_TOURNAMENT_PLAYER_DESC=Játékosok száma és neve +PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Játékosok száma +PARTY_MODE_TOURNAMENT_OPTIONS_DESC=Körök száma +PARTY_MODE_TOURNAMENT_ROUNDS_FINAL=Döntő +PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Elődöntő +PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Negyeddöntő +PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL=Selejtező +PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Következő játékosok a mikrofonhoz +PARTY_MODE_TOURNAMENT_WIN_DESC=Kör eredmény +PARTY_MODE_TOURNAMENT_CHAMPION=A nyertes: %0:s! + +MSG_END_JUKEBOX=Kilépsz a Zenedobozból? +JUKEBOX_RANDOM=Véletlenszerű +JUKEBOX_REPEAT=Ismétlés +JUKEBOX_FIND=Keresés: +JUKEBOX_SORT=Rendezés: +JUKEBOX_SONGLIST=Dalok listája + +SING_ERROR_DUET_MODE_PARTY = A Duett nem elérhető Buli módban! + +SONG_MENU_SONG=Szám +SONG_MENU_MEDLEY=Egyveleg + +SONG_MENU_NAME_SONG=Szám Menü +SONG_MENU_NAME_MEDLEY=Egyveleg Menü +SONG_MENU_ADD_SONG=Hozzáadás +SONG_MENU_DELETE_SONG=Törlés +SONG_MENU_START_MEDLEY=Éneklés +SONG_MENU_START_5_MEDLEY=Énekelj %0:d Dalt! + +SONG_MENU_NAME_SORTING=Rendezés Menü +SONG_MENU_SORTING_TABS_ON=Tabs Be +SONG_MENU_SORTING_TABS_OFF=Tabs Ki +SONG_MENU_SORTING_ALL=Összes +SONG_MENU_SORTING_DUET=Duett +SONG_MENU_SORTING_APPLY=Rendben + +PARTY_PLAYLIST_MANUAL=Kézi Választás +PARTY_MODE_JUKEBOX_NO_SONGS=Számlista üres! +SONG_MENU_OPEN_CATEGORY=Kategória megnyitása +SONG_MENU_CLOSE_CATEGORY=Kategória bezárása +SONG_MENU_START_JUKEBOX=Induljon a Zenedoboz +SONG_MENU_NAME_JUKEBOX=Zenedoboz Menü + +WEBSITE_EXIST_SONG=A dal a weboldalhoz tartozik: %0:s +WEBSITE_NOT_EXIST_SONG=A dal nem tartozik egyik weboldalhoz sem! + +NAME_PLAYERS_COUNT=Játékosok száma +NAME_CURRENT_PLAYER=Játékos + +JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Nyújtás +JUKEBOX_SONGOPTIONS_VIDEO_CROP=Levágás +JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=Szélesvásznú + +JUKEBOX_SONGOPTIONS_SAVE=Mentés +JUKEBOX_SONGOPTIONS_CLOSE=Bezár +JUKEBOX_SONGOPTIONS_DEFAULT=Alapértelmezett +JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Mentve! + +JUKEBOX_MODE=Zenedoboz Mód +JUKEBOX_OPTIONS_PLAYLIST=Számlista +JUKEBOX_OPTIONS_PLAYLIST_MODE=Mód -SCREENSHOT_SAVED=Képeryő mentve -SCREENSHOT_FAILED=Képernyő mentése sikertelen +ABOUT_MAIN=Rólunk... +ABOUT_USDX_DEVELOPEDBY=Fejlesztette +ABOUT_CHECK_CHECKING=Új verzió keresése... +ABOUT_CHECK_AVAILABLE=Új verzió elérhető +ABOUT_CHECK_UPTODATE=A WorldParty naprakész +ABOUT_CHECK_CONNECTION=Nincs Internet kapcsolat +ABOUT_OVERVIEW=Fedezd fel az éneklés új módját, egyedül vagy párban akár a barátaiddal. \n A szórakozás garantált!\n\nA WorldParty az eredeti Ultrastar Deluxe 1.1-es verziója, amely újra lett szerkesztve az UltraStar Espana Team által, ami most a legnagyobb karaoke közösség.\n\n\nA program ingyenes és a GPL license alá esik. \n\n Több információért látogass el a következő oldalra.\n\nhttps://ultrastar-es.org -INFO_FILE_SAVED=Fájl mentve -ERROR_SAVE_FILE_FAILED=Fájl mentése sikertelen -ERROR_FILE_NOT_FOUND=Fájl nem található +DEVELOPERS_TITLE=Fejlesztette +DEVELOPERS_OVERVIEW=Azok a személyek, akik hozzájárultak ehhez a projekthez:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Látogasson el hozzánk további információért.\n\nhttps://ultrastar-es.org -ENCODING_ERROR_ASK_FOR_UTF8=A változtatások nem menthetők ebben a kódolásban. Konvertáljuk UTF-8-á? -EDITOR_ERROR_NO_TRACK_SELECTED=Nincs szám kiválasztva +SCREENSHOT_SAVED=Képernyőkép mentve +SCREENSHOT_FAILED=Képernyőkép mentése sikertelen MSG_ERROR_TITLE=Hiba MSG_INFO_TITLE=Infó MSG_QUESTION_TITLE=Kérdés -MSG_QUIT_USDX=Tényleg elhagyod az UltraStar színpadát? -MSG_END_PARTY=Tényleg kilépsz a Buli módból? +MSG_QUIT_USDX=Biztos elhagyod az UltraStar színpadát? +MSG_END_PARTY=Biztos kilépsz a Buli módból? ERROR_NO_SONGS=Nincs dal betöltve ERROR_NO_PLUGINS=Nincs plugin betöltve -ERROR_NO_MODES_FOR_CURRENT_SETUP=no modes available for current player/team setup -ERROR_CAN_NOT_START_PARTY= an error occurred starting the party game +ERROR_LOADING_SONGS=Várj még az összes dal betöltődik ERROR_CORRUPT_SONG=Sikertelen dalbetöltés. -ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Sikertelen dalbetöltés: Dal nem található +ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Sikertelen dalbetöltés: Szám nem található ERROR_CORRUPT_SONG_NO_NOTES=Sikertelen dalbetöltés: Nincs kotta hozzá ERROR_CORRUPT_SONG_NO_BREAKS=Sikertelen dalbetöltés: Nincs benne sortörés ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Sikertelen dalbetöltés: Sikertelen elemzési sor %0:d -ERROR_NO_EDITOR=This feature is not available on this version. -ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d was assigned to multiple microphones. Please check your record options -;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options - -;TODO: SING_OPTIONS_NETWORK=Internet -;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options -;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings -;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... -;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password -;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name -SING_OPTIONS_NETWORK_AUTO_MODE=Automatikus -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) -;TODO: SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! -;TODO: SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? -;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert -;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete - -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 -OPTION_ALL_PLAYERS=Összes -OPTION_ALL_SCORES=Összes -;TODO: OPTION_VALUE_SAVE=Save -;TODO: OPTION_VALUE_SEND=Send - -;TODO: MSG_INSERT_USER_TITLE=%0:s -;TODO: MSG_INSERT_USER_DESC=Fill the fields: -;TODO: MSG_INSERT_USER_ADD=Add -MSG_INSERT_USER_CANCEL=Mégsem - -;TODO: WEBSITE_NO_CONNECTION=No website connection! -;TODO: WEBSITE_LOGIN_ERROR=Login Incorrect! -;TODO: WEBSITE_BLANK_LOGIN=There are blank fields! -;TODO: WEBSITE_EXIST_USER=Existing user! -;TODO: WEBSITE_ERROR_SCORE=Scoring Error! -;TODO: WEBSITE_OK_SEND=Score sent successfully! -;TODO: WEBSITE_ERROR_SCORE_DUPLICATED=Existing Score! -;TODO: WEBSITE_ERROR_SONG=Song Not Found! -;TODO: WEBSITE_SAVE_SCORE=Score save successfully! -;TODO: WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? - -;TODO: SONG_MENU_REFRESH_SCORES=Update Scores -;TODO: SONG_MENU_REFRESH_SCORES_TITLE=Update -;TODO: SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! -;TODO: SONG_MENU_REFRESH_SCORES_ONLINE=Online -;TODO: SONG_MENU_REFRESH_SCORES_FILE=File -;TODO: SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites -;TODO: SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs -;TODO: SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song -;TODO: SONG_MENU_REFRESH_SCORES_REFRESH=Update -;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! -;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! - -;TODO: SONG_SCORE_MAX=Best: -;TODO: SONG_SCORE_MEDIA=Average: - -;TODO: SCORE_SEND_DESC=Send Score -;TODO: SCORE_SEND=Send -;TODO: SCORE_SEND_PLAYER=Player -;TODO: SCORE_SEND_OTHER_USER= Other Username -;TODO: SCORE_SAVE=Save - -;TODO: SCORE_DOWNLOAD_TITLE=Download -;TODO: SCORE_DOWNLOAD_SONG=Song: -;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... -;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... -SCORE_DOWNLOAD_CANCEL=Mégsem -;TODO: SCORE_DOWNLOAD_OK=OK -;TODO: SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! - -;TODO: SING_OPTIONS_GAME_SHOWSCORES=Show Scores -;TODO: OPTION_VALUE_WHEN_EXISTS=When Exists - -;TODO: PARTY_SELECT_MODE=Mode -;TODO: PARTY_MODE_CLASSIC=Classic -;TODO: PARTY_MODE_CLASSIC_FREE=Classic Free -;TODO: PARTY_MODE_CHALLENGE=Challenge -;TODO: PARTY_MODE_TOURNAMENT=Tournament -;TODO: PARTY_MODE_JUKEBOX=Jukebox -;TODO: PARTY_MODE_NOT_AVAILABLE=Not Available! - -;TODO: PARTY_MODE_TOURNAMENT_PLAYER_DESC=Insert number and players name -;TODO: PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Number of Players -;TODO: PARTY_MODE_TOURNAMENT_OPTIONS_DESC=Number of rounds -;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_FINAL=Final -;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Semifinals -;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Quarterfinals -;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL=Round of 16 -PARTY_MODE_TOURNAMENT_ROUNDS_DESC=következő játékosok a mikrofonhoz -;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result -;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! - -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -INFO_FILE_SAVED=Fájl mentve -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - -;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! -;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! - -;TODO: MSG_END_JUKEBOX=Do you want leave Jukebox Mode? -;TODO: JUKEBOX_RANDOM=Random -;TODO: JUKEBOX_REPEAT=Repeat -;TODO: JUKEBOX_FIND=Find: -;TODO: JUKEBOX_SORT=Sort: -;TODO: JUKEBOX_SONGLIST=List of Songs - -;TODO: SING_ERROR_DUET_MODE_PARTY = Duet! Not playable in Party Mode! - -;TODO: SONG_MENU_SONG=Song -;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra - -SONG_MENU_NAME_SONG=Song Menu -;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu -SONG_MENU_ADD_SONG=Hozzáad -SONG_MENU_DELETE_SONG=Töröl -;TODO: SONG_MENU_START_MEDLEY=Sing! -;TODO: SONG_MENU_START_5_MEDLEY=Sing %0:d Songs! - -;TODO: SONG_MENU_NAME_SORTING=Sort Menu -;TODO: SONG_MENU_SORTING_TABS_ON=Tabs On -;TODO: SONG_MENU_SORTING_TABS_OFF=Tabs Off -SONG_MENU_SORTING_ALL=Összes -;TODO: SONG_MENU_SORTING_DUET=Duets -;TODO: SONG_MENU_SORTING_APPLY=Apply - -;TODO: SING_OPTIONS_WEBCAM=Webcam -;TODO: SING_OPTIONS_WEBCAM_DESC=Webcam Settings -;TODO: SING_OPTIONS_WEBCAM_WHEREAMI=Webcam Options -;TODO: SING_OPTIONS_WEBCAM_ID=Webcam -SING_OPTIONS_WEBCAM_RESOLUTION=felbontás -;TODO: SING_OPTIONS_WEBCAM_FPS=FPS -;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! -;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip -SING_OPTIONS_WEBCAM_EFFECT=effektek -;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation -;TODO: SING_OPTIONS_WEBCAM_HUE=Hue -;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview -;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview - -;TODO: SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal -;TODO: SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Grayscale -;TODO: SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Black & White -;TODO: SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negative -;TODO: SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image -;TODO: SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate -SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=tűréshatár -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges -;TODO: SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized -;TODO: SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode - -;TODO: PARTY_PLAYLIST_MANUAL=Manual Selection -;TODO: PARTY_MODE_JUKEBOX_NO_SONGS=Playlist is empty! -;TODO: SONG_MENU_OPEN_CATEGORY=Open category -;TODO: SONG_MENU_CLOSE_CATEGORY=Close category -;TODO: SONG_MENU_START_JUKEBOX=Start Jukebox! -;TODO: SONG_MENU_NAME_JUKEBOX=Menu Jukebox - -;TODO: WEBSITE_EXIST_SONG=The song belongs to the website: %0:s -;TODO: WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! - -;TODO: NAME_PLAYERS_COUNT=Number of Players -;TODO: NAME_CURRENT_PLAYER=Player - -SING_OPTIONS_GAME_SONGMENU=Song Menu -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List -;TODO: OPTION_VALUE_MOSAIC=Tile - -;TODO: SING_OPTIONS_JUKEBOX=Jukebox -;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox -;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options - -OPTION_VALUE_TO_SING=Szám -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next -;TODO: OPTION_VALUE_OTHER=Other -;TODO: OPTION_VALUE_FILL=Fill -;TODO: OPTION_VALUE_OUTLINE=Outline -;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -;TODO: OPTION_VALUE_SALMON=Salmon -;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige -;TODO: OPTION_VALUE_TEAL=Teal -;TODO: OPTION_VALUE_ORCHID=Orchid -;TODO: OPTION_VALUE_STEELBLUE=Steel Blue -;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold -;TODO: OPTION_VALUE_DARKBLUE=Dark Blue -;TODO: OPTION_VALUE_SKY=Sky -;TODO: OPTION_VALUE_HARLEQUIN=Harlequin -;TODO: OPTION_VALUE_CYAN=Cyan -;TODO: OPTION_VALUE_FLAME=Flame - -;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height -;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha -JUKEBOX_SONGOPTIONS_LYRIC_COLOR=szín -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property -JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Piros -JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Zöld -JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Kék - -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=LetterBox - -;TODO: JUKEBOX_SONGOPTIONS_SAVE=Save -;TODO: JUKEBOX_SONGOPTIONS_CLOSE=Close -;TODO: JUKEBOX_SONGOPTIONS_DEFAULT=Default -;TODO: JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Saved! - -;TODO: SING_SONG_CREDITS=Credits -;TODO: SING_JUKEBOX=Jukebox -;TODO: SING_JUKEBOX_DESC=Listen to my collection -;TODO: JUKEBOX_MODE=Jukebox Mode -;TODO: JUKEBOX_OPTIONS_DESC=Playlist Options -;TODO: JUKEBOX_OPTIONS_WHEREAMI=Jukebox Options -JUKEBOX_OPTIONS_PLAYLIST=Számlista -;TODO: JUKEBOX_OPTIONS_PLAYLIST_MODE=Mode - -;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing -;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores -OPTION_VALUE_ALL=Összes -;TODO: OPTION_VALUE_PLAYER=Player - -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +ERROR_PLAYER_DEVICE_ASSIGNMENT=Játékos %d több mikrofonhoz van rendelve. Kérlek ellenőrizd a mikrofon beállításokat. +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Játékos %d nincs egy mikrofonhoz sem rendelve. Kérlek ellenőrizd a mikrofon beállításokat. \ No newline at end of file diff --git a/game/languages/Nederlands.ini b/game/languages/Nederlands.ini index ce1da35a..00e0522e 100644 --- a/game/languages/Nederlands.ini +++ b/game/languages/Nederlands.ini @@ -40,73 +40,65 @@ OPTION_VALUE_AUTO=Auto OPTION_VALUE_SEC=Seconde OPTION_VALUE_SECS=Seconden -OPTION_VALUE_PLAIN=Gewoon -;TODO: OPTION_VALUE_OLINE1=OLine1 -;TODO: OPTION_VALUE_OLINE2=OLine2 +OPTION_VALUE_PLAIN=Gestileerde +OPTION_VALUE_OLINE1=Met dunne rand +OPTION_VALUE_OLINE2=Met dikke rand OPTION_VALUE_SIMPLE=Simpel -;TODO: OPTION_VALUE_ZOOM=Zoom +OPTION_VALUE_ZOOM=Zoom ;TODO: OPTION_VALUE_SLIDE=Slide -;TODO: OPTION_VALUE_BALL=Ball +OPTION_VALUE_BALL=Bal ;TODO: OPTION_VALUE_SHIFT=Shift -;TODO: OPTION_VALUE_EURO=Euro -;TODO: OPTION_VALUE_JAPAN=Japan -;TODO: OPTION_VALUE_AMERICAN=American +OPTION_VALUE_EURO=Euro +OPTION_VALUE_JAPAN=Japan +OPTION_VALUE_AMERICAN=Amerikaans -;TODO: OPTION_VALUE_BLUE=Blue -;TODO: OPTION_VALUE_GREEN=Green -;TODO: OPTION_VALUE_PINK=Pink -;TODO: OPTION_VALUE_RED=Red -;TODO: OPTION_VALUE_VIOLET=Violet -;TODO: OPTION_VALUE_ORANGE=Orange -;TODO: OPTION_VALUE_YELLOW=Yellow -;TODO: OPTION_VALUE_BROWN=Brown -;TODO: OPTION_VALUE_BLACK=Black +OPTION_VALUE_BLUE=Blauw +OPTION_VALUE_GREEN=Groen +OPTION_VALUE_PINK=Roze +OPTION_VALUE_RED=Rood +OPTION_VALUE_VIOLET=Paars +OPTION_VALUE_ORANGE=Oranje +OPTION_VALUE_YELLOW=Geel +OPTION_VALUE_BROWN=Bruin +OPTION_VALUE_BLACK=Zwart OPTION_VALUE_SING=Zing -;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players +OPTION_VALUE_SELECT_PLAYERS=Selecteer spelers ;TODO: OPTION_VALUE_OPEN_MENU=Open Menu -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor -;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor - SING_LOADING=Laden... +SING_LOADING_SONGS=Nummers uit de map laden %s -SING_CHOOSE_MODE=kies mode -SING_SING=zing -SING_SING_DESC=snel spelletje: zing een solo of duet - -SING_MULTI=party -SING_MULTI_DESC=zing in party-mode +SING_CHOOSE_MODE=Kies mode +SING_SING=Zing +SING_SING_DESC=Snel spelletje: zing een solo of duet -SING_TOOLS=tools +SING_MULTI=Party +SING_MULTI_DESC=Zing in party-mode -SING_STATS=stats -SING_STATS_DESC=bekijk de statistieken +SING_TOOLS=Tools -SING_EDITOR=editor -SING_EDITOR_DESC=Maak je eigen liedje +SING_STATS=Stats +SING_STATS_DESC=Bekijk de statistieken -SING_GAME_OPTIONS=spelopties -SING_GAME_OPTIONS_DESC=verander de spelopties +SING_GAME_OPTIONS=Spelopties +SING_GAME_OPTIONS_DESC=Verander de spelopties SING_EXIT=Stoppen -SING_EXIT_DESC=stop het spelletje +SING_EXIT_DESC=Stop het spelletje -SING_OPTIONS=opties +SING_OPTIONS=Opties SING_OPTIONS_DESC=Verander de opties SING_OPTIONS_WHEREAMI=Opties SING_OPTIONS_GAME=Spel -SING_OPTIONS_GRAPHICS=graphics +SING_OPTIONS_GRAPHICS=Graphics SING_OPTIONS_SOUND=Geluid -;TODO: SING_OPTIONS_INPUT=Input SING_OPTIONS_LYRICS=Tekst SING_OPTIONS_THEMES=Thema -SING_OPTIONS_RECORD=Opname +SING_OPTIONS_MICROPHONES=Opname SING_OPTIONS_ADVANCED=Geavanceerd SING_OPTIONS_EXIT=Terug @@ -117,15 +109,16 @@ SING_OPTIONS_GAME_DIFFICULTY=Moeilijkheidsgraad SING_OPTIONS_GAME_LANGUAGE=Taal SING_OPTIONS_GAME_TABS=Tabs SING_OPTIONS_GAME_SORTING=Sorteren -SING_OPTIONS_GAME_DEBUG=Debug +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Activeer gamepad SING_OPTIONS_GRAPHICS_WHEREAMI=Grafische opties SING_OPTIONS_GRAPHICS_DESC=Grafische instellingen SING_OPTIONS_GRAPHICS_RESOLUTION=Resolutie SING_OPTIONS_GRAPHICS_FULLSCREEN=Fullscreen -SING_OPTIONS_GRAPHICS_DEPTH=Diepte +SING_OPTIONS_GRAPHICS_EFFECTSING=Zing effecten +SING_OPTIONS_GRAPHICS_SCREENFADE=Faden +SING_OPTIONS_GRAPHICS_LOADANIMATION=Laad animaties SING_OPTIONS_GRAPHICS_VISUALIZER=Visualisatie -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oscilloscoop SING_OPTIONS_GRAPHICS_LINEBONUS=Lijnbonus SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Video grootte @@ -133,20 +126,13 @@ SING_OPTIONS_SOUND_WHEREAMI=Geluidsopties SING_OPTIONS_SOUND_DESC=Geluidsinstellingen SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Microfoon Playback SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Achtergrond Muziek -SING_OPTIONS_SOUND_MIC_BOOST=Microfoon boost SING_OPTIONS_SOUND_CLICK_ASSIST=Klik assistent SING_OPTIONS_SOUND_BEAT_CLICK=Beat klik -SING_OPTIONS_SOUND_THRESHOLD=Drempelwaarde SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Twee spelers mode ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Voorbeeld volume SING_OPTIONS_SOUND_PREVIEWFADING=Voorbeeld Faden -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - SING_OPTIONS_LYRICS_WHEREAMI=Tekst Opties SING_OPTIONS_LYRICS_DESC=Tekst instellingen SING_OPTIONS_LYRICS_FONT=Lettertype @@ -160,45 +146,38 @@ SING_OPTIONS_THEMES_THEME=Thema SING_OPTIONS_THEMES_SKIN=Skin SING_OPTIONS_THEMES_COLOR=Kleur -SING_OPTIONS_RECORD_WHEREAMI=Opname opties -SING_OPTIONS_RECORD_DESC=Microfoon instellingen -SING_OPTIONS_RECORD_CARD=Geluidskaart -SING_OPTIONS_RECORD_INPUT=Input -SING_OPTIONS_RECORD_CHANNEL=Kanaal +SING_OPTIONS_MICROPHONES_WHEREAMI=Opname opties +SING_OPTIONS_MICROPHONES_DESC=Microfoon instellingen +SING_OPTIONS_MICROPHONES_CARD=Geluidskaart +SING_OPTIONS_MICROPHONES_INPUT=Input +SING_OPTIONS_MICROPHONES_CHANNEL=Kanaal +SING_OPTIONS_MICROPHONES_THRESHOLD=Drempelwaarde +SING_OPTIONS_MICROPHONES_MIC_BOOST=Microfoon boost SING_OPTIONS_ADVANCED_WHEREAMI=Geavanceerde opties -SING_OPTIONS_ADVANCED_DESC=geavanceerde instellingen -SING_OPTIONS_ADVANCED_EFFECTSING=Zing effecten -SING_OPTIONS_ADVANCED_SCREENFADE=Faden -SING_OPTIONS_ADVANCED_LOADANIMATION=Laad animaties +SING_OPTIONS_ADVANCED_DESC=Geavanceerde instellingen +SING_OPTIONS_ADVANCED_DEBUG=Debug +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Oscilloscoop SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Veiligheidsvragen SING_OPTIONS_ADVANCED_LINEBONUS=Lijnbonus -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=Selecties na het Liedje SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto PartyMenu -SING_EDIT=Editor -SING_EDIT_MENU_DESCRIPTION=Maak je eigen liedje - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Importeer tekst van midi file -SING_EDIT_BUTTON_DESCRIPTION_EXIT=Terug -SING_EDIT_BUTTON_CONVERT=Importeer -SING_EDIT_BUTTON_EXIT=Terug - -SING_EDIT_NAVIGATE=Navigeer -SING_EDIT_SELECT=Selecteer -SING_EDIT_EXIT=Terug - SING_LEGEND_SELECT=Selecteer SING_LEGEND_NAVIGATE=Navigeer SING_LEGEND_CONTINUE=Ga Verder SING_LEGEND_ESC=Terug -SING_PLAYER_DESC=Kies Namen -SING_PLAYER_WHEREAMI=Namen -SING_PLAYER_ENTER_NAME=Kies namen +SING_PLAYER_TITLE=Profielen +SING_PLAYER_READY=Spelers klaar om te zingen +SING_PLAYER_COUNT=Aantal spelers +SING_PLAYER_EDIT=Pas een speler aan +SING_PLAYER_NAME=Schrijf je naam +SING_PLAYER_COLOR=Kies een kleur +SING_PLAYER_LEVEL=Kies een niveau +SING_PLAYER_AVATAR=Selecteer je avatar -SING_DIFFICULTY_DESC=selecteer moeilijkheidsgraad +SING_DIFFICULTY_DESC=Selecteer moeilijkheidsgraad SING_DIFFICULTY_WHEREAMI=Moeilijkheidsgraad SING_DIFFICULTY_CONTINUE=Ga verder SING_EASY=Gemakkelijk @@ -209,17 +188,22 @@ SING_SONG_SELECTION_DESC=Kies je liedje SING_SONG_SELECTION_WHEREAMI=Selecteer een liedje SING_SONG_SELECTION_GOTO=Ga naar SING_SONG_SELECTION=Liedjes Selectie -SING_SONG_SELECTION_MENU=menu -SING_SONG_SELECTION_PLAYLIST=playlist +SING_SONG_SELECTION_MENU=Menu +SING_SONG_SELECTION_PLAYLIST=Playlist +SING_SONG_IN_CAT=Lied SING_SONGS_IN_CAT=Liedjes PLAYLIST_CATTEXT=Playlist: %s - -;TODO: SING_TIME=TIME -SING_TOTAL=totaal -SING_MODE=zing solo -SING_NOTES=noten -SING_GOLDEN_NOTES=gouden noten -SING_PHRASE_BONUS=lijn bonus +SING_SONG_SELECTION_LEGEND_TITLE=Legende +SING_SONG_SELECTION_LEGEND_VIDEO=Video +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Duet + +SING_TOTAL=Totaal +SING_MODE=Zing solo +SING_NOTES=Noten +SING_GOLDEN_NOTES=Gouden noten +SING_PHRASE_BONUS=Lijn bonus SING_MENU=Hoofd Menu @@ -235,19 +219,19 @@ SING_SCORE_LEAD_SINGER=Hoofdzanger SING_SCORE_SUPERSTAR=Superster SING_SCORE_ULTRASTAR=ULTRASTAR -SING_TOP_5_CHARTS=top 5 Spelers -SING_TOP_5_CHARTS_WHEREAMI=top 5 +SING_TOP_5_CHARTS=Top 5 Spelers +SING_TOP_5_CHARTS_WHEREAMI=Top 5 SING_TOP_5_CHARTS_CONTINUE=Ga Verder -SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=switch difficulty +SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Switch difficulty -POPUP_PERFECT=perfect! -POPUP_AWESOME=ongelooflijk! -POPUP_GREAT=fantastisch! -POPUP_GOOD=goed! -POPUP_NOTBAD=niet slecht! -POPUP_BAD=slecht! -POPUP_POOR=zwak! -POPUP_AWFUL=pijnlijk! +POPUP_PERFECT=Perfect! +POPUP_AWESOME=Ongelooflijk! +POPUP_GREAT=Fantastisch! +POPUP_GOOD=Goed! +POPUP_NOTBAD=Niet slecht! +POPUP_BAD=Slecht! +POPUP_POOR=Zwak! +POPUP_AWFUL=Pijnlijk! IMPLODE_GLUE1=, IMPLODE_GLUE2= en @@ -255,7 +239,6 @@ IMPLODE_GLUE2= en SONG_MENU_NAME_MAIN=Liedjes Menu SONG_MENU_PLAY=Zingen SONG_MENU_CHANGEPLAYERS=Verander de spelers -SONG_MENU_EDIT=Bewerken SONG_MENU_MODI=Zing een Mode SONG_MENU_CANCEL=Cancel @@ -264,8 +247,8 @@ SONG_MENU_PLAYLIST_ADD=Voeg een liedje toe SONG_MENU_PLAYLIST_DEL=Verwijder Liedje SONG_MENU_NAME_PLAYLIST_ADD=Voeg een liedje toe -SONG_MENU_PLAYLIST_ADD_NEW=aan een nieuwe Playlist -SONG_MENU_PLAYLIST_ADD_EXISTING=aan een bestaande playlist +SONG_MENU_PLAYLIST_ADD_NEW=Aan een nieuwe Playlist +SONG_MENU_PLAYLIST_ADD_EXISTING=Aan een bestaande playlist SONG_MENU_PLAYLIST_NOEXISTING=Geen playlist beschikbaar SONG_MENU_NAME_PLAYLIST_NEW=Nieuwe Playlist @@ -277,7 +260,7 @@ SONG_MENU_YES=Ja SONG_MENU_NO=Nee SONG_MENU_NAME_PLAYLIST_LOAD=Open Playlist -SONG_MENU_PLAYLIST_LOAD=open +SONG_MENU_PLAYLIST_LOAD=Open SONG_MENU_PLAYLIST_DELCURRENT=Verwijder huidige Playlist SONG_MENU_NAME_PLAYLIST_DEL=Verwijder de Playlist? @@ -297,7 +280,7 @@ SONG_JUMPTO_NOSONGSFOUND=Niks gevonden SONG_JUMPTO_HELP=Typ waarnaar moet gezocht worden SONG_JUMPTO_CATTEXT=Zoek naar: %s -PARTY_MODE=party mode +PARTY_MODE=Party mode PARTY_DIFFICULTY=Moeilijkheidsgraad PARTY_PLAYLIST=Playlist Mode PARTY_PLAYLIST_ALL=Alle liedjes @@ -320,34 +303,34 @@ PARTY_PLAYER_ENTER_NAME=Kies de namen ;TODO: PARTY_ROUNDS_DESC=Select which modes you want to play ;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds -PARTY_ROUNDS_LEGEND_CONTINUE=start partyspelletje -;TODO: PARTY_ROUNDCOUNT=Number of rounds -;TODO: PARTY_SELECTMODE=Round %d +PARTY_ROUNDS_LEGEND_CONTINUE=Start partyspelletje +PARTY_ROUNDCOUNT=Aantal rondes +PARTY_SELECTMODE=Rounde %d PARTY_ROUND_DESC=Volgende spelers aan de Microfoon PARTY_ROUND_WHEREAMI=Party Volgende ronde -PARTY_ROUND_LEGEND_CONTINUE=start de ronde +PARTY_ROUND_LEGEND_CONTINUE=Start de ronde PARTY_SONG_WHEREAMI=Party Song-Selectie PARTY_SONG_LEGEND_CONTINUE=Zing -PARTY_SONG_MENU=partymenu +PARTY_SONG_MENU=Partymenu -PARTY_SCORE_DESC=score van de laatste ronde +PARTY_SCORE_DESC=Score van de laatste ronde PARTY_SCORE_WHEREAMI=Partypunten -PARTY_WIN_DESC=winnaar van de party-game +PARTY_WIN_DESC=Winnaar van de party-game PARTY_WIN_WHEREAMI=Party Winnaar PARTY_WIN_LEGEND_CONTINUE=Terug naar het hoofdmenu PARTY_ROUND=Ronde PARTY_ROUND_WINNER=Winnaar PARTY_NOTPLAYEDYET=Nog niet gespeeld -PARTY_NOBODY=niemand +PARTY_NOBODY=Niemand NEXT_ROUND=Volgende Ronde: PARTY_DISMISSED=Uitgeschakeld! PARTY_SCORE_WINS=%s -PARTY_SCORE_WINS2=overwinningen! +PARTY_SCORE_WINS2=Overwinningen! ;TODO: MODE_RANDOM_NAME=Random Mode ;TODO: MODE_RANDOM_DESC=Keep yourself on your toes! The game will select a mode for you at random! @@ -358,22 +341,22 @@ MODE_HOLDTHELINE_NAME=Hold the Line ;TODO: MODE_HOLDTHELINEBLIND_NAME=Hold the Blind ;TODO: MODE_HOLDTHELINEBLIND_DESC=Keep your rating above the line for the longest, but with the notes hidden! -;TODO: MODE_7000POINTS_NAME=Until 7000 +MODE_7000POINTS_NAME=Tot 7000 ;TODO: MODE_7000POINTS_DESC=Race to 7000 Points! -;TODO: MODE_7000POINTSBLIND_NAME=Blind 7000 +MODE_7000POINTSBLIND_NAME=Blind 7000 ;TODO: MODE_7000POINTSBLIND_DESC=Race to 7000 points, but without seeing the notes! MODE_5000POINTS_NAME=Tot 5000 ;TODO: MODE_5000POINTS_DESC=Race to 5000 Points! -;TODO: MODE_5000POINTSBLIND_NAME=Blind 5000 +MODE_5000POINTSBLIND_NAME=Blind 5000 ;TODO: MODE_5000POINTSBLIND_DESC=Race to 5000 points, but without seeing the notes! -;TODO: MODE_2000POINTS_NAME=Until 2000 +MODE_2000POINTS_NAME=Tot 2000 ;TODO: MODE_2000POINTS_DESC=Race to 2000 Points! -;TODO: MODE_2000POINTSBLIND_NAME=Blind 2000 +MODE_2000POINTSBLIND_NAME=Blind 2000 ;TODO: MODE_2000POINTSBLIND_DESC=Race to 2000 points, but without seeing the notes! MODE_DUEL_NAME=Duel @@ -388,16 +371,16 @@ MODE_BLIND_NAME=Blinde Mode ;TODO: MODE_BLINDTOTAL_NAME=Total Darkness! ;TODO: MODE_BLINDTOTAL_DESC=A duel, but with the notes and the lyrics hidden. Only for the brave! -;TODO: MODE_1000BLIND_NAME = +1000 Blind +MODE_1000BLIND_NAME = +1000 Blind ;TODO: MODE_1000BLIND_DESC = Gain a lead of more than 1000 points, but without seeing the notes! -;TODO: MODE_DEAF_NAME = Deaf +MODE_DEAF_NAME = Doof ;TODO: MODE_DEAF_DESC = Think you know the notes? Can you sing it without the acompaniment? ;TODO: MODE_BLINDLYRICS_NAME = No Lyrics ;TODO: MODE_BLINDLYRICS_DESC = Think you know all the lyrics? Sing with the lyrics hidden! -;TODO: MODE_500BLIND_NAME = +500 Blind +MODE_500BLIND_NAME = +500 Blind ;TODO: MODE_500BLIND_DESC = Gain a lead of more than 500 points, but without seeing the notes! ;TODO: MODE_SHORTSONG_NAME = Short Song @@ -422,7 +405,7 @@ STAT_DETAIL_WHEREAMI=Gedetailleerde statistieken STAT_NEXT=Volgende Pagina STAT_PREV=Vorige Pagina STAT_REVERSE=Omgekeerde Volgorde -STAT_PAGE=Pagina %0:d van de %1:d Paginas\n (%2:d van de %3:d scores) +STAT_PAGE=Pagina %0:d van de %1:d \n Scores %2:d van de %3:d STAT_DESC_SCORES=Topscore STAT_DESC_SCORES_REVERSED=Laagste scores @@ -440,15 +423,14 @@ STAT_DESC_BANDS=Populairste Artiesten STAT_DESC_BANDS_REVERSED=Minst populaire artiesten STAT_FORMAT_BANDS=%0:s \n %1:dx gezongen -;TODO: SCREENSHOT_SAVED=Screenshot saved -;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot +SCREENSHOT_SAVED=Screenshot opgeslagen +;TODO: SCREENSHOT_FAILED=Couldn't save screenshot ;TODO: INFO_FILE_SAVED=File saved ;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file ;TODO: ERROR_FILE_NOT_FOUND=File not found ;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? -;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected MSG_ERROR_TITLE=Error ;TODO: MSG_INFO_TITLE=Information @@ -465,20 +447,19 @@ ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Liedje kon niet geladen worden: File niet gevo ERROR_CORRUPT_SONG_NO_NOTES=Liedje kon niet geladen worden: Geen noten gevonden ERROR_CORRUPT_SONG_NO_BREAKS=Liedje kon niet geladen worden: Geen linebreaks gevonden ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Liedje kon niet geladen worden: Probleem met regel %0:d -;TODO: ERROR_NO_EDITOR=This feature is not available on this version. -;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options -;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options +ERROR_PLAYER_DEVICE_ASSIGNMENT=Speler %d is toegewezen aan meerdere microfoons. Controleer uw microfoonopties +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Speler %d is niet toegewezen aan een microfoon. Controleer uw microfoonopties -;TODO: SING_OPTIONS_NETWORK=Internet -;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options -;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings +SING_OPTIONS_NETWORK=Internet +SING_OPTIONS_NETWORK_WHEREAMI=Internet Opties +SING_OPTIONS_NETWORK_DESC=Internet algemene instellingen ;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... ;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password +SING_OPTIONS_NETWORK_USERNAME=Gebruikersnaam +SING_OPTIONS_NETWORK_PASSWORD=Wachtwoord ;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name ;TODO: SING_OPTIONS_NETWORK_AUTO_MODE=Auto -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player +SING_OPTIONS_NETWORK_AUTO_PLAYER=Speler ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) @@ -487,16 +468,16 @@ ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Liedje kon niet geladen worden: Probleem met ;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert ;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 +OPTION_PLAYER_1=Speler 1 +OPTION_PLAYER_2=Speler 2 +OPTION_PLAYER_3=Speler 3 +OPTION_PLAYER_4=Speler 4 +OPTION_PLAYER_5=Speler 5 +OPTION_PLAYER_6=Speler 6 OPTION_ALL_PLAYERS=Alles OPTION_ALL_SCORES=Alles ;TODO: OPTION_VALUE_SAVE=Save -;TODO: OPTION_VALUE_SEND=Send +OPTION_VALUE_SEND=Sturen ;TODO: MSG_INSERT_USER_TITLE=%0:s ;TODO: MSG_INSERT_USER_DESC=Fill the fields: @@ -527,20 +508,20 @@ MSG_INSERT_USER_CANCEL=Cancel ;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! ;TODO: SONG_SCORE_MAX=Best: -;TODO: SONG_SCORE_MEDIA=Average: +SONG_SCORE_MEDIA=Gemiddelde: ;TODO: SCORE_SEND_DESC=Send Score ;TODO: SCORE_SEND=Send -;TODO: SCORE_SEND_PLAYER=Player +SCORE_SEND_PLAYER=Speler ;TODO: SCORE_SEND_OTHER_USER= Other Username ;TODO: SCORE_SAVE=Save -;TODO: SCORE_DOWNLOAD_TITLE=Download -;TODO: SCORE_DOWNLOAD_SONG=Song: +SCORE_DOWNLOAD_TITLE=Download +SCORE_DOWNLOAD_SONG=Lied: ;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... -;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... +SCORE_DOWNLOAD_RECEIVE_LIST=Downloaden... SCORE_DOWNLOAD_CANCEL=Cancel -;TODO: SCORE_DOWNLOAD_OK=OK +SCORE_DOWNLOAD_OK=OK ;TODO: SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! ;TODO: SING_OPTIONS_GAME_SHOWSCORES=Show Scores @@ -565,36 +546,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Volgende spelers aan de Microfoon ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -;TODO: INFO_FILE_SAVED=File saved -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - ;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! ;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! @@ -607,17 +558,15 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Volgende spelers aan de Microfoon ;TODO: SING_ERROR_DUET_MODE_PARTY = Duet! Not playable in Party Mode! -;TODO: SONG_MENU_SONG=Song +SONG_MENU_SONG=Lied ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Liedjes Menu ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu SONG_MENU_ADD_SONG=Voeg een liedje toe SONG_MENU_DELETE_SONG=Verwijder Liedje -;TODO: SONG_MENU_START_MEDLEY=Sing! -;TODO: SONG_MENU_START_5_MEDLEY=Sing %0:d Songs! +SONG_MENU_START_MEDLEY=Zingen! +SONG_MENU_START_5_MEDLEY=Zingen %0:d lied! ;TODO: SONG_MENU_NAME_SORTING=Sort Menu ;TODO: SONG_MENU_SORTING_TABS_ON=Tabs On @@ -635,9 +584,10 @@ SING_OPTIONS_WEBCAM_RESOLUTION=Resolutie ;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! ;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip SING_OPTIONS_WEBCAM_EFFECT=Effecten -;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation +SING_OPTIONS_WEBCAM_BRIGHTNESS=Helderheid +SING_OPTIONS_WEBCAM_SATURATION=Verzadiging ;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +SING_OPTIONS_WEBCAM_PREVIEW=Activeer preview ;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview ;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview @@ -648,7 +598,7 @@ SING_OPTIONS_WEBCAM_EFFECT=Effecten ;TODO: SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image ;TODO: SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Drempelwaarde -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges +SING_OPTIONS_WEBCAM_EFFECT_EDGES=Randen ;TODO: SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur ;TODO: SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized ;TODO: SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode @@ -663,54 +613,54 @@ SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Drempelwaarde ;TODO: WEBSITE_EXIST_SONG=The song belongs to the website: %0:s ;TODO: WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! -;TODO: NAME_PLAYERS_COUNT=Number of Players -;TODO: NAME_CURRENT_PLAYER=Player +NAME_PLAYERS_COUNT=Aantal spelers +NAME_CURRENT_PLAYER=Speler SING_OPTIONS_GAME_SONGMENU=Liedjes Menu -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List -;TODO: OPTION_VALUE_MOSAIC=Tile +OPTION_VALUE_ROULETTE=Roulette +OPTION_VALUE_CHESSBOARD=Schaakbord +OPTION_VALUE_CAROUSEL=Carrousel +OPTION_VALUE_SLOT_MACHINE=Gokautomaat +OPTION_VALUE_LIST=Lijst +OPTION_VALUE_MOSAIC=Tegel ;TODO: SING_OPTIONS_JUKEBOX=Jukebox ;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox ;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options OPTION_VALUE_TO_SING=Zing -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next + OPTION_VALUE_ACTUAL=Bovenste +OPTION_VALUE_NEXT=Bodem ;TODO: OPTION_VALUE_OTHER=Other ;TODO: OPTION_VALUE_FILL=Fill ;TODO: OPTION_VALUE_OUTLINE=Outline -;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -;TODO: OPTION_VALUE_SALMON=Salmon -;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige +OPTION_VALUE_GRAY=Grijs +OPTION_VALUE_WHITE=Wit +OPTION_VALUE_TURQUOISE=Turkoois +OPTION_VALUE_SALMON=Zalm +OPTION_VALUE_GREENYELLOW=Groen Geel +OPTION_VALUE_LAVENDER=Lavendel +OPTION_VALUE_BEIGE=Beige ;TODO: OPTION_VALUE_TEAL=Teal -;TODO: OPTION_VALUE_ORCHID=Orchid -;TODO: OPTION_VALUE_STEELBLUE=Steel Blue -;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold -;TODO: OPTION_VALUE_DARKBLUE=Dark Blue -;TODO: OPTION_VALUE_SKY=Sky -;TODO: OPTION_VALUE_HARLEQUIN=Harlequin +OPTION_VALUE_ORCHID=Orchidee +OPTION_VALUE_STEELBLUE=Staal blauw +OPTION_VALUE_PLUM=Pruim +OPTION_VALUE_CHOCOLATE=Chocola +OPTION_VALUE_GOLD=Goud +OPTION_VALUE_DARKBLUE=Donkerblauw +OPTION_VALUE_SKY=Hemel +OPTION_VALUE_HARLEQUIN=Harlekijn ;TODO: OPTION_VALUE_CYAN=Cyan ;TODO: OPTION_VALUE_FLAME=Flame -;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect +JUKEBOX_SONGOPTIONS_VIDEO=Video-opties +JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height ;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Transparantie JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Kleur ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property @@ -729,7 +679,7 @@ JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Kleur ;TODO: SING_SONG_CREDITS=Credits ;TODO: SING_JUKEBOX=Jukebox -;TODO: SING_JUKEBOX_DESC=Listen to my collection +SING_JUKEBOX_DESC=Luister naar mijn verzameling ;TODO: JUKEBOX_MODE=Jukebox Mode ;TODO: JUKEBOX_OPTIONS_DESC=Playlist Options ;TODO: JUKEBOX_OPTIONS_WHEREAMI=Jukebox Options @@ -739,12 +689,17 @@ JUKEBOX_OPTIONS_PLAYLIST=Playlist ;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing ;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores OPTION_VALUE_ALL=Alles -;TODO: OPTION_VALUE_PLAYER=Player - -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +OPTION_VALUE_PLAYER=Speler + +SING_ABOUT=Over +SING_ABOUT_DESC=Over Ultrastar Deluxe WorldParty +ABOUT_MAIN=Over... +ABOUT_USDX_DEVELOPEDBY=Ontwikkeld door +ABOUT_CHECK_CHECKING=Controleren op nieuwe update... +ABOUT_CHECK_AVAILABLE=Er is een nieuwe versie beschikbaar +;TODO: ABOUT_CHECK_UPTODATE=WorldParty is up to date +ABOUT_CHECK_CONNECTION=Er is geen internetverbinding +ABOUT_OVERVIEW=Ontdek een nieuwe manier van zingen, alleen, in een stel of met vrienden. \n Plezier is gegarandeerd.\n\nWorldParty is een fork van de originele versie Ultrastar Deluxe 1.1 ontworpen en ontwikkeld door UltraStar España team, het telt met de grootste karaoke-gemeenschap.\n\n\nDit programma is gratis en libre onder de GPL-licentie. \n\n Bezoek ons voor meer informatie.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Ontwikkeld door +DEVELOPERS_OVERVIEW=Mensen die hebben bijgedragen aan dit project:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Bezoek ons voor meer informatie.\n\nhttps://ultrastar-es.org diff --git a/game/languages/Norsk.ini b/game/languages/Norsk.ini index 9a590960..19592b66 100644 --- a/game/languages/Norsk.ini +++ b/game/languages/Norsk.ini @@ -5,225 +5,210 @@ OPTION_VALUE_EASY=Lett OPTION_VALUE_MEDIUM=Moderat OPTION_VALUE_HARD=Vanskelig -;TODO: OPTION_VALUE_ON=On -;TODO: OPTION_VALUE_OFF=Off +OPTION_VALUE_ON=På +OPTION_VALUE_OFF=Av ;TODO: OPTION_VALUE_EDITION=Edition -;TODO: OPTION_VALUE_GENRE=Genre +OPTION_VALUE_GENRE=Sjanger OPTION_VALUE_LANGUAGE=Språk OPTION_VALUE_FOLDER=Mappe OPTION_VALUE_TITLE=Tittel OPTION_VALUE_ARTIST=Artist -;TODO: OPTION_VALUE_TITLE2=Title2 -;TODO: OPTION_VALUE_ARTIST2=Artist2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade +OPTION_VALUE_TITLE2=Tittle2 +OPTION_VALUE_ARTIST2=Artist2 +OPTION_VALUE_YEAR=År +OPTION_VALUE_DECADE=Tiår OPTION_VALUE_PLAYLIST=Spillelist -;TODO: OPTION_VALUE_BORDERLESS=Borderless +OPTION_VALUE_BORDERLESS=Maksimert -;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +OPTION_VALUE_WHENNOVIDEO=Når ingen video +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Når ingen video og bilde -;TODO: OPTION_VALUE_SMALL=Small -;TODO: OPTION_VALUE_BIG=Big +OPTION_VALUE_SMALL=Liten +OPTION_VALUE_BIG=Stor -;TODO: OPTION_VALUE_HALF=Half -;TODO: OPTION_VALUE_FULL_VID=Full (Video) -;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video) +OPTION_VALUE_HALF=Halv +OPTION_VALUE_FULL_VID=Full (Video) +OPTION_VALUE_FULL_VID_BG=Full (BG & Video) ;TODO: OPTION_VALUE_GAIN_SOFT=Soft ;TODO: OPTION_VALUE_GAIN_MEDIUM=Medium ;TODO: OPTION_VALUE_GAIN_HARD=Hard -;TODO: OPTION_VALUE_AUTO=Auto -;TODO: OPTION_VALUE_SEC=Second -;TODO: OPTION_VALUE_SECS=Seconds +OPTION_VALUE_AUTO=Auto +OPTION_VALUE_SEC=Sekund +OPTION_VALUE_SECS=Sekunder -;TODO: OPTION_VALUE_PLAIN=Plain -;TODO: OPTION_VALUE_OLINE1=OLine1 -;TODO: OPTION_VALUE_OLINE2=OLine2 +OPTION_VALUE_PLAIN=Stilisert +OPTION_VALUE_OLINE1=Med tynn kant +OPTION_VALUE_OLINE2=Med tykk kant -;TODO: OPTION_VALUE_SIMPLE=Simple -;TODO: OPTION_VALUE_ZOOM=Zoom +OPTION_VALUE_SIMPLE=Enkel +OPTION_VALUE_ZOOM=Zoom ;TODO: OPTION_VALUE_SLIDE=Slide -;TODO: OPTION_VALUE_BALL=Ball +OPTION_VALUE_BALL=Ball ;TODO: OPTION_VALUE_SHIFT=Shift -;TODO: OPTION_VALUE_EURO=Euro -;TODO: OPTION_VALUE_JAPAN=Japan -;TODO: OPTION_VALUE_AMERICAN=American - -;TODO: OPTION_VALUE_BLUE=Blue -;TODO: OPTION_VALUE_GREEN=Green -;TODO: OPTION_VALUE_PINK=Pink -;TODO: OPTION_VALUE_RED=Red -;TODO: OPTION_VALUE_VIOLET=Violet -;TODO: OPTION_VALUE_ORANGE=Orange -;TODO: OPTION_VALUE_YELLOW=Yellow -;TODO: OPTION_VALUE_BROWN=Brown -;TODO: OPTION_VALUE_BLACK=Black - -OPTION_VALUE_SING=syng -;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players -;TODO: OPTION_VALUE_OPEN_MENU=Open Menu - -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor -;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor +OPTION_VALUE_EURO=Euro +OPTION_VALUE_JAPAN=Japan +OPTION_VALUE_AMERICAN=Amerikansk -SING_LOADING=Laster... +OPTION_VALUE_BLUE=Blå +OPTION_VALUE_GREEN=Grønn +OPTION_VALUE_PINK=Rosa +OPTION_VALUE_RED=Rød +OPTION_VALUE_VIOLET=Violet +OPTION_VALUE_ORANGE=Oransje +OPTION_VALUE_YELLOW=Gul +OPTION_VALUE_BROWN=Brun +OPTION_VALUE_BLACK=Svart + +OPTION_VALUE_SING=Syng +OPTION_VALUE_SELECT_PLAYERS=Velg spillere +OPTION_VALUE_OPEN_MENU=Åpne menyen -SING_CHOOSE_MODE=velg modus -SING_SING=syng -SING_SING_DESC=hurtigspill: syng solo eller duett +SING_LOADING=Laster... +SING_LOADING_SONGS=Laster inn sanger fra mappe %s -SING_MULTI=party -SING_MULTI_DESC=syng i party-modus +SING_CHOOSE_MODE=Velg modus +SING_SING=Syng +SING_SING_DESC=Hurtigspill: syng solo eller duett -SING_TOOLS=verktøy +SING_MULTI=Party +SING_MULTI_DESC=Syng i party-modus -SING_STATS=statistikk -SING_STATS_DESC=vis statistikk +SING_TOOLS=Verktøy -SING_EDITOR=editor -SING_EDITOR_DESC=lag dine egne sanger +SING_STATS=Statistikk +SING_STATS_DESC=Vis statistikk -SING_GAME_OPTIONS=spillinnstillinger -SING_GAME_OPTIONS_DESC=endre spillinstillinger +SING_GAME_OPTIONS=Spillinnstillinger +SING_GAME_OPTIONS_DESC=Endre spillinstillinger -SING_EXIT=avslutt -SING_EXIT_DESC=avslutt spillet +SING_EXIT=Avslutt +SING_EXIT_DESC=Avslutt spillet -SING_OPTIONS=innstillinger -SING_OPTIONS_DESC=endre innstillinger +SING_OPTIONS=Innstillinger +SING_OPTIONS_DESC=Endre innstillinger SING_OPTIONS_WHEREAMI=Innstillinger -SING_OPTIONS_GAME=spill -SING_OPTIONS_GRAPHICS=grafikk -SING_OPTIONS_SOUND=lyd -;TODO: SING_OPTIONS_INPUT=Input -SING_OPTIONS_LYRICS=tekst -SING_OPTIONS_THEMES=utseende -SING_OPTIONS_RECORD=opptak -SING_OPTIONS_ADVANCED=avansert -SING_OPTIONS_EXIT=tilbake +SING_OPTIONS_GAME=Spill +SING_OPTIONS_GRAPHICS=Grafikk +SING_OPTIONS_SOUND=Lyd +SING_OPTIONS_LYRICS=Tekst +SING_OPTIONS_THEMES=Utseende +SING_OPTIONS_MICROPHONES=Opptak +SING_OPTIONS_ADVANCED=Avansert +SING_OPTIONS_EXIT=Tilbake SING_OPTIONS_GAME_WHEREAMI=Innstillinger Spill -SING_OPTIONS_GAME_DESC=hovedspillinnstillinger +SING_OPTIONS_GAME_DESC=Hovedspillinnstillinger SING_OPTIONS_GAME_PLAYERS=Spillere SING_OPTIONS_GAME_DIFFICULTY=Vanskelighet SING_OPTIONS_GAME_LANGUAGE=Språk SING_OPTIONS_GAME_TABS=Mappeinndeling SING_OPTIONS_GAME_SORTING=Sortering -SING_OPTIONS_GAME_DEBUG=Feilsøking +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Aktiver gamepad SING_OPTIONS_GRAPHICS_WHEREAMI=Innstillinger Grafikk SING_OPTIONS_GRAPHICS_DESC=Grafiske innstillinger SING_OPTIONS_GRAPHICS_RESOLUTION=Oppløsning SING_OPTIONS_GRAPHICS_FULLSCREEN=Fullskjerm -SING_OPTIONS_GRAPHICS_DEPTH=Fargedybde -;TODO: SING_OPTIONS_GRAPHICS_VISUALIZER=Visualization -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oscilloskop +SING_OPTIONS_GRAPHICS_EFFECTSING=Sangeffekter +SING_OPTIONS_GRAPHICS_SCREENFADE=Skjermfading +SING_OPTIONS_GRAPHICS_LOADANIMATION=Animasjonslasting +SING_OPTIONS_GRAPHICS_VISUALIZER=Visualisering SING_OPTIONS_GRAPHICS_LINEBONUS=Linjebonus SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Filmstørrelse SING_OPTIONS_SOUND_WHEREAMI=Innstillinger Lyd -SING_OPTIONS_SOUND_DESC=lydinnstillinger -;TODO: SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Microphone Playback -;TODO: SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Background music -SING_OPTIONS_SOUND_MIC_BOOST=Mikrofon-gain +SING_OPTIONS_SOUND_DESC=Lydinnstillinger +SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Hør stemmen min +SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Bakgrunnsmusikk SING_OPTIONS_SOUND_CLICK_ASSIST=Klikke-assistanse SING_OPTIONS_SOUND_BEAT_CLICK=Beat-klikk -SING_OPTIONS_SOUND_THRESHOLD=Toleransegrense SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Tospiller-modus ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Preview-volum SING_OPTIONS_SOUND_PREVIEWFADING=Preview-fading -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - SING_OPTIONS_LYRICS_WHEREAMI=Innstillinger Tekst -SING_OPTIONS_LYRICS_DESC=tekstinnstillinger +SING_OPTIONS_LYRICS_DESC=Tekstinnstillinger SING_OPTIONS_LYRICS_FONT=Fonter SING_OPTIONS_LYRICS_EFFECT=Effekter SING_OPTIONS_LYRICS_SOLMIZATION=Solmisasjon ;TODO: SING_OPTIONS_LYRICS_NOTELINES=Staves SING_OPTIONS_THEMES_WHEREAMI=Innstillinger Utseende -SING_OPTIONS_THEMES_DESC=tema og skin-innstillinger +SING_OPTIONS_THEMES_DESC=Tema og skin-innstillinger SING_OPTIONS_THEMES_THEME=Tema SING_OPTIONS_THEMES_SKIN=Skin SING_OPTIONS_THEMES_COLOR=Farge -SING_OPTIONS_RECORD_WHEREAMI=Innstillinger Opptak -SING_OPTIONS_RECORD_DESC=mikrofoninnstillinger -SING_OPTIONS_RECORD_CARD=Lydkort -SING_OPTIONS_RECORD_INPUT=Input -SING_OPTIONS_RECORD_CHANNEL=Kanal +SING_OPTIONS_MICROPHONES_WHEREAMI=Innstillinger Opptak +SING_OPTIONS_MICROPHONES_DESC=Mikrofoninnstillinger +SING_OPTIONS_MICROPHONES_CARD=Lydkort +SING_OPTIONS_MICROPHONES_INPUT=Input +SING_OPTIONS_MICROPHONES_CHANNEL=Kanal +SING_OPTIONS_MICROPHONES_THRESHOLD=Toleransegrense +SING_OPTIONS_MICROPHONES_MIC_BOOST=Mikrofon-gain SING_OPTIONS_ADVANCED_WHEREAMI=Innstillinger Avansert -SING_OPTIONS_ADVANCED_DESC=avanserte innstillinger -SING_OPTIONS_ADVANCED_EFFECTSING=Sangeffekter -SING_OPTIONS_ADVANCED_SCREENFADE=Skjermfading -SING_OPTIONS_ADVANCED_LOADANIMATION=Animasjonslasting +SING_OPTIONS_ADVANCED_DESC=Avanserte innstillinger +SING_OPTIONS_ADVANCED_DEBUG=Feilsøking +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Oscilloskop SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Sikkerhetsspørsmål SING_OPTIONS_ADVANCED_LINEBONUS=Linjebonus -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=Etter sang: SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto partymeny -SING_EDIT=editor -SING_EDIT_MENU_DESCRIPTION=lag dine egne sanger - -;TODO: SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Import text from midi file -SING_EDIT_BUTTON_DESCRIPTION_EXIT=tilbake -;TODO: SING_EDIT_BUTTON_CONVERT=Import -SING_EDIT_BUTTON_EXIT=tilbake -SING_EDIT_NAVIGATE=naviger -SING_EDIT_SELECT=velg -SING_EDIT_EXIT=tilbake +SING_LEGEND_SELECT=Velg +SING_LEGEND_NAVIGATE=Naviger +SING_LEGEND_CONTINUE=Fortsett +SING_LEGEND_ESC=Tilbake -SING_LEGEND_SELECT=velg -SING_LEGEND_NAVIGATE=naviger -SING_LEGEND_CONTINUE=fortsett -SING_LEGEND_ESC=tilbake +SING_PLAYER_TITLE=Profiler +SING_PLAYER_READY=Spillere klar til å synge +SING_PLAYER_COUNT=Antall spillere +SING_PLAYER_EDIT=Tilpass en spiller +SING_PLAYER_NAME=Skriv ditt navn +SING_PLAYER_COLOR=Velg en farge +SING_PLAYER_LEVEL=Velg et nivå +SING_PLAYER_AVATAR=Velg avataren din -SING_PLAYER_DESC=velg spillernavn -SING_PLAYER_WHEREAMI=Spillernavn -SING_PLAYER_ENTER_NAME=velg navn - -SING_DIFFICULTY_DESC=velg vanskelighetsgrad +SING_DIFFICULTY_DESC=Velg vanskelighetsgrad SING_DIFFICULTY_WHEREAMI=Vanskelighet -SING_DIFFICULTY_CONTINUE=til sangvalg +SING_DIFFICULTY_CONTINUE=Til sangvalg SING_EASY=Lett SING_MEDIUM=Moderat SING_HARD=Vanskelig -SING_SONG_SELECTION_DESC=velg sang +SING_SONG_SELECTION_DESC=Velg sang SING_SONG_SELECTION_WHEREAMI=Sangvalg -SING_SONG_SELECTION_GOTO=gå til .. +SING_SONG_SELECTION_GOTO=Gå til .. SING_SONG_SELECTION=Sangvalg -SING_SONG_SELECTION_MENU=meny -SING_SONG_SELECTION_PLAYLIST=spilleliste +SING_SONG_SELECTION_MENU=Meny +SING_SONG_SELECTION_PLAYLIST=Spilleliste +SING_SONG_IN_CAT=Sang SING_SONGS_IN_CAT=Sanger PLAYLIST_CATTEXT=Spilleliste: %s - -;TODO: SING_TIME=TIME -SING_TOTAL=total -SING_MODE=syng solo -SING_NOTES=toner -SING_GOLDEN_NOTES=gyldne noter -SING_PHRASE_BONUS=linjebonus +SING_SONG_SELECTION_LEGEND_TITLE=Legende +SING_SONG_SELECTION_LEGEND_VIDEO=Video +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Duett + +SING_TOTAL=Total +SING_MODE=Syng solo +SING_NOTES=Toner +SING_GOLDEN_NOTES=Gyldne noter +SING_PHRASE_BONUS=Linjebonus SING_MENU=Hovedmeny -SONG_SCORE=sangscore +SONG_SCORE=Sangscore SONG_SCORE_WHEREAMI=Score SING_SCORE_TONE_DEAF=Tonedøv @@ -235,27 +220,26 @@ SING_SCORE_LEAD_SINGER=Toppvokalist SING_SCORE_SUPERSTAR=Superstjerne SING_SCORE_ULTRASTAR=Ultrastjerne -SING_TOP_5_CHARTS=topp 5 spillere -SING_TOP_5_CHARTS_WHEREAMI=topp 5 -SING_TOP_5_CHARTS_CONTINUE=til sangvalg +SING_TOP_5_CHARTS=Topp 5 spillere +SING_TOP_5_CHARTS_WHEREAMI=Topp 5 +SING_TOP_5_CHARTS_CONTINUE=Til sangvalg ;TODO: SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Switch difficulty -POPUP_PERFECT=perfekt! -POPUP_AWESOME=fantastisk! -POPUP_GREAT=kjempebra! -POPUP_GOOD=bra! -POPUP_NOTBAD=brukbart! -POPUP_BAD=dårlig! -POPUP_POOR=elendig! -POPUP_AWFUL=grusomt! +POPUP_PERFECT=Perfekt! +POPUP_AWESOME=Fantastisk! +POPUP_GREAT=Kjempebra! +POPUP_GOOD=Bra! +POPUP_NOTBAD=Brukbart! +POPUP_BAD=Dårlig! +POPUP_POOR=Elendig! +POPUP_AWFUL=Grusomt! IMPLODE_GLUE1=, IMPLODE_GLUE2= og -SONG_MENU_NAME_MAIN=sangmeny +SONG_MENU_NAME_MAIN=Sangmeny SONG_MENU_PLAY=Syng SONG_MENU_CHANGEPLAYERS=Endre spillere -SONG_MENU_EDIT=Endre SONG_MENU_MODI=Syng en modus SONG_MENU_CANCEL=AVbryt @@ -264,9 +248,9 @@ SONG_MENU_PLAYLIST_ADD=Legg til sang SONG_MENU_PLAYLIST_DEL=Ta bort sang SONG_MENU_NAME_PLAYLIST_ADD=Legg til sang -SONG_MENU_PLAYLIST_ADD_NEW=til ny spilleliste -SONG_MENU_PLAYLIST_ADD_EXISTING=til eksisterende spilleliste -SONG_MENU_PLAYLIST_NOEXISTING=ingen spilleliste eksisterer +SONG_MENU_PLAYLIST_ADD_NEW=Til ny spilleliste +SONG_MENU_PLAYLIST_ADD_EXISTING=Til eksisterende spilleliste +SONG_MENU_PLAYLIST_NOEXISTING=Ingen spilleliste eksisterer SONG_MENU_NAME_PLAYLIST_NEW=Ny spilleliste SONG_MENU_PLAYLIST_NEW_CREATE=Opprett @@ -278,16 +262,16 @@ SONG_MENU_NO=Nei SONG_MENU_NAME_PLAYLIST_LOAD=Åpne spilleliste SONG_MENU_PLAYLIST_LOAD=åpne -SONG_MENU_PLAYLIST_DELCURRENT=slett nåværende spilleliste +SONG_MENU_PLAYLIST_DELCURRENT=Slett nåværende spilleliste SONG_MENU_NAME_PLAYLIST_DEL=Slett spilleliste? SONG_MENU_NAME_PARTY_MAIN=Partymeny SONG_MENU_JOKER=Joker -SONG_MENU_NAME_PARTY_JOKER=bruk joker +SONG_MENU_NAME_PARTY_JOKER=Bruk joker -SONG_JUMPTO_DESC=søk etter sang +SONG_JUMPTO_DESC=Søk etter sang SONG_JUMPTO_TYPE_DESC=Søk etter: SONG_JUMPTO_TYPE1=Alt SONG_JUMPTO_TYPE2=Tittel @@ -313,43 +297,43 @@ PARTY_LEGEND_CONTINUE=Fortsett PARTY_OPTIONS_DESC=Innstillinger for party-spillet PARTY_OPTIONS_WHEREAMI=Party-innstillinger -PARTY_PLAYER_DESC=skriv spiller- og lagnavn! +PARTY_PLAYER_DESC=Skriv spiller- og lagnavn! PARTY_PLAYER_WHEREAMI=Party-navn -PARTY_PLAYER_ENTER_NAME=skriv navn +PARTY_PLAYER_ENTER_NAME=Skriv navn -;TODO: PARTY_ROUNDS_DESC=Select which modes you want to play +PARTY_ROUNDS_DESC=Velg hvilke moduser du vil spille ;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds ;TODO: PARTY_ROUNDS_LEGEND_CONTINUE=Start party-game -;TODO: PARTY_ROUNDCOUNT=Number of rounds -;TODO: PARTY_SELECTMODE=Round %d +PARTY_ROUNDCOUNT=Antall runder +PARTY_SELECTMODE=Rund %d -PARTY_ROUND_DESC=neste spillere til mikrofonene +PARTY_ROUND_DESC=Neste spillere til mikrofonene PARTY_ROUND_WHEREAMI=Party neste runde -PARTY_ROUND_LEGEND_CONTINUE=start runden +PARTY_ROUND_LEGEND_CONTINUE=Start runden PARTY_SONG_WHEREAMI=Party sangvalg -PARTY_SONG_LEGEND_CONTINUE=syng -PARTY_SONG_MENU=partymeny +PARTY_SONG_LEGEND_CONTINUE=Syng +PARTY_SONG_MENU=Partymeny PARTY_SCORE_DESC=Siste rundes poengsum PARTY_SCORE_WHEREAMI=Partypoeng -PARTY_WIN_DESC=vinner av partyspillet +PARTY_WIN_DESC=Vinner av partyspillet PARTY_WIN_WHEREAMI=Party-vinner -PARTY_WIN_LEGEND_CONTINUE=tilbake til hovedmenyen +PARTY_WIN_LEGEND_CONTINUE=Tilbake til hovedmenyen PARTY_ROUND=Runde PARTY_ROUND_WINNER=Vinner PARTY_NOTPLAYEDYET=Ikke spilt ennå -PARTY_NOBODY=ingen +PARTY_NOBODY=Ingen NEXT_ROUND=Neste runde: PARTY_DISMISSED=Avbrutt! PARTY_SCORE_WINS=%s PARTY_SCORE_WINS2=Vinner! -;TODO: MODE_RANDOM_NAME=Random Mode +MODE_RANDOM_NAME=Tilfeldig modus ;TODO: MODE_RANDOM_DESC=Keep yourself on your toes! The game will select a mode for you at random! MODE_HOLDTHELINE_NAME=Hold linja @@ -358,22 +342,22 @@ MODE_HOLDTHELINE_NAME=Hold linja ;TODO: MODE_HOLDTHELINEBLIND_NAME=Hold the Blind ;TODO: MODE_HOLDTHELINEBLIND_DESC=Keep your rating above the line for the longest, but with the notes hidden! -;TODO: MODE_7000POINTS_NAME=Until 7000 +MODE_7000POINTS_NAME=Før 7000 ;TODO: MODE_7000POINTS_DESC=Race to 7000 Points! -;TODO: MODE_7000POINTSBLIND_NAME=Blind 7000 +MODE_7000POINTSBLIND_NAME=Blind 7000 ;TODO: MODE_7000POINTSBLIND_DESC=Race to 7000 points, but without seeing the notes! MODE_5000POINTS_NAME=Først til 5000 ;TODO: MODE_5000POINTS_DESC=Race to 5000 Points! -;TODO: MODE_5000POINTSBLIND_NAME=Blind 5000 +MODE_5000POINTSBLIND_NAME=Blind 5000 ;TODO: MODE_5000POINTSBLIND_DESC=Race to 5000 points, but without seeing the notes! -;TODO: MODE_2000POINTS_NAME=Until 2000 +MODE_2000POINTS_NAME=Før 2000 ;TODO: MODE_2000POINTS_DESC=Race to 2000 Points! -;TODO: MODE_2000POINTSBLIND_NAME=Blind 2000 +MODE_2000POINTSBLIND_NAME=Blind 2000 ;TODO: MODE_2000POINTSBLIND_DESC=Race to 2000 points, but without seeing the notes! MODE_DUEL_NAME=Duell @@ -391,13 +375,13 @@ MODE_BLIND_NAME=Blindemodus ;TODO: MODE_1000BLIND_NAME = +1000 Blind ;TODO: MODE_1000BLIND_DESC = Gain a lead of more than 1000 points, but without seeing the notes! -;TODO: MODE_DEAF_NAME = Deaf +MODE_DEAF_NAME = Døv ;TODO: MODE_DEAF_DESC = Think you know the notes? Can you sing it without the acompaniment? ;TODO: MODE_BLINDLYRICS_NAME = No Lyrics ;TODO: MODE_BLINDLYRICS_DESC = Think you know all the lyrics? Sing with the lyrics hidden! -;TODO: MODE_500BLIND_NAME = +500 Blind +MODE_500BLIND_NAME = +500 Blind ;TODO: MODE_500BLIND_DESC = Gain a lead of more than 500 points, but without seeing the notes! ;TODO: MODE_SHORTSONG_NAME = Short Song @@ -422,7 +406,7 @@ STAT_DETAIL_WHEREAMI=Detaljert statistikk STAT_NEXT=Neste side STAT_PREV=Forrige side STAT_REVERSE=Bytt rekkefølge -STAT_PAGE=Side %0:d av %1:d Sider\n (%2:d av %3:d ) +STAT_PAGE=Side %0:d av %1:d \n Poster %2:d av %3:d STAT_DESC_SCORES=Toppscore STAT_DESC_SCORES_REVERSED=Bunnscore @@ -448,7 +432,6 @@ STAT_FORMAT_BANDS=%0:s \n %1:dx Sunget ;TODO: ERROR_FILE_NOT_FOUND=File not found ;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? -;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected MSG_ERROR_TITLE=Feil ;TODO: MSG_INFO_TITLE=Information @@ -465,20 +448,19 @@ ERROR_CORRUPT_SONG=Sangen kunne ikke lastes ;TODO: ERROR_CORRUPT_SONG_NO_NOTES=Song could not be loaded: Can''t find any notes ;TODO: ERROR_CORRUPT_SONG_NO_BREAKS=Song could not be loaded: Can''t find any linebreaks ;TODO: ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song could not be loaded: Error parsing line %0:d -;TODO: ERROR_NO_EDITOR=This feature is not available on this version. -;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options -;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options +ERROR_PLAYER_DEVICE_ASSIGNMENT=Spiller %d er tilordnet flere mikrofoner. Vennligst sjekk mikrofonene dine +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Spiller %d er ikke tilordnet en mikrofon. Vennligst sjekk mikrofonene dine -;TODO: SING_OPTIONS_NETWORK=Internet -;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options -;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings +SING_OPTIONS_NETWORK=Internett +SING_OPTIONS_NETWORK_WHEREAMI=Internett instillinger +SING_OPTIONS_NETWORK_DESC=Internett-generelle innstillinger ;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... ;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password +SING_OPTIONS_NETWORK_USERNAME=Brukernavn +SING_OPTIONS_NETWORK_PASSWORD=Passord ;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name ;TODO: SING_OPTIONS_NETWORK_AUTO_MODE=Auto -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player +SING_OPTIONS_NETWORK_AUTO_PLAYER=Spiller ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) @@ -487,18 +469,18 @@ ERROR_CORRUPT_SONG=Sangen kunne ikke lastes ;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert ;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 +OPTION_PLAYER_1=Spiller 1 +OPTION_PLAYER_2=Spiller 2 +OPTION_PLAYER_3=Spiller 3 +OPTION_PLAYER_4=Spiller 4 +OPTION_PLAYER_5=Spiller 5 +OPTION_PLAYER_6=Spiller 6 OPTION_ALL_PLAYERS=Alt OPTION_ALL_SCORES=Alt ;TODO: OPTION_VALUE_SAVE=Save ;TODO: OPTION_VALUE_SEND=Send -;TODO: MSG_INSERT_USER_TITLE=%0:s +MSG_INSERT_USER_TITLE=%0:s ;TODO: MSG_INSERT_USER_DESC=Fill the fields: ;TODO: MSG_INSERT_USER_ADD=Add MSG_INSERT_USER_CANCEL=AVbryt @@ -526,8 +508,8 @@ MSG_INSERT_USER_CANCEL=AVbryt ;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! ;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! -;TODO: SONG_SCORE_MAX=Best: -;TODO: SONG_SCORE_MEDIA=Average: +SONG_SCORE_MAX=Beste: +SONG_SCORE_MEDIA=Gjennomsnitt: ;TODO: SCORE_SEND_DESC=Send Score ;TODO: SCORE_SEND=Send @@ -535,9 +517,9 @@ MSG_INSERT_USER_CANCEL=AVbryt ;TODO: SCORE_SEND_OTHER_USER= Other Username ;TODO: SCORE_SAVE=Save -;TODO: SCORE_DOWNLOAD_TITLE=Download -;TODO: SCORE_DOWNLOAD_SONG=Song: -;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... +SCORE_DOWNLOAD_TITLE=Nedlasting +SCORE_DOWNLOAD_SONG=Sang: +SCORE_DOWNLOAD_CREATE_LIST=Forbereder liste... ;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... SCORE_DOWNLOAD_CANCEL=AVbryt ;TODO: SCORE_DOWNLOAD_OK=OK @@ -561,40 +543,10 @@ SCORE_DOWNLOAD_CANCEL=AVbryt ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Semifinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Quarterfinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL=Round of 16 -PARTY_MODE_TOURNAMENT_ROUNDS_DESC=neste spillere til mikrofonene +PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Neste spillere til mikrofonene ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -;TODO: INFO_FILE_SAVED=File saved -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - ;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! ;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! @@ -607,10 +559,8 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=neste spillere til mikrofonene ;TODO: SING_ERROR_DUET_MODE_PARTY = Duet! Not playable in Party Mode! -;TODO: SONG_MENU_SONG=Song +SONG_MENU_SONG=Sang ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Sangmeny ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -635,9 +585,10 @@ SING_OPTIONS_WEBCAM_RESOLUTION=Oppløsning ;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! ;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip SING_OPTIONS_WEBCAM_EFFECT=Effekter -;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation +SING_OPTIONS_WEBCAM_BRIGHTNESS=Lysstyrke +SING_OPTIONS_WEBCAM_SATURATION=Metning ;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +SING_OPTIONS_WEBCAM_PREVIEW=Aktiver forhåndsvisning ;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview ;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview @@ -663,42 +614,42 @@ SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Toleransegrense ;TODO: WEBSITE_EXIST_SONG=The song belongs to the website: %0:s ;TODO: WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! -;TODO: NAME_PLAYERS_COUNT=Number of Players -;TODO: NAME_CURRENT_PLAYER=Player +NAME_PLAYERS_COUNT=Antall spillere +NAME_CURRENT_PLAYER=Spiller SING_OPTIONS_GAME_SONGMENU=Sangmeny -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List +OPTION_VALUE_ROULETTE=Rulett +OPTION_VALUE_CHESSBOARD=Sjakkbrett +OPTION_VALUE_CAROUSEL=Carousel +OPTION_VALUE_SLOT_MACHINE=Spilleautomat +OPTION_VALUE_LIST=Liste ;TODO: OPTION_VALUE_MOSAIC=Tile ;TODO: SING_OPTIONS_JUKEBOX=Jukebox ;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox ;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options -OPTION_VALUE_TO_SING=syng -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next +OPTION_VALUE_TO_SING=Syng +OPTION_VALUE_ACTUAL=Øverste +OPTION_VALUE_NEXT=Bunn ;TODO: OPTION_VALUE_OTHER=Other ;TODO: OPTION_VALUE_FILL=Fill ;TODO: OPTION_VALUE_OUTLINE=Outline -;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -;TODO: OPTION_VALUE_SALMON=Salmon -;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige +OPTION_VALUE_GRAY=Grå +OPTION_VALUE_WHITE=Hvit +OPTION_VALUE_TURQUOISE=Turkis +OPTION_VALUE_SALMON=Laks +OPTION_VALUE_GREENYELLOW=Grønn gul +OPTION_VALUE_LAVENDER=Lavendel +OPTION_VALUE_BEIGE=Beige ;TODO: OPTION_VALUE_TEAL=Teal ;TODO: OPTION_VALUE_ORCHID=Orchid -;TODO: OPTION_VALUE_STEELBLUE=Steel Blue +OPTION_VALUE_STEELBLUE=Stålblå ;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold -;TODO: OPTION_VALUE_DARKBLUE=Dark Blue -;TODO: OPTION_VALUE_SKY=Sky +OPTION_VALUE_CHOCOLATE=Sjokolade +OPTION_VALUE_GOLD=Gull +OPTION_VALUE_DARKBLUE=Mørke blå +OPTION_VALUE_SKY=Himmel ;TODO: OPTION_VALUE_HARLEQUIN=Harlequin ;TODO: OPTION_VALUE_CYAN=Cyan ;TODO: OPTION_VALUE_FLAME=Flame @@ -708,15 +659,15 @@ OPTION_VALUE_TO_SING=syng ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height ;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size +JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Størrelse ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Transparency JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Farge ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Red -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Green -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blue +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Rød +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Grønn +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blå ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop @@ -739,12 +690,17 @@ JUKEBOX_OPTIONS_PLAYLIST=Spillelist ;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing ;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores OPTION_VALUE_ALL=Alt -;TODO: OPTION_VALUE_PLAYER=Player - -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +OPTION_VALUE_PLAYER=Spiller + +SING_ABOUT=Handle om +SING_ABOUT_DESC=Handle om Ultrastar Deluxe WorldParty +ABOUT_MAIN=Handle om... +ABOUT_USDX_DEVELOPEDBY=Utviklet av +ABOUT_CHECK_CHECKING=Sjekker etter nye oppdateringer... +ABOUT_CHECK_AVAILABLE=Det er en ny versjon tilgjengelig +ABOUT_CHECK_UPTODATE=WorldParty er oppdatert +ABOUT_CHECK_CONNECTION=Det er ingen Internett-tilkobling +ABOUT_OVERVIEW=Oppdag en ny måte å synge, alene, i par eller med venner. \n Moro er garantert.\n\nWorldParty er en fork av den opprinnelige versjonen Ultrastar Deluxe 1.1 designet og utviklet av UltraStar España-laget, teller det med det største karaoke-fellesskapet.\n\n\nDette programmet er gratis og libre under GPL-lisensen. \n\n Besøk oss for mer informasjon.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Utviklet av +DEVELOPERS_OVERVIEW=Folk som har bidratt til dette prosjektet:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Besøk oss for mer informasjon.\n\nhttps://ultrastar-es.org diff --git a/game/languages/Polski.ini b/game/languages/Polski.ini index 9b7a3ce6..9d0a9b35 100644 --- a/game/languages/Polski.ini +++ b/game/languages/Polski.ini @@ -68,12 +68,8 @@ OPTION_VALUE_SING=Śpiew OPTION_VALUE_SELECT_PLAYERS=Wybierz graczy OPTION_VALUE_OPEN_MENU=Otwórz Menu -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -OPTION_VALUE_HARDWARE_CURSOR=Sprzętowy Kursor -OPTION_VALUE_SOFTWARE_CURSOR=Programowy Kursor - SING_LOADING=Wczytywanie... +SING_LOADING_SONGS=Ładowanie utworów z folderu %s SING_CHOOSE_MODE=Wybierz tryb SING_SING=Śpiewaj @@ -87,9 +83,6 @@ SING_TOOLS=Narzędzia SING_STATS=Statystyki SING_STATS_DESC=Zobacz statystyki -SING_EDITOR=Edytor -SING_EDITOR_DESC=Stwórz własną piosenkę - SING_GAME_OPTIONS=Opcje gry SING_GAME_OPTIONS_DESC=Zmiana ustawień gry @@ -103,10 +96,9 @@ SING_OPTIONS_WHEREAMI=Opcje SING_OPTIONS_GAME=Gra SING_OPTIONS_GRAPHICS=Grafika SING_OPTIONS_SOUND=Dźwięk -SING_OPTIONS_INPUT=Wejścia SING_OPTIONS_LYRICS=Tekst SING_OPTIONS_THEMES=Style -SING_OPTIONS_RECORD=Nagrywanie +SING_OPTIONS_MICROPHONES=Nagrywanie SING_OPTIONS_ADVANCED=Zaawansow. SING_OPTIONS_EXIT=Wstecz @@ -117,15 +109,16 @@ SING_OPTIONS_GAME_DIFFICULTY=Trudność SING_OPTIONS_GAME_LANGUAGE=Język SING_OPTIONS_GAME_TABS=Zakładki SING_OPTIONS_GAME_SORTING=Sortowanie -SING_OPTIONS_GAME_DEBUG=Debug +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Aktywuj gamepada SING_OPTIONS_GRAPHICS_WHEREAMI=Opcje Grafiki SING_OPTIONS_GRAPHICS_DESC=Ustawienia grafiki SING_OPTIONS_GRAPHICS_RESOLUTION=Rozdzielczość SING_OPTIONS_GRAPHICS_FULLSCREEN=Pełny ekran -SING_OPTIONS_GRAPHICS_DEPTH=Głębia +SING_OPTIONS_GRAPHICS_EFFECTSING=Efekty śpiewania +SING_OPTIONS_GRAPHICS_SCREENFADE=Przenikanie ekranów +SING_OPTIONS_GRAPHICS_LOADANIMATION=Animacja wczytywania SING_OPTIONS_GRAPHICS_VISUALIZER=Wizualizacja -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oscyloskop SING_OPTIONS_GRAPHICS_LINEBONUS=Linia bonusu SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Rozmiar filmu @@ -133,20 +126,13 @@ SING_OPTIONS_SOUND_WHEREAMI=Opcje dźwięku SING_OPTIONS_SOUND_DESC=Ustawienia dźwięku SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Podkład mikrofonu SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Podkład muzyczny -SING_OPTIONS_SOUND_MIC_BOOST=Podbicie mikrofonu SING_OPTIONS_SOUND_CLICK_ASSIST=Pomoc kliknięciami SING_OPTIONS_SOUND_BEAT_CLICK=Kliknięcia w rytm -SING_OPTIONS_SOUND_THRESHOLD=Próg SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Tryb dwóch graczy SING_OPTIONS_SOUND_MUSICAUTOGAIN=Przyrost muzyki SING_OPTIONS_SOUND_PREVIEWVOLUME=Głośność w podglądzie SING_OPTIONS_SOUND_PREVIEWFADING=Zanikanie w podglądzie -SING_OPTIONS_INPUT_WHEREAMI=Opcje wejść -SING_OPTIONS_INPUT_DESC=Ustawienia wejść -SING_OPTIONS_INPUT_MOUSE=Mysz -SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Wsparcie kontrolera - SING_OPTIONS_LYRICS_WHEREAMI=Opcje tekstu SING_OPTIONS_LYRICS_DESC=Ustawienie tekstu SING_OPTIONS_LYRICS_FONT=Czcionka @@ -160,43 +146,36 @@ SING_OPTIONS_THEMES_THEME=Styl SING_OPTIONS_THEMES_SKIN=Skórka SING_OPTIONS_THEMES_COLOR=Kolor -SING_OPTIONS_RECORD_WHEREAMI=Opcje nagrywania -SING_OPTIONS_RECORD_DESC=Ustawienia mikrofonu -SING_OPTIONS_RECORD_CARD=Karta muzyczna -SING_OPTIONS_RECORD_INPUT=Wejście -SING_OPTIONS_RECORD_CHANNEL=Kanał +SING_OPTIONS_MICROPHONES_WHEREAMI=Opcje nagrywania +SING_OPTIONS_MICROPHONES_DESC=Ustawienia mikrofonu +SING_OPTIONS_MICROPHONES_CARD=Karta muzyczna +SING_OPTIONS_MICROPHONES_INPUT=Wejście +SING_OPTIONS_MICROPHONES_CHANNEL=Kanał +SING_OPTIONS_MICROPHONES_THRESHOLD=Próg +SING_OPTIONS_MICROPHONES_MIC_BOOST=Podbicie mikrofonu SING_OPTIONS_ADVANCED_WHEREAMI=Opcje zaawansowane SING_OPTIONS_ADVANCED_DESC=Zaawansowane ustawienia -SING_OPTIONS_ADVANCED_EFFECTSING=Efekty śpiewania -SING_OPTIONS_ADVANCED_SCREENFADE=Przenikanie ekranów -SING_OPTIONS_ADVANCED_LOADANIMATION=Animacja wczytywania +SING_OPTIONS_ADVANCED_DEBUG=Debug +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Oscyloskop SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Pytania pomocnicze SING_OPTIONS_ADVANCED_LINEBONUS=Linia bonusu -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=Po wybraniu piosenki SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto PartyMenu -SING_EDIT=Edytor -SING_EDIT_MENU_DESCRIPTION=Stwórz własną piosenkę - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Zaimportuj tekst z pliku midi -SING_EDIT_BUTTON_DESCRIPTION_EXIT=Wstecz -SING_EDIT_BUTTON_CONVERT=Import -SING_EDIT_BUTTON_EXIT=Wstecz - -SING_EDIT_NAVIGATE=Nawiguj -SING_EDIT_SELECT=Wybierz -SING_EDIT_EXIT=Wstecz - SING_LEGEND_SELECT=Wybierz SING_LEGEND_NAVIGATE=Nawiguj SING_LEGEND_CONTINUE=Kontynuacja SING_LEGEND_ESC=Wstecz -SING_PLAYER_DESC=Wpisz nazwę gracza/y -SING_PLAYER_WHEREAMI=Nazwa graczy -SING_PLAYER_ENTER_NAME=Wpisz nazwę +;TODO: SING_PLAYER_TITLE=Profiles +SING_PLAYER_READY=Gracze gotowi do śpiewania +SING_PLAYER_COUNT=Liczba graczy +SING_PLAYER_EDIT=Dostosuj gracza +SING_PLAYER_NAME=Napisz swoje imię +SING_PLAYER_COLOR=Wybierz kolor +SING_PLAYER_LEVEL=Wybierz poziom +SING_PLAYER_AVATAR=Wybierz swój awatar SING_DIFFICULTY_DESC=Wybierz trudność SING_DIFFICULTY_WHEREAMI=Trudność @@ -211,10 +190,15 @@ SING_SONG_SELECTION_GOTO=Idź do .. SING_SONG_SELECTION=Wybór piosenki SING_SONG_SELECTION_MENU=Menu SING_SONG_SELECTION_PLAYLIST=Playlista +SING_SONG_IN_CAT=Piosenka SING_SONGS_IN_CAT=Piosenki PLAYLIST_CATTEXT=Playlista: %s +SING_SONG_SELECTION_LEGEND_TITLE=Legenda +SING_SONG_SELECTION_LEGEND_VIDEO=Wideo +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Duet -;TODO: SING_TIME=TIME SING_TOTAL=Cały SING_MODE=Śpiewaj solo SING_NOTES=Nuty @@ -255,7 +239,6 @@ IMPLODE_GLUE2= oraz SONG_MENU_NAME_MAIN=Menu piosenki SONG_MENU_PLAY=Śpiewaj SONG_MENU_CHANGEPLAYERS=Zmień graczy -SONG_MENU_EDIT=Edytuj SONG_MENU_MODI=Śpiewaj Modi SONG_MENU_CANCEL=Anuluj @@ -358,22 +341,22 @@ MODE_HOLDTHELINE_DESC=Utrzymaj swój wynik powyżej linii jak najdłużej! ;TODO: MODE_HOLDTHELINEBLIND_NAME=Hold the Blind MODE_HOLDTHELINEBLIND_DESC=Utrzymaj swój wynik powyżej linii jak najdłużej, ale z ukrytymi nutami! -;TODO: MODE_7000POINTS_NAME=Until 7000 +MODE_7000POINTS_NAME=Aż do 7000 MODE_7000POINTS_DESC=Wyścig do 7000 punktów! -;TODO: MODE_7000POINTSBLIND_NAME=Blind 7000 +MODE_7000POINTSBLIND_NAME=Ślepy 7000 MODE_7000POINTSBLIND_DESC=Wyścig do 7000 punktów, ale bez patrzenia na nuty! MODE_5000POINTS_NAME=Do 5000 MODE_5000POINTS_DESC=Wyścig do 5000 punktów! -;TODO: MODE_5000POINTSBLIND_NAME=Blind 5000 +MODE_5000POINTSBLIND_NAME=Ślepy 5000 MODE_5000POINTSBLIND_DESC=Wyścig do 5000 punktów, ale bez patrzenia na nuty! -;TODO: MODE_2000POINTS_NAME=Until 2000 +MODE_2000POINTS_NAME=Aż do 2000 MODE_2000POINTS_DESC=Wyścig do 2000 punktów! -;TODO: MODE_2000POINTSBLIND_NAME=Blind 2000 +MODE_2000POINTSBLIND_NAME=Ślepy 2000 MODE_2000POINTSBLIND_DESC=Race to 2000 points, but without seeing the notes! MODE_DUEL_NAME=Pojedynek @@ -388,16 +371,16 @@ MODE_BLIND_DESC=Pojedynek 1v1, ale z ukrytymi nutami! ;TODO: MODE_BLINDTOTAL_NAME=Total Darkness! MODE_BLINDTOTAL_DESC=Pojedynek, ale z ukrytymi nutami i napisami. Tylko dla odważnych! -;TODO: MODE_1000BLIND_NAME = +1000 Blind +MODE_1000BLIND_NAME = +1000 Ślepy MODE_1000BLIND_DESC = Uzbieraj ponad 1000 punktów, ale z ukrytymi nutami! -;TODO: MODE_DEAF_NAME = Deaf +MODE_DEAF_NAME = Głuchy MODE_DEAF_DESC = Myślisz że znasz nuty? Czy zaśpiewasz bez akompaniamentu? MODE_BLINDLYRICS_NAME = Bez Napisów MODE_BLINDLYRICS_DESC = Myślisz że znasz tekst? Zaśpiewaj bez patrzenia na napisy! -;TODO: MODE_500BLIND_NAME = +500 Blind +MODE_500BLIND_NAME = +500 Ślepy MODE_500BLIND_DESC = Uzbieraj ponad 500 punktów, ale z ukrytymi nutami! ;TODO: MODE_SHORTSONG_NAME = Short Song @@ -422,7 +405,7 @@ STAT_DETAIL_WHEREAMI=Statystyki szczegółowe STAT_NEXT=Następna strona STAT_PREV=Poprzednia strona STAT_REVERSE=Odwróć kolejność -STAT_PAGE=strona %0:d z %1:d stron\n (%2:d z %3:d wpisów) +STAT_PAGE=Strona %0:d z %1:d \n Wpisów %2:d z %3:d STAT_DESC_SCORES=Najwyższe wyniki STAT_DESC_SCORES_REVERSED=Najniższe wyniki @@ -448,7 +431,6 @@ ERROR_SAVE_FILE_FAILED=Nie mogę zapisać pliku ERROR_FILE_NOT_FOUND=Plik nieznaleziony ENCODING_ERROR_ASK_FOR_UTF8=Nie mogę zapisać zmian w obecnym kodowaniu. Skonwertuj na UTF-8? -EDITOR_ERROR_NO_TRACK_SELECTED=Nie zaznaczona ścieżka MSG_ERROR_TITLE=Błąd MSG_INFO_TITLE=Informacja @@ -465,11 +447,10 @@ ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Piosenka nie może być załadowana: Brak plik ERROR_CORRUPT_SONG_NO_NOTES=Piosenka nie może być załadowana: nie mogę znaleść nut. ERROR_CORRUPT_SONG_NO_BREAKS=Piosenka nie może być załadowana: nie mogę znaleść linii dzielących ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Piosenka nie może być załadowana: Błąd rozpoznawania linii %0:d -ERROR_NO_EDITOR=Dodatek nie jest dostępny dla Linux/Mac -ERROR_PLAYER_DEVICE_ASSIGNMENT=Gracz %d został przypisany do wielu mikrofonów. Sprawdź ustawienia w opcjach gry. -ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Gracz %d nie ma przypisanego mikrofonu. Sprawdź ustawienia nagrywania. +ERROR_PLAYER_DEVICE_ASSIGNMENT=Gracz %d został przypisany do wielu mikrofonów. Sprawdź ustawienia mikrofonów. +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Gracz %d nie ma przypisanego mikrofonu. Sprawdź ustawienia mikrofonów. -;TODO: SING_OPTIONS_NETWORK=Internet +SING_OPTIONS_NETWORK=Internet SING_OPTIONS_NETWORK_WHEREAMI=Opcje internetowe SING_OPTIONS_NETWORK_DESC=Główne ustawienia internetowe SING_OPTIONS_NETWORK_INSERT_USER_INFO=Wciśnij "Insert" aby dodać użytkownika do tej strony... @@ -498,7 +479,7 @@ OPTION_ALL_SCORES=Wszystko OPTION_VALUE_SAVE=Zapisz OPTION_VALUE_SEND=Wyślij -;TODO: MSG_INSERT_USER_TITLE=%0:s +MSG_INSERT_USER_TITLE=%0:s MSG_INSERT_USER_DESC=Wypełnij pola: MSG_INSERT_USER_ADD=Dodaj MSG_INSERT_USER_CANCEL=Anuluj @@ -565,36 +546,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Następni gracze do mikrofonów PARTY_MODE_TOURNAMENT_WIN_DESC=Wynik rundy PARTY_MODE_TOURNAMENT_CHAMPION=Mistrzem zostaje: %0:s! -EDIT_TITLE=Tytuł: -EDIT_ARTIST=Artysta: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -EDIT_COVER=Okładka: -EDIT_BACKGROUND=Tło: - -;TODO: EDIT_START=Start: -EDIT_DURATION=Czas trwania: -EDIT_TONE=Ton: -EDIT_LYRIC=Text: -;TODO: EDIT_VIDEOGAP=Video Gap: -EDIT_VOLUME_AUDIO=Głośność audio: -EDIT_VOLUME_MIDI=Głośność midi: -EDIT_VOLUME_CLICK=Kliknij głośność: -INFO_UNDO=Cofnij ostatnią operację - -INFO_FILE_SAVED=Plik zapisany -INFO_TIME_FIXED=Czasy poprawione -INFO_CAPITALIZE=Wielkość liter poprawiona -INFO_EXIT=Czy chcesz opuścić edytor bez zapisu? -INFO_SONG_RELOADED=Piosenka przeładowana -INFO_DIVIDED_BPM=BPM podzielone -INFO_MULTIPLIED_BPM=BPM pomnożone -INFO_PLAY_SONG=Graj piosenkę -INFO_PLAY_SENTENCE=Graj zdanie -INFO_CURRENT_LINE=Linia: -INFO_CURRENT_NOTE=Nuta: - INFO_MIDI_CHANNEL_OFF= Kanał %0:s wyłączony! INFO_MIDI_CHANNEL_RESET= Wszystkie kanały włączone! @@ -609,8 +560,6 @@ SING_ERROR_DUET_MODE_PARTY = Duet! Nie można uruchomić w Party Mode! SONG_MENU_SONG=Piosenka SONG_MENU_MEDLEY=Składanka -SONG_MENU_SORTING=Sortuj -SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Menu piosenki SONG_MENU_NAME_MEDLEY=Menu składanki @@ -631,13 +580,14 @@ SING_OPTIONS_WEBCAM_DESC=Ustawienia kamerki SING_OPTIONS_WEBCAM_WHEREAMI=Opcje kamerki SING_OPTIONS_WEBCAM_ID=Kamerka SING_OPTIONS_WEBCAM_RESOLUTION=Rozdzielczość -;TODO: SING_OPTIONS_WEBCAM_FPS=FPS +SING_OPTIONS_WEBCAM_FPS=FPS SING_OPTIONS_WEBCAM_NO_WEBCAM=Nie znaleziono kamerki! SING_OPTIONS_WEBCAM_FLIP=Odwróć SING_OPTIONS_WEBCAM_EFFECT=Efekt SING_OPTIONS_WEBCAM_BRIGHTNESS=Jasność SING_OPTIONS_WEBCAM_SATURATION=Nasycenie SING_OPTIONS_WEBCAM_HUE=Odcień +SING_OPTIONS_WEBCAM_PREVIEW=Aktywuj podgląd SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Włącz podgląd SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Wyłącz podgląd @@ -710,7 +660,7 @@ JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Długość JUKEBOX_SONGOPTIONS_LYRIC=Opcje tekstu JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Rozmiar JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Pozycja -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Przezroczystość JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Kolor JUKEBOX_SONGOPTIONS_LYRIC_LINE=Linia JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Właściwość @@ -742,9 +692,14 @@ OPTION_VALUE_ALL=Wszystko OPTION_VALUE_PLAYER=Gracz SING_ABOUT=Informacje -SING_ABOUT_DESC=Informacje o Ultrastar Deluxe +SING_ABOUT_DESC=Informacje o Ultrastar Deluxe WorldParty ABOUT_MAIN=Informacje... -ABOUT_MAIN_DESC=Ultrastar Deluxe -ABOUT_MAIN_WHEREAMI=Informacje... -;TODO: ABOUT_USDX_CREDITS=Credits -ABOUT_OVERVIEW=UltraStar Deluxe jest darmową, OpenSource-ową grą karaoke dla Twojego komputera. Rozgrywka przypomina tą z komercyjnego produktu SingStar™ firmy Sony Computer Entertainment, która jest dostępna jedynie na konsolę Playstation®. Jednakże, w przeciwieństwie do SingStar™, UltraStar Deluxe pozwala graczom na tworzenie własnych utworów i rozgrywkę na komputerach PC.\nPublikując kod źródłowy, pozwalamy na modyfikację gry wedla własnego uznania, chęci i potrzeb.\nW szczególności, możesz modyfikować produkt tak jak tego chcesz.\n\nTwórz własne style lub pobieraj treści zgromadzone przez społeczność gry, takie jak pluginy, darmowe utwory lub łatki zawierające dodatkowe funkcjonalności.\nTryb imprezy pozwala aż dwunastu graczom śpiewać razem do ulubionej muzyki w celu zdobycia punktów, w zależności od wysokości tonu głosu i rytmiki śpiewu. +ABOUT_USDX_DEVELOPEDBY=Opracowany przez +ABOUT_CHECK_CHECKING=Sprawdzanie nowych aktualizacji... +ABOUT_CHECK_AVAILABLE=Dostępna jest nowa wersja +ABOUT_CHECK_UPTODATE=WorldParty jest aktualne +ABOUT_CHECK_CONNECTION=Brak połączenia z Internetem +ABOUT_OVERVIEW=Odkryj nowy sposób śpiewania, sam, w parach lub z przyjaciółmi. \n Zabawa jest gwarantowana.\n\nWorldParty jest fork oryginalnej wersji Ultrastar Deluxe 1.1 zaprojektowane i opracowane przez zespół UltraStar España, liczy się z największą społecznością karaoke.\n\n\nTen program jest bezpłatny i libre na licencji GPL. \n\n Odwiedź nas, aby uzyskać więcej informacji.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Opracowany przez +DEVELOPERS_OVERVIEW=Ludzie, którzy przyczynili się do tego projektu:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Visit us for more information.\n\nhttps://ultrastar-es.org diff --git "a/game/languages/Portugu\303\252s.ini" "b/game/languages/Portugu\303\252s.ini" index a2da340e..4e0dd448 100644 --- "a/game/languages/Portugu\303\252s.ini" +++ "b/game/languages/Portugu\303\252s.ini" @@ -20,10 +20,10 @@ OPTION_VALUE_YEAR=Ano OPTION_VALUE_DECADE=Década OPTION_VALUE_PLAYLIST=Playlist -;TODO: OPTION_VALUE_BORDERLESS=Borderless +OPTION_VALUE_BORDERLESS=Maximizado OPTION_VALUE_WHENNOVIDEO=Não existir Vídeo -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Quando não há vídeo e imagem OPTION_VALUE_SMALL=Pequeno OPTION_VALUE_BIG=Grande @@ -40,9 +40,9 @@ OPTION_VALUE_AUTO=Auto OPTION_VALUE_SEC=Segundo OPTION_VALUE_SECS=Segundos -OPTION_VALUE_PLAIN=Plano -OPTION_VALUE_OLINE1=Negrito 1 -OPTION_VALUE_OLINE2=Negrito 2 +OPTION_VALUE_PLAIN=Estilizado +OPTION_VALUE_OLINE1=com borda fina +OPTION_VALUE_OLINE2=with thick edge OPTION_VALUE_SIMPLE=Simples OPTION_VALUE_ZOOM=Zoom @@ -68,12 +68,8 @@ OPTION_VALUE_SING=Cantar OPTION_VALUE_SELECT_PLAYERS=Escolher Jogadores OPTION_VALUE_OPEN_MENU=Abrir Menu -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor -OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor - SING_LOADING=A Ler... +SING_LOADING_SONGS=Carregando canções da pasta %s SING_CHOOSE_MODE=Escolha o Modo SING_SING=Cantar @@ -87,9 +83,6 @@ SING_TOOLS=Ferramentas SING_STATS=Estatísticas SING_STATS_DESC=Ver Estatísticas -SING_EDITOR=Editor -SING_EDITOR_DESC=Criar canção - SING_GAME_OPTIONS=Opções de Jogo SING_GAME_OPTIONS_DESC=Alterar configurações de Jogo @@ -103,10 +96,9 @@ SING_OPTIONS_WHEREAMI=Opções SING_OPTIONS_GAME=Jogo SING_OPTIONS_GRAPHICS=Gráficos SING_OPTIONS_SOUND=Som -;TODO: SING_OPTIONS_INPUT=Input SING_OPTIONS_LYRICS=Letras SING_OPTIONS_THEMES=Temas -SING_OPTIONS_RECORD=Gravação +SING_OPTIONS_MICROPHONES=Gravação SING_OPTIONS_ADVANCED=Avançado SING_OPTIONS_EXIT=Voltar @@ -117,15 +109,16 @@ SING_OPTIONS_GAME_DIFFICULTY=Dificuldade SING_OPTIONS_GAME_LANGUAGE=Idioma SING_OPTIONS_GAME_TABS=Subpastas SING_OPTIONS_GAME_SORTING=Ordenação -SING_OPTIONS_GAME_DEBUG=Modo Debug +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Ativar o gamepad SING_OPTIONS_GRAPHICS_WHEREAMI=Opções de Gráficos SING_OPTIONS_GRAPHICS_DESC=Configurações dos Gráficos SING_OPTIONS_GRAPHICS_RESOLUTION=Resolução SING_OPTIONS_GRAPHICS_FULLSCREEN=Ecrã Total -SING_OPTIONS_GRAPHICS_DEPTH=Profundidade +SING_OPTIONS_GRAPHICS_EFFECTSING=Efeitos +SING_OPTIONS_GRAPHICS_SCREENFADE=Fade do Ecrã +SING_OPTIONS_GRAPHICS_LOADANIMATION=Animação SING_OPTIONS_GRAPHICS_VISUALIZER=Visualizador -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Osciloscópio SING_OPTIONS_GRAPHICS_LINEBONUS=Linha Bonus SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Tamanho do Vídeo @@ -133,20 +126,13 @@ SING_OPTIONS_SOUND_WHEREAMI=Opções de Som SING_OPTIONS_SOUND_DESC=Configuração do Som SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Playback Microfone SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Música de Fundo -SING_OPTIONS_SOUND_MIC_BOOST=Microfone Boost SING_OPTIONS_SOUND_CLICK_ASSIST=Click de Ajuda SING_OPTIONS_SOUND_BEAT_CLICK=Click de Batida -SING_OPTIONS_SOUND_THRESHOLD=Threshold SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Modo de dois jogadores ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Preview Volume SING_OPTIONS_SOUND_PREVIEWFADING=Preview Fading -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - SING_OPTIONS_LYRICS_WHEREAMI=Opções de Letras SING_OPTIONS_LYRICS_DESC=Configuração de Letras SING_OPTIONS_LYRICS_FONT=Fonte @@ -160,43 +146,36 @@ SING_OPTIONS_THEMES_THEME=Tema SING_OPTIONS_THEMES_SKIN=Skin SING_OPTIONS_THEMES_COLOR=Cor -SING_OPTIONS_RECORD_WHEREAMI=Opções de Gravação -SING_OPTIONS_RECORD_DESC=Configurações do Microfone -SING_OPTIONS_RECORD_CARD=Placa de Som -SING_OPTIONS_RECORD_INPUT=Entrada -SING_OPTIONS_RECORD_CHANNEL=Canal +SING_OPTIONS_MICROPHONES_WHEREAMI=Opções de Gravação +SING_OPTIONS_MICROPHONES_DESC=Configurações do Microfone +SING_OPTIONS_MICROPHONES_CARD=Placa de Som +SING_OPTIONS_MICROPHONES_INPUT=Entrada +SING_OPTIONS_MICROPHONES_CHANNEL=Canal +SING_OPTIONS_MICROPHONES_THRESHOLD=Threshold +SING_OPTIONS_MICROPHONES_MIC_BOOST=Microfone Boost SING_OPTIONS_ADVANCED_WHEREAMI=Opções Avançadas SING_OPTIONS_ADVANCED_DESC=Outras Opções -SING_OPTIONS_ADVANCED_EFFECTSING=Efeitos -SING_OPTIONS_ADVANCED_SCREENFADE=Fade do Ecrã -SING_OPTIONS_ADVANCED_LOADANIMATION=Animação +SING_OPTIONS_ADVANCED_DEBUG=Modo debug +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Osciloscópio SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Segurança SING_OPTIONS_ADVANCED_LINEBONUS=Linha de Bônus -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=Escolha da Canção SING_OPTIONS_ADVANCED_PARTYPOPUP=Menu de Festa -SING_EDIT=Editor -SING_EDIT_MENU_DESCRIPTION=Cria a tua própria canção - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Importar texto de um arquivo MIDI -SING_EDIT_BUTTON_DESCRIPTION_EXIT=Voltar -SING_EDIT_BUTTON_CONVERT=Importar -SING_EDIT_BUTTON_EXIT=Voltar - -SING_EDIT_NAVIGATE=Navegar -SING_EDIT_SELECT=Seleccionar -SING_EDIT_EXIT=Voltar - SING_LEGEND_SELECT=Seleccionar SING_LEGEND_NAVIGATE=Navegar SING_LEGEND_CONTINUE=Continuar SING_LEGEND_ESC=Voltar -SING_PLAYER_DESC=Introduza o(s) nome(s) do(s) jogador(es) -SING_PLAYER_WHEREAMI=Nome dos Jogadores -SING_PLAYER_ENTER_NAME=Introduzir Nome +SING_PLAYER_TITLE=Perfis +SING_PLAYER_READY=Jogadores prontos para cantar +SING_PLAYER_COUNT=Número de jogadores +SING_PLAYER_EDIT=Personalize um jogador +SING_PLAYER_NAME=Escreva seu nome +SING_PLAYER_COLOR=Escolha uma cor +SING_PLAYER_LEVEL=Escolha um nível +SING_PLAYER_AVATAR=Selecione seu avatar SING_DIFFICULTY_DESC=Nível de Dificuldade SING_DIFFICULTY_WHEREAMI=Dificuldade @@ -211,10 +190,15 @@ SING_SONG_SELECTION_GOTO=Ir para .. SING_SONG_SELECTION=Seleção da Canção SING_SONG_SELECTION_MENU=Menu SING_SONG_SELECTION_PLAYLIST=Playlist +SING_SONG_IN_CAT=Cançao SING_SONGS_IN_CAT=Canções PLAYLIST_CATTEXT=Playlist: %s +SING_SONG_SELECTION_LEGEND_TITLE=Lenda +SING_SONG_SELECTION_LEGEND_VIDEO=Vídeo +SING_SONG_SELECTION_LEGEND_MEDLEY=Versão curta +SING_SONG_SELECTION_LEGEND_MEDLEYC=Versão curta calculada +SING_SONG_SELECTION_LEGEND_DUET=Dueto -;TODO: SING_TIME=TIME SING_TOTAL=Total SING_MODE=Cantar Solo SING_NOTES=Notas @@ -255,7 +239,6 @@ IMPLODE_GLUE2= e SONG_MENU_NAME_MAIN=Menu de canções SONG_MENU_PLAY=Cantar SONG_MENU_CHANGEPLAYERS=Mudar Jogadores -SONG_MENU_EDIT=Editar SONG_MENU_MODI=Cantar uma Modi SONG_MENU_CANCEL=Cancelar @@ -358,22 +341,22 @@ MODE_HOLDTHELINE_NAME=Manter a linha ;TODO: MODE_HOLDTHELINEBLIND_NAME=Hold the Blind ;TODO: MODE_HOLDTHELINEBLIND_DESC=Keep your rating above the line for the longest, but with the notes hidden! -;TODO: MODE_7000POINTS_NAME=Until 7000 +MODE_7000POINTS_NAME=Até 7000 ;TODO: MODE_7000POINTS_DESC=Race to 7000 Points! -;TODO: MODE_7000POINTSBLIND_NAME=Blind 7000 +MODE_7000POINTSBLIND_NAME=Cego 7000 ;TODO: MODE_7000POINTSBLIND_DESC=Race to 7000 points, but without seeing the notes! MODE_5000POINTS_NAME=Até 5000 ;TODO: MODE_5000POINTS_DESC=Race to 5000 Points! -;TODO: MODE_5000POINTSBLIND_NAME=Blind 5000 +MODE_5000POINTSBLIND_NAME=Cego 5000 ;TODO: MODE_5000POINTSBLIND_DESC=Race to 5000 points, but without seeing the notes! -;TODO: MODE_2000POINTS_NAME=Until 2000 +MODE_2000POINTS_NAME=Até 2000 ;TODO: MODE_2000POINTS_DESC=Race to 2000 Points! -;TODO: MODE_2000POINTSBLIND_NAME=Blind 2000 +MODE_2000POINTSBLIND_NAME=Cego 2000 ;TODO: MODE_2000POINTSBLIND_DESC=Race to 2000 points, but without seeing the notes! MODE_DUEL_NAME=Duelo @@ -422,7 +405,7 @@ STAT_DETAIL_WHEREAMI=Estatísticas Detalhadas STAT_NEXT=Página Seguinte STAT_PREV=Página Anterior STAT_REVERSE=Ordem Inversa -STAT_PAGE=%0:d de %1:d Páginas\n (%2:d de %3:d Entradas) +STAT_PAGE=%0:d de %1:d Páginas \n %2:d de %3:d Entradas STAT_DESC_SCORES=Pontuações Altas STAT_DESC_SCORES_REVERSED=Pontuações Baixas @@ -448,7 +431,6 @@ ERROR_SAVE_FILE_FAILED=Impossível Guardar Ficheiro ERROR_FILE_NOT_FOUND=Ficheiro Não Encontrado ENCODING_ERROR_ASK_FOR_UTF8=Impossível guardar na codificação corrente. Converter pata UTF-8? -EDITOR_ERROR_NO_TRACK_SELECTED=Nenhuma pista seleccionada MSG_ERROR_TITLE=Erro MSG_INFO_TITLE=Informação @@ -465,9 +447,8 @@ ERROR_CORRUPT_SONG_FILE_NOT_FOUND=A canção não foi encontrada! ERROR_CORRUPT_SONG_NO_NOTES=A canção não tem notas! ERROR_CORRUPT_SONG_NO_BREAKS=A canção não tem quebras de linha! ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Erro durante o parsing da linha %0:d -ERROR_NO_EDITOR=Esta opção não está disponível no Linux/Mac -ERROR_PLAYER_DEVICE_ASSIGNMENT=O Jogador %d está atribuído a vários microfones. Por favor verifique as opções de gravação! -ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=O Jogador %d não está atribuído a nenhum microfone. Por favor verifique as opções de gravação! +ERROR_PLAYER_DEVICE_ASSIGNMENT=O Jogador %d está atribuído a vários microfones. Por favor verifique as opções de microfone! +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=O Jogador %d não está atribuído a nenhum microfone. Por favor verifique as opções de microfone! SING_OPTIONS_NETWORK=Network SING_OPTIONS_NETWORK_WHEREAMI=Opções de Internet @@ -565,36 +546,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Jogadores seguintes para os microfones PARTY_MODE_TOURNAMENT_WIN_DESC=Resultado da ronda PARTY_MODE_TOURNAMENT_CHAMPION=O campeão é: %0:s! -EDIT_TITLE=Título: -EDIT_ARTIST=Artista: -EDIT_MP3=MP3: -EDIT_BPM=BPM: -EDIT_GAP=GAP: -EDIT_COVER=Cover: -EDIT_BACKGROUND=Background: - -EDIT_START=Inicio: -EDIT_DURATION=Duração: -EDIT_TONE=Tom: -EDIT_LYRIC=Letra: -EDIT_VIDEOGAP=Video Gap: -EDIT_VOLUME_AUDIO=Audio Volume: -EDIT_VOLUME_MIDI=Midi Volume: -EDIT_VOLUME_CLICK=Click Volume: -INFO_UNDO=Reverter operação - -INFO_FILE_SAVED=Ficheiro Guardado -INFO_TIME_FIXED=Tempos corrigidos -INFO_CAPITALIZE=Capitalização corrigida -INFO_EXIT=Deseja sair do editor sem guardar? -INFO_SONG_RELOADED=Música Reaberta -INFO_DIVIDED_BPM=Dividir BPM -INFO_MULTIPLIED_BPM=Multiplicar BPM -INFO_PLAY_SONG=Play Música -INFO_PLAY_SENTENCE=Play Frase -INFO_CURRENT_LINE=Linha: -INFO_CURRENT_NOTE=Nota: - INFO_MIDI_CHANNEL_OFF= Canal %0:s desactivado! INFO_MIDI_CHANNEL_RESET= Todos os canais activos! @@ -609,8 +560,6 @@ SING_ERROR_DUET_MODE_PARTY =Dueto! Não é possível jogar no modo Festa! SONG_MENU_SONG=Canção SONG_MENU_MEDLEY=Medley -SONG_MENU_SORTING=Ordenação -SONG_MENU_EXTRA=Extras SONG_MENU_NAME_SONG=Menu Canção SONG_MENU_NAME_MEDLEY=Menu Medley @@ -638,6 +587,7 @@ SING_OPTIONS_WEBCAM_EFFECT=Efeito SING_OPTIONS_WEBCAM_BRIGHTNESS=Brilho SING_OPTIONS_WEBCAM_SATURATION=Saturação SING_OPTIONS_WEBCAM_HUE=Matiz +SING_OPTIONS_WEBCAM_PREVIEW=Activar Pré-Visualização SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Activar Pré-Visualização SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Desactivar Pré-Visualização @@ -653,7 +603,7 @@ SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equilibrada SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erosão -;TODO: PARTY_PLAYLIST_MANUAL=Manual Selection +PARTY_PLAYLIST_MANUAL=Seleção manual PARTY_MODE_JUKEBOX_NO_SONGS=Lista de canções está vazia! SONG_MENU_OPEN_CATEGORY=Abrir Categoria SONG_MENU_CLOSE_CATEGORY=Fechar Categoria @@ -729,7 +679,7 @@ JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Guardado! SING_SONG_CREDITS=Créditos SING_JUKEBOX=Jukebox -;TODO: SING_JUKEBOX_DESC=Listen to my collection +SING_JUKEBOX_DESC=escute minhas musicas JUKEBOX_MODE=Modo Jukebox JUKEBOX_OPTIONS_DESC=Opções de Playlist JUKEBOX_OPTIONS_WHEREAMI=Opções Jukebox @@ -742,9 +692,14 @@ OPTION_VALUE_ALL=Todas OPTION_VALUE_PLAYER=Jogador SING_ABOUT=Sobre -SING_ABOUT_DESC=Sobre o Ultrastar WorldParty +SING_ABOUT_DESC=Sobre o Ultrastar Deluxe WorldParty ABOUT_MAIN=Sobre... -ABOUT_MAIN_DESC=Ultrastar Deluxe WorldParty -ABOUT_MAIN_WHEREAMI=Sobre... -ABOUT_USDX_CREDITS=Créditos -ABOUT_OVERVIEW=WorldParty é um MOD da versão original Ultrastar Deluxe 1.1 desenvolvido pela equipa do Ultrastar España.\n\nPrincipais novidades desta versão:\n\n - Novos temas/skins\n - Novos menus de canções\n - Avatares\n - Novas Opções Jukebox \n - E muitas outras coisas...\n\nAgradecimentos:\n\n zup3r_vock, daniel20, jaher06 e a toda a equipa do Ultrastar España por todo o seu esforço e dedicação neste projecto.\n\nEste programa é gratuito e livre sobre a licença GPL.\n\nhttp://ultrastar-es.org +ABOUT_USDX_DEVELOPEDBY=Desenvolvido por +ABOUT_CHECK_CHECKING=Verificando novas atualizações... +ABOUT_CHECK_AVAILABLE=Existe uma nova versão disponível +ABOUT_CHECK_UPTODATE=WorldParty está atualizado +ABOUT_CHECK_CONNECTION=Não há conexão com a Internet +ABOUT_OVERVIEW=Descubra uma nova maneira de cantar sozinho, em casal ou com amigos. \n A diversão é garantida.\n\nWorldParty é um fork da versão original Ultrastar Deluxe 1.1 projetado e desenvolvido pela equipe UltraStar España, conta com a maior comunidade de karaokê.\n\n\nEste programa é gratuito e libre sob a licença GPL. \n\n Visite-nos para mais informações.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Desenvolvido por +DEVELOPERS_OVERVIEW=Pessoas que contribuíram para este projeto:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Visite-nos para mais informações.\n\nhttps://ultrastar-es.org diff --git "a/game/languages/P\321\203\314\201\321\201\321\201\320\272\320\270\320\271.ini" "b/game/languages/P\321\203\314\201\321\201\321\201\320\272\320\270\320\271.ini" index fe55702c..6cb564ee 100644 --- "a/game/languages/P\321\203\314\201\321\201\321\201\320\272\320\270\320\271.ini" +++ "b/game/languages/P\321\203\314\201\321\201\321\201\320\272\320\270\320\271.ini" @@ -16,14 +16,14 @@ OPTION_VALUE_TITLE=Название OPTION_VALUE_ARTIST=Исполнитель OPTION_VALUE_TITLE2=Название 2 OPTION_VALUE_ARTIST2=Исполнитель 2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade +OPTION_VALUE_YEAR=Год +OPTION_VALUE_DECADE=десятилетие OPTION_VALUE_PLAYLIST=плэйлист -;TODO: OPTION_VALUE_BORDERLESS=Borderless +OPTION_VALUE_BORDERLESS=Развернуто OPTION_VALUE_WHENNOVIDEO=Если нет видео -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Когда нет видео и изображений OPTION_VALUE_SMALL=Маленький OPTION_VALUE_BIG=Большой @@ -40,9 +40,9 @@ OPTION_VALUE_AUTO=Авто OPTION_VALUE_SEC=Секунда OPTION_VALUE_SECS=Секунд(ы) -OPTION_VALUE_PLAIN=Plain -OPTION_VALUE_OLINE1=OLine1 -OPTION_VALUE_OLINE2=OLine2 +OPTION_VALUE_PLAIN=стилизованный +OPTION_VALUE_OLINE1=с тонким краем +OPTION_VALUE_OLINE2=с толстым краем OPTION_VALUE_SIMPLE=Простое OPTION_VALUE_ZOOM=Масштаб @@ -68,12 +68,8 @@ OPTION_VALUE_SING=Пение OPTION_VALUE_SELECT_PLAYERS=Выбор игроков OPTION_VALUE_OPEN_MENU=Открыть меню -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -OPTION_VALUE_HARDWARE_CURSOR=Аппаратный курсор -OPTION_VALUE_SOFTWARE_CURSOR=Програмный курсор - SING_LOADING=Загрузка... +;TODO: SING_LOADING_SONGS=Поиск композиций в папке %s SING_CHOOSE_MODE=Выберите режим SING_SING=Пение @@ -87,9 +83,6 @@ SING_TOOLS=Инструменты SING_STATS=Статистика SING_STATS_DESC=смотреть статистику -SING_EDITOR=Редактор -SING_EDITOR_DESC=создать свою собственную песню - SING_GAME_OPTIONS=Настройки SING_GAME_OPTIONS_DESC=изменить настройки игры @@ -103,10 +96,9 @@ SING_OPTIONS_WHEREAMI=Настройки SING_OPTIONS_GAME=игра SING_OPTIONS_GRAPHICS=графика SING_OPTIONS_SOUND=звук -;TODO: SING_OPTIONS_INPUT=Input SING_OPTIONS_LYRICS=текст SING_OPTIONS_THEMES=темы -SING_OPTIONS_RECORD=запись +SING_OPTIONS_MICROPHONES=запись SING_OPTIONS_ADVANCED=продвинутые SING_OPTIONS_EXIT=назад @@ -117,15 +109,16 @@ SING_OPTIONS_GAME_DIFFICULTY=Сложность SING_OPTIONS_GAME_LANGUAGE=Язык SING_OPTIONS_GAME_TABS=Табы SING_OPTIONS_GAME_SORTING=Сортировка -SING_OPTIONS_GAME_DEBUG=Отладка +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Активировать геймпад SING_OPTIONS_GRAPHICS_WHEREAMI=Настройки графики SING_OPTIONS_GRAPHICS_DESC=настройки графики SING_OPTIONS_GRAPHICS_RESOLUTION=Разрешение SING_OPTIONS_GRAPHICS_FULLSCREEN=Полный экран -SING_OPTIONS_GRAPHICS_DEPTH=Глубина цвета +SING_OPTIONS_GRAPHICS_EFFECTSING=Эффекты пения +SING_OPTIONS_GRAPHICS_SCREENFADE=Затухание экрана +SING_OPTIONS_GRAPHICS_LOADANIMATION=Анимация загрузки SING_OPTIONS_GRAPHICS_VISUALIZER=Визуализация -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Осциллограф SING_OPTIONS_GRAPHICS_LINEBONUS=Бонус "в линию" SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Размер клипа @@ -133,20 +126,13 @@ SING_OPTIONS_SOUND_WHEREAMI=Настройки звука SING_OPTIONS_SOUND_DESC=настройки звука SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Вывод с микрофона SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Фоновая музыка -SING_OPTIONS_SOUND_MIC_BOOST=Усиление мкрофона SING_OPTIONS_SOUND_CLICK_ASSIST=Метроном-помощник SING_OPTIONS_SOUND_BEAT_CLICK=Метроном -SING_OPTIONS_SOUND_THRESHOLD=Погрешность SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Режим двух игроков ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Громкость превью SING_OPTIONS_SOUND_PREVIEWFADING=Затухание превью -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - SING_OPTIONS_LYRICS_WHEREAMI=Настройки текстов SING_OPTIONS_LYRICS_DESC=настройки текстов SING_OPTIONS_LYRICS_FONT=Шрифт @@ -160,43 +146,36 @@ SING_OPTIONS_THEMES_THEME=Тема SING_OPTIONS_THEMES_SKIN=Скин SING_OPTIONS_THEMES_COLOR=Цвет -SING_OPTIONS_RECORD_WHEREAMI=Настройки записи -SING_OPTIONS_RECORD_DESC=настройки микрофона -SING_OPTIONS_RECORD_CARD=Звуковая карта -SING_OPTIONS_RECORD_INPUT=Вход -SING_OPTIONS_RECORD_CHANNEL=Канал +SING_OPTIONS_MICROPHONES_WHEREAMI=Настройки записи +SING_OPTIONS_MICROPHONES_DESC=настройки микрофона +SING_OPTIONS_MICROPHONES_CARD=Звуковая карта +SING_OPTIONS_MICROPHONES_INPUT=Вход +SING_OPTIONS_MICROPHONES_CHANNEL=Канал +SING_OPTIONS_MICROPHONES_THRESHOLD=Погрешность +SING_OPTIONS_MICROPHONES_MIC_BOOST=Усиление мкрофона SING_OPTIONS_ADVANCED_WHEREAMI=Дополнительные настройки SING_OPTIONS_ADVANCED_DESC=дополнительные настройки -SING_OPTIONS_ADVANCED_EFFECTSING=Эффекты пения -SING_OPTIONS_ADVANCED_SCREENFADE=Затухание экрана -SING_OPTIONS_ADVANCED_LOADANIMATION=Анимация загрузки +SING_OPTIONS_ADVANCED_DEBUG=Отладка +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Осциллограф SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Запросы SING_OPTIONS_ADVANCED_LINEBONUS=Бонус "В линию" -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=После выбора песни ;TODO: SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto PartyMenu -SING_EDIT=Редактор -SING_EDIT_MENU_DESCRIPTION=создать свою собственную песню - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Импортировать текст из MIDI-файла -SING_EDIT_BUTTON_DESCRIPTION_EXIT=назад -SING_EDIT_BUTTON_CONVERT=Импорт -SING_EDIT_BUTTON_EXIT=назад - -SING_EDIT_NAVIGATE=перейти -SING_EDIT_SELECT=выбрать -SING_EDIT_EXIT=назад - SING_LEGEND_SELECT=выбрать SING_LEGEND_NAVIGATE=перейти SING_LEGEND_CONTINUE=продолжить SING_LEGEND_ESC=назад -SING_PLAYER_DESC=введите имя игрока(игроков) -SING_PLAYER_WHEREAMI=Имена игроков -SING_PLAYER_ENTER_NAME=введите имя +SING_PLAYER_TITLE=профили +SING_PLAYER_READY=Игроки готовы петь +SING_PLAYER_COUNT=Количество игроков +SING_PLAYER_EDIT=Настройка игрока +SING_PLAYER_NAME=Напишите свое имя +SING_PLAYER_COLOR=Выбери цвет +SING_PLAYER_LEVEL=Выберите уровень +SING_PLAYER_AVATAR=Выберите свой аватар SING_DIFFICULTY_DESC=уровень сложности SING_DIFFICULTY_WHEREAMI=Сложность @@ -211,10 +190,15 @@ SING_SONG_SELECTION_GOTO=перейти .. SING_SONG_SELECTION=выбор песни SING_SONG_SELECTION_MENU=меню SING_SONG_SELECTION_PLAYLIST=плэйлист +SING_SONG_IN_CAT=песня SING_SONGS_IN_CAT=Песни PLAYLIST_CATTEXT=Плэйлист: %s +SING_SONG_SELECTION_LEGEND_TITLE=легенда +SING_SONG_SELECTION_LEGEND_VIDEO=видео +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Дуэт -;TODO: SING_TIME=TIME SING_TOTAL=всего SING_MODE=пение соло SING_NOTES=ноты @@ -255,7 +239,6 @@ IMPLODE_GLUE2= и SONG_MENU_NAME_MAIN=меню пения SONG_MENU_PLAY=Петь SONG_MENU_CHANGEPLAYERS=Изменить игроков -SONG_MENU_EDIT=Изменить SONG_MENU_MODI=Петь SONG_MENU_CANCEL=Отмена @@ -422,7 +405,7 @@ STAT_DETAIL_WHEREAMI=Подробная статистика STAT_NEXT=След. страница STAT_PREV=Пред. страница STAT_REVERSE=В обр. порядке -STAT_PAGE=страница %0:d из %1:d\n (%2:d из %3:d) +STAT_PAGE=Cтраница %0:d из %1:d \n Yчет %2:d из %3:d STAT_DESC_SCORES=Лучшие игры STAT_DESC_SCORES_REVERSED=Худшие игры @@ -448,7 +431,6 @@ ERROR_SAVE_FILE_FAILED=Невозможно сохранить файл ERROR_FILE_NOT_FOUND=Файл не найден ENCODING_ERROR_ASK_FOR_UTF8=Невозможно сохранить изменения в текущей кодировке. Преобразовать в UTF-8? -EDITOR_ERROR_NO_TRACK_SELECTED=Ни одна дорожка не выбрана MSG_ERROR_TITLE=Ошибка MSG_INFO_TITLE=Информация @@ -465,20 +447,19 @@ ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Песня не может быть загру ERROR_CORRUPT_SONG_NO_NOTES=Песня не может быть загружена: Невозможно найти ноты ERROR_CORRUPT_SONG_NO_BREAKS=Песня не может быть загружена: Невозможно найти разделители строк ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Песня не может быть загружена: Ошибка обработки строки %0:d -ERROR_NO_EDITOR=Эта возможность недоступна в Linux/Mac -ERROR_PLAYER_DEVICE_ASSIGNMENT=Игроку %d назначено несколько микрофонов. Пожалуйста проверьте опции записи -ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Игроку %d не назначено ни одного микрофона. Пожалуйста проверьте опции записи +ERROR_PLAYER_DEVICE_ASSIGNMENT=Игроку %d назначено несколько микрофонов. Проверьте настройки микрофона +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Игроку %d не назначено ни одного микрофона. Проверьте настройки микрофона -;TODO: SING_OPTIONS_NETWORK=Internet -;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options -;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings +SING_OPTIONS_NETWORK=интернет +SING_OPTIONS_NETWORK_WHEREAMI=настройки интернета +SING_OPTIONS_NETWORK_DESC=Общие настройки Интернета ;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... ;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password +SING_OPTIONS_NETWORK_USERNAME=имя пользователя +SING_OPTIONS_NETWORK_PASSWORD=пароль ;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name SING_OPTIONS_NETWORK_AUTO_MODE=Авто -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player +SING_OPTIONS_NETWORK_AUTO_PLAYER=игрок ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) @@ -487,12 +468,12 @@ SING_OPTIONS_NETWORK_AUTO_MODE=Авто ;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert ;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 +OPTION_PLAYER_1=игрок 1 +OPTION_PLAYER_2=игрок 2 +OPTION_PLAYER_3=игрок 3 +OPTION_PLAYER_4=игрок 4 +OPTION_PLAYER_5=игрок 5 +OPTION_PLAYER_6=игрок 6 OPTION_ALL_PLAYERS=Всё OPTION_ALL_SCORES=Всё ;TODO: OPTION_VALUE_SAVE=Save @@ -526,17 +507,17 @@ MSG_INSERT_USER_CANCEL=Отмена ;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! ;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! -;TODO: SONG_SCORE_MAX=Best: -;TODO: SONG_SCORE_MEDIA=Average: +SONG_SCORE_MAX=Лучший: +SONG_SCORE_MEDIA=В среднем: ;TODO: SCORE_SEND_DESC=Send Score ;TODO: SCORE_SEND=Send -;TODO: SCORE_SEND_PLAYER=Player +SCORE_SEND_PLAYER=игрок ;TODO: SCORE_SEND_OTHER_USER= Other Username ;TODO: SCORE_SAVE=Save -;TODO: SCORE_DOWNLOAD_TITLE=Download -;TODO: SCORE_DOWNLOAD_SONG=Song: +SCORE_DOWNLOAD_TITLE=Скачать +SCORE_DOWNLOAD_SONG=песня: ;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... ;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... SCORE_DOWNLOAD_CANCEL=Отмена @@ -565,36 +546,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=следующие игроки к микро ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -INFO_FILE_SAVED=Файл сохранён -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - ;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! ;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! @@ -609,8 +560,6 @@ INFO_FILE_SAVED=Файл сохранён ;TODO: SONG_MENU_SONG=Song ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Меню песен ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -635,9 +584,10 @@ SING_OPTIONS_WEBCAM_RESOLUTION=Разрешение ;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! ;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip SING_OPTIONS_WEBCAM_EFFECT=Эффект -;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation +SING_OPTIONS_WEBCAM_BRIGHTNESS=яркость +SING_OPTIONS_WEBCAM_SATURATION=насыщение ;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +SING_OPTIONS_WEBCAM_PREVIEW=Активировать просмотр ;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview ;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview @@ -663,34 +613,34 @@ SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Погрешность ;TODO: WEBSITE_EXIST_SONG=The song belongs to the website: %0:s ;TODO: WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! -;TODO: NAME_PLAYERS_COUNT=Number of Players -;TODO: NAME_CURRENT_PLAYER=Player +NAME_PLAYERS_COUNT=Количество игроков +NAME_CURRENT_PLAYER=игрок SING_OPTIONS_GAME_SONGMENU=Меню песен -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List -;TODO: OPTION_VALUE_MOSAIC=Tile +OPTION_VALUE_ROULETTE=рулетка +OPTION_VALUE_CHESSBOARD=шахматная доска +OPTION_VALUE_CAROUSEL=Карусель +OPTION_VALUE_SLOT_MACHINE=Игровой автомат +OPTION_VALUE_LIST=Список +OPTION_VALUE_MOSAIC=Кафельная плитка ;TODO: SING_OPTIONS_JUKEBOX=Jukebox ;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox ;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options OPTION_VALUE_TO_SING=Пение -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next -;TODO: OPTION_VALUE_OTHER=Other +OPTION_VALUE_ACTUAL=верхний +OPTION_VALUE_NEXT=Дно +OPTION_VALUE_OTHER=Другие ;TODO: OPTION_VALUE_FILL=Fill ;TODO: OPTION_VALUE_OUTLINE=Outline -;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -;TODO: OPTION_VALUE_SALMON=Salmon -;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige +OPTION_VALUE_GRAY=Серый +OPTION_VALUE_WHITE=белый +OPTION_VALUE_TURQUOISE=Бирюзовый +OPTION_VALUE_SALMON=Лосось +OPTION_VALUE_GREENYELLOW=Желто-зеленый +OPTION_VALUE_LAVENDER=лаванда +OPTION_VALUE_BEIGE=Бежевый ;TODO: OPTION_VALUE_TEAL=Teal ;TODO: OPTION_VALUE_ORCHID=Orchid ;TODO: OPTION_VALUE_STEELBLUE=Steel Blue @@ -710,7 +660,7 @@ OPTION_VALUE_TO_SING=Пение ;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=прозрачность JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Цвет ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property @@ -739,12 +689,17 @@ JUKEBOX_OPTIONS_PLAYLIST=плэйлист ;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing ;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores OPTION_VALUE_ALL=Всё -;TODO: OPTION_VALUE_PLAYER=Player - -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +OPTION_VALUE_PLAYER=игрок + +SING_ABOUT=Около +SING_ABOUT_DESC=Около Ultrastar Deluxe WorldParty +ABOUT_MAIN=Около... +ABOUT_USDX_DEVELOPEDBY=Разработано +;TODO: ABOUT_CHECK_CHECKING=Checking for new updates... +;TODO: ABOUT_CHECK_AVAILABLE=There is a new version available +;TODO: ABOUT_CHECK_UPTODATE=WorldParty is up to date +;TODO: ABOUT_CHECK_CONNECTION=There is no Internet connection +;TODO: ABOUT_OVERVIEW=Discover a new way of singing, alone, in couple, or with friends. \n Fun is guaranteed.\n\nWorldParty is a fork of the original version Ultrastar Deluxe 1.1 designed and developed by UltraStar España Team, it counts with the biggest karaoke community.\n\n\nThis program is free and libre under the GPL license. \n\n Visit us for more information.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Разработано +DEVELOPERS_OVERVIEW=Люди, которые внесли свой вклад в этот проект:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\nПосетите нас для получения дополнительной информации.\n\nhttps://ultrastar-es.org diff --git "a/game/languages/Rom\303\242n\304\203.ini" "b/game/languages/Rom\303\242n\304\203.ini" index bcd3d81b..6827beda 100644 --- "a/game/languages/Rom\303\242n\304\203.ini" +++ "b/game/languages/Rom\303\242n\304\203.ini" @@ -16,14 +16,14 @@ OPTION_VALUE_TITLE=Titlu OPTION_VALUE_ARTIST=Artist OPTION_VALUE_TITLE2=Titlu2 OPTION_VALUE_ARTIST2=Artist2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade +OPTION_VALUE_YEAR=An +OPTION_VALUE_DECADE=Deceniu ;TODO: OPTION_VALUE_PLAYLIST=Playlist -;TODO: OPTION_VALUE_BORDERLESS=Borderless +OPTION_VALUE_BORDERLESS=Maximizat OPTION_VALUE_WHENNOVIDEO=În cazul în care nu există video -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Atunci când nu există video și Imagine OPTION_VALUE_SMALL=Mic OPTION_VALUE_BIG=Mare @@ -40,9 +40,9 @@ OPTION_VALUE_AUTO=Automat OPTION_VALUE_SEC=Al doilea OPTION_VALUE_SECS=Secunde -OPTION_VALUE_PLAIN=Simplu -OPTION_VALUE_OLINE1=OLine1 -OPTION_VALUE_OLINE2=OLine2 +OPTION_VALUE_PLAIN=Stilizată +;TODO: OPTION_VALUE_OLINE1=With thin edge +;TODO: OPTION_VALUE_OLINE2=With thick edge OPTION_VALUE_SIMPLE=Simplu OPTION_VALUE_ZOOM=Apropiere @@ -68,153 +68,137 @@ OPTION_VALUE_SING=Cântă OPTION_VALUE_SELECT_PLAYERS=Alege Jucători OPTION_VALUE_OPEN_MENU=Deschide Meniu -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -OPTION_VALUE_HARDWARE_CURSOR=Cursor hardware -OPTION_VALUE_SOFTWARE_CURSOR=Cursor software - SING_LOADING=Încărcând ... +;TODO: SING_LOADING_SONGS=Loading songs from folder %s SING_CHOOSE_MODE=Alege modul SING_SING=Cântă! -SING_SING_DESC=joc rapid: cântă singur sau în duet +SING_SING_DESC=Joc rapid: cântă singur sau în duet SING_MULTI=Party -SING_MULTI_DESC=cântă în grup +SING_MULTI_DESC=Cântă în grup SING_TOOLS=Unelte SING_STATS=Statistici -SING_STATS_DESC=vezi statistici - -SING_EDITOR=Editor -SING_EDITOR_DESC=creează melodia ta +SING_STATS_DESC=Vezi statistici SING_GAME_OPTIONS=Opţiuni de joc -SING_GAME_OPTIONS_DESC=modifică opţiunile de joc +SING_GAME_OPTIONS_DESC=Modifică opţiunile de joc SING_EXIT=Ieşire -SING_EXIT_DESC=ieşi din joc +SING_EXIT_DESC=Ieşi din joc SING_OPTIONS=Opţiuni -SING_OPTIONS_DESC=modifică opţiunile +SING_OPTIONS_DESC=Modifică opţiunile SING_OPTIONS_WHEREAMI=Opţiuni SING_OPTIONS_GAME=Joc SING_OPTIONS_GRAPHICS=Grafică SING_OPTIONS_SOUND=Sunet -;TODO: SING_OPTIONS_INPUT=Input SING_OPTIONS_LYRICS=Versuri SING_OPTIONS_THEMES=Aspect -SING_OPTIONS_RECORD=Microfoane +SING_OPTIONS_MICROPHONES=Microfoane SING_OPTIONS_ADVANCED=Avansat SING_OPTIONS_EXIT=Înapoi SING_OPTIONS_GAME_WHEREAMI=Opţiuni de joc -SING_OPTIONS_GAME_DESC=opţiuni de joc generale +SING_OPTIONS_GAME_DESC=Opţiuni de joc generale SING_OPTIONS_GAME_PLAYERS=Jucători SING_OPTIONS_GAME_DIFFICULTY=Dificultate SING_OPTIONS_GAME_LANGUAGE=Limbă SING_OPTIONS_GAME_TABS=Etichete SING_OPTIONS_GAME_SORTING=Sortează după -SING_OPTIONS_GAME_DEBUG=Mod de depanare +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Activați gamepad SING_OPTIONS_GRAPHICS_WHEREAMI=Opţiuni grafice -SING_OPTIONS_GRAPHICS_DESC=modifică configurația video +SING_OPTIONS_GRAPHICS_DESC=Modifică configurația video SING_OPTIONS_GRAPHICS_RESOLUTION=Rezoluție SING_OPTIONS_GRAPHICS_FULLSCREEN=Ecran complet -SING_OPTIONS_GRAPHICS_DEPTH=Adâncime de culoare +SING_OPTIONS_GRAPHICS_EFFECTSING=Efecte cântând +SING_OPTIONS_GRAPHICS_SCREENFADE=Atenuare ecran +SING_OPTIONS_GRAPHICS_LOADANIMATION=Încarcă animaţie SING_OPTIONS_GRAPHICS_VISUALIZER=Vizualizare -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Osciloscop SING_OPTIONS_GRAPHICS_LINEBONUS=Bonus de linie SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Mărime video SING_OPTIONS_SOUND_WHEREAMI=Opţiuni sunet -SING_OPTIONS_SOUND_DESC=modifică configurația audio +SING_OPTIONS_SOUND_DESC=Modifică configurația audio SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Ascultă microfon SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Muzică de fundal -;TODO: SING_OPTIONS_SOUND_MIC_BOOST=Mic boost SING_OPTIONS_SOUND_CLICK_ASSIST=Ajutor note SING_OPTIONS_SOUND_BEAT_CLICK=Clic ritm -;TODO: SING_OPTIONS_SOUND_THRESHOLD=Threshold SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Mod 2 jucători ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Vezi volum SING_OPTIONS_SOUND_PREVIEWFADING=Vezi atenuare -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - SING_OPTIONS_LYRICS_WHEREAMI=Opţiuni versuri -SING_OPTIONS_LYRICS_DESC=schimbă modul de afișare a versurilor +SING_OPTIONS_LYRICS_DESC=Schimbă modul de afișare a versurilor SING_OPTIONS_LYRICS_FONT=Set de caractere SING_OPTIONS_LYRICS_EFFECT=Efect SING_OPTIONS_LYRICS_SOLMIZATION=Solfegiu SING_OPTIONS_LYRICS_NOTELINES=Partitură SING_OPTIONS_THEMES_WHEREAMI=Opţiuni aspect -SING_OPTIONS_THEMES_DESC=schimbă culori şi aspect +SING_OPTIONS_THEMES_DESC=Schimbă culori şi aspect SING_OPTIONS_THEMES_THEME=Temă SING_OPTIONS_THEMES_SKIN=Skin SING_OPTIONS_THEMES_COLOR=Culoare -SING_OPTIONS_RECORD_WHEREAMI=Opţiuni înregistrare -SING_OPTIONS_RECORD_DESC=configurează microfon -SING_OPTIONS_RECORD_CARD=Placă de sunet -SING_OPTIONS_RECORD_INPUT=Intrare -SING_OPTIONS_RECORD_CHANNEL=Canal +SING_OPTIONS_MICROPHONES_WHEREAMI=Opţiuni înregistrare +SING_OPTIONS_MICROPHONES_DESC=Configurează microfon +SING_OPTIONS_MICROPHONES_CARD=Placă de sunet +SING_OPTIONS_MICROPHONES_INPUT=Intrare +SING_OPTIONS_MICROPHONES_CHANNEL=Canal +;TODO: SING_OPTIONS_MICROPHONES_THRESHOLD=Threshold +;TODO: SING_OPTIONS_MICROPHONES_MIC_BOOST=Mic boost SING_OPTIONS_ADVANCED_WHEREAMI=Opțiuni avansate -SING_OPTIONS_ADVANCED_DESC=opțiuni avansate -SING_OPTIONS_ADVANCED_EFFECTSING=Efecte cântând -SING_OPTIONS_ADVANCED_SCREENFADE=Atenuare ecran -SING_OPTIONS_ADVANCED_LOADANIMATION=Încarcă animaţie +SING_OPTIONS_ADVANCED_DESC=Opțiuni avansate +SING_OPTIONS_ADVANCED_DEBUG=Mod de depanare +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Osciloscop SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Confirmă ştergere SING_OPTIONS_ADVANCED_LINEBONUS=Bonus de linie -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=După alegere cântec.. SING_OPTIONS_ADVANCED_PARTYPOPUP=Meniu party automat -SING_EDIT=Editor -SING_EDIT_MENU_DESCRIPTION=creează cântecul tău - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Încarcă text din fişier MIDI -SING_EDIT_BUTTON_DESCRIPTION_EXIT=Înapoi -SING_EDIT_BUTTON_CONVERT=Încarcă -SING_EDIT_BUTTON_EXIT=Înapoi - -SING_EDIT_NAVIGATE=Navighează -SING_EDIT_SELECT=Alege -SING_EDIT_EXIT=Înapoi - SING_LEGEND_SELECT=Alege SING_LEGEND_NAVIGATE=Navighează SING_LEGEND_CONTINUE=Continuă SING_LEGEND_ESC=Înapoi -SING_PLAYER_DESC=scrie nume jucător(i) -SING_PLAYER_WHEREAMI=Nume jucători -SING_PLAYER_ENTER_NAME=Introduce nume +SING_PLAYER_TITLE=Profiluri +SING_PLAYER_READY=Jucătorii gata să cânte +SING_PLAYER_COUNT=Număr de jucători +SING_PLAYER_EDIT=Personalizați un jucător +SING_PLAYER_NAME=Scrie-ti numele +SING_PLAYER_COLOR=Alege o culoare +SING_PLAYER_LEVEL=Alegeți un nivel +SING_PLAYER_AVATAR=Selectați avatarul dvs -SING_DIFFICULTY_DESC=selectează dificultatea +SING_DIFFICULTY_DESC=Selectează dificultatea SING_DIFFICULTY_WHEREAMI=Dificultate SING_DIFFICULTY_CONTINUE=Alege cântec SING_EASY=Uşor SING_MEDIUM=Mediu SING_HARD=Greu -SING_SONG_SELECTION_DESC=alege-ți cântecul +SING_SONG_SELECTION_DESC=Alege-ți cântecul SING_SONG_SELECTION_WHEREAMI=Alege cântec SING_SONG_SELECTION_GOTO=Du-te la ... SING_SONG_SELECTION=Alege cântec SING_SONG_SELECTION_MENU=Meniu SING_SONG_SELECTION_PLAYLIST=Lista +SING_SONG_IN_CAT=Cântec SING_SONGS_IN_CAT=Cântece PLAYLIST_CATTEXT=Lista: %s +SING_SONG_SELECTION_LEGEND_TITLE=Legendă +SING_SONG_SELECTION_LEGEND_VIDEO=Video +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Duet -;TODO: SING_TIME=TIME SING_TOTAL=Total SING_MODE=Cântă singur SING_NOTES=Note @@ -236,18 +220,18 @@ SING_SCORE_SUPERSTAR=Superstar SING_SCORE_ULTRASTAR=Ultrastar SING_TOP_5_CHARTS=Primii 5 jucători -SING_TOP_5_CHARTS_WHEREAMI=primii 5 -SING_TOP_5_CHARTS_CONTINUE=la alegerea cântecului +SING_TOP_5_CHARTS_WHEREAMI=Primii 5 +SING_TOP_5_CHARTS_CONTINUE=La alegerea cântecului SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Schimbă dificultatea -POPUP_PERFECT=perfect! -POPUP_AWESOME=uimitor! -POPUP_GREAT=grozav! -POPUP_GOOD=bine! -POPUP_NOTBAD=nu-i rău! -POPUP_BAD=rău! -POPUP_POOR=groaznic! -POPUP_AWFUL=oribil! +POPUP_PERFECT=Perfect! +POPUP_AWESOME=Uimitor! +POPUP_GREAT=Grozav! +POPUP_GOOD=Bine! +POPUP_NOTBAD=Nu-i rău! +POPUP_BAD=Rău! +POPUP_POOR=Groaznic! +POPUP_AWFUL=Oribil! IMPLODE_GLUE1=, IMPLODE_GLUE2=și @@ -255,7 +239,6 @@ IMPLODE_GLUE2=și SONG_MENU_NAME_MAIN=Meniu cântece SONG_MENU_PLAY=Cântă SONG_MENU_CHANGEPLAYERS=Schimbă jucători -SONG_MENU_EDIT=Editează SONG_MENU_MODI=Cântă un Modi SONG_MENU_CANCEL=Renunță @@ -264,11 +247,11 @@ SONG_MENU_PLAYLIST_ADD=Adaugă cântec SONG_MENU_PLAYLIST_DEL=Şterge cântec SONG_MENU_NAME_PLAYLIST_ADD=Adaugă cântec -SONG_MENU_PLAYLIST_ADD_NEW=la o listă nouă -SONG_MENU_PLAYLIST_ADD_EXISTING=la o listă existentă -SONG_MENU_PLAYLIST_NOEXISTING=nu sunt liste +SONG_MENU_PLAYLIST_ADD_NEW=La o listă nouă +SONG_MENU_PLAYLIST_ADD_EXISTING=La o listă existentă +SONG_MENU_PLAYLIST_NOEXISTING=Nu sunt liste -SONG_MENU_NAME_PLAYLIST_NEW=listă nouă de cântece +SONG_MENU_NAME_PLAYLIST_NEW=Listă nouă de cântece SONG_MENU_PLAYLIST_NEW_CREATE=Creează SONG_MENU_PLAYLIST_NEW_UNNAMED=Nedenumit @@ -285,7 +268,7 @@ SONG_MENU_NAME_PLAYLIST_DEL=Ştergi listă? SONG_MENU_NAME_PARTY_MAIN=Meniu Party SONG_MENU_JOKER=Cântă unul la întâmplare -SONG_MENU_NAME_PARTY_JOKER=la întâmplare +SONG_MENU_NAME_PARTY_JOKER=La întâmplare SONG_JUMPTO_DESC=Caută cântec SONG_JUMPTO_TYPE_DESC=Caută după: @@ -293,7 +276,7 @@ SONG_JUMPTO_TYPE1=Toate SONG_JUMPTO_TYPE2=Titlu SONG_JUMPTO_TYPE3=Artist SONG_JUMPTO_SONGSFOUND=%d cântec(e) găsite -SONG_JUMPTO_NOSONGSFOUND=nu s-au găsit cântece +SONG_JUMPTO_NOSONGSFOUND=Nu s-au găsit cântece SONG_JUMPTO_HELP=Introduce textul de căutat SONG_JUMPTO_CATTEXT=Caută: %s @@ -310,21 +293,21 @@ PARTY_TEAMS_PLAYER3=Număr membri: PARTY_LEGEND_CONTINUE=Continuă -PARTY_OPTIONS_DESC=opţiuni mod party +PARTY_OPTIONS_DESC=Opţiuni mod party PARTY_OPTIONS_WHEREAMI=Opţiuni mod party -PARTY_PLAYER_DESC=introduce numele jucătorilor şi al echipelor +PARTY_PLAYER_DESC=Introduce numele jucătorilor şi al echipelor PARTY_PLAYER_WHEREAMI=Numele echipei PARTY_PLAYER_ENTER_NAME=_Introduce nume -PARTY_ROUNDS_DESC=alege ce mod vrei să joci +PARTY_ROUNDS_DESC=Alege ce mod vrei să joci PARTY_ROUNDS_WHEREAMI=Runde party PARTY_ROUNDS_LEGEND_CONTINUE=Pornește joc party PARTY_ROUNDCOUNT=Numărul de runde -;TODO: PARTY_SELECTMODE=Round %d +PARTY_SELECTMODE=Rundă %d -PARTY_ROUND_DESC=următorii jucători la microfoane +PARTY_ROUND_DESC=Următorii jucători la microfoane PARTY_ROUND_WHEREAMI=Urmatoarea rundă PARTY_ROUND_LEGEND_CONTINUE=Pornește runda @@ -332,7 +315,7 @@ PARTY_SONG_WHEREAMI=Alege cântec party PARTY_SONG_LEGEND_CONTINUE=Cântă PARTY_SONG_MENU=Meniu party -PARTY_SCORE_DESC=scorul ultimei runde +PARTY_SCORE_DESC=Scorul ultimei runde PARTY_SCORE_WHEREAMI=Puncte party PARTY_WIN_DESC=Echipa câştigătoare @@ -341,7 +324,7 @@ PARTY_WIN_LEGEND_CONTINUE=înapoi la meniul principal PARTY_ROUND=Runda PARTY_ROUND_WINNER=Câştigător -PARTY_NOTPLAYEDYET=nejucat încă +PARTY_NOTPLAYEDYET=Nejucat încă PARTY_NOBODY=Nimeni NEXT_ROUND=Urmatoarea rundă: @@ -350,10 +333,10 @@ PARTY_SCORE_WINS=%s PARTY_SCORE_WINS2=Câștigă! MODE_RANDOM_NAME=Mod aleatoriu -MODE_RANDOM_DESC=un mod va fi ales aleatoriu +MODE_RANDOM_DESC=Un mod va fi ales aleatoriu MODE_HOLDTHELINE_NAME=Păstrează linia -MODE_HOLDTHELINE_DESC=menține punctajul mai mare decât cel afişat pe ecran +MODE_HOLDTHELINE_DESC=Menține punctajul mai mare decât cel afişat pe ecran ;TODO: MODE_HOLDTHELINEBLIND_NAME=Hold the Blind ;TODO: MODE_HOLDTHELINEBLIND_DESC=Keep your rating above the line for the longest, but with the notes hidden! @@ -365,7 +348,7 @@ MODE_HOLDTHELINE_DESC=menține punctajul mai mare decât cel afişat pe ecran ;TODO: MODE_7000POINTSBLIND_DESC=Race to 7000 points, but without seeing the notes! MODE_5000POINTS_NAME=Până la 5000 -MODE_5000POINTS_DESC=câștigă cel care obţine primul 5000 de puncte. +MODE_5000POINTS_DESC=Câștigă cel care obţine primul 5000 de puncte. ;TODO: MODE_5000POINTSBLIND_NAME=Blind 5000 ;TODO: MODE_5000POINTSBLIND_DESC=Race to 5000 points, but without seeing the notes! @@ -377,13 +360,13 @@ MODE_5000POINTS_DESC=câștigă cel care obţine primul 5000 de puncte. ;TODO: MODE_2000POINTSBLIND_DESC=Race to 2000 points, but without seeing the notes! MODE_DUEL_NAME=Duel -MODE_DUEL_DESC=cântă un duel la 10000 de puncte. +MODE_DUEL_DESC=Cântă un duel la 10000 de puncte. MODE_TEAMDUEL_NAME=Duel de echipe -MODE_TEAMDUEL_DESC=dă mai departe microfonul! +MODE_TEAMDUEL_DESC=Dă mai departe microfonul! MODE_BLIND_NAME=Mod Orb -MODE_BLIND_DESC=duel fără să vadă notele. +MODE_BLIND_DESC=Duel fără să vadă notele. ;TODO: MODE_BLINDTOTAL_NAME=Total Darkness! ;TODO: MODE_BLINDTOTAL_DESC=A duel, but with the notes and the lyrics hidden. Only for the brave! @@ -407,7 +390,7 @@ MODE_BLIND_DESC=duel fără să vadă notele. ;TODO: MODE_HARDCORE_DESC=Battle for a three-line lead on your opponent! STAT_MAIN=Statistici -STAT_MAIN_DESC=general +STAT_MAIN_DESC=General STAT_MAIN_WHEREAMI=Statistici STAT_OVERVIEW_INTRO=%0:s \nStatistici \nUltima reinițiere pe %1:.2d.%2:.2d.%3:d @@ -422,7 +405,7 @@ STAT_DETAIL_WHEREAMI=Statistici detaliate STAT_NEXT=Următoarele STAT_PREV=Anterioare STAT_REVERSE=Schimbă ordinea -STAT_PAGE=pagina %0:d din %1:d pagini\n (%2:d din %3:d elemente) +STAT_PAGE=Pagina %0:d din %1:d \n Elemente %2:d din %3:d STAT_DESC_SCORES=Top punctaje STAT_DESC_SCORES_REVERSED=Cele mai mici punctaje @@ -448,7 +431,6 @@ ERROR_SAVE_FILE_FAILED=Nu s-a putut salva fișierul ERROR_FILE_NOT_FOUND=Fişierul nu a fost găsit ENCODING_ERROR_ASK_FOR_UTF8=Nu se pot salva modificările în codificarea actuală. Convertesc la UTF-8? -EDITOR_ERROR_NO_TRACK_SELECTED=nici o pistă aleasă MSG_ERROR_TITLE=Eroare MSG_INFO_TITLE=Informaţii @@ -465,17 +447,16 @@ ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Imposibil de încărcat cântecul: Fişierul n ERROR_CORRUPT_SONG_NO_NOTES=Nu pot încărca cântecul: Nu există note ERROR_CORRUPT_SONG_NO_BREAKS=Nu pot încărca cântecul: Nu sunt pauze de linie ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Imposibil de încărcat cântecul: Eroare în analiza liniei %0:d -ERROR_NO_EDITOR=Această caracteristică nu este disponibilă în Linux/Mac ERROR_PLAYER_DEVICE_ASSIGNMENT=Jucătorului %d i s-au atribuit mai multe microfoane. Verifică opţiunile de microfon. ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Jucătorului %d nu i s-a atribuit nici un microfon. Verifică opţiunile de microfon. -;TODO: SING_OPTIONS_NETWORK=Internet -;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options -;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings +SING_OPTIONS_NETWORK=Internet +SING_OPTIONS_NETWORK_WHEREAMI=Optiuni de Internet +SING_OPTIONS_NETWORK_DESC=Setări Internet generale ;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... -;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password +SING_OPTIONS_NETWORK_WEBSITE=Website +SING_OPTIONS_NETWORK_USERNAME=Nume de utilizator +SING_OPTIONS_NETWORK_PASSWORD=Parola ;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name ;TODO: SING_OPTIONS_NETWORK_AUTO_MODE=Auto ;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player @@ -487,21 +468,21 @@ ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Jucătorului %d nu i s-a atribuit nici un micr ;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert ;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 -;TODO: OPTION_ALL_PLAYERS=All -;TODO: OPTION_ALL_SCORES=All +OPTION_PLAYER_1=Jucător 1 +OPTION_PLAYER_2=Jucător 2 +OPTION_PLAYER_3=Jucător 3 +OPTION_PLAYER_4=Jucător 4 +OPTION_PLAYER_5=Jucător 5 +OPTION_PLAYER_6=Jucător 6 +OPTION_ALL_PLAYERS=Toate +OPTION_ALL_SCORES=Toate ;TODO: OPTION_VALUE_SAVE=Save ;TODO: OPTION_VALUE_SEND=Send -;TODO: MSG_INSERT_USER_TITLE=%0:s +MSG_INSERT_USER_TITLE=%0:s ;TODO: MSG_INSERT_USER_DESC=Fill the fields: -;TODO: MSG_INSERT_USER_ADD=Add -;TODO: MSG_INSERT_USER_CANCEL=Cancel +MSG_INSERT_USER_ADD=Adăuga +MSG_INSERT_USER_CANCEL=Anulare ;TODO: WEBSITE_NO_CONNECTION=No website connection! ;TODO: WEBSITE_LOGIN_ERROR=Login Incorrect! @@ -531,7 +512,7 @@ ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Jucătorului %d nu i s-a atribuit nici un micr ;TODO: SCORE_SEND_DESC=Send Score ;TODO: SCORE_SEND=Send -;TODO: SCORE_SEND_PLAYER=Player +SCORE_SEND_PLAYER=Jucător ;TODO: SCORE_SEND_OTHER_USER= Other Username ;TODO: SCORE_SAVE=Save @@ -565,36 +546,6 @@ ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Jucătorului %d nu i s-a atribuit nici un micr ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -INFO_FILE_SAVED=Fişier salvat -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - ;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! ;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! @@ -609,8 +560,6 @@ INFO_FILE_SAVED=Fişier salvat ;TODO: SONG_MENU_SONG=Song ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra ;TODO: SONG_MENU_NAME_SONG=Song Menu ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -635,9 +584,10 @@ INFO_FILE_SAVED=Fişier salvat ;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! ;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip ;TODO: SING_OPTIONS_WEBCAM_EFFECT=Effect -;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation +SING_OPTIONS_WEBCAM_BRIGHTNESS=Strălucire +SING_OPTIONS_WEBCAM_SATURATION=Saturare ;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +SING_OPTIONS_WEBCAM_PREVIEW=Activați previzualizarea ;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview ;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview @@ -663,60 +613,60 @@ INFO_FILE_SAVED=Fişier salvat ;TODO: WEBSITE_EXIST_SONG=The song belongs to the website: %0:s ;TODO: WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! -;TODO: NAME_PLAYERS_COUNT=Number of Players -;TODO: NAME_CURRENT_PLAYER=Player +NAME_PLAYERS_COUNT=Număr de jucători +NAME_CURRENT_PLAYER=Jucător ;TODO: SING_OPTIONS_GAME_SONGMENU=Song Menu -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List -;TODO: OPTION_VALUE_MOSAIC=Tile +OPTION_VALUE_ROULETTE=Ruletă +OPTION_VALUE_CHESSBOARD=Tablă de şah +OPTION_VALUE_CAROUSEL=Carusel +OPTION_VALUE_SLOT_MACHINE=Jocuri mecanice +OPTION_VALUE_LIST=Listă +OPTION_VALUE_MOSAIC=Ţiglă ;TODO: SING_OPTIONS_JUKEBOX=Jukebox ;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox ;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options ;TODO: OPTION_VALUE_TO_SING=Sing -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next +OPTION_VALUE_ACTUAL=Superior +OPTION_VALUE_NEXT=Inferior ;TODO: OPTION_VALUE_OTHER=Other ;TODO: OPTION_VALUE_FILL=Fill ;TODO: OPTION_VALUE_OUTLINE=Outline -;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -;TODO: OPTION_VALUE_SALMON=Salmon -;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige +OPTION_VALUE_GRAY=Gri +OPTION_VALUE_WHITE=Alb +OPTION_VALUE_TURQUOISE=Turcoaz +OPTION_VALUE_SALMON=Somon +OPTION_VALUE_GREENYELLOW=Verde galben +OPTION_VALUE_LAVENDER=Lavandă +OPTION_VALUE_BEIGE=Bej ;TODO: OPTION_VALUE_TEAL=Teal ;TODO: OPTION_VALUE_ORCHID=Orchid ;TODO: OPTION_VALUE_STEELBLUE=Steel Blue ;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold -;TODO: OPTION_VALUE_DARKBLUE=Dark Blue -;TODO: OPTION_VALUE_SKY=Sky -;TODO: OPTION_VALUE_HARLEQUIN=Harlequin -;TODO: OPTION_VALUE_CYAN=Cyan -;TODO: OPTION_VALUE_FLAME=Flame +OPTION_VALUE_CHOCOLATE=Ciocolată +OPTION_VALUE_GOLD=Aur +OPTION_VALUE_DARKBLUE=Albastru inchis +OPTION_VALUE_SKY=Cer +OPTION_VALUE_HARLEQUIN=Arlechin +OPTION_VALUE_CYAN=Cyan +OPTION_VALUE_FLAME=Flacără ;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect +JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height ;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Color +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Transparenţă +JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Culoare ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Red -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Green -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blue +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Roșu +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Verde +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Albastru ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop @@ -727,7 +677,7 @@ INFO_FILE_SAVED=Fişier salvat ;TODO: JUKEBOX_SONGOPTIONS_DEFAULT=Default ;TODO: JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Saved! -;TODO: SING_SONG_CREDITS=Credits +SING_SONG_CREDITS=Credite ;TODO: SING_JUKEBOX=Jukebox ;TODO: SING_JUKEBOX_DESC=Listen to my collection ;TODO: JUKEBOX_MODE=Jukebox Mode @@ -738,13 +688,18 @@ INFO_FILE_SAVED=Fişier salvat ;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing ;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores -;TODO: OPTION_VALUE_ALL=All -;TODO: OPTION_VALUE_PLAYER=Player - -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +OPTION_VALUE_ALL=Toate +OPTION_VALUE_PLAYER=Jucător + +SING_ABOUT=Despre +SING_ABOUT_DESC=Despre Ultrastar Deluxe WorldParty +ABOUT_MAIN=Despre... +ABOUT_USDX_DEVELOPEDBY=Dezvoltat de +ABOUT_CHECK_CHECKING=Verificarea noilor actualizări... +ABOUT_CHECK_AVAILABLE=Există o nouă versiune disponibilă +ABOUT_CHECK_UPTODATE=WorldParty este actualizată +ABOUT_CHECK_CONNECTION=Nu există o conexiune la Internet +ABOUT_OVERVIEW=Descoperiți un nou mod de a cânta singur, în cuplu sau cu prietenii.\n Distracția este garantată.\n\nWorldParty este o fork a versiunii originale Ultrastar Deluxe 1.1 proiectat și dezvoltat de echipa UltraStar España, contează cu cea mai mare comunitate de karaoke.\n\n\nAcest program este gratuit și liber în baza licenței GPL. \n\n Vizitați-ne pentru mai multe informații.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Dezvoltat de +DEVELOPERS_OVERVIEW=Persoane care au contribuit la acest proiect:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Vizitați-ne pentru mai multe informații.\n\nhttps://ultrastar-es.org diff --git "a/game/languages/Slovensk\303\275.ini" "b/game/languages/Slovensk\303\275.ini" index 7c92b8f5..3af564b3 100644 --- "a/game/languages/Slovensk\303\275.ini" +++ "b/game/languages/Slovensk\303\275.ini" @@ -5,28 +5,28 @@ OPTION_VALUE_EASY=Ľahká OPTION_VALUE_MEDIUM=Stredná OPTION_VALUE_HARD=Ťažká -;TODO: OPTION_VALUE_ON=On -;TODO: OPTION_VALUE_OFF=Off +OPTION_VALUE_ON=Na +OPTION_VALUE_OFF=Preč -;TODO: OPTION_VALUE_EDITION=Edition -;TODO: OPTION_VALUE_GENRE=Genre +OPTION_VALUE_EDITION=Vydanie +OPTION_VALUE_GENRE=štýl OPTION_VALUE_LANGUAGE=Jazyk OPTION_VALUE_FOLDER=Kategória -OPTION_VALUE_TITLE=v názve skladby -OPTION_VALUE_ARTIST=v mene autora -;TODO: OPTION_VALUE_TITLE2=Title2 -;TODO: OPTION_VALUE_ARTIST2=Artist2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade +OPTION_VALUE_TITLE=V názve skladby +OPTION_VALUE_ARTIST=V mene autora +OPTION_VALUE_TITLE2=V názve skladby2 +OPTION_VALUE_ARTIST2=V mene autora2 +OPTION_VALUE_YEAR=Rok +OPTION_VALUE_DECADE=Desaťročia OPTION_VALUE_PLAYLIST=Playlist -;TODO: OPTION_VALUE_BORDERLESS=Borderless +OPTION_VALUE_BORDERLESS=Maximalizované -;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +OPTION_VALUE_WHENNOVIDEO=Keď nie je video +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Keď nie je Video a obrázok -;TODO: OPTION_VALUE_SMALL=Small -;TODO: OPTION_VALUE_BIG=Big +OPTION_VALUE_SMALL=Malý +OPTION_VALUE_BIG=Veľký ;TODO: OPTION_VALUE_HALF=Half ;TODO: OPTION_VALUE_FULL_VID=Full (Video) @@ -38,192 +38,176 @@ OPTION_VALUE_PLAYLIST=Playlist ;TODO: OPTION_VALUE_AUTO=Auto ;TODO: OPTION_VALUE_SEC=Second -;TODO: OPTION_VALUE_SECS=Seconds +OPTION_VALUE_SECS=Sekundy -;TODO: OPTION_VALUE_PLAIN=Plain -;TODO: OPTION_VALUE_OLINE1=OLine1 -;TODO: OPTION_VALUE_OLINE2=OLine2 +OPTION_VALUE_PLAIN=štylizovaný +OPTION_VALUE_OLINE1=S tenkou hranou +;TODO: OPTION_VALUE_OLINE2=With thick edge -;TODO: OPTION_VALUE_SIMPLE=Simple +OPTION_VALUE_SIMPLE=Prostý ;TODO: OPTION_VALUE_ZOOM=Zoom ;TODO: OPTION_VALUE_SLIDE=Slide -;TODO: OPTION_VALUE_BALL=Ball +OPTION_VALUE_BALL=Lopta ;TODO: OPTION_VALUE_SHIFT=Shift -;TODO: OPTION_VALUE_EURO=Euro -;TODO: OPTION_VALUE_JAPAN=Japan -;TODO: OPTION_VALUE_AMERICAN=American +OPTION_VALUE_EURO=Euro +OPTION_VALUE_JAPAN=Japonsko +OPTION_VALUE_AMERICAN=Americký -;TODO: OPTION_VALUE_BLUE=Blue -;TODO: OPTION_VALUE_GREEN=Green -;TODO: OPTION_VALUE_PINK=Pink -;TODO: OPTION_VALUE_RED=Red -;TODO: OPTION_VALUE_VIOLET=Violet -;TODO: OPTION_VALUE_ORANGE=Orange -;TODO: OPTION_VALUE_YELLOW=Yellow -;TODO: OPTION_VALUE_BROWN=Brown -;TODO: OPTION_VALUE_BLACK=Black +OPTION_VALUE_BLUE=Modrá +OPTION_VALUE_GREEN=Zelená +OPTION_VALUE_PINK=Ružová +OPTION_VALUE_RED=červená +OPTION_VALUE_VIOLET=Fialový +OPTION_VALUE_ORANGE=Oranžový +OPTION_VALUE_YELLOW=žltá +OPTION_VALUE_BROWN=Hnedý +OPTION_VALUE_BLACK=čierna OPTION_VALUE_SING=Hra -;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players -;TODO: OPTION_VALUE_OPEN_MENU=Open Menu - -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor -;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor +OPTION_VALUE_SELECT_PLAYERS=Vyberte možnosť Hráči +OPTION_VALUE_OPEN_MENU=Otvorte ponuku SING_LOADING=... nahráva sa hra ! +;TODO: SING_LOADING_SONGS=Loading songs from folder %s -SING_CHOOSE_MODE=vyberte si z možností +SING_CHOOSE_MODE=Vyberte si z možností SING_SING=Hra -SING_SING_DESC=sólo alebo duet +SING_SING_DESC=Sólo alebo duet SING_MULTI=Párty -SING_MULTI_DESC=párty-mód +SING_MULTI_DESC=Párty-mód SING_TOOLS=Nástroje SING_STATS=štatistika -SING_STATS_DESC=zobraziť štatistiku - -SING_EDITOR=editor -SING_EDITOR_DESC=vytvorte si vlastnú skladbu +SING_STATS_DESC=Zobraziť štatistiku -SING_GAME_OPTIONS=nastavenia -SING_GAME_OPTIONS_DESC=nastavenia hry +SING_GAME_OPTIONS=Nastavenia +SING_GAME_OPTIONS_DESC=Nastavenia hry SING_EXIT=Koniec -SING_EXIT_DESC=návrat do systému +SING_EXIT_DESC=Návrat do systému -SING_OPTIONS=nastavenia -SING_OPTIONS_DESC=zmeniť nastavenia +SING_OPTIONS=Nastavenia +SING_OPTIONS_DESC=Zmeniť nastavenia SING_OPTIONS_WHEREAMI=Nastavenia -SING_OPTIONS_GAME=hra -SING_OPTIONS_GRAPHICS=grafika -SING_OPTIONS_SOUND=zvuk -;TODO: SING_OPTIONS_INPUT=Input -SING_OPTIONS_LYRICS=text -SING_OPTIONS_THEMES=témy -SING_OPTIONS_RECORD=mikrofón -SING_OPTIONS_ADVANCED=iné -SING_OPTIONS_EXIT=späť +SING_OPTIONS_GAME=Hra +SING_OPTIONS_GRAPHICS=Grafika +SING_OPTIONS_SOUND=Zvuk +SING_OPTIONS_LYRICS=Text +SING_OPTIONS_THEMES=Témy +SING_OPTIONS_MICROPHONES=Mikrofón +SING_OPTIONS_ADVANCED=Iné +SING_OPTIONS_EXIT=Späť SING_OPTIONS_GAME_WHEREAMI=Nastavenia hry -SING_OPTIONS_GAME_DESC=všeobecné nastavenia +SING_OPTIONS_GAME_DESC=Všeobecné nastavenia SING_OPTIONS_GAME_PLAYERS=Počet hráčov SING_OPTIONS_GAME_DIFFICULTY=Obtiažnosť SING_OPTIONS_GAME_LANGUAGE=Jazyk SING_OPTIONS_GAME_TABS=Kategórie SING_OPTIONS_GAME_SORTING=Zoradenie -SING_OPTIONS_GAME_DEBUG=Debug mód +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Aktivujte gamepad SING_OPTIONS_GRAPHICS_WHEREAMI=Grafika -SING_OPTIONS_GRAPHICS_DESC=nastavenie grafických detailov +SING_OPTIONS_GRAPHICS_DESC=Nastavenie grafických detailov SING_OPTIONS_GRAPHICS_RESOLUTION=Rozlíšenie SING_OPTIONS_GRAPHICS_FULLSCREEN=Celá obrazovka -SING_OPTIONS_GRAPHICS_DEPTH=Far. hĺbka -;TODO: SING_OPTIONS_GRAPHICS_VISUALIZER=Visualization -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Osciloskop +SING_OPTIONS_GRAPHICS_EFFECTSING=Efekty pri speve +SING_OPTIONS_GRAPHICS_SCREENFADE=Jemný prechod +SING_OPTIONS_GRAPHICS_LOADANIMATION=Animácia loading(u) +SING_OPTIONS_GRAPHICS_VISUALIZER=Vizualizácia SING_OPTIONS_GRAPHICS_LINEBONUS=Čiarový Bonus SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Zobrazenie videa SING_OPTIONS_SOUND_WHEREAMI=Zvuk -SING_OPTIONS_SOUND_DESC=nastavenie zvuku -;TODO: SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Microphone Playback -;TODO: SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Background music -SING_OPTIONS_SOUND_MIC_BOOST=Zosilnenie mikrof. +SING_OPTIONS_SOUND_DESC=Nastavenie zvuku +SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Počuj môj hlas +SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Hudba v pozadí SING_OPTIONS_SOUND_CLICK_ASSIST=Pomocný klik SING_OPTIONS_SOUND_BEAT_CLICK=Rytmický klik -SING_OPTIONS_SOUND_THRESHOLD=Prah počuteľ. SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Mód dvoch hráčov ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Náhľad(volume) SING_OPTIONS_SOUND_PREVIEWFADING=Prechod skladieb -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - SING_OPTIONS_LYRICS_WHEREAMI=Text -SING_OPTIONS_LYRICS_DESC=nastavenia zobrazovania textov piesní +SING_OPTIONS_LYRICS_DESC=Nastavenia zobrazovania textov piesní SING_OPTIONS_LYRICS_FONT=Písmo SING_OPTIONS_LYRICS_EFFECT=Efekt zvýraznenia SING_OPTIONS_LYRICS_SOLMIZATION=Solmizácia ;TODO: SING_OPTIONS_LYRICS_NOTELINES=Staves SING_OPTIONS_THEMES_WHEREAMI=Témy -SING_OPTIONS_THEMES_DESC=zmena témy +SING_OPTIONS_THEMES_DESC=Zmena témy SING_OPTIONS_THEMES_THEME=Téma SING_OPTIONS_THEMES_SKIN=Vzhľad SING_OPTIONS_THEMES_COLOR=Farba -SING_OPTIONS_RECORD_WHEREAMI=Mikrofón -SING_OPTIONS_RECORD_DESC=nastavenie mikrofónu -SING_OPTIONS_RECORD_CARD=Zvuková karta -SING_OPTIONS_RECORD_INPUT=Vstup -SING_OPTIONS_RECORD_CHANNEL=Kanál +SING_OPTIONS_MICROPHONES_WHEREAMI=Mikrofón +SING_OPTIONS_MICROPHONES_DESC=Nastavenie mikrofónu +SING_OPTIONS_MICROPHONES_CARD=Zvuková karta +SING_OPTIONS_MICROPHONES_INPUT=Vstup +SING_OPTIONS_MICROPHONES_CHANNEL=Kanál +SING_OPTIONS_MICROPHONES_THRESHOLD=Prah počuteľ. +SING_OPTIONS_MICROPHONES_MIC_BOOST=Zosilnenie mikrof. SING_OPTIONS_ADVANCED_WHEREAMI=Iné -SING_OPTIONS_ADVANCED_DESC=rozširujúce nastavenia -SING_OPTIONS_ADVANCED_EFFECTSING=Efekty pri speve -SING_OPTIONS_ADVANCED_SCREENFADE=Jemný prechod -SING_OPTIONS_ADVANCED_LOADANIMATION=Animácia loading(u) +SING_OPTIONS_ADVANCED_DESC=Rozširujúce nastavenia +SING_OPTIONS_ADVANCED_DEBUG=Debug mód +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Osciloskop SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Potvrdzovanie SING_OPTIONS_ADVANCED_LINEBONUS=Bonus za riadok -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=Po zvolení skladby SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto PartyMenu -SING_EDIT=editor -SING_EDIT_MENU_DESCRIPTION=vytvorte si vlastnú skladbu - -;TODO: SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Import text from midi file -SING_EDIT_BUTTON_DESCRIPTION_EXIT=späť -;TODO: SING_EDIT_BUTTON_CONVERT=Import -SING_EDIT_BUTTON_EXIT=späť - -SING_EDIT_NAVIGATE=navigácia -SING_EDIT_SELECT=výber -SING_EDIT_EXIT=späť +SING_LEGEND_SELECT=Výber +SING_LEGEND_NAVIGATE=Navigácia +SING_LEGEND_CONTINUE=Pokračovať +SING_LEGEND_ESC=Späť -SING_LEGEND_SELECT=výber -SING_LEGEND_NAVIGATE=navigácia -SING_LEGEND_CONTINUE=pokračovať -SING_LEGEND_ESC=späť - -SING_PLAYER_DESC=zadajte meno hráča(ov) -SING_PLAYER_WHEREAMI=Mená hráčov -SING_PLAYER_ENTER_NAME=zadávanie mena +SING_PLAYER_TITLE=Profily +SING_PLAYER_READY=Hráči pripravené spievať +SING_PLAYER_COUNT=Počet hráčov +SING_PLAYER_EDIT=Prispôsobte si prehrávač +SING_PLAYER_NAME=Napíšte svoje meno +SING_PLAYER_COLOR=Vyberte farbu +SING_PLAYER_LEVEL=Vyberte úroveň +SING_PLAYER_AVATAR=Vyberte svoj avatar SING_DIFFICULTY_DESC=Vyberte obtiažnosť SING_DIFFICULTY_WHEREAMI=Obtiažnosť -SING_DIFFICULTY_CONTINUE=pokračovať +SING_DIFFICULTY_CONTINUE=Pokračovať SING_EASY=Ľahká SING_MEDIUM=Stredná SING_HARD=Ťažká SING_SONG_SELECTION_DESC=Vyberte skladbu -SING_SONG_SELECTION_WHEREAMI=výber skladby -SING_SONG_SELECTION_GOTO=choď na .. -SING_SONG_SELECTION=výber skladby -SING_SONG_SELECTION_MENU=menu -SING_SONG_SELECTION_PLAYLIST=playlist +SING_SONG_SELECTION_WHEREAMI=Výber skladby +SING_SONG_SELECTION_GOTO=Choď na .. +SING_SONG_SELECTION=Výber skladby +SING_SONG_SELECTION_MENU=Menu +SING_SONG_SELECTION_PLAYLIST=Playlist +SING_SONG_IN_CAT=Pieseň SING_SONGS_IN_CAT=Skladba PLAYLIST_CATTEXT=Playlist: %s - -;TODO: SING_TIME=TIME -SING_TOTAL=celkovo -SING_MODE=spievať sólo -SING_NOTES=noty -SING_GOLDEN_NOTES=zlaté noty -SING_PHRASE_BONUS=bonus za riadok +SING_SONG_SELECTION_LEGEND_TITLE=Legenda +SING_SONG_SELECTION_LEGEND_VIDEO=Video +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Duet + +SING_TOTAL=Celkovo +SING_MODE=Spievať sólo +SING_NOTES=Noty +SING_GOLDEN_NOTES=Zlaté noty +SING_PHRASE_BONUS=Bonus za riadok SING_MENU=Hlavné Menu -SONG_SCORE=hodnotenie +SONG_SCORE=Hodnotenie SONG_SCORE_WHEREAMI=Skóre SING_SCORE_TONE_DEAF=Antitalent @@ -235,19 +219,19 @@ SING_SCORE_LEAD_SINGER=Spevák SING_SCORE_SUPERSTAR=Superstar SING_SCORE_ULTRASTAR=Ultrastar -SING_TOP_5_CHARTS=najlepších 5 -SING_TOP_5_CHARTS_WHEREAMI=top 5 -SING_TOP_5_CHARTS_CONTINUE=pre výber skladby +SING_TOP_5_CHARTS=Najlepších 5 +SING_TOP_5_CHARTS_WHEREAMI=Top 5 +SING_TOP_5_CHARTS_CONTINUE=Pre výber skladby ;TODO: SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Switch difficulty -POPUP_PERFECT=neskutočné! -POPUP_AWESOME=paráda! -POPUP_GREAT=super! -POPUP_GOOD=dobré! -POPUP_NOTBAD=nie zlé! -POPUP_BAD=zle! -POPUP_POOR=bieda! -POPUP_AWFUL=otrasné! +POPUP_PERFECT=Neskutočné! +POPUP_AWESOME=Paráda! +POPUP_GREAT=Super! +POPUP_GOOD=Dobré! +POPUP_NOTBAD=Nie zlé! +POPUP_BAD=Zle! +POPUP_POOR=Bieda! +POPUP_AWFUL=Otrasné! IMPLODE_GLUE1=, IMPLODE_GLUE2= a @@ -255,7 +239,6 @@ IMPLODE_GLUE2= a SONG_MENU_NAME_MAIN=Výber hudby SONG_MENU_PLAY=Štart SONG_MENU_CHANGEPLAYERS=Iný hráč -SONG_MENU_EDIT=Uprav SONG_MENU_MODI=Sing a Modi SONG_MENU_CANCEL=Zrušiť @@ -264,8 +247,8 @@ SONG_MENU_PLAYLIST_ADD=Pridaj skladbu SONG_MENU_PLAYLIST_DEL=Zmaž skladbu SONG_MENU_NAME_PLAYLIST_ADD=Pridaj Skladbu -SONG_MENU_PLAYLIST_ADD_NEW=do nového playlistu -SONG_MENU_PLAYLIST_ADD_EXISTING=do existujúceho playlistu +SONG_MENU_PLAYLIST_ADD_NEW=Do nového playlistu +SONG_MENU_PLAYLIST_ADD_EXISTING=Do existujúceho playlistu SONG_MENU_PLAYLIST_NOEXISTING=Nie je dostupný žiadny playlist SONG_MENU_NAME_PLAYLIST_NEW=Nový Playlist @@ -277,27 +260,27 @@ SONG_MENU_YES=Áno SONG_MENU_NO=Nie SONG_MENU_NAME_PLAYLIST_LOAD=Načítaj Playlist -SONG_MENU_PLAYLIST_LOAD=načítaj -SONG_MENU_PLAYLIST_DELCURRENT=zmaž tento Playlist +SONG_MENU_PLAYLIST_LOAD=Načítaj +SONG_MENU_PLAYLIST_DELCURRENT=Zmaž tento Playlist SONG_MENU_NAME_PLAYLIST_DEL=Zmazať Playlist? SONG_MENU_NAME_PARTY_MAIN=Party Menu SONG_MENU_JOKER=Joker -SONG_MENU_NAME_PARTY_JOKER=použi jokera +SONG_MENU_NAME_PARTY_JOKER=Použi jokera -SONG_JUMPTO_DESC=hľadaj skladbu -SONG_JUMPTO_TYPE_DESC=hľadaj: -SONG_JUMPTO_TYPE1=všade -SONG_JUMPTO_TYPE2=v názve skladby -SONG_JUMPTO_TYPE3=v mene autora +SONG_JUMPTO_DESC=Hľadaj skladbu +SONG_JUMPTO_TYPE_DESC=Hľadaj: +SONG_JUMPTO_TYPE1=Všade +SONG_JUMPTO_TYPE2=V názve skladby +SONG_JUMPTO_TYPE3=V mene autora SONG_JUMPTO_SONGSFOUND=%d skladieb vyhovuje filtru SONG_JUMPTO_NOSONGSFOUND=Žiadna skladba SONG_JUMPTO_HELP=Napíš kľúčové slovo pre hľadanie SONG_JUMPTO_CATTEXT=Hľadaj: %s -PARTY_MODE=párty mód +PARTY_MODE=Párty mód PARTY_DIFFICULTY=Obtiažnosť PARTY_PLAYLIST=Skladby z playlistu PARTY_PLAYLIST_ALL=Všetky skladby @@ -308,14 +291,14 @@ PARTY_TEAMS_PLAYER1=Hráčov v Tíme 1 PARTY_TEAMS_PLAYER2=Hráčov v Tíme 2 PARTY_TEAMS_PLAYER3=Hráčov v Tíme 3 -PARTY_LEGEND_CONTINUE=pokračovať +PARTY_LEGEND_CONTINUE=Pokračovať -PARTY_OPTIONS_DESC=nastavenia pre párty-mód +PARTY_OPTIONS_DESC=Nastavenia pre párty-mód PARTY_OPTIONS_WHEREAMI=Párty nastavenia PARTY_PLAYER_DESC=Zadajte mená tímov a hráčov! PARTY_PLAYER_WHEREAMI=Párty mená -PARTY_PLAYER_ENTER_NAME=zadajte mená +PARTY_PLAYER_ENTER_NAME=Zadajte mená ;TODO: PARTY_ROUNDS_DESC=Select which modes you want to play @@ -324,30 +307,30 @@ PARTY_ROUNDS_LEGEND_CONTINUE=Pokračovať ;TODO: PARTY_ROUNDCOUNT=Number of rounds ;TODO: PARTY_SELECTMODE=Round %d -PARTY_ROUND_DESC=párty pre hráčov +PARTY_ROUND_DESC=Párty pre hráčov PARTY_ROUND_WHEREAMI=List párty disciplín PARTY_ROUND_LEGEND_CONTINUE=Štart disciplíny PARTY_SONG_WHEREAMI=Párty - Výver Skladby PARTY_SONG_LEGEND_CONTINUE=Štart -PARTY_SONG_MENU=party menu +PARTY_SONG_MENU=Party menu -PARTY_SCORE_DESC=skóre posledného kola +PARTY_SCORE_DESC=Skóre posledného kola PARTY_SCORE_WHEREAMI=Párty skóre PARTY_WIN_DESC=Víťaz párty PARTY_WIN_WHEREAMI=Stupeň víťazov -PARTY_WIN_LEGEND_CONTINUE=späť do hlavného menu +PARTY_WIN_LEGEND_CONTINUE=Späť do hlavného menu PARTY_ROUND=Kolo PARTY_ROUND_WINNER=Víťaz -PARTY_NOTPLAYEDYET=nehralo -PARTY_NOBODY=ani jedno družstvo +PARTY_NOTPLAYEDYET=Nehralo +PARTY_NOBODY=Ani jedno družstvo NEXT_ROUND=Ďalšie kolo: PARTY_DISMISSED=Ukončené ! PARTY_SCORE_WINS=%s -PARTY_SCORE_WINS2=víťaz tohto kola +PARTY_SCORE_WINS2=Víťaz tohto kola ;TODO: MODE_RANDOM_NAME=Random Mode ;TODO: MODE_RANDOM_DESC=Keep yourself on your toes! The game will select a mode for you at random! @@ -422,7 +405,7 @@ STAT_DETAIL_WHEREAMI=Podrobná štatistika STAT_NEXT=Ďalšia strana STAT_PREV=Predošlá strana STAT_REVERSE=Otoč poradie -STAT_PAGE=%0:d. z %1:d strán\n (%2:d z %3:d položiek) +STAT_PAGE=%0:d. z %1:d strán \n %2:d z %3:d Položiek STAT_DESC_SCORES=Najvyššie skóre STAT_DESC_SCORES_REVERSED=Najhoršie skóre @@ -448,7 +431,6 @@ STAT_FORMAT_BANDS=%0:s \n %1:dx spievaná ;TODO: ERROR_FILE_NOT_FOUND=File not found ;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? -;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected MSG_ERROR_TITLE=Chyba ;TODO: MSG_INFO_TITLE=Information @@ -465,36 +447,35 @@ ERROR_CORRUPT_SONG=Skladbu sa nepodarilo nahrať. ;TODO: ERROR_CORRUPT_SONG_NO_NOTES=Song could not be loaded: Can''t find any notes ;TODO: ERROR_CORRUPT_SONG_NO_BREAKS=Song could not be loaded: Can''t find any linebreaks ;TODO: ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song could not be loaded: Error parsing line %0:d -;TODO: ERROR_NO_EDITOR=This feature is not available on this version. -;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options -;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options +ERROR_PLAYER_DEVICE_ASSIGNMENT=Prehrávač %d je priradený k viac mikrofónov. Skontrolujte možnosti mikrofónu +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Prehrávač %d nie je priradený mikrofónu. Skontrolujte možnosti mikrofónu -;TODO: SING_OPTIONS_NETWORK=Internet -;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options +SING_OPTIONS_NETWORK=Internet +SING_OPTIONS_NETWORK_WHEREAMI=Možnosti internetu ;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings ;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... ;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password +SING_OPTIONS_NETWORK_USERNAME=Užívateľské meno +SING_OPTIONS_NETWORK_PASSWORD=Heslo ;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name ;TODO: SING_OPTIONS_NETWORK_AUTO_MODE=Auto -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player +;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Prehrávač ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) ;TODO: SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! ;TODO: SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? ;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert -;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete - -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 -OPTION_ALL_PLAYERS=všade -OPTION_ALL_SCORES=všade +SING_OPTIONS_NETWORK_LEGEND_DELETE=Vymazať + +OPTION_PLAYER_1=Prehrávač 1 +OPTION_PLAYER_2=Prehrávač 2 +OPTION_PLAYER_3=Prehrávač 3 +OPTION_PLAYER_4=Prehrávač 4 +OPTION_PLAYER_5=Prehrávač 5 +OPTION_PLAYER_6=Prehrávač 6 +OPTION_ALL_PLAYERS=Všade +OPTION_ALL_SCORES=Všade ;TODO: OPTION_VALUE_SAVE=Save ;TODO: OPTION_VALUE_SEND=Send @@ -531,7 +512,7 @@ MSG_INSERT_USER_CANCEL=Zrušiť ;TODO: SCORE_SEND_DESC=Send Score ;TODO: SCORE_SEND=Send -;TODO: SCORE_SEND_PLAYER=Player +SCORE_SEND_PLAYER=Prehrávač ;TODO: SCORE_SEND_OTHER_USER= Other Username ;TODO: SCORE_SAVE=Save @@ -561,40 +542,10 @@ SCORE_DOWNLOAD_CANCEL=Zrušiť ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Semifinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Quarterfinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL=Round of 16 -PARTY_MODE_TOURNAMENT_ROUNDS_DESC=párty pre hráčov +PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Párty pre hráčov ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -;TODO: INFO_FILE_SAVED=File saved -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - ;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! ;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! @@ -609,8 +560,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=párty pre hráčov ;TODO: SONG_MENU_SONG=Song ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Skladby ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -622,7 +571,7 @@ SONG_MENU_DELETE_SONG=Zmaž skladbu ;TODO: SONG_MENU_NAME_SORTING=Sort Menu ;TODO: SONG_MENU_SORTING_TABS_ON=Tabs On ;TODO: SONG_MENU_SORTING_TABS_OFF=Tabs Off -SONG_MENU_SORTING_ALL=všade +SONG_MENU_SORTING_ALL=Všade ;TODO: SONG_MENU_SORTING_DUET=Duets ;TODO: SONG_MENU_SORTING_APPLY=Apply @@ -636,8 +585,9 @@ SING_OPTIONS_WEBCAM_RESOLUTION=Rozlíšenie ;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip SING_OPTIONS_WEBCAM_EFFECT=Efekt zvýraznenia ;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation +SING_OPTIONS_WEBCAM_SATURATION=Nasýtenia ;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +;TODO: SING_OPTIONS_WEBCAM_PREVIEW=Activate preview ;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview ;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview @@ -663,45 +613,45 @@ SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Prah počuteľ. ;TODO: WEBSITE_EXIST_SONG=The song belongs to the website: %0:s ;TODO: WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! -;TODO: NAME_PLAYERS_COUNT=Number of Players -;TODO: NAME_CURRENT_PLAYER=Player +;TODO: NAME_PLAYERS_COUNT=Počet hráčov +;TODO: NAME_CURRENT_PLAYER=Prehrávač SING_OPTIONS_GAME_SONGMENU=Skladby -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List -;TODO: OPTION_VALUE_MOSAIC=Tile +OPTION_VALUE_ROULETTE=Ruleta +OPTION_VALUE_CHESSBOARD=šachovnica +OPTION_VALUE_CAROUSEL=Kolotoč +OPTION_VALUE_SLOT_MACHINE=Automat +OPTION_VALUE_LIST=Zoznam +OPTION_VALUE_MOSAIC=Dlaždice ;TODO: SING_OPTIONS_JUKEBOX=Jukebox ;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox ;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options OPTION_VALUE_TO_SING=Hra -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next +OPTION_VALUE_ACTUAL=Vrchný +OPTION_VALUE_NEXT=Dno ;TODO: OPTION_VALUE_OTHER=Other ;TODO: OPTION_VALUE_FILL=Fill ;TODO: OPTION_VALUE_OUTLINE=Outline -;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -;TODO: OPTION_VALUE_SALMON=Salmon +OPTION_VALUE_GRAY=šedá +OPTION_VALUE_WHITE=Biely +OPTION_VALUE_TURQUOISE=Tyrkysová +OPTION_VALUE_SALMON=Losos ;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige -;TODO: OPTION_VALUE_TEAL=Teal -;TODO: OPTION_VALUE_ORCHID=Orchid -;TODO: OPTION_VALUE_STEELBLUE=Steel Blue +OPTION_VALUE_LAVENDER=Levanduľa +OPTION_VALUE_BEIGE=Béžový +OPTION_VALUE_TEAL=Modrozelený +OPTION_VALUE_ORCHID=Orchidea +OPTION_VALUE_STEELBLUE=Oceľová modrá ;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold -;TODO: OPTION_VALUE_DARKBLUE=Dark Blue -;TODO: OPTION_VALUE_SKY=Sky -;TODO: OPTION_VALUE_HARLEQUIN=Harlequin -;TODO: OPTION_VALUE_CYAN=Cyan -;TODO: OPTION_VALUE_FLAME=Flame +OPTION_VALUE_CHOCOLATE=čokoláda +OPTION_VALUE_GOLD=Zlato +OPTION_VALUE_DARKBLUE=Tmavomodrá +OPTION_VALUE_SKY=Neba +OPTION_VALUE_HARLEQUIN=Harlekýn +OPTION_VALUE_CYAN=Tyrkysový +OPTION_VALUE_FLAME=Plameň ;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect @@ -710,13 +660,13 @@ OPTION_VALUE_TO_SING=Hra ;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Priehľadnosť JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Farba ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Red -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Green -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blue +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=červená +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Zelená +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Modrá ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop @@ -738,13 +688,18 @@ JUKEBOX_OPTIONS_PLAYLIST=Playlist ;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing ;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores -OPTION_VALUE_ALL=všade +OPTION_VALUE_ALL=Všade ;TODO: OPTION_VALUE_PLAYER=Player -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +SING_ABOUT=O +SING_ABOUT_DESC=O Ultrastar Deluxe WorldParty +ABOUT_MAIN=O... +ABOUT_USDX_DEVELOPEDBY=Vyvinutý +;TODO: ABOUT_CHECK_CHECKING=Checking for new updates... +;TODO: ABOUT_CHECK_AVAILABLE=There is a new version available +;TODO: ABOUT_CHECK_UPTODATE=WorldParty is up to date +;TODO: ABOUT_CHECK_CONNECTION=There is no Internet connection +ABOUT_OVERVIEW=Objavte nový spôsob spevu, sám, v páre alebo s priateľmi. \n Zábava je zaručená.\n\nWorldParty je fork pôvodnej verzie Ultrastar Deluxe 1.1 navrhnutý a vyvinutý tímom UltraStar España, počíta s najväčšou karaoke komunitou.\n\n\nTento program je bezplatný a libre pod licenciou GPL. \n\n Navštívte nás pre viac informácií.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Vyvinutý +DEVELOPERS_OVERVIEW=Ľudia, ktorí prispeli k tomuto projektu:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Navštívte nás pre viac informácií.\n\nhttps://ultrastar-es.org diff --git "a/game/languages/Sloven\305\241\304\215ina.ini" "b/game/languages/Sloven\305\241\304\215ina.ini" index 1283fc04..1d1e02ab 100644 --- "a/game/languages/Sloven\305\241\304\215ina.ini" +++ "b/game/languages/Sloven\305\241\304\215ina.ini" @@ -1,36 +1,110 @@ [Text] LANGUAGE=Slovenščina +SING_LOADING=Nalaganje... +SING_LOADING_SONGS=Nalaganje skladb iz mape %s + +SING_SING=Poj +SING_SING_DESC=Poj sam ali v duetu + +SING_MULTI=Zabava +SING_MULTI_DESC=Poj v nacinu zabave + +;TODO: SING_JUKEBOX=Jukebox +;TODO: SING_JUKEBOX_DESC=Listen to my collection + +SING_STATS=Statistika +SING_STATS_DESC=Poglej statistiko + +SING_GAME_OPTIONS=Nastavitve igre +SING_GAME_OPTIONS_DESC=Spremeni nastavitve igre + +SING_EXIT=Izhod +SING_EXIT_DESC=Izhod iz igre + +SING_ABOUT=O +SING_ABOUT_DESC=O Ultrastar Deluxe WorldParty + +SING_PLAYER_TITLE=Profili +SING_PLAYER_READY=Igralci pripravljeni na peti +SING_PLAYER_COUNT=Število igralcev +SING_PLAYER_EDIT=Prilagodite predvajalnik +SING_PLAYER_NAME=Napiši svoje ime +SING_PLAYER_COLOR=Izberite barvo +SING_PLAYER_LEVEL=Izberite raven +SING_PLAYER_AVATAR=Izberite svoj avatar + OPTION_VALUE_EASY=Enostavno OPTION_VALUE_MEDIUM=Srednje OPTION_VALUE_HARD=Težko +SING_OPTIONS=Nastavitve + +SING_OPTIONS_GAME=Igra +SING_OPTIONS_GRAPHICS=Izgled +SING_OPTIONS_SOUND=Zvok +SING_OPTIONS_LYRICS=Besedilo +SING_OPTIONS_THEMES=Tema +SING_OPTIONS_MICROPHONES=Mikrofoni +SING_OPTIONS_ADVANCED=Napredno +SING_OPTIONS_NETWORK=Internet +;TODO: SING_OPTIONS_WEBCAM=Webcam +;TODO: SING_OPTIONS_JUKEBOX=Jukebox +SING_OPTIONS_EXIT=Nazaj + +SING_OPTIONS_GAME_LANGUAGE=Jezik +SING_OPTIONS_GAME_SONGMENU=Meni Pesem +SING_OPTIONS_GAME_TABS=Mape +SING_OPTIONS_GAME_SORTING=Sortiranje +;TODO: SING_OPTIONS_GAME_SHOWSCORES=Show Scores +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Aktivirajte gamepad + +OPTION_VALUE_ROULETTE=Ruleta +OPTION_VALUE_CHESSBOARD=Šahovnica +OPTION_VALUE_CAROUSEL=Vrtiljaka +OPTION_VALUE_SLOT_MACHINE=Igralni avtomat +OPTION_VALUE_LIST=Seznam +;TODO: OPTION_VALUE_MOSAIC=Tile + ;TODO: OPTION_VALUE_ON=On ;TODO: OPTION_VALUE_OFF=Off -;TODO: OPTION_VALUE_EDITION=Edition -;TODO: OPTION_VALUE_GENRE=Genre +OPTION_VALUE_EDITION=Izdaja +OPTION_VALUE_GENRE=Žanr OPTION_VALUE_LANGUAGE=Jezik OPTION_VALUE_FOLDER=Mapa OPTION_VALUE_TITLE=Naslov OPTION_VALUE_ARTIST=Avtor -;TODO: OPTION_VALUE_TITLE2=Title2 -;TODO: OPTION_VALUE_ARTIST2=Artist2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade +OPTION_VALUE_ARTIST2=Avtor2 +OPTION_VALUE_YEAR=Leto +OPTION_VALUE_DECADE=Desetletje OPTION_VALUE_PLAYLIST=Seznam -;TODO: OPTION_VALUE_BORDERLESS=Borderless +;TODO: OPTION_VALUE_WHEN_EXISTS=When Exists -;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +SING_OPTIONS_GRAPHICS_FULLSCREEN=Celozaslonski nacin +SING_OPTIONS_GRAPHICS_RESOLUTION=Locljivost +SING_OPTIONS_GRAPHICS_SCREENFADE=Zamegljevanje prikaza +SING_OPTIONS_GRAPHICS_EFFECTSING=Pevski efekt +SING_OPTIONS_GRAPHICS_VISUALIZER=Vizualizacija +SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Velikost videa + +OPTION_VALUE_BORDERLESS=Brez robov -;TODO: OPTION_VALUE_SMALL=Small -;TODO: OPTION_VALUE_BIG=Big +OPTION_VALUE_WHENNOVIDEO=Kadar ni videa +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Kadar ni videa in slike -;TODO: OPTION_VALUE_HALF=Half -;TODO: OPTION_VALUE_FULL_VID=Full (Video) -;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video) +OPTION_VALUE_HALF=Polovica +OPTION_VALUE_FULL_VID=Poln (Video) +OPTION_VALUE_FULL_VID_BG=Poln (BG & Video) + +SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Mikrofonski Playback +SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Glasbena podlaga +SING_OPTIONS_SOUND_CLICK_ASSIST=Asistent klikanja +SING_OPTIONS_SOUND_BEAT_CLICK=Klikanje po ritmu +;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain +SING_OPTIONS_SOUND_PREVIEWVOLUME=Glasnost predogleda +SING_OPTIONS_SOUND_PREVIEWFADING=Narašcanje glasnosti ;TODO: OPTION_VALUE_GAIN_SOFT=Soft ;TODO: OPTION_VALUE_GAIN_MEDIUM=Medium @@ -40,190 +114,214 @@ OPTION_VALUE_PLAYLIST=Seznam ;TODO: OPTION_VALUE_SEC=Second ;TODO: OPTION_VALUE_SECS=Seconds -;TODO: OPTION_VALUE_PLAIN=Plain -;TODO: OPTION_VALUE_OLINE1=OLine1 -;TODO: OPTION_VALUE_OLINE2=OLine2 +SING_OPTIONS_LYRICS_FONT=Pisava +SING_OPTIONS_LYRICS_EFFECT=Ucinek +SING_OPTIONS_LYRICS_NOTELINES=Notno crtovje + +OPTION_VALUE_PLAIN=Stilizirano +OPTION_VALUE_OLINE1=S tankim robom +OPTION_VALUE_OLINE2=Z debelim robom -;TODO: OPTION_VALUE_SIMPLE=Simple +OPTION_VALUE_SIMPLE=Preprosto ;TODO: OPTION_VALUE_ZOOM=Zoom ;TODO: OPTION_VALUE_SLIDE=Slide -;TODO: OPTION_VALUE_BALL=Ball +OPTION_VALUE_BALL=Krogla ;TODO: OPTION_VALUE_SHIFT=Shift -;TODO: OPTION_VALUE_EURO=Euro -;TODO: OPTION_VALUE_JAPAN=Japan -;TODO: OPTION_VALUE_AMERICAN=American - -;TODO: OPTION_VALUE_BLUE=Blue -;TODO: OPTION_VALUE_GREEN=Green -;TODO: OPTION_VALUE_PINK=Pink -;TODO: OPTION_VALUE_RED=Red -;TODO: OPTION_VALUE_VIOLET=Violet -;TODO: OPTION_VALUE_ORANGE=Orange -;TODO: OPTION_VALUE_YELLOW=Yellow -;TODO: OPTION_VALUE_BROWN=Brown -;TODO: OPTION_VALUE_BLACK=Black - -OPTION_VALUE_SING=poj -;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players -;TODO: OPTION_VALUE_OPEN_MENU=Open Menu - -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor -;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor - -SING_LOADING=Nalaganje... +SING_OPTIONS_THEMES_THEME=Tema +SING_OPTIONS_THEMES_SKIN=Izgled +SING_OPTIONS_THEMES_COLOR=Barva -SING_CHOOSE_MODE=izberi nacin -SING_SING=poj -SING_SING_DESC=poj sam ali v duetu +SING_OPTIONS_MICROPHONES_CARD=Vir zvoka +SING_OPTIONS_MICROPHONES_INPUT=Vhod +SING_OPTIONS_MICROPHONES_CHANNEL=Kanal +SING_OPTIONS_MICROPHONES_THRESHOLD=Prag +SING_OPTIONS_MICROPHONES_MIC_BOOST=Ojacitev mikrofona -SING_MULTI=zabava -SING_MULTI_DESC=poj v nacinu zabave +SING_OPTIONS_ADVANCED_DEBUG=Odpravljanje hrošcev +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Osciloskop +SING_OPTIONS_ADVANCED_ONSONGCLICK=Po izboru pesmi +SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Zašcitno vprašanje +SING_OPTIONS_ADVANCED_PARTYPOPUP=Samodejni nacin Zabava +;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores +;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing -SING_TOOLS=orodja +OPTION_VALUE_ALL=Vse +OPTION_VALUE_PLAYER=Igralec -SING_STATS=statistika -SING_STATS_DESC=poglej statistiko +;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... +;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website +SING_OPTIONS_NETWORK_USERNAME=Uporabniško ime +SING_OPTIONS_NETWORK_PASSWORD=Geslo +;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name +;TODO: SING_OPTIONS_NETWORK_AUTO_MODE=Auto +SING_OPTIONS_NETWORK_AUTO_PLAYER=Igralec +;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) +;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) +;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) +;TODO: SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! +;TODO: SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? +SING_OPTIONS_NETWORK_LEGEND_INSERT=Vstavi +SING_OPTIONS_NETWORK_LEGEND_DELETE=Izbriši + +OPTION_PLAYER_1=Igralec 1 +OPTION_PLAYER_2=Igralec 2 +OPTION_PLAYER_3=Igralec 3 +OPTION_PLAYER_4=Igralec 4 +OPTION_PLAYER_5=Igralec 5 +OPTION_PLAYER_6=Igralec 6 +OPTION_ALL_PLAYERS=Vse +OPTION_ALL_SCORES=Vse +;TODO: OPTION_VALUE_SAVE=Save +;TODO: OPTION_VALUE_SEND=Send -SING_EDITOR=urednik -SING_EDITOR_DESC=izdelaj svoje pesmi +;TODO: MSG_INSERT_USER_TITLE=%0:s +;TODO: MSG_INSERT_USER_DESC=Fill the fields: +MSG_INSERT_USER_ADD=Dodaj +MSG_INSERT_USER_CANCEL=Preklici -SING_GAME_OPTIONS=nastavitve igre -SING_GAME_OPTIONS_DESC=spremeni nastavitve igre +;TODO: WEBSITE_NO_CONNECTION=No website connection! +;TODO: WEBSITE_LOGIN_ERROR=Login Incorrect! +;TODO: WEBSITE_BLANK_LOGIN=There are blank fields! +;TODO: WEBSITE_EXIST_USER=Existing user! +;TODO: WEBSITE_ERROR_SCORE=Scoring Error! +;TODO: WEBSITE_OK_SEND=Score sent successfully! +;TODO: WEBSITE_ERROR_SCORE_DUPLICATED=Existing Score! +;TODO: WEBSITE_ERROR_SONG=Song Not Found! +;TODO: WEBSITE_SAVE_SCORE=Score save successfully! +;TODO: WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? -SING_EXIT=izhod -SING_EXIT_DESC=izhod iz igre +;TODO: SONG_MENU_REFRESH_SCORES=Update Scores +;TODO: SONG_MENU_REFRESH_SCORES_TITLE=Update +;TODO: SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! +;TODO: SONG_MENU_REFRESH_SCORES_ONLINE=Online +;TODO: SONG_MENU_REFRESH_SCORES_FILE=File +;TODO: SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites +;TODO: SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs +;TODO: SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song +;TODO: SONG_MENU_REFRESH_SCORES_REFRESH=Update +;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! +;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! -SING_OPTIONS=nastavitve -SING_OPTIONS_DESC=spremeni nastavitve -SING_OPTIONS_WHEREAMI=Nastavitve +;TODO: SONG_SCORE_MAX=Best: +;TODO: SONG_SCORE_MEDIA=Average: -SING_OPTIONS_GAME=igra -SING_OPTIONS_GRAPHICS=izgled -SING_OPTIONS_SOUND=zvok -;TODO: SING_OPTIONS_INPUT=Input -SING_OPTIONS_LYRICS=besedilo -SING_OPTIONS_THEMES=tema -SING_OPTIONS_RECORD=snemanje -SING_OPTIONS_ADVANCED=napredno -SING_OPTIONS_EXIT=nazaj +;TODO: SCORE_SEND_DESC=Send Score +;TODO: SCORE_SEND=Send +SCORE_SEND_PLAYER=Igralec +;TODO: SCORE_SEND_OTHER_USER= Other Username +;TODO: SCORE_SAVE=Save -SING_OPTIONS_GAME_WHEREAMI=Nastavitve Igre -SING_OPTIONS_GAME_DESC=osnovne nastavitve -SING_OPTIONS_GAME_PLAYERS=Igralci -SING_OPTIONS_GAME_DIFFICULTY=Težavnost -SING_OPTIONS_GAME_LANGUAGE=Jezik -SING_OPTIONS_GAME_TABS=Mape -SING_OPTIONS_GAME_SORTING=Sortiranje -SING_OPTIONS_GAME_DEBUG=Odpravljanje hrošcev +SCORE_DOWNLOAD_TITLE=Prenesi +SCORE_DOWNLOAD_SONG=Pesem: +;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... +;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... +SCORE_DOWNLOAD_CANCEL=Preklici +;TODO: SCORE_DOWNLOAD_OK=OK +;TODO: SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! -SING_OPTIONS_GRAPHICS_WHEREAMI=Nastavitve prikaza -SING_OPTIONS_GRAPHICS_DESC=nastavitve prikaza -SING_OPTIONS_GRAPHICS_RESOLUTION=Locljivost -SING_OPTIONS_GRAPHICS_FULLSCREEN=Celozaslonski nacin -SING_OPTIONS_GRAPHICS_DEPTH=Globina -SING_OPTIONS_GRAPHICS_VISUALIZER=Vizualizacija -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Osciloskop -SING_OPTIONS_GRAPHICS_LINEBONUS=Vrsticni bonus -SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Velikost videa +;TODO: SING_OPTIONS_WEBCAM_ID=Webcam +SING_OPTIONS_WEBCAM_RESOLUTION=Locljivost +;TODO: SING_OPTIONS_WEBCAM_FPS=FPS +;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip +;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness +;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation +;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +SING_OPTIONS_WEBCAM_EFFECT=Ucinek +;TODO: SING_OPTIONS_WEBCAM_PREVIEW=Activate preview -SING_OPTIONS_SOUND_WHEREAMI=Nastavitve zvoka -SING_OPTIONS_SOUND_DESC=nastavitve zvoka -SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Mikrofonski Playback -SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Glasbena podlaga -SING_OPTIONS_SOUND_MIC_BOOST=Ojacitev mikrofona -SING_OPTIONS_SOUND_CLICK_ASSIST=Asistent klikanja -SING_OPTIONS_SOUND_BEAT_CLICK=Klikanje po ritmu -SING_OPTIONS_SOUND_THRESHOLD=Prag -SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Nacin za dva igralca -;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain -SING_OPTIONS_SOUND_PREVIEWVOLUME=Glasnost predogleda -SING_OPTIONS_SOUND_PREVIEWFADING=narašcanje glasnosti +;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview +;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview +;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! +;TODO: SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal +;TODO: SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Grayscale +;TODO: SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Black & White +;TODO: SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negative +;TODO: SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image +;TODO: SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate +SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Prag +;TODO: SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges +;TODO: SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur +;TODO: SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized +;TODO: SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Preglednost +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property +JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Barva +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Rdeča +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Zelena +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Modra -SING_OPTIONS_LYRICS_WHEREAMI=Nastavitve besedila -SING_OPTIONS_LYRICS_DESC=nastavitve besedila -SING_OPTIONS_LYRICS_FONT=Pisava -SING_OPTIONS_LYRICS_EFFECT=Ucinek -SING_OPTIONS_LYRICS_SOLMIZATION=Solmizacija -SING_OPTIONS_LYRICS_NOTELINES=Notno crtovje +;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options +;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect +;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width +;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height +;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -SING_OPTIONS_THEMES_WHEREAMI=Nastavitve tem -SING_OPTIONS_THEMES_DESC=nastavitve teme -SING_OPTIONS_THEMES_THEME=Tema -SING_OPTIONS_THEMES_SKIN=Izgled -SING_OPTIONS_THEMES_COLOR=Barva +OPTION_VALUE_TO_SING=Poj +OPTION_VALUE_ACTUAL=Zgornja +OPTION_VALUE_NEXT=Spodnja +;TODO: OPTION_VALUE_OTHER=Other +;TODO: OPTION_VALUE_FILL=Fill +;TODO: OPTION_VALUE_OUTLINE=Outline +OPTION_VALUE_BLUE=Modra +OPTION_VALUE_GREEN=Zelena +OPTION_VALUE_PINK=Roza +OPTION_VALUE_RED=Rdeča +OPTION_VALUE_VIOLET=Violet +OPTION_VALUE_ORANGE=Oranžna +OPTION_VALUE_YELLOW=Rumena +OPTION_VALUE_BROWN=Rjav +OPTION_VALUE_BLACK=Črna +OPTION_VALUE_MAGENTA=Magenta +;TODO: OPTION_VALUE_GRAY=Gray +;TODO: OPTION_VALUE_WHITE=White +;TODO: OPTION_VALUE_TURQUOISE=Turquoise +;TODO: OPTION_VALUE_SALMON=Salmon +;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow +;TODO: OPTION_VALUE_LAVENDER=Lavender +;TODO: OPTION_VALUE_BEIGE=Beige +;TODO: OPTION_VALUE_TEAL=Teal +;TODO: OPTION_VALUE_ORCHID=Orchid +;TODO: OPTION_VALUE_STEELBLUE=Steel Blue +;TODO: OPTION_VALUE_PLUM=Plum +;TODO: OPTION_VALUE_CHOCOLATE=Chocolate +;TODO: OPTION_VALUE_GOLD=Gold +;TODO: OPTION_VALUE_DARKBLUE=Dark Blue +;TODO: OPTION_VALUE_SKY=Sky +;TODO: OPTION_VALUE_HARLEQUIN=Harlequin +;TODO: OPTION_VALUE_CYAN=Cyan +;TODO: OPTION_VALUE_FLAME=Flame -SING_OPTIONS_RECORD_WHEREAMI=Nastavitve snemanja -SING_OPTIONS_RECORD_DESC=nastavitve mikrofona -SING_OPTIONS_RECORD_CARD=Vir zvoka -SING_OPTIONS_RECORD_INPUT=Vhod -SING_OPTIONS_RECORD_CHANNEL=Kanal - -SING_OPTIONS_ADVANCED_WHEREAMI=Napredne nastavitve -SING_OPTIONS_ADVANCED_DESC=Napredne nastavitve -SING_OPTIONS_ADVANCED_EFFECTSING=Pevski efekt -SING_OPTIONS_ADVANCED_SCREENFADE=Zamegljevanje prikaza -SING_OPTIONS_ADVANCED_LOADANIMATION=Zacetna animacija -SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Zašcitno vprašanje -SING_OPTIONS_ADVANCED_LINEBONUS=Bonus za vrstico -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= -SING_OPTIONS_ADVANCED_ONSONGCLICK=Po izboru pesmi -SING_OPTIONS_ADVANCED_PARTYPOPUP=Samodejni nacin Zabava +SING_LEGEND_SELECT=Izberi +SING_LEGEND_NAVIGATE=Premik +SING_LEGEND_CONTINUE=Nadaljuj +SING_LEGEND_ESC=Nazaj -SING_EDIT=Urednik -SING_EDIT_MENU_DESCRIPTION=Izdelaj lastno pesem - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Izvozi besedilo iz midi datoteke -SING_EDIT_BUTTON_DESCRIPTION_EXIT=Nazaj -SING_EDIT_BUTTON_CONVERT=Uvozi -SING_EDIT_BUTTON_EXIT=Nazaj - -SING_EDIT_NAVIGATE=Navigacija -SING_EDIT_SELECT=Izberi -SING_EDIT_EXIT=Nazaj - -SING_LEGEND_SELECT=izberi -SING_LEGEND_NAVIGATE=premik -SING_LEGEND_CONTINUE=nadaljuj -SING_LEGEND_ESC=nazaj - -SING_PLAYER_DESC=vpiši imena igralcev -SING_PLAYER_WHEREAMI=Imena igralcev -SING_PLAYER_ENTER_NAME=vnesi ime - -SING_DIFFICULTY_DESC=izberi težavnost -SING_DIFFICULTY_WHEREAMI=Težavnost -SING_DIFFICULTY_CONTINUE=k izbiri pesmi -SING_EASY=Enostavno -SING_MEDIUM=Srednje -SING_HARD=Težko - -SING_SONG_SELECTION_DESC=izberi svojo pesem -SING_SONG_SELECTION_WHEREAMI=Izbira pesmi -SING_SONG_SELECTION_GOTO=pojdi na... -SING_SONG_SELECTION=izbira pesmi -SING_SONG_SELECTION_MENU=meni -SING_SONG_SELECTION_PLAYLIST=seznam predvajanja +SING_SONG_SELECTION=Izbira pesmi +SING_SONG_SELECTION_MENU=Meni +SING_SONG_SELECTION_PLAYLIST=Seznam predvajanja SING_SONGS_IN_CAT=Pesmi +SING_SONG_IN_CAT=Pesem PLAYLIST_CATTEXT=Lista: %s +SING_SONG_SELECTION_LEGEND_TITLE=Legenda +SING_SONG_SELECTION_LEGEND_VIDEO=Video +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Duet -;TODO: SING_TIME=TIME -SING_TOTAL=skupaj +SING_TOTAL=Skupaj SING_MODE=Petje -SING_NOTES=note -SING_GOLDEN_NOTES=zlate note -SING_PHRASE_BONUS=bonus za vrstico +SING_NOTES=Note +SING_GOLDEN_NOTES=Zlate note +SING_PHRASE_BONUS=Bonus za vrstico SING_MENU=Glavni meni -SONG_SCORE=rezultat petja +SONG_SCORE=Rezultat petja SONG_SCORE_WHEREAMI=Rezultat SING_SCORE_TONE_DEAF=Gluhonem @@ -235,28 +333,26 @@ SING_SCORE_LEAD_SINGER=Vodilni pevec SING_SCORE_SUPERSTAR=Superzvezda SING_SCORE_ULTRASTAR=Ultrazvezda -SING_TOP_5_CHARTS=najboljših 5 pevcev -SING_TOP_5_CHARTS_WHEREAMI=najboljših 5 -SING_TOP_5_CHARTS_CONTINUE=k izbiri pesmi +SING_TOP_5_CHARTS=Najboljših 5 pevcev +SING_TOP_5_CHARTS_WHEREAMI=Najboljših 5 +SING_TOP_5_CHARTS_CONTINUE=K izbiri pesmi ;TODO: SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Switch difficulty -POPUP_PERFECT=popolno! -POPUP_AWESOME=odlicno! -POPUP_GREAT=zelo dobro! -POPUP_GOOD=dobro! -POPUP_NOTBAD=ni slabo! -POPUP_BAD=slabo! -POPUP_POOR=zelo slabo! -POPUP_AWFUL=obupno! +POPUP_PERFECT=Popolno! +POPUP_AWESOME=Odlicno! +POPUP_GREAT=Zelo dobro! +POPUP_GOOD=Dobro! +POPUP_NOTBAD=Ni slabo! +POPUP_BAD=Slabo! +POPUP_POOR=Zelo slabo! +POPUP_AWFUL=Obupno! IMPLODE_GLUE1=, IMPLODE_GLUE2= in -SONG_MENU_NAME_MAIN=meni pesmi +SONG_MENU_NAME_MAIN=Meni pesmi SONG_MENU_PLAY=Poj SONG_MENU_CHANGEPLAYERS=Spremeni igralca -SONG_MENU_EDIT=Uredi -SONG_MENU_MODI=Poj "a Modi" SONG_MENU_CANCEL=Preklici SONG_MENU_NAME_PLAYLIST=Meni Pesem @@ -264,8 +360,8 @@ SONG_MENU_PLAYLIST_ADD=Dodaj pesem SONG_MENU_PLAYLIST_DEL=Izbriši pesem SONG_MENU_NAME_PLAYLIST_ADD=Dodaj pesem -SONG_MENU_PLAYLIST_ADD_NEW=dodaj nov seznam -SONG_MENU_PLAYLIST_ADD_EXISTING=dodaj shranjen seznam +SONG_MENU_PLAYLIST_ADD_NEW=Dodaj nov seznam +SONG_MENU_PLAYLIST_ADD_EXISTING=Dodaj shranjen seznam SONG_MENU_PLAYLIST_NOEXISTING=Ni seznamov SONG_MENU_NAME_PLAYLIST_NEW=Nov seznam @@ -277,27 +373,20 @@ SONG_MENU_YES=Da SONG_MENU_NO=Ne SONG_MENU_NAME_PLAYLIST_LOAD=Odpri seznam -SONG_MENU_PLAYLIST_LOAD=odpri -SONG_MENU_PLAYLIST_DELCURRENT=izbriši trenuten seznam +SONG_MENU_PLAYLIST_LOAD=Odpri +SONG_MENU_PLAYLIST_DELCURRENT=Izbriši trenuten seznam SONG_MENU_NAME_PLAYLIST_DEL=Izbrišem seznam? SONG_MENU_NAME_PARTY_MAIN=Meni Zabava SONG_MENU_JOKER=Joker -SONG_MENU_NAME_PARTY_JOKER=izkoristi jokerja +SONG_MENU_NAME_PARTY_JOKER=Izkoristi jokerja -SONG_JUMPTO_DESC=poišci pesem +SONG_JUMPTO_DESC=Poišci pesem SONG_JUMPTO_TYPE_DESC=Isci po: -SONG_JUMPTO_TYPE1=Vse -SONG_JUMPTO_TYPE2=Naslov -SONG_JUMPTO_TYPE3=Avtor -SONG_JUMPTO_SONGSFOUND=%d pesmi najdenih -SONG_JUMPTO_NOSONGSFOUND=Ne najdem -SONG_JUMPTO_HELP=Vpiši besedilo za iskanje -SONG_JUMPTO_CATTEXT=Išci po: %s - -PARTY_MODE=zabava + +PARTY_MODE=Zabava PARTY_DIFFICULTY=Težavnost PARTY_PLAYLIST=Izbor PARTY_PLAYLIST_ALL=Vse pesmi @@ -308,46 +397,43 @@ PARTY_TEAMS_PLAYER1=Igralec Ekipa1 PARTY_TEAMS_PLAYER2=Igralec Ekipa2 PARTY_TEAMS_PLAYER3=Igralec Ekipa3 -PARTY_LEGEND_CONTINUE=nadaljuj - -PARTY_OPTIONS_DESC=nastavitve za nacin zabave -PARTY_OPTIONS_WHEREAMI=nastavitve zabave +PARTY_LEGEND_CONTINUE=Nadaljuj -PARTY_PLAYER_DESC=vpiši igralce in imena ekip! -PARTY_PLAYER_WHEREAMI=Imena -PARTY_PLAYER_ENTER_NAME=vpiši imena +PARTY_OPTIONS_DESC=Nastavitve za nacin zabave +PARTY_OPTIONS_WHEREAMI=Nastavitve zabave +PARTY_PLAYER_ENTER_NAME=Vpiši imena -;TODO: PARTY_ROUNDS_DESC=Select which modes you want to play -;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds -PARTY_ROUNDS_LEGEND_CONTINUE=zacni zabavo +PARTY_ROUNDS_LEGEND_CONTINUE=Zacni zabavo ;TODO: PARTY_ROUNDCOUNT=Number of rounds ;TODO: PARTY_SELECTMODE=Round %d -PARTY_ROUND_DESC=naslednji igralec k mikrofonu -PARTY_ROUND_WHEREAMI=Naslednja runda -PARTY_ROUND_LEGEND_CONTINUE=zacni rundo +PARTY_ROUND_LEGEND_CONTINUE=Zacni rundo PARTY_SONG_WHEREAMI=Izbor pesmi - Zabava -PARTY_SONG_LEGEND_CONTINUE=poj -PARTY_SONG_MENU=meni Zabava +PARTY_SONG_LEGEND_CONTINUE=Poj +PARTY_SONG_MENU=Meni Zabava -PARTY_SCORE_DESC=tocke zadnje runde +OPTION_VALUE_SING=Poj +OPTION_VALUE_SELECT_PLAYERS=Izberite igralce +OPTION_VALUE_OPEN_MENU=Odpri meni + +PARTY_SCORE_DESC=Tocke zadnje runde PARTY_SCORE_WHEREAMI=Tocke v zabavi PARTY_WIN_DESC=Zmagovalec PARTY_WIN_WHEREAMI=Zmagovalec -PARTY_WIN_LEGEND_CONTINUE=nazaj k glavnemu meniju +PARTY_WIN_LEGEND_CONTINUE=Nazaj k glavnemu meniju PARTY_ROUND=Runda PARTY_ROUND_WINNER=Zmagovalec -PARTY_NOTPLAYEDYET=neizvedeno -PARTY_NOBODY=nobeden +PARTY_NOTPLAYEDYET=Neizvedeno +PARTY_NOBODY=Nobeden NEXT_ROUND=Naslednja runda: PARTY_DISMISSED=Zakljucena! PARTY_SCORE_WINS=%s -PARTY_SCORE_WINS2=zmaga! +PARTY_SCORE_WINS2=Zmaga! ;TODO: MODE_RANDOM_NAME=Random Mode ;TODO: MODE_RANDOM_DESC=Keep yourself on your toes! The game will select a mode for you at random! @@ -407,8 +493,6 @@ MODE_BLIND_NAME=Slepi dvoboj ;TODO: MODE_HARDCORE_DESC=Battle for a three-line lead on your opponent! STAT_MAIN=Statika -STAT_MAIN_DESC=Splošno -STAT_MAIN_WHEREAMI=Statistika STAT_OVERVIEW_INTRO=%0:s Statistika. \n Nazadnje ponastavljeno %2:.2d.%1:.2d.%3:d STAT_OVERVIEW_SONG=%0:d Pesmi(%3:d z videom), od katerih je bilo %1:d že zapetih in %2:d ne.\n Najbolj priljubljena pesem je %5:s od %4:s. @@ -422,7 +506,7 @@ STAT_DETAIL_WHEREAMI=Podrobna statistika STAT_NEXT=Naslednja stran STAT_PREV=Prejšnja stran STAT_REVERSE=Obratni vrstni red -STAT_PAGE=Stran %0:d od %1:d strani\n (%2:d od %3:d zapisov) +STAT_PAGE=Stran %0:d od %1:d \n Zapisov %2:d od %3:d STAT_DESC_SCORES=Najboljši rezultati STAT_DESC_SCORES_REVERSED=Najslabši rezultati @@ -440,119 +524,12 @@ STAT_DESC_BANDS=Najbolj popularen izvajalec STAT_DESC_BANDS_REVERSED=Najmanj popularen izvajalec STAT_FORMAT_BANDS=%0:s \n %1:dx igrano -;TODO: SCREENSHOT_SAVED=Screenshot saved -;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot - -;TODO: INFO_FILE_SAVED=File saved -;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file -;TODO: ERROR_FILE_NOT_FOUND=File not found - -;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? -;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected - -MSG_ERROR_TITLE=Napaka -;TODO: MSG_INFO_TITLE=Information -MSG_QUESTION_TITLE=Vprašanje -MSG_QUIT_USDX=Želite zapustiti Ultrastar? -MSG_END_PARTY=Koncam zabavo? - -ERROR_NO_SONGS=Ni pesmi: Naloži jih v mapo Songs -ERROR_NO_PLUGINS=Ni vkljuckov -;TODO: ERROR_NO_MODES_FOR_CURRENT_SETUP=No modes available for current player/team setup -;TODO: ERROR_CAN_NOT_START_PARTY=An error occurred starting the party game -ERROR_CORRUPT_SONG=Ne morem naložiti pesmi. -ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Ne morem naložiti pesmi: Ne najdem datoteke -ERROR_CORRUPT_SONG_NO_NOTES=Ne morem naloziti pesmi: Ne najdem not. -ERROR_CORRUPT_SONG_NO_BREAKS=Ne morem naložiti pesmi: Ne najdem prelomov vrstic. -ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Ne morem naložiti pesmi: Napaka v parsanju vrstice %0:d -;TODO: ERROR_NO_EDITOR=This feature is not available on this version. -;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options -;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options - -;TODO: SING_OPTIONS_NETWORK=Internet -;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options -;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings -;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... -;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password -;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name -;TODO: SING_OPTIONS_NETWORK_AUTO_MODE=Auto -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) -;TODO: SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! -;TODO: SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? -;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert -;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete - -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 -OPTION_ALL_PLAYERS=Vse -OPTION_ALL_SCORES=Vse -;TODO: OPTION_VALUE_SAVE=Save -;TODO: OPTION_VALUE_SEND=Send - -;TODO: MSG_INSERT_USER_TITLE=%0:s -;TODO: MSG_INSERT_USER_DESC=Fill the fields: -;TODO: MSG_INSERT_USER_ADD=Add -MSG_INSERT_USER_CANCEL=Preklici - -;TODO: WEBSITE_NO_CONNECTION=No website connection! -;TODO: WEBSITE_LOGIN_ERROR=Login Incorrect! -;TODO: WEBSITE_BLANK_LOGIN=There are blank fields! -;TODO: WEBSITE_EXIST_USER=Existing user! -;TODO: WEBSITE_ERROR_SCORE=Scoring Error! -;TODO: WEBSITE_OK_SEND=Score sent successfully! -;TODO: WEBSITE_ERROR_SCORE_DUPLICATED=Existing Score! -;TODO: WEBSITE_ERROR_SONG=Song Not Found! -;TODO: WEBSITE_SAVE_SCORE=Score save successfully! -;TODO: WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? - -;TODO: SONG_MENU_REFRESH_SCORES=Update Scores -;TODO: SONG_MENU_REFRESH_SCORES_TITLE=Update -;TODO: SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! -;TODO: SONG_MENU_REFRESH_SCORES_ONLINE=Online -;TODO: SONG_MENU_REFRESH_SCORES_FILE=File -;TODO: SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites -;TODO: SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs -;TODO: SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song -;TODO: SONG_MENU_REFRESH_SCORES_REFRESH=Update -;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! -;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! - -;TODO: SONG_SCORE_MAX=Best: -;TODO: SONG_SCORE_MEDIA=Average: - -;TODO: SCORE_SEND_DESC=Send Score -;TODO: SCORE_SEND=Send -;TODO: SCORE_SEND_PLAYER=Player -;TODO: SCORE_SEND_OTHER_USER= Other Username -;TODO: SCORE_SAVE=Save - -;TODO: SCORE_DOWNLOAD_TITLE=Download -;TODO: SCORE_DOWNLOAD_SONG=Song: -;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... -;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... -SCORE_DOWNLOAD_CANCEL=Preklici -;TODO: SCORE_DOWNLOAD_OK=OK -;TODO: SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! - -;TODO: SING_OPTIONS_GAME_SHOWSCORES=Show Scores -;TODO: OPTION_VALUE_WHEN_EXISTS=When Exists - ;TODO: PARTY_SELECT_MODE=Mode ;TODO: PARTY_MODE_CLASSIC=Classic ;TODO: PARTY_MODE_CLASSIC_FREE=Classic Free ;TODO: PARTY_MODE_CHALLENGE=Challenge ;TODO: PARTY_MODE_TOURNAMENT=Tournament ;TODO: PARTY_MODE_JUKEBOX=Jukebox -;TODO: PARTY_MODE_NOT_AVAILABLE=Not Available! ;TODO: PARTY_MODE_TOURNAMENT_PLAYER_DESC=Insert number and players name ;TODO: PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Number of Players @@ -561,43 +538,10 @@ SCORE_DOWNLOAD_CANCEL=Preklici ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Semifinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Quarterfinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL=Round of 16 -PARTY_MODE_TOURNAMENT_ROUNDS_DESC=naslednji igralec k mikrofonu +PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Naslednji igralec k mikrofonu ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -;TODO: INFO_FILE_SAVED=File saved -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - -;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! -;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! - ;TODO: MSG_END_JUKEBOX=Do you want leave Jukebox Mode? ;TODO: JUKEBOX_RANDOM=Random ;TODO: JUKEBOX_REPEAT=Repeat @@ -609,8 +553,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=naslednji igralec k mikrofonu ;TODO: SONG_MENU_SONG=Song ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Meni Pesem ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -626,33 +568,6 @@ SONG_MENU_SORTING_ALL=Vse ;TODO: SONG_MENU_SORTING_DUET=Duets ;TODO: SONG_MENU_SORTING_APPLY=Apply -;TODO: SING_OPTIONS_WEBCAM=Webcam -;TODO: SING_OPTIONS_WEBCAM_DESC=Webcam Settings -;TODO: SING_OPTIONS_WEBCAM_WHEREAMI=Webcam Options -;TODO: SING_OPTIONS_WEBCAM_ID=Webcam -SING_OPTIONS_WEBCAM_RESOLUTION=Locljivost -;TODO: SING_OPTIONS_WEBCAM_FPS=FPS -;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! -;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip -SING_OPTIONS_WEBCAM_EFFECT=Ucinek -;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation -;TODO: SING_OPTIONS_WEBCAM_HUE=Hue -;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview -;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview - -;TODO: SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal -;TODO: SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Grayscale -;TODO: SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Black & White -;TODO: SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negative -;TODO: SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image -;TODO: SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate -SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Prag -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges -;TODO: SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized -;TODO: SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode - ;TODO: PARTY_PLAYLIST_MANUAL=Manual Selection ;TODO: PARTY_MODE_JUKEBOX_NO_SONGS=Playlist is empty! ;TODO: SONG_MENU_OPEN_CATEGORY=Open category @@ -666,58 +581,6 @@ SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Prag ;TODO: NAME_PLAYERS_COUNT=Number of Players ;TODO: NAME_CURRENT_PLAYER=Player -SING_OPTIONS_GAME_SONGMENU=Meni Pesem -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List -;TODO: OPTION_VALUE_MOSAIC=Tile - -;TODO: SING_OPTIONS_JUKEBOX=Jukebox -;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox -;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options - -OPTION_VALUE_TO_SING=poj -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next -;TODO: OPTION_VALUE_OTHER=Other -;TODO: OPTION_VALUE_FILL=Fill -;TODO: OPTION_VALUE_OUTLINE=Outline -;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -;TODO: OPTION_VALUE_SALMON=Salmon -;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige -;TODO: OPTION_VALUE_TEAL=Teal -;TODO: OPTION_VALUE_ORCHID=Orchid -;TODO: OPTION_VALUE_STEELBLUE=Steel Blue -;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold -;TODO: OPTION_VALUE_DARKBLUE=Dark Blue -;TODO: OPTION_VALUE_SKY=Sky -;TODO: OPTION_VALUE_HARLEQUIN=Harlequin -;TODO: OPTION_VALUE_CYAN=Cyan -;TODO: OPTION_VALUE_FLAME=Flame - -;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height -;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha -JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Barva -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Red -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Green -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blue - ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=LetterBox @@ -727,24 +590,37 @@ JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Barva ;TODO: JUKEBOX_SONGOPTIONS_DEFAULT=Default ;TODO: JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Saved! -;TODO: SING_SONG_CREDITS=Credits -;TODO: SING_JUKEBOX=Jukebox -;TODO: SING_JUKEBOX_DESC=Listen to my collection ;TODO: JUKEBOX_MODE=Jukebox Mode -;TODO: JUKEBOX_OPTIONS_DESC=Playlist Options -;TODO: JUKEBOX_OPTIONS_WHEREAMI=Jukebox Options JUKEBOX_OPTIONS_PLAYLIST=Seznam ;TODO: JUKEBOX_OPTIONS_PLAYLIST_MODE=Mode -;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing -;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores -OPTION_VALUE_ALL=Vse -;TODO: OPTION_VALUE_PLAYER=Player - -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +ABOUT_MAIN=O... +;TODO: ABOUT_USDX_DEVELOPEDBY=Developed by +;TODO: ABOUT_CHECK_CHECKING=Checking for new updates... +;TODO: ABOUT_CHECK_AVAILABLE=There is a new version available +;TODO: ABOUT_CHECK_UPTODATE=WorldParty is up to date +;TODO: ABOUT_CHECK_CONNECTION=There is no Internet connection +ABOUT_OVERVIEW=Odkrijte nov način petja, samega, v paru ali s prijatelji. \n Zabava je zajamčena.\n\nWorldParty je fork originalne verzije Ultrastar Deluxe 1.1 ki ga je razvila in izdelala ekipa UltraStar España, šteje pri največji skupini karaoke.\n\n\nTa program je brezplačen in libre pod licenco GPL. \n\n Obiščite nas za več informacij.\n\nhttps://ultrastar-es.org + +;TODO: DEVELOPERS_TITLE=Developed by +DEVELOPERS_OVERVIEW=Ljudje, ki so prispevali k temu projektu:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Obiščite nas za več informacij.\n\nhttps://ultrastar-es.org + +;TODO: SCREENSHOT_SAVED=Screenshot saved +;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot + +MSG_ERROR_TITLE=Napaka +;TODO: MSG_INFO_TITLE=Information +MSG_QUESTION_TITLE=Vprašanje +MSG_QUIT_USDX=Želite zapustiti Ultrastar? +MSG_END_PARTY=Koncam zabavo? + +ERROR_NO_SONGS=Ni pesmi: Naloži jih v mapo Songs +ERROR_NO_PLUGINS=Ni vkljuckov +ERROR_LOADING_SONGS=Wait for loading all the songs +ERROR_CORRUPT_SONG=Ne morem naložiti pesmi. +ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Ne morem naložiti pesmi: Ne najdem datoteke +ERROR_CORRUPT_SONG_NO_NOTES=Ne morem naloziti pesmi: Ne najdem not. +ERROR_CORRUPT_SONG_NO_BREAKS=Ne morem naložiti pesmi: Ne najdem prelomov vrstic. +ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Ne morem naložiti pesmi: Napaka v parsanju vrstice %0:d +ERROR_PLAYER_DEVICE_ASSIGNMENT=Igralec %d je dodeljena več mikrofonom. Preverite možnosti mikrofona +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Igralec %d ni dodeljen mikrofonu. Preverite možnosti mikrofona \ No newline at end of file diff --git a/game/languages/Suomi.ini b/game/languages/Suomi.ini index 15fb7d2c..623a8b95 100644 --- a/game/languages/Suomi.ini +++ b/game/languages/Suomi.ini @@ -16,14 +16,14 @@ OPTION_VALUE_TITLE=Nimi OPTION_VALUE_ARTIST=Artisti OPTION_VALUE_TITLE2=Nimi2 OPTION_VALUE_ARTIST2=Artisti2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade +OPTION_VALUE_YEAR=Vuosi +OPTION_VALUE_DECADE=Vuosikymmen OPTION_VALUE_PLAYLIST=Kappalelista -;TODO: OPTION_VALUE_BORDERLESS=Borderless +OPTION_VALUE_BORDERLESS=Reunuksettomat OPTION_VALUE_WHENNOVIDEO=Kun ei videota -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Kun ei ole videota ja kuvaa OPTION_VALUE_SMALL=Pieni OPTION_VALUE_BIG=Iso @@ -40,9 +40,9 @@ OPTION_VALUE_AUTO=Auto OPTION_VALUE_SEC=Sekunti OPTION_VALUE_SECS=Sekuntia -OPTION_VALUE_PLAIN=Perus -OPTION_VALUE_OLINE1=OLine1 -OPTION_VALUE_OLINE2=OLine2 +OPTION_VALUE_PLAIN=Tyylitelty +OPTION_VALUE_OLINE1=Ohut reuna +OPTION_VALUE_OLINE2=Paksu reuna OPTION_VALUE_SIMPLE=Yksinkertainen OPTION_VALUE_ZOOM=Zoom @@ -68,12 +68,8 @@ OPTION_VALUE_SING=Laula OPTION_VALUE_SELECT_PLAYERS=Valitse pelaajat OPTION_VALUE_OPEN_MENU=Avaa valikko -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor -OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor - SING_LOADING=Moikkamoi! Tää systeemi niinku lataa... +SING_LOADING_SONGS=Ladataan kappaleita %s SING_CHOOSE_MODE=Valitse moodi SING_SING=Laula @@ -87,9 +83,6 @@ SING_TOOLS=Työkalut SING_STATS=Tilastot SING_STATS_DESC=Katso tilastoja -SING_EDITOR=Editori -SING_EDITOR_DESC=Luo uusia kappaleita peliin - SING_GAME_OPTIONS=Peliasetukset SING_GAME_OPTIONS_DESC=Muuta pelin asetuksia @@ -103,10 +96,9 @@ SING_OPTIONS_WHEREAMI=Asetukset SING_OPTIONS_GAME=Peli SING_OPTIONS_GRAPHICS=Kuva SING_OPTIONS_SOUND=Äänet -;TODO: SING_OPTIONS_INPUT=Input SING_OPTIONS_LYRICS=Lyriikat SING_OPTIONS_THEMES=Teemat -SING_OPTIONS_RECORD=Mikrofonit +SING_OPTIONS_MICROPHONES=Mikrofonit SING_OPTIONS_ADVANCED=Erikoiset SING_OPTIONS_EXIT=Takaisin @@ -117,15 +109,16 @@ SING_OPTIONS_GAME_DIFFICULTY=Vaikeustaso SING_OPTIONS_GAME_LANGUAGE=Kieli SING_OPTIONS_GAME_TABS=Välilehdet SING_OPTIONS_GAME_SORTING=Järjestys -SING_OPTIONS_GAME_DEBUG=Virheentunnistus +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Aktivoi peliohjain SING_OPTIONS_GRAPHICS_WHEREAMI=Kuva-asetukset SING_OPTIONS_GRAPHICS_DESC=Kuva-asetukset SING_OPTIONS_GRAPHICS_RESOLUTION=Resoluutio SING_OPTIONS_GRAPHICS_FULLSCREEN=Kokoruutu -SING_OPTIONS_GRAPHICS_DEPTH=Syvyys +SING_OPTIONS_GRAPHICS_EFFECTSING=Laulun efektit +SING_OPTIONS_GRAPHICS_SCREENFADE=Kuvan feidaus +SING_OPTIONS_GRAPHICS_LOADANIMATION=Animaatiot SING_OPTIONS_GRAPHICS_VISUALIZER=Visualisointi -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Ääniaallokko SING_OPTIONS_GRAPHICS_LINEBONUS=Rivibonus SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Videon koko @@ -133,20 +126,13 @@ SING_OPTIONS_SOUND_WHEREAMI=Ääniasetukset SING_OPTIONS_SOUND_DESC=Ääniasetukset SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Laulusi kuuluu kaittimista SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Tausta musiikki -SING_OPTIONS_SOUND_MIC_BOOST=Mikkiboosti SING_OPTIONS_SOUND_CLICK_ASSIST=Klikkausapuri SING_OPTIONS_SOUND_BEAT_CLICK=Biitti klikkaaja -SING_OPTIONS_SOUND_THRESHOLD=Aloituspiste SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Kaksinpelimoodi ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Esikatselutaso SING_OPTIONS_SOUND_PREVIEWFADING=Esikatselufeidaus -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - SING_OPTIONS_LYRICS_WHEREAMI=Sanoitusasetukset SING_OPTIONS_LYRICS_DESC=Sanoitusasetukset SING_OPTIONS_LYRICS_FONT=Fontti @@ -160,43 +146,36 @@ SING_OPTIONS_THEMES_THEME=Teema SING_OPTIONS_THEMES_SKIN=Tyyli SING_OPTIONS_THEMES_COLOR=Väri -SING_OPTIONS_RECORD_WHEREAMI=Mikrofoniasetukset -SING_OPTIONS_RECORD_DESC=Määritä mikrofonit -SING_OPTIONS_RECORD_CARD=Äänikortti -SING_OPTIONS_RECORD_INPUT=Tulo -SING_OPTIONS_RECORD_CHANNEL=Kanava +SING_OPTIONS_MICROPHONES_WHEREAMI=Mikrofoniasetukset +SING_OPTIONS_MICROPHONES_DESC=Määritä mikrofonit +SING_OPTIONS_MICROPHONES_CARD=Äänikortti +SING_OPTIONS_MICROPHONES_INPUT=Tulo +SING_OPTIONS_MICROPHONES_CHANNEL=Kanava +SING_OPTIONS_MICROPHONES_THRESHOLD=Aloituspiste +SING_OPTIONS_MICROPHONES_MIC_BOOST=Mikkiboosti SING_OPTIONS_ADVANCED_WHEREAMI=Erikoisasetukset SING_OPTIONS_ADVANCED_DESC=Erikoisasetukset -SING_OPTIONS_ADVANCED_EFFECTSING=Laulun efektit -SING_OPTIONS_ADVANCED_SCREENFADE=Kuvan feidaus -SING_OPTIONS_ADVANCED_LOADANIMATION=Animaatiot +SING_OPTIONS_ADVANCED_DEBUG=Virheentunnistus +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Ääniaallokko SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Turvakyselyt SING_OPTIONS_ADVANCED_LINEBONUS=Rivibonus -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=Kappaleen valinnan jälkeen SING_OPTIONS_ADVANCED_PARTYPOPUP=Automaattinen tiimipeli -SING_EDIT=Editori -SING_EDIT_MENU_DESCRIPTION=Luo oma laulusi - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Tuo teksti midi- tiedostosta -SING_EDIT_BUTTON_DESCRIPTION_EXIT=Takaisin -SING_EDIT_BUTTON_CONVERT=Tuo -SING_EDIT_BUTTON_EXIT=Takaisin - -SING_EDIT_NAVIGATE=Liiku -SING_EDIT_SELECT=Valitse -SING_EDIT_EXIT=Takaisin - SING_LEGEND_SELECT=Valitse SING_LEGEND_NAVIGATE=Selaa SING_LEGEND_CONTINUE=Eteenpäin SING_LEGEND_ESC=Takaisin -SING_PLAYER_DESC=Kirjoita pelinimet -SING_PLAYER_WHEREAMI=Pelinimet -SING_PLAYER_ENTER_NAME=Kirjoita nimi +SING_PLAYER_TITLE=Profiilit +SING_PLAYER_READY=Pelaajat valmiina laulamaan +SING_PLAYER_COUNT=Pelaajien lukumäärä +SING_PLAYER_EDIT=Muokkaa soitinta +SING_PLAYER_NAME=Kirjoita nimesi +SING_PLAYER_COLOR=Valitse väri +SING_PLAYER_LEVEL=Valitse taso +SING_PLAYER_AVATAR=Valitse avatar SING_DIFFICULTY_DESC=Valitse vaikeustaso SING_DIFFICULTY_WHEREAMI=Vaikeustaso @@ -211,10 +190,15 @@ SING_SONG_SELECTION_GOTO=Siirry... SING_SONG_SELECTION=Kappale SING_SONG_SELECTION_MENU=Valikko SING_SONG_SELECTION_PLAYLIST=Kappalelista +SING_SONG_IN_CAT=Laulu SING_SONGS_IN_CAT=Kappaletta PLAYLIST_CATTEXT=Kappalelista: %s +SING_SONG_SELECTION_LEGEND_TITLE=Legenda +SING_SONG_SELECTION_LEGEND_VIDEO=Video +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Duetto -;TODO: SING_TIME=TIME SING_TOTAL=Pisteesi SING_MODE=Soololaulu SING_NOTES=Nuotilleen @@ -255,7 +239,6 @@ IMPLODE_GLUE2= ja SONG_MENU_NAME_MAIN=Kappalevalikko SONG_MENU_PLAY=Laula SONG_MENU_CHANGEPLAYERS=Vaihda pelinimeä -SONG_MENU_EDIT=Muokkaa SONG_MENU_MODI=Laula modi SONG_MENU_CANCEL=Peruuta @@ -358,19 +341,19 @@ MODE_RANDOM_NAME=Satunnaismoodi ;TODO: MODE_HOLDTHELINEBLIND_NAME=Hold the Blind ;TODO: MODE_HOLDTHELINEBLIND_DESC=Keep your rating above the line for the longest, but with the notes hidden! -;TODO: MODE_7000POINTS_NAME=Until 7000 +MODE_7000POINTS_NAME=Asti 7000 ;TODO: MODE_7000POINTS_DESC=Race to 7000 Points! ;TODO: MODE_7000POINTSBLIND_NAME=Blind 7000 ;TODO: MODE_7000POINTSBLIND_DESC=Race to 7000 points, but without seeing the notes! -MODE_5000POINTS_NAME=♥5000♥ +MODE_5000POINTS_NAME=Asti 5000 ;TODO: MODE_5000POINTS_DESC=Race to 5000 Points! ;TODO: MODE_5000POINTSBLIND_NAME=Blind 5000 ;TODO: MODE_5000POINTSBLIND_DESC=Race to 5000 points, but without seeing the notes! -;TODO: MODE_2000POINTS_NAME=Until 2000 +MODE_2000POINTS_NAME=Asti 2000 ;TODO: MODE_2000POINTS_DESC=Race to 2000 Points! ;TODO: MODE_2000POINTSBLIND_NAME=Blind 2000 @@ -422,7 +405,7 @@ STAT_DETAIL_WHEREAMI=Tarkat tilastot STAT_NEXT=Seuraava sivu STAT_PREV=Edellinen sivu STAT_REVERSE=Käänteinen järjestys -STAT_PAGE=Seite %0:d of %1:d Pages\n (%2:d of %3:d Entrys) +STAT_PAGE=Seite %0:d of %1:d \n %2:d of %3:d STAT_DESC_SCORES=Korkeimmat pisteet STAT_DESC_SCORES_REVERSED=Surikeimmat pisteet @@ -440,15 +423,14 @@ STAT_DESC_BANDS=Suosituimmat yhtyeet STAT_DESC_BANDS_REVERSED=Epäsuosituimmat yhtyeet STAT_FORMAT_BANDS=%0:s \n %1:dx Laulettu -SCREENSHOT_SAVED=Screenshot saved -SCREENSHOT_FAILED=Couldn''t save screenshot +;TODO: SCREENSHOT_SAVED=Screenshot saved +;TODO: SCREENSHOT_FAILED=Couldn''t save screenshot -INFO_FILE_SAVED=File saved -ERROR_SAVE_FILE_FAILED=Couldn''t save file -ERROR_FILE_NOT_FOUND=File not found +;TODO: INFO_FILE_SAVED=File saved +;TODO: ERROR_SAVE_FILE_FAILED=Couldn''t save file +;TODO: ERROR_FILE_NOT_FOUND=File not found -ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? -EDITOR_ERROR_NO_TRACK_SELECTED=No track selected +;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? MSG_ERROR_TITLE=Virhe MSG_INFO_TITLE=Informaatio @@ -465,20 +447,19 @@ ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Kappaletta ei voitu avata: Tiedostoa ei löyty ERROR_CORRUPT_SONG_NO_NOTES=Kappaletta ei voitu avata: Ei löytynyt yhtään nuottia ERROR_CORRUPT_SONG_NO_BREAKS=Kappaletta ei voitu avata: Ei löytynyt yhtään rivinvaihtoa ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Kappaletta ei voitu avata: Virhe jäsentäessä riviä %0:d -ERROR_NO_EDITOR=This feature is not available on this version. -ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options -ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphones. Please check your record options +;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Pelaaja %d is assigned to multiple microphones. Tarkista mikrofoniasetukset +;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Pelaaja %d is not assigned to a microphones. Tarkista mikrofoniasetukset -;TODO: SING_OPTIONS_NETWORK=Internet -;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options -;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings +SING_OPTIONS_NETWORK=Internet +SING_OPTIONS_NETWORK_WHEREAMI=Internet-asetukset +SING_OPTIONS_NETWORK_DESC=Internetin yleiset asetukset ;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... ;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password +SING_OPTIONS_NETWORK_USERNAME=Käyttäjätunnus +SING_OPTIONS_NETWORK_PASSWORD=Salasana ;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name SING_OPTIONS_NETWORK_AUTO_MODE=Auto -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player +SING_OPTIONS_NETWORK_AUTO_PLAYER=Pelaaja ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) @@ -487,18 +468,18 @@ SING_OPTIONS_NETWORK_AUTO_MODE=Auto ;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert ;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 +OPTION_PLAYER_1=Pelaaja 1 +OPTION_PLAYER_2=Pelaaja 2 +OPTION_PLAYER_3=Pelaaja 3 +OPTION_PLAYER_4=Pelaaja 4 +OPTION_PLAYER_5=Pelaaja 5 +OPTION_PLAYER_6=Pelaaja 6 OPTION_ALL_PLAYERS=Kaikki OPTION_ALL_SCORES=Kaikki ;TODO: OPTION_VALUE_SAVE=Save ;TODO: OPTION_VALUE_SEND=Send -;TODO: MSG_INSERT_USER_TITLE=%0:s +MSG_INSERT_USER_TITLE=%0:s ;TODO: MSG_INSERT_USER_DESC=Fill the fields: ;TODO: MSG_INSERT_USER_ADD=Add MSG_INSERT_USER_CANCEL=Peruuta @@ -526,17 +507,17 @@ MSG_INSERT_USER_CANCEL=Peruuta ;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! ;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! -;TODO: SONG_SCORE_MAX=Best: -;TODO: SONG_SCORE_MEDIA=Average: +SONG_SCORE_MAX=Parhaat: +SONG_SCORE_MEDIA=Keskiverto: ;TODO: SCORE_SEND_DESC=Send Score ;TODO: SCORE_SEND=Send -;TODO: SCORE_SEND_PLAYER=Player +SCORE_SEND_PLAYER=Pelaaja ;TODO: SCORE_SEND_OTHER_USER= Other Username ;TODO: SCORE_SAVE=Save ;TODO: SCORE_DOWNLOAD_TITLE=Download -;TODO: SCORE_DOWNLOAD_SONG=Song: +SCORE_DOWNLOAD_SONG=Laulu: ;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... ;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... SCORE_DOWNLOAD_CANCEL=Peruuta @@ -565,36 +546,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Seuraavat laulajat mikrofoneille ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -INFO_FILE_SAVED=File saved -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - ;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! ;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! @@ -609,8 +560,6 @@ INFO_FILE_SAVED=File saved ;TODO: SONG_MENU_SONG=Song ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Kappalelistavalikko ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -635,9 +584,10 @@ SING_OPTIONS_WEBCAM_RESOLUTION=Resoluutio ;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! ;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip SING_OPTIONS_WEBCAM_EFFECT=Tehoste -;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation +SING_OPTIONS_WEBCAM_BRIGHTNESS=Kirkkaus +SING_OPTIONS_WEBCAM_SATURATION=Kyllästys ;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +;TODO: SING_OPTIONS_WEBCAM_PREVIEW=Activate preview ;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview ;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview @@ -663,45 +613,45 @@ SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Aloituspiste ;TODO: WEBSITE_EXIST_SONG=The song belongs to the website: %0:s ;TODO: WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! -;TODO: NAME_PLAYERS_COUNT=Number of Players -;TODO: NAME_CURRENT_PLAYER=Player +NAME_PLAYERS_COUNT=Pelaajien määrä +NAME_CURRENT_PLAYER=Pelaaja SING_OPTIONS_GAME_SONGMENU=Kappalelistavalikko -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List -;TODO: OPTION_VALUE_MOSAIC=Tile +OPTION_VALUE_ROULETTE=Ruletti +OPTION_VALUE_CHESSBOARD=Shakkilauta +OPTION_VALUE_CAROUSEL=Karuselli +OPTION_VALUE_SLOT_MACHINE=Peliautomaatti +OPTION_VALUE_LIST=Lista +OPTION_VALUE_MOSAIC=Laatta ;TODO: SING_OPTIONS_JUKEBOX=Jukebox ;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox ;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options OPTION_VALUE_TO_SING=Laula -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next +OPTION_VALUE_ACTUAL=Ylempi +OPTION_VALUE_NEXT=Pohja ;TODO: OPTION_VALUE_OTHER=Other ;TODO: OPTION_VALUE_FILL=Fill ;TODO: OPTION_VALUE_OUTLINE=Outline -;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -;TODO: OPTION_VALUE_SALMON=Salmon -;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige -;TODO: OPTION_VALUE_TEAL=Teal -;TODO: OPTION_VALUE_ORCHID=Orchid -;TODO: OPTION_VALUE_STEELBLUE=Steel Blue -;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold -;TODO: OPTION_VALUE_DARKBLUE=Dark Blue -;TODO: OPTION_VALUE_SKY=Sky -;TODO: OPTION_VALUE_HARLEQUIN=Harlequin -;TODO: OPTION_VALUE_CYAN=Cyan -;TODO: OPTION_VALUE_FLAME=Flame +OPTION_VALUE_GRAY=Harmaa +OPTION_VALUE_WHITE=Valkoinen +OPTION_VALUE_TURQUOISE=Turkoosi +OPTION_VALUE_SALMON=Lohi +OPTION_VALUE_GREENYELLOW=Vihreä keltainen +OPTION_VALUE_LAVENDER=Laventeli +OPTION_VALUE_BEIGE=Beige +OPTION_VALUE_TEAL=Tavi +OPTION_VALUE_ORCHID=Orkidea +OPTION_VALUE_STEELBLUE=Terässininen +OPTION_VALUE_PLUM=Luumu +OPTION_VALUE_CHOCOLATE=Suklaa +OPTION_VALUE_GOLD=Kulta +OPTION_VALUE_DARKBLUE=Tummansininen +OPTION_VALUE_SKY=Taivas +OPTION_VALUE_HARLEQUIN=Harlekiini +OPTION_VALUE_CYAN=Syaani +OPTION_VALUE_FLAME=Liekki ;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect @@ -710,7 +660,7 @@ OPTION_VALUE_TO_SING=Laula ;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Läpinäkyvyys JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Väri ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property @@ -742,9 +692,14 @@ OPTION_VALUE_ALL=Kaikki ;TODO: OPTION_VALUE_PLAYER=Player ;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe +;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe WorldParty ;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +;TODO: ABOUT_USDX_DEVELOPEDBY=Developed by +;TODO: ABOUT_CHECK_CHECKING=Checking for new updates... +;TODO: ABOUT_CHECK_AVAILABLE=There is a new version available +;TODO: ABOUT_CHECK_UPTODATE=WorldParty is up to date +;TODO: ABOUT_CHECK_CONNECTION=There is no Internet connection +;TODO: ABOUT_OVERVIEW=Discover a new way of singing, alone, in couple, or with friends. \n Fun is guaranteed.\n\nWorldParty is a fork of the original version Ultrastar Deluxe 1.1 designed and developed by UltraStar España Team, it counts with the biggest karaoke community.\n\n\nThis program is free and libre under the GPL license. \n\n Visit us for more information.\n\nhttps://ultrastar-es.org + +;TODO: DEVELOPERS_TITLE=Developed by +;TODO: DEVELOPERS_OVERVIEW=People who has contributed to this project:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Visit us for more information.\n\nhttps://ultrastar-es.org diff --git a/game/languages/Svenska.ini b/game/languages/Svenska.ini index f6e60d95..152d8c89 100644 --- a/game/languages/Svenska.ini +++ b/game/languages/Svenska.ini @@ -16,14 +16,14 @@ OPTION_VALUE_TITLE=Titel OPTION_VALUE_ARTIST=Artist OPTION_VALUE_TITLE2=Titel2 OPTION_VALUE_ARTIST2=Artist2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade +OPTION_VALUE_YEAR=År +OPTION_VALUE_DECADE=Årtionde OPTION_VALUE_PLAYLIST=Spellista -;TODO: OPTION_VALUE_BORDERLESS=Borderless +OPTION_VALUE_BORDERLESS=Maximerad OPTION_VALUE_WHENNOVIDEO=När video saknas -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +OPTION_VALUE_WHENNOVIDEOANDIMAGE=När ingen video och bild OPTION_VALUE_SMALL=Liten OPTION_VALUE_BIG=Stor @@ -40,9 +40,9 @@ OPTION_VALUE_AUTO=Auto OPTION_VALUE_SEC=Sekund OPTION_VALUE_SECS=Sekunder -OPTION_VALUE_PLAIN=Slät -OPTION_VALUE_OLINE1=OLine1 -OPTION_VALUE_OLINE2=OLine2 +OPTION_VALUE_PLAIN=Stiliserade +OPTION_VALUE_OLINE1=Med tunn kant +OPTION_VALUE_OLINE2=Med tjock kant OPTION_VALUE_SIMPLE=Enkel OPTION_VALUE_ZOOM=Zoom @@ -68,12 +68,8 @@ OPTION_VALUE_SING=Sjung OPTION_VALUE_SELECT_PLAYERS=Välj spelare OPTION_VALUE_OPEN_MENU=Öppna meny -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -OPTION_VALUE_HARDWARE_CURSOR=Systempekare -OPTION_VALUE_SOFTWARE_CURSOR=Programpekare - SING_LOADING=Läser in... +SING_LOADING_SONGS=Läser in låtar från mapp %s SING_CHOOSE_MODE=Välj läge SING_SING=Sjung @@ -87,9 +83,6 @@ SING_TOOLS=Verktyg SING_STATS=Statistik SING_STATS_DESC=Kolla statistiken -SING_EDITOR=Editor -SING_EDITOR_DESC=Skapa din egen låt - SING_GAME_OPTIONS=Spelinställningar SING_GAME_OPTIONS_DESC=Ändra spelets inställningar @@ -103,10 +96,9 @@ SING_OPTIONS_WHEREAMI=Inställningar SING_OPTIONS_GAME=Spel SING_OPTIONS_GRAPHICS=Grafik SING_OPTIONS_SOUND=Ljud -;TODO: SING_OPTIONS_INPUT=Input SING_OPTIONS_LYRICS=Text SING_OPTIONS_THEMES=Teman -SING_OPTIONS_RECORD=Inspelning +SING_OPTIONS_MICROPHONES=Inspelning SING_OPTIONS_ADVANCED=Avancerat SING_OPTIONS_EXIT=Tillbaka @@ -117,15 +109,16 @@ SING_OPTIONS_GAME_DIFFICULTY=Svårighetsnivå SING_OPTIONS_GAME_LANGUAGE=Språk SING_OPTIONS_GAME_TABS=Tabbar SING_OPTIONS_GAME_SORTING=Sortering -SING_OPTIONS_GAME_DEBUG=Debuggning +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Aktivera gamepad SING_OPTIONS_GRAPHICS_WHEREAMI=Inställningar Grafik SING_OPTIONS_GRAPHICS_DESC=Grafikinställningar SING_OPTIONS_GRAPHICS_RESOLUTION=Upplösning SING_OPTIONS_GRAPHICS_FULLSCREEN=Helskärm -SING_OPTIONS_GRAPHICS_DEPTH=Färgdjup +SING_OPTIONS_GRAPHICS_EFFECTSING=Sångeffekter +SING_OPTIONS_GRAPHICS_SCREENFADE=Skärmtoning +SING_OPTIONS_GRAPHICS_LOADANIMATION=Inläsningsanimation SING_OPTIONS_GRAPHICS_VISUALIZER=Visualisering -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Oscilloskop SING_OPTIONS_GRAPHICS_LINEBONUS=Radbonus SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Filmstorlek @@ -133,20 +126,13 @@ SING_OPTIONS_SOUND_WHEREAMI=Inställningar Ljud SING_OPTIONS_SOUND_DESC=Ljudinställningar SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Mikrofonuppspelning SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Bakgrundsmusik -SING_OPTIONS_SOUND_MIC_BOOST=Mikrofonförstärkning SING_OPTIONS_SOUND_CLICK_ASSIST=Hjälpljud SING_OPTIONS_SOUND_BEAT_CLICK=Taktljud -SING_OPTIONS_SOUND_THRESHOLD=Ljudtröskel SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Tvåspelarläge ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Volym i låtvalsmenyn SING_OPTIONS_SOUND_PREVIEWFADING=Toning i låtvalsmenyn -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - SING_OPTIONS_LYRICS_WHEREAMI=Inställningar Text SING_OPTIONS_LYRICS_DESC=Sångtextinställningar SING_OPTIONS_LYRICS_FONT=Typsnitt @@ -160,43 +146,36 @@ SING_OPTIONS_THEMES_THEME=Tema SING_OPTIONS_THEMES_SKIN=Utseende SING_OPTIONS_THEMES_COLOR=Färg -SING_OPTIONS_RECORD_WHEREAMI=Inställningar Inspelning -SING_OPTIONS_RECORD_DESC=Mikrofoninställningar -SING_OPTIONS_RECORD_CARD=Ljudkort -SING_OPTIONS_RECORD_INPUT=Ingång -SING_OPTIONS_RECORD_CHANNEL=Kanal +SING_OPTIONS_MICROPHONES_WHEREAMI=Inställningar Inspelning +SING_OPTIONS_MICROPHONES_DESC=Mikrofoninställningar +SING_OPTIONS_MICROPHONES_CARD=Ljudkort +SING_OPTIONS_MICROPHONES_INPUT=Ingång +SING_OPTIONS_MICROPHONES_CHANNEL=Kanal +SING_OPTIONS_MICROPHONES_THRESHOLD=Ljudtröskel +SING_OPTIONS_MICROPHONES_MIC_BOOST=Mikrofonförstärkning +SING_OPTIONS_ADVANCED_DEBUG=Debuggning +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Oscilloskop SING_OPTIONS_ADVANCED_WHEREAMI=Inställningar Avancerat SING_OPTIONS_ADVANCED_DESC=Avancerade inställningar -SING_OPTIONS_ADVANCED_EFFECTSING=Sångeffekter -SING_OPTIONS_ADVANCED_SCREENFADE=Skärmtoning -SING_OPTIONS_ADVANCED_LOADANIMATION=Inläsningsanimation SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Säkerhetsfråga SING_OPTIONS_ADVANCED_LINEBONUS=Radbonus -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=Vid låtval SING_OPTIONS_ADVANCED_PARTYPOPUP=Automatisk Partymeny -SING_EDIT=Editor -SING_EDIT_MENU_DESCRIPTION=Skapa din egen låt - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Importera text från MIDI-fil -SING_EDIT_BUTTON_DESCRIPTION_EXIT=Tillbaka -SING_EDIT_BUTTON_CONVERT=Importera -SING_EDIT_BUTTON_EXIT=Tillbaka - -SING_EDIT_NAVIGATE=Navigera -SING_EDIT_SELECT=Välj -SING_EDIT_EXIT=Tillbaka - SING_LEGEND_SELECT=Välj SING_LEGEND_NAVIGATE=Navigera SING_LEGEND_CONTINUE=Fortsätt SING_LEGEND_ESC=Tillbaka -SING_PLAYER_DESC=Skriv in spelarnamn -SING_PLAYER_WHEREAMI=Spelarnamn -SING_PLAYER_ENTER_NAME=Skriv namn +SING_PLAYER_TITLE=Profiler +SING_PLAYER_READY=Spelare redo att sjunga +SING_PLAYER_COUNT=Antal spelare +SING_PLAYER_EDIT=Anpassa en spelare +SING_PLAYER_NAME=Skriv ditt namn +SING_PLAYER_COLOR=Välj en färg +SING_PLAYER_LEVEL=Välj en nivå +SING_PLAYER_AVATAR=Välj din avatar SING_DIFFICULTY_DESC=Välj svårighetsgrad SING_DIFFICULTY_WHEREAMI=Svårighetsgrad @@ -211,10 +190,15 @@ SING_SONG_SELECTION_GOTO=Gå till... SING_SONG_SELECTION=Låtval SING_SONG_SELECTION_MENU=Meny SING_SONG_SELECTION_PLAYLIST=Spellista +SING_SONG_IN_CAT=Låt SING_SONGS_IN_CAT=Låtar PLAYLIST_CATTEXT=Spellista: %s +SING_SONG_SELECTION_LEGEND_TITLE=Legend +SING_SONG_SELECTION_LEGEND_VIDEO=Video +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Duett -;TODO: SING_TIME=TIME SING_TOTAL=Totalt SING_MODE=Sjung solo SING_NOTES=Noter @@ -255,7 +239,6 @@ IMPLODE_GLUE2= och SONG_MENU_NAME_MAIN=Låtmeny SONG_MENU_PLAY=Sjung SONG_MENU_CHANGEPLAYERS=Ändra spelare -SONG_MENU_EDIT=Redigera SONG_MENU_MODI=Sjung på ett sätt SONG_MENU_CANCEL=Ångra @@ -321,8 +304,8 @@ PARTY_PLAYER_ENTER_NAME=skriv namn ;TODO: PARTY_ROUNDS_DESC=Select which modes you want to play ;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds PARTY_ROUNDS_LEGEND_CONTINUE=starta partyspel -;TODO: PARTY_ROUNDCOUNT=Number of rounds -;TODO: PARTY_SELECTMODE=Round %d +PARTY_ROUNDCOUNT=Antal rundor +PARTY_SELECTMODE=Runda %d PARTY_ROUND_DESC=nästa spelare till mikrofonerna PARTY_ROUND_WHEREAMI=Party Nästa omgång @@ -358,22 +341,22 @@ MODE_HOLDTHELINE_NAME=Håll god ton ;TODO: MODE_HOLDTHELINEBLIND_NAME=Hold the Blind ;TODO: MODE_HOLDTHELINEBLIND_DESC=Keep your rating above the line for the longest, but with the notes hidden! -;TODO: MODE_7000POINTS_NAME=Until 7000 +MODE_7000POINTS_NAME=Fram till 7000 ;TODO: MODE_7000POINTS_DESC=Race to 7000 Points! -;TODO: MODE_7000POINTSBLIND_NAME=Blind 7000 +MODE_7000POINTSBLIND_NAME=Blind 7000 ;TODO: MODE_7000POINTSBLIND_DESC=Race to 7000 points, but without seeing the notes! MODE_5000POINTS_NAME=Till 5000 ;TODO: MODE_5000POINTS_DESC=Race to 5000 Points! -;TODO: MODE_5000POINTSBLIND_NAME=Blind 5000 +MODE_5000POINTSBLIND_NAME=Blind 5000 ;TODO: MODE_5000POINTSBLIND_DESC=Race to 5000 points, but without seeing the notes! -;TODO: MODE_2000POINTS_NAME=Until 2000 +MODE_2000POINTS_NAME=Fram till 2000 ;TODO: MODE_2000POINTS_DESC=Race to 2000 Points! -;TODO: MODE_2000POINTSBLIND_NAME=Blind 2000 +MODE_2000POINTSBLIND_NAME=Blind 2000 ;TODO: MODE_2000POINTSBLIND_DESC=Race to 2000 points, but without seeing the notes! MODE_DUEL_NAME=Duell @@ -388,7 +371,7 @@ MODE_BLIND_NAME=Blindläge ;TODO: MODE_BLINDTOTAL_NAME=Total Darkness! ;TODO: MODE_BLINDTOTAL_DESC=A duel, but with the notes and the lyrics hidden. Only for the brave! -;TODO: MODE_1000BLIND_NAME = +1000 Blind +MODE_1000BLIND_NAME = +1000 Blind ;TODO: MODE_1000BLIND_DESC = Gain a lead of more than 1000 points, but without seeing the notes! ;TODO: MODE_DEAF_NAME = Deaf @@ -397,7 +380,7 @@ MODE_BLIND_NAME=Blindläge ;TODO: MODE_BLINDLYRICS_NAME = No Lyrics ;TODO: MODE_BLINDLYRICS_DESC = Think you know all the lyrics? Sing with the lyrics hidden! -;TODO: MODE_500BLIND_NAME = +500 Blind +MODE_500BLIND_NAME = +500 Blind ;TODO: MODE_500BLIND_DESC = Gain a lead of more than 500 points, but without seeing the notes! ;TODO: MODE_SHORTSONG_NAME = Short Song @@ -422,7 +405,7 @@ STAT_DETAIL_WHEREAMI=Detaljerad statistik STAT_NEXT=Nästa sida STAT_PREV=Föregående sida STAT_REVERSE=Omvänd ordning -STAT_PAGE=Sida %0:d av %1:d sidor\n (%2:d av %3:d poster) +STAT_PAGE=Sida %0:d av %1:d sidor \n %2:d av %3:d Poster STAT_DESC_SCORES=Högsta resultat STAT_DESC_SCORES_REVERSED=Lägsta resultat @@ -448,7 +431,6 @@ STAT_FORMAT_BANDS=%0:s \n %1:dx sjungna ;TODO: ERROR_FILE_NOT_FOUND=File not found ;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? -;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected MSG_ERROR_TITLE=Fel ;TODO: MSG_INFO_TITLE=Information @@ -465,34 +447,33 @@ ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Låten kunde inte laddas: Filen kunde inte hit ERROR_CORRUPT_SONG_NO_NOTES=Låten kunde inte laddas: Kan inte hitta toner ERROR_CORRUPT_SONG_NO_BREAKS=Låten kunde inte laddas: Kan inte hitta radbrytningar ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Låten kunde inte laddas: Fel på rad %0:d -;TODO: ERROR_NO_EDITOR=This feature is not available on this version. -;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options -;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options +ERROR_PLAYER_DEVICE_ASSIGNMENT=Spelare %d är tilldelad flera mikrofoner. Kontrollera dina mikrofonalternativ +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Spelare %d är inte tilldelad en mikrofon. Kontrollera dina mikrofonalternativ -;TODO: SING_OPTIONS_NETWORK=Internet -;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options -;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings +SING_OPTIONS_NETWORK=Internet +SING_OPTIONS_NETWORK_WHEREAMI=Internet-alternativ +SING_OPTIONS_NETWORK_DESC=Internet allmänna inställningar ;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... ;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password +SING_OPTIONS_NETWORK_USERNAME=Användarnamn +SING_OPTIONS_NETWORK_PASSWORD=Lösenord ;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name SING_OPTIONS_NETWORK_AUTO_MODE=Auto -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player +SING_OPTIONS_NETWORK_AUTO_PLAYER=Spelare ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) ;TODO: SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! ;TODO: SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? -;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert -;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete - -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 +SING_OPTIONS_NETWORK_LEGEND_INSERT=Föra in +SING_OPTIONS_NETWORK_LEGEND_DELETE=Radera + +OPTION_PLAYER_1=Spelare 1 +OPTION_PLAYER_2=Spelare 2 +OPTION_PLAYER_3=Spelare 3 +OPTION_PLAYER_4=Spelare 4 +OPTION_PLAYER_5=Spelare 5 +OPTION_PLAYER_6=Spelare 6 OPTION_ALL_PLAYERS=Alla OPTION_ALL_SCORES=Alla ;TODO: OPTION_VALUE_SAVE=Save @@ -526,17 +507,17 @@ MSG_INSERT_USER_CANCEL=Ångra ;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! ;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! -;TODO: SONG_SCORE_MAX=Best: -;TODO: SONG_SCORE_MEDIA=Average: +SONG_SCORE_MAX=Bäst: +SONG_SCORE_MEDIA=Genomsnitt: ;TODO: SCORE_SEND_DESC=Send Score ;TODO: SCORE_SEND=Send -;TODO: SCORE_SEND_PLAYER=Player +SCORE_SEND_PLAYER=Spelare ;TODO: SCORE_SEND_OTHER_USER= Other Username ;TODO: SCORE_SAVE=Save -;TODO: SCORE_DOWNLOAD_TITLE=Download -;TODO: SCORE_DOWNLOAD_SONG=Song: +SCORE_DOWNLOAD_TITLE=Ladda ner +SCORE_DOWNLOAD_SONG=Låt: ;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... ;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... SCORE_DOWNLOAD_CANCEL=Ångra @@ -555,9 +536,9 @@ SCORE_DOWNLOAD_CANCEL=Ångra ;TODO: PARTY_MODE_NOT_AVAILABLE=Not Available! ;TODO: PARTY_MODE_TOURNAMENT_PLAYER_DESC=Insert number and players name -;TODO: PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Number of Players -;TODO: PARTY_MODE_TOURNAMENT_OPTIONS_DESC=Number of rounds -;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_FINAL=Final +PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Antal spelare +PARTY_MODE_TOURNAMENT_OPTIONS_DESC=Antal rundor +PARTY_MODE_TOURNAMENT_ROUNDS_FINAL=Slutlig ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Semifinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Quarterfinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL=Round of 16 @@ -565,52 +546,20 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=nästa spelare till mikrofonerna ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -;TODO: INFO_FILE_SAVED=File saved -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - ;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! ;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! ;TODO: MSG_END_JUKEBOX=Do you want leave Jukebox Mode? -;TODO: JUKEBOX_RANDOM=Random -;TODO: JUKEBOX_REPEAT=Repeat -;TODO: JUKEBOX_FIND=Find: -;TODO: JUKEBOX_SORT=Sort: -;TODO: JUKEBOX_SONGLIST=List of Songs +JUKEBOX_RANDOM=Slumpmässig +JUKEBOX_REPEAT=Upprepa +JUKEBOX_FIND=Hitta: +JUKEBOX_SORT=Sortera: +JUKEBOX_SONGLIST=Lista över låtar ;TODO: SING_ERROR_DUET_MODE_PARTY = Duet! Not playable in Party Mode! -;TODO: SONG_MENU_SONG=Song +SONG_MENU_SONG=Låt ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Låtmeny ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -635,9 +584,10 @@ SING_OPTIONS_WEBCAM_RESOLUTION=Upplösning ;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! ;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip SING_OPTIONS_WEBCAM_EFFECT=Effekt -;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation +SING_OPTIONS_WEBCAM_BRIGHTNESS=Ljusstyrka +SING_OPTIONS_WEBCAM_SATURATION=Mättnad ;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +SING_OPTIONS_WEBCAM_PREVIEW=Aktivera förhandsgranskning ;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview ;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview @@ -663,67 +613,67 @@ SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Ljudtröskel ;TODO: WEBSITE_EXIST_SONG=The song belongs to the website: %0:s ;TODO: WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! -;TODO: NAME_PLAYERS_COUNT=Number of Players -;TODO: NAME_CURRENT_PLAYER=Player +NAME_PLAYERS_COUNT=Antal spelare +NAME_CURRENT_PLAYER=Spelare SING_OPTIONS_GAME_SONGMENU=Låtmeny -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List -;TODO: OPTION_VALUE_MOSAIC=Tile +OPTION_VALUE_ROULETTE=Roulett +OPTION_VALUE_CHESSBOARD=schackbräde +OPTION_VALUE_CAROUSEL=karusell +OPTION_VALUE_SLOT_MACHINE=Spelautomat +OPTION_VALUE_LIST=Lista +OPTION_VALUE_MOSAIC=Bricka ;TODO: SING_OPTIONS_JUKEBOX=Jukebox ;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox ;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options OPTION_VALUE_TO_SING=Sjung -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next +OPTION_VALUE_ACTUAL=Övre +OPTION_VALUE_NEXT=Botten ;TODO: OPTION_VALUE_OTHER=Other ;TODO: OPTION_VALUE_FILL=Fill ;TODO: OPTION_VALUE_OUTLINE=Outline -;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -;TODO: OPTION_VALUE_SALMON=Salmon -;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige -;TODO: OPTION_VALUE_TEAL=Teal -;TODO: OPTION_VALUE_ORCHID=Orchid -;TODO: OPTION_VALUE_STEELBLUE=Steel Blue -;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold -;TODO: OPTION_VALUE_DARKBLUE=Dark Blue -;TODO: OPTION_VALUE_SKY=Sky -;TODO: OPTION_VALUE_HARLEQUIN=Harlequin -;TODO: OPTION_VALUE_CYAN=Cyan -;TODO: OPTION_VALUE_FLAME=Flame - -;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height +OPTION_VALUE_GRAY=Grå +OPTION_VALUE_WHITE=Vit +OPTION_VALUE_TURQUOISE=Turkos +OPTION_VALUE_SALMON=Lax +OPTION_VALUE_GREENYELLOW=Grön gul +OPTION_VALUE_LAVENDER=Lavendel +OPTION_VALUE_BEIGE=Beige +OPTION_VALUE_TEAL=Kricka +OPTION_VALUE_ORCHID=Orkide +OPTION_VALUE_STEELBLUE=Stålblå +OPTION_VALUE_PLUM=Plommon +OPTION_VALUE_CHOCOLATE=Choklad +OPTION_VALUE_GOLD=Guld +OPTION_VALUE_DARKBLUE=Mörkblå +OPTION_VALUE_SKY=Himmel +OPTION_VALUE_HARLEQUIN=Harlekin +OPTION_VALUE_CYAN=Cyan +OPTION_VALUE_FLAME=Flamma + +JUKEBOX_SONGOPTIONS_VIDEO=Videoalternativ +JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspekt +JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Bredd +JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Höjd ;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size +JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Storlek ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Genomskinlighet JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Färg -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line +JUKEBOX_SONGOPTIONS_LYRIC_LINE=Linje ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Röd JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Grön JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blå -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop +JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Sträcka +JUKEBOX_SONGOPTIONS_VIDEO_CROP=Beskära ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=LetterBox ;TODO: JUKEBOX_SONGOPTIONS_SAVE=Save -;TODO: JUKEBOX_SONGOPTIONS_CLOSE=Close +JUKEBOX_SONGOPTIONS_CLOSE=Stänga ;TODO: JUKEBOX_SONGOPTIONS_DEFAULT=Default ;TODO: JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Saved! @@ -739,12 +689,17 @@ JUKEBOX_OPTIONS_PLAYLIST=Spellista ;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing ;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores OPTION_VALUE_ALL=Alla -;TODO: OPTION_VALUE_PLAYER=Player - -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +OPTION_VALUE_PLAYER=Spelare + +SING_ABOUT=Handla om +SING_ABOUT_DESC=Handla om Ultrastar Deluxe WorldParty +ABOUT_MAIN=Handla om... +ABOUT_USDX_DEVELOPEDBY=Utvecklad av +;TODO: ABOUT_CHECK_CHECKING=Checking for new updates... +;TODO: ABOUT_CHECK_AVAILABLE=There is a new version available +;TODO: ABOUT_CHECK_UPTODATE=WorldParty is up to date +;TODO: ABOUT_CHECK_CONNECTION=There is no Internet connection +ABOUT_OVERVIEW=Upptäck ett nytt sätt att sjunga, ensam, i par eller med vänner. \n Fun är garanterad.\n\nWorldParty är en fork av den ursprungliga versionen Ultrastar Deluxe 1.1 designad och utvecklad av UltraStar España-laget, räknas det med den största karaoke-gemenskapen.\n\n\nDetta program är gratis och libre under GPL-licensen. \n\n Besök oss för mer information.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Utvecklad av +DEVELOPERS_OVERVIEW=Personer som har bidragit till detta projekt:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Besök oss för mer information.\n\nhttps://ultrastar-es.org diff --git "a/game/languages/\303\215slenska.ini" "b/game/languages/\303\215slenska.ini" index 2617a008..bb9316b4 100644 --- "a/game/languages/\303\215slenska.ini" +++ "b/game/languages/\303\215slenska.ini" @@ -16,14 +16,14 @@ OPTION_VALUE_TITLE=Titill OPTION_VALUE_ARTIST=Flytjandi OPTION_VALUE_TITLE2=Titill2 OPTION_VALUE_ARTIST2=Flytjandi2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade +OPTION_VALUE_YEAR=Ár +OPTION_VALUE_DECADE=Áratugur OPTION_VALUE_PLAYLIST=Lagalisti -;TODO: OPTION_VALUE_BORDERLESS=Borderless +OPTION_VALUE_BORDERLESS=Landamæralaus OPTION_VALUE_WHENNOVIDEO=Þegar ekkert myndband -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Þegar engin myndband og mynd OPTION_VALUE_SMALL=Lítill OPTION_VALUE_BIG=Stór @@ -40,9 +40,9 @@ OPTION_VALUE_AUTO=Sjálfvirkt OPTION_VALUE_SEC=Sekúnda OPTION_VALUE_SECS=Sekúndur -OPTION_VALUE_PLAIN=Plain -OPTION_VALUE_OLINE1=OLine1 -OPTION_VALUE_OLINE2=OLine2 +;TODO: OPTION_VALUE_PLAIN=Stylized +;TODO: OPTION_VALUE_OLINE1=With thin edge +;TODO: OPTION_VALUE_OLINE2=With thick edge OPTION_VALUE_SIMPLE=Einfalt OPTION_VALUE_ZOOM=Zoom @@ -68,87 +68,73 @@ OPTION_VALUE_SING=Syngja OPTION_VALUE_SELECT_PLAYERS=Velja Leikmenn OPTION_VALUE_OPEN_MENU=Opna Valmynd -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -OPTION_VALUE_HARDWARE_CURSOR=Vélbúnaðarbendill -OPTION_VALUE_SOFTWARE_CURSOR=Hugbúnaðarbendill - SING_LOADING=Hleður... +SING_LOADING_SONGS=Hleður lög frá möppu %s -SING_CHOOSE_MODE=velja valmynd -SING_SING=syngja -SING_SING_DESC=stuttur leikur: syngja soló eða dúett - -SING_MULTI=partí -SING_MULTI_DESC=syngja með partí-sniði +SING_CHOOSE_MODE=Velja valmynd +SING_SING=Syngja +SING_SING_DESC=Stuttur leikur: syngja soló eða dúett -SING_TOOLS=tól +SING_MULTI=Partí +SING_MULTI_DESC=Syngja með partí-sniði -SING_STATS=tölfræði -SING_STATS_DESC=skoða tölfræði +SING_TOOLS=Tól -SING_EDITOR=lagasmiður -SING_EDITOR_DESC=búa til eigið lag +SING_STATS=Tölfræði +SING_STATS_DESC=Skoða tölfræði -SING_GAME_OPTIONS=leikstillingar -SING_GAME_OPTIONS_DESC=breyta leikstillingum +SING_GAME_OPTIONS=Leikstillingar +SING_GAME_OPTIONS_DESC=Breyta leikstillingum -SING_EXIT=hætta -SING_EXIT_DESC=hætta leik +SING_EXIT=Hætta +SING_EXIT_DESC=Hætta leik -SING_OPTIONS=stillingar -SING_OPTIONS_DESC=breyta stillingum +SING_OPTIONS=Stillingar +SING_OPTIONS_DESC=Breyta stillingum SING_OPTIONS_WHEREAMI=Stillingar -SING_OPTIONS_GAME=leikur -SING_OPTIONS_GRAPHICS=mynd -SING_OPTIONS_SOUND=hljóð -;TODO: SING_OPTIONS_INPUT=Input -SING_OPTIONS_LYRICS=lagatextar -SING_OPTIONS_THEMES=snið -SING_OPTIONS_RECORD=upptaka -SING_OPTIONS_ADVANCED=fleiri stillingar -SING_OPTIONS_EXIT=til baka +SING_OPTIONS_GAME=Leikur +SING_OPTIONS_GRAPHICS=Mynd +SING_OPTIONS_SOUND=Hljóð +SING_OPTIONS_LYRICS=Lagatextar +SING_OPTIONS_THEMES=Snið +SING_OPTIONS_MICROPHONES=Upptaka +SING_OPTIONS_ADVANCED=Fleiri stillingar +SING_OPTIONS_EXIT=Til baka SING_OPTIONS_GAME_WHEREAMI=Stillingar Leikur -SING_OPTIONS_GAME_DESC=almennar leikstillingar +SING_OPTIONS_GAME_DESC=Almennar leikstillingar SING_OPTIONS_GAME_PLAYERS=Leikmenn SING_OPTIONS_GAME_DIFFICULTY=Erfiðleikastig SING_OPTIONS_GAME_LANGUAGE=Tungumál SING_OPTIONS_GAME_TABS=Flipar SING_OPTIONS_GAME_SORTING=Röðun -SING_OPTIONS_GAME_DEBUG=Villuprófun +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Virkja gamepad SING_OPTIONS_GRAPHICS_WHEREAMI=Stillingar Mynd -SING_OPTIONS_GRAPHICS_DESC=myndstillingar +SING_OPTIONS_GRAPHICS_DESC=Myndstillingar SING_OPTIONS_GRAPHICS_RESOLUTION=Skjáupplausn SING_OPTIONS_GRAPHICS_FULLSCREEN=Skjáfyllir -SING_OPTIONS_GRAPHICS_DEPTH=Dýpt +SING_OPTIONS_GRAPHICS_EFFECTSING=Söngbrellur +SING_OPTIONS_GRAPHICS_SCREENFADE=Skjá útþynning +SING_OPTIONS_GRAPHICS_LOADANIMATION=Hlaða hreyfimynd SING_OPTIONS_GRAPHICS_VISUALIZER=Sýning -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Sveiflusjá SING_OPTIONS_GRAPHICS_LINEBONUS=Línubónus SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Stærð Myndbands SING_OPTIONS_SOUND_WHEREAMI=Stillingar hljóð -SING_OPTIONS_SOUND_DESC=hljóðstillingar +SING_OPTIONS_SOUND_DESC=Hljóðstillingar SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Spilun af hljóðnema SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Bakgrunnstónlist -SING_OPTIONS_SOUND_MIC_BOOST=Hljóðnemaaukning SING_OPTIONS_SOUND_CLICK_ASSIST=Taktstuðningur SING_OPTIONS_SOUND_BEAT_CLICK=Slá takt -SING_OPTIONS_SOUND_THRESHOLD=Þröskuldur SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Tveir leikmenn ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Forsýn hljóðstyrkur SING_OPTIONS_SOUND_PREVIEWFADING=Forsýn útþynning -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - SING_OPTIONS_LYRICS_WHEREAMI=Stillingar Textar -SING_OPTIONS_LYRICS_DESC=textastillingar +SING_OPTIONS_LYRICS_DESC=Textastillingar SING_OPTIONS_LYRICS_FONT=Leturgerð SING_OPTIONS_LYRICS_EFFECT=Brellur SING_OPTIONS_LYRICS_SOLMIZATION=Solmization @@ -160,70 +146,69 @@ SING_OPTIONS_THEMES_THEME=Þema SING_OPTIONS_THEMES_SKIN=Skinn SING_OPTIONS_THEMES_COLOR=Litur -SING_OPTIONS_RECORD_WHEREAMI=Stillingar Upptaka -SING_OPTIONS_RECORD_DESC=hljóðnemastillingar -SING_OPTIONS_RECORD_CARD=Hljóðkort -SING_OPTIONS_RECORD_INPUT=Inntak -SING_OPTIONS_RECORD_CHANNEL=Rás +SING_OPTIONS_MICROPHONES_WHEREAMI=Stillingar Upptaka +SING_OPTIONS_MICROPHONES_DESC=Hljóðnemastillingar +SING_OPTIONS_MICROPHONES_CARD=Hljóðkort +SING_OPTIONS_MICROPHONES_INPUT=Inntak +SING_OPTIONS_MICROPHONES_CHANNEL=Rás +SING_OPTIONS_MICROPHONES_THRESHOLD=Þröskuldur +SING_OPTIONS_MICROPHONES_MIC_BOOST=Hljóðnemaaukning SING_OPTIONS_ADVANCED_WHEREAMI=Stillingar Meira -SING_OPTIONS_ADVANCED_DESC=fleiri stillingar -SING_OPTIONS_ADVANCED_EFFECTSING=Söngbrellur -SING_OPTIONS_ADVANCED_SCREENFADE=Skjá útþynning -SING_OPTIONS_ADVANCED_LOADANIMATION=Hlaða hreyfimynd +SING_OPTIONS_ADVANCED_DESC=Fleiri stillingar +SING_OPTIONS_ADVANCED_DEBUG=Villuprófun +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Sveiflusjá SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Öryggisspurningar SING_OPTIONS_ADVANCED_LINEBONUS=Línubónus -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=Eftir Lagaval SING_OPTIONS_ADVANCED_PARTYPOPUP=Sjálfvirk Partívalmynd -SING_EDIT=Lagasmiður -SING_EDIT_MENU_DESCRIPTION=búðu til eigið lag -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Flytja inn texta frá midi skrá -SING_EDIT_BUTTON_DESCRIPTION_EXIT=til baka -SING_EDIT_BUTTON_CONVERT=Flytja inn -SING_EDIT_BUTTON_EXIT=til baka - -SING_EDIT_NAVIGATE=stýra -SING_EDIT_SELECT=velja -SING_EDIT_EXIT=til baka - -SING_LEGEND_SELECT=velja -SING_LEGEND_NAVIGATE=stýra +SING_LEGEND_SELECT=Velja +SING_LEGEND_NAVIGATE=Stýra SING_LEGEND_CONTINUE=áfram -SING_LEGEND_ESC=til baka - -SING_PLAYER_DESC=sláið inn nöfn leikmanna -SING_PLAYER_WHEREAMI=Nöfn leikmanna -SING_PLAYER_ENTER_NAME=sláðu inn nafn - -SING_DIFFICULTY_DESC=veldu erfiðleikastig +SING_LEGEND_ESC=Til baka + +SING_PLAYER_TITLE=Snið +SING_PLAYER_READY=Leikmenn tilbúinn að syngja +SING_PLAYER_COUNT=Fjöldi leikmanna +SING_PLAYER_EDIT=Sérsníða leikmann +SING_PLAYER_NAME=Skrifaðu nafnið þitt +SING_PLAYER_COLOR=Veldu lit +SING_PLAYER_LEVEL=Veldu stig +SING_PLAYER_AVATAR=Veldu avatar þinn + +SING_DIFFICULTY_DESC=Veldu erfiðleikastig SING_DIFFICULTY_WHEREAMI=Erfiðleikastig SING_DIFFICULTY_CONTINUE=í lagaval SING_EASY=Auðvelt SING_MEDIUM=Miðlungs SING_HARD=Erfitt -SING_SONG_SELECTION_DESC=veldu lag +SING_SONG_SELECTION_DESC=Veldu lag SING_SONG_SELECTION_WHEREAMI=Lagaval -SING_SONG_SELECTION_GOTO=fara til .. -SING_SONG_SELECTION=lagaval -SING_SONG_SELECTION_MENU=valmynd -SING_SONG_SELECTION_PLAYLIST=lagalisti +SING_SONG_SELECTION_GOTO=Fara til .. +SING_SONG_SELECTION=Lagaval +SING_SONG_SELECTION_MENU=Valmynd +SING_SONG_SELECTION_PLAYLIST=Lagalisti +SING_SONG_IN_CAT=Song SING_SONGS_IN_CAT=Lög PLAYLIST_CATTEXT=Lagalisti: %s - -;TODO: SING_TIME=TIME -SING_TOTAL=samtals -SING_MODE=syngja sóló -SING_NOTES=nótur -SING_GOLDEN_NOTES=gullnótur -SING_PHRASE_BONUS=línubónus +;TODO: SING_SONG_SELECTION_LEGEND_TITLE=Legend +;TODO: SING_SONG_SELECTION_LEGEND_VIDEO=Video +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +;TODO: SING_SONG_SELECTION_LEGEND_DUET=Duet + +SING_TOTAL=Samtals +SING_MODE=Syngja sóló +SING_NOTES=Nótur +SING_GOLDEN_NOTES=Gullnótur +SING_PHRASE_BONUS=Línubónus SING_MENU=Aðalvalmynd -SONG_SCORE=stigagjöf +SONG_SCORE=Stigagjöf SONG_SCORE_WHEREAMI=Dómur SING_SCORE_TONE_DEAF=Falskt @@ -235,27 +220,26 @@ SING_SCORE_LEAD_SINGER=Forsöngvari SING_SCORE_SUPERSTAR=Súperstjarna SING_SCORE_ULTRASTAR=Últrastjarna -SING_TOP_5_CHARTS=topp 5 leikmenn -SING_TOP_5_CHARTS_WHEREAMI=topp 5 +SING_TOP_5_CHARTS=Topp 5 leikmenn +SING_TOP_5_CHARTS_WHEREAMI=Topp 5 SING_TOP_5_CHARTS_CONTINUE=í lagaval -SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=breyta erfiðleikastigi +SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Breyta erfiðleikastigi -POPUP_PERFECT=fullkomið! +POPUP_PERFECT=Fullkomið! POPUP_AWESOME=æðislegt! -POPUP_GREAT=frábært! -POPUP_GOOD=gott! -POPUP_NOTBAD=ekki slæmt! -POPUP_BAD=slæmt! -POPUP_POOR=lélegt! -POPUP_AWFUL=hræðilegt! - -;TODO: IMPLODE_GLUE1=, +POPUP_GREAT=Frábært! +POPUP_GOOD=Gott! +POPUP_NOTBAD=Ekki slæmt! +POPUP_BAD=Slæmt! +POPUP_POOR=Lélegt! +POPUP_AWFUL=Hræðilegt! + +IMPLODE_GLUE1=, IMPLODE_GLUE2= og -SONG_MENU_NAME_MAIN=lagavalmynd +SONG_MENU_NAME_MAIN=Lagavalmynd SONG_MENU_PLAY=Syngja SONG_MENU_CHANGEPLAYERS=Breyta um leikmenn -SONG_MENU_EDIT=Breyta SONG_MENU_MODI=Singja Modi SONG_MENU_CANCEL=Hætta við @@ -277,17 +261,17 @@ SONG_MENU_YES=Já SONG_MENU_NO=Nei SONG_MENU_NAME_PLAYLIST_LOAD=Opna Lagalista -SONG_MENU_PLAYLIST_LOAD=opna -SONG_MENU_PLAYLIST_DELCURRENT=eyða núverandi Lagalista +SONG_MENU_PLAYLIST_LOAD=Opna +SONG_MENU_PLAYLIST_DELCURRENT=Eyða núverandi Lagalista SONG_MENU_NAME_PLAYLIST_DEL=Eyða Lagalista? SONG_MENU_NAME_PARTY_MAIN=Partívalmynd SONG_MENU_JOKER=Jóker -SONG_MENU_NAME_PARTY_JOKER=taka jóker +SONG_MENU_NAME_PARTY_JOKER=Taka jóker -SONG_JUMPTO_DESC=lagaleit +SONG_JUMPTO_DESC=Lagaleit SONG_JUMPTO_TYPE_DESC=Leita að: SONG_JUMPTO_TYPE1=Öllu SONG_JUMPTO_TYPE2=Titli @@ -297,57 +281,57 @@ SONG_JUMPTO_NOSONGSFOUND=Engin lög fundust SONG_JUMPTO_HELP=Sláðu inn texta til að leita að SONG_JUMPTO_CATTEXT=Leita að: %s -PARTY_MODE=partísnið +PARTY_MODE=Partísnið PARTY_DIFFICULTY=Erfiðleikastig PARTY_PLAYLIST=Lagalista Stilling PARTY_PLAYLIST_ALL=Öll lög PARTY_PLAYLIST_CATEGORY=Mappa PARTY_PLAYLIST_PLAYLIST=Lagalisti -PARTY_TEAMS=fjöldi liða -PARTY_TEAMS_PLAYER1=fjöldi söngvara -PARTY_TEAMS_PLAYER2=fjöldi söngvara -PARTY_TEAMS_PLAYER3=fjöldi söngvara +PARTY_TEAMS=Fjöldi liða +PARTY_TEAMS_PLAYER1=Fjöldi söngvara +PARTY_TEAMS_PLAYER2=Fjöldi söngvara +PARTY_TEAMS_PLAYER3=Fjöldi söngvara PARTY_LEGEND_CONTINUE=áfram -PARTY_OPTIONS_DESC=stillingar fyrir partíleik +PARTY_OPTIONS_DESC=Stillingar fyrir partíleik PARTY_OPTIONS_WHEREAMI=Partí Stillingar -PARTY_PLAYER_DESC=sláðu inn nöfn leikmanna og liða! +PARTY_PLAYER_DESC=Sláðu inn nöfn leikmanna og liða! PARTY_PLAYER_WHEREAMI=Partí Nöfn -PARTY_PLAYER_ENTER_NAME=sláðu inn nöfn +PARTY_PLAYER_ENTER_NAME=Sláðu inn nöfn PARTY_ROUNDS_DESC= veljið hvaða snið þið viljið spila PARTY_ROUNDS_WHEREAMI=Partí Umferðir -PARTY_ROUNDS_LEGEND_CONTINUE=byrja partí-leik -PARTY_ROUNDCOUNT=fjöldi umferða -PARTY_SELECTMODE=umferð %d +PARTY_ROUNDS_LEGEND_CONTINUE=Byrja partí-leik +PARTY_ROUNDCOUNT=Fjöldi umferða +PARTY_SELECTMODE=Umferð %d -PARTY_ROUND_DESC=næstu leikmenn að hljóðnemunum +PARTY_ROUND_DESC=Næstu leikmenn að hljóðnemunum PARTY_ROUND_WHEREAMI=Partí Næsta Umferð -PARTY_ROUND_LEGEND_CONTINUE=byrja umferð +PARTY_ROUND_LEGEND_CONTINUE=Byrja umferð PARTY_SONG_WHEREAMI=Partí Lagaval -PARTY_SONG_LEGEND_CONTINUE=syngja -PARTY_SONG_MENU=partí valmynd +PARTY_SONG_LEGEND_CONTINUE=Syngja +PARTY_SONG_MENU=Partí valmynd -PARTY_SCORE_DESC=stig síðustu umferðar +PARTY_SCORE_DESC=Stig síðustu umferðar PARTY_SCORE_WHEREAMI=Partí Stig -PARTY_WIN_DESC=sigurvegari partí-leiks +PARTY_WIN_DESC=Sigurvegari partí-leiks PARTY_WIN_WHEREAMI=Partí Sigurvegari -PARTY_WIN_LEGEND_CONTINUE=aftur að aðalvalmynd +PARTY_WIN_LEGEND_CONTINUE=Aftur að aðalvalmynd PARTY_ROUND=Umferð PARTY_ROUND_WINNER=Sigurvegari -PARTY_NOTPLAYEDYET=ekki spilað enn -PARTY_NOBODY=enginn +PARTY_NOTPLAYEDYET=Ekki spilað enn +PARTY_NOBODY=Enginn NEXT_ROUND=Næsta umferð: PARTY_DISMISSED=Úr leik! PARTY_SCORE_WINS=%s -PARTY_SCORE_WINS2=sigrar! +PARTY_SCORE_WINS2=Sigrar! MODE_RANDOM_NAME=Tilviljanakennt snið ;TODO: MODE_RANDOM_DESC=Keep yourself on your toes! The game will select a mode for you at random! @@ -422,7 +406,7 @@ STAT_DETAIL_WHEREAMI=Ítarleg Tölfræði STAT_NEXT=Næsta síða STAT_PREV=Fyrri síða STAT_REVERSE=Öfug röð -STAT_PAGE=Blaðsíða %0:d af %1:d blaðsíðum (%2:d af %3:d færslum) +STAT_PAGE=Blaðsíða %0:d af %1:d \n Færslum %2:d af %3:d STAT_DESC_SCORES=Hæstu stig STAT_DESC_SCORES_REVERSED=Lægstu stig @@ -448,7 +432,6 @@ ERROR_SAVE_FILE_FAILED=Gat ekki vistað skrá ERROR_FILE_NOT_FOUND=Skrá finnst ekki ENCODING_ERROR_ASK_FOR_UTF8=Get ekki vistað breytingar með núverandi stafasetti. Breyta í UTF-8? -EDITOR_ERROR_NO_TRACK_SELECTED=Ekkert lag valið MSG_ERROR_TITLE=Villa MSG_INFO_TITLE=Upplýsingar @@ -458,27 +441,26 @@ MSG_END_PARTY=Virkilega hætta í Partí? ERROR_NO_SONGS=Engum lögum hlaðið inn ERROR_NO_PLUGINS=Engum viðbótum hlaðið inn -ERROR_NO_MODES_FOR_CURRENT_SETUP=engin snið tiltæk fyrir núverandi leikmann/lið +ERROR_NO_MODES_FOR_CURRENT_SETUP=Engin snið tiltæk fyrir núverandi leikmann/lið ERROR_CAN_NOT_START_PARTY= villa kom upp við upphaf partíleiks ERROR_CORRUPT_SONG=Ekki var hægt að hlaða inn lagi. ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Ekki var hægt að hlaða inn lagi: Skrá finnst ekki. ERROR_CORRUPT_SONG_NO_NOTES=Ekki var hægt að hlaða inn lagi: Finn engar nótur ERROR_CORRUPT_SONG_NO_BREAKS=Ekki var hægt að hlaða inn lagi: Finn engar línuskiptingar ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Ekki var hægt að hlaða inn lagi: Villa við þáttun línu %0:d -;TODO: ERROR_NO_EDITOR=This feature is not available on this version. -;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options -;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options +ERROR_PLAYER_DEVICE_ASSIGNMENT=Leikmaður %d er úthlutað til margra hljóðnema. Athugaðu hljóðnemann valkosti þína +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Leikmaður %d er ekki úthlutað í hljóðnema. Athugaðu hljóðnemann valkosti þína -;TODO: SING_OPTIONS_NETWORK=Internet +SING_OPTIONS_NETWORK=Internet ;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options ;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings ;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... ;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password +SING_OPTIONS_NETWORK_USERNAME=Notendanafn +SING_OPTIONS_NETWORK_PASSWORD=Lykilorð ;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name SING_OPTIONS_NETWORK_AUTO_MODE=Sjálfvirkt -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player +SING_OPTIONS_NETWORK_AUTO_PLAYER=Leikmaður ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) @@ -487,20 +469,20 @@ SING_OPTIONS_NETWORK_AUTO_MODE=Sjálfvirkt ;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert ;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 +OPTION_PLAYER_1=Leikmaður 1 +OPTION_PLAYER_2=Leikmaður 2 +OPTION_PLAYER_3=Leikmaður 3 +OPTION_PLAYER_4=Leikmaður 4 +OPTION_PLAYER_5=Leikmaður 5 +OPTION_PLAYER_6=Leikmaður 6 OPTION_ALL_PLAYERS=Öllu OPTION_ALL_SCORES=Öllu ;TODO: OPTION_VALUE_SAVE=Save ;TODO: OPTION_VALUE_SEND=Send -;TODO: MSG_INSERT_USER_TITLE=%0:s +MSG_INSERT_USER_TITLE=%0:s ;TODO: MSG_INSERT_USER_DESC=Fill the fields: -;TODO: MSG_INSERT_USER_ADD=Add +MSG_INSERT_USER_ADD=Bæta við MSG_INSERT_USER_CANCEL=Hætta við ;TODO: WEBSITE_NO_CONNECTION=No website connection! @@ -515,14 +497,14 @@ MSG_INSERT_USER_CANCEL=Hætta við ;TODO: WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? ;TODO: SONG_MENU_REFRESH_SCORES=Update Scores -;TODO: SONG_MENU_REFRESH_SCORES_TITLE=Update +SONG_MENU_REFRESH_SCORES_TITLE=Uppfæra ;TODO: SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! ;TODO: SONG_MENU_REFRESH_SCORES_ONLINE=Online ;TODO: SONG_MENU_REFRESH_SCORES_FILE=File ;TODO: SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites ;TODO: SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs ;TODO: SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song -;TODO: SONG_MENU_REFRESH_SCORES_REFRESH=Update +SONG_MENU_REFRESH_SCORES_REFRESH=Uppfæra ;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! ;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! @@ -535,7 +517,7 @@ MSG_INSERT_USER_CANCEL=Hætta við ;TODO: SCORE_SEND_OTHER_USER= Other Username ;TODO: SCORE_SAVE=Save -;TODO: SCORE_DOWNLOAD_TITLE=Download +SCORE_DOWNLOAD_TITLE=Sækja ;TODO: SCORE_DOWNLOAD_SONG=Song: ;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... ;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... @@ -556,45 +538,15 @@ SCORE_DOWNLOAD_CANCEL=Hætta við ;TODO: PARTY_MODE_TOURNAMENT_PLAYER_DESC=Insert number and players name ;TODO: PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Number of Players -PARTY_MODE_TOURNAMENT_OPTIONS_DESC=fjöldi umferða +PARTY_MODE_TOURNAMENT_OPTIONS_DESC=Fjöldi umferða ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_FINAL=Final ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Semifinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Quarterfinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL=Round of 16 -PARTY_MODE_TOURNAMENT_ROUNDS_DESC=næstu leikmenn að hljóðnemunum +PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Næstu leikmenn að hljóðnemunum ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -INFO_FILE_SAVED=Skrá vistuð -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - ;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! ;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! @@ -609,8 +561,6 @@ INFO_FILE_SAVED=Skrá vistuð ;TODO: SONG_MENU_SONG=Song ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Lagavalmynd ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -638,7 +588,8 @@ SING_OPTIONS_WEBCAM_EFFECT=Brellur ;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness ;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation ;TODO: SING_OPTIONS_WEBCAM_HUE=Hue -;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview +SING_OPTIONS_WEBCAM_PREVIEW=Virkja forskoðun +SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Virkja forskoðun ;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview ;TODO: SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal @@ -663,29 +614,29 @@ SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Þröskuldur ;TODO: WEBSITE_EXIST_SONG=The song belongs to the website: %0:s ;TODO: WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! -;TODO: NAME_PLAYERS_COUNT=Number of Players -;TODO: NAME_CURRENT_PLAYER=Player +NAME_PLAYERS_COUNT=Fjöldi leikmanna +NAME_CURRENT_PLAYER=Leikmaður SING_OPTIONS_GAME_SONGMENU=Lagavalmynd -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard +OPTION_VALUE_ROULETTE=Rúlletta +OPTION_VALUE_CHESSBOARD=Skákborð ;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List -;TODO: OPTION_VALUE_MOSAIC=Tile +OPTION_VALUE_SLOT_MACHINE=Spilakassi +OPTION_VALUE_LIST=Listi +OPTION_VALUE_MOSAIC=Flísar ;TODO: SING_OPTIONS_JUKEBOX=Jukebox ;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox ;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options OPTION_VALUE_TO_SING=Syngja -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next +OPTION_VALUE_ACTUAL=Efri +OPTION_VALUE_NEXT=Neðst ;TODO: OPTION_VALUE_OTHER=Other ;TODO: OPTION_VALUE_FILL=Fill ;TODO: OPTION_VALUE_OUTLINE=Outline ;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White +OPTION_VALUE_WHITE=Hvítur ;TODO: OPTION_VALUE_TURQUOISE=Turquoise ;TODO: OPTION_VALUE_SALMON=Salmon ;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow @@ -695,8 +646,8 @@ OPTION_VALUE_TO_SING=Syngja ;TODO: OPTION_VALUE_ORCHID=Orchid ;TODO: OPTION_VALUE_STEELBLUE=Steel Blue ;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold +OPTION_VALUE_CHOCOLATE=Súkkulaði +OPTION_VALUE_GOLD=Gull ;TODO: OPTION_VALUE_DARKBLUE=Dark Blue ;TODO: OPTION_VALUE_SKY=Sky ;TODO: OPTION_VALUE_HARLEQUIN=Harlequin @@ -708,9 +659,9 @@ OPTION_VALUE_TO_SING=Syngja ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height ;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size +JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Stærð ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Gagnsæi JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Litur ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property @@ -722,14 +673,14 @@ JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blár ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=LetterBox -;TODO: JUKEBOX_SONGOPTIONS_SAVE=Save -;TODO: JUKEBOX_SONGOPTIONS_CLOSE=Close -;TODO: JUKEBOX_SONGOPTIONS_DEFAULT=Default -;TODO: JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Saved! +JUKEBOX_SONGOPTIONS_SAVE=Vista +JUKEBOX_SONGOPTIONS_CLOSE=Loka +JUKEBOX_SONGOPTIONS_DEFAULT=Sjálfgefið +JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Vistuð! ;TODO: SING_SONG_CREDITS=Credits ;TODO: SING_JUKEBOX=Jukebox -;TODO: SING_JUKEBOX_DESC=Listen to my collection +SING_JUKEBOX_DESC=Hlustaðu lögin mín ;TODO: JUKEBOX_MODE=Jukebox Mode ;TODO: JUKEBOX_OPTIONS_DESC=Playlist Options ;TODO: JUKEBOX_OPTIONS_WHEREAMI=Jukebox Options @@ -739,12 +690,17 @@ JUKEBOX_OPTIONS_PLAYLIST=Lagalisti ;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing ;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores OPTION_VALUE_ALL=Öllu -;TODO: OPTION_VALUE_PLAYER=Player - -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +OPTION_VALUE_PLAYER=Leikmaður + +SING_ABOUT=Um +SING_ABOUT_DESC=Um Ultrastar Deluxe WorldParty +ABOUT_MAIN=Um... +ABOUT_USDX_DEVELOPEDBY=Þróað af +ABOUT_CHECK_CHECKING=Athugar nýjum uppfærslum... +ABOUT_CHECK_AVAILABLE=Það er ný útgáfa í boði +ABOUT_CHECK_UPTODATE=WorldParty er upp til dagsetning +ABOUT_CHECK_CONNECTION=Það er engin internettenging +ABOUT_OVERVIEW=Uppgötvaðu nýja leið til að syngja, einn, í pari eða með vinum. \n Gaman er tryggð.\n\nWorldParty er fork af upprunalegu útgáfunni Ultrastar Deluxe 1.1 hannað og þróað af UltraStar España lið, telja það með stærsta Karaoke samfélag.\n\n\nÞetta forrit er ókeypis og libre undir GPL leyfinu. \n\n Heimsókn til okkar fyrir frekari upplýsingar.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Þróað af +DEVELOPERS_OVERVIEW=Fólk sem hefur lagt sitt af mörkum við þetta verkefni:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Heimsókn til okkar fyrir frekari upplýsingar.\n\nhttps://ultrastar-es.org diff --git "a/game/languages/\304\214e\305\241tina.ini" "b/game/languages/\304\214e\305\241tina.ini" index 33ffe79b..6269ddb3 100644 --- "a/game/languages/\304\214e\305\241tina.ini" +++ "b/game/languages/\304\214e\305\241tina.ini" @@ -1,10 +1,71 @@ [Text] LANGUAGE=Čeština +SING_LOADING=Načítání... +;TODO: SING_LOADING_SONGS=Loading songs from folder %s + +SING_SING=Zpívat +SING_SING_DESC=Rychlá hra: zpívej sólo nebo duet + +SING_MULTI=Párty +SING_MULTI_DESC=Zpívejte v párty-módu + +;TODO: SING_JUKEBOX=Jukebox +;TODO: SING_JUKEBOX_DESC=Listen to my collection + +SING_STATS=Statistiky +SING_STATS_DESC=Zobrazit statistiky + +SING_GAME_OPTIONS=Herní možnosti +SING_GAME_OPTIONS_DESC=Změnit nastavení hry + +SING_EXIT=Ukončit +SING_EXIT_DESC=Ukončit hru + +;TODO: SING_ABOUT=About +;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe WorldParty + +SING_PLAYER_TITLE=Profily +;TODO: SING_PLAYER_READY=Players ready to sing +SING_PLAYER_COUNT=Počet hráčů +SING_PLAYER_EDIT=Přizpůsobte si přehrávač +SING_PLAYER_NAME=Napište své jméno +SING_PLAYER_COLOR=Vyber barvu +SING_PLAYER_LEVEL=Vyberte úroveň +SING_PLAYER_AVATAR=Vyberte svůj avatar + OPTION_VALUE_EASY=Snadná OPTION_VALUE_MEDIUM=Střední OPTION_VALUE_HARD=Těžká +SING_OPTIONS=Možnosti + +SING_OPTIONS_GAME=Hra +SING_OPTIONS_GRAPHICS=Grafika +SING_OPTIONS_SOUND=Zvuk +SING_OPTIONS_LYRICS=Text +SING_OPTIONS_THEMES=Vzhled +SING_OPTIONS_MICROPHONES=Mikrofony +SING_OPTIONS_ADVANCED=Pokročilé +SING_OPTIONS_NETWORK=Internet +;TODO: SING_OPTIONS_WEBCAM=Webcam +;TODO: SING_OPTIONS_JUKEBOX=Jukebox +SING_OPTIONS_EXIT=Zpět + +SING_OPTIONS_GAME_LANGUAGE=Jazyk +SING_OPTIONS_GAME_SONGMENU=Menu skladeb +SING_OPTIONS_GAME_TABS=Složky +SING_OPTIONS_GAME_SORTING=Řazení +;TODO: SING_OPTIONS_GAME_SHOWSCORES=Show Scores +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Aktivujte gamepad + +OPTION_VALUE_ROULETTE=Ruleta +OPTION_VALUE_CHESSBOARD=Šachovnice +OPTION_VALUE_CAROUSEL=Kolotoč +;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine +OPTION_VALUE_LIST=Seznam +OPTION_VALUE_MOSAIC=Dlaždice + OPTION_VALUE_ON=Zap OPTION_VALUE_OFF=Vyp @@ -14,35 +75,52 @@ OPTION_VALUE_LANGUAGE=Jazyk OPTION_VALUE_FOLDER=Složka OPTION_VALUE_TITLE=Název OPTION_VALUE_ARTIST=Interpret -OPTION_VALUE_TITLE2=Název 2 OPTION_VALUE_ARTIST2=Interpret 2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade +OPTION_VALUE_YEAR=Rok +OPTION_VALUE_DECADE=Desetiletí OPTION_VALUE_PLAYLIST=Seznam stop -;TODO: OPTION_VALUE_BORDERLESS=Borderless +;TODO: OPTION_VALUE_WHEN_EXISTS=When Exists -OPTION_VALUE_WHENNOVIDEO=Neobsahuje-li video -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +SING_OPTIONS_GRAPHICS_FULLSCREEN=Na celou obrazovku +SING_OPTIONS_GRAPHICS_RESOLUTION=Rozlišení +SING_OPTIONS_GRAPHICS_SCREENFADE=Přechody obrazu +SING_OPTIONS_GRAPHICS_EFFECTSING=Efekty u zpěvu +SING_OPTIONS_GRAPHICS_VISUALIZER=Vizualizace +SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Velikost videa -OPTION_VALUE_SMALL=Malé -OPTION_VALUE_BIG=Velké +OPTION_VALUE_BORDERLESS=Maximalizovat + +OPTION_VALUE_WHENNOVIDEO=Neobsahuje-li video +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Pokud žádné video a obrázek OPTION_VALUE_HALF=Poloviční OPTION_VALUE_FULL_VID=Úplné (video) OPTION_VALUE_FULL_VID_BG=Úplné (pozadí & video) +SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Přehrávání z mikrof. +SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Hudba na pozadí +SING_OPTIONS_SOUND_CLICK_ASSIST=Pomocné tikání +SING_OPTIONS_SOUND_BEAT_CLICK=Další rytmika +;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain +SING_OPTIONS_SOUND_PREVIEWVOLUME=Hlasitost ukázky +SING_OPTIONS_SOUND_PREVIEWFADING=Odeznění ukázky + ;TODO: OPTION_VALUE_GAIN_SOFT=Soft ;TODO: OPTION_VALUE_GAIN_MEDIUM=Medium ;TODO: OPTION_VALUE_GAIN_HARD=Hard OPTION_VALUE_AUTO=Auto -OPTION_VALUE_SEC=sekunda -OPTION_VALUE_SECS=sekundy +OPTION_VALUE_SEC=Sekunda +OPTION_VALUE_SECS=Sekundy + +SING_OPTIONS_LYRICS_FONT=Písmo +SING_OPTIONS_LYRICS_EFFECT=Efekt +SING_OPTIONS_LYRICS_NOTELINES=Notová osnova -OPTION_VALUE_PLAIN=Prosté -OPTION_VALUE_OLINE1=Obtažené 1 -OPTION_VALUE_OLINE2=Obtažené 2 +OPTION_VALUE_PLAIN=Stylizovaný +;TODO: OPTION_VALUE_OLINE1=With thin edge +;TODO: OPTION_VALUE_OLINE2=With thick edge OPTION_VALUE_SIMPLE=Jednoduchý OPTION_VALUE_ZOOM=Zvětšení @@ -50,180 +128,200 @@ OPTION_VALUE_SLIDE=Skluz OPTION_VALUE_BALL=Míč OPTION_VALUE_SHIFT=Posun -OPTION_VALUE_EURO=Evropské -OPTION_VALUE_JAPAN=Japonské -OPTION_VALUE_AMERICAN=Americké - -OPTION_VALUE_BLUE=Modrá -OPTION_VALUE_GREEN=Zelená -OPTION_VALUE_PINK=Růžová -OPTION_VALUE_RED=Červená -OPTION_VALUE_VIOLET=Fialová -OPTION_VALUE_ORANGE=Oranžová -OPTION_VALUE_YELLOW=Žlutá -OPTION_VALUE_BROWN=Hnědá -OPTION_VALUE_BLACK=Černá - -OPTION_VALUE_SING=Zpívat -OPTION_VALUE_SELECT_PLAYERS=Výběr hráčů -OPTION_VALUE_OPEN_MENU=Otevřít menu +SING_OPTIONS_THEMES_THEME=Téma +SING_OPTIONS_THEMES_SKIN=Skin +SING_OPTIONS_THEMES_COLOR=Barva -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -OPTION_VALUE_HARDWARE_CURSOR=Hardwarový kurzor -OPTION_VALUE_SOFTWARE_CURSOR=Softwarový kurzor +SING_OPTIONS_MICROPHONES_CARD=Zvuková karta +SING_OPTIONS_MICROPHONES_INPUT=Vstup +SING_OPTIONS_MICROPHONES_CHANNEL=Kanál +SING_OPTIONS_MICROPHONES_THRESHOLD=Práh +SING_OPTIONS_MICROPHONES_MIC_BOOST=Zesílení mikrofonu -SING_LOADING=Načítání... - -SING_CHOOSE_MODE=vybrat mód -SING_SING=zpívat -SING_SING_DESC=rychlá hra: zpívej sólo nebo duet +SING_OPTIONS_ADVANCED_DEBUG=Ladění programu +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Osciloskop +SING_OPTIONS_ADVANCED_ONSONGCLICK=Po výběru skladby +SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Potvrzovací dialogy +SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto párty-menu +;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores +;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing -SING_MULTI=párty -SING_MULTI_DESC=zpívejte v párty-módu +OPTION_VALUE_ALL=Všude +OPTION_VALUE_PLAYER=Hráč -SING_TOOLS=nástroje +;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... +;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website +;TODO: SING_OPTIONS_NETWORK_USERNAME=Username +;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password +;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name +SING_OPTIONS_NETWORK_AUTO_MODE=Auto +;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player +;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) +;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) +;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) +;TODO: SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! +;TODO: SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? +;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert +;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete -SING_STATS=statistiky -SING_STATS_DESC=zobrazit statistiky +OPTION_PLAYER_1=Hráč 1 +OPTION_PLAYER_2=Hráč 2 +OPTION_PLAYER_3=Hráč 3 +OPTION_PLAYER_4=Hráč 4 +OPTION_PLAYER_5=Hráč 5 +OPTION_PLAYER_6=Hráč 6 +OPTION_ALL_PLAYERS=Všude +OPTION_ALL_SCORES=Všude +;TODO: OPTION_VALUE_SAVE=Save +;TODO: OPTION_VALUE_SEND=Send -SING_EDITOR=editor -SING_EDITOR_DESC=vytvořit vlastní skladbu +;TODO: MSG_INSERT_USER_TITLE=%0:s +;TODO: MSG_INSERT_USER_DESC=Fill the fields: +;TODO: MSG_INSERT_USER_ADD=Add +MSG_INSERT_USER_CANCEL=Zrušit -SING_GAME_OPTIONS=herní možnosti -SING_GAME_OPTIONS_DESC=změnit nastavení hry +;TODO: WEBSITE_NO_CONNECTION=No website connection! +;TODO: WEBSITE_LOGIN_ERROR=Login Incorrect! +;TODO: WEBSITE_BLANK_LOGIN=There are blank fields! +;TODO: WEBSITE_EXIST_USER=Existing user! +;TODO: WEBSITE_ERROR_SCORE=Scoring Error! +;TODO: WEBSITE_OK_SEND=Score sent successfully! +;TODO: WEBSITE_ERROR_SCORE_DUPLICATED=Existing Score! +;TODO: WEBSITE_ERROR_SONG=Song Not Found! +;TODO: WEBSITE_SAVE_SCORE=Score save successfully! +;TODO: WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? -SING_EXIT=ukončit -SING_EXIT_DESC=ukončit hru +;TODO: SONG_MENU_REFRESH_SCORES=Update Scores +;TODO: SONG_MENU_REFRESH_SCORES_TITLE=Update +;TODO: SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! +;TODO: SONG_MENU_REFRESH_SCORES_ONLINE=Online +;TODO: SONG_MENU_REFRESH_SCORES_FILE=File +;TODO: SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites +;TODO: SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs +;TODO: SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song +;TODO: SONG_MENU_REFRESH_SCORES_REFRESH=Update +;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! +;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! -SING_OPTIONS=možnosti -SING_OPTIONS_DESC=změnit nastavení -SING_OPTIONS_WHEREAMI=Možnosti +;TODO: SONG_SCORE_MAX=Best: +;TODO: SONG_SCORE_MEDIA=Average: -SING_OPTIONS_GAME=hra -SING_OPTIONS_GRAPHICS=grafika -SING_OPTIONS_SOUND=zvuk -;TODO: SING_OPTIONS_INPUT=Input -SING_OPTIONS_LYRICS=text -SING_OPTIONS_THEMES=vzhled -SING_OPTIONS_RECORD=záznam -SING_OPTIONS_ADVANCED=pokročilé -SING_OPTIONS_EXIT=zpět +;TODO: SCORE_SEND_DESC=Send Score +;TODO: SCORE_SEND=Send +;TODO: SCORE_SEND_PLAYER=Player +;TODO: SCORE_SEND_OTHER_USER= Other Username +;TODO: SCORE_SAVE=Save -SING_OPTIONS_GAME_WHEREAMI=Možnosti hry -SING_OPTIONS_GAME_DESC=obecné herní nastavení -SING_OPTIONS_GAME_PLAYERS=Hráči -SING_OPTIONS_GAME_DIFFICULTY=Obtížnost -SING_OPTIONS_GAME_LANGUAGE=Jazyk -SING_OPTIONS_GAME_TABS=Složky -SING_OPTIONS_GAME_SORTING=Řazení -SING_OPTIONS_GAME_DEBUG=Ladění programu +;TODO: SCORE_DOWNLOAD_TITLE=Download +;TODO: SCORE_DOWNLOAD_SONG=Song: +;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... +;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... +SCORE_DOWNLOAD_CANCEL=Zrušit +;TODO: SCORE_DOWNLOAD_OK=OK +;TODO: SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! -SING_OPTIONS_GRAPHICS_WHEREAMI=Možnosti grafiky -SING_OPTIONS_GRAPHICS_DESC=grafické nastavení -SING_OPTIONS_GRAPHICS_RESOLUTION=Rozlišení -SING_OPTIONS_GRAPHICS_FULLSCREEN=Na celou obrazovku -SING_OPTIONS_GRAPHICS_DEPTH=Barevná hloubka -SING_OPTIONS_GRAPHICS_VISUALIZER=Vizualizace -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Osciloskop -SING_OPTIONS_GRAPHICS_LINEBONUS=Bonus za řádek -SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Velikost videa +;TODO: SING_OPTIONS_WEBCAM_ID=Webcam +SING_OPTIONS_WEBCAM_RESOLUTION=Rozlišení +;TODO: SING_OPTIONS_WEBCAM_FPS=FPS +;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip +;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness +;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation +;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +SING_OPTIONS_WEBCAM_EFFECT=Efekt +SING_OPTIONS_WEBCAM_PREVIEW=Aktivovat náhled -SING_OPTIONS_SOUND_WHEREAMI=Možnosti zvuku -SING_OPTIONS_SOUND_DESC=zvukové nastavení -SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Přehrávání z mikrof. -SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Hudba na pozadí -SING_OPTIONS_SOUND_MIC_BOOST=Zesílení mikrofonu -SING_OPTIONS_SOUND_CLICK_ASSIST=Pomocné tikání -SING_OPTIONS_SOUND_BEAT_CLICK=Další rytmika -SING_OPTIONS_SOUND_THRESHOLD=Práh -SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Pro dva hráče -;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain -SING_OPTIONS_SOUND_PREVIEWVOLUME=Hlasitost ukázky -SING_OPTIONS_SOUND_PREVIEWFADING=Odeznění ukázky +;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview +;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview +;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! +;TODO: SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal +;TODO: SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Grayscale +;TODO: SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Black & White +;TODO: SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negative +;TODO: SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image +;TODO: SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate +SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Práh +;TODO: SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges +;TODO: SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur +;TODO: SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized +;TODO: SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Průhlednost +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property +JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Barva +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Červená +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Zelená +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Modrá -SING_OPTIONS_LYRICS_WHEREAMI=Možnosti textů -SING_OPTIONS_LYRICS_DESC=nastavení textů -SING_OPTIONS_LYRICS_FONT=Písmo -SING_OPTIONS_LYRICS_EFFECT=Efekt -SING_OPTIONS_LYRICS_SOLMIZATION=Názvy tónů -SING_OPTIONS_LYRICS_NOTELINES=Notová osnova +;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options +;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect +;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width +;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height +;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -SING_OPTIONS_THEMES_WHEREAMI=Možnosti vzhledu -SING_OPTIONS_THEMES_DESC=nastavení vzhledu -SING_OPTIONS_THEMES_THEME=Téma -SING_OPTIONS_THEMES_SKIN=Skin -SING_OPTIONS_THEMES_COLOR=Barva +OPTION_VALUE_TO_SING=Zpívat +OPTION_VALUE_ACTUAL=Horní +OPTION_VALUE_NEXT=Dno +;TODO: OPTION_VALUE_OTHER=Other +;TODO: OPTION_VALUE_FILL=Fill +;TODO: OPTION_VALUE_OUTLINE=Outline +OPTION_VALUE_BLUE=Modrá +OPTION_VALUE_GREEN=Zelená +OPTION_VALUE_PINK=Růžová +OPTION_VALUE_RED=Červená +OPTION_VALUE_VIOLET=Fialová +OPTION_VALUE_ORANGE=Oranžová +OPTION_VALUE_YELLOW=Žlutá +OPTION_VALUE_BROWN=Hnědá +OPTION_VALUE_BLACK=Černá +OPTION_VALUE_MAGENTA=Magenta +OPTION_VALUE_GRAY=Šedá +OPTION_VALUE_WHITE=Bílý +OPTION_VALUE_TURQUOISE=Tyrkysový +OPTION_VALUE_SALMON=Losos +;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow +;TODO: OPTION_VALUE_LAVENDER=Lavender +;TODO: OPTION_VALUE_BEIGE=Beige +;TODO: OPTION_VALUE_TEAL=Teal +;TODO: OPTION_VALUE_ORCHID=Orchid +;TODO: OPTION_VALUE_STEELBLUE=Steel Blue +;TODO: OPTION_VALUE_PLUM=Plum +;TODO: OPTION_VALUE_CHOCOLATE=Chocolate +;TODO: OPTION_VALUE_GOLD=Gold +;TODO: OPTION_VALUE_DARKBLUE=Dark Blue +;TODO: OPTION_VALUE_SKY=Sky +;TODO: OPTION_VALUE_HARLEQUIN=Harlequin +;TODO: OPTION_VALUE_CYAN=Cyan +;TODO: OPTION_VALUE_FLAME=Flame -SING_OPTIONS_RECORD_WHEREAMI=Možnosti záznamu -SING_OPTIONS_RECORD_DESC=nastavení mikrofonu -SING_OPTIONS_RECORD_CARD=Zvuková karta -SING_OPTIONS_RECORD_INPUT=Vstup -SING_OPTIONS_RECORD_CHANNEL=Kanál - -SING_OPTIONS_ADVANCED_WHEREAMI=Pokročilé možnosti -SING_OPTIONS_ADVANCED_DESC=pokročilé nastavení -SING_OPTIONS_ADVANCED_EFFECTSING=Efekty u zpěvu -SING_OPTIONS_ADVANCED_SCREENFADE=Přechody obrazu -SING_OPTIONS_ADVANCED_LOADANIMATION=Animace načítání -SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Potvrzovací dialogy -SING_OPTIONS_ADVANCED_LINEBONUS=Bonus za řádek -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= -SING_OPTIONS_ADVANCED_ONSONGCLICK=Po výběru skladby -SING_OPTIONS_ADVANCED_PARTYPOPUP=Auto párty-menu +SING_LEGEND_SELECT=Vybrat +SING_LEGEND_NAVIGATE=Navigace +SING_LEGEND_CONTINUE=Pokračovat +SING_LEGEND_ESC=Zpět -SING_EDIT=Editor -SING_EDIT_MENU_DESCRIPTION=Vytvořit vlastní skladbu - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Importovat ze souboru midi -SING_EDIT_BUTTON_DESCRIPTION_EXIT=zpět -SING_EDIT_BUTTON_CONVERT=Importovat -SING_EDIT_BUTTON_EXIT=zpět - -SING_EDIT_NAVIGATE=navigace -SING_EDIT_SELECT=vybrat -SING_EDIT_EXIT=zpět - -SING_LEGEND_SELECT=vybrat -SING_LEGEND_NAVIGATE=navigace -SING_LEGEND_CONTINUE=pokračovat -SING_LEGEND_ESC=zpět - -SING_PLAYER_DESC=zadejte jméno hráče (jména hráčů) -SING_PLAYER_WHEREAMI=Jména hráčů -SING_PLAYER_ENTER_NAME=zadejte jména - -SING_DIFFICULTY_DESC=zvolte obtížnost -SING_DIFFICULTY_WHEREAMI=Otížnost -SING_DIFFICULTY_CONTINUE=na výběr skladby -SING_EASY=Snadná -SING_MEDIUM=Střední -SING_HARD=Těžká - -SING_SONG_SELECTION_DESC=vyberte skladbu -SING_SONG_SELECTION_WHEREAMI=Výběr skladby -SING_SONG_SELECTION_GOTO=jdi na .. -SING_SONG_SELECTION=výběr skladby -SING_SONG_SELECTION_MENU=menu -SING_SONG_SELECTION_PLAYLIST=seznam stop -SING_SONGS_IN_CAT=skladby +SING_SONG_SELECTION=Výběr skladby +SING_SONG_SELECTION_MENU=Menu +SING_SONG_SELECTION_PLAYLIST=Seznam stop +SING_SONG_IN_CAT=Cançon +SING_SONGS_IN_CAT=Skladby PLAYLIST_CATTEXT=Seznam stop: %s - -;TODO: SING_TIME=TIME -SING_TOTAL=celkem -SING_MODE=zpívat sólo -SING_NOTES=noty -SING_GOLDEN_NOTES=zlaté noty -SING_PHRASE_BONUS=bonus za řádek +SING_SONG_SELECTION_LEGEND_TITLE=Legenda +SING_SONG_SELECTION_LEGEND_VIDEO=Video +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Duet + +SING_TOTAL=Celkem +SING_MODE=Zpívat sólo +SING_NOTES=Noty +SING_GOLDEN_NOTES=Zlaté noty +SING_PHRASE_BONUS=Bonus za řádek SING_MENU=Hlavní menu -SONG_SCORE=skóre za skladbu +SONG_SCORE=Skóre za skladbu SONG_SCORE_WHEREAMI=Skóre SING_SCORE_TONE_DEAF=Hudební hluch @@ -237,26 +335,24 @@ SING_SCORE_ULTRASTAR=Ultrastar SING_TOP_5_CHARTS=5 nejlepších SING_TOP_5_CHARTS_WHEREAMI=5 nej -SING_TOP_5_CHARTS_CONTINUE=na výběr skladby -SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=přepnout obtížnost +SING_TOP_5_CHARTS_CONTINUE=Na výběr skladby +SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Přepnout obtížnost -POPUP_PERFECT=výborně! -POPUP_AWESOME=paráda! -POPUP_GREAT=super! -POPUP_GOOD=dobře! +POPUP_PERFECT=Výborně! +POPUP_AWESOME=Paráda! +POPUP_GREAT=Super! +POPUP_GOOD=Dobře! POPUP_NOTBAD=šlo to! POPUP_BAD=špatně! -POPUP_POOR=bída! -POPUP_AWFUL=hrůza! +POPUP_POOR=Bída! +POPUP_AWFUL=Hrůza! IMPLODE_GLUE1=, IMPLODE_GLUE2= a -SONG_MENU_NAME_MAIN=menu skladby +SONG_MENU_NAME_MAIN=Menu skladby SONG_MENU_PLAY=Zpívat SONG_MENU_CHANGEPLAYERS=Změnit hráče -SONG_MENU_EDIT=Upravit -SONG_MENU_MODI=Zpívat "Modi" SONG_MENU_CANCEL=Zrušit SONG_MENU_NAME_PLAYLIST=Menu skladeb @@ -264,8 +360,8 @@ SONG_MENU_PLAYLIST_ADD=Přidat skladbu SONG_MENU_PLAYLIST_DEL=Odebrat skladbu SONG_MENU_NAME_PLAYLIST_ADD=Přidat skladbu -SONG_MENU_PLAYLIST_ADD_NEW=do nového playlistu -SONG_MENU_PLAYLIST_ADD_EXISTING=do existujícího seznamu stop +SONG_MENU_PLAYLIST_ADD_NEW=Do nového playlistu +SONG_MENU_PLAYLIST_ADD_EXISTING=Do existujícího seznamu stop SONG_MENU_PLAYLIST_NOEXISTING=Žádný seznam stop nevytvořen SONG_MENU_NAME_PLAYLIST_NEW=Nový seznam stop @@ -277,27 +373,20 @@ SONG_MENU_YES=Ano SONG_MENU_NO=Ne SONG_MENU_NAME_PLAYLIST_LOAD=Otevřít seznam stop -SONG_MENU_PLAYLIST_LOAD=otevřít -SONG_MENU_PLAYLIST_DELCURRENT=smazat tento seznam stop +SONG_MENU_PLAYLIST_LOAD=Otevřít +SONG_MENU_PLAYLIST_DELCURRENT=Smazat tento seznam stop SONG_MENU_NAME_PLAYLIST_DEL=Smazat seznam stop? SONG_MENU_NAME_PARTY_MAIN=Párty menu SONG_MENU_JOKER=Žolík -SONG_MENU_NAME_PARTY_JOKER=vzít žolíka +SONG_MENU_NAME_PARTY_JOKER=Vzít žolíka -SONG_JUMPTO_DESC=hledat skladbu +SONG_JUMPTO_DESC=Hledat skladbu SONG_JUMPTO_TYPE_DESC=Hledat: -SONG_JUMPTO_TYPE1=Všude -SONG_JUMPTO_TYPE2=V názvech -SONG_JUMPTO_TYPE3=V interpretech -SONG_JUMPTO_SONGSFOUND=Nalezeno %d skladeb -SONG_JUMPTO_NOSONGSFOUND=Žádné skladby nenalezeny -SONG_JUMPTO_HELP=Zadejte text pro hledání -SONG_JUMPTO_CATTEXT=Hledat: %s - -PARTY_MODE=párty mód + +PARTY_MODE=Párty mód PARTY_DIFFICULTY=Obtížnost PARTY_PLAYLIST=Mód seznamu stop PARTY_PLAYLIST_ALL=Všechny skladby @@ -308,46 +397,43 @@ PARTY_TEAMS_PLAYER1=Hráčů týmu 1 PARTY_TEAMS_PLAYER2=Hráčů týmu 2 PARTY_TEAMS_PLAYER3=Hráčů týmu 3 -PARTY_LEGEND_CONTINUE=pokračovat +PARTY_LEGEND_CONTINUE=Pokračovat -PARTY_OPTIONS_DESC=nastavení pro hru na párty +PARTY_OPTIONS_DESC=Nastavení pro hru na párty PARTY_OPTIONS_WHEREAMI=Možnosti párty -PARTY_PLAYER_DESC=zadejte jména hráčů a týmů! -PARTY_PLAYER_WHEREAMI=Jména párty -PARTY_PLAYER_ENTER_NAME=vložit jména +PARTY_PLAYER_ENTER_NAME=Vložit jména - -PARTY_ROUNDS_DESC=Vyberte, ve kterých režimech chcete hrát -PARTY_ROUNDS_WHEREAMI=Kola párty -PARTY_ROUNDS_LEGEND_CONTINUE=spustit párty-hru -PARTY_ROUNDCOUNT=počet kol +PARTY_ROUNDS_LEGEND_CONTINUE=Spustit párty-hru +PARTY_ROUNDCOUNT=Počet kol PARTY_SELECTMODE=%d kola -PARTY_ROUND_DESC=další hráč k mikrofonu -PARTY_ROUND_WHEREAMI=Další kolo -PARTY_ROUND_LEGEND_CONTINUE=začít kolo +PARTY_ROUND_LEGEND_CONTINUE=Začít kolo PARTY_SONG_WHEREAMI=Výběr skladeb na párty -PARTY_SONG_LEGEND_CONTINUE=zpívat -PARTY_SONG_MENU=párty menu +PARTY_SONG_LEGEND_CONTINUE=Zpívat +PARTY_SONG_MENU=Párty menu + +OPTION_VALUE_SING=Zpívat +OPTION_VALUE_SELECT_PLAYERS=Výběr hráčů +OPTION_VALUE_OPEN_MENU=Otevřít menu -PARTY_SCORE_DESC=skóre posledního kola +PARTY_SCORE_DESC=Skóre posledního kola PARTY_SCORE_WHEREAMI=Párty body PARTY_WIN_DESC=Vítěz hry párty PARTY_WIN_WHEREAMI=Vítěz párty -PARTY_WIN_LEGEND_CONTINUE=zpět do hlavního menu +PARTY_WIN_LEGEND_CONTINUE=Zpět do hlavního menu PARTY_ROUND=Kolo PARTY_ROUND_WINNER=Vítěz -PARTY_NOTPLAYEDYET=ještě se nehrálo -PARTY_NOBODY=nikdo +PARTY_NOTPLAYEDYET=Ještě se nehrálo +PARTY_NOBODY=Nikdo NEXT_ROUND=Další kolo: PARTY_DISMISSED=Zrušeno! PARTY_SCORE_WINS=%s -PARTY_SCORE_WINS2=vítězství! +PARTY_SCORE_WINS2=Vítězství! MODE_RANDOM_NAME=Náhodný režim ;TODO: MODE_RANDOM_DESC=Keep yourself on your toes! The game will select a mode for you at random! @@ -407,8 +493,6 @@ MODE_BLIND_NAME=Slepý režim ;TODO: MODE_HARDCORE_DESC=Battle for a three-line lead on your opponent! STAT_MAIN=Statistiky -STAT_MAIN_DESC=Obecné -STAT_MAIN_WHEREAMI=Statistiky STAT_OVERVIEW_INTRO=%0:s Statistiky. \n Naposledy vynulováno %1:.2d. %2:.2d. %3:d STAT_OVERVIEW_SONG=%0:d skladeb (%3:d s videem), z čehož %1:d už bylo hráno a %2:d zatím hráno nebylo.\n Nejpopulárnější skladba je %5:s od %4:s. @@ -422,7 +506,7 @@ STAT_DETAIL_WHEREAMI=Podrobné statistiky STAT_NEXT=Další stránka STAT_PREV=Předchozí stránka STAT_REVERSE=Opačné pořadí -STAT_PAGE=Strana %0:d z %1:d stránek\n (%2:d z %3:d záznamů) +STAT_PAGE=Strana %0:d z %1:d stránek \n Záznamů %2:d z %3:d STAT_DESC_SCORES=Nejvyšší skóre STAT_DESC_SCORES_REVERSED=Nejnižší skóre @@ -440,164 +524,24 @@ STAT_DESC_BANDS=Nejoblíbenější kapela STAT_DESC_BANDS_REVERSED=Nejneoblíbenější kapela STAT_FORMAT_BANDS=%0:s \n %1:dx zpíváno -SCREENSHOT_SAVED=Snímek obrazovky uložen -SCREENSHOT_FAILED=Uložení snímku obrazovky selhalo - -INFO_FILE_SAVED=Soubor uložen -ERROR_SAVE_FILE_FAILED=Uložení souboru selhalo -ERROR_FILE_NOT_FOUND=Soubor nenalezen - -ENCODING_ERROR_ASK_FOR_UTF8=Nelze uložit změny v tomto kódování. Změnit na UTF-8? -EDITOR_ERROR_NO_TRACK_SELECTED=Nevybrána žádná stopa - -MSG_ERROR_TITLE=Chyba -MSG_INFO_TITLE=Info -MSG_QUESTION_TITLE=Potvrzení -MSG_QUIT_USDX=Opravdu ukončit UltraStar? -MSG_END_PARTY=Opravdu ukončit párty mód? - -ERROR_NO_SONGS=Žádné skladby nenačteny -ERROR_NO_PLUGINS=Žádné doplňky nenačteny -ERROR_NO_MODES_FOR_CURRENT_SETUP=pro vybrané nastavení hráčů/týmů nejsou dostupné žádné režimy -ERROR_CAN_NOT_START_PARTY= během spouštění párty-módu se objevila chyba -ERROR_CORRUPT_SONG=Skladbu se nepodařilo načíst. -ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Skladbu se nepodařilo načíst: Soubor nenalezen -ERROR_CORRUPT_SONG_NO_NOTES=Skladbu se nepodařilo načíst: Noty nenalezeny -ERROR_CORRUPT_SONG_NO_BREAKS=Skladbu se nepodařilo načíst: Nenalezeny informace o rozdělení do řádků -ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Skladbu se nepodařilo načíst: Chyba při zpracování řádku %0:d -ERROR_NO_EDITOR=Tato funkce není dostupná pro Linux/Mac -ERROR_PLAYER_DEVICE_ASSIGNMENT=Hráč %d je přiřazen k vícero mikrofonům. Zkontrolujte prosím nastavení záznamu -ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Hráč %d není přiřazen k mikrofonu. Zkontrolujte prosím nastavení záznamu - -;TODO: SING_OPTIONS_NETWORK=Internet -;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options -;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings -;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... -;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password -;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name -SING_OPTIONS_NETWORK_AUTO_MODE=Auto -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) -;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) -;TODO: SING_OPTIONS_NETWORK_NO_DLL=No compatible leaderboard-plugin found! -;TODO: SING_OPTIONS_NETWORK_DELETE_PLAYER=Really delete the user %0:s of the website %1:s? -;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert -;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete - -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 -OPTION_ALL_PLAYERS=Všude -OPTION_ALL_SCORES=Všude -;TODO: OPTION_VALUE_SAVE=Save -;TODO: OPTION_VALUE_SEND=Send - -;TODO: MSG_INSERT_USER_TITLE=%0:s -;TODO: MSG_INSERT_USER_DESC=Fill the fields: -;TODO: MSG_INSERT_USER_ADD=Add -MSG_INSERT_USER_CANCEL=Zrušit - -;TODO: WEBSITE_NO_CONNECTION=No website connection! -;TODO: WEBSITE_LOGIN_ERROR=Login Incorrect! -;TODO: WEBSITE_BLANK_LOGIN=There are blank fields! -;TODO: WEBSITE_EXIST_USER=Existing user! -;TODO: WEBSITE_ERROR_SCORE=Scoring Error! -;TODO: WEBSITE_OK_SEND=Score sent successfully! -;TODO: WEBSITE_ERROR_SCORE_DUPLICATED=Existing Score! -;TODO: WEBSITE_ERROR_SONG=Song Not Found! -;TODO: WEBSITE_SAVE_SCORE=Score save successfully! -;TODO: WEBSITE_NO_CONNECTION_SAVE=No website connection! Save user anyway? - -;TODO: SONG_MENU_REFRESH_SCORES=Update Scores -;TODO: SONG_MENU_REFRESH_SCORES_TITLE=Update -;TODO: SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! -;TODO: SONG_MENU_REFRESH_SCORES_ONLINE=Online -;TODO: SONG_MENU_REFRESH_SCORES_FILE=File -;TODO: SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites -;TODO: SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs -;TODO: SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song -;TODO: SONG_MENU_REFRESH_SCORES_REFRESH=Update -;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! -;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! - -;TODO: SONG_SCORE_MAX=Best: -;TODO: SONG_SCORE_MEDIA=Average: - -;TODO: SCORE_SEND_DESC=Send Score -;TODO: SCORE_SEND=Send -;TODO: SCORE_SEND_PLAYER=Player -;TODO: SCORE_SEND_OTHER_USER= Other Username -;TODO: SCORE_SAVE=Save - -;TODO: SCORE_DOWNLOAD_TITLE=Download -;TODO: SCORE_DOWNLOAD_SONG=Song: -;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... -;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... -SCORE_DOWNLOAD_CANCEL=Zrušit -;TODO: SCORE_DOWNLOAD_OK=OK -;TODO: SCORE_DOWNLOAD_SONG_UPDATE=%0:d song(s) change(s) by web! - -;TODO: SING_OPTIONS_GAME_SHOWSCORES=Show Scores -;TODO: OPTION_VALUE_WHEN_EXISTS=When Exists - ;TODO: PARTY_SELECT_MODE=Mode ;TODO: PARTY_MODE_CLASSIC=Classic ;TODO: PARTY_MODE_CLASSIC_FREE=Classic Free ;TODO: PARTY_MODE_CHALLENGE=Challenge ;TODO: PARTY_MODE_TOURNAMENT=Tournament ;TODO: PARTY_MODE_JUKEBOX=Jukebox -;TODO: PARTY_MODE_NOT_AVAILABLE=Not Available! ;TODO: PARTY_MODE_TOURNAMENT_PLAYER_DESC=Insert number and players name ;TODO: PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Number of Players -PARTY_MODE_TOURNAMENT_OPTIONS_DESC=počet kol +PARTY_MODE_TOURNAMENT_OPTIONS_DESC=Počet kol ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_FINAL=Final ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Semifinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Quarterfinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL=Round of 16 -PARTY_MODE_TOURNAMENT_ROUNDS_DESC=další hráč k mikrofonu +PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Další hráč k mikrofonu ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -INFO_FILE_SAVED=Soubor uložen -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - -;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! -;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! - ;TODO: MSG_END_JUKEBOX=Do you want leave Jukebox Mode? ;TODO: JUKEBOX_RANDOM=Random ;TODO: JUKEBOX_REPEAT=Repeat @@ -609,8 +553,6 @@ INFO_FILE_SAVED=Soubor uložen ;TODO: SONG_MENU_SONG=Song ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Menu skladeb ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -626,33 +568,6 @@ SONG_MENU_SORTING_ALL=Všude ;TODO: SONG_MENU_SORTING_DUET=Duets ;TODO: SONG_MENU_SORTING_APPLY=Apply -;TODO: SING_OPTIONS_WEBCAM=Webcam -;TODO: SING_OPTIONS_WEBCAM_DESC=Webcam Settings -;TODO: SING_OPTIONS_WEBCAM_WHEREAMI=Webcam Options -;TODO: SING_OPTIONS_WEBCAM_ID=Webcam -SING_OPTIONS_WEBCAM_RESOLUTION=Rozlišení -;TODO: SING_OPTIONS_WEBCAM_FPS=FPS -;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! -;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip -SING_OPTIONS_WEBCAM_EFFECT=Efekt -;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation -;TODO: SING_OPTIONS_WEBCAM_HUE=Hue -;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview -;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview - -;TODO: SING_OPTIONS_WEBCAM_EFFECT_NORMAL=Normal -;TODO: SING_OPTIONS_WEBCAM_EFFECT_GRAYSCALE=Grayscale -;TODO: SING_OPTIONS_WEBCAM_EFFECT_BLACK_WHITE=Black & White -;TODO: SING_OPTIONS_WEBCAM_EFFECT_NEGATIVE=Negative -;TODO: SING_OPTIONS_WEBCAM_EFFECT_BINARY_IMAGE=Binary Image -;TODO: SING_OPTIONS_WEBCAM_EFFECT_DILATE=Dilate -SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Práh -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EDGES=Edges -;TODO: SING_OPTIONS_WEBCAM_EFFECT_GAUSSIAN_BLUR=Gaussian Blur -;TODO: SING_OPTIONS_WEBCAM_EFFECT_EQUALIZED=Equalized -;TODO: SING_OPTIONS_WEBCAM_EFFECT_ERODE=Erode - ;TODO: PARTY_PLAYLIST_MANUAL=Manual Selection ;TODO: PARTY_MODE_JUKEBOX_NO_SONGS=Playlist is empty! ;TODO: SONG_MENU_OPEN_CATEGORY=Open category @@ -666,85 +581,46 @@ SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Práh ;TODO: NAME_PLAYERS_COUNT=Number of Players ;TODO: NAME_CURRENT_PLAYER=Player -SING_OPTIONS_GAME_SONGMENU=Menu skladeb -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List -;TODO: OPTION_VALUE_MOSAIC=Tile - -;TODO: SING_OPTIONS_JUKEBOX=Jukebox -;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox -;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options - -OPTION_VALUE_TO_SING=zpívat -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next -;TODO: OPTION_VALUE_OTHER=Other -;TODO: OPTION_VALUE_FILL=Fill -;TODO: OPTION_VALUE_OUTLINE=Outline -;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -;TODO: OPTION_VALUE_SALMON=Salmon -;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige -;TODO: OPTION_VALUE_TEAL=Teal -;TODO: OPTION_VALUE_ORCHID=Orchid -;TODO: OPTION_VALUE_STEELBLUE=Steel Blue -;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold -;TODO: OPTION_VALUE_DARKBLUE=Dark Blue -;TODO: OPTION_VALUE_SKY=Sky -;TODO: OPTION_VALUE_HARLEQUIN=Harlequin -;TODO: OPTION_VALUE_CYAN=Cyan -;TODO: OPTION_VALUE_FLAME=Flame - -;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height -;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha -JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Barva -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property -JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Červená -JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Zelená -JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Modrá - ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_LETTERBOX=LetterBox -;TODO: JUKEBOX_SONGOPTIONS_SAVE=Save -;TODO: JUKEBOX_SONGOPTIONS_CLOSE=Close +JUKEBOX_SONGOPTIONS_SAVE=Uložit +JUKEBOX_SONGOPTIONS_CLOSE=Zavřít ;TODO: JUKEBOX_SONGOPTIONS_DEFAULT=Default -;TODO: JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Saved! +JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Uložené! -;TODO: SING_SONG_CREDITS=Credits -;TODO: SING_JUKEBOX=Jukebox -;TODO: SING_JUKEBOX_DESC=Listen to my collection ;TODO: JUKEBOX_MODE=Jukebox Mode -;TODO: JUKEBOX_OPTIONS_DESC=Playlist Options -;TODO: JUKEBOX_OPTIONS_WHEREAMI=Jukebox Options JUKEBOX_OPTIONS_PLAYLIST=Seznam stop ;TODO: JUKEBOX_OPTIONS_PLAYLIST_MODE=Mode -;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing -;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores -OPTION_VALUE_ALL=Všude -;TODO: OPTION_VALUE_PLAYER=Player - -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe ;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +ABOUT_USDX_DEVELOPEDBY=Vyvinuto +;TODO: ABOUT_CHECK_CHECKING=Checking for new updates... +;TODO: ABOUT_CHECK_AVAILABLE=There is a new version available +;TODO: ABOUT_CHECK_UPTODATE=WorldParty is up to date +;TODO: ABOUT_CHECK_CONNECTION=There is no Internet connection +ABOUT_OVERVIEW=Objevte nový způsob zpěvu, sám, v páru nebo s přáteli. \n Zábava je zaručena.\n\nWorldParty je fork původní verze Ultrastar Deluxe 1.1 navržený a vyvinutý týmem UltraStar España, to se počítá s největší karaoke komunitou.\n\n\nTento program je zdarma a libre pod licencí GPL. \n\n Navštivte nás pro více informací.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Vyvinuto +DEVELOPERS_OVERVIEW=Lidé, kteří přispěli k tomuto projektu:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Navštivte nás pro více informací.\n\nhttps://ultrastar-es.org + +SCREENSHOT_SAVED=Snímek obrazovky uložen +SCREENSHOT_FAILED=Uložení snímku obrazovky selhalo + +MSG_ERROR_TITLE=Chyba +MSG_INFO_TITLE=Info +MSG_QUESTION_TITLE=Potvrzení +MSG_QUIT_USDX=Opravdu ukončit UltraStar? +MSG_END_PARTY=Opravdu ukončit párty mód? + +ERROR_NO_SONGS=Žádné skladby nenačteny +ERROR_NO_PLUGINS=Žádné doplňky nenačteny +;TODO: ERROR_LOADING_SONGS=Wait for loading all the songs +ERROR_CORRUPT_SONG=Skladbu se nepodařilo načíst. +ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Skladbu se nepodařilo načíst: Soubor nenalezen +ERROR_CORRUPT_SONG_NO_NOTES=Skladbu se nepodařilo načíst: Noty nenalezeny +ERROR_CORRUPT_SONG_NO_BREAKS=Skladbu se nepodařilo načíst: Nenalezeny informace o rozdělení do řádků +ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Skladbu se nepodařilo načíst: Chyba při zpracování řádku %0:d +ERROR_PLAYER_DEVICE_ASSIGNMENT=Hráč %d je přiřazen k vícero mikrofonům. Zkontrolujte možnosti mikrofonu +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Hráč %d není přiřazen k mikrofonu. Zkontrolujte možnosti mikrofonu diff --git "a/game/languages/\316\225\316\273\316\273\316\267\316\275\316\271\316\272\316\254.ini" "b/game/languages/\316\225\316\273\316\273\316\267\316\275\316\271\316\272\316\254.ini" index 4a981d3d..d4b984e1 100644 --- "a/game/languages/\316\225\316\273\316\273\316\267\316\275\316\271\316\272\316\254.ini" +++ "b/game/languages/\316\225\316\273\316\273\316\267\316\275\316\271\316\272\316\254.ini" @@ -5,8 +5,8 @@ OPTION_VALUE_EASY=Εύκολο OPTION_VALUE_MEDIUM=Μέτριο OPTION_VALUE_HARD=Δύσκολο -;TODO: OPTION_VALUE_ON=On -;TODO: OPTION_VALUE_OFF=Off +OPTION_VALUE_ON=Επί +OPTION_VALUE_OFF=Σβηστός ;TODO: OPTION_VALUE_EDITION=Edition ;TODO: OPTION_VALUE_GENRE=Genre @@ -14,66 +14,62 @@ OPTION_VALUE_LANGUAGE=Γλώσσα OPTION_VALUE_FOLDER=Φάκελος OPTION_VALUE_TITLE=Τίτλος OPTION_VALUE_ARTIST=Καλλιτέχνης -;TODO: OPTION_VALUE_TITLE2=Title2 -;TODO: OPTION_VALUE_ARTIST2=Artist2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade +OPTION_VALUE_TITLE2=Τίτλος2 +OPTION_VALUE_ARTIST2=Καλλιτέχνης2 +OPTION_VALUE_YEAR=Ετος +OPTION_VALUE_DECADE=Δεκαετία OPTION_VALUE_PLAYLIST=Λίστα -;TODO: OPTION_VALUE_BORDERLESS=Borderless +OPTION_VALUE_BORDERLESS=Μεγιστοποιημένη -;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +OPTION_VALUE_WHENNOVIDEO=Όταν δεν υπάρχει βίντεο +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Όταν δεν υπάρχει βίντεο και εικόνα -;TODO: OPTION_VALUE_SMALL=Small -;TODO: OPTION_VALUE_BIG=Big +OPTION_VALUE_SMALL=Μικρό +OPTION_VALUE_BIG=Μεγάλο ;TODO: OPTION_VALUE_HALF=Half ;TODO: OPTION_VALUE_FULL_VID=Full (Video) ;TODO: OPTION_VALUE_FULL_VID_BG=Full (BG & Video) ;TODO: OPTION_VALUE_GAIN_SOFT=Soft -;TODO: OPTION_VALUE_GAIN_MEDIUM=Medium -;TODO: OPTION_VALUE_GAIN_HARD=Hard +OPTION_VALUE_GAIN_MEDIUM=Μεσαίο +OPTION_VALUE_GAIN_HARD=Σκληρά -;TODO: OPTION_VALUE_AUTO=Auto -;TODO: OPTION_VALUE_SEC=Second -;TODO: OPTION_VALUE_SECS=Seconds +OPTION_VALUE_AUTO=Auto +OPTION_VALUE_SEC=Δεύτερος +OPTION_VALUE_SECS=Δευτερόλεπτα -;TODO: OPTION_VALUE_PLAIN=Plain -;TODO: OPTION_VALUE_OLINE1=OLine1 -;TODO: OPTION_VALUE_OLINE2=OLine2 +OPTION_VALUE_PLAIN=Στυλιζαρισμένο +OPTION_VALUE_OLINE1=Με λεπτή άκρη +OPTION_VALUE_OLINE2=Με παχιά άκρη -;TODO: OPTION_VALUE_SIMPLE=Simple +OPTION_VALUE_SIMPLE=Απλός ;TODO: OPTION_VALUE_ZOOM=Zoom ;TODO: OPTION_VALUE_SLIDE=Slide -;TODO: OPTION_VALUE_BALL=Ball +OPTION_VALUE_BALL=Μπάλα ;TODO: OPTION_VALUE_SHIFT=Shift -;TODO: OPTION_VALUE_EURO=Euro -;TODO: OPTION_VALUE_JAPAN=Japan -;TODO: OPTION_VALUE_AMERICAN=American +OPTION_VALUE_EURO=Ευρώ +OPTION_VALUE_JAPAN=Ιαπωνία +OPTION_VALUE_AMERICAN=Αμερικανός -;TODO: OPTION_VALUE_BLUE=Blue -;TODO: OPTION_VALUE_GREEN=Green -;TODO: OPTION_VALUE_PINK=Pink -;TODO: OPTION_VALUE_RED=Red -;TODO: OPTION_VALUE_VIOLET=Violet -;TODO: OPTION_VALUE_ORANGE=Orange -;TODO: OPTION_VALUE_YELLOW=Yellow -;TODO: OPTION_VALUE_BROWN=Brown -;TODO: OPTION_VALUE_BLACK=Black +OPTION_VALUE_BLUE=Μπλε +OPTION_VALUE_GREEN=Πράσινος +OPTION_VALUE_PINK=Ροζ +OPTION_VALUE_RED=κόκκινο +OPTION_VALUE_VIOLET=Βιολέτα +OPTION_VALUE_ORANGE=Πορτοκάλι +OPTION_VALUE_YELLOW=Κίτρινος +OPTION_VALUE_BROWN=Καστανός +OPTION_VALUE_BLACK=Μαύρος OPTION_VALUE_SING=Τραγουδήστε ;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players -;TODO: OPTION_VALUE_OPEN_MENU=Open Menu - -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor -;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor +OPTION_VALUE_OPEN_MENU=Ανοίξτε μενού SING_LOADING=Φόρτωνει... +;TODO: SING_LOADING_SONGS=Loading songs from folder %s SING_CHOOSE_MODE=Επιλογή τρόπου παιχνιδιού SING_SING=Τραγούδηστε @@ -87,9 +83,6 @@ SING_TOOLS=Εργαλεία SING_STATS=Στατιστικά SING_STATS_DESC=Δείτε τα στατιστικά -SING_EDITOR=Δημιουργία -SING_EDITOR_DESC=Φτιάξτε το δικό σας τραγούδι - SING_GAME_OPTIONS=Επιλογές παιχνιδιού SING_GAME_OPTIONS_DESC=Αλλάξτε τις επιλογές του παιχνιδιού @@ -103,10 +96,9 @@ SING_OPTIONS_WHEREAMI=Επιλογές SING_OPTIONS_GAME=Παιχνίδι SING_OPTIONS_GRAPHICS=Γραφικά SING_OPTIONS_SOUND=Ήχος -;TODO: SING_OPTIONS_INPUT=Input SING_OPTIONS_LYRICS=Στίχοι SING_OPTIONS_THEMES=Θέματα -SING_OPTIONS_RECORD=Ηχογράφηση +SING_OPTIONS_MICROPHONES=Ηχογράφηση SING_OPTIONS_ADVANCED=Για προχωρημένους SING_OPTIONS_EXIT=Πίσω @@ -117,15 +109,16 @@ SING_OPTIONS_GAME_DIFFICULTY=Δυσκολία SING_OPTIONS_GAME_LANGUAGE=Γλώσσα SING_OPTIONS_GAME_TABS=Ετικέτες SING_OPTIONS_GAME_SORTING=Ταξινόμιση -SING_OPTIONS_GAME_DEBUG=Αποσυμφόρηση +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Ενεργοποίηση gamepad SING_OPTIONS_GRAPHICS_WHEREAMI=Επιλογές γραφικών SING_OPTIONS_GRAPHICS_DESC=Ρυθμίσεις γραφικών SING_OPTIONS_GRAPHICS_RESOLUTION=Ανάλυση SING_OPTIONS_GRAPHICS_FULLSCREEN=Πλήρης οθόνη -SING_OPTIONS_GRAPHICS_DEPTH=Βάθος +SING_OPTIONS_GRAPHICS_EFFECTSING=Εφέ τραγουδιού +SING_OPTIONS_GRAPHICS_SCREENFADE=Σβήσιμο εικόνας +SING_OPTIONS_GRAPHICS_LOADANIMATION=Φόρτωση κινούμενων εικόνων SING_OPTIONS_GRAPHICS_VISUALIZER=Κινούμενο φόντο -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Οσκιλοσκόπιο SING_OPTIONS_GRAPHICS_LINEBONUS=Μπόνους γραμμής SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Μέγεθος βίντεο @@ -133,20 +126,13 @@ SING_OPTIONS_SOUND_WHEREAMI=Επιλογές ήχου SING_OPTIONS_SOUND_DESC=Επιλογές ήχου SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Ήχος μικροφώνου SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Μουσική στο μενού -SING_OPTIONS_SOUND_MIC_BOOST=Ισχύς μικροφώνου SING_OPTIONS_SOUND_CLICK_ASSIST=Βοήθεια με κλίκ SING_OPTIONS_SOUND_BEAT_CLICK=Βοήθεια ρυθμού -SING_OPTIONS_SOUND_THRESHOLD=Ευαισθησία μικροφώνου SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Με δύο παίχτες ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Ένταση προεπισκόπισης SING_OPTIONS_SOUND_PREVIEWFADING=Σβήσιμο προεπισκόπισης -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - SING_OPTIONS_LYRICS_WHEREAMI=Επιλογές στίχων SING_OPTIONS_LYRICS_DESC=Ρυθμίσιες στίχων SING_OPTIONS_LYRICS_FONT=Γραμματοσειρά @@ -160,43 +146,36 @@ SING_OPTIONS_THEMES_THEME=Θέμα SING_OPTIONS_THEMES_SKIN=Μορφή θέματος SING_OPTIONS_THEMES_COLOR=Χρώμα -SING_OPTIONS_RECORD_WHEREAMI=Επιλογές μικροφώνου -SING_OPTIONS_RECORD_DESC=Ρυθμίσεις μικροφώνου -SING_OPTIONS_RECORD_CARD=Κάρτα ήχου -SING_OPTIONS_RECORD_INPUT=Επιλογή μικροφώνου -SING_OPTIONS_RECORD_CHANNEL=Κανάλι +SING_OPTIONS_MICROPHONES_WHEREAMI=Επιλογές μικροφώνου +SING_OPTIONS_MICROPHONES_DESC=Ρυθμίσεις μικροφώνου +SING_OPTIONS_MICROPHONES_CARD=Κάρτα ήχου +SING_OPTIONS_MICROPHONES_INPUT=Επιλογή μικροφώνου +SING_OPTIONS_MICROPHONES_CHANNEL=Κανάλι +SING_OPTIONS_MICROPHONES_THRESHOLD=Ευαισθησία μικροφώνου +SING_OPTIONS_MICROPHONES_MIC_BOOST=Ισχύς μικροφώνου SING_OPTIONS_ADVANCED_WHEREAMI=Επιλογές για προχωρημένους SING_OPTIONS_ADVANCED_DESC=Ρυθμίσεις για προχωρημένους -SING_OPTIONS_ADVANCED_EFFECTSING=Εφέ τραγουδιού -SING_OPTIONS_ADVANCED_SCREENFADE=Σβήσιμο εικόνας -SING_OPTIONS_ADVANCED_LOADANIMATION=Φόρτωση κινούμενων εικόνων +SING_OPTIONS_ADVANCED_DEBUG=Αποσυμφόρηση +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Οσκιλοσκόπιο SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Ερωτήσεις ασφαλείας SING_OPTIONS_ADVANCED_LINEBONUS=Μπόνους γραμμής -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=Μετά απο την επιλογή τραγουδιού SING_OPTIONS_ADVANCED_PARTYPOPUP=Αυτόματο μενού "Πάρτυ" -SING_EDIT=Δημιουργία -SING_EDIT_MENU_DESCRIPTION=Φτιάξτε το δικό σας τραγούδι - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Εισαγωγή αρχείου κειμένου -SING_EDIT_BUTTON_DESCRIPTION_EXIT=Πίσω -SING_EDIT_BUTTON_CONVERT=Εισαγωγή -SING_EDIT_BUTTON_EXIT=Πίσω - -SING_EDIT_NAVIGATE=Εξερέυνηση -SING_EDIT_SELECT=Επέλεξε -SING_EDIT_EXIT=Πίσω - SING_LEGEND_SELECT=Επέλεξε SING_LEGEND_NAVIGATE=Εξερέυνηση SING_LEGEND_CONTINUE=Συνέχισε SING_LEGEND_ESC=Πίσω -SING_PLAYER_DESC=Γράψε ονόμα(τα) παιχτ-η/ων -SING_PLAYER_WHEREAMI=Ονόματα παιχτών -SING_PLAYER_ENTER_NAME=Γράψε όνομα +SING_PLAYER_TITLE=Προφίλ +SING_PLAYER_READY=Οι παίκτες έτοιμοι να τραγουδήσουν +SING_PLAYER_COUNT=Αριθμός παικτών +SING_PLAYER_EDIT=Προσαρμόστε έναν παίκτη +SING_PLAYER_NAME=Γράψετε το όνομά σας +SING_PLAYER_COLOR=Διάλεξε ένα χρώμα +SING_PLAYER_LEVEL=Επιλέξτε ένα επίπεδο +SING_PLAYER_AVATAR=Επιλέξτε το avatar σας SING_DIFFICULTY_DESC=Διάλεξε δυσκολία SING_DIFFICULTY_WHEREAMI=Δυσκολία @@ -211,10 +190,15 @@ SING_SONG_SELECTION_GOTO=Πήγαινε σε... SING_SONG_SELECTION=Επιλογή τραγουδιου SING_SONG_SELECTION_MENU=Μενού SING_SONG_SELECTION_PLAYLIST=Λίστα +SING_SONG_IN_CAT=Τραγούδι SING_SONGS_IN_CAT=Τραγούδια PLAYLIST_CATTEXT=Λίστα: %s +SING_SONG_SELECTION_LEGEND_TITLE=Θρύλος +SING_SONG_SELECTION_LEGEND_VIDEO=βίντεο +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Ντουέτο -;TODO: SING_TIME=TIME SING_TOTAL=Σύνολο SING_MODE=Τραγούδα σόλο SING_NOTES=Νότες @@ -255,7 +239,6 @@ IMPLODE_GLUE2= και SONG_MENU_NAME_MAIN=Μενού τραγουδιών SONG_MENU_PLAY=Τραγουδήστε SONG_MENU_CHANGEPLAYERS=Αλλάξτε παίχτες -SONG_MENU_EDIT=Επεξεργασία SONG_MENU_MODI=Τραγουδήστε μιά τροποποίηση SONG_MENU_CANCEL=Ακύρωση @@ -321,8 +304,8 @@ PARTY_PLAYER_ENTER_NAME=Γράψε ονόματα ;TODO: PARTY_ROUNDS_DESC=Select which modes you want to play ;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds PARTY_ROUNDS_LEGEND_CONTINUE=Ξεκίνα το παιχνίδι "Πάρτυ" -;TODO: PARTY_ROUNDCOUNT=Number of rounds -;TODO: PARTY_SELECTMODE=Round %d +PARTY_ROUNDCOUNT=Αριθμός γύρων +PARTY_SELECTMODE=Γύρος %d PARTY_ROUND_DESC=Επόμενοι παίχτες PARTY_ROUND_WHEREAMI=Επόμενος γύρος "Πάρτυ" @@ -358,22 +341,22 @@ MODE_HOLDTHELINE_NAME=Μείνε πάνω από τη μπάρα! ;TODO: MODE_HOLDTHELINEBLIND_NAME=Hold the Blind ;TODO: MODE_HOLDTHELINEBLIND_DESC=Keep your rating above the line for the longest, but with the notes hidden! -;TODO: MODE_7000POINTS_NAME=Until 7000 +MODE_7000POINTS_NAME=Μέχρι 7000 ;TODO: MODE_7000POINTS_DESC=Race to 7000 Points! -;TODO: MODE_7000POINTSBLIND_NAME=Blind 7000 +MODE_7000POINTSBLIND_NAME=Τυφλός 7000 ;TODO: MODE_7000POINTSBLIND_DESC=Race to 7000 points, but without seeing the notes! MODE_5000POINTS_NAME=Μέχρι 5000 πόντους ;TODO: MODE_5000POINTS_DESC=Race to 5000 Points! -;TODO: MODE_5000POINTSBLIND_NAME=Blind 5000 +MODE_5000POINTSBLIND_NAME=Τυφλός 5000 ;TODO: MODE_5000POINTSBLIND_DESC=Race to 5000 points, but without seeing the notes! -;TODO: MODE_2000POINTS_NAME=Until 2000 +MODE_2000POINTS_NAME=Μέχρι 2000 ;TODO: MODE_2000POINTS_DESC=Race to 2000 Points! -;TODO: MODE_2000POINTSBLIND_NAME=Blind 2000 +MODE_2000POINTSBLIND_NAME=Τυφλός 2000 ;TODO: MODE_2000POINTSBLIND_DESC=Race to 2000 points, but without seeing the notes! MODE_DUEL_NAME=Μονομαχία @@ -388,16 +371,16 @@ MODE_BLIND_NAME=Στα τυφλά ;TODO: MODE_BLINDTOTAL_NAME=Total Darkness! ;TODO: MODE_BLINDTOTAL_DESC=A duel, but with the notes and the lyrics hidden. Only for the brave! -;TODO: MODE_1000BLIND_NAME = +1000 Blind +MODE_1000BLIND_NAME = +1000 Τυφλός ;TODO: MODE_1000BLIND_DESC = Gain a lead of more than 1000 points, but without seeing the notes! -;TODO: MODE_DEAF_NAME = Deaf +MODE_DEAF_NAME = Κουφός ;TODO: MODE_DEAF_DESC = Think you know the notes? Can you sing it without the acompaniment? ;TODO: MODE_BLINDLYRICS_NAME = No Lyrics ;TODO: MODE_BLINDLYRICS_DESC = Think you know all the lyrics? Sing with the lyrics hidden! -;TODO: MODE_500BLIND_NAME = +500 Blind +MODE_500BLIND_NAME = +500 Τυφλός ;TODO: MODE_500BLIND_DESC = Gain a lead of more than 500 points, but without seeing the notes! ;TODO: MODE_SHORTSONG_NAME = Short Song @@ -422,7 +405,7 @@ STAT_DETAIL_WHEREAMI=Λεπτομερή στατιστικά STAT_NEXT=Επόμενη Σελίδα STAT_PREV=Προηγούμενη σελίδα STAT_REVERSE=Αντίστροφα -STAT_PAGE=Seite %0:d από %1:d σελίδες\n (%2:d of %3:d εισαγωγές) +STAT_PAGE=Seite %0:d από %1:d σελίδες \n %2:d of %3:d εισαγωγές STAT_DESC_SCORES=Υψηλότερες Βαθμολογίες STAT_DESC_SCORES_REVERSED=Χαμηλότερες βαθμολογίες @@ -448,7 +431,6 @@ STAT_FORMAT_BANDS=%0:s \n %1:dx τραγουδήθηκαν ;TODO: ERROR_FILE_NOT_FOUND=File not found ;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? -;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected MSG_ERROR_TITLE=Σφάλμα ;TODO: MSG_INFO_TITLE=Information @@ -465,20 +447,19 @@ ERROR_CORRUPT_SONG_FILE_NOT_FOUND=Το τραγούδι δεν ήταν δυνα ERROR_CORRUPT_SONG_NO_NOTES=Το τραγούδι δεν ήταν δυνατό να φορτώσει: Δεν βρέθηκαν νότες ERROR_CORRUPT_SONG_NO_BREAKS=Το τραγούδι δεν ήταν δυνατό να φορτώσει: Δεν βρέθηκαν κενά ανάμεσα στις νότες ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Το τραγούδι δεν ήταν δυνατό να φορτώσει: Λάθος στην επικόληση της γραμμής %0:d -;TODO: ERROR_NO_EDITOR=This feature is not available on this version. -;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options -;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options +ERROR_PLAYER_DEVICE_ASSIGNMENT=Παίχτης %d έχει εκχωρηθεί σε πολλαπλά μικρόφωνα. Ελέγξτε τις επιλογές μικροφώνου σας +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Παίχτης %d δεν έχει αντιστοιχιστεί σε ένα μικρόφωνο. Ελέγξτε τις επιλογές μικροφώνου σας -;TODO: SING_OPTIONS_NETWORK=Internet +SING_OPTIONS_NETWORK=Διαδίκτυο ;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options ;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings ;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... ;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password +SING_OPTIONS_NETWORK_USERNAME=Όνομα χρήστη +SING_OPTIONS_NETWORK_PASSWORD=Κωδικός πρόσβασης ;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name ;TODO: SING_OPTIONS_NETWORK_AUTO_MODE=Auto -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player +SING_OPTIONS_NETWORK_AUTO_PLAYER=Παίχτης ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) @@ -487,18 +468,18 @@ ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Το τραγούδι δεν ήταν δυν ;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert ;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 +OPTION_PLAYER_1=Παίχτης 1 +OPTION_PLAYER_2=Παίχτης 2 +OPTION_PLAYER_3=Παίχτης 3 +OPTION_PLAYER_4=Παίχτης 4 +OPTION_PLAYER_5=Παίχτης 5 +OPTION_PLAYER_6=Παίχτης 6 OPTION_ALL_PLAYERS=Όλα OPTION_ALL_SCORES=Όλα ;TODO: OPTION_VALUE_SAVE=Save ;TODO: OPTION_VALUE_SEND=Send -;TODO: MSG_INSERT_USER_TITLE=%0:s +MSG_INSERT_USER_TITLE=%0:s ;TODO: MSG_INSERT_USER_DESC=Fill the fields: ;TODO: MSG_INSERT_USER_ADD=Add MSG_INSERT_USER_CANCEL=Ακύρωση @@ -520,23 +501,23 @@ MSG_INSERT_USER_CANCEL=Ακύρωση ;TODO: SONG_MENU_REFRESH_SCORES_ONLINE=Online ;TODO: SONG_MENU_REFRESH_SCORES_FILE=File ;TODO: SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites -;TODO: SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs -;TODO: SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song +SONG_MENU_REFRESH_SCORES_ALL_SONGS=Ολα τα τραγούδια +SONG_MENU_REFRESH_SCORES_ONLY_SONG=Αυτό το τραγούδι ;TODO: SONG_MENU_REFRESH_SCORES_REFRESH=Update ;TODO: SONG_MENU_REFRESH_SCORES_ERROR_CONNECTION=Error connect to the website: %0:s! ;TODO: SONG_MENU_REFRESH_SCORES_ERROR_FILE=File not found: '%0:s [Download Scores]'! ;TODO: SONG_SCORE_MAX=Best: -;TODO: SONG_SCORE_MEDIA=Average: +SONG_SCORE_MEDIA=Μέσος: ;TODO: SCORE_SEND_DESC=Send Score ;TODO: SCORE_SEND=Send -;TODO: SCORE_SEND_PLAYER=Player +SCORE_SEND_PLAYER=Παίχτης ;TODO: SCORE_SEND_OTHER_USER= Other Username ;TODO: SCORE_SAVE=Save -;TODO: SCORE_DOWNLOAD_TITLE=Download -;TODO: SCORE_DOWNLOAD_SONG=Song: +SCORE_DOWNLOAD_TITLE=Κατεβάστε +SCORE_DOWNLOAD_SONG=Τραγούδι: ;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... ;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... SCORE_DOWNLOAD_CANCEL=Ακύρωση @@ -555,8 +536,8 @@ SCORE_DOWNLOAD_CANCEL=Ακύρωση ;TODO: PARTY_MODE_NOT_AVAILABLE=Not Available! ;TODO: PARTY_MODE_TOURNAMENT_PLAYER_DESC=Insert number and players name -;TODO: PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Number of Players -;TODO: PARTY_MODE_TOURNAMENT_OPTIONS_DESC=Number of rounds +PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Αριθμός παικτών +PARTY_MODE_TOURNAMENT_OPTIONS_DESC=Αριθμός γύρων ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_FINAL=Final ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Semifinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Quarterfinals @@ -565,52 +546,20 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Επόμενοι παίχτες ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -;TODO: INFO_FILE_SAVED=File saved -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - ;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! ;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! ;TODO: MSG_END_JUKEBOX=Do you want leave Jukebox Mode? -;TODO: JUKEBOX_RANDOM=Random -;TODO: JUKEBOX_REPEAT=Repeat -;TODO: JUKEBOX_FIND=Find: +JUKEBOX_RANDOM=Τυχαίος +JUKEBOX_REPEAT=Επαναλαμβάνω +JUKEBOX_FIND=Εύρημα: ;TODO: JUKEBOX_SORT=Sort: ;TODO: JUKEBOX_SONGLIST=List of Songs ;TODO: SING_ERROR_DUET_MODE_PARTY = Duet! Not playable in Party Mode! -;TODO: SONG_MENU_SONG=Song +SONG_MENU_SONG=Τραγούδι ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Μενού τραγουδιού ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -623,7 +572,7 @@ SONG_MENU_DELETE_SONG=Διέγραψε τραγούδι ;TODO: SONG_MENU_SORTING_TABS_ON=Tabs On ;TODO: SONG_MENU_SORTING_TABS_OFF=Tabs Off SONG_MENU_SORTING_ALL=Όλα -;TODO: SONG_MENU_SORTING_DUET=Duets +SONG_MENU_SORTING_DUET=Ντουέτες ;TODO: SONG_MENU_SORTING_APPLY=Apply ;TODO: SING_OPTIONS_WEBCAM=Webcam @@ -636,8 +585,9 @@ SING_OPTIONS_WEBCAM_RESOLUTION=Ανάλυση ;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip SING_OPTIONS_WEBCAM_EFFECT=Εφέ ;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation +SING_OPTIONS_WEBCAM_SATURATION=Κορεσμός ;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +SING_OPTIONS_WEBCAM_PREVIEW=Ενεργοποίηση προεπισκόπησης ;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview ;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview @@ -667,56 +617,56 @@ SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Ευαισθησία μικροφώνου ;TODO: NAME_CURRENT_PLAYER=Player SING_OPTIONS_GAME_SONGMENU=Μενού τραγουδιού -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List -;TODO: OPTION_VALUE_MOSAIC=Tile +OPTION_VALUE_ROULETTE=Ρουλέτα +OPTION_VALUE_CHESSBOARD=Σκακιέρα +OPTION_VALUE_CAROUSEL=Στροβιλοδρόμιο +OPTION_VALUE_SLOT_MACHINE=Κουλοχέρης +OPTION_VALUE_LIST=Λίστα +OPTION_VALUE_MOSAIC=Πλακάκι ;TODO: SING_OPTIONS_JUKEBOX=Jukebox ;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox ;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options OPTION_VALUE_TO_SING=Τραγουδήστε -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next +OPTION_VALUE_ACTUAL=Άνω +OPTION_VALUE_NEXT=Κάτω μέρος ;TODO: OPTION_VALUE_OTHER=Other ;TODO: OPTION_VALUE_FILL=Fill ;TODO: OPTION_VALUE_OUTLINE=Outline -;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -;TODO: OPTION_VALUE_SALMON=Salmon -;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige -;TODO: OPTION_VALUE_TEAL=Teal -;TODO: OPTION_VALUE_ORCHID=Orchid +OPTION_VALUE_GRAY=Γκρί +OPTION_VALUE_WHITE=άσπρο +OPTION_VALUE_TURQUOISE=Τουρκουάζ +OPTION_VALUE_SALMON=Σολομός +OPTION_VALUE_GREENYELLOW=Πράσινο κίτρινο +OPTION_VALUE_LAVENDER=Λεβάντα +OPTION_VALUE_BEIGE=Μπεζ +OPTION_VALUE_TEAL=Βάσκας +OPTION_VALUE_ORCHID=Ορχιδέα ;TODO: OPTION_VALUE_STEELBLUE=Steel Blue -;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold -;TODO: OPTION_VALUE_DARKBLUE=Dark Blue -;TODO: OPTION_VALUE_SKY=Sky -;TODO: OPTION_VALUE_HARLEQUIN=Harlequin -;TODO: OPTION_VALUE_CYAN=Cyan -;TODO: OPTION_VALUE_FLAME=Flame +OPTION_VALUE_PLUM=Δαμάσκηνο +OPTION_VALUE_CHOCOLATE=Σοκολάτα +OPTION_VALUE_GOLD=Χρυσός +OPTION_VALUE_DARKBLUE=Σκούρο μπλε +OPTION_VALUE_SKY=Ουρανός +OPTION_VALUE_HARLEQUIN=Αρλεκίνος +OPTION_VALUE_CYAN=Κυανό +OPTION_VALUE_FLAME=Φλόγα ;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height +JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Αποψη +JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Πλάτος +JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Υψος ;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size +JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Μέγεθος ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Διαφάνεια JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Χρώμα -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line +JUKEBOX_SONGOPTIONS_LYRIC_LINE=Γραμμή ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Red -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Green -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blue +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=κόκκινο +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Πράσινος +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Μπλε ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop @@ -727,7 +677,7 @@ JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Χρώμα ;TODO: JUKEBOX_SONGOPTIONS_DEFAULT=Default ;TODO: JUKEBOX_SONGOPTIONS_OPTIONSSAVED=Saved! -;TODO: SING_SONG_CREDITS=Credits +SING_SONG_CREDITS=Πιστώσεις ;TODO: SING_JUKEBOX=Jukebox ;TODO: SING_JUKEBOX_DESC=Listen to my collection ;TODO: JUKEBOX_MODE=Jukebox Mode @@ -739,12 +689,17 @@ JUKEBOX_OPTIONS_PLAYLIST=Λίστα ;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing ;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores OPTION_VALUE_ALL=Όλα -;TODO: OPTION_VALUE_PLAYER=Player - -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +OPTION_VALUE_PLAYER=Παίχτης + +SING_ABOUT=Σχετικά με +SING_ABOUT_DESC=Σχετικά με Ultrastar Deluxe WorldParty +ABOUT_MAIN=Σχετικά με... +ABOUT_USDX_DEVELOPEDBY=Αναπτύχθηκε από +ABOUT_CHECK_CHECKING=Έλεγχος για νέες ενημερώσεις... +ABOUT_CHECK_AVAILABLE=Υπάρχει διαθέσιμη μια νέα έκδοση +ABOUT_CHECK_UPTODATE=WorldParty είναι ενημερωμένο +ABOUT_CHECK_CONNECTION=Δεν υπάρχει σύνδεση στο Internet +;TODO: ABOUT_OVERVIEW=Discover a new way of singing, alone, in couple, or with friends. \n Fun is guaranteed.\n\nWorldParty is a fork of the original version Ultrastar Deluxe 1.1 designed and developed by UltraStar España Team, it counts with the biggest karaoke community.\n\n\nThis program is free and libre under the GPL license. \n\n Visit us for more information.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Αναπτύχθηκε από +DEVELOPERS_OVERVIEW=Οι άνθρωποι που συνέβαλαν σε αυτό το έργο:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Επισκεφθείτε μας για περισσότερες πληροφορίες.\n\nhttps://ultrastar-es.org diff --git "a/game/languages/\320\241\321\200\320\277\321\201\320\272\320\270.ini" "b/game/languages/\320\241\321\200\320\277\321\201\320\272\320\270.ini" index 13319ad1..4042e638 100644 --- "a/game/languages/\320\241\321\200\320\277\321\201\320\272\320\270.ini" +++ "b/game/languages/\320\241\321\200\320\277\321\201\320\272\320\270.ini" @@ -5,25 +5,25 @@ OPTION_VALUE_EASY=Lako OPTION_VALUE_MEDIUM=Normalno OPTION_VALUE_HARD=Tesko -;TODO: OPTION_VALUE_ON=On -;TODO: OPTION_VALUE_OFF=Off +OPTION_VALUE_ON=на +OPTION_VALUE_OFF=Ван -;TODO: OPTION_VALUE_EDITION=Edition -;TODO: OPTION_VALUE_GENRE=Genre +OPTION_VALUE_EDITION=Издање +OPTION_VALUE_GENRE=Жанр OPTION_VALUE_LANGUAGE=Jezik OPTION_VALUE_FOLDER=Direktorijum OPTION_VALUE_TITLE=Naziv OPTION_VALUE_ARTIST=Izvodjac -;TODO: OPTION_VALUE_TITLE2=Title2 -;TODO: OPTION_VALUE_ARTIST2=Artist2 -;TODO: OPTION_VALUE_YEAR=Year -;TODO: OPTION_VALUE_DECADE=Decade -OPTION_VALUE_PLAYLIST=lista pesama +OPTION_VALUE_TITLE2=Naziv2 +OPTION_VALUE_ARTIST2=Izvodjac2 +OPTION_VALUE_YEAR=Година +OPTION_VALUE_DECADE=Декада +OPTION_VALUE_PLAYLIST=Lista pesama -;TODO: OPTION_VALUE_BORDERLESS=Borderless +OPTION_VALUE_BORDERLESS=Макимизед -;TODO: OPTION_VALUE_WHENNOVIDEO=When No Video -;TODO: OPTION_VALUE_WHENNOVIDEOANDIMAGE=When No Video and Image +OPTION_VALUE_WHENNOVIDEO=Када нема видео записа +OPTION_VALUE_WHENNOVIDEOANDIMAGE=Када нема видео и слике ;TODO: OPTION_VALUE_SMALL=Small ;TODO: OPTION_VALUE_BIG=Big @@ -36,117 +36,103 @@ OPTION_VALUE_PLAYLIST=lista pesama ;TODO: OPTION_VALUE_GAIN_MEDIUM=Medium ;TODO: OPTION_VALUE_GAIN_HARD=Hard -;TODO: OPTION_VALUE_AUTO=Auto +OPTION_VALUE_AUTO=Ауто ;TODO: OPTION_VALUE_SEC=Second -;TODO: OPTION_VALUE_SECS=Seconds +OPTION_VALUE_SECS=Секунди -;TODO: OPTION_VALUE_PLAIN=Plain -;TODO: OPTION_VALUE_OLINE1=OLine1 -;TODO: OPTION_VALUE_OLINE2=OLine2 +OPTION_VALUE_PLAIN=Стилизед +OPTION_VALUE_OLINE1=Са танким рубом +OPTION_VALUE_OLINE2=Са дебелом ивицом ;TODO: OPTION_VALUE_SIMPLE=Simple ;TODO: OPTION_VALUE_ZOOM=Zoom ;TODO: OPTION_VALUE_SLIDE=Slide -;TODO: OPTION_VALUE_BALL=Ball +OPTION_VALUE_BALL=Лопта ;TODO: OPTION_VALUE_SHIFT=Shift -;TODO: OPTION_VALUE_EURO=Euro -;TODO: OPTION_VALUE_JAPAN=Japan -;TODO: OPTION_VALUE_AMERICAN=American +OPTION_VALUE_EURO=Еуро +OPTION_VALUE_JAPAN=Јапан +OPTION_VALUE_AMERICAN=Американац -;TODO: OPTION_VALUE_BLUE=Blue -;TODO: OPTION_VALUE_GREEN=Green -;TODO: OPTION_VALUE_PINK=Pink -;TODO: OPTION_VALUE_RED=Red -;TODO: OPTION_VALUE_VIOLET=Violet -;TODO: OPTION_VALUE_ORANGE=Orange -;TODO: OPTION_VALUE_YELLOW=Yellow -;TODO: OPTION_VALUE_BROWN=Brown -;TODO: OPTION_VALUE_BLACK=Black +OPTION_VALUE_BLUE=Плави +OPTION_VALUE_GREEN=Зелен +OPTION_VALUE_PINK=Пинк +OPTION_VALUE_RED=Црвена +OPTION_VALUE_VIOLET=Виолет +OPTION_VALUE_ORANGE=Наранџаста +OPTION_VALUE_YELLOW=Жута +OPTION_VALUE_BROWN=Бровн +OPTION_VALUE_BLACK=Црн OPTION_VALUE_SING=pevaj -;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players -;TODO: OPTION_VALUE_OPEN_MENU=Open Menu - -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor -;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor +OPTION_VALUE_SELECT_PLAYERS=Изаберите играче +OPTION_VALUE_OPEN_MENU=Отворите мени SING_LOADING=Ucitava se... +SING_LOADING_SONGS=Лоадинг песме из фолдера %s -SING_CHOOSE_MODE=izaberi mod +SING_CHOOSE_MODE=Izaberi mod SING_SING=pevaj -SING_SING_DESC=brza igra: pevaj solo ili u duetu +SING_SING_DESC=Brza igra: pevaj solo ili u duetu -SING_MULTI=tim +SING_MULTI=Tim SING_MULTI_DESC=pevaj u timskom modu -SING_TOOLS=alati +SING_TOOLS=Alati -SING_STATS=statistike +SING_STATS=Statistike SING_STATS_DESC=pogledaj statistike -SING_EDITOR=editor -SING_EDITOR_DESC=napravi svoje pesme - -SING_GAME_OPTIONS=oprcije igre +SING_GAME_OPTIONS=Oprcije igre SING_GAME_OPTIONS_DESC=promeni podesavanja igre -SING_EXIT=izlaz -SING_EXIT_DESC=izadji iz igre +SING_EXIT=Izlaz +SING_EXIT_DESC=Izadji iz igre -SING_OPTIONS=opcije +SING_OPTIONS=Opcije SING_OPTIONS_DESC=promeni podesavanja SING_OPTIONS_WHEREAMI=Opcije -SING_OPTIONS_GAME=igra -SING_OPTIONS_GRAPHICS=grafika -SING_OPTIONS_SOUND=zvuk -;TODO: SING_OPTIONS_INPUT=Input -SING_OPTIONS_LYRICS=lirike -SING_OPTIONS_THEMES=teme -SING_OPTIONS_RECORD=snimanje -SING_OPTIONS_ADVANCED=ostalo -SING_OPTIONS_EXIT=nazad +SING_OPTIONS_GAME=Igra +SING_OPTIONS_GRAPHICS=Grafika +SING_OPTIONS_SOUND=Zvuk +SING_OPTIONS_LYRICS=Lirike +SING_OPTIONS_THEMES=Teme +SING_OPTIONS_MICROPHONES=Snimanje +SING_OPTIONS_ADVANCED=Ostalo +SING_OPTIONS_EXIT=Nazad SING_OPTIONS_GAME_WHEREAMI=Opcije Igra -SING_OPTIONS_GAME_DESC=opsta podesavanja igre +SING_OPTIONS_GAME_DESC=Opsta podesavanja igre SING_OPTIONS_GAME_PLAYERS=Igraci SING_OPTIONS_GAME_DIFFICULTY=Tezina SING_OPTIONS_GAME_LANGUAGE=Jezik SING_OPTIONS_GAME_TABS=Tabovi SING_OPTIONS_GAME_SORTING=Sortiranje -SING_OPTIONS_GAME_DEBUG=Dibagiranje +SING_OPTIONS_GAME_JOYPAD_SUPPORT=Активирајте гамепад SING_OPTIONS_GRAPHICS_WHEREAMI=Opcije Grafika -SING_OPTIONS_GRAPHICS_DESC=graficka podesavanja +SING_OPTIONS_GRAPHICS_DESC=Graficka podesavanja SING_OPTIONS_GRAPHICS_RESOLUTION=Rezolucija SING_OPTIONS_GRAPHICS_FULLSCREEN=Pun Ekran -SING_OPTIONS_GRAPHICS_DEPTH=Boje -;TODO: SING_OPTIONS_GRAPHICS_VISUALIZER=Visualization -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=Osciloskop +SING_OPTIONS_GRAPHICS_EFFECTSING=Efekti Pevanja +SING_OPTIONS_GRAPHICS_SCREENFADE=Pomracenje Ekrana +SING_OPTIONS_GRAPHICS_LOADANIMATION=Animacija Ucitavanja +SING_OPTIONS_GRAPHICS_VISUALIZER=Визуелизација SING_OPTIONS_GRAPHICS_LINEBONUS=Bonus Linija SING_OPTIONS_GRAPHICS_MOVIE_SIZE=Velicina Videa SING_OPTIONS_SOUND_WHEREAMI=Opcije Zvuk SING_OPTIONS_SOUND_DESC=podesavanja zvuka -;TODO: SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Microphone Playback -;TODO: SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Background music -SING_OPTIONS_SOUND_MIC_BOOST=Pojacanje mikrofona +SING_OPTIONS_SOUND_VOICEPASSTHROUGH=Чујте мој глас +SING_OPTIONS_SOUND_BACKGROUNDMUSIC=Позадинска музика SING_OPTIONS_SOUND_CLICK_ASSIST=Click assist SING_OPTIONS_SOUND_BEAT_CLICK=Beat click -SING_OPTIONS_SOUND_THRESHOLD=Stepen Cujnosti SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=Mod za dva igraca ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=Provera jacine tona SING_OPTIONS_SOUND_PREVIEWFADING=Provera pomracenja -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - SING_OPTIONS_LYRICS_WHEREAMI=Opcije Lirike SING_OPTIONS_LYRICS_DESC=Podesavanja lirika SING_OPTIONS_LYRICS_FONT=Font @@ -160,70 +146,68 @@ SING_OPTIONS_THEMES_THEME=Tema SING_OPTIONS_THEMES_SKIN=Skin SING_OPTIONS_THEMES_COLOR=Boja -SING_OPTIONS_RECORD_WHEREAMI=Opcije Snimanje -SING_OPTIONS_RECORD_DESC=podesavanja mikrofona -SING_OPTIONS_RECORD_CARD=Zvucna Kartica -SING_OPTIONS_RECORD_INPUT=Ulaz -SING_OPTIONS_RECORD_CHANNEL=Kanal +SING_OPTIONS_MICROPHONES_WHEREAMI=Opcije Snimanje +SING_OPTIONS_MICROPHONES_DESC=podesavanja mikrofona +SING_OPTIONS_MICROPHONES_CARD=Zvucna Kartica +SING_OPTIONS_MICROPHONES_INPUT=Ulaz +SING_OPTIONS_MICROPHONES_CHANNEL=Kanal +SING_OPTIONS_MICROPHONES_THRESHOLD=Stepen Cujnosti +SING_OPTIONS_MICROPHONES_MIC_BOOST=Pojacanje mikrofona SING_OPTIONS_ADVANCED_WHEREAMI=Opcije Ostalo -SING_OPTIONS_ADVANCED_DESC=ostala podesavanja -SING_OPTIONS_ADVANCED_EFFECTSING=Efekti Pevanja -SING_OPTIONS_ADVANCED_SCREENFADE=Pomracenje Ekrana -SING_OPTIONS_ADVANCED_LOADANIMATION=Animacija Ucitavanja +SING_OPTIONS_ADVANCED_DESC=Ostala podesavanja +SING_OPTIONS_ADVANCED_DEBUG=Dibagiranje +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=Osciloskop SING_OPTIONS_ADVANCED_ASKBEFOREDEL=Bezbednosna Pitanja SING_OPTIONS_ADVANCED_LINEBONUS=Linijski Bonus -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=Posle Odabira Pesme SING_OPTIONS_ADVANCED_PARTYPOPUP=Automatski Timski Meni -SING_EDIT=editor -SING_EDIT_MENU_DESCRIPTION=napravi svoje pesme - -;TODO: SING_EDIT_BUTTON_DESCRIPTION_CONVERT=Import text from midi file -SING_EDIT_BUTTON_DESCRIPTION_EXIT=nazad -;TODO: SING_EDIT_BUTTON_CONVERT=Import -SING_EDIT_BUTTON_EXIT=nazad - -SING_EDIT_NAVIGATE=biraj -SING_EDIT_SELECT=izaberi -SING_EDIT_EXIT=nazad - -SING_LEGEND_SELECT=izaberi -SING_LEGEND_NAVIGATE=biraj -SING_LEGEND_CONTINUE=nastavi -SING_LEGEND_ESC=nazad - -SING_PLAYER_DESC=unesi ime igraca -SING_PLAYER_WHEREAMI=Imenaigraca -SING_PLAYER_ENTER_NAME=unesi ime - -SING_DIFFICULTY_DESC=izaberi tezinu +SING_LEGEND_SELECT=Izaberi +SING_LEGEND_NAVIGATE=Biraj +SING_LEGEND_CONTINUE=Nastavi +SING_LEGEND_ESC=Nazad + +SING_PLAYER_TITLE=Профили +;TODO: SING_PLAYER_READY=Players ready to sing +SING_PLAYER_COUNT=Број играча +SING_PLAYER_EDIT=Прилагодите играч +SING_PLAYER_NAME=Напишете своје име +SING_PLAYER_COLOR=Изаберите боју +SING_PLAYER_LEVEL=Изаберите ниво +SING_PLAYER_AVATAR=Изаберите свој аватар + +SING_DIFFICULTY_DESC=Izaberi tezinu SING_DIFFICULTY_WHEREAMI=Tezina -SING_DIFFICULTY_CONTINUE=do odabira pesme +SING_DIFFICULTY_CONTINUE=Do odabira pesme SING_EASY=Lako SING_MEDIUM=Normalno SING_HARD=Tesko -SING_SONG_SELECTION_DESC=izaberi svoju pesmu +SING_SONG_SELECTION_DESC=Izaberi svoju pesmu SING_SONG_SELECTION_WHEREAMI=Izbor Pesme -SING_SONG_SELECTION_GOTO=idi na... -SING_SONG_SELECTION=izbor pesme -SING_SONG_SELECTION_MENU=meni -SING_SONG_SELECTION_PLAYLIST=lista pesama -SING_SONGS_IN_CAT=Pesme +SING_SONG_SELECTION_GOTO=Idi na... +SING_SONG_SELECTION=Izbor pesme +SING_SONG_SELECTION_MENU=Meni +SING_SONG_SELECTION_PLAYLIST=Lista pesama +SING_SONG_IN_CAT=Сонг +SING_SONGS_IN_CAT=Песме PLAYLIST_CATTEXT=Playlist: %s +SING_SONG_SELECTION_LEGEND_TITLE=Легенда +SING_SONG_SELECTION_LEGEND_VIDEO=Видео +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +SING_SONG_SELECTION_LEGEND_DUET=Дует -;TODO: SING_TIME=TIME -SING_TOTAL=total +SING_TOTAL=Total SING_MODE=pevaj solo -SING_NOTES=note -SING_GOLDEN_NOTES=zlatne note -SING_PHRASE_BONUS=linijski bonus +SING_NOTES=Note +SING_GOLDEN_NOTES=Zlatne note +SING_PHRASE_BONUS=Linijski bonus SING_MENU=Glavni Meni -SONG_SCORE=rezultat pesme +SONG_SCORE=Rezultat pesme SONG_SCORE_WHEREAMI=Rezultat SING_SCORE_TONE_DEAF=Antitalenat @@ -235,27 +219,26 @@ SING_SCORE_LEAD_SINGER=Solista SING_SCORE_SUPERSTAR=SuperZvezda SING_SCORE_ULTRASTAR=UltraZvezda -SING_TOP_5_CHARTS=najboljih 5 Igraca -SING_TOP_5_CHARTS_WHEREAMI=najboljih pet -SING_TOP_5_CHARTS_CONTINUE=do izbora pesme +SING_TOP_5_CHARTS=Najboljih 5 Igraca +SING_TOP_5_CHARTS_WHEREAMI=Najboljih pet +SING_TOP_5_CHARTS_CONTINUE=Do izbora pesme ;TODO: SING_TOP_5_CHARTS_SWITCH_DIFFICULTY=Switch difficulty -POPUP_PERFECT=savrseno! -POPUP_AWESOME=odlicno! -POPUP_GREAT=sjajno! -POPUP_GOOD=dobro! -POPUP_NOTBAD=nije lose! -POPUP_BAD=lose! -POPUP_POOR=jedno! -POPUP_AWFUL=grozno! +POPUP_PERFECT=Savrseno! +POPUP_AWESOME=Odlicno! +POPUP_GREAT=Sjajno! +POPUP_GOOD=Dobro! +POPUP_NOTBAD=Nije lose! +POPUP_BAD=Lose! +POPUP_POOR=Jedno! +POPUP_AWFUL=Grozno! IMPLODE_GLUE1=, IMPLODE_GLUE2= i -SONG_MENU_NAME_MAIN=meni pesme +SONG_MENU_NAME_MAIN=Meni pesme SONG_MENU_PLAY=Pevaj SONG_MENU_CHANGEPLAYERS=Promeni Igrace -SONG_MENU_EDIT=Edituj SONG_MENU_MODI=Pevaj Modi SONG_MENU_CANCEL=Nazad @@ -264,8 +247,8 @@ SONG_MENU_PLAYLIST_ADD=Dodaj Pesmu SONG_MENU_PLAYLIST_DEL=Obrisi Pesmu SONG_MENU_NAME_PLAYLIST_ADD=Dodaj Pesmu -SONG_MENU_PLAYLIST_ADD_NEW=na novu listu -SONG_MENU_PLAYLIST_ADD_EXISTING=na postojecu listu +SONG_MENU_PLAYLIST_ADD_NEW=Na novu listu +SONG_MENU_PLAYLIST_ADD_EXISTING=Na postojecu listu SONG_MENU_PLAYLIST_NOEXISTING=Nema dostupnih lista SONG_MENU_NAME_PLAYLIST_NEW=Nova Lista @@ -277,17 +260,17 @@ SONG_MENU_YES=Da SONG_MENU_NO=Ne SONG_MENU_NAME_PLAYLIST_LOAD=Otvori Listu -SONG_MENU_PLAYLIST_LOAD=otvori -SONG_MENU_PLAYLIST_DELCURRENT=obrisi Trenutnu Listu +SONG_MENU_PLAYLIST_LOAD=Otvori +SONG_MENU_PLAYLIST_DELCURRENT=Obrisi Trenutnu Listu SONG_MENU_NAME_PLAYLIST_DEL=Obrisi listu? SONG_MENU_NAME_PARTY_MAIN=Timski Meni SONG_MENU_JOKER=Dzoker -SONG_MENU_NAME_PARTY_JOKER=uzmi dzokera +SONG_MENU_NAME_PARTY_JOKER=Uzmi dzokera -SONG_JUMPTO_DESC=trazi pesmu +SONG_JUMPTO_DESC=Trazi pesmu SONG_JUMPTO_TYPE_DESC=Trazi: SONG_JUMPTO_TYPE1=Sve SONG_JUMPTO_TYPE2=Naziv @@ -297,7 +280,7 @@ SONG_JUMPTO_NOSONGSFOUND=Nema nadjenih pesama SONG_JUMPTO_HELP=Upisi tekst koji trazis SONG_JUMPTO_CATTEXT=Search for: %s -PARTY_MODE=timski mod +PARTY_MODE=Timski mod PARTY_DIFFICULTY=Tezina PARTY_PLAYLIST=Mod Liste Pesama PARTY_PLAYLIST_ALL=Sve Pesme @@ -308,41 +291,41 @@ PARTY_TEAMS_PLAYER1=Igrac Tim1 PARTY_TEAMS_PLAYER2=Igrac Tim2 PARTY_TEAMS_PLAYER3=Igrac Tim3 -PARTY_LEGEND_CONTINUE=nastavi +PARTY_LEGEND_CONTINUE=Nastavi PARTY_OPTIONS_DESC=podesavanja za timsku igru PARTY_OPTIONS_WHEREAMI=Timske Opcije -PARTY_PLAYER_DESC=unesi imena igraca i timova! +PARTY_PLAYER_DESC=Unesi imena igraca i timova! PARTY_PLAYER_WHEREAMI=Imena Timova -PARTY_PLAYER_ENTER_NAME=unesi imena +PARTY_PLAYER_ENTER_NAME=Unesi imena ;TODO: PARTY_ROUNDS_DESC=Select which modes you want to play ;TODO: PARTY_ROUNDS_WHEREAMI=Party Rounds -PARTY_ROUNDS_LEGEND_CONTINUE=zapocni timsku igru -;TODO: PARTY_ROUNDCOUNT=Number of rounds +PARTY_ROUNDS_LEGEND_CONTINUE=Zapocni timsku igru +PARTY_ROUNDCOUNT=Број рунди ;TODO: PARTY_SELECTMODE=Round %d -PARTY_ROUND_DESC=sledeci igraci za mikrofonom +PARTY_ROUND_DESC=Sledeci igraci za mikrofonom PARTY_ROUND_WHEREAMI=Timska Sledeca Runda PARTY_ROUND_LEGEND_CONTINUE=pocni rundu PARTY_SONG_WHEREAMI=Timski Izbor Pesama PARTY_SONG_LEGEND_CONTINUE=povaj -PARTY_SONG_MENU=timski meni +PARTY_SONG_MENU=Timski meni -PARTY_SCORE_DESC=rezultat poslednje runde +PARTY_SCORE_DESC=Rezultat poslednje runde PARTY_SCORE_WHEREAMI=Timski Poeni PARTY_WIN_DESC=pobednik timske igre PARTY_WIN_WHEREAMI=Timski Pobednik -PARTY_WIN_LEGEND_CONTINUE=nazad u glavni meni +PARTY_WIN_LEGEND_CONTINUE=Nazad u glavni meni PARTY_ROUND=Runda PARTY_ROUND_WINNER=Pobednik -PARTY_NOTPLAYEDYET=nije jos igrao -PARTY_NOBODY=niko +PARTY_NOTPLAYEDYET=Nije jos igrao +PARTY_NOBODY=Niko NEXT_ROUND=Sledeca runda: PARTY_DISMISSED=Otpusten! @@ -358,22 +341,22 @@ MODE_HOLDTHELINE_NAME=Drzi liniju ;TODO: MODE_HOLDTHELINEBLIND_NAME=Hold the Blind ;TODO: MODE_HOLDTHELINEBLIND_DESC=Keep your rating above the line for the longest, but with the notes hidden! -;TODO: MODE_7000POINTS_NAME=Until 7000 +MODE_7000POINTS_NAME=Све док 7000 ;TODO: MODE_7000POINTS_DESC=Race to 7000 Points! -;TODO: MODE_7000POINTSBLIND_NAME=Blind 7000 +MODE_7000POINTSBLIND_NAME=Слеп 7000 ;TODO: MODE_7000POINTSBLIND_DESC=Race to 7000 points, but without seeing the notes! MODE_5000POINTS_NAME=Do 5000 ;TODO: MODE_5000POINTS_DESC=Race to 5000 Points! -;TODO: MODE_5000POINTSBLIND_NAME=Blind 5000 +MODE_5000POINTSBLIND_NAME=Слеп 5000 ;TODO: MODE_5000POINTSBLIND_DESC=Race to 5000 points, but without seeing the notes! -;TODO: MODE_2000POINTS_NAME=Until 2000 +MODE_2000POINTS_NAME=Све док 2000 ;TODO: MODE_2000POINTS_DESC=Race to 2000 Points! -;TODO: MODE_2000POINTSBLIND_NAME=Blind 2000 +MODE_2000POINTSBLIND_NAME=Слеп 2000 ;TODO: MODE_2000POINTSBLIND_DESC=Race to 2000 points, but without seeing the notes! MODE_DUEL_NAME=Duel @@ -388,16 +371,16 @@ MODE_BLIND_NAME=Slepi Mod ;TODO: MODE_BLINDTOTAL_NAME=Total Darkness! ;TODO: MODE_BLINDTOTAL_DESC=A duel, but with the notes and the lyrics hidden. Only for the brave! -;TODO: MODE_1000BLIND_NAME = +1000 Blind +MODE_1000BLIND_NAME = +1000 Слеп ;TODO: MODE_1000BLIND_DESC = Gain a lead of more than 1000 points, but without seeing the notes! -;TODO: MODE_DEAF_NAME = Deaf +MODE_DEAF_NAME = Глуви ;TODO: MODE_DEAF_DESC = Think you know the notes? Can you sing it without the acompaniment? ;TODO: MODE_BLINDLYRICS_NAME = No Lyrics ;TODO: MODE_BLINDLYRICS_DESC = Think you know all the lyrics? Sing with the lyrics hidden! -;TODO: MODE_500BLIND_NAME = +500 Blind +MODE_500BLIND_NAME = +500 Слеп ;TODO: MODE_500BLIND_DESC = Gain a lead of more than 500 points, but without seeing the notes! ;TODO: MODE_SHORTSONG_NAME = Short Song @@ -422,7 +405,7 @@ STAT_DETAIL_WHEREAMI=Detalji Statistike STAT_NEXT=Sledeca Strana STAT_PREV=Prethodna Strana STAT_REVERSE=Obrnuti Redosled -STAT_PAGE=Seite %0:d of %1:d strana\n (%2:d od %3:d unosa) +STAT_PAGE=Seite %0:d of %1:d strana \n %2:d od %3:d Unosa STAT_DESC_SCORES=NajboljiRezultati STAT_DESC_SCORES_REVERSED=NajgoriRezultati @@ -448,7 +431,6 @@ STAT_FORMAT_BANDS=%0:s \n %1:dx Pevano ;TODO: ERROR_FILE_NOT_FOUND=File not found ;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? -;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected MSG_ERROR_TITLE=Greska ;TODO: MSG_INFO_TITLE=Information @@ -465,20 +447,19 @@ ERROR_CORRUPT_SONG=Pesma se ne moze ucitati. ;TODO: ERROR_CORRUPT_SONG_NO_NOTES=Song could not be loaded: Can''t find any notes ;TODO: ERROR_CORRUPT_SONG_NO_BREAKS=Song could not be loaded: Can''t find any linebreaks ;TODO: ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=Song could not be loaded: Error parsing line %0:d -;TODO: ERROR_NO_EDITOR=This feature is not available on this version. -;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options -;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options +ERROR_PLAYER_DEVICE_ASSIGNMENT=Играч %d додељује се вишеструким микрофонима. Проверите опције микрофона +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Играч %d није додељен микрофону. Проверите опције микрофона -;TODO: SING_OPTIONS_NETWORK=Internet -;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options -;TODO: SING_OPTIONS_NETWORK_DESC=Internet General Settings +SING_OPTIONS_NETWORK=Интернет +SING_OPTIONS_NETWORK_WHEREAMI=Интернет опције +SING_OPTIONS_NETWORK_DESC=Интернет опште поставке ;TODO: SING_OPTIONS_NETWORK_INSERT_USER_INFO=Press key "Insert" to add user to this web... ;TODO: SING_OPTIONS_NETWORK_WEBSITE=Website -;TODO: SING_OPTIONS_NETWORK_USERNAME=Username -;TODO: SING_OPTIONS_NETWORK_PASSWORD=Password +SING_OPTIONS_NETWORK_USERNAME=Корисничко име +SING_OPTIONS_NETWORK_PASSWORD=Лозинка ;TODO: SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME=Send Name ;TODO: SING_OPTIONS_NETWORK_AUTO_MODE=Auto -;TODO: SING_OPTIONS_NETWORK_AUTO_PLAYER=Player +SING_OPTIONS_NETWORK_AUTO_PLAYER=Играч ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_EASY=Auto-Send (Easy) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM=Auto-Send (Medium) ;TODO: SING_OPTIONS_NETWORK_AUTO_SCORE_HARD=Auto-Send (Hard) @@ -487,18 +468,18 @@ ERROR_CORRUPT_SONG=Pesma se ne moze ucitati. ;TODO: SING_OPTIONS_NETWORK_LEGEND_INSERT=Insert ;TODO: SING_OPTIONS_NETWORK_LEGEND_DELETE=Delete -;TODO: OPTION_PLAYER_1=Player 1 -;TODO: OPTION_PLAYER_2=Player 2 -;TODO: OPTION_PLAYER_3=Player 3 -;TODO: OPTION_PLAYER_4=Player 4 -;TODO: OPTION_PLAYER_5=Player 5 -;TODO: OPTION_PLAYER_6=Player 6 +OPTION_PLAYER_1=Играч 1 +OPTION_PLAYER_2=Играч 2 +OPTION_PLAYER_3=Играч 3 +OPTION_PLAYER_4=Играч 4 +OPTION_PLAYER_5=Играч 5 +OPTION_PLAYER_6=Играч 6 OPTION_ALL_PLAYERS=Sve OPTION_ALL_SCORES=Sve ;TODO: OPTION_VALUE_SAVE=Save ;TODO: OPTION_VALUE_SEND=Send -;TODO: MSG_INSERT_USER_TITLE=%0:s +MSG_INSERT_USER_TITLE=%0:s ;TODO: MSG_INSERT_USER_DESC=Fill the fields: ;TODO: MSG_INSERT_USER_ADD=Add MSG_INSERT_USER_CANCEL=Nazad @@ -518,7 +499,7 @@ MSG_INSERT_USER_CANCEL=Nazad ;TODO: SONG_MENU_REFRESH_SCORES_TITLE=Update ;TODO: SONG_MENU_REFRESH_SCORES_NO_WEB=There aren't websites! ;TODO: SONG_MENU_REFRESH_SCORES_ONLINE=Online -;TODO: SONG_MENU_REFRESH_SCORES_FILE=File +SONG_MENU_REFRESH_SCORES_FILE=Филе ;TODO: SONG_MENU_REFRESH_SCORES_ALL_WEB=All Websites ;TODO: SONG_MENU_REFRESH_SCORES_ALL_SONGS=All Songs ;TODO: SONG_MENU_REFRESH_SCORES_ONLY_SONG=This Song @@ -531,12 +512,12 @@ MSG_INSERT_USER_CANCEL=Nazad ;TODO: SCORE_SEND_DESC=Send Score ;TODO: SCORE_SEND=Send -;TODO: SCORE_SEND_PLAYER=Player +SCORE_SEND_PLAYER=Играч ;TODO: SCORE_SEND_OTHER_USER= Other Username ;TODO: SCORE_SAVE=Save -;TODO: SCORE_DOWNLOAD_TITLE=Download -;TODO: SCORE_DOWNLOAD_SONG=Song: +SCORE_DOWNLOAD_TITLE=Преузимање +SCORE_DOWNLOAD_SONG=Сонг: ;TODO: SCORE_DOWNLOAD_CREATE_LIST=Preparing List... ;TODO: SCORE_DOWNLOAD_RECEIVE_LIST=Downloading... SCORE_DOWNLOAD_CANCEL=Nazad @@ -547,12 +528,12 @@ SCORE_DOWNLOAD_CANCEL=Nazad ;TODO: OPTION_VALUE_WHEN_EXISTS=When Exists ;TODO: PARTY_SELECT_MODE=Mode -;TODO: PARTY_MODE_CLASSIC=Classic +PARTY_MODE_CLASSIC=Цлассиц ;TODO: PARTY_MODE_CLASSIC_FREE=Classic Free ;TODO: PARTY_MODE_CHALLENGE=Challenge ;TODO: PARTY_MODE_TOURNAMENT=Tournament ;TODO: PARTY_MODE_JUKEBOX=Jukebox -;TODO: PARTY_MODE_NOT_AVAILABLE=Not Available! +PARTY_MODE_NOT_AVAILABLE=Није доступно! ;TODO: PARTY_MODE_TOURNAMENT_PLAYER_DESC=Insert number and players name ;TODO: PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS=Number of Players @@ -561,47 +542,17 @@ SCORE_DOWNLOAD_CANCEL=Nazad ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL=Semifinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL=Quarterfinals ;TODO: PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL=Round of 16 -PARTY_MODE_TOURNAMENT_ROUNDS_DESC=sledeci igraci za mikrofonom +PARTY_MODE_TOURNAMENT_ROUNDS_DESC=Sledeci igraci za mikrofonom ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -;TODO: INFO_FILE_SAVED=File saved -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - ;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! ;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! ;TODO: MSG_END_JUKEBOX=Do you want leave Jukebox Mode? -;TODO: JUKEBOX_RANDOM=Random -;TODO: JUKEBOX_REPEAT=Repeat -;TODO: JUKEBOX_FIND=Find: +JUKEBOX_RANDOM=Рандом +JUKEBOX_REPEAT=Понављање +JUKEBOX_FIND=пронаћи: ;TODO: JUKEBOX_SORT=Sort: ;TODO: JUKEBOX_SONGLIST=List of Songs @@ -609,8 +560,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=sledeci igraci za mikrofonom ;TODO: SONG_MENU_SONG=Song ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=Meni Pesme ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -626,18 +575,19 @@ SONG_MENU_SORTING_ALL=Sve ;TODO: SONG_MENU_SORTING_DUET=Duets ;TODO: SONG_MENU_SORTING_APPLY=Apply -;TODO: SING_OPTIONS_WEBCAM=Webcam +SING_OPTIONS_WEBCAM=Вебцам ;TODO: SING_OPTIONS_WEBCAM_DESC=Webcam Settings ;TODO: SING_OPTIONS_WEBCAM_WHEREAMI=Webcam Options -;TODO: SING_OPTIONS_WEBCAM_ID=Webcam +SING_OPTIONS_WEBCAM_ID=Вебцам SING_OPTIONS_WEBCAM_RESOLUTION=Rezolucija ;TODO: SING_OPTIONS_WEBCAM_FPS=FPS ;TODO: SING_OPTIONS_WEBCAM_NO_WEBCAM=No Webcam Found! ;TODO: SING_OPTIONS_WEBCAM_FLIP=Flip SING_OPTIONS_WEBCAM_EFFECT=Efekti ;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness -;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation +SING_OPTIONS_WEBCAM_SATURATION=Засићење ;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +;TODO: SING_OPTIONS_WEBCAM_PREVIEW=Activate preview ;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview ;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview @@ -663,60 +613,60 @@ SING_OPTIONS_WEBCAM_EFFECT_THRESHOLD=Stepen Cujnosti ;TODO: WEBSITE_EXIST_SONG=The song belongs to the website: %0:s ;TODO: WEBSITE_NOT_EXIST_SONG=The song does not belong to any website! -;TODO: NAME_PLAYERS_COUNT=Number of Players -;TODO: NAME_CURRENT_PLAYER=Player +NAME_PLAYERS_COUNT=Број играча +NAME_CURRENT_PLAYER=Играч SING_OPTIONS_GAME_SONGMENU=Meni Pesme -;TODO: OPTION_VALUE_ROULETTE=Roulette -;TODO: OPTION_VALUE_CHESSBOARD=Chessboard -;TODO: OPTION_VALUE_CAROUSEL=Carousel -;TODO: OPTION_VALUE_SLOT_MACHINE=Slot Machine -;TODO: OPTION_VALUE_LIST=List -;TODO: OPTION_VALUE_MOSAIC=Tile +OPTION_VALUE_ROULETTE=Роулетте +OPTION_VALUE_CHESSBOARD=Шаховска карта +OPTION_VALUE_CAROUSEL=Цароусел +OPTION_VALUE_SLOT_MACHINE=Аутомат за коцкање +OPTION_VALUE_LIST=Листа +OPTION_VALUE_MOSAIC=Плочица ;TODO: SING_OPTIONS_JUKEBOX=Jukebox ;TODO: SING_OPTIONS_JUKEBOX_DESC=Default Configurations of Jukebox ;TODO: SING_OPTIONS_JUKEBOX_WHEREAMI=Jukebox Options OPTION_VALUE_TO_SING=pevaj -;TODO: OPTION_VALUE_ACTUAL=Actual -;TODO: OPTION_VALUE_NEXT=Next +OPTION_VALUE_ACTUAL=горњи +OPTION_VALUE_NEXT=Дно ;TODO: OPTION_VALUE_OTHER=Other ;TODO: OPTION_VALUE_FILL=Fill ;TODO: OPTION_VALUE_OUTLINE=Outline -;TODO: OPTION_VALUE_GRAY=Gray -;TODO: OPTION_VALUE_WHITE=White -;TODO: OPTION_VALUE_TURQUOISE=Turquoise -;TODO: OPTION_VALUE_SALMON=Salmon -;TODO: OPTION_VALUE_GREENYELLOW=GreenYellow -;TODO: OPTION_VALUE_LAVENDER=Lavender -;TODO: OPTION_VALUE_BEIGE=Beige -;TODO: OPTION_VALUE_TEAL=Teal -;TODO: OPTION_VALUE_ORCHID=Orchid -;TODO: OPTION_VALUE_STEELBLUE=Steel Blue -;TODO: OPTION_VALUE_PLUM=Plum -;TODO: OPTION_VALUE_CHOCOLATE=Chocolate -;TODO: OPTION_VALUE_GOLD=Gold -;TODO: OPTION_VALUE_DARKBLUE=Dark Blue -;TODO: OPTION_VALUE_SKY=Sky -;TODO: OPTION_VALUE_HARLEQUIN=Harlequin -;TODO: OPTION_VALUE_CYAN=Cyan -;TODO: OPTION_VALUE_FLAME=Flame - -;TODO: JUKEBOX_SONGOPTIONS_VIDEO=Video Options -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Aspect -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Width -;TODO: JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Height +OPTION_VALUE_GRAY=Греи +OPTION_VALUE_WHITE=бео +OPTION_VALUE_TURQUOISE=Тиркизна +OPTION_VALUE_SALMON=Лосос +OPTION_VALUE_GREENYELLOW=Зелено жута +OPTION_VALUE_LAVENDER=Лаванда +OPTION_VALUE_BEIGE=Беж +OPTION_VALUE_TEAL=Теал +OPTION_VALUE_ORCHID=Орхидеја +OPTION_VALUE_STEELBLUE=Стеел Блуе +OPTION_VALUE_PLUM=Шљива +OPTION_VALUE_CHOCOLATE=Чоколада +OPTION_VALUE_GOLD=Злато +OPTION_VALUE_DARKBLUE=Тамно плава +OPTION_VALUE_SKY=Небо +OPTION_VALUE_HARLEQUIN=Харлекин +OPTION_VALUE_CYAN=Цијан +OPTION_VALUE_FLAME=Пламен + +JUKEBOX_SONGOPTIONS_VIDEO=Видео опције +JUKEBOX_SONGOPTIONS_VIDEO_ASPECT=Аспект +JUKEBOX_SONGOPTIONS_VIDEO_WIDTH=Ширина +JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT=Висина ;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size +JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Величина ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha +JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Транспарентност JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Boja ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Red -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Green -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Blue +JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED=Црвена +JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN=Зелен +JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE=Плави ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_STRETCH=Stretch ;TODO: JUKEBOX_SONGOPTIONS_VIDEO_CROP=Crop @@ -733,18 +683,23 @@ JUKEBOX_SONGOPTIONS_LYRIC_COLOR=Boja ;TODO: JUKEBOX_MODE=Jukebox Mode ;TODO: JUKEBOX_OPTIONS_DESC=Playlist Options ;TODO: JUKEBOX_OPTIONS_WHEREAMI=Jukebox Options -JUKEBOX_OPTIONS_PLAYLIST=lista pesama +JUKEBOX_OPTIONS_PLAYLIST=Lista pesama ;TODO: JUKEBOX_OPTIONS_PLAYLIST_MODE=Mode ;TODO: SING_OPTIONS_ADVANCED_SINGSCORES=Scores on Singing ;TODO: SING_OPTIONS_ADVANCED_TOPSCORES=Top Scores OPTION_VALUE_ALL=Sve -;TODO: OPTION_VALUE_PLAYER=Player - -;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe -;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +OPTION_VALUE_PLAYER=Играч + +SING_ABOUT=О томе +SING_ABOUT_DESC=О томе Ultrastar Deluxe WorldParty +ABOUT_MAIN=О томе... +ABOUT_USDX_DEVELOPEDBY=Развијен од стране +ABOUT_CHECK_CHECKING=Провера нових исправки... +ABOUT_CHECK_AVAILABLE=Постоји нова верзија доступна +ABOUT_CHECK_UPTODATE=WorldParty је ажуриран +ABOUT_CHECK_CONNECTION=Не постоји интернет веза +ABOUT_OVERVIEW=Откријте нови начин певања, сами, у пару или са пријатељима. \n Забава је загарантована.\n\nWorldParty ВорлдПарти је fork оригиналне верзије Ultrastar Deluxe 1.1 дизајниран и развијен од стране тима Ultrastar España, рачуна се са највећом караоке заједницом.\n\n\nОвај програм је бесплатан и libre под ГПЛ лиценцом. \n\n Посетите нас за више информација.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=Развијен од стране +DEVELOPERS_OVERVIEW=Људи који су допринели овом пројекту:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Посетите нас за више информација.\n\nhttps://ultrastar-es.org diff --git "a/game/languages/\346\227\245\346\234\254\350\252\236.ini" "b/game/languages/\346\227\245\346\234\254\350\252\236.ini" index ed7e0f7b..9aa6e237 100644 --- "a/game/languages/\346\227\245\346\234\254\350\252\236.ini" +++ "b/game/languages/\346\227\245\346\234\254\350\252\236.ini" @@ -5,8 +5,8 @@ OPTION_VALUE_EASY=簡単 OPTION_VALUE_MEDIUM=普通 OPTION_VALUE_HARD=難しい -;TODO: OPTION_VALUE_ON=On -;TODO: OPTION_VALUE_OFF=Off +;TODO: OPTION_VALUE_ON=オン +;TODO: OPTION_VALUE_OFF=オフ ;TODO: OPTION_VALUE_EDITION=Edition ;TODO: OPTION_VALUE_GENRE=Genre @@ -40,9 +40,9 @@ OPTION_VALUE_PLAYLIST=曲順 ;TODO: OPTION_VALUE_SEC=Second ;TODO: OPTION_VALUE_SECS=Seconds -;TODO: OPTION_VALUE_PLAIN=Plain -;TODO: OPTION_VALUE_OLINE1=OLine1 -;TODO: OPTION_VALUE_OLINE2=OLine2 +;TODO: OPTION_VALUE_PLAIN=stylized +;TODO: OPTION_VALUE_OLINE1=with thin edge +;TODO: OPTION_VALUE_OLINE2=with thick edge ;TODO: OPTION_VALUE_SIMPLE=Simple ;TODO: OPTION_VALUE_ZOOM=Zoom @@ -68,12 +68,8 @@ OPTION_VALUE_SING=歌う ;TODO: OPTION_VALUE_SELECT_PLAYERS=Select Players ;TODO: OPTION_VALUE_OPEN_MENU=Open Menu -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -;TODO: OPTION_VALUE_HARDWARE_CURSOR=Hardware Cursor -;TODO: OPTION_VALUE_SOFTWARE_CURSOR=Software Cursor - SING_LOADING=ロード中 +;TODO: SING_LOADING_SONGS=Loading songs from folder %s SING_CHOOSE_MODE=モード選択 SING_SING=歌う @@ -87,9 +83,6 @@ SING_TOOLS=ツール SING_STATS=統計 SING_STATS_DESC=統計表 -SING_EDITOR=エディター -SING_EDITOR_DESC=自分でウルトラ・スターの曲を作る - SING_GAME_OPTIONS=ゲーム設定 SING_GAME_OPTIONS_DESC=ゲーム設定を変える @@ -103,10 +96,9 @@ SING_OPTIONS_WHEREAMI=設定 SING_OPTIONS_GAME=ゲーム SING_OPTIONS_GRAPHICS=グラフィックス SING_OPTIONS_SOUND=音 -;TODO: SING_OPTIONS_INPUT=Input SING_OPTIONS_LYRICS=歌詞 SING_OPTIONS_THEMES=テーマ -SING_OPTIONS_RECORD=録音 +SING_OPTIONS_MICROPHONES=録音 SING_OPTIONS_ADVANCED=アドバンス SING_OPTIONS_EXIT=戻る @@ -117,15 +109,16 @@ SING_OPTIONS_GAME_DIFFICULTY=面倒 SING_OPTIONS_GAME_LANGUAGE=言語 SING_OPTIONS_GAME_TABS=タッブ SING_OPTIONS_GAME_SORTING=ソーティング -SING_OPTIONS_GAME_DEBUG=ディバッグ +SING_OPTIONS_GAME_JOYPAD_SUPPORT=ゲームパッドを有効にする SING_OPTIONS_GRAPHICS_WHEREAMI=グラフィックス SING_OPTIONS_GRAPHICS_DESC=グラフィックスの設定 SING_OPTIONS_GRAPHICS_RESOLUTION=解像 SING_OPTIONS_GRAPHICS_FULLSCREEN=フルスクリーン -SING_OPTIONS_GRAPHICS_DEPTH=ビット深度 +SING_OPTIONS_GRAPHICS_EFFECTSING=曲のエフェクト +SING_OPTIONS_GRAPHICS_SCREENFADE=画面・フェーディング +SING_OPTIONS_GRAPHICS_LOADANIMATION=ロード・アニメーション SING_OPTIONS_GRAPHICS_VISUALIZER=可視化 -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=オシロスコープ SING_OPTIONS_GRAPHICS_LINEBONUS=ライン・ボーナス SING_OPTIONS_GRAPHICS_MOVIE_SIZE=動画サイズ @@ -133,20 +126,13 @@ SING_OPTIONS_SOUND_WHEREAMI=音設定 SING_OPTIONS_SOUND_DESC=音の設定 SING_OPTIONS_SOUND_VOICEPASSTHROUGH=マイク再生 SING_OPTIONS_SOUND_BACKGROUNDMUSIC=バックグラウンド・ミュージック -SING_OPTIONS_SOUND_MIC_BOOST=マイク・ブースト SING_OPTIONS_SOUND_CLICK_ASSIST=クリック・アシスト SING_OPTIONS_SOUND_BEAT_CLICK=ビート・クリック -SING_OPTIONS_SOUND_THRESHOLD=極限 SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=二人で遊ぶ ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=音量・プリビュー SING_OPTIONS_SOUND_PREVIEWFADING=フェーディング・プリビュー -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - SING_OPTIONS_LYRICS_WHEREAMI=歌詞設定 SING_OPTIONS_LYRICS_DESC=歌詞の設定 SING_OPTIONS_LYRICS_FONT=字形 @@ -160,43 +146,36 @@ SING_OPTIONS_THEMES_THEME=テーマ SING_OPTIONS_THEMES_SKIN=スキン SING_OPTIONS_THEMES_COLOR=色 -SING_OPTIONS_RECORD_WHEREAMI=録音設定 -SING_OPTIONS_RECORD_DESC=マイク録音の設定 -SING_OPTIONS_RECORD_CARD=サウンドカード -SING_OPTIONS_RECORD_INPUT=入力 -SING_OPTIONS_RECORD_CHANNEL=チャネル +SING_OPTIONS_MICROPHONES_WHEREAMI=録音設定 +SING_OPTIONS_MICROPHONES_DESC=マイク録音の設定 +SING_OPTIONS_MICROPHONES_CARD=サウンドカード +SING_OPTIONS_MICROPHONES_INPUT=入力 +SING_OPTIONS_MICROPHONES_CHANNEL=チャネル +SING_OPTIONS_MICROPHONES_THRESHOLD=極限 +SING_OPTIONS_MICROPHONES_MIC_BOOST=マイク・ブースト SING_OPTIONS_ADVANCED_WHEREAMI=アドバンス設定 SING_OPTIONS_ADVANCED_DESC=アドバンス設定 -SING_OPTIONS_ADVANCED_EFFECTSING=曲のエフェクト -SING_OPTIONS_ADVANCED_SCREENFADE=画面・フェーディング -SING_OPTIONS_ADVANCED_LOADANIMATION=ロード・アニメーション +SING_OPTIONS_ADVANCED_DEBUG=ディバッグ +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=オシロスコープ SING_OPTIONS_ADVANCED_ASKBEFOREDEL=消す場合は確認 SING_OPTIONS_ADVANCED_LINEBONUS=ライン・ボーナス -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=歌った後は SING_OPTIONS_ADVANCED_PARTYPOPUP=自動的にパーティー・メニューへ -SING_EDIT=エディター -SING_EDIT_MENU_DESCRIPTION=自分でウルトラ・スターの曲を作る - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=MIDIファイルからインポートする -SING_EDIT_BUTTON_DESCRIPTION_EXIT=戻る -SING_EDIT_BUTTON_CONVERT=インポート -SING_EDIT_BUTTON_EXIT=戻る - -SING_EDIT_NAVIGATE=ナビ -SING_EDIT_SELECT=選ぶ -SING_EDIT_EXIT=戻る - SING_LEGEND_SELECT=選ぶ SING_LEGEND_NAVIGATE=ナビ SING_LEGEND_CONTINUE=続く SING_LEGEND_ESC=戻る -SING_PLAYER_DESC=プレイヤー名記入 -SING_PLAYER_WHEREAMI=プレイヤー名 -SING_PLAYER_ENTER_NAME=名前記入 +;TODO: SING_PLAYER_TITLE=Profiles +;TODO: SING_PLAYER_READY=Players ready to sing +;TODO: SING_PLAYER_COUNT=Number of players +;TODO: SING_PLAYER_EDIT=Customize a player +;TODO: SING_PLAYER_NAME=Write your name +;TODO: SING_PLAYER_COLOR=Pick a color +;TODO: SING_PLAYER_LEVEL=Choose a level +;TODO: SING_PLAYER_AVATAR=Select your avatar SING_DIFFICULTY_DESC=面倒選択 SING_DIFFICULTY_WHEREAMI=面倒 @@ -211,10 +190,15 @@ SING_SONG_SELECTION_GOTO=曲へ… SING_SONG_SELECTION=曲選択 SING_SONG_SELECTION_MENU=メニュー SING_SONG_SELECTION_PLAYLIST=曲順 +;TODO: SING_SONG_IN_CAT=Song SING_SONGS_IN_CAT=曲 PLAYLIST_CATTEXT=曲順: %s +;TODO: SING_SONG_SELECTION_LEGEND_TITLE=Legend +;TODO: SING_SONG_SELECTION_LEGEND_VIDEO=Video +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +;TODO: SING_SONG_SELECTION_LEGEND_DUET=Duet -;TODO: SING_TIME=TIME SING_TOTAL=全部 SING_MODE=一人で歌う SING_NOTES=音符 @@ -255,7 +239,6 @@ IMPLODE_GLUE2= と SONG_MENU_NAME_MAIN=曲メイン・メニュー SONG_MENU_PLAY=歌う SONG_MENU_CHANGEPLAYERS=プレイヤーを変える -SONG_MENU_EDIT=エディター SONG_MENU_MODI=モードを歌う SONG_MENU_CANCEL=キャンセル @@ -422,7 +405,7 @@ STAT_DETAIL_WHEREAMI=統計の詳しい事 STAT_NEXT=次ページ STAT_PREV=先ページ STAT_REVERSE=逆の順番 -STAT_PAGE= %1:d ページの %0:d 番目\n (%3:d エントリーの %2:d 番目) +STAT_PAGE= %1:d ページの %0:d 番目 \n %3:d エントリーの %2:d 番目 STAT_DESC_SCORES=ハイスコア STAT_DESC_SCORES_REVERSED=ロースコア @@ -448,7 +431,6 @@ STAT_FORMAT_BANDS=%0:s \n %1:dx 回歌った ;TODO: ERROR_FILE_NOT_FOUND=File not found ;TODO: ENCODING_ERROR_ASK_FOR_UTF8=Cannot save changes in current encoding. Convert to UTF-8? -;TODO: EDITOR_ERROR_NO_TRACK_SELECTED=No track selected MSG_ERROR_TITLE=エラー ;TODO: MSG_INFO_TITLE=Information @@ -465,9 +447,8 @@ ERROR_CORRUPT_SONG_FILE_NOT_FOUND=曲をロードできない: ファイルが ERROR_CORRUPT_SONG_NO_NOTES=曲をロードできない: 音符が見つからない ERROR_CORRUPT_SONG_NO_BREAKS=曲をロードできない: ライン・ブレークが見つからない ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=曲をロードできない: ライン %0:d の解析エラー -;TODO: ERROR_NO_EDITOR=This feature is not available on this version. -;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your record options -;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your record options +;TODO: ERROR_PLAYER_DEVICE_ASSIGNMENT=Player %d is assigned to multiple microphones. Please check your microphones options +;TODO: ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=Player %d is not assigned to a microphone. Please check your microphones options ;TODO: SING_OPTIONS_NETWORK=Internet ;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options @@ -565,36 +546,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=次のプレイヤーがマイクを ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -;TODO: INFO_FILE_SAVED=File saved -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - ;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! ;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! @@ -609,8 +560,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=次のプレイヤーがマイクを ;TODO: SONG_MENU_SONG=Song ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=曲メニュー ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -638,6 +587,7 @@ SING_OPTIONS_WEBCAM_EFFECT=エフェクト ;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness ;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation ;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +;TODO: SING_OPTIONS_WEBCAM_PREVIEW=Activate preview ;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview ;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview @@ -710,7 +660,7 @@ OPTION_VALUE_TO_SING=歌う ;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Transparency JUKEBOX_SONGOPTIONS_LYRIC_COLOR=色 ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property @@ -742,9 +692,14 @@ OPTION_VALUE_ALL=全部 ;TODO: OPTION_VALUE_PLAYER=Player ;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe +;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe WorldParty ;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +ABOUT_USDX_DEVELOPEDBY=によって開発された +;TODO: ABOUT_CHECK_CHECKING=Checking for new updates... +;TODO: ABOUT_CHECK_AVAILABLE=There is a new version available +;TODO: ABOUT_CHECK_UPTODATE=WorldParty is up to date +;TODO: ABOUT_CHECK_CONNECTION=There is no Internet connection +;TODO: ABOUT_OVERVIEW=Discover a new way of singing, alone, in couple, or with friends. \n Fun is guaranteed.\n\nWorldParty is a fork of the original version Ultrastar Deluxe 1.1 designed and developed by UltraStar España Team, it counts with the biggest karaoke community.\n\n\nThis program is free and libre under the GPL license. \n\n 詳細は当社にお問い合わせください.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=によって開発された +DEVELOPERS_OVERVIEW=このプロジェクトに貢献した人々:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n 詳細は当社にお問い合わせください.\n\nhttps://ultrastar-es.org diff --git "a/game/languages/\346\231\256\351\200\232\350\257\235.ini" "b/game/languages/\346\231\256\351\200\232\350\257\235.ini" index 934a4682..15b5240e 100644 --- "a/game/languages/\346\231\256\351\200\232\350\257\235.ini" +++ "b/game/languages/\346\231\256\351\200\232\350\257\235.ini" @@ -40,9 +40,9 @@ OPTION_VALUE_AUTO=自动 OPTION_VALUE_SEC=秒 OPTION_VALUE_SECS=秒 -OPTION_VALUE_PLAIN=空白 -OPTION_VALUE_OLINE1=OLine1 -OPTION_VALUE_OLINE2=OLine2 +;TODO: OPTION_VALUE_PLAIN=stylized +;TODO: OPTION_VALUE_OLINE1=with thin edge +;TODO: OPTION_VALUE_OLINE2=with thick edge OPTION_VALUE_SIMPLE=简单 OPTION_VALUE_ZOOM=缩放 @@ -68,12 +68,8 @@ OPTION_VALUE_SING=K歌 OPTION_VALUE_SELECT_PLAYERS=选择玩家 OPTION_VALUE_OPEN_MENU=打开菜单 -;TODO: OPTION_VALUE_SYSTEM_CURSOR=On [System Cursor] -;TODO: OPTION_VALUE_GAME_CURSOR=On [Game Cursor] -OPTION_VALUE_HARDWARE_CURSOR=系统指针 -OPTION_VALUE_SOFTWARE_CURSOR=自带指针 - SING_LOADING=载入…… +;TODO: SING_LOADING_SONGS=Loading songs from folder %s SING_CHOOSE_MODE=选择模式 SING_SING=唱歌 @@ -87,9 +83,6 @@ SING_TOOLS=工具 SING_STATS=统计 SING_STATS_DESC=查看统计资料 -SING_EDITOR=编辑器 -SING_EDITOR_DESC=制作自己的歌曲 - SING_GAME_OPTIONS=游戏选项 SING_GAME_OPTIONS_DESC=更改游戏设置 @@ -103,10 +96,9 @@ SING_OPTIONS_WHEREAMI=选项 SING_OPTIONS_GAME=游戏 SING_OPTIONS_GRAPHICS=画面 SING_OPTIONS_SOUND=声音 -;TODO: SING_OPTIONS_INPUT=Input SING_OPTIONS_LYRICS=歌词 SING_OPTIONS_THEMES=主题 -SING_OPTIONS_RECORD=录音 +SING_OPTIONS_MICROPHONES=录音 SING_OPTIONS_ADVANCED=高级 SING_OPTIONS_EXIT=返回 @@ -117,15 +109,16 @@ SING_OPTIONS_GAME_DIFFICULTY=难度 SING_OPTIONS_GAME_LANGUAGE=语言 SING_OPTIONS_GAME_TABS=标签 SING_OPTIONS_GAME_SORTING=排列 -SING_OPTIONS_GAME_DEBUG=调试 +SING_OPTIONS_GAME_JOYPAD_SUPPORT=激活游戏手柄 SING_OPTIONS_GRAPHICS_WHEREAMI=画面选项 SING_OPTIONS_GRAPHICS_DESC=画面设置 SING_OPTIONS_GRAPHICS_RESOLUTION=分辨率 SING_OPTIONS_GRAPHICS_FULLSCREEN=全屏 -SING_OPTIONS_GRAPHICS_DEPTH=色深 +SING_OPTIONS_GRAPHICS_EFFECTSING=演唱效果 +SING_OPTIONS_GRAPHICS_SCREENFADE=画面渐变 +SING_OPTIONS_GRAPHICS_LOADANIMATION=载入动画 SING_OPTIONS_GRAPHICS_VISUALIZER=可视化 -SING_OPTIONS_GRAPHICS_OSCILLOSCOPE=示波器 SING_OPTIONS_GRAPHICS_LINEBONUS=加分线 SING_OPTIONS_GRAPHICS_MOVIE_SIZE=影片大小 @@ -133,20 +126,13 @@ SING_OPTIONS_SOUND_WHEREAMI=声音选项 SING_OPTIONS_SOUND_DESC=声音设置 SING_OPTIONS_SOUND_VOICEPASSTHROUGH=麦克风回放 SING_OPTIONS_SOUND_BACKGROUNDMUSIC=背景音乐 -SING_OPTIONS_SOUND_MIC_BOOST=麦克风增强 SING_OPTIONS_SOUND_CLICK_ASSIST=“卡嗒”助手 SING_OPTIONS_SOUND_BEAT_CLICK=节拍“卡嗒” -SING_OPTIONS_SOUND_THRESHOLD=阈值 SING_OPTIONS_SOUND_TWO_PLAYERS_MODE=双人模式 ;TODO: SING_OPTIONS_SOUND_MUSICAUTOGAIN=Music Gain SING_OPTIONS_SOUND_PREVIEWVOLUME=预览音量 SING_OPTIONS_SOUND_PREVIEWFADING=预览渐变 -;TODO: SING_OPTIONS_INPUT_WHEREAMI=Options Input -;TODO: SING_OPTIONS_INPUT_DESC=Input settings -;TODO: SING_OPTIONS_INPUT_MOUSE=Mouse -;TODO: SING_OPTIONS_INPUT_JOYPAD_SUPPORT=Controller support - SING_OPTIONS_LYRICS_WHEREAMI=歌词选项 SING_OPTIONS_LYRICS_DESC=歌词设置 SING_OPTIONS_LYRICS_FONT=字体 @@ -160,43 +146,36 @@ SING_OPTIONS_THEMES_THEME=主题 SING_OPTIONS_THEMES_SKIN=皮肤 SING_OPTIONS_THEMES_COLOR=颜色 -SING_OPTIONS_RECORD_WHEREAMI=录音选项 -SING_OPTIONS_RECORD_DESC=麦克风设置 -SING_OPTIONS_RECORD_CARD=声卡 -SING_OPTIONS_RECORD_INPUT=输入 -SING_OPTIONS_RECORD_CHANNEL=频道 +SING_OPTIONS_MICROPHONES_WHEREAMI=录音选项 +SING_OPTIONS_MICROPHONES_DESC=麦克风设置 +SING_OPTIONS_MICROPHONES_CARD=声卡 +SING_OPTIONS_MICROPHONES_INPUT=输入 +SING_OPTIONS_MICROPHONES_CHANNEL=频道 +SING_OPTIONS_MICROPHONES_THRESHOLD=阈值 +SING_OPTIONS_MICROPHONES_MIC_BOOST=麦克风增强 SING_OPTIONS_ADVANCED_WHEREAMI=高级选项 SING_OPTIONS_ADVANCED_DESC=高级设置 -SING_OPTIONS_ADVANCED_EFFECTSING=演唱效果 -SING_OPTIONS_ADVANCED_SCREENFADE=画面渐变 -SING_OPTIONS_ADVANCED_LOADANIMATION=载入动画 +SING_OPTIONS_ADVANCED_DEBUG=调试 +SING_OPTIONS_ADVANCED_OSCILLOSCOPE=示波器 SING_OPTIONS_ADVANCED_ASKBEFOREDEL=安全问题 SING_OPTIONS_ADVANCED_LINEBONUS=加分线 -;SING_OPTIONS_ADVANCED_COUNT_HOW_OFTEN_SUNG= SING_OPTIONS_ADVANCED_ONSONGCLICK=选歌之后 SING_OPTIONS_ADVANCED_PARTYPOPUP=自动派对菜单 -SING_EDIT=编辑器 -SING_EDIT_MENU_DESCRIPTION=制作自己的歌曲 - -SING_EDIT_BUTTON_DESCRIPTION_CONVERT=从midi文件导入文本 -SING_EDIT_BUTTON_DESCRIPTION_EXIT=返回 -SING_EDIT_BUTTON_CONVERT=导入 -SING_EDIT_BUTTON_EXIT=返回 - -SING_EDIT_NAVIGATE=导航 -SING_EDIT_SELECT=选择 -SING_EDIT_EXIT=返回 - SING_LEGEND_SELECT=选择 SING_LEGEND_NAVIGATE=导航 SING_LEGEND_CONTINUE=继续 SING_LEGEND_ESC=返回 -SING_PLAYER_DESC=输入玩家名 -SING_PLAYER_WHEREAMI=玩家名 -SING_PLAYER_ENTER_NAME=输入名字 +;TODO: SING_PLAYER_TITLE=Profiles +;TODO: SING_PLAYER_READY=Players ready to sing +;TODO: SING_PLAYER_COUNT=Number of players +;TODO: SING_PLAYER_EDIT=Customize a player +;TODO: SING_PLAYER_NAME=Write your name +;TODO: SING_PLAYER_COLOR=Pick a color +;TODO: SING_PLAYER_LEVEL=Choose a level +;TODO: SING_PLAYER_AVATAR=Select your avatar SING_DIFFICULTY_DESC=选择难度 SING_DIFFICULTY_WHEREAMI=难度 @@ -211,10 +190,15 @@ SING_SONG_SELECTION_GOTO=转到…… SING_SONG_SELECTION=歌曲选择 SING_SONG_SELECTION_MENU=菜单 SING_SONG_SELECTION_PLAYLIST=播放列表 +;TODO: SING_SONGS_IN_CAT=Song SING_SONGS_IN_CAT=歌曲 PLAYLIST_CATTEXT=播放列表: %s +;TODO: SING_SONG_SELECTION_LEGEND_TITLE=Legend +;TODO: SING_SONG_SELECTION_LEGEND_VIDEO=Video +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEY=Medley +;TODO: SING_SONG_SELECTION_LEGEND_MEDLEYC=Medley calculated +;TODO: SING_SONG_SELECTION_LEGEND_DUET=Duet -;TODO: SING_TIME=TIME SING_TOTAL=全部 SING_MODE=独唱 SING_NOTES=音符 @@ -255,7 +239,6 @@ IMPLODE_GLUE2= 和 SONG_MENU_NAME_MAIN=歌曲菜单 SONG_MENU_PLAY=演唱 SONG_MENU_CHANGEPLAYERS=变更玩家 -SONG_MENU_EDIT=编辑 SONG_MENU_MODI=修正唱法 SONG_MENU_CANCEL=取消 @@ -422,7 +405,7 @@ STAT_DETAIL_WHEREAMI=统计详情 STAT_NEXT=下一页 STAT_PREV=前一页 STAT_REVERSE=倒序 -STAT_PAGE= %1:d 页中的第 %0:d 页\n ( %3:d 条目中的 %2:d ) +STAT_PAGE= %1:d 页中的第 %0:d 页 \n %3:d 条目中的 %2:d STAT_DESC_SCORES=高分 STAT_DESC_SCORES_REVERSED=低分 @@ -448,7 +431,6 @@ ERROR_SAVE_FILE_FAILED=无法保存文件 ERROR_FILE_NOT_FOUND=文件未找到 ENCODING_ERROR_ASK_FOR_UTF8=以当前编码无法保存变更,是否转换为UTF-8? -EDITOR_ERROR_NO_TRACK_SELECTED=无音轨选中 MSG_ERROR_TITLE=错误 MSG_INFO_TITLE=信息 @@ -465,9 +447,8 @@ ERROR_CORRUPT_SONG_FILE_NOT_FOUND=无法载入歌曲:文件未找到 ERROR_CORRUPT_SONG_NO_NOTES=无法载入歌曲:找不到任何注释 ERROR_CORRUPT_SONG_NO_BREAKS=无法载入歌曲:找不到任何分秆 ERROR_CORRUPT_SONG_UNKNOWN_IN_LINE=无法载入歌曲:行 %0:d 解析错误 -ERROR_NO_EDITOR=此特性在Linux/Mac上不可用 -ERROR_PLAYER_DEVICE_ASSIGNMENT=玩家 %d 被指定给多个麦克风,请检查您的录音选项 -ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=玩家 %d 没有指定麦克风,请检查您的录音选项 +ERROR_PLAYER_DEVICE_ASSIGNMENT=玩家 %d 被指定给多个麦克风,请检查您的麦克风选项 +ERROR_PLAYER_NO_DEVICE_ASSIGNMENT=玩家 %d 没有指定麦克风,请检查您的麦克风选项 ;TODO: SING_OPTIONS_NETWORK=Internet ;TODO: SING_OPTIONS_NETWORK_WHEREAMI=Internet Options @@ -565,36 +546,6 @@ PARTY_MODE_TOURNAMENT_ROUNDS_DESC=下位演唱歌手 ;TODO: PARTY_MODE_TOURNAMENT_WIN_DESC=Round result ;TODO: PARTY_MODE_TOURNAMENT_CHAMPION=The champion is: %0:s! -;TODO: EDIT_TITLE=Title: -;TODO: EDIT_ARTIST=Artist: -;TODO: EDIT_MP3=MP3: -;TODO: EDIT_BPM=BPM: -;TODO: EDIT_GAP=GAP: -;TODO: EDIT_COVER=Cover: -;TODO: EDIT_BACKGROUND=Background: - -;TODO: EDIT_START=Start: -;TODO: EDIT_DURATION=Duration: -;TODO: EDIT_TONE=Tone: -;TODO: EDIT_LYRIC=Lyric: -;TODO: EDIT_VIDEOGAP=Video Gap: -;TODO: EDIT_VOLUME_AUDIO=Audio Volume: -;TODO: EDIT_VOLUME_MIDI=Midi Volume: -;TODO: EDIT_VOLUME_CLICK=Click Volume: -;TODO: INFO_UNDO=Undo last operation - -INFO_FILE_SAVED=文件已保存 -;TODO: INFO_TIME_FIXED=Timings corrected -;TODO: INFO_CAPITALIZE=Capitalization corrected -;TODO: INFO_EXIT=Do you want leave editor without save ? -;TODO: INFO_SONG_RELOADED=Song reloaded -;TODO: INFO_DIVIDED_BPM=BPM Divided -;TODO: INFO_MULTIPLIED_BPM=BPM Multiplied -;TODO: INFO_PLAY_SONG=Play song -;TODO: INFO_PLAY_SENTENCE=Play sentence -;TODO: INFO_CURRENT_LINE=Line: -;TODO: INFO_CURRENT_NOTE=Note: - ;TODO: INFO_MIDI_CHANNEL_OFF= Channel %0:s off! ;TODO: INFO_MIDI_CHANNEL_RESET= All channel's on! @@ -609,8 +560,6 @@ INFO_FILE_SAVED=文件已保存 ;TODO: SONG_MENU_SONG=Song ;TODO: SONG_MENU_MEDLEY=Medley -;TODO: SONG_MENU_SORTING=Sort -;TODO: SONG_MENU_EXTRA=Extra SONG_MENU_NAME_SONG=歌曲菜单 ;TODO: SONG_MENU_NAME_MEDLEY=Medley Menu @@ -638,6 +587,7 @@ SING_OPTIONS_WEBCAM_EFFECT=效果 ;TODO: SING_OPTIONS_WEBCAM_BRIGHTNESS=Brightness ;TODO: SING_OPTIONS_WEBCAM_SATURATION=Saturation ;TODO: SING_OPTIONS_WEBCAM_HUE=Hue +;TODO: SING_OPTIONS_WEBCAM_PREVIEW=Activate preview ;TODO: SING_OPTIONS_WEBCAM_ENABLE_PREVIEW=Enable Preview ;TODO: SING_OPTIONS_WEBCAM_DISABLE_PREVIEW=Disable Preview @@ -710,7 +660,7 @@ OPTION_VALUE_TO_SING=演唱 ;TODO: JUKEBOX_SONGOPTIONS_LYRIC=Lyric Options ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_SIZE=Size ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_POSITION=Position -;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Alpha +;TODO: JUKEBOX_SONGOPTIONS_LYRIC_ALPHA=Transparency JUKEBOX_SONGOPTIONS_LYRIC_COLOR=颜色 ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_LINE=Line ;TODO: JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY=Property @@ -742,9 +692,14 @@ OPTION_VALUE_ALL=所有 ;TODO: OPTION_VALUE_PLAYER=Player ;TODO: SING_ABOUT=About -;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe +;TODO: SING_ABOUT_DESC=About Ultrastar Deluxe WorldParty ;TODO: ABOUT_MAIN=About... -;TODO: ABOUT_MAIN_DESC=Ultrastar Deluxe -;TODO: ABOUT_MAIN_WHEREAMI=About... -;TODO: ABOUT_USDX_CREDITS=Credits -;TODO: ABOUT_OVERVIEW=UltraStar Deluxe is a free OpenSource karaoke game for your PC. The gameplay experience is similar to that of the commercial product SingStar™ by Sony Computer Entertainment, which is exclusively available for the Playstation®. Unlike SingStar™, however, UltraStar Deluxe allows users to create their own songs and sing them on their PC.\nBy publishing the sourcecode, we’ve enabled you to customize the game completly to your heart’s content, desires and particular needs.\nEspecially you are allowed to modify the product as you wish.\n\nCreate your own themes or download content from the community, such as plugins, free songs or code patches for extended features.\nIn party mode it allows up to twelve players to sing along to your favorite music in order to score points, depending on the pitch of the voice and the rhythm of singing. +ABOUT_USDX_DEVELOPEDBY=由开发 +;TODO: ABOUT_CHECK_CHECKING=Checking for new updates... +;TODO: ABOUT_CHECK_AVAILABLE=There is a new version available +;TODO: ABOUT_CHECK_UPTODATE=WorldParty is up to date +;TODO: ABOUT_CHECK_CONNECTION=There is no Internet connection +;TODO: ABOUT_OVERVIEW=Discover a new way of singing, alone, in couple, or with friends. \n Fun is guaranteed.\n\nWorldParty is a fork of the original version Ultrastar Deluxe 1.1 designed and developed by UltraStar España Team, it counts with the biggest karaoke community.\n\n\nThis program is free and libre under the GPL license. \n\n Visit us for more information.\n\nhttps://ultrastar-es.org + +DEVELOPERS_TITLE=由开发 +;TODO: DEVELOPERS_OVERVIEW=People who has contributed to this project:\n\n\nZup3r_vock\n\nDaniel20\n\njmfb\n\nTeLiX\n\n\n Visit us for more information.\n\nhttps://ultrastar-es.org diff --git a/game/sounds/Common back.mp3 b/game/sounds/back sound.mp3 similarity index 100% rename from game/sounds/Common back.mp3 rename to game/sounds/back sound.mp3 diff --git a/game/sounds/Common start.mp3 b/game/sounds/forward sound.mp3 similarity index 100% rename from game/sounds/Common start.mp3 rename to game/sounds/forward sound.mp3 diff --git a/game/sounds/option sound.mp3 b/game/sounds/option sound.mp3 new file mode 100644 index 00000000..1400a2ad Binary files /dev/null and b/game/sounds/option sound.mp3 differ diff --git a/game/sounds/select music change music 50.mp3 b/game/sounds/select music change music 50.mp3 deleted file mode 100644 index ade19a70..00000000 Binary files a/game/sounds/select music change music 50.mp3 and /dev/null differ diff --git a/game/themes/Fantasy.ini b/game/themes/Fantasy.ini index 42f6cb59..a018a270 100644 --- a/game/themes/Fantasy.ini +++ b/game/themes/Fantasy.ini @@ -1,7 +1,7 @@ ################################### # theme developed by Daniel20 # -# for http:\\ultrastar-es.org # +# for https:\\ultrastar-es.org # # visit us to get songs, plugins, # # themes and more... # # # @@ -39,6 +39,7 @@ Gold = 255 223 31 Silver = 223 223 223 Bronze = 205 127 50 Red = 255 0 0 +Magenta = 215 0 111 [Loading] [LoadingBackground] @@ -59,28 +60,6 @@ ReflectionSpacing = 13 [MainBackground] Tex = MainBG -[MainText1] -X = 5 -Y = 15 -Color = White -Font = 0 -Size = 15 -Align = 0 -Text = Ultrastar Deluxe WorldParty 17.3 - -[MainText2] -X = 5 -Y = 35 -Z = 0.5 -Color = White -Font = 0 -Size = 15 -Align = 0 -Text = Release Candidate 1 - http://ultrastar-es.org -Reflection = 0 -ReflectionSpacing = 13 - - [MainTextDescriptionLong] X = 385 Y = 550 @@ -279,6 +258,15 @@ Align = 1 Text = SING_ABOUT Color = White +[MainProgressSongsText] +X = 400 +Y = 557 +Color = White +Font = 0 +Size = 18 +Align = 1 +Z = 1 + [Name] Texts = 2 @@ -286,24 +274,24 @@ Texts = 2 Tex = MainBG #write your name -[NameStatic1] +[NameStatic1] X = 30 Y = 400 W = 200 H = 35 Tex = MainBar -Color = +Color = Type = Transparent #choose avatar -[NameStatic2] -X = 30 -Y = 535 -W = 200 -H = 35 -Tex = MainBar -Color = -Type = Transparent +#[NameStatic2] +#X = 30 +#Y = 535 +#W = 200 +#H = 35 +#Tex = MainBar +#Color = +#Type = Transparent [NameText1] X = 30 @@ -322,7 +310,7 @@ Font = 1 Size = 26 Text = SING_PLAYER_READY -[NameText3] +[NameText3] X = 50 Y = 350 Color = White @@ -331,7 +319,7 @@ Size = 26 Align = 0 Text = SING_PLAYER_EDIT -[NameText4] +[NameText4] X = 50 Y = 405 Color = White @@ -340,14 +328,14 @@ Size = 22 Align = 0 Text = SING_PLAYER_NAME -[NameText5] -X = 50 -Y = 540 -Color = White -Font = 0 -Size = 22 -Align = 0 -Text = SING_PLAYER_AVATAR +#[NameText5] +#X = 50 +#Y = 540 +#Color = White +#Font = 0 +#Size = 22 +#Align = 0 +#Text = SING_PLAYER_AVATAR [NameSelectPlayerCount] Text = SING_PLAYER_COUNT @@ -364,386 +352,212 @@ SkipX = 30 SBGW = 160 Align = 0 TextSize = 22 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGDColor = ColorDark SBGColor = ColorLight STColor = White STDColor = GrayDark [NamePlayerSelectStatic1] -X = 102 -Y = 128 -W = 68 -H = 80 +X = 101 +Y = 120 +W = 66 +H = 88 Tex = AvatarFrame2 Color = P1Dark Type = Colorized Z = 1 [NamePlayerSelectStatic1Text] -X = 135 -Y = 209 +X = 133 +Y = 211 Font = 1 -Size = 17 +Size = 16 Align = 1 Color = White Z = 1 [NamePlayerSelectStatic1Avatar] -X = 110 -Y = 135 -W = 52 -H = 65 +X = 108 +Y = 127 +W = 51 +H = 72 Z = 1 Tex = NoAvatar_P1 Type = Transparent [NamePlayerSelectStatic2] X = 202 -Y = 128 -W = 68 -H = 80 +Y = 120 +W = 66 +H = 88 Tex = AvatarFrame2 Color = P2Dark Type = Colorized Z = 1 [NamePlayerSelectStatic2Text] -X = 241 -Y = 209 +X = 235 +Y = 211 Font = 1 -Size = 17 +Size = 16 Align = 1 Color = White Text = P2 Z = 1 [NamePlayerSelectStatic2Avatar] -X = 210 -Y = 135 -W = 52 -H = 65 +X = 209 +Y = 127 +W = 51 +H = 72 Z = 1 Tex = NoAvatar_P2 Type = Transparent [NamePlayerSelectStatic3] X = 312 -Y = 128 -W = 68 -H = 80 +Y = 120 +W = 66 +H = 88 Tex = AvatarFrame2 Color = P3Dark Type = Colorized Z = 1 [NamePlayerSelectStatic3Text] -X = 347 -Y = 209 +X = 344 +Y = 211 Font = 1 -Size = 17 +Size = 16 Align = 1 Color = White Text = P3 Z = 1 [NamePlayerSelectStatic3Avatar] -X = 320 -Y = 135 -W = 52 -H = 65 +X = 319 +Y = 127 +W = 51 +H = 72 Z = 1 Tex = NoAvatar_P3 Type = Transparent [NamePlayerSelectStatic4] X = 418 -Y = 128 -W = 68 -H = 80 +Y = 120 +W = 66 +H = 88 Tex = AvatarFrame2 Color = P4Dark Type = Colorized Z = 1 [NamePlayerSelectStatic4Text] -X = 453 -Y = 209 +X = 451 +Y = 211 Font = 1 -Size = 17 +Size = 16 Align = 1 Color = White Text = P4 Z = 1 [NamePlayerSelectStatic4Avatar] -X = 426 -Y = 135 -W = 52 -H = 65 +X = 425 +Y = 127 +W = 51 +H = 72 Z = 1 Tex = NoAvatar_P4 Type = Transparent [NamePlayerSelectStatic5] X = 524 -Y = 128 -W = 68 -H = 80 +Y = 120 +W = 66 +H = 88 Tex = AvatarFrame2 Color = P5Dark Type = Colorized Z = 1 [NamePlayerSelectStatic5Text] -X = 559 -Y = 209 +X = 557 +Y = 211 Font = 1 -Size = 17 +Size = 16 Align = 1 Color = White Text = P5 Z = 1 [NamePlayerSelectStatic5Avatar] -X = 532 -Y = 135 -W = 52 -H = 65 +X = 531 +Y = 127 +W = 51 +H = 72 Z = 1 Tex = NoAvatar_P5 Type = Transparent [NamePlayerSelectStatic6] X = 630 -Y = 128 -W = 68 -H = 80 +Y = 120 +W = 66 +H = 88 Tex = AvatarFrame2 Color = P6Dark Type = Colorized Z = 1 [NamePlayerSelectStatic6Text] -X = 665 -Y = 209 +X = 662 +Y = 211 Font = 1 -Size = 17 +Size = 16 Align = 1 Color = White Text = P6 Z = 1 [NamePlayerSelectStatic6Avatar] -X = 638 -Y = 135 -W = 52 -H = 65 +X = 637 +Y = 127 +W = 51 +H = 72 Z = 1 Tex = NoAvatar_P6 Type = Transparent -[NamePlayerSelectStatic7] -X = 830 -Y = 128 -W = 68 -H = 80 -Tex = AvatarFrame2 -Color = P6Dark -Type = Colorized -Z = 1 - -[NamePlayerSelectStatic7Text] -X = 865 -Y = 209 -Font = 1 -Size = 17 -Align = 1 -Color = White -Text = P6 -Z = 1 - -[NamePlayerSelectStatic7Avatar] -X = 838 -Y = 135 -W = 52 -H = 65 -Z = 1 -Tex = NoAvatar_P7 -Type = Transparent - -[NamePlayerSelectStatic8] -X = 830 -Y = 128 -W = 68 -H = 80 -Tex = AvatarFrame2 -Color = P6Dark -Type = Colorized -Z = 1 - -[NamePlayerSelectStatic8Text] -X = 865 -Y = 209 -Font = 1 -Size = 17 -Align = 1 -Color = White -Text = P6 -Z = 1 - -[NamePlayerSelectStatic8Avatar] -X = 838 -Y = 135 -W = 52 -H = 65 -Z = 1 -Tex = NoAvatar_P8 -Type = Transparent - -[NamePlayerSelectStatic9] -X = 830 -Y = 128 -W = 68 -H = 80 -Tex = AvatarFrame2 -Color = P6Dark -Type = Colorized -Z = 1 - -[NamePlayerSelectStatic9Text] -X = 865 -Y = 209 -Font = 1 -Size = 17 -Align = 1 -Color = White -Text = P6 -Z = 1 - -[NamePlayerSelectStatic9Avatar] -X = 838 -Y = 135 -W = 52 -H = 65 -Z = 1 -Tex = NoAvatar_P9 -Type = Transparent - -[NamePlayerSelectStatic10] -X = 830 -Y = 128 -W = 68 -H = 80 -Tex = AvatarFrame2 -Color = P6Dark -Type = Colorized -Z = 1 - -[NamePlayerSelectStatic10Text] -X = 865 -Y = 209 -Font = 1 -Size = 17 -Align = 1 -Color = White -Text = P6 -Z = 1 - -[NamePlayerSelectStatic10Avatar] -X = 838 -Y = 135 -W = 52 -H = 65 -Z = 1 -Tex = NoAvatar_P10 -Type = Transparent - -[NamePlayerSelectStatic11] -X = 830 -Y = 128 -W = 68 -H = 80 -Tex = AvatarFrame2 -Color = P6Dark -Type = Colorized -Z = 1 - -[NamePlayerSelectStatic11Text] -X = 865 -Y = 209 -Font = 1 -Size = 17 -Align = 1 -Color = White -Text = P6 -Z = 1 - -[NamePlayerSelectStatic11Avatar] -X = 838 -Y = 135 -W = 52 -H = 65 -Z = 1 -Tex = NoAvatar_P11 -Type = Transparent - -[NamePlayerSelectStatic12] -X = 830 -Y = 128 -W = 68 -H = 80 -Tex = AvatarFrame2 -Color = P6Dark -Type = Colorized -Z = 1 - -[NamePlayerSelectStatic12Text] -X = 865 -Y = 209 -Font = 1 -Size = 17 -Align = 1 -Color = White -Text = P6 -Z = 1 - -[NamePlayerSelectStatic12Avatar] -X = 838 -Y = 135 -W = 52 -H = 65 -Z = 1 -Tex = NoAvatar_P12 -Type = Transparent - [NamePlayerSelectCurrent] -X = -12 +X = 0 Y = 120 -W = 95 -H = 120 +W = 67 +H = 130 Z = 0.95 Tex = SelectFrame Color = ColorDark -DColor = ColorLight +DColor = White Type = Transparent [NamePlayerAvatar] X = 560 -Y = 420 -W = 70 +Y = 421 +W = 67 H = 90 Reflection = 0 [NamePlayerButtonAvatar] X = 541 -Y = 405 -W = 111 -H = 122 +Y = 403 +W = 107 +H = 124 Tex = AvatarFrame Color = ColorDark DColor = ColorLight @@ -787,8 +601,8 @@ Size=5 SkipX = 30 SBGW = 160 TextSize = 22 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White SBGDColor = PlayerDark @@ -811,8 +625,8 @@ Size=5 SkipX = 30 SBGW = 160 TextSize = 22 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White SBGDColor = PlayerDark @@ -887,7 +701,7 @@ Text = SONG_MENU_PLAY # in some song menus [SongMenuSelectSlide1] TexSBG = Rectangle -Text = +Text = TypeSBG = Colorized ShowArrows = 1 OneItemOnly = 1 @@ -932,7 +746,7 @@ Z = 0.97 # in some song menus [SongMenuSelectSlide2] TexSBG = Rectangle -Text = +Text = TypeSBG = Colorized ShowArrows = 1 OneItemOnly = 1 @@ -979,7 +793,7 @@ Z = 0.97 # in some song menus [SongMenuSelectSlide3] TexSBG = Rectangle -Text = +Text = TypeSBG = Colorized ShowArrows = 1 OneItemOnly = 1 @@ -2007,7 +1821,7 @@ Tex = SongDuetSinger2 [SongMosaicStatic2PlayersDuetSingerP1] X = 565 -Y = 435 +Y = 135 W = 154 H = 30 Z = 0.95 @@ -2017,7 +1831,7 @@ Tex = SongDuetSinger [SongMosaicText2PlayersDuetSingerP1] X = 642 -Y = 440 +Y = 140 Font = 0 Size = 20 Align = 1 @@ -2025,7 +1839,7 @@ Color = White [SongMosaicStatic2PlayersDuetSingerP2] X = 565 -Y = 465 +Y = 165 W = 154 H = 30 Z = 0.95 @@ -2037,7 +1851,7 @@ ReflectionSpacing = 1 [SongMosaicText2PlayersDuetSingerP2] X = 642 -Y = 470 +Y = 170 Font = 0 Size = 20 Align = 1 @@ -2045,7 +1859,7 @@ Color = White [SongMosaicStatic3PlayersDuetSingerP1] X = 565 -Y = 420 +Y = 120 W = 154 H = 30 Z = 0.95 @@ -2055,7 +1869,7 @@ Tex = SongDuetSinger [SongMosaicText3PlayersDuetSingerP1] X = 642 -Y = 425 +Y = 125 Font = 0 Size = 20 Align = 1 @@ -2063,7 +1877,7 @@ Color = White [SongMosaicStatic3PlayersDuetSingerP2] X = 565 -Y = 450 +Y = 150 W = 154 H = 30 Z = 0.95 @@ -2075,7 +1889,7 @@ ReflectionSpacing = 1 [SongMosaicText3PlayersDuetSingerP2] X = 642 -Y = 455 +Y = 155 Font = 0 Size = 20 Align = 1 @@ -2083,7 +1897,7 @@ Color = White [SongMosaicStatic3PlayersDuetSingerP3] X = 565 -Y = 480 +Y = 180 W = 154 H = 30 Z = 0.95 @@ -2095,7 +1909,7 @@ ReflectionSpacing = 1 [SongMosaicText3PlayersDuetSingerP3] X = 642 -Y = 485 +Y = 185 Font = 0 Size = 20 Align = 1 @@ -2103,7 +1917,7 @@ Color = White [SongMosaicStatic4PlayersDuetSingerP3] X = 575 -Y = 435 +Y = 135 W = 154 H = 30 Z = 0.95 @@ -2113,7 +1927,7 @@ Tex = SongDuetSinger [SongMosaicStatic4PlayersDuetSingerP4] X = 575 -Y = 465 +Y = 165 W = 154 H = 30 Z = 0.95 @@ -2123,7 +1937,7 @@ Tex = SongDuetSinger2 [SongMosaicStatic6PlayersDuetSingerP4] X = 575 -Y = 420 +Y = 120 W = 154 H = 30 Z = 0.95 @@ -2133,7 +1947,7 @@ Tex = SongDuetSinger [SongMosaicStatic6PlayersDuetSingerP5] X = 575 -Y = 450 +Y = 150 W = 154 H = 30 Z = 0.95 @@ -2143,7 +1957,7 @@ Tex = SongDuetSinger3 [SongMosaicStatic6PlayersDuetSingerP6] X = 575 -Y = 480 +Y = 180 W = 154 H = 30 Z = 0.95 @@ -2191,7 +2005,7 @@ X = 335 Y = 477 W = 30 H = 20 -Z = 0.95 +Z = 0.952 Color = White Tex = icon_song_medley Type = Transparent @@ -2203,7 +2017,7 @@ X = 335 Y = 477 W = 30 H = 20 -Z = 0.95 +Z = 0.952 Color = White Tex = icon_song_calcmedley Type = Transparent @@ -2215,7 +2029,7 @@ X = 310 Y = 475 W = 18 H = 24 -Z = 0.95 +Z = 0.952 Color = White Tex = icon_song_video Type = Transparent @@ -2224,20 +2038,32 @@ ReflectionSpacing = 22 [SongRouletteDuetIcon] X = 335 -Y = 465 +Y = 475 W = 20 H = 24 -Z = 0.95 +Z = 0.952 Color = White Tex = icon_song_duet Type = Transparent Reflection = 0 ReflectionSpacing = 22 -[SongRouletteStatic1] -X = 278 -Y = 100 -W = 244 +[SongRouletteRapIcon] +X = 420 +Y = 475 +W = 18 +H = 24 +Z = 0.952 +Color = White +Tex = icon_song_rap +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongRouletteStatic1] +X = 278 +Y = 100 +W = 244 H = 200 Z = 0.95 Color = ColorLight @@ -2277,11 +2103,11 @@ Align = 1 Text = [SongRouletteTextNumber] -X = 492 -Y = 477 +X = 495 +Y = 480 Z = 0.95 Color = White -Size = 18 +Size = 16 Align = 2 Reflection = 0 ReflectionSpacing = 21 @@ -2299,6 +2125,7 @@ Align = 1 [SongRouletteStaticNonParty1] X = 527 Y = 405 +Z = 0.95 W = 163 H = 107 Z = 0 @@ -2319,6 +2146,7 @@ Text = SING_SONG_SELECTION_LEGEND_TITLE [SongRouletteStaticNonParty2] X = 541 Y = 430 +Z = 1 W = 15 H = 20 Tex = icon_song_video @@ -2339,6 +2167,7 @@ Text = SING_SONG_SELECTION_LEGEND_VIDEO [SongRouletteStaticNonParty3] X = 540 Y = 450 +Z = 0.952 W = 26 H = 16 Tex = icon_song_medley @@ -2358,6 +2187,7 @@ Text = SING_SONG_SELECTION_LEGEND_MEDLEY [SongRouletteStaticNonParty4] X = 540 Y = 470 +Z = 0.952 W = 26 H = 16 Tex = icon_song_calcmedley @@ -2378,6 +2208,7 @@ Text = SING_SONG_SELECTION_LEGEND_MEDLEYC [SongRouletteStaticNonParty5] X = 540 Y = 490 +Z = 0.952 W = 13 H = 17 Tex = icon_song_duet @@ -2873,7 +2704,7 @@ Size = 20 Align = 1 ############################# -## ## +## ## ## Medley Playlist ## ## ## ############################# @@ -3100,6 +2931,18 @@ Type = Transparent Reflection = 0 ReflectionSpacing = 22 +[SongChessboardRapIcon] +X = 123 +Y = 430 +W = 18 +H = 24 +Z = 0.95 +Color = White +Tex = icon_song_rap +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + [SongChessboardStatic3] X = 10 Y = 270 @@ -3152,7 +2995,7 @@ Size = 18 Align = 1 -################# +################# #### Legend #### ################# @@ -3725,7 +3568,7 @@ Size = 20 Align = 1 ############################# -## ## +## ## ## Medley Playlist ## ## ## ############################# @@ -3735,7 +3578,7 @@ N = 2 [SongChessboardTextMedleyNumber1] X=215 -Y=485 +Y=485 Color=White Font=1 Size=20 @@ -3840,7 +3683,7 @@ X = 335 Y = 477 W = 30 H = 20 -Z = 0.95 +Z = 0.952 Color = White Tex = icon_song_medley Type = Transparent @@ -3852,7 +3695,7 @@ X = 335 Y = 477 W = 30 H = 20 -Z = 0.95 +Z = 0.952 Color = White Tex = icon_song_calcmedley Type = Transparent @@ -3864,7 +3707,7 @@ X = 310 Y = 475 W = 18 H = 24 -Z = 0.95 +Z = 0.952 Color = White Tex = icon_song_video Type = Transparent @@ -3876,13 +3719,25 @@ X = 335 Y = 475 W = 20 H = 24 -Z = 0.95 +Z = 0.952 Color = White Tex = icon_song_duet Type = Transparent Reflection = 0 ReflectionSpacing = 22 +[SongCarouselRapIcon] +X = 420 +Y = 475 +W = 18 +H = 24 +Z = 0.952 +Color = White +Tex = icon_song_rap +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + [SongCarouselStatic1] X = 278 Y = 120 @@ -3926,11 +3781,11 @@ Align = 1 Text = [SongCarouselTextNumber] -X = 492 -Y = 477 +X = 495 +Y = 480 Z = 0.95 Color = White -Size = 18 +Size = 16 Align = 2 Reflection = 0 ReflectionSpacing = 21 @@ -3948,6 +3803,7 @@ Align = 1 [SongCarouselStaticNonParty3] X = 582 Y = 405 +Z = 0.95 W = 163 H = 107 Z = 0 @@ -3968,6 +3824,7 @@ Text = SING_SONG_SELECTION_LEGEND_TITLE [SongCarouselStaticNonParty4] X = 596 Y = 430 +Z = 0.952 W = 15 H = 20 Tex = icon_song_video @@ -3988,6 +3845,7 @@ Text = SING_SONG_SELECTION_LEGEND_VIDEO [SongCarouselStaticNonParty5] X = 595 Y = 450 +Z = 0.952 W = 26 H = 16 Tex = icon_song_medley @@ -4007,6 +3865,7 @@ Text = SING_SONG_SELECTION_LEGEND_MEDLEY [SongCarouselStaticNonParty6] X = 595 Y = 470 +Z = 0.952 W = 26 H = 16 Tex = icon_song_calcmedley @@ -4027,6 +3886,7 @@ Text = SING_SONG_SELECTION_LEGEND_MEDLEYC [SongCarouselStaticNonParty7] X = 595 Y = 490 +Z = 0.952 W = 13 H = 17 Tex = icon_song_duet @@ -4505,7 +4365,7 @@ Size = 20 Align = 1 ############################# -## ## +## ## ## Medley Playlist ## ## ## ############################# @@ -4658,7 +4518,7 @@ X = 315 Y = 352 W = 36 H = 26 -Z = 0.95 +Z = 0.952 Color = White Tex = icon_song_calcmedley Type = Transparent @@ -4668,7 +4528,7 @@ X = 280 Y = 350 W = 26 H = 30 -Z = 0.95 +Z = 0.952 Color = White Tex = icon_song_video Type = Transparent @@ -4678,11 +4538,21 @@ X = 315 Y = 350 W = 25 H = 30 -Z = 0.95 +Z = 0.952 Color = White Tex = icon_song_duet Type = Transparent +[SongSlotMachineRapIcon] +X = 357 +Y = 350 +W = 25 +H = 30 +Z = 0.952 +Color = White +Tex = icon_song_rap +Type = Transparent + [SongSlotMachineStatic1] X = 260 Y = 190 @@ -4729,7 +4599,7 @@ Color = White Size = 28 Align = 1 -########## LEGEND ROULETTE ######### +########## LEGEND SLOT MACHINE ######### [SongSlotMachineStaticNonParty1] X = 555 @@ -5300,7 +5170,7 @@ Size = 20 Align = 1 ############################# -## ## +## ## ## Medley Playlist ## ## ## ############################# @@ -5447,7 +5317,7 @@ X = 335 Y = 477 W = 30 H = 20 -Z = 0.95 +Z = 0.952 Color = White Tex = icon_song_medley Type = Transparent @@ -5459,18 +5329,19 @@ X = 335 Y = 477 W = 30 H = 20 -Z = 0.95 +Z = 0.952 Color = White Tex = icon_song_calcmedley Type = Transparent Reflection = 0 ReflectionSpacing = 22 + [SongSlideVideoIcon] X = 310 Y = 475 W = 18 H = 24 -Z = 0.95 +Z = 0.952 Color = White Tex = icon_song_video Type = Transparent @@ -5482,13 +5353,25 @@ X = 335 Y = 475 W = 20 H = 24 -Z = 0.95 +Z = 0.952 Color = White Tex = icon_song_duet Type = Transparent Reflection = 0 ReflectionSpacing = 22 +[SongSlideRapIcon] +X = 420 +Y = 475 +W = 18 +H = 24 +Z = 0.952 +Color = White +Tex = icon_song_rap +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + [SongSlideStatic1] X = 278 Y = 120 @@ -5532,11 +5415,11 @@ Align = 1 Text = [SongSlideTextNumber] -X = 492 -Y = 478 +X = 495 +Y = 480 Z = 0.95 Color = White -Size = 18 +Size = 16 Align = 2 Reflection = 0 ReflectionSpacing = 21 @@ -5554,9 +5437,9 @@ Align = 1 [SongSlideStatic3] X = 582 Y = 405 +Z = 0.95 W = 163 H = 107 -Z = 0 Tex = BGFade Color = White Type = Transparent @@ -5574,6 +5457,7 @@ Text = SING_SONG_SELECTION_LEGEND_TITLE [SongSlideStatic4] X = 596 Y = 430 +Z = 0.952 W = 15 H = 20 Tex = icon_song_video @@ -5594,6 +5478,7 @@ Text = SING_SONG_SELECTION_LEGEND_VIDEO [SongSlideStatic5] X = 595 Y = 450 +Z = 0.952 W = 26 H = 16 Tex = icon_song_medley @@ -5613,6 +5498,7 @@ Text = SING_SONG_SELECTION_LEGEND_MEDLEY [SongSlideStatic6] X = 595 Y = 470 +Z = 0.952 W = 26 H = 16 Tex = icon_song_calcmedley @@ -5633,6 +5519,7 @@ Text = SING_SONG_SELECTION_LEGEND_MEDLEYC [SongSlideStatic7] X = 595 Y = 490 +Z = 0.952 W = 13 H = 17 Tex = icon_song_duet @@ -5649,7 +5536,7 @@ Size = 12 Align = 0 Text = SING_SONG_SELECTION_LEGEND_DUET -#[SongCarouselTextScore] +#[SongSlideTextScore] #X = 530 #Y = 420 #Color = ColorLight @@ -5846,7 +5733,7 @@ Type = Transparent X = 300 Y = 548 Z = 0.952 -Color = Black +Color = White Font = 0 Size = 24 Align = 0 @@ -5869,7 +5756,7 @@ Type = Transparent X = 426 Y = 548 Z = 0.952 -Color = Black +Color = White Font = 0 Size = 24 Align = 0 @@ -5890,7 +5777,7 @@ Type = Transparent [SongSlideTextParty5] X = 570 Y = 548 -Color = Black +Color = White Font = 0 Size = 24 Align = 0 @@ -5913,7 +5800,7 @@ Text = PARTY_MODE [SongSlideTextParty2] X = 238 Y = 548 -Color = Black +Color = White Font = 0 Size = 21 Align = 2 @@ -6159,7 +6046,7 @@ Size = 20 Align = 1 ############################# -## ## +## ## ## Medley Playlist ## ## ## ############################# @@ -6372,6 +6259,17 @@ Tex = icon_song_duet Type = Transparent Reflection = 0 +[SongListRapIcon] +X = 467 +Y = 100 +W = 18 +H = 22 +Z = 1 +Color = White +Tex = icon_song_rap +Type = Transparent +Reflection = 0 + [SongListTextArtist] X = 115 Y = 100 @@ -6708,7 +6606,7 @@ Type = Transparent X = 300 Y = 548 Z = 0.952 -Color = Black +Color = White Font = 0 Size = 24 Align = 0 @@ -6731,7 +6629,7 @@ Type = Transparent X = 426 Y = 548 Z = 0.952 -Color = Black +Color = White Font = 0 Size = 24 Align = 0 @@ -6752,7 +6650,7 @@ Type = Transparent [SongListTextParty5] X = 570 Y = 548 -Color = Black +Color = White Font = 0 Size = 24 Align = 0 @@ -6775,7 +6673,7 @@ Text = PARTY_MODE [SongListTextParty2] X = 238 Y = 548 -Color = Black +Color = White Font = 0 Size = 21 Align = 2 @@ -7021,7 +6919,7 @@ Size = 20 Align = 1 ############################# -## ## +## ## ## Medley Playlist ## ## ## ############################# @@ -7031,7 +6929,7 @@ N = 3 [SongListTextMedleyNumber1] X=543 -Y=100 +Y=100 Color=White Font=1 Size=18 @@ -7166,7 +7064,7 @@ Y = 500 PieceW = 5 PieceH = 5 Space = 1 -Bands = 4 +Bands = 4 Length = 18 Reflection = 1 ReflectionSpacing = 2 @@ -7209,7 +7107,7 @@ ReflectionSpacing = 0 [SongMosaicDuetIcon] X = 500 -Y = 432 +Y = 428 W = 22 H = 24 Z = 1 @@ -7219,6 +7117,18 @@ Type = Transparent Reflection = 0 ReflectionSpacing = 0 +[SongMosaicRapIcon] +X = 500 +Y = 465 +W = 20 +H = 24 +Z = 1 +Color = White +Tex = icon_song_rap +Type = Transparent +Reflection = 0 +ReflectionSpacing = 0 + [SongMosaicStatic1] X = 180 Y = 370 @@ -7226,7 +7136,7 @@ W = 355 H = 132 Z = 0.9 Color = ColorLight -Tex = JukeboxSongListBackground +Tex = JukeboxSongSelection Type = Colorized Reflection = 1 ReflectionSpacing = 2 @@ -7567,7 +7477,7 @@ Type = Transparent X = 300 Y = 548 Z = 0.952 -Color = Black +Color = White Font = 0 Size = 24 Align = 0 @@ -7590,7 +7500,7 @@ Type = Transparent X = 426 Y = 548 Z = 0.952 -Color = Black +Color = White Font = 0 Size = 24 Align = 0 @@ -7611,7 +7521,7 @@ Type = Transparent [SongMosaicTextParty5] X = 570 Y = 548 -Color = Black +Color = White Font = 0 Size = 24 Align = 0 @@ -7634,7 +7544,7 @@ Text = PARTY_MODE [SongMosaicTextParty2] X = 238 Y = 548 -Color = Black +Color = White Font = 0 Size = 21 Align = 2 @@ -7880,7 +7790,7 @@ Size = 20 Align = 1 ############################# -## ## +## ## ## Medley Playlist ## ## ## ############################# @@ -7890,7 +7800,7 @@ N = 4 [SongMosaicTextMedleyNumber1] X=548 -Y=111 +Y=111 Color=White Font=1 Size=20 @@ -8021,609 +7931,63 @@ H = 30 Color = ColorDark Type = Colorized -############################# -# # -# Edit # -# # -############################# +########################################## +######### S I N G S C R E E N ########## +########################################## -[EditSub] -[EditSubBackground] -Tex = EditSubBG +[Sing] +Texts = 1 -[EditSubTitle] -X = 30 -Y = 60 -W = 100 -H = 20 -SkipX = 10 -TextSize = 16 -Text = EDIT_TITLE -Tex = MainBar -Type = Transparent -TexSBG = MainBar -TypeSBG = Transparent -ShowArrows = 0 -SBGW = 350 -Align = 0 +[SingBackground] +Type=color +ColR=1 +ColB=1 +ColG=1 -DColor = ColorDark -Color = ColorLight -TColor = White -TDColor = White - -SBGDColor = ColorDark -SBGColor = ColorLight -STColor = White -STDColor = GrayDark +[SingStatic1] +;TextBG +Tex = LyricBar +X = 0 +Y = 482 +W = 800 +H = 98 +Color = ColorDark +Type = Transparent -[EditSubArtist] -X = 30 -Y = 81 -W = 100 +[SingStatic2] +;TimeBar +Tex = TimeBar1 +X = 0 +Y = 580 +W = 800 H = 20 -SkipX = 10 -TextSize = 16 -Text = EDIT_ARTIST -Tex = MainBar +Color = White Type = Transparent -TexSBG = MainBar -TypeSBG = Transparent -ShowArrows = 0 -SBGW = 350 -Align = 0 -DColor = ColorDark -Color = ColorLight -TColor = White -TDColor = White - -SBGDColor = ColorDark -SBGColor = ColorLight -STColor = White -STDColor = GrayDark +[SingTimeProgress] +X = 40 +Y = 587 +W = 679 +H = 6 +Color = White -[EditSubMP3] -X = 30 -Y = 102 -W = 100 -H = 20 -SkipX = 10 -TextSize = 16 -Text = EDIT_MP3 -Tex = MainBar -Type = Transparent -TexSBG = MainBar -TypeSBG = Transparent -ShowArrows = 1 -OneItemOnly = 1 -SBGW = 350 -Align = 0 - -DColor = ColorDark -Color = ColorLight -TColor = White -TDColor = White - -SBGDColor = ColorDark -SBGColor = ColorLight -STColor = White -STDColor = GrayDark - -[EditSubSlideCover] -X = 30 -Y = 123 -W = 100 -H = 20 -SkipX = 10 -TextSize = 16 -Text = EDIT_COVER -Tex = MainBar -Type = Transparent -TexSBG = SelectBG -TypeSBG = Transparent -ShowArrows = 1 -OneItemOnly = 1 -SBGW = 350 -Align = 0 - -DColor = ColorDark -Color = ColorLight -TColor = White -TDColor = White - -SBGDColor = ColorDark -SBGColor = ColorLight -STColor = White -STDColor = GrayDark - -[EditSubSlideBG] -X = 30 -Y = 144 -W = 100 -H = 20 -SkipX = 10 -TextSize = 16 -Text = EDIT_BACKGROUND -Tex = MainBar -Type = Transparent -TexSBG = SelectBG -TypeSBG = Transparent -ShowArrows = 1 -OneItemOnly = 1 -SBGW = 350 -Align = 0 - -DColor = ColorDark -Color = ColorLight -TColor = White -TDColor = White - -SBGDColor = ColorDark -SBGColor = ColorLight -STColor = White -STDColor = GrayDark - -[EditSubBPM] -X = 30 -Y = 165 -W = 100 -H = 20 -SkipX = 10 -TextSize = 16 -Text = EDIT_BPM -Tex = MainBar -Type = Transparent -TexSBG = MainBar -TypeSBG = Transparent -ShowArrows = 0 -SBGW = 100 -Align = 0 - -DColor = ColorDark -Color = ColorLight -TColor = White -TDColor = White - -SBGDColor = ColorDark -SBGColor = ColorLight -STColor = White -STDColor = GrayDark - -[EditSubGAP] -X = 30 -Y = 186 -W = 100 -H = 20 -SkipX = 10 -TextSize = 16 -Text = EDIT_GAP -Tex = MainBar -Type = Transparent -TexSBG = MainBar -TypeSBG = Transparent -ShowArrows = 0 -SBGW = 100 -Align = 0 - -DColor = ColorDark -Color = ColorLight -TColor = White -TDColor = White - -SBGDColor = ColorDark -SBGColor = ColorLight -STColor = White -STDColor = GrayDark - -[EditSubStart] -X = 30 -Y = 207 -W = 100 -H = 20 -SkipX = 10 -TextSize = 16 -Text = EDIT_START -Tex = MainBar -Type = Transparent -TexSBG = MainBar -TypeSBG = Transparent -ShowArrows = 0 -SBGW = 100 -Align = 0 - -DColor = ColorDark -Color = ColorLight -TColor = White -TDColor = White - -SBGDColor = ColorDark -SBGColor = ColorLight -STColor = White -STDColor = GrayDark - -[EditSubDuration] -X = 30 -Y = 228 -W = 100 -H = 20 -SkipX = 10 -TextSize = 16 -Text = EDIT_DURATION -Tex = MainBar -Type = Transparent -TexSBG = MainBar -TypeSBG = Transparent -ShowArrows = 0 -SBGW = 100 -Align = 0 - -DColor = ColorDark -Color = ColorLight -TColor = White -TDColor = White - -SBGDColor = ColorDark -SBGColor = ColorLight -STColor = White -STDColor = GrayDark - -[EditSubTone] -X = 30 -Y = 249 -W = 100 -H = 20 -SkipX = 10 -TextSize = 16 -Text = EDIT_TONE -Tex = MainBar -Type = Transparent -TexSBG = MainBar -TypeSBG = Transparent -ShowArrows = 0 -SBGW = 100 -Align = 0 - -DColor = ColorDark -Color = ColorLight -TColor = White -TDColor = White - -SBGDColor = ColorDark -SBGColor = ColorLight -STColor = White -STDColor = GrayDark - -[EditSubLyric] -X = 30 -Y = 270 -W = 100 -H = 20 -SkipX = 10 -TextSize = 16 -Text = EDIT_LYRIC -Tex = MainBar -Type = Transparent -TexSBG = MainBar -TypeSBG = Transparent -ShowArrows = 0 -SBGW = 350 -Align = 0 - -DColor = ColorDark -Color = ColorLight -TColor = White -TDColor = White - -SBGDColor = ColorDark -SBGColor = ColorLight -STColor = White -STDColor = GrayDark - -[EditSubVideoGap] -X = 510 -Y = 270 -W = 100 -H = 20 -SkipX = 10 -TextSize = 16 -Text = EDIT_VIDEOGAP -Tex = MainBar -Type = Transparent -TexSBG = MainBar -TypeSBG = Transparent -ShowArrows = 0 -SBGW = 100 -Align = 0 - -DColor = ColorDark -Color = ColorLight -TColor = White -TDColor = White - -SBGDColor = ColorDark -SBGColor = ColorLight -STColor = White -STDColor = GrayDark - -[EditSubSelectVolAudio] -TexSBG = SelectBG -Text = EDIT_VOLUME_AUDIO -Type = Transparent -TypeSBG = Transparent -X = 580 -Y = 545 -W = 250 -H = 16 -TextSize = 14 -SkipX = -150 -ShowArrows = 1 -OneItemOnly = 1 -SBGW = 100 - -DColor = ColorDark -Color = ColorLight -TColor = White -TDColor = White - -SBGDColor = ColorDark -SBGColor = ColorLight -STColor = White -STDColor = GrayDark - -[EditSubSelectVolMidi] -TexSBG = SelectBG -Text = EDIT_VOLUME_MIDI -Type = Transparent -TypeSBG = Transparent -X = 580 -Y = 562 -W = 0 -H = 16 -TextSize = 14 -SkipX = 100 -ShowArrows = 1 -OneItemOnly = 1 -SBGW = 100 - -DColor = ColorDark -Color = ColorLight -TColor = White -TDColor = White - -SBGDColor = ColorDark -SBGColor = ColorLight -STColor = White -STDColor = GrayDark - -[EditSubSelectVolClick] -TexSBG = SelectBG -Text = EDIT_VOLUME_CLICK -Type = Transparent -TypeSBG = Transparent -X = 580 -Y = 579 -W = 0 -H = 16 -TextSize = 14 -SkipX = 100 -ShowArrows = 1 -OneItemOnly = 1 -SBGW = 100 - -DColor = ColorDark -Color = ColorLight -TColor = White -TDColor = White - -SBGDColor = ColorDark -SBGColor = ColorLight -STColor = White -STDColor = GrayDark - -[EditSubBackgroundImage] -X = 510 -Y = 60 -W = 250 -H = 205 -Z = 0.95 -Color = Red -Tex = prevbackground -Type = Transparent -Reflection = 0 -ReflectionSpacing = 22 - -[EditSubButtonCurrentLine] -X = 20 -Y = 10 -Z = 0.97 -W = 110 -H = 20 -Size = 20 -Font = 1 -Align = 1 -Color = ColorLight -DColor = ColorLight -Tex = Leiste1 -Type = Colorized -Texts = 1 - -[EditSubButtonCurrentLineText1] -X = 55 -Y = 2 -Color = White -Font = 1 -Size = 18 -Align = 1 - -[EditSubButtonCurrentNote] -X = 140 -Y = 10 -Z = 0.97 -W = 110 -H = 20 -Size = 20 -Font = 1 -Align = 1 -Color = ColorLight -DColor = ColorLight -Tex = Leiste1 -Type = Colorized -Texts = 1 - -[EditSubButtonCurrentNoteText1] -X = 55 -Y = 2 -Color = White -Font = 1 -Size = 18 -Align = 1 - -[EditSubBarStatic1] -Tex = PlayOnly -X = 350 -Y = 245 -W = 24 -H = 24 -Type = Transparent -Color = ColorLight -Reflection = 0 -ReflectionSpacing = 31 - -[EditSubBarStatic2] -Tex = playwithnote -X = 376 -Y = 245 -W = 24 -H = 24 -Type = Transparent -Color = ColorLight -Reflection = 0 -ReflectionSpacing = 31 - -[EditSubBarStatic3] -Tex = playnote -X = 402 -Y = 245 -W = 24 -H = 24 -Type = Transparent -Color = ColorLight -Reflection = 0 -ReflectionSpacing = 31 - -[EditSubBarStatic4] -Tex = previousseq -X = 363 -Y = 219 -W = 24 -H = 24 -Type = Transparent -Color = ColorLight -Reflection = 0 -ReflectionSpacing = 31 - -[EditSubBarStatic5] -Tex = nextseq -X = 389 -Y = 219 -W = 24 -H = 24 -Type = Transparent -Color = ColorLight -Reflection = 0 -ReflectionSpacing = 31 - -[EditSubBarStatic6] -Tex = gold -X = 440 -Y = 219 -W = 24 -H = 24 -Type = Transparent -Color = ColorLight -Reflection = 0 -ReflectionSpacing = 31 - -[EditSubBarStatic7] -Tex = freestyle -X = 440 -Y = 245 -W = 24 -H = 24 -Type = Transparent -Color = ColorLight -Reflection = 0 -ReflectionSpacing = 31 - -[EditSubBarStatic8] -Tex = undo -X = 320 -Y = 219 -W = 24 -H = 24 -Type = Transparent -Color = ColorLight -Reflection = 0 -ReflectionSpacing = 31 - -########################################## -######### S I N G S C R E E N ########## -########################################## - -[Sing] -Texts = 1 - -[SingBackground] -Type=color -ColR=1 -ColB=1 -ColG=1 - -[SingStatic1] -;TextBG -Tex = LyricBar -X = 0 -Y = 482 -W = 800 -H = 98 -Color = ColorDark -Type = Transparent - -[SingStatic2] -;TimeBar -Tex = TimeBar1 -X = 0 -Y = 580 -W = 800 -H = 20 -Color = White -Type = Transparent - -[SingTimeProgress] -X = 40 -Y = 587 -W = 679 -H = 6 -Color = White - -[SingTimeText] -Text = SING_TIME -X = 761 -Y = 582 -Font = 1 -Size = 18 -Color = White -Align = 1 - -[SingInfoMessageBG] -Tex = SongMessage -X = 250 -Y = 40 -W = 300 -H = 25 -Z = 0.98 -Color = GrayDark +[SingTimeText] +Text = SING_TIME +X = 761 +Y = 582 +Font = 1 +Size = 18 +Color = White +Align = 1 + +[SingInfoMessageBG] +Tex = SongMessage +X = 250 +Y = 40 +W = 300 +H = 25 +Z = 0.98 +Color = GrayDark Type = Transparent [SingInfoMessageText] @@ -8697,11 +8061,11 @@ H = 8 [SingP1Avatar] X = 15 -Y = 265 +Y = 266 W = 40 -H = 55 +H = 54 Z = 1 -Alpha = 0.6 +Alpha = 1 # T W O P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # #Player One @@ -8709,7 +8073,7 @@ Alpha = 0.6 X = 18 Y = 82 W = 45 -H = 56 +H = 59 Tex = AvatarFrame2 Color = P1Dark Type = Colorized @@ -8752,7 +8116,7 @@ H = 8 X = 23 Y = 88 W = 35 -H = 44 +H = 47 Z = 1 Alpha = 1 @@ -8761,7 +8125,7 @@ Alpha = 1 X = 18 Y = 273 W = 45 -H = 56 +H = 59 Tex = AvatarFrame2 Color = P2Dark Type = Colorized @@ -8804,7 +8168,7 @@ H = 8 X = 23 Y = 279 W = 35 -H = 44 +H = 47 Z = 1 Alpha = 1 @@ -8814,7 +8178,7 @@ Alpha = 1 X = 16 Y = 57 W = 45 -H = 57 +H = 59 Z = 1 Tex = AvatarFrame2 Color = P1Dark @@ -8822,7 +8186,7 @@ Type = Colorized Alpha = 1 [SingP1ThreePText] -#Text = +#Text = #X = 27 #Y = 66 #Font = 1 @@ -8858,7 +8222,7 @@ H = 8 X = 21 Y = 63 W = 35 -H = 45 +H = 47 Z = 1 Alpha = 1 @@ -8867,7 +8231,7 @@ Alpha = 1 X = 311 Y = 57 W = 45 -H = 57 +H = 59 Tex = AvatarFrame2 Color = P2Dark Type = Colorized @@ -8910,7 +8274,7 @@ H = 8 X = 316 Y = 63 W = 35 -H = 45 +H = 47 Z = 1 Alpha = 1 @@ -8919,7 +8283,7 @@ Alpha = 1 X = 611 Y = 57 W = 45 -H = 57 +H = 59 Tex = AvatarFrame2 Color = P3Dark Type = Colorized @@ -8962,7 +8326,7 @@ H = 8 X = 616 Y = 63 W = 35 -H = 45 +H = 47 Z = 1 Alpha = 1 @@ -8981,7 +8345,7 @@ X = 400 Y = 13 Font = 0 Size = 25 -Color = Black +Color = White Align = 1 @@ -8989,12 +8353,12 @@ Align = 1 #Player One [SingP1FourPStatic] X = 20 -Y = 55 +Y = 54 W = 40 -H = 50 +H = 54 Tex = AvatarFrame2 Color = P1Dark -Type = Transparent +Type = Colorized Alpha = 1 #[SingP1FourPText] @@ -9034,19 +8398,19 @@ H = 8 X = 24 Y = 59 W = 32 -H = 42 +H = 43 Z = 1 Alpha = 1 #Player Two [SingP2FourPStatic] X = 220 -Y = 55 +Y = 54 W = 40 -H = 50 +H = 54 Tex = AvatarFrame2 Color = P2Dark -Type = Transparent +Type = Colorized Alpha = 1 #[SingP2FourPText] @@ -9086,19 +8450,19 @@ H = 8 X = 224 Y = 59 W = 32 -H = 42 +H = 43 Z = 1 Alpha = 1 #Player Three [SingP3FourPStatic] X = 420 -Y = 55 +Y = 54 W = 40 -H = 50 +H = 54 Tex = AvatarFrame2 Color = P3Dark -Type = Transparent +Type = Colorized Alpha = 1 #[SingP3FourPText] @@ -9138,19 +8502,19 @@ H = 8 X = 424 Y = 59 W = 32 -H = 42 +H = 43 Z = 1 Alpha = 1 #Player Four [SingP4FourPStatic] X = 620 -Y = 55 +Y = 54 W = 40 -H = 50 +H = 54 Tex = AvatarFrame2 Color = P4Dark -Type = Transparent +Type = Colorized Alpha = 1 #[SingP4FourPText] @@ -9190,20 +8554,20 @@ H = 8 X = 624 Y = 59 W = 32 -H = 42 +H = 43 Z = 1 Alpha = 1 # SIX P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # #Player One [SingP1SixPStatic] -X = 20 -Y = 100 -W = 32 -H = 42 +X = 19 +Y = 98 +W = 34 +H = 46 Tex = AvatarFrame2 Color = P1Dark -Type = Transparent +Type = Colorized Alpha = 1 [SingP1SixPAvatar] @@ -9249,13 +8613,13 @@ H = 8 #Player Two [SingP2SixPStatic] -X = 20 -Y = 227 -W = 32 -H = 42 +X = 19 +Y = 225 +W = 34 +H = 46 Tex = AvatarFrame2 Color = P2Dark -Type = Transparent +Type = Colorized Alpha = 1 [SingP2SixPAvatar] @@ -9301,13 +8665,13 @@ H = 8 #Player Three [SingP3SixPStatic] -X = 20 -Y = 352 -W = 32 -H = 42 +X = 19 +Y = 350 +W = 34 +H = 46 Tex = AvatarFrame2 Color = P3Dark -Type = Transparent +Type = Colorized Alpha = 1 [SingP3SixPAvatar] @@ -9353,13 +8717,13 @@ H = 8 #Player Four [SingP4SixPStatic] -X = 390 -Y = 100 -W = 32 -H = 42 +X = 389 +Y = 98 +W = 34 +H = 46 Tex = AvatarFrame2 Color = P4Dark -Type = Transparent +Type = Colorized Alpha = 1 [SingP4SixPAvatar] @@ -9405,13 +8769,13 @@ H = 8 #Player Five [SingP5SixPStatic] -X = 390 -Y = 227 -W = 32 -H = 42 +X = 389 +Y = 225 +W = 34 +H = 46 Tex = AvatarFrame2 Color = P5Dark -Type = Transparent +Type = Colorized Alpha = 1 [SingP5SixPAvatar] @@ -9457,13 +8821,13 @@ H = 8 #Player Six [SingP6SixPStatic] -X = 390 -Y = 352 -W = 32 -H = 42 +X = 389 +Y = 350 +W = 34 +H = 46 Tex = AvatarFrame2 Color = P6Dark -Type = Transparent +Type = Colorized Alpha = 1 [SingP6SixPAvatar] @@ -9507,16 +8871,196 @@ Y = 76 W = 100 H = 8 +################################## +########## Duet ########## +################################## + +[SingLyricsDuetP2UpperBar] +X = 80 +W = 640 +Y = 493 +H = 41 +;YOffSet (+/-) for the Sing-Indicator +IndicatorYOffset = 3 + +[SingLyricsDuetP2LowerBar] +X = 80 +W = 640 +Y = 535 +H = 41 + +[SingLyricsDuetP1UpperBar] +X = 80 +W = 640 +Y = 5 +H = 41 +;YOffSet (+/-) for the Sing-Indicator +IndicatorYOffset = 3 + +[SingLyricsDuetP1LowerBar] +X = 80 +W = 640 +Y = 49 +H = 41 + +[SingStaticDuet1] +Tex = LyricBar +X = 0 +Y = -5 +W = 800 +H = 93 +Color = White +Type = Transparent + +# T H R E E P L A Y E R D U E T M O D E # # # # # # # # # # # # # # # # # # # # +#Player One +[SingDuetP1ThreePStatic] +X = 11 +Y = 99 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P1Dark +Type = Colorized +Alpha = 1 + +#[SingDuetP1ThreePText] +#Text = PLAYERNAME +#X = 58 +#Y = 118 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingDuetP1ThreePStatic2] +X = 710 +Y = 100 +W = 80 +H = 25 + +[SingDuetP1ThreePTextScore] +X = 725 +Y = 102 +Font = 0 +Size = 24 + +[SingDuetP1ThreePSingBar] +X = 710 +Y = 125 +W = 80 +H = 6 + +[SingDuetP1ThreePAvatar] +X = 15 +Y = 104 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +#Player Two +[SingDuetP2MStatic] +X = 11 +Y = 224 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P2Dark +Type = Colorized +Alpha = 1 + +#[SingDuetP2MText] +#Text = PLAYERNAME +#X = 58 +#Y = 243 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingDuetP2MStatic2] +X = 710 +Y = 225 +W = 80 +H = 25 + +[SingDuetP2MTextScore] +X = 725 +Y = 227 +Font = 0 +Size = 24 + +[SingDuetP2MSingBar] +X = 710 +Y = 250 +W = 80 +H = 6 + +[SingDuetP2MAvatar] +X = 15 +Y = 229 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +#Player Three +[SingDuetP3RStatic] +X = 11 +Y = 349 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P3Dark +Type = Colorized +Alpha = 1 + +#[SingDuetP3RText] +#Text = PLAYERNAME +#X = 58 +#Y = 368 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingDuetP3RStatic2] +X = 710 +Y = 350 +W = 80 +H = 25 + +[SingDuetP3RTextScore] +X = 725 +Y = 352 +Font = 0 +Size = 24 + +[SingDuetP3RSingBar] +X = 710 +Y = 375 +W = 80 +H = 6 + +[SingDuetP3RAvatar] +X = 15 +Y = 354 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + # FOUR DUET P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # #Player One [SingP1DuetFourPStatic] -X = 20 -Y = 114 -W = 37 -H = 37 +X = 19 +Y = 110 +W = 38 +H = 50 Tex = AvatarFrame2 Color = P1Dark -Type = Transparent +Type = Colorized Alpha = 1 #[SingP1DuetFourPText] @@ -9550,21 +9094,21 @@ H = 6 [SingP1DuetFourPAvatar] X = 23 -Y = 117 -W = 31 -H = 31 +Y = 115 +W = 30 +H = 40 Z = 1 Alpha = 1 #Player Two [SingP2DuetFourPStatic] -X = 20 -Y = 294 -W = 37 -H = 37 +X = 19 +Y = 292 +W = 38 +H = 50 Tex = AvatarFrame2 Color = P2Dark -Type = Transparent +Type = Colorized Alpha = 1 #[SingP2DuetFourPText] @@ -9599,20 +9143,20 @@ H = 6 [SingP2DuetFourPAvatar] X = 23 Y = 297 -W = 31 -H = 31 +W = 30 +H = 40 Z = 1 Alpha = 1 #Player Three [SingP3DuetFourPStatic] -X = 390 -Y = 114 -W = 37 -H = 37 +X = 389 +Y = 112 +W = 38 +H = 50 Tex = AvatarFrame2 Color = P3Dark -Type = Transparent +Type = Colorized Alpha = 1 #[SingP3DuetFourPText] @@ -9647,20 +9191,20 @@ H = 6 [SingP3DuetFourPAvatar] X = 393 Y = 117 -W = 31 -H = 31 +W = 30 +H = 40 Z = 1 Alpha = 1 #Player Four [SingP4DuetFourPStatic] -X = 390 -Y = 294 -W = 37 -H = 37 +X = 389 +Y = 292 +W = 38 +H = 50 Tex = AvatarFrame2 Color = P4Dark -Type = Transparent +Type = Colorized Alpha = 1 #[SingP4DuetFourPText] @@ -9693,28 +9237,28 @@ H = 6 [SingP4DuetFourPAvatar] X = 393 Y = 297 -W = 31 -H = 31 +W = 30 +H = 40 Z = 1 Alpha = 1 # SIX DUET P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # #Player One [SingP1DuetSixPStatic] -X = 20 +X = 19 Y = 100 -W = 37 -H = 37 +W = 34 +H = 46 Tex = AvatarFrame2 Color = P1Dark -Type = Transparent +Type = Colorized Alpha = 1 [SingP1DuetSixPAvatar] X = 23 -Y = 103 -W = 31 -H = 31 +Y = 105 +W = 26 +H = 36 Z = 1 Alpha = 1 @@ -9751,20 +9295,20 @@ H = 6 #Player Two [SingP2DuetSixPStatic] -X = 20 +X = 19 Y = 227 -W = 37 -H = 37 +W = 34 +H = 46 Tex = AvatarFrame2 Color = P2Dark -Type = Transparent +Type = Colorized Alpha = 1 [SingP2DuetSixPAvatar] X = 23 -Y = 230 -W = 31 -H = 31 +Y = 232 +W = 26 +H = 36 Z = 1 Alpha = 1 @@ -9801,20 +9345,20 @@ H = 6 #Player Three [SingP3DuetSixPStatic] -X = 20 +X = 19 Y = 352 -W = 37 -H = 37 +W = 34 +H = 46 Tex = AvatarFrame2 Color = P3Dark -Type = Transparent +Type = Colorized Alpha = 1 [SingP3DuetSixPAvatar] X = 23 -Y = 355 -W = 31 -H = 31 +Y = 357 +W = 26 +H = 36 Z = 1 Alpha = 1 @@ -9851,20 +9395,20 @@ H = 6 #Player Four [SingP4DuetSixPStatic] -X = 390 +X = 389 Y = 100 -W = 37 -H = 37 +W = 34 +H = 46 Tex = AvatarFrame2 Color = P4Dark -Type = Transparent +Type = Colorized Alpha = 1 [SingP4DuetSixPAvatar] X = 393 -Y = 103 -W = 31 -H = 31 +Y = 105 +W = 26 +H = 36 Z = 1 Alpha = 1 @@ -9901,20 +9445,20 @@ H = 6 #Player Five [SingP5DuetSixPStatic] -X = 390 +X = 389 Y = 227 -W = 37 -H = 37 +W = 34 +H = 46 Tex = AvatarFrame2 Color = P5Dark -Type = Transparent +Type = Colorized Alpha = 1 [SingP5DuetSixPAvatar] X = 393 -Y = 230 -W = 31 -H = 31 +Y = 232 +W = 26 +H = 36 Z = 1 Alpha = 1 @@ -9951,20 +9495,20 @@ H = 6 #Player Six [SingP6DuetSixPStatic] -X = 390 +X = 389 Y = 352 -W = 37 -H = 37 +W = 34 +H = 46 Tex = AvatarFrame2 Color = P6Dark -Type = Transparent +Type = Colorized Alpha = 1 [SingP6DuetSixPAvatar] X = 393 -Y = 355 -W = 31 -H = 31 +Y = 357 +W = 26 +H = 36 Z = 1 Alpha = 1 @@ -9975,209 +9519,30 @@ Alpha = 1 #Font = 1 #Size = 18 #Color = White -#Align = 0 - -[SingP6DuetSixPStatic2] -Tex = ScoreBG -X = 700 -Y = 347 -W = 80 -H = 25 -Color = P6Dark -Type = Colorized - -[SingP6DuetSixPTextScore] -Text = 00000 -X = 715 -Y = 349 -Font = 0 -Size = 24 - -[SingP6DuetSixPSingBar] -X = 700 -Y = 372 -W = 80 -H = 6 - -################################## -########## Duet ########## -################################## - -[SingLyricsDuetP2UpperBar] -X = 80 -W = 640 -Y = 493 -H = 41 -;YOffSet (+/-) for the Sing-Indicator -IndicatorYOffset = 3 - -[SingLyricsDuetP2LowerBar] -X = 80 -W = 640 -Y = 535 -H = 41 - -[SingLyricsDuetP1UpperBar] -X = 80 -W = 640 -Y = 5 -H = 41 -;YOffSet (+/-) for the Sing-Indicator -IndicatorYOffset = 3 - -[SingLyricsDuetP1LowerBar] -X = 80 -W = 640 -Y = 49 -H = 41 - -[SingStaticDuet1] -Tex = LyricBar -X = 0 -Y = 0 -W = 800 -H = 88 -Color = White -Type = Transparent - -# T H R E E P L A Y E R D U E T M O D E # # # # # # # # # # # # # # # # # # # # -#Player One -[SingDuetP1ThreePStatic] -X = 12 -Y = 99 -W = 37 -H = 37 -Tex = AvatarFrame2 -Color = P1Dark -Type = Transparent -Alpha = 1 - -[SingDuetP1ThreePText] -Text = PLAYERNAME -X = 58 -Y = 118 -Font = 1 -Size = 18 -Color = White -Align = 0 - -[SingDuetP1ThreePStatic2] -X = 710 -Y = 100 -W = 80 -H = 25 - -[SingDuetP1ThreePTextScore] -X = 725 -Y = 102 -Font = 0 -Size = 24 - -[SingDuetP1ThreePSingBar] -X = 710 -Y = 125 -W = 80 -H = 6 - -[SingDuetP1ThreePAvatar] -X = 15 -Y = 102 -W = 31 -H = 31 -Z = 1 -Alpha = 1 - -#Player Two -[SingDuetP2MStatic] -X = 12 -Y = 224 -W = 37 -H = 37 -Tex = AvatarFrame2 -Color = P2Dark -Type = Transparent -Alpha = 1 - -[SingDuetP2MText] -Text = PLAYERNAME -X = 58 -Y = 243 -Font = 1 -Size = 18 -Color = White -Align = 0 - -[SingDuetP2MStatic2] -X = 710 -Y = 225 -W = 80 -H = 25 - -[SingDuetP2MTextScore] -X = 725 -Y = 227 -Font = 0 -Size = 24 - -[SingDuetP2MSingBar] -X = 710 -Y = 250 -W = 80 -H = 6 - -[SingDuetP2MAvatar] -X = 15 -Y = 227 -W = 31 -H = 31 -Z = 1 -Alpha = 1 - -#Player Three -[SingDuetP3RStatic] -X = 12 -Y = 349 -W = 37 -H = 37 -Tex = AvatarFrame2 -Color = P3Dark -Type = Transparent -Alpha = 1 - -[SingDuetP3RText] -Text = PLAYERNAME -X = 58 -Y = 368 -Font = 1 -Size = 18 -Color = White -Align = 0 - -[SingDuetP3RStatic2] -X = 710 -Y = 350 +#Align = 0 + +[SingP6DuetSixPStatic2] +Tex = ScoreBG +X = 700 +Y = 347 W = 80 H = 25 +Color = P6Dark +Type = Colorized -[SingDuetP3RTextScore] -X = 725 -Y = 352 +[SingP6DuetSixPTextScore] +Text = 00000 +X = 715 +Y = 349 Font = 0 Size = 24 -[SingDuetP3RSingBar] -X = 710 -Y = 375 +[SingP6DuetSixPSingBar] +X = 700 +Y = 372 W = 80 H = 6 -[SingDuetP3RAvatar] -X = 15 -Y = 352 -W = 31 -H = 31 -Z = 1 -Alpha = 1 ## Oscilloscope Position Screen ## @@ -10200,7 +9565,7 @@ W = 100 #Player Two [SingP2ROscilloscope] X = 80 -Y = 275 +Y = 285 H = 30 W = 100 @@ -10230,21 +9595,21 @@ W = 160 #Player One [SingDuetP1ThreePOscilloscope] X = 56 -Y = 98 +Y = 110 H = 25 W = 100 #Player Two [SingDuetP2MOscilloscope] X = 56 -Y = 222 +Y = 235 H = 25 W = 100 #Player Three [SingDuetP3ROscilloscope] X = 56 -Y = 347 +Y = 360 H = 25 W = 100 @@ -10658,14 +10023,14 @@ Type = Transparent X = 202 Y = 170 W = 72 -H = 99 +H = 97 Z = 1 [ScorePlayer1Static5] -X = 191 -Y = 157 -W = 94 -H = 125 +X = 193 +Y = 158 +W = 91 +H = 121 Z = 0.9 Tex = AvatarFrame2 Color = P1Dark @@ -10869,19 +10234,19 @@ H = 331 z = 0.89 Color = White Type = Transparent - + [ScorePlayer2Avatar] X = 50 Y = 169 W = 72 -H = 98 +H = 97 Z = 1 [ScorePlayer2Static5] -X = 39 -Y = 156 -W = 94 -H = 125 +X = 41 +Y = 157 +W = 91 +H = 121 Z = 0.9 Tex = AvatarFrame2 Color = P1Dark @@ -11090,15 +10455,15 @@ Type = Transparent X = 673 Y = 169 W = 72 -H = 99 +H = 97 Z = 1 [ScorePlayer3Static5] -X = 662 -Y = 156 -W = 94 -H = 125 -Z = +X = 664 +Y = 157 +W = 91 +H = 121 +Z = Tex = AvatarFrame2 Color = P2Dark Type = Colorized @@ -11333,14 +10698,14 @@ Type = Transparent X = 168 Y = 391 W = 58 -H = 84 +H = 82 Z = 1 [ScorePlayer4Static7] -X = 159 -Y = 379 -W = 76 -H = 108 +X = 161 +Y = 382 +W = 72 +H = 100 Z = 0.9 Tex = AvatarFrame2 Color = P1Dark @@ -11520,7 +10885,7 @@ W = 95 H = 169 Color = P5Lightest Type = Colorized - + [ScoreStaticBackLevelRound5] Tex = ScoreLevelRound X = 284 @@ -11574,14 +10939,14 @@ Type = Transparent X = 427 Y = 391 W = 58 -H = 84 +H = 82 Z = 0.9 [ScorePlayer5Static7] -X = 418 -Y = 379 -W = 76 -H = 108 +X = 421 +Y = 382 +W = 72 +H = 100 Z = 0.9 Tex = AvatarFrame2 Color = P2Dark @@ -11808,19 +11173,19 @@ H = 180 Z = 0.89 Color = White Type = Transparent - + [ScorePlayer6Avatar] X = 689 Y = 391 W = 58 -H = 84 +H = 82 Z = 0.9 [ScorePlayer6Static7] -X = 680 -Y = 379 -W = 76 -H = 108 +X = 682 +Y = 382 +W = 72 +H = 100 Z = 0.9 Tex = AvatarFrame2 Color = P3Dark @@ -11917,7 +11282,7 @@ Color = White Tex = ScoreBar_box_dark X = 20 Y = 185 -W = 22 +W = 18 H = 20 Color = P1Dark Type = Colorized @@ -11926,7 +11291,7 @@ Type = Colorized Tex = ScoreBar_box_light X = 20 Y = 210 -W = 22 +W = 18 H = 20 Color = P1Light Type = Colorized @@ -11935,7 +11300,7 @@ Type = Colorized Tex = ScoreBar_box_lightest X = 20 Y = 235 -W = 22 +W = 18 H = 20 Color = P1Lightest Type = Colorized @@ -12004,7 +11369,7 @@ W = 95 H = 125 Color = P1Lightest Type = Colorized - + [ScoreFourPStaticBackLevelRound1] Tex = ScoreLevelRound X = 294 @@ -12059,18 +11424,18 @@ Type = Transparent X = 24 Y = 115 W = 36 -H = 50 +H = 49 Z = 1 [ScoreFourPPlayer1Static7] X = 20 Y = 110 -W = 45 -H = 60 +W = 44 +H = 59 Z = 0.9 Tex = AvatarFrame2 Color = P1Dark -Type = Transparent +Type = Colorized # P L A Y E R T W O [ScoreFourPTextName2] @@ -12157,7 +11522,7 @@ Color = White Tex = ScoreBar_box_dark X = 540 Y = 185 -W = 22 +W = 18 H = 20 Color = P2Dark Type = Colorized @@ -12166,7 +11531,7 @@ Type = Colorized Tex = ScoreBar_box_light X = 540 Y = 210 -W = 22 +W = 18 H = 20 Color = P2Light Type = Colorized @@ -12175,7 +11540,7 @@ Type = Colorized Tex = ScoreBar_box_lightest X = 540 Y = 235 -W = 22 +W = 18 H = 20 Color = P2Lightest Type = Colorized @@ -12244,7 +11609,7 @@ W = 95 H = 125 Color = P2Lightest Type = Colorized - + [ScoreFourPStaticBackLevelRound2] Tex = ScoreLevelRound X = 414 @@ -12298,18 +11663,18 @@ Type = Transparent X = 544 Y = 115 W = 36 -H = 50 +H = 49 Z = 1 [ScoreFourPPlayer2Static7] X = 540 Y = 110 -W = 45 -H = 60 +W = 44 +H = 59 Z = 0.9 Tex = AvatarFrame2 Color = P2Dark -Type = Transparent +Type = Colorized # P L A Y E R T H R E E [ScoreFourPTextName3] @@ -12397,7 +11762,7 @@ Color = White Tex = ScoreBar_box_dark X = 20 Y = 405 -W = 22 +W = 18 H = 20 Color = P3Dark Type = Colorized @@ -12406,7 +11771,7 @@ Type = Colorized Tex = ScoreBar_box_light X = 20 Y = 430 -W = 22 +W = 18 H = 20 Color = P3Light Type = Colorized @@ -12415,7 +11780,7 @@ Type = Colorized Tex = ScoreBar_box_lightest X = 20 Y = 455 -W = 22 +W = 18 H = 20 Color = P3Lightest Type = Colorized @@ -12484,7 +11849,7 @@ W = 95 H = 118 Color = P3Lightest Type = Colorized - + [ScoreFourPStaticBackLevelRound3] Tex = ScoreLevelRound X = 294 @@ -12538,18 +11903,18 @@ Type = Transparent X = 24 Y = 335 W = 36 -H = 50 +H = 49 Z = 1 [ScoreFourPPlayer3Static7] X = 20 Y = 330 -W = 45 -H = 60 +W = 44 +H = 59 Z = 0.9 Tex = AvatarFrame2 Color = P3Dark -Type = Transparent +Type = Colorized # P L A Y E R F O U R [ScoreFourPTextName4] @@ -12636,7 +12001,7 @@ Color = White Tex = ScoreBar_box_dark X = 540 Y = 405 -W = 22 +W = 18 H = 20 Color = P4Dark Type = Colorized @@ -12645,7 +12010,7 @@ Type = Colorized Tex = ScoreBar_box_light X = 540 Y = 430 -W = 22 +W = 18 H = 20 Color = P4Light Type = Colorized @@ -12654,7 +12019,7 @@ Type = Colorized Tex = ScoreBar_box_lightest X = 540 Y = 455 -W = 22 +W = 18 H = 20 Color = P4Lightest Type = Colorized @@ -12723,7 +12088,7 @@ W = 95 H = 118 Color = P4Lightest Type = Colorized - + [ScoreFourPStaticBackLevelRound4] Tex = ScoreLevelRound X = 414 @@ -12777,18 +12142,18 @@ Type = Transparent X = 544 Y = 335 W = 36 -H = 50 +H = 49 Z = 1 [ScoreFourPPlayer4Static7] X = 540 Y = 330 -W = 45 -H = 60 +W = 44 +H = 59 Z = 0.9 Tex = AvatarFrame2 Color = P4Dark -Type = Transparent +Type = Colorized ################################################# ## ## @@ -12919,18 +12284,18 @@ Color = White X = 24 Y = 115 W = 36 -H = 50 +H = 49 Z = 1 [ScoreSixPPlayer1Static5] X = 20 Y = 110 -W = 45 -H = 60 +W = 44 +H = 59 Z = 0.9 Tex = AvatarFrame2 Color = P1Dark -Type = Transparent +Type = Colorized # P L A Y E R T W O @@ -13057,18 +12422,18 @@ Color = White X = 284 Y = 115 W = 36 -H = 50 +H = 49 Z = 1 [ScoreSixPPlayer2Static5] X = 280 Y = 110 -W = 45 -H = 60 +W = 44 +H = 59 Z = 0.9 Tex = AvatarFrame2 Color = P2Dark -Type = Transparent +Type = Colorized # P L A Y E R T H R E E [ScoreSixPTextName3] @@ -13193,18 +12558,18 @@ Color = White X = 544 Y = 115 W = 36 -H = 50 +H = 49 Z = 1 [ScoreSixPPlayer3Static5] X = 540 Y = 110 -W = 45 -H = 60 +W = 44 +H = 59 Z = 0.9 Tex = AvatarFrame2 Color = P3Dark -Type = Transparent +Type = Colorized # P L A Y E R F O U R [ScoreSixPTextName4] @@ -13329,18 +12694,18 @@ Color = White X = 24 Y = 337 W = 36 -H = 50 +H = 49 Z = 1 [ScoreSixPPlayer4Static5] X = 20 Y = 332 -W = 45 -H = 60 +W = 44 +H = 59 Z = 0.9 Tex = AvatarFrame2 Color = P4Dark -Type = Transparent +Type = Colorized # P L A Y E R F I V E [ScoreSixPTextName5] @@ -13465,18 +12830,18 @@ Color = White X = 284 Y = 337 W = 36 -H = 50 +H = 49 Z = 1 [ScoreSixPPlayer5Static5] X = 280 Y = 332 -W = 45 -H = 60 +W = 44 +H = 59 Z = 0.9 Tex = AvatarFrame2 Color = P5Dark -Type = Transparent +Type = Colorized # P L A Y E R S I X [ScoreSixPTextName6] @@ -13601,18 +12966,18 @@ Color = White X = 544 Y = 337 W = 36 -H = 50 +H = 49 Z = 1 [ScoreSixPPlayer6Static5] X = 540 Y = 332 -W = 45 -H = 60 +W = 44 +H = 59 Z = 0.9 Tex = AvatarFrame2 Color = P6Dark -Type = Transparent +Type = Colorized ############################ # Send Score 1 Player # @@ -13807,7 +13172,7 @@ Z = 1 [SendScorePopupButtonUsernameText1] X = 5 Y = 0 -Color = Black +Color = White Font = 0 Size = 24 Align = 0 @@ -13838,7 +13203,7 @@ Z = 1 [SendScorePopupButtonPasswordText1] X = 5 Y = 0 -Color = Black +Color = White Font = 0 Size = 24 Align = 0 @@ -13979,7 +13344,7 @@ Y = 248 W = 362 H = 20 Z = 1 -Color = Gray +Color = Gray Type = Transparent [ScoreDownloadPopupStatic3] @@ -13989,7 +13354,7 @@ Y = 273 W = 362 H = 20 Z = 1 -Color = Gray +Color = Gray Type = Transparent [ScoreDownloadPopupProgressSong] @@ -14051,7 +13416,7 @@ Text = easy [Top5Text5] X = 560 Y = 552 -Color = Black +Color = White Font = 0 Size = 21 Align = 0 @@ -14195,7 +13560,7 @@ Text = 00000 [Top5TextNumber1] X = 120 -Y = 193 +Y = 196 Color = White Font = 1 Size = 27 @@ -14204,7 +13569,7 @@ Text = 1 [Top5TextNumber2] X = 120 -Y = 243 +Y = 246 Color = White Font = 1 Size = 27 @@ -14213,7 +13578,7 @@ Text = 2 [Top5TextNumber3] X = 120 -Y = 293 +Y = 296 Color = White Font = 1 Size = 27 @@ -14222,7 +13587,7 @@ Text = 3 [Top5TextNumber4] X = 120 -Y = 343 +Y = 346 Color = White Font = 1 Size = 27 @@ -14231,7 +13596,7 @@ Text = 4 [Top5TextNumber5] X = 120 -Y = 393 +Y = 396 Color = White Font = 1 Size = 27 @@ -14240,46 +13605,51 @@ Text = 5 [Top5StaticNumber1] Tex = PlayerNumberBox -X = 100 -Y = 186 -W = 40 -H = 40 +X = 106 +Y = 190 +W = 29 +H = 38 +alpha = 0.6 Color = ColorDark Type = Colorized [Top5StaticNumber2] Tex = PlayerNumberBox -X = 100 -Y = 236 -W = 40 -H = 40 +X = 106 +Y = 240 +W = 29 +H = 38 +alpha = 0.6 Color = ColorDark Type = Colorized [Top5StaticNumber3] Tex = PlayerNumberBox -X = 100 -Y = 286 -W = 40 -H = 40 +X = 106 +Y = 290 +W = 29 +H = 38 +alpha = 0.6 Color = ColorDark Type = Colorized [Top5StaticNumber4] Tex = PlayerNumberBox -X = 100 -Y = 336 -W = 40 -H = 40 +X = 106 +Y = 340 +W = 29 +H = 38 +alpha = 0.6 Color = ColorDark Type = Colorized [Top5StaticNumber5] Tex = PlayerNumberBox -X = 100 -Y = 386 -W = 40 -H = 40 +X = 106 +Y = 390 +W = 29 +H = 38 +alpha = 0.6 Color = ColorDark Type = Colorized @@ -14333,11 +13703,11 @@ H = 40 SkipX = 10 Fields = 1 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGDColor = GrayLight SBGColor = ColorDark STColor = White @@ -14356,11 +13726,11 @@ H = 40 SkipX = 10 Fields = 1 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGDColor = GrayLight SBGColor = ColorDark STColor = White @@ -14384,11 +13754,11 @@ H = 40 SkipX = 10 Fields = 1 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGDColor = GrayLight SBGColor = ColorDark STColor = White @@ -14407,11 +13777,11 @@ H = 40 SkipX = 10 Fields = 1 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGDColor = GrayLight SBGColor = ColorDark STColor = White @@ -14430,11 +13800,11 @@ H = 40 SkipX = 10 Fields = 7 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGDColor = GrayLight SBGColor = ColorDark STColor = White @@ -14498,17 +13868,17 @@ W = 230 H = 40 SkipX = 10 Fields = 2 - -DColor = -Color = + +DColor = +Color = TColor = White TDColor = White - + SBGDColor = GrayLight SBGColor = ColorDark STColor = White STDColor = GrayDark - + [PartyPlayerSelectPlayers1] Tex = MainBar TexSBG = PartyPlayerSelectBG @@ -14522,13 +13892,13 @@ SBGW = 190 H = 40 SkipX = 10 Fields = 1 - + TColor = White TDColor = White - + STColor = White STDColor = GrayDark - + [PartyPlayerSelectPlayers2] Tex = MainBar TexSBG = PartyPlayerSelectBG @@ -14542,13 +13912,13 @@ SBGW = 190 H = 40 SkipX = 10 Fields = 1 - + TColor = White TDColor = White - + STColor = White STDColor = GrayDark - + [PartyPlayerSelectPlayers3] Tex = MainBar Type = Transparent @@ -14562,13 +13932,13 @@ SBGW = 190 H = 40 SkipX = 10 Fields = 4 - + TColor = White TDColor = White - + STColor = White STDColor = GrayDark - + [PartyPlayerTeam1Name] Tex = PartyTeamButton2 X = 70 @@ -14579,7 +13949,7 @@ Type = Transparent Color = P1Dark DColor = P1Light Texts = 1 - + [PartyPlayerTeam1NameText1] X = 115 Y = 4 @@ -14588,7 +13958,7 @@ Size = 32 Align = 1 Text = Team 1 Color = White - + [PartyPlayerPlayer1Name] Tex = Button X = 70 @@ -14943,11 +14313,11 @@ H = 40 SkipX = 10 Fields = 7 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGDColor = GrayLight SBGColor = ColorDark STColor = White @@ -14966,11 +14336,11 @@ H = 40 SkipX = 10 Fields = 7 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGDColor = GrayLight SBGColor = ColorDark STColor = White @@ -14989,11 +14359,11 @@ H = 40 SkipX = 10 Fields = 7 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGDColor = GrayLight SBGColor = ColorDark STColor = White @@ -15012,11 +14382,11 @@ H = 40 SkipX = 10 Fields = 7 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGDColor = GrayLight SBGColor = ColorDark STColor = White @@ -15035,11 +14405,11 @@ H = 40 SkipX = 10 Fields = 7 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGDColor = GrayLight SBGColor = ColorDark STColor = White @@ -15058,11 +14428,11 @@ H = 40 SkipX = 10 Fields = 7 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGDColor = GrayLight SBGColor = ColorDark STColor = White @@ -15081,11 +14451,11 @@ H = 40 SkipX = 10 Fields = 7 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGDColor = GrayLight SBGColor = ColorDark STColor = White @@ -15104,11 +14474,11 @@ H = 40 SkipX = 10 Fields = 7 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGDColor = GrayLight SBGColor = ColorDark STColor = White @@ -15606,28 +14976,6 @@ ThirdTexture = PartyScoreDeco ThirdTyp = Colorized ThirdColor = Bronze -[PartyScoreStatic1] -X = 0 -Y = 545 -W = 250 -H = 30 -Tex = Leiste1 -Color = ColorLight -Type = Colorized -Reflection = 1 -ReflectionSpacing = 2 - -[PartyScoreStatic2] -X = 250 -Y = 545 -W = 550 -H = 30 -Tex = Leiste2 -Color = White -Type = Transparent -Reflection = 1 -ReflectionSpacing = 2 - [PartyScoreStatic3] X = 40 Y = 22 @@ -15669,7 +15017,7 @@ Text = PARTY_SCORE_DESC [PartyScoreText3] X = 238 Y = 552 -Color = Black +Color = White Font = 0 Size = 21 Align = 2 @@ -15678,7 +15026,7 @@ Text = PARTY_SCORE_WHEREAMI [PartyScoreText4] X = 290 Y = 552 -Color = Black +Color = White Font = 0 Size = 21 Align = 0 @@ -15869,43 +15217,21 @@ Reflection = 1 ReflectionSpacing = 2 [PartyScoreStaticTeam3Deco] -Tex = PartyScoreDeco -X = 563 -Y = 391 -W = 64 -H = 64 -Type = Transparent -Color = Gold -Reflection = 1 -ReflectionSpacing = -5 - -[PartyWin] -Texts = 4 - -[PartyWinBackground] -Tex = PartyBG - -[PartyWinStatic1] -X = 0 -Y = 545 -W = 250 -H = 30 -Tex = Leiste1 -Color = ColorLight -Type = Colorized -Reflection = 1 -ReflectionSpacing = 2 - -[PartyWinStatic2] -X = 250 -Y = 545 -W = 550 -H = 30 -Tex = Leiste2 -Color = White +Tex = PartyScoreDeco +X = 563 +Y = 391 +W = 64 +H = 64 Type = Transparent +Color = Gold Reflection = 1 -ReflectionSpacing = 2 +ReflectionSpacing = -5 + +[PartyWin] +Texts = 4 + +[PartyWinBackground] +Tex = PartyBG [PartyWinStatic3] X = 40 @@ -15948,7 +15274,7 @@ Text = PARTY_WIN_DESC [PartyWinText3] X = 238 Y = 552 -Color = Black +Color = White Font = 0 Size = 21 Align = 2 @@ -15957,7 +15283,7 @@ Text = PARTY_WIN_WHEREAMI [PartyWinText4] X = 290 Y = 552 -Color = Black +Color = White Font = 0 Size = 21 Align = 0 @@ -16342,30 +15668,6 @@ Texts = 5 [PartyTournamentPlayerBackground] Tex = PartyBG -[PartyTournamentPlayerStatic1] -X = 0 -Y = 545 -Z = 0.7 -W = 250 -H = 30 -Tex = Leiste1 -Color = ColorLight -Type = Colorized -Reflection = 1 -ReflectionSpacing = 2 - -[PartyTournamentPlayerStatic2] -X = 250 -Y = 545 -Z = 0.7 -W = 550 -H = 30 -Tex = Leiste2 -Color = White -Type = Transparent -Reflection = 1 -ReflectionSpacing = 2 - [PartyTournamentPlayerStatic3] X = 40 Y = 22 @@ -16428,7 +15730,7 @@ Text = PARTY_MODE_TOURNAMENT_PLAYER_DESC [PartyTournamentPlayerText3] X = 294 Y = 552 -Color = Black +Color = White Font = 0 Size = 21 Align = 0 @@ -16437,7 +15739,7 @@ Text = SING_LEGEND_NAVIGATE [PartyTournamentPlayerText4] X = 418 Y = 552 -Color = Black +Color = White Font = 0 Size = 21 Align = 0 @@ -16446,7 +15748,7 @@ Text = PARTY_PLAYER_ENTER_NAME [PartyTournamentPlayerText5] X = 586 Y = 552 -Color = Black +Color = White Font = 0 Size = 21 Align = 0 @@ -16468,7 +15770,7 @@ DColor = ColorDark Color = ColorLight TColor = White TDColor = White - + SBGDColor = ColorDark SBGColor = ColorLight STColor = White @@ -16840,27 +16142,6 @@ Texts = 4 [PartyTournamentOptionsBackground] Tex = PartyBG -[PartyTournamentOptionsStatic1] -X = 0 -Y = 545 -W = 250 -H = 30 -Tex = Leiste1 -Color = ColorLight -Type = Colorized -Reflection = 1 -ReflectionSpacing = 2 - -[PartyTournamentOptionsStatic2] -X = 250 -Y = 545 -W = 550 -H = 30 -Tex = Leiste2 -Color = White -Type = Transparent -Reflection = 1 -ReflectionSpacing = 2 [PartyTournamentOptionsStatic3] X = 40 @@ -16912,7 +16193,7 @@ Text = PARTY_MODE_TOURNAMENT_OPTIONS_DESC [PartyTournamentOptionsText3] X = 294 Y = 552 -Color = Black +Color = White Font = 0 Size = 21 Align = 0 @@ -16921,7 +16202,7 @@ Text = SING_LEGEND_NAVIGATE [PartyTournamentOptionsText4] X = 418 Y = 552 -Color = Black +Color = White Font = 0 Size = 21 Align = 0 @@ -16944,7 +16225,7 @@ DColor = ColorDark Color = ColorLight TColor = White TDColor = White - + SBGDColor = ColorDark SBGColor = ColorLight STColor = White @@ -16967,7 +16248,7 @@ DColor = ColorDark Color = ColorLight TColor = White TDColor = White - + SBGDColor = ColorDark SBGColor = ColorLight STColor = White @@ -16990,7 +16271,7 @@ DColor = ColorDark Color = ColorLight TColor = White TDColor = White - + SBGDColor = ColorDark SBGColor = ColorLight STColor = White @@ -17013,7 +16294,7 @@ DColor = ColorDark Color = ColorLight TColor = White TDColor = White - + SBGDColor = ColorDark SBGColor = ColorLight STColor = White @@ -17026,28 +16307,6 @@ Texts = 3 [PartyTournamentRoundsBackground] Tex = PartyBG -[PartyTournamentRoundsStatic1] -X = 0 -Y = 545 -W = 250 -H = 30 -Tex = Leiste1 -Color = ColorLight -Type = Colorized -Reflection = 1 -ReflectionSpacing = 2 - -[PartyTournamentRoundsStatic2] -X = 250 -Y = 545 -W = 550 -H = 30 -Tex = Leiste2 -Color = White -Type = Transparent -Reflection = 1 -ReflectionSpacing = 2 - [PartyTournamentRoundsStatic3] X = 40 Y = 22 @@ -17108,7 +16367,7 @@ Text = PARTY_MODE_TOURNAMENT_ROUNDS_DESC [PartyTournamentRoundsText3] X = 294 Y = 552 -Color = Black +Color = White Font = 0 Size = 21 Align = 0 @@ -17495,28 +16754,6 @@ Texts = 3 [PartyTournamentWinBackground] Tex = PartyBG -[PartyTournamentWinStatic1] -X = 0 -Y = 545 -W = 250 -H = 30 -Tex = Leiste1 -Color = ColorLight -Type = Colorized -Reflection = 1 -ReflectionSpacing = 2 - -[PartyTournamentWinStatic2] -X = 250 -Y = 545 -W = 550 -H = 30 -Tex = Leiste2 -Color = White -Type = Transparent -Reflection = 1 -ReflectionSpacing = 2 - [PartyTournamentWinStatic3] X = 40 Y = 22 @@ -17558,7 +16795,7 @@ Text = PARTY_MODE_TOURNAMENT_WIN_DESC [PartyTournamentWinText3] X = 290 Y = 552 -Color = Black +Color = White Font = 0 Size = 21 Align = 0 @@ -17675,11 +16912,11 @@ H = 40 SkipX = 10 Fields = 1 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGDColor = GrayLight SBGColor = ColorDark STColor = White @@ -17698,11 +16935,11 @@ H = 40 SkipX = 10 Fields = 1 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGDColor = GrayLight SBGColor = ColorDark STColor = White @@ -17787,7 +17024,7 @@ X = 120 Y = 110 W = 560 H = 25 -Tex = JukeboxSongListBackground +Tex = JukeboxSongSelection Color = ColorDark DColor = White Type = Colorized @@ -17925,7 +17162,7 @@ W = 40 H = 15 Tex = JukeboxClose Color = Red -DColor = +DColor = Type = Colorized [JukeboxSongListFixPin] @@ -18108,7 +17345,7 @@ W = 40 H = 15 Tex = JukeboxClose Color = Red -DColor = +DColor = Type = Colorized [JukeboxSongOptionsDefault] @@ -18118,7 +17355,7 @@ W = 120 H = 25 Tex = JukeboxButton Color = ColorDark -DColor = +DColor = Type = Colorized Texts = 1 @@ -18200,8 +17437,8 @@ SkipX=0 SBGW=220 TextSize=18 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -18225,8 +17462,8 @@ SkipX=0 SBGW=220 TextSize=18 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -18250,8 +17487,8 @@ SkipX=0 SBGW=220 TextSize=18 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -18274,8 +17511,8 @@ SkipX=0 SBGW=220 TextSize=18 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -18298,8 +17535,8 @@ SkipX=0 SBGW=220 TextSize=18 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -18322,8 +17559,8 @@ SkipX=0 SBGW=220 TextSize=18 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -18346,8 +17583,8 @@ SkipX=0 SBGW=220 TextSize=18 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -18370,8 +17607,8 @@ SkipX=0 SBGW=220 TextSize=18 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -18391,8 +17628,8 @@ SkipX = -30 TextSize = 14 SBGW=220 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -18417,7 +17654,7 @@ W = 1 H = 18 Z = 1 Tex = Picker -Color = Black +Color = Black Type = Transparent [JukeboxSongOptionsLyricSelectG] @@ -18432,8 +17669,8 @@ SkipX = -30 TextSize = 14 SBGW=220 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -18458,7 +17695,7 @@ W = 1 H = 18 Z = 1 Tex = Picker -Color = Black +Color = Black Type = Transparent [JukeboxSongOptionsLyricSelectB] @@ -18473,8 +17710,8 @@ SkipX = -30 TextSize = 14 SBGW=220 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -18499,7 +17736,7 @@ W = 1 H = 18 Z = 1 Tex = Picker -Color = Black +Color = Black Type = Transparent @@ -18630,38 +17867,20 @@ Align = 0 Text = [StatMainStatic1] -X = 40 +X = 30 Y = 100 -W = 520 -H = 20 -Tex = StatMainBG1 -Color = ColorLight -Type = Colorized - -[StatMainStatic2] -X = 40 -Y = 120 -W = 520 -H = 300 -Tex = StatMainBG2 +W = 530 +H = 340 +Tex = StatInfoBG1 Color = ColorDark Type = Colorized -[StatMainStatic3] -X = 40 -Y = 420 -W = 520 -H = 20 -Tex = StatMainBG3 -Color = ColorLight -Type = Colorized - [StatMainText1] -X = 70 -Y = 6 +X = 50 +Y = 25 Color = White Font = 0 -Size = 60 +Size = 50 Text = STAT_MAIN Align = 0 @@ -18757,145 +17976,119 @@ Text = SING_OPTIONS_EXIT Color = White [StatDetailTextDescription] -X = 70 -Y = 53 +X = 50 +Y = 80 Color = White Font = 0 -Size = 30 +Size = 25 Align = 0 Text = [StatDetailTextPage] -X = 546 -Y = 98 -Color = Black +X = 440 +Y = 105 +Color = White Font = 0 Size = 15 -Align = 2 +Align = 0 Text = [StatDetailTextList1] -X = 45 -Y = 122 +X = 50 +Y = 140 Color = White Font = 0 Size = 21 Text = Stat1 [StatDetailTextList2] -X = 45 -Y = 160 +X = 50 +Y = 178 Color = White Font = 0 Size = 21 Text = Stat2 [StatDetailTextList3] -X = 45 -Y = 198 +X = 50 +Y = 216 Color = White Font = 0 Size = 21 Text = [StatDetailTextList4] -X = 45 -Y = 236 +X = 50 +Y = 254 Color = White Font = 0 Size = 21 Text = [StatDetailTextList5] -X = 45 -Y = 274 +X = 50 +Y = 292 Color = White Font = 0 Size = 21 Text = [StatDetailTextList6] -X = 45 -Y = 312 +X = 50 +Y = 330 Color = White Font = 0 Size = 21 Text = [StatDetailTextList7] -X = 45 -Y = 350 +X = 50 +Y = 368 Color = White Font = 0 Size = 21 Text = [StatDetailTextList8] -X = 45 -Y = 388 +X = 50 +Y = 406 Color = White Font = 0 Size = 21 Text = [StatDetailTextList9] -X = 45 -Y = 426 +X = 50 +Y = 444 Color = White Font = 0 Size = 21 Text = [StatDetailTextList10] -X = 45 -Y = 464 +X = 50 +Y = 482 Color = White Font = 0 Size = 21 Text = -[StatDetailStatic1] -X = 40 -Y = 22 -W = 27 -H = 27 -Color = White -Tex = StatIcon -Type = Colorized - [StatDetailStatic1] X = 40 Y = 100 W = 520 -H = 24 -Tex = StatDetailBG1 +H = 440 +Tex = StatInfoBG2 Color = ColorLight Type = Colorized -[StatDetailStatic2] -X = 40 -Y = 124 -W = 520 -H = 376 -Tex = StatMainBG2 -Color = ColorDark -Type = Colorized - -[StatDetailStatic3] -X = 40 -Y = 500 -W = 520 -H = 20 -Tex = StatMainBG3 -Color = ColorLight -Type = Colorized [StatDetailText1] -X = 70 -Y = 6 +X = 50 +Y = 25 Color = White Font = 0 -Size = 60 +Size = 50 Text = STAT_DETAIL Align = 0 @@ -18917,9 +18110,9 @@ Text = SING_OPTIONS Align = 0 [OptionsButtonGame] -X = 105 +X = 100 Y = 120 -W = 85 +W = 75 H = 80 Tex = Optionsbuttongame Color = White @@ -18933,7 +18126,7 @@ FadeTex = ButtonFade FadeTexPos = 0 [OptionsButtonGameText1] -X = 45 +X = 35 Y = 80 Font = 0 Size = 26 @@ -18942,9 +18135,9 @@ Text = SING_OPTIONS_GAME Color = White [OptionsButtonGraphics] -X = 250 +X = 260 Y = 120 -W = 105 +W = 75 H = 85 Tex = Optionsbuttongraphics Color = White @@ -18958,7 +18151,7 @@ FadeTex = ButtonFade FadeTexPos = 0 [OptionsButtonGraphicsText1] -X = 55 +X = 40 Y = 80 Font = 0 Size = 26 @@ -18969,7 +18162,7 @@ Color = White [OptionsButtonSound] X = 432 Y = 120 -W = 60 +W = 59 H = 70 Tex = Optionsbuttonsound Color = White @@ -19018,7 +18211,7 @@ Text = SING_OPTIONS_LYRICS Color = White [OptionsButtonThemes] -X = 105 +X = 100 Y = 270 W = 95 H = 85 @@ -19035,7 +18228,7 @@ FadeTex = ButtonFade FadeTexPos = 0 [OptionsButtonThemesText1] -X = 40 +X = 35 Y = 80 Font = 0 Size = 26 @@ -19043,12 +18236,12 @@ Align = 1 Text = SING_OPTIONS_THEMES Color = White -[OptionsButtonRecord] -X = 260 +[OptionsButtonMicrophones] +X = 265 Y = 270 -W = 85 +W = 73 H = 75 -Tex = Optionsbuttonrecord +Tex = Optionsbuttonmicrophones Color = White DColor = White Type = Transparent @@ -19060,20 +18253,20 @@ SelectH = 65 FadeTex = ButtonFade FadeTexPos = 0 -[OptionsButtonRecordText1] -X = 45 +[OptionsButtonMicrophonesText1] +X = 40 Y = 80 Font = 0 Size = 26 Align = 1 -Text = SING_OPTIONS_RECORD +Text = SING_OPTIONS_MICROPHONES Color = White Texts = 1 [OptionsButtonAdvanced] -X = 428 +X = 432 Y = 270 -W = 67 +W = 61 H = 77 Tex = Optionsbuttonadvanced Color = White @@ -19088,7 +18281,7 @@ FadeTex = ButtonFade FadeTexPos = 0 [OptionsButtonAdvancedText1] -X = 36 +X = 32 Y = 80 Font = 0 Size = 26 @@ -19100,7 +18293,7 @@ Texts = 1 [OptionsButtonNetwork] X = 585 Y = 270 -W = 65 +W = 59 H = 77 Tex = Optionsbuttonnetwork Color = White @@ -19125,9 +18318,9 @@ Color = White Texts = 1 [OptionsButtonWebcam] -X = 105 +X = 100 Y = 425 -W = 85 +W = 75 H = 80 Tex = Optionsbuttonwebcam Color = White @@ -19142,7 +18335,7 @@ FadeTex = ButtonFade FadeTexPos = 0 [OptionsButtonWebcamText1] -X = 38 +X = 35 Y = 80 Font = 0 Size = 26 @@ -19152,9 +18345,9 @@ Color = White Texts = 1 [OptionsButtonJukebox] -X = 270 +X = 275 Y = 425 -W = 65 +W = 59 H = 75 Tex = Optionsbuttonjukebox Color = White @@ -19169,7 +18362,7 @@ FadeTex = ButtonFade FadeTexPos = 0 [OptionsButtonJukeboxText1] -X = 35 +X = 32 Y = 80 Font = 0 Size = 26 @@ -19180,7 +18373,7 @@ Color = White [OptionsButtonExit] X = 415 Y = 425 -W = 80 +W = 70 H = 80 Tex = Optionsbuttonback Color = White @@ -19251,8 +18444,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19272,8 +18465,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19293,8 +18486,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19314,8 +18507,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19335,8 +18528,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19344,20 +18537,20 @@ SBGDColor = Gray STColor = White STDColor = GrayDark -[OptionsGameSelectDebug] -Text = SING_OPTIONS_GAME_DEBUG +[OptionsGameSelectJoypad] Tex = MainBar Type = Transparent TexSBG = SelectBG TypeSBG = Transparent +Text = SING_OPTIONS_GAME_JOYPAD_SUPPORT X = 70 Y = 380 W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19378,7 +18571,7 @@ Reflection = 1 ReflectionSpacing = 2 [OptionsGraphics] -Texts = 5 +Texts = 4 [OptionsGraphicsBackground] Tex = OptionsBG @@ -19425,8 +18618,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19446,8 +18639,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19455,8 +18648,29 @@ SBGDColor = Gray STColor = White STDColor = GrayDark -[OptionsGraphicsSelectDepth] -Text = SING_OPTIONS_GRAPHICS_DEPTH +#########unused at the moment######### +#[OptionsGraphicsSelectLoadAnimation] +#Text = SING_OPTIONS_GRAPHICS_LOADANIMATION +#Tex = MainBar +#TexSBG = SelectBG +#X = 40 +#Y = 85 +#W = 230 +#H = 70 +#SkipX = 10 + +#Color = ColorDark +#DColor = ColorLight +#TColor = White +#TDColor = White + +#SBGColor = ColorDark +#SBGDColor = ColorLight +#STColor = White +#STDColor = GrayDark + +[OptionsGraphicsSelectScreenFade] +Text = SING_OPTIONS_GRAPHICS_SCREENFADE Tex = MainBar Type = Transparent TexSBG = SelectBG @@ -19467,8 +18681,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19476,8 +18690,8 @@ SBGDColor = Gray STColor = White STDColor = GrayDark -[OptionsGraphicsSelectVisualizer] -Text = SING_OPTIONS_GRAPHICS_VISUALIZER +[OptionsGraphicsSelectEffectSing] +Text = SING_OPTIONS_GRAPHICS_EFFECTSING Tex = MainBar Type = Transparent TexSBG = SelectBG @@ -19488,8 +18702,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19497,8 +18711,9 @@ SBGDColor = Gray STColor = White STDColor = GrayDark -[OptionsGraphicsSelectOscilloscope] -Text = SING_OPTIONS_GRAPHICS_OSCILLOSCOPE + +[OptionsGraphicsSelectVisualizer] +Text = SING_OPTIONS_GRAPHICS_VISUALIZER Tex = MainBar Type = Transparent TexSBG = SelectBG @@ -19509,8 +18724,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19530,8 +18745,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19586,8 +18801,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19607,8 +18822,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19628,8 +18843,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19649,8 +18864,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19670,8 +18885,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19691,8 +18906,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19712,8 +18927,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19759,7 +18974,7 @@ Text = SING_OPTIONS_LYRICS X = 440 Y = 548 Z = 0.5 -Color = Black +Color = White Size = 24 Text = SING_LEGEND_ESC Reflection = 1 @@ -19777,8 +18992,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19798,8 +19013,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19819,8 +19034,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19866,7 +19081,7 @@ Text = SING_OPTIONS_THEMES X = 440 Y = 548 Z = 0.5 -Color = Black +Color = White Size = 24 Reflection = 1 ReflectionSpacing = 20 @@ -19884,8 +19099,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19905,8 +19120,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19926,8 +19141,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19947,30 +19162,30 @@ Type = Transparent Reflection = 1 ReflectionSpacing = 2 -[OptionsRecord] +[OptionsMicrophones] Texts = 5 -[OptionsRecordBackground] +[OptionsMicrophonesBackground] Tex = OptionsBG -[OptionsRecordStatic1] +[OptionsMicrophonesStatic1] X = 30 Y = 30 W = 70 H = 65 Color = White -Tex = Optionsbuttonrecord +Tex = Optionsbuttonmicrophones Type = Transparent -[OptionsRecordText1] +[OptionsMicrophonesText1] X = 110 Y = 40 Color = White Size = 45 -Text = SING_OPTIONS_RECORD +Text = SING_OPTIONS_MICROPHONES -[OptionsRecordSelectSlideCard] -Text = SING_OPTIONS_RECORD_CARD +[OptionsMicrophonesSelectSlideCard] +Text = SING_OPTIONS_MICROPHONES_CARD Tex = MainBar Type = Transparent TexSBG = SelectBG @@ -19981,8 +19196,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -19990,8 +19205,8 @@ SBGDColor = Gray STColor = White STDColor = GrayDark -[OptionsRecordSelectSlideInput] -Text = SING_OPTIONS_RECORD_INPUT +[OptionsMicrophonesSelectSlideInput] +Text = SING_OPTIONS_MICROPHONES_INPUT Tex = MainBar Type = Transparent TexSBG = SelectBG @@ -20002,7 +19217,7 @@ W = 250 H = 40 SkipX = 10 -Color = +Color = DColor = TColor = White TDColor = White @@ -20011,8 +19226,8 @@ SBGDColor = Gray STColor = White STDColor = GrayDark -[OptionsRecordSelectSlideChannel] -Text = SING_OPTIONS_RECORD_CHANNEL +[OptionsMicrophonesSelectSlideChannel] +Text = SING_OPTIONS_MICROPHONES_CHANNEL Tex = MainBar Type = Transparent TexSBG = SelectBG @@ -20023,8 +19238,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20032,20 +19247,20 @@ SBGDColor = Gray STColor = White STDColor = GrayDark -[OptionsRecordSelectThreshold] +[OptionsMicrophonesSelectThreshold] Tex = MainBar Type = Transparent TexSBG = SelectBG TypeSBG = Transparent -Text = SING_OPTIONS_SOUND_THRESHOLD +Text = SING_OPTIONS_MICROPHONES_THRESHOLD X = 70 Y = 367 W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20053,20 +19268,20 @@ SBGDColor = Gray STColor = White STDColor = GrayDark -[OptionsRecordSelectMicBoost] +[OptionsMicrophonesSelectMicBoost] Tex = MainBar Type = Transparent TexSBG = SelectBG TypeSBG = Transparent -Text = SING_OPTIONS_SOUND_MIC_BOOST +Text = SING_OPTIONS_MICROPHONES_MIC_BOOST X = 70 Y = 417 W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20074,7 +19289,7 @@ SBGDColor = Gray STColor = White STDColor = GrayDark -[OptionsRecordButtonExit] +[OptionsMicrophonesButtonExit] X = 70 Y = 470 W = 250 @@ -20108,29 +19323,8 @@ Color = White Size = 45 Text = SING_OPTIONS_ADVANCED -#########unused at the moment######### -#[OptionsAdvancedSelectLoadAnimation] -#Text = SING_OPTIONS_ADVANCED_LOADANIMATION -#Tex = MainBar -#TexSBG = SelectBG -#X = 40 -#Y = 85 -#W = 230 -#H = 70 -#SkipX = 10 - -#Color = ColorDark -#DColor = ColorLight -#TColor = White -#TDColor = White - -#SBGColor = ColorDark -#SBGDColor = ColorLight -#STColor = White -#STDColor = GrayDark - -[OptionsAdvancedSelectScreenFade] -Text = SING_OPTIONS_ADVANCED_SCREENFADE +[OptionsAdvancedSelectDebug] +Text = SING_OPTIONS_ADVANCED_DEBUG Tex = MainBar Type = Transparent TexSBG = SelectBG @@ -20141,8 +19335,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20150,8 +19344,8 @@ SBGDColor = Gray STColor = White STDColor = GrayDark -[OptionsAdvancedSelectEffectSing] -Text = SING_OPTIONS_ADVANCED_EFFECTSING +[OptionsAdvancedSelectOscilloscope] +Text = SING_OPTIONS_ADVANCED_OSCILLOSCOPE Tex = MainBar Type = Transparent TexSBG = SelectBG @@ -20162,29 +19356,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = -TColor = White -TDColor = White -SBGColor = ColorDark -SBGDColor = Gray -STColor = White -STDColor = GrayDark - -[OptionsAdvancedSelectJoypad] -Tex = MainBar -Type = Transparent -TexSBG = SelectBG -TypeSBG = Transparent -Text = SING_OPTIONS_ADVANCED_JOYPAD_SUPPORT -X = 70 -Y = 220 -W = 250 -H = 35 -SkipX = 10 - -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20199,13 +19372,13 @@ Type = Transparent TexSBG = SelectBG TypeSBG = Transparent X = 70 -Y = 265 +Y = 220 W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20220,13 +19393,13 @@ Type = Transparent TexSBG = SelectBG TypeSBG = Transparent X = 70 -Y = 310 +Y = 265 W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20241,13 +19414,13 @@ Type = Transparent TexSBG = SelectBG TypeSBG = Transparent X = 70 -Y = 355 +Y = 310 W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20267,8 +19440,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20283,13 +19456,13 @@ Type = Transparent TexSBG = SelectBG TypeSBG = Transparent X = 70 -Y = 445 +Y = 355 W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20299,7 +19472,7 @@ STDColor = GrayDark [OptionsAdvancedButtonExit] X = 70 -Y = 490 +Y = 445 W = 250 H = 40 Tex = Button @@ -20346,7 +19519,7 @@ ReflectionSpacing = 2 X = 440 Y = 548 Z = 0.5 -Color = Black +Color = White Size = 24 Reflection = 1 ReflectionSpacing = 20 @@ -20367,7 +19540,7 @@ ReflectionSpacing = 2 X = 570 Y = 548 Z = 0.5 -Color = Black +Color = White Size = 24 Reflection = 1 ReflectionSpacing = 20 @@ -20394,8 +19567,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20415,8 +19588,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20436,8 +19609,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20457,8 +19630,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20478,8 +19651,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20499,8 +19672,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20520,8 +19693,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20541,8 +19714,8 @@ W = 250 H = 35 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -20602,8 +19775,8 @@ Y = 450 W = 250 H = 35 Tex = MainBar -Color = -DColor = +Color = +DColor = Type = Transparent [OptionsWebcamText1] X = 115 @@ -20612,7 +19785,7 @@ Color = White Size = 45 Text = SING_OPTIONS_WEBCAM -[OptionsWebcamText2] +[OptionsWebcamText2] X = 90 Y = 450 Color = White @@ -20630,11 +19803,11 @@ W = 250 H = 35 SkipX = 10 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGColor = ColorDark SBGDColor = Gray STColor = White @@ -20652,11 +19825,11 @@ W = 250 H = 35 SkipX = 10 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGColor = ColorDark SBGDColor = Gray STColor = White @@ -20674,11 +19847,11 @@ W = 250 H = 35 SkipX = 10 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGColor = ColorDark SBGDColor = Gray STColor = White @@ -20696,11 +19869,11 @@ W = 250 H = 35 SkipX = 10 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGColor = ColorDark SBGDColor = Gray STColor = White @@ -20718,11 +19891,11 @@ W = 250 H = 35 SkipX = 10 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGColor = ColorDark SBGDColor = Gray STColor = White @@ -20740,11 +19913,11 @@ W = 250 H = 35 SkipX = 10 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGColor = ColorDark SBGDColor = Gray STColor = White @@ -20762,11 +19935,11 @@ W = 250 H = 35 SkipX = 10 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGColor = ColorDark SBGDColor = Gray STColor = White @@ -20784,11 +19957,11 @@ W = 250 H = 35 SkipX = 10 -DColor = -Color = +DColor = +Color = TColor = White TDColor = White - + SBGColor = ColorDark SBGDColor = Gray STColor = White @@ -20882,7 +20055,7 @@ Z = 1 [InsertUserPopupButtonUsernameText1] X = 5 Y = 0 -Color = Black +Color = White Font = 0 Size = 24 Align = 0 @@ -20913,7 +20086,7 @@ Z = 1 [InsertUserPopupButtonPasswordText1] X = 5 Y = 0 -Color = Black +Color = White Font = 0 Size = 24 Align = 0 @@ -21005,8 +20178,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -21026,8 +20199,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -21047,8 +20220,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -21068,8 +20241,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -21089,8 +20262,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -21110,8 +20283,8 @@ W = 250 H = 40 SkipX = 10 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -21132,8 +20305,8 @@ H = 15 SkipX = 10 TextSize = 16 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -21155,8 +20328,8 @@ Z = 0.8 SkipX = 10 TextSize = 16 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -21177,8 +20350,8 @@ H = 15 SkipX = 10 TextSize = 16 -Color = -DColor = +Color = +DColor = TColor = White TDColor = White SBGColor = ColorDark @@ -21220,7 +20393,7 @@ W = 1 H = 12 Z = 1 Tex = Picker -Color = Black +Color = Black Type = Transparent [OptionsJukeboxPointerG] @@ -21230,7 +20403,7 @@ W = 1 H = 12 Z = 1 Tex = Picker -Color = Black +Color = Black Type = Transparent [OptionsJukeboxPointerB] @@ -21240,7 +20413,7 @@ W = 1 H = 12 Z = 1 Tex = Picker -Color = Black +Color = Black Type = Transparent [OptionsJukeboxColor] @@ -21277,32 +20450,20 @@ Reflection = 1 ReflectionSpacing = 2 [AboutMain] -Texts = 3 -Statics = 1 +Texts = 2 [AboutMainBackground] Tex = MainBG -[AboutMainButtonCredits] -X = 500 -Y = 440 -W = 110 -H = 40 -Tex = LogoDeluxe -DColor = -Color = -Type = Transparent -Texts = 1 -Reflection = 0 - -[AboutMainButtonCreditsText1] -X = 55 -Y = -40 -Font = 0 -Size = 25 -Align = 1 -Text = ABOUT_USDX_CREDITS +[AboutMainStatico] +Tex = AboutBG +X = 25 +Y = 70 +W = 630 +H = 450 Color = White +Alpha = 0.65 +Type = Transparent [AboutMainButtonExit] X = 660 @@ -21326,12 +20487,12 @@ Text = SING_OPTIONS_EXIT Color = White [AboutMainButtonDevelopers] -X = 80 +X = 270 Y = 430 W = 140 H = 70 Tex = LogoWeb -DColor = +DColor = Color = White Type = Transparent Texts = 1 @@ -21356,18 +20517,9 @@ Size = 24 Align = 0 Text = -[AboutMainStatic1] -X = 25 -Y = 70 -W = 630 -H = 450 -Tex=helperbg -Color = ColorDark -Type = Colorized - [AboutMainText1] X = 70 -Y = 6 +Y = 20 Color = White Font = 0 Size = 60 @@ -21375,21 +20527,12 @@ Text = ABOUT_MAIN Align = 0 [AboutMainText2] -X = 70 -Y = 53 -Color = White -Font = 0 -Size = 30 -Align = 0 -Text = ABOUT_MAIN_DESC - -[AboutMainText3] -X = 415 +X = 524 Y = 90 Color = White Font = 0 Size = 20 -Align = 0 +Align = 1 Text = US_VERSION Reflection = 0 ReflectionSpacing = 13 @@ -21423,7 +20566,7 @@ Text = SING_OPTIONS_EXIT Color = White [DevelopersTextOverview] -X = 105 +X = 70 Y = 125 W = 400 Color = White @@ -21435,16 +20578,17 @@ Text = [DevelopersStatic1] X = 45 -Y = 70 +Y = 115 W = 630 -H = 450 +H = 460 Tex=Dhelperbg Color = White +alpha=0.65 Type = Transparent [DevelopersStatic2] -X = 300 -Y = 460 +X = 280 +Y = 475 W = 160 H = 80 Tex = LogoWeb @@ -21453,7 +20597,7 @@ Type = Transparent [DevelopersText1] X = 70 -Y = 15 +Y = 30 Color = White Font = 0 Size = 60 @@ -21467,7 +20611,7 @@ Type=Fade ColR=0 ColG=0 ColB=0 -Alpha=0.4 +Alpha=0.3 [CheckPopupStatic1] Tex = interface_dialog_background @@ -21476,21 +20620,22 @@ Y = 150 W = 400 H = 200 Z = 1 -Color = White -Type = Transparent -Reflection = 1 +alpha=0.95 +Color = ColorDark +Type = Colorized +Reflection = 0 ReflectionSpacing = 15 -[CheckPopupText1] -X = 400 -Y = 160 -W = 400 -Color = ColorLight -Font = 0 -Size = 30 -Text = MSG_QUESTION_TITLE -Align = 1 -Z = 1 +#[CheckPopupText1] +#X = 400 +#Y = 160 +#W = 400 +#Color = White +#Font = 0 +#Size = 30 +#Text = MSG_QUESTION_TITLE +#Align = 1 +#Z = 1 [CheckPopupText] X = 400 @@ -21508,10 +20653,10 @@ X = 285 Y = 310 W = 100 H = 25 -Tex = Button -Color = ColorLight -DColor = ColorDark -Type = Transparent +Tex = Button2 +Color = ColorDark +DColor = ColorLight +Type = Colorized Texts = 1 Z = 1 @@ -21530,10 +20675,9 @@ X = 415 Y = 310 W = 100 H = 25 -Tex = Button -Color = ColorLight -DColor = ColorDark -Type = Transparent +Tex = Button2 +Color = ColorDark +Type = Colorized Texts = 1 Z = 1 @@ -21566,7 +20710,7 @@ H = 200 Z = 0.98 Color = White Type = Transparent -Reflection = 1 +Reflection = 0 ReflectionSpacing = 15 [ErrorPopupText1] @@ -21597,9 +20741,8 @@ Y = 310 W = 100 H = 25 Tex = Button -Color = ColorLight -DColor = ColorDark -Type = Transparent +Color = ColorDark +Type = Colorized Texts = 1 Z = 1 @@ -21622,4 +20765,3 @@ H = 600 Z = 0.95 Color = ColorLight Type = Colorized - diff --git a/game/themes/Fantasy/[About]helperbg.png b/game/themes/Fantasy/[About]helperbg.png deleted file mode 100644 index 2ac7a64a..00000000 Binary files a/game/themes/Fantasy/[About]helperbg.png and /dev/null differ diff --git a/game/themes/Fantasy/[About]logo_deluxe.png b/game/themes/Fantasy/[About]logo_deluxe.png deleted file mode 100644 index db175f31..00000000 Binary files a/game/themes/Fantasy/[About]logo_deluxe.png and /dev/null differ diff --git a/game/themes/Fantasy/[About]logo_web.png b/game/themes/Fantasy/[About]logo_web.png deleted file mode 100644 index 19664f7e..00000000 Binary files a/game/themes/Fantasy/[About]logo_web.png and /dev/null differ diff --git a/game/themes/Fantasy/[Developers]helperbg.png b/game/themes/Fantasy/[Developers]helperbg.png deleted file mode 100644 index ce7d6f47..00000000 Binary files a/game/themes/Fantasy/[Developers]helperbg.png and /dev/null differ diff --git a/game/themes/Fantasy/[bg-load]basic.jpg b/game/themes/Fantasy/[bg-load]basic.jpg deleted file mode 100644 index 2562863a..00000000 Binary files a/game/themes/Fantasy/[bg-load]basic.jpg and /dev/null differ diff --git a/game/themes/Fantasy/[bg-main]blue.jpg b/game/themes/Fantasy/[bg-main]blue.jpg deleted file mode 100644 index 9beb484f..00000000 Binary files a/game/themes/Fantasy/[bg-main]blue.jpg and /dev/null differ diff --git a/game/themes/Fantasy/[bg-main]red.jpg b/game/themes/Fantasy/[bg-main]red.jpg deleted file mode 100644 index b0f24510..00000000 Binary files a/game/themes/Fantasy/[bg-main]red.jpg and /dev/null differ diff --git a/game/themes/Fantasy/[bg-main]violet.jpg b/game/themes/Fantasy/[bg-main]violet.jpg deleted file mode 100644 index 33374acb..00000000 Binary files a/game/themes/Fantasy/[bg-main]violet.jpg and /dev/null differ diff --git a/game/themes/Fantasy/[editsub]freestyle.png b/game/themes/Fantasy/[editsub]freestyle.png deleted file mode 100644 index 4ea1dc29..00000000 Binary files a/game/themes/Fantasy/[editsub]freestyle.png and /dev/null differ diff --git a/game/themes/Fantasy/[editsub]gold.png b/game/themes/Fantasy/[editsub]gold.png deleted file mode 100644 index ed14a507..00000000 Binary files a/game/themes/Fantasy/[editsub]gold.png and /dev/null differ diff --git a/game/themes/Fantasy/[editsub]next-seq.png b/game/themes/Fantasy/[editsub]next-seq.png deleted file mode 100644 index ac91f35b..00000000 Binary files a/game/themes/Fantasy/[editsub]next-seq.png and /dev/null differ diff --git a/game/themes/Fantasy/[editsub]play-note.png b/game/themes/Fantasy/[editsub]play-note.png deleted file mode 100644 index dba67b21..00000000 Binary files a/game/themes/Fantasy/[editsub]play-note.png and /dev/null differ diff --git a/game/themes/Fantasy/[editsub]play-with-note.png b/game/themes/Fantasy/[editsub]play-with-note.png deleted file mode 100644 index 1ed7241a..00000000 Binary files a/game/themes/Fantasy/[editsub]play-with-note.png and /dev/null differ diff --git a/game/themes/Fantasy/[editsub]play.png b/game/themes/Fantasy/[editsub]play.png deleted file mode 100644 index bde99838..00000000 Binary files a/game/themes/Fantasy/[editsub]play.png and /dev/null differ diff --git a/game/themes/Fantasy/[editsub]previous-seq.png b/game/themes/Fantasy/[editsub]previous-seq.png deleted file mode 100644 index d0ef893f..00000000 Binary files a/game/themes/Fantasy/[editsub]previous-seq.png and /dev/null differ diff --git a/game/themes/Fantasy/[editsub]undo.png b/game/themes/Fantasy/[editsub]undo.png deleted file mode 100644 index 62d9da88..00000000 Binary files a/game/themes/Fantasy/[editsub]undo.png and /dev/null differ diff --git a/game/themes/Fantasy/[effect]goldenNoteStar.png b/game/themes/Fantasy/[effect]goldenNoteStar.png deleted file mode 100644 index 7bd6225f..00000000 Binary files a/game/themes/Fantasy/[effect]goldenNoteStar.png and /dev/null differ diff --git a/game/themes/Fantasy/[effect]perfectNoteStar.png b/game/themes/Fantasy/[effect]perfectNoteStar.png deleted file mode 100644 index 99132c39..00000000 Binary files a/game/themes/Fantasy/[effect]perfectNoteStar.png and /dev/null differ diff --git a/game/themes/Fantasy/[helper]buttonFade2.png b/game/themes/Fantasy/[helper]buttonFade2.png deleted file mode 100644 index c51465db..00000000 Binary files a/game/themes/Fantasy/[helper]buttonFade2.png and /dev/null differ diff --git a/game/themes/Fantasy/[helper]rectangle.jpg b/game/themes/Fantasy/[helper]rectangle.jpg deleted file mode 100644 index 1521bdea..00000000 Binary files a/game/themes/Fantasy/[helper]rectangle.jpg and /dev/null differ diff --git a/game/themes/Fantasy/[icon]error.png b/game/themes/Fantasy/[icon]error.png deleted file mode 100644 index f952f3fa..00000000 Binary files a/game/themes/Fantasy/[icon]error.png and /dev/null differ diff --git a/game/themes/Fantasy/[icon]main.png b/game/themes/Fantasy/[icon]main.png deleted file mode 100644 index f7d50067..00000000 Binary files a/game/themes/Fantasy/[icon]main.png and /dev/null differ diff --git a/game/themes/Fantasy/[icon]options.png b/game/themes/Fantasy/[icon]options.png deleted file mode 100644 index 9fac0bfd..00000000 Binary files a/game/themes/Fantasy/[icon]options.png and /dev/null differ diff --git a/game/themes/Fantasy/[icon]party.png b/game/themes/Fantasy/[icon]party.png deleted file mode 100644 index e23230e3..00000000 Binary files a/game/themes/Fantasy/[icon]party.png and /dev/null differ diff --git a/game/themes/Fantasy/[icon]question.png b/game/themes/Fantasy/[icon]question.png deleted file mode 100644 index a72a5c43..00000000 Binary files a/game/themes/Fantasy/[icon]question.png and /dev/null differ diff --git a/game/themes/Fantasy/[icon]score.png b/game/themes/Fantasy/[icon]score.png deleted file mode 100644 index 012bde58..00000000 Binary files a/game/themes/Fantasy/[icon]score.png and /dev/null differ diff --git a/game/themes/Fantasy/[icon]stats.png b/game/themes/Fantasy/[icon]stats.png deleted file mode 100644 index d8e5eac1..00000000 Binary files a/game/themes/Fantasy/[icon]stats.png and /dev/null differ diff --git a/game/themes/Fantasy/[icon]video.png b/game/themes/Fantasy/[icon]video.png deleted file mode 100644 index 9bd65f86..00000000 Binary files a/game/themes/Fantasy/[icon]video.png and /dev/null differ diff --git a/game/themes/Fantasy/[interface]cursor.png b/game/themes/Fantasy/[interface]cursor.png deleted file mode 100644 index 7f377ef2..00000000 Binary files a/game/themes/Fantasy/[interface]cursor.png and /dev/null differ diff --git a/game/themes/Fantasy/[interface]cursor_pressed.png b/game/themes/Fantasy/[interface]cursor_pressed.png deleted file mode 100644 index 7f377ef2..00000000 Binary files a/game/themes/Fantasy/[interface]cursor_pressed.png and /dev/null differ diff --git a/game/themes/Fantasy/[interface]dialog_background.png b/game/themes/Fantasy/[interface]dialog_background.png deleted file mode 100644 index 2d222393..00000000 Binary files a/game/themes/Fantasy/[interface]dialog_background.png and /dev/null differ diff --git a/game/themes/Fantasy/[interface]dialog_background0.png b/game/themes/Fantasy/[interface]dialog_background0.png deleted file mode 100644 index 38f4a67b..00000000 Binary files a/game/themes/Fantasy/[interface]dialog_background0.png and /dev/null differ diff --git a/game/themes/Fantasy/[interface]dialog_backgroundtop2.png b/game/themes/Fantasy/[interface]dialog_backgroundtop2.png deleted file mode 100644 index a2b06ab1..00000000 Binary files a/game/themes/Fantasy/[interface]dialog_backgroundtop2.png and /dev/null differ diff --git a/game/themes/Fantasy/[interface]select_arrow_left.png b/game/themes/Fantasy/[interface]select_arrow_left.png deleted file mode 100644 index e4a32d2d..00000000 Binary files a/game/themes/Fantasy/[interface]select_arrow_left.png and /dev/null differ diff --git a/game/themes/Fantasy/[interface]select_arrow_right.png b/game/themes/Fantasy/[interface]select_arrow_right.png deleted file mode 100644 index b2a29793..00000000 Binary files a/game/themes/Fantasy/[interface]select_arrow_right.png and /dev/null differ diff --git a/game/themes/Fantasy/[jukebox]close.png b/game/themes/Fantasy/[jukebox]close.png deleted file mode 100644 index 55770f12..00000000 Binary files a/game/themes/Fantasy/[jukebox]close.png and /dev/null differ diff --git a/game/themes/Fantasy/[jukebox]lyric.png b/game/themes/Fantasy/[jukebox]lyric.png deleted file mode 100644 index 367ac5f9..00000000 Binary files a/game/themes/Fantasy/[jukebox]lyric.png and /dev/null differ diff --git a/game/themes/Fantasy/[jukebox]options.png b/game/themes/Fantasy/[jukebox]options.png deleted file mode 100644 index 7c29663f..00000000 Binary files a/game/themes/Fantasy/[jukebox]options.png and /dev/null differ diff --git a/game/themes/Fantasy/[jukebox]pin.png b/game/themes/Fantasy/[jukebox]pin.png deleted file mode 100644 index f5867e89..00000000 Binary files a/game/themes/Fantasy/[jukebox]pin.png and /dev/null differ diff --git "a/game/themes/Fantasy/[jukebox]random - C\303\263pia.png" "b/game/themes/Fantasy/[jukebox]random - C\303\263pia.png" deleted file mode 100644 index 698938d1..00000000 Binary files "a/game/themes/Fantasy/[jukebox]random - C\303\263pia.png" and /dev/null differ diff --git a/game/themes/Fantasy/[jukebox]random.png b/game/themes/Fantasy/[jukebox]random.png deleted file mode 100644 index 30837235..00000000 Binary files a/game/themes/Fantasy/[jukebox]random.png and /dev/null differ diff --git a/game/themes/Fantasy/[jukebox]repeat.png b/game/themes/Fantasy/[jukebox]repeat.png deleted file mode 100644 index 135f3792..00000000 Binary files a/game/themes/Fantasy/[jukebox]repeat.png and /dev/null differ diff --git a/game/themes/Fantasy/[jukebox]songlistdown.png b/game/themes/Fantasy/[jukebox]songlistdown.png deleted file mode 100644 index e467c935..00000000 Binary files a/game/themes/Fantasy/[jukebox]songlistdown.png and /dev/null differ diff --git a/game/themes/Fantasy/[jukebox]songlistup.png b/game/themes/Fantasy/[jukebox]songlistup.png deleted file mode 100644 index fd9d5ac9..00000000 Binary files a/game/themes/Fantasy/[jukebox]songlistup.png and /dev/null differ diff --git a/game/themes/Fantasy/[jukebox]songmenunext.png b/game/themes/Fantasy/[jukebox]songmenunext.png deleted file mode 100644 index 75576dbe..00000000 Binary files a/game/themes/Fantasy/[jukebox]songmenunext.png and /dev/null differ diff --git a/game/themes/Fantasy/[jukebox]songmenuplaylist.png b/game/themes/Fantasy/[jukebox]songmenuplaylist.png deleted file mode 100644 index ee8e5d1c..00000000 Binary files a/game/themes/Fantasy/[jukebox]songmenuplaylist.png and /dev/null differ diff --git a/game/themes/Fantasy/[jukebox]songmenuplaypause.png b/game/themes/Fantasy/[jukebox]songmenuplaypause.png deleted file mode 100644 index 660d849b..00000000 Binary files a/game/themes/Fantasy/[jukebox]songmenuplaypause.png and /dev/null differ diff --git a/game/themes/Fantasy/[jukebox]songmenuprevious.png b/game/themes/Fantasy/[jukebox]songmenuprevious.png deleted file mode 100644 index 9497515f..00000000 Binary files a/game/themes/Fantasy/[jukebox]songmenuprevious.png and /dev/null differ diff --git a/game/themes/Fantasy/[jukebox]songoptions.png b/game/themes/Fantasy/[jukebox]songoptions.png deleted file mode 100644 index 9b7c4c01..00000000 Binary files a/game/themes/Fantasy/[jukebox]songoptions.png and /dev/null differ diff --git a/game/themes/Fantasy/[main]button2.png b/game/themes/Fantasy/[main]button2.png deleted file mode 100644 index 64c165e1..00000000 Binary files a/game/themes/Fantasy/[main]button2.png and /dev/null differ diff --git a/game/themes/Fantasy/[main]songCover.jpg b/game/themes/Fantasy/[main]songCover.jpg deleted file mode 100644 index 6708171c..00000000 Binary files a/game/themes/Fantasy/[main]songCover.jpg and /dev/null differ diff --git a/game/themes/Fantasy/[menu]PopUpFg.png b/game/themes/Fantasy/[menu]PopUpFg.png deleted file mode 100644 index 2c9785b4..00000000 Binary files a/game/themes/Fantasy/[menu]PopUpFg.png and /dev/null differ diff --git a/game/themes/Fantasy/[menu]jumpToBg.png b/game/themes/Fantasy/[menu]jumpToBg.png deleted file mode 100644 index 8e3a3a00..00000000 Binary files a/game/themes/Fantasy/[menu]jumpToBg.png and /dev/null differ diff --git a/game/themes/Fantasy/[name]noavatarP1.png b/game/themes/Fantasy/[name]noavatarP1.png deleted file mode 100644 index 5699e37f..00000000 Binary files a/game/themes/Fantasy/[name]noavatarP1.png and /dev/null differ diff --git a/game/themes/Fantasy/[name]noavatarP2.png b/game/themes/Fantasy/[name]noavatarP2.png deleted file mode 100644 index 9639ab92..00000000 Binary files a/game/themes/Fantasy/[name]noavatarP2.png and /dev/null differ diff --git a/game/themes/Fantasy/[name]noavatarP3.png b/game/themes/Fantasy/[name]noavatarP3.png deleted file mode 100644 index 5962dad1..00000000 Binary files a/game/themes/Fantasy/[name]noavatarP3.png and /dev/null differ diff --git a/game/themes/Fantasy/[name]noavatarP4.png b/game/themes/Fantasy/[name]noavatarP4.png deleted file mode 100644 index 10a93956..00000000 Binary files a/game/themes/Fantasy/[name]noavatarP4.png and /dev/null differ diff --git a/game/themes/Fantasy/[name]noavatarP5.png b/game/themes/Fantasy/[name]noavatarP5.png deleted file mode 100644 index e6dbed2b..00000000 Binary files a/game/themes/Fantasy/[name]noavatarP5.png and /dev/null differ diff --git a/game/themes/Fantasy/[name]noavatarP6.png b/game/themes/Fantasy/[name]noavatarP6.png deleted file mode 100644 index 72da72fa..00000000 Binary files a/game/themes/Fantasy/[name]noavatarP6.png and /dev/null differ diff --git a/game/themes/Fantasy/[name]select.png b/game/themes/Fantasy/[name]select.png deleted file mode 100644 index 031aafc9..00000000 Binary files a/game/themes/Fantasy/[name]select.png and /dev/null differ diff --git a/game/themes/Fantasy/[party]scoreDecoration.png b/game/themes/Fantasy/[party]scoreDecoration.png deleted file mode 100644 index d596ceef..00000000 Binary files a/game/themes/Fantasy/[party]scoreDecoration.png and /dev/null differ diff --git a/game/themes/Fantasy/[party]winDecoration.png b/game/themes/Fantasy/[party]winDecoration.png deleted file mode 100644 index b91afb22..00000000 Binary files a/game/themes/Fantasy/[party]winDecoration.png and /dev/null differ diff --git a/game/themes/Fantasy/[score]frame.png b/game/themes/Fantasy/[score]frame.png deleted file mode 100644 index 8c5f4477..00000000 Binary files a/game/themes/Fantasy/[score]frame.png and /dev/null differ diff --git a/game/themes/Fantasy/[score]rating_0.png b/game/themes/Fantasy/[score]rating_0.png deleted file mode 100644 index 4af787bb..00000000 Binary files a/game/themes/Fantasy/[score]rating_0.png and /dev/null differ diff --git a/game/themes/Fantasy/[score]rating_1.png b/game/themes/Fantasy/[score]rating_1.png deleted file mode 100644 index 99f740ba..00000000 Binary files a/game/themes/Fantasy/[score]rating_1.png and /dev/null differ diff --git a/game/themes/Fantasy/[score]rating_2.png b/game/themes/Fantasy/[score]rating_2.png deleted file mode 100644 index e4089d25..00000000 Binary files a/game/themes/Fantasy/[score]rating_2.png and /dev/null differ diff --git a/game/themes/Fantasy/[score]rating_3.png b/game/themes/Fantasy/[score]rating_3.png deleted file mode 100644 index 98acace3..00000000 Binary files a/game/themes/Fantasy/[score]rating_3.png and /dev/null differ diff --git a/game/themes/Fantasy/[score]rating_4.png b/game/themes/Fantasy/[score]rating_4.png deleted file mode 100644 index 50d31480..00000000 Binary files a/game/themes/Fantasy/[score]rating_4.png and /dev/null differ diff --git a/game/themes/Fantasy/[score]rating_5.png b/game/themes/Fantasy/[score]rating_5.png deleted file mode 100644 index b4ce77cd..00000000 Binary files a/game/themes/Fantasy/[score]rating_5.png and /dev/null differ diff --git a/game/themes/Fantasy/[score]rating_6.png b/game/themes/Fantasy/[score]rating_6.png deleted file mode 100644 index 97c94fb0..00000000 Binary files a/game/themes/Fantasy/[score]rating_6.png and /dev/null differ diff --git a/game/themes/Fantasy/[score]rating_7.png b/game/themes/Fantasy/[score]rating_7.png deleted file mode 100644 index 2fe1a0f0..00000000 Binary files a/game/themes/Fantasy/[score]rating_7.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing.player1]lyric_active.png b/game/themes/Fantasy/[sing.player1]lyric_active.png deleted file mode 100644 index 089c8c5e..00000000 Binary files a/game/themes/Fantasy/[sing.player1]lyric_active.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing.player1]lyric_inactive.png b/game/themes/Fantasy/[sing.player1]lyric_inactive.png deleted file mode 100644 index a349007d..00000000 Binary files a/game/themes/Fantasy/[sing.player1]lyric_inactive.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing.player2]lyric_active.png b/game/themes/Fantasy/[sing.player2]lyric_active.png deleted file mode 100644 index 509767fa..00000000 Binary files a/game/themes/Fantasy/[sing.player2]lyric_active.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing.player2]lyric_inactive.png b/game/themes/Fantasy/[sing.player2]lyric_inactive.png deleted file mode 100644 index ac40ec61..00000000 Binary files a/game/themes/Fantasy/[sing.player2]lyric_inactive.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing.player3]lyric_active.png b/game/themes/Fantasy/[sing.player3]lyric_active.png deleted file mode 100644 index 7b130ac5..00000000 Binary files a/game/themes/Fantasy/[sing.player3]lyric_active.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing.player3]lyric_inactive.png b/game/themes/Fantasy/[sing.player3]lyric_inactive.png deleted file mode 100644 index c5a00600..00000000 Binary files a/game/themes/Fantasy/[sing.player3]lyric_inactive.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing.player4]lyric_active.png b/game/themes/Fantasy/[sing.player4]lyric_active.png deleted file mode 100644 index 993041fd..00000000 Binary files a/game/themes/Fantasy/[sing.player4]lyric_active.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing.player4]lyric_inactive.png b/game/themes/Fantasy/[sing.player4]lyric_inactive.png deleted file mode 100644 index f09669b2..00000000 Binary files a/game/themes/Fantasy/[sing.player4]lyric_inactive.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing.player5]lyric_active.png b/game/themes/Fantasy/[sing.player5]lyric_active.png deleted file mode 100644 index 631dc9c3..00000000 Binary files a/game/themes/Fantasy/[sing.player5]lyric_active.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing.player5]lyric_inactive.png b/game/themes/Fantasy/[sing.player5]lyric_inactive.png deleted file mode 100644 index 716071e8..00000000 Binary files a/game/themes/Fantasy/[sing.player5]lyric_inactive.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing.player6]lyric_active.png b/game/themes/Fantasy/[sing.player6]lyric_active.png deleted file mode 100644 index 65133d03..00000000 Binary files a/game/themes/Fantasy/[sing.player6]lyric_active.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing.player6]lyric_inactive.png b/game/themes/Fantasy/[sing.player6]lyric_inactive.png deleted file mode 100644 index 0c5f34d3..00000000 Binary files a/game/themes/Fantasy/[sing.player6]lyric_inactive.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing]lyricsHelpBar.png b/game/themes/Fantasy/[sing]lyricsHelpBar.png deleted file mode 100644 index 3f6dcc42..00000000 Binary files a/game/themes/Fantasy/[sing]lyricsHelpBar.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing]notesBgLeft.png b/game/themes/Fantasy/[sing]notesBgLeft.png deleted file mode 100644 index 8075fce2..00000000 Binary files a/game/themes/Fantasy/[sing]notesBgLeft.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing]notesBgMid.png b/game/themes/Fantasy/[sing]notesBgMid.png deleted file mode 100644 index 7fd12fdc..00000000 Binary files a/game/themes/Fantasy/[sing]notesBgMid.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing]notesBgRight.png b/game/themes/Fantasy/[sing]notesBgRight.png deleted file mode 100644 index fd167b97..00000000 Binary files a/game/themes/Fantasy/[sing]notesBgRight.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing]notesLeft.png b/game/themes/Fantasy/[sing]notesLeft.png deleted file mode 100644 index ba07ab0d..00000000 Binary files a/game/themes/Fantasy/[sing]notesLeft.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing]notesMid.png b/game/themes/Fantasy/[sing]notesMid.png deleted file mode 100644 index be838fa5..00000000 Binary files a/game/themes/Fantasy/[sing]notesMid.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing]notesPlainLeft.png b/game/themes/Fantasy/[sing]notesPlainLeft.png deleted file mode 100644 index 4173b3a9..00000000 Binary files a/game/themes/Fantasy/[sing]notesPlainLeft.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing]notesPlainMid.png b/game/themes/Fantasy/[sing]notesPlainMid.png deleted file mode 100644 index 5d8ed85d..00000000 Binary files a/game/themes/Fantasy/[sing]notesPlainMid.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing]notesPlainRight.png b/game/themes/Fantasy/[sing]notesPlainRight.png deleted file mode 100644 index 1191b342..00000000 Binary files a/game/themes/Fantasy/[sing]notesPlainRight.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing]notesRight.png b/game/themes/Fantasy/[sing]notesRight.png deleted file mode 100644 index c596c212..00000000 Binary files a/game/themes/Fantasy/[sing]notesRight.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing]pause.png b/game/themes/Fantasy/[sing]pause.png deleted file mode 100644 index f5ab158c..00000000 Binary files a/game/themes/Fantasy/[sing]pause.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing]textBar.png b/game/themes/Fantasy/[sing]textBar.png deleted file mode 100644 index 00869fe9..00000000 Binary files a/game/themes/Fantasy/[sing]textBar.png and /dev/null differ diff --git a/game/themes/Fantasy/[sing]timeBarBG.png b/game/themes/Fantasy/[sing]timeBarBG.png deleted file mode 100644 index 2fcb261d..00000000 Binary files a/game/themes/Fantasy/[sing]timeBarBG.png and /dev/null differ diff --git a/game/themes/Fantasy/[special]bar1.png b/game/themes/Fantasy/[special]bar1.png deleted file mode 100644 index c51465db..00000000 Binary files a/game/themes/Fantasy/[special]bar1.png and /dev/null differ diff --git a/game/themes/Fantasy/[special]bar2.png b/game/themes/Fantasy/[special]bar2.png deleted file mode 100644 index c51465db..00000000 Binary files a/game/themes/Fantasy/[special]bar2.png and /dev/null differ diff --git a/game/themes/Fantasy/[stat]detailBG1.png b/game/themes/Fantasy/[stat]detailBG1.png deleted file mode 100644 index 8abdcfec..00000000 Binary files a/game/themes/Fantasy/[stat]detailBG1.png and /dev/null differ diff --git a/game/themes/Fantasy/[stat]mainBG1.png b/game/themes/Fantasy/[stat]mainBG1.png deleted file mode 100644 index 3f5a4190..00000000 Binary files a/game/themes/Fantasy/[stat]mainBG1.png and /dev/null differ diff --git a/game/themes/Fantasy/[stat]mainBG2.png b/game/themes/Fantasy/[stat]mainBG2.png deleted file mode 100644 index b88ecaf8..00000000 Binary files a/game/themes/Fantasy/[stat]mainBG2.png and /dev/null differ diff --git a/game/themes/Fantasy/[stat]mainBG3.png b/game/themes/Fantasy/[stat]mainBG3.png deleted file mode 100644 index 28c39392..00000000 Binary files a/game/themes/Fantasy/[stat]mainBG3.png and /dev/null differ diff --git a/game/themes/Party.ini b/game/themes/Party.ini new file mode 100644 index 00000000..b41e2f47 --- /dev/null +++ b/game/themes/Party.ini @@ -0,0 +1,20768 @@ + +################################### +# theme developed by Daniel20 # +# for https:\\ultrastar-es.org # +# visit us to get songs, plugins, # +# themes and more... # +# # +################################### + +[Theme] +Name = Party +Creator = Daniel20 +US_Version = USD 110 +DefaultSkin = Basic Violet + +[Colors] +White = 255 255 255 +WhiteGray = 230 230 230 +LightBlue = 119 187 210 +DarkBlue = 28 126 171 +LightRed = 170 146 146 +DarkRed = 155 113 113 +LightGreen = 136 168 136 +DarkGreen = 106 152 104 +LightPurple = 155 136 168 +DarkPurple = 145 104 152 +LightOrange = 168 155 136 +DarkOrange = 151 131 76 +LightYellow = 168 168 136 +DarkYellow = 150 151 76 +Turkis = 13 186 167 +GrayLightest = 223 223 223 +GrayLight = 191 191 191 +Gray = 127 127 127 +GrayDark = 63 63 63 +Black = 0 0 0 +GrayPopup = 51 51 51 +Gold = 255 223 31 +Silver = 223 223 223 +Bronze = 205 127 50 +Red = 255 0 0 +Magenta = 215 0 111 + +[Loading] +[LoadingBackground] +Tex = LoadingBG + +[LoadingText1] +X = 780 +Y = 570 +Color = White +Font = 1 +Align = 2 +Size = 24 +Text = SING_LOADING +Reflection = 0 +ReflectionSpacing = 13 + +[Main] +[MainBackground] +Tex = MainBG + +[MainTextDescriptionLong] +X = 385 +Y = 550 +Color = White +Font = 0 +Size = 0 +Align = 1 +Text = + +[MainButtonSolo] +X = 25 +Y = 95 +W = 95 +H = 110 +Tex = ButtonSolo +Color = White +DColor = White +Type = Transparent +Texts = 1 +Reflection = 0 +ReflectionSpacing = 0 +Fade = 1 +FadeText = 1 +SelectH = 100 +FadeTex = ButtonFade +FadeTexPos = 0 + +[MainButtonSoloText1] +X = 115 +Y = 40 +Font = 0 +Size = 33 +Align = 0 +Text = SING_SING_DESC +Color = White + +[MainButtonMulti] +X = 110 +Y = 235 +W = 93 +H = 110 +Tex = ButtonParty +Color = White +DColor = White +Type = Transparent +Texts = 1 +Reflection = 0 +ReflectionSpacing = 0 +Fade = 1 +FadeText = 1 +SelectH = 100 +FadeTex = ButtonFade +FadeTexPos = 0 + +[MainButtonMultiText1] +X = 110 +Y = 40 +Font = 0 +Size = 33 +Align = 0 +Text = SING_MULTI_DESC +Color = White + +[MainButtonJukebox] +X = 210 +Y = 385 +W = 77 +H = 100 +Tex = ButtonJukebox +Color = White +DColor = White +Type = Transparent +Texts = 1 +Reflection = 0 +ReflectionSpacing = 0 +Fade = 1 +FadeText = 1 +SelectH = 90 +FadeTex = ButtonFade +FadeTexPos = 0 + +[MainButtonJukeboxText1] +X = 220 +Y = 40 +Font = 0 +Size = 33 +Align = 1 +Text = SING_JUKEBOX_DESC +Color = White + +[MainButtonStats] +X = 570 +Y = 510 +W = 40 +H = 58 +Tex = ButtonStats +Color = White +DColor = White +Type = Transparent +Texts = 1 +Reflection = 0 +ReflectionSpacing = 0 +Fade = 1 +FadeText = 1 +SelectH = 48 +FadeTex = ButtonFade +FadeTexPos = 0 + +[MainButtonStatsText1] +X = 20 +Y = 67 +Font = 0 +Size = 18 +Align = 1 +Text = SING_STATS +Color = White + +[MainButtonOptions] +X = 660 +Y = 510 +W = 40 +H = 58 +Tex = ButtonOption +Color = White +DColor = White +Type = Transparent +Texts = 1 +Reflection = 0 +ReflectionSpacing = -1 +Fade = 1 +FadeText = 1 +SelectH = 50 +FadeTex = ButtonFade +FadeTexPos = 0 + +[MainButtonOptionsText1] +X = 20 +Y = 67 +Font = 0 +Size = 18 +Align = 1 +Text = SING_OPTIONS +Color = White + +[MainButtonExit] +X = 740 +Y = 513 +W = 40 +H = 58 +Tex = ButtonExit +Color = White +DColor = White +Type = Transparent +Texts = 1 +Reflection = 0 +ReflectionSpacing = 0 +Fade = 1 +FadeText = 1 +SelectH = 50 +FadeTex = ButtonFade +FadeTexPos = 0 + +[MainButtonExitText1] +X = 19 +Y = 65 +Font = 0 +Size = 18 +Align = 1 +Text = SING_EXIT +Color = White + +[MainButtonAbout] +X = 20 +Y = 525 +W = 38 +H = 48 +Tex = ButtonAbout +Color = White +DColor = White +Type = Transparent +Texts = 1 +Reflection = 0 +ReflectionSpacing = 0 +Fade = 1 +FadeText = 1 +SelectH = 38 +FadeTex = ButtonFade +FadeTexPos = 0 + +[MainButtonAboutText1] +X = 20 +Y = 50 +Font = 0 +Size = 18 +Align = 1 +Text = SING_ABOUT +Color = White + + +[MainProgressSongsText] +X = 380 +Y = 15 +Color = White +Font = 0 +Size = 17 +Align = 1 +Z = 1 + +[Name] +Texts = 2 + +[NameBackground] +Tex = MainBG + +#write your name +[NameStatic1] +X = 30 +Y = 400 +W = 200 +H = 35 +Tex = MainBar +Color = +Type = Transparent + +#choose avatar +#[NameStatic2] +#X = 30 +#Y = 535 +#W = 200 +#H = 35 +#Tex = MainBar +#Color = +#Type = Transparent + +[NameText1] +X = 30 +Y = 20 +Color = White +Font = 0 +Size = 45 +Align = 0 +Text = SING_PLAYER_TITLE + +[NameText2] +X = 50 +Y = 75 +Color = White +Font = 1 +Size = 26 +Text = SING_PLAYER_READY + +[NameText3] +X = 50 +Y = 350 +Color = White +Font = 1 +Size = 26 +Align = 0 +Text = SING_PLAYER_EDIT + +[NameText4] +X = 50 +Y = 405 +Color = White +Font = 0 +Size = 22 +Align = 0 +Text = SING_PLAYER_NAME + +#[NameText5] +#X = 50 +#Y = 540 +#Color = White +#Font = 0 +#Size = 22 +#Align = 0 +#Text = SING_PLAYER_AVATAR + +[NameSelectPlayerCount] +Text = SING_PLAYER_COUNT +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 30 +Y = 265 +W = 200 +H = 35 +Size=5 +SkipX = 30 +SBGW = 160 +Align = 0 +TextSize = 22 +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = ColorDark +SBGColor = ColorLight +STColor = White +STDColor = GrayDark + +[NamePlayerSelectStatic1] +X = 101 +Y = 120 +W = 66 +H = 88 +Tex = AvatarFrame2 +Color = P1Dark +Type = Colorized +Z = 1 + +[NamePlayerSelectStatic1Text] +X = 133 +Y = 211 +Font = 1 +Size = 16 +Align = 1 +Color = White +Z = 1 + +[NamePlayerSelectStatic1Avatar] +X = 108 +Y = 127 +W = 51 +H = 72 +Z = 1 +Tex = NoAvatar_P1 +Type = Transparent + +[NamePlayerSelectStatic2] +X = 202 +Y = 120 +W = 66 +H = 88 +Tex = AvatarFrame2 +Color = P2Dark +Type = Colorized +Z = 1 + +[NamePlayerSelectStatic2Text] +X = 235 +Y = 211 +Font = 1 +Size = 16 +Align = 1 +Color = White +Text = P2 +Z = 1 + +[NamePlayerSelectStatic2Avatar] +X = 209 +Y = 127 +W = 51 +H = 72 +Z = 1 +Tex = NoAvatar_P2 +Type = Transparent + +[NamePlayerSelectStatic3] +X = 312 +Y = 120 +W = 66 +H = 88 +Tex = AvatarFrame2 +Color = P3Dark +Type = Colorized +Z = 1 + +[NamePlayerSelectStatic3Text] +X = 344 +Y = 211 +Font = 1 +Size = 16 +Align = 1 +Color = White +Text = P3 +Z = 1 + +[NamePlayerSelectStatic3Avatar] +X = 319 +Y = 127 +W = 51 +H = 72 +Z = 1 +Tex = NoAvatar_P3 +Type = Transparent + +[NamePlayerSelectStatic4] +X = 418 +Y = 120 +W = 66 +H = 88 +Tex = AvatarFrame2 +Color = P4Dark +Type = Colorized +Z = 1 + +[NamePlayerSelectStatic4Text] +X = 451 +Y = 211 +Font = 1 +Size = 16 +Align = 1 +Color = White +Text = P4 +Z = 1 + +[NamePlayerSelectStatic4Avatar] +X = 425 +Y = 127 +W = 51 +H = 72 +Z = 1 +Tex = NoAvatar_P4 +Type = Transparent + +[NamePlayerSelectStatic5] +X = 524 +Y = 120 +W = 66 +H = 88 +Tex = AvatarFrame2 +Color = P5Dark +Type = Colorized +Z = 1 + +[NamePlayerSelectStatic5Text] +X = 557 +Y = 211 +Font = 1 +Size = 16 +Align = 1 +Color = White +Text = P5 +Z = 1 + +[NamePlayerSelectStatic5Avatar] +X = 531 +Y = 127 +W = 51 +H = 72 +Z = 1 +Tex = NoAvatar_P5 +Type = Transparent + +[NamePlayerSelectStatic6] +X = 630 +Y = 120 +W = 66 +H = 88 +Tex = AvatarFrame2 +Color = P6Dark +Type = Colorized +Z = 1 + +[NamePlayerSelectStatic6Text] +X = 662 +Y = 211 +Font = 1 +Size = 16 +Align = 1 +Color = White +Text = P6 +Z = 1 + +[NamePlayerSelectStatic6Avatar] +X = 637 +Y = 127 +W = 51 +H = 72 +Z = 1 +Tex = NoAvatar_P6 +Type = Transparent + +[NamePlayerSelectCurrent] +X = 0 +Y = 120 +W = 67 +H = 130 +Z = 0.95 +Tex = SelectFrame +Color = ColorDark +DColor = White +Type = Transparent + +[NamePlayerAvatar] +X = 560 +Y = 421 +W = 67 +H = 90 +Reflection = 0 + +[NamePlayerButtonAvatar] +X = 541 +Y = 403 +W = 107 +H = 124 +Tex = AvatarFrame +Color = ColorDark +DColor = ColorLight +Type = Transparent + +[NamePlayerScrollAvatar] +Count = 3 +Distance = 40 + +[NamePlayerButtonName] +X = 260 +Y = 400 +W = 160 +H = 35 +Z = 1 +Tex = Button +Color = ColorLight +DColor = ColorDark +Type = Transparent +Texts = 1 + +[NamePlayerButtonNameText1] +X = 80 +Y = 5 +Font = 0 +Size = 22 +Align = 1 +Color = White + +[NameSelectPlayerColor] +Text= SING_PLAYER_COLOR +Tex = MainBar +TexSBG = SelectBG +Type = Transparent +TypeSBG = Transparent +X = 30 +Y = 445 +W = 200 +H = 35 +Size=5 +SkipX = 30 +SBGW = 160 +TextSize = 22 +DColor = +Color = +TColor = White +TDColor = White +SBGDColor = PlayerDark +SBGColor = PlayerLight +STColor = White +STDColor = GrayDark + +[NameSelectPlayerLevel] +Text = SING_PLAYER_LEVEL +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +Type = Transparent +TypeSBG = Transparent +X = 30 +Y = 490 +W = 200 +H = 35 +Size=5 +SkipX = 30 +SBGW = 160 +TextSize = 22 +DColor = +Color = +TColor = White +TDColor = White +SBGDColor = PlayerDark +SBGColor = PlayerLight +STColor = White +STDColor = GrayDark + +######################################### +##### S O N G S E L E C T I O N ##### +######################################### + +[SongMenu] + +[SongMenuBackground] +Type=Fade +ColR=0 +ColG=0 +ColB=0 +Alpha=0.6 + +[SongMenuStatic1] +Tex = interface_dialog_backgroundtop +X = 250 +Y = 0 +W = 300 +H = 210 +Z = 0.96 +Color = White +Type = Transparent +#Reflection = 1 +#ReflectionSpacing = 0 + +[SongMenuStatic2] +X = 258 +Y = 15 +W = 24 +H = 24 +Color = White +Tex = icon_song_menu +Type = Colorized +Z = 0.97 + +[SongMenuTextMenu] +X = 288 +Y = 9 +Z = 0.97 +Color = ColorLight +Size = 36 +Text = MENU + +[SongMenuButton1] +X = 280 +Y = 58 +Z = 0.97 +W = 220 +H = 25 +Tex = Rectangle +Color = ColorLight +DColor = ColorDark +Type = Colorized +Texts = 1 + +[SongMenuButton1Text1] +X = 6 +Y = 0 +Z = 0.97 +Color = White +Size = 24 +Text = SONG_MENU_PLAY + +# shows up instead of Button 1 +# in some song menus +[SongMenuSelectSlide1] +TexSBG = Rectangle +Text = +TypeSBG = Colorized +ShowArrows = 1 +OneItemOnly = 1 +X = 280 +Y = 58 +W = 0 +H = 25 +Z = 0.97 +SkipX = 0 +SBGW = 220 +TextSize = 24 +Color = ColorLight +DColor = ColorDark +TColor = White +TDColor = White +SBGColor = ColorLight +SBGDColor = ColorDark +STColor = White +STDColor = White + +[SongMenuButton2] +X = 280 +Y = 85 +Z = 0.97 +W = 220 +H = 25 +Tex = Rectangle +Color = ColorLight +DColor = ColorDark +Type = Colorized +Texts = 1 + +[SongMenuButton2Text1] +X = 6 +Y = 0 +Color = White +Size = 24 +Text = SONG_MENU_EDIT +Z = 0.97 + +# shows up instead of Button 2 +# in some song menus +[SongMenuSelectSlide2] +TexSBG = Rectangle +Text = +TypeSBG = Colorized +ShowArrows = 1 +OneItemOnly = 1 +X = 280 +Y = 85 +W = 0 +H = 25 +Z = 0.97 +SkipX = 0 +SBGW = 220 +TextSize = 24 +Color = ColorLight +DColor = ColorDark +TColor = White +TDColor = White +SBGColor = ColorLight +SBGDColor = ColorDark +STColor = White +STDColor = White + +[SongMenuButton3] +X = 280 +Y = 115 +Z = 0.97 +W = 220 +H = 25 +Tex = Rectangle +Color = ColorLight +DColor = ColorDark +Type = Colorized +Texts = 1 + +[SongMenuButton3Text1] +X = 6 +Y = 0 +Color = White +Font = 0 +Size = 24 +Text = SONG_MENU_MODI +Align = 0 +Z = 0.97 + +# shows up instead of BUtton 3 +# in some song menus +[SongMenuSelectSlide3] +TexSBG = Rectangle +Text = +TypeSBG = Colorized +ShowArrows = 1 +OneItemOnly = 1 +X = 280 +Y = 115 +W = 0 +H = 25 +Z = 0.97 +SkipX = 0 +SBGW = 220 +TextSize = 24 +Color = ColorLight +DColor = ColorDark +TColor = White +TDColor = White +SBGColor = ColorLight +SBGDColor = ColorDark +STColor = White +STDColor = White + +[SongMenuButton4] +X = 280 +Y = 145 +Z = 0.97 +W = 220 +H = 25 +Tex = Rectangle +Color = ColorLight +DColor = ColorDark +Type = Colorized +Texts = 1 + +[SongMenuButton4Text1] +X = 6 +Y = 0 +Color = White +Font = 0 +Size = 24 +Text = SONG_MENU_CANCEL +Align = 0 +Z = 0.97 + +[SongMenuButton5] +X = 280 +Y = 175 +Z = 0.97 +W = 220 +H = 25 +Tex = Rectangle +Color = ColorLight +DColor = ColorDark +Type = Colorized +Texts = 1 + +[SongMenuButton5Text1] +X = 6 +Y = 0 +Color = White +Font = 0 +Size = 24 +Text = SONG_MENU_CANCEL +Align = 0 +Z = 0.97 + +[SongJumpto] + +[SongJumptoBackground] +Type=Fade +ColR=0 +ColG=0 +ColB=0 +Alpha=0.5 + +[SongJumptoStatic1] +X = 458 +Y = 20 +W = 24 +H = 24 +Color = White +Tex = icon_song_search +Type = Colorized +Z = 0.97 + +[SongJumptoText1] +X = 488 +Y = 15 +Z = 0.97 +Color = ColorLight +Size = 30 +Text = SONG_JUMPTO_TYPE_DESC + +[SongJumptoSelectSlideType] +X = 455 +Y = -40 +Z = 0.97 +H = 30 +SBGW = 240 +SkipX = 0 +Size = 1 +oneItemOnly = 1 +showArrows = 1 + +#text +TColor = White +TDColor = White +#Select0r.Text.Color +STColor = White +STDColor = White + +[SongJumptoButtonSearchText] +X = 475 +Y = 32 +Z = 0.97 +W = 290 +H = 50 +Size = 30 +Font = 1 +Align = 0 +Color = ColorLight + +#[SongJumptoTextFound] +#X = 270 +#Y = 125 +#Color = White +#Font = 0 +#Size = 20 +#Text = SONG_JUMPTO_HELP +#Align = 0 +#Z = 0.97 + +##################### +### screen song ### +##################### + +[SongRouletteStatic2PlayersDuetSingerP1] +X = 35 +Y = 520 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P1Dark +Tex = SongDuetSinger + +[SongRouletteText2PlayersDuetSingerP1] +X = 112 +Y = 525 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongRouletteStatic2PlayersDuetSingerP2] +X = 35 +Y = 550 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P2Dark +Tex = SongDuetSinger2 +Reflection = 1 +ReflectionSpacing = 1 + +[SongRouletteText2PlayersDuetSingerP2] +X = 112 +Y = 555 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongRouletteStatic3PlayersDuetSingerP1] +X = 35 +Y = 490 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P1Dark +Tex = SongDuetSinger + +[SongRouletteText3PlayersDuetSingerP1] +X = 112 +Y = 495 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongRouletteStatic3PlayersDuetSingerP2] +X = 35 +Y = 520 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P2Dark +Tex = SongDuetSinger3 +Reflection = 1 +ReflectionSpacing = 1 + +[SongRouletteText3PlayersDuetSingerP2] +X = 112 +Y = 525 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongRouletteStatic3PlayersDuetSingerP3] +X = 35 +Y = 550 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P3Dark +Tex = SongDuetSinger2 +Reflection = 1 +ReflectionSpacing = 1 + +[SongRouletteText3PlayersDuetSingerP3] +X = 112 +Y = 555 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongRouletteStatic4PlayersDuetSingerP3] +X = 50 +Y = 520 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P3Dark +Tex = SongDuetSinger + +[SongRouletteStatic4PlayersDuetSingerP4] +X = 50 +Y = 550 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P4Dark +Tex = SongDuetSinger2 + +[SongRouletteStatic6PlayersDuetSingerP4] +X = 50 +Y = 490 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P4Dark +Tex = SongDuetSinger + +[SongRouletteStatic6PlayersDuetSingerP5] +X = 50 +Y = 520 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P5Dark +Tex = SongDuetSinger3 + +[SongRouletteStatic6PlayersDuetSingerP6] +X = 50 +Y = 550 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P6Dark +Tex = SongDuetSinger2 + + +##################### + +[SongCarouselStatic2PlayersDuetSingerP1] +X = 55 +Y = 500 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P1Dark +Tex = SongDuetSinger + +[SongCarouselText2PlayersDuetSingerP1] +X = 132 +Y = 505 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongCarouselStatic2PlayersDuetSingerP2] +X = 55 +Y = 530 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P2Dark +Tex = SongDuetSinger2 +Reflection = 1 +ReflectionSpacing = 1 + +[SongCarouselText2PlayersDuetSingerP2] +X = 132 +Y = 535 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongCarouselStatic3PlayersDuetSingerP1] +X = 55 +Y = 500 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P1Dark +Tex = SongDuetSinger + +[SongCarouselText3PlayersDuetSingerP1] +X = 132 +Y = 505 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongCarouselStatic3PlayersDuetSingerP2] +X = 55 +Y = 530 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P2Dark +Tex = SongDuetSinger3 +Reflection = 1 +ReflectionSpacing = 1 + +[SongCarouselText3PlayersDuetSingerP2] +X = 132 +Y = 535 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongCarouselStatic3PlayersDuetSingerP3] +X = 55 +Y = 560 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P3Dark +Tex = SongDuetSinger2 +Reflection = 1 +ReflectionSpacing = 1 + +[SongCarouselText3PlayersDuetSingerP3] +X = 132 +Y = 565 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongCarouselStatic4PlayersDuetSingerP3] +X = 65 +Y = 500 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P3Dark +Tex = SongDuetSinger + +[SongCarouselStatic4PlayersDuetSingerP4] +X = 65 +Y = 530 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P4Dark +Tex = SongDuetSinger2 + +[SongCarouselStatic6PlayersDuetSingerP4] +X = 65 +Y = 500 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P4Dark +Tex = SongDuetSinger + +[SongCarouselStatic6PlayersDuetSingerP5] +X = 65 +Y = 530 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P5Dark +Tex = SongDuetSinger3 + +[SongCarouselStatic6PlayersDuetSingerP6] +X = 65 +Y = 560 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P6Dark +Tex = SongDuetSinger2 + +################################## + +[SongSlotMachineStatic2PlayersDuetSingerP1] +X = 295 +Y = 435 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P1Dark +Tex = SongDuetSinger + +[SongSlotMachineText2PlayersDuetSingerP1] +X = 372 +Y = 440 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongSlotMachineStatic2PlayersDuetSingerP2] +X = 295 +Y = 465 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P2Dark +Tex = SongDuetSinger2 +Reflection = 1 +ReflectionSpacing = 1 + +[SongSlotMachineText2PlayersDuetSingerP2] +X = 372 +Y = 470 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongSlotMachineStatic3PlayersDuetSingerP1] +X = 295 +Y = 425 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P1Dark +Tex = SongDuetSinger + +[SongSlotMachineText3PlayersDuetSingerP1] +X = 372 +Y = 430 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongSlotMachineStatic3PlayersDuetSingerP2] +X = 295 +Y = 455 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P2Dark +Tex = SongDuetSinger3 +Reflection = 1 +ReflectionSpacing = 1 + +[SongSlotMachineText3PlayersDuetSingerP2] +X = 372 +Y = 460 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongSlotMachineStatic3PlayersDuetSingerP3] +X = 295 +Y = 485 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P3Dark +Tex = SongDuetSinger2 +Reflection = 1 +ReflectionSpacing = 1 + +[SongSlotMachineText3PlayersDuetSingerP3] +X = 372 +Y = 490 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongSlotMachineStatic4PlayersDuetSingerP3] +X = 305 +Y = 435 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P3Dark +Tex = SongDuetSinger + +[SongSlotMachineStatic4PlayersDuetSingerP4] +X = 305 +Y = 465 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P4Dark +Tex = SongDuetSinger2 + +[SongSlotMachineStatic6PlayersDuetSingerP4] +X = 305 +Y = 425 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P4Dark +Tex = SongDuetSinger + +[SongSlotMachineStatic6PlayersDuetSingerP5] +X = 305 +Y = 455 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P5Dark +Tex = SongDuetSinger3 + +[SongSlotMachineStatic6PlayersDuetSingerP6] +X = 305 +Y = 485 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P6Dark +Tex = SongDuetSinger2 + + +############################# + +[SongSlideStatic2PlayersDuetSingerP1] +X = 55 +Y = 500 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P1Dark +Tex = SongDuetSinger + +[SongSlideText2PlayersDuetSingerP1] +X = 132 +Y = 505 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongSlideStatic2PlayersDuetSingerP2] +X = 55 +Y = 530 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P2Dark +Tex = SongDuetSinger2 +Reflection = 1 +ReflectionSpacing = 1 + +[SongSlideText2PlayersDuetSingerP2] +X = 132 +Y = 535 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongSlideStatic3PlayersDuetSingerP1] +X = 55 +Y = 500 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P1Dark +Tex = SongDuetSinger + +[SongSlideText3PlayersDuetSingerP1] +X = 132 +Y = 505 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongSlideStatic3PlayersDuetSingerP2] +X = 55 +Y = 530 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P2Dark +Tex = SongDuetSinger3 +Reflection = 1 +ReflectionSpacing = 1 + +[SongSlideText3PlayersDuetSingerP2] +X = 132 +Y = 535 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongSlideStatic3PlayersDuetSingerP3] +X = 55 +Y = 560 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P3Dark +Tex = SongDuetSinger2 +Reflection = 1 +ReflectionSpacing = 1 + +[SongSlideText3PlayersDuetSingerP3] +X = 132 +Y = 565 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongSlideStatic4PlayersDuetSingerP3] +X = 65 +Y = 500 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P3Dark +Tex = SongDuetSinger + +[SongSlideStatic4PlayersDuetSingerP4] +X = 65 +Y = 530 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P4Dark +Tex = SongDuetSinger2 + +[SongSlideStatic6PlayersDuetSingerP4] +X = 65 +Y = 500 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P4Dark +Tex = SongDuetSinger + +[SongSlideStatic6PlayersDuetSingerP5] +X = 65 +Y = 530 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P5Dark +Tex = SongDuetSinger3 + +[SongSlideStatic6PlayersDuetSingerP6] +X = 65 +Y = 560 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P6Dark +Tex = SongDuetSinger2 + + +############################# + +[SongListStatic2PlayersDuetSingerP1] +X = 555 +Y = 115 +W = 194 +H = 30 +Z = 0.95 +Type = Transparent +Color = P1Dark +Tex = SongDuetSinger + +[SongListText2PlayersDuetSingerP1] +X = 660 +Y = 120 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongListStatic2PlayersDuetSingerP2] +X = 555 +Y = 145 +W = 194 +H = 30 +Z = 0.95 +Type = Transparent +Color = P2Dark +Tex = SongDuetSinger2 +Reflection = 1 +ReflectionSpacing = 1 + +[SongListText2PlayersDuetSingerP2] +X = 660 +Y = 150 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongListStatic3PlayersDuetSingerP1] +X = 555 +Y = 110 +W = 194 +H = 30 +Z = 0.95 +Type = Transparent +Color = P1Dark +Tex = SongDuetSinger + +[SongListText3PlayersDuetSingerP1] +X = 660 +Y = 115 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongListStatic3PlayersDuetSingerP2] +X = 555 +Y = 140 +W = 194 +H = 30 +Z = 0.95 +Type = Transparent +Color = P2Dark +Tex = SongDuetSinger3 +Reflection = 1 +ReflectionSpacing = 1 + +[SongListText3PlayersDuetSingerP2] +X = 660 +Y = 145 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongListStatic3PlayersDuetSingerP3] +X = 555 +Y = 170 +W = 194 +H = 30 +Z = 0.95 +Type = Transparent +Color = P3Dark +Tex = SongDuetSinger2 +Reflection = 1 +ReflectionSpacing = 1 + +[SongListText3PlayersDuetSingerP3] +X = 660 +Y = 175 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongListStatic4PlayersDuetSingerP3] +X = 567 +Y = 115 +W = 194 +H = 30 +Z = 0.95 +Type = Transparent +Color = P3Dark +Tex = SongDuetSinger + +[SongListStatic4PlayersDuetSingerP4] +X = 567 +Y = 145 +W = 194 +H = 30 +Z = 0.95 +Type = Transparent +Color = P4Dark +Tex = SongDuetSinger2 + +[SongListStatic6PlayersDuetSingerP4] +X = 567 +Y = 110 +W = 200 +H = 30 +Z = 0.95 +Type = Transparent +Color = P4Dark +Tex = SongDuetSinger + +[SongListStatic6PlayersDuetSingerP5] +X = 567 +Y = 140 +W = 200 +H = 30 +Z = 0.95 +Type = Transparent +Color = P5Dark +Tex = SongDuetSinger3 + +[SongListStatic6PlayersDuetSingerP6] +X = 567 +Y = 170 +W = 200 +H = 30 +Z = 0.95 +Type = Transparent +Color = P6Dark +Tex = SongDuetSinger2 + +############################# + +[SongChessboardStatic2PlayersDuetSingerP1] +X = 30 +Y = 475 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P1Dark +Tex = SongDuetSinger + +[SongChessboardText2PlayersDuetSingerP1] +X = 107 +Y = 480 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongChessboardStatic2PlayersDuetSingerP2] +X = 30 +Y = 505 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P2Dark +Tex = SongDuetSinger2 +Reflection = 1 +ReflectionSpacing = 1 + +[SongChessboardText2PlayersDuetSingerP2] +X = 107 +Y = 510 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongChessboardStatic3PlayersDuetSingerP1] +X = 30 +Y = 475 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P1Dark +Tex = SongDuetSinger + +[SongChessboardText3PlayersDuetSingerP1] +X = 107 +Y = 480 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongChessboardStatic3PlayersDuetSingerP2] +X = 30 +Y = 505 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P2Dark +Tex = SongDuetSinger3 +Reflection = 1 +ReflectionSpacing = 1 + +[SongChessboardText3PlayersDuetSingerP2] +X = 107 +Y = 510 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongChessboardStatic3PlayersDuetSingerP3] +X = 30 +Y = 535 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P3Dark +Tex = SongDuetSinger2 +Reflection = 1 +ReflectionSpacing = 1 + +[SongChessboardText3PlayersDuetSingerP3] +X = 107 +Y = 540 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongChessboardStatic4PlayersDuetSingerP3] +X = 40 +Y = 475 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P3Dark +Tex = SongDuetSinger + +[SongChessboardStatic4PlayersDuetSingerP4] +X = 40 +Y = 505 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P4Dark +Tex = SongDuetSinger2 + +[SongChessboardStatic6PlayersDuetSingerP4] +X = 40 +Y = 475 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P4Dark +Tex = SongDuetSinger + +[SongChessboardStatic6PlayersDuetSingerP5] +X = 40 +Y = 505 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P5Dark +Tex = SongDuetSinger3 + +[SongChessboardStatic6PlayersDuetSingerP6] +X = 40 +Y = 535 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P6Dark +Tex = SongDuetSinger2 + +############################# + +[SongMosaicStatic2PlayersDuetSingerP1] +X = 565 +Y = 135 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P1Dark +Tex = SongDuetSinger + +[SongMosaicText2PlayersDuetSingerP1] +X = 642 +Y = 140 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongMosaicStatic2PlayersDuetSingerP2] +X = 565 +Y = 165 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P2Dark +Tex = SongDuetSinger2 +Reflection = 1 +ReflectionSpacing = 1 + +[SongMosaicText2PlayersDuetSingerP2] +X = 642 +Y = 170 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongMosaicStatic3PlayersDuetSingerP1] +X = 565 +Y = 120 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P1Dark +Tex = SongDuetSinger + +[SongMosaicText3PlayersDuetSingerP1] +X = 642 +Y = 125 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongMosaicStatic3PlayersDuetSingerP2] +X = 565 +Y = 150 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P2Dark +Tex = SongDuetSinger3 +Reflection = 1 +ReflectionSpacing = 1 + +[SongMosaicText3PlayersDuetSingerP2] +X = 642 +Y = 155 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongMosaicStatic3PlayersDuetSingerP3] +X = 565 +Y = 180 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P3Dark +Tex = SongDuetSinger2 +Reflection = 1 +ReflectionSpacing = 1 + +[SongMosaicText3PlayersDuetSingerP3] +X = 642 +Y = 185 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[SongMosaicStatic4PlayersDuetSingerP3] +X = 575 +Y = 135 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P3Dark +Tex = SongDuetSinger + +[SongMosaicStatic4PlayersDuetSingerP4] +X = 575 +Y = 165 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P4Dark +Tex = SongDuetSinger2 + +[SongMosaicStatic6PlayersDuetSingerP4] +X = 575 +Y = 120 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P4Dark +Tex = SongDuetSinger + +[SongMosaicStatic6PlayersDuetSingerP5] +X = 575 +Y = 150 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P5Dark +Tex = SongDuetSinger3 + +[SongMosaicStatic6PlayersDuetSingerP6] +X = 575 +Y = 180 +W = 154 +H = 30 +Z = 0.95 +Type = Transparent +Color = P6Dark +Tex = SongDuetSinger2 + +######################################################################################## +##### ##### +##### Roulette ##### +##### ##### +######################################################################################## + +[SongRoulette] + +[SongRouletteBackground] +Tex = SongBG + + + +[SongRouletteCover] +X = 300 +Y = 150 +W = 200 +H = 150 +Reflections = 1 + +[SongRouletteEqualizer] +Visible = 1 +Direction = 1 +Color = White +Alpha = 1 +X = 265 +Y = 476 +PieceW = 4 +PieceH = 4 +Space = 1 +Bands = 5 +Length = 15 +Reflection = 1 +ReflectionSpacing = 2 + +[SongRouletteMedleyIcon] +X = 335 +Y = 477 +W = 30 +H = 20 +Z = 0.952 +Color = White +Tex = icon_song_medley +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongRouletteCalculatedMedleyIcon] +X = 335 +Y = 477 +W = 30 +H = 20 +Z = 0.952 +Color = White +Tex = icon_song_calcmedley +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongRouletteVideoIcon] +X = 310 +Y = 475 +W = 18 +H = 24 +Z = 0.952 +Color = White +Tex = icon_song_video +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongRouletteDuetIcon] +X = 335 +Y = 475 +W = 20 +H = 24 +Z = 0.952 +Color = White +Tex = icon_song_duet +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongRouletteRapIcon] +X = 420 +Y = 475 +W = 18 +H = 24 +Z = 0.952 +Color = White +Tex = icon_song_rap +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongRouletteStatic1] +X = 278 +Y = 100 +W = 244 +H = 200 +Z = 0.95 +Color = ColorLight +Tex = SongSelection1 +Type = Colorized + +[SongRouletteStatic2] +X = 300 +Y = 300 +W = 200 +H = 210 +Z = 0.95 +Color = ColorLight +Tex = SongSelection2 +Type = Colorized +Reflection = 0 +ReflectionSpacing = 2 + +[SongRouletteTextArtist] +X = 400 +Y = 318 +W = 190 +Color = White +Font = 1 +Size = 24 +Align = 1 +Text = + +[SongRouletteTextTitle] +X = 400 +Y = 384 +W = 190 +Color = White +Font = 0 +Size = 24 +Align = 1 +Text = + +[SongRouletteTextNumber] +X = 495 +Y = 480 +Z = 0.95 +Color = White +Size = 16 +Align = 2 +Reflection = 0 +ReflectionSpacing = 21 + +[SongRouletteTextYear] +X = 400 +Y = 477 +Z = 0.95 +Color = White +Size = 20 +Align = 1 + +########## LEGEND ROULETTE ######### + +[SongRouletteStaticNonParty1] +X = 527 +Y = 405 +Z = 0.95 +W = 163 +H = 107 +Z = 0 +Tex = BGFade +Color = White +Type = Transparent + +[SongRouletteTextNonParty1] +X = 606 +Y = 410 +Z = 0.952 +Color = White +Font = 1 +Size = 14 +Align = 1 +Text = SING_SONG_SELECTION_LEGEND_TITLE + +[SongRouletteStaticNonParty2] +X = 541 +Y = 430 +Z = 1 +W = 15 +H = 20 +Tex = icon_song_video +Color = White +Type = Transparent + + +[SongRouletteTextNonParty2] +X = 570 +Y = 432 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_VIDEO + +[SongRouletteStaticNonParty3] +X = 540 +Y = 450 +Z = 0.952 +W = 26 +H = 16 +Tex = icon_song_medley +Color = White +Type = Transparent + +[SongRouletteTextNonParty3] +X = 570 +Y = 452 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_MEDLEY + +[SongRouletteStaticNonParty4] +X = 540 +Y = 470 +Z = 0.952 +W = 26 +H = 16 +Tex = icon_song_calcmedley +Color = White +Type = Transparent + +[SongRouletteTextNonParty4] +X = 570 +Y = 472 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_MEDLEYC + + +[SongRouletteStaticNonParty5] +X = 540 +Y = 490 +Z = 0.952 +W = 13 +H = 17 +Tex = icon_song_duet +Color = White +Type = Transparent + +[SongRouletteTextNonParty5] +X = 570 +Y = 492 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_DUET + + +#[SongRouletteTextScore] +#X = 130 +#Y = 450 +#Color = ColorLight +#Font = 0 +#Size = 24 +#Align = 0 + +[SongRouletteTextMaxScore] +X = 30 +Y = 500 +Color = White +Font = 0 +Size = 22 +Align = 0 +Text =SONG_SCORE_MAX + +[SongRouletteTextMediaScore] +X = 30 +Y = 540 +Color = White +Font = 0 +Size = 22 +Align = 0 +Text =SONG_SCORE_MEDIA + +[SongRouletteTextMaxScore2] +X = 170 +Y = 500 +Color = White +Font = 0 +Size = 22 +Align = 2 + +[SongRouletteTextMediaScore2] +X = 170 +Y = 540 +Color = White +Font = 0 +Size = 22 +Align = 2 + +[SongRouletteTextScoreUser] +X = 170 +Y = 518 +Color = ColorLight +Font = 0 +Size = 20 +Align = 2 + +[SongRouletteTextMaxScoreLocal] +X = 180 +Y = 500 +Color = White +Font = 0 +Size = 22 +Align = 0 + +[SongRouletteTextMediaScoreLocal] +X = 180 +Y = 540 +Color = White +Font = 0 +Size = 22 +Align = 0 + +[SongRouletteTextScoreUserLocal] +X = 180 +Y = 518 +Color = ColorLight +Font = 0 +Size = 20 +Align = 0 + +#Variable statics and texts for song-screen in sing- and partymode +# There can be an unlimited Number of Statics and Texts, As long +# as the numbers are in order. +# Statics that are shown in PartyMode Only are Named_ +# SongStaticParty[No] +# Texts that are shown in PartyMode Only are Named_ +# SongTextParty[No] +# Statics that are shown in Normal Mode Only are Named_ +# SongStaticNonParty[No] +# Texts that are shown in Normal Mode Only are Named_ +# SongTextNonParty[No] +#Here are the ones for singmode + +[SongRouletteTextNonParty6] +X = 30 +Y = 6 +Color = White +Font = 0 +Size = 60 +Text = SING_SONG_SELECTION +Align = 0 + +# Menu opens with [M] +[SongRouletteStaticNonParty6] +X = 255 +Y = 560 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonM +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongRouletteTextNonParty7] +X = 287 +Y = 563 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SING_SONG_SELECTION_MENU +Reflection = 0 +ReflectionSpacing = 13 + +# The so famous search, shown with [J] +[SongRouletteStaticNonParty7] +X = 375 +Y = 560 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonJ +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongRouletteTextNonParty8] +X = 407 +Y = 563 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SONG_JUMPTO_DESC +Reflection = 0 +ReflectionSpacing = 13 + +# [P]laylist +[SongRouletteStaticNonParty8] +X = 580 +Y = 560 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonP +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongRouletteTextNonParty9] +X = 612 +Y = 563 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SING_SONG_SELECTION_PLAYLIST +Reflection = 0 +ReflectionSpacing = 13 + +#and these are the ones for partymode + +# NAVBAR for party +# enter a number +[SongRouletteStaticParty1] +X = 200 +Y = 545 +Z = 0.952 +W = 26 +H = 30 +Tex = Button13 +Color = White +Type = Transparent + +[SongRouletteTextParty1] +X = 230 +Y = 547 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SONG_MENU_NAME_PARTY_JOKER +Reflection = 0 +ReflectionSpacing = 13 + +# menu +[SongRouletteStaticParty2] +X = 390 +Y = 545 +Z = 0.952 +W = 26 +H = 30 +Tex = ButtonM +Color = White +Type = Transparent + +[SongRouletteTextParty2] +X = 420 +Y = 547 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = PARTY_SONG_MENU +Reflection = 0 +ReflectionSpacing = 13 + +#Texts for Party Mode +[SongRouletteTextParty3] +X = 70 +Y = 5 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE + +[SongRouletteTextParty3] +X = 238 +Y = 548 +Color = White +Font = 0 +Size = 21 +Align = 2 +Text = PARTY_SONG_WHEREAMI +#variable statics end + +# Jokers, 5 for each team, only shown in party Mode +[SongRouletteStaticTeam1Joker1] +Tex = Joker +X = 505 +Y = 400 +W = 35 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongRouletteStaticTeam1Joker2] +Tex = Joker +X = 555 +Y = 400 +W = 35 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongRouletteStaticTeam1Joker3] +Tex = Joker +X = 605 +Y = 400 +W = 35 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongRouletteStaticTeam1Joker4] +Tex = Joker +X = 655 +Y = 400 +W = 35 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongRouletteStaticTeam1Joker5] +Tex = Joker +X = 705 +Y = 400 +W = 35 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongRouletteStaticTeam2Joker1] +Tex = Joker +X = 505 +Y = 450 +W = 35 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongRouletteStaticTeam2Joker2] +Tex = Joker +X = 555 +Y = 450 +W = 35 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongRouletteStaticTeam2Joker3] +Tex = Joker +X = 605 +Y = 450 +W = 35 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongRouletteStaticTeam2Joker4] +Tex = Joker +X = 655 +Y = 450 +W = 35 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongRouletteStaticTeam2Joker5] +Tex = Joker +X = 705 +Y = 450 +W = 35 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongRouletteStaticTeam3Joker1] +Tex = Joker +X = 505 +Y = 500 +W = 35 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongRouletteStaticTeam3Joker2] +Tex = Joker +X = 555 +Y = 500 +W = 35 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongRouletteStaticTeam3Joker3] +Tex = Joker +X = 605 +Y = 500 +W = 35 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongRouletteStaticTeam3Joker4] +Tex = Joker +X = 655 +Y = 500 +W = 35 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongRouletteStaticTeam3Joker5] +Tex = Joker +X = 705 +Y = 500 +W = 35 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongRouletteTextPartyTime] +X = 750 +Y = 450 +Color = White +DColor = Red +Font = 1 +Size = 70 +Align = 2 + +[SongRouletteInfoMessageBG] +Tex = SongMessage +X = 250 +Y = 90 +W = 300 +H = 25 +Z = 0.98 +Color = ColorDark +Type = Transparent + +[SongRouletteInfoMessageText] +X = 400 +Y = 94 +Color = White +Font = 1 +Size = 20 +Align = 1 + +############################# +## ## +## Medley Playlist ## +## ## +############################# + +[SongRouletteTextMedleyMax] +N = 3 + +[SongRouletteTextMedleyNumber1] +X=27 +Y=375 +Color=White +Font=1 +Size=20 +Align=1 + +[SongRouletteTextMedleyArtist1] +X=50 +Y=366 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongRouletteTextMedleyTitle1] +X=50 +Y=383 +Color=White +Font=0 +Size=20 +Align=0 + +[SongRouletteTextMedleyNumber2] +X=27 +Y=420 +Color=White +Font=1 +Size=20 +Align=1 + +[SongRouletteTextMedleyArtist2] +X=50 +Y=411 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongRouletteTextMedleyTitle2] +X=50 +Y=428 +Color=White +Font=0 +Size=20 +Align=0 + +[SongRouletteTextMedleyNumber3] +X=27 +Y=465 +Color=White +Font=1 +Size=20 +Align=1 + +[SongRouletteTextMedleyArtist3] +X=50 +Y=454 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongRouletteTextMedleyTitle3] +X=50 +Y=471 +Color=White +Font=0 +Size=20 +Align=0 + + + +[SongRouletteStaticMedley1] +Tex = PlayerNumberBox +X = 15 +Y = 370 +W = 25 +H = 30 +Color = ColorDark +Type = Colorized + +[SongRouletteStaticMedley2] +Tex = PlayerNumberBox +X = 15 +Y = 415 +W = 25 +H = 30 +Color = ColorDark +Type = Colorized + +[SongRouletteStaticMedley3] +Tex = PlayerNumberBox +X = 15 +Y = 460 +W = 25 +H = 30 +Color = ColorDark +Type = Colorized + + + +######################################################################################## +##### ##### +##### Chessboard ##### +##### ##### +######################################################################################## + +[SongChessboard] + +[SongChessboardBackground] +Tex = SongBG + +[SongChessboardStatic1] +X = 750 +Y = 189 +W = 35 +H = 46 +Z = 0.4 +Tex = SongSelection1up +Color = ColorLight +Type = Colorized +Reflection = 0 +ReflectionSpacing = 2 + +[SongChessboardStatic2] +X = 750 +Y = 333 +W = 35 +H = 46 +Z = 0.951 +Tex = SongSelection1dn +Color = ColorLight +Type = Colorized +Reflection = 0 +ReflectionSpacing = 2 + +[SongChessboardCover] +X = 240 +Y = 100 +W = 80 +H = 90 +SelectX = 10 +SelectY = 100 +SelectW = 195 +SelectH = 170 +ZoomThumbW = 100 +ZoomThumbH = 120 +ZoomThumbStyle = 0 +Rows = 4 +Cols = 6 +Padding = 2 +Reflections = 0 +Tex = PlayerNumberBox + +[SongChessboardEqualizer] +Visible = 0 +Direction = 1 +Color = White +Alpha = 1 +X = 745 +Y = 570 +PieceW = 4 +PieceH = 4 +Space = 1 +Bands = 8 +Length = 30 +Reflection = 1 +ReflectionSpacing = 2 + +[SongChessboardMedleyIcon] +X = 40 +Y = 433 +W = 28 +H = 18 +Z = 0.95 +Color = White +Tex = icon_song_medley +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongChessboardCalculatedMedleyIcon] +X = 40 +Y = 433 +W = 28 +H = 18 +Z = 0.95 +Color = White +Tex = icon_song_calcmedley +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongChessboardVideoIcon] +X = 18 +Y = 430 +W = 16 +H = 23 +Z = 0.95 +Color = White +Tex = icon_song_video +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongChessboardDuetIcon] +X = 40 +Y = 430 +W = 18 +H = 22 +Z = 0.95 +Color = White +Tex = icon_song_duet +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongChessboardRapIcon] +X = 123 +Y = 430 +W = 18 +H = 24 +Z = 0.95 +Color = White +Tex = icon_song_rap +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongChessboardStatic3] +X = 10 +Y = 270 +W = 195 +H = 195 +Z = 0.10 +Color = ColorLight +alpha = 0.45 +Tex = SongSelection2 +Type = Colorized +Reflection = 0 +ReflectionSpacing = 2 + +[SongChessboardTextArtist] +X = 105 +Y = 292 +W = 180 +Color = White +Font = 1 +Size = 21 +Align = 1 +Text = + +[SongChessboardTextTitle] +X = 105 +Y = 355 +W = 180 +Color = White +Font = 0 +Size = 21 +Align = 1 +Text = + +[SongChessboardTextNumber] +X = 195 +Y = 435 +Z = 0.95 +Color = White +Size = 15 +Align = 2 +Reflection = 0 +ReflectionSpacing = 21 + +[SongChessboardTextYear] +X = 105 +Y = 431 +Z = 0.95 +Color = White +Size = 18 +Align = 1 + + +################# +#### Legend #### +################# + +[SongChessboardStaticNonParty1] +X = 567 +Y = 485 +W = 163 +H = 107 +Z = 0 +Tex = BGFade +Color = White +Type = Transparent + +[SongChessboardTextNonParty1] +X = 646 +Y = 490 +Z = 0.952 +Color = White +Font = 1 +Size = 14 +Align = 1 +Text = SING_SONG_SELECTION_LEGEND_TITLE + +[SongChessboardStaticNonParty2] +X = 581 +Y = 510 +W = 15 +H = 20 +Tex = icon_song_video +Color = White +Type = Transparent + + +[SongChessboardTextNonParty2] +X = 610 +Y = 512 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_VIDEO + +[SongChessboardStaticNonParty3] +X = 580 +Y = 530 +W = 26 +H = 16 +Tex = icon_song_medley +Color = White +Type = Transparent + +[SongChessboardTextNonParty3] +X = 610 +Y = 532 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_MEDLEY + +[SongChessboardStaticNonParty4] +X = 580 +Y = 550 +W = 26 +H = 16 +Tex = icon_song_calcmedley +Color = White +Type = Transparent + +[SongChessboardTextNonParty4] +X = 610 +Y = 552 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_MEDLEYC + + +[SongChessboardStaticNonParty5] +X = 580 +Y = 570 +W = 13 +H = 17 +Tex = icon_song_duet +Color = White +Type = Transparent + +[SongChessboardTextNonParty5] +X = 610 +Y = 572 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_DUET + +[SongChessboardTextScore] +X = 30 +Y = 410 +Color = White +Font = 1 +Size = 24 +Align = 0 + +[SongChessboardTextMaxScore] +X = 15 +Y = 488 +Color = White +Font = 0 +Size = 20 +Align = 0 +Text =SONG_SCORE_MAX + +[SongChessboardTextMediaScore] +X = 15 +Y = 528 +Color = White +Font = 0 +Size = 20 +Align = 0 +Text =SONG_SCORE_MEDIA + +[SongChessboardTextMaxScore2] +X = 110 +Y = 488 +Color = White +Font = 0 +Size = 20 +Align = 2 + +[SongChessboardTextMediaScore2] +X = 110 +Y = 528 +Color = White +Font = 0 +Size = 20 +Align = 2 + +[SongChessboardTextScoreUser] +X = 70 +Y = 506 +Color = ColorLight +Font = 0 +Size = 20 +Align = 2 + +[SongChessboardTextMaxScoreLocal] +X = 85 +Y = 488 +Color = White +Font = 0 +Size = 20 +Align = 0 + +[SongChessboardTextMediaScoreLocal] +X = 85 +Y = 528 +Color = White +Font = 0 +Size = 20 +Align = 0 + +[SongChessboardTextScoreUserLocal] +X = 85 +Y = 506 +Color = ColorLight +Font = 0 +Size = 20 +Align = 0 + +#Variable statics and texts for song-screen in sing- and partymode +# There can be an unlimited Number of Statics and Texts, As long +# as the numbers are in order. +# Statics that are shown in PartyMode Only are Named_ +# SongStaticParty[No] +# Texts that are shown in PartyMode Only are Named_ +# SongTextParty[No] +# Statics that are shown in Normal Mode Only are Named_ +# SongStaticNonParty[No] +# Texts that are shown in Normal Mode Only are Named_ +# SongTextNonParty[No] +#Here are the ones for singmode + +[SongChessboardTextNonParty6] +X = 30 +Y = 15 +Color = White +Font = 0 +Size = 60 +Text = SING_SONG_SELECTION +Align = 0 + + +# Menu opens with [M] +[SongChessboardStaticNonParty6] +X = 200 +Y = 560 +W = 28 +H = 30 +Z = 0.952 +Tex = ButtonM +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongChessboardTextNonParty7] +X = 237 +Y = 562 +Z = 0.952 +Color = White +Font = 0 +Size = 22 +Align = 0 +Text = SING_SONG_SELECTION_MENU +Reflection = 0 +ReflectionSpacing = 13 + +# The so famous search, shown with [J] +[SongChessboardStaticNonParty7] +X = 295 +Y = 560 +W = 28 +H = 30 +Z = 0.952 +Tex = ButtonJ +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongChessboardTextNonParty8] +X = 331 +Y = 562 +Z = 0.952 +Color = White +Font = 0 +Size = 22 +Align = 0 +Text = SONG_JUMPTO_DESC +Reflection = 0 +ReflectionSpacing = 13 + +# [P]laylist +[SongChessboardStaticNonParty8] +X = 465 +Y = 560 +W = 28 +H = 30 +Z = 0.952 +Tex = ButtonP +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongChessboardTextNonParty9] +X = 501 +Y = 562 +Z = 0.952 +Color = White +Font = 0 +Size = 22 +Align = 0 +Text = SING_SONG_SELECTION_PLAYLIST +Reflection = 0 +ReflectionSpacing = 13 + +#and these are the ones for partymode +# NAVBAR for party +# enter a number +[SongChessboardStaticParty1] +X = 232 +Y = 561 +Z = 0.952 +W = 26 +H = 28 +Tex = Button13 +Color = White +Type = Transparent + +[SongChessboardTextParty1] +X = 262 +Y = 562 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SONG_MENU_NAME_PARTY_JOKER +Reflection = 0 +ReflectionSpacing = 13 + +# menu +[SongChessboardStaticParty2] +X = 410 +Y = 561 +Z = 0.952 +W = 26 +H = 28 +Tex = ButtonM +Color = White +Type = Transparent + +[SongChessboardTextParty2] +X = 440 +Y = 562 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = PARTY_SONG_MENU +Reflection = 0 +ReflectionSpacing = 13 + +#Texts for Party Mode +[SongChessboardTextParty3] +X = 30 +Y = 15 +ColR = 0.7 +ColG = 0.7 +ColB = 0.7 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE + +# Jokers, 5 for each team, only shown in party Mode +[SongChessboardStaticTeam1Joker1] +Tex = Joker +X = 565 +Y = 489 +W = 25 +H = 28 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongChessboardStaticTeam1Joker2] +Tex = Joker +X = 600 +Y = 489 +W = 25 +H = 28 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongChessboardStaticTeam1Joker3] +Tex = Joker +X = 635 +Y = 489 +W = 25 +H = 28 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongChessboardStaticTeam1Joker4] +Tex = Joker +X = 670 +Y = 489 +W = 25 +H = 28 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongChessboardStaticTeam1Joker5] +Tex = Joker +X = 705 +Y = 489 +W = 25 +H = 28 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongChessboardStaticTeam2Joker1] +Tex = Joker +X = 565 +Y = 526 +W = 25 +H = 28 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongChessboardStaticTeam2Joker2] +Tex = Joker +X = 600 +Y = 526 +W = 25 +H = 28 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongChessboardStaticTeam2Joker3] +Tex = Joker +X = 635 +Y = 526 +W = 25 +H = 28 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongChessboardStaticTeam2Joker4] +Tex = Joker +X = 670 +Y = 526 +W = 25 +H = 28 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongChessboardStaticTeam2Joker5] +Tex = Joker +X = 705 +Y = 526 +W = 25 +H = 28 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongChessboardStaticTeam3Joker1] +Tex = Joker +X = 565 +Y = 561 +W = 25 +H = 28 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongChessboardStaticTeam3Joker2] +Tex = Joker +X = 600 +Y = 561 +W = 25 +H = 28 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongChessboardStaticTeam3Joker3] +Tex = Joker +X = 635 +Y = 561 +W = 25 +H = 28 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongChessboardStaticTeam3Joker4] +Tex = Joker +X = 670 +Y = 561 +W = 25 +H = 28 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongChessboardStaticTeam3Joker5] +Tex = Joker +X = 705 +Y = 561 +W = 25 +H = 28 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongChessboardTextPartyTime] +X = 750 +Y = 450 +Color = White +DColor = Red +Font = 1 +Size = 70 +Align = 2 + +[SongChessboardInfoMessageBG] +Tex = SongMessage +X = 250 +Y = 90 +W = 300 +H = 25 +Z = 0.98 +Color = ColorDark +Type = Transparent + +[SongChessboardInfoMessageText] +X = 400 +Y = 94 +Color = White +Font = 1 +Size = 20 +Align = 1 + +############################# +## ## +## Medley Playlist ## +## ## +############################# + +[SongChessboardTextMedleyMax] +N = 2 + +[SongChessboardTextMedleyNumber1] +X=215 +Y=485 +Color=White +Font=1 +Size=20 +Align=1 + +[SongChessboardTextMedleyArtist1] +X=237 +Y=480 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongChessboardTextMedleyTitle1] +X=237 +Y=495 +Color=White +Font=0 +Size=20 +Align=0 + +[SongChessboardTextMedleyNumber2] +X=215 +Y=525 +Color=White +Font=1 +Size=20 +Align=1 + +[SongChessboardTextMedleyArtist2] +X=237 +Y=515 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongChessboardTextMedleyTitle2] +X=237 +Y=530 +Color=White +Font=0 +Size=20 +Align=0 + +[SongChessboardStaticMedley1] +Tex = PlayerNumberBox +X = 203 +Y = 480 +W = 25 +H = 30 +Color = ColorDark +Type = Colorized + +[SongChessboardStaticMedley2] +Tex = PlayerNumberBox +X = 203 +Y = 520 +W = 25 +H = 30 +Color = ColorDark +Type = Colorized + + +######################################################################################## +##### ##### +##### Carousel ##### +##### ##### +######################################################################################## + +[SongCarousel] + +[SongCarouselBackground] +Tex = SongBG + + +[SongCarouselCover] +X = 300 +Y = 120 +W = 200 +H = 200 +Padding = 60 +Reflections = 1 + +[SongCarouselEqualizer] +Visible = 1 +Direction = 1 +Color = White +Alpha = 1 +X = 265 +Y = 500 +PieceW = 4 +PieceH = 4 +Space = 1 +Bands = 5 +Length = 15 +Reflection = 1 +ReflectionSpacing = 2 + +[SongCarouselMedleyIcon] +X = 335 +Y = 477 +W = 30 +H = 20 +Z = 0.952 +Color = White +Tex = icon_song_medley +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongCarouselCalculatedMedleyIcon] +X = 335 +Y = 477 +W = 30 +H = 20 +Z = 0.952 +Color = White +Tex = icon_song_calcmedley +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongCarouselVideoIcon] +X = 310 +Y = 475 +W = 18 +H = 24 +Z = 0.952 +Color = White +Tex = icon_song_video +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongCarouselDuetIcon] +X = 335 +Y = 475 +W = 20 +H = 24 +Z = 0.952 +Color = White +Tex = icon_song_duet +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongCarouselRapIcon] +X = 420 +Y = 475 +W = 18 +H = 24 +Z = 0.952 +Color = White +Tex = icon_song_rap +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongCarouselStatic1] +X = 278 +Y = 120 +W = 244 +H = 200 +Z = 0.95 +Color = ColorLight +Tex = SongSelection1 +Type = Colorized + +[SongCarouselStatic2] +X = 300 +Y = 320 +W = 200 +H = 190 +Z = 0.95 +Color = ColorLight +Tex = SongSelection2 +Type = Colorized +Reflection = 0 +ReflectionSpacing = 2 + +[SongCarouselTextArtist] +X = 400 +Y = 328 +W = 190 +Color = White +Font = 1 +Size = 24 +Align = 1 +Text = + +[SongCarouselTextTitle] +X = 400 +Y = 394 +W = 190 +Color = White +Font = 0 +Size = 24 +Align = 1 +Text = + +[SongCarouselTextNumber] +X = 495 +Y = 480 +Z = 0.95 +Color = White +Size = 16 +Align = 2 +Reflection = 0 +ReflectionSpacing = 21 + +[SongCarouselTextYear] +X = 400 +Y = 477 +Z = 0.95 +Color = White +Size = 20 +Align = 1 + +########## LEGEND CAROUSEL ######### + +[SongCarouselStaticNonParty3] +X = 582 +Y = 405 +Z = 0.95 +W = 163 +H = 107 +Z = 0 +Tex = BGFade +Color = White +Type = Transparent + +[SongCarouselTextNonParty5] +X = 661 +Y = 410 +Z = 0.952 +Color = White +Font = 1 +Size = 14 +Align = 1 +Text = SING_SONG_SELECTION_LEGEND_TITLE + +[SongCarouselStaticNonParty4] +X = 596 +Y = 430 +Z = 0.952 +W = 15 +H = 20 +Tex = icon_song_video +Color = White +Type = Transparent + + +[SongCarouselTextNonParty6] +X = 625 +Y = 432 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_VIDEO + +[SongCarouselStaticNonParty5] +X = 595 +Y = 450 +Z = 0.952 +W = 26 +H = 16 +Tex = icon_song_medley +Color = White +Type = Transparent + +[SongCarouselTextNonParty7] +X = 625 +Y = 452 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_MEDLEY + +[SongCarouselStaticNonParty6] +X = 595 +Y = 470 +Z = 0.952 +W = 26 +H = 16 +Tex = icon_song_calcmedley +Color = White +Type = Transparent + +[SongCarouselTextNonParty8] +X = 625 +Y = 472 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_MEDLEYC + + +[SongCarouselStaticNonParty7] +X = 595 +Y = 490 +Z = 0.952 +W = 13 +H = 17 +Tex = icon_song_duet +Color = White +Type = Transparent + +[SongCarouselTextNonParty9] +X = 625 +Y = 492 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_DUET + +[SongCarouselTextMaxScore] +X = 30 +Y = 500 +Color = White +Font = 0 +Size = 22 +Align = 0 +Text =SONG_SCORE_MAX + +[SongCarouselTextMediaScore] +X = 30 +Y = 540 +Color = White +Font = 0 +Size = 22 +Align = 0 +Text =SONG_SCORE_MEDIA + +[SongCarouselTextMaxScore2] +X = 170 +Y = 500 +Color = White +Font = 0 +Size = 22 +Align = 2 + +[SongCarouselTextMediaScore2] +X = 170 +Y = 540 +Color = White +Font = 0 +Size = 22 +Align = 2 + +[SongCarouselTextScoreUser] +X = 170 +Y = 518 +Color = ColorLight +Font = 0 +Size = 20 +Align = 2 + +[SongCarouselTextMaxScoreLocal] +X = 180 +Y = 500 +Color = White +Font = 0 +Size = 22 +Align = 0 + +[SongCarouselTextMediaScoreLocal] +X = 180 +Y = 540 +Color = White +Font = 0 +Size = 22 +Align = 0 + +[SongCarouselTextScoreUserLocal] +X = 180 +Y = 518 +Color = ColorLight +Font = 0 +Size = 20 +Align = 0 + +#Variable statics and texts for song-screen in sing- and partymode +# There can be an unlimited Number of Statics and Texts, As long +# as the numbers are in order. +# Statics that are shown in PartyMode Only are Named_ +# SongStaticParty[No] +# Texts that are shown in PartyMode Only are Named_ +# SongTextParty[No] +# Statics that are shown in Normal Mode Only are Named_ +# SongStaticNonParty[No] +# Texts that are shown in Normal Mode Only are Named_ +# SongTextNonParty[No] +#Here are the ones for singmode + +[SongCarouselTextNonParty1] +X = 30 +Y = 6 +Color = White +Font = 0 +Size = 60 +Text = SING_SONG_SELECTION +Align = 0 + +# Menu opens with [M] +[SongCarouselStaticNonParty1] +X = 255 +Y = 560 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonM +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongCarouselTextNonParty2] +X = 287 +Y = 563 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SING_SONG_SELECTION_MENU +Reflection = 0 +ReflectionSpacing = 13 + +# The so famous search, shown with [J] +[SongCarouselStaticNonParty2] +X = 375 +Y = 560 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonJ +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongCarouselTextNonParty3] +X = 407 +Y = 563 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SONG_JUMPTO_DESC +Reflection = 0 +ReflectionSpacing = 13 + +# [P]laylist +[SongCarouselStaticNonParty8] +X = 580 +Y = 560 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonP +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongCarouselTextNonParty4] +X = 612 +Y = 563 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SING_SONG_SELECTION_PLAYLIST +Reflection = 0 +ReflectionSpacing = 13 + +#and these are the ones for partymode +# NAVBAR for party +# enter a number +[SongCarouselStaticParty1] +X = 245 +Y = 555 +Z = 0.952 +W = 25 +H = 28 +Tex = Button13 +Color = White +Type = Transparent + +[SongCarouselTextParty1] +X = 278 +Y = 555 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SONG_MENU_NAME_PARTY_JOKER +Reflection = 0 +ReflectionSpacing = 13 + +# menu +[SongCarouselStaticParty2] +X = 420 +Y = 555 +Z = 0.952 +W = 25 +H = 28 +Tex = ButtonM +Color = White +Type = Transparent + +[SongCarouselTextParty2] +X = 448 +Y = 555 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = PARTY_SONG_MENU +Reflection = 0 +ReflectionSpacing = 13 + +#Texts for Party Mode +[SongCarouselTextParty3] +X = 30 +Y = 30 +ColR = 0.7 +ColG = 0.7 +ColB = 0.7 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE + +# Jokers, 5 for each team, only shown in party Mode +[SongCarouselStaticTeam1Joker1] +Tex = Joker +X = 505 +Y = 400 +W = 35 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongCarouselStaticTeam1Joker2] +Tex = Joker +X = 555 +Y = 400 +W = 35 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongCarouselStaticTeam1Joker3] +Tex = Joker +X = 605 +Y = 400 +W = 35 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongCarouselStaticTeam1Joker4] +Tex = Joker +X = 655 +Y = 400 +W = 35 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongCarouselStaticTeam1Joker5] +Tex = Joker +X = 705 +Y = 400 +W = 35 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongCarouselStaticTeam2Joker1] +Tex = Joker +X = 505 +Y = 450 +W = 35 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongCarouselStaticTeam2Joker2] +Tex = Joker +X = 555 +Y = 450 +W = 35 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongCarouselStaticTeam2Joker3] +Tex = Joker +X = 605 +Y = 450 +W = 35 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongCarouselStaticTeam2Joker4] +Tex = Joker +X = 655 +Y = 450 +W = 35 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongCarouselStaticTeam2Joker5] +Tex = Joker +X = 705 +Y = 450 +W = 35 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongCarouselStaticTeam3Joker1] +Tex = Joker +X = 505 +Y = 500 +W = 35 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongCarouselStaticTeam3Joker2] +Tex = Joker +X = 555 +Y = 500 +W = 35 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongCarouselStaticTeam3Joker3] +Tex = Joker +X = 605 +Y = 500 +W = 35 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongCarouselStaticTeam3Joker4] +Tex = Joker +X = 655 +Y = 500 +W = 35 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongCarouselStaticTeam3Joker5] +Tex = Joker +X = 705 +Y = 500 +W = 35 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongCarouselTextPartyTime] +X = 750 +Y = 450 +Color = White +DColor = Red +Font = 1 +Size = 70 +Align = 2 + +[SongCarouselInfoMessageBG] +Tex = SongMessage +X = 250 +Y = 90 +W = 300 +H = 25 +Z = 0.98 +Color = ColorDark +Type = Transparent + +[SongCarouselInfoMessageText] +X = 400 +Y = 94 +Color = White +Font = 1 +Size = 20 +Align = 1 + +############################# +## ## +## Medley Playlist ## +## ## +############################# + +[SongCarouselTextMedleyMax] +N = 3 + +[SongCarouselTextMedleyNumber1] +X=27 +Y=375 +Color=White +Font=1 +Size=20 +Align=1 + +[SongCarouselTextMedleyArtist1] +X=50 +Y=366 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongCarouselTextMedleyTitle1] +X=50 +Y=383 +Color=White +Font=0 +Size=20 +Align=0 + +[SongCarouselTextMedleyNumber2] +X=27 +Y=420 +Color=White +Font=1 +Size=20 +Align=1 + +[SongCarouselTextMedleyArtist2] +X=50 +Y=411 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongCarouselTextMedleyTitle2] +X=50 +Y=428 +Color=White +Font=0 +Size=20 +Align=0 + +[SongCarouselTextMedleyNumber3] +X=27 +Y=465 +Color=White +Font=1 +Size=20 +Align=1 + +[SongCarouselTextMedleyArtist3] +X=50 +Y=454 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongCarouselTextMedleyTitle3] +X=50 +Y=471 +Color=White +Font=0 +Size=20 +Align=0 + + +[SongCarouselStaticMedley1] +Tex = PlayerNumberBox +X = 15 +Y = 370 +W = 25 +H = 30 +Color = ColorDark +Type = Colorized + +[SongCarouselStaticMedley2] +Tex = PlayerNumberBox +X = 15 +Y = 415 +W = 25 +H = 30 +Color = ColorDark +Type = Colorized + +[SongCarouselStaticMedley3] +Tex = PlayerNumberBox +X = 15 +Y = 460 +W = 25 +H = 30 +Color = ColorDark +Type = Colorized + +######################################################################################## +##### ##### +##### SlotMachine ##### +##### ##### +######################################################################################## + +[SongSlotMachine] + +[SongSlotMachineBackground] +Tex = SongBG + +[SongSlotMachineCover] +X = 60 +Y = 190 +W = 325 +H = 200 + +[SongSlotMachineEqualizer] +Visible = 1 +Direction = 1 +Color = White +Alpha = 1 +X = 580 +Y = 380 +PieceW = 3 +PieceH = 3 +Space = 1 +Bands = 30 +Length = 15 + +[SongSlotMachineMedleyIcon] +X = 315 +Y = 352 +W = 36 +H = 26 +Z = 0.95 +Color = White +Tex = icon_song_medley +Type = Transparent + +[SongSlotMachineCalculatedMedleyIcon] +X = 315 +Y = 352 +W = 36 +H = 26 +Z = 0.952 +Color = White +Tex = icon_song_calcmedley +Type = Transparent + +[SongSlotMachineVideoIcon] +X = 280 +Y = 350 +W = 26 +H = 30 +Z = 0.952 +Color = White +Tex = icon_song_video +Type = Transparent + +[SongSlotMachineDuetIcon] +X = 315 +Y = 350 +W = 25 +H = 30 +Z = 0.952 +Color = White +Tex = icon_song_duet +Type = Transparent + +[SongSlotMachineRapIcon] +X = 357 +Y = 350 +W = 25 +H = 30 +Z = 0.952 +Color = White +Tex = icon_song_rap +Type = Transparent + +[SongSlotMachineStatic1] +X = 260 +Y = 190 +W = 460 +H = 200 +Z = 0.95 +Color = ColorLight +Tex = SongSelection3 +Type = Colorized + +[SongSlotMachineTextArtist] +X = 280 +Y = 210 +W = 420 +Color = White +Font = 1 +Size = 40 +Align = 0 +Text = + +[SongSlotMachineTextTitle] +X = 280 +Y = 280 +W = 420 +Color = White +Font = 0 +Size = 36 +Align = 0 +Text = + +[SongSlotMachineTextNumber] +X = 705 +Y = 200 +Z = 0.95 +Color = White +Size = 22 +Align = 2 + +[SongSlotMachineTextYear] +X = 460 +Y = 350 +Z = 0.95 +Color = White +Size = 28 +Align = 1 + +########## LEGEND SLOT MACHINE ######### + +[SongSlotMachineStaticNonParty1] +X = 555 +Y = 415 +W = 163 +H = 107 +Z = 0 +Tex = BGFade +Color = White +Type = Transparent + +[SongSlotMachineTextNonParty1] +X = 635 +Y = 420 +Z = 0.952 +Color = White +Font = 1 +Size = 14 +Align = 1 +Text = SING_SONG_SELECTION_LEGEND_TITLE + +[SongSlotMachineStaticNonParty2] +X = 566 +Y = 438 +W = 15 +H = 20 +Tex = icon_song_video +Color = White +Type = Transparent + + +[SongSlotMachineTextNonParty2] +X = 595 +Y = 442 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_VIDEO + +[SongSlotMachineStaticNonParty3] +X = 565 +Y = 460 +W = 26 +H = 16 +Tex = icon_song_medley +Color = White +Type = Transparent + +[SongSlotMachineTextNonParty3] +X = 595 +Y = 462 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_MEDLEY + +[SongSlotMachineStaticNonParty4] +X = 565 +Y = 480 +W = 26 +H = 16 +Tex = icon_song_calcmedley +Color = White +Type = Transparent + +[SongSlotMachineTextNonParty4] +X = 595 +Y = 482 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_MEDLEYC + + +[SongSlotMachineStaticNonParty5] +X = 565 +Y = 500 +W = 13 +H = 17 +Tex = icon_song_duet +Color = White +Type = Transparent + +[SongSlotMachineTextNonParty5] +X = 595 +Y = 502 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_DUET + +[SongSlotMachineTextScore] +X = 290 +Y = 420 +Color = ColorLight +Font = 0 +Size = 24 +Align = 0 + +[SongSlotMachineTextMaxScore] +X = 290 +Y = 450 +Color = White +Font = 0 +Size = 22 +Align = 0 +Text =SONG_SCORE_MAX + +[SongSlotMachineTextMediaScore] +X = 290 +Y = 490 +Color = White +Font = 0 +Size = 22 +Align = 0 +Text =SONG_SCORE_MEDIA + +[SongSlotMachineTextMaxScore2] +X = 430 +Y = 450 +Color = White +Font = 0 +Size = 22 +Align = 2 + +[SongSlotMachineTextMediaScore2] +X = 430 +Y = 490 +Color = White +Font = 0 +Size = 22 +Align = 2 + +[SongSlotMachineTextScoreUser] +X = 430 +Y = 468 +Color = ColorLight +Font = 0 +Size = 20 +Align = 2 + +[SongSlotMachineTextMaxScoreLocal] +X = 440 +Y = 450 +Color = White +Font = 0 +Size = 22 +Align = 0 + +[SongSlotMachineTextMediaScoreLocal] +X = 440 +Y = 490 +Color = White +Font = 0 +Size = 22 +Align = 0 + +[SongSlotMachineTextScoreUserLocal] +X = 440 +Y = 468 +Color = ColorLight +Font = 0 +Size = 20 +Align = 0 + +#Variable statics and texts for song-screen in sing- and partymode +# There can be an unlimited Number of Statics and Texts, As long +# as the numbers are in order. +# Statics that are shown in PartyMode Only are Named_ +# SongStaticParty[No] +# Texts that are shown in PartyMode Only are Named_ +# SongTextParty[No] +# Statics that are shown in Normal Mode Only are Named_ +# SongStaticNonParty[No] +# Texts that are shown in Normal Mode Only are Named_ +# SongTextNonParty[No] +#Here are the ones for singmode + +[SongSlotMachineTextNonParty6] +X = 30 +Y = 6 +Color = White +Font = 0 +Size = 60 +Text = SING_SONG_SELECTION +Align = 0 + + +# Menu opens with [M] +[SongSlotMachineStaticNonParty6] +X = 340 +Y = 545 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonM +Color = White +Type = Transparent +Reflection = 1 +ReflectionSpacing = 2 + +[SongSlotMachineTextNonParty7] +X = 370 +Y = 548 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SING_SONG_SELECTION_MENU +Reflection = 1 +ReflectionSpacing = 13 + +# The so famous search, shown with [J] +[SongSlotMachineStaticNonParty7] +X = 440 +Y = 545 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonJ +Color = White +Type = Transparent +Reflection = 1 +ReflectionSpacing = 2 + +[SongSlotMachineTextNonParty8] +X = 470 +Y = 548 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SONG_JUMPTO_DESC +Reflection = 1 +ReflectionSpacing = 13 + +# [P]laylist +[SongSlotMachineStaticNonParty8] +X = 630 +Y = 545 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonP +Color = White +Type = Transparent +Reflection = 1 +ReflectionSpacing = 2 + +[SongSlotMachineTextNonParty9] +X = 660 +Y = 548 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SING_SONG_SELECTION_PLAYLIST +Reflection = 1 +ReflectionSpacing = 13 + +#and these are the ones for partymode +# NAVBAR for party +# enter a number +[SongSlotMachineStaticParty1] +X = 245 +Y = 555 +Z = 0.952 +W = 25 +H = 28 +Tex = Button13 +Color = White +Type = Transparent + +[SongSlotMachineTextParty1] +X = 278 +Y = 555 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SONG_MENU_NAME_PARTY_JOKER +Reflection = 0 +ReflectionSpacing = 13 + +# menu +[SongSlotMachineStaticParty2] +X = 420 +Y = 555 +Z = 0.952 +W = 25 +H = 28 +Tex = ButtonM +Color = White +Type = Transparent + +[SongSlotMachineTextParty2] +X = 448 +Y = 555 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = PARTY_SONG_MENU +Reflection = 0 +ReflectionSpacing = 13 + +#Texts for Party Mode +[SongSlotMachineTextParty3] +X = 30 +Y = 30 +ColR = 0.7 +ColG = 0.7 +ColB = 0.7 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE + +# Jokers, 5 for each team, only shown in party Mode +[SongSlotMachineStaticTeam1Joker1] +Tex = Joker +X = 505 +Y = 400 +W = 35 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlotMachineStaticTeam1Joker2] +Tex = Joker +X = 555 +Y = 400 +W = 35 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlotMachineStaticTeam1Joker3] +Tex = Joker +X = 605 +Y = 400 +W = 35 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlotMachineStaticTeam1Joker4] +Tex = Joker +X = 655 +Y = 400 +W = 35 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlotMachineStaticTeam1Joker5] +Tex = Joker +X = 705 +Y = 400 +W = 35 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlotMachineStaticTeam2Joker1] +Tex = Joker +X = 505 +Y = 450 +W = 35 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlotMachineStaticTeam2Joker2] +Tex = Joker +X = 555 +Y = 450 +W = 35 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlotMachineStaticTeam2Joker3] +Tex = Joker +X = 605 +Y = 450 +W = 35 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlotMachineStaticTeam2Joker4] +Tex = Joker +X = 655 +Y = 450 +W = 35 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlotMachineStaticTeam2Joker5] +Tex = Joker +X = 705 +Y = 450 +W = 35 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlotMachineStaticTeam3Joker1] +Tex = Joker +X = 505 +Y = 500 +W = 35 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlotMachineStaticTeam3Joker2] +Tex = Joker +X = 555 +Y = 500 +W = 35 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlotMachineStaticTeam3Joker3] +Tex = Joker +X = 605 +Y = 500 +W = 35 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlotMachineStaticTeam3Joker4] +Tex = Joker +X = 655 +Y = 500 +W = 35 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlotMachineStaticTeam3Joker5] +Tex = Joker +X = 705 +Y = 500 +W = 35 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlotMachineTextPartyTime] +X = 750 +Y = 450 +Color = White +DColor = Red +Font = 1 +Size = 70 +Align = 2 + +[SongSlotMachineInfoMessageBG] +Tex = SongMessage +X = 250 +Y = 90 +W = 300 +H = 25 +Z = 0.98 +Color = ColorDark +Type = Transparent + +[SongSlotMachineInfoMessageText] +X = 400 +Y = 94 +Color = White +Font = 1 +Size = 20 +Align = 1 + +############################# +## ## +## Medley Playlist ## +## ## +############################# + +[SongSlotMachineTextMedleyMax] +N = 3 + +[SongSlotMachineTextMedleyNumber1] +X=275 +Y=79 +Color=White +Font=1 +Size=20 +Align=1 + +[SongSlotMachineTextMedleyArtist1] +X=295 +Y=72 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongSlotMachineTextMedleyTitle1] +X=295 +Y=86 +Color=White +Font=0 +Size=20 +Align=0 + +[SongSlotMachineTextMedleyNumber2] +X=275 +Y=115 +Color=White +Font=1 +Size=20 +Align=1 + +[SongSlotMachineTextMedleyArtist2] +X=295 +Y=107 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongSlotMachineTextMedleyTitle2] +X=295 +Y=122 +Color=White +Font=0 +Size=20 +Align=0 + +[SongSlotMachineTextMedleyNumber3] +X=275 +Y=151 +Color=White +Font=1 +Size=20 +Align=1 + +[SongSlotMachineTextMedleyArtist3] +X=295 +Y=141 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongSlotMachineTextMedleyTitle3] +X=295 +Y=156 +Color=White +Font=0 +Size=20 +Align=0 + +[SongSlotMachineStaticMedley1] +Tex = PlayerNumberBox +X = 263 +Y = 74 +W = 25 +H = 30 +Color = ColorDark +Type = Colorized + +[SongSlotMachineStaticMedley2] +Tex = PlayerNumberBox +X = 263 +Y = 110 +W = 25 +H = 30 +Color = ColorDark +Type = Colorized + +[SongSlotMachineStaticMedley3] +Tex = PlayerNumberBox +X = 263 +Y = 146 +W = 25 +H = 30 +Color = ColorDark +Type = Colorized + +######################################################################################## +##### ##### +##### Slide ##### +##### ##### +######################################################################################## + +[SongSlide] + +[SongSlideBackground] +Tex = SongBG + +[SongSlideCover] +X = 300 +Y = 120 +W = 200 +H = 200 +Padding = 120 +Reflections = 1 +ReflectionSpacing = 10 + +[SongSlideEqualizer] +Visible = 1 +Direction = 1 +Color = White +Alpha = 1 +X = 265 +Y = 500 +PieceW = 4 +PieceH = 4 +Space = 1 +Bands = 5 +Length = 15 +Reflection = 1 +ReflectionSpacing = 2 + +[SongSlideMedleyIcon] +X = 335 +Y = 477 +W = 30 +H = 20 +Z = 0.952 +Color = White +Tex = icon_song_medley +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongSlideCalculatedMedleyIcon] +X = 335 +Y = 477 +W = 30 +H = 20 +Z = 0.952 +Color = White +Tex = icon_song_calcmedley +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongSlideVideoIcon] +X = 310 +Y = 475 +W = 18 +H = 24 +Z = 0.952 +Color = White +Tex = icon_song_video +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongSlideDuetIcon] +X = 490 +Y = 475 +W = 20 +H = 24 +Z = 0.952 +Color = White +Tex = icon_song_duet +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongSlideRapIcon] +X = 420 +Y = 475 +W = 18 +H = 24 +Z = 0.952 +Color = White +Tex = icon_song_rap +Type = Transparent +Reflection = 0 +ReflectionSpacing = 22 + +[SongSlideStatic1] +X = 278 +Y = 120 +W = 244 +H = 200 +Z = 0.95 +Color = ColorLight +Tex = SongSelection1 +Type = Colorized + +[SongSlideStatic2] +X = 300 +Y = 320 +W = 200 +H = 190 +Z = 0.95 +Color = ColorLight +Tex = SongSelection2 +Type = Colorized +Reflection = 0 +ReflectionSpacing = 2 + +[SongSlideTextArtist] +X = 400 +Y = 328 +W = 190 +Color = White +Font = 1 +Size = 24 +Align = 1 +Text = + +[SongSlideTextTitle] +X = 400 +Y = 394 +W = 190 +Color = White +Font = 0 +Size = 24 +Align = 1 +Text = + +[SongSlideTextNumber] +X = 495 +Y = 480 +Z = 0.95 +Color = White +Size = 16 +Align = 2 +Reflection = 0 +ReflectionSpacing = 21 + +[SongSlideTextYear] +X = 400 +Y = 477 +Z = 0.95 +Color = White +Size = 20 +Align = 1 + +########## LEGEND SLIDE ######### + +[SongSlideStatic3] +X = 582 +Y = 405 +Z = 0.95 +W = 163 +H = 107 +Tex = BGFade +Color = White +Type = Transparent + +[SongSlideTextNonParty5] +X = 661 +Y = 410 +Z = 0.952 +Color = White +Font = 1 +Size = 14 +Align = 1 +Text = SING_SONG_SELECTION_LEGEND_TITLE + +[SongSlideStatic4] +X = 596 +Y = 430 +Z = 0.952 +W = 15 +H = 20 +Tex = icon_song_video +Color = White +Type = Transparent + + +[SongSlideTextNonParty6] +X = 625 +Y = 432 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_VIDEO + +[SongSlideStatic5] +X = 595 +Y = 450 +Z = 0.952 +W = 26 +H = 16 +Tex = icon_song_medley +Color = White +Type = Transparent + +[SongSlideTextNonParty7] +X = 625 +Y = 452 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_MEDLEY + +[SongSlideStatic6] +X = 595 +Y = 470 +Z = 0.952 +W = 26 +H = 16 +Tex = icon_song_calcmedley +Color = White +Type = Transparent + +[SongSlideTextNonParty8] +X = 625 +Y = 472 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_MEDLEYC + + +[SongSlideStatic7] +X = 595 +Y = 490 +Z = 0.952 +W = 13 +H = 17 +Tex = icon_song_duet +Color = White +Type = Transparent + +[SongSlideTextNonParty9] +X = 625 +Y = 492 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_DUET + +#[SongSlideTextScore] +#X = 530 +#Y = 420 +#Color = ColorLight +#Font = 0 +#Size = 24 +#Align = 0 + +[SongSlideTextMaxScore] +X = 30 +Y = 500 +Color = White +Font = 0 +Size = 22 +Align = 0 +Text =SONG_SCORE_MAX + +[SongSlideTextMediaScore] +X = 30 +Y = 540 +Color = White +Font = 0 +Size = 22 +Align = 0 +Text =SONG_SCORE_MEDIA + +[SongSlideTextMaxScore2] +X = 170 +Y = 500 +Color = White +Font = 0 +Size = 22 +Align = 2 + +[SongSlideTextMediaScore2] +X = 170 +Y = 540 +Color = White +Font = 0 +Size = 22 +Align = 2 + +[SongSlideTextScoreUser] +X = 170 +Y = 518 +Color = ColorLight +Font = 0 +Size = 20 +Align = 2 + +[SongSlideTextMaxScoreLocal] +X = 180 +Y = 500 +Color = White +Font = 0 +Size = 22 +Align = 0 + +[SongSlideTextMediaScoreLocal] +X = 180 +Y = 540 +Color = White +Font = 0 +Size = 22 +Align = 0 + +[SongSlideTextScoreUserLocal] +X = 180 +Y = 518 +Color = ColorLight +Font = 0 +Size = 20 +Align = 0 + +#Variable statics and texts for song-screen in sing- and partymode +# There can be an unlimited Number of Statics and Texts, As long +# as the numbers are in order. +# Statics that are shown in PartyMode Only are Named_ +# SongStaticParty[No] +# Texts that are shown in PartyMode Only are Named_ +# SongTextParty[No] +# Statics that are shown in Normal Mode Only are Named_ +# SongStaticNonParty[No] +# Texts that are shown in Normal Mode Only are Named_ +# SongTextNonParty[No] +#Here are the ones for singmode + +[SongSlideTextNonParty1] +X = 30 +Y = 6 +Color = White +Font = 0 +Size = 60 +Text = SING_SONG_SELECTION +Align = 0 + +# Menu opens with [M] +[SongSlideStaticNonParty1] +X = 255 +Y = 560 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonM +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongSlideTextNonParty2] +X = 287 +Y = 563 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SING_SONG_SELECTION_MENU +Reflection = 0 +ReflectionSpacing = 13 + +# The so famous search, shown with [J] +[SongSlideStaticNonParty2] +X = 375 +Y = 560 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonJ +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongSlideTextNonParty3] +X = 407 +Y = 563 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SONG_JUMPTO_DESC +Reflection = 0 +ReflectionSpacing = 13 + +# [P]laylist +[SongSlideStaticNonParty3] +X = 580 +Y = 560 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonP +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongSlideTextNonParty4] +X = 612 +Y = 563 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SING_SONG_SELECTION_PLAYLIST +Reflection = 0 +ReflectionSpacing = 13 + +#and these are the ones for partymode +[SongSlideStaticParty1] +X = 40 +Y = 22 +W = 27 +H = 27 +Color = White +Tex = PartyIcon +Type = Colorized + +# NAVBAR for party +# enter a number +[SongSlideStaticParty2] +X = 260 +Y = 545 +Z = 0.952 +W = 32 +H = 30 +Tex = Button13 +Color = White +Type = Transparent + +[SongSlideTextParty3] +X = 300 +Y = 548 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SONG_MENU_NAME_PARTY_JOKER +Reflection = 1 +ReflectionSpacing = 13 + +# menu +[SongSlideStaticParty3] +X = 400 +Y = 552 +Z = 0.952 +W = 24 +H = 23 +Tex = ButtonM +Color = White +Type = Transparent + +[SongSlideTextParty4] +X = 426 +Y = 548 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = PARTY_SONG_MENU +Reflection = 1 +ReflectionSpacing = 13 + +[SongSlideStaticParty4] +X = 540 +Y = 552 +Z = 0.952 +W = 24 +H = 24 +Tex = ButtonEnter +Color = White +Type = Transparent + +[SongSlideTextParty5] +X = 570 +Y = 548 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = PARTY_SONG_LEGEND_CONTINUE +Reflection = 1 +ReflectionSpacing = 13 + +#Texts for Party Mode +[SongSlideTextParty1] +X = 70 +Y = 5 +ColR = 0.7 +ColG = 0.7 +ColB = 0.7 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE + +[SongSlideTextParty2] +X = 238 +Y = 548 +Color = White +Font = 0 +Size = 21 +Align = 2 +Text = PARTY_SONG_WHEREAMI +#variable statics end + +# Jokers, 5 for each team, only shown in party Mode +[SongSlideStaticTeam1Joker1] +Tex = Joker +X = 505 +Y = 400 +W = 40 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlideStaticTeam1Joker2] +Tex = Joker +X = 555 +Y = 400 +W = 40 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlideStaticTeam1Joker3] +Tex = Joker +X = 605 +Y = 400 +W = 40 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlideStaticTeam1Joker4] +Tex = Joker +X = 655 +Y = 400 +W = 40 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlideStaticTeam1Joker5] +Tex = Joker +X = 705 +Y = 400 +W = 40 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlideStaticTeam2Joker1] +Tex = Joker +X = 505 +Y = 450 +W = 40 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlideStaticTeam2Joker2] +Tex = Joker +X = 555 +Y = 450 +W = 40 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlideStaticTeam2Joker3] +Tex = Joker +X = 605 +Y = 450 +W = 40 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlideStaticTeam2Joker4] +Tex = Joker +X = 655 +Y = 450 +W = 40 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlideStaticTeam2Joker5] +Tex = Joker +X = 705 +Y = 450 +W = 40 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlideStaticTeam3Joker1] +Tex = Joker +X = 505 +Y = 500 +W = 40 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlideStaticTeam3Joker2] +Tex = Joker +X = 555 +Y = 500 +W = 40 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlideStaticTeam3Joker3] +Tex = Joker +X = 605 +Y = 500 +W = 40 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlideStaticTeam3Joker4] +Tex = Joker +X = 655 +Y = 500 +W = 40 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlideStaticTeam3Joker5] +Tex = Joker +X = 705 +Y = 500 +W = 40 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongSlideTextPartyTime] +X = 750 +Y = 450 +Color = White +DColor = Red +Font = 1 +Size = 70 +Align = 2 + +[SongSlideInfoMessageBG] +Tex = SongMessage +X = 250 +Y = 90 +W = 300 +H = 25 +Z = 0.98 +Color = ColorDark +Type = Transparent + +[SongSlideInfoMessageText] +X = 400 +Y = 94 +Color = White +Font = 1 +Size = 20 +Align = 1 + +############################# +## ## +## Medley Playlist ## +## ## +############################# + +[SongSlideTextMedleyMax] +N = 3 + +[SongSlideTextMedleyNumber1] +X=27 +Y=375 +Color=White +Font=1 +Size=20 +Align=1 + +[SongSlideTextMedleyArtist1] +X=50 +Y=366 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongSlideTextMedleyTitle1] +X=50 +Y=383 +Color=White +Font=0 +Size=20 +Align=0 + +[SongSlideTextMedleyNumber2] +X=27 +Y=420 +Color=White +Font=1 +Size=20 +Align=1 + +[SongSlideTextMedleyArtist2] +X=50 +Y=411 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongSlideTextMedleyTitle2] +X=50 +Y=428 +Color=White +Font=0 +Size=20 +Align=0 + +[SongSlideTextMedleyNumber3] +X=27 +Y=465 +Color=White +Font=1 +Size=20 +Align=1 + +[SongSlideTextMedleyArtist3] +X=50 +Y=454 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongSlideTextMedleyTitle3] +X=50 +Y=471 +Color=White +Font=0 +Size=20 +Align=0 + +[SongSlideStaticMedley1] +Tex = PlayerNumberBox +X = 15 +Y = 370 +W = 25 +H = 30 +Z = 1 +Color = ColorDark +Type = Colorized + +[SongSlideStaticMedley2] +Tex = PlayerNumberBox +X = 15 +Y = 415 +W = 25 +H = 30 +Z = 1 +Color = ColorDark +Type = Colorized + +[SongSlideStaticMedley3] +Tex = PlayerNumberBox +X = 15 +Y = 460 +W = 25 +H = 30 +Color = ColorDark +Type = Colorized + + +######################################################################################## +##### ##### +##### List ##### +##### ##### +######################################################################################## + +[SongList] + +[SongListBackground] +Tex = SongBG + + +[SongListSelectSong] +X = 40 +Y = 90 +W = 490 +H = 80 +Z = 0.50 +Rows = 5 +Padding = 2 +DColor = GrayLightest +Color = ColorLight +Tex = SongSelection5 +DTex = SongSelection4 +Type = Colorized +Reflection = 0 +ReflectionSpacing = 0 + +[SongListCover] +X = 44 +Y = 95 +W = 55 +H = 70 +Z = 0.95 +SelectX = 555 +SelectY = 338 +SelectW = 215 +SelectH = 161 +SelectReflection = 0 +SelectReflectionSpacing = 0 +Padding = 12 +Reflections = 0 +Rows = 5 + +[SongListEqualizer] +Visible = 0 +Direction = 1 +Color = White +Alpha = 1 +X = 750 +Y = 505 +PieceW = 4 +PieceH = 4 +Space = 1 +Bands = 7 +Length = 15 +Reflection = 0 +ReflectionSpacing = 0 + +[SongListMedleyIcon] +X = 490 +Y = 122 +W = 30 +H = 20 +Z = 1 +Color = White +Tex = icon_song_medley +Type = Transparent +Reflection = 0 + +[SongListCalculatedMedleyIcon] +X = 490 +Y = 122 +W = 30 +H = 20 +Z = 1 +Color = White +Tex = icon_song_calcmedley +Type = Transparent +Reflection = 0 + +[SongListVideoIcon] +X = 491 +Y = 96 +W = 18 +H = 24 +Z = 1 +Color = White +Tex = icon_song_video +Type = Transparent +Reflection = 0 + +[SongListDuetIcon] +X = 490 +Y = 122 +W = 22 +H = 24 +Z = 1 +Color = White +Tex = icon_song_duet +Type = Transparent +Reflection = 0 + +[SongListRapIcon] +X = 467 +Y = 100 +W = 18 +H = 22 +Z = 1 +Color = White +Tex = icon_song_rap +Type = Transparent +Reflection = 0 + +[SongListTextArtist] +X = 115 +Y = 100 +W = 440 +Color = White +Font = 1 +Size = 28 +Align = 0 +Text = + +[SongListTextTitle] +X = 115 +Y = 130 +W = 330 +Color = White +Font = 0 +Size = 26 +Align = 0 +Text = + +[SongListTextNumber] +X = 522 +Y = 500 +Z = 0.95 +Color = White +Size = 20 +Align = 2 +Reflection = 0 +ReflectionSpacing = 2 + +[SongListTextYear] +X = 522 +Y = 148 +Z = 0.95 +Color = White +Size = 18 +Align = 2 + +########## LEGEND LIST ######### + +[SongListStaticNonParty1] +X = 555 +Y = 216 +W = 215 +H = 119 +Z = 0 +Tex = BGFade +Color = White +Type = Transparent + +[SongListTextNonParty1] +X = 661 +Y = 222 +Z = 0.952 +Color = White +Font = 1 +Size = 14 +Align = 1 +Text = SING_SONG_SELECTION_LEGEND_TITLE + +[SongListStaticNonParty2] +X = 596 +Y = 250 +W = 15 +H = 20 +Tex = icon_song_video +Color = White +Type = Transparent + + +[SongListTextNonParty2] +X = 625 +Y = 252 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_VIDEO + +[SongListStaticNonParty3] +X = 595 +Y = 270 +W = 26 +H = 16 +Tex = icon_song_medley +Color = White +Type = Transparent + +[SongListTextNonParty3] +X = 625 +Y = 272 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_MEDLEY + +[SongListStaticNonParty4] +X = 595 +Y = 290 +W = 26 +H = 16 +Tex = icon_song_calcmedley +Color = White +Type = Transparent + +[SongListTextNonParty4] +X = 625 +Y = 292 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_MEDLEYC + + +[SongListStaticNonParty5] +X = 595 +Y = 310 +W = 13 +H = 17 +Tex = icon_song_duet +Color = White +Type = Transparent + +[SongListTextNonParty5] +X = 625 +Y = 312 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_DUET + +#[SongListTextScore] +#X = 530 +#Y = 420 +#Color = ColorLight +#Font = 0 +#Size = 24 +#Align = 0 + +[SongListTextMaxScore] +X = 40 +Y = 510 +Color = White +Font = 0 +Size = 22 +Align = 0 +Text =SONG_SCORE_MAX + +[SongListTextMediaScore] +X = 40 +Y = 550 +Color = White +Font = 0 +Size = 22 +Align = 0 +Text =SONG_SCORE_MEDIA + +[SongListTextMaxScore2] +X = 180 +Y = 510 +Color = White +Font = 0 +Size = 22 +Align = 2 + +[SongListTextMediaScore2] +X = 180 +Y = 550 +Color = White +Font = 0 +Size = 22 +Align = 2 + +[SongListTextScoreUser] +X = 180 +Y = 528 +Color = ColorLight +Font = 0 +Size = 20 +Align = 2 + +[SongListTextMaxScoreLocal] +X = 190 +Y = 510 +Color = White +Font = 0 +Size = 22 +Align = 0 + +[SongListTextMediaScoreLocal] +X = 190 +Y = 550 +Color = White +Font = 0 +Size = 22 +Align = 0 + +[SongListTextScoreUserLocal] +X = 190 +Y = 528 +Color = ColorLight +Font = 0 +Size = 20 +Align = 0 + +#Variable statics and texts for song-screen in sing- and partymode +# There can be an unlimited Number of Statics and Texts, As long +# as the numbers are in order. +# Statics that are shown in PartyMode Only are Named_ +# SongStaticParty[No] +# Texts that are shown in PartyMode Only are Named_ +# SongTextParty[No] +# Statics that are shown in Normal Mode Only are Named_ +# SongStaticNonParty[No] +# Texts that are shown in Normal Mode Only are Named_ +# SongTextNonParty[No] +#Here are the ones for singmode + +[SongListTextNonParty6] +X = 40 +Y = 12 +Color = White +Font = 0 +Size = 60 +Text = SING_SONG_SELECTION +Align = 0 + +# Menu opens with [M] + +[SongListStaticNonParty6] +X = 255 +Y = 560 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonM +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongListTextNonParty7] +X = 287 +Y = 563 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SING_SONG_SELECTION_MENU +Reflection = 1 +ReflectionSpacing = 13 + +# The so famous search, shown with [J] +[SongListStaticNonParty7] +X = 375 +Y = 560 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonJ +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongListTextNonParty8] +X = 407 +Y = 563 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SONG_JUMPTO_DESC +Reflection = 0 +ReflectionSpacing = 13 + +# [P]laylist +[SongListStaticNonParty8] +X = 580 +Y = 560 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonP +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongListTextNonParty9] +X = 612 +Y = 563 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SING_SONG_SELECTION_PLAYLIST +Reflection = 0 +ReflectionSpacing = 13 + +#and these are the ones for partymode +[SongListStaticParty1] +X = 40 +Y = 22 +W = 27 +H = 27 +Color = White +Tex = PartyIcon +Type = Colorized + +# NAVBAR for party +# enter a number +[SongListStaticParty2] +X = 260 +Y = 545 +Z = 0.952 +W = 32 +H = 30 +Tex = Button13 +Color = White +Type = Transparent + +[SongListTextParty3] +X = 300 +Y = 548 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SONG_MENU_NAME_PARTY_JOKER +Reflection = 1 +ReflectionSpacing = 13 + +# menu +[SongListStaticParty3] +X = 400 +Y = 552 +Z = 0.952 +W = 24 +H = 23 +Tex = ButtonM +Color = White +Type = Transparent + +[SongListTextParty4] +X = 426 +Y = 548 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = PARTY_SONG_MENU +Reflection = 1 +ReflectionSpacing = 13 + +[SongListStaticParty4] +X = 540 +Y = 552 +Z = 0.952 +W = 24 +H = 24 +Tex = ButtonEnter +Color = White +Type = Transparent + +[SongListTextParty5] +X = 570 +Y = 548 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = PARTY_SONG_LEGEND_CONTINUE +Reflection = 1 +ReflectionSpacing = 13 + +#Texts for Party Mode +[SongListTextParty1] +X = 70 +Y = 5 +ColR = 0.7 +ColG = 0.7 +ColB = 0.7 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE + +[SongListTextParty2] +X = 238 +Y = 548 +Color = White +Font = 0 +Size = 21 +Align = 2 +Text = PARTY_SONG_WHEREAMI +#variable statics end + +# Jokers, 5 for each team, only shown in party Mode +[SongListStaticTeam1Joker1] +Tex = Joker +X = 505 +Y = 400 +W = 40 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongListStaticTeam1Joker2] +Tex = Joker +X = 555 +Y = 400 +W = 40 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongListStaticTeam1Joker3] +Tex = Joker +X = 605 +Y = 400 +W = 40 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongListStaticTeam1Joker4] +Tex = Joker +X = 655 +Y = 400 +W = 40 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongListStaticTeam1Joker5] +Tex = Joker +X = 705 +Y = 400 +W = 40 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongListStaticTeam2Joker1] +Tex = Joker +X = 505 +Y = 450 +W = 40 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongListStaticTeam2Joker2] +Tex = Joker +X = 555 +Y = 450 +W = 40 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongListStaticTeam2Joker3] +Tex = Joker +X = 605 +Y = 450 +W = 40 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongListStaticTeam2Joker4] +Tex = Joker +X = 655 +Y = 450 +W = 40 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongListStaticTeam2Joker5] +Tex = Joker +X = 705 +Y = 450 +W = 40 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongListStaticTeam3Joker1] +Tex = Joker +X = 505 +Y = 500 +W = 40 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongListStaticTeam3Joker2] +Tex = Joker +X = 555 +Y = 500 +W = 40 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongListStaticTeam3Joker3] +Tex = Joker +X = 605 +Y = 500 +W = 40 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongListStaticTeam3Joker4] +Tex = Joker +X = 655 +Y = 500 +W = 40 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongListStaticTeam3Joker5] +Tex = Joker +X = 705 +Y = 500 +W = 40 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongListTextPartyTime] +X = 750 +Y = 450 +Color = White +DColor = Red +Font = 1 +Size = 70 +Align = 2 + +[SongListInfoMessageBG] +Tex = SongMessage +X = 250 +Y = 90 +W = 300 +H = 25 +Z = 0.98 +Color = ColorDark +Type = Transparent + +[SongListInfoMessageText] +X = 400 +Y = 94 +Color = White +Font = 1 +Size = 20 +Align = 1 + +############################# +## ## +## Medley Playlist ## +## ## +############################# + +[SongListTextMedleyMax] +N = 3 + +[SongListTextMedleyNumber1] +X=543 +Y=100 +Color=White +Font=1 +Size=18 +Align=1 + +[SongListTextMedleyArtist1] +X=565 +Y=91 +Color=ColorDark +Font=0 +Size=18 +Align=0 + +[SongListTextMedleyTitle1] +X=565 +Y=108 +Color=White +Font=0 +Size=18 +Align=0 + +[SongListTextMedleyNumber2] +X=543 +Y=145 +Color=White +Font=1 +Size=18 +Align=1 + +[SongListTextMedleyArtist2] +X=565 +Y=136 +Color=ColorDark +Font=0 +Size=18 +Align=0 + +[SongListTextMedleyTitle2] +X=565 +Y=153 +Color=White +Font=0 +Size=18 +Align=0 + +[SongListTextMedleyNumber3] +X=543 +Y=190 +Color=White +Font=1 +Size=18 +Align=1 + +[SongListTextMedleyArtist3] +X=565 +Y=181 +Color=ColorDark +Font=0 +Size=18 +Align=0 + +[SongListTextMedleyTitle3] +X=565 +Y=198 +Color=White +Font=0 +Size=18 +Align=0 + +[SongListStaticMedley1] +Tex = PlayerNumberBox +X = 532 +Y = 95 +W = 24 +H = 30 +Color = ColorDark +Type = Colorized + +[SongListStaticMedley2] +Tex = PlayerNumberBox +X = 532 +Y = 140 +W = 24 +H = 30 +Color = ColorDark +Type = Colorized + +[SongListStaticMedley3] +Tex = PlayerNumberBox +X = 532 +Y = 185 +W = 24 +H = 30 +Color = ColorDark +Type = Colorized + +######################################################################################## +##### ##### +##### Mosaic ##### +##### ##### +######################################################################################## + +[SongMosaic] + +[SongMosaicBackground] +Tex = SongBG + +[SongMosaicCover] +X = 45 +Y = 90 +W = 120 +H = 135 +SelectX = 180 +SelectY = 90 +SelectW = 355 +SelectH = 278 +ZoomThumbW = 125 +ZoomThumbH = 140 +ZoomThumbStyle = 0 +Rows = 3 +Cols = 1 +Padding = 4 +Reflections = 0 + +[SongMosaicEqualizer] +Visible = 1 +Direction = 1 +Color = White +Alpha = 1 +X = 15 +Y = 500 +PieceW = 5 +PieceH = 5 +Space = 1 +Bands = 4 +Length = 18 +Reflection = 1 +ReflectionSpacing = 2 + +[SongMosaicMedleyIcon] +X = 500 +Y = 432 +W = 30 +H = 20 +Z = 1 +Color = White +Tex = icon_song_medley +Type = Transparent +Reflection = 0 +ReflectionSpacing = 0 + +[SongMosaicCalculatedMedleyIcon] +X = 500 +Y = 432 +W = 30 +H = 20 +Z = 1 +Color = White +Tex = icon_song_calcmedley +Type = Transparent +Reflection = 0 +ReflectionSpacing = 0 + +[SongMosaicVideoIcon] +X = 502 +Y = 400 +W = 18 +H = 24 +Z = 1 +Color = White +Tex = icon_song_video +Type = Transparent +Reflection = 0 +ReflectionSpacing = 0 + +[SongMosaicDuetIcon] +X = 500 +Y = 428 +W = 22 +H = 24 +Z = 1 +Color = White +Tex = icon_song_duet +Type = Transparent +Reflection = 0 +ReflectionSpacing = 0 + +[SongMosaicRapIcon] +X = 500 +Y = 465 +W = 20 +H = 24 +Z = 1 +Color = White +Tex = icon_song_rap +Type = Transparent +Reflection = 0 +ReflectionSpacing = 0 + +[SongMosaicStatic1] +X = 180 +Y = 370 +W = 355 +H = 132 +Z = 0.9 +Color = ColorLight +Tex = JukeboxSongSelection +Type = Colorized +Reflection = 1 +ReflectionSpacing = 2 + +[SongMosaicTextArtist] +X = 190 +Y = 380 +W = 300 +Color = White +Font = 1 +Size = 28 +Align = 0 +Text = + +[SongMosaicTextTitle] +X = 190 +Y = 435 +W = 300 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = + +[SongMosaicTextNumber] +X = 141 +Y = 517 +Z = 0.95 +Color = White +Size = 18 +Align = 1 +Reflection = 0 +ReflectionSpacing = 0 + +[SongMosaicTextYear] +X = 530 +Y = 380 +Z = 1 +Color = White +Size = 18 +Align = 2 + +########## LEGEND MOSAIC ######### + +[SongMosaicStaticNonParty1] +X = 555 +Y = 370 +W = 215 +H = 131 +Z = 0 +Tex = BGFade +Color = White +Type = Transparent + +[SongMosaicTextNonParty1] +X = 661 +Y = 376 +Z = 0.952 +Color = White +Font = 1 +Size = 14 +Align = 1 +Text = SING_SONG_SELECTION_LEGEND_TITLE + +[SongMosaicStaticNonParty2] +X = 596 +Y = 404 +W = 15 +H = 20 +Tex = icon_song_video +Color = White +Type = Transparent + + +[SongMosaicTextNonParty2] +X = 625 +Y = 406 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_VIDEO + +[SongMosaicStaticNonParty3] +X = 595 +Y = 424 +W = 26 +H = 16 +Tex = icon_song_medley +Color = White +Type = Transparent + +[SongMosaicTextNonParty3] +X = 625 +Y = 426 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_MEDLEY + +[SongMosaicStaticNonParty4] +X = 595 +Y = 444 +W = 26 +H = 16 +Tex = icon_song_calcmedley +Color = White +Type = Transparent + +[SongMosaicTextNonParty4] +X = 625 +Y = 446 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_MEDLEYC + + +[SongMosaicStaticNonParty5] +X = 595 +Y = 464 +W = 13 +H = 17 +Tex = icon_song_duet +Color = White +Type = Transparent + +[SongMosaicTextNonParty5] +X = 625 +Y = 466 +Z = 0.952 +Color = White +Font = 0 +Size = 12 +Align = 0 +Text = SING_SONG_SELECTION_LEGEND_DUET + +#[SongListTextScore] +#X = 530 +#Y = 420 +#Color = ColorLight +#Font = 0 +#Size = 24 +#Align = 0 + +[SongMosaicTextMaxScore] +X = 565 +Y = 280 +Color = White +Font = 0 +Size = 22 +Align = 0 +Text =SONG_SCORE_MAX + +[SongMosaicTextMediaScore] +X = 565 +Y = 320 +Color = White +Font = 0 +Size = 22 +Align = 0 +Text = SONG_SCORE_MEDIA + +[SongMosaicTextMaxScore2] +X = 705 +Y = 280 +Color = White +Font = 0 +Size = 22 +Align = 2 + +[SongMosaicTextMediaScore2] +X = 705 +Y = 320 +Color = White +Font = 0 +Size = 22 +Align = 2 + +[SongMosaicTextScoreUser] +X = 705 +Y = 298 +Color = ColorLight +Font = 0 +Size = 20 +Align = 2 + +[SongMosaicTextMaxScoreLocal] +X = 715 +Y = 280 +Color = White +Font = 0 +Size = 22 +Align = 0 + +[SongMosaicTextMediaScoreLocal] +X = 715 +Y = 320 +Color = White +Font = 0 +Size = 22 +Align = 0 + +[SongMosaicTextScoreUserLocal] +X = 715 +Y = 298 +Color = ColorLight +Font = 0 +Size = 20 +Align = 0 + +#Variable statics and texts for song-screen in sing- and partymode +# There can be an unlimited Number of Statics and Texts, As long +# as the numbers are in order. +# Statics that are shown in PartyMode Only are Named_ +# SongStaticParty[No] +# Texts that are shown in PartyMode Only are Named_ +# SongTextParty[No] +# Statics that are shown in Normal Mode Only are Named_ +# SongStaticNonParty[No] +# Texts that are shown in Normal Mode Only are Named_ +# SongTextNonParty[No] +#Here are the ones for singmode + +[SongMosaicTextNonParty6] +X = 40 +Y = 12 +Color = White +Font = 0 +Size = 60 +Text = SING_SONG_SELECTION +Align = 0 + +# Menu opens with [M] + +[SongMosaicStaticNonParty6] +X = 255 +Y = 560 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonM +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongMosaicTextNonParty7] +X = 287 +Y = 563 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SING_SONG_SELECTION_MENU +Reflection = 1 +ReflectionSpacing = 13 + +# The so famous search, shown with [J] +[SongMosaicStaticNonParty7] +X = 375 +Y = 560 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonJ +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongMosaicTextNonParty8] +X = 407 +Y = 563 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SONG_JUMPTO_DESC +Reflection = 0 +ReflectionSpacing = 13 + +# [P]layList +[SongMosaicStaticNonParty8] +X = 580 +Y = 560 +W = 25 +H = 30 +Z = 0.952 +Tex = ButtonP +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[SongMosaicTextNonParty9] +X = 612 +Y = 563 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SING_SONG_SELECTION_PLAYLIST +Reflection = 0 +ReflectionSpacing = 13 + +#and these are the ones for partymode +[SongMosaicStaticParty1] +X = 40 +Y = 22 +W = 27 +H = 27 +Color = White +Tex = PartyIcon +Type = Colorized + +# NAVBAR for party +# enter a number +[SongMosaicStaticParty2] +X = 260 +Y = 545 +Z = 0.952 +W = 32 +H = 30 +Tex = Button13 +Color = White +Type = Transparent + +[SongMosaicTextParty3] +X = 300 +Y = 548 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SONG_MENU_NAME_PARTY_JOKER +Reflection = 1 +ReflectionSpacing = 13 + +# menu +[SongMosaicStaticParty3] +X = 400 +Y = 552 +Z = 0.952 +W = 24 +H = 23 +Tex = ButtonM +Color = White +Type = Transparent + +[SongMosaicTextParty4] +X = 426 +Y = 548 +Z = 0.952 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = PARTY_SONG_MENU +Reflection = 1 +ReflectionSpacing = 13 + +[SongMosaicStaticParty4] +X = 540 +Y = 552 +Z = 0.952 +W = 24 +H = 24 +Tex = ButtonEnter +Color = White +Type = Transparent + +[SongMosaicTextParty5] +X = 570 +Y = 548 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = PARTY_SONG_LEGEND_CONTINUE +Reflection = 1 +ReflectionSpacing = 13 + +#Texts for Party Mode +[SongMosaicTextParty1] +X = 70 +Y = 5 +ColR = 0.7 +ColG = 0.7 +ColB = 0.7 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE + +[SongMosaicTextParty2] +X = 238 +Y = 548 +Color = White +Font = 0 +Size = 21 +Align = 2 +Text = PARTY_SONG_WHEREAMI +#variable statics end + +# Jokers, 5 for each team, only shown in party Mode +[SongMosaicStaticTeam1Joker1] +Tex = Joker +X = 505 +Y = 400 +W = 40 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongMosaicStaticTeam1Joker2] +Tex = Joker +X = 555 +Y = 400 +W = 40 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongMosaicStaticTeam1Joker3] +Tex = Joker +X = 605 +Y = 400 +W = 40 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongMosaicStaticTeam1Joker4] +Tex = Joker +X = 655 +Y = 400 +W = 40 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongMosaicStaticTeam1Joker5] +Tex = Joker +X = 705 +Y = 400 +W = 40 +H = 40 +Z = 0.98 +Color = P1Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongMosaicStaticTeam2Joker1] +Tex = Joker +X = 505 +Y = 450 +W = 40 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongMosaicStaticTeam2Joker2] +Tex = Joker +X = 555 +Y = 450 +W = 40 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongMosaicStaticTeam2Joker3] +Tex = Joker +X = 605 +Y = 450 +W = 40 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongMosaicStaticTeam2Joker4] +Tex = Joker +X = 655 +Y = 450 +W = 40 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongMosaicStaticTeam2Joker5] +Tex = Joker +X = 705 +Y = 450 +W = 40 +H = 40 +Z = 0.98 +Color = P2Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongMosaicStaticTeam3Joker1] +Tex = Joker +X = 505 +Y = 500 +W = 40 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongMosaicStaticTeam3Joker2] +Tex = Joker +X = 555 +Y = 500 +W = 40 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongMosaicStaticTeam3Joker3] +Tex = Joker +X = 605 +Y = 500 +W = 40 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongMosaicStaticTeam3Joker4] +Tex = Joker +X = 655 +Y = 500 +W = 40 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongMosaicStaticTeam3Joker5] +Tex = Joker +X = 705 +Y = 500 +W = 40 +H = 40 +Z = 0.98 +Color = P3Dark +Type = Colorized +TexX1 = 0 +TexY1 = 0 +TexX2 = 1 +TexY2 = 1 + +[SongMosaicTextPartyTime] +X = 750 +Y = 450 +Color = White +DColor = Red +Font = 1 +Size = 70 +Align = 2 + +[SongMosaicInfoMessageBG] +Tex = SongMessage +X = 250 +Y = 90 +W = 300 +H = 25 +Z = 0.98 +Color = ColorDark +Type = Transparent + +[SongMosaicInfoMessageText] +X = 400 +Y = 94 +Color = White +Font = 1 +Size = 20 +Align = 1 + +############################# +## ## +## Medley Playlist ## +## ## +############################# + +[SongMosaicTextMedleyMax] +N = 4 + +[SongMosaicTextMedleyNumber1] +X=548 +Y=111 +Color=White +Font=1 +Size=20 +Align=1 + +[SongMosaicTextMedleyNumber2] +X=548 +Y=156 +Color=White +Font=1 +Size=20 +Align=1 + +[SongMosaicTextMedleyNumber3] +X=548 +Y=201 +Color=White +Font=1 +Size=20 +Align=1 + +[SongMosaicTextMedleyNumber4] +X=548 +Y=246 +Color=White +Font=1 +Size=20 +Align=1 + +[SongMosaicTextMedleyArtist1] +X=570 +Y=102 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongMosaicTextMedleyArtist2] +X=570 +Y=146 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongMosaicTextMedleyArtist3] +X=570 +Y=192 +Color=ColorDark +Font=0 +Size=20 +Align=0 + +[SongMosaicTextMedleyArtist4] +X=570 +Y=237 +Color=ColorDark +Font=0 +Size=20 +Align=0 + + +[SongMosaicTextMedleyTitle1] +X=570 +Y=118 +Color=White +Font=0 +Size=20 +Align=0 + +[SongMosaicTextMedleyTitle2] +X=570 +Y=163 +Color=White +Font=0 +Size=20 +Align=0 + +[SongMosaicTextMedleyTitle3] +X=570 +Y=208 +Color=White +Font=0 +Size=20 +Align=0 + +[SongMosaicTextMedleyTitle4] +X=570 +Y=252 +Color=White +Font=0 +Size=20 +Align=0 + +[SongMosaicStaticMedley1] +Tex = PlayerNumberBox +X = 537 +Y = 105 +W = 24 +H = 30 +Color = ColorDark +Type = Colorized + +[SongMosaicStaticMedley2] +Tex = PlayerNumberBox +X = 537 +Y = 150 +W = 24 +H = 30 +Color = ColorDark +Type = Colorized + +[SongMosaicStaticMedley3] +Tex = PlayerNumberBox +X = 537 +Y = 195 +W = 24 +H = 30 +Color = ColorDark +Type = Colorized + +[SongMosaicStaticMedley4] +Tex = PlayerNumberBox +X = 537 +Y = 240 +W = 24 +H = 30 +Color = ColorDark +Type = Colorized + +########################################## +######### S I N G S C R E E N ########## +########################################## + +[Sing] +Texts = 1 + +[SingBackground] +Type=color +ColR=1 +ColB=1 +ColG=1 + +[SingStatic1] +;TextBG +Tex = LyricBar +X = 0 +Y = 482 +W = 800 +H = 98 +Color = ColorDark +Type = Transparent + +[SingStatic2] +;TimeBar +Tex = TimeBar1 +X = 0 +Y = 580 +W = 800 +H = 20 +Color = White +Type = Transparent + +[SingTimeProgress] +X = 40 +Y = 587 +W = 679 +H = 6 +Color = White + +[SingTimeText] +Text = SING_TIME +X = 761 +Y = 582 +Font = 1 +Size = 18 +Color = White +Align = 1 + +[SingInfoMessageBG] +Tex = SongMessage +X = 250 +Y = 40 +W = 300 +H = 25 +Z = 0.98 +Color = GrayDark +Type = Transparent + +[SingInfoMessageText] +X = 400 +Y = 44 +Color = White +Font = 1 +Size = 20 +Align = 1 + +[SingLyricsUpperBar] +X = 80 +W = 640 +Y = 493 +H = 41 +;YOffSet (+/-) for the Sing-Indicator +IndicatorYOffset = 3 + +[SingLyricsLowerBar] +X = 80 +W = 640 +Y = 535 +H = 41 + +# O N E P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # +#PlayerOne + + +[SingP1Static] +X = 9 +Y = 258 +W = 52 +H = 70 +Tex = AvatarFrame2 +Color = P1Dark +Type = Colorized +Alpha = 1 + +#[SingP1Text] +#Text = PLAYERNAME +#X = 80 +#Y = 300 +#Font = 1 +#Size = 22 +#Color = White +#Align = 0 + +[SingP1Static2] +Tex = ScoreBG +X = 680 +Y = 282 +W = 100 +H = 36 +Color = P1Dark +Type = Colorized + +[SingP1TextScore] +Text = 00000 +X = 698 +Y = 284 +Font = 0 +Size = 30 +Color = White +Align = 0 + +[SingP1SingBar] +X = 680 +Y = 316 +W = 100 +H = 8 + +[SingP1Avatar] +X = 15 +Y = 266 +W = 40 +H = 54 +Z = 1 +Alpha = 1 + +# T W O P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # +#Player One +[SingP1TwoPStatic] +X = 18 +Y = 82 +W = 45 +H = 59 +Tex = AvatarFrame2 +Color = P1Dark +Type = Colorized +Alpha = 1 + +#[SingP1TwoPText] +#Text = PLAYERNAME +#X = 80 +#Y = 112 +#Font = 1 +#Size = 22 +#Color = White +#Align = 0 + +[SingP1TwoPStatic2] +Tex = ScoreBG +X = 680 +Y = 92 +W = 100 +H = 36 +Color = P1Dark +Type = Colorized + +[SingP1TwoPTextScore] +Text = 00000 +X = 698 +Y = 94 +Font = 0 +Size = 30 +Color = White +Align = 0 + +[SingP1TwoPSingBar] +X = 680 +Y = 126 +W = 100 +H = 8 + +[SingP1TwoPAvatar] +X = 23 +Y = 88 +W = 35 +H = 47 +Z = 1 +Alpha = 1 + +#Player Two +[SingP2RStatic] +X = 18 +Y = 273 +W = 45 +H = 59 +Tex = AvatarFrame2 +Color = P2Dark +Type = Colorized +Alpha = 1 + +#[SingP2RText] +#Text = PLAYERNAME +#X = 80 +#Y = 302 +#Font = 1 +#Size = 22 +#Color = White +#Align = 0 + +[SingP2RStatic2] +Tex = ScoreBG +X = 680 +Y = 282 +W = 100 +H = 36 +Color = P2Dark +Type = Colorized + +[SingP2RTextScore] +Text = 00000 +X = 698 +Y = 284 +Font = 0 +Size = 30 +Color = White +Align = 0 + +[SingP2RSingBar] +X = 680 +Y = 316 +W = 100 +H = 8 + +[SingP2RAvatar] +X = 23 +Y = 279 +W = 35 +H = 47 +Z = 1 +Alpha = 1 + +# T H R E E P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # +#Player One +[SingP1ThreePStatic] +X = 16 +Y = 57 +W = 45 +H = 59 +Z = 1 +Tex = AvatarFrame2 +Color = P1Dark +Type = Colorized +Alpha = 1 + +[SingP1ThreePText] +#Text = +#X = 27 +#Y = 66 +#Font = 1 +#Size = 24 +#Color = White +#Align = 0 + +[SingP1ThreePStatic2] +Tex = ScoreBG +X = 75 +Y = 61 +W = 100 +H = 36 +Color = P1Dark +Type = Colorized + +[SingP1ThreePTextScore] +Text = 00000 +X = 93 +Y = 63 +Font = 0 +Size = 30 +Color = White +Align = 0 + +[SingP1ThreePSingBar] +X = 75 +Y = 95 +W = 100 +H = 8 + +[SingP1ThreePAvatar] +X = 21 +Y = 63 +W = 35 +H = 47 +Z = 1 +Alpha = 1 + +#Player Two +[SingP2MStatic] +X = 311 +Y = 57 +W = 45 +H = 59 +Tex = AvatarFrame2 +Color = P2Dark +Type = Colorized +Alpha = 1 + +#[SingP2MText] +#Text = P2 +#X = 321 +#Y = 66 +#Font = 1 +#Size = 24 +#Color = White +#Align = 0 + +[SingP2MStatic2] +Tex = ScoreBG +X = 370 +Y = 61 +W = 100 +H = 36 +Color = P2Dark +Type = Colorized + +[SingP2MTextScore] +Text = 00000 +X = 388 +Y = 63 +Font = 0 +Size = 30 +Color = White +Align = 0 + +[SingP2MSingBar] +X = 370 +Y = 95 +W = 100 +H = 8 + +[SingP2MAvatar] +X = 316 +Y = 63 +W = 35 +H = 47 +Z = 1 +Alpha = 1 + +#Player Three +[SingP3RStatic] +X = 611 +Y = 57 +W = 45 +H = 59 +Tex = AvatarFrame2 +Color = P3Dark +Type = Colorized +Alpha = 1 + +#[SingP3RText] +#Text = P3 +#X = 621 +#Y = 66 +#Font = 1 +#Size = 24 +#Color = White +#Align = 0 + +[SingP3RStatic2] +Tex = ScoreBG +X = 670 +Y = 61 +W = 100 +H = 36 +Color = P3Dark +Type = Colorized + +[SingP3RTextScore] +Text = 00000 +X = 688 +Y = 63 +Font = 0 +Size = 30 +Color = White +Align = 0 + +[SingP3SingBar] +X = 670 +Y = 95 +W = 100 +H = 8 + +[SingP3RAvatar] +X = 616 +Y = 63 +W = 35 +H = 47 +Z = 1 +Alpha = 1 + +[SingSongNameStatic] +Tex = SongName +X = 10 +Y = 10 +W = 780 +H = 29 +Color = White +Type = Transparent + +[SingSongNameText] +Text = SongNameText +X = 400 +Y = 13 +Font = 0 +Size = 25 +Color = White +Align = 1 + + +# FOUR P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # +#Player One +[SingP1FourPStatic] +X = 20 +Y = 54 +W = 40 +H = 54 +Tex = AvatarFrame2 +Color = P1Dark +Type = Colorized +Alpha = 1 + +#[SingP1FourPText] +#Text = PLAYERNAME +#X = 25 +#Y = 122 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP1FourPStatic2] +Tex = ScoreBG +X = 80 +Y = 61 +W = 100 +H = 36 +Color = P1Dark +Type = Colorized + +[SingP1FourPTextScore] +Text = 00000 +X = 98 +Y = 63 +Font = 0 +Size = 30 +Color = White +Align = 0 + +[SingP1FourPSingBar] +X = 80 +Y = 95 +W = 100 +H = 8 + +[SingP1FourPAvatar] +X = 24 +Y = 59 +W = 32 +H = 43 +Z = 1 +Alpha = 1 + +#Player Two +[SingP2FourPStatic] +X = 220 +Y = 54 +W = 40 +H = 54 +Tex = AvatarFrame2 +Color = P2Dark +Type = Colorized +Alpha = 1 + +#[SingP2FourPText] +#Text = PLAYERNAME +#X = 24 +#Y = 302 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP2FourPStatic2] +Tex = ScoreBG +X = 280 +Y = 61 +W = 100 +H = 36 +Color = P2Dark +Type = Colorized + +[SingP2FourPTextScore] +Text = 00000 +X = 298 +Y = 63 +Font = 0 +Size = 30 +Color = White +Align = 0 + +[SingP2FourPSingBar] +X = 280 +Y = 95 +W = 100 +H = 8 + +[SingP2FourPAvatar] +X = 224 +Y = 59 +W = 32 +H = 43 +Z = 1 +Alpha = 1 + +#Player Three +[SingP3FourPStatic] +X = 420 +Y = 54 +W = 40 +H = 54 +Tex = AvatarFrame2 +Color = P3Dark +Type = Colorized +Alpha = 1 + +#[SingP3FourPText] +#Text = PLAYERNAME +#X = 395 +#Y = 122 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP3FourPStatic2] +Tex = ScoreBG +X = 480 +Y = 61 +W = 100 +H = 36 +Color = P3Dark +Type = Colorized + +[SingP3FourPTextScore] +Text = 00000 +X = 498 +Y = 63 +Font = 0 +Size = 30 +Color = White +Align = 0 + +[SingP3FourPSingBar] +X = 480 +Y = 95 +W = 100 +H = 8 + +[SingP3FourPAvatar] +X = 424 +Y = 59 +W = 32 +H = 43 +Z = 1 +Alpha = 1 + +#Player Four +[SingP4FourPStatic] +X = 620 +Y = 54 +W = 40 +H = 54 +Tex = AvatarFrame2 +Color = P4Dark +Type = Colorized +Alpha = 1 + +#[SingP4FourPText] +#Text = PLAYERNAME +#X = 395 +#Y = 302 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP4FourPStatic2] +Tex = ScoreBG +X = 680 +Y = 61 +W = 100 +H = 36 +Color = P4Dark +Type = Colorized + +[SingP4FourPTextScore] +Text = 00000 +X = 698 +Y = 63 +Font = 0 +Size = 30 +Color = White +Align = 0 + +[SingP4FourPSingBar] +X = 680 +Y = 95 +W = 100 +H = 8 + +[SingP4FourPAvatar] +X = 624 +Y = 59 +W = 32 +H = 43 +Z = 1 +Alpha = 1 + +# SIX P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # +#Player One +[SingP1SixPStatic] +X = 19 +Y = 98 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P1Dark +Type = Colorized +Alpha = 1 + +[SingP1SixPAvatar] +X = 23 +Y = 103 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +#[SingP1SixPText] +#Text = PLAYERNAME +#X = 25 +#Y = 100 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP1SixPStatic2] +Tex = ScoreBG +X = 20 +Y = 40 +W = 100 +H = 36 +Color = P1Dark +Type = Colorized + +[SingP1SixPTextScore] +Text = 00000 +X = 38 +Y = 42 +Font = 0 +Size = 30 +Color = White +Align = 0 + +[SingP1SixPSingBar] +X = 20 +Y = 76 +W = 100 +H = 8 + +#Player Two +[SingP2SixPStatic] +X = 19 +Y = 225 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P2Dark +Type = Colorized +Alpha = 1 + +[SingP2SixPAvatar] +X = 23 +Y = 230 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +#[SingP2SixPText] +#Text = PLAYERNAME +#X = 25 +#Y = 227 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP2SixPStatic2] +Tex = ScoreBG +X = 150 +Y = 40 +W = 100 +H = 36 +Color = P2Dark +Type = Colorized + +[SingP2SixPTextScore] +Text = 00000 +X = 168 +Y = 42 +Font = 0 +Size = 30 +Color = White +Align = 0 + +[SingP2SixPSingBar] +X = 150 +Y = 75 +W = 100 +H = 8 + +#Player Three +[SingP3SixPStatic] +X = 19 +Y = 350 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P3Dark +Type = Colorized +Alpha = 1 + +[SingP3SixPAvatar] +X = 23 +Y = 355 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +#[SingP3SixPText] +#Text = PLAYERNAME +#X = 25 +#Y = 352 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP3SixPStatic2] +Tex = ScoreBG +X = 280 +Y = 40 +W = 100 +H = 36 +Color = P3Dark +Type = Colorized + +[SingP3SixPTextScore] +Text = 00000 +X = 298 +Y = 42 +Font = 0 +Size = 30 +Color = White +Align = 0 + +[SingP3SixPSingBar] +X = 280 +Y = 76 +W = 100 +H = 8 + +#Player Four +[SingP4SixPStatic] +X = 389 +Y = 98 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P4Dark +Type = Colorized +Alpha = 1 + +[SingP4SixPAvatar] +X = 393 +Y = 103 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +#[SingP4SixPText] +#Text = PLAYERNAME +#X = 395 +#Y = 100 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP4SixPStatic2] +Tex = ScoreBG +X = 410 +Y = 40 +W = 100 +H = 36 +Color = P4Dark +Type = Colorized + +[SingP4SixPTextScore] +Text = 00000 +X = 428 +Y = 42 +Font = 0 +Size = 30 +Color = White +Align = 0 + +[SingP4SixPSingBar] +X = 410 +Y = 76 +W = 100 +H = 8 + +#Player Five +[SingP5SixPStatic] +X = 389 +Y = 225 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P5Dark +Type = Colorized +Alpha = 1 + +[SingP5SixPAvatar] +X = 393 +Y = 230 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +#[SingP5SixPText] +#Text = PLAYERNAME +#X = 395 +#Y = 227 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP5SixPStatic2] +Tex = ScoreBG +X = 540 +Y = 40 +W = 100 +H = 36 +Color = P5Dark +Type = Colorized + +[SingP5SixPTextScore] +Text = 00000 +X = 558 +Y = 42 +Font = 0 +Size = 30 +Color = White +Align = 0 + +[SingP5SixPSingBar] +X = 540 +Y = 76 +W = 100 +H = 8 + +#Player Six +[SingP6SixPStatic] +X = 389 +Y = 350 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P6Dark +Type = Colorized +Alpha = 1 + +[SingP6SixPAvatar] +X = 393 +Y = 355 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +#[SingP6SixPText] +#Text = PLAYERNAME +#X = 395 +#Y = 352 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP6SixPStatic2] +Tex = ScoreBG +X = 670 +Y = 40 +W = 100 +H = 36 +Color = P6Dark +Type = Colorized + +[SingP6SixPTextScore] +Text = 00000 +X = 688 +Y = 42 +Font = 0 +Size = 30 +Color = White +Align = 0 + +[SingP6SixPSingBar] +X = 670 +Y = 76 +W = 100 +H = 8 + +################################## +########## Duet ########## +################################## + +[SingLyricsDuetP2UpperBar] +X = 80 +W = 640 +Y = 493 +H = 41 +;YOffSet (+/-) for the Sing-Indicator +IndicatorYOffset = 3 + +[SingLyricsDuetP2LowerBar] +X = 80 +W = 640 +Y = 535 +H = 41 + +[SingLyricsDuetP1UpperBar] +X = 80 +W = 640 +Y = 5 +H = 41 +;YOffSet (+/-) for the Sing-Indicator +IndicatorYOffset = 3 + +[SingLyricsDuetP1LowerBar] +X = 80 +W = 640 +Y = 49 +H = 41 + +[SingStaticDuet1] +Tex = LyricBar +X = 0 +Y = -5 +W = 800 +H = 93 +Color = White +Type = Transparent + +# T H R E E P L A Y E R D U E T M O D E # # # # # # # # # # # # # # # # # # # # +#Player One +[SingDuetP1ThreePStatic] +X = 11 +Y = 99 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P1Dark +Type = Colorized +Alpha = 1 + +#[SingDuetP1ThreePText] +#Text = PLAYERNAME +#X = 58 +#Y = 118 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingDuetP1ThreePStatic2] +X = 710 +Y = 100 +W = 80 +H = 25 + +[SingDuetP1ThreePTextScore] +X = 725 +Y = 102 +Font = 0 +Size = 24 + +[SingDuetP1ThreePSingBar] +X = 710 +Y = 125 +W = 80 +H = 6 + +[SingDuetP1ThreePAvatar] +X = 15 +Y = 104 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +#Player Two +[SingDuetP2MStatic] +X = 11 +Y = 224 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P2Dark +Type = Colorized +Alpha = 1 + +#[SingDuetP2MText] +#Text = PLAYERNAME +#X = 58 +#Y = 243 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingDuetP2MStatic2] +X = 710 +Y = 225 +W = 80 +H = 25 + +[SingDuetP2MTextScore] +X = 725 +Y = 227 +Font = 0 +Size = 24 + +[SingDuetP2MSingBar] +X = 710 +Y = 250 +W = 80 +H = 6 + +[SingDuetP2MAvatar] +X = 15 +Y = 229 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +#Player Three +[SingDuetP3RStatic] +X = 11 +Y = 349 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P3Dark +Type = Colorized +Alpha = 1 + +#[SingDuetP3RText] +#Text = PLAYERNAME +#X = 58 +#Y = 368 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingDuetP3RStatic2] +X = 710 +Y = 350 +W = 80 +H = 25 + +[SingDuetP3RTextScore] +X = 725 +Y = 352 +Font = 0 +Size = 24 + +[SingDuetP3RSingBar] +X = 710 +Y = 375 +W = 80 +H = 6 + +[SingDuetP3RAvatar] +X = 15 +Y = 354 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +# FOUR DUET P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # +#Player One +[SingP1DuetFourPStatic] +X = 19 +Y = 110 +W = 38 +H = 50 +Tex = AvatarFrame2 +Color = P1Dark +Type = Colorized +Alpha = 1 + +#[SingP1DuetFourPText] +#Text = PLAYERNAME +#X = 65 +#Y = 126 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP1DuetFourPStatic2] +Tex = ScoreBG +X = 305 +Y = 117 +W = 80 +H = 25 + +[SingP1DuetFourPTextScore] +Text = 00000 +X = 320 +Y = 119 +Font = 0 +Size = 24 + +[SingP1DuetFourPSingBar] +X = 305 +Y = 142 +W = 80 +H = 6 + +[SingP1DuetFourPAvatar] +X = 23 +Y = 115 +W = 30 +H = 40 +Z = 1 +Alpha = 1 + +#Player Two +[SingP2DuetFourPStatic] +X = 19 +Y = 292 +W = 38 +H = 50 +Tex = AvatarFrame2 +Color = P2Dark +Type = Colorized +Alpha = 1 + +#[SingP2DuetFourPText] +#Text = PLAYERNAME +#X = 64 +#Y = 306 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP2DuetFourPStatic2] +Tex = ScoreBG +X = 305 +Y = 297 +W = 80 +H = 25 + +[SingP2DuetFourPTextScore] +Text = 00000 +X = 320 +Y = 299 +Font = 0 +Size = 24 + +[SingP2DuetFourPSingBar] +X = 305 +Y = 322 +W = 80 +H = 6 + +[SingP2DuetFourPAvatar] +X = 23 +Y = 297 +W = 30 +H = 40 +Z = 1 +Alpha = 1 + +#Player Three +[SingP3DuetFourPStatic] +X = 389 +Y = 112 +W = 38 +H = 50 +Tex = AvatarFrame2 +Color = P3Dark +Type = Colorized +Alpha = 1 + +#[SingP3DuetFourPText] +#Text = PLAYERNAME +#X = 435 +#Y = 126 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP3DuetFourPStatic2] +Tex = ScoreBG +X = 700 +Y = 117 +W = 80 +H = 25 + +[SingP3DuetFourPTextScore] +Text = 00000 +X = 715 +Y = 119 +Font = 0 +Size = 24 + +[SingP3DuetFourPSingBar] +X = 700 +Y = 142 +W = 80 +H = 6 + +[SingP3DuetFourPAvatar] +X = 393 +Y = 117 +W = 30 +H = 40 +Z = 1 +Alpha = 1 + +#Player Four +[SingP4DuetFourPStatic] +X = 389 +Y = 292 +W = 38 +H = 50 +Tex = AvatarFrame2 +Color = P4Dark +Type = Colorized +Alpha = 1 + +#[SingP4DuetFourPText] +#Text = PLAYERNAME +#X = 435 +#Y = 306 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP4DuetFourPStatic2] +X = 700 +Y = 297 +W = 80 +H = 25 + +[SingP4DuetFourPTextScore] +X = 715 +Y = 299 +Font = 0 +Size = 24 + +[SingP4DuetFourPSingBar] +X = 700 +Y = 322 +W = 80 +H = 6 + +[SingP4DuetFourPAvatar] +X = 393 +Y = 297 +W = 30 +H = 40 +Z = 1 +Alpha = 1 + +# SIX DUET P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # +#Player One +[SingP1DuetSixPStatic] +X = 19 +Y = 100 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P1Dark +Type = Colorized +Alpha = 1 + +[SingP1DuetSixPAvatar] +X = 23 +Y = 105 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +#[SingP1DuetSixPText] +#Text = PLAYERNAME +#X = 25 +#Y = 100 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP1DuetSixPStatic2] +Tex = ScoreBG +X = 305 +Y = 95 +W = 80 +H = 25 +Color = P1Dark +Type = Colorized + +[SingP1DuetSixPTextScore] +Text = 00000 +X = 320 +Y = 97 +Font = 0 +Size = 24 + +[SingP1DuetSixPSingBar] +X = 305 +Y = 120 +W = 80 +H = 6 + +#Player Two +[SingP2DuetSixPStatic] +X = 19 +Y = 227 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P2Dark +Type = Colorized +Alpha = 1 + +[SingP2DuetSixPAvatar] +X = 23 +Y = 232 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +#[SingP2DuetSixPText] +#Text = PLAYERNAME +#X = 25 +#Y = 227 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP2DuetSixPStatic2] +Tex = ScoreBG +X = 305 +Y = 222 +W = 80 +H = 25 +Color = P2Dark +Type = Colorized + +[SingP2DuetSixPTextScore] +Text = 00000 +X = 320 +Y = 224 +Font = 0 +Size = 24 + +[SingP2DuetSixPSingBar] +X = 305 +Y = 247 +W = 80 +H = 6 + +#Player Three +[SingP3DuetSixPStatic] +X = 19 +Y = 352 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P3Dark +Type = Colorized +Alpha = 1 + +[SingP3DuetSixPAvatar] +X = 23 +Y = 357 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +#[SingP3DuetSixPText] +#Text = PLAYERNAME +#X = 25 +#Y = 352 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP3DuetSixPStatic2] +Tex = ScoreBG +X = 305 +Y = 347 +W = 80 +H = 25 +Color = P3Dark +Type = Colorized + +[SingP3DuetSixPTextScore] +Text = 00000 +X = 320 +Y = 349 +Font = 0 +Size = 24 + +[SingP3DuetSixPSingBar] +X = 305 +Y = 372 +W = 80 +H = 6 + +#Player Four +[SingP4DuetSixPStatic] +X = 389 +Y = 100 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P4Dark +Type = Colorized +Alpha = 1 + +[SingP4DuetSixPAvatar] +X = 393 +Y = 105 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +#[SingP4DuetSixPText] +#Text = PLAYERNAME +#X = 395 +#Y = 100 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP4DuetSixPStatic2] +Tex = ScoreBG +X = 700 +Y = 95 +W = 80 +H = 25 +Color = P4Dark +Type = Colorized + +[SingP4DuetSixPTextScore] +Text = 00000 +X = 715 +Y = 97 +Font = 0 +Size = 24 + +[SingP4DuetSixPSingBar] +X = 700 +Y = 120 +W = 80 +H = 6 + +#Player Five +[SingP5DuetSixPStatic] +X = 389 +Y = 227 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P5Dark +Type = Colorized +Alpha = 1 + +[SingP5DuetSixPAvatar] +X = 393 +Y = 232 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +#[SingP5DuetSixPText] +#Text = PLAYERNAME +#X = 395 +#Y = 227 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP5DuetSixPStatic2] +Tex = ScoreBG +X = 700 +Y = 222 +W = 80 +H = 25 +Color = P5Dark +Type = Colorized + +[SingP5DuetSixPTextScore] +Text = 00000 +X = 715 +Y = 224 +Font = 0 +Size = 24 + +[SingP5DuetSixPSingBar] +X = 700 +Y = 247 +W = 80 +H = 6 + +#Player Six +[SingP6DuetSixPStatic] +X = 389 +Y = 352 +W = 34 +H = 46 +Tex = AvatarFrame2 +Color = P6Dark +Type = Colorized +Alpha = 1 + +[SingP6DuetSixPAvatar] +X = 393 +Y = 357 +W = 26 +H = 36 +Z = 1 +Alpha = 1 + +#[SingP6DuetSixPText] +#Text = PLAYERNAME +#X = 395 +#Y = 352 +#Font = 1 +#Size = 18 +#Color = White +#Align = 0 + +[SingP6DuetSixPStatic2] +Tex = ScoreBG +X = 700 +Y = 347 +W = 80 +H = 25 +Color = P6Dark +Type = Colorized + +[SingP6DuetSixPTextScore] +Text = 00000 +X = 715 +Y = 349 +Font = 0 +Size = 24 + +[SingP6DuetSixPSingBar] +X = 700 +Y = 372 +W = 80 +H = 6 + + +## Oscilloscope Position Screen ## + +# O N E P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # +#PlayerOne +[SingP1Oscilloscope] +X = 80 +Y = 275 +H = 30 +W = 100 + +# T W O P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # +#Player One +[SingP1TwoPOscilloscope] +X = 80 +Y = 95 +H = 30 +W = 100 + +#Player Two +[SingP2ROscilloscope] +X = 80 +Y = 285 +H = 30 +W = 100 + +# T H R E E P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # +#Player One +[SingP1ThreePOscilloscope] +X = 15 +Y = 15 +H = 30 +W = 160 + +#Player Two +[SingP2MOscilloscope] +X = 310 +Y = 15 +H = 30 +W = 160 + +#Player Three +[SingP3ROscilloscope] +X = 610 +Y = 15 +H = 30 +W = 160 + +# T H R E E P L A Y E R D U E T M O D E # # # # # # # # # # # # # # # # # # # # +#Player One +[SingDuetP1ThreePOscilloscope] +X = 56 +Y = 110 +H = 25 +W = 100 + +#Player Two +[SingDuetP2MOscilloscope] +X = 56 +Y = 235 +H = 25 +W = 100 + +#Player Three +[SingDuetP3ROscilloscope] +X = 56 +Y = 360 +H = 25 +W = 100 + +## 4/6 Players One Screen ## + +# FOUR P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # +#Player One +[SingP1FourPOscilloscope] +X = 22 +Y = 25 +H = 30 +W = 157 + +#Player Two +[SingP2FourPOscilloscope] +X = 222 +Y = 25 +H = 30 +W = 157 + +#Player Three +[SingP3FourPOscilloscope] +X = 422 +Y = 25 +H = 30 +W = 157 + +#Player Four +[SingP4FourPOscilloscope] +X = 622 +Y = 25 +H = 30 +W = 157 + +# SIX P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # +#Player One +[SingP1SixPOscilloscope] +X = 20 +Y = 8 +H = 30 +W = 100 + +#Player Two +[SingP2SixPOscilloscope] +X = 150 +Y = 8 +H = 30 +W = 100 + +#Player Three +[SingP3SixPOscilloscope] +X = 280 +Y = 8 +H = 30 +W = 100 + +#Player Four +[SingP4SixPOscilloscope] +X = 410 +Y = 8 +H = 30 +W = 100 + +#Player Five +[SingP5SixPOscilloscope] +X = 540 +Y = 8 +H = 30 +W = 100 + +#Player Six +[SingP6SixPOscilloscope] +X = 670 +Y = 8 +H = 30 +W = 100 + +# FOUR DUET P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # +#Player One +[SingP1DuetFourPOscilloscope] +X = 60 +Y = 118 +H = 25 +W = 100 + +#Player Two +[SingP2DuetFourPOscilloscope] +X = 60 +Y = 298 +H = 25 +W = 100 + +#Player Three +[SingP3DuetFourPOscilloscope] +X = 430 +Y = 118 +H = 25 +W = 100 + +#Player Four +[SingP4DuetFourPOscilloscope] +X = 430 +Y = 298 +H = 25 +W = 100 + +# SIX DUET P L A Y E R M O D E # # # # # # # # # # # # # # # # # # # # +#Player One +[SingP1DuetSixPOscilloscope] +X = 60 +Y = 107 +H = 25 +W = 100 + +#Player Two +[SingP2DuetSixPOscilloscope] +X = 60 +Y = 236 +H = 25 +W = 100 + +#Player Three +[SingP3DuetSixPOscilloscope] +X = 60 +Y = 362 +H = 25 +W = 100 + +#Player Four +[SingP4DuetSixPOscilloscope] +X = 430 +Y = 107 +H = 25 +W = 100 + +#Player Five +[SingP5DuetSixPOscilloscope] +X = 430 +Y = 236 +H = 25 +W = 100 + +#Player Six +[SingP6DuetSixPOscilloscope] +X = 430 +Y = 362 +H = 25 +W = 100 + +[Score] +Texts = 1 + +[ScoreBackground] +Tex = ScoreScreenBG + +[ScoreText1] +X = 50 +Y = 6 +Color = White +Font = 0 +Size = 60 +Text = SONG_SCORE +Align = 0 + +[ScoreTextArtistTitle] +X = 50 +Y = 59 +Color = White +Font = 0 +Size = 30 +Align = 0 +Text = ArtistTitle + +[ScoreStatic1] +X = 323 +Y = 550 +W = 27 +H = 30 +Tex = ButtonEnter +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 2 + +[ScoreText2] +X = 360 +Y = 553 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = SING_LEGEND_CONTINUE +Reflection = 0 +ReflectionSpacing = 13 +#end of main stuff + +# # # # # # # # # # # # # # # # # # One Player Score # # # # # # # # # # # # +[ScoreTextName1] +X = 197 +Y = 280 +Font = 0 +Size = 40 +Text = P1 +Font = 1 +Color = White +Align = 0 + +# Rating +[ScoreStaticRatingPicture1] +X = 385 +Y = 140 +H = 80 +W = 75 + +[ScoreTextScore1] +X = 422 +Y = 235 +W = 100 +Color = White +Font = 0 +Size = 27 +Text = Tone Deaf +Align = 1 + +# Note Score +[ScoreStaticBoxDark1] +Tex = ScoreBar_box_dark +X = 203 +Y = 327 +W = 16 +H = 20 +Color = P1Dark +Type = Colorized + +[ScoreTextNotes1] +X = 227 +Y = 322 +Color = White +Font = 0 +Size = 30 +Text = SING_NOTES +Align = 0 + +[ScoreTextNotesScore1] +X = 487 +Y = 322 +Color = White +Font = 0 +Size = 30 +Align = 2 +Text = 0 + +# A simple line +[ScorePlayer1Static1] +Tex = ScoreLine +X = 200 +Y = 351 +W = 287 +H = 1 +Color = White +Type = Colorized + +# Line Bonus +[ScoreStaticBoxLight1] +Tex = ScoreBar_box_light +X = 203 +Y = 358 +W = 16 +H = 20 +Color = P1Light +Type = Colorized + +[ScoreTextLineBonus1] +X = 227 +Y = 352 +Color = White +Font = 0 +Size = 30 +Text = SING_PHRASE_BONUS +Align = 0 + +[ScoreTextLineBonusScore1] +X = 487 +Y = 352 +Color = White +Font = 0 +Size = 30 +Align = 2 +Text = 0 + +# A simple line +[ScorePlayer1Static2] +Tex = ScoreLine +X = 200 +Y = 382 +W = 287 +H = 1 +Color = White +Type = Colorized + +# Golden Notes +[ScoreStaticBoxLightest1] +Tex = ScoreBar_box_lightest +X = 203 +Y = 390 +W = 16 +H = 20 +Color = P1Lightest +Type = Colorized + +[ScoreTextGoldenNotes1] +X = 227 +Y = 383 +Color = White +Font = 0 +Size = 30 +Text = SING_GOLDEN_NOTES +Align = 0 + +[ScoreTextGoldenNotesScore1] +X = 487 +Y = 383 +Color = White +Font = 0 +Size = 30 +Align = 2 +Text = 0 + +[ScoreTextTotal1] +X = 225 +Y = 454 +Color = White +Font = 0 +Size = 30 +Text = SING_TOTAL +Align = 0 +Reflection = 1 +ReflectionSpacing = 26 + +[ScoreTextTotalSCore1] +X = 487 +Y = 444 +Color = White +Font = 0 +Size = 42 +Align = 2 +Text = 0 +Reflection = 1 +ReflectionSpacing = 24 + +#ScoreBar +[ScoreStaticBackLevel1] +Tex = ScoreLevel +X = 503 +Y = 168 +W = 95 +H = 310 +Color = P1Lightest +Type = Colorized + +[ScoreStaticBackLevelRound1] +Tex = ScoreLevelRound +X = 503 +Y = 138 +W = 95 +H = 8 +Color = P1Lightest +Type = Colorized + +[ScoreStaticLevel1] +Tex = ScoreLevel +X = 503 +Y = 400 +W = 95 +H = 10 +Color = P1Dark +Type = Colorized + +[ScoreStaticLevelRound1] +Tex = ScoreLevelRound +X = 503 +Y = 392 +W = 95 +H = 8 +Color = P1Dark +Type = Colorized + +[ScorePlayer1Static3] +Tex = ScoreEndCap +X = 499 +Y = 478 +W = 110 +H = 30 +z = 0.9 +Color = P1Dark +Type = Colorized +Reflection = 1 +ReflectionSpacing = 0 + +[ScorePlayer1Static4] +Tex = ScoreGlassBox +X = 499 +Y = 148 +W = 113 +H = 331 +z = 0.89 +Color = White +Type = Transparent + +[ScorePlayer1Avatar] +X = 202 +Y = 170 +W = 72 +H = 97 +Z = 1 + +[ScorePlayer1Static5] +X = 193 +Y = 158 +W = 91 +H = 121 +Z = 0.9 +Tex = AvatarFrame2 +Color = P1Dark +Type = Colorized + +# # # # # # # # # # # # # # # # # # Two Player Score # # # # # # # # # # # # +# P L A Y E R O N E + +[ScoreStaticRatingPicture2] +X = 180 +Y = 150 +H = 85 +W = 75 + +[ScoreTextScore2] +X = 217 +Y = 235 +W = 100 +Color = White +Font = 0 +Size = 27 +Text = Tone Deaf +Align = 1 + +[ScoreStaticBoxDark2] +Tex = ScoreBar_box_dark +X = 50 +Y = 327 +W = 16 +H = 20 +Color = P1Dark +Type = Colorized + +[ScoreTextNotes2] +X = 72 +Y = 324 +Color = White +Font = 0 +Size = 24 +Text = SING_NOTES +Align = 0 + +[ScoreTextNotesScore2] +X = 282 +Y = 324 +Color = White +Font = 0 +Size = 24 +Align = 2 +Text = 0000 + +[ScoreStaticBoxLight2] +Tex = ScoreBar_box_light +X = 50 +Y = 358 +W = 16 +H = 20 +Color = P1Lightest +Type = Colorized + +[ScoreTextLineBonus2] +X = 72 +Y = 355 +Color = White +Font = 0 +Size = 24 +Text = SING_PHRASE_BONUS +Align = 0 + +[ScoreTextLineBonusScore2] +X = 282 +Y = 355 +Color = White +Font = 0 +Size = 24 +Align = 2 +Text = 0000 + +[ScoreStaticBoxLightest2] +Tex = ScoreBar_box_lightest +X = 50 +Y = 390 +W = 16 +H = 20 +Color = P1Lightest +Type = Colorized + +[ScoreTextGoldenNotes2] +X = 72 +Y = 387 +Color = White +Font = 0 +Size = 24 +Text = SING_GOLDEN_NOTES +Align = 0 + +[ScoreTextGoldenNotesScore2] +X = 282 +Y = 387 +Color = White +Font = 0 +Size = 24 +Align = 2 +Text = 0000 + +[ScoreTextTotal2] +X = 70 +Y = 454 +Color = White +Font = 0 +Size = 30 +Text = SING_TOTAL +Reflection = 1 +ReflectionSpacing = 24 + +[ScoreTextTotalSCore2] +X = 283 +Y = 444 +Color = White +Font = 0 +Size = 42 +Align = 2 +Text = 00000 +Reflection = 1 +ReflectionSpacing = 24 + +# Lines +[ScorePlayer2Static1] +Tex = ScoreLine +X = 45 +Y = 351 +W = 237 +H = 1 +Type = Colorized +Color = White + +[ScorePlayer2Static2] +Tex = ScoreLine +X = 45 +Y = 382 +W = 237 +H = 1 +Type = Colorized +Color = White + +#ScoreBar +[ScoreStaticBackLevel2] +Tex = ScoreLevel +X = 298 +Y = 168 +W = 95 +H = 310 +Color = P1Lightest +Type = Colorized + +[ScoreStaticBackLevelRound2] +Tex = ScoreLevelRound +X = 298 +Y = 138 +W = 95 +H = 8 +Color = P1Lightest +Type = Colorized + +[ScoreStaticLevel2] +Tex = ScoreLevel +X = 298 +Y = 400 +W = 95 +H = 10 +Color = P1Dark +Type = Colorized + +[ScoreStaticLevelRound2] +Tex = ScoreLevelRound +X = 298 +Y = 392 +W = 95 +H = 8 +Color = P1Dark +Type = Colorized + +[ScorePlayer2Static3] +Tex = ScoreEndCap +X = 294 +Y = 478 +W = 110 +H = 30 +z = 0.9 +Color = P1Dark +Type = Colorized +Reflection = 1 +ReflectionSpacing = 0 + +[ScorePlayer2Static4] +Tex = ScoreGlassBox +X = 294 +Y = 148 +W = 113 +H = 331 +z = 0.89 +Color = White +Type = Transparent + +[ScorePlayer2Avatar] +X = 50 +Y = 169 +W = 72 +H = 97 +Z = 1 + +[ScorePlayer2Static5] +X = 41 +Y = 157 +W = 91 +H = 121 +Z = 0.9 +Tex = AvatarFrame2 +Color = P1Dark +Type = Colorized + +# P L A Y E R T W O + +[ScoreStaticRatingPicture3] +X = 545 +Y = 165 +H = 75 +W = 75 + +[ScoreTextScore3] +X = 583 +Y = 235 +W = 100 +Color = White +Font = 0 +Size = 27 +Text = Tone Deaf +Align = 1 + +[ScoreStaticBoxDark3] +Tex = ScoreBar_box_dark +X = 735 +Y = 327 +W = 16 +H = 20 +Color = P2Dark +Type = Colorized + +[ScoreTextNotes3] +X = 728 +Y = 324 +Color = White +Font = 0 +Size = 24 +Text = SING_NOTES +Align = 2 + +[ScoreTextNotesScore3] +X = 518 +Y = 324 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = 0000 + +[ScoreStaticBoxLight3] +Tex = ScoreBar_box_light +X = 735 +Y = 358 +W = 16 +H = 20 +Color = P2Lightest +Type = Colorized + +[ScoreTextLineBonus3] +X = 728 +Y = 355 +Color = White +Font = 0 +Size = 24 +Text = SING_PHRASE_BONUS +Align = 2 + +[ScoreTextLineBonusScore3] +X = 518 +Y = 355 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = 0000 + +[ScoreStaticBoxLightest3] +Tex = ScoreBar_box_lightest +X = 735 +Y = 390 +W = 16 +H = 20 +Color = P2Lightest +Type = Colorized + +[ScoreTextGoldenNotes3] +X = 728 +Y = 387 +Color = White +Font = 0 +Size = 24 +Text = SING_GOLDEN_NOTES +Align = 2 + +[ScoreTextGoldenNotesScore3] +X = 518 +Y = 387 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = 0000 + +[ScoreTextTotal3] +X = 730 +Y = 454 +Color = White +Font = 0 +Size = 30 +Text = SING_TOTAL +Align = 2 +Reflection = 1 +ReflectionSpacing = 24 + +[ScoreTextTotalScore3] +X = 517 +Y = 444 +Color = White +Font = 0 +Size = 42 +Align = 0 +Text = 00000 +Reflection = 1 +ReflectionSpacing = 24 + +#Lines +[ScorePlayer3Static1] +Tex = ScoreLine +X = 518 +Y = 351 +W = 237 +H = 1 +Type = Colorized +Color = White + +[ScorePlayer3Static2] +Tex = ScoreLine +X = 518 +Y = 382 +W = 237 +H = 1 +Type = Colorized +Color = White + +#ScoreBar +[ScoreStaticBackLevel3] +Tex = ScoreLevel +X = 409 +Y = 168 +W = 95 +H = 310 +Color = P2Lightest +Type = Colorized + +[ScoreStaticBackLevelRound3] +Tex = ScoreLevelRound +X = 409 +Y = 138 +W = 95 +H = 8 +Color = P2Lightest +Type = Colorized + +[ScoreStaticLevel3] +Tex = ScoreLevel +X = 409 +Y = 400 +W = 95 +H = 10 +Color = P2Dark +Type = Colorized + +[ScoreStaticLevelRound3] +Tex = ScoreLevelRound +X = 409 +Y = 392 +W = 95 +H = 8 +Color = P2Dark +Type = Colorized + +[ScorePlayer3Static3] +Tex = ScoreEndCap +X = 405 +Y = 478 +W = 110 +H = 30 +z = 0.9 +Color = P2Dark +Type = Colorized +Reflection = 1 +ReflectionSpacing = 0 + +[ScorePlayer3Static4] +Tex = ScoreGlassBox +X = 405 +Y = 148 +W = 113 +H = 331 +z = 0.89 +Color = White +Type = Transparent + +[ScorePlayer3Avatar] +X = 673 +Y = 169 +W = 72 +H = 97 +Z = 1 + +[ScorePlayer3Static5] +X = 664 +Y = 157 +W = 91 +H = 121 +Z = +Tex = AvatarFrame2 +Color = P2Dark +Type = Colorized + +# # # # # # # # # # # # # # # # # # Three Player Score # # # # # # # # # # # # +# P L A Y E R O N E + +# Rating + +[ScoreTextName4] +X = 22 +Y = 135 +Font = 1 +Size = 38 +Align = 0 +Text = P3 +Color = White + +[ScoreStaticRatingPicture4] +X = 160 +Y = 265 +H = 75 +W = 75 +Z = 2 + +[ScoreTextScore4] +X = 197 +Y = 335 +W = 100 +Color = White +Font = 0 +Size = 27 +Text = Tone Deaf +Align = 1 + +[ScoreTextNotes4] +X = 45 +Y = 180 +Font = 0 +Size = 26 +Align = 0 +Text = SING_NOTES +Color = White + +[ScoreTextNotesScore4] +X = 260 +Y = 180 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreTextLineBonus4] +X = 45 +Y = 205 +Font = 0 +Size = 26 +Align = 0 +Text = SING_PHRASE_BONUS +Color = White + +[ScoreTextLineBonusScore4] +X = 260 +Y = 205 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreTextGoldenNotes4] +X = 45 +Y = 230 +Font = 0 +Size = 26 +Align = 0 +Text = SING_GOLDEN_NOTES +Color = White + +[ScoreTextGoldenNotesScore4] +X = 260 +Y = 230 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreStaticBoxDark4] +Tex = ScoreBar_box_dark +X = 22 +Y = 185 +W = 16 +H = 20 +Color = P1Dark +Type = Colorized + +[ScoreStaticBoxLight4] +Tex = ScoreBar_box_light +X = 22 +Y = 210 +W = 16 +H = 20 +Color = P1Light +Type = Colorized + +[ScoreStaticBoxLightest4] +Tex = ScoreBar_box_lightest +X = 22 +Y = 235 +W = 16 +H = 20 +Color = P1Lightest +Type = Colorized + +[ScoreTextTotal4] +X = 74 +Y = 500 +Font = 0 +Size = 30 +Align = 1 +Text = SING_TOTAL +Color = White + +[ScoreTextTotalScore4] +X = 195 +Y = 495 +Font = 0 +Size = 42 +Align = 1 +Text = 00000 +Color = White + +#lines +[ScorePlayer4Static1] +X = 20 +Y = 180 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScorePlayer4Static2] +X = 20 +Y = 205 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScorePlayer4Static3] +X = 20 +Y = 230 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScorePlayer4Static4] +X = 20 +Y = 255 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +#ScoreBar +[ScoreStaticBackLevel4] +Tex = ScoreLevel +X = 24 +Y = 291 +W = 95 +H = 169 +Color = P4Lightest +Type = Colorized + +[ScoreStaticBackLevelRound4] +Tex = ScoreLevelRound +X = 24 +Y = 138 +W = 95 +H = 8 +Color = P4Lightest +Type = Colorized + +[ScoreStaticLevel4] +Tex = ScoreLevel +X = 24 +Y = 400 +W = 95 +H = 10 +Color = P4Dark +Type = Colorized + +[ScoreStaticLevelRound4] +Tex = ScoreLevelRound +X = 24 +Y = 392 +W = 95 +H = 8 +Color = P4Dark +Type = Colorized + +[ScorePlayer4Static5] +Tex = ScoreEndCap +X = 20 +Y = 450 +W = 110 +H = 30 +Z = 0.9 +Color = P1Dark +Type = Colorized +Reflection = 1 +ReflectionSpacing = 0 + +[ScorePlayer4Static6] +Tex = ScoreGlassBox +X = 20 +Y = 270 +W = 113 +H = 180 +Z = 0.89 +Color = White +Type = Transparent + +[ScorePlayer4Avatar] +X = 168 +Y = 391 +W = 58 +H = 82 +Z = 1 + +[ScorePlayer4Static7] +X = 161 +Y = 382 +W = 72 +H = 100 +Z = 0.9 +Tex = AvatarFrame2 +Color = P1Dark +Type = Colorized + +# P L A Y E R T W O + +# Rating + +[ScoreTextName5] +X = 282 +Y = 135 +Font = 1 +Size = 38 +Align = 0 +Text = P2 +Color = White + +[ScoreStaticRatingPicture5] +X = 420 +Y = 265 +H = 75 +W = 75 + +[ScoreTextScore5] +X = 457 +Y = 335 +W = 100 +Color = White +Font = 0 +Size = 27 +Text = Tone Deaf +Align = 1 + +[ScoreTextNotes5] +X = 305 +Y = 180 +Font = 0 +Size = 26 +Align = 0 +Text = SING_NOTES +Color = White + +[ScoreTextNotesScore5] +X = 520 +Y = 180 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreTextLineBonus5] +X = 305 +Y = 205 +Font = 0 +Size = 26 +Align = 0 +Text = SING_PHRASE_BONUS +Color = White + +[ScoreTextLineBonusScore5] +X = 520 +Y = 205 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreTextGoldenNotes5] +X = 305 +Y = 230 +Font = 0 +Size = 26 +Align = 0 +Text = SING_GOLDEN_NOTES +Color = White + +[ScoreTextGoldenNotesScore5] +X = 520 +Y = 230 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreStaticBoxDark5] +Tex = ScoreBar_box_dark +X = 282 +Y = 185 +W = 16 +H = 20 +Color = P2Dark +Type = Colorized + +[ScoreStaticBoxLight5] +Tex = ScoreBar_box_light +X = 282 +Y = 210 +W = 16 +H = 20 +Color = P2Light +Type = Colorized + +[ScoreStaticBoxLightest5] +Tex = ScoreBar_box_lightest +X = 282 +Y = 235 +W = 16 +H = 20 +Color = P2Lightest +Type = Colorized + +[ScoreTextTotal5] +X = 325 +Y = 500 +Font = 0 +Size = 30 +Align = 1 +Text = SING_TOTAL +Color = White + +[ScoreTextTotalScore5] +X = 455 +Y = 495 +Font = 0 +Size = 42 +Align = 1 +Text = 00000 +Color = White + +#lines +[ScorePlayer5Static1] +X = 280 +Y = 180 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScorePlayer5Static2] +X = 280 +Y = 205 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScorePlayer5Static3] +X = 280 +Y = 230 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScorePlayer5Static4] +X = 280 +Y = 255 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +#ScoreBar +[ScoreStaticBackLevel5] +Tex = ScoreLevel +X = 284 +Y = 291 +W = 95 +H = 169 +Color = P5Lightest +Type = Colorized + +[ScoreStaticBackLevelRound5] +Tex = ScoreLevelRound +X = 284 +Y = 138 +W = 95 +H = 8 +Color = P5Lightest +Type = Colorized + +[ScoreStaticLevel5] +Tex = ScoreLevel +X = 284 +Y = 400 +W = 95 +H = 10 +Color = P5Dark +Type = Colorized + +[ScoreStaticLevelRound5] +Tex = ScoreLevelRound +X = 284 +Y = 392 +W = 95 +H = 8 +Color = P5Dark +Type = Colorized + +[ScorePlayer5Static5] +Tex = ScoreEndCap +X = 280 +Y = 450 +W = 110 +H = 30 +Z = 0.9 +Color = P2Dark +Type = Colorized +Reflection = 1 +ReflectionSpacing = 0 + +[ScorePlayer5Static6] +Tex = ScoreGlassBox +X = 280 +Y = 270 +W = 113 +H = 180 +Z = 0.89 +Color = White +Type = Transparent + +[ScorePlayer5Avatar] +X = 427 +Y = 391 +W = 58 +H = 82 +Z = 0.9 + +[ScorePlayer5Static7] +X = 421 +Y = 382 +W = 72 +H = 100 +Z = 0.9 +Tex = AvatarFrame2 +Color = P2Dark +Type = Colorized + +# P L A Y E R T H R E E +[ScoreTextName6] +X = 540 +Y = 135 +Font = 1 +Size = 38 +Align = 0 +Text = P3 +Color = White + +# Rating +[ScoreStaticRatingPicture6] +X = 680 +Y = 265 +H = 75 +W = 75 + +[ScoreTextScore6] +X = 717 +Y = 335 +W = 100 +Color = White +Font = 0 +Size = 27 +Text = Tone Deaf +Align = 1 + +[ScoreTextNotes6] +X = 565 +Y = 180 +Font = 0 +Size = 26 +Align = 0 +Text = SING_NOTES +Color = White + +[ScoreTextNotesScore6] +X = 780 +Y = 180 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreTextLineBonus6] +X = 565 +Y = 205 +Font = 0 +Size = 26 +Align = 0 +Text = SING_PHRASE_BONUS +Color = White + +[ScoreTextLineBonusScore6] +X = 780 +Y = 205 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreTextGoldenNotes6] +X = 565 +Y = 230 +Font = 0 +Size = 26 +Align = 0 +Text = SING_GOLDEN_NOTES +Color = White + +[ScoreTextGoldenNotesScore6] +X = 780 +Y = 230 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreStaticBoxDark6] +Tex = ScoreBar_box_dark +X = 542 +Y = 185 +W = 16 +H = 20 +Color = P3Dark +Type = Colorized + +[ScoreStaticBoxLight6] +Tex = ScoreBar_box_light +X = 542 +Y = 210 +W = 16 +H = 20 +Color = P3Light +Type = Colorized + +[ScoreStaticBoxLightest6] +Tex = ScoreBar_box_lightest +X = 542 +Y = 235 +W = 16 +H = 20 +Color = P3Lightest +Type = Colorized + +[ScoreTextTotal6] +X = 590 +Y = 500 +Font = 0 +Size = 30 +Align = 1 +Text = SING_TOTAL +Color = White + +[ScoreTextTotalScore6] +X = 720 +Y = 495 +Font = 0 +Size = 42 +Align = 1 +Text = 00000 +Color = White + +#lines +[ScorePlayer6Static1] +X = 540 +Y = 180 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScorePlayer6Static2] +X = 540 +Y = 205 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScorePlayer6Static3] +X = 540 +Y = 230 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScorePlayer6Static4] +X = 540 +Y = 255 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +#ScoreBar +[ScoreStaticBackLevel6] +Tex = ScoreLevel +X = 544 +Y = 291 +W = 95 +H = 169 +Color = P6Lightest +Type = Colorized + +[ScoreStaticBackLevelRound6] +Tex = ScoreLevelRound +X = 544 +Y = 138 +W = 95 +H = 8 +Color = P6Lightest +Type = Colorized + +[ScoreStaticLevel6] +Tex = ScoreLevel +X = 544 +Y = 400 +W = 95 +H = 10 +Color = P6Dark +Type = Colorized + +[ScoreStaticLevelRound6] +Tex = ScoreLevelRound +X = 544 +Y = 392 +W = 95 +H = 8 +Color = P6Dark +Type = Colorized + +[ScorePlayer6Static5] +Tex = ScoreEndCap +X = 540 +Y = 450 +W = 110 +H = 30 +z = 0.9 +Color = P3Dark +Type = Colorized +Reflection = 1 +ReflectionSpacing = 0 + +[ScorePlayer6Static6] +Tex = ScoreGlassBox +X = 540 +Y = 270 +W = 113 +H = 180 +Z = 0.89 +Color = White +Type = Transparent + +[ScorePlayer6Avatar] +X = 689 +Y = 391 +W = 58 +H = 82 +Z = 0.9 + +[ScorePlayer6Static7] +X = 682 +Y = 382 +W = 72 +H = 100 +Z = 0.9 +Tex = AvatarFrame2 +Color = P3Dark +Type = Colorized + +################################################# +## ## +## Four Player Score One Screen ## +## ## +################################################# +# P L A Y E R O N E +[ScoreFourPTextName1] +X = 75 +Y = 140 +Font = 1 +Size = 32 +Align = 0 +Text = P1 +Color = White + +# Rating +[ScoreFourPStaticRatingPicture1] +X = 315 +Y = 160 +H = 55 +W = 55 +Z = 100 + +[ScoreFourPTextScore1] +X = 340 +Y = 220 +W = 100 +Color = White +Font = 0 +Size = 24 +Text = Tone Deaf +Align = 1 + +[ScoreFourPTextNotes1] +X = 45 +Y = 180 +Font = 0 +Size = 26 +Align = 0 +Text = SING_NOTES +Color = White + +[ScoreFourPTextNotesScore1] +X = 260 +Y = 180 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreFourPTextLineBonus1] +X = 45 +Y = 205 +Font = 0 +Size = 26 +Align = 0 +Text = SING_PHRASE_BONUS +Color = White + +[ScoreFourPTextLineBonusScore1] +X = 260 +Y = 205 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreFourPTextGoldenNotes1] +X = 45 +Y = 230 +Font = 0 +Size = 26 +Align = 0 +Text = SING_GOLDEN_NOTES +Color = White + +[ScoreFourPTextGoldenNotesScore1] +X = 260 +Y = 230 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreFourPStaticBoxDark1] +Tex = ScoreBar_box_dark +X = 20 +Y = 185 +W = 18 +H = 20 +Color = P1Dark +Type = Colorized + +[ScoreFourPStaticBoxLight1] +Tex = ScoreBar_box_light +X = 20 +Y = 210 +W = 18 +H = 20 +Color = P1Light +Type = Colorized + +[ScoreFourPStaticBoxLightest1] +Tex = ScoreBar_box_lightest +X = 20 +Y = 235 +W = 18 +H = 20 +Color = P1Lightest +Type = Colorized + +[ScoreFourPTextTotal1] +X = 45 +Y = 280 +Font = 0 +Size = 30 +Align = 0 +Text = SING_TOTAL +Color = White + +[ScoreFourPTextTotalScore1] +X = 260 +Y = 275 +Font = 0 +Size = 42 +Align = 2 +Text = 00000 +Color = White + +#lines +[ScoreFourPPlayer1Static1] +X = 20 +Y = 180 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreFourPPlayer1Static2] +X = 20 +Y = 205 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreFourPPlayer1Static3] +X = 20 +Y = 230 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreFourPPlayer1Static4] +X = 20 +Y = 255 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +#ScoreBar +[ScoreFourPStaticBackLevel1] +Tex = ScoreLevel +X = 294 +Y = 155 +W = 95 +H = 125 +Color = P1Lightest +Type = Colorized + +[ScoreFourPStaticBackLevelRound1] +Tex = ScoreLevelRound +X = 294 +Y = 155 +W = 95 +H = 8 +Color = P1Lightest +Type = Colorized + +[ScoreFourPStaticLevel1] +Tex = ScoreLevel +X = 294 +Y = 400 +W = 95 +H = 10 +Color = P1Dark +Type = Colorized + +[ScoreFourPStaticLevelRound1] +Tex = ScoreLevelRound +X = 294 +Y = 392 +W = 95 +H = 8 +Color = P1Dark +Type = Colorized + +[ScoreFourPPlayer1Static5] +Tex = ScoreEndCap +X = 290 +Y = 280 +W = 110 +H = 30 +Z = 0.9 +Color = P1Dark +Type = Colorized +Reflection = 1 +ReflectionSpacing = 0 + +[ScoreFourPPlayer1Static6] +Tex = ScoreGlassBox +X = 290 +Y = 140 +W = 113 +H = 140 +Z = 0.89 +Color = White +Type = Transparent + + +[ScoreFourPPlayer1Avatar] +X = 24 +Y = 115 +W = 36 +H = 49 +Z = 1 + +[ScoreFourPPlayer1Static7] +X = 20 +Y = 110 +W = 44 +H = 59 +Z = 0.9 +Tex = AvatarFrame2 +Color = P1Dark +Type = Colorized + +# P L A Y E R T W O +[ScoreFourPTextName2] +X = 595 +Y = 140 +Font = 1 +Size = 32 +Align = 0 +Text = P2 +Color = White + +# Rating +[ScoreFourPStaticRatingPicture2] +X = 435 +Y = 160 +H = 55 +W = 55 + +[ScoreFourPTextScore2] +X = 460 +Y = 220 +W = 100 +Color = White +Font = 0 +Size = 24 +Text = Tone Deaf +Align = 1 + +[ScoreFourPTextNotes2] +X = 565 +Y = 180 +Font = 0 +Size = 26 +Align = 0 +Text = SING_NOTES +Color = White + +[ScoreFourPTextNotesScore2] +X = 780 +Y = 180 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreFourPTextLineBonus2] +X = 565 +Y = 205 +Font = 0 +Size = 26 +Align = 0 +Text = SING_PHRASE_BONUS +Color = White + +[ScoreFourPTextLineBonusScore2] +X = 780 +Y = 205 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreFourPTextGoldenNotes2] +X = 565 +Y = 230 +Font = 0 +Size = 26 +Align = 0 +Text = SING_GOLDEN_NOTES +Color = White + +[ScoreFourPTextGoldenNotesScore2] +X = 780 +Y = 230 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreFourPStaticBoxDark2] +Tex = ScoreBar_box_dark +X = 540 +Y = 185 +W = 18 +H = 20 +Color = P2Dark +Type = Colorized + +[ScoreFourPStaticBoxLight2] +Tex = ScoreBar_box_light +X = 540 +Y = 210 +W = 18 +H = 20 +Color = P2Light +Type = Colorized + +[ScoreFourPStaticBoxLightest2] +Tex = ScoreBar_box_lightest +X = 540 +Y = 235 +W = 18 +H = 20 +Color = P2Lightest +Type = Colorized + +[ScoreFourPTextTotal2] +X = 565 +Y = 280 +Font = 0 +Size = 30 +Align = 0 +Text = SING_TOTAL +Color = White + +[ScoreFourPTextTotalScore2] +X = 780 +Y = 275 +Font = 0 +Size = 42 +Align = 2 +Text = 00000 +Color = White + +#lines +[ScoreFourPPlayer2Static1] +X = 540 +Y = 180 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreFourPPlayer2Static2] +X = 540 +Y = 205 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreFourPPlayer2Static3] +X = 540 +Y = 230 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreFourPPlayer2Static4] +X = 540 +Y = 255 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +#ScoreBar +[ScoreFourPStaticBackLevel2] +Tex = ScoreLevel +X = 414 +Y = 155 +W = 95 +H = 125 +Color = P2Lightest +Type = Colorized + +[ScoreFourPStaticBackLevelRound2] +Tex = ScoreLevelRound +X = 414 +Y = 155 +W = 95 +H = 8 +Color = P2Lightest +Type = Colorized + +[ScoreFourPStaticLevel2] +Tex = ScoreLevel +X = 414 +Y = 400 +W = 95 +H = 10 +Color = P2Dark +Type = Colorized + +[ScoreFourPStaticLevelRound2] +Tex = ScoreLevelRound +X = 414 +Y = 392 +W = 95 +H = 8 +Color = P2Dark +Type = Colorized + +[ScoreFourPPlayer2Static5] +Tex = ScoreEndCap +X = 410 +Y = 280 +W = 110 +H = 30 +Z = 0.9 +Color = P2Dark +Type = Colorized +Reflection = 1 +ReflectionSpacing = 0 + +[ScoreFourPPlayer2Static6] +Tex = ScoreGlassBox +X = 410 +Y = 140 +W = 113 +H = 140 +Z = 0.89 +Color = White +Type = Transparent + +[ScoreFourPPlayer2Avatar] +X = 544 +Y = 115 +W = 36 +H = 49 +Z = 1 + +[ScoreFourPPlayer2Static7] +X = 540 +Y = 110 +W = 44 +H = 59 +Z = 0.9 +Tex = AvatarFrame2 +Color = P2Dark +Type = Colorized + +# P L A Y E R T H R E E +[ScoreFourPTextName3] +X = 75 +Y = 360 +Font = 1 +Size = 32 +Align = 0 +Text = P1 +Color = White + +# Rating +[ScoreFourPStaticRatingPicture3] +X = 315 +Y = 380 +H = 55 +W = 55 +Z = 100 + +[ScoreFourPTextScore3] +X = 340 +Y = 440 +W = 100 +Color = White +Font = 0 +Size = 24 +Text = Tone Deaf +Align = 1 + +[ScoreFourPTextNotes3] +X = 45 +Y = 400 +Font = 0 +Size = 26 +Align = 0 +Text = SING_NOTES +Color = White + +[ScoreFourPTextNotesScore3] +X = 260 +Y = 400 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreFourPTextLineBonus3] +X = 45 +Y = 425 +Font = 0 +Size = 26 +Align = 0 +Text = SING_PHRASE_BONUS +Color = White + +[ScoreFourPTextLineBonusScore3] +X = 260 +Y = 425 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreFourPTextGoldenNotes3] +X = 45 +Y = 450 +Font = 0 +Size = 26 +Align = 0 +Text = SING_GOLDEN_NOTES +Color = White + +[ScoreFourPTextGoldenNotesScore3] +X = 260 +Y = 450 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreFourPStaticBoxDark3] +Tex = ScoreBar_box_dark +X = 20 +Y = 405 +W = 18 +H = 20 +Color = P3Dark +Type = Colorized + +[ScoreFourPStaticBoxLight3] +Tex = ScoreBar_box_light +X = 20 +Y = 430 +W = 18 +H = 20 +Color = P3Light +Type = Colorized + +[ScoreFourPStaticBoxLightest3] +Tex = ScoreBar_box_lightest +X = 20 +Y = 455 +W = 18 +H = 20 +Color = P3Lightest +Type = Colorized + +[ScoreFourPTextTotal3] +X = 45 +Y = 500 +Font = 0 +Size = 30 +Align = 0 +Text = SING_TOTAL +Color = White + +[ScoreFourPTextTotalScore3] +X = 260 +Y = 495 +Font = 0 +Size = 42 +Align = 2 +Text = 00000 +Color = White + +#lines +[ScoreFourPPlayer3Static1] +X = 20 +Y = 400 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreFourPPlayer3Static2] +X = 20 +Y = 425 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreFourPPlayer3Static3] +X = 20 +Y = 450 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreFourPPlayer3Static4] +X = 20 +Y = 475 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +#ScoreBar +[ScoreFourPStaticBackLevel3] +Tex = ScoreLevel +X = 294 +Y = 382 +W = 95 +H = 118 +Color = P3Lightest +Type = Colorized + +[ScoreFourPStaticBackLevelRound3] +Tex = ScoreLevelRound +X = 294 +Y = 375 +W = 95 +H = 10 +Color = P3Lightest +Type = Colorized + +[ScoreFourPStaticLevel3] +Tex = ScoreLevel +X = 294 +Y = 385 +W = 95 +H = 8 +Color = P3Dark +Type = Colorized + +[ScoreFourPStaticLevelRound3] +Tex = ScoreLevelRound +X = 294 +Y = 385 +W = 95 +H = 8 +Color = P3Dark +Type = Colorized + +[ScoreFourPPlayer3Static5] +Tex = ScoreEndCap +X = 290 +Y = 500 +W = 110 +H = 30 +Z = 0.9 +Color = P3Dark +Type = Colorized +Reflection = 1 +ReflectionSpacing = 0 + +[ScoreFourPPlayer3Static6] +Tex = ScoreGlassBox +X = 290 +Y = 360 +W = 113 +H = 140 +Z = 0.89 +Color = White +Type = Transparent + +[ScoreFourPPlayer3Avatar] +X = 24 +Y = 335 +W = 36 +H = 49 +Z = 1 + +[ScoreFourPPlayer3Static7] +X = 20 +Y = 330 +W = 44 +H = 59 +Z = 0.9 +Tex = AvatarFrame2 +Color = P3Dark +Type = Colorized + +# P L A Y E R F O U R +[ScoreFourPTextName4] +X = 595 +Y = 360 +Font = 1 +Size = 32 +Align = 0 +Text = P4 +Color = White + +# Rating +[ScoreFourPStaticRatingPicture4] +X = 435 +Y = 380 +H = 55 +W = 55 + +[ScoreFourPTextScore4] +X = 460 +Y = 440 +W = 100 +Color = White +Font = 0 +Size = 24 +Text = Tone Deaf +Align = 1 + +[ScoreFourPTextNotes4] +X = 565 +Y = 400 +Font = 0 +Size = 26 +Align = 0 +Text = SING_NOTES +Color = White + +[ScoreFourPTextNotesScore4] +X = 780 +Y = 400 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreFourPTextLineBonus4] +X = 565 +Y = 425 +Font = 0 +Size = 26 +Align = 0 +Text = SING_PHRASE_BONUS +Color = White + +[ScoreFourPTextLineBonusScore4] +X = 780 +Y = 425 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreFourPTextGoldenNotes4] +X = 565 +Y = 450 +Font = 0 +Size = 26 +Align = 0 +Text = SING_GOLDEN_NOTES +Color = White + +[ScoreFourPTextGoldenNotesScore4] +X = 780 +Y = 450 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreFourPStaticBoxDark4] +Tex = ScoreBar_box_dark +X = 540 +Y = 405 +W = 18 +H = 20 +Color = P4Dark +Type = Colorized + +[ScoreFourPStaticBoxLight4] +Tex = ScoreBar_box_light +X = 540 +Y = 430 +W = 18 +H = 20 +Color = P4Light +Type = Colorized + +[ScoreFourPStaticBoxLightest4] +Tex = ScoreBar_box_lightest +X = 540 +Y = 455 +W = 18 +H = 20 +Color = P4Lightest +Type = Colorized + +[ScoreFourPTextTotal4] +X = 565 +Y = 500 +Font = 0 +Size = 30 +Align = 0 +Text = SING_TOTAL +Color = White + +[ScoreFourPTextTotalScore4] +X = 780 +Y = 495 +Font = 0 +Size = 42 +Align = 2 +Text = 00000 +Color = White + +#lines +[ScoreFourPPlayer4Static1] +X = 540 +Y = 400 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreFourPPlayer4Static2] +X = 540 +Y = 425 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreFourPPlayer4Static3] +X = 540 +Y = 450 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreFourPPlayer4Static4] +X = 540 +Y = 475 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +#ScoreBar +[ScoreFourPStaticBackLevel4] +Tex = ScoreLevel +X = 414 +Y = 382 +W = 95 +H = 118 +Color = P4Lightest +Type = Colorized + +[ScoreFourPStaticBackLevelRound4] +Tex = ScoreLevelRound +X = 414 +Y = 375 +W = 95 +H = 8 +Color = P4Lightest +Type = Colorized + +[ScoreFourPStaticLevel4] +Tex = ScoreLevel +X = 414 +Y = 400 +W = 95 +H = 10 +Color = P4Dark +Type = Colorized + +[ScoreFourPStaticLevelRound4] +Tex = ScoreLevelRound +X = 414 +Y = 392 +W = 95 +H = 8 +Color = P4Dark +Type = Colorized + +[ScoreFourPPlayer4Static5] +Tex = ScoreEndCap +X = 410 +Y = 500 +W = 110 +H = 30 +Z = 0.9 +Color = P4Dark +Type = Colorized +Reflection = 1 +ReflectionSpacing = 0 + +[ScoreFourPPlayer4Static6] +Tex = ScoreGlassBox +X = 410 +Y = 360 +W = 113 +H = 140 +Z = 0.89 +Color = White +Type = Transparent + +[ScoreFourPPlayer4Avatar] +X = 544 +Y = 335 +W = 36 +H = 49 +Z = 1 + +[ScoreFourPPlayer4Static7] +X = 540 +Y = 330 +W = 44 +H = 59 +Z = 0.9 +Tex = AvatarFrame2 +Color = P4Dark +Type = Colorized + +################################################# +## ## +## Six Player Score One Screen ## +## ## +################################################# +# P L A Y E R O N E +[ScoreSixPTextName1] +X = 75 +Y = 135 +Font = 1 +Size = 32 +Align = 0 +Text = P1 +Color = White + +[ScoreSixPTextNotes1] +X = 20 +Y = 180 +Font = 0 +Size = 26 +Align = 0 +Text = SING_NOTES +Color = White + +[ScoreSixPTextNotesScore1] +X = 260 +Y = 180 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextLineBonus1] +X = 20 +Y = 205 +Font = 0 +Size = 26 +Align = 0 +Text = SING_PHRASE_BONUS +Color = White + +[ScoreSixPTextLineBonusScore1] +X = 260 +Y = 205 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextGoldenNotes1] +X = 20 +Y = 230 +Font = 0 +Size = 26 +Align = 0 +Text = SING_GOLDEN_NOTES +Color = White + +[ScoreSixPTextGoldenNotesScore1] +X = 260 +Y = 230 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextTotal1] +X = 20 +Y = 280 +Font = 0 +Size = 30 +Align = 0 +Text = SING_TOTAL +Color = White + +[ScoreSixPTextTotalScore1] +X = 260 +Y = 275 +Font = 0 +Size = 42 +Align = 2 +Text = 00000 +Color = White + +#lines +[ScoreSixPPlayer1Static1] +X = 20 +Y = 180 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer1Static2] +X = 20 +Y = 205 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer1Static3] +X = 20 +Y = 230 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer1Static4] +X = 20 +Y = 255 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + + +[ScoreSixPPlayer1Avatar] +X = 24 +Y = 115 +W = 36 +H = 49 +Z = 1 + +[ScoreSixPPlayer1Static5] +X = 20 +Y = 110 +W = 44 +H = 59 +Z = 0.9 +Tex = AvatarFrame2 +Color = P1Dark +Type = Colorized + + +# P L A Y E R T W O +[ScoreSixPTextName2] +X = 335 +Y = 135 +Font = 1 +Size = 32 +Align = 0 +Text = P2 +Color = White + +[ScoreSixPTextNotes2] +X = 280 +Y = 180 +Font = 0 +Size = 26 +Align = 0 +Text = SING_NOTES +Color = White + +[ScoreSixPTextNotesScore2] +X = 520 +Y = 180 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextLineBonus2] +X = 280 +Y = 205 +Font = 0 +Size = 26 +Align = 0 +Text = SING_PHRASE_BONUS +Color = White + +[ScoreSixPTextLineBonusScore2] +X = 520 +Y = 205 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextGoldenNotes2] +X = 280 +Y = 230 +Font = 0 +Size = 26 +Align = 0 +Text = SING_GOLDEN_NOTES +Color = White + +[ScoreSixPTextGoldenNotesScore2] +X = 520 +Y = 230 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextTotal2] +X = 280 +Y = 280 +Font = 0 +Size = 30 +Align = 0 +Text = SING_TOTAL +Color = White + +[ScoreSixPTextTotalScore2] +X = 520 +Y = 275 +Font = 0 +Size = 42 +Align = 2 +Text = 00000 +Color = White + +#lines +[ScoreSixPPlayer2Static1] +X = 280 +Y = 180 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer2Static2] +X = 280 +Y = 205 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer2Static3] +X = 280 +Y = 230 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer2Static4] +X = 280 +Y = 255 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + + +[ScoreSixPPlayer2Avatar] +X = 284 +Y = 115 +W = 36 +H = 49 +Z = 1 + +[ScoreSixPPlayer2Static5] +X = 280 +Y = 110 +W = 44 +H = 59 +Z = 0.9 +Tex = AvatarFrame2 +Color = P2Dark +Type = Colorized + +# P L A Y E R T H R E E +[ScoreSixPTextName3] +X = 595 +Y = 135 +Font = 1 +Size = 32 +Align = 0 +Text = P2 +Color = White + +[ScoreSixPTextNotes3] +X = 540 +Y = 180 +Font = 0 +Size = 26 +Align = 0 +Text = SING_NOTES +Color = White + +[ScoreSixPTextNotesScore3] +X = 780 +Y = 180 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextLineBonus3] +X = 540 +Y = 205 +Font = 0 +Size = 26 +Align = 0 +Text = SING_PHRASE_BONUS +Color = White + +[ScoreSixPTextLineBonusScore3] +X = 780 +Y = 205 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextGoldenNotes3] +X = 540 +Y = 230 +Font = 0 +Size = 26 +Align = 0 +Text = SING_GOLDEN_NOTES +Color = White + +[ScoreSixPTextGoldenNotesScore3] +X = 780 +Y = 230 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextTotal3] +X = 540 +Y = 280 +Font = 0 +Size = 30 +Align = 0 +Text = SING_TOTAL +Color = White + +[ScoreSixPTextTotalScore3] +X = 780 +Y = 275 +Font = 0 +Size = 42 +Align = 2 +Text = 00000 +Color = White + +#lines +[ScoreSixPPlayer3Static1] +X = 540 +Y = 180 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer3Static2] +X = 540 +Y = 205 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer3Static3] +X = 540 +Y = 230 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer3Static4] +X = 540 +Y = 255 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer3Avatar] +X = 544 +Y = 115 +W = 36 +H = 49 +Z = 1 + +[ScoreSixPPlayer3Static5] +X = 540 +Y = 110 +W = 44 +H = 59 +Z = 0.9 +Tex = AvatarFrame2 +Color = P3Dark +Type = Colorized + +# P L A Y E R F O U R +[ScoreSixPTextName4] +X = 75 +Y = 355 +Font = 1 +Size = 32 +Align = 0 +Text = P1 +Color = White + +[ScoreSixPTextNotes4] +X = 20 +Y = 400 +Font = 0 +Size = 26 +Align = 0 +Text = SING_NOTES +Color = White + +[ScoreSixPTextNotesScore4] +X = 260 +Y = 400 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextLineBonus4] +X = 20 +Y = 425 +Font = 0 +Size = 26 +Align = 0 +Text = SING_PHRASE_BONUS +Color = White + +[ScoreSixPTextLineBonusScore4] +X = 260 +Y = 425 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextGoldenNotes4] +X = 20 +Y = 450 +Font = 0 +Size = 26 +Align = 0 +Text = SING_GOLDEN_NOTES +Color = White + +[ScoreSixPTextGoldenNotesScore4] +X = 260 +Y = 450 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextTotal4] +X = 20 +Y = 500 +Font = 0 +Size = 30 +Align = 0 +Text = SING_TOTAL +Color = White + +[ScoreSixPTextTotalScore4] +X = 260 +Y = 495 +Font = 0 +Size = 42 +Align = 2 +Text = 00000 +Color = White + +#lines +[ScoreSixPPlayer4Static1] +X = 20 +Y = 400 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer4Static2] +X = 20 +Y = 425 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer4Static3] +X = 20 +Y = 450 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer4Static4] +X = 20 +Y = 475 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer4Avatar] +X = 24 +Y = 337 +W = 36 +H = 49 +Z = 1 + +[ScoreSixPPlayer4Static5] +X = 20 +Y = 332 +W = 44 +H = 59 +Z = 0.9 +Tex = AvatarFrame2 +Color = P4Dark +Type = Colorized + +# P L A Y E R F I V E +[ScoreSixPTextName5] +X = 335 +Y = 355 +Font = 1 +Size = 32 +Align = 0 +Text = P5 +Color = White + +[ScoreSixPTextNotes5] +X = 280 +Y = 400 +Font = 0 +Size = 26 +Align = 0 +Text = SING_NOTES +Color = White + +[ScoreSixPTextNotesScore5] +X = 520 +Y = 400 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextLineBonus5] +X = 280 +Y = 425 +Font = 0 +Size = 26 +Align = 0 +Text = SING_PHRASE_BONUS +Color = White + +[ScoreSixPTextLineBonusScore5] +X = 520 +Y = 425 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextGoldenNotes5] +X = 280 +Y = 450 +Font = 0 +Size = 26 +Align = 0 +Text = SING_GOLDEN_NOTES +Color = White + +[ScoreSixPTextGoldenNotesScore5] +X = 520 +Y = 450 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextTotal5] +X = 280 +Y = 500 +Font = 0 +Size = 30 +Align = 0 +Text = SING_TOTAL +Color = White + +[ScoreSixPTextTotalScore5] +X = 520 +Y = 495 +Font = 0 +Size = 42 +Align = 2 +Text = 00000 +Color = White + +#lines +[ScoreSixPPlayer5Static1] +X = 280 +Y = 400 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer5Static2] +X = 280 +Y = 425 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer5Static3] +X = 280 +Y = 450 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer5Static4] +X = 280 +Y = 475 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer5Avatar] +X = 284 +Y = 337 +W = 36 +H = 49 +Z = 1 + +[ScoreSixPPlayer5Static5] +X = 280 +Y = 332 +W = 44 +H = 59 +Z = 0.9 +Tex = AvatarFrame2 +Color = P5Dark +Type = Colorized + +# P L A Y E R S I X +[ScoreSixPTextName6] +X = 595 +Y = 355 +Font = 1 +Size = 32 +Align = 0 +Text = P2 +Color = White + +[ScoreSixPTextNotes6] +X = 540 +Y = 400 +Font = 0 +Size = 26 +Align = 0 +Text = SING_NOTES +Color = White + +[ScoreSixPTextNotesScore6] +X = 780 +Y = 400 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextLineBonus6] +X = 540 +Y = 425 +Font = 0 +Size = 26 +Align = 0 +Text = SING_PHRASE_BONUS +Color = White + +[ScoreSixPTextLineBonusScore6] +X = 780 +Y = 425 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextGoldenNotes6] +X = 540 +Y = 450 +Font = 0 +Size = 26 +Align = 0 +Text = SING_GOLDEN_NOTES +Color = White + +[ScoreSixPTextGoldenNotesScore6] +X = 780 +Y = 450 +Font = 0 +Size = 26 +Align = 2 +Text = 0000 +Color = White + +[ScoreSixPTextTotal6] +X = 540 +Y = 500 +Font = 0 +Size = 30 +Align = 0 +Text = SING_TOTAL +Color = White + +[ScoreSixPTextTotalScore6] +X = 780 +Y = 495 +Font = 0 +Size = 42 +Align = 2 +Text = 00000 +Color = White + +#lines +[ScoreSixPPlayer6Static1] +X = 540 +Y = 400 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer6Static2] +X = 540 +Y = 425 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer6Static3] +X = 540 +Y = 450 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer6Static4] +X = 540 +Y = 475 +W = 240 +H = 1 +Tex = ScoreLine +Type = Colorized +Color = White + +[ScoreSixPPlayer6Avatar] +X = 544 +Y = 337 +W = 36 +H = 49 +Z = 1 + +[ScoreSixPPlayer6Static5] +X = 540 +Y = 332 +W = 44 +H = 59 +Z = 0.9 +Tex = AvatarFrame2 +Color = P6Dark +Type = Colorized + +############################ +# Send Score 1 Player # +############################ + +[ScoreButtonSend1] +X = 200 +Y = 505 +W = 180 +H = 30 +Tex = ButtonSendScore +DColor = ColorLight +Color = ColorDark +Type = Transparent +Texts = 1 + +[ScoreButtonSend1Text1] +X = 90 +Y = 4 +Font = 0 +Size = 24 +Align = 1 +Color = White +Text = SCORE_SEND_DESC + +############################ +# Send Score 2/4 Players # +############################ + +[ScoreButtonSend2] +X = 310 +Y = 100 +W = 180 +H = 30 +Z = 1 +Tex = ButtonSendScore +DColor = ColorLight +Color = ColorDark +Type = Transparent +Texts = 1 + +[ScoreButtonSend2Text1] +X = 90 +Y = 4 +Font = 0 +Size = 24 +Align = 1 +Color = White +Text = SCORE_SEND_DESC + +############################ +# Send Score 3/6 Players # +############################ + +[ScoreButtonSend3] +X = 310 +Y = 100 +W = 180 +H = 30 +Z = 1 +Tex = ButtonSendScore +DColor = ColorLight +Color = ColorDark +Type = Transparent +Texts = 1 + +[ScoreButtonSend3Text1] +X = 90 +Y = 4 +Font = 0 +Size = 24 +Align = 1 +Color = White +Text = SCORE_SEND_DESC + +################################ +## Send Score PopUp ## +################################ + +[SendScorePopup] + +[SendScorePopupBackground] +Type=Fade +ColR=0 +ColG=0 +ColB=0 +Alpha=0.4 + +[SendScorePopupStatic1] +Tex = interface_dialog_background2 +X = 200 +Y = 150 +W = 400 +H = 280 +Z = 1 +Color = White +Type = Transparent +Reflection = 1 +ReflectionSpacing = 15 + +[SendScorePopupText1] +X = 400 +Y = 157 +W = 400 +Color = ColorLight +Font = 0 +Size = 30 +Align = 1 +Z = 1 + +[SendScorePopupSelectSlide1] +Text = SCORE_SEND_PLAYER +TexSBG = Rectangle +TypeSBG = Colorized +ShowArrows = 1 +OneItemOnly = 1 +X = 220 +Y = 220 +W = 120 +H = 25 +Z = 1 +SkipX = 10 +SBGW = 220 +TextSize = 24 +Color = ColorLight +DColor = ColorDark +TColor = White +TDColor = White +SBGColor = ColorLight +SBGDColor = ColorDark +STColor = White +STDColor = White + +[SendScorePopupSelectSlide2] +Text = SING_OPTIONS_NETWORK_WEBSITE +TexSBG = Rectangle +TypeSBG = Colorized +ShowArrows = 1 +OneItemOnly = 1 +X = 220 +Y = 250 +W = 120 +H = 25 +Z = 1 +SkipX = 10 +SBGW = 220 +TextSize = 24 +Color = ColorLight +DColor = ColorDark +TColor = White +TDColor = White +SBGColor = ColorLight +SBGDColor = ColorDark +STColor = White +STDColor = White + +[SendScorePopupSelectSlide3] +Text = SING_OPTIONS_NETWORK_USERNAME +TexSBG = Rectangle +TypeSBG = Colorized +ShowArrows = 1 +OneItemOnly = 1 +X = 220 +Y = 280 +W = 120 +H = 25 +Z = 1 +SkipX = 10 +SBGW = 220 +TextSize = 24 +Color = ColorLight +DColor = ColorDark +TColor = White +TDColor = White +SBGColor = ColorLight +SBGDColor = ColorDark +STColor = White +STDColor = White + +[SendScorePopupButtonUsername] +X = 380 +Y = 320 +W = 160 +H = 25 +Tex = Button +Color = GrayLight +DColor = GrayDark +Type = Transparent +Texts = 2 +Z = 1 + +[SendScorePopupButtonUsernameText1] +X = 5 +Y = 0 +Color = White +Font = 0 +Size = 24 +Align = 0 +Z = 1 + +[SendScorePopupButtonUsernameText2] +X = -120 +Y = 0 +Text=SING_OPTIONS_NETWORK_USERNAME +Color = White +Font = 0 +Size = 24 +Align = 0 +Z = 1 + +[SendScorePopupButtonPassword] +X = 380 +Y = 350 +W = 160 +H = 25 +Tex = Button +Color = GrayLight +DColor = GrayDark +Type = Transparent +Texts = 2 +Z = 1 + +[SendScorePopupButtonPasswordText1] +X = 5 +Y = 0 +Color = White +Font = 0 +Size = 24 +Align = 0 +Z = 1 + +[SendScorePopupButtonPasswordText2] +X = -120 +Y = 0 +Text=SING_OPTIONS_NETWORK_PASSWORD +Color = White +Font = 0 +Size = 24 +Align = 0 +Z = 1 + +[SendScorePopupButton1] +X = 295 +Y = 390 +W = 100 +H = 25 +Tex = Button +Color = ColorLight +DColor = ColorDark +Type = Transparent +Texts = 1 +Z = 1 + +[SendScorePopupButton1Text1] +X = 50 +Y = 0 +Color = White +Font = 0 +Size = 24 +Align = 1 +Z = 1 + +[SendScorePopupButton2] +X = 405 +Y = 390 +W = 100 +H = 25 +Tex = Button +Color = ColorLight +DColor = ColorDark +Type = Transparent +Texts = 1 +Z = 1 + +[SendScorePopupButton2Text1] +X = 50 +Y = 0 +Color = White +Font = 0 +Size = 24 +Align = 1 +Z = 1 + +[ScoreDownloadPopup] + +[ScoreDownloadPopupBackground] +Type=Fade +ColR=0 +ColG=0 +ColB=0 +Alpha=0.4 + +[ScoreDownloadPopupStatic1] +Tex = interface_dialog_background +X = 200 +Y = 150 +W = 400 +H = 200 +Z = 1 +Color = White +Type = Transparent +Reflection = 1 +ReflectionSpacing = 15 + +[ScoreDownloadPopupText1] +X = 400 +Y = 160 +W = 400 +Color = ColorLight +Font = 0 +Size = 30 +Text = SCORE_DOWNLOAD_TITLE +Align = 1 +Z = 1 + +[ScoreDownloadPopupSongText] +X = 220 +Y = 210 +W = 280 +Color = White +Font = 0 +Size = 30 +Text = song progress +Align = 0 +Z = 1 + +[ScoreDownloadPopupWebText] +X = 580 +Y = 210 +W = 280 +Color = White +Font = 0 +Size = 30 +Text = web progress +Align = 2 +Z = 1 + +[ScoreDownloadPopupButton1] +X = 350 +Y = 310 +W = 100 +H = 25 +Tex = Button +Color = ColorLight +DColor = ColorDark +Type = Transparent +Texts = 1 +Z = 1 + +[ScoreDownloadPopupButton1Text1] +X = 50 +Y = 0 +Color = White +Font = 0 +Size = 24 +Text = YES +Align = 1 +Z = 1 + +[ScoreDownloadPopupStatic2] +Tex = ProgressBar +X = 219 +Y = 248 +W = 362 +H = 20 +Z = 1 +Color = Gray +Type = Transparent + +[ScoreDownloadPopupStatic3] +Tex = ProgressBar +X = 219 +Y = 273 +W = 362 +H = 20 +Z = 1 +Color = Gray +Type = Transparent + +[ScoreDownloadPopupProgressSong] +X = 220 +Y = 250 +W = 360 +H = 16 +Color = ColorDark + +[ScoreDownloadPopupProgressWeb] +X = 220 +Y = 275 +W = 360 +H = 16 +Color = ColorDark + +[Top5] +Texts = 1 + +[Top5Background] +Tex = Top5BG + +[Top5Text1] +X = 70 +Y = 6 +Color = White +Font = 0 +Size = 60 +Align = 0 +Text = SING_TOP_5_CHARTS + +[Top5TextArtistTitle] +X = 70 +Y = 59 +Color = White +Font = 0 +Size = 30 +Align = 0 +Text = artist - title + +[Top5Text4] +X = 70 +Y = 83 +Color = White +Font = 0 +Size = 30 +Align = 0 +Text = SING_OPTIONS_GAME_DIFFICULTY + +[Top5TextLevel] +X = 270 +Y = 83 +Color = White +Font = 0 +Size = 30 +Align = 1 +Text = easy + +[Top5Text5] +X = 560 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = SING_TOP_5_CHARTS_SWITCH_DIFFICULTY + +[Top5TextName1] +X = 150 +Y = 190 +Color = White +Font = 0 +Size = 42 +Align = 0 +Text = 1. Player1 + +[Top5TextName2] +X = 150 +Y = 240 +Color = White +Font = 0 +Size = 42 +Align = 0 +Text = 2. Player2 + +[Top5TextName3] +X = 150 +Y = 290 +Color = White +Font = 0 +Size = 42 +Align = 0 +Text = 3. Player3 + +[Top5TextName4] +X = 150 +Y = 340 +Color = White +Font = 0 +Size = 42 +Align = 0 +Text = 4. Player4 + +[Top5TextName5] +X = 150 +Y = 390 +Color = White +Font = 0 +Size = 42 +Align = 0 +Text = 5. Player5 + +[Top5TextScore1] +X = 560 +Y = 190 +Color = White +Font = 0 +Size = 42 +Align = 2 +Text = 00000 + +[Top5TextScore2] +X = 560 +Y = 240 +Color = White +Font = 0 +Size = 42 +Align = 2 +Text = 00000 + +[Top5TextScore3] +X = 560 +Y = 290 +Color = White +Font = 0 +Size = 42 +Align = 2 +Text = 00000 + +[Top5TextScore4] +X = 560 +Y = 340 +Color = White +Font = 0 +Size = 42 +Align = 2 +Text = 00000 + +[Top5TextScore5] +X = 560 +Y = 390 +Color = White +Font = 0 +Size = 42 +Align = 2 +Text = 00000 + + +[Top5TextDate1] +X = 760 +Y = 190 +Color = White +Font = 0 +Size = 42 +Align = 2 +Text = 00000 + +[Top5TextDate2] +X = 760 +Y = 240 +Color = White +Font = 0 +Size = 42 +Align = 2 +Text = 00000 + +[Top5TextDate3] +X = 760 +Y = 290 +Color = White +Font = 0 +Size = 42 +Align = 2 +Text = 00000 + +[Top5TextDate4] +X = 760 +Y = 340 +Color = White +Font = 0 +Size = 42 +Align = 2 +Text = 00000 + +[Top5TextDate5] +X = 760 +Y = 390 +Color = White +Font = 0 +Size = 42 +Align = 2 +Text = 00000 + +[Top5TextNumber1] +X = 120 +Y = 196 +Color = White +Font = 1 +Size = 27 +Align = 1 +Text = 1 + +[Top5TextNumber2] +X = 120 +Y = 246 +Color = White +Font = 1 +Size = 27 +Align = 1 +Text = 2 + +[Top5TextNumber3] +X = 120 +Y = 296 +Color = White +Font = 1 +Size = 27 +Align = 1 +Text = 3 + +[Top5TextNumber4] +X = 120 +Y = 346 +Color = White +Font = 1 +Size = 27 +Align = 1 +Text = 4 + +[Top5TextNumber5] +X = 120 +Y = 396 +Color = White +Font = 1 +Size = 27 +Align = 1 +Text = 5 + +[Top5StaticNumber1] +Tex = PlayerNumberBox +X = 106 +Y = 190 +W = 29 +H = 38 +alpha = 0.6 +Color = ColorDark +Type = Colorized + +[Top5StaticNumber2] +Tex = PlayerNumberBox +X = 106 +Y = 240 +W = 29 +H = 38 +alpha = 0.6 +Color = ColorDark +Type = Colorized + +[Top5StaticNumber3] +Tex = PlayerNumberBox +X = 106 +Y = 290 +W = 29 +H = 38 +alpha = 0.6 +Color = ColorDark +Type = Colorized + +[Top5StaticNumber4] +Tex = PlayerNumberBox +X = 106 +Y = 340 +W = 29 +H = 38 +alpha = 0.6 +Color = ColorDark +Type = Colorized + +[Top5StaticNumber5] +Tex = PlayerNumberBox +X = 106 +Y = 390 +W = 29 +H = 38 +alpha = 0.6 +Color = ColorDark +Type = Colorized + +############################ +###### P A R T Y ####### +############################ + +[PartyOptions] +Texts = 5 + +[PartyOptionsBackground] +Tex = PartyBG + +[PartyOptionsText1] +X = 40 +Y = 20 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE + +[PartyOptionsStatic1] +X = 370 +Y = 552 +Z = 0.75 +W = 20 +H = 23 +Tex = ButtonEnter +Color = White +Type = Transparent + +[PartyOptionsText2] +X = 395 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = SING_LEGEND_CONTINUE + +[PartyOptionsSelectMode] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_SELECT_MODE +X = 70 +Y = 110 +W = 230 +H = 40 +SkipX = 10 +Fields = 1 + +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = GrayLight +SBGColor = ColorDark +STColor = White +STDColor = GrayDark + +[PartyOptionsSelectLevel] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_DIFFICULTY +X = 70 +Y = 165 +W = 230 +H = 40 +SkipX = 10 +Fields = 1 + +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = GrayLight +SBGColor = ColorDark +STColor = White +STDColor = GrayDark + +#TexSBG = SelectBG +#W = 230 +#H = 40 +#SkipX = 10 + +[PartyOptionsSelectPlayList] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_PLAYLIST +X = 70 +Y = 220 +W = 230 +H = 40 +SkipX = 10 +Fields = 1 + +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = GrayLight +SBGColor = ColorDark +STColor = White +STDColor = GrayDark + +[PartyOptionsSelectPlayList2] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_PLAYLIST +X = 70 +Y = 275 +W = 230 +H = 40 +SkipX = 10 +Fields = 1 + +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = GrayLight +SBGColor = ColorDark +STColor = White +STDColor = GrayDark + +[PartyOptionsSelectRounds] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_ROUNDS +X = 70 +Y = 250 +W = 230 +H = 40 +SkipX = 10 +Fields = 7 + +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = GrayLight +SBGColor = ColorDark +STColor = White +STDColor = GrayDark + +############################ +## P L A Y E R P A R T Y ## +############################ + +[PartyPlayer] +Texts = 6 + +[PartyPlayerBackground] +Tex = PartyBG + +[PartyPlayerStatic1] +X = 370 +Y = 552 +Z = 0.75 +W = 20 +H = 23 +Tex = ButtonEnter +Color = White +Type = Transparent + +[PartyPlayerText1] +X = 40 +Y = 20 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE + +[PartyPlayerText2] +X = 70 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = PARTY_PLAYER_ENTER_NAME + +[PartyPlayerText3] +X = 395 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = SING_LEGEND_CONTINUE + +[PartyPlayerSelectTeams] +Tex = MainBar +TexSBG = SelectBG +Type = Transparent +TypeSBG = Transparent +Text = PARTY_TEAMS +X = 70 +Y = 110 +W = 230 +H = 40 +SkipX = 10 +Fields = 2 + +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = GrayLight +SBGColor = ColorDark +STColor = White +STDColor = GrayDark + +[PartyPlayerSelectPlayers1] +Tex = MainBar +TexSBG = PartyPlayerSelectBG +Type = Transparent +TypeSBG = Transparent +Text = PARTY_TEAMS_PLAYER1 +X = 310 +Y = 175 +W = 200 +SBGW = 190 +H = 40 +SkipX = 10 +Fields = 1 + +TColor = White +TDColor = White + +STColor = White +STDColor = GrayDark + +[PartyPlayerSelectPlayers2] +Tex = MainBar +TexSBG = PartyPlayerSelectBG +Type = Transparent +TypeSBG = Transparent +Text = PARTY_TEAMS_PLAYER2 +X = 310 +Y = 300 +W = 200 +SBGW = 190 +H = 40 +SkipX = 10 +Fields = 1 + +TColor = White +TDColor = White + +STColor = White +STDColor = GrayDark + +[PartyPlayerSelectPlayers3] +Tex = MainBar +Type = Transparent +TypeSBG = Transparent +TexSBG = PartyPlayerSelectBG +Text = PARTY_TEAMS_PLAYER3 +X = 310 +Y = 425 +W = 200 +SBGW = 190 +H = 40 +SkipX = 10 +Fields = 4 + +TColor = White +TDColor = White + +STColor = White +STDColor = GrayDark + +[PartyPlayerTeam1Name] +Tex = PartyTeamButton2 +X = 70 +Y = 175 +W = 230 +H = 40 +Type = Transparent +Color = P1Dark +DColor = P1Light +Texts = 1 + +[PartyPlayerTeam1NameText1] +X = 115 +Y = 4 +Font = 0 +Size = 32 +Align = 1 +Text = Team 1 +Color = White + +[PartyPlayerPlayer1Name] +Tex = Button +X = 70 +Y = 225 +W = 154 +H = 40 +Type = Transparent +Texts = 1 +Color = P1Lightest +DColor = P1Light +Reflection = 1 +ReflectionSpacing = 1 + +[PartyPlayerPlayer1NameText1] +X = 77 +Y = 5 +Font = 0 +Size = 30 +Align = 1 +Text = Player 1 +Color = White + +[PartyPlayerPlayer2Name] +Tex = Button +X = 232 +Y = 225 +W = 154 +H = 40 +Type = Transparent +Texts = 1 +Color = P1Lightest +DColor = P1Light +Reflection = 1 +ReflectionSpacing = 1 + +[PartyPlayerPlayer2NameText1] +X = 77 +Y = 5 +Font = 0 +Size = 30 +Align = 1 +Text = Player 2 +Color = White + +[PartyPlayerPlayer3Name] +Tex = Button +X = 394 +Y = 225 +W = 154 +H = 40 +Type = Transparent +Texts = 1 +Color = P1Lightest +DColor = P1Light +Reflection = 1 +ReflectionSpacing = 1 + +[PartyPlayerPlayer3NameText1] +X = 77 +Y = 5 +Font = 0 +Size = 30 +Align = 1 +Text = Player 3 +Color = White + +[PartyPlayerPlayer4Name] +Tex = Button +X = 556 +Y = 225 +W = 154 +H = 40 +Type = Transparent +Texts = 1 +Color = P1Lightest +DColor = P1Light +Reflection = 1 +ReflectionSpacing = 1 + +[PartyPlayerPlayer4NameText1] +X = 77 +Y = 5 +Font = 0 +Size = 30 +Align = 1 +Text = Player 4 +Color = White + +[PartyPlayerTeam2Name] +Tex = PartyTeamButton2 +X = 70 +Y = 300 +W = 230 +H = 40 +Type = Transparent +Texts = 1 +Color = P2Dark +DColor = P2Light + +[PartyPlayerTeam2NameText1] +X = 115 +Y = 4 +Font = 0 +Size = 32 +Align = 1 +Text = Team 2 +Color = White + +[PartyPlayerPlayer5Name] +Tex = Button +X = 70 +Y = 350 +W = 154 +H = 40 +Type = Transparent +Texts = 1 +Color = P2Lightest +DColor = P2Light +Reflection = 1 +ReflectionSpacing = 1 + +[PartyPlayerPlayer5NameText1] +X = 77 +Y = 5 +Font = 0 +Size = 30 +Align = 1 +Text = Player 5 +Color = White + +[PartyPlayerPlayer6Name] +Tex = Button +X = 232 +Y = 350 +W = 154 +H = 40 +Type = Transparent +Texts = 1 +Color = P2Lightest +DColor = P2Light +Reflection = 1 +ReflectionSpacing = 1 + +[PartyPlayerPlayer6NameText1] +X = 77 +Y = 5 +Font = 0 +Size = 30 +Align = 1 +Text = Player 6 +Color = White + +[PartyPlayerPlayer7Name] +Tex = Button +X = 394 +Y = 350 +W = 154 +H = 40 +Type = Transparent +Texts = 1 +Color = P2Lightest +DColor = P2Light +Reflection = 1 +ReflectionSpacing = 1 + +[PartyPlayerPlayer7NameText1] +X = 77 +Y = 5 +Font = 0 +Size = 30 +Align = 1 +Text = Player 7 +Color = White + +[PartyPlayerPlayer8Name] +Tex = Button +X = 556 +Y = 350 +W = 154 +H = 40 +Type = Transparent +Texts = 1 +Color = P2Lightest +DColor = P2Light +Reflection = 1 +ReflectionSpacing = 1 + +[PartyPlayerPlayer8NameText1] +X = 77 +Y = 5 +Font = 0 +Size = 30 +Align = 1 +Text = Player 8 +Color = White + +[PartyPlayerTeam3Name] +Tex = PartyTeamButton2 +X = 70 +Y = 425 +W = 230 +H = 40 +Type = Transparent +Texts = 1 +Color = P1Dark +DColor = P1Light + +[PartyPlayerTeam3NameText1] +X = 115 +Y = 4 +Font = 0 +Size = 32 +Align = 1 +Text = Team 3 +Color = White + +[PartyPlayerPlayer9Name] +Tex = Button +X = 70 +Y = 475 +Z = 0.6 +W = 154 +H = 40 +Type = Transparent +Texts = 1 +Color = P3Lightest +DColor = P3Light +Reflection = 1 +ReflectionSpacing = 1 + +[PartyPlayerPlayer9NameText1] +X = 75 +Y = 5 +Font = 0 +Size = 30 +Align = 1 +Text = Player 9 +Color = White + +[PartyPlayerPlayer10Name] +Tex = Button +X = 232 +Y = 475 +Z = 0.6 +W = 154 +H = 40 +Type = Transparent +Texts = 1 +Color = P3Lightest +DColor = P3Light +Reflection = 1 +ReflectionSpacing = 1 + +[PartyPlayerPlayer10NameText1] +X = 77 +Y = 5 +Font = 0 +Size = 30 +Align = 1 +Text = Player 10 +Color = White + +[PartyPlayerPlayer11Name] +Tex = Button +X = 394 +Y = 475 +Z = 0.6 +W = 154 +H = 40 +Type = Transparent +Texts = 1 +Color = P3Lightest +DColor = P3Light +Reflection = 1 +ReflectionSpacing = 1 + +[PartyPlayerPlayer11NameText1] +X = 77 +Y = 5 +Font = 0 +Size = 30 +Align = 1 +Text = Player 11 +Color = White + +[PartyPlayerPlayer12Name] +Tex = Button +X = 556 +Y = 475 +Z = 0.6 +W = 154 +H = 40 +Type = Transparent +Texts = 1 +Color = P3Lightest +DColor = P3Light +Reflection = 1 +ReflectionSpacing = 1 + +[PartyPlayerPlayer12NameText1] +X = 77 +Y = 5 +Font = 0 +Size = 30 +Align = 1 +Text = Player 12 +Color = White + +############################ +## R O U N D P A R T Y ## +############################ + +[PartyRoundsBackground] +Tex = PartyBG + +[PartyRoundsStatic1] +X = 388 +Y = 552 +W = 20 +H = 23 +Tex = ButtonEnter +Color = White +Type = Transparent + +[PartyRoundsText1] +X = 40 +Y = 20 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE + +[PartyRoundsText2] +X = 418 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = PARTY_ROUNDS_LEGEND_CONTINUE + +[PartyRoundsSelectRoundCount] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_ROUNDCOUNT +X = 70 +Y = 100 +W = 230 +H = 40 +SkipX = 10 +Fields = 7 + +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = GrayLight +SBGColor = ColorDark +STColor = White +STDColor = GrayDark + +[PartyRoundsSelectRound1] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_SELECTMODE1 +X = 70 +Y = 155 +W = 230 +H = 40 +SkipX = 10 +Fields = 7 + +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = GrayLight +SBGColor = ColorDark +STColor = White +STDColor = GrayDark + +[PartyRoundsSelectRound2] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_SELECTMODE2 +X = 70 +Y = 210 +W = 230 +H = 40 +SkipX = 10 +Fields = 7 + +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = GrayLight +SBGColor = ColorDark +STColor = White +STDColor = GrayDark + +[PartyRoundsSelectRound3] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_SELECTMODE3 +X = 70 +Y = 265 +W = 230 +H = 40 +SkipX = 10 +Fields = 7 + +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = GrayLight +SBGColor = ColorDark +STColor = White +STDColor = GrayDark + +[PartyRoundsSelectRound4] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_SELECTMODE4 +X = 70 +Y = 320 +W = 230 +H = 40 +SkipX = 10 +Fields = 7 + +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = GrayLight +SBGColor = ColorDark +STColor = White +STDColor = GrayDark + +[PartyRoundsSelectRound5] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_SELECTMODE5 +X = 70 +Y = 375 +W = 230 +H = 40 +SkipX = 10 +Fields = 7 + +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = GrayLight +SBGColor = ColorDark +STColor = White +STDColor = GrayDark + +[PartyRoundsSelectRound6] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_SELECTMODE6 +X = 70 +Y = 430 +W = 230 +H = 40 +SkipX = 10 +Fields = 7 + +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = GrayLight +SBGColor = ColorDark +STColor = White +STDColor = GrayDark + +[PartyRoundsSelectRound7] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_SELECTMODE7 +X = 70 +Y = 485 +W = 230 +H = 40 +SkipX = 10 +Fields = 7 + +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = GrayLight +SBGColor = ColorDark +STColor = White +STDColor = GrayDark + +############################ +## S U M A R Y P A R T Y ## +############################ +[PartyNewRound] +Texts = 4 + +[PartyNewRoundBackground] +Tex = MainBG + +[PartyNewRoundText1] +X = 50 +Y = 10 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE + +[PartyNewRoundText2] +X = 400 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 1 +Text = PARTY_ROUND_LEGEND_CONTINUE + +[PartyNewRoundText3] +X = 460 +Y = 100 +Color = White +Font = 0 +Size = 30 +Text = PARTY_ROUND +Align = 0 + +[PartyNewRoundText4] +X = 600 +Y = 100 +Color = White +Font = 0 +Size = 30 +Text = PARTY_ROUND_WINNER +Align = 0 + +[PartyNewRoundText5] +X = 448 +Y = 350 +Color = White +Font = 0 +Size = 54 +Text = PARTY_ROUND +Align = 2 + +[PartyNewRoundTextTeam1Players] +X = 30 +Y = 137 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = Dummytext, Player2, Player3, Player4 + +[PartyNewRoundTextTeam2Players] +X = 30 +Y = 218 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = Dummytext, Player2, Player3, Player4 + +[PartyNewRoundTextTeam3Players] +X = 30 +Y = 299 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = Dummytext, Player2, Player3, Player4 + +[PartyNewRoundStatic4] +Tex = PartyRoundBG1 +X = 450 +Y = 103 +W = 330 +H = 24 +Color = ColorDark +Type = Colorized + +[PartyNewRoundStatic5] +X = 260 +Y = 552 +W = 24 +H = 23 +Tex = ButtonEnter +Color = White +Type = Transparent + +[PartyNewRoundStatic6] +Tex = PartyRoundBG3 +X = 250 +Y = 350 +W = 300 +H = 50 +Color = ColorLight +Type = Colorized + +[PartyNewRoundStatic7] +Tex = PartyRoundBG4 +X = 50 +Y = 495 +W = 700 +H = 30 +Color = ColorLight +Type = Colorized + +[PartyNewRoundStaticTeam1] +Tex = PartyTeamButton1 +X = 20 +Y = 110 +W = 400 +H = 50 +Color = P1Dark +Type = Transparent +Reflection = 0 + +[PartyNewRoundStaticTeam2] +Tex = PartyTeamButton1 +X = 20 +Y = 191 +W = 400 +H = 50 +Color = P2Dark +Type = Transparent +Reflection = 0 + +[PartyNewRoundStaticTeam3] +Tex = PartyTeamButton1 +X = 20 +Y = 272 +W = 400 +H = 50 +Color = P3Dark +Type = Transparent +Reflection = 0 + +[PartyNewRoundStaticNextPlayer1] +Tex = PartyPlayerButton +X = 155 +Y = 415 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = P1Dark +Reflection = 1 +ReflectionSpacing = 2 + +[PartyNewRoundStaticNextPlayer2] +Tex = PartyPlayerButton +X = 325 +Y = 415 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = P2Dark +Reflection = 1 +ReflectionSpacing = 2 + +[PartyNewRoundStaticNextPlayer3] +Tex = PartyPlayerButton +X = 495 +Y = 415 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = P3Dark +Reflection = 1 +ReflectionSpacing = 2 + +[PartyNewRoundTextRound1] +X = 460 +Y = 133 +Color = White +Font = 0 +Size = 24 +Text = Round 1 +Align = 0 + +[PartyNewRoundTextRound2] +X = 460 +Y = 162 +Color = White +Font = 0 +Size = 24 +Text = Round 2 +Align = 0 + +[PartyNewRoundTextRound3] +X = 460 +Y = 191 +Color = White +Font = 0 +Size = 24 +Text = Round 3 +Align = 0 + +[PartyNewRoundTextRound4] +X = 460 +Y = 220 +Color = White +Font = 0 +Size = 24 +Text = Round 4 +Align = 0 + +[PartyNewRoundTextRound5] +X = 460 +Y = 249 +Color = White +Font = 0 +Size = 24 +Text = Round 5 +Align = 0 + +[PartyNewRoundTextRound6] +X = 460 +Y = 278 +Color = White +Font = 0 +Size = 24 +Text = Round 6 +Align = 0 + +[PartyNewRoundTextRound7] +X = 460 +Y = 307 +Color = White +Font = 0 +Size = 24 +Text = Round 7 +Align = 0 + +[PartyNewRoundTextWinner1] +X = 600 +Y = 133 +Color = White +Font = 0 +Size = 24 +Text = Winner 1 +Align = 0 + +[PartyNewRoundTextWinner2] +X = 600 +Y = 162 +Color = White +Font = 0 +Size = 24 +Text = Winner 2 +Align = 0 + +[PartyNewRoundTextWinner3] +X = 600 +Y = 191 +Color = White +Font = 0 +Size = 24 +Text = Winner 3 +Align = 0 + +[PartyNewRoundTextWinner4] +X = 600 +Y = 220 +Color = White +Font = 0 +Size = 24 +Text = Winner 4 +Align = 0 + +[PartyNewRoundTextWinner5] +X = 600 +Y = 249 +Color = White +Font = 0 +Size = 24 +Text = Winner 5 +Align = 0 + +[PartyNewRoundTextWinner6] +X = 600 +Y = 278 +Color = White +Font = 0 +Size = 24 +Text = Winner 6 +Align = 0 + +[PartyNewRoundTextWinner7] +X = 600 +Y = 307 +Color = White +Font = 0 +Size = 24 +Text = Winner 7 +Align = 0 + +[PartyNewRoundStaticRound1] +Tex = PartyRoundBG2 +X = 450 +Y = 135 +W = 330 +H = 20 +Color = ColorLightest +Type = Colorized + +[PartyNewRoundStaticRound2] +Tex = PartyRoundBG2 +X = 450 +Y = 164 +W = 330 +H = 20 +Color = ColorLightest +Type = Colorized + +[PartyNewRoundStaticRound3] +Tex = PartyRoundBG2 +X = 450 +Y = 193 +W = 330 +H = 20 +Color = ColorLightest +Type = Colorized + +[PartyNewRoundStaticRound4] +Tex = PartyRoundBG2 +X = 450 +Y = 222 +W = 330 +H = 20 +Color = ColorLightest +Type = Colorized + +[PartyNewRoundStaticRound5] +Tex = PartyRoundBG2 +X = 450 +Y = 251 +W = 330 +H = 20 +Color = ColorLightest +Type = Colorized + +[PartyNewRoundStaticRound6] +Tex = PartyRoundBG2 +X = 450 +Y = 280 +W = 330 +H = 20 +Color = ColorLightest +Type = Colorized + +[PartyNewRoundStaticRound7] +Tex = PartyRoundBG2 +X = 450 +Y = 309 +W = 330 +H = 20 +Color = ColorLightest +Type = Colorized + +[PartyNewRoundTextNextRound] +X = 400 +Y = 495 +Color = White +Font = 0 +Size = 30 +Text = Next Round +Align = 1 + +[PartyNewRoundTextNextRoundNo] +X = 457 +Y = 350 +Color = White +Font = 0 +Size = 54 +Text = 99 +Align = 0 + +[PartyNewRoundTextScoreTeam1] +X = 390 +Y = 110 +Color = White +Font = 0 +Size = 51 +Text = 3000 +Align = 1 + +[PartyNewRoundTextScoreTeam2] +X = 390 +Y = 191 +Color = White +Font = 0 +Size = 51 +Text = 2000 +Align = 1 + +[PartyNewRoundTextScoreTeam3] +X = 390 +Y = 272 +Color = White +Font = 0 +Size = 51 +Text = 1000 +Align = 1 + +[PartyNewRoundTextNameTeam1] +X = 30 +Y = 108 +Color = White +Font = 0 +Size = 36 +Text = Team 1 +Align = 0 + +[PartyNewRoundTextNameTeam2] +X = 30 +Y = 189 +Color = White +Font = 0 +Size = 36 +Text = Team 2 +Align = 0 + +[PartyNewRoundTextNameTeam3] +X = 30 +Y = 270 +Color = White +Font = 0 +Size = 36 +Text = Team 3 +Align = 0 + +[PartyNewRoundTextNextPlayer1] +X = 230 +Y = 425 +Color = White +Font = 0 +Size = 30 +Text = Player 1 +Align = 1 + +[PartyNewRoundTextNextPlayer2] +X = 400 +Y = 425 +Color = White +Font = 0 +Size = 30 +Text = Player 2 +Align = 1 + +[PartyNewRoundTextNextPlayer3] +X = 570 +Y = 425 +Color = White +Font = 0 +Size = 30 +Text = Player 3 +Align = 1 + + +[PartyScore] +Texts = 5 + +[PartyScoreBackground] +Tex = PartyBG + +[PartyScoreDecoTextures] +ChangeTextures = 1 + +FirstTexture = PartyScoreDeco +FirstTyp = Colorized +FirstColor = Gold + +SecondTexture = PartyScoreDeco +SecondTyp = Colorized +SecondColor = Silver + +ThirdTexture = PartyScoreDeco +ThirdTyp = Colorized +ThirdColor = Bronze + +[PartyScoreStatic3] +X = 40 +Y = 22 +W = 27 +H = 27 +Color = White +Tex = PartyIcon +Type = Colorized + +[PartyScoreStatic4] +X = 260 +Y = 552 +W = 24 +H = 23 +Tex = ButtonEnter +Color = White +Type = Transparent + +[PartyScoreText1] +X = 70 +Y = 6 +ColR = 0.7 +ColG = 0.7 +ColB = 0.7 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE + +[PartyScoreText2] +X = 70 +Y = 53 +Color = White +Font = 0 +Size = 30 +Align = 0 +Text = PARTY_SCORE_DESC + +[PartyScoreText3] +X = 238 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 2 +Text = PARTY_SCORE_WHEREAMI + +[PartyScoreText4] +X = 290 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = PARTY_LEGEND_CONTINUE + +[PartyScoreStatic5] +Tex = PartyScoreBG1 +X = 50 +Y = 100 +W = 700 +H = 80 +Color = ColorDark +Type = Colorized + +[PartyScoreStatic6] +Tex = PartyScoreBG2 +X = 50 +Y = 495 +W = 700 +H = 20 +Color = ColorLight +Type = Colorized + +[PartyScoreText5] +X = 400 +Y = 136 +Color = White +Font = 0 +Size = 45 +Text = PARTY_SCORE_WINS2 +Align = 1 + +[PartyScoreTextWinner] +X = 400 +Y = 98 +Color = White +Font = 0 +Size = 54 +Text = The Winner is... +Align = 1 + +[PartyScoreTextScoreTeam1] +X = 568 +Y = 198 +Color = White +Font = 0 +Size = 36 +Text = 3000 +Align = 2 + +[PartyScoreTextScoreTeam2] +X = 568 +Y = 298 +Color = White +Font = 0 +Size = 36 +Text = 2000 +Align = 2 + +[PartyScoreTextScoreTeam3] +X = 568 +Y = 398 +Color = White +Font = 0 +Size = 36 +Text = 1000 +Align = 2 + +[PartyScoreTextNameTeam1] +X = 188 +Y = 198 +Font = 0 +Size = 36 +Align = 0 +Text = Team 1 +Color = White + +[PartyScoreTextNameTeam2] +X = 188 +Y = 298 +Color = White +Font = 0 +Size = 36 +Text = Team 2 +Align = 0 + +[PartyScoreTextNameTeam3] +X = 188 +Y = 398 +Color = White +Font = 0 +Size = 36 +Text = Team 3 +Align = 0 + +[PartyScoreStaticTeam1] +X = 188 +Y = 230 +W = 380 +H = 16 +Z = 1 +Tex = PartyTeamPoints +Color = P1Dark +Type = Transparent +Reflection = 1 +ReflectionSpacing = 12 + +[PartyScoreStaticTeam1BG] +Tex = PartyTeamButton2 +X = 178 +Y = 200 +W = 400 +H = 50 +Type = Transparent +Color = P1Dark +DColor = P1Light +Reflection = 1 +ReflectionSpacing = 2 + +[PartyScoreStaticTeam1Deco] +Tex = PartyScoreDeco +X = 563 +Y = 191 +W = 64 +H = 64 +Type = Transparent +Color = Gold +Reflection = 1 +ReflectionSpacing = -5 + +[PartyScoreStaticTeam2] +X = 188 +Y = 330 +W = 380 +H = 15 +Z = 1 +Tex = PartyTeamPoints +Color = P2Dark +Type = Transparent +Reflection = 1 +ReflectionSpacing = 12 + +[PartyScoreStaticTeam2BG] +Tex = PartyTeamButton2 +X = 178 +Y = 300 +W = 400 +H = 50 +Type = Transparent +Color = P2Dark +DColor = P2Light +Reflection = 1 +ReflectionSpacing = 2 + +[PartyScoreStaticTeam2Deco] +Tex = PartyScoreDeco +X = 563 +Y = 291 +W = 64 +H = 64 +Type = Transparent +Color = Gold +Reflection = 1 +ReflectionSpacing = -5 + +[PartyScoreStaticTeam3] +X = 188 +Y = 430 +W = 380 +H = 15 +Z = 1 +Tex = PartyTeamPoints +Color = P3Dark +Type = Transparent +Reflection = 1 +ReflectionSpacing = 12 + +[PartyScoreStaticTeam3BG] +Tex = PartyTeamButton2 +X = 178 +Y = 400 +W = 400 +H = 50 +Type = Transparent +Color = P3Dark +DColor = P3Light +Reflection = 1 +ReflectionSpacing = 2 + +[PartyScoreStaticTeam3Deco] +Tex = PartyScoreDeco +X = 563 +Y = 391 +W = 64 +H = 64 +Type = Transparent +Color = Gold +Reflection = 1 +ReflectionSpacing = -5 + +[PartyWin] +Texts = 4 + +[PartyWinBackground] +Tex = PartyBG + +[PartyWinStatic3] +X = 40 +Y = 22 +W = 27 +H = 27 +Color = White +Tex = PartyIcon +Type = Colorized + +[PartyWinStatic4] +X = 260 +Y = 552 +W = 24 +H = 23 +Tex = ButtonEnter +Color = White +Type = Transparent + +[PartyWinText1] +X = 70 +Y = 6 +ColR = 0.7 +ColG = 0.7 +ColB = 0.7 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE + +[PartyWinText2] +X = 70 +Y = 53 +Color = White +Font = 0 +Size = 30 +Align = 0 +Text = PARTY_WIN_DESC + +[PartyWinText3] +X = 238 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 2 +Text = PARTY_WIN_WHEREAMI + +[PartyWinText4] +X = 290 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = PARTY_WIN_LEGEND_CONTINUE + +#[PartyWinTextWinner] +#X = 150 +#Y = 120 +#Color = White +#Font = 1 +#Size = 42 +#Text = The Winner is... +#Align = 0 + +[PartyWinTextScoreTeam1] +X = 699 +Y = 183 +Color = White +Font = 0 +Size = 57 +Text = 3000 +Align = 2 + +[PartyWinTextScoreTeam2] +X = 669 +Y = 298 +Color = White +Font = 0 +Size = 36 +Text = 2000 +Align = 2 + +[PartyWinTextScoreTeam3] +X = 649 +Y = 398 +Color = White +Font = 0 +Size = 27 +Text = 1000 +Align = 2 + +[PartyWinTextNameTeam1] +X = 169 +Y = 183 +Font = 0 +Size = 57 +Align = 0 +Text = Team 1 +Color = White + +[PartyWinTextNameTeam2] +X = 289 +Y = 298 +Color = White +Font = 0 +Size = 36 +Text = Team 2 +Align = 0 + +[PartyWinTextNameTeam3] +X = 369 +Y = 398 +Color = White +Font = 0 +Size = 27 +Text = Team 3 +Align = 0 + +[PartyWinStaticTeam1] +X = 169 +Y = 230 +W = 530 +H = 16 +Z = 1 +Tex = PartyTeamPoints +Color = TeamColor +Type = Transparent +Reflection = 1 +ReflectionSpacing = 12 + +[PartyWinStaticTeam1BG] +Tex = PartyTeamButton3 +X = 159 +Y = 185 +W = 550 +H = 65 +Type = Transparent +Color = TeamColor +Reflection = 1 +ReflectionSpacing = 2 + +[PartyWinStaticTeam1Rank1] +X = 169 +Y = 230 +W = 530 +H = 16 +Z = 1 +Tex = PartyTeamPoints +Color = P1Dark +Type = Transparent +Reflection = 1 +ReflectionSpacing = 12 + +[PartyWinStaticTeam1BGRank1] +Tex = PartyTeamButton3 +X = 159 +Y = 185 +W = 550 +H = 65 +Type = Transparent +Color = P1Dark +Reflection = 1 +ReflectionSpacing = 2 + +[PartyWinStaticTeam1Rank2] +X = 289 +Y = 330 +W = 380 +H = 15 +Z = 1 +Tex = PartyTeamPoints +Color = P1Dark +Type = Transparent +Reflection = 1 +ReflectionSpacing = 12 + +[PartyWinStaticTeam1BGRank2] +Tex = PartyTeamButton3 +X = 279 +Y = 300 +W = 400 +H = 50 +Type = Transparent +Color = P1Dark +Reflection = 1 +ReflectionSpacing = 2 + +[PartyWinStaticTeam1Rank3] +X = 369 +Y = 420 +W = 280 +H = 15 +Z = 1 +Tex = PartyTeamPoints +Color = P1Dark +Type = Transparent +Reflection = 1 +ReflectionSpacing = 12 + +[PartyWinStaticTeam1BGRank3] +Tex = PartyTeamButton3 +X = 359 +Y = 400 +W = 300 +H = 40 +Type = Transparent +Color = P1Dark +Reflection = 1 +ReflectionSpacing = 2 + + +[PartyWinStaticTeam1Deco] +Tex = PartyWinDeco1 +X = 91 +Y = 176 +W = 79 +H = 79 +Type = Transparent +Color = Gold +Reflection = 1 +ReflectionSpacing = 3 + +[PartyWinStaticTeam2] +X = 289 +Y = 330 +W = 380 +H = 15 +Z = 1 +Tex = PartyTeamPoints +Color = TeamColor +Type = Transparent +Reflection = 1 +ReflectionSpacing = 12 + +[PartyWinStaticTeam2BG] +Tex = PartyTeamButton4 +X = 279 +Y = 300 +W = 400 +H = 50 +Type = Transparent +Color = TeamColor +Reflection = 1 +ReflectionSpacing = 2 + +[PartyWinStaticTeam2Rank1] +X = 169 +Y = 230 +W = 530 +H = 16 +Z = 1 +Tex = PartyTeamButton3 +Color = P2Dark +Type = Transparent +Reflection = 1 +ReflectionSpacing = 12 + +[PartyWinStaticTeam2BGRank1] +Tex = PartyTeamButton4 +X = 159 +Y = 185 +W = 550 +H = 65 +Type = Transparent +Color = P2Dark +Reflection = 1 +ReflectionSpacing = 2 + +[PartyWinStaticTeam2Rank2] +X = 289 +Y = 330 +W = 380 +H = 15 +Z = 1 +Tex = PartyTeamPoints +Color = P2Dark +Type = Transparent +Reflection = 1 +ReflectionSpacing = 12 + +[PartyWinStaticTeam2BGRank2] +Tex = PartyTeamButton4 +X = 279 +Y = 300 +W = 400 +H = 50 +Type = Transparent +Color = P2Dark +Reflection = 1 +ReflectionSpacing = 2 + +[PartyWinStaticTeam2Rank3] +X = 369 +Y = 420 +W = 280 +H = 15 +Z = 1 +Tex = PartyTeamPoints +Color = TeamColor +Type = Transparent +Reflection = 1 +ReflectionSpacing = 12 + +[PartyWinStaticTeam2BGRank3] +Tex = PartyTeamButton4 +X = 359 +Y = 400 +W = 300 +H = 40 +Type = Transparent +Color = TeamColor +Reflection = 1 +ReflectionSpacing = 2 + +[PartyWinStaticTeam2Deco] +Tex = PartyWinDeco2 +X = 226 +Y = 291 +W = 64 +H = 64 +Type = Transparent +Color = Silver +Reflection = 1 +ReflectionSpacing = 3 + +[PartyWinStaticTeam3] +X = 369 +Y = 420 +W = 280 +H = 15 +Z = 1 +Tex = PartyTeamPoints +Color = TeamColor +Type = Transparent +Reflection = 1 +ReflectionSpacing = 12 + +[PartyWinStaticTeam3BG] +Tex = PartyTeamButton5 +X = 359 +Y = 400 +W = 300 +H = 40 +Type = Transparent +Color = TeamColor +Reflection = 1 +ReflectionSpacing = 2 + +[PartyWinStaticTeam3Rank1] +X = 169 +Y = 230 +W = 530 +H = 16 +Z = 1 +Tex = PartyTeamPoints +Color = P3Dark +Type = Transparent +Reflection = 1 +ReflectionSpacing = 12 + +[PartyWinStaticTeam3BGRank1] +Tex = PartyTeamButton3 +X = 159 +Y = 185 +W = 550 +H = 65 +Type = Transparent +Color = P3Dark +Reflection = 1 +ReflectionSpacing = 2 + +[PartyWinStaticTeam3Rank2] +X = 289 +Y = 330 +W = 380 +H = 15 +Z = 1 +Tex = PartyTeamPoints +Color = P3Dark +Type = Transparent +Reflection = 1 +ReflectionSpacing = 12 + +[PartyWinStaticTeam3BGRank2] +Tex = PartyTeamButton5 +X = 279 +Y = 300 +W = 400 +H = 50 +Type = Transparent +Color = P3Dark +Reflection = 1 +ReflectionSpacing = 2 + +[PartyWinStaticTeam3Rank3] +X = 369 +Y = 420 +W = 280 +H = 15 +Z = 1 +Tex = PartyTeamPoints +Color = P3Dark +Type = Transparent +Reflection = 1 +ReflectionSpacing = 12 + +[PartyWinStaticTeam3BGRank3] +Tex = PartyTeamButton5 +X = 359 +Y = 400 +W = 300 +H = 40 +Type = Transparent +Color = P3Dark +Reflection = 1 +ReflectionSpacing = 2 + +[PartyWinStaticTeam3Deco] +Tex = PartyWinDeco3 +X = 316 +Y = 391 +W = 54 +H = 54 +Type = Transparent +Color = Bronze +Reflection = 1 +ReflectionSpacing = 3 + +[PartyTournamentPlayer] +Texts = 5 + +[PartyTournamentPlayerBackground] +Tex = PartyBG + +[PartyTournamentPlayerStatic3] +X = 40 +Y = 22 +W = 27 +H = 27 +Color = White +Tex = PartyIcon +Type = Colorized + +[PartyTournamentPlayerStatic4] +X = 260 +Y = 552 +Z = 0.75 +W = 24 +H = 23 +Tex = ButtonNavi +Color = White +Type = Transparent + +[PartyTournamentPlayerStatic5] +X = 388 +Y = 552 +Z = 0.75 +W = 32 +H = 23 +Tex = ButtonAZ +Color = White +Type = Transparent + +[PartyTournamentPlayerStatic6] +X = 556 +Y = 552 +Z = 0.75 +W = 24 +H = 23 +Tex = ButtonEnter +Color = White +Type = Transparent + +[PartyTournamentPlayerText1] +X = 70 +Y = 6 +ColR = 0.7 +ColG = 0.7 +ColB = 0.7 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE_TOURNAMENT + +[PartyTournamentPlayerText2] +X = 65 +Y = 70 +Color = White +Font = 0 +Size = 30 +Align = 0 +Text = PARTY_MODE_TOURNAMENT_PLAYER_DESC + +[PartyTournamentPlayerText3] +X = 294 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = SING_LEGEND_NAVIGATE + +[PartyTournamentPlayerText4] +X = 418 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = PARTY_PLAYER_ENTER_NAME + +[PartyTournamentPlayerText5] +X = 586 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = SING_LEGEND_CONTINUE + +[PartyTournamentPlayerSelectPlayers] +Text = PARTY_MODE_TOURNAMENT_NUMBER_PLAYERS +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 130 +W = 250 +H = 35 +SkipX = 10 + +DColor = ColorDark +Color = ColorLight +TColor = White +TDColor = White + +SBGDColor = ColorDark +SBGColor = ColorLight +STColor = White +STDColor = GrayDark + +[PartyTournamentPlayerPlayer1Name] +Tex = Button +X = 70 +Y = 210 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorDark +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentPlayerPlayer1NameText1] +X = 75 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = Player 1 +Color = White + +[PartyTournamentPlayerPlayer2Name] +Tex = Button +X = 240 +Y = 210 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorDark +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentPlayerPlayer2NameText1] +X = 75 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = Player 2 +Color = White + +[PartyTournamentPlayerPlayer3Name] +Tex = Button +X = 410 +Y = 210 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorDark +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentPlayerPlayer3NameText1] +X = 75 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = Player 3 +Color = White + +[PartyTournamentPlayerPlayer4Name] +Tex = Button +X = 580 +Y = 210 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorDark +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentPlayerPlayer4NameText1] +X = 75 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = Player 4 +Color = White + +[PartyTournamentPlayerPlayer5Name] +Tex = Button +X = 70 +Y = 290 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorDark +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentPlayerPlayer5NameText1] +X = 75 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = Player 5 +Color = White + +[PartyTournamentPlayerPlayer6Name] +Tex = Button +X = 240 +Y = 290 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorDark +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentPlayerPlayer6NameText1] +X = 75 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = Player 6 +Color = White + +[PartyTournamentPlayerPlayer7Name] +Tex = Button +X = 410 +Y = 290 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorDark +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentPlayerPlayer7NameText1] +X = 75 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = Player 7 +Color = White + +[PartyTournamentPlayerPlayer8Name] +Tex = Button +X = 580 +Y = 290 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorDark +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentPlayerPlayer8NameText1] +X = 75 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = Player 8 +Color = White + +[PartyTournamentPlayerPlayer9Name] +Tex = Button +X = 70 +Y = 370 +Z = 0.6 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorDark +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentPlayerPlayer9NameText1] +X = 75 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = Player 9 +Color = White + +[PartyTournamentPlayerPlayer10Name] +Tex = Button +X = 240 +Y = 370 +Z = 0.6 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorDark +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentPlayerPlayer10NameText1] +X = 75 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = Player 10 +Color = White + +[PartyTournamentPlayerPlayer11Name] +Tex = Button +X = 410 +Y = 370 +Z = 0.6 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorDark +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentPlayerPlayer11NameText1] +X = 75 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = Player 11 +Color = White + +[PartyTournamentPlayerPlayer12Name] +Tex = Button +X = 580 +Y = 370 +Z = 0.6 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorDark +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentPlayerPlayer12NameText1] +X = 75 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = Player 12 +Color = White + +[PartyTournamentPlayerPlayer13Name] +Tex = Button +X = 70 +Y = 450 +Z = 0.6 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorDark +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentPlayerPlayer13NameText1] +X = 75 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = Player 13 +Color = White + +[PartyTournamentPlayerPlayer14Name] +Tex = Button +X = 240 +Y = 450 +Z = 0.6 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorDark +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentPlayerPlayer14NameText1] +X = 75 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = Player 14 +Color = White + +[PartyTournamentPlayerPlayer15Name] +Tex = Button +X = 410 +Y = 450 +Z = 0.6 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorDark +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentPlayerPlayer15NameText1] +X = 75 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = Player 15 +Color = White + +[PartyTournamentPlayerPlayer16Name] +Tex = Button +X = 580 +Y = 450 +Z = 0.6 +W = 150 +H = 50 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorDark +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentPlayerPlayer16NameText1] +X = 75 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = Player 16 +Color = White + +[PartyTournamentOptions] +Texts = 4 + +[PartyTournamentOptionsBackground] +Tex = PartyBG + + +[PartyTournamentOptionsStatic3] +X = 40 +Y = 22 +W = 27 +H = 27 +Color = White +Tex = PartyIcon +Type = Colorized + +[PartyTournamentOptionsStatic4] +X = 260 +Y = 552 +W = 24 +H = 23 +Tex = ButtonNavi +Color = White +Type = Transparent + +[PartyTournamentOptionsStatic5] +X = 388 +Y = 552 +W = 24 +H = 23 +Tex = ButtonEnter +Color = White +Type = Transparent + +[PartyTournamentOptionsText1] +X = 70 +Y = 5 +ColR = 0.7 +ColG = 0.7 +ColB = 0.7 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE_TOURNAMENT + +[PartyTournamentOptionsText2] +X = 70 +Y = 65 +Color = White +Font = 0 +Size = 30 +Align = 0 +Text = PARTY_MODE_TOURNAMENT_OPTIONS_DESC + +[PartyTournamentOptionsText3] +X = 294 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = SING_LEGEND_NAVIGATE + +[PartyTournamentOptionsText4] +X = 418 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = SING_LEGEND_CONTINUE + +[PartyTournamentOptionsSelectRoundsFinal] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_MODE_TOURNAMENT_ROUNDS_FINAL +X = 70 +Y = 110 +W = 230 +H = 40 +SkipX = 10 +Fields = 1 + +DColor = ColorDark +Color = ColorLight +TColor = White +TDColor = White + +SBGDColor = ColorDark +SBGColor = ColorLight +STColor = White +STDColor = GrayDark + +[PartyTournamentOptionsSelectRounds2Final] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_MODE_TOURNAMENT_ROUNDS_2FINAL +X = 70 +Y = 165 +W = 230 +H = 40 +SkipX = 10 +Fields = 1 + +DColor = ColorDark +Color = ColorLight +TColor = White +TDColor = White + +SBGDColor = ColorDark +SBGColor = ColorLight +STColor = White +STDColor = GrayDark + +[PartyTournamentOptionsSelectRounds4Final] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_MODE_TOURNAMENT_ROUNDS_4FINAL +X = 70 +Y = 220 +W = 230 +H = 40 +SkipX = 10 +Fields = 1 + +DColor = ColorDark +Color = ColorLight +TColor = White +TDColor = White + +SBGDColor = ColorDark +SBGColor = ColorLight +STColor = White +STDColor = GrayDark + +[PartyTournamentOptionsSelectRounds8Final] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = PARTY_MODE_TOURNAMENT_ROUNDS_8FINAL +X = 70 +Y = 275 +W = 230 +H = 40 +SkipX = 10 +Fields = 1 + +DColor = ColorDark +Color = ColorLight +TColor = White +TDColor = White + +SBGDColor = ColorDark +SBGColor = ColorLight +STColor = White +STDColor = GrayDark + + +[PartyTournamentRounds] +Texts = 3 + +[PartyTournamentRoundsBackground] +Tex = PartyBG + +[PartyTournamentRoundsStatic3] +X = 40 +Y = 22 +W = 27 +H = 27 +Color = White +Tex = PartyIcon +Type = Colorized + +[PartyTournamentRoundsStatic4] +X = 260 +Y = 552 +W = 24 +H = 23 +Tex = ButtonEnter +Color = White +Type = Transparent + +[PartyTournamentRoundsStatic5] +X = 310 +Y = 180 +W = 270 +H = 270 +Tex = PartyTrophy +Color = White +Type = Transparent + +[PartyTournamentRoundsStatic6] +X = 300 +Y = 450 +W = 200 +H = 80 +Tex = PartyWinner +Color = White +Type = Transparent +Texts = 1 + +[PartyTournamentRoundsText1] +X = 70 +Y = 5 +ColR = 0.7 +ColG = 0.7 +ColB = 0.7 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE_TOURNAMENT + +[PartyTournamentRoundsText2] +X = 70 +Y = 65 +Color = White +Font = 0 +Size = 30 +Align = 0 +Text = PARTY_MODE_TOURNAMENT_ROUNDS_DESC + +[PartyTournamentRoundsText3] +X = 294 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = SING_LEGEND_CONTINUE + +[PartyTournamentRoundsTextNameBlock1Player1] +Tex = Button +X = 20 +Y = 130 +Z = 0.6 +W = 120 +H = 30 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorLightest +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentRoundsTextNameBlock1Player1Text1] +X = 60 +Y = 6 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[PartyTournamentRoundsTextNameBlock1Player2] +Tex = Button +X = 20 +Y = 180 +Z = 0.6 +W = 120 +H = 30 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorLightest +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentRoundsTextNameBlock1Player2Text1] +X = 60 +Y = 6 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[PartyTournamentRoundsTextNameBlock1Player3] +Tex = Button +X = 20 +Y = 230 +Z = 0.6 +W = 120 +H = 30 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorLightest +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentRoundsTextNameBlock1Player3Text1] +X = 60 +Y = 6 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[PartyTournamentRoundsTextNameBlock1Player4] +Tex = Button +X = 20 +Y = 280 +Z = 0.6 +W = 120 +H = 30 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorLightest +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentRoundsTextNameBlock1Player4Text1] +X = 60 +Y = 6 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[PartyTournamentRoundsTextNameBlock1Player5] +Tex = Button +X = 20 +Y = 330 +Z = 0.6 +W = 120 +H = 30 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorLightest +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentRoundsTextNameBlock1Player5Text1] +X = 60 +Y = 6 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[PartyTournamentRoundsTextNameBlock1Player6] +Tex = Button +X = 20 +Y = 380 +Z = 0.6 +W = 120 +H = 30 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorLightest +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentRoundsTextNameBlock1Player6Text1] +X = 60 +Y = 6 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[PartyTournamentRoundsTextNameBlock1Player7] +Tex = Button +X = 20 +Y = 430 +Z = 0.6 +W = 120 +H = 30 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorLightest +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentRoundsTextNameBlock1Player7Text1] +X = 60 +Y = 6 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[PartyTournamentRoundsTextNameBlock1Player8] +Tex = Button +X = 20 +Y = 480 +Z = 0.6 +W = 120 +H = 30 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorLightest +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentRoundsTextNameBlock1Player8Text1] +X = 60 +Y = 6 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[PartyTournamentRoundsTextNameBlock2Player1] +Tex = Button +X = 660 +Y = 130 +Z = 0.6 +W = 120 +H = 30 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorLightest +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentRoundsTextNameBlock2Player1Text1] +X = 60 +Y = 6 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[PartyTournamentRoundsTextNameBlock2Player2] +Tex = Button +X = 660 +Y = 180 +Z = 0.6 +W = 120 +H = 30 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorLightest +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentRoundsTextNameBlock2Player2Text1] +X = 60 +Y = 6 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[PartyTournamentRoundsTextNameBlock2Player3] +Tex = Button +X = 660 +Y = 230 +Z = 0.6 +W = 120 +H = 30 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorLightest +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentRoundsTextNameBlock2Player3Text1] +X = 60 +Y = 6 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[PartyTournamentRoundsTextNameBlock2Player4] +Tex = Button +X = 660 +Y = 280 +Z = 0.6 +W = 120 +H = 30 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorLightest +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentRoundsTextNameBlock2Player4Text1] +X = 60 +Y = 6 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[PartyTournamentRoundsTextNameBlock2Player5] +Tex = Button +X = 660 +Y = 330 +Z = 0.6 +W = 120 +H = 30 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorLightest +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentRoundsTextNameBlock2Player5Text1] +X = 60 +Y = 6 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[PartyTournamentRoundsTextNameBlock2Player6] +Tex = Button +X = 660 +Y = 380 +Z = 0.6 +W = 120 +H = 30 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorLightest +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentRoundsTextNameBlock2Player6Text1] +X = 60 +Y = 6 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[PartyTournamentRoundsTextNameBlock2Player7] +Tex = Button +X = 660 +Y = 430 +Z = 0.6 +W = 120 +H = 30 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorLightest +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentRoundsTextNameBlock2Player7Text1] +X = 60 +Y = 6 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[PartyTournamentRoundsTextNameBlock2Player8] +Tex = Button +X = 660 +Y = 480 +Z = 0.6 +W = 120 +H = 30 +Type = Transparent +Texts = 1 +Color = ColorLight +DColor = ColorLightest +Reflection = 1 +ReflectionSpacing = 1 + +[PartyTournamentRoundsTextNameBlock2Player8Text1] +X = 60 +Y = 6 +Font = 0 +Size = 20 +Align = 1 +Color = White + +[PartyTournamentRoundsResult] +X = 6 +Y = 6 +Font = 0 +Size = 18 +Color = White + +[PartyTournamentRoundsWinner] +X = 400 +Y = 478 +Color = Bronze +Font = 2 +Size = 28 +Align = 1 + +[PartyTournamentRoundsNextPlayers] +X = 6 +Y = -8 +Font = 1 +Size = 20 +Color = White + + +[PartyTournamentWin] +Texts = 3 + +[PartyTournamentWinBackground] +Tex = PartyBG + +[PartyTournamentWinStatic3] +X = 40 +Y = 22 +W = 27 +H = 27 +Color = White +Tex = PartyIcon +Type = Colorized + +[PartyTournamentWinStatic4] +X = 260 +Y = 552 +W = 24 +H = 23 +Tex = ButtonEnter +Color = White +Type = Transparent + +[PartyTournamentWinText1] +X = 70 +Y = 6 +ColR = 0.7 +ColG = 0.7 +ColB = 0.7 +Font = 0 +Size = 60 +Color = White +Text = PARTY_MODE_TOURNAMENT + +[PartyTournamentWinText2] +X = 70 +Y = 53 +Color = White +Font = 0 +Size = 30 +Align = 0 +Text = PARTY_MODE_TOURNAMENT_WIN_DESC + +[PartyTournamentWinText3] +X = 290 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = SING_LEGEND_CONTINUE + +[PartyTournamentWinTextScorePlayer1] +X = 620 +Y = 180 +Color = White +Font = 0 +Size = 57 +Text = 3000 +Align = 2 + +[PartyTournamentWinTextScorePlayer2] +X = 620 +Y = 330 +Color = White +Font = 0 +Size = 57 +Text = 2000 +Align = 2 + +[PartyTournamentWinTextNamePlayer1] +X = 170 +Y = 180 +Font = 0 +Size = 57 +Align = 0 +Text = Team 1 +Color = White + +[PartyTournamentWinTextNamePlayer2] +X = 170 +Y = 330 +Color = White +Font = 0 +Size = 57 + +[PartyTournamentWinStaticBGPlayer1] +Tex = PartyTeamButton3 +X = 140 +Y = 170 +W = 520 +H = 78 +Type = Transparent +Color = P1Dark +Reflection = 1 +ReflectionSpacing = 2 + +[PartyTournamentWinStaticBGPlayer2] +Tex = PartyTeamButton3 +X = 140 +Y = 320 +W = 520 +H = 78 +Type = Transparent +Color = P2Dark +Reflection = 1 +ReflectionSpacing = 2 + + +########################################## +## ## +## JUKEBOX MODE ## +## ## +########################################## + +[JukeboxPlaylist] +Texts = 5 + +[JukeboxPlaylistBackground] +Tex = PartyBG + +[JukeboxPlaylistStatic1] +X = 388 +Y = 552 +W = 24 +H = 23 +Tex = ButtonEnter +Color = White +Type = Transparent + +[JukeboxPlaylistText1] +X = 70 +Y = 25 +ColR = 0.7 +ColG = 0.7 +ColB = 0.7 +Font = 0 +Size = 60 +Color = White +Text = JUKEBOX_MODE + +[JukeboxPlaylistText2] +X = 418 +Y = 552 +Color = White +Font = 0 +Size = 21 +Align = 0 +Text = SING_LEGEND_CONTINUE + +[JukeboxPlaylistSelectPlayList] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = JUKEBOX_OPTIONS_PLAYLIST_MODE +X = 70 +Y = 110 +W = 230 +H = 40 +SkipX = 10 +Fields = 1 + +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = GrayLight +SBGColor = ColorDark +STColor = White +STDColor = GrayDark + +[JukeboxPlaylistSelectPlayList2] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = JUKEBOX_OPTIONS_PLAYLIST +X = 70 +Y = 165 +W = 230 +H = 40 +SkipX = 10 +Fields = 1 + +DColor = +Color = +TColor = White +TDColor = White + +SBGDColor = GrayLight +SBGColor = ColorDark +STColor = White +STDColor = GrayDark + +#---------------------------- + +#[JukeboxTimeBackground] +#Tex = JukeboxTimeBar1 +#X = 325 +#Y = 460 +#W = 315 +#H = 25 +#Color = White +#Type = Transparent + +#[JukeboxTimeProgress] +#X = 339 +#Y = 468 +#W = 248 +#H = 8 +#Color = White +#Type = Colorized + +#[JukeboxTimeText] +#X = 630 +#Y = 466 +#W = 35 +#Font = 1 +#Size = 14 +#Color = White +#Align = 2 + +################ NOT USED ################ +[JukeboxLyricsUpperBar] +X = 80 +W = 640 +Y = 490 +H = 54 +;YOffSet (+/-) for the Sing-Indicator +IndicatorYOffset = 3 + +[JukeboxLyricsLowerBar] +X = 80 +W = 640 +Y = 535 +H = 54 +############################################# + +[JukeboxSongListBackground] +Tex = JukeboxSongListBackground +X = 100 +Y = 55 +W = 600 +H = 440 +Color = White +Type = Colorized + +[JukeboxListText] +X = 120 +Y = 65 +W = 500 +Color = White +Font = 1 +Size = 24 +Align = 0 +Z = 1 +Text=JUKEBOX_SONGLIST + +[JukeboxCountText] +X = 680 +Y = 385 +W = 100 +Color = White +Font = 1 +Size = 15 +Align = 2 +Z = 1 + +[JukeboxSongDescription] +X = 120 +Y = 110 +W = 560 +H = 25 +Tex = JukeboxSongSelection +Color = ColorDark +DColor = White +Type = Colorized +Texts=2 + +[JukeboxSongDescriptionText1] +X = 10 +Y = 3 +W = 100 +Color = White +Font = 0 +Size = 18 +Align = 0 +Z = 1 + +[JukeboxSongDescriptionText2] +X = 550 +Y = 3 +W = 100 +Color = WhiteGray +Font = 0 +Size = 18 +Align = 2 +Z = 1 + +[JukeboxFind] +X = 310 +Y = 385 +W = 300 +H = 25 +Tex = JukeboxField +Color = ColorDark +DColor = White +Type = Colorized +Texts=2 + +[JukeboxFindText1] +X = 10 +Y = 3 +W = 200 +Color = White +Font = 1 +Size = 19 +Align = 0 +Z = 1 + +[JukeboxFindText2] +X = -80 +Y = 4 +W = 240 +Color = White +Font = 1 +Size = 18 +Align = 0 +Z = 1 +Text = JUKEBOX_FIND + +[JukeboxSort] +X = 310 +Y = 423 +W = 108 +H = 25 +Tex = JukeboxField +Color = ColorDark +DColor = White +Type = Colorized +Texts=2 + +[JukeboxSortText1] +X = 54 +Y = 4 +W = 100 +Color = White +Font = 1 +Size = 18 +Align = 1 +Z = 1 +Text = OPTION_VALUE_ARTIST + +[JukeboxSortText2] +X = -80 +Y = 4 +W = 200 +Color = White +Font = 1 +Size = 18 +Align = 0 +Z = 1 +Text = JUKEBOX_SORT + +[JukeboxRandom] +X = 450 +Y = 423 +W = 25 +H = 31 +Tex = JukeboxRandom +Color = ColorDark +DColor = White +Type = Colorized + +[JukeboxRepeat] +X = 494 +Y = 423 +W = 25 +H = 31 +Tex = JukeboxRepeat +Color = ColorDark +DColor = White +Type = Colorized + +[JukeboxLyric] +X = 533 +Y = 423 +W = 25 +H = 31 +Tex = JukeboxLyric +Color = ColorDark +DColor = White +Type = Colorized + +[JukeboxOptions] +X = 572 +Y = 423 +W = 25 +H = 31 +Tex = JukeboxOptions +Color = ColorDark +DColor = White +Type = Colorized + +[JukeboxSongListClose] +X = 640 +Y = 55 +W = 40 +H = 15 +Tex = JukeboxClose +Color = Red +DColor = +Type = Colorized + +[JukeboxSongListFixPin] +X = 613 +Y = 55 +W = 25 +H = 15 +Tex = JukeboxFix +Color = ColorDark +DColor = White +Type = Colorized + +[JukeboxSongCover] +X = 120 +Y = 385 +W = 75 +H = 100 + +[JukeboxStaticActualSong1] +X = 20 +Y = 25 +W = 84 +H = 104 +Tex = JukeboxCurrentSongBackground +Color = ColorDark +Type = Transparent + +[JukeboxStaticActualSongCover] +X = 22 +Y = 27 +W = 80 +H = 100 + +[JukeboxTextActualSongArtist] +X = 130 +Y = 43 +Color = White +Font = 2 +Size = 26 +Align = 0 +Z = 1 + +[JukeboxTextActualSongTitle] +X = 130 +Y = 70 +Color = ColorDark +Font = 2 +Size = 36 +Align = 0 +Z = 1 + +[JukeboxSongListUp] +X = 120 +Y = 95 +W = 560 +H = 15 +Tex = JukeboxSongListUp +Color = ColorDark +DColor = White +Type = Colorized + +[JukeboxSongListDown] +X = 120 +Y = 360 +W = 560 +H = 15 +Tex = JukeboxSongListDown +Color = ColorDark +DColor = White +Type = Colorized + +#[JukeboxPlayPause] +#X = 280 +#Y = 460 +#W = 40 +#H = 25 +#Tex = JukeboxSongMenuPlayPause +#Color = ColorDark +#DColor = White +#Type = Colorized + +[JukeboxSongMenuBackground] +Tex = JukeboxSongbartopBackground +X = 155 +Y = 0 +W = 500 +H = 50 +Color = ColorDark +Type = Colorized + +[JukeboxSongMenuTimeBackground] +Tex = JukeboxSongMenuTimeBar +X = 222 +Y = 10 +W = 215 +H = 16 +Color = ColorDark +Type = Colorized + +[JukeboxSongMenuTimeProgress] +X = 227 +Y = 13 +W = 205 +H = 9 +Color = ColorDark +Type = Colorized + +[JukeboxSongMenuTextTime] +X = 485 +Y = 11 +W = 35 +Font = 1 +Size = 15 +Color = White +Align = 2 + +[JukeboxSongMenuPlayPause] +X = 180 +Y = 3 +W = 35 +H = 30 +Tex = JukeboxSongMenuPlayPause +Color = ColorDark +DColor = White +Type = Colorized + +[JukeboxSongMenuPrevious] +X = 500 +Y = 4 +W = 26 +H = 26 +Tex = JukeboxSongMenuPrevious +Color = ColorDark +DColor = White +Type = Colorized + +[JukeboxSongMenuNext] +X = 530 +Y = 4 +W = 26 +H = 26 +Tex = JukeboxSongMenuNext +Color = ColorDark +DColor = White +Type = Colorized + +[JukeboxSongMenuOptions] +X = 566 +Y = 3 +W = 22 +H = 28 +Tex = JukeboxOptions +Color = ColorDark +DColor = White +Type = Colorized + +[JukeboxSongMenuPlaylist] +X = 600 +Y = 3 +W = 24 +H = 29 +Tex = JukeboxSongMenuPlaylist +Color = ColorDark +DColor = White +Type = Colorized + +[JukeboxSongOptionsBackground] +Tex = JukeboxSongOptionsBackground +X = 150 +Y = 55 +W = 500 +H = 440 +Color = ColorDark +Type = Colorized + +[JukeboxSongOptionsClose] +X = 595 +Y = 55 +W = 40 +H = 15 +Tex = JukeboxClose +Color = Red +DColor = +Type = Colorized + +[JukeboxSongOptionsDefault] +X = 160 +Y = 455 +W = 120 +H = 25 +Tex = JukeboxButton +Color = ColorDark +DColor = +Type = Colorized +Texts = 1 + +[JukeboxSongOptionsDefaultText1] +X = 60 +Y = 4 +W = 120 +Font = 1 +Size = 18 +Color = White +Align = 1 +Text = JUKEBOX_SONGOPTIONS_DEFAULT + +[JukeboxSongOptionsSave] +X = 515 +Y = 455 +W = 120 +H = 25 +Tex = JukeboxButton +Color = ColorDark +DColor = +Type = Colorized +Texts = 1 + +[JukeboxSongOptionsSaveText1] +X = 60 +Y = 4 +W = 120 +Font = 1 +Size = 18 +Color = White +Align = 1 +Text = JUKEBOX_SONGOPTIONS_SAVE + +[JukeboxSongOptionsTextSaved] +X = 500 +Y = 459 +W = 120 +Font = 1 +Size = 18 +Color = White +Align = 2 +Text = JUKEBOX_SONGOPTIONS_OPTIONSSAVED + +[JukeboxSongOptionsVideoText] +X = 160 +Y = 65 +W = 500 +Color = White +Font = 1 +Size = 20 +Align = 0 +Z = 1 +Text=JUKEBOX_SONGOPTIONS_VIDEO + +[JukeboxSongOptionsLyricText] +X = 160 +Y = 198 +W = 500 +Color = White +Font = 1 +Size = 20 +Align = 0 +Z = 1 +Text=JUKEBOX_SONGOPTIONS_LYRIC + +[JukeboxSongOptionsVideoAspectSlide] +TexSBG=JukeboxSelect +Text=JUKEBOX_SONGOPTIONS_VIDEO_ASPECT +TypeSBG=Colorized +ShowArrows=1 +OneItemOnly=1 +X=180 +Y=100 +W=200 +H=20 +Z=0.97 +SkipX=0 +SBGW=220 +TextSize=18 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + + +[JukeboxSongOptionsVideoWidthSlide] +TexSBG=JukeboxSelect +Text=JUKEBOX_SONGOPTIONS_VIDEO_WIDTH +TypeSBG=Colorized +ShowArrows=1 +OneItemOnly=1 +X=180 +Y=130 +W=200 +H=20 +Z=0.97 +SkipX=0 +SBGW=220 +TextSize=18 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[JukeboxSongOptionsVideoHeightSlide] +TexSBG=JukeboxSelect +Text=JUKEBOX_SONGOPTIONS_VIDEO_HEIGHT +TypeSBG=Colorized +ShowArrows=1 +OneItemOnly=1 +X=180 +Y=150 +Y=160 +W=200 +H=20 +Z=0.97 +SkipX=0 +SBGW=220 +TextSize=18 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[JukeboxSongOptionsLyricPositionSlide] +TexSBG=JukeboxSelect +Text=JUKEBOX_SONGOPTIONS_LYRIC_POSITION +TypeSBG=Colorized +ShowArrows=1 +OneItemOnly=1 +X=180 +Y=233 +W=200 +H=20 +Z=0.97 +SkipX=0 +SBGW=220 +TextSize=18 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[JukeboxSongOptionsLyricAlphaSlide] +TexSBG=JukeboxSelect +Text=JUKEBOX_SONGOPTIONS_LYRIC_ALPHA +TypeSBG=Colorized +ShowArrows=1 +OneItemOnly=1 +X=180 +Y=263 +W=200 +H=20 +Z=0.97 +SkipX=0 +SBGW=220 +TextSize=18 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[JukeboxSongOptionsLyricLineSlide] +TexSBG=JukeboxSelect +Text=JUKEBOX_SONGOPTIONS_LYRIC_LINE +TypeSBG=Colorized +ShowArrows=1 +OneItemOnly=1 +X=180 +Y=293 +W=200 +H=20 +Z=0.97 +SkipX=0 +SBGW=220 +TextSize=18 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[JukeboxSongOptionsLyricPropertySlide] +TexSBG=JukeboxSelect +Text=JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY +TypeSBG=Colorized +ShowArrows=1 +OneItemOnly=1 +X=180 +Y=323 +W=200 +H=20 +Z=0.97 +SkipX=0 +SBGW=220 +TextSize=18 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[JukeboxSongOptionsLyricColorSlide] +TexSBG=JukeboxSelect +Text=JUKEBOX_SONGOPTIONS_LYRIC_COLOR +TypeSBG=Colorized +ShowArrows=1 +OneItemOnly=1 +X=180 +Y=353 +W=200 +H=20 +Z=0.97 +SkipX=0 +SBGW=220 +TextSize=18 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[JukeboxSongOptionsLyricSelectR] +Text = JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED +#Tex= JukeboxButton +Type = Colorized +X = 310 +Y = 380 +W = 100 +H = 15 +SkipX = -30 +TextSize = 14 +SBGW=220 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[JukeboxSongOptionsLyricRed] +X = 380 +Y = 380 +W = 220 +H = 15 +Z = 1 +Alpha = 0.5 +Tex = Picker +Type = Transparent + +[JukeboxSongOptionsLyricPointerR] +X = 380 +Y = 378 +W = 1 +H = 18 +Z = 1 +Tex = Picker +Color = Black +Type = Transparent + +[JukeboxSongOptionsLyricSelectG] +Text = JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN +#Tex= JukeboxButton +Type = Colorized +X = 310 +Y = 400 +W = 100 +H = 15 +SkipX = -30 +TextSize = 14 +SBGW=220 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[JukeboxSongOptionsLyricGreen] +X = 380 +Y = 400 +W = 220 +H = 15 +Z = 1 +Alpha = 0.5 +Tex = Picker +Type = Transparent + +[JukeboxSongOptionsLyricPointerG] +X = 380 +Y = 398 +W = 1 +H = 18 +Z = 1 +Tex = Picker +Color = Black +Type = Transparent + +[JukeboxSongOptionsLyricSelectB] +Text = JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE +#Tex= JukeboxButton +Type = Colorized +X = 310 +Y = 420 +W = 100 +H = 15 +SkipX = -30 +TextSize = 14 +SBGW=220 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[JukeboxSongOptionsLyricBlue] +X = 380 +Y = 420 +W = 220 +H = 15 +Z = 1 +Alpha = 0.5 +Tex = Picker +Type = Transparent + +[JukeboxSongOptionsLyricPointerB] +X = 380 +Y = 418 +W = 1 +H = 18 +Z = 1 +Tex = Picker +Color = Black +Type = Transparent + + +################################ +### S T A T S S C R E E N ### +################################ + +[StatMain] +Texts = 0 +Statics = 0 + +[StatMainBackground] +Tex = MainBG + +[StatMainButtonScores] +X = 589 +Y = 100 +W = 190 +H = 50 +Tex = Button +Color = ColorDark +DColor = GrayDark +Type = Transparent +Texts = 1 +Reflection = 0 + +[StatMainButtonScoresText1] +X = 95 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = STAT_DESC_SCORES +Color = White + +[StatMainButtonSingers] +X = 589 +Y = 160 +W = 190 +H = 50 +Tex = Button +Color = ColorDark +DColor = GrayDark +Type = Transparent +Texts = 1 +Reflection = 0 + +[StatMainButtonSingersText1] +X = 95 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = STAT_DESC_SINGERS +Color = White + +[StatMainButtonSongs] +X = 589 +Y = 220 +W = 190 +H = 50 +Tex = Button +Color = ColorDark +DColor = GrayDark +Type = Transparent +Texts = 1 +Reflection = 0 + +[StatMainButtonSongsText1] +X = 95 +Y = 13 +Font = 0 +Size = 24 +Align = 1 +Text = STAT_DESC_SONGS +Color = White + +[StatMainButtonBands] +X = 589 +Y = 280 +W = 190 +H = 50 +Tex = Button +Color = ColorDark +DColor = GrayDark +Type = Transparent +Texts = 1 +Reflection = 0 + +[StatMainButtonBandsText1] +X = 95 +Y = 13 +Font = 0 +Size = 24 +Align = 1 +Text = STAT_DESC_BANDS +Color = White + +[StatMainButtonExit] +X = 589 +Y = 340 +W = 190 +H = 50 +Tex = Button +Color = ColorDark +DColor = GrayDark +Type = Transparent +Texts = 1 +Reflection = 0 + +[StatMainButtonExitText1] +X = 95 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = SING_OPTIONS_EXIT +Color = White + +[StatMainTextOverview] +X = 45 +Y = 125 +W = 510 +Color = White +Font = 0 +Size = 27 +Align = 0 +Text = + +[StatMainStatic1] +X = 30 +Y = 100 +W = 530 +H = 340 +Tex = StatInfoBG1 +Color = ColorDark +Type = Colorized + +[StatMainText1] +X = 50 +Y = 25 +Color = White +Font = 0 +Size = 50 +Text = STAT_MAIN +Align = 0 + +[StatDetail] +Texts = 0 +Statics = 0 + +[StatDetailBackground] +Tex = MainBG + +[StatDetailButtonNext] +X = 589 +Y = 100 +W = 190 +H = 50 +Tex = Button +Color = ColorDark +DColor = GrayDark +Type = Transparent +Texts = 1 +Reflection = 0 + +[StatDetailButtonNextText1] +X = 95 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = STAT_NEXT +Color = White + +[StatDetailButtonPrev] +X = 589 +Y = 160 +W = 190 +H = 50 +Tex = Button +Color = ColorDark +DColor = GrayDark +Type = Transparent +Texts = 1 +Reflection = 0 + +[StatDetailButtonPrevText1] +X = 95 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = STAT_PREV +Color = White + +[StatDetailButtonReverse] +X = 589 +Y = 220 +W = 190 +H = 50 +Tex = Button +Color = ColorDark +DColor = GrayDark +Type = Transparent +Texts = 1 +Reflection = 0 + +[StatDetailButtonReverseText1] +X = 95 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = STAT_REVERSE +Color = White + +[StatDetailButtonExit] +X = 589 +Y = 280 +W = 190 +H = 50 +Tex = Button +Color = ColorDark +DColor = GrayDark +Type = Transparent +Texts = 1 +Reflection = 0 + +[StatDetailButtonExitText1] +X = 95 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = SING_OPTIONS_EXIT +Color = White + +[StatDetailTextDescription] +X = 50 +Y = 80 +Color = White +Font = 0 +Size = 25 +Align = 0 +Text = + +[StatDetailTextPage] +X = 440 +Y = 105 +Color = White +Font = 0 +Size = 15 +Align = 0 +Text = + +[StatDetailTextList1] +X = 50 +Y = 140 +Color = White +Font = 0 +Size = 21 +Text = Stat1 + +[StatDetailTextList2] +X = 50 +Y = 178 +Color = White +Font = 0 +Size = 21 +Text = Stat2 + +[StatDetailTextList3] +X = 50 +Y = 216 +Color = White +Font = 0 +Size = 21 +Text = + +[StatDetailTextList4] +X = 50 +Y = 254 +Color = White +Font = 0 +Size = 21 +Text = + +[StatDetailTextList5] +X = 50 +Y = 292 +Color = White +Font = 0 +Size = 21 +Text = + +[StatDetailTextList6] +X = 50 +Y = 330 +Color = White +Font = 0 +Size = 21 +Text = + +[StatDetailTextList7] +X = 50 +Y = 368 +Color = White +Font = 0 +Size = 21 +Text = + +[StatDetailTextList8] +X = 50 +Y = 406 +Color = White +Font = 0 +Size = 21 +Text = + +[StatDetailTextList9] +X = 50 +Y = 444 +Color = White +Font = 0 +Size = 21 +Text = + +[StatDetailTextList10] +X = 50 +Y = 482 +Color = White +Font = 0 +Size = 21 +Text = + +[StatDetailStatic1] +X = 40 +Y = 100 +W = 520 +H = 440 +Tex = StatInfoBG2 +Color = ColorLight +Type = Colorized + + +[StatDetailText1] +X = 50 +Y = 25 +Color = White +Font = 0 +Size = 50 +Text = STAT_DETAIL +Align = 0 + + +[Options] +Texts = 6 +Fade = 2 + +[OptionsBackground] +Tex = OptionsBG + +[OptionsText1] +X = 25 +Y = 25 +Color = White +Font = 0 +Size = 54 +Text = SING_OPTIONS +Align = 0 + +[OptionsButtonGame] +X = 100 +Y = 120 +W = 75 +H = 80 +Tex = Optionsbuttongame +Color = White +DColor = White +Type = Transparent +Texts = 1 +Fade = 1 +FadeText = 1 +SelectH = 70 +FadeTex = ButtonFade +FadeTexPos = 0 + +[OptionsButtonGameText1] +X = 35 +Y = 80 +Font = 0 +Size = 26 +Align = 1 +Text = SING_OPTIONS_GAME +Color = White + +[OptionsButtonGraphics] +X = 260 +Y = 120 +W = 75 +H = 85 +Tex = Optionsbuttongraphics +Color = White +DColor = White +Type = Transparent +Texts = 1 +Fade = 1 +FadeText = 1 +SelectH = 75 +FadeTex = ButtonFade +FadeTexPos = 0 + +[OptionsButtonGraphicsText1] +X = 40 +Y = 80 +Font = 0 +Size = 26 +Align = 1 +Text = SING_OPTIONS_GRAPHICS +Color = White + +[OptionsButtonSound] +X = 432 +Y = 120 +W = 59 +H = 70 +Tex = Optionsbuttonsound +Color = White +DColor = White +Type = Transparent +Texts = 1 +Fade = 1 +FadeText = 1 +SelectH = 60 +FadeTex = ButtonFade +FadeTexPos = 0 + +[OptionsButtonSoundText1] +X = 30 +Y = 80 +Font = 0 +Size = 26 +Align = 1 +Text = SING_OPTIONS_SOUND +Color = White + +[OptionsButtonLyrics] +X = 580 +Y = 120 +W = 70 +H = 75 +Tex = Optionsbuttonlyrics +Color = White +DColor = White +Type = Transparent +Align = 0 +Texts = 1 +Fade = 1 +FadeText = 1 +SelectH = 65 +FadeTex = ButtonFade +FadeTexPos = 0 + +[OptionsButtonLyricsText1] +X = 35 +Y = 80 +Font = 0 +Size = 26 +Align = 1 +Text = SING_OPTIONS_LYRICS +Color = White + +[OptionsButtonThemes] +X = 100 +Y = 270 +W = 95 +H = 85 +Tex = Optionsbuttondesign +Color = White +DColor = White +Type = Transparent +Align = 0 +Texts = 1 +Fade = 1 +FadeText = 1 +SelectH = 75 +FadeTex = ButtonFade +FadeTexPos = 0 + +[OptionsButtonThemesText1] +X = 35 +Y = 80 +Font = 0 +Size = 26 +Align = 1 +Text = SING_OPTIONS_THEMES +Color = White + +[OptionsButtonMicrophones] +X = 265 +Y = 270 +W = 73 +H = 75 +Tex = Optionsbuttonmicrophones +Color = White +DColor = White +Type = Transparent +Align = 0 +Texts = 1 +Fade = 1 +FadeText = 1 +SelectH = 65 +FadeTex = ButtonFade +FadeTexPos = 0 + +[OptionsButtonMicrophonesText1] +X = 40 +Y = 80 +Font = 0 +Size = 26 +Align = 1 +Text = SING_OPTIONS_MICROPHONES +Color = White +Texts = 1 + +[OptionsButtonAdvanced] +X = 432 +Y = 270 +W = 61 +H = 77 +Tex = Optionsbuttonadvanced +Color = White +DColor = White +Type = Transparent +Align = 0 +Texts = 1 +Fade = 1 +FadeText = 1 +SelectH = 67 +FadeTex = ButtonFade +FadeTexPos = 0 + +[OptionsButtonAdvancedText1] +X = 32 +Y = 80 +Font = 0 +Size = 26 +Align = 1 +Text = SING_OPTIONS_ADVANCED +Color = White +Texts = 1 + +[OptionsButtonNetwork] +X = 585 +Y = 270 +W = 59 +H = 77 +Tex = Optionsbuttonnetwork +Color = White +DColor = White +Type = Transparent +Align = 0 +Texts = 1 +Fade = 1 +FadeText = 1 +SelectH = 67 +FadeTex = ButtonFade +FadeTexPos = 0 + +[OptionsButtonNetworkText1] +X = 31 +Y = 80 +Font = 0 +Size = 26 +Align = 1 +Text = SING_OPTIONS_NETWORK +Color = White +Texts = 1 + +[OptionsButtonWebcam] +X = 100 +Y = 425 +W = 75 +H = 80 +Tex = Optionsbuttonwebcam +Color = White +DColor = White +Type = Transparent +Align = 0 +Texts = 1 +Fade = 1 +FadeText = 1 +SelectH = 70 +FadeTex = ButtonFade +FadeTexPos = 0 + +[OptionsButtonWebcamText1] +X = 35 +Y = 80 +Font = 0 +Size = 26 +Align = 1 +Text = SING_OPTIONS_WEBCAM +Color = White +Texts = 1 + +[OptionsButtonJukebox] +X = 275 +Y = 425 +W = 59 +H = 75 +Tex = Optionsbuttonjukebox +Color = White +DColor = White +Type = Transparent +Align = 0 +Texts = 1 +Fade = 1 +FadeText = 1 +SelectH = 65 +FadeTex = ButtonFade +FadeTexPos = 0 + +[OptionsButtonJukeboxText1] +X = 32 +Y = 80 +Font = 0 +Size = 26 +Align = 1 +Text = SING_OPTIONS_JUKEBOX +Color = White + +[OptionsButtonExit] +X = 415 +Y = 425 +W = 70 +H = 80 +Tex = Optionsbuttonback +Color = White +DColor = White +Type = Transparent +Align = 0 +Texts = 1 +Fade = 1 +FadeText = 1 +SelectH = 70 +FadeTex = ButtonFade +FadeTexPos = 0 + +[OptionsButtonExitText1] +X = 50 +Y = 80 +Font = 0 +Size = 26 +Align = 1 +Text = SING_OPTIONS_EXIT +Color = White + +[OptionsGame] +Texts = 5 + +[OptionsGameBackground] +Tex = OptionsBG + +[OptionsGameStatic1] +X = 30 +Y = 25 +W = 75 +H = 70 +Color = White +Tex = Optionsbuttongame +Type = Transparent + +[OptionsGameText1] +X = 125 +Y = 35 +Color = White +Size = 45 +Text = SING_OPTIONS_GAME + +#[OptionsGameText2] +#X = 50 +#Y = 28 +#Color = ColorLightest +#Size = 30 +#Text = SING_OPTIONS_GAME_DESC + +#[OptionsGameText3] +#X = 70 +#Y = 85 +#Color = White +#Size = 30 +#Text = SING_OPTIONS_GAME_WHEREAMI + +[OptionsGameSelectSlideLanguage] +Text = SING_OPTIONS_GAME_LANGUAGE +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 130 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsGameSelectSongMenu] +Text = SING_OPTIONS_GAME_SONGMENU +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 180 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsGameSelectTabs] +Text = SING_OPTIONS_GAME_TABS +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 230 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsGameSelectSlideSorting] +Text = SING_OPTIONS_GAME_SORTING +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 280 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsGameSelectShowScores] +Text = SING_OPTIONS_GAME_SHOWSCORES +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 330 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsGameSelectJoypad] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = SING_OPTIONS_GAME_JOYPAD_SUPPORT +X = 70 +Y = 380 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsGameButtonExit] +X = 70 +Y = 440 +W = 250 +H = 40 +Tex = Button +Color = ColorDark +DColor = Gray +Type = Transparent +Reflection = 1 +ReflectionSpacing = 2 + +[OptionsGraphics] +Texts = 4 + +[OptionsGraphicsBackground] +Tex = OptionsBG + +[OptionsGraphicsStatic1] +X = 20 +Y = 20 +W = 90 +H = 75 +Color = White +Tex = Optionsbuttongraphics +Type = Transparent + +[OptionsGraphicsText1] +X = 120 +Y = 35 +Color = White +Size = 45 +Text = SING_OPTIONS_GRAPHICS + +#[OptionsGraphicsText2] +#X = 65 +#Y = 55 +#Color = ColorLightest +#Size = 30 +#Text = SING_OPTIONS_GRAPHICS_DESC + +#[OptionsGraphicsText3] +#X = 70 +#Y = 85 +#Color = White +#Size = 30 +#Text = SING_OPTIONS_GRAPHICS_WHEREAMI + +[OptionsGraphicsSelectFullscreen] +Text = SING_OPTIONS_GRAPHICS_FULLSCREEN +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 130 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsGraphicsSelectSlideResolution] +Text = SING_OPTIONS_GRAPHICS_RESOLUTION +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 180 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +#########unused at the moment######### +#[OptionsGraphicsSelectLoadAnimation] +#Text = SING_OPTIONS_GRAPHICS_LOADANIMATION +#Tex = MainBar +#TexSBG = SelectBG +#X = 40 +#Y = 85 +#W = 230 +#H = 70 +#SkipX = 10 + +#Color = ColorDark +#DColor = ColorLight +#TColor = White +#TDColor = White + +#SBGColor = ColorDark +#SBGDColor = ColorLight +#STColor = White +#STDColor = GrayDark + +[OptionsGraphicsSelectScreenFade] +Text = SING_OPTIONS_GRAPHICS_SCREENFADE +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 230 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsGraphicsSelectEffectSing] +Text = SING_OPTIONS_GRAPHICS_EFFECTSING +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 280 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + + +[OptionsGraphicsSelectVisualizer] +Text = SING_OPTIONS_GRAPHICS_VISUALIZER +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 330 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsGraphicsSelectMovieSize] +Text = SING_OPTIONS_GRAPHICS_MOVIE_SIZE +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 380 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsGraphicsButtonExit] +X = 70 +Y = 440 +W = 250 +H = 40 +Tex = Button +Color = ColorDark +DColor = Gray +Type = Transparent +Reflection = 1 +ReflectionSpacing = 2 + +[OptionsSound] +Texts = 5 + +[OptionsSoundBackground] +Tex = OptionsBG + +[OptionsSoundStatic1] +X = 30 +Y = 30 +W = 50 +H = 60 +Color = White +Tex = Optionsbuttonsound +Type = Transparent + +[OptionsSoundText1] +X = 110 +Y = 35 +Color = White +Size = 45 +Text = SING_OPTIONS_SOUND + + +[OptionsSoundSelectVoicePassthrough] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = SING_OPTIONS_SOUND_VOICEPASSTHROUGH +X = 70 +Y = 130 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsSoundSelectBackgroundMusic] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = SING_OPTIONS_SOUND_BACKGROUNDMUSIC +X = 70 +Y = 170 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsSoundSelectClickAssist] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = SING_OPTIONS_SOUND_CLICK_ASSIST +X = 70 +Y = 210 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsSoundSelectBeatClick] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = SING_OPTIONS_SOUND_BEAT_CLICK +X = 70 +Y = 250 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsSoundSelectSlideMusicAutoGain] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = SING_OPTIONS_SOUND_MUSICAUTOGAIN +X = 70 +Y = 290 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsSoundSelectSlidePreviewVolume] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = SING_OPTIONS_SOUND_PREVIEWVOLUME +X = 70 +Y = 330 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsSoundSelectSlidePreviewFADING] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = SING_OPTIONS_SOUND_PREVIEWFADING +X = 70 +Y = 370 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsSoundButtonExit] +X = 70 +Y = 410 +W = 250 +H = 35 +Tex = Button +Color = ColorDark +DColor = Gray +Type = Transparent +Reflection = 1 +ReflectionSpacing = 2 + +[OptionsLyrics] +Texts = 1 + +[OptionsLyricsBackground] +Tex = OptionsBG + +[OptionsLyricsStatic1] +X = 30 +Y = 30 +W = 60 +H = 65 +Color = White +Tex = Optionsbuttonlyrics +Type = Transparent + +[OptionsLyricsText1] +X = 100 +Y = 35 +Color = White +Size = 45 +Text = SING_OPTIONS_LYRICS + +[OptionsLyricsText5] +X = 440 +Y = 548 +Z = 0.5 +Color = White +Size = 24 +Text = SING_LEGEND_ESC +Reflection = 1 +ReflectionSpacing = 20 + +[OptionsLyricsSelectLyricsFont] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = SING_OPTIONS_LYRICS_FONT +X = 70 +Y = 130 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsLyricsSelectLyricsEffect] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = SING_OPTIONS_LYRICS_EFFECT +X = 70 +Y = 180 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsLyricsSelectNoteLines] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = SING_OPTIONS_LYRICS_NOTELINES +X = 70 +Y = 230 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsLyricsButtonExit] +X = 70 +Y = 290 +W = 250 +H = 40 +Tex = Button +Color = ColorDark +DColor = Gray +Type = Transparent +Reflection = 1 +ReflectionSpacing = 2 + +[OptionsThemes] +Texts = 5 + +[OptionsThemesBackground] +Tex = OptionsBG + +[OptionsThemesStatic1] +X = 30 +Y = 30 +W = 85 +H = 75 +Color = White +Tex = Optionsbuttondesign +Type = Transparent + +[OptionsThemesText1] +X = 120 +Y = 40 +Color = White +Size = 45 +Text = SING_OPTIONS_THEMES + +[OptionsThemesText5] +X = 440 +Y = 548 +Z = 0.5 +Color = White +Size = 24 +Reflection = 1 +ReflectionSpacing = 20 +Text = SING_LEGEND_ESC + +[OptionsThemesSelectTheme] +Text = SING_OPTIONS_THEMES_THEME +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 130 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsThemesSelectSkin] +Text = SING_OPTIONS_THEMES_SKIN +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 180 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsThemesSelectColor] +Text = SING_OPTIONS_THEMES_COLOR +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 230 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsThemesButtonExit] +X = 70 +Y = 290 +W = 250 +H = 40 +Tex = Button +Color = ColorDark +DColor = Gray +Type = Transparent +Reflection = 1 +ReflectionSpacing = 2 + +[OptionsMicrophones] +Texts = 5 + +[OptionsMicrophonesBackground] +Tex = OptionsBG + +[OptionsMicrophonesStatic1] +X = 30 +Y = 30 +W = 70 +H = 65 +Color = White +Tex = Optionsbuttonmicrophones +Type = Transparent + +[OptionsMicrophonesText1] +X = 110 +Y = 40 +Color = White +Size = 45 +Text = SING_OPTIONS_MICROPHONES + +[OptionsMicrophonesSelectSlideCard] +Text = SING_OPTIONS_MICROPHONES_CARD +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 130 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsMicrophonesSelectSlideInput] +Text = SING_OPTIONS_MICROPHONES_INPUT +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 180 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsMicrophonesSelectSlideChannel] +Text = SING_OPTIONS_MICROPHONES_CHANNEL +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 230 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsMicrophonesSelectThreshold] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = SING_OPTIONS_MICROPHONES_THRESHOLD +X = 70 +Y = 367 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsMicrophonesSelectMicBoost] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = SING_OPTIONS_MICROPHONES_MIC_BOOST +X = 70 +Y = 417 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsMicrophonesButtonExit] +X = 70 +Y = 470 +W = 250 +H = 40 +Tex = Button +Color = ColorDark +DColor = Gray +Type = Transparent +Reflection = 1 +ReflectionSpacing = 2 + +[OptionsAdvanced] +Texts = 5 + +[OptionsAdvancedBackground] +Tex = OptionsBG + +[OptionsAdvancedStatic1] +X = 30 +Y = 30 +W = 57 +H = 67 +Color = White +Tex = Optionsbuttonadvanced +Type = Transparent + +[OptionsAdvancedText1] +X = 100 +Y = 40 +Color = White +Size = 45 +Text = SING_OPTIONS_ADVANCED + +[OptionsAdvancedSelectDebug] +Text = SING_OPTIONS_ADVANCED_DEBUG +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 130 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsAdvancedSelectOscilloscope] +Text = SING_OPTIONS_ADVANCED_OSCILLOSCOPE +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 175 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsAdvancedSelectSlideOnSongClick] +Text = SING_OPTIONS_ADVANCED_ONSONGCLICK +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 220 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsAdvancedSelectAskbeforeDel] +Text = SING_OPTIONS_ADVANCED_ASKBEFOREDEL +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 265 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsAdvancedSelectPartyPopup] +Text = SING_OPTIONS_ADVANCED_PARTYPOPUP +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 310 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsAdvancedSelectSingScores] +Text = SING_OPTIONS_ADVANCED_SINGSCORES +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 400 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsAdvancedSelectTopScores] +Text = SING_OPTIONS_ADVANCED_TOPSCORES +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 355 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsAdvancedButtonExit] +X = 70 +Y = 445 +W = 250 +H = 40 +Tex = Button +Color = ColorDark +DColor = Gray +Type = Transparent +Reflection = 1 +ReflectionSpacing = 2 + +[OptionsNetwork] +Texts = 5 + +[OptionsNetworkBackground] +Tex = OptionsBG + +[OptionsNetworkStatic1] +X = 30 +Y = 30 +W = 55 +H = 67 +Color = White +Tex = Optionsbuttonnetwork +Type = Transparent + +[OptionsNetworkText1] +X = 100 +Y = 40 +Color = White +Size = 45 +Text = SING_OPTIONS_NETWORK + +[OptionsNetworkStatic5] +X = 400 +Y = 545 +W = 32 +H = 30 +Tex = ButtonIns +Color = White +Type = Transparent +Reflection = 1 +ReflectionSpacing = 2 + +[OptionsNetworkText5] +X = 440 +Y = 548 +Z = 0.5 +Color = White +Size = 24 +Reflection = 1 +ReflectionSpacing = 20 +Text = SING_OPTIONS_NETWORK_LEGEND_INSERT + +[OptionsNetworkStatic6] +X = 530 +Y = 545 +W = 32 +H = 30 +Tex = ButtonDel +Color = White +Type = Transparent +Reflection = 1 +ReflectionSpacing = 2 + +[OptionsNetworkText6] +X = 570 +Y = 548 +Z = 0.5 +Color = White +Size = 24 +Reflection = 1 +ReflectionSpacing = 20 +Text = SING_OPTIONS_NETWORK_LEGEND_DELETE + +[OptionsNetworkTextInsertUser] +X = 400 +Y = 270 +W = 600 +Z = 1 +Align = 1 +Color = White +Size = 32 + +[OptionsNetworkSelectWebsite] +Text = SING_OPTIONS_NETWORK_WEBSITE +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 130 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsNetworkSelectUsername] +Text = SING_OPTIONS_NETWORK_USERNAME +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 175 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsNetworkSelectSendSaveName] +Text = SING_OPTIONS_NETWORK_SEND_SAVE_PLAYER_NAME +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 220 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsNetworkSelectAutoMode] +Text = SING_OPTIONS_NETWORK_AUTO_MODE +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 265 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsNetworkSelectAutoPlayer] +Text = SING_OPTIONS_NETWORK_AUTO_PLAYER +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 310 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsNetworkSelectAutoScoreEasy] +Text = SING_OPTIONS_NETWORK_AUTO_SCORE_EASY +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 355 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsNetworkSelectAutoScoreMedium] +Text = SING_OPTIONS_NETWORK_AUTO_SCORE_MEDIUM +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 400 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsNetworkSelectAutoScoreHard] +Text = SING_OPTIONS_NETWORK_AUTO_SCORE_HARD +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 445 +W = 250 +H = 35 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsNetworkButtonInsert] +X = 550 +Y = 490 +W = 180 +H = 40 +Tex = MainBar +Color = ColorDark +DColor = Gray +Type = Transparent +Texts = 1 + +[OptionsNetworkButtonInsertText1] +X = 90 +Y = 5 +Align = 1 +Color = White +Size = 30 +Text = SING_OPTIONS_NETWORK_LEGEND_INSERT + +[OptionsNetworkButtonExit] +X = 70 +Y = 490 +W = 250 +H = 40 +Tex = Button +Color = ColorDark +DColor = Gray +Type = Transparent +Reflection = 1 +ReflectionSpacing = 2 + +[OptionsWebcam] +Texts = 5 + +[OptionsWebcamBackground] +Tex = OptionsBG + +[OptionsWebcamStatic1] +X = 30 +Y = 30 +W = 75 +H = 70 +Color = White +Tex = Optionsbuttonwebcam +Type = Transparent + +[OptionsWebcamStatic2] +X = 70 +Y = 450 +W = 250 +H = 35 +Tex = MainBar +Color = +DColor = +Type = Transparent +[OptionsWebcamText1] +X = 115 +Y = 40 +Color = White +Size = 45 +Text = SING_OPTIONS_WEBCAM + +[OptionsWebcamText2] +X = 90 +Y = 450 +Color = White +Size = 28 +Text = SING_OPTIONS_WEBCAM_PREVIEW +[OptionsWebcamSelectWebcam] +Text = SING_OPTIONS_WEBCAM_ID +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 130 +W = 250 +H = 35 +SkipX = 10 + +DColor = +Color = +TColor = White +TDColor = White + +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsWebcamSelectResolution] +Text = SING_OPTIONS_WEBCAM_RESOLUTION +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 170 +W = 250 +H = 35 +SkipX = 10 + +DColor = +Color = +TColor = White +TDColor = White + +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsWebcamSelectFPS] +Text = SING_OPTIONS_WEBCAM_FPS +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 210 +W = 250 +H = 35 +SkipX = 10 + +DColor = +Color = +TColor = White +TDColor = White + +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsWebcamSelectFlip] +Text = SING_OPTIONS_WEBCAM_FLIP +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 250 +W = 250 +H = 35 +SkipX = 10 + +DColor = +Color = +TColor = White +TDColor = White + +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsWebcamSelectBrightness] +Text = SING_OPTIONS_WEBCAM_BRIGHTNESS +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 290 +W = 250 +H = 35 +SkipX = 10 + +DColor = +Color = +TColor = White +TDColor = White + +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsWebcamSelectSaturation] +Text = SING_OPTIONS_WEBCAM_SATURATION +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 330 +W = 250 +H = 35 +SkipX = 10 + +DColor = +Color = +TColor = White +TDColor = White + +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsWebcamSelectHue] +Text = SING_OPTIONS_WEBCAM_HUE +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 370 +W = 250 +H = 35 +SkipX = 10 + +DColor = +Color = +TColor = White +TDColor = White + +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsWebcamSelectEffect] +Text = SING_OPTIONS_WEBCAM_EFFECT +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 410 +W = 250 +H = 35 +SkipX = 10 + +DColor = +Color = +TColor = White +TDColor = White + +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsWebcamButtonPreVisualization] +X = 330 +Y = 450 +W = 400 +H = 35 +Tex = MainBar +Color = ColorDark +DColor = Gray +Type = Transparent +Texts = 1 + +[OptionsWebcamButtonPreVisualizationText1] +X = 200 +Y = 5 +Align = 1 +Color = White +Size = 30 +Text = SING_OPTIONS_WEBCAM_ENABLE_PREVIEW + +[OptionsWebcamButtonExit] +X = 70 +Y = 500 +W = 250 +H = 35 +Tex = Button +Color = ColorDark +DColor = Gray +Type = Transparent +Reflection = 1 +ReflectionSpacing = 2 + +# This is part of option network +[InsertUserPopup] + +[InsertUserPopupBackground] +Type=Fade +ColR=0 +ColG=0 +ColB=0 +Alpha=0.4 + +[InsertUserPopupStatic1] +Tex = interface_dialog_background +X = 200 +Y = 150 +W = 400 +H = 220 +Z = 1 +Color = White +Type = Transparent +Reflection = 1 +ReflectionSpacing = 15 + +[InsertUserPopupText1] +X = 400 +Y = 165 +W = 400 +Color = ColorLight +Font = 0 +Size = 30 +Align = 1 +Z = 1 + +[InsertUserPopupText] +X = 400 +Y = 215 +W = 380 +Color = White +Font = 0 +Size = 24 +Align = 1 +Z = 1 + +[InsertUserPopupButtonUsername] +X = 380 +Y = 250 +W = 160 +H = 25 +Tex = Button +Color = GrayLight +DColor = GrayDark +Type = Transparent +Texts = 2 +Z = 1 + +[InsertUserPopupButtonUsernameText1] +X = 5 +Y = 0 +Color = White +Font = 0 +Size = 24 +Align = 0 +Z = 1 + +[InsertUserPopupButtonUsernameText2] +X = -120 +Y = 0 +Text = SING_OPTIONS_NETWORK_USERNAME +Color = White +Font = 0 +Size = 24 +Align = 0 +Z = 1 + +[InsertUserPopupButtonPassword] +X = 380 +Y = 280 +W = 160 +H = 25 +Tex = Button +Color = GrayLight +DColor = GrayDark +Type = Transparent +Texts = 2 +Z = 1 + +[InsertUserPopupButtonPasswordText1] +X = 5 +Y = 0 +Color = White +Font = 0 +Size = 24 +Align = 0 +Z = 1 + +[InsertUserPopupButtonPasswordText2] +X = -120 +Y = 0 +Text=SING_OPTIONS_NETWORK_PASSWORD +Color = White +Font = 0 +Size = 24 +Align = 0 +Z = 1 + +[InsertUserPopupButton1] +X = 285 +Y = 330 +W = 100 +H = 25 +Tex = Button +Color = ColorLight +DColor = ColorDark +Type = Transparent +Texts = 1 +Z = 1 + +[InsertUserPopupButton1Text1] +X = 50 +Y = 0 +Color = White +Font = 0 +Size = 24 +Align = 1 +Z = 1 + +[InsertUserPopupButton2] +X = 415 +Y = 330 +W = 100 +H = 25 +Tex = Button +Color = ColorLight +DColor = ColorDark +Type = Transparent +Texts = 1 +Z = 1 + +[InsertUserPopupButton2Text1] +X = 50 +Y = 0 +Color = White +Font = 0 +Size = 24 +Align = 1 +Z = 1 + +[OptionsJukebox] +Texts = 5 + +[OptionsJukeboxBackground] +Tex=OptionsBG + +[OptionsJukeboxStatic1] +X = 30 +Y = 30 +W = 55 +H = 65 +Color = White +Tex = Optionsbuttonjukebox +Type = Transparent + +[OptionsJukeboxText1] +X = 100 +Y = 40 +Color = White +Size = 45 +Text = SING_OPTIONS_JUKEBOX + +[OptionsJukeboxSelectLyricsFont] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = SING_OPTIONS_LYRICS_FONT +X = 70 +Y = 130 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsJukeboxSelectLyricsEffect] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = SING_OPTIONS_LYRICS_EFFECT +X = 70 +Y = 180 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsJukeboxSelectLyricsAlpha] +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +Text = JUKEBOX_SONGOPTIONS_LYRIC_ALPHA +X = 70 +Y = 230 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsJukeboxSelectLine] +Text = JUKEBOX_SONGOPTIONS_LYRIC_LINE +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 280 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsJukeboxSelectProperty] +Text = JUKEBOX_SONGOPTIONS_LYRIC_PROPERTY +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 330 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsJukeboxSelectColor] +Text = JUKEBOX_SONGOPTIONS_LYRIC_COLOR +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 70 +Y = 380 +W = 250 +H = 40 +SkipX = 10 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsJukeboxSelectR] +Text = JUKEBOX_SONGOPTIONS_LYRIC_RGB_RED +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 220 +Y = 425 +W = 100 +H = 15 +SkipX = 10 +TextSize = 16 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsJukeboxSelectG] +Text = JUKEBOX_SONGOPTIONS_LYRIC_RGB_GREEN +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Plain +X = 220 +Y = 445 +W = 100 +H = 15 +Z = 0.8 +SkipX = 10 +TextSize = 16 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsJukeboxSelectB] +Text = JUKEBOX_SONGOPTIONS_LYRIC_RGB_BLUE +Tex = MainBar +Type = Transparent +TexSBG = SelectBG +TypeSBG = Transparent +X = 220 +Y = 465 +W = 100 +H = 15 +SkipX = 10 +TextSize = 16 + +Color = +DColor = +TColor = White +TDColor = White +SBGColor = ColorDark +SBGDColor = Gray +STColor = White +STDColor = GrayDark + +[OptionsJukeboxRed] +X = 360 +Y = 428 +W = 340 +H = 10 +Z = 1 +Tex = Picker +Type = Transparent + +[OptionsJukeboxGreen] +X = 360 +Y = 448 +W = 340 +H = 10 +Z = 1 +Tex = Picker +Type = Transparent + +[OptionsJukeboxBlue] +X = 360 +Y = 468 +W = 340 +H = 10 +Z = 1 +Tex = Picker +Type = Transparent + +[OptionsJukeboxPointerR] +X = 360 +Y = 427 +W = 1 +H = 12 +Z = 1 +Tex = Picker +Color = Black +Type = Transparent + +[OptionsJukeboxPointerG] +X = 360 +Y = 447 +W = 1 +H = 12 +Z = 1 +Tex = Picker +Color = Black +Type = Transparent + +[OptionsJukeboxPointerB] +X = 360 +Y = 468 +W = 1 +H = 12 +Z = 1 +Tex = Picker +Color = Black +Type = Transparent + +[OptionsJukeboxColor] +X = 70 +Y = 425 +W = 145 +H = 55 +Z = 1 +Tex = Picker +Type = Transparent + +[OptionsJukeboxUpperBar] +X = 340 +Y = 500 +W = 400 +H = 40 + +[OptionsJukeboxLowerBar] +X = 340 +Y = 535 +W = 400 +H = 40 + +[OptionsJukeboxButtonExit] +X = 70 +Y = 485 +W = 250 +H = 40 +Tex = Button +Color = ColorDark +DColor = Gray +Type = Transparent +Reflection = 1 +ReflectionSpacing = 2 + +[AboutMain] +Texts = 2 + +[AboutMainBackground] +Tex = MainBG + +[AboutMainStatico] +Tex = AboutBG +X = 25 +Y = 70 +W = 630 +H = 450 +Color = White +Alpha = 0.65 +Type = Transparent + +[AboutMainButtonExit] +X = 660 +Y = 530 +W = 130 +H = 50 +Tex = Button +DColor = Gray +Color = ColorDark +Type = Transparent +Texts = 1 +Reflection = 0 + +[AboutMainButtonExitText1] +X = 65 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = SING_OPTIONS_EXIT +Color = White + +[AboutMainButtonDevelopers] +X = 270 +Y = 430 +W = 140 +H = 70 +Tex = LogoWeb +DColor = +Color = White +Type = Transparent +Texts = 1 +Reflection = 0 + +[AboutMainButtonDevelopersText1] +X = 70 +Y = -35 +Font = 0 +Size = 25 +Align = 1 +Text = ABOUT_USDX_DEVELOPEDBY +Color = White + +[AboutMainTextOverview] +X = 45 +Y = 125 +W = 600 +Color = White +Font = 0 +Size = 24 +Align = 0 +Text = + +[AboutMainText1] +X = 70 +Y = 20 +Color = White +Font = 0 +Size = 60 +Text = ABOUT_MAIN +Align = 0 + +[AboutMainText2] +X = 524 +Y = 90 +Color = White +Font = 0 +Size = 20 +Align = 1 +Text = US_VERSION +Reflection = 0 +ReflectionSpacing = 13 + +[Developers] +Texts = 1 +Statics = 2 + +[DevelopersBackground] +Tex = MainBG + +[DevelopersButtonExit] +X = 660 +Y = 530 +W = 130 +H = 50 +Tex = Button +DColor = Gray +Color = ColorDark +Type = Transparent +Texts = 1 +Reflection = 0 + +[DevelopersButtonExitText1] +X = 65 +Y = 10 +Font = 0 +Size = 30 +Align = 1 +Text = SING_OPTIONS_EXIT +Color = White + +[DevelopersTextOverview] +X = 70 +Y = 125 +W = 400 +Color = White +DColor= +Font = 0 +Size = 24 +Align = 0 +Text = + +[DevelopersStatic1] +X = 45 +Y = 115 +W = 630 +H = 460 +Tex=Dhelperbg +Color = White +alpha=0.65 +Type = Transparent + +[DevelopersStatic2] +X = 280 +Y = 475 +W = 160 +H = 80 +Tex = LogoWeb +Color = White +Type = Transparent + +[DevelopersText1] +X = 70 +Y = 30 +Color = White +Font = 0 +Size = 60 +Text = DEVELOPERS_TITLE +Align = 0 + +[CheckPopup] + +[CheckPopupBackground] +Type=Fade +ColR=0 +ColG=0 +ColB=0 +Alpha=0.3 + +[CheckPopupStatic1] +Tex = interface_dialog_background +X = 200 +Y = 150 +W = 400 +H = 200 +Z = 1 +alpha=0.95 +Color = ColorDark +Type = Colorized +Reflection = 0 +ReflectionSpacing = 15 + +#[CheckPopupText1] +#X = 400 +#Y = 160 +#W = 400 +#Color = White +#Font = 0 +#Size = 30 +#Text = MSG_QUESTION_TITLE +#Align = 1 +#Z = 1 + +[CheckPopupText] +X = 400 +Y = 210 +W = 280 +Color = White +Font = 0 +Size = 30 +Text = error text +Align = 1 +Z = 1 + +[CheckPopupButton1] +X = 285 +Y = 310 +W = 100 +H = 25 +Tex = Button2 +Color = ColorDark +DColor = ColorLight +Type = Colorized +Texts = 1 +Z = 1 + +[CheckPopupButton1Text1] +X = 50 +Y = 0 +Color = White +Font = 0 +Size = 24 +Text = YES +Align = 1 +Z = 1 + +[CheckPopupButton2] +X = 415 +Y = 310 +W = 100 +H = 25 +Tex = Button2 +Color = ColorDark +Type = Colorized +Texts = 1 +Z = 1 + +[CheckPopupButton2Text1] +X = 50 +Y = 0 +Color = White +Font = 0 +Size = 24 +Text = NO +Align = 1 +Z = 1 + + +[ErrorPopup] + +[ErrorPopupBackground] +Type=Fade +ColR=0 +ColG=0 +ColB=0 +Alpha=0.4 + +[ErrorPopupStatic1] +Tex = interface_dialog_background +X = 200 +Y = 150 +W = 400 +H = 200 +Z = 0.98 +Color = White +Type = Transparent +Reflection = 0 +ReflectionSpacing = 15 + +[ErrorPopupText1] +X = 400 +Y = 160 +W = 400 +Color = ColorLight +Font = 0 +Size = 30 +Text = MSG_ERROR_TITLE +Align = 1 +Z = 1 + +[ErrorPopupText] +X = 400 +Y = 210 +W = 380 +Color = White +Font = 0 +Size = 30 +Text = error text +Align = 1 +Z = 1 + +[ErrorPopupButton1] +X = 350 +Y = 310 +W = 100 +H = 25 +Tex = Button +Color = ColorDark +Type = Colorized +Texts = 1 +Z = 1 + +[ErrorPopupButton1Text1] +X = 50 +Y = 0 +Color = White +Font = 0 +Size = 24 +Text = OK +Align = 1 +Z = 1 + +[PausePopUpStatic] +Tex = Pause +X = 0 +Y = 0 +W = 800 +H = 600 +Z = 0.95 +Color = ColorLight +Type = Colorized diff --git a/game/themes/common/Basic Blue.ini b/game/themes/common/Basic Blue.ini new file mode 100644 index 00000000..7cfe8abf --- /dev/null +++ b/game/themes/common/Basic Blue.ini @@ -0,0 +1,331 @@ +################################### +# theme developed by Daniel20 # +# for https:\\ultrastar-es.org # +# visit us to get songs, plugins, # +# themes and more... # +# # +# *some icons belongs to # +# https://www.iconfinder.com/ # +# under Creative Common license # +################################### + +############### +[Skin] +Theme=Party +Name= Basic Blue +Color=Blue + +[Textures] +/** + * Interface + */ +interface_selectbg_search = [interface]selectbg_search.png +interface_dialog_background = [interface]dialog_background.png +interface_dialog_background2 = [interface]dialog_background2.png +interface_dialog_backgroundtop = [interface]dialog_backgroundtop.png + +Cursor = [interface]cursor.png +Cursor_Pressed = [interface]cursor_pressed.png + +/** + * Icons + */ +icon_song_menu = [icon]song_menu.png +icon_song_search = [icon]song_search.png +icon_song_video = [icon]song_video.png +icon_song_medley = [icon]song_medley.png +icon_song_calcmedley = [icon]song_calcmedley.png +icon_song_duet = [icon]song_duet.png +icon_song_rap = [icon]song_rap.png + +loadicon = [load]logo.png +loadbaricon = [load]bar.png + +# # # M A I N # # # +ButtonSolo = [main]buttonsolo.png +ButtonAbout = [main]buttonabout.png +ButtonParty = [main]buttonparty.png +ButtonStats = [main]buttonstats.png +ButtonJukebox = [main]buttonjukebox.png +ButtonOption = [main]buttonoption.png +ButtonExit = [main]buttonexit.png +Button2 = [main]button2.png +Button = [main]button.png +ButtonF = [main]buttonf.jpg +MainBar = [main]mainBar.png +SelectBG = [main]selectbg.png + +Select_ArrowLeft = [interface]select_arrow_left.png +Select_ArrowRight = [interface]select_arrow_right.png + +#Backgrounds +LoadingBG = [bg-load]basic.jpg +TitleBG = [bg-main]blue.jpg +MainBG = [bg-main]blue.jpg +SongBG = [bg-main]blue.jpg +ScoreScreenBG = [bg-main]blue.jpg +Top5BG = [bg-main]blue.jpg +OptionsBG = [bg-main]blue.jpg +PartyBG = [bg-main]blue.jpg + +# # # S O N G S E L E C E T # # # +SongSelection1up = [main]songSelection1up.png +SongSelection1dn = [main]songSelection1dn.png +SongSelection1 = [main]songSelection1.png +SongSelection2 = [main]songSelection2.png +SongSelection3 = [main]songSelection3.png +SongSelection4 = [main]songSelection4.png +SongSelection5 = [main]songSelection5.png +SongCover = ../../covers/Common/NoCover.jpg +SongMessage = [song]message.png +SongDuetSinger = [song]duetsinger.png +SongDuetSinger2 = [song]duetsinger2.png +SongDuetSinger3 = [song]duetsinger3.png + +# # # S I N G # # # +#the bar where the lyrics reside +LyricBar = [sing]textBar.png +LyricBarDuet = [sing]textBar.png + +#this one slides in, to tell you that singing starts immediately +LyricHelpBar = [sing]lyricsHelpBar.png + +#the bar behind the timestuff +TimeBar1 = [sing]timeBarBG.png + +#the time progress bar (not skinned in this theme :P ) +TimeBar = [sing]timeBar.jpg + +#linebonus, the thing that pop ups at the score +LineBonusBack = [sing]lineBonusPopUp.png + +#Singbar (the thing beneath the scores) +SingBarBack = [sing]singBarBack.png +SingBarBar = [sing]singBarBar.png +SingBarFront = [sing]singBarFront.png + +#Background for scores +ScoreBG = [sing]scoreBg.png + +#Background for the P1, P2 and so on +P = [sing]p.png + +#Pointer for lyrics +Ball = [sing]LyricsBall.png + +#song name for medley mode +SongName = [sing]SongName.png + + +# # # S C O R E / T O P 5 # # # +ScoreBox = [score]box.png +ScoreGlassBox = [score]glass_box.png +ScoreLevel = [score]level.png +ScoreLevelRound = [score]levelRound.png + +ScoreLevel_Dark = [score]level_dark.png +ScoreLevel_Dark_Round = [score]level_dark_round.png + +ScoreLevel_Light = [score]level_light.png +ScoreLevel_Light_Round = [score]level_light_round.png + +ScoreLevel_Lightest = [score]level_lightest.png +ScoreLevel_Lightest_Round = [score]level_lightest_round.png + +ButtonSendScore = [score]buttonsendscore.png + +# Boxes near the text, that show what color is for which bar +ScoreBar_box_lightest = [score]bar_box_lightest.png +ScoreBar_box_light = [score]bar_box_light.png +ScoreBar_box_dark = [score]bar_box_dark.png + +ScoreEndCap = [score]endcap.png +ScoreLine = [score]line.png +PlayerNumberBox = [main]playerNumberBox.png + +Rating_0 = [score]rating_0.png +Rating_1 = [score]rating_1.png +Rating_2 = [score]rating_2.png +Rating_3 = [score]rating_3.png +Rating_4 = [score]rating_4.png +Rating_5 = [score]rating_5.png +Rating_6 = [score]rating_6.png +Rating_7 = [score]rating_7.png + +# # # O P T I O N S # # # +Optionsbuttongame = [Options]buttongame.png +Optionsbuttongraphics = [Options]buttongraphics.png +Optionsbuttonsound = [Options]buttonsound.png +Optionsbuttonlyrics = [Options]buttonlyrics.png +Optionsbuttondesign = [Options]buttondesign.png +Optionsbuttonmicrophones = [Options]buttonmicrophones.png +Optionsbuttonadvanced = [Options]buttonadvanced.png +Optionsbuttonnetwork = [Options]buttonnetwork.png +Optionsbuttonwebcam = [Options]buttonwebcam.png +Optionsbuttonjukebox = [Options]buttonjukebox.png +Optionsbuttonback = [Options]buttonback.png + +# # # M A I N P A R T Y # # # +ClassicButton =[MainParty]ClassicButton.png +ClassicFreeButton =[MainParty]ClassicFreeButton.png +ChallengeButton =[MainParty]ChallengeButton.png +TournamentButton =[tournament]trophy.png + +# # # P A R T Y # # # +Joker =[party]Joker.png +PartyPlayerButton =[party]playerButton.png +PartyTeamButton1 =[party]roundTeamButton.png +PartyTeamButton2 =[party]playerTeamButton.png +PartyTeamButton3 =[party]winTeamButton1.png +PartyTeamButton4 =[party]winTeamButton2.png +PartyTeamButton5 =[party]winTeamButton3.png +PartyRoundBG1 =[party]roundBG1.png +PartyRoundBG2 =[party]roundBG2.png +PartyRoundBG3 =[party]roundBG3.png +PartyRoundBG4 =[party]roundBG4.png +HDL_Pointer =[party]pointer.png +PartyTeamPoints =[party]teamPoints.png +PartyScoreDeco =[party]scoreDecoration.png +PartyScoreBG1 =[party]scoreBG1.png +PartyScoreBG2 =[party]scoreBG2.png +PartyWinDeco1 =[party]winDecoration.png +PartyWinDeco2 =[party]winDecoration.png +PartyWinDeco3 =[party]winDecoration.png +PartyPlayerSelectBG = [party]playerselectbg.png +PartyTrophy =[tournament]trophy.png +PartyWinner =[tournament]winner.png + +# # # S T A T S # # # +StatInfoBG1 = [stat]InfoBG1.png +StatInfoBG2 = [stat]InfoBG2.png + +# # # N A V I # # # +ButtonP = [button]p.png +ButtonM = [button]m.png +ButtonJ = [button]j.png +ButtonC = [button]c.png +ButtonAlt = [button]alt.png +ButtonAZ = [button]az.png +ButtonEnter = [button]enter.png +ButtonNavi = [button]navi.png +ButtonEsc = [button]esc.png +Button13 = [button]13.png +ButtonIns = [button]ins.png +ButtonDel = [button]del.png + +SongMenuBG = [menu]songMenuBg.png +SongMenuSelectBG = [menu]songMenuSelectBg.png +PopUpBG = [menu]popUpBG.png + + +# # # N O T E S # # # +# sung notes - colorized with playercolors +GrayLeft = [sing]notesLeft.png +GrayMid = [sing]notesMid.png +GrayRight = [sing]notesRight.png +# unsung notes - colorized with playercolors +NotePlainLeft = [sing]notesPlainLeft.png +NotePlainMid = [sing]notesPlainMid.png +NotePlainRight = [sing]notesPlainRight.png +# the glow around unsung/sung notes - colorized with playercolors +NoteBGLeft = [sing]notesBgLeft.png +NoteBGMid = [sing]notesBgMid.png +NoteBGRight = [sing]notesBgRight.png +Pause = [sing]pause.png + +GrayLeftRap = [rap]notesLeft.png +GrayMidRap = [rap]notesMid.png +GrayRightRap = [rap]notesRight.png +NotePlainLeftRap = [rap]notesPlainLeft.png +NotePlainMidRap = [rap]notesPlainMid.png +NotePlainRightRap = [rap]notesPlainRight.png +NoteBGLeftRap = [rap]notesBgLeft.png +NoteBGMidRap = [rap]notesBgMid.png +NoteBGRightRap = [rap]notesBgRight.png + +# # # E F F E C T S # # # +NoteStar = [effect]goldenNoteStar.png +NotePerfectStar = [effect]perfectNoteStar.png + + +# # # dirty helpers # # # +Rectangle = [helper]rectangle.png +ButtonFade = [helper]buttonFade.png +BGFade = [special]bg_fade.png + + +# # # D U E T # # # +LyricIcon_P1 = [sing.player1]lyric_active.png +LyricIconD_P1 = [sing.player1]lyric_inactive.png +LyricIcon_P2 = [sing.player2]lyric_active.png +LyricIconD_P2 = [sing.player2]lyric_inactive.png +LyricIcon_P3 = [sing.player3]lyric_active.png +LyricIconD_P3 = [sing.player3]lyric_inactive.png +LyricIcon_P4 = [sing.player4]lyric_active.png +LyricIconD_P4 = [sing.player4]lyric_inactive.png +LyricIcon_P5 = [sing.player5]lyric_active.png +LyricIconD_P5 = [sing.player5]lyric_inactive.png +LyricIcon_P6 = [sing.player6]lyric_active.png +LyricIconD_P6 = [sing.player6]lyric_inactive.png + + +# # # DOWNLOAD SCORE # # # +ProgressBar = [sing]timeBar.jpg + +# # # J U K E B O X # # # +JukeboxTimeBar1 = [jukebox]timeBarBG.png +JukeboxTimeBar = [jukebox]timeBar.jpg +JukeboxSong = [jukebox]song.png +JukeboxSongBackground = [jukebox]title.png +JukeboxSongListBackground = [jukebox]songlist.png +JukeboxSongbartopBackground= [jukebox]bartop.png +JukeboxSongOptionsBackground = [jukebox]songoptions.png +JukeboxLyric = [jukebox]lyric.png +JukeboxRandom = [jukebox]random.png +JukeboxRepeat = [jukebox]repeat.png +JukeboxCurrentSongBackground = [jukebox]currentsong.png +JukeboxSongListUp = [jukebox]songlistup.png +JukeboxSongListDown = [jukebox]songlistdown.png +JukeboxOptions = [jukebox]options.png +JukeboxClose = [jukebox]close.png +JukeboxFix = [jukebox]pin.png +JukeboxSongMenuTimeBar = [jukebox]timeBarSongMenuBG.png +JukeboxSongMenuPlayPause = [jukebox]songmenuplaypause.png +JukeboxSongMenuNext = [jukebox]songmenunext.png +JukeboxSongMenuPrevious = [jukebox]songmenuprevious.png +JukeboxSongMenuPlaylist = [jukebox]songmenuplaylist.png +JukeboxSongSelection = [jukebox]songSelection.png +JukeboxField = [jukebox]fieldbg.png +JukeboxButton = [jukebox]mainBar.png +JukeboxSelect = [jukebox]selectbg.png + +# # # COLOR PICKER # # # +PickerBG = [color]pickerbg.png +Picker = [color]picker.jpg +Hue = [color]hue.png +HueBar = [color]hue-bar.png +WhiteFade = [color]white-fade.png +BlackFade = [color]black-fade.png +Pointer = [color]pointer.png + +# # # N A M E # # # +AvatarFrame = [name]frame.png +CurrentPlayer = [name]player.png +SelectFrame = [name]select.png +AvatarFrame2 = [score]frame.png + +# # # NO AVATARS # # # +NoAvatar_P1 = [name]noavatar.png +NoAvatar_P2 = [name]noavatar.png +NoAvatar_P3 = [name]noavatar.png +NoAvatar_P4 = [name]noavatar.png +NoAvatar_P5 = [name]noavatar.png +NoAvatar_P6 = [name]noavatar.png + +# # # A B O U T # # # +LogoWeb = [About]logo_web.png +LogoDeluxe = [About]logo_deluxe.png +AboutBG = [About]helperbg2.png + +# # # D E V E L O P E R S # # # +Dhelperbg = [Developers]helperbg.png \ No newline at end of file diff --git a/game/themes/common/Basic Red.ini b/game/themes/common/Basic Red.ini new file mode 100644 index 00000000..05b95f6b --- /dev/null +++ b/game/themes/common/Basic Red.ini @@ -0,0 +1,331 @@ +################################### +# theme developed by Daniel20 # +# for https:\\ultrastar-es.org # +# visit us to get songs, plugins, # +# themes and more... # +# # +# *some icons belongs to # +# https://www.iconfinder.com/ # +# under Creative Common license # +################################### + +############### +[Skin] +Theme=Party +Name= Basic Red +Color=Red + +[Textures] +/** + * Interface + */ +interface_selectbg_search = [interface]selectbg_search.png +interface_dialog_background = [interface]dialog_background.png +interface_dialog_background2 = [interface]dialog_background2.png +interface_dialog_backgroundtop = [interface]dialog_backgroundtop.png + +Cursor = [interface]cursor.png +Cursor_Pressed = [interface]cursor_pressed.png + +/** + * Icons + */ +icon_song_menu = [icon]song_menu.png +icon_song_search = [icon]song_search.png +icon_song_video = [icon]song_video.png +icon_song_medley = [icon]song_medley.png +icon_song_calcmedley = [icon]song_calcmedley.png +icon_song_duet = [icon]song_duet.png +icon_song_rap = [icon]song_rap.png + +loadicon = [load]logo.png +loadbaricon = [load]bar.png + +# # # M A I N # # # +ButtonSolo = [main]buttonsolo.png +ButtonAbout = [main]buttonabout.png +ButtonParty = [main]buttonparty.png +ButtonStats = [main]buttonstats.png +ButtonJukebox = [main]buttonjukebox.png +ButtonOption = [main]buttonoption.png +ButtonExit = [main]buttonexit.png +Button2 = [main]button2.png +Button = [main]button.png +ButtonF = [main]buttonf.jpg +MainBar = [main]mainBar.png +SelectBG = [main]selectbg.png + +Select_ArrowLeft = [interface]select_arrow_left.png +Select_ArrowRight = [interface]select_arrow_right.png + +#Backgrounds +LoadingBG = [bg-load]basic.jpg +TitleBG = [bg-main]red.jpg +MainBG = [bg-main]red.jpg +SongBG = [bg-main]red.jpg +ScoreScreenBG = [bg-main]red.jpg +Top5BG = [bg-main]red.jpg +OptionsBG = [bg-main]red.jpg +PartyBG = [bg-main]red.jpg + +# # # S O N G S E L E C E T # # # +SongSelection1up = [main]songSelection1up.png +SongSelection1dn = [main]songSelection1dn.png +SongSelection1 = [main]songSelection1.png +SongSelection2 = [main]songSelection2.png +SongSelection3 = [main]songSelection3.png +SongSelection4 = [main]songSelection4.png +SongSelection5 = [main]songSelection5.png +SongCover = ../../covers/Common/NoCover.jpg +SongMessage = [song]message.png +SongDuetSinger = [song]duetsinger.png +SongDuetSinger2 = [song]duetsinger2.png +SongDuetSinger3 = [song]duetsinger3.png + +# # # S I N G # # # +#the bar where the lyrics reside +LyricBar = [sing]textBar.png +LyricBarDuet = [sing]textBar.png + +#this one slides in, to tell you that singing starts immediately +LyricHelpBar = [sing]lyricsHelpBar.png + +#the bar behind the timestuff +TimeBar1 = [sing]timeBarBG.png + +#the time progress bar (not skinned in this theme :P ) +TimeBar = [sing]timeBar.jpg + +#linebonus, the thing that pop ups at the score +LineBonusBack = [sing]lineBonusPopUp.png + +#Singbar (the thing beneath the scores) +SingBarBack = [sing]singBarBack.png +SingBarBar = [sing]singBarBar.png +SingBarFront = [sing]singBarFront.png + +#Background for scores +ScoreBG = [sing]scoreBg.png + +#Background for the P1, P2 and so on +P = [sing]p.png + +#Pointer for lyrics +Ball = [sing]LyricsBall.png + +#song name for medley mode +SongName = [sing]SongName.png + + +# # # S C O R E / T O P 5 # # # +ScoreBox = [score]box.png +ScoreGlassBox = [score]glass_box.png +ScoreLevel = [score]level.png +ScoreLevelRound = [score]levelRound.png + +ScoreLevel_Dark = [score]level_dark.png +ScoreLevel_Dark_Round = [score]level_dark_round.png + +ScoreLevel_Light = [score]level_light.png +ScoreLevel_Light_Round = [score]level_light_round.png + +ScoreLevel_Lightest = [score]level_lightest.png +ScoreLevel_Lightest_Round = [score]level_lightest_round.png + +ButtonSendScore = [score]buttonsendscore.png + +# Boxes near the text, that show what color is for which bar +ScoreBar_box_lightest = [score]bar_box_lightest.png +ScoreBar_box_light = [score]bar_box_light.png +ScoreBar_box_dark = [score]bar_box_dark.png + +ScoreEndCap = [score]endcap.png +ScoreLine = [score]line.png +PlayerNumberBox = [main]playerNumberBox.png + +Rating_0 = [score]rating_0.png +Rating_1 = [score]rating_1.png +Rating_2 = [score]rating_2.png +Rating_3 = [score]rating_3.png +Rating_4 = [score]rating_4.png +Rating_5 = [score]rating_5.png +Rating_6 = [score]rating_6.png +Rating_7 = [score]rating_7.png + +# # # O P T I O N S # # # +Optionsbuttongame = [Options]buttongame.png +Optionsbuttongraphics = [Options]buttongraphics.png +Optionsbuttonsound = [Options]buttonsound.png +Optionsbuttonlyrics = [Options]buttonlyrics.png +Optionsbuttondesign = [Options]buttondesign.png +Optionsbuttonmicrophones = [Options]buttonmicrophones.png +Optionsbuttonadvanced = [Options]buttonadvanced.png +Optionsbuttonnetwork = [Options]buttonnetwork.png +Optionsbuttonwebcam = [Options]buttonwebcam.png +Optionsbuttonjukebox = [Options]buttonjukebox.png +Optionsbuttonback = [Options]buttonback.png + +# # # M A I N P A R T Y # # # +ClassicButton =[MainParty]ClassicButton.png +ClassicFreeButton =[MainParty]ClassicFreeButton.png +ChallengeButton =[MainParty]ChallengeButton.png +TournamentButton =[tournament]trophy.png + +# # # P A R T Y # # # +Joker =[party]Joker.png +PartyPlayerButton =[party]playerButton.png +PartyTeamButton1 =[party]roundTeamButton.png +PartyTeamButton2 =[party]playerTeamButton.png +PartyTeamButton3 =[party]winTeamButton1.png +PartyTeamButton4 =[party]winTeamButton2.png +PartyTeamButton5 =[party]winTeamButton3.png +PartyRoundBG1 =[party]roundBG1.png +PartyRoundBG2 =[party]roundBG2.png +PartyRoundBG3 =[party]roundBG3.png +PartyRoundBG4 =[party]roundBG4.png +HDL_Pointer =[party]pointer.png +PartyTeamPoints =[party]teamPoints.png +PartyScoreDeco =[party]scoreDecoration.png +PartyScoreBG1 =[party]scoreBG1.png +PartyScoreBG2 =[party]scoreBG2.png +PartyWinDeco1 =[party]winDecoration.png +PartyWinDeco2 =[party]winDecoration.png +PartyWinDeco3 =[party]winDecoration.png +PartyPlayerSelectBG = [party]playerselectbg.png +PartyTrophy =[tournament]trophy.png +PartyWinner =[tournament]winner.png + +# # # S T A T S # # # +StatInfoBG1 = [stat]InfoBG1.png +StatInfoBG2 = [stat]InfoBG2.png + +# # # N A V I # # # +ButtonP = [button]p.png +ButtonM = [button]m.png +ButtonJ = [button]j.png +ButtonC = [button]c.png +ButtonAlt = [button]alt.png +ButtonAZ = [button]az.png +ButtonEnter = [button]enter.png +ButtonNavi = [button]navi.png +ButtonEsc = [button]esc.png +Button13 = [button]13.png +ButtonIns = [button]ins.png +ButtonDel = [button]del.png + +SongMenuBG = [menu]songMenuBg.png +SongMenuSelectBG = [menu]songMenuSelectBg.png +PopUpBG = [menu]popUpBG.png + + +# # # N O T E S # # # +# sung notes - colorized with playercolors +GrayLeft = [sing]notesLeft.png +GrayMid = [sing]notesMid.png +GrayRight = [sing]notesRight.png +# unsung notes - colorized with playercolors +NotePlainLeft = [sing]notesPlainLeft.png +NotePlainMid = [sing]notesPlainMid.png +NotePlainRight = [sing]notesPlainRight.png +# the glow around unsung/sung notes - colorized with playercolors +NoteBGLeft = [sing]notesBgLeft.png +NoteBGMid = [sing]notesBgMid.png +NoteBGRight = [sing]notesBgRight.png +Pause = [sing]pause.png + +GrayLeftRap = [rap]notesLeft.png +GrayMidRap = [rap]notesMid.png +GrayRightRap = [rap]notesRight.png +NotePlainLeftRap = [rap]notesPlainLeft.png +NotePlainMidRap = [rap]notesPlainMid.png +NotePlainRightRap = [rap]notesPlainRight.png +NoteBGLeftRap = [rap]notesBgLeft.png +NoteBGMidRap = [rap]notesBgMid.png +NoteBGRightRap = [rap]notesBgRight.png + +# # # E F F E C T S # # # +NoteStar = [effect]goldenNoteStar.png +NotePerfectStar = [effect]perfectNoteStar.png + + +# # # dirty helpers # # # +Rectangle = [helper]rectangle.png +ButtonFade = [helper]buttonFade.png +BGFade = [special]bg_fade.png + + +# # # D U E T # # # +LyricIcon_P1 = [sing.player1]lyric_active.png +LyricIconD_P1 = [sing.player1]lyric_inactive.png +LyricIcon_P2 = [sing.player2]lyric_active.png +LyricIconD_P2 = [sing.player2]lyric_inactive.png +LyricIcon_P3 = [sing.player3]lyric_active.png +LyricIconD_P3 = [sing.player3]lyric_inactive.png +LyricIcon_P4 = [sing.player4]lyric_active.png +LyricIconD_P4 = [sing.player4]lyric_inactive.png +LyricIcon_P5 = [sing.player5]lyric_active.png +LyricIconD_P5 = [sing.player5]lyric_inactive.png +LyricIcon_P6 = [sing.player6]lyric_active.png +LyricIconD_P6 = [sing.player6]lyric_inactive.png + + +# # # DOWNLOAD SCORE # # # +ProgressBar = [sing]timeBar.jpg + +# # # J U K E B O X # # # +JukeboxTimeBar1 = [jukebox]timeBarBG.png +JukeboxTimeBar = [jukebox]timeBar.jpg +JukeboxSong = [jukebox]song.png +JukeboxSongBackground = [jukebox]title.png +JukeboxSongListBackground = [jukebox]songlist.png +JukeboxSongbartopBackground= [jukebox]bartop.png +JukeboxSongOptionsBackground = [jukebox]songoptions.png +JukeboxLyric = [jukebox]lyric.png +JukeboxRandom = [jukebox]random.png +JukeboxRepeat = [jukebox]repeat.png +JukeboxCurrentSongBackground = [jukebox]currentsong.png +JukeboxSongListUp = [jukebox]songlistup.png +JukeboxSongListDown = [jukebox]songlistdown.png +JukeboxOptions = [jukebox]options.png +JukeboxClose = [jukebox]close.png +JukeboxFix = [jukebox]pin.png +JukeboxSongMenuTimeBar = [jukebox]timeBarSongMenuBG.png +JukeboxSongMenuPlayPause = [jukebox]songmenuplaypause.png +JukeboxSongMenuNext = [jukebox]songmenunext.png +JukeboxSongMenuPrevious = [jukebox]songmenuprevious.png +JukeboxSongMenuPlaylist = [jukebox]songmenuplaylist.png +JukeboxSongSelection = [jukebox]songSelection.png +JukeboxField = [jukebox]fieldbg.png +JukeboxButton = [jukebox]mainBar.png +JukeboxSelect = [jukebox]selectbg.png + +# # # COLOR PICKER # # # +PickerBG = [color]pickerbg.png +Picker = [color]picker.jpg +Hue = [color]hue.png +HueBar = [color]hue-bar.png +WhiteFade = [color]white-fade.png +BlackFade = [color]black-fade.png +Pointer = [color]pointer.png + +# # # N A M E # # # +AvatarFrame = [name]frame.png +CurrentPlayer = [name]player.png +SelectFrame = [name]select.png +AvatarFrame2 = [score]frame.png + +# # # NO AVATARS # # # +NoAvatar_P1 = [name]noavatar.png +NoAvatar_P2 = [name]noavatar.png +NoAvatar_P3 = [name]noavatar.png +NoAvatar_P4 = [name]noavatar.png +NoAvatar_P5 = [name]noavatar.png +NoAvatar_P6 = [name]noavatar.png + +# # # A B O U T # # # +LogoWeb = [About]logo_web.png +LogoDeluxe = [About]logo_deluxe.png +AboutBG = [About]helperbg2.png + +# # # D E V E L O P E R S # # # +Dhelperbg = [Developers]helperbg.png \ No newline at end of file diff --git a/game/themes/common/Basic Violet.ini b/game/themes/common/Basic Violet.ini new file mode 100644 index 00000000..bbfa2051 --- /dev/null +++ b/game/themes/common/Basic Violet.ini @@ -0,0 +1,331 @@ +################################### +# theme developed by Daniel20 # +# for https:\\ultrastar-es.org # +# visit us to get songs, plugins, # +# themes and more... # +# # +# *some icons belongs to # +# https://www.iconfinder.com/ # +# under Creative Common license # +################################### + +############### +[Skin] +Theme=Party +Name= Basic Violet +Color=Violet + +[Textures] +/** + * Interface + */ +interface_selectbg_search = [interface]selectbg_search.png +interface_dialog_background = [interface]dialog_background.png +interface_dialog_background2 = [interface]dialog_background2.png +interface_dialog_backgroundtop = [interface]dialog_backgroundtop.png + +Cursor = [interface]cursor.png +Cursor_Pressed = [interface]cursor_pressed.png + +/** + * Icons + */ +icon_song_menu = [icon]song_menu.png +icon_song_search = [icon]song_search.png +icon_song_video = [icon]song_video.png +icon_song_medley = [icon]song_medley.png +icon_song_calcmedley = [icon]song_calcmedley.png +icon_song_duet = [icon]song_duet.png +icon_song_rap = [icon]song_rap.png + +loadicon = [load]logo.png +loadbaricon = [load]bar.png + +# # # M A I N # # # +ButtonSolo = [main]buttonsolo.png +ButtonAbout = [main]buttonabout.png +ButtonParty = [main]buttonparty.png +ButtonStats = [main]buttonstats.png +ButtonJukebox = [main]buttonjukebox.png +ButtonOption = [main]buttonoption.png +ButtonExit = [main]buttonexit.png +Button2 = [main]button2.png +Button = [main]button.png +ButtonF = [main]buttonf.jpg +MainBar = [main]mainBar.png +SelectBG = [main]selectbg.png + +Select_ArrowLeft = [interface]select_arrow_left.png +Select_ArrowRight = [interface]select_arrow_right.png + +#Backgrounds +LoadingBG = [bg-load]basic.jpg +TitleBG = [bg-main]violet.jpg +MainBG = [bg-main]violet.jpg +SongBG = [bg-main]violet.jpg +ScoreScreenBG = [bg-main]violet.jpg +Top5BG = [bg-main]violet.jpg +OptionsBG = [bg-main]violet.jpg +PartyBG = [bg-main]violet.jpg + +# # # S O N G S E L E C E T # # # +SongSelection1up = [main]songSelection1up.png +SongSelection1dn = [main]songSelection1dn.png +SongSelection1 = [main]songSelection1.png +SongSelection2 = [main]songSelection2.png +SongSelection3 = [main]songSelection3.png +SongSelection4 = [main]songSelection4.png +SongSelection5 = [main]songSelection5.png +SongCover = ../../covers/Common/NoCover.jpg +SongMessage = [song]message.png +SongDuetSinger = [song]duetsinger.png +SongDuetSinger2 = [song]duetsinger2.png +SongDuetSinger3 = [song]duetsinger3.png + +# # # S I N G # # # +#the bar where the lyrics reside +LyricBar = [sing]textBar.png +LyricBarDuet = [sing]textBar.png + +#this one slides in, to tell you that singing starts immediately +LyricHelpBar = [sing]lyricsHelpBar.png + +#the bar behind the timestuff +TimeBar1 = [sing]timeBarBG.png + +#the time progress bar (not skinned in this theme :P ) +TimeBar = [sing]timeBar.jpg + +#linebonus, the thing that pop ups at the score +LineBonusBack = [sing]lineBonusPopUp.png + +#Singbar (the thing beneath the scores) +SingBarBack = [sing]singBarBack.png +SingBarBar = [sing]singBarBar.png +SingBarFront = [sing]singBarFront.png + +#Background for scores +ScoreBG = [sing]scoreBg.png + +#Background for the P1, P2 and so on +P = [sing]p.png + +#Pointer for lyrics +Ball = [sing]LyricsBall.png + +#song name for medley mode +SongName = [sing]SongName.png + + +# # # S C O R E / T O P 5 # # # +ScoreBox = [score]box.png +ScoreGlassBox = [score]glass_box.png +ScoreLevel = [score]level.png +ScoreLevelRound = [score]levelRound.png + +ScoreLevel_Dark = [score]level_dark.png +ScoreLevel_Dark_Round = [score]level_dark_round.png + +ScoreLevel_Light = [score]level_light.png +ScoreLevel_Light_Round = [score]level_light_round.png + +ScoreLevel_Lightest = [score]level_lightest.png +ScoreLevel_Lightest_Round = [score]level_lightest_round.png + +ButtonSendScore = [score]buttonsendscore.png + +# Boxes near the text, that show what color is for which bar +ScoreBar_box_lightest = [score]bar_box_lightest.png +ScoreBar_box_light = [score]bar_box_light.png +ScoreBar_box_dark = [score]bar_box_dark.png + +ScoreEndCap = [score]endcap.png +ScoreLine = [score]line.png +PlayerNumberBox = [main]playerNumberBox.png + +Rating_0 = [score]rating_0.png +Rating_1 = [score]rating_1.png +Rating_2 = [score]rating_2.png +Rating_3 = [score]rating_3.png +Rating_4 = [score]rating_4.png +Rating_5 = [score]rating_5.png +Rating_6 = [score]rating_6.png +Rating_7 = [score]rating_7.png + +# # # O P T I O N S # # # +Optionsbuttongame = [Options]buttongame.png +Optionsbuttongraphics = [Options]buttongraphics.png +Optionsbuttonsound = [Options]buttonsound.png +Optionsbuttonlyrics = [Options]buttonlyrics.png +Optionsbuttondesign = [Options]buttondesign.png +Optionsbuttonmicrophones = [Options]buttonmicrophones.png +Optionsbuttonadvanced = [Options]buttonadvanced.png +Optionsbuttonnetwork = [Options]buttonnetwork.png +Optionsbuttonwebcam = [Options]buttonwebcam.png +Optionsbuttonjukebox = [Options]buttonjukebox.png +Optionsbuttonback = [Options]buttonback.png + +# # # M A I N P A R T Y # # # +ClassicButton =[MainParty]ClassicButton.png +ClassicFreeButton =[MainParty]ClassicFreeButton.png +ChallengeButton =[MainParty]ChallengeButton.png +TournamentButton =[tournament]trophy.png + +# # # P A R T Y # # # +Joker =[party]Joker.png +PartyPlayerButton =[party]playerButton.png +PartyTeamButton1 =[party]roundTeamButton.png +PartyTeamButton2 =[party]playerTeamButton.png +PartyTeamButton3 =[party]winTeamButton1.png +PartyTeamButton4 =[party]winTeamButton2.png +PartyTeamButton5 =[party]winTeamButton3.png +PartyRoundBG1 =[party]roundBG1.png +PartyRoundBG2 =[party]roundBG2.png +PartyRoundBG3 =[party]roundBG3.png +PartyRoundBG4 =[party]roundBG4.png +HDL_Pointer =[party]pointer.png +PartyTeamPoints =[party]teamPoints.png +PartyScoreDeco =[party]scoreDecoration.png +PartyScoreBG1 =[party]scoreBG1.png +PartyScoreBG2 =[party]scoreBG2.png +PartyWinDeco1 =[party]winDecoration.png +PartyWinDeco2 =[party]winDecoration.png +PartyWinDeco3 =[party]winDecoration.png +PartyPlayerSelectBG = [party]playerselectbg.png +PartyTrophy =[tournament]trophy.png +PartyWinner =[tournament]winner.png + +# # # S T A T S # # # +StatInfoBG1 = [stat]InfoBG1.png +StatInfoBG2 = [stat]InfoBG2.png + +# # # N A V I # # # +ButtonP = [button]p.png +ButtonM = [button]m.png +ButtonJ = [button]j.png +ButtonC = [button]c.png +ButtonAlt = [button]alt.png +ButtonAZ = [button]az.png +ButtonEnter = [button]enter.png +ButtonNavi = [button]navi.png +ButtonEsc = [button]esc.png +Button13 = [button]13.png +ButtonIns = [button]ins.png +ButtonDel = [button]del.png + +SongMenuBG = [menu]songMenuBg.png +SongMenuSelectBG = [menu]songMenuSelectBg.png +PopUpBG = [menu]popUpBG.png + + +# # # N O T E S # # # +# sung notes - colorized with playercolors +GrayLeft = [sing]notesLeft.png +GrayMid = [sing]notesMid.png +GrayRight = [sing]notesRight.png +# unsung notes - colorized with playercolors +NotePlainLeft = [sing]notesPlainLeft.png +NotePlainMid = [sing]notesPlainMid.png +NotePlainRight = [sing]notesPlainRight.png +# the glow around unsung/sung notes - colorized with playercolors +NoteBGLeft = [sing]notesBgLeft.png +NoteBGMid = [sing]notesBgMid.png +NoteBGRight = [sing]notesBgRight.png +Pause = [sing]pause.png + +GrayLeftRap = [rap]notesLeft.png +GrayMidRap = [rap]notesMid.png +GrayRightRap = [rap]notesRight.png +NotePlainLeftRap = [rap]notesPlainLeft.png +NotePlainMidRap = [rap]notesPlainMid.png +NotePlainRightRap = [rap]notesPlainRight.png +NoteBGLeftRap = [rap]notesBgLeft.png +NoteBGMidRap = [rap]notesBgMid.png +NoteBGRightRap = [rap]notesBgRight.png + +# # # E F F E C T S # # # +NoteStar = [effect]goldenNoteStar.png +NotePerfectStar = [effect]perfectNoteStar.png + + +# # # dirty helpers # # # +Rectangle = [helper]rectangle.png +ButtonFade = [helper]buttonFade.png +BGFade = [special]bg_fade.png + + +# # # D U E T # # # +LyricIcon_P1 = [sing.player1]lyric_active.png +LyricIconD_P1 = [sing.player1]lyric_inactive.png +LyricIcon_P2 = [sing.player2]lyric_active.png +LyricIconD_P2 = [sing.player2]lyric_inactive.png +LyricIcon_P3 = [sing.player3]lyric_active.png +LyricIconD_P3 = [sing.player3]lyric_inactive.png +LyricIcon_P4 = [sing.player4]lyric_active.png +LyricIconD_P4 = [sing.player4]lyric_inactive.png +LyricIcon_P5 = [sing.player5]lyric_active.png +LyricIconD_P5 = [sing.player5]lyric_inactive.png +LyricIcon_P6 = [sing.player6]lyric_active.png +LyricIconD_P6 = [sing.player6]lyric_inactive.png + + +# # # DOWNLOAD SCORE # # # +ProgressBar = [sing]timeBar.jpg + +# # # J U K E B O X # # # +JukeboxTimeBar1 = [jukebox]timeBarBG.png +JukeboxTimeBar = [jukebox]timeBar.jpg +JukeboxSong = [jukebox]song.png +JukeboxSongBackground = [jukebox]title.png +JukeboxSongListBackground = [jukebox]songlist.png +JukeboxSongbartopBackground= [jukebox]bartop.png +JukeboxSongOptionsBackground = [jukebox]songoptions.png +JukeboxLyric = [jukebox]lyric.png +JukeboxRandom = [jukebox]random.png +JukeboxRepeat = [jukebox]repeat.png +JukeboxCurrentSongBackground = [jukebox]currentsong.png +JukeboxSongListUp = [jukebox]songlistup.png +JukeboxSongListDown = [jukebox]songlistdown.png +JukeboxOptions = [jukebox]options.png +JukeboxClose = [jukebox]close.png +JukeboxFix = [jukebox]pin.png +JukeboxSongMenuTimeBar = [jukebox]timeBarSongMenuBG.png +JukeboxSongMenuPlayPause = [jukebox]songmenuplaypause.png +JukeboxSongMenuNext = [jukebox]songmenunext.png +JukeboxSongMenuPrevious = [jukebox]songmenuprevious.png +JukeboxSongMenuPlaylist = [jukebox]songmenuplaylist.png +JukeboxSongSelection = [jukebox]songSelection.png +JukeboxField = [jukebox]fieldbg.png +JukeboxButton = [jukebox]mainBar.png +JukeboxSelect = [jukebox]selectbg.png + +# # # COLOR PICKER # # # +PickerBG = [color]pickerbg.png +Picker = [color]picker.jpg +Hue = [color]hue.png +HueBar = [color]hue-bar.png +WhiteFade = [color]white-fade.png +BlackFade = [color]black-fade.png +Pointer = [color]pointer.png + +# # # N A M E # # # +AvatarFrame = [name]frame.png +CurrentPlayer = [name]player.png +SelectFrame = [name]select.png +AvatarFrame2 = [score]frame.png + +# # # NO AVATARS # # # +NoAvatar_P1 = [name]noavatar.png +NoAvatar_P2 = [name]noavatar.png +NoAvatar_P3 = [name]noavatar.png +NoAvatar_P4 = [name]noavatar.png +NoAvatar_P5 = [name]noavatar.png +NoAvatar_P6 = [name]noavatar.png + +# # # A B O U T # # # +LogoWeb = [About]logo_web.png +LogoDeluxe = [About]logo_deluxe.png +AboutBG = [About]helperbg2.png + +# # # D E V E L O P E R S # # # +Dhelperbg = [Developers]helperbg.png \ No newline at end of file diff --git a/game/themes/common/Hearts.ini b/game/themes/common/Hearts.ini new file mode 100644 index 00000000..85ac2da2 --- /dev/null +++ b/game/themes/common/Hearts.ini @@ -0,0 +1,333 @@ +################################### +# theme developed by Daniel20 # +# for https:\\ultrastar-es.org # +# visit us to get songs, plugins, # +# themes and more... # +# # +# *some icons belongs to # +# https://www.iconfinder.com/ # +# under Creative Common license # +################################### + +#Video credits to: AA VFX https://www.youtube.com/watch?v=biPycuqGBRc + +############### +[Skin] +Theme=Party +Name= Hearts +Color=Pink + +[Textures] +/** + * Interface + */ +interface_selectbg_search = [interface]selectbg_search.png +interface_dialog_background = [interface]dialog_background.png +interface_dialog_background2 = [interface]dialog_background2.png +interface_dialog_backgroundtop = [interface]dialog_backgroundtop.png + +Cursor = [interface]cursor.png +Cursor_Pressed = [interface]cursor_pressed.png + +/** + * Icons + */ +icon_song_menu = [icon]song_menu.png +icon_song_search = [icon]song_search.png +icon_song_video = [icon]song_video.png +icon_song_medley = [icon]song_medley.png +icon_song_calcmedley = [icon]song_calcmedley.png +icon_song_duet = [icon]song_duet.png +icon_song_rap = [icon]song_rap.png + +loadicon = [load]logo.png +loadbaricon = [load]bar.png + +# # # M A I N # # # +ButtonSolo = [main]buttonsolo.png +ButtonAbout = [main]buttonabout.png +ButtonParty = [main]buttonparty.png +ButtonStats = [main]buttonstats.png +ButtonJukebox = [main]buttonjukebox.png +ButtonOption = [main]buttonoption.png +ButtonExit = [main]buttonexit.png +Button2 = [main]button2.png +Button = [main]button.png +ButtonF = [main]buttonf.jpg +MainBar = [main]mainBar.png +SelectBG = [main]selectbg.png + +Select_ArrowLeft = [interface]select_arrow_left.png +Select_ArrowRight = [interface]select_arrow_right.png + +#Backgrounds +LoadingBG = [bg-load]basic.jpg +TitleBG = [bg-main]love.webm +MainBG = [bg-main]love.webm +SongBG = [bg-main]love.webm +ScoreScreenBG = [bg-main]love.webm +Top5BG = [bg-main]love.webm +OptionsBG = [bg-main]love.webm +PartyBG = [bg-main]love.webm + +# # # S O N G S E L E C E T # # # +SongSelection1up = [main]songSelection1up.png +SongSelection1dn = [main]songSelection1dn.png +SongSelection1 = [main]songSelection1.png +SongSelection2 = [main]songSelection2.png +SongSelection3 = [main]songSelection3.png +SongSelection4 = [main]songSelection4.png +SongSelection5 = [main]songSelection5.png +SongCover = ../../covers/Common/NoCover.jpg +SongMessage = [song]message.png +SongDuetSinger = [song]duetsinger.png +SongDuetSinger2 = [song]duetsinger2.png +SongDuetSinger3 = [song]duetsinger3.png + +# # # S I N G # # # +#the bar where the lyrics reside +LyricBar = [sing]textBar.png +LyricBarDuet = [sing]textBar.png + +#this one slides in, to tell you that singing starts immediately +LyricHelpBar = [sing]lyricsHelpBar.png + +#the bar behind the timestuff +TimeBar1 = [sing]timeBarBG.png + +#the time progress bar (not skinned in this theme :P ) +TimeBar = [sing]timeBar.jpg + +#linebonus, the thing that pop ups at the score +LineBonusBack = [sing]lineBonusPopUp.png + +#Singbar (the thing beneath the scores) +SingBarBack = [sing]singBarBack.png +SingBarBar = [sing]singBarBar.png +SingBarFront = [sing]singBarFront.png + +#Background for scores +ScoreBG = [sing]scoreBg.png + +#Background for the P1, P2 and so on +P = [sing]p.png + +#Pointer for lyrics +Ball = [sing]LyricsBall.png + +#song name for medley mode +SongName = [sing]SongName.png + + +# # # S C O R E / T O P 5 # # # +ScoreBox = [score]box.png +ScoreGlassBox = [score]glass_box.png +ScoreLevel = [score]level.png +ScoreLevelRound = [score]levelRound.png + +ScoreLevel_Dark = [score]level_dark.png +ScoreLevel_Dark_Round = [score]level_dark_round.png + +ScoreLevel_Light = [score]level_light.png +ScoreLevel_Light_Round = [score]level_light_round.png + +ScoreLevel_Lightest = [score]level_lightest.png +ScoreLevel_Lightest_Round = [score]level_lightest_round.png + +ButtonSendScore = [score]buttonsendscore.png + +# Boxes near the text, that show what color is for which bar +ScoreBar_box_lightest = [score]bar_box_lightest.png +ScoreBar_box_light = [score]bar_box_light.png +ScoreBar_box_dark = [score]bar_box_dark.png + +ScoreEndCap = [score]endcap.png +ScoreLine = [score]line.png +PlayerNumberBox = [main]playerNumberBox.png + +Rating_0 = [score]rating_0.png +Rating_1 = [score]rating_1.png +Rating_2 = [score]rating_2.png +Rating_3 = [score]rating_3.png +Rating_4 = [score]rating_4.png +Rating_5 = [score]rating_5.png +Rating_6 = [score]rating_6.png +Rating_7 = [score]rating_7.png + +# # # O P T I O N S # # # +Optionsbuttongame = [Options]buttongame.png +Optionsbuttongraphics = [Options]buttongraphics.png +Optionsbuttonsound = [Options]buttonsound.png +Optionsbuttonlyrics = [Options]buttonlyrics.png +Optionsbuttondesign = [Options]buttondesign.png +Optionsbuttonmicrophones = [Options]buttonmicrophones.png +Optionsbuttonadvanced = [Options]buttonadvanced.png +Optionsbuttonnetwork = [Options]buttonnetwork.png +Optionsbuttonwebcam = [Options]buttonwebcam.png +Optionsbuttonjukebox = [Options]buttonjukebox.png +Optionsbuttonback = [Options]buttonback.png + +# # # M A I N P A R T Y # # # +ClassicButton =[MainParty]ClassicButton.png +ClassicFreeButton =[MainParty]ClassicFreeButton.png +ChallengeButton =[MainParty]ChallengeButton.png +TournamentButton =[tournament]trophy.png + +# # # P A R T Y # # # +Joker =[party]Joker.png +PartyPlayerButton =[party]playerButton.png +PartyTeamButton1 =[party]roundTeamButton.png +PartyTeamButton2 =[party]playerTeamButton.png +PartyTeamButton3 =[party]winTeamButton1.png +PartyTeamButton4 =[party]winTeamButton2.png +PartyTeamButton5 =[party]winTeamButton3.png +PartyRoundBG1 =[party]roundBG1.png +PartyRoundBG2 =[party]roundBG2.png +PartyRoundBG3 =[party]roundBG3.png +PartyRoundBG4 =[party]roundBG4.png +HDL_Pointer =[party]pointer.png +PartyTeamPoints =[party]teamPoints.png +PartyScoreDeco =[party]scoreDecoration.png +PartyScoreBG1 =[party]scoreBG1.png +PartyScoreBG2 =[party]scoreBG2.png +PartyWinDeco1 =[party]winDecoration.png +PartyWinDeco2 =[party]winDecoration.png +PartyWinDeco3 =[party]winDecoration.png +PartyPlayerSelectBG = [party]playerselectbg.png +PartyTrophy =[tournament]trophy.png +PartyWinner =[tournament]winner.png + +# # # S T A T S # # # +StatInfoBG1 = [stat]InfoBG1.png +StatInfoBG2 = [stat]InfoBG2.png + +# # # N A V I # # # +ButtonP = [button]p.png +ButtonM = [button]m.png +ButtonJ = [button]j.png +ButtonC = [button]c.png +ButtonAlt = [button]alt.png +ButtonAZ = [button]az.png +ButtonEnter = [button]enter.png +ButtonNavi = [button]navi.png +ButtonEsc = [button]esc.png +Button13 = [button]13.png +ButtonIns = [button]ins.png +ButtonDel = [button]del.png + +SongMenuBG = [menu]songMenuBg.png +SongMenuSelectBG = [menu]songMenuSelectBg.png +PopUpBG = [menu]popUpBG.png + + +# # # N O T E S # # # +# sung notes - colorized with playercolors +GrayLeft = [sing]notesLeft.png +GrayMid = [sing]notesMid.png +GrayRight = [sing]notesRight.png +# unsung notes - colorized with playercolors +NotePlainLeft = [sing]notesPlainLeft.png +NotePlainMid = [sing]notesPlainMid.png +NotePlainRight = [sing]notesPlainRight.png +# the glow around unsung/sung notes - colorized with playercolors +NoteBGLeft = [sing]notesBgLeft.png +NoteBGMid = [sing]notesBgMid.png +NoteBGRight = [sing]notesBgRight.png +Pause = [sing]pause.png + +GrayLeftRap = [rap]notesLeft.png +GrayMidRap = [rap]notesMid.png +GrayRightRap = [rap]notesRight.png +NotePlainLeftRap = [rap]notesPlainLeft.png +NotePlainMidRap = [rap]notesPlainMid.png +NotePlainRightRap = [rap]notesPlainRight.png +NoteBGLeftRap = [rap]notesBgLeft.png +NoteBGMidRap = [rap]notesBgMid.png +NoteBGRightRap = [rap]notesBgRight.png + +# # # E F F E C T S # # # +NoteStar = [effect]goldenNoteStar.png +NotePerfectStar = [effect]perfectNoteStar.png + + +# # # dirty helpers # # # +Rectangle = [helper]rectangle.png +ButtonFade = [helper]buttonFade.png +BGFade = [special]bg_fade.png + + +# # # D U E T # # # +LyricIcon_P1 = [sing.player1]lyric_active.png +LyricIconD_P1 = [sing.player1]lyric_inactive.png +LyricIcon_P2 = [sing.player2]lyric_active.png +LyricIconD_P2 = [sing.player2]lyric_inactive.png +LyricIcon_P3 = [sing.player3]lyric_active.png +LyricIconD_P3 = [sing.player3]lyric_inactive.png +LyricIcon_P4 = [sing.player4]lyric_active.png +LyricIconD_P4 = [sing.player4]lyric_inactive.png +LyricIcon_P5 = [sing.player5]lyric_active.png +LyricIconD_P5 = [sing.player5]lyric_inactive.png +LyricIcon_P6 = [sing.player6]lyric_active.png +LyricIconD_P6 = [sing.player6]lyric_inactive.png + + +# # # DOWNLOAD SCORE # # # +ProgressBar = [sing]timeBar.jpg + +# # # J U K E B O X # # # +JukeboxTimeBar1 = [jukebox]timeBarBG.png +JukeboxTimeBar = [jukebox]timeBar.jpg +JukeboxSong = [jukebox]song.png +JukeboxSongBackground = [jukebox]title.png +JukeboxSongListBackground = [jukebox]songlist.png +JukeboxSongbartopBackground= [jukebox]bartop.png +JukeboxSongOptionsBackground = [jukebox]songoptions.png +JukeboxLyric = [jukebox]lyric.png +JukeboxRandom = [jukebox]random.png +JukeboxRepeat = [jukebox]repeat.png +JukeboxCurrentSongBackground = [jukebox]currentsong.png +JukeboxSongListUp = [jukebox]songlistup.png +JukeboxSongListDown = [jukebox]songlistdown.png +JukeboxOptions = [jukebox]options.png +JukeboxClose = [jukebox]close.png +JukeboxFix = [jukebox]pin.png +JukeboxSongMenuTimeBar = [jukebox]timeBarSongMenuBG.png +JukeboxSongMenuPlayPause = [jukebox]songmenuplaypause.png +JukeboxSongMenuNext = [jukebox]songmenunext.png +JukeboxSongMenuPrevious = [jukebox]songmenuprevious.png +JukeboxSongMenuPlaylist = [jukebox]songmenuplaylist.png +JukeboxSongSelection = [jukebox]songSelection.png +JukeboxField = [jukebox]fieldbg.png +JukeboxButton = [jukebox]mainBar.png +JukeboxSelect = [jukebox]selectbg.png + +# # # COLOR PICKER # # # +PickerBG = [color]pickerbg.png +Picker = [color]picker.jpg +Hue = [color]hue.png +HueBar = [color]hue-bar.png +WhiteFade = [color]white-fade.png +BlackFade = [color]black-fade.png +Pointer = [color]pointer.png + +# # # N A M E # # # +AvatarFrame = [name]frame.png +CurrentPlayer = [name]player.png +SelectFrame = [name]select.png +AvatarFrame2 = [score]frame.png + +# # # NO AVATARS # # # +NoAvatar_P1 = [name]noavatar.png +NoAvatar_P2 = [name]noavatar.png +NoAvatar_P3 = [name]noavatar.png +NoAvatar_P4 = [name]noavatar.png +NoAvatar_P5 = [name]noavatar.png +NoAvatar_P6 = [name]noavatar.png + +# # # A B O U T # # # +LogoWeb = [About]logo_web.png +LogoDeluxe = [About]logo_deluxe.png +AboutBG = [About]helperbg2.png + +# # # D E V E L O P E R S # # # +Dhelperbg = [Developers]helperbg.png \ No newline at end of file diff --git a/game/themes/common/Heat.ini b/game/themes/common/Heat.ini new file mode 100644 index 00000000..c6ce6f79 --- /dev/null +++ b/game/themes/common/Heat.ini @@ -0,0 +1,333 @@ +################################### +# theme developed by Daniel20 # +# for https:\\ultrastar-es.org # +# visit us to get songs, plugins, # +# themes and more... # +# # +# *some icons belongs to # +# https://www.iconfinder.com/ # +# under Creative Common license # +################################### + +#Video credits to: AA VFX https://www.youtube.com/watch?v=X36DOTEzjHw + +############### +[Skin] +Theme=Party +Name= Heat +Color=Red + +[Textures] +/** + * Interface + */ +interface_selectbg_search = [interface]selectbg_search.png +interface_dialog_background = [interface]dialog_background.png +interface_dialog_background2 = [interface]dialog_background2.png +interface_dialog_backgroundtop = [interface]dialog_backgroundtop.png + +Cursor = [interface]cursor.png +Cursor_Pressed = [interface]cursor_pressed.png + +/** + * Icons + */ +icon_song_menu = [icon]song_menu.png +icon_song_search = [icon]song_search.png +icon_song_video = [icon]song_video.png +icon_song_medley = [icon]song_medley.png +icon_song_calcmedley = [icon]song_calcmedley.png +icon_song_duet = [icon]song_duet.png +icon_song_rap = [icon]song_rap.png + +loadicon = [load]logo.png +loadbaricon = [load]bar.png + +# # # M A I N # # # +ButtonSolo = [main]buttonsolo.png +ButtonAbout = [main]buttonabout.png +ButtonParty = [main]buttonparty.png +ButtonStats = [main]buttonstats.png +ButtonJukebox = [main]buttonjukebox.png +ButtonOption = [main]buttonoption.png +ButtonExit = [main]buttonexit.png +Button2 = [main]button2.png +Button = [main]button.png +ButtonF = [main]buttonf.jpg +MainBar = [main]mainBar.png +SelectBG = [main]selectbg.png + +Select_ArrowLeft = [interface]select_arrow_left.png +Select_ArrowRight = [interface]select_arrow_right.png + +#Backgrounds +LoadingBG = [bg-load]basic.jpg +TitleBG = [bg-main]magma.webm +MainBG = [bg-main]magma.webm +SongBG = [bg-main]magma.webm +ScoreScreenBG = [bg-main]magma.webm +Top5BG = [bg-main]magma.webm +OptionsBG = [bg-main]magma.webm +PartyBG = [bg-main]magma.webm + +# # # S O N G S E L E C E T # # # +SongSelection1up = [main]songSelection1up.png +SongSelection1dn = [main]songSelection1dn.png +SongSelection1 = [main]songSelection1.png +SongSelection2 = [main]songSelection2.png +SongSelection3 = [main]songSelection3.png +SongSelection4 = [main]songSelection4.png +SongSelection5 = [main]songSelection5.png +SongCover = ../../covers/Common/NoCover.jpg +SongMessage = [song]message.png +SongDuetSinger = [song]duetsinger.png +SongDuetSinger2 = [song]duetsinger2.png +SongDuetSinger3 = [song]duetsinger3.png + +# # # S I N G # # # +#the bar where the lyrics reside +LyricBar = [sing]textBar.png +LyricBarDuet = [sing]textBar.png + +#this one slides in, to tell you that singing starts immediately +LyricHelpBar = [sing]lyricsHelpBar.png + +#the bar behind the timestuff +TimeBar1 = [sing]timeBarBG.png + +#the time progress bar (not skinned in this theme :P ) +TimeBar = [sing]timeBar.jpg + +#linebonus, the thing that pop ups at the score +LineBonusBack = [sing]lineBonusPopUp.png + +#Singbar (the thing beneath the scores) +SingBarBack = [sing]singBarBack.png +SingBarBar = [sing]singBarBar.png +SingBarFront = [sing]singBarFront.png + +#Background for scores +ScoreBG = [sing]scoreBg.png + +#Background for the P1, P2 and so on +P = [sing]p.png + +#Pointer for lyrics +Ball = [sing]LyricsBall.png + +#song name for medley mode +SongName = [sing]SongName.png + + +# # # S C O R E / T O P 5 # # # +ScoreBox = [score]box.png +ScoreGlassBox = [score]glass_box.png +ScoreLevel = [score]level.png +ScoreLevelRound = [score]levelRound.png + +ScoreLevel_Dark = [score]level_dark.png +ScoreLevel_Dark_Round = [score]level_dark_round.png + +ScoreLevel_Light = [score]level_light.png +ScoreLevel_Light_Round = [score]level_light_round.png + +ScoreLevel_Lightest = [score]level_lightest.png +ScoreLevel_Lightest_Round = [score]level_lightest_round.png + +ButtonSendScore = [score]buttonsendscore.png + +# Boxes near the text, that show what color is for which bar +ScoreBar_box_lightest = [score]bar_box_lightest.png +ScoreBar_box_light = [score]bar_box_light.png +ScoreBar_box_dark = [score]bar_box_dark.png + +ScoreEndCap = [score]endcap.png +ScoreLine = [score]line.png +PlayerNumberBox = [main]playerNumberBox.png + +Rating_0 = [score]rating_0.png +Rating_1 = [score]rating_1.png +Rating_2 = [score]rating_2.png +Rating_3 = [score]rating_3.png +Rating_4 = [score]rating_4.png +Rating_5 = [score]rating_5.png +Rating_6 = [score]rating_6.png +Rating_7 = [score]rating_7.png + +# # # O P T I O N S # # # +Optionsbuttongame = [Options]buttongame.png +Optionsbuttongraphics = [Options]buttongraphics.png +Optionsbuttonsound = [Options]buttonsound.png +Optionsbuttonlyrics = [Options]buttonlyrics.png +Optionsbuttondesign = [Options]buttondesign.png +Optionsbuttonmicrophones = [Options]buttonmicrophones.png +Optionsbuttonadvanced = [Options]buttonadvanced.png +Optionsbuttonnetwork = [Options]buttonnetwork.png +Optionsbuttonwebcam = [Options]buttonwebcam.png +Optionsbuttonjukebox = [Options]buttonjukebox.png +Optionsbuttonback = [Options]buttonback.png + +# # # M A I N P A R T Y # # # +ClassicButton =[MainParty]ClassicButton.png +ClassicFreeButton =[MainParty]ClassicFreeButton.png +ChallengeButton =[MainParty]ChallengeButton.png +TournamentButton =[tournament]trophy.png + +# # # P A R T Y # # # +Joker =[party]Joker.png +PartyPlayerButton =[party]playerButton.png +PartyTeamButton1 =[party]roundTeamButton.png +PartyTeamButton2 =[party]playerTeamButton.png +PartyTeamButton3 =[party]winTeamButton1.png +PartyTeamButton4 =[party]winTeamButton2.png +PartyTeamButton5 =[party]winTeamButton3.png +PartyRoundBG1 =[party]roundBG1.png +PartyRoundBG2 =[party]roundBG2.png +PartyRoundBG3 =[party]roundBG3.png +PartyRoundBG4 =[party]roundBG4.png +HDL_Pointer =[party]pointer.png +PartyTeamPoints =[party]teamPoints.png +PartyScoreDeco =[party]scoreDecoration.png +PartyScoreBG1 =[party]scoreBG1.png +PartyScoreBG2 =[party]scoreBG2.png +PartyWinDeco1 =[party]winDecoration.png +PartyWinDeco2 =[party]winDecoration.png +PartyWinDeco3 =[party]winDecoration.png +PartyPlayerSelectBG = [party]playerselectbg.png +PartyTrophy =[tournament]trophy.png +PartyWinner =[tournament]winner.png + +# # # S T A T S # # # +StatInfoBG1 = [stat]InfoBG1.png +StatInfoBG2 = [stat]InfoBG2.png + +# # # N A V I # # # +ButtonP = [button]p.png +ButtonM = [button]m.png +ButtonJ = [button]j.png +ButtonC = [button]c.png +ButtonAlt = [button]alt.png +ButtonAZ = [button]az.png +ButtonEnter = [button]enter.png +ButtonNavi = [button]navi.png +ButtonEsc = [button]esc.png +Button13 = [button]13.png +ButtonIns = [button]ins.png +ButtonDel = [button]del.png + +SongMenuBG = [menu]songMenuBg.png +SongMenuSelectBG = [menu]songMenuSelectBg.png +PopUpBG = [menu]popUpBG.png + + +# # # N O T E S # # # +# sung notes - colorized with playercolors +GrayLeft = [sing]notesLeft.png +GrayMid = [sing]notesMid.png +GrayRight = [sing]notesRight.png +# unsung notes - colorized with playercolors +NotePlainLeft = [sing]notesPlainLeft.png +NotePlainMid = [sing]notesPlainMid.png +NotePlainRight = [sing]notesPlainRight.png +# the glow around unsung/sung notes - colorized with playercolors +NoteBGLeft = [sing]notesBgLeft.png +NoteBGMid = [sing]notesBgMid.png +NoteBGRight = [sing]notesBgRight.png +Pause = [sing]pause.png + +GrayLeftRap = [rap]notesLeft.png +GrayMidRap = [rap]notesMid.png +GrayRightRap = [rap]notesRight.png +NotePlainLeftRap = [rap]notesPlainLeft.png +NotePlainMidRap = [rap]notesPlainMid.png +NotePlainRightRap = [rap]notesPlainRight.png +NoteBGLeftRap = [rap]notesBgLeft.png +NoteBGMidRap = [rap]notesBgMid.png +NoteBGRightRap = [rap]notesBgRight.png + +# # # E F F E C T S # # # +NoteStar = [effect]goldenNoteStar.png +NotePerfectStar = [effect]perfectNoteStar.png + + +# # # dirty helpers # # # +Rectangle = [helper]rectangle.png +ButtonFade = [helper]buttonFade.png +BGFade = [special]bg_fade.png + + +# # # D U E T # # # +LyricIcon_P1 = [sing.player1]lyric_active.png +LyricIconD_P1 = [sing.player1]lyric_inactive.png +LyricIcon_P2 = [sing.player2]lyric_active.png +LyricIconD_P2 = [sing.player2]lyric_inactive.png +LyricIcon_P3 = [sing.player3]lyric_active.png +LyricIconD_P3 = [sing.player3]lyric_inactive.png +LyricIcon_P4 = [sing.player4]lyric_active.png +LyricIconD_P4 = [sing.player4]lyric_inactive.png +LyricIcon_P5 = [sing.player5]lyric_active.png +LyricIconD_P5 = [sing.player5]lyric_inactive.png +LyricIcon_P6 = [sing.player6]lyric_active.png +LyricIconD_P6 = [sing.player6]lyric_inactive.png + + +# # # DOWNLOAD SCORE # # # +ProgressBar = [sing]timeBar.jpg + +# # # J U K E B O X # # # +JukeboxTimeBar1 = [jukebox]timeBarBG.png +JukeboxTimeBar = [jukebox]timeBar.jpg +JukeboxSong = [jukebox]song.png +JukeboxSongBackground = [jukebox]title.png +JukeboxSongListBackground = [jukebox]songlist.png +JukeboxSongbartopBackground= [jukebox]bartop.png +JukeboxSongOptionsBackground = [jukebox]songoptions.png +JukeboxLyric = [jukebox]lyric.png +JukeboxRandom = [jukebox]random.png +JukeboxRepeat = [jukebox]repeat.png +JukeboxCurrentSongBackground = [jukebox]currentsong.png +JukeboxSongListUp = [jukebox]songlistup.png +JukeboxSongListDown = [jukebox]songlistdown.png +JukeboxOptions = [jukebox]options.png +JukeboxClose = [jukebox]close.png +JukeboxFix = [jukebox]pin.png +JukeboxSongMenuTimeBar = [jukebox]timeBarSongMenuBG.png +JukeboxSongMenuPlayPause = [jukebox]songmenuplaypause.png +JukeboxSongMenuNext = [jukebox]songmenunext.png +JukeboxSongMenuPrevious = [jukebox]songmenuprevious.png +JukeboxSongMenuPlaylist = [jukebox]songmenuplaylist.png +JukeboxSongSelection = [jukebox]songSelection.png +JukeboxField = [jukebox]fieldbg.png +JukeboxButton = [jukebox]mainBar.png +JukeboxSelect = [jukebox]selectbg.png + +# # # COLOR PICKER # # # +PickerBG = [color]pickerbg.png +Picker = [color]picker.jpg +Hue = [color]hue.png +HueBar = [color]hue-bar.png +WhiteFade = [color]white-fade.png +BlackFade = [color]black-fade.png +Pointer = [color]pointer.png + +# # # N A M E # # # +AvatarFrame = [name]frame.png +CurrentPlayer = [name]player.png +SelectFrame = [name]select.png +AvatarFrame2 = [score]frame.png + +# # # NO AVATARS # # # +NoAvatar_P1 = [name]noavatar.png +NoAvatar_P2 = [name]noavatar.png +NoAvatar_P3 = [name]noavatar.png +NoAvatar_P4 = [name]noavatar.png +NoAvatar_P5 = [name]noavatar.png +NoAvatar_P6 = [name]noavatar.png + +# # # A B O U T # # # +LogoWeb = [About]logo_web.png +LogoDeluxe = [About]logo_deluxe.png +AboutBG = [About]helperbg2.png + +# # # D E V E L O P E R S # # # +Dhelperbg = [Developers]helperbg.png \ No newline at end of file diff --git a/game/themes/Fantasy/Lines.ini b/game/themes/common/Lines.ini similarity index 76% rename from game/themes/Fantasy/Lines.ini rename to game/themes/common/Lines.ini index 1fffef20..0d843e61 100644 --- a/game/themes/Fantasy/Lines.ini +++ b/game/themes/common/Lines.ini @@ -1,12 +1,11 @@ - ################################### # theme developed by Daniel20 # -# for http:\\ultrastar-es.org # +# for https:\\ultrastar-es.org # # visit us to get songs, plugins, # -# themes and more... # -# # -# *some icons belongs to # -# http://www.iconfinder.com/ # +# themes and more... # +# # +# *some icons belongs to # +# https://www.iconfinder.com/ # # under Creative Common license # ################################### @@ -26,7 +25,6 @@ interface_selectbg_search = [interface]selectbg_search.png interface_dialog_background = [interface]dialog_background.png interface_dialog_background2 = [interface]dialog_background2.png interface_dialog_backgroundtop = [interface]dialog_backgroundtop.png -interface_dialog_backgroundtop2 = [interface]dialog_backgroundtop2.png Cursor = [interface]cursor.png Cursor_Pressed = [interface]cursor_pressed.png @@ -39,7 +37,8 @@ icon_song_search = [icon]song_search.png icon_song_video = [icon]song_video.png icon_song_medley = [icon]song_medley.png icon_song_calcmedley = [icon]song_calcmedley.png -icon_song_duet = [icon]song_duet.png +icon_song_duet = [icon]song_duet.png +icon_song_rap = [icon]song_rap.png loadicon = [load]logo.png loadbaricon = [load]bar.png @@ -69,26 +68,8 @@ SongBG = [bg-main]lines.webm ScoreScreenBG = [bg-main]lines.webm Top5BG = [bg-main]lines.webm OptionsBG = [bg-main]lines.webm -EditBG = [bg-main]lines.webm -EditSubBG = [bg-main]lines.webm PartyBG = [bg-main]lines.webm -#Icons on screen -SongCD = [icon]cd.png -MainIcon = [main]buttonsolo.png -MainSearch = [icon]search.png -IconOption = [main]buttonoption.png -IconEdit = [main]buttonedit.png -IconSongMenu = [icon]songmenu.png -ScoreIcon = [icon]score.png -PartyIcon = [main]buttonparty.png -StatIcon = [main]buttonstats.png -VideoIcon = [icon]video.png - -IconError = [icon]error.png -IconQuestion = [icon]question.png - - # # # S O N G S E L E C E T # # # SongSelection1up = [main]songSelection1up.png SongSelection1dn = [main]songSelection1dn.png @@ -97,7 +78,7 @@ SongSelection2 = [main]songSelection2.png SongSelection3 = [main]songSelection3.png SongSelection4 = [main]songSelection4.png SongSelection5 = [main]songSelection5.png -SongCover = [main]songCover.jpg +SongCover = ../../covers/Common/NoCover.jpg SongMessage = [song]message.png SongDuetSinger = [song]duetsinger.png SongDuetSinger2 = [song]duetsinger2.png @@ -106,7 +87,7 @@ SongDuetSinger3 = [song]duetsinger3.png # # # S I N G # # # #the bar where the lyrics reside LyricBar = [sing]textBar.png -LyricBarDuet = [sing]textBarDuet.png +LyricBarDuet = [sing]textBar.png #this one slides in, to tell you that singing starts immediately LyricHelpBar = [sing]lyricsHelpBar.png @@ -116,7 +97,7 @@ TimeBar1 = [sing]timeBarBG.png #the time progress bar (not skinned in this theme :P ) TimeBar = [sing]timeBar.jpg - + #linebonus, the thing that pop ups at the score LineBonusBack = [sing]lineBonusPopUp.png @@ -164,16 +145,6 @@ ScoreEndCap = [score]endcap.png ScoreLine = [score]line.png PlayerNumberBox = [main]playerNumberBox.png -PlayerIDBox01 = [sing.player1]lyric_active.png -PlayerIDBox02 = [sing.player2]lyric_active.png -PlayerIDBox03 = [sing.player3]lyric_active.png -PlayerIDBox04 = [sing.player4]lyric_active.png -PlayerIDBox05 = [sing.player5]lyric_active.png -PlayerIDBox06 = [sing.player6]lyric_active.png - -# these icons are part of the tango icon set -# licensed under Creative Commons Attribution Share-Alike license -# http://tango.freedesktop.org Rating_0 = [score]rating_0.png Rating_1 = [score]rating_1.png Rating_2 = [score]rating_2.png @@ -182,18 +153,19 @@ Rating_4 = [score]rating_4.png Rating_5 = [score]rating_5.png Rating_6 = [score]rating_6.png Rating_7 = [score]rating_7.png + # # # O P T I O N S # # # -Optionsbuttongame = [Options]buttongame.png -Optionsbuttongraphics = [Options]buttongraphics.png -Optionsbuttonsound = [Options]buttonsound.png -Optionsbuttonlyrics = [Options]buttonlyrics.png -Optionsbuttondesign = [Options]buttondesign.png -Optionsbuttonrecord = [Options]buttonduet.png -Optionsbuttonadvanced = [Options]buttonadvanced.png -Optionsbuttonnetwork = [Options]buttonnetwork.png -Optionsbuttonwebcam = [Options]buttonwebcam.png -Optionsbuttonjukebox = [Options]buttonjukebox.png -Optionsbuttonback = [Options]buttonback.png +Optionsbuttongame = [Options]buttongame.png +Optionsbuttongraphics = [Options]buttongraphics.png +Optionsbuttonsound = [Options]buttonsound.png +Optionsbuttonlyrics = [Options]buttonlyrics.png +Optionsbuttondesign = [Options]buttondesign.png +Optionsbuttonmicrophones = [Options]buttonmicrophones.png +Optionsbuttonadvanced = [Options]buttonadvanced.png +Optionsbuttonnetwork = [Options]buttonnetwork.png +Optionsbuttonwebcam = [Options]buttonwebcam.png +Optionsbuttonjukebox = [Options]buttonjukebox.png +Optionsbuttonback = [Options]buttonback.png # # # M A I N P A R T Y # # # ClassicButton =[MainParty]ClassicButton.png @@ -201,8 +173,6 @@ ClassicFreeButton =[MainParty]ClassicFreeButton.png ChallengeButton =[MainParty]ChallengeButton.png TournamentButton =[tournament]trophy.png - - # # # P A R T Y # # # Joker =[party]Joker.png PartyPlayerButton =[party]playerButton.png @@ -228,11 +198,8 @@ PartyTrophy =[tournament]trophy.png PartyWinner =[tournament]winner.png # # # S T A T S # # # -StatMainBG1 = [stat]mainBG1.png -StatMainBG2 = [stat]mainBG2.png -StatMainBG3 = [stat]mainBG3.png -StatDetailBG1 = [stat]detailBG1.png - +StatInfoBG1 = [stat]InfoBG1.png +StatInfoBG2 = [stat]InfoBG2.png # # # N A V I # # # ButtonP = [button]p.png @@ -248,7 +215,6 @@ Button13 = [button]13.png ButtonIns = [button]ins.png ButtonDel = [button]del.png -JumpToBG = [menu]jumpToBg.png SongMenuBG = [menu]songMenuBg.png SongMenuSelectBG = [menu]songMenuSelectBg.png PopUpBG = [menu]popUpBG.png @@ -269,6 +235,15 @@ NoteBGMid = [sing]notesBgMid.png NoteBGRight = [sing]notesBgRight.png Pause = [sing]pause.png +GrayLeftRap = [rap]notesLeft.png +GrayMidRap = [rap]notesMid.png +GrayRightRap = [rap]notesRight.png +NotePlainLeftRap = [rap]notesPlainLeft.png +NotePlainMidRap = [rap]notesPlainMid.png +NotePlainRightRap = [rap]notesPlainRight.png +NoteBGLeftRap = [rap]notesBgLeft.png +NoteBGMidRap = [rap]notesBgMid.png +NoteBGRightRap = [rap]notesBgRight.png # # # E F F E C T S # # # NoteStar = [effect]goldenNoteStar.png @@ -321,20 +296,11 @@ JukeboxSongMenuPlayPause = [jukebox]songmenuplaypause.png JukeboxSongMenuNext = [jukebox]songmenunext.png JukeboxSongMenuPrevious = [jukebox]songmenuprevious.png JukeboxSongMenuPlaylist = [jukebox]songmenuplaylist.png +JukeboxSongSelection = [jukebox]songSelection.png JukeboxField = [jukebox]fieldbg.png JukeboxButton = [jukebox]mainBar.png JukeboxSelect = [jukebox]selectbg.png -# # # E D I T # # # -PlayOnly = [editsub]play.png -playwithnote = [editsub]play-with-note.png -playnote = [editsub]play-note.png -nextseq = [editsub]next-seq.png -previousseq = [editsub]previous-seq.png -undo = [editsub]undo.png -gold = [editsub]gold.png -freestyle = [editsub]freestyle.png - # # # COLOR PICKER # # # PickerBG = [color]pickerbg.png Picker = [color]picker.jpg @@ -351,23 +317,17 @@ SelectFrame = [name]select.png AvatarFrame2 = [score]frame.png # # # NO AVATARS # # # -NoAvatar_P1 = [name]noavatarP1.png -NoAvatar_P2 = [name]noavatarP2.png -NoAvatar_P3 = [name]noavatarP3.png -NoAvatar_P4 = [name]noavatarP4.png -NoAvatar_P5 = [name]noavatarP5.png -NoAvatar_P6 = [name]noavatarP6.png -NoAvatar_P7 = [name]noavatarP1.png -NoAvatar_P8 = [name]noavatarP2.png -NoAvatar_P9 = [name]noavatarP3.png -NoAvatar_P10 = [name]noavatarP4.png -NoAvatar_P11 = [name]noavatarP5.png -NoAvatar_P12 = [name]noavatarP6.png +NoAvatar_P1 = [name]noavatar.png +NoAvatar_P2 = [name]noavatar.png +NoAvatar_P3 = [name]noavatar.png +NoAvatar_P4 = [name]noavatar.png +NoAvatar_P5 = [name]noavatar.png +NoAvatar_P6 = [name]noavatar.png # # # A B O U T # # # LogoWeb = [About]logo_web.png LogoDeluxe = [About]logo_deluxe.png -helperbg = [About]helperbg.png +AboutBG = [About]helperbg2.png # # # D E V E L O P E R S # # # Dhelperbg = [Developers]helperbg.png \ No newline at end of file diff --git a/game/themes/Fantasy/Love.ini b/game/themes/common/Love.ini similarity index 76% rename from game/themes/Fantasy/Love.ini rename to game/themes/common/Love.ini index 9e815303..9a21d5b4 100644 --- a/game/themes/Fantasy/Love.ini +++ b/game/themes/common/Love.ini @@ -1,12 +1,11 @@ - ################################### # theme developed by Daniel20 # -# for http:\\ultrastar-es.org # +# for https:\\ultrastar-es.org # # visit us to get songs, plugins, # -# themes and more... # -# # -# *some icons belongs to # -# http://www.iconfinder.com/ # +# themes and more... # +# # +# *some icons belongs to # +# https://www.iconfinder.com/ # # under Creative Common license # ################################### @@ -26,7 +25,6 @@ interface_selectbg_search = [interface]selectbg_search.png interface_dialog_background = [interface]dialog_background.png interface_dialog_background2 = [interface]dialog_background2.png interface_dialog_backgroundtop = [interface]dialog_backgroundtop.png -interface_dialog_backgroundtop2 = [interface]dialog_backgroundtop2.png Cursor = [interface]cursor.png Cursor_Pressed = [interface]cursor_pressed.png @@ -39,7 +37,8 @@ icon_song_search = [icon]song_search.png icon_song_video = [icon]song_video.png icon_song_medley = [icon]song_medley.png icon_song_calcmedley = [icon]song_calcmedley.png -icon_song_duet = [icon]song_duet.png +icon_song_duet = [icon]song_duet.png +icon_song_rap = [icon]song_rap.png loadicon = [load]logo.png loadbaricon = [load]bar.png @@ -69,26 +68,8 @@ SongBG = [bg-main]love.webm ScoreScreenBG = [bg-main]love.webm Top5BG = [bg-main]love.webm OptionsBG = [bg-main]love.webm -EditBG = [bg-main]love.webm -EditSubBG = [bg-main]love.webm PartyBG = [bg-main]love.webm -#Icons on screen -SongCD = [icon]cd.png -MainIcon = [main]buttonsolo.png -MainSearch = [icon]search.png -IconOption = [main]buttonoption.png -IconEdit = [main]buttonedit.png -IconSongMenu = [icon]songmenu.png -ScoreIcon = [icon]score.png -PartyIcon = [main]buttonparty.png -StatIcon = [main]buttonstats.png -VideoIcon = [icon]video.png - -IconError = [icon]error.png -IconQuestion = [icon]question.png - - # # # S O N G S E L E C E T # # # SongSelection1up = [main]songSelection1up.png SongSelection1dn = [main]songSelection1dn.png @@ -97,7 +78,7 @@ SongSelection2 = [main]songSelection2.png SongSelection3 = [main]songSelection3.png SongSelection4 = [main]songSelection4.png SongSelection5 = [main]songSelection5.png -SongCover = [main]songCover.jpg +SongCover = ../../covers/Common/NoCover.jpg SongMessage = [song]message.png SongDuetSinger = [song]duetsinger.png SongDuetSinger2 = [song]duetsinger2.png @@ -106,7 +87,7 @@ SongDuetSinger3 = [song]duetsinger3.png # # # S I N G # # # #the bar where the lyrics reside LyricBar = [sing]textBar.png -LyricBarDuet = [sing]textBarDuet.png +LyricBarDuet = [sing]textBar.png #this one slides in, to tell you that singing starts immediately LyricHelpBar = [sing]lyricsHelpBar.png @@ -116,7 +97,7 @@ TimeBar1 = [sing]timeBarBG.png #the time progress bar (not skinned in this theme :P ) TimeBar = [sing]timeBar.jpg - + #linebonus, the thing that pop ups at the score LineBonusBack = [sing]lineBonusPopUp.png @@ -164,16 +145,6 @@ ScoreEndCap = [score]endcap.png ScoreLine = [score]line.png PlayerNumberBox = [main]playerNumberBox.png -PlayerIDBox01 = [sing.player1]lyric_active.png -PlayerIDBox02 = [sing.player2]lyric_active.png -PlayerIDBox03 = [sing.player3]lyric_active.png -PlayerIDBox04 = [sing.player4]lyric_active.png -PlayerIDBox05 = [sing.player5]lyric_active.png -PlayerIDBox06 = [sing.player6]lyric_active.png - -# these icons are part of the tango icon set -# licensed under Creative Commons Attribution Share-Alike license -# http://tango.freedesktop.org Rating_0 = [score]rating_0.png Rating_1 = [score]rating_1.png Rating_2 = [score]rating_2.png @@ -182,18 +153,19 @@ Rating_4 = [score]rating_4.png Rating_5 = [score]rating_5.png Rating_6 = [score]rating_6.png Rating_7 = [score]rating_7.png + # # # O P T I O N S # # # -Optionsbuttongame = [Options]buttongame.png -Optionsbuttongraphics = [Options]buttongraphics.png -Optionsbuttonsound = [Options]buttonsound.png -Optionsbuttonlyrics = [Options]buttonlyrics.png -Optionsbuttondesign = [Options]buttondesign.png -Optionsbuttonrecord = [Options]buttonduet.png -Optionsbuttonadvanced = [Options]buttonadvanced.png -Optionsbuttonnetwork = [Options]buttonnetwork.png -Optionsbuttonwebcam = [Options]buttonwebcam.png -Optionsbuttonjukebox = [Options]buttonjukebox.png -Optionsbuttonback = [Options]buttonback.png +Optionsbuttongame = [Options]buttongame.png +Optionsbuttongraphics = [Options]buttongraphics.png +Optionsbuttonsound = [Options]buttonsound.png +Optionsbuttonlyrics = [Options]buttonlyrics.png +Optionsbuttondesign = [Options]buttondesign.png +Optionsbuttonmicrophones = [Options]buttonmicrophones.png +Optionsbuttonadvanced = [Options]buttonadvanced.png +Optionsbuttonnetwork = [Options]buttonnetwork.png +Optionsbuttonwebcam = [Options]buttonwebcam.png +Optionsbuttonjukebox = [Options]buttonjukebox.png +Optionsbuttonback = [Options]buttonback.png # # # M A I N P A R T Y # # # ClassicButton =[MainParty]ClassicButton.png @@ -201,8 +173,6 @@ ClassicFreeButton =[MainParty]ClassicFreeButton.png ChallengeButton =[MainParty]ChallengeButton.png TournamentButton =[tournament]trophy.png - - # # # P A R T Y # # # Joker =[party]Joker.png PartyPlayerButton =[party]playerButton.png @@ -228,11 +198,8 @@ PartyTrophy =[tournament]trophy.png PartyWinner =[tournament]winner.png # # # S T A T S # # # -StatMainBG1 = [stat]mainBG1.png -StatMainBG2 = [stat]mainBG2.png -StatMainBG3 = [stat]mainBG3.png -StatDetailBG1 = [stat]detailBG1.png - +StatInfoBG1 = [stat]InfoBG1.png +StatInfoBG2 = [stat]InfoBG2.png # # # N A V I # # # ButtonP = [button]p.png @@ -248,7 +215,6 @@ Button13 = [button]13.png ButtonIns = [button]ins.png ButtonDel = [button]del.png -JumpToBG = [menu]jumpToBg.png SongMenuBG = [menu]songMenuBg.png SongMenuSelectBG = [menu]songMenuSelectBg.png PopUpBG = [menu]popUpBG.png @@ -269,6 +235,15 @@ NoteBGMid = [sing]notesBgMid.png NoteBGRight = [sing]notesBgRight.png Pause = [sing]pause.png +GrayLeftRap = [rap]notesLeft.png +GrayMidRap = [rap]notesMid.png +GrayRightRap = [rap]notesRight.png +NotePlainLeftRap = [rap]notesPlainLeft.png +NotePlainMidRap = [rap]notesPlainMid.png +NotePlainRightRap = [rap]notesPlainRight.png +NoteBGLeftRap = [rap]notesBgLeft.png +NoteBGMidRap = [rap]notesBgMid.png +NoteBGRightRap = [rap]notesBgRight.png # # # E F F E C T S # # # NoteStar = [effect]goldenNoteStar.png @@ -321,20 +296,11 @@ JukeboxSongMenuPlayPause = [jukebox]songmenuplaypause.png JukeboxSongMenuNext = [jukebox]songmenunext.png JukeboxSongMenuPrevious = [jukebox]songmenuprevious.png JukeboxSongMenuPlaylist = [jukebox]songmenuplaylist.png +JukeboxSongSelection = [jukebox]songSelection.png JukeboxField = [jukebox]fieldbg.png JukeboxButton = [jukebox]mainBar.png JukeboxSelect = [jukebox]selectbg.png -# # # E D I T # # # -PlayOnly = [editsub]play.png -playwithnote = [editsub]play-with-note.png -playnote = [editsub]play-note.png -nextseq = [editsub]next-seq.png -previousseq = [editsub]previous-seq.png -undo = [editsub]undo.png -gold = [editsub]gold.png -freestyle = [editsub]freestyle.png - # # # COLOR PICKER # # # PickerBG = [color]pickerbg.png Picker = [color]picker.jpg @@ -351,23 +317,17 @@ SelectFrame = [name]select.png AvatarFrame2 = [score]frame.png # # # NO AVATARS # # # -NoAvatar_P1 = [name]noavatarP1.png -NoAvatar_P2 = [name]noavatarP2.png -NoAvatar_P3 = [name]noavatarP3.png -NoAvatar_P4 = [name]noavatarP4.png -NoAvatar_P5 = [name]noavatarP5.png -NoAvatar_P6 = [name]noavatarP6.png -NoAvatar_P7 = [name]noavatarP1.png -NoAvatar_P8 = [name]noavatarP2.png -NoAvatar_P9 = [name]noavatarP3.png -NoAvatar_P10 = [name]noavatarP4.png -NoAvatar_P11 = [name]noavatarP5.png -NoAvatar_P12 = [name]noavatarP6.png +NoAvatar_P1 = [name]noavatar.png +NoAvatar_P2 = [name]noavatar.png +NoAvatar_P3 = [name]noavatar.png +NoAvatar_P4 = [name]noavatar.png +NoAvatar_P5 = [name]noavatar.png +NoAvatar_P6 = [name]noavatar.png # # # A B O U T # # # LogoWeb = [About]logo_web.png LogoDeluxe = [About]logo_deluxe.png -helperbg = [About]helperbg.png +AboutBG = [About]helperbg2.png # # # D E V E L O P E R S # # # Dhelperbg = [Developers]helperbg.png \ No newline at end of file diff --git a/game/themes/Fantasy/Magma.ini b/game/themes/common/Magma.ini similarity index 76% rename from game/themes/Fantasy/Magma.ini rename to game/themes/common/Magma.ini index 67d53894..fc447695 100644 --- a/game/themes/Fantasy/Magma.ini +++ b/game/themes/common/Magma.ini @@ -1,12 +1,11 @@ - ################################### # theme developed by Daniel20 # -# for http:\\ultrastar-es.org # +# for https:\\ultrastar-es.org # # visit us to get songs, plugins, # -# themes and more... # -# # -# *some icons belongs to # -# http://www.iconfinder.com/ # +# themes and more... # +# # +# *some icons belongs to # +# https://www.iconfinder.com/ # # under Creative Common license # ################################### @@ -26,7 +25,6 @@ interface_selectbg_search = [interface]selectbg_search.png interface_dialog_background = [interface]dialog_background.png interface_dialog_background2 = [interface]dialog_background2.png interface_dialog_backgroundtop = [interface]dialog_backgroundtop.png -interface_dialog_backgroundtop2 = [interface]dialog_backgroundtop2.png Cursor = [interface]cursor.png Cursor_Pressed = [interface]cursor_pressed.png @@ -39,7 +37,8 @@ icon_song_search = [icon]song_search.png icon_song_video = [icon]song_video.png icon_song_medley = [icon]song_medley.png icon_song_calcmedley = [icon]song_calcmedley.png -icon_song_duet = [icon]song_duet.png +icon_song_duet = [icon]song_duet.png +icon_song_rap = [icon]song_rap.png loadicon = [load]logo.png loadbaricon = [load]bar.png @@ -69,26 +68,8 @@ SongBG = [bg-main]magma.webm ScoreScreenBG = [bg-main]magma.webm Top5BG = [bg-main]magma.webm OptionsBG = [bg-main]magma.webm -EditBG = [bg-main]magma.webm -EditSubBG = [bg-main]magma.webm PartyBG = [bg-main]magma.webm -#Icons on screen -SongCD = [icon]cd.png -MainIcon = [main]buttonsolo.png -MainSearch = [icon]search.png -IconOption = [main]buttonoption.png -IconEdit = [main]buttonedit.png -IconSongMenu = [icon]songmenu.png -ScoreIcon = [icon]score.png -PartyIcon = [main]buttonparty.png -StatIcon = [main]buttonstats.png -VideoIcon = [icon]video.png - -IconError = [icon]error.png -IconQuestion = [icon]question.png - - # # # S O N G S E L E C E T # # # SongSelection1up = [main]songSelection1up.png SongSelection1dn = [main]songSelection1dn.png @@ -97,7 +78,7 @@ SongSelection2 = [main]songSelection2.png SongSelection3 = [main]songSelection3.png SongSelection4 = [main]songSelection4.png SongSelection5 = [main]songSelection5.png -SongCover = [main]songCover.jpg +SongCover = ../../covers/Common/NoCover.jpg SongMessage = [song]message.png SongDuetSinger = [song]duetsinger.png SongDuetSinger2 = [song]duetsinger2.png @@ -106,7 +87,7 @@ SongDuetSinger3 = [song]duetsinger3.png # # # S I N G # # # #the bar where the lyrics reside LyricBar = [sing]textBar.png -LyricBarDuet = [sing]textBarDuet.png +LyricBarDuet = [sing]textBar.png #this one slides in, to tell you that singing starts immediately LyricHelpBar = [sing]lyricsHelpBar.png @@ -116,7 +97,7 @@ TimeBar1 = [sing]timeBarBG.png #the time progress bar (not skinned in this theme :P ) TimeBar = [sing]timeBar.jpg - + #linebonus, the thing that pop ups at the score LineBonusBack = [sing]lineBonusPopUp.png @@ -164,16 +145,6 @@ ScoreEndCap = [score]endcap.png ScoreLine = [score]line.png PlayerNumberBox = [main]playerNumberBox.png -PlayerIDBox01 = [sing.player1]lyric_active.png -PlayerIDBox02 = [sing.player2]lyric_active.png -PlayerIDBox03 = [sing.player3]lyric_active.png -PlayerIDBox04 = [sing.player4]lyric_active.png -PlayerIDBox05 = [sing.player5]lyric_active.png -PlayerIDBox06 = [sing.player6]lyric_active.png - -# these icons are part of the tango icon set -# licensed under Creative Commons Attribution Share-Alike license -# http://tango.freedesktop.org Rating_0 = [score]rating_0.png Rating_1 = [score]rating_1.png Rating_2 = [score]rating_2.png @@ -182,18 +153,19 @@ Rating_4 = [score]rating_4.png Rating_5 = [score]rating_5.png Rating_6 = [score]rating_6.png Rating_7 = [score]rating_7.png + # # # O P T I O N S # # # -Optionsbuttongame = [Options]buttongame.png -Optionsbuttongraphics = [Options]buttongraphics.png -Optionsbuttonsound = [Options]buttonsound.png -Optionsbuttonlyrics = [Options]buttonlyrics.png -Optionsbuttondesign = [Options]buttondesign.png -Optionsbuttonrecord = [Options]buttonduet.png -Optionsbuttonadvanced = [Options]buttonadvanced.png -Optionsbuttonnetwork = [Options]buttonnetwork.png -Optionsbuttonwebcam = [Options]buttonwebcam.png -Optionsbuttonjukebox = [Options]buttonjukebox.png -Optionsbuttonback = [Options]buttonback.png +Optionsbuttongame = [Options]buttongame.png +Optionsbuttongraphics = [Options]buttongraphics.png +Optionsbuttonsound = [Options]buttonsound.png +Optionsbuttonlyrics = [Options]buttonlyrics.png +Optionsbuttondesign = [Options]buttondesign.png +Optionsbuttonmicrophones = [Options]buttonmicrophones.png +Optionsbuttonadvanced = [Options]buttonadvanced.png +Optionsbuttonnetwork = [Options]buttonnetwork.png +Optionsbuttonwebcam = [Options]buttonwebcam.png +Optionsbuttonjukebox = [Options]buttonjukebox.png +Optionsbuttonback = [Options]buttonback.png # # # M A I N P A R T Y # # # ClassicButton =[MainParty]ClassicButton.png @@ -201,8 +173,6 @@ ClassicFreeButton =[MainParty]ClassicFreeButton.png ChallengeButton =[MainParty]ChallengeButton.png TournamentButton =[tournament]trophy.png - - # # # P A R T Y # # # Joker =[party]Joker.png PartyPlayerButton =[party]playerButton.png @@ -228,11 +198,8 @@ PartyTrophy =[tournament]trophy.png PartyWinner =[tournament]winner.png # # # S T A T S # # # -StatMainBG1 = [stat]mainBG1.png -StatMainBG2 = [stat]mainBG2.png -StatMainBG3 = [stat]mainBG3.png -StatDetailBG1 = [stat]detailBG1.png - +StatInfoBG1 = [stat]InfoBG1.png +StatInfoBG2 = [stat]InfoBG2.png # # # N A V I # # # ButtonP = [button]p.png @@ -248,7 +215,6 @@ Button13 = [button]13.png ButtonIns = [button]ins.png ButtonDel = [button]del.png -JumpToBG = [menu]jumpToBg.png SongMenuBG = [menu]songMenuBg.png SongMenuSelectBG = [menu]songMenuSelectBg.png PopUpBG = [menu]popUpBG.png @@ -269,6 +235,15 @@ NoteBGMid = [sing]notesBgMid.png NoteBGRight = [sing]notesBgRight.png Pause = [sing]pause.png +GrayLeftRap = [rap]notesLeft.png +GrayMidRap = [rap]notesMid.png +GrayRightRap = [rap]notesRight.png +NotePlainLeftRap = [rap]notesPlainLeft.png +NotePlainMidRap = [rap]notesPlainMid.png +NotePlainRightRap = [rap]notesPlainRight.png +NoteBGLeftRap = [rap]notesBgLeft.png +NoteBGMidRap = [rap]notesBgMid.png +NoteBGRightRap = [rap]notesBgRight.png # # # E F F E C T S # # # NoteStar = [effect]goldenNoteStar.png @@ -321,20 +296,11 @@ JukeboxSongMenuPlayPause = [jukebox]songmenuplaypause.png JukeboxSongMenuNext = [jukebox]songmenunext.png JukeboxSongMenuPrevious = [jukebox]songmenuprevious.png JukeboxSongMenuPlaylist = [jukebox]songmenuplaylist.png +JukeboxSongSelection = [jukebox]songSelection.png JukeboxField = [jukebox]fieldbg.png JukeboxButton = [jukebox]mainBar.png JukeboxSelect = [jukebox]selectbg.png -# # # E D I T # # # -PlayOnly = [editsub]play.png -playwithnote = [editsub]play-with-note.png -playnote = [editsub]play-note.png -nextseq = [editsub]next-seq.png -previousseq = [editsub]previous-seq.png -undo = [editsub]undo.png -gold = [editsub]gold.png -freestyle = [editsub]freestyle.png - # # # COLOR PICKER # # # PickerBG = [color]pickerbg.png Picker = [color]picker.jpg @@ -351,23 +317,17 @@ SelectFrame = [name]select.png AvatarFrame2 = [score]frame.png # # # NO AVATARS # # # -NoAvatar_P1 = [name]noavatarP1.png -NoAvatar_P2 = [name]noavatarP2.png -NoAvatar_P3 = [name]noavatarP3.png -NoAvatar_P4 = [name]noavatarP4.png -NoAvatar_P5 = [name]noavatarP5.png -NoAvatar_P6 = [name]noavatarP6.png -NoAvatar_P7 = [name]noavatarP1.png -NoAvatar_P8 = [name]noavatarP2.png -NoAvatar_P9 = [name]noavatarP3.png -NoAvatar_P10 = [name]noavatarP4.png -NoAvatar_P11 = [name]noavatarP5.png -NoAvatar_P12 = [name]noavatarP6.png +NoAvatar_P1 = [name]noavatar.png +NoAvatar_P2 = [name]noavatar.png +NoAvatar_P3 = [name]noavatar.png +NoAvatar_P4 = [name]noavatar.png +NoAvatar_P5 = [name]noavatar.png +NoAvatar_P6 = [name]noavatar.png # # # A B O U T # # # LogoWeb = [About]logo_web.png LogoDeluxe = [About]logo_deluxe.png -helperbg = [About]helperbg.png +AboutBG = [About]helperbg2.png # # # D E V E L O P E R S # # # Dhelperbg = [Developers]helperbg.png \ No newline at end of file diff --git a/game/themes/Fantasy/Space.ini b/game/themes/common/Space.ini similarity index 76% rename from game/themes/Fantasy/Space.ini rename to game/themes/common/Space.ini index 47613867..26824a82 100644 --- a/game/themes/Fantasy/Space.ini +++ b/game/themes/common/Space.ini @@ -1,12 +1,11 @@ - ################################### # theme developed by Daniel20 # -# for http:\\ultrastar-es.org # +# for https:\\ultrastar-es.org # # visit us to get songs, plugins, # -# themes and more... # -# # -# *some icons belongs to # -# http://www.iconfinder.com/ # +# themes and more... # +# # +# *some icons belongs to # +# https://www.iconfinder.com/ # # under Creative Common license # ################################### @@ -26,7 +25,6 @@ interface_selectbg_search = [interface]selectbg_search.png interface_dialog_background = [interface]dialog_background.png interface_dialog_background2 = [interface]dialog_background2.png interface_dialog_backgroundtop = [interface]dialog_backgroundtop.png -interface_dialog_backgroundtop2 = [interface]dialog_backgroundtop2.png Cursor = [interface]cursor.png Cursor_Pressed = [interface]cursor_pressed.png @@ -39,7 +37,8 @@ icon_song_search = [icon]song_search.png icon_song_video = [icon]song_video.png icon_song_medley = [icon]song_medley.png icon_song_calcmedley = [icon]song_calcmedley.png -icon_song_duet = [icon]song_duet.png +icon_song_duet = [icon]song_duet.png +icon_song_rap = [icon]song_rap.png loadicon = [load]logo.png loadbaricon = [load]bar.png @@ -69,26 +68,8 @@ SongBG = [bg-main]space.webm ScoreScreenBG = [bg-main]space.webm Top5BG = [bg-main]space.webm OptionsBG = [bg-main]space.webm -EditBG = [bg-main]space.webm -EditSubBG = [bg-main]space.webm PartyBG = [bg-main]space.webm -#Icons on screen -SongCD = [icon]cd.png -MainIcon = [main]buttonsolo.png -MainSearch = [icon]search.png -IconOption = [main]buttonoption.png -IconEdit = [main]buttonedit.png -IconSongMenu = [icon]songmenu.png -ScoreIcon = [icon]score.png -PartyIcon = [main]buttonparty.png -StatIcon = [main]buttonstats.png -VideoIcon = [icon]video.png - -IconError = [icon]error.png -IconQuestion = [icon]question.png - - # # # S O N G S E L E C E T # # # SongSelection1up = [main]songSelection1up.png SongSelection1dn = [main]songSelection1dn.png @@ -97,7 +78,7 @@ SongSelection2 = [main]songSelection2.png SongSelection3 = [main]songSelection3.png SongSelection4 = [main]songSelection4.png SongSelection5 = [main]songSelection5.png -SongCover = [main]songCover.jpg +SongCover = ../../covers/Common/NoCover.jpg SongMessage = [song]message.png SongDuetSinger = [song]duetsinger.png SongDuetSinger2 = [song]duetsinger2.png @@ -106,7 +87,7 @@ SongDuetSinger3 = [song]duetsinger3.png # # # S I N G # # # #the bar where the lyrics reside LyricBar = [sing]textBar.png -LyricBarDuet = [sing]textBarDuet.png +LyricBarDuet = [sing]textBar.png #this one slides in, to tell you that singing starts immediately LyricHelpBar = [sing]lyricsHelpBar.png @@ -116,7 +97,7 @@ TimeBar1 = [sing]timeBarBG.png #the time progress bar (not skinned in this theme :P ) TimeBar = [sing]timeBar.jpg - + #linebonus, the thing that pop ups at the score LineBonusBack = [sing]lineBonusPopUp.png @@ -164,16 +145,6 @@ ScoreEndCap = [score]endcap.png ScoreLine = [score]line.png PlayerNumberBox = [main]playerNumberBox.png -PlayerIDBox01 = [sing.player1]lyric_active.png -PlayerIDBox02 = [sing.player2]lyric_active.png -PlayerIDBox03 = [sing.player3]lyric_active.png -PlayerIDBox04 = [sing.player4]lyric_active.png -PlayerIDBox05 = [sing.player5]lyric_active.png -PlayerIDBox06 = [sing.player6]lyric_active.png - -# these icons are part of the tango icon set -# licensed under Creative Commons Attribution Share-Alike license -# http://tango.freedesktop.org Rating_0 = [score]rating_0.png Rating_1 = [score]rating_1.png Rating_2 = [score]rating_2.png @@ -182,18 +153,19 @@ Rating_4 = [score]rating_4.png Rating_5 = [score]rating_5.png Rating_6 = [score]rating_6.png Rating_7 = [score]rating_7.png + # # # O P T I O N S # # # -Optionsbuttongame = [Options]buttongame.png -Optionsbuttongraphics = [Options]buttongraphics.png -Optionsbuttonsound = [Options]buttonsound.png -Optionsbuttonlyrics = [Options]buttonlyrics.png -Optionsbuttondesign = [Options]buttondesign.png -Optionsbuttonrecord = [Options]buttonduet.png -Optionsbuttonadvanced = [Options]buttonadvanced.png -Optionsbuttonnetwork = [Options]buttonnetwork.png -Optionsbuttonwebcam = [Options]buttonwebcam.png -Optionsbuttonjukebox = [Options]buttonjukebox.png -Optionsbuttonback = [Options]buttonback.png +Optionsbuttongame = [Options]buttongame.png +Optionsbuttongraphics = [Options]buttongraphics.png +Optionsbuttonsound = [Options]buttonsound.png +Optionsbuttonlyrics = [Options]buttonlyrics.png +Optionsbuttondesign = [Options]buttondesign.png +Optionsbuttonrecord = [Options]buttonduet.png +Optionsbuttonadvanced = [Options]buttonadvanced.png +Optionsbuttonnetwork = [Options]buttonnetwork.png +Optionsbuttonwebcam = [Options]buttonwebcam.png +Optionsbuttonjukebox = [Options]buttonjukebox.png +Optionsbuttonback = [Options]buttonback.png # # # M A I N P A R T Y # # # ClassicButton =[MainParty]ClassicButton.png @@ -201,8 +173,6 @@ ClassicFreeButton =[MainParty]ClassicFreeButton.png ChallengeButton =[MainParty]ChallengeButton.png TournamentButton =[tournament]trophy.png - - # # # P A R T Y # # # Joker =[party]Joker.png PartyPlayerButton =[party]playerButton.png @@ -228,11 +198,8 @@ PartyTrophy =[tournament]trophy.png PartyWinner =[tournament]winner.png # # # S T A T S # # # -StatMainBG1 = [stat]mainBG1.png -StatMainBG2 = [stat]mainBG2.png -StatMainBG3 = [stat]mainBG3.png -StatDetailBG1 = [stat]detailBG1.png - +StatInfoBG1 = [stat]InfoBG1.png +StatInfoBG2 = [stat]InfoBG2.png # # # N A V I # # # ButtonP = [button]p.png @@ -248,7 +215,6 @@ Button13 = [button]13.png ButtonIns = [button]ins.png ButtonDel = [button]del.png -JumpToBG = [menu]jumpToBg.png SongMenuBG = [menu]songMenuBg.png SongMenuSelectBG = [menu]songMenuSelectBg.png PopUpBG = [menu]popUpBG.png @@ -269,6 +235,15 @@ NoteBGMid = [sing]notesBgMid.png NoteBGRight = [sing]notesBgRight.png Pause = [sing]pause.png +GrayLeftRap = [rap]notesLeft.png +GrayMidRap = [rap]notesMid.png +GrayRightRap = [rap]notesRight.png +NotePlainLeftRap = [rap]notesPlainLeft.png +NotePlainMidRap = [rap]notesPlainMid.png +NotePlainRightRap = [rap]notesPlainRight.png +NoteBGLeftRap = [rap]notesBgLeft.png +NoteBGMidRap = [rap]notesBgMid.png +NoteBGRightRap = [rap]notesBgRight.png # # # E F F E C T S # # # NoteStar = [effect]goldenNoteStar.png @@ -321,20 +296,11 @@ JukeboxSongMenuPlayPause = [jukebox]songmenuplaypause.png JukeboxSongMenuNext = [jukebox]songmenunext.png JukeboxSongMenuPrevious = [jukebox]songmenuprevious.png JukeboxSongMenuPlaylist = [jukebox]songmenuplaylist.png +JukeboxSongSelection = [jukebox]songSelection.png JukeboxField = [jukebox]fieldbg.png JukeboxButton = [jukebox]mainBar.png JukeboxSelect = [jukebox]selectbg.png -# # # E D I T # # # -PlayOnly = [editsub]play.png -playwithnote = [editsub]play-with-note.png -playnote = [editsub]play-note.png -nextseq = [editsub]next-seq.png -previousseq = [editsub]previous-seq.png -undo = [editsub]undo.png -gold = [editsub]gold.png -freestyle = [editsub]freestyle.png - # # # COLOR PICKER # # # PickerBG = [color]pickerbg.png Picker = [color]picker.jpg @@ -351,23 +317,17 @@ SelectFrame = [name]select.png AvatarFrame2 = [score]frame.png # # # NO AVATARS # # # -NoAvatar_P1 = [name]noavatarP1.png -NoAvatar_P2 = [name]noavatarP2.png -NoAvatar_P3 = [name]noavatarP3.png -NoAvatar_P4 = [name]noavatarP4.png -NoAvatar_P5 = [name]noavatarP5.png -NoAvatar_P6 = [name]noavatarP6.png -NoAvatar_P7 = [name]noavatarP1.png -NoAvatar_P8 = [name]noavatarP2.png -NoAvatar_P9 = [name]noavatarP3.png -NoAvatar_P10 = [name]noavatarP4.png -NoAvatar_P11 = [name]noavatarP5.png -NoAvatar_P12 = [name]noavatarP6.png +NoAvatar_P1 = [name]noavatar.png +NoAvatar_P2 = [name]noavatar.png +NoAvatar_P3 = [name]noavatar.png +NoAvatar_P4 = [name]noavatar.png +NoAvatar_P5 = [name]noavatar.png +NoAvatar_P6 = [name]noavatar.png # # # A B O U T # # # LogoWeb = [About]logo_web.png LogoDeluxe = [About]logo_deluxe.png -helperbg = [About]helperbg.png +AboutBG = [About]helperbg2.png # # # D E V E L O P E R S # # # Dhelperbg = [Developers]helperbg.png \ No newline at end of file diff --git a/game/themes/Fantasy/Static Blue.ini b/game/themes/common/Static Blue.ini similarity index 76% rename from game/themes/Fantasy/Static Blue.ini rename to game/themes/common/Static Blue.ini index ccf64665..e08a59b8 100644 --- a/game/themes/Fantasy/Static Blue.ini +++ b/game/themes/common/Static Blue.ini @@ -1,12 +1,11 @@ - ################################### # theme developed by Daniel20 # -# for http:\\ultrastar-es.org # +# for https:\\ultrastar-es.org # # visit us to get songs, plugins, # -# themes and more... # -# # -# *some icons belongs to # -# http://www.iconfinder.com/ # +# themes and more... # +# # +# *some icons belongs to # +# https://www.iconfinder.com/ # # under Creative Common license # ################################### @@ -24,7 +23,6 @@ interface_selectbg_search = [interface]selectbg_search.png interface_dialog_background = [interface]dialog_background.png interface_dialog_background2 = [interface]dialog_background2.png interface_dialog_backgroundtop = [interface]dialog_backgroundtop.png -interface_dialog_backgroundtop2 = [interface]dialog_backgroundtop2.png Cursor = [interface]cursor.png Cursor_Pressed = [interface]cursor_pressed.png @@ -37,7 +35,8 @@ icon_song_search = [icon]song_search.png icon_song_video = [icon]song_video.png icon_song_medley = [icon]song_medley.png icon_song_calcmedley = [icon]song_calcmedley.png -icon_song_duet = [icon]song_duet.png +icon_song_duet = [icon]song_duet.png +icon_song_rap = [icon]song_rap.png loadicon = [load]logo.png loadbaricon = [load]bar.png @@ -67,26 +66,8 @@ SongBG = [bg-main]blue.jpg ScoreScreenBG = [bg-main]blue.jpg Top5BG = [bg-main]blue.jpg OptionsBG = [bg-main]blue.jpg -EditBG = [bg-main]blue.jpg -EditSubBG = [bg-main]blue.jpg PartyBG = [bg-main]blue.jpg -#Icons on screen -SongCD = [icon]cd.png -MainIcon = [main]buttonsolo.png -MainSearch = [icon]search.png -IconOption = [main]buttonoption.png -IconEdit = [main]buttonedit.png -IconSongMenu = [icon]songmenu.png -ScoreIcon = [icon]score.png -PartyIcon = [main]buttonparty.png -StatIcon = [main]buttonstats.png -VideoIcon = [icon]video.png - -IconError = [icon]error.png -IconQuestion = [icon]question.png - - # # # S O N G S E L E C E T # # # SongSelection1up = [main]songSelection1up.png SongSelection1dn = [main]songSelection1dn.png @@ -95,7 +76,7 @@ SongSelection2 = [main]songSelection2.png SongSelection3 = [main]songSelection3.png SongSelection4 = [main]songSelection4.png SongSelection5 = [main]songSelection5.png -SongCover = [main]songCover.jpg +SongCover = ../../covers/Common/NoCover.jpg SongMessage = [song]message.png SongDuetSinger = [song]duetsinger.png SongDuetSinger2 = [song]duetsinger2.png @@ -104,7 +85,7 @@ SongDuetSinger3 = [song]duetsinger3.png # # # S I N G # # # #the bar where the lyrics reside LyricBar = [sing]textBar.png -LyricBarDuet = [sing]textBarDuet.png +LyricBarDuet = [sing]textBar.png #this one slides in, to tell you that singing starts immediately LyricHelpBar = [sing]lyricsHelpBar.png @@ -114,7 +95,7 @@ TimeBar1 = [sing]timeBarBG.png #the time progress bar (not skinned in this theme :P ) TimeBar = [sing]timeBar.jpg - + #linebonus, the thing that pop ups at the score LineBonusBack = [sing]lineBonusPopUp.png @@ -162,16 +143,6 @@ ScoreEndCap = [score]endcap.png ScoreLine = [score]line.png PlayerNumberBox = [main]playerNumberBox.png -PlayerIDBox01 = [sing.player1]lyric_active.png -PlayerIDBox02 = [sing.player2]lyric_active.png -PlayerIDBox03 = [sing.player3]lyric_active.png -PlayerIDBox04 = [sing.player4]lyric_active.png -PlayerIDBox05 = [sing.player5]lyric_active.png -PlayerIDBox06 = [sing.player6]lyric_active.png - -# these icons are part of the tango icon set -# licensed under Creative Commons Attribution Share-Alike license -# http://tango.freedesktop.org Rating_0 = [score]rating_0.png Rating_1 = [score]rating_1.png Rating_2 = [score]rating_2.png @@ -180,18 +151,19 @@ Rating_4 = [score]rating_4.png Rating_5 = [score]rating_5.png Rating_6 = [score]rating_6.png Rating_7 = [score]rating_7.png + # # # O P T I O N S # # # -Optionsbuttongame = [Options]buttongame.png -Optionsbuttongraphics = [Options]buttongraphics.png -Optionsbuttonsound = [Options]buttonsound.png -Optionsbuttonlyrics = [Options]buttonlyrics.png -Optionsbuttondesign = [Options]buttondesign.png -Optionsbuttonrecord = [Options]buttonduet.png -Optionsbuttonadvanced = [Options]buttonadvanced.png -Optionsbuttonnetwork = [Options]buttonnetwork.png -Optionsbuttonwebcam = [Options]buttonwebcam.png -Optionsbuttonjukebox = [Options]buttonjukebox.png -Optionsbuttonback = [Options]buttonback.png +Optionsbuttongame = [Options]buttongame.png +Optionsbuttongraphics = [Options]buttongraphics.png +Optionsbuttonsound = [Options]buttonsound.png +Optionsbuttonlyrics = [Options]buttonlyrics.png +Optionsbuttondesign = [Options]buttondesign.png +Optionsbuttonmicrophones = [Options]buttonmicrophones.png +Optionsbuttonadvanced = [Options]buttonadvanced.png +Optionsbuttonnetwork = [Options]buttonnetwork.png +Optionsbuttonwebcam = [Options]buttonwebcam.png +Optionsbuttonjukebox = [Options]buttonjukebox.png +Optionsbuttonback = [Options]buttonback.png # # # M A I N P A R T Y # # # ClassicButton =[MainParty]ClassicButton.png @@ -199,8 +171,6 @@ ClassicFreeButton =[MainParty]ClassicFreeButton.png ChallengeButton =[MainParty]ChallengeButton.png TournamentButton =[tournament]trophy.png - - # # # P A R T Y # # # Joker =[party]Joker.png PartyPlayerButton =[party]playerButton.png @@ -226,11 +196,8 @@ PartyTrophy =[tournament]trophy.png PartyWinner =[tournament]winner.png # # # S T A T S # # # -StatMainBG1 = [stat]mainBG1.png -StatMainBG2 = [stat]mainBG2.png -StatMainBG3 = [stat]mainBG3.png -StatDetailBG1 = [stat]detailBG1.png - +StatInfoBG1 = [stat]InfoBG1.png +StatInfoBG2 = [stat]InfoBG2.png # # # N A V I # # # ButtonP = [button]p.png @@ -246,7 +213,6 @@ Button13 = [button]13.png ButtonIns = [button]ins.png ButtonDel = [button]del.png -JumpToBG = [menu]jumpToBg.png SongMenuBG = [menu]songMenuBg.png SongMenuSelectBG = [menu]songMenuSelectBg.png PopUpBG = [menu]popUpBG.png @@ -267,6 +233,15 @@ NoteBGMid = [sing]notesBgMid.png NoteBGRight = [sing]notesBgRight.png Pause = [sing]pause.png +GrayLeftRap = [rap]notesLeft.png +GrayMidRap = [rap]notesMid.png +GrayRightRap = [rap]notesRight.png +NotePlainLeftRap = [rap]notesPlainLeft.png +NotePlainMidRap = [rap]notesPlainMid.png +NotePlainRightRap = [rap]notesPlainRight.png +NoteBGLeftRap = [rap]notesBgLeft.png +NoteBGMidRap = [rap]notesBgMid.png +NoteBGRightRap = [rap]notesBgRight.png # # # E F F E C T S # # # NoteStar = [effect]goldenNoteStar.png @@ -319,20 +294,11 @@ JukeboxSongMenuPlayPause = [jukebox]songmenuplaypause.png JukeboxSongMenuNext = [jukebox]songmenunext.png JukeboxSongMenuPrevious = [jukebox]songmenuprevious.png JukeboxSongMenuPlaylist = [jukebox]songmenuplaylist.png +JukeboxSongSelection = [jukebox]songSelection.png JukeboxField = [jukebox]fieldbg.png JukeboxButton = [jukebox]mainBar.png JukeboxSelect = [jukebox]selectbg.png -# # # E D I T # # # -PlayOnly = [editsub]play.png -playwithnote = [editsub]play-with-note.png -playnote = [editsub]play-note.png -nextseq = [editsub]next-seq.png -previousseq = [editsub]previous-seq.png -undo = [editsub]undo.png -gold = [editsub]gold.png -freestyle = [editsub]freestyle.png - # # # COLOR PICKER # # # PickerBG = [color]pickerbg.png Picker = [color]picker.jpg @@ -349,23 +315,17 @@ SelectFrame = [name]select.png AvatarFrame2 = [score]frame.png # # # NO AVATARS # # # -NoAvatar_P1 = [name]noavatarP1.png -NoAvatar_P2 = [name]noavatarP2.png -NoAvatar_P3 = [name]noavatarP3.png -NoAvatar_P4 = [name]noavatarP4.png -NoAvatar_P5 = [name]noavatarP5.png -NoAvatar_P6 = [name]noavatarP6.png -NoAvatar_P7 = [name]noavatarP1.png -NoAvatar_P8 = [name]noavatarP2.png -NoAvatar_P9 = [name]noavatarP3.png -NoAvatar_P10 = [name]noavatarP4.png -NoAvatar_P11 = [name]noavatarP5.png -NoAvatar_P12 = [name]noavatarP6.png +NoAvatar_P1 = [name]noavatar.png +NoAvatar_P2 = [name]noavatar.png +NoAvatar_P3 = [name]noavatar.png +NoAvatar_P4 = [name]noavatar.png +NoAvatar_P5 = [name]noavatar.png +NoAvatar_P6 = [name]noavatar.png # # # A B O U T # # # LogoWeb = [About]logo_web.png LogoDeluxe = [About]logo_deluxe.png -helperbg = [About]helperbg.png +AboutBG = [About]helperbg2.png # # # D E V E L O P E R S # # # Dhelperbg = [Developers]helperbg.png \ No newline at end of file diff --git a/game/themes/Fantasy/Static Red.ini b/game/themes/common/Static Red.ini similarity index 76% rename from game/themes/Fantasy/Static Red.ini rename to game/themes/common/Static Red.ini index fe87dda0..33fba613 100644 --- a/game/themes/Fantasy/Static Red.ini +++ b/game/themes/common/Static Red.ini @@ -1,12 +1,11 @@ - ################################### # theme developed by Daniel20 # -# for http:\\ultrastar-es.org # +# for https:\\ultrastar-es.org # # visit us to get songs, plugins, # -# themes and more... # -# # -# *some icons belongs to # -# http://www.iconfinder.com/ # +# themes and more... # +# # +# *some icons belongs to # +# https://www.iconfinder.com/ # # under Creative Common license # ################################### @@ -24,7 +23,6 @@ interface_selectbg_search = [interface]selectbg_search.png interface_dialog_background = [interface]dialog_background.png interface_dialog_background2 = [interface]dialog_background2.png interface_dialog_backgroundtop = [interface]dialog_backgroundtop.png -interface_dialog_backgroundtop2 = [interface]dialog_backgroundtop2.png Cursor = [interface]cursor.png Cursor_Pressed = [interface]cursor_pressed.png @@ -37,7 +35,8 @@ icon_song_search = [icon]song_search.png icon_song_video = [icon]song_video.png icon_song_medley = [icon]song_medley.png icon_song_calcmedley = [icon]song_calcmedley.png -icon_song_duet = [icon]song_duet.png +icon_song_duet = [icon]song_duet.png +icon_song_rap = [icon]song_rap.png loadicon = [load]logo.png loadbaricon = [load]bar.png @@ -67,26 +66,8 @@ SongBG = [bg-main]red.jpg ScoreScreenBG = [bg-main]red.jpg Top5BG = [bg-main]red.jpg OptionsBG = [bg-main]red.jpg -EditBG = [bg-main]red.jpg -EditSubBG = [bg-main]red.jpg PartyBG = [bg-main]red.jpg -#Icons on screen -SongCD = [icon]cd.png -MainIcon = [main]buttonsolo.png -MainSearch = [icon]search.png -IconOption = [main]buttonoption.png -IconEdit = [main]buttonedit.png -IconSongMenu = [icon]songmenu.png -ScoreIcon = [icon]score.png -PartyIcon = [main]buttonparty.png -StatIcon = [main]buttonstats.png -VideoIcon = [icon]video.png - -IconError = [icon]error.png -IconQuestion = [icon]question.png - - # # # S O N G S E L E C E T # # # SongSelection1up = [main]songSelection1up.png SongSelection1dn = [main]songSelection1dn.png @@ -95,7 +76,7 @@ SongSelection2 = [main]songSelection2.png SongSelection3 = [main]songSelection3.png SongSelection4 = [main]songSelection4.png SongSelection5 = [main]songSelection5.png -SongCover = [main]songCover.jpg +SongCover = ../../covers/Common/NoCover.jpg SongMessage = [song]message.png SongDuetSinger = [song]duetsinger.png SongDuetSinger2 = [song]duetsinger2.png @@ -104,7 +85,7 @@ SongDuetSinger3 = [song]duetsinger3.png # # # S I N G # # # #the bar where the lyrics reside LyricBar = [sing]textBar.png -LyricBarDuet = [sing]textBarDuet.png +LyricBarDuet = [sing]textBar.png #this one slides in, to tell you that singing starts immediately LyricHelpBar = [sing]lyricsHelpBar.png @@ -114,7 +95,7 @@ TimeBar1 = [sing]timeBarBG.png #the time progress bar (not skinned in this theme :P ) TimeBar = [sing]timeBar.jpg - + #linebonus, the thing that pop ups at the score LineBonusBack = [sing]lineBonusPopUp.png @@ -162,16 +143,6 @@ ScoreEndCap = [score]endcap.png ScoreLine = [score]line.png PlayerNumberBox = [main]playerNumberBox.png -PlayerIDBox01 = [sing.player1]lyric_active.png -PlayerIDBox02 = [sing.player2]lyric_active.png -PlayerIDBox03 = [sing.player3]lyric_active.png -PlayerIDBox04 = [sing.player4]lyric_active.png -PlayerIDBox05 = [sing.player5]lyric_active.png -PlayerIDBox06 = [sing.player6]lyric_active.png - -# these icons are part of the tango icon set -# licensed under Creative Commons Attribution Share-Alike license -# http://tango.freedesktop.org Rating_0 = [score]rating_0.png Rating_1 = [score]rating_1.png Rating_2 = [score]rating_2.png @@ -180,18 +151,19 @@ Rating_4 = [score]rating_4.png Rating_5 = [score]rating_5.png Rating_6 = [score]rating_6.png Rating_7 = [score]rating_7.png + # # # O P T I O N S # # # -Optionsbuttongame = [Options]buttongame.png -Optionsbuttongraphics = [Options]buttongraphics.png -Optionsbuttonsound = [Options]buttonsound.png -Optionsbuttonlyrics = [Options]buttonlyrics.png -Optionsbuttondesign = [Options]buttondesign.png -Optionsbuttonrecord = [Options]buttonduet.png -Optionsbuttonadvanced = [Options]buttonadvanced.png -Optionsbuttonnetwork = [Options]buttonnetwork.png -Optionsbuttonwebcam = [Options]buttonwebcam.png -Optionsbuttonjukebox = [Options]buttonjukebox.png -Optionsbuttonback = [Options]buttonback.png +Optionsbuttongame = [Options]buttongame.png +Optionsbuttongraphics = [Options]buttongraphics.png +Optionsbuttonsound = [Options]buttonsound.png +Optionsbuttonlyrics = [Options]buttonlyrics.png +Optionsbuttondesign = [Options]buttondesign.png +Optionsbuttonmicrophones = [Options]buttonmicrophones.png +Optionsbuttonadvanced = [Options]buttonadvanced.png +Optionsbuttonnetwork = [Options]buttonnetwork.png +Optionsbuttonwebcam = [Options]buttonwebcam.png +Optionsbuttonjukebox = [Options]buttonjukebox.png +Optionsbuttonback = [Options]buttonback.png # # # M A I N P A R T Y # # # ClassicButton =[MainParty]ClassicButton.png @@ -226,11 +198,8 @@ PartyTrophy =[tournament]trophy.png PartyWinner =[tournament]winner.png # # # S T A T S # # # -StatMainBG1 = [stat]mainBG1.png -StatMainBG2 = [stat]mainBG2.png -StatMainBG3 = [stat]mainBG3.png -StatDetailBG1 = [stat]detailBG1.png - +StatInfoBG1 = [stat]InfoBG1.png +StatInfoBG2 = [stat]InfoBG2.png # # # N A V I # # # ButtonP = [button]p.png @@ -246,7 +215,6 @@ Button13 = [button]13.png ButtonIns = [button]ins.png ButtonDel = [button]del.png -JumpToBG = [menu]jumpToBg.png SongMenuBG = [menu]songMenuBg.png SongMenuSelectBG = [menu]songMenuSelectBg.png PopUpBG = [menu]popUpBG.png @@ -267,6 +235,15 @@ NoteBGMid = [sing]notesBgMid.png NoteBGRight = [sing]notesBgRight.png Pause = [sing]pause.png +GrayLeftRap = [rap]notesLeft.png +GrayMidRap = [rap]notesMid.png +GrayRightRap = [rap]notesRight.png +NotePlainLeftRap = [rap]notesPlainLeft.png +NotePlainMidRap = [rap]notesPlainMid.png +NotePlainRightRap = [rap]notesPlainRight.png +NoteBGLeftRap = [rap]notesBgLeft.png +NoteBGMidRap = [rap]notesBgMid.png +NoteBGRightRap = [rap]notesBgRight.png # # # E F F E C T S # # # NoteStar = [effect]goldenNoteStar.png @@ -319,20 +296,11 @@ JukeboxSongMenuPlayPause = [jukebox]songmenuplaypause.png JukeboxSongMenuNext = [jukebox]songmenunext.png JukeboxSongMenuPrevious = [jukebox]songmenuprevious.png JukeboxSongMenuPlaylist = [jukebox]songmenuplaylist.png +JukeboxSongSelection = [jukebox]songSelection.png JukeboxField = [jukebox]fieldbg.png JukeboxButton = [jukebox]mainBar.png JukeboxSelect = [jukebox]selectbg.png -# # # E D I T # # # -PlayOnly = [editsub]play.png -playwithnote = [editsub]play-with-note.png -playnote = [editsub]play-note.png -nextseq = [editsub]next-seq.png -previousseq = [editsub]previous-seq.png -undo = [editsub]undo.png -gold = [editsub]gold.png -freestyle = [editsub]freestyle.png - # # # COLOR PICKER # # # PickerBG = [color]pickerbg.png Picker = [color]picker.jpg @@ -349,23 +317,17 @@ SelectFrame = [name]select.png AvatarFrame2 = [score]frame.png # # # NO AVATARS # # # -NoAvatar_P1 = [name]noavatarP1.png -NoAvatar_P2 = [name]noavatarP2.png -NoAvatar_P3 = [name]noavatarP3.png -NoAvatar_P4 = [name]noavatarP4.png -NoAvatar_P5 = [name]noavatarP5.png -NoAvatar_P6 = [name]noavatarP6.png -NoAvatar_P7 = [name]noavatarP1.png -NoAvatar_P8 = [name]noavatarP2.png -NoAvatar_P9 = [name]noavatarP3.png -NoAvatar_P10 = [name]noavatarP4.png -NoAvatar_P11 = [name]noavatarP5.png -NoAvatar_P12 = [name]noavatarP6.png +NoAvatar_P1 = [name]noavatar.png +NoAvatar_P2 = [name]noavatar.png +NoAvatar_P3 = [name]noavatar.png +NoAvatar_P4 = [name]noavatar.png +NoAvatar_P5 = [name]noavatar.png +NoAvatar_P6 = [name]noavatar.png # # # A B O U T # # # LogoWeb = [About]logo_web.png LogoDeluxe = [About]logo_deluxe.png -helperbg = [About]helperbg.png +AboutBG = [About]helperbg2.png # # # D E V E L O P E R S # # # Dhelperbg = [Developers]helperbg.png \ No newline at end of file diff --git a/game/themes/Fantasy/Static Violet.ini b/game/themes/common/Static Violet.ini similarity index 76% rename from game/themes/Fantasy/Static Violet.ini rename to game/themes/common/Static Violet.ini index 985b03f4..aed3e030 100644 --- a/game/themes/Fantasy/Static Violet.ini +++ b/game/themes/common/Static Violet.ini @@ -1,12 +1,11 @@ - ################################### # theme developed by Daniel20 # -# for http:\\ultrastar-es.org # +# for https:\\ultrastar-es.org # # visit us to get songs, plugins, # -# themes and more... # -# # -# *some icons belongs to # -# http://www.iconfinder.com/ # +# themes and more... # +# # +# *some icons belongs to # +# https://www.iconfinder.com/ # # under Creative Common license # ################################### @@ -24,7 +23,6 @@ interface_selectbg_search = [interface]selectbg_search.png interface_dialog_background = [interface]dialog_background.png interface_dialog_background2 = [interface]dialog_background2.png interface_dialog_backgroundtop = [interface]dialog_backgroundtop.png -interface_dialog_backgroundtop2 = [interface]dialog_backgroundtop2.png Cursor = [interface]cursor.png Cursor_Pressed = [interface]cursor_pressed.png @@ -37,7 +35,8 @@ icon_song_search = [icon]song_search.png icon_song_video = [icon]song_video.png icon_song_medley = [icon]song_medley.png icon_song_calcmedley = [icon]song_calcmedley.png -icon_song_duet = [icon]song_duet.png +icon_song_duet = [icon]song_duet.png +icon_song_rap = [icon]song_rap.png loadicon = [load]logo.png loadbaricon = [load]bar.png @@ -67,26 +66,8 @@ SongBG = [bg-main]violet.jpg ScoreScreenBG = [bg-main]violet.jpg Top5BG = [bg-main]violet.jpg OptionsBG = [bg-main]violet.jpg -EditBG = [bg-main]violet.jpg -EditSubBG = [bg-main]violet.jpg PartyBG = [bg-main]violet.jpg -#Icons on screen -SongCD = [icon]cd.png -MainIcon = [main]buttonsolo.png -MainSearch = [icon]search.png -IconOption = [main]buttonoption.png -IconEdit = [main]buttonedit.png -IconSongMenu = [icon]songmenu.png -ScoreIcon = [icon]score.png -PartyIcon = [main]buttonparty.png -StatIcon = [main]buttonstats.png -VideoIcon = [icon]video.png - -IconError = [icon]error.png -IconQuestion = [icon]question.png - - # # # S O N G S E L E C E T # # # SongSelection1up = [main]songSelection1up.png SongSelection1dn = [main]songSelection1dn.png @@ -95,7 +76,7 @@ SongSelection2 = [main]songSelection2.png SongSelection3 = [main]songSelection3.png SongSelection4 = [main]songSelection4.png SongSelection5 = [main]songSelection5.png -SongCover = [main]songCover.jpg +SongCover = ../../covers/Common/NoCover.jpg SongMessage = [song]message.png SongDuetSinger = [song]duetsinger.png SongDuetSinger2 = [song]duetsinger2.png @@ -104,7 +85,7 @@ SongDuetSinger3 = [song]duetsinger3.png # # # S I N G # # # #the bar where the lyrics reside LyricBar = [sing]textBar.png -LyricBarDuet = [sing]textBarDuet.png +LyricBarDuet = [sing]textBar.png #this one slides in, to tell you that singing starts immediately LyricHelpBar = [sing]lyricsHelpBar.png @@ -114,7 +95,7 @@ TimeBar1 = [sing]timeBarBG.png #the time progress bar (not skinned in this theme :P ) TimeBar = [sing]timeBar.jpg - + #linebonus, the thing that pop ups at the score LineBonusBack = [sing]lineBonusPopUp.png @@ -162,16 +143,6 @@ ScoreEndCap = [score]endcap.png ScoreLine = [score]line.png PlayerNumberBox = [main]playerNumberBox.png -PlayerIDBox01 = [sing.player1]lyric_active.png -PlayerIDBox02 = [sing.player2]lyric_active.png -PlayerIDBox03 = [sing.player3]lyric_active.png -PlayerIDBox04 = [sing.player4]lyric_active.png -PlayerIDBox05 = [sing.player5]lyric_active.png -PlayerIDBox06 = [sing.player6]lyric_active.png - -# these icons are part of the tango icon set -# licensed under Creative Commons Attribution Share-Alike license -# http://tango.freedesktop.org Rating_0 = [score]rating_0.png Rating_1 = [score]rating_1.png Rating_2 = [score]rating_2.png @@ -180,18 +151,19 @@ Rating_4 = [score]rating_4.png Rating_5 = [score]rating_5.png Rating_6 = [score]rating_6.png Rating_7 = [score]rating_7.png + # # # O P T I O N S # # # -Optionsbuttongame = [Options]buttongame.png -Optionsbuttongraphics = [Options]buttongraphics.png -Optionsbuttonsound = [Options]buttonsound.png -Optionsbuttonlyrics = [Options]buttonlyrics.png -Optionsbuttondesign = [Options]buttondesign.png -Optionsbuttonrecord = [Options]buttonduet.png -Optionsbuttonadvanced = [Options]buttonadvanced.png -Optionsbuttonnetwork = [Options]buttonnetwork.png -Optionsbuttonwebcam = [Options]buttonwebcam.png -Optionsbuttonjukebox = [Options]buttonjukebox.png -Optionsbuttonback = [Options]buttonback.png +Optionsbuttongame = [Options]buttongame.png +Optionsbuttongraphics = [Options]buttongraphics.png +Optionsbuttonsound = [Options]buttonsound.png +Optionsbuttonlyrics = [Options]buttonlyrics.png +Optionsbuttondesign = [Options]buttondesign.png +Optionsbuttonmicrophones = [Options]buttonmicrophones.png +Optionsbuttonadvanced = [Options]buttonadvanced.png +Optionsbuttonnetwork = [Options]buttonnetwork.png +Optionsbuttonwebcam = [Options]buttonwebcam.png +Optionsbuttonjukebox = [Options]buttonjukebox.png +Optionsbuttonback = [Options]buttonback.png # # # M A I N P A R T Y # # # ClassicButton =[MainParty]ClassicButton.png @@ -199,8 +171,6 @@ ClassicFreeButton =[MainParty]ClassicFreeButton.png ChallengeButton =[MainParty]ChallengeButton.png TournamentButton =[tournament]trophy.png - - # # # P A R T Y # # # Joker =[party]Joker.png PartyPlayerButton =[party]playerButton.png @@ -226,11 +196,8 @@ PartyTrophy =[tournament]trophy.png PartyWinner =[tournament]winner.png # # # S T A T S # # # -StatMainBG1 = [stat]mainBG1.png -StatMainBG2 = [stat]mainBG2.png -StatMainBG3 = [stat]mainBG3.png -StatDetailBG1 = [stat]detailBG1.png - +StatInfoBG1 = [stat]InfoBG1.png +StatInfoBG2 = [stat]InfoBG2.png # # # N A V I # # # ButtonP = [button]p.png @@ -246,7 +213,6 @@ Button13 = [button]13.png ButtonIns = [button]ins.png ButtonDel = [button]del.png -JumpToBG = [menu]jumpToBg.png SongMenuBG = [menu]songMenuBg.png SongMenuSelectBG = [menu]songMenuSelectBg.png PopUpBG = [menu]popUpBG.png @@ -267,6 +233,15 @@ NoteBGMid = [sing]notesBgMid.png NoteBGRight = [sing]notesBgRight.png Pause = [sing]pause.png +GrayLeftRap = [rap]notesLeft.png +GrayMidRap = [rap]notesMid.png +GrayRightRap = [rap]notesRight.png +NotePlainLeftRap = [rap]notesPlainLeft.png +NotePlainMidRap = [rap]notesPlainMid.png +NotePlainRightRap = [rap]notesPlainRight.png +NoteBGLeftRap = [rap]notesBgLeft.png +NoteBGMidRap = [rap]notesBgMid.png +NoteBGRightRap = [rap]notesBgRight.png # # # E F F E C T S # # # NoteStar = [effect]goldenNoteStar.png @@ -319,20 +294,11 @@ JukeboxSongMenuPlayPause = [jukebox]songmenuplaypause.png JukeboxSongMenuNext = [jukebox]songmenunext.png JukeboxSongMenuPrevious = [jukebox]songmenuprevious.png JukeboxSongMenuPlaylist = [jukebox]songmenuplaylist.png +JukeboxSongSelection = [jukebox]songSelection.png JukeboxField = [jukebox]fieldbg.png JukeboxButton = [jukebox]mainBar.png JukeboxSelect = [jukebox]selectbg.png -# # # E D I T # # # -PlayOnly = [editsub]play.png -playwithnote = [editsub]play-with-note.png -playnote = [editsub]play-note.png -nextseq = [editsub]next-seq.png -previousseq = [editsub]previous-seq.png -undo = [editsub]undo.png -gold = [editsub]gold.png -freestyle = [editsub]freestyle.png - # # # COLOR PICKER # # # PickerBG = [color]pickerbg.png Picker = [color]picker.jpg @@ -349,23 +315,17 @@ SelectFrame = [name]select.png AvatarFrame2 = [score]frame.png # # # NO AVATARS # # # -NoAvatar_P1 = [name]noavatarP1.png -NoAvatar_P2 = [name]noavatarP2.png -NoAvatar_P3 = [name]noavatarP3.png -NoAvatar_P4 = [name]noavatarP4.png -NoAvatar_P5 = [name]noavatarP5.png -NoAvatar_P6 = [name]noavatarP6.png -NoAvatar_P7 = [name]noavatarP1.png -NoAvatar_P8 = [name]noavatarP2.png -NoAvatar_P9 = [name]noavatarP3.png -NoAvatar_P10 = [name]noavatarP4.png -NoAvatar_P11 = [name]noavatarP5.png -NoAvatar_P12 = [name]noavatarP6.png +NoAvatar_P1 = [name]noavatar.png +NoAvatar_P2 = [name]noavatar.png +NoAvatar_P3 = [name]noavatar.png +NoAvatar_P4 = [name]noavatar.png +NoAvatar_P5 = [name]noavatar.png +NoAvatar_P6 = [name]noavatar.png # # # A B O U T # # # LogoWeb = [About]logo_web.png LogoDeluxe = [About]logo_deluxe.png -helperbg = [About]helperbg.png +AboutBG = [About]helperbg2.png # # # D E V E L O P E R S # # # -Dhelperbg = [Developers]helperbg.png \ No newline at end of file +Dhelperbg = [Developers]helperbg.png diff --git a/game/themes/common/Universe.ini b/game/themes/common/Universe.ini new file mode 100644 index 00000000..8b2d61d5 --- /dev/null +++ b/game/themes/common/Universe.ini @@ -0,0 +1,333 @@ +################################### +# theme developed by Daniel20 # +# for https:\\ultrastar-es.org # +# visit us to get songs, plugins, # +# themes and more... # +# # +# *some icons belongs to # +# https://www.iconfinder.com/ # +# under Creative Common license # +################################### + +#Video credits to: AA VFX https://www.youtube.com/watch?v=S3La-3bUjXk + +############### +[Skin] +Theme=Party +Name= Universe +Color=Blue + +[Textures] +/** + * Interface + */ +interface_selectbg_search = [interface]selectbg_search.png +interface_dialog_background = [interface]dialog_background.png +interface_dialog_background2 = [interface]dialog_background2.png +interface_dialog_backgroundtop = [interface]dialog_backgroundtop.png + +Cursor = [interface]cursor.png +Cursor_Pressed = [interface]cursor_pressed.png + +/** + * Icons + */ +icon_song_menu = [icon]song_menu.png +icon_song_search = [icon]song_search.png +icon_song_video = [icon]song_video.png +icon_song_medley = [icon]song_medley.png +icon_song_calcmedley = [icon]song_calcmedley.png +icon_song_duet = [icon]song_duet.png +icon_song_rap = [icon]song_rap.png + +loadicon = [load]logo.png +loadbaricon = [load]bar.png + +# # # M A I N # # # +ButtonSolo = [main]buttonsolo.png +ButtonAbout = [main]buttonabout.png +ButtonParty = [main]buttonparty.png +ButtonStats = [main]buttonstats.png +ButtonJukebox = [main]buttonjukebox.png +ButtonOption = [main]buttonoption.png +ButtonExit = [main]buttonexit.png +Button2 = [main]button2.png +Button = [main]button.png +ButtonF = [main]buttonf.jpg +MainBar = [main]mainBar.png +SelectBG = [main]selectbg.png + +Select_ArrowLeft = [interface]select_arrow_left.png +Select_ArrowRight = [interface]select_arrow_right.png + +#Backgrounds +LoadingBG = [bg-load]basic.jpg +TitleBG = [bg-main]space.webm +MainBG = [bg-main]space.webm +SongBG = [bg-main]space.webm +ScoreScreenBG = [bg-main]space.webm +Top5BG = [bg-main]space.webm +OptionsBG = [bg-main]space.webm +PartyBG = [bg-main]space.webm + +# # # S O N G S E L E C E T # # # +SongSelection1up = [main]songSelection1up.png +SongSelection1dn = [main]songSelection1dn.png +SongSelection1 = [main]songSelection1.png +SongSelection2 = [main]songSelection2.png +SongSelection3 = [main]songSelection3.png +SongSelection4 = [main]songSelection4.png +SongSelection5 = [main]songSelection5.png +SongCover = ../../covers/Common/NoCover.jpg +SongMessage = [song]message.png +SongDuetSinger = [song]duetsinger.png +SongDuetSinger2 = [song]duetsinger2.png +SongDuetSinger3 = [song]duetsinger3.png + +# # # S I N G # # # +#the bar where the lyrics reside +LyricBar = [sing]textBar.png +LyricBarDuet = [sing]textBar.png + +#this one slides in, to tell you that singing starts immediately +LyricHelpBar = [sing]lyricsHelpBar.png + +#the bar behind the timestuff +TimeBar1 = [sing]timeBarBG.png + +#the time progress bar (not skinned in this theme :P ) +TimeBar = [sing]timeBar.jpg + +#linebonus, the thing that pop ups at the score +LineBonusBack = [sing]lineBonusPopUp.png + +#Singbar (the thing beneath the scores) +SingBarBack = [sing]singBarBack.png +SingBarBar = [sing]singBarBar.png +SingBarFront = [sing]singBarFront.png + +#Background for scores +ScoreBG = [sing]scoreBg.png + +#Background for the P1, P2 and so on +P = [sing]p.png + +#Pointer for lyrics +Ball = [sing]LyricsBall.png + +#song name for medley mode +SongName = [sing]SongName.png + + +# # # S C O R E / T O P 5 # # # +ScoreBox = [score]box.png +ScoreGlassBox = [score]glass_box.png +ScoreLevel = [score]level.png +ScoreLevelRound = [score]levelRound.png + +ScoreLevel_Dark = [score]level_dark.png +ScoreLevel_Dark_Round = [score]level_dark_round.png + +ScoreLevel_Light = [score]level_light.png +ScoreLevel_Light_Round = [score]level_light_round.png + +ScoreLevel_Lightest = [score]level_lightest.png +ScoreLevel_Lightest_Round = [score]level_lightest_round.png + +ButtonSendScore = [score]buttonsendscore.png + +# Boxes near the text, that show what color is for which bar +ScoreBar_box_lightest = [score]bar_box_lightest.png +ScoreBar_box_light = [score]bar_box_light.png +ScoreBar_box_dark = [score]bar_box_dark.png + +ScoreEndCap = [score]endcap.png +ScoreLine = [score]line.png +PlayerNumberBox = [main]playerNumberBox.png + +Rating_0 = [score]rating_0.png +Rating_1 = [score]rating_1.png +Rating_2 = [score]rating_2.png +Rating_3 = [score]rating_3.png +Rating_4 = [score]rating_4.png +Rating_5 = [score]rating_5.png +Rating_6 = [score]rating_6.png +Rating_7 = [score]rating_7.png + +# # # O P T I O N S # # # +Optionsbuttongame = [Options]buttongame.png +Optionsbuttongraphics = [Options]buttongraphics.png +Optionsbuttonsound = [Options]buttonsound.png +Optionsbuttonlyrics = [Options]buttonlyrics.png +Optionsbuttondesign = [Options]buttondesign.png +Optionsbuttonmicrophones = [Options]buttonmicrophones.png +Optionsbuttonadvanced = [Options]buttonadvanced.png +Optionsbuttonnetwork = [Options]buttonnetwork.png +Optionsbuttonwebcam = [Options]buttonwebcam.png +Optionsbuttonjukebox = [Options]buttonjukebox.png +Optionsbuttonback = [Options]buttonback.png + +# # # M A I N P A R T Y # # # +ClassicButton =[MainParty]ClassicButton.png +ClassicFreeButton =[MainParty]ClassicFreeButton.png +ChallengeButton =[MainParty]ChallengeButton.png +TournamentButton =[tournament]trophy.png + +# # # P A R T Y # # # +Joker =[party]Joker.png +PartyPlayerButton =[party]playerButton.png +PartyTeamButton1 =[party]roundTeamButton.png +PartyTeamButton2 =[party]playerTeamButton.png +PartyTeamButton3 =[party]winTeamButton1.png +PartyTeamButton4 =[party]winTeamButton2.png +PartyTeamButton5 =[party]winTeamButton3.png +PartyRoundBG1 =[party]roundBG1.png +PartyRoundBG2 =[party]roundBG2.png +PartyRoundBG3 =[party]roundBG3.png +PartyRoundBG4 =[party]roundBG4.png +HDL_Pointer =[party]pointer.png +PartyTeamPoints =[party]teamPoints.png +PartyScoreDeco =[party]scoreDecoration.png +PartyScoreBG1 =[party]scoreBG1.png +PartyScoreBG2 =[party]scoreBG2.png +PartyWinDeco1 =[party]winDecoration.png +PartyWinDeco2 =[party]winDecoration.png +PartyWinDeco3 =[party]winDecoration.png +PartyPlayerSelectBG = [party]playerselectbg.png +PartyTrophy =[tournament]trophy.png +PartyWinner =[tournament]winner.png + +# # # S T A T S # # # +StatInfoBG1 = [stat]InfoBG1.png +StatInfoBG2 = [stat]InfoBG2.png + +# # # N A V I # # # +ButtonP = [button]p.png +ButtonM = [button]m.png +ButtonJ = [button]j.png +ButtonC = [button]c.png +ButtonAlt = [button]alt.png +ButtonAZ = [button]az.png +ButtonEnter = [button]enter.png +ButtonNavi = [button]navi.png +ButtonEsc = [button]esc.png +Button13 = [button]13.png +ButtonIns = [button]ins.png +ButtonDel = [button]del.png + +SongMenuBG = [menu]songMenuBg.png +SongMenuSelectBG = [menu]songMenuSelectBg.png +PopUpBG = [menu]popUpBG.png + + +# # # N O T E S # # # +# sung notes - colorized with playercolors +GrayLeft = [sing]notesLeft.png +GrayMid = [sing]notesMid.png +GrayRight = [sing]notesRight.png +# unsung notes - colorized with playercolors +NotePlainLeft = [sing]notesPlainLeft.png +NotePlainMid = [sing]notesPlainMid.png +NotePlainRight = [sing]notesPlainRight.png +# the glow around unsung/sung notes - colorized with playercolors +NoteBGLeft = [sing]notesBgLeft.png +NoteBGMid = [sing]notesBgMid.png +NoteBGRight = [sing]notesBgRight.png +Pause = [sing]pause.png + +GrayLeftRap = [rap]notesLeft.png +GrayMidRap = [rap]notesMid.png +GrayRightRap = [rap]notesRight.png +NotePlainLeftRap = [rap]notesPlainLeft.png +NotePlainMidRap = [rap]notesPlainMid.png +NotePlainRightRap = [rap]notesPlainRight.png +NoteBGLeftRap = [rap]notesBgLeft.png +NoteBGMidRap = [rap]notesBgMid.png +NoteBGRightRap = [rap]notesBgRight.png + +# # # E F F E C T S # # # +NoteStar = [effect]goldenNoteStar.png +NotePerfectStar = [effect]perfectNoteStar.png + + +# # # dirty helpers # # # +Rectangle = [helper]rectangle.png +ButtonFade = [helper]buttonFade.png +BGFade = [special]bg_fade.png + + +# # # D U E T # # # +LyricIcon_P1 = [sing.player1]lyric_active.png +LyricIconD_P1 = [sing.player1]lyric_inactive.png +LyricIcon_P2 = [sing.player2]lyric_active.png +LyricIconD_P2 = [sing.player2]lyric_inactive.png +LyricIcon_P3 = [sing.player3]lyric_active.png +LyricIconD_P3 = [sing.player3]lyric_inactive.png +LyricIcon_P4 = [sing.player4]lyric_active.png +LyricIconD_P4 = [sing.player4]lyric_inactive.png +LyricIcon_P5 = [sing.player5]lyric_active.png +LyricIconD_P5 = [sing.player5]lyric_inactive.png +LyricIcon_P6 = [sing.player6]lyric_active.png +LyricIconD_P6 = [sing.player6]lyric_inactive.png + + +# # # DOWNLOAD SCORE # # # +ProgressBar = [sing]timeBar.jpg + +# # # J U K E B O X # # # +JukeboxTimeBar1 = [jukebox]timeBarBG.png +JukeboxTimeBar = [jukebox]timeBar.jpg +JukeboxSong = [jukebox]song.png +JukeboxSongBackground = [jukebox]title.png +JukeboxSongListBackground = [jukebox]songlist.png +JukeboxSongbartopBackground= [jukebox]bartop.png +JukeboxSongOptionsBackground = [jukebox]songoptions.png +JukeboxLyric = [jukebox]lyric.png +JukeboxRandom = [jukebox]random.png +JukeboxRepeat = [jukebox]repeat.png +JukeboxCurrentSongBackground = [jukebox]currentsong.png +JukeboxSongListUp = [jukebox]songlistup.png +JukeboxSongListDown = [jukebox]songlistdown.png +JukeboxOptions = [jukebox]options.png +JukeboxClose = [jukebox]close.png +JukeboxFix = [jukebox]pin.png +JukeboxSongMenuTimeBar = [jukebox]timeBarSongMenuBG.png +JukeboxSongMenuPlayPause = [jukebox]songmenuplaypause.png +JukeboxSongMenuNext = [jukebox]songmenunext.png +JukeboxSongMenuPrevious = [jukebox]songmenuprevious.png +JukeboxSongMenuPlaylist = [jukebox]songmenuplaylist.png +JukeboxSongSelection = [jukebox]songSelection.png +JukeboxField = [jukebox]fieldbg.png +JukeboxButton = [jukebox]mainBar.png +JukeboxSelect = [jukebox]selectbg.png + +# # # COLOR PICKER # # # +PickerBG = [color]pickerbg.png +Picker = [color]picker.jpg +Hue = [color]hue.png +HueBar = [color]hue-bar.png +WhiteFade = [color]white-fade.png +BlackFade = [color]black-fade.png +Pointer = [color]pointer.png + +# # # N A M E # # # +AvatarFrame = [name]frame.png +CurrentPlayer = [name]player.png +SelectFrame = [name]select.png +AvatarFrame2 = [score]frame.png + +# # # NO AVATARS # # # +NoAvatar_P1 = [name]noavatar.png +NoAvatar_P2 = [name]noavatar.png +NoAvatar_P3 = [name]noavatar.png +NoAvatar_P4 = [name]noavatar.png +NoAvatar_P5 = [name]noavatar.png +NoAvatar_P6 = [name]noavatar.png + +# # # A B O U T # # # +LogoWeb = [About]logo_web.png +LogoDeluxe = [About]logo_deluxe.png +AboutBG = [About]helperbg2.png + +# # # D E V E L O P E R S # # # +Dhelperbg = [Developers]helperbg.png \ No newline at end of file diff --git a/game/themes/common/Waves.ini b/game/themes/common/Waves.ini new file mode 100644 index 00000000..d64ec303 --- /dev/null +++ b/game/themes/common/Waves.ini @@ -0,0 +1,333 @@ +################################### +# theme developed by Daniel20 # +# for https:\\ultrastar-es.org # +# visit us to get songs, plugins, # +# themes and more... # +# # +# *some icons belongs to # +# https://www.iconfinder.com/ # +# under Creative Common license # +################################### + +#Video credits to: AA VFX https://www.youtube.com/watch?v=53pUo71jr8w + +############### +[Skin] +Theme=Party +Name= Waves +Color=Pink + +[Textures] +/** + * Interface + */ +interface_selectbg_search = [interface]selectbg_search.png +interface_dialog_background = [interface]dialog_background.png +interface_dialog_background2 = [interface]dialog_background2.png +interface_dialog_backgroundtop = [interface]dialog_backgroundtop.png + +Cursor = [interface]cursor.png +Cursor_Pressed = [interface]cursor_pressed.png + +/** + * Icons + */ +icon_song_menu = [icon]song_menu.png +icon_song_search = [icon]song_search.png +icon_song_video = [icon]song_video.png +icon_song_medley = [icon]song_medley.png +icon_song_calcmedley = [icon]song_calcmedley.png +icon_song_duet = [icon]song_duet.png +icon_song_rap = [icon]song_rap.png + +loadicon = [load]logo.png +loadbaricon = [load]bar.png + +# # # M A I N # # # +ButtonSolo = [main]buttonsolo.png +ButtonAbout = [main]buttonabout.png +ButtonParty = [main]buttonparty.png +ButtonStats = [main]buttonstats.png +ButtonJukebox = [main]buttonjukebox.png +ButtonOption = [main]buttonoption.png +ButtonExit = [main]buttonexit.png +Button2 = [main]button2.png +Button = [main]button.png +ButtonF = [main]buttonf.jpg +MainBar = [main]mainBar.png +SelectBG = [main]selectbg.png + +Select_ArrowLeft = [interface]select_arrow_left.png +Select_ArrowRight = [interface]select_arrow_right.png + +#Backgrounds +LoadingBG = [bg-load]basic.jpg +TitleBG = [bg-main]lines.webm +MainBG = [bg-main]lines.webm +SongBG = [bg-main]lines.webm +ScoreScreenBG = [bg-main]lines.webm +Top5BG = [bg-main]lines.webm +OptionsBG = [bg-main]lines.webm +PartyBG = [bg-main]lines.webm + +# # # S O N G S E L E C E T # # # +SongSelection1up = [main]songSelection1up.png +SongSelection1dn = [main]songSelection1dn.png +SongSelection1 = [main]songSelection1.png +SongSelection2 = [main]songSelection2.png +SongSelection3 = [main]songSelection3.png +SongSelection4 = [main]songSelection4.png +SongSelection5 = [main]songSelection5.png +SongCover = ../../covers/Common/NoCover.jpg +SongMessage = [song]message.png +SongDuetSinger = [song]duetsinger.png +SongDuetSinger2 = [song]duetsinger2.png +SongDuetSinger3 = [song]duetsinger3.png + +# # # S I N G # # # +#the bar where the lyrics reside +LyricBar = [sing]textBar.png +LyricBarDuet = [sing]textBar.png + +#this one slides in, to tell you that singing starts immediately +LyricHelpBar = [sing]lyricsHelpBar.png + +#the bar behind the timestuff +TimeBar1 = [sing]timeBarBG.png + +#the time progress bar (not skinned in this theme :P ) +TimeBar = [sing]timeBar.jpg + +#linebonus, the thing that pop ups at the score +LineBonusBack = [sing]lineBonusPopUp.png + +#Singbar (the thing beneath the scores) +SingBarBack = [sing]singBarBack.png +SingBarBar = [sing]singBarBar.png +SingBarFront = [sing]singBarFront.png + +#Background for scores +ScoreBG = [sing]scoreBg.png + +#Background for the P1, P2 and so on +P = [sing]p.png + +#Pointer for lyrics +Ball = [sing]LyricsBall.png + +#song name for medley mode +SongName = [sing]SongName.png + + +# # # S C O R E / T O P 5 # # # +ScoreBox = [score]box.png +ScoreGlassBox = [score]glass_box.png +ScoreLevel = [score]level.png +ScoreLevelRound = [score]levelRound.png + +ScoreLevel_Dark = [score]level_dark.png +ScoreLevel_Dark_Round = [score]level_dark_round.png + +ScoreLevel_Light = [score]level_light.png +ScoreLevel_Light_Round = [score]level_light_round.png + +ScoreLevel_Lightest = [score]level_lightest.png +ScoreLevel_Lightest_Round = [score]level_lightest_round.png + +ButtonSendScore = [score]buttonsendscore.png + +# Boxes near the text, that show what color is for which bar +ScoreBar_box_lightest = [score]bar_box_lightest.png +ScoreBar_box_light = [score]bar_box_light.png +ScoreBar_box_dark = [score]bar_box_dark.png + +ScoreEndCap = [score]endcap.png +ScoreLine = [score]line.png +PlayerNumberBox = [main]playerNumberBox.png + +Rating_0 = [score]rating_0.png +Rating_1 = [score]rating_1.png +Rating_2 = [score]rating_2.png +Rating_3 = [score]rating_3.png +Rating_4 = [score]rating_4.png +Rating_5 = [score]rating_5.png +Rating_6 = [score]rating_6.png +Rating_7 = [score]rating_7.png + +# # # O P T I O N S # # # +Optionsbuttongame = [Options]buttongame.png +Optionsbuttongraphics = [Options]buttongraphics.png +Optionsbuttonsound = [Options]buttonsound.png +Optionsbuttonlyrics = [Options]buttonlyrics.png +Optionsbuttondesign = [Options]buttondesign.png +Optionsbuttonmicrophones = [Options]buttonmicrophones.png +Optionsbuttonadvanced = [Options]buttonadvanced.png +Optionsbuttonnetwork = [Options]buttonnetwork.png +Optionsbuttonwebcam = [Options]buttonwebcam.png +Optionsbuttonjukebox = [Options]buttonjukebox.png +Optionsbuttonback = [Options]buttonback.png + +# # # M A I N P A R T Y # # # +ClassicButton =[MainParty]ClassicButton.png +ClassicFreeButton =[MainParty]ClassicFreeButton.png +ChallengeButton =[MainParty]ChallengeButton.png +TournamentButton =[tournament]trophy.png + +# # # P A R T Y # # # +Joker =[party]Joker.png +PartyPlayerButton =[party]playerButton.png +PartyTeamButton1 =[party]roundTeamButton.png +PartyTeamButton2 =[party]playerTeamButton.png +PartyTeamButton3 =[party]winTeamButton1.png +PartyTeamButton4 =[party]winTeamButton2.png +PartyTeamButton5 =[party]winTeamButton3.png +PartyRoundBG1 =[party]roundBG1.png +PartyRoundBG2 =[party]roundBG2.png +PartyRoundBG3 =[party]roundBG3.png +PartyRoundBG4 =[party]roundBG4.png +HDL_Pointer =[party]pointer.png +PartyTeamPoints =[party]teamPoints.png +PartyScoreDeco =[party]scoreDecoration.png +PartyScoreBG1 =[party]scoreBG1.png +PartyScoreBG2 =[party]scoreBG2.png +PartyWinDeco1 =[party]winDecoration.png +PartyWinDeco2 =[party]winDecoration.png +PartyWinDeco3 =[party]winDecoration.png +PartyPlayerSelectBG = [party]playerselectbg.png +PartyTrophy =[tournament]trophy.png +PartyWinner =[tournament]winner.png + +# # # S T A T S # # # +StatInfoBG1 = [stat]InfoBG1.png +StatInfoBG2 = [stat]InfoBG2.png + +# # # N A V I # # # +ButtonP = [button]p.png +ButtonM = [button]m.png +ButtonJ = [button]j.png +ButtonC = [button]c.png +ButtonAlt = [button]alt.png +ButtonAZ = [button]az.png +ButtonEnter = [button]enter.png +ButtonNavi = [button]navi.png +ButtonEsc = [button]esc.png +Button13 = [button]13.png +ButtonIns = [button]ins.png +ButtonDel = [button]del.png + +SongMenuBG = [menu]songMenuBg.png +SongMenuSelectBG = [menu]songMenuSelectBg.png +PopUpBG = [menu]popUpBG.png + + +# # # N O T E S # # # +# sung notes - colorized with playercolors +GrayLeft = [sing]notesLeft.png +GrayMid = [sing]notesMid.png +GrayRight = [sing]notesRight.png +# unsung notes - colorized with playercolors +NotePlainLeft = [sing]notesPlainLeft.png +NotePlainMid = [sing]notesPlainMid.png +NotePlainRight = [sing]notesPlainRight.png +# the glow around unsung/sung notes - colorized with playercolors +NoteBGLeft = [sing]notesBgLeft.png +NoteBGMid = [sing]notesBgMid.png +NoteBGRight = [sing]notesBgRight.png +Pause = [sing]pause.png + +GrayLeftRap = [rap]notesLeft.png +GrayMidRap = [rap]notesMid.png +GrayRightRap = [rap]notesRight.png +NotePlainLeftRap = [rap]notesPlainLeft.png +NotePlainMidRap = [rap]notesPlainMid.png +NotePlainRightRap = [rap]notesPlainRight.png +NoteBGLeftRap = [rap]notesBgLeft.png +NoteBGMidRap = [rap]notesBgMid.png +NoteBGRightRap = [rap]notesBgRight.png + +# # # E F F E C T S # # # +NoteStar = [effect]goldenNoteStar.png +NotePerfectStar = [effect]perfectNoteStar.png + + +# # # dirty helpers # # # +Rectangle = [helper]rectangle.png +ButtonFade = [helper]buttonFade.png +BGFade = [special]bg_fade.png + + +# # # D U E T # # # +LyricIcon_P1 = [sing.player1]lyric_active.png +LyricIconD_P1 = [sing.player1]lyric_inactive.png +LyricIcon_P2 = [sing.player2]lyric_active.png +LyricIconD_P2 = [sing.player2]lyric_inactive.png +LyricIcon_P3 = [sing.player3]lyric_active.png +LyricIconD_P3 = [sing.player3]lyric_inactive.png +LyricIcon_P4 = [sing.player4]lyric_active.png +LyricIconD_P4 = [sing.player4]lyric_inactive.png +LyricIcon_P5 = [sing.player5]lyric_active.png +LyricIconD_P5 = [sing.player5]lyric_inactive.png +LyricIcon_P6 = [sing.player6]lyric_active.png +LyricIconD_P6 = [sing.player6]lyric_inactive.png + + +# # # DOWNLOAD SCORE # # # +ProgressBar = [sing]timeBar.jpg + +# # # J U K E B O X # # # +JukeboxTimeBar1 = [jukebox]timeBarBG.png +JukeboxTimeBar = [jukebox]timeBar.jpg +JukeboxSong = [jukebox]song.png +JukeboxSongBackground = [jukebox]title.png +JukeboxSongListBackground = [jukebox]songlist.png +JukeboxSongbartopBackground= [jukebox]bartop.png +JukeboxSongOptionsBackground = [jukebox]songoptions.png +JukeboxLyric = [jukebox]lyric.png +JukeboxRandom = [jukebox]random.png +JukeboxRepeat = [jukebox]repeat.png +JukeboxCurrentSongBackground = [jukebox]currentsong.png +JukeboxSongListUp = [jukebox]songlistup.png +JukeboxSongListDown = [jukebox]songlistdown.png +JukeboxOptions = [jukebox]options.png +JukeboxClose = [jukebox]close.png +JukeboxFix = [jukebox]pin.png +JukeboxSongMenuTimeBar = [jukebox]timeBarSongMenuBG.png +JukeboxSongMenuPlayPause = [jukebox]songmenuplaypause.png +JukeboxSongMenuNext = [jukebox]songmenunext.png +JukeboxSongMenuPrevious = [jukebox]songmenuprevious.png +JukeboxSongMenuPlaylist = [jukebox]songmenuplaylist.png +JukeboxSongSelection = [jukebox]songSelection.png +JukeboxField = [jukebox]fieldbg.png +JukeboxButton = [jukebox]mainBar.png +JukeboxSelect = [jukebox]selectbg.png + +# # # COLOR PICKER # # # +PickerBG = [color]pickerbg.png +Picker = [color]picker.jpg +Hue = [color]hue.png +HueBar = [color]hue-bar.png +WhiteFade = [color]white-fade.png +BlackFade = [color]black-fade.png +Pointer = [color]pointer.png + +# # # N A M E # # # +AvatarFrame = [name]frame.png +CurrentPlayer = [name]player.png +SelectFrame = [name]select.png +AvatarFrame2 = [score]frame.png + +# # # NO AVATARS # # # +NoAvatar_P1 = [name]noavatar.png +NoAvatar_P2 = [name]noavatar.png +NoAvatar_P3 = [name]noavatar.png +NoAvatar_P4 = [name]noavatar.png +NoAvatar_P5 = [name]noavatar.png +NoAvatar_P6 = [name]noavatar.png + +# # # A B O U T # # # +LogoWeb = [About]logo_web.png +LogoDeluxe = [About]logo_deluxe.png +AboutBG = [About]helperbg2.png + +# # # D E V E L O P E R S # # # +Dhelperbg = [Developers]helperbg.png \ No newline at end of file diff --git a/game/themes/common/[About]helperbg2.png b/game/themes/common/[About]helperbg2.png new file mode 100644 index 00000000..ba6f4918 Binary files /dev/null and b/game/themes/common/[About]helperbg2.png differ diff --git a/game/themes/common/[About]logo_web.png b/game/themes/common/[About]logo_web.png new file mode 100644 index 00000000..34cf75d6 Binary files /dev/null and b/game/themes/common/[About]logo_web.png differ diff --git a/game/themes/common/[Developers]helperbg.png b/game/themes/common/[Developers]helperbg.png new file mode 100644 index 00000000..88785b99 Binary files /dev/null and b/game/themes/common/[Developers]helperbg.png differ diff --git a/game/themes/Fantasy/[Options]buttonNetwork.png b/game/themes/common/[Options]buttonNetwork.png similarity index 100% rename from game/themes/Fantasy/[Options]buttonNetwork.png rename to game/themes/common/[Options]buttonNetwork.png diff --git a/game/themes/Fantasy/[Options]buttonWebcam.png b/game/themes/common/[Options]buttonWebcam.png similarity index 100% rename from game/themes/Fantasy/[Options]buttonWebcam.png rename to game/themes/common/[Options]buttonWebcam.png diff --git a/game/themes/Fantasy/[Options]buttonadvanced.png b/game/themes/common/[Options]buttonadvanced.png similarity index 100% rename from game/themes/Fantasy/[Options]buttonadvanced.png rename to game/themes/common/[Options]buttonadvanced.png diff --git a/game/themes/Fantasy/[Options]buttonback.png b/game/themes/common/[Options]buttonback.png similarity index 100% rename from game/themes/Fantasy/[Options]buttonback.png rename to game/themes/common/[Options]buttonback.png diff --git a/game/themes/Fantasy/[Options]buttondesign.png b/game/themes/common/[Options]buttondesign.png similarity index 100% rename from game/themes/Fantasy/[Options]buttondesign.png rename to game/themes/common/[Options]buttondesign.png diff --git a/game/themes/Fantasy/[Options]buttongame.png b/game/themes/common/[Options]buttongame.png similarity index 100% rename from game/themes/Fantasy/[Options]buttongame.png rename to game/themes/common/[Options]buttongame.png diff --git a/game/themes/Fantasy/[Options]buttongraphics.png b/game/themes/common/[Options]buttongraphics.png similarity index 100% rename from game/themes/Fantasy/[Options]buttongraphics.png rename to game/themes/common/[Options]buttongraphics.png diff --git a/game/themes/Fantasy/[Options]buttonjukebox.png b/game/themes/common/[Options]buttonjukebox.png similarity index 100% rename from game/themes/Fantasy/[Options]buttonjukebox.png rename to game/themes/common/[Options]buttonjukebox.png diff --git a/game/themes/Fantasy/[Options]buttonlyrics.png b/game/themes/common/[Options]buttonlyrics.png similarity index 100% rename from game/themes/Fantasy/[Options]buttonlyrics.png rename to game/themes/common/[Options]buttonlyrics.png diff --git a/game/themes/Fantasy/[Options]buttonduet.png b/game/themes/common/[Options]buttonmicrophones.png similarity index 100% rename from game/themes/Fantasy/[Options]buttonduet.png rename to game/themes/common/[Options]buttonmicrophones.png diff --git a/game/themes/Fantasy/[Options]buttonsound.png b/game/themes/common/[Options]buttonsound.png similarity index 100% rename from game/themes/Fantasy/[Options]buttonsound.png rename to game/themes/common/[Options]buttonsound.png diff --git a/game/themes/common/[bg-load]basic.jpg b/game/themes/common/[bg-load]basic.jpg new file mode 100644 index 00000000..4a394b3a Binary files /dev/null and b/game/themes/common/[bg-load]basic.jpg differ diff --git a/game/themes/Fantasy/[bg-main]Magma.webm b/game/themes/common/[bg-main]Magma.webm similarity index 100% rename from game/themes/Fantasy/[bg-main]Magma.webm rename to game/themes/common/[bg-main]Magma.webm diff --git a/game/themes/common/[bg-main]blue.jpg b/game/themes/common/[bg-main]blue.jpg new file mode 100644 index 00000000..658b4728 Binary files /dev/null and b/game/themes/common/[bg-main]blue.jpg differ diff --git a/game/themes/Fantasy/[bg-main]lines.webm b/game/themes/common/[bg-main]lines.webm similarity index 100% rename from game/themes/Fantasy/[bg-main]lines.webm rename to game/themes/common/[bg-main]lines.webm diff --git a/game/themes/Fantasy/[bg-main]love.webm b/game/themes/common/[bg-main]love.webm similarity index 100% rename from game/themes/Fantasy/[bg-main]love.webm rename to game/themes/common/[bg-main]love.webm diff --git a/game/themes/common/[bg-main]red.jpg b/game/themes/common/[bg-main]red.jpg new file mode 100644 index 00000000..68db580f Binary files /dev/null and b/game/themes/common/[bg-main]red.jpg differ diff --git a/game/themes/Fantasy/[bg-main]space.webm b/game/themes/common/[bg-main]space.webm similarity index 100% rename from game/themes/Fantasy/[bg-main]space.webm rename to game/themes/common/[bg-main]space.webm diff --git a/game/themes/common/[bg-main]violet.jpg b/game/themes/common/[bg-main]violet.jpg new file mode 100644 index 00000000..681e613a Binary files /dev/null and b/game/themes/common/[bg-main]violet.jpg differ diff --git a/game/themes/Fantasy/[button]13.png b/game/themes/common/[button]13.png similarity index 100% rename from game/themes/Fantasy/[button]13.png rename to game/themes/common/[button]13.png diff --git a/game/themes/Fantasy/[button]alt.png b/game/themes/common/[button]alt.png similarity index 100% rename from game/themes/Fantasy/[button]alt.png rename to game/themes/common/[button]alt.png diff --git a/game/themes/Fantasy/[button]az.png b/game/themes/common/[button]az.png similarity index 100% rename from game/themes/Fantasy/[button]az.png rename to game/themes/common/[button]az.png diff --git a/game/themes/Fantasy/[button]del.png b/game/themes/common/[button]del.png similarity index 100% rename from game/themes/Fantasy/[button]del.png rename to game/themes/common/[button]del.png diff --git a/game/themes/Fantasy/[button]enter.png b/game/themes/common/[button]enter.png similarity index 100% rename from game/themes/Fantasy/[button]enter.png rename to game/themes/common/[button]enter.png diff --git a/game/themes/Fantasy/[button]esc.png b/game/themes/common/[button]esc.png similarity index 100% rename from game/themes/Fantasy/[button]esc.png rename to game/themes/common/[button]esc.png diff --git a/game/themes/Fantasy/[button]ins.png b/game/themes/common/[button]ins.png similarity index 100% rename from game/themes/Fantasy/[button]ins.png rename to game/themes/common/[button]ins.png diff --git a/game/themes/Fantasy/[button]j.png b/game/themes/common/[button]j.png similarity index 100% rename from game/themes/Fantasy/[button]j.png rename to game/themes/common/[button]j.png diff --git a/game/themes/Fantasy/[button]m.png b/game/themes/common/[button]m.png similarity index 100% rename from game/themes/Fantasy/[button]m.png rename to game/themes/common/[button]m.png diff --git a/game/themes/Fantasy/[button]navi.png b/game/themes/common/[button]navi.png similarity index 100% rename from game/themes/Fantasy/[button]navi.png rename to game/themes/common/[button]navi.png diff --git a/game/themes/Fantasy/[button]p.png b/game/themes/common/[button]p.png similarity index 100% rename from game/themes/Fantasy/[button]p.png rename to game/themes/common/[button]p.png diff --git a/game/themes/Fantasy/[color]black-fade.png b/game/themes/common/[color]black-fade.png similarity index 100% rename from game/themes/Fantasy/[color]black-fade.png rename to game/themes/common/[color]black-fade.png diff --git a/game/themes/Fantasy/[color]hue-bar.png b/game/themes/common/[color]hue-bar.png similarity index 100% rename from game/themes/Fantasy/[color]hue-bar.png rename to game/themes/common/[color]hue-bar.png diff --git a/game/themes/Fantasy/[color]picker.jpg b/game/themes/common/[color]picker.jpg similarity index 100% rename from game/themes/Fantasy/[color]picker.jpg rename to game/themes/common/[color]picker.jpg diff --git a/game/themes/Fantasy/[color]picker.png b/game/themes/common/[color]picker.png similarity index 100% rename from game/themes/Fantasy/[color]picker.png rename to game/themes/common/[color]picker.png diff --git a/game/themes/Fantasy/[color]pickerbg.png b/game/themes/common/[color]pickerbg.png similarity index 100% rename from game/themes/Fantasy/[color]pickerbg.png rename to game/themes/common/[color]pickerbg.png diff --git a/game/themes/Fantasy/[color]pointer.png b/game/themes/common/[color]pointer.png similarity index 100% rename from game/themes/Fantasy/[color]pointer.png rename to game/themes/common/[color]pointer.png diff --git a/game/themes/Fantasy/[color]white-fade.png b/game/themes/common/[color]white-fade.png similarity index 100% rename from game/themes/Fantasy/[color]white-fade.png rename to game/themes/common/[color]white-fade.png diff --git a/game/themes/common/[effect]goldenNoteStar.png b/game/themes/common/[effect]goldenNoteStar.png new file mode 100644 index 00000000..bd3e21a5 Binary files /dev/null and b/game/themes/common/[effect]goldenNoteStar.png differ diff --git a/game/themes/common/[effect]perfectNoteStar.png b/game/themes/common/[effect]perfectNoteStar.png new file mode 100644 index 00000000..a9d0fccf Binary files /dev/null and b/game/themes/common/[effect]perfectNoteStar.png differ diff --git a/game/themes/Fantasy/[helper]buttonFade.png b/game/themes/common/[helper]buttonFade.png similarity index 100% rename from game/themes/Fantasy/[helper]buttonFade.png rename to game/themes/common/[helper]buttonFade.png diff --git a/game/themes/Fantasy/[helper]rectangle.png b/game/themes/common/[helper]rectangle.png similarity index 100% rename from game/themes/Fantasy/[helper]rectangle.png rename to game/themes/common/[helper]rectangle.png diff --git a/game/themes/Fantasy/[icon]song_calcmedley.png b/game/themes/common/[icon]song_calcmedley.png similarity index 100% rename from game/themes/Fantasy/[icon]song_calcmedley.png rename to game/themes/common/[icon]song_calcmedley.png diff --git a/game/themes/Fantasy/[icon]song_duet.png b/game/themes/common/[icon]song_duet.png similarity index 100% rename from game/themes/Fantasy/[icon]song_duet.png rename to game/themes/common/[icon]song_duet.png diff --git a/game/themes/Fantasy/[icon]song_medley.png b/game/themes/common/[icon]song_medley.png similarity index 100% rename from game/themes/Fantasy/[icon]song_medley.png rename to game/themes/common/[icon]song_medley.png diff --git a/game/themes/Fantasy/[icon]song_menu.png b/game/themes/common/[icon]song_menu.png similarity index 100% rename from game/themes/Fantasy/[icon]song_menu.png rename to game/themes/common/[icon]song_menu.png diff --git a/game/themes/Fantasy/[icon]song_search.png b/game/themes/common/[icon]song_search.png similarity index 100% rename from game/themes/Fantasy/[icon]song_search.png rename to game/themes/common/[icon]song_search.png diff --git a/game/themes/Fantasy/[icon]song_video.png b/game/themes/common/[icon]song_video.png similarity index 100% rename from game/themes/Fantasy/[icon]song_video.png rename to game/themes/common/[icon]song_video.png diff --git a/game/themes/common/[interface]cursor.png b/game/themes/common/[interface]cursor.png new file mode 100644 index 00000000..c648973f Binary files /dev/null and b/game/themes/common/[interface]cursor.png differ diff --git a/game/themes/common/[interface]cursor_pressed.png b/game/themes/common/[interface]cursor_pressed.png new file mode 100644 index 00000000..e706e3be Binary files /dev/null and b/game/themes/common/[interface]cursor_pressed.png differ diff --git a/game/themes/common/[interface]dialog_background.png b/game/themes/common/[interface]dialog_background.png new file mode 100644 index 00000000..188f3d1d Binary files /dev/null and b/game/themes/common/[interface]dialog_background.png differ diff --git a/game/themes/Fantasy/[interface]dialog_background2.png b/game/themes/common/[interface]dialog_background2.png similarity index 100% rename from game/themes/Fantasy/[interface]dialog_background2.png rename to game/themes/common/[interface]dialog_background2.png diff --git a/game/themes/Fantasy/[interface]dialog_backgroundtop.png b/game/themes/common/[interface]dialog_backgroundtop.png similarity index 100% rename from game/themes/Fantasy/[interface]dialog_backgroundtop.png rename to game/themes/common/[interface]dialog_backgroundtop.png diff --git a/game/themes/common/[interface]select_arrow_left.png b/game/themes/common/[interface]select_arrow_left.png new file mode 100644 index 00000000..eb62e8b2 Binary files /dev/null and b/game/themes/common/[interface]select_arrow_left.png differ diff --git a/game/themes/common/[interface]select_arrow_right.png b/game/themes/common/[interface]select_arrow_right.png new file mode 100644 index 00000000..cce260b0 Binary files /dev/null and b/game/themes/common/[interface]select_arrow_right.png differ diff --git a/game/themes/Fantasy/[interface]selectbg_search.png b/game/themes/common/[interface]selectbg_search.png similarity index 100% rename from game/themes/Fantasy/[interface]selectbg_search.png rename to game/themes/common/[interface]selectbg_search.png diff --git a/game/themes/common/[jukebox]bartop.png b/game/themes/common/[jukebox]bartop.png new file mode 100644 index 00000000..7ef2a9a3 Binary files /dev/null and b/game/themes/common/[jukebox]bartop.png differ diff --git a/game/themes/common/[jukebox]close.png b/game/themes/common/[jukebox]close.png new file mode 100644 index 00000000..447ab1fb Binary files /dev/null and b/game/themes/common/[jukebox]close.png differ diff --git a/game/themes/Fantasy/[jukebox]currentsong.png b/game/themes/common/[jukebox]currentsong.png similarity index 100% rename from game/themes/Fantasy/[jukebox]currentsong.png rename to game/themes/common/[jukebox]currentsong.png diff --git a/game/themes/common/[jukebox]lyric.png b/game/themes/common/[jukebox]lyric.png new file mode 100644 index 00000000..cda4296f Binary files /dev/null and b/game/themes/common/[jukebox]lyric.png differ diff --git a/game/themes/common/[jukebox]options.png b/game/themes/common/[jukebox]options.png new file mode 100644 index 00000000..e28f424f Binary files /dev/null and b/game/themes/common/[jukebox]options.png differ diff --git a/game/themes/common/[jukebox]pin.png b/game/themes/common/[jukebox]pin.png new file mode 100644 index 00000000..49aa1a45 Binary files /dev/null and b/game/themes/common/[jukebox]pin.png differ diff --git a/game/themes/common/[jukebox]random.png b/game/themes/common/[jukebox]random.png new file mode 100644 index 00000000..d1705215 Binary files /dev/null and b/game/themes/common/[jukebox]random.png differ diff --git a/game/themes/common/[jukebox]repeat.png b/game/themes/common/[jukebox]repeat.png new file mode 100644 index 00000000..a99eac5a Binary files /dev/null and b/game/themes/common/[jukebox]repeat.png differ diff --git a/game/themes/common/[jukebox]songlist.png b/game/themes/common/[jukebox]songlist.png new file mode 100644 index 00000000..8a78179f Binary files /dev/null and b/game/themes/common/[jukebox]songlist.png differ diff --git a/game/themes/common/[jukebox]songlistdown.png b/game/themes/common/[jukebox]songlistdown.png new file mode 100644 index 00000000..fde877de Binary files /dev/null and b/game/themes/common/[jukebox]songlistdown.png differ diff --git a/game/themes/common/[jukebox]songlistup.png b/game/themes/common/[jukebox]songlistup.png new file mode 100644 index 00000000..2ce68bd5 Binary files /dev/null and b/game/themes/common/[jukebox]songlistup.png differ diff --git a/game/themes/common/[jukebox]songmenunext.png b/game/themes/common/[jukebox]songmenunext.png new file mode 100644 index 00000000..3d2faa52 Binary files /dev/null and b/game/themes/common/[jukebox]songmenunext.png differ diff --git a/game/themes/common/[jukebox]songmenuplaylist.png b/game/themes/common/[jukebox]songmenuplaylist.png new file mode 100644 index 00000000..743e6523 Binary files /dev/null and b/game/themes/common/[jukebox]songmenuplaylist.png differ diff --git a/game/themes/common/[jukebox]songmenuplaypause.png b/game/themes/common/[jukebox]songmenuplaypause.png new file mode 100644 index 00000000..1639122b Binary files /dev/null and b/game/themes/common/[jukebox]songmenuplaypause.png differ diff --git a/game/themes/common/[jukebox]songmenuprevious.png b/game/themes/common/[jukebox]songmenuprevious.png new file mode 100644 index 00000000..e971709d Binary files /dev/null and b/game/themes/common/[jukebox]songmenuprevious.png differ diff --git a/game/themes/common/[jukebox]songoptions.png b/game/themes/common/[jukebox]songoptions.png new file mode 100644 index 00000000..f38ea905 Binary files /dev/null and b/game/themes/common/[jukebox]songoptions.png differ diff --git a/game/themes/Fantasy/[jukebox]songlist.png b/game/themes/common/[jukebox]songselection.png similarity index 100% rename from game/themes/Fantasy/[jukebox]songlist.png rename to game/themes/common/[jukebox]songselection.png diff --git a/game/themes/Fantasy/[jukebox]timeBar.jpg b/game/themes/common/[jukebox]timeBar.jpg similarity index 100% rename from game/themes/Fantasy/[jukebox]timeBar.jpg rename to game/themes/common/[jukebox]timeBar.jpg diff --git a/game/themes/Fantasy/[jukebox]timeBarBG.png b/game/themes/common/[jukebox]timeBarBG.png similarity index 100% rename from game/themes/Fantasy/[jukebox]timeBarBG.png rename to game/themes/common/[jukebox]timeBarBG.png diff --git a/game/themes/Fantasy/[jukebox]timeBarSongMenuBG.png b/game/themes/common/[jukebox]timeBarSongMenuBG.png similarity index 100% rename from game/themes/Fantasy/[jukebox]timeBarSongMenuBG.png rename to game/themes/common/[jukebox]timeBarSongMenuBG.png diff --git a/game/themes/Fantasy/[jukebox]title.png b/game/themes/common/[jukebox]title.png similarity index 100% rename from game/themes/Fantasy/[jukebox]title.png rename to game/themes/common/[jukebox]title.png diff --git a/game/themes/Fantasy/[main]button.png b/game/themes/common/[main]button.png similarity index 100% rename from game/themes/Fantasy/[main]button.png rename to game/themes/common/[main]button.png diff --git a/game/themes/common/[main]button2.png b/game/themes/common/[main]button2.png new file mode 100644 index 00000000..8a722346 Binary files /dev/null and b/game/themes/common/[main]button2.png differ diff --git a/game/themes/Fantasy/[main]buttonabout.png b/game/themes/common/[main]buttonabout.png similarity index 100% rename from game/themes/Fantasy/[main]buttonabout.png rename to game/themes/common/[main]buttonabout.png diff --git a/game/themes/Fantasy/[main]buttonexit.png b/game/themes/common/[main]buttonexit.png similarity index 100% rename from game/themes/Fantasy/[main]buttonexit.png rename to game/themes/common/[main]buttonexit.png diff --git a/game/themes/Fantasy/[main]buttonf.jpg b/game/themes/common/[main]buttonf.jpg similarity index 100% rename from game/themes/Fantasy/[main]buttonf.jpg rename to game/themes/common/[main]buttonf.jpg diff --git a/game/themes/Fantasy/[main]buttonjukebox.png b/game/themes/common/[main]buttonjukebox.png similarity index 100% rename from game/themes/Fantasy/[main]buttonjukebox.png rename to game/themes/common/[main]buttonjukebox.png diff --git a/game/themes/Fantasy/[main]buttonoption.png b/game/themes/common/[main]buttonoption.png similarity index 100% rename from game/themes/Fantasy/[main]buttonoption.png rename to game/themes/common/[main]buttonoption.png diff --git a/game/themes/Fantasy/[main]buttonparty.png b/game/themes/common/[main]buttonparty.png similarity index 100% rename from game/themes/Fantasy/[main]buttonparty.png rename to game/themes/common/[main]buttonparty.png diff --git a/game/themes/Fantasy/[main]buttonsolo.png b/game/themes/common/[main]buttonsolo.png similarity index 100% rename from game/themes/Fantasy/[main]buttonsolo.png rename to game/themes/common/[main]buttonsolo.png diff --git a/game/themes/Fantasy/[main]buttonstats.png b/game/themes/common/[main]buttonstats.png similarity index 100% rename from game/themes/Fantasy/[main]buttonstats.png rename to game/themes/common/[main]buttonstats.png diff --git a/game/themes/Fantasy/[main]mainBar.png b/game/themes/common/[main]mainBar.png similarity index 100% rename from game/themes/Fantasy/[main]mainBar.png rename to game/themes/common/[main]mainBar.png diff --git a/game/themes/Fantasy/[main]playerNumberBox.png b/game/themes/common/[main]playerNumberBox.png similarity index 100% rename from game/themes/Fantasy/[main]playerNumberBox.png rename to game/themes/common/[main]playerNumberBox.png diff --git a/game/themes/Fantasy/[main]selectbg.png b/game/themes/common/[main]selectbg.png similarity index 100% rename from game/themes/Fantasy/[main]selectbg.png rename to game/themes/common/[main]selectbg.png diff --git a/game/themes/Fantasy/[main]songSelection1.png b/game/themes/common/[main]songSelection1.png similarity index 100% rename from game/themes/Fantasy/[main]songSelection1.png rename to game/themes/common/[main]songSelection1.png diff --git a/game/themes/Fantasy/[main]songSelection1dn.png b/game/themes/common/[main]songSelection1dn.png similarity index 100% rename from game/themes/Fantasy/[main]songSelection1dn.png rename to game/themes/common/[main]songSelection1dn.png diff --git a/game/themes/Fantasy/[main]songSelection1up.png b/game/themes/common/[main]songSelection1up.png similarity index 100% rename from game/themes/Fantasy/[main]songSelection1up.png rename to game/themes/common/[main]songSelection1up.png diff --git a/game/themes/Fantasy/[main]songSelection2.png b/game/themes/common/[main]songSelection2.png similarity index 100% rename from game/themes/Fantasy/[main]songSelection2.png rename to game/themes/common/[main]songSelection2.png diff --git a/game/themes/Fantasy/[main]songSelection3.png b/game/themes/common/[main]songSelection3.png similarity index 100% rename from game/themes/Fantasy/[main]songSelection3.png rename to game/themes/common/[main]songSelection3.png diff --git a/game/themes/Fantasy/[main]songSelection4.png b/game/themes/common/[main]songSelection4.png similarity index 100% rename from game/themes/Fantasy/[main]songSelection4.png rename to game/themes/common/[main]songSelection4.png diff --git a/game/themes/Fantasy/[main]songSelection5.png b/game/themes/common/[main]songSelection5.png similarity index 100% rename from game/themes/Fantasy/[main]songSelection5.png rename to game/themes/common/[main]songSelection5.png diff --git a/game/themes/Fantasy/[menu]songMenuBg.png b/game/themes/common/[menu]songMenuBg.png similarity index 100% rename from game/themes/Fantasy/[menu]songMenuBg.png rename to game/themes/common/[menu]songMenuBg.png diff --git a/game/themes/Fantasy/[menu]songMenuSelectBg.png b/game/themes/common/[menu]songMenuSelectBg.png similarity index 100% rename from game/themes/Fantasy/[menu]songMenuSelectBg.png rename to game/themes/common/[menu]songMenuSelectBg.png diff --git a/game/themes/Fantasy/[name]frame.png b/game/themes/common/[name]frame.png similarity index 100% rename from game/themes/Fantasy/[name]frame.png rename to game/themes/common/[name]frame.png diff --git a/game/themes/common/[name]noavatar.png b/game/themes/common/[name]noavatar.png new file mode 100644 index 00000000..2a7801d9 Binary files /dev/null and b/game/themes/common/[name]noavatar.png differ diff --git a/game/themes/Fantasy/[name]player.png b/game/themes/common/[name]player.png similarity index 100% rename from game/themes/Fantasy/[name]player.png rename to game/themes/common/[name]player.png diff --git a/game/themes/common/[name]select.png b/game/themes/common/[name]select.png new file mode 100644 index 00000000..74baa9f2 Binary files /dev/null and b/game/themes/common/[name]select.png differ diff --git a/game/themes/Fantasy/[party]Joker.png b/game/themes/common/[party]Joker.png similarity index 100% rename from game/themes/Fantasy/[party]Joker.png rename to game/themes/common/[party]Joker.png diff --git a/game/themes/Fantasy/[party]playerButton.png b/game/themes/common/[party]playerButton.png similarity index 100% rename from game/themes/Fantasy/[party]playerButton.png rename to game/themes/common/[party]playerButton.png diff --git a/game/themes/Fantasy/[party]playerTeamButton.png b/game/themes/common/[party]playerTeamButton.png similarity index 100% rename from game/themes/Fantasy/[party]playerTeamButton.png rename to game/themes/common/[party]playerTeamButton.png diff --git a/game/themes/Fantasy/[party]playerselectbg.png b/game/themes/common/[party]playerselectbg.png similarity index 100% rename from game/themes/Fantasy/[party]playerselectbg.png rename to game/themes/common/[party]playerselectbg.png diff --git a/game/themes/Fantasy/[party]pointer.png b/game/themes/common/[party]pointer.png similarity index 100% rename from game/themes/Fantasy/[party]pointer.png rename to game/themes/common/[party]pointer.png diff --git a/game/themes/Fantasy/[party]roundBG1.png b/game/themes/common/[party]roundBG1.png similarity index 100% rename from game/themes/Fantasy/[party]roundBG1.png rename to game/themes/common/[party]roundBG1.png diff --git a/game/themes/Fantasy/[party]roundBG2.png b/game/themes/common/[party]roundBG2.png similarity index 100% rename from game/themes/Fantasy/[party]roundBG2.png rename to game/themes/common/[party]roundBG2.png diff --git a/game/themes/Fantasy/[party]roundBG3.png b/game/themes/common/[party]roundBG3.png similarity index 100% rename from game/themes/Fantasy/[party]roundBG3.png rename to game/themes/common/[party]roundBG3.png diff --git a/game/themes/Fantasy/[party]roundBG4.png b/game/themes/common/[party]roundBG4.png similarity index 100% rename from game/themes/Fantasy/[party]roundBG4.png rename to game/themes/common/[party]roundBG4.png diff --git a/game/themes/Fantasy/[party]roundTeamButton.png b/game/themes/common/[party]roundTeamButton.png similarity index 100% rename from game/themes/Fantasy/[party]roundTeamButton.png rename to game/themes/common/[party]roundTeamButton.png diff --git a/game/themes/Fantasy/[party]scoreBG1.png b/game/themes/common/[party]scoreBG1.png similarity index 100% rename from game/themes/Fantasy/[party]scoreBG1.png rename to game/themes/common/[party]scoreBG1.png diff --git a/game/themes/Fantasy/[party]scoreBG2.png b/game/themes/common/[party]scoreBG2.png similarity index 100% rename from game/themes/Fantasy/[party]scoreBG2.png rename to game/themes/common/[party]scoreBG2.png diff --git a/game/themes/common/[party]scoreDecoration.png b/game/themes/common/[party]scoreDecoration.png new file mode 100644 index 00000000..4d820510 Binary files /dev/null and b/game/themes/common/[party]scoreDecoration.png differ diff --git a/game/themes/Fantasy/[party]teamPoints.png b/game/themes/common/[party]teamPoints.png similarity index 100% rename from game/themes/Fantasy/[party]teamPoints.png rename to game/themes/common/[party]teamPoints.png diff --git a/game/themes/common/[party]winDecoration.png b/game/themes/common/[party]winDecoration.png new file mode 100644 index 00000000..e3506eea Binary files /dev/null and b/game/themes/common/[party]winDecoration.png differ diff --git a/game/themes/Fantasy/[party]winTeamButton1.png b/game/themes/common/[party]winTeamButton1.png similarity index 100% rename from game/themes/Fantasy/[party]winTeamButton1.png rename to game/themes/common/[party]winTeamButton1.png diff --git a/game/themes/Fantasy/[party]winTeamButton2.png b/game/themes/common/[party]winTeamButton2.png similarity index 100% rename from game/themes/Fantasy/[party]winTeamButton2.png rename to game/themes/common/[party]winTeamButton2.png diff --git a/game/themes/Fantasy/[party]winTeamButton3.png b/game/themes/common/[party]winTeamButton3.png similarity index 100% rename from game/themes/Fantasy/[party]winTeamButton3.png rename to game/themes/common/[party]winTeamButton3.png diff --git a/game/themes/common/[rap]notesBgLeft.png b/game/themes/common/[rap]notesBgLeft.png new file mode 100644 index 00000000..5453de15 Binary files /dev/null and b/game/themes/common/[rap]notesBgLeft.png differ diff --git a/game/themes/common/[rap]notesBgMid.png b/game/themes/common/[rap]notesBgMid.png new file mode 100644 index 00000000..548339f8 Binary files /dev/null and b/game/themes/common/[rap]notesBgMid.png differ diff --git a/game/themes/common/[rap]notesBgRight.png b/game/themes/common/[rap]notesBgRight.png new file mode 100644 index 00000000..ac86226b Binary files /dev/null and b/game/themes/common/[rap]notesBgRight.png differ diff --git a/game/themes/common/[rap]notesLeft.png b/game/themes/common/[rap]notesLeft.png new file mode 100644 index 00000000..77456896 Binary files /dev/null and b/game/themes/common/[rap]notesLeft.png differ diff --git a/game/themes/common/[rap]notesMid.png b/game/themes/common/[rap]notesMid.png new file mode 100644 index 00000000..4696dbb1 Binary files /dev/null and b/game/themes/common/[rap]notesMid.png differ diff --git a/game/themes/common/[rap]notesPlainLeft.png b/game/themes/common/[rap]notesPlainLeft.png new file mode 100644 index 00000000..fc2a407c Binary files /dev/null and b/game/themes/common/[rap]notesPlainLeft.png differ diff --git a/game/themes/common/[rap]notesPlainMid.png b/game/themes/common/[rap]notesPlainMid.png new file mode 100644 index 00000000..50895c6c Binary files /dev/null and b/game/themes/common/[rap]notesPlainMid.png differ diff --git a/game/themes/common/[rap]notesPlainRight.png b/game/themes/common/[rap]notesPlainRight.png new file mode 100644 index 00000000..8de39464 Binary files /dev/null and b/game/themes/common/[rap]notesPlainRight.png differ diff --git a/game/themes/common/[rap]notesRight.png b/game/themes/common/[rap]notesRight.png new file mode 100644 index 00000000..2c80fcea Binary files /dev/null and b/game/themes/common/[rap]notesRight.png differ diff --git a/game/themes/Fantasy/[score]Line.png b/game/themes/common/[score]Line.png similarity index 100% rename from game/themes/Fantasy/[score]Line.png rename to game/themes/common/[score]Line.png diff --git a/game/themes/Fantasy/[score]bar_box_dark.png b/game/themes/common/[score]bar_box_dark.png similarity index 100% rename from game/themes/Fantasy/[score]bar_box_dark.png rename to game/themes/common/[score]bar_box_dark.png diff --git a/game/themes/Fantasy/[score]bar_box_light.png b/game/themes/common/[score]bar_box_light.png similarity index 100% rename from game/themes/Fantasy/[score]bar_box_light.png rename to game/themes/common/[score]bar_box_light.png diff --git a/game/themes/Fantasy/[score]bar_box_lightest.png b/game/themes/common/[score]bar_box_lightest.png similarity index 100% rename from game/themes/Fantasy/[score]bar_box_lightest.png rename to game/themes/common/[score]bar_box_lightest.png diff --git a/game/themes/Fantasy/[score]box.png b/game/themes/common/[score]box.png similarity index 100% rename from game/themes/Fantasy/[score]box.png rename to game/themes/common/[score]box.png diff --git a/game/themes/Fantasy/[score]buttonsendscore.png b/game/themes/common/[score]buttonsendscore.png similarity index 100% rename from game/themes/Fantasy/[score]buttonsendscore.png rename to game/themes/common/[score]buttonsendscore.png diff --git a/game/themes/Fantasy/[score]endcap.png b/game/themes/common/[score]endcap.png similarity index 100% rename from game/themes/Fantasy/[score]endcap.png rename to game/themes/common/[score]endcap.png diff --git a/game/themes/common/[score]frame.png b/game/themes/common/[score]frame.png new file mode 100644 index 00000000..ca324de4 Binary files /dev/null and b/game/themes/common/[score]frame.png differ diff --git a/game/themes/Fantasy/[score]glass_box.png b/game/themes/common/[score]glass_box.png similarity index 100% rename from game/themes/Fantasy/[score]glass_box.png rename to game/themes/common/[score]glass_box.png diff --git a/game/themes/Fantasy/[score]level.png b/game/themes/common/[score]level.png similarity index 100% rename from game/themes/Fantasy/[score]level.png rename to game/themes/common/[score]level.png diff --git a/game/themes/Fantasy/[score]levelRound.png b/game/themes/common/[score]levelRound.png similarity index 100% rename from game/themes/Fantasy/[score]levelRound.png rename to game/themes/common/[score]levelRound.png diff --git a/game/themes/Fantasy/[score]level_dark.png b/game/themes/common/[score]level_dark.png similarity index 100% rename from game/themes/Fantasy/[score]level_dark.png rename to game/themes/common/[score]level_dark.png diff --git a/game/themes/Fantasy/[score]level_dark_round.png b/game/themes/common/[score]level_dark_round.png similarity index 100% rename from game/themes/Fantasy/[score]level_dark_round.png rename to game/themes/common/[score]level_dark_round.png diff --git a/game/themes/Fantasy/[score]level_light.png b/game/themes/common/[score]level_light.png similarity index 100% rename from game/themes/Fantasy/[score]level_light.png rename to game/themes/common/[score]level_light.png diff --git a/game/themes/Fantasy/[score]level_light_round.png b/game/themes/common/[score]level_light_round.png similarity index 100% rename from game/themes/Fantasy/[score]level_light_round.png rename to game/themes/common/[score]level_light_round.png diff --git a/game/themes/Fantasy/[score]level_lightest.png b/game/themes/common/[score]level_lightest.png similarity index 100% rename from game/themes/Fantasy/[score]level_lightest.png rename to game/themes/common/[score]level_lightest.png diff --git a/game/themes/Fantasy/[score]level_lightest_round.png b/game/themes/common/[score]level_lightest_round.png similarity index 100% rename from game/themes/Fantasy/[score]level_lightest_round.png rename to game/themes/common/[score]level_lightest_round.png diff --git a/game/themes/common/[score]rating_0.png b/game/themes/common/[score]rating_0.png new file mode 100644 index 00000000..ce32746f Binary files /dev/null and b/game/themes/common/[score]rating_0.png differ diff --git a/game/themes/common/[score]rating_1.png b/game/themes/common/[score]rating_1.png new file mode 100644 index 00000000..eb188371 Binary files /dev/null and b/game/themes/common/[score]rating_1.png differ diff --git a/game/themes/common/[score]rating_2.png b/game/themes/common/[score]rating_2.png new file mode 100644 index 00000000..51489a15 Binary files /dev/null and b/game/themes/common/[score]rating_2.png differ diff --git a/game/themes/common/[score]rating_3.png b/game/themes/common/[score]rating_3.png new file mode 100644 index 00000000..48fc5348 Binary files /dev/null and b/game/themes/common/[score]rating_3.png differ diff --git a/game/themes/common/[score]rating_4.png b/game/themes/common/[score]rating_4.png new file mode 100644 index 00000000..738437d5 Binary files /dev/null and b/game/themes/common/[score]rating_4.png differ diff --git a/game/themes/common/[score]rating_5.png b/game/themes/common/[score]rating_5.png new file mode 100644 index 00000000..74352524 Binary files /dev/null and b/game/themes/common/[score]rating_5.png differ diff --git a/game/themes/common/[score]rating_6.png b/game/themes/common/[score]rating_6.png new file mode 100644 index 00000000..b80563c8 Binary files /dev/null and b/game/themes/common/[score]rating_6.png differ diff --git a/game/themes/common/[score]rating_7.png b/game/themes/common/[score]rating_7.png new file mode 100644 index 00000000..c8ba1131 Binary files /dev/null and b/game/themes/common/[score]rating_7.png differ diff --git a/game/themes/Fantasy/[sing]LyricsBall.png b/game/themes/common/[sing]LyricsBall.png similarity index 100% rename from game/themes/Fantasy/[sing]LyricsBall.png rename to game/themes/common/[sing]LyricsBall.png diff --git a/game/themes/Fantasy/[sing]SongName.png b/game/themes/common/[sing]SongName.png similarity index 100% rename from game/themes/Fantasy/[sing]SongName.png rename to game/themes/common/[sing]SongName.png diff --git a/game/themes/Fantasy/[sing]lineBonusPopUp.png b/game/themes/common/[sing]lineBonusPopUp.png similarity index 100% rename from game/themes/Fantasy/[sing]lineBonusPopUp.png rename to game/themes/common/[sing]lineBonusPopUp.png diff --git a/game/themes/common/[sing]lyricsHelpBar.png b/game/themes/common/[sing]lyricsHelpBar.png new file mode 100644 index 00000000..420190b7 Binary files /dev/null and b/game/themes/common/[sing]lyricsHelpBar.png differ diff --git a/game/themes/common/[sing]notesBgLeft.png b/game/themes/common/[sing]notesBgLeft.png new file mode 100644 index 00000000..1e015fc6 Binary files /dev/null and b/game/themes/common/[sing]notesBgLeft.png differ diff --git a/game/themes/common/[sing]notesBgMid.png b/game/themes/common/[sing]notesBgMid.png new file mode 100644 index 00000000..6d938a80 Binary files /dev/null and b/game/themes/common/[sing]notesBgMid.png differ diff --git a/game/themes/common/[sing]notesBgRight.png b/game/themes/common/[sing]notesBgRight.png new file mode 100644 index 00000000..d8041688 Binary files /dev/null and b/game/themes/common/[sing]notesBgRight.png differ diff --git a/game/themes/common/[sing]notesLeft.png b/game/themes/common/[sing]notesLeft.png new file mode 100644 index 00000000..670afd8b Binary files /dev/null and b/game/themes/common/[sing]notesLeft.png differ diff --git a/game/themes/common/[sing]notesMid.png b/game/themes/common/[sing]notesMid.png new file mode 100644 index 00000000..439657be Binary files /dev/null and b/game/themes/common/[sing]notesMid.png differ diff --git a/game/themes/common/[sing]notesPlainLeft.png b/game/themes/common/[sing]notesPlainLeft.png new file mode 100644 index 00000000..7c7a5c02 Binary files /dev/null and b/game/themes/common/[sing]notesPlainLeft.png differ diff --git a/game/themes/common/[sing]notesPlainMid.png b/game/themes/common/[sing]notesPlainMid.png new file mode 100644 index 00000000..2bf70fb7 Binary files /dev/null and b/game/themes/common/[sing]notesPlainMid.png differ diff --git a/game/themes/common/[sing]notesPlainRight.png b/game/themes/common/[sing]notesPlainRight.png new file mode 100644 index 00000000..d35abe2b Binary files /dev/null and b/game/themes/common/[sing]notesPlainRight.png differ diff --git a/game/themes/common/[sing]notesRight.png b/game/themes/common/[sing]notesRight.png new file mode 100644 index 00000000..8ab6995a Binary files /dev/null and b/game/themes/common/[sing]notesRight.png differ diff --git a/game/themes/Fantasy/[sing]p.png b/game/themes/common/[sing]p.png similarity index 100% rename from game/themes/Fantasy/[sing]p.png rename to game/themes/common/[sing]p.png diff --git a/game/themes/common/[sing]pause.png b/game/themes/common/[sing]pause.png new file mode 100644 index 00000000..288c0997 Binary files /dev/null and b/game/themes/common/[sing]pause.png differ diff --git a/game/themes/Fantasy/[sing]scoreBg.jpg b/game/themes/common/[sing]scoreBg.jpg similarity index 100% rename from game/themes/Fantasy/[sing]scoreBg.jpg rename to game/themes/common/[sing]scoreBg.jpg diff --git a/game/themes/Fantasy/[sing]scoreBg.png b/game/themes/common/[sing]scoreBg.png similarity index 100% rename from game/themes/Fantasy/[sing]scoreBg.png rename to game/themes/common/[sing]scoreBg.png diff --git a/game/themes/Fantasy/[sing]singBarBack.png b/game/themes/common/[sing]singBarBack.png similarity index 100% rename from game/themes/Fantasy/[sing]singBarBack.png rename to game/themes/common/[sing]singBarBack.png diff --git a/game/themes/Fantasy/[sing]singBarBar.jpg b/game/themes/common/[sing]singBarBar.jpg similarity index 100% rename from game/themes/Fantasy/[sing]singBarBar.jpg rename to game/themes/common/[sing]singBarBar.jpg diff --git a/game/themes/Fantasy/[sing]singBarBar.png b/game/themes/common/[sing]singBarBar.png similarity index 100% rename from game/themes/Fantasy/[sing]singBarBar.png rename to game/themes/common/[sing]singBarBar.png diff --git a/game/themes/Fantasy/[sing]singBarFront.png b/game/themes/common/[sing]singBarFront.png similarity index 100% rename from game/themes/Fantasy/[sing]singBarFront.png rename to game/themes/common/[sing]singBarFront.png diff --git a/game/themes/common/[sing]textBar.png b/game/themes/common/[sing]textBar.png new file mode 100644 index 00000000..9fe4e26c Binary files /dev/null and b/game/themes/common/[sing]textBar.png differ diff --git a/game/themes/Fantasy/[sing]textBarDuet.png b/game/themes/common/[sing]textBarDuet.png similarity index 100% rename from game/themes/Fantasy/[sing]textBarDuet.png rename to game/themes/common/[sing]textBarDuet.png diff --git a/game/themes/Fantasy/[sing]timeBar.jpg b/game/themes/common/[sing]timeBar.jpg similarity index 100% rename from game/themes/Fantasy/[sing]timeBar.jpg rename to game/themes/common/[sing]timeBar.jpg diff --git a/game/themes/common/[sing]timeBarBG.png b/game/themes/common/[sing]timeBarBG.png new file mode 100644 index 00000000..6014fd75 Binary files /dev/null and b/game/themes/common/[sing]timeBarBG.png differ diff --git a/game/themes/Fantasy/[sing]timeBarBG2.png b/game/themes/common/[sing]timeBarBG2.png similarity index 100% rename from game/themes/Fantasy/[sing]timeBarBG2.png rename to game/themes/common/[sing]timeBarBG2.png diff --git a/game/themes/Fantasy/[song]duetsinger.png b/game/themes/common/[song]duetsinger.png similarity index 100% rename from game/themes/Fantasy/[song]duetsinger.png rename to game/themes/common/[song]duetsinger.png diff --git a/game/themes/Fantasy/[song]duetsinger2.png b/game/themes/common/[song]duetsinger2.png similarity index 100% rename from game/themes/Fantasy/[song]duetsinger2.png rename to game/themes/common/[song]duetsinger2.png diff --git a/game/themes/Fantasy/[song]duetsinger3.png b/game/themes/common/[song]duetsinger3.png similarity index 100% rename from game/themes/Fantasy/[song]duetsinger3.png rename to game/themes/common/[song]duetsinger3.png diff --git a/game/themes/Fantasy/[song]message.png b/game/themes/common/[song]message.png similarity index 100% rename from game/themes/Fantasy/[song]message.png rename to game/themes/common/[song]message.png diff --git a/game/themes/Fantasy/[special]bg_fade.png b/game/themes/common/[special]bg_fade.png similarity index 100% rename from game/themes/Fantasy/[special]bg_fade.png rename to game/themes/common/[special]bg_fade.png diff --git a/game/themes/common/[stat]InfoBG1.png b/game/themes/common/[stat]InfoBG1.png new file mode 100644 index 00000000..533e6d75 Binary files /dev/null and b/game/themes/common/[stat]InfoBG1.png differ diff --git a/game/themes/common/[stat]InfoBG2.png b/game/themes/common/[stat]InfoBG2.png new file mode 100644 index 00000000..48f19570 Binary files /dev/null and b/game/themes/common/[stat]InfoBG2.png differ diff --git a/game/themes/Fantasy/[tournament]trophy.png b/game/themes/common/[tournament]trophy.png similarity index 100% rename from game/themes/Fantasy/[tournament]trophy.png rename to game/themes/common/[tournament]trophy.png diff --git a/game/themes/Fantasy/[tournament]winner.png b/game/themes/common/[tournament]winner.png similarity index 100% rename from game/themes/Fantasy/[tournament]winner.png rename to game/themes/common/[tournament]winner.png diff --git a/installer/dependencies/images/header.bmp b/installer/dependencies/images/header.bmp index 5dd65985..96785b14 100644 Binary files a/installer/dependencies/images/header.bmp and b/installer/dependencies/images/header.bmp differ diff --git a/installer/dependencies/images/side.bmp b/installer/dependencies/images/side.bmp index 37cae006..57caf54d 100644 Binary files a/installer/dependencies/images/side.bmp and b/installer/dependencies/images/side.bmp differ diff --git a/src/WorldParty for Windows.lpi b/src/WorldParty for Windows.lpi index bca9e70c..650d48b1 100644 --- a/src/WorldParty for Windows.lpi +++ b/src/WorldParty for Windows.lpi @@ -266,7 +266,7 @@ - + @@ -294,7 +294,7 @@ - + @@ -506,11 +506,6 @@ - - - - - diff --git a/src/WorldParty.dpr b/src/WorldParty.dpr index 842ab91f..3205c13d 100644 --- a/src/WorldParty.dpr +++ b/src/WorldParty.dpr @@ -146,6 +146,7 @@ uses MTProcs in 'lib\Lazarus\components\multithreadprocs\mtprocs.pas', MTPCPU in 'lib\Lazarus\components\multithreadprocs\mtpcpu.pas', {$ENDIF} + CpuCount in 'lib\other\cpucount.pas', {$IFDEF MSWINDOWS} // FPC compatibility file for Allocate/DeallocateHWnd WinAllocation in 'lib\other\WinAllocation.pas', @@ -211,7 +212,6 @@ uses ULog in 'base\ULog.pas', UJoystick in 'base\UJoystick.pas', UDataBase in 'base\UDataBase.pas', - UCovers in 'base\UCovers.pas', UCatCovers in 'base\UCatCovers.pas', UFiles in 'base\UFiles.pas', UGraphicClasses in 'base\UGraphicClasses.pas', @@ -225,7 +225,6 @@ uses TextGL in 'base\TextGL.pas', UUnicodeUtils in 'base\UUnicodeUtils.pas', - UUnicodeStringHelper in 'base\uunicodestringhelper', UFont in 'base\UFont.pas', UTextEncoding in 'base\UTextEncoding.pas', @@ -306,7 +305,7 @@ uses //------------------------------ UScreenLoading in 'screens\UScreenLoading.pas', UScreenMain in 'screens\UScreenMain.pas', - UScreenName in 'screens\UScreenName.pas', + UScreenPlayerSelection in 'screens\UScreenPlayerSelection.pas', UScreenSong in 'screens\UScreenSong.pas', UScreenSingController in 'screens\controllers\UScreenSingController.pas', UScreenSingView in 'screens\views\UScreenSingView.pas', @@ -318,7 +317,7 @@ uses UScreenOptionsSound in 'screens\UScreenOptionsSound.pas', UScreenOptionsLyrics in 'screens\UScreenOptionsLyrics.pas', UScreenOptionsThemes in 'screens\UScreenOptionsThemes.pas', - UScreenOptionsRecord in 'screens\UScreenOptionsRecord.pas', + UScreenOptionsMicrophones in 'screens\UScreenOptionsMicrophones.pas', UScreenOptionsAdvanced in 'screens\UScreenOptionsAdvanced.pas', UScreenOpen in 'screens\UScreenOpen.pas', UScreenTop5 in 'screens\UScreenTop5.pas', diff --git a/src/base/UBeatTimer.pas b/src/base/UBeatTimer.pas index 81751f00..3ce41fb0 100644 --- a/src/base/UBeatTimer.pas +++ b/src/base/UBeatTimer.pas @@ -289,8 +289,8 @@ procedure TLyricsState.UpdateBeats(); OldBeatD := CurrentBeatD; // MidBeatD = MidBeat with additional GAP - MidBeatD := -0.5 + GetMidBeat(CurLyricsTime - (StartTime + 120 + 20) / 1000); + MidBeatD := -0.5 + GetMidBeat(CurLyricsTime - (StartTime + 90) / 1000); CurrentBeatD := Floor(MidBeatD); end; -end. \ No newline at end of file +end. diff --git a/src/base/UConfig.pas b/src/base/UConfig.pas index d4588bb9..8ad128b5 100644 --- a/src/base/UConfig.pas +++ b/src/base/UConfig.pas @@ -125,7 +125,7 @@ interface * Current version of UltraStar Deluxe WorldParty *) USDX_VERSION_MAJOR = 18; - USDX_VERSION_MINOR = 2; + USDX_VERSION_MINOR = 11; USDX_VERSION_RELEASE = ''; USDX_VERSION_STATE = ''; USDX_STRING = 'UltraStar Deluxe WorldParty'; diff --git a/src/base/UCovers.pas b/src/base/UCovers.pas deleted file mode 100644 index a5b30d55..00000000 --- a/src/base/UCovers.pas +++ /dev/null @@ -1,144 +0,0 @@ -{* - UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the - COPYRIGHT file distributed with this source distribution. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see - . - *} - -unit UCovers; - -interface - -{$IFDEF FPC} - {$MODE Delphi} -{$ENDIF} - -{$I switches.inc} - -uses - sdl2, - SysUtils, - Classes, - UImage, - UThemes, - UTexture, - UPath; - -type - ECoverDBException = class(Exception) - end; - - TCover = class - private - Filename: IPath; - public - constructor Create(Filename: IPath); - function GetPreviewTexture(): TTexture; - function GetEmptyTexture(): TTexture; - function GetTexture(): TTexture; - end; - - TCoverDatabase = class - public - constructor Create(); - destructor Destroy; override; - function FindCover(const Filename: IPath): TCover; - function AddCover(const Filename: IPath): TCover; - function GetMaxCoverSize(): integer; - end; - - TBlobWrapper = class(TCustomMemoryStream) - function Write(const Buffer; Count: Integer): Integer; override; - end; - -var - Covers: TCoverDatabase; - -implementation - -uses - UMain, - ULog, - UPlatform, - UIni, - Math, - DateUtils; - -{ TBlobWrapper } - -function TBlobWrapper.Write(const Buffer; Count: Integer): Integer; -begin - SetPointer(Pointer(Buffer), Count); - Result := Count; -end; - - -{ TCover } - -constructor TCover.Create(Filename: IPath); -begin - Self.Filename := Filename; -end; - -function TCover.GetPreviewTexture(): TTexture; -begin - Result := Self.GetTexture(); -end; - -function TCover.GetEmptyTexture(): TTexture; -begin - if not (Assigned(Filename)) or (Filename = nil) then Exit; - FillChar(Result, SizeOf(TTexture), 0); - Result.Name:= Filename; -end; - -function TCover.GetTexture(): TTexture; -begin - if not (Assigned(Filename)) or (Filename = nil) then Exit; - Result := Texture.LoadTexture(Filename); -end; - - -{ TCoverDatabase } - -constructor TCoverDatabase.Create(); -begin - inherited; -end; - -destructor TCoverDatabase.Destroy; -begin - inherited; -end; - -function TCoverDatabase.GetMaxCoverSize(): integer; -begin - Result := ITextureSizeVals[Ini.TextureSize]; -end; - -{* TODO delete when change UScreenSong calls *} -function TCoverDatabase.FindCover(const Filename: IPath): TCover; -begin - Result := AddCover(Filename); -end; - -function TCoverDatabase.AddCover(const Filename: IPath): TCover; -begin - Result := TCover.Create(Filename); -end; -end. diff --git a/src/base/UDraw.pas b/src/base/UDraw.pas index 80cb5c1c..a441c54c 100644 --- a/src/base/UDraw.pas +++ b/src/base/UDraw.pas @@ -413,20 +413,20 @@ procedure SingDrawBeatDelimeters(Left, Top, Right: real; NrLines: integer); TempR: real; begin - if not Lines[NrLines].Line[Lines[NrLines].Current].HasLength(TempR) then TempR := 0 + if not CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].HasLength(TempR) then TempR := 0 else TempR := (Right-Left) / TempR; - if (Lines[NrLines].Line[Lines[NrLines].Current].TotalNotes > 0) and ( Right-Left > 0 ) and ( (Lines[NrLines].Line[Lines[NrLines].Current].End_ - Lines[NrLines].Line[Lines[NrLines].Current].Note[0].Start) > 0 ) then - TempR := (Right-Left) / (Lines[NrLines].Line[Lines[NrLines].Current].End_ - Lines[NrLines].Line[Lines[NrLines].Current].Note[0].Start) + if (CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].TotalNotes > 0) and ( Right-Left > 0 ) and ( (CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].End_ - CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].Note[0].Start) > 0 ) then + TempR := (Right-Left) / (CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].End_ - CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].Note[0].Start) else TempR := 0; glEnable(GL_BLEND); glBegin(GL_LINES); - for Count := Lines[NrLines].Line[Lines[NrLines].Current].Note[0].Start to Lines[NrLines].Line[Lines[NrLines].Current].End_ do + for Count := CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].Note[0].Start to CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].End_ do begin glColor4f(0, 0, 0, 0.3); - glVertex2f(Left + TempR * (Count - Lines[NrLines].Line[Lines[NrLines].Current].Note[0].Start), Top); - glVertex2f(Left + TempR * (Count - Lines[NrLines].Line[Lines[NrLines].Current].Note[0].Start), Top + 135); + glVertex2f(Left + TempR * (Count - CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].Note[0].Start), Top); + glVertex2f(Left + TempR * (Count - CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].Note[0].Start), Top + 135); end; glEnd; glDisable(GL_BLEND); @@ -457,11 +457,11 @@ procedure SingDrawLine(Left, Top, Right: real; NrLines, PlayerNumber: integer; S glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - if not Lines[NrLines].Line[Lines[NrLines].Current].HasLength(TempR) then TempR := 0 + if not CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].HasLength(TempR) then TempR := 0 else TempR := (Right-Left) / TempR; - with Lines[NrLines].Line[Lines[NrLines].Current] do + with CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current] do begin for Count := 0 to HighNote do begin @@ -484,7 +484,7 @@ procedure SingDrawLine(Left, Top, Right: real; NrLines, PlayerNumber: integer; S glColor4f(1, 1, 1, 1); // We set alpha to 1, cause we can control the transparency through the png itself // left part - Rec.Left := (Start-Lines[NrLines].Line[Lines[NrLines].Current].Note[0].Start) * TempR + Left + 0.5 + 10*ScreenX; + Rec.Left := (Start-CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].Note[0].Start) * TempR + Left + 0.5 + 10*ScreenX; Rec.Right := Rec.Left + NotesW[PlayerNumber - 1]; Rec.Top := Top - (Tone-BaseNote)*Space/2 - NotesH[PlayerNumber - 1]; Rec.Bottom := Rec.Top + 2 * NotesH[PlayerNumber - 1]; @@ -509,7 +509,7 @@ procedure SingDrawLine(Left, Top, Right: real; NrLines, PlayerNumber: integer; S // middle part Rec.Left := Rec.Right; - Rec.Right := (Start+Length-Lines[NrLines].Line[Lines[NrLines].Current].Note[0].Start) * TempR + Left - NotesW[PlayerNumber - 1] - 0.5 + 10*ScreenX; + Rec.Right := (Start+Length-CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].Note[0].Start) * TempR + Left - NotesW[PlayerNumber - 1] - 0.5 + 10*ScreenX; // the left note is more right than the right note itself, sounds weird - so we fix that xD if Rec.Right <= Rec.Left then @@ -595,7 +595,7 @@ procedure SingDrawPlayerLine(X, Y, W: real; NrLines, PlayerIndex: integer; Space //if Player[NrGracza].LengthNote > 0 then begin - if not Lines[NrLines].Line[Lines[NrLines].Current].HasLength(TempR) then TempR := 0 + if not CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].HasLength(TempR) then TempR := 0 else TempR := W / TempR; for N := 0 to Player[PlayerIndex].HighNote do @@ -603,7 +603,7 @@ procedure SingDrawPlayerLine(X, Y, W: real; NrLines, PlayerIndex: integer; Space with Player[PlayerIndex].Note[N] do begin // Left part of note - Rec.Left := X + (Start-Lines[NrLines].Line[Lines[NrLines].Current].Note[0].Start) * TempR + 0.5 + 10*ScreenX; + Rec.Left := X + (Start-CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].Note[0].Start) * TempR + 0.5 + 10*ScreenX; Rec.Right := Rec.Left + NotesW[PlayerIndex]; // Draw it in half size, if not hit @@ -616,7 +616,7 @@ procedure SingDrawPlayerLine(X, Y, W: real; NrLines, PlayerIndex: integer; Space NotesH2 := int(NotesH[PlayerIndex] * 0.65); end; - Rec.Top := Y - (Tone-Lines[NrLines].Line[Lines[NrLines].Current].BaseNote)*Space/2 - NotesH2; + Rec.Top := Y - (Tone-CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].BaseNote)*Space/2 - NotesH2; Rec.Bottom := Rec.Top + 2 * NotesH2; // draw the left part @@ -638,7 +638,7 @@ procedure SingDrawPlayerLine(X, Y, W: real; NrLines, PlayerIndex: integer; Space // Middle part of the note Rec.Left := Rec.Right; - Rec.Right := X + (Start+Length-Lines[NrLines].Line[Lines[NrLines].Current].Note[0].Start) * TempR - NotesW[PlayerIndex] - 0.5 + 10*ScreenX; + Rec.Right := X + (Start+Length-CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].Note[0].Start) * TempR - NotesW[PlayerIndex] - 0.5 + 10*ScreenX; // new if (Start+Length-1 = LyricsState.CurrentBeatD) then @@ -726,10 +726,10 @@ procedure SingDrawPlayerBGLine(Left, Top, Right: real; NrLines, PlayerIndex: int glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - if not Lines[NrLines].Line[Lines[NrLines].Current].HasLength(TempR) then TempR := 0 + if not CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].HasLength(TempR) then TempR := 0 else TempR := (Right-Left) / TempR; - with Lines[NrLines].Line[Lines[NrLines].Current] do + with CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current] do begin for Count := 0 to HighNote do begin @@ -743,15 +743,15 @@ procedure SingDrawPlayerBGLine(Left, Top, Right: real; NrLines, PlayerIndex: int H := NotesH[PlayerIndex] * 1.5 + 3.5; { - X2 := (Start-Lines[NrLines].Line[Lines[NrLines].Current].Note[0].Start) * TempR + Left + 0.5 + 10*ScreenX + 4; + X2 := (Start-CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].Note[0].Start) * TempR + Left + 0.5 + 10*ScreenX + 4; X1 := X2-W; - X3 := (Start+Length-Lines[NrLines].Line[Lines[NrLines].Current].Note[0].Start) * TempR + Left - 0.5 + 10*ScreenX - 4; + X3 := (Start+Length-CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].Note[0].Start) * TempR + Left - 0.5 + 10*ScreenX - 4; X4 := X3+W; } // left - Rec.Right := (Start-Lines[NrLines].Line[Lines[NrLines].Current].Note[0].Start) * TempR + Left + 0.5 + 10*ScreenX + 4; + Rec.Right := (Start-CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].Note[0].Start) * TempR + Left + 0.5 + 10*ScreenX + 4; Rec.Left := Rec.Right - W; Rec.Top := Top - (Tone-BaseNote)*Space/2 - H; Rec.Bottom := Rec.Top + 2 * H; @@ -773,7 +773,7 @@ procedure SingDrawPlayerBGLine(Left, Top, Right: real; NrLines, PlayerIndex: int // middle part Rec.Left := Rec.Right; - Rec.Right := (Start+Length-Lines[NrLines].Line[Lines[NrLines].Current].Note[0].Start) * TempR + Left - 0.5 + 10*ScreenX - 4; + Rec.Right := (Start+Length-CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].Note[0].Start) * TempR + Left - 0.5 + 10*ScreenX - 4; // the left note is more right than the right note itself, sounds weird - so we fix that xD if Rec.Right <= Rec.Left then @@ -848,7 +848,7 @@ procedure SingDrawLyricHelper(CP: integer; Left, LyricsMid: real); BarMoveLimit = 40; // max. number of beats remaining before the bar starts to move begin // get current lyrics line and the time in beats of its first note - CurLine := @Lines[CP].Line[Lines[CP].Current]; + CurLine := @CurrentSong.Lines[CP].Line[CurrentSong.Lines[CP].Current]; // FIXME: accessing ScreenSing is not that generic if (CurrentSong.isDuet) and (PlayersPlay <> 1) then @@ -932,25 +932,25 @@ procedure SingDrawLyricHelper(CP: integer; Left, LyricsMid: real); begin if (PlayersPlay = 3) or (PlayersPlay = 6) then begin - //if (PlayersPlay = 3) then + if (PlayersPlay = 3) then Col := GetLyricBarColor(Ini.SingColor[CP]); - //if (PlayersPlay = 6) then - // Col := GetLyricBarColor(CP + 1); + if (PlayersPlay = 6) then + Col := GetLyricBarColor(CP + 1); end else begin if ScreenAct = 1 then - Col := GetLyricBarColor(Ini.SingColor[CP]) + Col := GetLyricColor(Ini.JukeboxSingLineColor) else - Col := GetLyricBarColor(Ini.SingColor[CP + 2]); + Col := GetLyricColor(Ini.JukeboxSingLineColor); end; end; end else - // Col := GetLyricBarColor(1); + Col := GetLyricColor(Ini.JukeboxSingLineColor); - glColor4f(255,255, 255, BarAlpha); + glColor4f(Col.R, Col.G, Col.B, BarAlpha); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBindTexture(GL_TEXTURE_2D, Tex_Lyric_Help_Bar.TexNum); @@ -990,7 +990,7 @@ procedure SingDrawLyricHelperJukebox(Left, LyricsMid: real); begin // get current lyrics line and the time in beats of its first note - CurLine := @Lines[0].Line[Lines[0].Current]; + CurLine := @CurrentSong.Lines[0].Line[CurrentSong.Lines[0].Current]; // FIXME: accessing ScreenSing is not that generic LyricEngine := ScreenJukebox.Lyrics; @@ -1841,10 +1841,10 @@ procedure EditDrawLine(Left, Top, Right: real; NrLines: integer; Space: integer) glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - if not Lines[NrLines].Line[Lines[NrLines].Current].HasLength(TempR) then TempR := 0 + if not CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].HasLength(TempR) then TempR := 0 else TempR := (Right-Left) / TempR; - with Lines[NrLines].Line[Lines[NrLines].Current] do + with CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current] do begin for Count := 0 to HighNote do begin @@ -1861,7 +1861,7 @@ procedure EditDrawLine(Left, Top, Right: real; NrLines: integer; Space: integer) end; // case // left part - Rec.Left := (Start-Lines[NrLines].Line[Lines[NrLines].Current].Note[0].Start) * TempR + Left + 0.5 + 10*ScreenX; + Rec.Left := (Start-CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].Note[0].Start) * TempR + Left + 0.5 + 10*ScreenX; Rec.Right := Rec.Left + NotesW[0]; Rec.Top := Top - (Tone-BaseNote)*Space/2 - NotesH[0]; Rec.Bottom := Rec.Top + 2 * NotesH[0]; @@ -1883,7 +1883,7 @@ procedure EditDrawLine(Left, Top, Right: real; NrLines: integer; Space: integer) // middle part Rec.Left := Rec.Right; - Rec.Right := (Start+Length-Lines[NrLines].Line[Lines[NrLines].Current].Note[0].Start) * TempR + Left - NotesW[0] - 0.5 + 10*ScreenX; + Rec.Right := (Start+Length-CurrentSong.Lines[NrLines].Line[CurrentSong.Lines[NrLines].Current].Note[0].Start) * TempR + Left - NotesW[0] - 0.5 + 10*ScreenX; If (NoteType = ntRap) or (NoteType = ntRapGolden) then begin diff --git a/src/base/UFiles.pas b/src/base/UFiles.pas index f4b23b00..d190ff17 100644 --- a/src/base/UFiles.pas +++ b/src/base/UFiles.pas @@ -66,11 +66,7 @@ procedure ResetSingTemp; var Count: integer; begin - SetLength(Lines, Length(Player)); for Count := 0 to High(Player) do begin - SetLength(Lines[Count].Line, 1); - SetLength(Lines[Count].Line[0].Note, 0); - Lines[Count].Line[0].Lyric := ''; Player[Count].Score := 0; Player[Count].LengthNote := 0; Player[Count].HighNote := -1; diff --git a/src/base/UGraphic.pas b/src/base/UGraphic.pas index 43c85c02..e05847b6 100644 --- a/src/base/UGraphic.pas +++ b/src/base/UGraphic.pas @@ -44,14 +44,14 @@ interface UPathUtils, UScreenLoading, UScreenMain, - UScreenName, + UScreenPlayerSelection, UScreenOptions, UScreenOptionsGame, UScreenOptionsGraphics, UScreenOptionsSound, UScreenOptionsLyrics, UScreenOptionsThemes, - UScreenOptionsRecord, + UScreenOptionsMicrophones, UScreenOptionsAdvanced, UScreenOptionsNetwork, UScreenOptionsWebcam, @@ -143,7 +143,7 @@ TRecR = record ScreenOptionsSound: TScreenOptionsSound; ScreenOptionsLyrics: TScreenOptionsLyrics; ScreenOptionsThemes: TScreenOptionsThemes; - ScreenOptionsRecord: TScreenOptionsRecord; + ScreenOptionsMicrophones: TScreenOptionsMicrophones; ScreenOptionsAdvanced: TScreenOptionsAdvanced; ScreenOptionsNetwork: TScreenOptionsNetwork; ScreenOptionsWebcam: TScreenOptionsWebcam; @@ -208,27 +208,12 @@ TRecR = record Tex_BG_Mid_Rap: array[1..UIni.IMaxPlayerCount] of TTexture; //rename to tex_noteglow_mid Tex_BG_Right_Rap: array[1..UIni.IMaxPlayerCount] of TTexture; //rename to tex_noteglow_right - Tex_Note_Star: TTexture; - Tex_Note_Perfect_Star: TTexture; - - - Tex_Ball: TTexture; Tex_Lyric_Help_Bar: TTexture; FullScreen: boolean; Tex_TimeProgress: TTexture; Tex_JukeboxTimeProgress: TTexture; - //Sing Bar Mod - Tex_SingBar_Back: TTexture; - Tex_SingBar_Bar: TTexture; - Tex_SingBar_Front: TTexture; - //end Singbar Mod - - //PhrasenBonus - Line Bonus Mod - Tex_SingLineBonusBack: array[0..8] of TTexture; - //End PhrasenBonus - Line Bonus Mod - //ScoreBG Texs Tex_ScoreBG: array [0..UIni.IMaxPlayerCount-1] of TTexture; @@ -244,15 +229,6 @@ TRecR = record Tex_Score_Ratings : array [0..7] of TTexture; //stores all possible rating result images - // arrows for SelectSlide - Tex_SelectS_ArrowL: TTexture; - Tex_SelectS_ArrowR: TTexture; - - // textures for software mouse cursor - Tex_Cursor_Unpressed: TTexture; - Tex_Cursor_Pressed: TTexture; - - PboSupported: boolean; const @@ -338,94 +314,14 @@ procedure UnloadFontTextures; end; procedure LoadTextures; -var - P: integer; - R, G, B: real; - Col: integer; begin - Log.LogStatus('Loading Textures', 'LoadTextures'); + TextGL.BuildFonts; //font textures Texture := TTextureUnit.Create; Texture.Limit := 1920; //currently, Full HD is all we want. switch to 64bit target before going further up - Log.LogStatus('Loading Textures - A', 'LoadTextures'); - - Tex_Note_Perfect_Star := Texture.LoadTexture(Skin.GetTextureFileName('NotePerfectStar'), TEXTURE_TYPE_TRANSPARENT, 0); - Tex_Note_Star := Texture.LoadTexture(Skin.GetTextureFileName('NoteStar') , TEXTURE_TYPE_TRANSPARENT, $FFFFFF); - Tex_Ball := Texture.LoadTexture(Skin.GetTextureFileName('Ball'), TEXTURE_TYPE_TRANSPARENT, $FF00FF); - Tex_Lyric_Help_Bar := Texture.LoadTexture(Skin.GetTextureFileName('LyricHelpBar'), TEXTURE_TYPE_TRANSPARENT, 0); - - Tex_SelectS_ArrowL := Texture.LoadTexture(Skin.GetTextureFileName('Select_ArrowLeft'), TEXTURE_TYPE_TRANSPARENT, 0); - Tex_SelectS_ArrowR := Texture.LoadTexture(Skin.GetTextureFileName('Select_ArrowRight'), TEXTURE_TYPE_TRANSPARENT, 0); - - Tex_Cursor_Unpressed := Texture.LoadTexture(Skin.GetTextureFileName('Cursor'), TEXTURE_TYPE_TRANSPARENT, 0); - - if (Skin.GetTextureFileName('Cursor_Pressed').IsSet) then - Tex_Cursor_Pressed := Texture.LoadTexture(Skin.GetTextureFileName('Cursor_Pressed'), TEXTURE_TYPE_TRANSPARENT, 0) - else - Tex_Cursor_Pressed.TexNum := 0; - - //TimeBar mod - Tex_TimeProgress := Texture.LoadTexture(Skin.GetTextureFileName('TimeBar')); - Tex_JukeboxTimeProgress := Texture.LoadTexture(Skin.GetTextureFileName('JukeboxTimeBar')); - //eoa TimeBar mod - - //SingBar Mod - Tex_SingBar_Back := Texture.LoadTexture(Skin.GetTextureFileName('SingBarBack'), TEXTURE_TYPE_PLAIN, 0); - Tex_SingBar_Bar := Texture.LoadTexture(Skin.GetTextureFileName('SingBarBar'), TEXTURE_TYPE_PLAIN, 0); - Tex_SingBar_Front := Texture.LoadTexture(Skin.GetTextureFileName('SingBarFront'), TEXTURE_TYPE_PLAIN, 0); - //end Singbar Mod - - Log.LogStatus('Loading Textures - B', 'LoadTextures'); - - //Line Bonus PopUp - for P := 0 to 8 do - begin - Case P of - 0: begin - R := 1; - G := 0; - B := 0; - end; - 1..3: begin - R := 1; - G := (P * 0.25); - B := 0; - end; - 4: begin - R := 1; - G := 1; - B := 0; - end; - 5..7: begin - R := 1-((P-4)*0.25); - G := 1; - B := 0; - end; - 8: begin - R := 0; - G := 1; - B := 0; - end; - else begin - R := 1; - G := 0; - B := 0; - end; - - End; - - Col := $10000 * Round(R*255) + $100 * Round(G*255) + Round(B*255); - Tex_SingLineBonusBack[P] := Texture.LoadTexture(Skin.GetTextureFileName('LineBonusBack'), TEXTURE_TYPE_COLORIZED, Col); - end; - - Log.LogStatus('Loading Textures - C', 'LoadTextures'); - - //## rating pictures that show a picture according to your rate ## - for P := 0 to 7 do begin - Tex_Score_Ratings[P] := Texture.LoadTexture(Skin.GetTextureFileName('Rating_'+IntToStr(P)), TEXTURE_TYPE_TRANSPARENT, 0); - end; - - TextGL.BuildFonts; //font textures - Log.LogStatus('Loading Textures - Done', 'LoadTextures'); + //TODO this textures must be loaded in file that use it, but need more OOP to do this... + Tex_Lyric_Help_Bar := Texture.LoadTexture('LyricHelpBar', TEXTURE_TYPE_TRANSPARENT); + Tex_TimeProgress := Texture.LoadTexture('TimeBar'); + Tex_JukeboxTimeProgress := Texture.LoadTexture('JukeboxTimeBar'); end; const @@ -448,8 +344,6 @@ procedure Initialize3D(Title: string); LoadScreens(); Display.CurrentScreen^.FadeTo(@ScreenMain); - Log.LogBenchmark('--> Loading Screens', 2); - Log.LogStatus('Finish', 'Initialize3D'); end; procedure SwapBuffers; @@ -793,49 +687,14 @@ procedure OnWindowResized(w,h: integer); end; end; +{ Load common screens } procedure LoadScreens; begin + ScreenOpen := TScreenOpen.Create(); + ScreenPopupCheck := TScreenPopupCheck.Create(); + ScreenPopupError := TScreenPopupError.Create(); + ScreenPopupInfo := TScreenPopupInfo.Create(); ScreenMain := TScreenMain.Create; - ScreenName := TScreenName.Create; - ScreenSong := TScreenSong.Create; - ScreenSongMenu := TScreenSongMenu.Create; - ScreenJukebox := TScreenJukebox.Create; - ScreenJukeboxOptions := TScreenJukeboxOptions.Create; - ScreenJukeboxPlaylist := TScreenJukeboxPlaylist.Create; - ScreenTop5 := TScreenTop5.Create; - ScreenOptions := TScreenOptions.Create; - ScreenOptionsGame := TScreenOptionsGame.Create; - ScreenOptionsGraphics := TScreenOptionsGraphics.Create; - ScreenOptionsSound := TScreenOptionsSound.Create; - ScreenOptionsLyrics := TScreenOptionsLyrics.Create; - ScreenOptionsThemes := TScreenOptionsThemes.Create; - ScreenOptionsRecord := TScreenOptionsRecord.Create; - ScreenOptionsAdvanced := TScreenOptionsAdvanced.Create; - ScreenOptionsNetwork := TScreenOptionsNetwork.Create; - ScreenOptionsWebcam := TScreenOptionsWebcam.Create; - ScreenOptionsJukebox := TScreenOptionsJukebox.Create; - ScreenOpen := TScreenOpen.Create; - ScreenAbout := TScreenAbout.Create; - ScreenDevelopers := TScreenDevelopers.Create; - ScreenSongJumpto := TScreenSongJumpto.Create; - ScreenPopupCheck := TScreenPopupCheck.Create; - ScreenPopupError := TScreenPopupError.Create; - ScreenPopupInfo := TScreenPopupInfo.Create; - ScreenPopupInsertUser := TScreenPopupInsertUser.Create; - ScreenPopupSendScore := TScreenPopupSendScore.Create; - ScreenPopupScoreDownload := TScreenPopupScoreDownload.Create; - ScreenPartyNewRound := TScreenPartyNewRound.Create; - ScreenPartyScore := TScreenPartyScore.Create; - ScreenPartyWin := TScreenPartyWin.Create; - ScreenPartyOptions := TScreenPartyOptions.Create; - ScreenPartyPlayer := TScreenPartyPlayer.Create; - ScreenPartyRounds := TScreenPartyRounds.Create; - ScreenPartyTournamentRounds := TScreenPartyTournamentRounds.Create; - ScreenPartyTournamentPlayer := TScreenPartyTournamentPlayer.Create; - ScreenPartyTournamentOptions := TScreenPartyTournamentOptions.Create; - ScreenPartyTournamentWin := TScreenPartyTournamentWin.Create; - ScreenStatMain := TScreenStatMain.Create; - ScreenStatDetail := TScreenStatDetail.Create; end; procedure ShowStatus(Status: string); @@ -843,50 +702,51 @@ procedure ShowStatus(Status: string); ScreenMain.Text[3].Text := Status; end; +{ Free screen variables in all cases, with an instance or not } procedure UnloadScreens; begin - ScreenMain.Free; - ScreenName.Free; - ScreenSong.Free; - ScreenScore.Free; - ScreenOptions.Free; - ScreenOptionsGame.Free; - ScreenOptionsGraphics.Free; - ScreenOptionsSound.Free; - ScreenOptionsLyrics.Free; - ScreenOptionsThemes.Free; - ScreenOptionsRecord.Free; - ScreenOptionsAdvanced.Free; - ScreenOptionsNetwork.Free; - ScreenOptionsWebcam.Free; - ScreenOptionsJukebox.Free; - ScreenJukebox.Free; - ScreenJukeboxOptions.Free; - ScreenJukeboxPlaylist.Free; - ScreenTop5.Free; - ScreenOpen.Free; - ScreenAbout.Free; - ScreenDevelopers.Free; - ScreenSongMenu.Free; - ScreenSongJumpto.Free; - ScreenPopupCheck.Free; - ScreenPopupError.Free; - ScreenPopupInfo.Free; - ScreenPopupInsertUser.Free; - ScreenPopupSendScore.Free; - ScreenPopupScoreDownload.Free; - ScreenPartyNewRound.Free; - ScreenPartyScore.Free; - ScreenPartyWin.Free; - ScreenPartyOptions.Free; - ScreenPartyPlayer.Free; - ScreenPartyRounds.Free; - ScreenPartyTournamentRounds.Free; - ScreenPartyTournamentPlayer.Free; - ScreenPartyTournamentOptions.Free; - ScreenPartyTournamentWin.Free; - ScreenStatMain.Free; - ScreenStatDetail.Free; + FreeAndNil(ScreenMain); + FreeAndNil(ScreenName); + FreeAndNil(ScreenSong); + FreeAndNil(ScreenScore); + FreeAndNil(ScreenOptions); + FreeAndNil(ScreenOptionsGame); + FreeAndNil(ScreenOptionsGraphics); + FreeAndNil(ScreenOptionsSound); + FreeAndNil(ScreenOptionsLyrics); + FreeAndNil(ScreenOptionsThemes); + FreeAndNil(ScreenOptionsMicrophones); + FreeAndNil(ScreenOptionsAdvanced); + FreeAndNil(ScreenOptionsNetwork); + FreeAndNil(ScreenOptionsWebcam); + FreeAndNil(ScreenOptionsJukebox); + FreeAndNil(ScreenJukebox); + FreeAndNil(ScreenJukeboxOptions); + FreeAndNil(ScreenJukeboxPlaylist); + FreeAndNil(ScreenTop5); + FreeAndNil(ScreenOpen); + FreeAndNil(ScreenAbout); + FreeAndNil(ScreenDevelopers); + FreeAndNil(ScreenSongMenu); + FreeAndNil(ScreenSongJumpto); + FreeAndNil(ScreenPopupCheck); + FreeAndNil(ScreenPopupError); + FreeAndNil(ScreenPopupInfo); + FreeAndNil(ScreenPopupInsertUser); + FreeAndNil(ScreenPopupSendScore); + FreeAndNil(ScreenPopupScoreDownload); + FreeAndNil(ScreenPartyNewRound); + FreeAndNil(ScreenPartyScore); + FreeAndNil(ScreenPartyWin); + FreeAndNil(ScreenPartyOptions); + FreeAndNil(ScreenPartyPlayer); + FreeAndNil(ScreenPartyRounds); + FreeAndNil(ScreenPartyTournamentRounds); + FreeAndNil(ScreenPartyTournamentPlayer); + FreeAndNil(ScreenPartyTournamentOptions); + FreeAndNil(ScreenPartyTournamentWin); + FreeAndNil(ScreenStatMain); + FreeAndNil(ScreenStatDetail); end; end. diff --git a/src/base/UGraphicClasses.pas b/src/base/UGraphicClasses.pas index a7cd577b..009170c0 100644 --- a/src/base/UGraphicClasses.pas +++ b/src/base/UGraphicClasses.pas @@ -1,8 +1,8 @@ {* UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the + + UltraStar Deluxe WorldParty is the legal property of its developers, + whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see + along with this program. Check "LICENSE" file. If not, see . *} @@ -95,7 +95,8 @@ TEffectManager = class PerfNoteArray : array of PerfectNotePositions; FlareTex: TTexture; - + Tex_Note_Star: TTexture; + Tex_Note_Perfect_Star: TTexture; constructor Create; destructor Destroy; override; procedure Draw; @@ -159,7 +160,7 @@ constructor TParticle.Create(cX, cY : real; case cStarType of GoldenNote: begin - Tex := Tex_Note_Star.TexNum; + Tex := GoldenRec.Tex_Note_Star.TexNum; W := 20; H := 20; SetLength(Scale,4); @@ -185,7 +186,7 @@ constructor TParticle.Create(cX, cY : real; end; PerfectNote: begin - Tex := Tex_Note_Perfect_Star.TexNum; + Tex := GoldenRec.Tex_Note_Perfect_Star.TexNum; W := 8; H := 12; SetLength(Col,1); @@ -195,7 +196,7 @@ constructor TParticle.Create(cX, cY : real; end; NoteHitTwinkle: begin - Tex := Tex_Note_Star.TexNum; + Tex := GoldenRec.Tex_Note_Star.TexNum; Alpha := (Live/16); // linear fade-out W := 15; H := 15; @@ -206,7 +207,7 @@ constructor TParticle.Create(cX, cY : real; end; PerfectLineTwinkle: begin - Tex := Tex_Note_Star.TexNum; + Tex := GoldenRec.Tex_Note_Star.TexNum; W := RandomRange(10,20); H := W; SizeMod := (-cos((Frame+1)*5*2*pi/16)*0.5+1.1); @@ -227,7 +228,7 @@ constructor TParticle.Create(cX, cY : real; end; ColoredStar: begin - Tex := Tex_Note_Star.TexNum; + Tex := GoldenRec.Tex_Note_Star.TexNum; W := RandomRange(10,20); H := W; SizeMod := (-cos((Frame+1)*5*2*pi/16)*0.5+1.1); @@ -243,7 +244,7 @@ constructor TParticle.Create(cX, cY : real; end; Flare: begin - Tex := Tex_Note_Star.TexNum; + Tex := GoldenRec.Tex_Note_Star.TexNum; W := 7; H := 7; SizeMod := (-cos((Frame+1)*5*2*pi/16)*0.5+1.1); @@ -273,7 +274,7 @@ constructor TParticle.Create(cX, cY : real; end; else // just some random default values begin - Tex := Tex_Note_Star.TexNum; + Tex := GoldenRec.Tex_Note_Star.TexNum; Alpha := 1; W := 20; H := 20; @@ -356,7 +357,7 @@ procedure TParticle.Draw; glBindTexture(GL_TEXTURE_2D, Tex); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); - + // this draws (multiple) texture(s) of our particle for L := 0 to High(Col) do begin @@ -369,7 +370,7 @@ procedure TParticle.Draw; glTexCoord2f((1/16) * Frame, 1); glVertex2f(X+W*Scale[L]*SizeMod, Y-H*Scale[L]*SizeMod); glEnd; end; - + glDisable(GL_BLEND); glDisable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, 0); @@ -390,6 +391,8 @@ constructor TEffectManager.Create; begin TwinkleArray[c] := 0; end; + Self.Tex_Note_Perfect_Star := Texture.LoadTexture('NotePerfectStar', TEXTURE_TYPE_TRANSPARENT, 0); + Self.Tex_Note_Star := Texture.LoadTexture('NoteStar', TEXTURE_TYPE_TRANSPARENT, $FFFFFF); end; destructor TEffectManager.Destroy; @@ -779,4 +782,3 @@ procedure TEffectManager.SpawnPerfectLineTwinkle(); end; end. - diff --git a/src/base/UImage.pas b/src/base/UImage.pas index aa439c3e..b525c8b0 100644 --- a/src/base/UImage.pas +++ b/src/base/UImage.pas @@ -1,8 +1,8 @@ {* UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the + + UltraStar Deluxe WorldParty is the legal property of its developers, + whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see + along with this program. Check "LICENSE" file. If not, see . *} @@ -534,25 +534,12 @@ function WriteJPGImage(const FileName: IPath; Surface: PSDL_Surface; Quality: in * Loads an image from the given file *) function LoadImage(const Filename: IPath): PSDL_Surface; -var - FilenameCaseAdj: IPath; begin - Result := nil; - - // try to adjust filename's case and check if it exists - FilenameCaseAdj := Filename.AdjustCase(false); - if (not FilenameCaseAdj.IsFile) then - begin - Log.LogError('Image-File does not exist "' + FilenameCaseAdj.ToNative + '"', 'LoadImage'); - Exit; - end; - - // load from file try - Result := IMG_Load(PChar(FilenameCaseAdj.ToUTF8())); //SDL2 uses wants UTF-8 strings according to doocumentation + Result := IMG_Load(PChar(Filename.ToUTF8())); //SDL2 uses wants UTF-8 strings according to doocumentation // Note: TBinaryFileStream is freed by SDLStream. SDLStream by IMG_Load_RW(). except - Log.LogError('Could not load from file "' + FilenameCaseAdj.ToNative + '"', 'LoadImage'); + Log.LogError('Could not load from file "' + Filename.ToNative() + '"', 'LoadImage'); Exit; end; end; @@ -563,7 +550,7 @@ function LoadImage(const Filename: IPath): PSDL_Surface; function PixelFormatEquals(fmt1, fmt2: PSDL_PixelFormat): boolean; begin - Result := + Result := (fmt1^.BitsPerPixel = fmt2^.BitsPerPixel) and (fmt1^.BytesPerPixel = fmt2^.BytesPerPixel) and (fmt1^.Rloss = fmt2^.Rloss) and (fmt1^.Gloss = fmt2^.Gloss) and (fmt1^.Bloss = fmt2^.Bloss) and @@ -618,8 +605,8 @@ procedure ColorizeImage(ImgSurface: PSDL_Surface; NewColor: longword); // hsv color is converted back to rgb space. // For the conversion algorithms of colors from rgb to hsv space // and back simply check the wikipedia. - // In order to speed up starting time of USDX the division of reals is - // replaced by division of longints, shifted by 10 bits to keep + // In order to speed up starting time of USDX the division of reals is + // replaced by division of longints, shifted by 10 bits to keep // digits. // The use of longwards leeds to some type size mismatch warnings @@ -699,14 +686,14 @@ procedure ColorizeImage(ImgSurface: PSDL_Surface; NewColor: longword); + IntToStr(ImgSurface^.format.BytesPerPixel)); end; - // Check whether the new color is white, grey or black, + // Check whether the new color is white, grey or black, // because a greyscale must be created in a different // way. Red := ((NewColor and $ff0000) shr 16); // R Green := ((NewColor and $ff00) shr 8); // G Blue := (NewColor and $ff) ; // B - + if (Red = Green) and (Green = Blue) then // greyscale image begin // According to these recommendations (ITU-R BT.709-5) diff --git a/src/base/UIni.pas b/src/base/UIni.pas index 29a68bd3..2774a501 100644 --- a/src/base/UIni.pas +++ b/src/base/UIni.pas @@ -73,9 +73,9 @@ TInputDeviceConfig = record LATENCY_AUTODETECT = -1; // for field Latency DEFAULT_RESOLUTION = '800x600'; DEFAULT_THEME = 'Fantasy'; - IMaxPlayerCount = 12; - IPlayers: array[0..6] of UTF8String = ('1', '2', '3', '4', '6', '8', '12'); - IPlayersVals: array[0..6] of integer = ( 1 , 2 , 3 , 4 , 6 , 8 , 12); + IMaxPlayerCount = 12; //TODO change to 6 and fix UScreenPlayerSelection RETURN key + IPlayers: array[0..4] of UTF8String = ('1', '2', '3', '4', '6'); + IPlayersVals: array[0..4] of integer = (1, 2, 3, 4, 6); type @@ -128,7 +128,6 @@ TIni = class Language: integer; SongMenu: integer; Tabs: integer; - TabsAtStartup: integer; //Tabs at Startup fix Sorting: integer; ShowScores: integer; ShowWebScore: integer; @@ -435,7 +434,7 @@ TIni = class IJukeboxTimebarMode: array[0..2] of UTF8String = ('Current', 'Remaining', 'Total'); // Recording options - IChannelPlayer: array[0..12] of UTF8String = ('Off', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'); + IChannelPlayer: array[0..6] of UTF8String = ('Off', '1', '2', '3', '4', '5', '6'); IMicBoost: array[0..3] of UTF8String = ('Off', '+6dB', '+12dB', '+18dB'); // Webcam @@ -466,7 +465,7 @@ TIni = class // Network ISendNameTranslated: array[0..1] of UTF8String = ('Off', 'On'); IAutoModeTranslated: array[0..2] of UTF8String = ('Off', 'Send', 'Guardar'); - IAutoPlayerTranslated: array[0..IMaxPlayerCount] of UTF8String = ('Player 1', 'Player 2', 'Player 3', 'Player 4', 'Player 5', 'Player 6', 'Player 7', 'Player 8', 'Player 9', 'Player 10', 'Player 11', 'Player 12', 'All'); + IAutoPlayerTranslated: array[0..6] of UTF8String = ('Player 1', 'Player 2', 'Player 3', 'Player 4', 'Player 5', 'Player 6', 'All'); IAutoScoreEasyTranslated: array of UTF8String; IAutoScoreMediumTranslated: array of UTF8String; IAutoScoreHardTranslated: array of UTF8String; @@ -583,11 +582,11 @@ procedure TIni.TranslateOptionValues; IAutoModeTranslated[1] := ULanguage.Language.Translate('OPTION_VALUE_SEND'); IAutoModeTranslated[2] := ULanguage.Language.Translate('OPTION_VALUE_SAVE'); - for I:=0 to IMaxPlayerCount-1 do - begin + //TODO change 6 with IMaxPlayerCount when change 12 value in this variable + for I:=0 to 6-1 do IAutoPlayerTranslated[I] :=ULanguage.Language.Translate('OPTION_PLAYER_' + IntToStr(I)); - end; - IAutoPlayerTranslated[12] := ULanguage.Language.Translate('OPTION_ALL_PLAYERS'); + + IAutoPlayerTranslated[6] := ULanguage.Language.Translate('OPTION_ALL_PLAYERS'); SetLength(IAutoScoreEasyTranslated, 10000); SetLength(IAutoScoreMediumTranslated, 10000); @@ -1069,7 +1068,6 @@ procedure TIni.Load(); // Tabs Tabs := ReadArrayIndex(ITabs, IniFile, 'Game', 'Tabs', 0); - TabsAtStartup := Tabs; //Tabs at Startup fix // Song Sorting Sorting := ReadArrayIndex(ISorting, IniFile, 'Game', 'Sorting', Ord(sTitle)); @@ -1143,10 +1141,10 @@ procedure TIni.Load(); AudioOutputBufferSizeIndex := ReadArrayIndex(IAudioOutputBufferSize, IniFile, 'Sound', 'AudioOutputBufferSize', 0); //Preview Volume - PreviewVolume := ReadArrayIndex(IPreviewVolume, IniFile, 'Sound', 'PreviewVolume', 7); + PreviewVolume := ReadArrayIndex(IPreviewVolume, IniFile, 'Sound', 'PreviewVolume', 6); //Preview Fading - PreviewFading := ReadArrayIndex(IPreviewFading, IniFile, 'Sound', 'PreviewFading', 3); + PreviewFading := ReadArrayIndex(IPreviewFading, IniFile, 'Sound', 'PreviewFading', 1); //AudioRepeat aka VoicePassthrough VoicePassthrough := ReadArrayIndex(IVoicePassthrough, IniFile, 'Sound', 'VoicePassthrough', 0); diff --git a/src/base/UMain.pas b/src/base/UMain.pas index 53ef4aad..ee0474d9 100644 --- a/src/base/UMain.pas +++ b/src/base/UMain.pas @@ -66,7 +66,6 @@ implementation dglOpenGL, UAvatars, UCatCovers, - UCovers, UCommandLine, UCommon, UConfig, @@ -142,77 +141,60 @@ procedure Main; // without SDL_INIT_TIMER SDL_GetTicks() might return strange values SDL_SetHint(SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING, '1'); SDL_Init(SDL_INIT_VIDEO or SDL_INIT_TIMER); - //SDL_EnableUnicode(1); //not necessary in SDL2 any more // create luacore first so other classes can register their events LuaCore := TLuaCore.Create; - USTime := TTime.Create; VideoBGTimer := TRelativeTimer.Create; // Language - Log.LogStatus('Initialize Paths', 'Initialization'); InitializePaths; + Log.BenchmarkStart(1); Log.SetLogFileLevel(50); - Log.LogStatus('Load Language', 'Initialization'); Language := TLanguage.Create; - - // add const values: Language.AddConst('US_VERSION', USDXVersionStr); // Skin - Log.BenchmarkStart(1); - Log.LogStatus('Loading Skin List', 'Initialization'); Skin := TSkin.Create; - - Log.LogStatus('Loading Theme List', 'Initialization'); Theme := TTheme.Create; - Log.LogStatus('Website-Manager', 'Initialization'); + DLLMan := TDLLMan.Create; // Load WebsiteList - Log.LogStatus('DataBase System', 'Initialization'); DataBase := TDataBaseSystem.Create; - if (Params.ScoreFile.IsUnset) then DataBase.Init(Platform.GetGameUserPath.Append('Ultrastar.db')) else DataBase.Init(Params.ScoreFile); // Ini + Paths - Log.LogStatus('Load Ini', 'Initialization'); - Ini := TIni.Create; - Ini.Load; + UIni.Ini := TIni.Create(); + UIni.Ini.Load(); + UIni.Ini.Save(); // it is possible that this is the first run, create a .ini file if neccessary //load and check songs and get covers and category covers - UCovers.Covers := TCoverDatabase.Create; UCatCovers.CatCovers := TCatCovers.Create; USongs.CatSongs := TCatSongs.Create; USongs.Songs := TSongs.Create; //in a new thread - // it is possible that this is the first run, create a .ini file if neccessary - Log.LogStatus('Write Ini', 'Initialization'); - Ini.Save; + // Theme + UThemes.Theme.LoadTheme(Ini.Theme, Ini.Color); //avatars cache - Avatars := TAvatarDatabase.Create; + UAvatars.Avatars := TAvatarDatabase.Create(); - // Theme - Theme.LoadTheme(Ini.Theme, Ini.Color); + // Graphics + UGraphic.Initialize3D(WindowTitle); UMusic.InitializeSound(); UMusic.InitializeVideo(); // Lyrics-engine with media reference timer LyricsState := TLyricsState.Create(); - // Graphics - Initialize3D(WindowTitle); // Playlist Manager - Log.LogStatus('Playlist Manager', 'Initialization'); PlaylistMan := TPlaylistManager.Create; // GoldenStarsTwinkleMod - Log.LogStatus('Effect Manager', 'Initialization'); GoldenRec := TEffectManager.Create; // Joypad @@ -248,20 +230,21 @@ procedure Main; *} SoundLib.StartBgMusic; - // check microphone settings, goto record options if they are corrupt + // check microphone settings, goto Microphones options if they are corrupt BadPlayer := AudioInputProcessor.ValidateSettings; if (BadPlayer <> 0) then begin ScreenPopupError.ShowPopup( Format(Language.Translate('ERROR_PLAYER_DEVICE_ASSIGNMENT'), [BadPlayer])); - Display.CurrentScreen^.FadeTo( @ScreenOptionsRecord ); + Display.CurrentScreen^.FadeTo( @ScreenOptionsMicrophones ); end; + Log.LogBenchmark('Main load', 1); + //------------------------------ // Start Mainloop //------------------------------ - Log.LogStatus('Main Loop', 'Initialization'); MainLoop; {$IFNDEF Debug} diff --git a/src/base/UMusic.pas b/src/base/UMusic.pas index 9a3827ef..a62fb4d3 100644 --- a/src/base/UMusic.pas +++ b/src/base/UMusic.pas @@ -587,25 +587,14 @@ TAudioConverter = class const SOUNDID_START = 0; SOUNDID_BACK = 1; - SOUNDID_SWOOSH = 2; - SOUNDID_CHANGE = 3; - SOUNDID_OPTION = 4; - SOUNDID_CLICK = 5; + SOUNDID_OPTION = 2; LAST_SOUNDID = SOUNDID_CLICK; BaseSoundFilenames: array[0..LAST_SOUNDID] of IPath = ( - '%SOUNDPATH%/Common start.mp3', // Start - '%SOUNDPATH%/Common back.mp3', // Back - '%SOUNDPATH%/menu swoosh.mp3', // Swoosh - '%SOUNDPATH%/select music change music 50.mp3', // Change - '%SOUNDPATH%/option change col.mp3', // Option - '%SOUNDPATH%/rimshot022b.mp3' // Click - { - '%SOUNDPATH%/bassdrumhard076b.mp3', // Drum (unused) - '%SOUNDPATH%/hihatclosed068b.mp3', // Hihat (unused) - '%SOUNDPATH%/claps050b.mp3', // Clap (unused) - '%SOUNDPATH%/Shuffle.mp3' // Shuffle (unused) - } + '%SOUNDPATH%/forward sound.mp3', // Start + '%SOUNDPATH%/back sound.mp3', // Back + '%SOUNDPATH%/option sound col.mp3', // Option + ); *) @@ -619,11 +608,7 @@ TSoundLibrary = class // and provide IDs instead. Start: TAudioPlaybackStream; Back: TAudioPlaybackStream; - Swoosh: TAudioPlaybackStream; - Change: TAudioPlaybackStream; Option: TAudioPlaybackStream; - Click: TAudioPlaybackStream; - Applause:TAudioPlaybackStream; BGMusic: TAudioPlaybackStream; constructor Create(); @@ -643,7 +628,6 @@ TSoundLibrary = class var // TODO: JB --- THESE SHOULD NOT BE GLOBAL - Lines: array of TLines; LyricsState: TLyricsState; SoundLib: TSoundLibrary; @@ -995,14 +979,9 @@ procedure TSoundLibrary.LoadSounds(); begin UnloadSounds(); - Start := AudioPlayback.OpenSound(SoundPath.Append('Common start.mp3')); - Back := AudioPlayback.OpenSound(SoundPath.Append('Common back.mp3')); - Swoosh := AudioPlayback.OpenSound(SoundPath.Append('menu swoosh.mp3')); - Change := AudioPlayback.OpenSound(SoundPath.Append('select music change music 50.mp3')); - Option := AudioPlayback.OpenSound(SoundPath.Append('option change col.mp3')); - Click := AudioPlayback.OpenSound(SoundPath.Append('rimshot022b.mp3')); - Applause:= AudioPlayback.OpenSound(SoundPath.Append('Applause.mp3')); - + Start := AudioPlayback.OpenSound(SoundPath.Append('forward sound.mp3')); + Back := AudioPlayback.OpenSound(SoundPath.Append('back sound.mp3')); + Option := AudioPlayback.OpenSound(SoundPath.Append('option sound.mp3')); BGMusic := AudioPlayback.OpenSound(SoundPath.Append('background track.mp3')); if (BGMusic <> nil) then @@ -1013,11 +992,7 @@ procedure TSoundLibrary.UnloadSounds(); begin FreeAndNil(Start); FreeAndNil(Back); - FreeAndNil(Swoosh); - FreeAndNil(Change); FreeAndNil(Option); - FreeAndNil(Click); - FreeAndNil(Applause); FreeAndNil(BGMusic); end; diff --git a/src/base/UNote.pas b/src/base/UNote.pas index cf468b8b..55c90c34 100644 --- a/src/base/UNote.pas +++ b/src/base/UNote.pas @@ -146,7 +146,6 @@ implementation UCommandLine, UCommon, UConfig, - UCovers, UDataBase, UGraphic, UGraphicClasses, @@ -203,23 +202,23 @@ procedure Sing(Screen: TScreenSingController); PetGr := 1; // sentences routines - for CountGr := 0 to PetGr do //High(Lines) + for CountGr := 0 to PetGr do //High(CurrentSong.Lines) begin; CP := CountGr; // old parts - LyricsState.OldLine := Lines[CP].Current; + LyricsState.OldLine := CurrentSong.Lines[CP].Current; // choose current parts - for Count := 0 to Lines[CP].High do + for Count := 0 to CurrentSong.Lines[CP].High do begin - if LyricsState.CurrentBeat >= Lines[CP].Line[Count].Start then - Lines[CP].Current := Count; + if LyricsState.CurrentBeat >= CurrentSong.Lines[CP].Line[Count].Start then + CurrentSong.Lines[CP].Current := Count; end; // clean player note if there is a new line // (optimization on halfbeat time) - if Lines[CP].Current <> LyricsState.OldLine then + if CurrentSong.Lines[CP].Current <> LyricsState.OldLine then NewSentence(CP, Screen); end; // for CountGr @@ -242,22 +241,22 @@ procedure SingJukebox(Screen: TScreenJukebox); LyricsState.UpdateBeats(); // sentences routines - for CountGr := 0 to 0 do //High(Lines) + for CountGr := 0 to 0 do //High(CurrentSong.Lines) begin; CP := CountGr; // old parts - LyricsState.OldLine := Lines[CP].Current; + LyricsState.OldLine := CurrentSong.Lines[CP].Current; // choose current parts - for Count := 0 to Lines[CP].High do + for Count := 0 to CurrentSong.Lines[CP].High do begin - if LyricsState.CurrentBeat >= Lines[CP].Line[Count].Start then - Lines[CP].Current := Count; + if LyricsState.CurrentBeat >= CurrentSong.Lines[CP].Line[Count].Start then + CurrentSong.Lines[CP].Current := Count; end; end; // for CountGr // on sentence change... - Screen.onSentenceChange(Lines[0].Current); + Screen.onSentenceChange(CurrentSong.Lines[0].Current); end; procedure NewSentence(CP: integer; Screen: TScreenSingController); @@ -275,7 +274,7 @@ procedure NewSentence(CP: integer; Screen: TScreenSingController); end; end; - Screen.onSentenceChange(CP, Lines[CP].Current) + Screen.onSentenceChange(CP, CurrentSong.Lines[CP].Current) end; procedure NewBeatClick; @@ -287,17 +286,15 @@ procedure NewBeatClick; begin if (Ini.BeatClick = 1) and ((LyricsState.CurrentBeatC + 4) mod 4 = 0) then //FIXME after remove resolution and notesgap use 4 as default... begin - AudioPlayback.PlaySound(SoundLib.Click); end; - for Count := 0 to Lines[0].Line[Lines[0].Current].HighNote do + for Count := 0 to CurrentSong.Lines[0].Line[CurrentSong.Lines[0].Current].HighNote do begin //basisbit todo - if (Lines[0].Line[Lines[0].Current].Note[Count].Start = LyricsState.CurrentBeatC) then + if (CurrentSong.Lines[0].Line[CurrentSong.Lines[0].Current].Note[Count].Start = LyricsState.CurrentBeatC) then begin // click assist if Ini.ClickAssist = 1 then - AudioPlayback.PlaySound(SoundLib.Click); // drum machine (* @@ -340,9 +337,9 @@ procedure NewBeatDetect(Screen: TScreenSingController); NewNote(CP, Screen); - for I := 0 to Lines[CP].High do + for I := 0 to CurrentSong.Lines[CP].High do begin - with Lines[CP].Line[I] do + with CurrentSong.Lines[CP].Line[I] do begin if (HighNote >= 0) then begin @@ -384,14 +381,14 @@ procedure NewNote(CP: integer; Screen: TScreenSingController); NoteHit := false; // TODO: add duet mode support - // use Lines[LineSetIndex] with LineSetIndex depending on the current player + // use CurrentSong.Lines[LineSetIndex] with LineSetIndex depending on the current player // count min and max sentence range for checking // (detection is delayed to the notes we see on the screen) - SentenceMin := Lines[CP].Current-1; + SentenceMin := CurrentSong.Lines[CP].Current-1; if (SentenceMin < 0) then SentenceMin := 0; - SentenceMax := Lines[CP].Current; + SentenceMax := CurrentSong.Lines[CP].Current; for ActualBeat := LyricsState.OldBeatD+1 to LyricsState.CurrentBeatD do begin @@ -405,7 +402,7 @@ procedure NewNote(CP: integer; Screen: TScreenSingController); SentenceDetected := SentenceMin; for SentenceIndex := SentenceMin to SentenceMax do begin - Line := @Lines[CP].Line[SentenceIndex]; + Line := @CurrentSong.Lines[CP].Line[SentenceIndex]; for LineFragmentIndex := 0 to Line.HighNote do begin CurrentLineFragment := @Line.Note[LineFragmentIndex]; @@ -447,7 +444,7 @@ procedure NewNote(CP: integer; Screen: TScreenSingController); if (CurrentSound.ToneValid and NoteAvailable) then begin CurrentNoteType := ntNormal; - Line := @Lines[CP].Line[SentenceDetected]; + Line := @CurrentSong.Lines[CP].Line[SentenceDetected]; // process until last note for LineFragmentIndex := 0 to Line.HighNote do begin @@ -497,7 +494,7 @@ procedure NewNote(CP: integer; Screen: TScreenSingController); // gets for a hit of one beat of a normal note // CurNotePoints is the amount of points that is meassured // for a hit of the note per full beat - CurNotePoints := (MaxSongPoints / Lines[CP].ScoreValue) * ScoreFactor[CurrentLineFragment.NoteType]; + CurNotePoints := (MaxSongPoints / CurrentSong.Lines[CP].ScoreValue) * ScoreFactor[CurrentLineFragment.NoteType]; case CurrentLineFragment.NoteType of ntNormal: CurrentPlayer.Score := CurrentPlayer.Score + CurNotePoints; diff --git a/src/base/UPath.pas b/src/base/UPath.pas index 211f7e25..80842d58 100644 --- a/src/base/UPath.pas +++ b/src/base/UPath.pas @@ -1,8 +1,8 @@ {* UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the + + UltraStar Deluxe WorldParty is the legal property of its developers, + whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see + along with this program. Check "LICENSE" file. If not, see . *} @@ -41,7 +41,7 @@ interface LazUTF8Classes, {$ENDIF} UConfig, - UUnicodeStringHelper, + UUnicodeUtils, SDL2; type @@ -78,7 +78,7 @@ TUnicodeMemIniFile = class(TMemIniFile) procedure UpdateFile; override; property UTF8Encoded: boolean READ FUTF8Encoded WRITE FUTF8Encoded; end; - + {** * TBinaryFileStream (inherited from THandleStream) *} @@ -151,8 +151,8 @@ TUnicodeIniStream = class() {** * pdKeep: Keep path as is, neither remove or append a delimiter - * pdAppend: Append a delimiter if path does not have a trailing one - * pdRemove: Remove a trailing delimiter from the path + * pdAppend: Append a delimiter if path does not have a trailing one + * pdRemove: Remove a trailing delimiter from the path *} TPathDelimOption = (pdKeep, pdAppend, pdRemove); @@ -274,7 +274,7 @@ TUnicodeIniStream = class() {** * Splits the path into its components. Path delimiters are not removed from - * components. + * components. * Example: C:\test\my\dir -> ['C:\', 'test\', 'my\', 'dir'] *} function SplitDirs(): IPathDynArray; @@ -558,9 +558,9 @@ TPathImpl = class(TInterfacedObject, IPath) function Path(const PathName: RawByteString; DelimOption: TPathDelimOption): IPath; begin - if (IsUTF8StringH(PathName)) then + if (UUnicodeUtils.IsUTF8String(PathName)) then Result := TPathImpl.Create(PathName, DelimOption) - else if (IsNativeUTF8H()) then + else if (UUnicodeUtils.IsNativeUTF8()) then Result := PATH_NONE else Result := TPathImpl.Create(AnsiToUtf8(PathName), DelimOption); @@ -619,7 +619,7 @@ procedure TPathImpl.Unify(DelimOption: TPathDelimOption); fName[I] := PathDelim; end; - // Include/ExcludeTrailingPathDelimiter need PathDelim as path delimiter + // Include/ExcludeTrailingPathDelimiter need PathDelim as path delimiter case DelimOption of pdAppend: fName := IncludeTrailingPathDelimiter(fName); pdRemove: fName := ExcludeTrailingPathDelimiter(fName); @@ -661,7 +661,7 @@ function TPathImpl.ToWide(UseNativeDelim: boolean): WideString; function TPathImpl.ToNative(): RawByteString; begin - if (IsNativeUTF8H()) then + if (UUnicodeUtils.IsNativeUTF8()) then Result := fName else //basisbit hackyhack Result := Utf8ToAnsi(fName); diff --git a/src/base/USingScores.pas b/src/base/USingScores.pas index add41e3b..955d5cbf 100644 --- a/src/base/USingScores.pas +++ b/src/base/USingScores.pas @@ -1,8 +1,8 @@ {* UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the + + UltraStar Deluxe WorldParty is the legal property of its developers, + whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see + along with this program. Check "LICENSE" file. If not, see . *} @@ -142,6 +142,14 @@ TSingScores = class // current and previous call of draw TimePassed: Cardinal; + //Sing Bar Mod + Tex_SingBar_Back: TTexture; + Tex_SingBar_Bar: TTexture; + Tex_SingBar_Front: TTexture; + + //PhrasenBonus - Line Bonus Mod + Tex_SingLineBonusBack: array[0..8] of TTexture; + // draws a popup by pointer procedure DrawPopUp(const PopUp: PScorePopUp); @@ -234,18 +242,22 @@ TSingScores = class implementation uses - SysUtils, Math, sdl2, + SysUtils, TextGL, + UGraphic, ULog, UNote, - UGraphic; + USkins; {** * sets some standard settings *} constructor TSingScores.Create; +var + I: integer; + R, G: real; begin inherited; @@ -257,7 +269,7 @@ constructor TSingScores.Create; Visible := true; Enabled := true; RBVisible := true; - + // clear position index oPositionCount := 0; oPlayerCount := 0; @@ -279,6 +291,44 @@ constructor TSingScores.Create; Settings.RatingBar_BG_Tex.TexNum := 0; Settings.RatingBar_FG_Tex.TexNum := 0; Settings.RatingBar_Bar_Tex.TexNum := 0; + + //SingBar Mod + Self.Tex_SingBar_Back := UTexture.Texture.LoadTexture('SingBarBack'); + Self.Tex_SingBar_Bar := UTexture.Texture.LoadTexture('SingBarBar'); + Self.Tex_SingBar_Front := UTexture.Texture.LoadTexture('SingBarFront'); + + //line Bonus PopUp + for I := 0 to 8 do + begin + case I of + 1..3: + begin + R := 1; + G := I * 0.25; + end; + 4: + begin + R := 1; + G := 1; + end; + 5..7: + begin + R := 1 - ((I - 4) * 0.25); + G := 1; + end; + 8: + begin + R := 0; + G := 1; + end; + else + begin + R := 1; + G := 0; + end; + end; + Self.Tex_SingLineBonusBack[I] := UTexture.Texture.LoadTexture('LineBonusBack', TEXTURE_TYPE_COLORIZED, $10000 * Round(R * 255) + $100 * Round(G * 255)); + end; end; {** @@ -570,7 +620,7 @@ function TSingScores.GetPopUpPoints(const Index: integer): integer; CurPopUp: PScorePopUp; begin Result := 0; - + CurPopUp := FirstPopUp; while (CurPopUp <> nil) do begin diff --git a/src/base/USong.pas b/src/base/USong.pas index 28362864..99a272ca 100644 --- a/src/base/USong.pas +++ b/src/base/USong.pas @@ -49,11 +49,11 @@ interface UCommon, UFilesystem, ULog, + UMusic, //needed for TLines UPath, UPlatform, UTexture, UTextEncoding, - UUnicodeStringHelper, UUnicodeUtils; type @@ -150,6 +150,7 @@ TSong = class CatNumber: integer; // Count of Songs in Category for Cats and Number of Song in Category for Songs LastError: AnsiString; + Lines: array of TLines; function GetErrorLineNo: integer; property ErrorLineNo: integer read GetErrorLineNo; @@ -186,7 +187,6 @@ implementation UIni, UPathUtils, USongs, - UMusic, //needed for Lines UNote; //needed for Player const @@ -1084,9 +1084,12 @@ function TSong.Analyse(DuetChange: boolean): boolean; try Result := Self.ReadTxTHeader() and Self.LoadSong(DuetChange); - UNote.CurrentSong := Self; - if (not Self.isDuet) and (Self.Medley.Source = msNone) then //TODO needed a little bit more work to find refrains in duets - Self.FindRefrain(); + if Result then + begin + UNote.CurrentSong := Self; + if (not Self.isDuet) and (Self.Medley.Source = msNone) then //TODO needed a little bit more work to find refrains in duets + Self.FindRefrain(); + end; except Log.LogError('Reading headers from file failed. File incomplete or not Ultrastar txt?: ' + Self.Path.Append(Self.FileName).ToUTF8(true)); end; diff --git a/src/base/USongs.pas b/src/base/USongs.pas index 7dcfbad0..34eb07ae 100644 --- a/src/base/USongs.pas +++ b/src/base/USongs.pas @@ -24,9 +24,7 @@ interface -{$IFDEF FPC} - {$MODE OBJFPC} -{$ENDIF} +{$MODE OBJFPC} {$I switches.inc} @@ -44,7 +42,7 @@ interface {$ENDIF} UnixType, {$ENDIF} - MTProcs, + CpuCount, SysUtils, UCatCovers, UCommon, @@ -69,20 +67,46 @@ TScore = record Length: string; end; + TProgressSong = record + Folder: UTF8String; + Total: integer; + Finished: boolean; + end; + + TSongsParse = class(TThread) + private + Event: PRTLEvent; //event to fire parsing songs + Txt: integer; //number of txts parsed + Txts: TThreadList; //list to store all parsed songs as TSong object + protected + procedure Execute; override; + public + constructor Create(); + destructor Destroy(); override; + procedure AddSong(const TxtFile: IPath); + end; + TSongs = class(TThread) - private - protected - procedure Execute; override; - public - LoadingSongs: boolean; - SongList: TList; //array of songs - Selected: integer; //selected song index - constructor Create(); - destructor Destroy(); override; - procedure Sort(OrderType: TSortingType); + private + ProgressSong: TProgressSong; + Threads: array of TSongsParse; //threads to parse songs + Thread: integer; //current thread + procedure FindTxts(const Dir: IPath); + protected + procedure Execute; override; + public + SongList: TList; //array of songs + Selected: integer; //selected song index + constructor Create(); + destructor Destroy(); override; + function GetLoadProgress(): TProgressSong; + procedure Sort(OrderType: TSortingType); end; TCatSongs = class + private + VisibleSongs: integer; + public Song: array of TSong; // array of categories with songs SongSort: array of TSong; @@ -99,15 +123,16 @@ TCatSongs = class procedure ShowCategoryList; // Hides all Songs And Show the List of all Categorys function FindNextVisible(SearchFrom: integer): integer; // Find Next visible Song function FindPreviousVisible(SearchFrom: integer): integer; // Find Previous visible Song - function VisibleSongs: integer; // returns number of visible songs (for tabs) + function GetVisibleSongs(): integer; //returns number of visible songs + procedure SetVisibleSongs(); //sets number of visible songs function VisibleIndex(Index: integer): integer; // returns visible song index (skips invisible) function SetFilter(FilterStr: UTF8String; Filter: TSongFilter): cardinal; end; var - Songs: TSongs; // all songs - CatSongs: TCatSongs; // categorized songs + Songs: TSongs; //all songs + CatSongs: TCatSongs; //categorized songs const IN_ACCESS = $00000001; //* File was accessed */ @@ -127,8 +152,8 @@ implementation uses FileUtil, + Math, StrUtils, - UCovers, UFiles, UFilesystem, UGraphic, @@ -138,60 +163,129 @@ implementation UPathUtils, UUnicodeUtils; +constructor TSongsParse.Create(); +begin + inherited Create(false); + Self.FreeOnTerminate := true; + Self.Txts := TThreadList.Create(); + Self.Txt := 0; + Self.Event := RTLEventCreate(); +end; + +destructor TSongsParse.Destroy(); +begin + RTLeventDestroy(Self.Event); + Self.Txts.Destroy(); + inherited; +end; + +procedure TSongsParse.Execute(); +var + Song: TSong; + List: TList; + I: integer; +begin + while not Self.Terminated do + begin + RtlEventWaitFor(Self.Event); + List := Self.Txts.LockList(); + try + for I := Self.Txt to List.Count - 1 do //start to parse from the last position + begin + Song := TSong(List.Items[I]); + if Song.Analyse() then + Inc(Self.Txt) + else + Self.Txts.Remove(Song); + end; + finally + Self.Txts.UnlockList(); + end; + end; +end; + +procedure TSongsParse.AddSong(const TxtFile: IPath); +begin + Self.Txts.Add(TSong.Create(TxtFile)); + RtlEventSetEvent(Self.Event); +end; + constructor TSongs.Create(); +var + I: integer; begin inherited Create(false); Self.FreeOnTerminate := false; Self.SongList := TList.Create(); + Self.Thread := 0; + Setlength(Self.Threads, Max(1, CpuCount.GetLogicalCpuCount() - 2)); //total - main and songs threads + for I := 0 to High(Self.Threads) do + Self.Threads[I] := TSongsParse.Create(); end; destructor TSongs.Destroy(); +var + I: integer; begin - // FreeAndNil(Self.SongList); + for I := 0 to High(Self.Threads) do + Self.Threads[I].Terminate(); inherited; end; +{ Search for all files and directories } +procedure TSongs.FindTxts(const Dir: IPath); +var + Iter: IFileIterator; + FileInfo: TFileInfo; +begin + Iter := FileSystem.FileFind(Dir.Append('*'), faAnyFile); + while Iter.HasNext do //content of current folder + begin + FileInfo := Iter.Next; //get file info + if ((FileInfo.Attr and faDirectory) <> 0) and (not (FileInfo.Name.ToUTF8()[1] = '.')) then //if is a directory try to find more + Self.FindTxts(Dir.Append(FileInfo.Name)) + else if FileInfo.Name.GetExtension().ToNative() = '.txt' then //if is a txt file send to a thread to parse it + begin + Inc(Self.ProgressSong.Total); + Self.Threads[Self.Thread].AddSong(Dir.Append(FileInfo.Name)); + if Self.Thread = High(Self.Threads) then //each txt to one thread + Self.Thread := 0 + else + Inc(Self.Thread) + end + end; +end; + { Create a new thread to load songs and update main screen with progress } procedure TSongs.Execute(); var - I, J, Total : integer; - Txts: TStringList; + I: integer; Song: TSong; - Folder: string; begin - LoadingSongs := true; + Log.BenchmarkStart(2); Log.LogStatus('Searching For Songs', 'SongList'); - //find txt files on directories and add songs - for I := 0 to UPathUtils.SongPaths.Count-1 do + Self.ProgressSong.Total := 0; + Self.ProgressSong.Finished := false; + for I := 0 to UPathUtils.SongPaths.Count - 1 do //find txt files on directories and add songs begin - Folder := IPath(UPathUtils.SongPaths[I]).ToNative(); - if Assigned(UGraphic.ScreenMain) then - UGraphic.ScreenMain.SetLoadProgress(Format(ULanguage.Language.Translate('SING_LOADING_CHECK_FOLDER'), [Folder])); - - Txts := FileUtil.FindAllFiles(Folder, '*.txt', true); - Total := Txts.Count; - for J := 0 to Total-1 do - begin - Song := TSong.Create(Path(Txts.Strings[J])); - if Song.Analyse() then - Self.SongList.Add(Song); - - if Assigned(UGraphic.ScreenMain) then - UGraphic.ScreenMain.SetLoadProgress(IntToStr(J)+'/'+IntToStr(Total)+' ('+IntToStr(Trunc((J*100)/Total))+'%)'); - end; + Self.ProgressSong.Folder := Format(ULanguage.Language.Translate('SING_LOADING_SONGS'), [IPath(UPathUtils.SongPaths[I]).ToNative()]); + Self.FindTxts(IPath(UPathUtils.SongPaths[I])); end; + for I := 0 to High(Self.Threads) do //add all songs parsed to main list + Self.SongList.AddList(Self.Threads[I].Txts.LockList()); + Log.LogStatus('Search Complete', 'SongList'); CatSongs.Refresh; - - //wait to generate thumbnails and show message - while not Terminated and not Assigned(UGraphic.ScreenSong) do; - UGraphic.ScreenSong.GenerateThumbnails(); - UGraphic.ScreenMain.SetLoadProgress(ULanguage.Language.Translate('SING_LOADING_FINISH')); - - Self.LoadingSongs := false; + Self.ProgressSong.Folder := ''; + Self.ProgressSong.Finished := true; + Log.LogBenchmark('Song loading', 2); end; +function TSongs.GetLoadProgress(): TProgressSong; +begin + Result := Self.ProgressSong; +end; (* * Comparison functions for sorting *) @@ -527,27 +621,11 @@ procedure TCatSongs.Refresh; // set song's category info CurSong.OrderNum := OrderNum; // assigns category CurSong.CatNumber := CatNumber; - - if (Ini.Tabs = 0) then - begin - CurSong.Visible := true; - end - else if (Ini.Tabs = 1) then - begin - CurSong.Visible := false; - end; -{ - if (Ini.Tabs = 1) and (Order = 1) then - begin - //open first tab - CurSong.Visible := true; - end; - CurSong.Visible := true; -} + CurSong.Visible := UIni.Ini.Tabs = 0; end; // set CatNumber of last category - if (Ini.TabsAtStartup = 1) and (High(Song) >= 1) then + if (UIni.Ini.Tabs = 1) and (High(Song) >= 1) then begin // set number of songs in previous category SongIndex := CatIndex - CatNumber; @@ -561,30 +639,34 @@ procedure TCatSongs.Refresh; procedure TCatSongs.ShowCategory(Index: integer); var - S: integer; // song + I: integer; begin + Self.VisibleSongs := 0; CatNumShow := Index; - for S := 0 to high(CatSongs.Song) do + for I := 0 to high(CatSongs.Song) do begin -{ - if (CatSongs.Song[S].OrderNum = Index) and (not CatSongs.Song[S].Main) then - CatSongs.Song[S].Visible := true + if (CatSongs.Song[I].OrderNum = Index) and (not CatSongs.Song[I].Main) then + begin + CatSongs.Song[I].Visible := true; + Inc(Self.VisibleSongs); + end else - CatSongs.Song[S].Visible := false; -} -// KMS: This should be the same, but who knows :-) - CatSongs.Song[S].Visible := ((CatSongs.Song[S].OrderNum = Index) and (not CatSongs.Song[S].Main)); + CatSongs.Song[I].Visible := false; end; end; -procedure TCatSongs.HideCategory(Index: integer); // hides all songs in category +{hides all songs in category} +procedure TCatSongs.HideCategory(Index: integer); var - S: integer; // song + I: integer; begin - for S := 0 to high(CatSongs.Song) do + Self.VisibleSongs := 0; + for I := 0 to high(CatSongs.Song) do begin - if not CatSongs.Song[S].Main then - CatSongs.Song[S].Visible := false // hides all at now + if not CatSongs.Song[I].Main then + CatSongs.Song[I].Visible := false // hides all at now + else + Inc(Self.VisibleSongs); end; end; @@ -604,17 +686,20 @@ procedure TCatSongs.ClickCategoryButton(Index: integer); end; //Hide Categorys when in Category Hack -procedure TCatSongs.ShowCategoryList; +procedure TCatSongs.ShowCategoryList(); var - S: integer; + I: integer; begin - // Hide All Songs Show All Cats - for S := 0 to high(CatSongs.Song) do - CatSongs.Song[S].Visible := CatSongs.Song[S].Main; + Self.VisibleSongs := 0; + for I := 0 to high(CatSongs.Song) do //hide all songs and show all cats + begin + CatSongs.Song[I].Visible := CatSongs.Song[I].Main; + if CatSongs.Song[I].Visible then + Inc(Self.VisibleSongs); + end; CatSongs.Selected := CatNumShow; //Show last shown Category CatNumShow := -1; end; -//Hide Categorys when in Category Hack End // Wrong song selected when tabs on bug function TCatSongs.FindNextVisible(SearchFrom:integer): integer;// Find next Visible Song @@ -659,23 +744,22 @@ function TCatSongs.FindPreviousVisible(SearchFrom:integer): integer;// Find prev end; end; -// Wrong song selected when tabs on bug End - -(** - * Returns the number of visible songs. - *) -function TCatSongs.VisibleSongs: integer; +procedure TCatSongs.SetVisibleSongs(); var - SongIndex: integer; + I: integer; begin - Result := 0; - for SongIndex := 0 to High(CatSongs.Song) do - begin - if (CatSongs.Song[SongIndex].Visible) then - Inc(Result); - end; + Self.VisibleSongs := 0; + for I := 0 to High(CatSongs.Song) do + if (CatSongs.Song[I].Visible) then + Inc(Self.VisibleSongs); end; +function TCatSongs.GetVisibleSongs(): integer; +begin + Result := Self.VisibleSongs; +end; + + (** * Returns the index of a song in the subset of all visible songs. * If all songs are visible, the result will be equal to the Index parameter. @@ -698,14 +782,11 @@ function TCatSongs.SetFilter(FilterStr: UTF8String; Filter: TSongFilter): cardin TmpString: UTF8String; WordArray: array of UTF8String; begin - - FilterStr := Trim(LowerCase(FilterStr)); - FilterStr := GetStringWithNoAccents(FilterStr); - - if (FilterStr <> '') then + Self.VisibleSongs := 0; + Result := 0; + FilterStr := UCommon.GetStringWithNoAccents(Trim(LowerCase(FilterStr))); + if FilterStr <> '' then begin - Result := 0; - // initialize word array SetLength(WordArray, 1); @@ -739,8 +820,7 @@ function TCatSongs.SetFilter(FilterStr: UTF8String; Filter: TSongFilter): cardin // Look for every searched word for J := 0 to High(WordArray) do begin - Song[i].Visible := Song[i].Visible and - UTF8ContainsStr(TmpString, WordArray[J]) + Song[i].Visible := Song[i].Visible and UTF8ContainsStr(TmpString, WordArray[J]) end; if Song[i].Visible then Inc(Result); @@ -752,13 +832,15 @@ function TCatSongs.SetFilter(FilterStr: UTF8String; Filter: TSongFilter): cardin end else begin - for i := 0 to High(Song) do + for I := 0 to High(Song) do begin - Song[i].Visible := (Ini.Tabs = 1) = Song[i].Main; - CatNumShow := -1; + Song[I].Visible := (UIni.Ini.Tabs = 1) = Song[I].Main; + if Song[I].Visible then + Inc(Result); end; - Result := 0; + CatNumShow := -1; end; + Self.VisibleSongs := Result; end; // ----------------------------------------------------------------------------- diff --git a/src/base/UTexture.pas b/src/base/UTexture.pas index 09841f04..a0aac3c0 100644 --- a/src/base/UTexture.pas +++ b/src/base/UTexture.pas @@ -116,8 +116,8 @@ TTextureUnit = class procedure AddTexture(var Tex: TTexture; Typ: TTextureType; Color: cardinal; Cache: boolean = false); overload; function GetTexture(const Name: IPath; Typ: TTextureType; FromCache: boolean = false): TTexture; overload; function GetTexture(const Name: IPath; Typ: TTextureType; Col: LongWord; FromCache: boolean = false): TTexture; overload; - function LoadTexture(const Identifier: IPath; Typ: TTextureType; Col: LongWord): TTexture; overload; - function LoadTexture(const Identifier: IPath): TTexture; overload; + function LoadTexture(const Identifier: UTF8String; Typ: TTextureType = TEXTURE_TYPE_PLAIN; Col: LongWord = 0): TTexture; overload; + function LoadTexture(const Identifier: IPath; Typ: TTextureType = TEXTURE_TYPE_PLAIN; Col: LongWord = 0): TTexture; overload; function CreateTexture(Data: PChar; const Name: IPath; Width, Height: word; BitsPerPixel: byte): TTexture; procedure UnloadTexture(const Name: IPath; Typ: TTextureType; FromCache: boolean); overload; procedure UnloadTexture(const Name: IPath; Typ: TTextureType; Col: cardinal; FromCache: boolean); overload; @@ -134,32 +134,20 @@ implementation uses DateUtils, - StrUtils, Math, + StrUtils, + UImage, ULog, - UCovers, - UThemes, - UImage; + USkins, + UThemes; procedure AdjustPixelFormat(var TexSurface: PSDL_Surface; Typ: TTextureType); var - TempSurface: PSDL_Surface; NeededPixFmt: UInt32; begin - if (Typ = TEXTURE_TYPE_PLAIN) then - NeededPixFmt := SDL_PIXELFORMAT_RGB24 - else if (Typ = TEXTURE_TYPE_TRANSPARENT) or - (Typ = TEXTURE_TYPE_COLORIZED) then - NeededPixFmt := SDL_PIXELFORMAT_ABGR8888 - else - NeededPixFmt := SDL_PIXELFORMAT_RGB24; - + NeededPixFmt := IfThen((Typ = TEXTURE_TYPE_TRANSPARENT) or (Typ = TEXTURE_TYPE_COLORIZED), SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_RGB24); if not (TexSurface^.format.format = NeededPixFmt) then - begin - TempSurface := TexSurface; - TexSurface := SDL_ConvertSurfaceFormat(TempSurface, NeededPixFmt, 0); - SDL_FreeSurface(TempSurface); - end; + TexSurface := SDL_ConvertSurfaceFormat(TexSurface, NeededPixFmt, 0); end; { TTextureDatabase } @@ -237,9 +225,9 @@ procedure TTextureUnit.AddTexture(var Tex: TTexture; Typ: TTextureType; Color: c TextureDatabase.AddTexture(Tex, Typ, Color, Cache); end; -function TTextureUnit.LoadTexture(const Identifier: IPath): TTexture; +function TTextureUnit.LoadTexture(const Identifier: UTF8String; Typ: TTextureType; Col: LongWord): TTexture; begin - Result := LoadTexture(Identifier, TEXTURE_TYPE_PLAIN, 0); + Result := Self.LoadTexture(USkins.Skin.GetTextureFileName(Identifier), Typ, Col); end; function TTextureUnit.LoadTexture(const Identifier: IPath; Typ: TTextureType; Col: LongWord): TTexture; @@ -306,31 +294,22 @@ function TTextureUnit.LoadTexture(const Identifier: IPath; Typ: TTextureType; Co // prepare OpenGL texture glGenTextures(1, @ActTex); - glBindTexture(GL_TEXTURE_2D, ActTex); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - - // load data into gl texture - if (Typ = TEXTURE_TYPE_TRANSPARENT) or - (Typ = TEXTURE_TYPE_COLORIZED) then - begin - {$IFDEF FPC_BIG_ENDIAN} - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, newWidth, newHeight, 0, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8_REV, TexSurface.pixels); - {$ELSE} - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, newWidth, newHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, TexSurface.pixels); - {$ENDIF} - end - else //if Typ = TEXTURE_TYPE_PLAIN then - begin - {$IFDEF FPC_BIG_ENDIAN} - glTexImage2D(GL_TEXTURE_2D, 0, 3, newWidth, newHeight, 0, GL_BGR, GL_UNSIGNED_BYTE, TexSurface.pixels); - {$ELSE} - glTexImage2D(GL_TEXTURE_2D, 0, 3, newWidth, newHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, TexSurface.pixels); - {$ENDIF} - end; + glTexImage2D( //load data into gl texture + GL_TEXTURE_2D, + 0, + IfThen((Typ = TEXTURE_TYPE_TRANSPARENT) or (Typ = TEXTURE_TYPE_COLORIZED), GL_RGBA, 3), //idk why 3, maybe is a constant... + newWidth, + newHeight, + 0, + IfThen((Typ = TEXTURE_TYPE_TRANSPARENT) or (Typ = TEXTURE_TYPE_COLORIZED), GL_RGBA, GL_RGB), + GL_UNSIGNED_BYTE, + TexSurface.pixels + ); // setup texture struct with Result do @@ -428,12 +407,7 @@ function TTextureUnit.CreateTexture(Data: PChar; const Name: IPath; Width, Heigh glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - - {$IFDEF FPC_BIG_ENDIAN} - glTexImage2D(GL_TEXTURE_2D, 0, 3, Width, Height, 0, GL_BGR, GL_UNSIGNED_BYTE, Data); - {$ELSE} glTexImage2D(GL_TEXTURE_2D, 0, 3, Width, Height, 0, GL_RGB, GL_UNSIGNED_BYTE, Data); - {$ENDIF} { if Mipmapping then diff --git a/src/base/UThemes.pas b/src/base/UThemes.pas index c1bb2beb..607efec7 100644 --- a/src/base/UThemes.pas +++ b/src/base/UThemes.pas @@ -56,7 +56,7 @@ TThemeBackground = record end; const - //Defaul Background for Screens w/o Theme e.g. editor + //Defaul Background for Screens w/o Theme DEFAULT_BACKGROUND: TThemeBackground = ( BGType: bgtColor; Color: (R:1; G:1; B:1); @@ -70,7 +70,7 @@ TThemeBackground = record OPTIONS_DESC_INDEX_SOUND = 3; OPTIONS_DESC_INDEX_LYRICS = 4; OPTIONS_DESC_INDEX_THEMES = 5; - OPTIONS_DESC_INDEX_RECORD = 6; + OPTIONS_DESC_INDEX_MICROPHONES = 6; OPTIONS_DESC_INDEX_ADVANCED = 7; OPTIONS_DESC_INDEX_NETWORK = 8; OPTIONS_DESC_INDEX_WEBCAM = 9; @@ -255,12 +255,14 @@ TThemeMain = class(TThemeBasic) ButtonStat: TThemeButton; ButtonOptions: TThemeButton; ButtonExit: TThemeButton; - ButtonAbout: TThemeButton; + ButtonAbout: TThemeButton; + ProgressSongsText: TThemeText; TextDescription: TThemeText; TextDescriptionLong: TThemeText; Description: array[0..7] of UTF8String; DescriptionLong: array[0..7] of UTF8String; + end; TThemeName = class(TThemeBasic) @@ -314,6 +316,9 @@ TThemeSong = class(TThemeBasic) TextCat: TThemeText; StaticCat: TThemeStatic; + SongSelectionUp: TThemeStatic; + SongSelectionDown: TThemeStatic; + //Cover Mod Cover: record Reflections: boolean; @@ -816,17 +821,17 @@ TThemeTop5 = class(TThemeBasic) end; TThemeOptions = class(TThemeBasic) - ButtonGame: TThemeButton; - ButtonGraphics: TThemeButton; - ButtonSound: TThemeButton; - ButtonLyrics: TThemeButton; - ButtonThemes: TThemeButton; - ButtonRecord: TThemeButton; - ButtonAdvanced: TThemeButton; - ButtonNetwork: TThemeButton; - ButtonWebcam: TThemeButton; - ButtonJukebox: TThemeButton; - ButtonExit: TThemeButton; + ButtonGame: TThemeButton; + ButtonGraphics: TThemeButton; + ButtonSound: TThemeButton; + ButtonLyrics: TThemeButton; + ButtonThemes: TThemeButton; + ButtonMicrophones: TThemeButton; + ButtonAdvanced: TThemeButton; + ButtonNetwork: TThemeButton; + ButtonWebcam: TThemeButton; + ButtonJukebox: TThemeButton; + ButtonExit: TThemeButton; TextDescription: TThemeText; Description: array[0..10] of UTF8String; @@ -880,7 +885,7 @@ TThemeOptionsThemes = class(TThemeBasic) ButtonExit: TThemeButton; end; - TThemeOptionsRecord = class(TThemeBasic) + TThemeOptionsMicrophones = class(TThemeBasic) SelectSlideCard: TThemeSelectSlide; SelectSlideInput: TThemeSelectSlide; SelectSlideChannel: TThemeSelectSlide; @@ -950,48 +955,6 @@ TThemeOptionsJukebox = class(TThemeBasic) LowerX, LowerW, LowerY, LowerH : integer; end; - TThemeEdit = class(TThemeBasic) - ButtonConvert: TThemeButton; - ButtonExit: TThemeButton; - - TextDescription: TThemeText; - TextDescriptionLong: TThemeText; - Description: array[0..5] of UTF8string; - DescriptionLong: array[0..5] of UTF8string; - end; - - TThemeEditSub = class(TThemeBasic) - //in editor - headers - BackgroundImage: TThemeStatic; - ButtonCurrentLine: TThemeButton; - ButtonCurrentNote: TThemeButton; - // buttons - PlayOnly: TThemeButton; - PlayWithNote: TThemeButton; - PlayNote: TThemeButton; - previousseq: TThemeButton; - nextseq: TThemeButton; - undo: TThemeButton; - gold: TThemeButton; - freestyle: TThemeButton; - - SlideTitle: TThemeSelectSlide; - SlideArtist: TThemeSelectSlide; - SlideMP3: TThemeSelectSlide; - SlideCover: TThemeSelectSlide; - SlideBackground: TThemeSelectSlide; - SlideBPM: TThemeSelectSlide; - SlideGAP: TThemeSelectSlide; - SlideStart: TThemeSelectSlide; - SlideDuration: TThemeSelectSlide; - SlideTone: TThemeSelectSlide; - SlideLyric: TThemeSelectSlide; - SelectVolAudio: TThemeSelectSlide; - SelectVolMidi: TThemeSelectSlide; - SelectVolClick: TThemeSelectSlide; - SlideVideoGap: TThemeSelectSlide; - end; - //Error- and Check-Popup TThemeError = class(TThemeBasic) Button1: TThemeButton; @@ -1253,7 +1216,6 @@ TThemePartyTournamentWin = class(TThemeBasic) TThemeAboutMain = class(TThemeBasic) StaticBghelper: TThemeStatic; ButtonDevelopers: TThemeButton; - ButtonCredits: TThemeButton; ButtonExit: TThemeButton; TextOverview: TThemeText; end; @@ -1336,14 +1298,11 @@ TTheme = class OptionsSound: TThemeOptionsSound; OptionsLyrics: TThemeOptionsLyrics; OptionsThemes: TThemeOptionsThemes; - OptionsRecord: TThemeOptionsRecord; + OptionsMicrophones: TThemeOptionsMicrophones; OptionsAdvanced: TThemeOptionsAdvanced; OptionsNetwork: TThemeOptionsNetwork; OptionsWebcam: TThemeOptionsWebcam; OptionsJukebox: TThemeOptionsJukebox; - //edit - Edit: TThemeEdit; - EditSub: TThemeEditSub; //error and check popup ErrorPopup: TThemeError; CheckPopup: TThemeCheck; @@ -1378,7 +1337,7 @@ TTheme = class Playlist: TThemePlaylist; ILevel: array[0..2] of UTF8String; - IMode: array[0..3] of UTF8String; + IMode: array[0..2] of UTF8String; constructor Create; @@ -1501,15 +1460,12 @@ constructor TTheme.Create; OptionsSound := TThemeOptionsSound.Create; OptionsLyrics := TThemeOptionsLyrics.Create; OptionsThemes := TThemeOptionsThemes.Create; - OptionsRecord := TThemeOptionsRecord.Create; + OptionsMicrophones := TThemeOptionsMicrophones.Create; OptionsAdvanced := TThemeOptionsAdvanced.Create; OptionsNetwork := TThemeOptionsNetwork.Create; OptionsWebcam := TThemeOptionsWebcam.Create; OptionsJukebox := TThemeOptionsJukebox.Create; - Edit := TThemeEdit.Create; - EditSub := TThemeEditSub.Create; - ErrorPopup := TThemeError.Create; CheckPopup := TThemeCheck.Create; InsertUserPopup := TThemeInsertUser.Create; @@ -1668,6 +1624,7 @@ function TTheme.LoadTheme(ThemeNum: integer; sColor: integer): boolean; ThemeLoadText(Main.TextDescription, 'MainTextDescription'); ThemeLoadText(Main.TextDescriptionLong, 'MainTextDescriptionLong'); + ThemeLoadText(Main.ProgressSongsText, 'MainProgressSongsText'); ThemeLoadButton(Main.ButtonSolo, 'MainButtonSolo'); ThemeLoadButton(Main.ButtonMulti, 'MainButtonMulti'); ThemeLoadButton(Main.ButtonJukebox, 'MainButtonJukebox'); @@ -2183,18 +2140,18 @@ function TTheme.LoadTheme(ThemeNum: integer; sColor: integer): boolean; // Options ThemeLoadBasic(Options, 'Options'); - ThemeLoadButton(Options.ButtonGame, 'OptionsButtonGame'); - ThemeLoadButton(Options.ButtonGraphics, 'OptionsButtonGraphics'); - ThemeLoadButton(Options.ButtonSound, 'OptionsButtonSound'); + ThemeLoadButton(Options.ButtonGame, 'OptionsButtonGame'); + ThemeLoadButton(Options.ButtonGraphics, 'OptionsButtonGraphics'); + ThemeLoadButton(Options.ButtonSound, 'OptionsButtonSound'); - ThemeLoadButton(Options.ButtonLyrics, 'OptionsButtonLyrics'); - ThemeLoadButton(Options.ButtonThemes, 'OptionsButtonThemes'); - ThemeLoadButton(Options.ButtonRecord, 'OptionsButtonRecord'); - ThemeLoadButton(Options.ButtonAdvanced, 'OptionsButtonAdvanced'); - ThemeLoadButton(Options.ButtonNetwork, 'OptionsButtonNetwork'); - ThemeLoadButton(Options.ButtonWebcam, 'OptionsButtonWebcam'); - ThemeLoadButton(Options.ButtonJukebox, 'OptionsButtonJukebox'); - ThemeLoadButton(Options.ButtonExit, 'OptionsButtonExit'); + ThemeLoadButton(Options.ButtonLyrics, 'OptionsButtonLyrics'); + ThemeLoadButton(Options.ButtonThemes, 'OptionsButtonThemes'); + ThemeLoadButton(Options.ButtonMicrophones, 'OptionsButtonMicrophones'); + ThemeLoadButton(Options.ButtonAdvanced, 'OptionsButtonAdvanced'); + ThemeLoadButton(Options.ButtonNetwork, 'OptionsButtonNetwork'); + ThemeLoadButton(Options.ButtonWebcam, 'OptionsButtonWebcam'); + ThemeLoadButton(Options.ButtonJukebox, 'OptionsButtonJukebox'); + ThemeLoadButton(Options.ButtonExit, 'OptionsButtonExit'); // Note: always update the indexes constant on top of this unit when changing the order (see OPTIONS_DESC_INDEX_*) Options.Description[OPTIONS_DESC_INDEX_BACK] := Language.Translate('SING_OPTIONS_EXIT'); @@ -2203,7 +2160,7 @@ function TTheme.LoadTheme(ThemeNum: integer; sColor: integer): boolean; Options.Description[OPTIONS_DESC_INDEX_SOUND] := Language.Translate('SING_OPTIONS_SOUND_DESC'); Options.Description[OPTIONS_DESC_INDEX_LYRICS] := Language.Translate('SING_OPTIONS_LYRICS_DESC'); Options.Description[OPTIONS_DESC_INDEX_THEMES] := Language.Translate('SING_OPTIONS_THEMES_DESC'); - Options.Description[OPTIONS_DESC_INDEX_RECORD] := Language.Translate('SING_OPTIONS_RECORD_DESC'); + Options.Description[OPTIONS_DESC_INDEX_MICROPHONES] := Language.Translate('SING_OPTIONS_MICROPHONES_DESC'); Options.Description[OPTIONS_DESC_INDEX_ADVANCED] := Language.Translate('SING_OPTIONS_ADVANCED_DESC'); Options.Description[OPTIONS_DESC_INDEX_NETWORK] := Language.Translate('SING_OPTIONS_NETWORK_DESC'); Options.Description[OPTIONS_DESC_INDEX_WEBCAM] := Language.Translate('SING_OPTIONS_WEBCAM_DESC'); @@ -2267,15 +2224,15 @@ function TTheme.LoadTheme(ThemeNum: integer; sColor: integer): boolean; ThemeLoadSelectSlide(OptionsThemes.SelectColor, 'OptionsThemesSelectColor'); ThemeLoadButton(OptionsThemes.ButtonExit, 'OptionsThemesButtonExit'); - // Options Record - ThemeLoadBasic(OptionsRecord, 'OptionsRecord'); + // Options Microphones + ThemeLoadBasic(OptionsMicrophones, 'OptionsMicrophones'); - ThemeLoadSelectSlide(OptionsRecord.SelectSlideCard, 'OptionsRecordSelectSlideCard'); - ThemeLoadSelectSlide(OptionsRecord.SelectSlideInput, 'OptionsRecordSelectSlideInput'); - ThemeLoadSelectSlide(OptionsRecord.SelectSlideChannel, 'OptionsRecordSelectSlideChannel'); - ThemeLoadSelectSlide(OptionsRecord.SelectThreshold, 'OptionsRecordSelectThreshold'); - ThemeLoadSelectSlide(OptionsRecord.SelectMicBoost, 'OptionsRecordSelectMicBoost'); - ThemeLoadButton(OptionsRecord.ButtonExit, 'OptionsRecordButtonExit'); + ThemeLoadSelectSlide(OptionsMicrophones.SelectSlideCard, 'OptionsMicrophonesSelectSlideCard'); + ThemeLoadSelectSlide(OptionsMicrophones.SelectSlideInput, 'OptionsMicrophonesSelectSlideInput'); + ThemeLoadSelectSlide(OptionsMicrophones.SelectSlideChannel, 'OptionsMicrophonesSelectSlideChannel'); + ThemeLoadSelectSlide(OptionsMicrophones.SelectThreshold, 'OptionsMicrophonesSelectThreshold'); + ThemeLoadSelectSlide(OptionsMicrophones.SelectMicBoost, 'OptionsMicrophonesSelectMicBoost'); + ThemeLoadButton(OptionsMicrophones.ButtonExit, 'OptionsMicrophonesButtonExit'); //Options Advanced ThemeLoadBasic(OptionsAdvanced, 'OptionsAdvanced'); @@ -2521,7 +2478,6 @@ function TTheme.LoadTheme(ThemeNum: integer; sColor: integer): boolean; // About ThemeLoadBasic(AboutMain, 'AboutMain'); ThemeLoadButton(AboutMain.ButtonDevelopers, 'AboutMainButtonDevelopers'); - ThemeLoadButton(AboutMain.ButtonCredits, 'AboutMainButtonCredits'); ThemeLoadButton(AboutMain.ButtonExit, 'AboutMainButtonExit'); ThemeLoadText (AboutMain.TextOverview, 'AboutMainTextOverview'); ThemeLoadStatic(AboutMain.StaticBghelper, 'AboutMainStatico'); @@ -2576,16 +2532,16 @@ function TTheme.LoadTheme(ThemeNum: integer; sColor: integer): boolean; //Level Translations //Fill ILevel - ILevel[0] := Language.Translate('SING_EASY'); - ILevel[1] := Language.Translate('SING_MEDIUM'); - ILevel[2] := Language.Translate('SING_HARD'); + ILevel[0] := Language.Translate('OPTION_VALUE_EASY'); + ILevel[1] := Language.Translate('OPTION_VALUE_MEDIUM'); + ILevel[2] := Language.Translate('OPTION_VALUE_HARD'); //Mode Translations //Fill IMode IMode[0] := Language.Translate('PARTY_MODE_CLASSIC'); IMode[1] := Language.Translate('PARTY_MODE_CLASSIC_FREE'); - IMode[2] := Language.Translate('PARTY_MODE_CHALLENGE'); - IMode[3] := Language.Translate('PARTY_MODE_TOURNAMENT'); + IMode[2] := Language.Translate('PARTY_MODE_TOURNAMENT'); + //IMode[3] := Language.Translate('PARTY_MODE_CHALLENGE'); //Hidden for the moment. Check in the future end; ThemeIni.Free; @@ -4267,6 +4223,9 @@ procedure TTheme.ThemeSongLoad; ThemeLoadStatic(Song.StaticCat, 'Song' + prefix + 'StaticCat'); ThemeLoadText(Song.TextCat, 'Song' + prefix + 'TextCat'); + Self.ThemeLoadStatic(Self.Song.SongSelectionUp, 'Song' + prefix + 'Static1'); + Self.ThemeLoadStatic(Self.Song.SongSelectionDown, 'Song' + prefix + 'Static2'); + //Load Cover Pos and Size from Theme Mod Song.Cover.X := ThemeIni.ReadInteger('Song' + prefix + 'Cover', 'X', 300); Song.Cover.Y := ThemeIni.ReadInteger('Song' + prefix + 'Cover', 'Y', 190); @@ -4305,6 +4264,7 @@ procedure TTheme.ThemeSongLoad; if (TSongMenuMode(Ini.SongMenu) = smList) then begin + Song.Cover.Rows := ThemeIni.ReadInteger('Song' + prefix + 'Cover', 'Rows', 4); Song.Cover.SelectX := ThemeIni.ReadInteger('Song' + prefix + 'Cover', 'SelectX', 300); Song.Cover.SelectY := ThemeIni.ReadInteger('Song' + prefix + 'Cover', 'SelectY', 120); Song.Cover.SelectW := ThemeIni.ReadInteger('Song' + prefix + 'Cover', 'SelectW', 325); @@ -4472,8 +4432,8 @@ procedure TTheme.CreateThemeObjects(); freeandnil(OptionsThemes); OptionsThemes := TThemeOptionsThemes.Create; - freeandnil(OptionsRecord); - OptionsRecord := TThemeOptionsRecord.Create; + freeandnil(OptionsMicrophones); + OptionsMicrophones := TThemeOptionsMicrophones.Create; freeandnil(OptionsAdvanced); OptionsAdvanced := TThemeOptionsAdvanced.Create; @@ -4487,12 +4447,6 @@ procedure TTheme.CreateThemeObjects(); freeandnil(OptionsJukebox); OptionsJukebox := TThemeOptionsJukebox.Create; - freeandnil(Edit); - Edit := TThemeEdit.Create; - - freeandnil(EditSub); - EditSub := TThemeEditSub.Create; - freeandnil(ErrorPopup); ErrorPopup := TThemeError.Create; diff --git a/src/base/uunicodestringhelper.pas b/src/base/uunicodestringhelper.pas deleted file mode 100644 index ff805cb9..00000000 --- a/src/base/uunicodestringhelper.pas +++ /dev/null @@ -1,62 +0,0 @@ -{* - UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the - COPYRIGHT file distributed with this source distribution. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see - . - *} - -unit UUnicodeStringHelper; - -{$mode objfpc} - -interface - -uses - UUnicodeUtils; - -{** - * Checks if the given string is a valid UTF-8 string. - * If an ANSI encoded string (with char codes >= 128) is passed, the - * function will most probably return false, as most ANSI strings sequences - * are illegal in UTF-8. - *} -function IsUTF8StringH(const str: RawByteString): boolean; - -{** - * Returns true if the system uses UTF-8 as default string type - * (filesystem or API calls). - * This is always true on Mac OS X and always false on Win32. On Unix it depends - * on the LC_CTYPE setting. - * Do not use AnsiToUTF8() or UTF8ToAnsi() if this function returns true. - *} -function IsNativeUTF8H(): boolean; - -implementation - -function IsUTF8StringH(const str: RawByteString): boolean; -begin - Result := IsUTF8String(str); -end; - -function IsNativeUTF8H(): boolean; -begin - Result := IsNativeUTF8(); -end; - -end. - diff --git a/src/lib/ffmpeg-4.0/How to update the ffmpeg files.txt b/src/lib/ffmpeg-4.0/How to update the ffmpeg files.txt new file mode 100644 index 00000000..ae65d477 --- /dev/null +++ b/src/lib/ffmpeg-4.0/How to update the ffmpeg files.txt @@ -0,0 +1,20 @@ +how to update the ffmpeg files: + +1) buffer.pas + cpu.pas + dict.pas + error.pas + frame.pas + log.pas + mathematics.pas + mem.pas + opt.pas + pixfmt.pas + samplefmt.pas +2) rational.pas +3) avutil.pas +4) avcodec.pas +5) avio.pas + swscale.pas + swresample.pas +6) avformat.pas \ No newline at end of file diff --git a/src/lib/ffmpeg-4.0/ToDo.txt b/src/lib/ffmpeg-4.0/ToDo.txt new file mode 100644 index 00000000..b0bd305e --- /dev/null +++ b/src/lib/ffmpeg-4.0/ToDo.txt @@ -0,0 +1,112 @@ +1) avutil.pas + +from mem.pas: +inline function av_x_if_null +inline function av_size_mult + +from log.pas: +inline function av_log +inline function av_log_set_callback +inline function av_log_default_callback +inline function av_dlog + + +FFmpeg 3.0 changes: +2016-02-10 - bc9a596 / 9f61abc - lavf 57.25.100 / 57.3.0 - avformat.h + Add AVFormatContext.opaque, io_open and io_close, allowing custom IO + +2016-02-01 - 1dba837 - lavf 57.24.100 - avformat.h, avio.h + Add protocol_whitelist to AVFormatContext, AVIOContext + +2016-01-31 - 66e9d2f - lavu 55.17.100 - frame.h + Add AV_FRAME_DATA_GOP_TIMECODE for exporting MPEG1/2 GOP timecodes. + +2016-01-01 - 5e8b053 / 2c68113 - lavc 57.21.100 / 57.12.0 - avcodec.h + Add AVCodecDescriptor.profiles and avcodec_profile_name(). + +2015-12-28 - 1f9139b - lavf 57.21.100 - avformat.h + Add automatic bitstream filtering; add av_apply_bitstream_filters() + +2015-12-22 - 39a09e9 - lavfi 6.21.101 - avfilter.h + Deprecate avfilter_link_set_closed(). + Applications are not supposed to mess with links, + they should close the sinks. + +2015-12-17 - lavc 57.18.100 / 57.11.0 - avcodec.h dirac.h + xxxxxxx - Add av_packet_add_side_data(). + xxxxxxx - Add AVCodecContext.coded_side_data. + xxxxxxx - Add AVCPBProperties API. + xxxxxxx - Add a new public header dirac.h containing + av_dirac_parse_sequence_header() + +2015-12-11 - 676a93f - lavf 57.20.100 - avformat.h + Add av_program_add_stream_index() + +2015-11-29 - 93fb4a4 - lavc 57.16.101 - avcodec.h + Deprecate rtp_callback without replacement, i.e. it won't be possible to + get image slices before the full frame is encoded any more. The libavformat + rtpenc muxer can still be used for RFC-2190 packetization. + +2015-11-22 - fe20e34 - lavc 57.16.100 - avcodec.h + Add AV_PKT_DATA_FALLBACK_TRACK for making fallback associations between + streams. + +2015-11-22 - ad317c9 - lavf 57.19.100 - avformat.h + Add av_stream_new_side_data(). + +2015-11-22 - e12f403 - lavu 55.8.100 - xtea.h + Add av_xtea_le_init and av_xtea_le_crypt + +2015-11-18 - lavu 55.7.100 - mem.h + Add av_fast_mallocz() + +2015-10-29 - lavc 57.12.100 / 57.8.0 - avcodec.h + xxxxxx - Deprecate av_free_packet(). Use av_packet_unref() as replacement, + it resets the packet in a more consistent way. + xxxxxx - Deprecate av_dup_packet(), it is a no-op for most cases. + Use av_packet_ref() to make a non-refcounted AVPacket refcounted. + xxxxxx - Add av_packet_alloc(), av_packet_clone(), av_packet_free(). + They match the AVFrame functions with the same name. + +2015-10-27 - 1e477a9 - lavu 55.5.100 - cpu.h + Add AV_CPU_FLAG_AESNI. + +2015-10-22 - ee573b4 / a17a766 - lavc 57.9.100 / 57.5.0 - avcodec.h + Add data and linesize array to AVSubtitleRect, to be used instead of + the ones from the embedded AVPicture. + +2015-10-22 - 866a417 / dc923bc - lavc 57.8.100 / 57.0.0 - qsv.h + Add an API for allocating opaque surfaces. + +2015-10-15 - 2c2d162 - lavf 57.4.100 + Remove the latm demuxer that was a duplicate of the loas demuxer. + +2015-10-14 - b994788 / 11c5f43 - lavu 55.4.100 / 55.2.0 - dict.h + Change return type of av_dict_copy() from void to int, so that a proper + error code can be reported. + +2015-09-29 - b01891a / 948f3c1 - lavc 57.3.100 / 57.2.0 - avcodec.h + Change type of AVPacket.duration from int to int64_t. + +2015-09-17 - 7c46f24 / e3d4784 - lavc 57.3.100 / 57.2.0 - d3d11va.h + Add av_d3d11va_alloc_context(). This function must from now on be used for + allocating AVD3D11VAContext. + +2015-09-15 - lavf 57.2.100 - avformat.h + probesize and max_analyze_duration switched to 64bit, both + are only accessible through AVOptions + +2015-09-15 - lavf 57.1.100 - avformat.h + bit_rate was changed to 64bit, make sure you update any + printf() or other type sensitive code + +2015-09-15 - lavc 57.2.100 - avcodec.h + bit_rate/rc_max_rate/rc_min_rate were changed to 64bit, make sure you update + any printf() or other type sensitive code + +2015-09-07 - lavu 55.0.100 / 55.0.0 + c734b34 / b8b5d82 - Change type of AVPixFmtDescriptor.flags from uint8_t to uint64_t. + f53569a / 6b3ef7f - Change type of AVComponentDescriptor fields from uint16_t to int + and drop bit packing. + 151aa2e / 2268db2 - Add step, offset, and depth to AVComponentDescriptor to replace + the deprecated step_minus1, offset_plus1, and depth_minus1. \ No newline at end of file diff --git a/src/lib/ffmpeg-4.0/avcodec.pas b/src/lib/ffmpeg-4.0/avcodec.pas new file mode 100644 index 00000000..e717744d --- /dev/null +++ b/src/lib/ffmpeg-4.0/avcodec.pas @@ -0,0 +1,6805 @@ +(* + * copyright (c) 2001 Fabrice Bellard + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of Pascal porting of ffmpeg. + * - Originally by Victor Zinetz for Delphi and Free Pascal on Windows. + * - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT + * in the source codes. + * - Changes and updates by the UltraStar Deluxe Team + * + * Conversion of libavcodec/avcodec.h + * version: 56.1.100 + * + *) + +unit avcodec; + +{$IFDEF FPC} + {$MODE DELPHI } + {$PACKENUM 4} (* use 4-byte enums *) + {$PACKRECORDS C} (* C/C++-compatible record packing *) +{$ELSE} + {$MINENUMSIZE 4} (* use 4-byte enums *) +{$ENDIF} + +{$I switches.inc} (* for ffmpeg defines *) +{$I ff_api-defines.inc} (* FF_API_* defines *) + +{$IFDEF DARWIN} + {$linklib libavcodec} +{$ENDIF} + +interface + +uses + ctypes, + avutil, + rational, + SysUtils, + {$IFDEF UNIX} + BaseUnix, + {$ENDIF} + UConfig; + +const + (* + * IMPORTANT: The official FFmpeg C headers change very quickly. Often some + * of the data structures are changed so that they become incompatible with + * older header files. The Pascal headers have to be adjusted to those changes, + * otherwise the application might crash randomly or strange bugs (not + * necessarily related to video or audio due to buffer overflows etc.) might + * occur. + * + * In the past users reported problems with USDX that took hours to fix and + * the problem was an unsupported version of FFmpeg. So we decided to disable + * support for future versions of FFmpeg until the headers are revised by us + * for that version as they otherwise most probably will break USDX. + * + * If the headers do not yet support your FFmpeg version you may want to + * adjust the max. version numbers manually but please note: it may work but + * in many cases it does not. The USDX team does NOT PROVIDE ANY SUPPORT + * for the game if the MAX. VERSION WAS CHANGED. + * + * The only safe way to support new versions of FFmpeg is to add the changes + * of the FFmpeg git repository C headers to the Pascal headers. + * You can accelerate this process by posting a patch with the git changes + * translated to Pascal to our bug tracker (please join our IRC chat before + * you start working on it). Simply adjusting the max. versions is NOT a valid + * fix. + *) + + (* Supported version by this header *) + LIBAVCODEC_MAX_VERSION_MAJOR = 58; + LIBAVCODEC_MAX_VERSION_MINOR = 35; + LIBAVCODEC_MAX_VERSION_RELEASE = 100; + LIBAVCODEC_MAX_VERSION = (LIBAVCODEC_MAX_VERSION_MAJOR * VERSION_MAJOR) + + (LIBAVCODEC_MAX_VERSION_MINOR * VERSION_MINOR) + + (LIBAVCODEC_MAX_VERSION_RELEASE * VERSION_RELEASE); + + (* Min. supported version by this header *) + LIBAVCODEC_MIN_VERSION_MAJOR = 58; + LIBAVCODEC_MIN_VERSION_MINOR = 18; + LIBAVCODEC_MIN_VERSION_RELEASE = 100; + LIBAVCODEC_MIN_VERSION = (LIBAVCODEC_MIN_VERSION_MAJOR * VERSION_MAJOR) + + (LIBAVCODEC_MIN_VERSION_MINOR * VERSION_MINOR) + + (LIBAVCODEC_MIN_VERSION_RELEASE * VERSION_RELEASE); + +(* Check if linked versions are supported *) +{$IF (LIBAVCODEC_VERSION < LIBAVCODEC_MIN_VERSION)} + {$MESSAGE Error 'Linked version of libavcodec is too old!'} +{$IFEND} + +(* Check if linked version is supported *) +{$IF (LIBAVCODEC_VERSION > LIBAVCODEC_MAX_VERSION)} + {$MESSAGE Error 'Linked version of libavcodec is not yet supported!'} +{$IFEND} + +{$IFNDEF FPC} +type + // defines for Delphi + size_t = cardinal; +{$ENDIF} + +type + FF_INTERNALC_MEM_TYPE = cuint; + +const + AV_NOPTS_VALUE: cint64 = $8000000000000000; + AV_TIME_BASE = 1000000; + AV_TIME_BASE_Q: TAVRational = (num: 1; den: AV_TIME_BASE); + +(** + * @ingroup libavc + * @defgroup lavc_encdec send/receive encoding and decoding API overview + * @{ + * + * The avcodec_send_packet()/avcodec_receive_frame()/avcodec_send_frame()/ + * avcodec_receive_packet() functions provide an encode/decode API, which + * decouples input and output. + * + * The API is very similar for encoding/decoding and audio/video, and works as + * follows: + * - Set up and open the AVCodecContext as usual. + * - Send valid input: + * - For decoding, call avcodec_send_packet() to give the decoder raw + * compressed data in an AVPacket. + * - For encoding, call avcodec_send_frame() to give the encoder an AVFrame + * containing uncompressed audio or video. + * In both cases, it is recommended that AVPackets and AVFrames are + * refcounted, or libavcodec might have to copy the input data. (libavformat + * always returns refcounted AVPackets, and av_frame_get_buffer() allocates + * refcounted AVFrames.) + * - Receive output in a loop. Periodically call one of the avcodec_receive_*() + * functions and process their output: + * - For decoding, call avcodec_receive_frame(). On success, it will return + * an AVFrame containing uncompressed audio or video data. + * - For encoding, call avcodec_receive_packet(). On success, it will return + * an AVPacket with a compressed frame. + * Repeat this call until it returns AVERROR(EAGAIN) or an error. The + * AVERROR(EAGAIN) return value means that new input data is required to + * return new output. In this case, continue with sending input. For each + * input frame/packet, the codec will typically return 1 output frame/packet, + * but it can also be 0 or more than 1. + * + * At the beginning of decoding or encoding, the codec might accept multiple + * input frames/packets without returning a frame, until its internal buffers + * are filled. This situation is handled transparently if you follow the steps + * outlined above. + * + * In theory, sending input can result in EAGAIN - this should happen only if + * not all output was received. You can use this to structure alternative decode + * or encode loops other than the one suggested above. For example, you could + * try sending new input on each iteration, and try to receive output if that + * returns EAGAIN. + * + * End of stream situations. These require "flushing" (aka draining) the codec, + * as the codec might buffer multiple frames or packets internally for + * performance or out of necessity (consider B-frames). + * This is handled as follows: + * - Instead of valid input, send NULL to the avcodec_send_packet() (decoding) + * or avcodec_send_frame() (encoding) functions. This will enter draining + * mode. + * - Call avcodec_receive_frame() (decoding) or avcodec_receive_packet() + * (encoding) in a loop until AVERROR_EOF is returned. The functions will + * not return AVERROR(EAGAIN), unless you forgot to enter draining mode. + * - Before decoding can be resumed again, the codec has to be reset with + * avcodec_flush_buffers(). + * + * Using the API as outlined above is highly recommended. But it is also + * possible to call functions outside of this rigid schema. For example, you can + * call avcodec_send_packet() repeatedly without calling + * avcodec_receive_frame(). In this case, avcodec_send_packet() will succeed + * until the codec's internal buffer has been filled up (which is typically of + * size 1 per output frame, after initial input), and then reject input with + * AVERROR(EAGAIN). Once it starts rejecting input, you have no choice but to + * read at least some output. + * + * Not all codecs will follow a rigid and predictable dataflow; the only + * guarantee is that an AVERROR(EAGAIN) return value on a send/receive call on + * one end implies that a receive/send call on the other end will succeed, or + * at least will not fail with AVERROR(EAGAIN). In general, no codec will + * permit unlimited buffering of input or output. + * + * This API replaces the following legacy functions: + * - avcodec_decode_video2() and avcodec_decode_audio4(): + * Use avcodec_send_packet() to feed input to the decoder, then use + * avcodec_receive_frame() to receive decoded frames after each packet. + * Unlike with the old video decoding API, multiple frames might result from + * a packet. For audio, splitting the input packet into frames by partially + * decoding packets becomes transparent to the API user. You never need to + * feed an AVPacket to the API twice (unless it is rejected with AVERROR(EAGAIN) - then + * no data was read from the packet). + * Additionally, sending a flush/draining packet is required only once. + * - avcodec_encode_video2()/avcodec_encode_audio2(): + * Use avcodec_send_frame() to feed input to the encoder, then use + * avcodec_receive_packet() to receive encoded packets. + * Providing user-allocated buffers for avcodec_receive_packet() is not + * possible. + * - The new API does not handle subtitles yet. + * + * Mixing new and old function calls on the same AVCodecContext is not allowed, + * and will result in undefined behavior. + * + * Some codecs might require using the new API; using the old API will return + * an error when calling it. All codecs support the new API. + * + * A codec is not allowed to return AVERROR(EAGAIN) for both sending and receiving. This + * would be an invalid state, which could put the codec user into an endless + * loop. The API has no concept of time either: it cannot happen that trying to + * do avcodec_send_packet() results in AVERROR(EAGAIN), but a repeated call 1 second + * later accepts the packet (with no other receive/flush API calls involved). + * The API is a strict state machine, and the passage of time is not supposed + * to influence it. Some timing-dependent behavior might still be deemed + * acceptable in certain cases. But it must never result in both send/receive + * returning EAGAIN at the same time at any point. It must also absolutely be + * avoided that the current state is "unstable" and can "flip-flop" between + * the send/receive APIs allowing progress. For example, it's not allowed that + * the codec randomly decides that it actually wants to consume a packet now + * instead of returning a frame, after it just returned AVERROR(EAGAIN) on an + * avcodec_send_packet() call. + * @} + *) + +(** + * @defgroup lavc_core Core functions/structures. + * @ingroup libavc + * + * Basic definitions, functions for querying libavcodec capabilities, + * allocating core structures, etc. + * @ + *) + +(** + * Identify the syntax and semantics of the bitstream. + * The principle is roughly: + * Two decoders with the same ID can decode the same streams. + * Two encoders with the same ID can encode compatible streams. + * There may be slight deviations from the principle due to implementation + * details. + * + * If you add a codec ID to this list, add it so that + * 1. no value of an existing codec ID changes (that would break ABI), + * 2. it is as close as possible to similar codecs + * + * After adding new codec IDs, do not forget to add an entry to the codec + * descriptor list and bump libavcodec minor version. + *) +type + PAVCodecID = ^TAVCodecID; + TAVCodecID = ( + AV_CODEC_ID_NONE, + + //* video codecs */ + AV_CODEC_ID_MPEG1VIDEO, + AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding + AV_CODEC_ID_H261, + AV_CODEC_ID_H263, + AV_CODEC_ID_RV10, + AV_CODEC_ID_RV20, + AV_CODEC_ID_MJPEG, + AV_CODEC_ID_MJPEGB, + AV_CODEC_ID_LJPEG, + AV_CODEC_ID_SP5X, + AV_CODEC_ID_JPEGLS, + AV_CODEC_ID_MPEG4, + AV_CODEC_ID_RAWVIDEO, + AV_CODEC_ID_MSMPEG4V1, + AV_CODEC_ID_MSMPEG4V2, + AV_CODEC_ID_MSMPEG4V3, + AV_CODEC_ID_WMV1, + AV_CODEC_ID_WMV2, + AV_CODEC_ID_H263P, + AV_CODEC_ID_H263I, + AV_CODEC_ID_FLV1, + AV_CODEC_ID_SVQ1, + AV_CODEC_ID_SVQ3, + AV_CODEC_ID_DVVIDEO, + AV_CODEC_ID_HUFFYUV, + AV_CODEC_ID_CYUV, + AV_CODEC_ID_H264, + AV_CODEC_ID_INDEO3, + AV_CODEC_ID_VP3, + AV_CODEC_ID_THEORA, + AV_CODEC_ID_ASV1, + AV_CODEC_ID_ASV2, + AV_CODEC_ID_FFV1, + AV_CODEC_ID_4XM, + AV_CODEC_ID_VCR1, + AV_CODEC_ID_CLJR, + AV_CODEC_ID_MDEC, + AV_CODEC_ID_ROQ, + AV_CODEC_ID_INTERPLAY_VIDEO, + AV_CODEC_ID_XAN_WC3, + AV_CODEC_ID_XAN_WC4, + AV_CODEC_ID_RPZA, + AV_CODEC_ID_CINEPAK, + AV_CODEC_ID_WS_VQA, + AV_CODEC_ID_MSRLE, + AV_CODEC_ID_MSVIDEO1, + AV_CODEC_ID_IDCIN, + AV_CODEC_ID_8BPS, + AV_CODEC_ID_SMC, + AV_CODEC_ID_FLIC, + AV_CODEC_ID_TRUEMOTION1, + AV_CODEC_ID_VMDVIDEO, + AV_CODEC_ID_MSZH, + AV_CODEC_ID_ZLIB, + AV_CODEC_ID_QTRLE, + AV_CODEC_ID_TSCC, + AV_CODEC_ID_ULTI, + AV_CODEC_ID_QDRAW, + AV_CODEC_ID_VIXL, + AV_CODEC_ID_QPEG, + AV_CODEC_ID_PNG, + AV_CODEC_ID_PPM, + AV_CODEC_ID_PBM, + AV_CODEC_ID_PGM, + AV_CODEC_ID_PGMYUV, + AV_CODEC_ID_PAM, + AV_CODEC_ID_FFVHUFF, + AV_CODEC_ID_RV30, + AV_CODEC_ID_RV40, + AV_CODEC_ID_VC1, + AV_CODEC_ID_WMV3, + AV_CODEC_ID_LOCO, + AV_CODEC_ID_WNV1, + AV_CODEC_ID_AASC, + AV_CODEC_ID_INDEO2, + AV_CODEC_ID_FRAPS, + AV_CODEC_ID_TRUEMOTION2, + AV_CODEC_ID_BMP, + AV_CODEC_ID_CSCD, + AV_CODEC_ID_MMVIDEO, + AV_CODEC_ID_ZMBV, + AV_CODEC_ID_AVS, + AV_CODEC_ID_SMACKVIDEO, + AV_CODEC_ID_NUV, + AV_CODEC_ID_KMVC, + AV_CODEC_ID_FLASHSV, + AV_CODEC_ID_CAVS, + AV_CODEC_ID_JPEG2000, + AV_CODEC_ID_VMNC, + AV_CODEC_ID_VP5, + AV_CODEC_ID_VP6, + AV_CODEC_ID_VP6F, + AV_CODEC_ID_TARGA, + AV_CODEC_ID_DSICINVIDEO, + AV_CODEC_ID_TIERTEXSEQVIDEO, + AV_CODEC_ID_TIFF, + AV_CODEC_ID_GIF, + AV_CODEC_ID_DXA, + AV_CODEC_ID_DNXHD, + AV_CODEC_ID_THP, + AV_CODEC_ID_SGI, + AV_CODEC_ID_C93, + AV_CODEC_ID_BETHSOFTVID, + AV_CODEC_ID_PTX, + AV_CODEC_ID_TXD, + AV_CODEC_ID_VP6A, + AV_CODEC_ID_AMV, + AV_CODEC_ID_VB, + AV_CODEC_ID_PCX, + AV_CODEC_ID_SUNRAST, + AV_CODEC_ID_INDEO4, + AV_CODEC_ID_INDEO5, + AV_CODEC_ID_MIMIC, + AV_CODEC_ID_RL2, + AV_CODEC_ID_ESCAPE124, + AV_CODEC_ID_DIRAC, + AV_CODEC_ID_BFI, + AV_CODEC_ID_CMV, + AV_CODEC_ID_MOTIONPIXELS, + AV_CODEC_ID_TGV, + AV_CODEC_ID_TGQ, + AV_CODEC_ID_TQI, + AV_CODEC_ID_AURA, + AV_CODEC_ID_AURA2, + AV_CODEC_ID_V210X, + AV_CODEC_ID_TMV, + AV_CODEC_ID_V210, + AV_CODEC_ID_DPX, + AV_CODEC_ID_MAD, + AV_CODEC_ID_FRWU, + AV_CODEC_ID_FLASHSV2, + AV_CODEC_ID_CDGRAPHICS, + AV_CODEC_ID_R210, + AV_CODEC_ID_ANM, + AV_CODEC_ID_BINKVIDEO, + AV_CODEC_ID_IFF_ILBM, + AV_CODEC_ID_IFF_BYTERUN1 = AV_CODEC_ID_IFF_ILBM, + AV_CODEC_ID_KGV1, + AV_CODEC_ID_YOP, + AV_CODEC_ID_VP8, + AV_CODEC_ID_PICTOR, + AV_CODEC_ID_ANSI, + AV_CODEC_ID_A64_MULTI, + AV_CODEC_ID_A64_MULTI5, + AV_CODEC_ID_R10K, + AV_CODEC_ID_MXPEG, + AV_CODEC_ID_LAGARITH, + AV_CODEC_ID_PRORES, + AV_CODEC_ID_JV, + AV_CODEC_ID_DFA, + AV_CODEC_ID_WMV3IMAGE, + AV_CODEC_ID_VC1IMAGE, + AV_CODEC_ID_UTVIDEO, + AV_CODEC_ID_BMV_VIDEO, + AV_CODEC_ID_VBLE, + AV_CODEC_ID_DXTORY, + AV_CODEC_ID_V410, + AV_CODEC_ID_XWD, + AV_CODEC_ID_CDXL, + AV_CODEC_ID_XBM, + AV_CODEC_ID_ZEROCODEC, + AV_CODEC_ID_MSS1, + AV_CODEC_ID_MSA1, + AV_CODEC_ID_TSCC2, + AV_CODEC_ID_MTS2, + AV_CODEC_ID_CLLC, + AV_CODEC_ID_MSS2, + AV_CODEC_ID_VP9, + AV_CODEC_ID_AIC, + AV_CODEC_ID_ESCAPE130, + AV_CODEC_ID_G2M, + AV_CODEC_ID_WEBP, + AV_CODEC_ID_HNM4_VIDEO, + AV_CODEC_ID_HEVC, + AV_CODEC_ID_FIC, + AV_CODEC_ID_ALIAS_PIX, + AV_CODEC_ID_BRENDER_PIX, + AV_CODEC_ID_PAF_VIDEO, + AV_CODEC_ID_EXR, + AV_CODEC_ID_VP7, + AV_CODEC_ID_SANM, + AV_CODEC_ID_SGIRLE, + AV_CODEC_ID_MVC1, + AV_CODEC_ID_MVC2, + AV_CODEC_ID_HQX, + AV_CODEC_ID_TDSC, + AV_CODEC_ID_HQ_HQA, + AV_CODEC_ID_HAP, + AV_CODEC_ID_DDS, + AV_CODEC_ID_DXV, + AV_CODEC_ID_SCREENPRESSO, + AV_CODEC_ID_RSCC, + + AV_CODEC_ID_Y41P = $8000, + AV_CODEC_ID_AVRP, + AV_CODEC_ID_012V, + AV_CODEC_ID_AVUI, + AV_CODEC_ID_AYUV, + AV_CODEC_ID_TARGA_Y216, + AV_CODEC_ID_V308, + AV_CODEC_ID_V408, + AV_CODEC_ID_YUV4, + AV_CODEC_ID_AVRN, + AV_CODEC_ID_CPIA, + AV_CODEC_ID_XFACE, + AV_CODEC_ID_SNOW, + AV_CODEC_ID_SMVJPEG, + AV_CODEC_ID_APNG, + AV_CODEC_ID_DAALA, + AV_CODEC_ID_CFHD, + AV_CODEC_ID_TRUEMOTION2RT, + AV_CODEC_ID_M101, + AV_CODEC_ID_MAGICYUV, + AV_CODEC_ID_SHEERVIDEO, + AV_CODEC_ID_YLC, + AV_CODEC_ID_PSD, + AV_CODEC_ID_PIXLET, + AV_CODEC_ID_SPEEDHQ, + AV_CODEC_ID_FMVC, + AV_CODEC_ID_SCPR, + AV_CODEC_ID_CLEARVIDEO, + AV_CODEC_ID_XPM, + AV_CODEC_ID_AV1, + AV_CODEC_ID_BITPACKED, + AV_CODEC_ID_MSCC, + AV_CODEC_ID_SRGC, + AV_CODEC_ID_SVG, + AV_CODEC_ID_GDV, + AV_CODEC_ID_FITS, + + //* various PCM "codecs" */ + AV_CODEC_ID_FIRST_AUDIO = $10000, ///< A dummy id pointing at the start of audio codecs + AV_CODEC_ID_PCM_S16LE = $10000, + AV_CODEC_ID_PCM_S16BE, + AV_CODEC_ID_PCM_U16LE, + AV_CODEC_ID_PCM_U16BE, + AV_CODEC_ID_PCM_S8, + AV_CODEC_ID_PCM_U8, + AV_CODEC_ID_PCM_MULAW, + AV_CODEC_ID_PCM_ALAW, + AV_CODEC_ID_PCM_S32LE, + AV_CODEC_ID_PCM_S32BE, + AV_CODEC_ID_PCM_U32LE, + AV_CODEC_ID_PCM_U32BE, + AV_CODEC_ID_PCM_S24LE, + AV_CODEC_ID_PCM_S24BE, + AV_CODEC_ID_PCM_U24LE, + AV_CODEC_ID_PCM_U24BE, + AV_CODEC_ID_PCM_S24DAUD, + AV_CODEC_ID_PCM_ZORK, + AV_CODEC_ID_PCM_S16LE_PLANAR, + AV_CODEC_ID_PCM_DVD, + AV_CODEC_ID_PCM_F32BE, + AV_CODEC_ID_PCM_F32LE, + AV_CODEC_ID_PCM_F64BE, + AV_CODEC_ID_PCM_F64LE, + AV_CODEC_ID_PCM_BLURAY, + AV_CODEC_ID_PCM_LXF, + AV_CODEC_ID_S302M, + AV_CODEC_ID_PCM_S8_PLANAR, + AV_CODEC_ID_PCM_S24LE_PLANAR, + AV_CODEC_ID_PCM_S32LE_PLANAR, + AV_CODEC_ID_PCM_S16BE_PLANAR, + + AV_CODEC_ID_PCM_S64LE = $10800, + AV_CODEC_ID_PCM_S64BE, + AV_CODEC_ID_PCM_F16LE, + AV_CODEC_ID_PCM_F24LE, + + //* various ADPCM codecs */ + AV_CODEC_ID_ADPCM_IMA_QT = $11000, + AV_CODEC_ID_ADPCM_IMA_WAV, + AV_CODEC_ID_ADPCM_IMA_DK3, + AV_CODEC_ID_ADPCM_IMA_DK4, + AV_CODEC_ID_ADPCM_IMA_WS, + AV_CODEC_ID_ADPCM_IMA_SMJPEG, + AV_CODEC_ID_ADPCM_MS, + AV_CODEC_ID_ADPCM_4XM, + AV_CODEC_ID_ADPCM_XA, + AV_CODEC_ID_ADPCM_ADX, + AV_CODEC_ID_ADPCM_EA, + AV_CODEC_ID_ADPCM_G726, + AV_CODEC_ID_ADPCM_CT, + AV_CODEC_ID_ADPCM_SWF, + AV_CODEC_ID_ADPCM_YAMAHA, + AV_CODEC_ID_ADPCM_SBPRO_4, + AV_CODEC_ID_ADPCM_SBPRO_3, + AV_CODEC_ID_ADPCM_SBPRO_2, + AV_CODEC_ID_ADPCM_THP, + AV_CODEC_ID_ADPCM_IMA_AMV, + AV_CODEC_ID_ADPCM_EA_R1, + AV_CODEC_ID_ADPCM_EA_R3, + AV_CODEC_ID_ADPCM_EA_R2, + AV_CODEC_ID_ADPCM_IMA_EA_SEAD, + AV_CODEC_ID_ADPCM_IMA_EA_EACS, + AV_CODEC_ID_ADPCM_EA_XAS, + AV_CODEC_ID_ADPCM_EA_MAXIS_XA, + AV_CODEC_ID_ADPCM_IMA_ISS, + AV_CODEC_ID_ADPCM_G722, + AV_CODEC_ID_ADPCM_IMA_APC, + AV_CODEC_ID_ADPCM_VIMA, + AV_CODEC_ID_ADPCM_AFC = $11800, + AV_CODEC_ID_ADPCM_IMA_OKI, + AV_CODEC_ID_ADPCM_DTK, + AV_CODEC_ID_ADPCM_IMA_RAD, + AV_CODEC_ID_ADPCM_G726LE, + AV_CODEC_ID_ADPCM_THP_LE, + AV_CODEC_ID_ADPCM_PSX, + AV_CODEC_ID_ADPCM_AICA, + AV_CODEC_ID_ADPCM_IMA_DAT4, + AV_CODEC_ID_ADPCM_MTAF, + + //* AMR */ + AV_CODEC_ID_AMR_NB = $12000, + AV_CODEC_ID_AMR_WB, + + //* RealAudio codecs*/ + AV_CODEC_ID_RA_144 = $13000, + AV_CODEC_ID_RA_288, + + //* various DPCM codecs */ + AV_CODEC_ID_ROQ_DPCM = $14000, + AV_CODEC_ID_INTERPLAY_DPCM, + AV_CODEC_ID_XAN_DPCM, + AV_CODEC_ID_SOL_DPCM, + + AV_CODEC_ID_SDX2_DPCM = $14800, + AV_CODEC_ID_GREMLIN_DPCM, + + //* audio codecs */ + AV_CODEC_ID_MP2 = $15000, + AV_CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3 + AV_CODEC_ID_AAC, + AV_CODEC_ID_AC3, + AV_CODEC_ID_DTS, + AV_CODEC_ID_VORBIS, + AV_CODEC_ID_DVAUDIO, + AV_CODEC_ID_WMAV1, + AV_CODEC_ID_WMAV2, + AV_CODEC_ID_MACE3, + AV_CODEC_ID_MACE6, + AV_CODEC_ID_VMDAUDIO, + AV_CODEC_ID_FLAC, + AV_CODEC_ID_MP3ADU, + AV_CODEC_ID_MP3ON4, + AV_CODEC_ID_SHORTEN, + AV_CODEC_ID_ALAC, + AV_CODEC_ID_WESTWOOD_SND1, + AV_CODEC_ID_GSM, ///< as in Berlin toast format + AV_CODEC_ID_QDM2, + AV_CODEC_ID_COOK, + AV_CODEC_ID_TRUESPEECH, + AV_CODEC_ID_TTA, + AV_CODEC_ID_SMACKAUDIO, + AV_CODEC_ID_QCELP, + AV_CODEC_ID_WAVPACK, + AV_CODEC_ID_DSICINAUDIO, + AV_CODEC_ID_IMC, + AV_CODEC_ID_MUSEPACK7, + AV_CODEC_ID_MLP, + AV_CODEC_ID_GSM_MS, { as found in WAV } + AV_CODEC_ID_ATRAC3, + AV_CODEC_ID_APE, + AV_CODEC_ID_NELLYMOSER, + AV_CODEC_ID_MUSEPACK8, + AV_CODEC_ID_SPEEX, + AV_CODEC_ID_WMAVOICE, + AV_CODEC_ID_WMAPRO, + AV_CODEC_ID_WMALOSSLESS, + AV_CODEC_ID_ATRAC3P, + AV_CODEC_ID_EAC3, + AV_CODEC_ID_SIPR, + AV_CODEC_ID_MP1, + AV_CODEC_ID_TWINVQ, + AV_CODEC_ID_TRUEHD, + AV_CODEC_ID_MP4ALS, + AV_CODEC_ID_ATRAC1, + AV_CODEC_ID_BINKAUDIO_RDFT, + AV_CODEC_ID_BINKAUDIO_DCT, + AV_CODEC_ID_AAC_LATM, + AV_CODEC_ID_QDMC, + AV_CODEC_ID_CELT, + AV_CODEC_ID_G723_1, + AV_CODEC_ID_G729, + AV_CODEC_ID_8SVX_EXP, + AV_CODEC_ID_8SVX_FIB, + AV_CODEC_ID_BMV_AUDIO, + AV_CODEC_ID_RALF, + AV_CODEC_ID_IAC, + AV_CODEC_ID_ILBC, + AV_CODEC_ID_OPUS, + AV_CODEC_ID_COMFORT_NOISE, + AV_CODEC_ID_TAK, + AV_CODEC_ID_PAF_AUDIO, + AV_CODEC_ID_ON2AVC, + AV_CODEC_ID_DSS_SP, + AV_CODEC_ID_CODEC2, + + AV_CODEC_ID_FFWAVESYNTH = $15800, + AV_CODEC_ID_SONIC, + AV_CODEC_ID_SONIC_LS, + AV_CODEC_ID_EVRC, + AV_CODEC_ID_SMV, + AV_CODEC_ID_DSD_LSBF, + AV_CODEC_ID_DSD_MSBF, + AV_CODEC_ID_DSD_LSBF_PLANAR, + AV_CODEC_ID_DSD_MSBF_PLANAR, + AV_CODEC_ID_4GV, + AV_CODEC_ID_INTERPLAY_ACM, + AV_CODEC_ID_XMA1, + AV_CODEC_ID_XMA2, + AV_CODEC_ID_DST, + AV_CODEC_ID_ATRAC3AL, + AV_CODEC_ID_ATRAC3PAL, + AV_CODEC_ID_DOLBY_E, + AV_CODEC_ID_APTX, + AV_CODEC_ID_APTX_HD, + AV_CODEC_ID_SBC, + + //* subtitle codecs */ + AV_CODEC_ID_FIRST_SUBTITLE = $17000, ///< A dummy ID pointing at the start of subtitle codecs. + AV_CODEC_ID_DVD_SUBTITLE = $17000, + AV_CODEC_ID_DVB_SUBTITLE, + AV_CODEC_ID_TEXT, ///< raw UTF-8 text + AV_CODEC_ID_XSUB, + AV_CODEC_ID_SSA, + AV_CODEC_ID_MOV_TEXT, + AV_CODEC_ID_HDMV_PGS_SUBTITLE, + AV_CODEC_ID_DVB_TELETEXT, + AV_CODEC_ID_SRT, + AV_CODEC_ID_MICRODVD = $17800, + AV_CODEC_ID_EIA_608, + AV_CODEC_ID_JACOSUB, + AV_CODEC_ID_SAMI, + AV_CODEC_ID_REALTEXT, + AV_CODEC_ID_STL, + AV_CODEC_ID_SUBVIEWER1, + AV_CODEC_ID_SUBVIEWER, + AV_CODEC_ID_SUBRIP, + AV_CODEC_ID_WEBVTT, + AV_CODEC_ID_MPL2, + AV_CODEC_ID_VPLAYER, + AV_CODEC_ID_PJS, + AV_CODEC_ID_ASS, + AV_CODEC_ID_HDMV_TEXT_SUBTITLE, + + //* other specific kind of codecs (generally used for attachments) */ + AV_CODEC_ID_FIRST_UNKNOWN = $18000, ///< A dummy ID pointing at the start of various fake codecs. + AV_CODEC_ID_TTF = $18000, + + AV_CODEC_ID_SCTE_35, ///< Contain timestamp estimated through PCR of program stream. + AV_CODEC_ID_BINTEXT = $18800, + AV_CODEC_ID_XBIN, + AV_CODEC_ID_IDF, + AV_CODEC_ID_OTF, + AV_CODEC_ID_SMPTE_KLV, + AV_CODEC_ID_DVD_NAV, + AV_CODEC_ID_TIMED_ID3, + AV_CODEC_ID_BIN_DATA, + + AV_CODEC_ID_PROBE = $19000, ///< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it + + AV_CODEC_ID_MPEG2TS = $20000, (**< _FAKE_ codec to indicate a raw MPEG-2 TS + * stream (only used by libavformat) *) + AV_CODEC_ID_MPEG4SYSTEMS = $20001, (**< _FAKE_ codec to indicate a MPEG-4 Systems + * stream (only used by libavformat) *) + AV_CODEC_ID_FFMETADATA = $21000, ///< Dummy codec for streams containing only metadata information. + AV_CODEC_ID_WRAPPED_AVFRAME = $21001 ///< Passthrough codec, AVFrames wrapped in AVPacket + ); + +type + TCodecType = TAVMediaType; + +const + CODEC_TYPE_UNKNOWN = AVMEDIA_TYPE_UNKNOWN; + CODEC_TYPE_VIDEO = AVMEDIA_TYPE_VIDEO; + CODEC_TYPE_AUDIO = AVMEDIA_TYPE_AUDIO; + CODEC_TYPE_DATA = AVMEDIA_TYPE_DATA; + CODEC_TYPE_SUBTITLE = AVMEDIA_TYPE_SUBTITLE; + CODEC_TYPE_ATTACHMENT = AVMEDIA_TYPE_ATTACHMENT; + CODEC_TYPE_NB = AVMEDIA_TYPE_NB; + +(** + * This struct describes the properties of a single codec described by an + * AVCodecID. + * @see avcodec_descriptor_get() + *) +type + + (** + * AVProfile. + *) + PAVProfile = ^TAVProfile; + TAVProfile = record + profile: cint; + name: {const} PAnsiChar; ///< short name for the profile + end; {TAVProfile} + + PAVCodecHWConfig = ^TAVCodecHWConfig; + TAVCodecHWConfig = record + (** + * A hardware pixel format which the codec can use. + *) + pix_fmt: TAVPixelFormat; + (** + * Bit set of AV_CODEC_HW_CONFIG_METHOD_* flags, describing the possible + * setup methods which can be used with this configuration. + *) + methods: cint; + (** + * The device type associated with the configuration. + * + * Must be set for AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX and + * AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX, otherwise unused. + *) + device_type: pointer; {TAVHWDeviceType} + end; {TAVCodecHWConfig} + + PAVCodecDescriptor = ^TAVCodecDescriptor; + TAVCodecDescriptor = record + id: TAVCodecID; + type_: TAVMediaType; + (** + * Name of the codec described by this descriptor. It is non-empty and + * unique for each codec descriptor. It should contain alphanumeric + * characters and '_' only. + *) + name: PAnsiChar; + (** + * A more descriptive name for this codec. May be NULL. + *) + long_name: PAnsiChar; + (** + * Codec properties, a combination of AV_CODEC_PROP_* flags. + *) + props: cint; + + (** + * MIME type(s) associated with the codec. + * May be NULL; if not, a NULL-terminated array of MIME types. + * The first item is always non-NULL and is the preferred MIME type. + *) + mime_types: PAnsiChar; + + (** + * If non-NULL, an array of profiles recognized for this codec. + * Terminated with FF_PROFILE_UNKNOWN. + *) + profiles: PAVProfile; + end; + +const +(** + * Codec uses only intra compression. + * Video and audio codecs only. + *) + AV_CODEC_PROP_INTRA_ONLY = 1 << 0; +(** + * Codec supports lossy compression. Audio and video codecs only. + * @note a codec may support both lossy and lossless + * compression modes + *) + AV_CODEC_PROP_LOSSY = 1 << 1; +(** + * Codec supports lossless compression. Audio and video codecs only. + *) + AV_CODEC_PROP_LOSSLESS = 1 << 2; +(** + * Codec supports frame reordering. That is, the coded order (the order in which + * the encoded packets are output by the encoders / stored / input to the + * decoders) may be different from the presentation order of the corresponding + * frames. + * + * For codecs that do not have this property set, PTS and DTS should always be + * equal. + *) + AV_CODEC_PROP_REORDER = 1 << 3; +(** + * Subtitle codec is bitmap based + * Decoded AVSubtitle data can be read from the AVSubtitleRect->pict field. + *) + AV_CODEC_PROP_BITMAP_SUB = 1 << 16; +(** + * Subtitle codec is text based. + * Decoded AVSubtitle data can be read from the AVSubtitleRect->ass field. + *) + AV_CODEC_PROP_TEXT_SUB = 1 << 17; + +(** + * @ingroup lavc_decoding + * Required number of additionally allocated bytes at the end of the input bitstream for decoding. + * This is mainly needed because some optimized bitstream readers read + * 32 or 64 bit at once and could read over the end.
+ * Note: If the first 23 bits of the additional bytes are not 0, then damaged + * MPEG bitstreams could cause overread and segfault. + *) + AV_INPUT_BUFFER_PADDING_SIZE = 64; + +(** + * @ingroup lavc_decoding + * minimum encoding buffer size. + * Used to avoid some checks during header writing. + *) + AV_INPUT_BUFFER_MIN_SIZE = 16384; + +type + +(** + * @ingroup lavc_decoding + *) + TAVDiscard = ( + (* We leave some space between them for extensions (drop some + * keyframes for intra-only or drop just some bidir frames). + *) + AVDISCARD_NONE = -16, ///< discard nothing + AVDISCARD_DEFAULT = 0, ///< discard useless packets like 0 size packets in avi + AVDISCARD_NONREF = 8, ///< discard all non reference + AVDISCARD_BIDIR = 16, ///< discard all bidirectional frames + AVDISCARD_NONINTRA= 24, ///< discard all non intra frames + AVDISCARD_NONKEY = 32, ///< discard all frames except keyframes + AVDISCARD_ALL = 48 ///< discard all + ); + +{ removed, kept for the moment + TAVColorPrimaries = ( + AVCOL_PRI_BT709 = 1, ///< also ITU-R BT1361 / IEC 61966-2-4 / SMPTE RP177 Annex B + AVCOL_PRI_UNSPECIFIED = 2, + AVCOL_PRI_BT470M = 4, + AVCOL_PRI_BT470BG = 5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM + AVCOL_PRI_SMPTE170M = 6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC + AVCOL_PRI_SMPTE240M = 7, ///< functionally identical to above + AVCOL_PRI_FILM = 8, + AVCOL_PRI_BT2020 = 9, ///< ITU-R BT2020 + AVCOL_PRI_NB ///< Not part of ABI + ); + + TAVColorTransferCharacteristic = ( + AVCOL_TRC_BT709 = 1, ///< also ITU-R BT1361 + AVCOL_TRC_UNSPECIFIED = 2, + AVCOL_TRC_GAMMA22 = 4, ///< also ITU-R BT470M / ITU-R BT1700 625 PAL & SECAM + AVCOL_TRC_GAMMA28 = 5, ///< also ITU-R BT470BG + AVCOL_TRC_SMPTE170M = 6, ///< also ITU-R BT601-6 525 or 625 / ITU-R BT1358 525 or 625 / ITU-R BT1700 NTSC + AVCOL_TRC_SMPTE240M = 7, + AVCOL_TRC_LINEAR = 8, ///< "Linear transfer characteristics" + AVCOL_TRC_LOG = 9, ///< "Logarithmic transfer characteristic (100:1 range)" + AVCOL_TRC_LOG_SQRT = 10, ///< "Logarithmic transfer characteristic (100 * Sqrt( 10 ) : 1 range)" + AVCOL_TRC_IEC61966_2_4 = 11, ///< IEC 61966-2-4 + AVCOL_TRC_BT1361_ECG = 12, ///< ITU-R BT1361 Extended Colour Gamut + AVCOL_TRC_IEC61966_2_1 = 13, ///< IEC 61966-2-1 (sRGB or sYCC) + AVCOL_TRC_BT2020_10 = 14, ///< ITU-R BT2020 for 10 bit system + AVCOL_TRC_BT2020_12 = 15, ///< ITU-R BT2020 for 12 bit system + AVCOL_TRC_NB ///< Not part of ABI + ); + +(** + * X X 3 4 X X are luma samples, + * 1 2 1-6 are possible chroma positions + * X X 5 6 X 0 is undefined/unknown position + *) + TAVChromaLocation = ( + AVCHROMA_LOC_UNSPECIFIED = 0, + AVCHROMA_LOC_LEFT = 1, ///< mpeg2/4, h264 default + AVCHROMA_LOC_CENTER = 2, ///< mpeg1, jpeg, h263 + AVCHROMA_LOC_TOPLEFT = 3, ///< DV + AVCHROMA_LOC_TOP = 4, + AVCHROMA_LOC_BOTTOMLEFT = 5, + AVCHROMA_LOC_BOTTOM = 6, + AVCHROMA_LOC_NB ///< Not part of ABI + ); +} + TAVAudioServiceType =( + AV_AUDIO_SERVICE_TYPE_MAIN = 0, + AV_AUDIO_SERVICE_TYPE_EFFECTS = 1, + AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED = 2, + AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED = 3, + AV_AUDIO_SERVICE_TYPE_DIALOGUE = 4, + AV_AUDIO_SERVICE_TYPE_COMMENTARY = 5, + AV_AUDIO_SERVICE_TYPE_EMERGENCY = 6, + AV_AUDIO_SERVICE_TYPE_VOICE_OVER = 7, + AV_AUDIO_SERVICE_TYPE_KARAOKE = 8, + AV_AUDIO_SERVICE_TYPE_NB ///< Not part of ABI + ); + +(** + * @ingroup lavc_decoding + *) + PRcOverride = ^TRcOverride; + TRcOverride = record {16} + start_frame: cint; + end_frame: cint; + qscale: cint; // if this is 0 then quality_factor will be used instead + quality_factor: cfloat; + end; + +const +(* encoding support + These flags can be passed in AVCodecContext.flags before initialization. + Note: Not everything is supported yet. +*) + +(** + * Allow decoders to produce frames with data planes that are not aligned + * to CPU requirements (e.g. due to cropping). + *) + AV_CODEC_FLAG_UNALIGNED = $0001; // (1 << 0) +(** + * Use fixed qscale. + *) + AV_CODEC_FLAG_QSCALE = $0002; // (1 << 1) +(** + * 4 MV per MB allowed / advanced prediction for H.263. + *) + AV_CODEC_FLAG_4MV = $0004; // (1 << 2) +(** + * Output even those frames that might be corrupted. + *) + AV_CODEC_FLAG_OUTPUT_CORRUPT = $0008; // (1 << 3) +(** + * Use qpel MC. + *) + AV_CODEC_FLAG_QPEL = $0010; // (1 << 4) +(** + * Use internal 2pass ratecontrol in first pass mode. + *) + AV_CODEC_FLAG_PASS1 = $0200; // (1 << 9) +(** + * Use internal 2pass ratecontrol in second pass mode. + *) + AV_CODEC_FLAG_PASS2 = $0400; // (1 << 10) +(** + * loop filter. + *) + AV_CODEC_FLAG_LOOP_FILTER = $0800; // (1 << 11) +(** + * Only decode/encode grayscale. + *) + AV_CODEC_FLAG_GRAY = $2000; // (1 << 13) +(** + * error[?] variables will be set during encoding. + *) + AV_CODEC_FLAG_PSNR = $8000; // (1 << 15) +(** + * Input bitstream might be truncated at a random location + * instead of only at frame boundaries. + *) + AV_CODEC_FLAG_TRUNCATED = $10000; // (1 << 16) +(** + * Use interlaced DCT. + *) + AV_CODEC_FLAG_INTERLACED_DCT = $40000; // (1 << 18) +(** + * Force low delay. + *) + AV_CODEC_FLAG_LOW_DELAY = $80000; // (1 << 19) +(** + * Place global headers in extradata instead of every keyframe. + *) + AV_CODEC_FLAG_GLOBAL_HEADER = $400000; // (1 << 22) +(** + * Use only bitexact stuff (except (I)DCT). + *) + AV_CODEC_FLAG_BITEXACT = $800000; // (1 << 23) +(* Fx : Flag for H.263+ extra options *) +(** + * H.263 advanced intra coding / MPEG-4 AC prediction + *) + AV_CODEC_FLAG_AC_PRED = $1000000; // (1 << 24) +(** + * interlaced motion estimation + *) + AV_CODEC_FLAG_INTERLACED_ME = $20000000; // (1 << 29) + AV_CODEC_FLAG_CLOSED_GOP = $80000000; // (1U << 31) + +(** + * Allow non spec compliant speedup tricks. + *) + AV_CODEC_FLAG2_FAST = $0001; // (1 << 0) +(** + * Skip bitstream encoding. + *) + AV_CODEC_FLAG2_NO_OUTPUT = $0004; // (1 << 2) +(** + * Place global headers at every keyframe instead of in extradata. + *) + AV_CODEC_FLAG2_LOCAL_HEADER = $0008; // (1 << 3) + +(** + * timecode is in drop frame format. DEPRECATED!!!! + *) + AV_CODEC_FLAG2_DROP_FRAME_TIMECODE = $2000; // (1 << 13) + +(** + * Input bitstream might be truncated at a packet boundaries + * instead of only at frame boundaries. + *) + AV_CODEC_FLAG2_CHUNKS = $8000; // (1 << 15) +(** + * Discard cropping information from SPS. + *) + AV_CODEC_FLAG2_IGNORE_CROP = $10000; // (1 << 16) + +(** + * Show all frames before the first keyframe + *) + AV_CODEC_FLAG2_SHOW_ALL = $400000; // (1 << 22) +(** + * Export motion vectors through frame side data + *) + AV_CODEC_FLAG2_EXPORT_MVS = $10000000; // (1 << 28) +(** + * Do not skip samples and export skip information as frame side data + *) + AV_CODEC_FLAG2_SKIP_MANUAL = $20000000; // (1 << 29) +(** + * Do not reset ASS ReadOrder field on flush (subtitles decoding) + *) + AV_CODEC_FLAG2_RO_FLUSH_NOOP = $40000000; + +(* Unsupported options : + * Syntax Arithmetic coding (SAC) + * Reference Picture Selection + * Independent Segment Decoding *) +(* /Fx *) +(* codec capabilities *) + +(** + * Decoder can use draw_horiz_band callback. + *) + AV_CODEC_CAP_DRAW_HORIZ_BAND = $0001; // (1 << 0) +(** + * Codec uses get_buffer() for allocating buffers and supports custom allocators. + * If not set, it might not use get_buffer() at all or use operations that + * assume the buffer was allocated by avcodec_default_get_buffer. + *) + AV_CODEC_CAP_DR1 = $0002; // (1 << 1) + AV_CODEC_CAP_TRUNCATED = $0008; // (1 << 3) +(** + * Encoder or decoder requires flushing with NULL input at the end in order to + * give the complete and correct output. + * + * NOTE: If this flag is not set, the codec is guaranteed to never be fed with + * with NULL data. The user can still send NULL data to the public encode + * or decode function, but libavcodec will not pass it along to the codec + * unless this flag is set. + * + * Decoders: + * The decoder has a non-zero delay and needs to be fed with avpkt->data=NULL, + * avpkt->size=0 at the end to get the delayed data until the decoder no longer + * returns frames. + * + * Encoders: + * The encoder needs to be fed with NULL data at the end of encoding until the + * encoder no longer returns data. + * + * NOTE: For encoders implementing the AVCodec.encode2() function, setting this + * flag also means that the encoder must set the pts and duration for + * each output packet. If this flag is not set, the pts and duration will + * be determined by libavcodec from the input frame. + *) + AV_CODEC_CAP_DELAY = $0020; // (1 << 5) +(** + * Codec can be fed a final frame with a smaller size. + * This can be used to prevent truncation of the last audio samples. + *) + AV_CODEC_CAP_SMALL_LAST_FRAME = $0040; // (1 << 6) + +(** + * Codec can output multiple frames per AVPacket + * Normally demuxers return one frame at a time, demuxers which do not do + * are connected to a parser to split what they return into proper frames. + * This flag is reserved to the very rare category of codecs which have a + * bitstream that cannot be split into frames without timeconsuming + * operations like full decoding. Demuxers carrying such bitstreams thus + * may return multiple frames in a packet. This has many disadvantages like + * prohibiting stream copy in many cases thus it should only be considered + * as a last resort. + *) + AV_CODEC_CAP_SUBFRAMES = $0100; // (1 << 8) +(** + * Codec is experimental and is thus avoided in favor of non experimental + * encoders + *) + AV_CODEC_CAP_EXPERIMENTAL = $0200; // (1 << 9) +(** + * Codec should fill in channel configuration and samplerate instead of container + *) + AV_CODEC_CAP_CHANNEL_CONF = $0400; // (1 << 10) +(** + * Codec supports frame-level multithreading. + *) + AV_CODEC_CAP_FRAME_THREADS = $1000; // (1 << 12) +(** + * Codec supports slice-based (or partition-based) multithreading. + *) + AV_CODEC_CAP_SLICE_THREADS = $2000; // (1 << 13) +(** + * Codec supports changed parameters at any point. + *) + AV_CODEC_CAP_PARAM_CHANGE = $4000; // (1 << 14) +(** + * Codec supports avctx->thread_count == 0 (auto). + *) + AV_CODEC_CAP_AUTO_THREADS = $8000; // (1 << 15) +(** + * Audio encoder supports receiving a different number of samples in each call. + *) + AV_CODEC_CAP_VARIABLE_FRAME_SIZE = $10000; // (1 << 16) +(** + * Decoder is not a preferred choice for probing. + * This indicates that the decoder is not a good choice for probing. + * It could for example be an expensive to spin up hardware decoder, + * or it could simply not provide a lot of useful information about + * the stream. + * A decoder marked with this flag should only be used as last resort + * choice for probing. + *) + AV_CODEC_CAP_AVOID_PROBING = $20000; // (1 << 17) + +(** + * Codec is intra only. + *) + AV_CODEC_CAP_INTRA_ONLY = $40000000; +(** + * Codec is lossless. + *) + AV_CODEC_CAP_LOSSLESS = $80000000; + +(** + * Codec is backed by a hardware implementation. Typically used to + * identify a non-hwaccel hardware decoder. For information about hwaccels, use + * avcodec_get_hw_config() instead. + *) + AV_CODEC_CAP_HARDWARE = $40000; + +(** + * Codec is potentially backed by a hardware implementation, but not + * necessarily. This is used instead of AV_CODEC_CAP_HARDWARE, if the + * implementation provides some sort of internal fallback. + *) + AV_CODEC_CAP_HYBRID = $80000; + +(** Note bits 24-31 are reserved for codec specific use (H.264 ref0, MPEG-1 0mv, ...) *) + +(** + * The decoder will keep a reference to the frame and may reuse it later. + *) + AV_GET_BUFFER_FLAG_REF = 1 << 0; + + FF_COMPRESSION_DEFAULT = -1; + +{$IFDEF FF_API_PRIVATE_OPT} + FF_PRED_LEFT = 0; + FF_PRED_PLANE = 1; + FF_PRED_MEDIAN = 2; +{$ENDIF} + + FF_CMP_SAD = 0; + FF_CMP_SSE = 1; + FF_CMP_SATD = 2; + FF_CMP_DCT = 3; + FF_CMP_PSNR = 4; + FF_CMP_BIT = 5; + FF_CMP_RD = 6; + FF_CMP_ZERO = 7; + FF_CMP_VSAD = 8; + FF_CMP_VSSE = 9; + FF_CMP_NSSE = 10; + FF_CMP_W53 = 11; + FF_CMP_W97 = 12; + FF_CMP_DCTMAX = 13; + FF_CMP_DCT264 = 14; + FF_CMP_MEDIAN_SAD = 15; + FF_CMP_CHROMA = 256; + +{$IFDEF FF_API_QUANT_BIAS} + FF_DEFAULT_QUANT_BIAS = 999999; +{$ENDIF} + + SLICE_FLAG_CODED_ORDER = $0001; ///< draw_horiz_band() is called in coded order instead of display + SLICE_FLAG_ALLOW_FIELD = $0002; ///< allow draw_horiz_band() with field slices (MPEG-2 field pics) + SLICE_FLAG_ALLOW_PLANE = $0004; ///< allow draw_horiz_band() with 1 component at a time (SVQ1) + + FF_MB_DECISION_SIMPLE = 0; ///< uses mb_cmp + FF_MB_DECISION_BITS = 1; ///< chooses the one which needs the fewest bits + FF_MB_DECISION_RD = 2; ///< rate distortion + +{$IFDEF FF_API_CODER_TYPE} + FF_CODER_TYPE_VLC = 0; + FF_CODER_TYPE_AC = 1; + FF_CODER_TYPE_RAW = 2; + FF_CODER_TYPE_RLE = 3; +{$ENDIF} + FF_BUG_AUTODETECT = 1; ///< autodetection + FF_BUG_XVID_ILACE = 4; + FF_BUG_UMP4 = 8; + FF_BUG_NO_PADDING = 16; + FF_BUG_AMV = 32; + FF_BUG_QPEL_CHROMA = 64; + FF_BUG_STD_QPEL = 128; + FF_BUG_QPEL_CHROMA2 = 256; + FF_BUG_DIRECT_BLOCKSIZE = 512; + FF_BUG_EDGE = 1024; + FF_BUG_HPEL_CHROMA = 2048; + FF_BUG_DC_CLIP = 4096; + FF_BUG_MS = 8192; ///< workaround various bugs in microsofts broken decoders + FF_BUG_TRUNCATED = 16384; + FF_BUG_IEDGE = 32768; + + FF_COMPLIANCE_VERY_STRICT = 2; ///< strictly conform to an older more strict version of the spec or reference software + FF_COMPLIANCE_STRICT = 1; ///< strictly conform to all the things in the spec no matter what consequences + FF_COMPLIANCE_NORMAL = 0; + FF_COMPLIANCE_UNOFFICIAL = -1; ///< Allow unofficial extensions + FF_COMPLIANCE_EXPERIMENTAL = -2; ///< Allow nonstandardized experimental things. + + FF_EC_GUESS_MVS = 1; + FF_EC_DEBLOCK = 2; + FF_EC_FAVOR_INTER = 256; + + FF_DEBUG_PICT_INFO = 1; + FF_DEBUG_RC = 2; + FF_DEBUG_BITSTREAM = 4; + FF_DEBUG_MB_TYPE = 8; + FF_DEBUG_QP = 16; +{$IFDEF FF_API_DEBUG_MV} +(** + * @deprecated this option does nothing + *) + FF_DEBUG_MV = 32; +{$ENDIF} + FF_DEBUG_DCT_COEFF = $00000040; + FF_DEBUG_SKIP = $00000080; + FF_DEBUG_STARTCODE = $00000100; + FF_DEBUG_ER = $00000400; + FF_DEBUG_MMCO = $00000800; + FF_DEBUG_BUGS = $00001000; +{$IFDEF FF_API_DEBUG_MV} + FF_DEBUG_VIS_QP = $00002000; + FF_DEBUG_VIS_MB_TYPE = $00004000; +{$ENDIF} + FF_DEBUG_BUFFERS = $00008000; + FF_DEBUG_THREADS = $00010000; + FF_DEBUG_GREEN_MD = $00800000; + FF_DEBUG_NOMC = $01000000; + + FF_DEBUG_VIS_MV_P_FOR = $00000001; // visualize forward predicted MVs of P-frames + FF_DEBUG_VIS_MV_B_FOR = $00000002; // visualize forward predicted MVs of B-frames + FF_DEBUG_VIS_MV_B_BACK = $00000004; // visualize backward predicted MVs of B-frames + +(** + * Verify checksums embedded in the bitstream (could be of either encoded or + * decoded data, depending on the codec) and print an error message on mismatch. + * If AV_EF_EXPLODE is also set, a mismatching checksum will result in the + * decoder returning an error. + *) + AV_EF_CRCCHECK = 1; + AV_EF_BITSTREAM = 2; ///< detect bitstream specification deviations + AV_EF_BUFFER = 4; ///< detect improper bitstream length + AV_EF_EXPLODE = 8; ///< abort decoding on minor error detection + + AV_EF_IGNORE_ERR = 32768; ///< ignore errors and continue + AV_EF_CAREFUL = 65536; ///< consider things that violate the spec, are fast to calculate and have not been seen in the wild as errors + AV_EF_COMPLIANT = 131072; ///< consider all spec non compliances as errors + AV_EF_AGGRESSIVE = 262144; ///< consider things that a sane encoder should not do as an error + + FF_DCT_AUTO = 0; + FF_DCT_FASTINT = 1; + FF_DCT_INT = 2; + FF_DCT_MMX = 3; + FF_DCT_MLIB = 4; + FF_DCT_ALTIVEC = 5; + FF_DCT_FAAN = 6; + + FF_IDCT_AUTO = 0; + FF_IDCT_INT = 1; + FF_IDCT_SIMPLE = 2; + FF_IDCT_SIMPLEMMX = 3; + FF_IDCT_ARM = 7; + FF_IDCT_ALTIVEC = 8; + FF_IDCT_SIMPLEARM = 10; + FF_IDCT_XVID = 14; + FF_IDCT_SIMPLEARMV5TE= 16; + FF_IDCT_SIMPLEARMV6 = 17; + FF_IDCT_FAAN = 20; + FF_IDCT_SIMPLENEON = 22; + FF_IDCT_NONE = 24; (* Used by XvMC to extract IDCT coefficients with FF_IDCT_PERM_NONE *) + FF_IDCT_SIMPLEAUTO = 128; + + FF_THREAD_FRAME = 1; ///< Decode more than one frame at once + FF_THREAD_SLICE = 2; ///< Decode more than one part of a single frame at once + + FF_PROFILE_UNKNOWN = -99; + FF_PROFILE_RESERVED = -100; + + FF_PROFILE_AAC_MAIN = 0; + FF_PROFILE_AAC_LOW = 1; + FF_PROFILE_AAC_SSR = 2; + FF_PROFILE_AAC_LTP = 3; + FF_PROFILE_AAC_HE = 4; + FF_PROFILE_AAC_HE_V2 = 28; + FF_PROFILE_AAC_LD = 22; + FF_PROFILE_AAC_ELD = 38; + FF_PROFILE_MPEG2_AAC_LOW = 128; + FF_PROFILE_MPEG2_AAC_HE = 131; + + FF_PROFILE_DNXHD = 0; + FF_PROFILE_DNXHR_LB = 1; + FF_PROFILE_DNXHR_SQ = 2; + FF_PROFILE_DNXHR_HQ = 3; + FF_PROFILE_DNXHR_HQX = 4; + FF_PROFILE_DNXHR_444 = 5; + + FF_PROFILE_DTS = 20; + FF_PROFILE_DTS_ES = 30; + FF_PROFILE_DTS_96_24 = 40; + FF_PROFILE_DTS_HD_HRA = 50; + FF_PROFILE_DTS_HD_MA = 60; + FF_PROFILE_DTS_EXPRESS = 70; + + FF_PROFILE_MPEG2_422 = 0; + FF_PROFILE_MPEG2_HIGH = 1; + FF_PROFILE_MPEG2_SS = 2; + FF_PROFILE_MPEG2_SNR_SCALABLE = 3; + FF_PROFILE_MPEG2_MAIN = 4; + FF_PROFILE_MPEG2_SIMPLE= 5; + + FF_PROFILE_H264_CONSTRAINED = (1 shl 9); // 8+1; constraint_set1_flag + FF_PROFILE_H264_INTRA = (1 shl 11); // 8+3; constraint_set3_flag + + FF_PROFILE_H264_BASELINE = 66; + FF_PROFILE_H264_CONSTRAINED_BASELINE = (66 or FF_PROFILE_H264_CONSTRAINED); + FF_PROFILE_H264_MAIN = 77; + FF_PROFILE_H264_EXTENDED = 88; + FF_PROFILE_H264_HIGH = 100; + FF_PROFILE_H264_HIGH_10 = 110; + FF_PROFILE_H264_HIGH_10_INTRA = (110 or FF_PROFILE_H264_INTRA); + FF_PROFILE_H264_MULTIVIEW_HIGH = 118; + FF_PROFILE_H264_HIGH_422 = 122; + FF_PROFILE_H264_HIGH_422_INTRA = (122 or FF_PROFILE_H264_INTRA); + FF_PROFILE_H264_STEREO_HIGH = 128; + FF_PROFILE_H264_HIGH_444 = 144; + FF_PROFILE_H264_HIGH_444_PREDICTIVE = 244; + FF_PROFILE_H264_HIGH_444_INTRA = (244 or FF_PROFILE_H264_INTRA); + FF_PROFILE_H264_CAVLC_444 = 44; + + FF_PROFILE_VC1_SIMPLE = 0; + FF_PROFILE_VC1_MAIN = 1; + FF_PROFILE_VC1_COMPLEX = 2; + FF_PROFILE_VC1_ADVANCED = 3; + + FF_PROFILE_MPEG4_SIMPLE = 0; + FF_PROFILE_MPEG4_SIMPLE_SCALABLE = 1; + FF_PROFILE_MPEG4_CORE = 2; + FF_PROFILE_MPEG4_MAIN = 3; + FF_PROFILE_MPEG4_N_BIT = 4; + FF_PROFILE_MPEG4_SCALABLE_TEXTURE = 5; + FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION = 6; + FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE = 7; + FF_PROFILE_MPEG4_HYBRID = 8; + FF_PROFILE_MPEG4_ADVANCED_REAL_TIME = 9; + FF_PROFILE_MPEG4_CORE_SCALABLE = 10; + FF_PROFILE_MPEG4_ADVANCED_CODING = 11; + FF_PROFILE_MPEG4_ADVANCED_CORE = 12; + FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE = 13; + FF_PROFILE_MPEG4_SIMPLE_STUDIO = 14; + FF_PROFILE_MPEG4_ADVANCED_SIMPLE = 15; + + FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0 = 1; + FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1 = 2; + FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION = 32768; + FF_PROFILE_JPEG2000_DCINEMA_2K = 3; + FF_PROFILE_JPEG2000_DCINEMA_4K = 4; + + FF_PROFILE_VP9_0 = 0; + FF_PROFILE_VP9_1 = 1; + FF_PROFILE_VP9_2 = 2; + FF_PROFILE_VP9_3 = 3; + + FF_PROFILE_HEVC_MAIN = 1; + FF_PROFILE_HEVC_MAIN_10 = 2; + FF_PROFILE_HEVC_MAIN_STILL_PICTURE = 3; + FF_PROFILE_HEVC_REXT = 4; + + FF_PROFILE_AV1_MAIN = 0; + FF_PROFILE_AV1_HIGH = 1; + FF_PROFILE_AV1_PROFESSIONAL = 2; + + FF_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT = 192; + FF_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT = 193; + FF_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT = 194; + FF_PROFILE_MJPEG_HUFFMAN_LOSSLESS = 195; + FF_PROFILE_MJPEG_JPEG_LS = 247; + + FF_PROFILE_SBC_MSBC = 1; + + + FF_LEVEL_UNKNOWN = -99; + +type + + (** + * This structure describes the bitrate properties of an encoded bitstream. It + * roughly corresponds to a subset the VBV parameters for MPEG-2 or HRD + * parameters for H.264/HEVC. + *) + PAVCPBProperties = ^TAVCPBProperties; + TAVCPBProperties = record + (** + * Maximum bitrate of the stream, in bits per second. + * Zero if unknown or unspecified. + *) + max_bitrate: cint; + (** + * Minimum bitrate of the stream, in bits per second. + * Zero if unknown or unspecified. + *) + min_bitrate: cint; + (** + * Average bitrate of the stream, in bits per second. + * Zero if unknown or unspecified. + *) + avg_bitrate: cint; + + (** + * The size of the buffer to which the ratecontrol is applied, in bits. + * Zero if unknown or unspecified. + *) + buffer_size: cint; + + (** + * The delay between the time the packet this structure is associated with + * is received and the time when it should be decoded, in periods of a 27MHz + * clock. + * + * UINT64_MAX when unknown or unspecified. + *) + vbv_delay: cuint64; + end; {TAVCPBProperties} + + TAVPacketSideDataType = ( + (** + * An AV_PKT_DATA_PALETTE side data packet contains exactly AVPALETTE_SIZE + * bytes worth of palette. This side data signals that a new palette is + * present. + *) + AV_PKT_DATA_PALETTE, + + (** + * The AV_PKT_DATA_NEW_EXTRADATA is used to notify the codec or the format + * that the extradata buffer was changed and the receiving side should + * act upon it appropriately. The new extradata is embedded in the side + * data buffer and should be immediately used for processing the current + * frame or packet. + *) + AV_PKT_DATA_NEW_EXTRADATA, + + (** + * An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows: + * @code + * u32le param_flags + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT) + * s32le channel_count + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT) + * u64le channel_layout + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE) + * s32le sample_rate + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS) + * s32le width + * s32le height + * @endcode + *) + AV_PKT_DATA_PARAM_CHANGE, + + (** + * An AV_PKT_DATA_H263_MB_INFO side data packet contains a number of + * structures with info about macroblocks relevant to splitting the + * packet into smaller packets on macroblock edges (e.g. as for RFC 2190). + * That is, it does not necessarily contain info about all macroblocks, + * as long as the distance between macroblocks in the info is smaller + * than the target payload size. + * Each MB info structure is 12 bytes, and is laid out as follows: + * @code + * u32le bit offset from the start of the packet + * u8 current quantizer at the start of the macroblock + * u8 GOB number + * u16le macroblock address within the GOB + * u8 horizontal MV predictor + * u8 vertical MV predictor + * u8 horizontal MV predictor for block number 3 + * u8 vertical MV predictor for block number 3 + * @endcode + *) + AV_PKT_DATA_H263_MB_INFO, + + (** + * This side data should be associated with an audio stream and contains + * ReplayGain information in form of the AVReplayGain struct. + *) + AV_PKT_DATA_REPLAYGAIN, + + (** + * This side data contains a 3x3 transformation matrix describing an affine + * transformation that needs to be applied to the decoded video frames for + * correct presentation. + * + * See libavutil/display.h for a detailed description of the data. + *) + AV_PKT_DATA_DISPLAYMATRIX, + + (** + * This side data should be associated with a video stream and contains + * Stereoscopic 3D information in form of the AVStereo3D struct. + *) + AV_PKT_DATA_STEREO3D, + + (** + * This side data should be associated with an audio stream and corresponds + * to enum AVAudioServiceType. + *) + AV_PKT_DATA_AUDIO_SERVICE_TYPE, + + (** + * This side data contains quality related information from the encoder. + * @code + * u32le quality factor of the compressed frame. Allowed range is between 1 (good) and FF_LAMBDA_MAX (bad). + * u8 picture type + * u8 error count + * u16 reserved + * u64le[error count] sum of squared differences between encoder in and output + * @endcode + *) + AV_PKT_DATA_QUALITY_STATS, + + (** + * This side data contains an integer value representing the stream index + * of a "fallback" track. A fallback track indicates an alternate + * track to use when the current track can not be decoded for some reason. + * e.g. no decoder available for codec. + *) + AV_PKT_DATA_FALLBACK_TRACK, + + (** + * This side data corresponds to the AVCPBProperties struct. + *) + AV_PKT_DATA_CPB_PROPERTIES, + + (** + * Recommmends skipping the specified number of samples + * @code + * u32le number of samples to skip from start of this packet + * u32le number of samples to skip from end of this packet + * u8 reason for start skip + * u8 reason for end skip (0=padding silence, 1=convergence) + * @endcode + *) + AV_PKT_DATA_SKIP_SAMPLES, + + (** + * An AV_PKT_DATA_JP_DUALMONO side data packet indicates that + * the packet may contain "dual mono" audio specific to Japanese DTV + * and if it is true, recommends only the selected channel to be used. + * @code + * u8 selected channels (0=mail/left, 1=sub/right, 2=both) + * @endcode + *) + AV_PKT_DATA_JP_DUALMONO, + + (** + * A list of zero terminated key/value strings. There is no end marker for + * the list, so it is required to rely on the side data size to stop. + *) + AV_PKT_DATA_STRINGS_METADATA, + + (** + * Subtitle event position + * @code + * u32le x1 + * u32le y1 + * u32le x2 + * u32le y2 + * @endcode + *) + AV_PKT_DATA_SUBTITLE_POSITION, + + (** + * Data found in BlockAdditional element of matroska container. There is + * no end marker for the data, so it is required to rely on the side data + * size to recognize the end. 8 byte id (as found in BlockAddId) followed + * by data. + *) + AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, + + (** + * The optional first identifier line of a WebVTT cue. + *) + AV_PKT_DATA_WEBVTT_IDENTIFIER, + + (** + * The optional settings (rendering instructions) that immediately + * follow the timestamp specifier of a WebVTT cue. + *) + AV_PKT_DATA_WEBVTT_SETTINGS, + + (** + * A list of zero terminated key/value strings. There is no end marker for + * the list, so it is required to rely on the side data size to stop. This + * side data includes updated metadata which appeared in the stream. + *) + AV_PKT_DATA_METADATA_UPDATE, + + (** + * MPEGTS stream ID, this is required to pass the stream ID + * information from the demuxer to the corresponding muxer. + *) + AV_PKT_DATA_MPEGTS_STREAM_ID, + + (** + * Mastering display metadata (based on SMPTE-2086:2014). This metadata + * should be associated with a video stream and contains data in the form + * of the AVMasteringDisplayMetadata struct. + *) + AV_PKT_DATA_MASTERING_DISPLAY_METADATA, + + (** + * This side data should be associated with a video stream and corresponds + * to the AVSphericalMapping structure. + *) + AV_PKT_DATA_SPHERICAL, + + (** + * Content light level (based on CTA-861.3). This metadata should be + * associated with a video stream and contains data in the form of the + * AVContentLightMetadata struct. + *) + AV_PKT_DATA_CONTENT_LIGHT_LEVEL, + + (** + * ATSC A53 Part 4 Closed Captions. This metadata should be associated with + * a video stream. A53 CC bitstream is stored as uint8_t in AVPacketSideData.data. + * The number of bytes of CC data is AVPacketSideData.size. + *) + AV_PKT_DATA_A53_CC, + + (** + * This side data is encryption initialization data. + * The format is not part of ABI, use av_encryption_init_info_* methods to + * access. + */ + AV_PKT_DATA_ENCRYPTION_INIT_INFO, + + /** + * This side data contains encryption info for how to decrypt the packet. + * The format is not part of ABI, use av_encryption_info_* methods to access. + */ + AV_PKT_DATA_ENCRYPTION_INFO, + + /** + * The number of side data types. + * This is not part of the public API/ABI in the sense that it may + * change when new side data types are added. + * This must stay the last enum value. + * If its value becomes huge, some code using it + * needs to be updated as it assumes it to be smaller than other limits. + *) + AV_PKT_DATA_NB + ); + + PAVPacketSideData = ^TAVPacketSideData; + TAVPacketSideData = record + data: PByte; + size: cint; + type_: TAVPacketSideDataType; + end; + +(** + * This structure stores compressed data. It is typically exported by demuxers + * and then passed as input to decoders, or received as output from encoders and + * then passed to muxers. + * + * For video, it should typically contain one compressed frame. For audio it may + * contain several compressed frames. Encoders are allowed to output empty + * packets, with no compressed data, containing only side data + * (e.g. to update some stream parameters at the end of encoding). + * + * AVPacket is one of the few structs in FFmpeg, whose size is a part of public + * ABI. Thus it may be allocated on stack and no new fields can be added to it + * without libavcodec and libavformat major bump. + * + * The semantics of data ownership depends on the buf field. + * If it is set, the packet data is dynamically allocated and is + * valid indefinitely until a call to av_packet_unref() reduces the + * reference count to 0. + * + * If the buf field is not set av_packet_ref() would make a copy instead + * of increasing the reference count. + * + * The side data is always allocated with av_malloc(), copied by + * av_packet_ref() and freed by av_packet_unref(). + * + * @see av_packet_ref + * @see av_packet_unref + *) + PPAVPacket= ^PAVPacket; + PAVPacket = ^TAVPacket; + TAVPacket = record + (** + * A reference to the reference-counted buffer where the packet data is + * stored. + * May be NULL, then the packet data is not reference-counted. + *) + buf: PAVBufferRef; + (* + * Presentation timestamp in AVStream->time_base units; the time at which + * the decompressed packet will be presented to the user. + * Can be AV_NOPTS_VALUE if it is not stored in the file. + * pts MUST be larger or equal to dts as presentation cannot happen before + * decompression, unless one wants to view hex dumps. Some formats misuse + * the terms dts and pts/cts to mean something different. Such timestamps + * must be converted to true pts/dts before they are stored in AVPacket. + *) + pts: cint64; + (* + * Decompression timestamp in AVStream->time_base units; the time at which + * the packet is decompressed. + * Can be AV_NOPTS_VALUE if it is not stored in the file. + *) + dts: cint64; + data: PByteArray; + size: cint; + stream_index: cint; + (** + * A combination of AV_PKT_FLAG values + *) + flags: cint; + (** + * Additional packet data that can be provided by the container. + * Packet can contain several types of side information. + *) + side_data: PAVPacketSideData; + side_data_elems: cint; + + (* + * Duration of this packet in AVStream->time_base units, 0 if unknown. + * Equals next_pts - this_pts in presentation order. + *) + duration: cint64; + + pos: cint64; // byte position in stream, -1 if unknown + +{$IFDEF FF_API_CONVERGENCE_DURATION} + (* + * @deprecated Same as the duration field, but as int64_t. This was required + * for Matroska subtitles, whose duration values could overflow when the + * duration field was still an int. + *) + convergence_duration: cint64; {deprecated} +{$ENDIF} + end; {TAVPacket} + +const + AV_PKT_FLAG_KEY = $0001; ///< The packet contains a keyframe + AV_PKT_FLAG_CORRUPT = $0002; ///< The packet content is corrupted + (** + * Flag is used to discard packets which are required to maintain valid + * decoder state but are not required for output and should be dropped + * after decoding. + **) + AV_PKT_FLAG_DISCARD = $0004; + (** + * The packet comes from a trusted source. + * + * Otherwise-unsafe constructs such as arbitrary pointers to data + * outside the packet may be followed. + *) + AV_PKT_FLAG_TRUSTED = $0008; + (** + * Flag is used to indicate packets that contain frames that can + * be discarded by the decoder. I.e. Non-reference frames. + *) + AV_PKT_FLAG_DISPOSABLE = $0010; + + AV_NUM_DATA_POINTERS = 8; + + AV_PKT_DATA_QUALITY_FACTOR = AV_PKT_DATA_QUALITY_STATS; //DEPRECATED + +type + AVSideDataParamChangeFlags = ( + AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = $0001, + AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT = $0002, + AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE = $0004, + AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS = $0008 + ); + +{ This is removed in avcodec.h. For the time being (2013) only commented +const + FF_DECODE_ERROR_INVALID_BITSTREAM = 1; + FF_DECODE_ERROR_MISSING_REFERENCE = 2; +} + + +{ This is removed in avcodec.h. For the time being (2013) only commented +(** + * This structure describes decoded (raw) audio or video data. + * + * AVFrame must be allocated using avcodec_alloc_frame() and freed with + * avcodec_free_frame(). Note that this allocates only the AVFrame itself. The + * buffers for the data must be managed through other means. + * + * AVFrame is typically allocated once and then reused multiple times to hold + * different data (e.g. a single AVFrame to hold frames received from a + * decoder). In such a case, avcodec_get_frame_defaults() should be used to + * reset the frame to its original clean state before it is reused again. + * + * sizeof(AVFrame) is not a part of the public ABI, so new fields may be added + * to the end with a minor bump. + * Similarly fields that are marked as to be only accessed by + * av_opt_ptr() can be reordered. This allows 2 forks to add fields + * without breaking compatibility with each other. + *) + PAVFrame = ^TAVFrame; + TAVFrame = record + (** + * pointer to the picture/channel planes. + * This might be different from the first allocated byte + * - encoding: Set by user + * - decoding: set by AVCodecContext.get_buffer() + *) + data: array [0..AV_NUM_DATA_POINTERS - 1] of pbyte; + + (** + * Size, in bytes, of the data for each picture/channel plane. + * + * For audio, only linesize[0] may be set. For planar audio, each channel + * plane must be the same size. + * + * - encoding: Set by user + * - decoding: set by AVCodecContext.get_buffer() + *) + linesize: array [0..AV_NUM_DATA_POINTERS - 1] of cint; + + (** + * pointers to the data planes/channels. + * + * For video, this should simply point to data[]. + * + * For planar audio, each channel has a separate data pointer, and + * linesize[0] contains the size of each channel buffer. + * For packed audio, there is just one data pointer, and linesize[0] + * contains the total size of the buffer for all channels. + * + * Note: Both data and extended_data will always be set by get_buffer(), + * but for planar audio with more channels that can fit in data, + * extended_data must be used by the decoder in order to access all + * channels. + * + * encoding: set by user + * decoding: set by AVCodecContext.get_buffer() + *) + extended_data: pointer of pbyte; + + (** + * width and height of the video frame + * - encoding: unused + * - decoding: Read by user. + *) + width, height: cint; + + (** + * number of audio samples (per channel) described by this frame + * - encoding: Set by user + * - decoding: Set by libavcodec + *) + nb_samples: cint; + + (** + * format of the frame, -1 if unknown or unset + * Values correspond to enum AVPixelFormat for video frames, + * enum AVSampleFormat for audio) + * - encoding: unused + * - decoding: Read by user. + *) + format: cint; + + (** + * 1 -> keyframe, 0-> not + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + *) + key_frame: cint; + + (** + * Picture type of the frame, see ?_TYPE below. + * - encoding: Set by libavcodec. for coded_picture (and set by user for input). + * - decoding: Set by libavcodec. + *) + pict_type: TAVPictureType; + + (** + * pointer to the first allocated byte of the picture. Can be used in get_buffer/release_buffer. + * This isn't used by libavcodec unless the default get/release_buffer() is used. + * - encoding: + * - decoding: + *) + base: array [0..AV_NUM_DATA_POINTERS - 1] of pbyte; + + (** + * sample aspect ratio for the video frame, 0/1 if unknown/unspecified + * - encoding: unused + * - decoding: Read by user. + *) + sample_aspect_ratio: TAVRational; + + (** + * presentation timestamp in time_base units (time when frame should be shown to user) + * If AV_NOPTS_VALUE then frame_rate = 1/time_base will be assumed. + * - encoding: MUST be set by user. + * - decoding: Set by libavcodec. + *) + pts: cint64; + + (** + * pts copied from the AVPacket that was decoded to produce this frame + * - encoding: unused + * - decoding: Read by user. + *) + pkt_pts: cint64; + + (** + * dts copied from the AVPacket that triggered returning this frame + * - encoding: unused + * - decoding: Read by user. + *) + pkt_dts: cint64; + + (** + * picture number in bitstream order + * - encoding: set by + * - decoding: Set by libavcodec. + *) + coded_picture_number: cint; + + (** + * picture number in display order + * - encoding: set by + * - decoding: Set by libavcodec. + *) + display_picture_number: cint; + + (** + * quality (between 1 (good) and FF_LAMBDA_MAX (bad)) + * - encoding: Set by libavcodec. for coded_picture (and set by user for input). + * - decoding: Set by libavcodec. + *) + quality: cint; + + (** + * is this picture used as reference + * The values for this are the same as the MpegEncContext.picture_structure + * variable, that is 1->top field, 2->bottom field, 3->frame/both fields. + * Set to 4 for delayed, non-reference frames. + * - encoding: unused + * - decoding: Set by libavcodec. (before get_buffer() call)). + *) + reference: cint; + + (** + * QP table + * - encoding: unused + * - decoding: Set by libavcodec. + *) + qscale_table: PShortint; + + (** + * QP store stride + * - encoding: unused + * - decoding: Set by libavcodec. + *) + qstride: cint; + + (** + * + *) + qscale_type: cint; + + (** + * mbskip_table[mb]>=1 if MB didn't change + * stride= mb_width = (width+15)>>4 + * - encoding: unused + * - decoding: Set by libavcodec. + *) + mbskip_table: pbyte; + + (** + * motion vector table + * @code + * example: + * int mv_sample_log2= 4 - motion_subsample_log2; + * int mb_width= (width+15)>>4; + * int mv_stride= (mb_width << mv_sample_log2) + 1; + * motion_val[direction][x + y*mv_stride][0->mv_x, 1->mv_y]; + * @endcode + * - encoding: Set by user. + * - decoding: Set by libavcodec. + *) + //int16_t (*motion_val[2])[2]; + motion_val: array [0..1] of pointer; + + (** + * macroblock type table + * mb_type_base + mb_width + 2 + * - encoding: Set by user. + * - decoding: Set by libavcodec. + *) + mb_type: PCuint; + + (** + * DCT coefficients + * - encoding: unused + * - decoding: Set by libavcodec. + *) + dct_coeff: PsmallInt; + + (** + * motion reference frame index + * the order in which these are stored can depend on the codec. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + *) + ref_index: array [0..1] of PShortint; + + (** + * for some private data of the user + * - encoding: unused + * - decoding: Set by user. + *) + opaque: pointer; + + (** + * error + * - encoding: Set by libavcodec. if flags&CODEC_FLAG_PSNR. + * - decoding: unused + *) + error: array [0..AV_NUM_DATA_POINTERS - 1] of cuint64; + + (** + * type of the buffer (to keep track of who has to deallocate data[*]) + * - encoding: Set by the one who allocates it. + * - decoding: Set by the one who allocates it. + * Note: User allocated (direct rendering) & internal buffers cannot coexist currently. + *) + type_: cint; + + (** + * When decoding, this signals how much the picture must be delayed. + * extra_delay = repeat_pict / (2*fps) + * - encoding: unused + * - decoding: Set by libavcodec. + *) + repeat_pict: cint; + + (** + * The content of the picture is interlaced. + * - encoding: Set by user. + * - decoding: Set by libavcodec. (default 0) + *) + interlaced_frame: cint; + + (** + * If the content is interlaced, is top field displayed first. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + *) + top_field_first: cint; + + (** + * Tell user application that palette has changed from previous frame. + * - encoding: ??? (no palette-enabled encoder yet) + * - decoding: Set by libavcodec. (default 0). + *) + palette_has_changed: cint; + + (** + * codec suggestion on buffer type if != 0 + * - encoding: unused + * - decoding: Set by libavcodec. (before get_buffer() call)). + *) + buffer_hints: cint; + + (** + * Pan scan. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + *) + pan_scan: PAVPanScan; + + (** + * reordered opaque 64bit number (generally a PTS) from AVCodecContext.reordered_opaque + * PTS but can be anything). + * The user sets AVCodecContext.reordered_opaque to represent the input at + * that time, + * the decoder reorders values as needed and sets AVFrame.reordered_opaque + * to exactly one of the values provided by the user through AVCodecContext.reordered_opaque + * @deprecated in favor of pkt_pts + * - encoding: unused + * - decoding: Read by user. + *) + reordered_opaque: cint64; + + (** + * hardware accelerator private data (FFmpeg allocated) + * - encoding: unused + * - decoding: Set by libavcodec + *) + hwaccel_picture_private: pointer; + + (** + * the AVCodecContext which ff_thread_get_buffer() was last called on + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + *) + owner: PAVCodecContext; + + (** + * used by multithreading to store frame-specific info + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + *) + thread_opaque: pointer; + + (** + * log2 of the size of the block which a single vector in motion_val represents: + * (4->16x16, 3->8x8, 2-> 4x4, 1-> 2x2) + * - encoding: unused + * - decoding: Set by libavcodec. + *) + motion_subsample_log2: cuint8; + + (** + * Sample rate of the audio data. + * + * - encoding: unused + * - decoding: read by user + *) + sample_rate: cint; + + (** + * Channel layout of the audio data. + * + * - encoding: unused + * - decoding: read by user. + *) + channel_layout: cuint64; + + (** + * frame timestamp estimated using various heuristics, in stream time base + * Code outside libavcodec should access this field using: + * av_frame_get_best_effort_timestamp(frame) + * - encoding: unused + * - decoding: set by libavcodec, read by user. + *) + best_effort_timestamp: cint64; + + (** + * reordered pos from the last AVPacket that has been input into the decoder + * Code outside libavcodec should access this field using: + * av_frame_get_pkt_pos(frame) + * - encoding: unused + * - decoding: Read by user. + *) + pkt_pos: cint64; + + (** + * duration of the corresponding packet, expressed in + * AVStream->time_base units, 0 if unknown. + * Code outside libavcodec should access this field using: + * av_frame_get_pkt_duration(frame) + * - encoding: unused + * - decoding: Read by user. + *) + pkt_duration: cint64; + + (** + * metadata. + * Code outside libavcodec should access this field using: + * av_frame_get_metadata(frame) + * - encoding: Set by user. + * - decoding: Set by libavcodec. + *) + metadata: PAVDictionary; + + (** + * decode error flags of the frame, set to a combination of + * FF_DECODE_ERROR_xxx flags if the decoder produced a frame, but there + * were errors during the decoding. + * Code outside libavcodec should access this field using: + * av_frame_get_decode_error_flags(frame) + * - encoding: unused + * - decoding: set by libavcodec, read by user. + *) + decode_error_flags: cint; + + (** + * number of audio channels, only used for audio. + * Code outside libavcodec should access this field using: + * av_frame_get_channels(frame) + * - encoding: unused + * - decoding: Read by user. + *) + channels: cint; + + (** + * size of the corresponding packet containing the compressed + * frame. It must be accessed using av_frame_get_pkt_size() and + * av_frame_set_pkt_size(). + * It is set to a negative value if unknown. + * - encoding: unused + * - decoding: set by libavcodec, read by user. + *) + pkt_size: cint; + end; (** TAVFrame **) + +(** + * Accessors for some AVFrame fields. + * The position of these field in the structure is not part of the ABI, + * they should not be accessed directly outside libavcodec. + *) +function av_frame_get_best_effort_timestamp(frame: {const PAVFrame): cint64; + cdecl; external av__codec; +procedure av_frame_set_best_effort_timestamp(frame: PAVFrame; val: cint64); + cdecl; external av__codec; +function av_frame_get_pkt_duration (frame: {const PAVFrame): cint64; + cdecl; external av__codec; +procedure av_frame_get_pkt_duration (frame: PAVFrame; val: cint64); + cdecl; external av__codec; +function av_frame_get_pkt_pos (frame: {const PAVFrame): cint64; + cdecl; external av__codec; +procedure av_frame_get_pkt_pos (frame: PAVFrame; val: cint64); + cdecl; external av__codec; +function av_frame_get_channel_layout (frame: {const PAVFrame): cint64; + cdecl; external av__codec; +procedure av_frame_get_channel_layout (frame: PAVFrame; val: cint64); + cdecl; external av__codec; +function av_frame_get_channels (frame: {const PAVFrame): cint; + cdecl; external av__codec; +procedure av_frame_set_channels (frame: PAVFrame; val: cint); + cdecl; external av__codec; +function av_frame_get_sample_rate (frame: {const PAVFrame): cint; + cdecl; external av__codec; +procedure av_frame_set_sample_rate (frame: PAVFrame; val: cint); + cdecl; external av__codec; +function av_frame_get_metadata (frame: {const PAVFrame): PAVDictionary; + cdecl; external av__codec; +procedure av_frame_set_metadata (frame: PAVFrame; val: PAVDictionary); + cdecl; external av__codec; +function av_frame_get_decode_error_flags (frame: {const PAVFrame): cint; + cdecl; external av__codec; +procedure av_frame_set_decode_error_flags (frame: PAVFrame; val: cint); + cdecl; external av__codec; +function av_frame_get_pkt_size(frame: {const PAVFrame): cint; + cdecl; external av__codec; +procedure av_frame_set_pkt_size(frame: PAVFrame; val: cint); + cdecl; external av__codec; +} + +type + TAVCodecInternal = record + end; + + PAVCodecInternal = ^TAVCodecInternal; + PAVCodecContext = ^TAVCodecContext; + + PAVClass = ^TAVClass; + + PPAVCodec = ^PAVCodec; + PAVCodec = ^TAVCodec; + + // int[4] + PAVNDPArray = ^TAVNDPArray; + TAVNDPArray = array [0..AV_NUM_DATA_POINTERS - 1] of cint; + // int (*func)(struct AVCodecContext *c2, void *arg) + TExecuteFunc = function(c2: PAVCodecContext; arg: Pointer): cint; cdecl; + // int (*func)(struct AVCodecContext *c2, void *arg, int jobnr, int threadnr) + TExecute2Func = function(c2: PAVCodecContext; arg: Pointer; jobnr: cint; threadnr: cint): cint; cdecl; + + TAVFieldOrder = ( + AV_FIELD_UNKNOWN, + AV_FIELD_PROGRESSIVE, + AV_FIELD_TT, //< Top coded_first, top displayed first + AV_FIELD_BB, //< Bottom coded first, bottom displayed first + AV_FIELD_TB, //< Top coded first, bottom displayed first + AV_FIELD_BT //< Bottom coded first, top displayed first + ); + + PMpegEncContext = ^TMpegEncContext; + // To be expanded if needed. + TMpegEncContext = record + end; + +(** + * @defgroup lavc_hwaccel AVHWAccel + * + * @note Nothing in this structure should be accessed by the user. At some + * point in future it will not be externally visible at all. + * + * @{ + *) + PAVHWAccel = ^TAVHWAccel; + TAVHWAccel = record + (** + * Name of the hardware accelerated codec. + * The name is globally unique among encoders and among decoders (but an + * encoder and a decoder can share the same name). + *) + name: PAnsiChar; + + (** + * Type of codec implemented by the hardware accelerator. + * + * See AVMediaType_xxx + *) + type_: TAVMediaType; + + (** + * Codec implemented by the hardware accelerator. + * + * See AV_CODEC_ID_xxx + *) + id: TAVCodecID; + + (** + * Supported pixel format. + * + * Only hardware accelerated formats are supported here. + *) + pix_fmt: PAVPixelFormat; + + (** + * Hardware accelerated codec capabilities. + * see AV_HWACCEL_CODEC_CAP_* + *) + capabilities: cint; + + (***************************************************************** + * No fields below this line are part of the public API. They + * may not be used outside of libavcodec and can be changed and + * removed at will. + * New public fields should be added right above. + ***************************************************************** + *) + + (** + * Allocate a custom buffer + *) + alloc_frame: function (avctx: PAVCodecContext; frame: PAVFrame): cint; cdecl; + + (** + * Called at the beginning of each frame or field picture. + * + * Meaningful frame information (codec specific) is guaranteed to + * be parsed at this point. This function is mandatory. + * The only exception is XvMC, that works on MB level. + * + * Note that buf can be NULL along with buf_size set to 0. + * Otherwise, this means the whole frame is available at this point. + * + * @param avctx the codec context + * @param buf the frame data buffer base + * @param buf_size the size of the frame in bytes + * @return zero if successful, a negative value otherwise + *) + start_frame: function (avctx: PAVCodecContext; + buf: {const} PByteArray; + buf_size: cuint): cint; cdecl; + + (** + * Callback for parameter data (SPS/PPS/VPS etc). + * + * Useful for hardware decoders which keep persistent state about the + * video parameters, and need to receive any changes to update that state. + * + * @param avctx the codec context + * @param type the nal unit type + * @param buf the nal unit data buffer + * @param buf_size the size of the nal unit in bytes + * @return zero if successful, a negative value otherwise + *) + decode_params: function(avctx: PAVCodecContext; type_: cint; buf: Pcuint8 {const}; buf_size: cuint32): PCint; + + (** + * Callback for each slice. + * + * Meaningful slice information (codec specific) is guaranteed to + * be parsed at this point. This function is mandatory. + * + * @param avctx the codec context + * @param buf the slice data buffer base + * @param buf_size the size of the slice in bytes + * @return zero if successful, a negative value otherwise + *) + decode_slice: function (avctx: PAVCodecContext; + buf: {const} PByteArray; + buf_size: cuint): cint; cdecl; + + (** + * Called at the end of each frame or field picture. + * + * The whole picture is parsed at this point and can now be sent + * to the hardware accelerator. This function is mandatory. + * + * @param avctx the codec context + * @return zero if successful, a negative value otherwise + *) + end_frame: function (avctx: PAVCodecContext): cint; cdecl; + + (** + * Size of per-frame hardware accelerator private data. + * + * Private data is allocated with av_mallocz() before + * AVCodecContext.get_buffer() and deallocated after + * AVCodecContext.release_buffer(). + *) + frame_priv_data_size: cint; + + (** + * Called for every Macroblock in a slice. + * + * XvMC uses it to replace the mpv_reconstruct_mb(). + * Instead of decoding to raw picture, MB parameters are + * stored in an array provided by the video driver. + * + * @param s the mpeg context + *) + decode_mb: procedure(s: PMpegEncContext); cdecl; + + (** + * Initialize the hwaccel private data. + * + * This will be called from ff_get_format(), after hwaccel and + * hwaccel_context are set and the hwaccel private data in AVCodecInternal + * is allocated. + *) + init: function (avctx: PAVCodecContext): cint; cdecl; + + (** + * Uninitialize the hwaccel private data. + * + * This will be called from get_format() or avcodec_close(), after hwaccel + * and hwaccel_context are already uninitialized. + *) + uninit: function (avctx: PAVCodecContext): cint; cdecl; + + (** + * Size of the private data to allocate in + * AVCodecInternal.hwaccel_priv_data. + *) + priv_data_size: cint; + + (** + * Internal hwaccel capabilities. + *) + caps_internal: cint; + + (** + * Fill the given hw_frames context with current codec parameters. Called + * from get_format. Refer to avcodec_get_hw_frames_parameters() for + * details. + * + * This CAN be called before AVHWAccel.init is called, and you must assume + * that avctx->hwaccel_priv_data is invalid. + *) + frame_params: function(avctx: PAVCodecContext; hw_frames_ctx: PAVBufferRef): Pcint; + end; {TAVHWAccel} + +(** + * main external API structure. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * You can use AVOptions (av_opt* / av_set/get*()) to access these fields from user + * applications. + * The name string for AVOptions options matches the associated command line + * parameter name and can be found in libavcodec/options_table.h + * The AVOption/command line parameter names differ in some cases from the C + * structure field names for historic reasons or brevity. + * sizeof(AVCodecContext) must not be used outside libav*. + *) + TAVCodecContext = record {720} + (** + * information on struct for av_log + * - set by avcodec_alloc_context3 + *) + av_class: PAVClass; + log_level_offset: cint; + + codec_type: TAVMediaType; (* see AVMEDIA_TYPE_xxx *) + codec: PAVCodec; + codec_id: TAVCodecID; (* see AV_CODEC_ID_xxx *) + + (** + * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A'). + * This is used to work around some encoder bugs. + * A demuxer should set this to what is stored in the field used to identify the codec. + * If there are multiple such fields in a container then the demuxer should choose the one + * which maximizes the information about the used codec. + * If the codec tag field in a container is larger than 32 bits then the demuxer should + * remap the longer ID to 32 bits with a table or other structure. Alternatively a new + * extra_codec_tag + size could be added but for this a clear advantage must be demonstrated + * first. + * - encoding: Set by user, if not then the default based on codec_id will be used. + * - decoding: Set by user, will be converted to uppercase by libavcodec during init. + *) + codec_tag: cuint; + + priv_data: pointer; + + (** + * Private context used for internal data. + * + * Unlike priv_data, this is not codec-specific. It is used in general + * libavcodec functions. + *) + internal: PAVCodecInternal; + + (** + * Private data of the user, can be used to carry app specific stuff. + * - encoding: Set by user. + * - decoding: Set by user. + *) + opaque: pointer; + + (** + * the average bitrate + * - encoding: Set by user; unused for constant quantizer encoding. + * - decoding: Set by user, may be overwritten by libavcodec + * if this info is available in the stream + *) + bit_rate: cint64; + + (** + * number of bits the bitstream is allowed to diverge from the reference. + * the reference can be CBR (for CBR pass1) or VBR (for pass2) + * - encoding: Set by user; unused for constant quantizer encoding. + * - decoding: unused + *) + bit_rate_tolerance: cint; + + (** + * Global quality for codecs which cannot change it per frame. + * This should be proportional to MPEG-1/2/4 qscale. + * - encoding: Set by user. + * - decoding: unused + *) + global_quality: cint; + + (** + * - encoding: Set by user. + * - decoding: unused + *) + compression_level: cint; + + (** + * AV_CODEC_FLAG_*. + * - encoding: Set by user. + * - decoding: Set by user. + *) + flags: cint; + + (** + * AV_CODEC_FLAG2_* + * - encoding: Set by user. + * - decoding: Set by user. + *) + flags2: cint; + + (** + * some codecs need / can use extradata like Huffman tables. + * MJPEG: Huffman tables + * rv10: additional flags + * MPEG-4: global headers (they can be in the bitstream or here) + * The allocated memory should be AV_FF_INPUT_BUFFER_PADDING_SIZE bytes larger + * than extradata_size to avoid problems if it is read with the bitstream reader. + * The bytewise contents of extradata must not depend on the architecture or CPU endianness. + * - encoding: Set/allocated/freed by libavcodec. + * - decoding: Set/allocated/freed by user. + *) + extradata: pbyte; + extradata_size: cint; + + (** + * This is the fundamental unit of time (in seconds) in terms + * of which frame timestamps are represented. For fixed-fps content, + * timebase should be 1/framerate and timestamp increments should be + * identically 1. + * This often, but not always is the inverse of the frame rate or field rate + * for video. 1/time_base is not the average frame rate if the frame rate is not + * constant. + * + * Like containers, elementary streams also can store timestamps, 1/time_base + * is the unit in which these timestamps are specified. + * As example of such codec time base see ISO/IEC 14496-2:2001(E) + * vop_time_increment_resolution and fixed_vop_rate + * (fixed_vop_rate == 0 implies that it is different from the framerate) + * + * - encoding: MUST be set by user. + * - decoding: the use of this field for decoding is deprecated. + * Use framerate instead. + *) + time_base: TAVRational; + + (** + * For some codecs, the time base is closer to the field rate than the frame rate. + * Most notably, H.264 and MPEG-2 specify time_base as half of frame duration + * if no telecine is used ... + * + * Set to time_base ticks per frame. Default 1, e.g., H.264/MPEG-2 set it to 2. + *) + ticks_per_frame: cint; + + (** + * Codec delay. + * + * Encoding: Number of frames delay there will be from the encoder input to + * the decoder output. (we assume the decoder matches the spec) + * Decoding: Number of frames delay in addition to what a standard decoder + * as specified in the spec would produce. + * + * Video: + * Number of frames the decoded output will be delayed relative to the + * encoded input. + * + * Audio: + * For encoding, this field is unused (see initial_padding). + * + * For decoding, this is the number of samples the decoder needs to + * output before the decoder's output is valid. When seeking, you should + * start decoding this many samples prior to your desired seek point. + * + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + *) + delay: cint; + + (* video only *) + (** + * picture width / height. + * + * @note Those fields may not match the values of the last + * AVFrame output by avcodec_decode_video2 due frame + * reordering. + * + * - encoding: MUST be set by user. + * - decoding: May be set by the user before opening the decoder if known e.g. + * from the container. Some decoders will require the dimensions + * to be set by the caller. During decoding, the decoder may + * overwrite those values as required while parsing the data. + *) + width, height: cint; + + (** + * Bitstream width / height, may be different from width/height e.g. when + * the decoded frame is cropped before being output or lowres is enabled. + * + * @note Those field may not match the value of the last + * AVFrame output by avcodec_receive_frame() due frame + * reordering. + * + * - encoding: unused + * - decoding: May be set by the user before opening the decoder if known + * e.g. from the container. During decoding, the decoder may + * overwrite those values as required while parsing the data. + *) + coded_width, coded_height: cint; + + (** + * the number of pictures in a group of pictures, or 0 for intra_only + * - encoding: Set by user. + * - decoding: unused + *) + gop_size: cint; + + (** + * Pixel format, see AV_PIX_FMT_xxx. + * May be set by the demuxer if known from headers. + * May be overridden by the decoder if it knows better. + * + * @note This field may not match the value of the last + * AVFrame output by avcodec_receive_frame() due frame + * reordering. + * + * - encoding: Set by user. + * - decoding: Set by user if known, overridden by libavcodec while + * parsing the data. + *) + pix_fmt: TAVPixelFormat; + + (** + * If non NULL, 'draw_horiz_band' is called by the libavcodec + * decoder to draw a horizontal band. It improves cache usage. Not + * all codecs can do that. You must check the codec capabilities + * beforehand. + * The function is also used by hardware acceleration APIs. + * It is called at least once during frame decoding to pass + * the data needed for hardware render. + * In that mode instead of pixel data, AVFrame points to + * a structure specific to the acceleration API. The application + * reads the structure and can change some fields to indicate progress + * or mark state. + * - encoding: unused + * - decoding: Set by user. + * @param height the height of the slice + * @param y the y position of the slice + * @param type 1->top field, 2->bottom field, 3->frame + * @param offset offset into the AVFrame.data from which the slice should be read + *) + draw_horiz_band: procedure (s: PAVCodecContext; + src: {const} PAVFrame; offset: PAVNDPArray; + y: cint; type_: cint; height: cint); cdecl; + + (** + * callback to negotiate the pixelFormat + * @param fmt is the list of formats which are supported by the codec, + * it is terminated by -1 as 0 is a valid format, the formats are ordered by quality. + * The first is always the native one. + * @note The callback may be called again immediately if initialization for + * the selected (hardware-accelerated) pixel format failed. + * @warning Behavior is undefined if the callback returns a value not + * in the fmt list of formats. + * @return the chosen format + * - encoding: unused + * - decoding: Set by user, if not set the native format will be chosen. + *) + get_format: function (s: PAVCodecContext; fmt: {const} PAVPixelFormat): TAVPixelFormat; cdecl; + + (** + * maximum number of B-frames between non-B-frames + * Note: The output will be delayed by max_b_frames+1 relative to the input. + * - encoding: Set by user. + * - decoding: unused + *) + max_b_frames: cint; + + (** + * qscale factor between IP and B-frames + * If > 0 then the last P-frame quantizer will be used (q= lastp_q*factor+offset). + * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset). + * - encoding: Set by user. + * - decoding: unused + *) + b_quant_factor: cfloat; + +{$IFDEF FF_API_PRIVATE_OPT} + (** @deprecated use encoder private options instead *) + b_frame_strategy: cint; {deprecated} +{$ENDIF} + + (** + * qscale offset between IP and B-frames + * - encoding: Set by user. + * - decoding: unused + *) + b_quant_offset: cfloat; + + (** + * Size of the frame reordering buffer in the decoder. + * For MPEG-2 it is 1 IPB or 0 low delay IP. + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + *) + has_b_frames: cint; + +{$IFDEF FF_API_PRIVATE_OPT} + (** @deprecated use encoder private options instead *) + mpeg_quant: cint; {deprecated} +{$ENDIF} + + (** + * qscale factor between P- and I-frames + * If > 0 then the last P- frame quantizer will be used (q = lastp_q * factor + offset). + * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset). + * - encoding: Set by user. + * - decoding: unused + *) + i_quant_factor: cfloat; + + (** + * qscale offset between P and I-frames + * - encoding: Set by user. + * - decoding: unused + *) + i_quant_offset: cfloat; + + (** + * luminance masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + *) + lumi_masking: cfloat; + + (** + * temporary complexity masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + *) + temporal_cplx_masking: cfloat; + + (** + * spatial complexity masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + *) + spatial_cplx_masking: cfloat; + + (** + * p block masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + *) + p_masking: cfloat; + + (** + * darkness masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + *) + dark_masking: cfloat; + + (** + * slice count + * - encoding: Set by libavcodec. + * - decoding: Set by user (or 0). + *) + slice_count: cint; + +{$IFDEF FF_API_PRIVATE_OPT} + (** @deprecated use encoder private options instead *) + prediction_method: cint; {deprecated} +{$ENDIF} + + (** + * slice offsets in the frame in bytes + * - encoding: Set/allocated by libavcodec. + * - decoding: Set/allocated by user (or NULL). + *) + slice_offset: PCint; + + (** + * sample aspect ratio (0 if unknown) + * That is the width of a pixel divided by the height of the pixel. + * Numerator and denominator must be relatively prime and smaller than 256 for some video standards. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + *) + sample_aspect_ratio: TAVRational; + + (** + * motion estimation comparison function + * - encoding: Set by user. + * - decoding: unused + *) + me_cmp: cint; + + (** + * subpixel motion estimation comparison function + * - encoding: Set by user. + * - decoding: unused + *) + me_sub_cmp: cint; + (** + * macroblock comparison function (not supported yet) + * - encoding: Set by user. + * - decoding: unused + *) + mb_cmp: cint; + (** + * interlaced DCT comparison function + * - encoding: Set by user. + * - decoding: unused + *) + ildct_cmp: cint; + + (** + * ME diamond size & shape + * - encoding: Set by user. + * - decoding: unused + *) + dia_size: cint; + + (** + * amount of previous MV predictors (2a+1 x 2a+1 square) + * - encoding: Set by user. + * - decoding: unused + *) + last_predictor_count: cint; + +{$IFDEF FF_API_PRIVATE_OPT} + (** @deprecated use encoder private options instead *) + pre_me: cint; {deprecated} +{$ENDIF} + + (** + * motion estimation prepass comparison function + * - encoding: Set by user. + * - decoding: unused + *) + me_pre_cmp: cint; + + (** + * ME prepass diamond size & shape + * - encoding: Set by user. + * - decoding: unused + *) + pre_dia_size: cint; + + (** + * subpel ME quality + * - encoding: Set by user. + * - decoding: unused + *) + me_subpel_quality: cint; + +{$IFDEF FF_API_AFD} + (** + * DTG active format information (additional aspect ratio + * information only used in DVB MPEG-2 transport streams) + * 0 if not set. + * + * - encoding: unused + * - decoding: Set by decoder. + * @deprecated Deprecated in favor of AVSideData + *) + {attribute_deprecated} + dtg_active_format: cint; +{$IFEND} + + (** + * maximum motion estimation search range in subpel units + * If 0 then no limit. + * + * - encoding: Set by user. + * - decoding: unused + *) + me_range: cint; + + (** + * slice flags + * - encoding: unused + * - decoding: Set by user. + *) + slice_flags: cint; + + (** + * macroblock decision mode + * - encoding: Set by user. + * - decoding: unused + *) + mb_decision: cint; + + (** + * custom intra quantization matrix + * - encoding: Set by user, can be NULL. + * - decoding: Set by libavcodec. + *) + intra_matrix: PWord; + + (** + * custom inter quantization matrix + * - encoding: Set by user, can be NULL. + * - decoding: Set by libavcodec. + *) + inter_matrix: PWord; + +{$IFDEF FF_API_PRIVATE_OPT} + (** @deprecated use encoder private options instead *) + scenechange_threshold: cint; {deprecated} + + (** @deprecated use encoder private options instead *) + noise_reduction: cint; {deprecated} +{$ENDIF} + + (** + * precision of the intra DC coefficient - 8 + * - encoding: Set by user. + * - decoding: Set by libavcodec + *) + intra_dc_precision: cint; + + (** + * Number of macroblock rows at the top which are skipped. + * - encoding: unused + * - decoding: Set by user. + *) + skip_top: cint; + + (** + * Number of macroblock rows at the bottom which are skipped. + * - encoding: unused + * - decoding: Set by user. + *) + skip_bottom: cint; + + (** + * minimum MB Lagrange multiplier + * - encoding: Set by user. + * - decoding: unused + *) + mb_lmin: cint; + + (** + * maximum MB Lagrange multiplier + * - encoding: Set by user. + * - decoding: unused + *) + mb_lmax: cint; + +{$IFDEF FF_API_PRIVATE_OPT} + (** + * @deprecated use encoder private options instead + *) + me_penalty_compensation: cint; {deprecated} +{$ENDIF} + + (** + * - encoding: Set by user. + * - decoding: unused + *) + bidir_refine: cint; + +{$IFDEF FF_API_PRIVATE_OPT} + (** @deprecated use encoder private options instead *) + brd_scale: cint; {deprecated} +{$ENDIF} + + (** + * minimum GOP size + * - encoding: Set by user. + * - decoding: unused + *) + keyint_min: cint; + + (** + * number of reference frames + * - encoding: Set by user. + * - decoding: Set by lavc. + *) + refs: cint; + +{$IFDEF FF_API_PRIVATE_OPT} + (** @deprecated use encoder private options instead *) + chromaoffset: cint; {deprecated} +{$ENDIF} + + (** + * Note: Value depends upon the compare function used for fullpel ME. + * - encoding: Set by user. + * - decoding: unused + *) + mv0_threshold: cint; + +{$IFDEF FF_API_PRIVATE_OPT} + (** @deprecated use encoder private options instead *) + b_sensitivity: cint; {deprecated} +{$ENDIF} + + (** + * Chromaticity coordinates of the source primaries. + * - encoding: Set by user + * - decoding: Set by libavcodec + *) + color_primaries: TAVColorPrimaries; + + (** + * Color Transfer Characteristic. + * - encoding: Set by user + * - decoding: Set by libavcodec + *) + color_trc: TAVColorTransferCharacteristic; + + (** + * YUV colorspace type. + * - encoding: Set by user + * - decoding: Set by libavcodec + *) + colorspace: TAVColorSpace; + + (** + * MPEG vs JPEG YUV range. + * - encoding: Set by user + * - decoding: Set by libavcodec + *) + color_range: TAVColorRange; + + (** + * This defines the location of chroma samples. + * - encoding: Set by user + * - decoding: Set by libavcodec + *) + chroma_sample_location: TAVChromaLocation; + + (** + * Number of slices. + * Indicates number of picture subdivisions. Used for parallelized + * decoding. + * - encoding: Set by user + * - decoding: unused + *) + slices: cint; + + (** Field order + * - encoding: set by libavcodec + * - decoding: Set by user. + *) + field_order: TAVFieldOrder; + + (* audio only *) + sample_rate: cint; ///< samples per second + channels: cint; ///< number of audio channels + + (** + * audio sample format + * - encoding: Set by user. + * - decoding: Set by libavcodec. + *) + sample_fmt: TAVSampleFormat; ///< sample format + + (* The following data should not be initialized. *) + (** + * Number of samples per channel in an audio frame. + * + * - encoding: set by libavcodec in avcodec_open2(). Each submitted frame + * except the last must contain exactly frame_size samples per channel. + * May be 0 when the codec has AV_CODEC_CAP_VARIABLE_FRAME_SIZE set, then the + * frame size is not restricted. + * - decoding: may be set by some decoders to indicate constant frame size + *) + frame_size: cint; + + (** + * Frame counter, set by libavcodec. + * + * - decoding: total number of frames returned from the decoder so far. + * - encoding: total number of frames passed to the encoder so far. + * + * @note the counter is not incremented if encoding/decoding resulted in + * an error. + *) + frame_number: cint; ///< audio or video frame number + + (** + * number of bytes per packet if constant and known or 0 + * Used by some WAV based audio codecs. + *) + block_align: cint; + + (** + * Audio cutoff bandwidth (0 means "automatic") + * - encoding: Set by user. + * - decoding: unused + *) + cutoff: cint; + + (** + * Audio channel layout. + * - encoding: set by user. + * - decoding: set by user, may be overwritten by libavcodec. + *) + channel_layout: cuint64; + + (** + * Request decoder to use this channel layout if it can (0 for default) + * - encoding: unused + * - decoding: Set by user. + *) + request_channel_layout: cuint64; + + (** + * Type of service that the audio stream conveys. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + *) + audio_service_type: TAVAudioServiceType; + + (** + * desired sample format + * - encoding: Not used. + * - decoding: Set by user. + * Decoder will decode to this format if it can. + *) + request_sample_fmt: TAVSampleFormat; + + (** + * This callback is called at the beginning of each frame to get data + * buffer(s) for it. There may be one contiguous buffer for all the data or + * there may be a buffer per each data plane or anything in between. What + * this means is, you may set however many entries in buf[] you feel necessary. + * Each buffer must be reference-counted using the AVBuffer API (see description + * of buf[] below). + * + * The following fields will be set in the frame before this callback is + * called: + * - format + * - width, height (video only) + * - sample_rate, channel_layout, nb_samples (audio only) + * Their values may differ from the corresponding values in + * AVCodecContext. This callback must use the frame values, not the codec + * context values, to calculate the required buffer size. + * + * This callback must fill the following fields in the frame: + * - data[] + * - linesize[] + * - extended_data: + * * if the data is planar audio with more than 8 channels, then this + * callback must allocate and fill extended_data to contain all pointers + * to all data planes. data[] must hold as many pointers as it can. + * extended_data must be allocated with av_malloc() and will be freed in + * av_frame_unref(). + * * otherwise extended_data must point to data + * - buf[] must contain one or more pointers to AVBufferRef structures. Each of + * the frame's data and extended_data pointers must be contained in these. That + * is, one AVBufferRef for each allocated chunk of memory, not necessarily one + * AVBufferRef per data[] entry. See: av_buffer_create(), av_buffer_alloc(), + * and av_buffer_ref(). + * - extended_buf and nb_extended_buf must be allocated with av_malloc() by + * this callback and filled with the extra buffers if there are more + * buffers than buf[] can hold. extended_buf will be freed in + * av_frame_unref(). + * + * If AV_CODEC_CAP_DR1 is not set then get_buffer2() must call + * avcodec_default_get_buffer2() instead of providing buffers allocated by + * some other means. + * + * Each data plane must be aligned to the maximum required by the target + * CPU. + * + * @see avcodec_default_get_buffer2() + * + * Video: + * + * If AV_GET_BUFFER_FLAG_REF is set in flags then the frame may be reused + * (read and/or written to if it is writable) later by libavcodec. + * + * avcodec_align_dimensions2() should be used to find the required width and + * height, as they normally need to be rounded up to the next multiple of 16. + * + * Some decoders do not support linesizes changing between frames. + * + * If frame multithreading is used and thread_safe_callbacks is set, + * this callback may be called from a different thread, but not from more + * than one at once. Does not need to be reentrant. + * + * @see avcodec_align_dimensions2() + * + * Audio: + * + * Decoders request a buffer of a particular size by setting + * AVFrame.nb_samples prior to calling get_buffer2(). The decoder may, + * however, utilize only part of the buffer by setting AVFrame.nb_samples + * to a smaller value in the output frame. + * + * As a convenience, av_samples_get_buffer_size() and + * av_samples_fill_arrays() in libavutil may be used by custom get_buffer2() + * functions to find the required data size and to fill data pointers and + * linesize. In AVFrame.linesize, only linesize[0] may be set for audio + * since all planes must be the same size. + * + * @see av_samples_get_buffer_size(), av_samples_fill_arrays() + * + * - encoding: unused + * - decoding: Set by libavcodec, user can override. + *) + get_buffer2: function (s: PAVCodecContext; frame: PAVFrame; flags: cint): cint; cdecl; + + (** + * If non-zero, the decoded audio and video frames returned from + * avcodec_decode_video2() and avcodec_decode_audio4() are reference-counted + * and are valid indefinitely. The caller must free them with + * av_frame_unref() when they are not needed anymore. + * Otherwise, the decoded frames must not be freed by the caller and are + * only valid until the next decode call. + * + * This is always automatically enabled if avcodec_receive_frame() is used. + * + * - encoding: unused + * - decoding: set by the caller before avcodec_open2(). + *) + {attribute_deprecated} + refcounted_frames: cint; + + (* - encoding parameters *) + qcompress: cfloat; ///< amount of qscale change between easy & hard scenes (0.0-1.0) + qblur: cfloat; ///< amount of qscale smoothing over time (0.0-1.0) + + (** + * minimum quantizer + * - encoding: Set by user. + * - decoding: unused + *) + qmin: cint; + + (** + * maximum quantizer + * - encoding: Set by user. + * - decoding: unused + *) + qmax: cint; + + (** + * maximum quantizer difference between frames + * - encoding: Set by user. + * - decoding: unused + *) + max_qdiff: cint; + + (** + * decoder bitstream buffer size + * - encoding: Set by user. + * - decoding: unused + *) + rc_buffer_size: cint; + (** + * ratecontrol override, see RcOverride + * - encoding: Allocated/set/freed by user. + * - decoding: unused + *) + rc_override_count: cint; + rc_override: PRcOverride; + + (** + * maximum bitrate + * - encoding: Set by user. + * - decoding: Set by user, may be overwritten by libavcodec. + *) + rc_max_rate: cint64; + + (** + * minimum bitrate + * - encoding: Set by user. + * - decoding: unused + *) + rc_min_rate: cint64; + + (** + * Ratecontrol attempt to use, at maximum, of what can be used without an underflow. + * - encoding: Set by user. + * - decoding: unused. + *) + rc_max_available_vbv_use: cfloat; + + (** + * Ratecontrol attempt to use, at least, times the amount needed to prevent a vbv overflow. + * - encoding: Set by user. + * - decoding: unused. + *) + rc_min_vbv_overflow_use: cfloat; + + (** + * Number of bits which should be loaded into the rc buffer before decoding starts. + * - encoding: Set by user. + * - decoding: unused + *) + rc_initial_buffer_occupancy: cint; + +{$IFDEF FF_API_CODER_TYPE} + (** + * @deprecated use encoder private options instead + *) + coder_type: cint; {deprecated} +{$ENDIF} + +{$IFDEF FF_API_PRIVATE_OPT} + (** @deprecated use encoder private options instead *) + context_model: cint; {deprecated} +{$ENDIF} + +{$IFDEF FF_API_PRIVATE_OPT} + (** @deprecated use encoder private options instead *) + frame_skip_threshold: cint; {deprecated} + + (** @deprecated use encoder private options instead *) + frame_skip_factor: cint; {deprecated} + + (** @deprecated use encoder private options instead *) + frame_skip_exp: cint; {deprecated} + + (** @deprecated use encoder private options instead *) + frame_skip_cmp: cint; {deprecated} +{$ENDIF} + + (** + * trellis RD quantization + * - encoding: Set by user. + * - decoding: unused + *) + trellis: cint; + +{$IFDEF FF_API_PRIVATE_OPT} + (** @deprecated use encoder private options instead *) + min_prediction_order: cint; {deprecated} + + (** @deprecated use encoder private options instead *) + max_prediction_order: cint; {deprecated} + + (** @deprecated use encoder private options instead *) + timecode_frame_start: cint64; {deprecated} +{$ENDIF} + +{$IFDEF FF_API_RTP_CALLBACK} + (** + * @deprecated unused + *) + (* The RTP callback: This function is called *) + (* every time the encoder has a packet to send *) + (* Depends on the encoder if the data starts *) + (* with a Start Code (it should) H.263 does. *) + (* mb_nb contains the number of macroblocks *) + (* encoded in the RTP payload *) + rtp_callback: procedure (avctx: PAVCodecContext; data: pointer; + size: cint; mb_nb: cint); cdecl; {deprecated} +{$ENDIF} + +{$IFDEF FF_API_PRIVATE_OPT} + rtp_payload_size: cint; {deprecated} (* The size of the RTP payload: the coder will *) + (* do it's best to deliver a chunk with size *) + (* below rtp_payload_size, the chunk will start *) + (* with a start code on some codecs like H.263 *) + (* This doesn't take account of any particular *) + (* headers inside the transmited RTP payload *) +{$ENDIF} + +{$IFDEF FF_API_STAT_BITS} + (* statistics, used for 2-pass encoding *) + mv_bits: cint; {deprecated} + header_bits: cint; {deprecated} + i_tex_bits: cint; {deprecated} + p_tex_bits: cint; {deprecated} + i_count: cint; {deprecated} + p_count: cint; {deprecated} + skip_count: cint; {deprecated} + misc_bits: cint; {deprecated} + + (** @deprecated this field is unused *) + frame_bits: cint; {deprecated} +{$ENDIF} + + (** + * pass1 encoding statistics output buffer + * - encoding: Set by libavcodec. + * - decoding: unused + *) + stats_out: PAnsiChar; + + (** + * pass2 encoding statistics input buffer + * Concatenated stuff from stats_out of pass1 should be placed here. + * - encoding: Allocated/set/freed by user. + * - decoding: unused + *) + stats_in: PAnsiChar; + + (** + * Work around bugs in encoders which sometimes cannot be detected automatically. + * - encoding: Set by user + * - decoding: Set by user + *) + workaround_bugs: cint; + + (** + * strictly follow the standard (MPEG-4, ...). + * - encoding: Set by user. + * - decoding: Set by user. + * Setting this to STRICT or higher means the encoder and decoder will + * generally do stupid things, whereas setting it to unofficial or lower + * will mean the encoder might produce output that is not supported by all + * spec-compliant decoders. Decoders don't differentiate between normal, + * unofficial and experimental (that is, they always try to decode things + * when they can) unless they are explicitly asked to behave stupidly + * (=strictly conform to the specs) + *) + strict_std_compliance: cint; + + (** + * error concealment flags + * - encoding: unused + * - decoding: Set by user. + *) + error_concealment: cint; + + (** + * debug + * Code outside libavcodec should access this field using AVOptions + * - encoding: Set by user. + * - decoding: Set by user. + *) + debug: cint; + +{$IFDEF FF_API_DEBUG_MV} + (** + * debug + * - encoding: Set by user. + * - decoding: Set by user. + *) + debug_mv: cint; +{$ENDIF} + + (** + * Error recognition; may misdetect some more or less valid parts as errors. + * - encoding: unused + * - decoding: Set by user. + *) + err_recognition: cint; + + (** + * opaque 64-bit number (generally a PTS) that will be reordered and + * output in AVFrame.reordered_opaque + * - encoding: unused + * - decoding: Set by user. + *) + reordered_opaque: cint64; + + (** + * Hardware accelerator in use + * - encoding: unused. + * - decoding: Set by libavcodec + *) + hwaccel: {const} PAVHWAccel; + + (** + * Hardware accelerator context. + * For some hardware accelerators, a global context needs to be + * provided by the user. In that case, this holds display-dependent + * data FFmpeg cannot instantiate itself. Please refer to the + * FFmpeg HW accelerator documentation to know how to fill this + * is. e.g. for VA API, this is a struct vaapi_context. + * - encoding: unused + * - decoding: Set by user + *) + hwaccel_context: pointer; + + (** + * error + * - encoding: Set by libavcodec if flags & AV_CODEC_FLAG_PSNR. + * - decoding: unused + *) + error: array [0..AV_NUM_DATA_POINTERS - 1] of cuint64; + + (** + * DCT algorithm, see FF_DCT_* below + * - encoding: Set by user. + * - decoding: unused + *) + dct_algo: cint; + + (** + * IDCT algorithm, see FF_IDCT_* below. + * - encoding: Set by user. + * - decoding: Set by user. + *) + idct_algo: cint; + + (** + * bits per sample/pixel from the demuxer (needed for huffyuv). + * - encoding: Set by libavcodec. + * - decoding: Set by user. + *) + bits_per_coded_sample: cint; + + (** + * Bits per sample/pixel of internal libavcodec pixel/sample format. + * - encoding: set by user. + * - decoding: set by libavcodec. + *) + bits_per_raw_sample: cint; + +{$IFDEF FF_API_LOWRES} + (** + * low resolution decoding, 1-> 1/2 size, 2->1/4 size + * - encoding: unused + * - decoding: Set by user. + *) + lowres: cint; +{$ENDIF} + +{$IFDEF FF_API_CODED_FRAME} + (** + * the picture in the bitstream + * - encoding: Set by libavcodec. + * - decoding: unused + * + * @deprecated use the quality factor packet side data instead + *) + {attribute_deprecated} + coded_frame: PAVFrame; +{$ENDIF} + + (** + * thread count + * is used to decide how many independent tasks should be passed to execute() + * - encoding: Set by user. + * - decoding: Set by user. + *) + thread_count: cint; + + (** + * Which multithreading methods to use. + * Use of FF_THREAD_FRAME will increase decoding delay by one frame per thread, + * so clients which cannot provide future frames should not use it. + * + * - encoding: Set by user, otherwise the default is used. + * - decoding: Set by user, otherwise the default is used. + *) + thread_type: cint; + + (** + * Which multithreading methods are in use by the codec. + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + *) + active_thread_type: cint; + + (** + * Set by the client if its custom get_buffer() callback can be called + * from another thread, which allows faster multithreaded decoding. + * draw_horiz_band() will be called from other threads regardless of this setting. + * Ignored if the default get_buffer() is used. + * - encoding: Set by user. + * - decoding: Set by user. + *) + thread_safe_callbacks: cint; + + (** + * The codec may call this to execute several independent things. + * It will return only after finishing all tasks. + * The user may replace this with some multithreaded implementation, + * the default implementation will execute the parts serially. + * @param count the number of things to execute + * - encoding: Set by libavcodec, user can override. + * - decoding: Set by libavcodec, user can override. + *) + execute: function (c: PAVCodecContext; func: TExecuteFunc; arg: Pointer; ret: PCint; count: cint; size: cint): cint; cdecl; + + (** + * The codec may call this to execute several independent things. + * It will return only after finishing all tasks. + * The user may replace this with some multithreaded implementation, + * the default implementation will execute the parts serially. + * Also see avcodec_thread_init and e.g. the --enable-pthread configure option. + * @param c context passed also to func + * @param count the number of things to execute + * @param arg2 argument passed unchanged to func + * @param ret return values of executed functions, must have space for "count" values. May be NULL. + * @param func function that will be called count times, with jobnr from 0 to count-1. + * threadnr will be in the range 0 to c->thread_count-1 < MAX_THREADS and so that no + * two instances of func executing at the same time will have the same threadnr. + * @return always 0 currently, but code should handle a future improvement where when any call to func + * returns < 0 no further calls to func may be done and < 0 is returned. + * - encoding: Set by libavcodec, user can override. + * - decoding: Set by libavcodec, user can override. + *) + execute2: function (c: PAVCodecContext; func: TExecute2Func; arg2: Pointer; ret: Pcint; count: cint): cint; cdecl; + + (** + * noise vs. sse weight for the nsse comparison function + * - encoding: Set by user. + * - decoding: unused + *) + nsse_weight: cint; + + (** + * profile + * - encoding: Set by user. + * - decoding: Set by libavcodec. + *) + profile: cint; + + (** + * level + * - encoding: Set by user. + * - decoding: Set by libavcodec. + *) + level: cint; + + (** + * Skip loop filtering for selected frames. + * - encoding: unused + * - decoding: Set by user. + *) + skip_loop_filter: TAVDiscard; + + (** + * Skip IDCT/dequantization for selected frames. + * - encoding: unused + * - decoding: Set by user. + *) + skip_idct: TAVDiscard; + + (** + * Skip decoding for selected frames. + * - encoding: unused + * - decoding: Set by user. + *) + skip_frame: TAVDiscard; + + (** + * Header containing style information for text subtitles. + * For SUBTITLE_ASS subtitle type, it should contain the whole ASS + * [Script Info] and [V4+ Styles] section, plus the [Events] line and + * the Format line following. It shouldn't include any Dialogue line. + * - encoding: Set/allocated/freed by user (before avcodec_open2()) + * - decoding: Set/allocated/freed by libavcodec (by avcodec_open2()) + *) + subtitle_header: Pcuint8; + subtitle_header_size: cint; + +{$IFDEF FF_API_VBV_DELAY} + (** + * VBV delay coded in the last frame (in periods of a 27 MHz clock). + * Used for compliant TS muxing. + * - encoding: Set by libavcodec. + * - decoding: unused. + * @deprecated this value is now exported as a part of + * AV_PKT_DATA_CPB_PROPERTIES packet side data + *) + vbv_delay: cuint64; {deprecated} +{$ENDIF} + +{$IFDEF FF_API_SIDEDATA_ONLY_PKT} + (** + * Encoding only and set by default. Allow encoders to output packets + * that do not contain any encoded data, only side data. + * + * Some encoders need to output such packets, e.g. to update some stream + * parameters at the end of encoding. + * + * @deprecated this field disables the default behaviour and + * it is kept only for compatibility. + *) + side_data_only_packets: cint; {deprecated} +{$ENDIF} + + (** + * Audio only. The number of "priming" samples (padding) inserted by the + * encoder at the beginning of the audio. I.e. this number of leading + * decoded samples must be discarded by the caller to get the original audio + * without leading padding. + * + * - decoding: unused + * - encoding: Set by libavcodec. The timestamps on the output packets are + * adjusted by the encoder so that they always refer to the + * first sample of the data actually contained in the packet, + * including any added padding. E.g. if the timebase is + * 1/samplerate and the timestamp of the first input sample is + * 0, the timestamp of the first output packet will be + * -initial_padding. + *) + initial_padding: cint; + + (** + * - decoding: For codecs that store a framerate value in the compressed + * bitstream, the decoder may export it here. { 0, 1} when + * unknown. + * - encoding: May be used to signal the framerate of CFR content to an + * encoder. + *) + framerate: TAVRational; + + (** + * Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx. + * - encoding: unused. + * - decoding: Set by libavcodec before calling get_format() + *) + sw_pix_fmt: TAVPixelFormat; + + (** + * Timebase in which pkt_dts/pts and AVPacket.dts/pts are. + * - encoding unused. + * - decoding set by user + *) + pkt_timebase: TAVRational; + + (** + * AVCodecDescriptor + * - encoding: unused. + * - decoding: set by libavcodec. + *) + codec_descriptor: PAVCodecDescriptor; + +{$IFNDEF FF_API_LOWRES} + (** + * low resolution decoding, 1-> 1/2 size, 2->1/4 size + * - encoding: unused + * - decoding: Set by user. + *) + lowres: cint; +{$ENDIF} + + (** + * Current statistics for PTS correction. + * - decoding: maintained and used by libavcodec, not intended to be used by user apps + * - encoding: unused + *) + pts_correction_num_faulty_pts: cint64; /// Number of incorrect PTS values so far + pts_correction_num_faulty_dts: cint64; /// Number of incorrect DTS values so far + pts_correction_last_pts: cint64; /// PTS of the last frame + pts_correction_last_dts: cint64; /// DTS of the last frame + + (** + * Character encoding of the input subtitles file. + * - decoding: set by user + * - encoding: unused + *) + sub_charenc: PAnsiChar; + + (** + * Subtitles character encoding mode. Formats or codecs might be adjusting + * this setting (if they are doing the conversion themselves for instance). + * - decoding: set by libavcodec + * - encoding: unused + *) + sub_charenc_mode: cint; + + (** + * Skip processing alpha if supported by codec. + * Note that if the format uses pre-multiplied alpha (common with VP6, + * and recommended due to better video quality/compression) + * the image will look as if alpha-blended onto a black background. + * However for formats that do not use pre-multiplied alpha + * there might be serious artefacts (though e.g. libswscale currently + * assumes pre-multiplied alpha anyway). + * + * - decoding: set by user + * - encoding: unused + *) + skip_alpha: cint; + + (** + * Number of samples to skip after a discontinuity + * - decoding: unused + * - encoding: set by libavcodec + *) + seek_preroll: cint; + +{$IFNDEF FF_API_DEBUG_MV} + (** + * debug motion vectors + * - encoding: Set by user. + * - decoding: Set by user. + *) + debug_mv: cint; +{$ENDIF} + + (** + * custom intra quantization matrix + * - encoding: Set by user, can be NULL. + * - decoding: unused. + *) + chroma_intra_matrix: PWord; + + (** + * dump format separator. + * can be ", " or "\n " or anything else + * - encoding: Set by user. + * - decoding: Set by user. + *) + dump_separator: Pcuint8; + + (** + * ',' separated list of allowed decoders. + * If NULL then all are allowed + * - encoding: unused + * - decoding: set by user + *) + codec_whitelist: PAnsiChar; + + (** + * Properties of the stream that gets decoded + * - encoding: unused + * - decoding: set by libavcodec + *) + properties: cuint; + + (** + * Additional data associated with the entire coded stream. + * + * - decoding: unused + * - encoding: may be set by libavcodec after avcodec_open2(). + *) + coded_side_data: PAVPacketSideData; + nb_coded_side_data: cint; + + (** + * A reference to the AVHWFramesContext describing the input (for encoding) + * or output (decoding) frames. The reference is set by the caller and + * afterwards owned (and freed) by libavcodec - it should never be read by + * the caller after being set. + * + * - decoding: This field should be set by the caller from the get_format() + * callback. The previous reference (if any) will always be + * unreffed by libavcodec before the get_format() call. + * + * If the default get_buffer2() is used with a hwaccel pixel + * format, then this AVHWFramesContext will be used for + * allocating the frame buffers. + * + * - encoding: For hardware encoders configured to use a hwaccel pixel + * format, this field should be set by the caller to a reference + * to the AVHWFramesContext describing input frames. + * AVHWFramesContext.format must be equal to + * AVCodecContext.pix_fmt. + * + * This field should be set before avcodec_open2() is called. + *) + hw_frames_ctx: PAVBufferRef; + + (** + * Control the form of AVSubtitle.rects[N]->ass + * - decoding: set by user + * - encoding: unused + *) + sub_text_format: cint; + + (** + * Audio only. The amount of padding (in samples) appended by the encoder to + * the end of the audio. I.e. this number of decoded samples must be + * discarded by the caller from the end of the stream to get the original + * audio without any trailing padding. + * + * - decoding: unused + * - encoding: unused + *) + trailing_padding: cint; + + (** + * The number of pixels per image to maximally accept. + * + * - decoding: set by user + * - encoding: set by user + *) + max_pixels: cint64; + + (** + * A reference to the AVHWDeviceContext describing the device which will + * be used by a hardware encoder/decoder. The reference is set by the + * caller and afterwards owned (and freed) by libavcodec. + * + * This should be used if either the codec device does not require + * hardware frames or any that are used are to be allocated internally by + * libavcodec. If the user wishes to supply any of the frames used as + * encoder input or decoder output then hw_frames_ctx should be used + * instead. When hw_frames_ctx is set in get_format() for a decoder, this + * field will be ignored while decoding the associated stream segment, but + * may again be used on a following one after another get_format() call. + * + * For both encoders and decoders this field should be set before + * avcodec_open2() is called and must not be written to thereafter. + * + * Note that some decoders may require this field to be set initially in + * order to support hw_frames_ctx at all - in that case, all frames + * contexts used must be created on the same device. + *) + hw_device_ctx: PAVBufferRef; + + (** + * Bit set of AV_HWACCEL_FLAG_* flags, which affect hardware accelerated + * decoding (if active). + * - encoding: unused + * - decoding: Set by user (either before avcodec_open2(), or in the + * AVCodecContext.get_format callback) + *) + hwaccel_flags: cint; + + (** + * Video decoding only. Certain video codecs support cropping, meaning that + * only a sub-rectangle of the decoded frame is intended for display. This + * option controls how cropping is handled by libavcodec. + * + * When set to 1 (the default), libavcodec will apply cropping internally. + * I.e. it will modify the output frame width/height fields and offset the + * data pointers (only by as much as possible while preserving alignment, or + * by the full amount if the AV_CODEC_FLAG_UNALIGNED flag is set) so that + * the frames output by the decoder refer only to the cropped area. The + * crop_* fields of the output frames will be zero. + * + * When set to 0, the width/height fields of the output frames will be set + * to the coded dimensions and the crop_* fields will describe the cropping + * rectangle. Applying the cropping is left to the caller. + * + * @warning When hardware acceleration with opaque output frames is used, + * libavcodec is unable to apply cropping from the top/left border. + * + * @note when this option is set to zero, the width/height fields of the + * AVCodecContext and output AVFrames have different meanings. The codec + * context fields store display dimensions (with the coded dimensions in + * coded_width/height), while the frame fields store the coded dimensions + * (with the display dimensions being determined by the crop_* fields). + *) + apply_cropping: cint; + + (* + * Video decoding only. Sets the number of extra hardware frames which + * the decoder will allocate for use by the caller. This must be set + * before avcodec_open2() is called. + * + * Some hardware decoders require all frames that they will use for + * output to be defined in advance before decoding starts. For such + * decoders, the hardware frame pool must therefore be of a fixed size. + * The extra frames set here are on top of any number that the decoder + * needs internally in order to operate normally (for example, frames + * used as reference pictures). + *) + extra_hw_frames: cint; + end; {TAVCodecContext} + + TAVSubtitleType = ( + SUBTITLE_NONE, + + SUBTITLE_BITMAP, ///< A bitmap, pict will be set + + (** + * Plain text, the text field must be set by the decoder and is + * authoritative. ass and pict fields may contain approximations. + *) + SUBTITLE_TEXT, + + (** + * Formatted text, the ass field must be set by the decoder and is + * authoritative. pict and text fields may contain approximations. + *) + SUBTITLE_ASS + ); {TAVSubtitleType} + +{$IFDEF FF_API_AVPICTURE} + (** + * @defgroup lavc_picture AVPicture + * + * Functions for working with AVPicture + * @{ + *) + + (** + * Picture data structure. + * + * Up to four components can be stored into it, the last component is + * alpha. + * @deprecated use AVFrame or imgutils functions instead + *) + PAVPicture = ^TAVPicture; + TAVPicture = record + data: array [0..AV_NUM_DATA_POINTERS - 1] of PByteArray; {deprecated} + linesize: array [0..AV_NUM_DATA_POINTERS - 1] of cint; {deprecated} ///< number of bytes per line + end; {TAVPicture} +{$ENDIF} + + PPAVSubtitleRect = ^PAVSubtitleRect; + PAVSubtitleRect = ^TAVSubtitleRect; + TAVSubtitleRect = record + x: cint; ///< top left corner of pict, undefined when pict is not set + y: cint; ///< top left corner of pict, undefined when pict is not set + w: cint; ///< width of pict, undefined when pict is not set + h: cint; ///< height of pict, undefined when pict is not set + nb_colors: cint; ///< number of colors in pict, undefined when pict is not set + +{$IFDEF FF_API_AVPICTURE} + (** + * @deprecated unused + *) + pict: TAVPicture; {deprecated} +{$ENDIF} + (** + * data+linesize for the bitmap of this subtitle. + * Can be set for text/ass as well once they are rendered. + *) + data: Array [0..4] of PByte; + linesize: Array [0..4] of cint; + + type_: TAVSubtitleType; + + text: PAnsiChar; ///< 0 terminated plain UTF-8 text + + (** + * 0 terminated ASS/SSA compatible event line. + * The presentation of this is unaffected by the other values in this + * struct. + *) + ass: PAnsiChar; + + flags: cint; + end; {TAVSubtitleRect} + + PPAVSubtitle = ^PAVSubtitle; + PAVSubtitle = ^TAVSubtitle; + TAVSubtitle = record + format: cuint16; (* 0 = graphics *) + start_display_time: cuint32; (* relative to packet pts, in ms *) + end_display_time: cuint32; (* relative to packet pts, in ms *) + num_rects: cuint; + rects: PPAVSubtitleRect; + pts: cint64; ///< Same as packet pts, in AV_TIME_BASE + end; {TAVSubtitle} + + (** + * This struct describes the properties of an encoded stream. + * + * sizeof(AVCodecParameters) is not a part of the public ABI, this struct must + * be allocated with avcodec_parameters_alloc() and freed with + * avcodec_parameters_free(). + *) + PPAVCodecParameters = ^PAVCodecParameters; + PAVCodecParameters = ^TAVCodecParameters; + TAVCodecParameters = record + (** + * General type of the encoded data. + *) + codec_type: TAVMediaType; + (** + * Specific type of the encoded data (the codec used). + *) + codec_id: TAVCodecID; + (** + * Additional information about the codec (corresponds to the AVI FOURCC). + *) + codec_tag: cuint32; + + (** + * Extra binary data needed for initializing the decoder, codec-dependent. + * + * Must be allocated with av_malloc() and will be freed by + * avcodec_parameters_free(). The allocated size of extradata must be at + * least extradata_size + AV_INPUT_BUFFER_PADDING_SIZE, with the padding + * bytes zeroed. + *) + extradata: Pcuint8; + (** + * Size of the extradata content in bytes. + *) + extradata_size: cint; + + (** + * - video: the pixel format, the value corresponds to enum AVPixelFormat. + * - audio: the sample format, the value corresponds to enum AVSampleFormat. + *) + format: cint; + + (** + * The average bitrate of the encoded data (in bits per second). + *) + bit_rate: cint64; + + (** + * The number of bits per sample in the codedwords. + * + * This is basically the bitrate per sample. It is mandatory for a bunch of + * formats to actually decode them. It's the number of bits for one sample in + * the actual coded bitstream. + * + * This could be for example 4 for ADPCM + * For PCM formats this matches bits_per_raw_sample + * Can be 0 + *) + bits_per_coded_sample: cint; + + (** + * This is the number of valid bits in each output sample. If the + * sample format has more bits, the least significant bits are additional + * padding bits, which are always 0. Use right shifts to reduce the sample + * to its actual size. For example, audio formats with 24 bit samples will + * have bits_per_raw_sample set to 24, and format set to AV_SAMPLE_FMT_S32. + * To get the original sample use "(int32_t)sample >> 8"." + * + * For ADPCM this might be 12 or 16 or similar + * Can be 0 + *) + bits_per_raw_sample: cint; + + (** + * Codec-specific bitstream restrictions that the stream conforms to. + *) + profile: cint; + level: cint; + + (** + * Video only. The dimensions of the video frame in pixels. + *) + width: cint; + height: cint; + + (** + * Video only. The aspect ratio (width / height) which a single pixel + * should have when displayed. + * + * When the aspect ratio is unknown / undefined, the numerator should be + * set to 0 (the denominator may have any value). + *) + sample_aspect_ratio: TAVRational; + + (** + * Video only. The order of the fields in interlaced video. + *) + field_order: TAVFieldOrder; + + (** + * Video only. Additional colorspace characteristics. + *) + color_range: TAVColorRange; + color_primaries: TAVColorPrimaries; + color_trc: TAVColorTransferCharacteristic; + color_space: TAVColorSpace; + chroma_location: TAVChromaLocation; + + (** + * Video only. Number of delayed frames. + *) + video_delay: cint; + + (** + * Audio only. The channel layout bitmask. May be 0 if the channel layout is + * unknown or unspecified, otherwise the number of bits set must be equal to + * the channels field. + *) + channel_layout: cuint64; + (** + * Audio only. The number of audio channels. + *) + channels: cint; + (** + * Audio only. The number of audio samples per second. + *) + sample_rate: cint; + (** + * Audio only. The number of bytes per coded audio frame, required by some + * formats. + * + * Corresponds to nBlockAlign in WAVEFORMATEX. + *) + block_align: cint; + (** + * Audio only. Audio frame size, if known. Required by some formats to be static. + *) + frame_size: cint; + + (** + * Audio only. The amount of padding (in samples) inserted by the encoder at + * the beginning of the audio. I.e. this number of leading decoded samples + * must be discarded by the caller to get the original audio without leading + * padding. + *) + initial_padding: cint; + (** + * Audio only. The amount of padding (in samples) appended by the encoder to + * the end of the audio. I.e. this number of decoded samples must be + * discarded by the caller from the end of the stream to get the original + * audio without any trailing padding. + *) + trailing_padding: cint; + (** + * Audio only. Number of samples to skip after a discontinuity. + *) + seek_preroll: cint; + end; {TAVCodecParameters} + +(** + * AVCodec. + *) + TAVCodec = record + (** + * Name of the codec implementation. + * The name is globally unique among encoders and among decoders (but an + * encoder and a decoder can share the same name). + * This is the primary way to find a codec from the user perspective. + *) + name: PAnsiChar; + (** + * Descriptive name for the codec, meant to be more human readable than name. + * You should use the NULL_IF_CONFIG_SMALL() macro to define it. + *) + long_name: {const} PAnsiChar; + type_: TAVMediaType; + id: TAVCodecID; + (** + * Codec capabilities. + * see AV_CODEC_CAP_* + *) + capabilities: cint; + supported_framerates: {const} PAVRational; ///< array of supported framerates, or NULL if any, array is terminated by {0,0} + pix_fmts: {const} PAVPixelFormat; ///< array of supported pixel formats, or NULL if unknown, array is terminated by -1 + supported_samplerates: {const} PCint; ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0 + sample_fmts: {const} PAVSampleFormatArray; ///< array of supported sample formats, or NULL if unknown, array is terminated by -1 + channel_layouts: {const} PCuint64; ///< array of support channel layouts, or NULL if unknown. array is terminated by 0 + max_lowres: byte; ///< maximum value for lowres supported by the decoder + priv_class: {const} PAVClass; ///< AVClass for the private context + profiles: {const} PAVProfile; ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN} + + (** + * Group name of the codec implementation. + * This is a short symbolic name of the wrapper backing this codec. A + * wrapper uses some kind of external implementation for the codec, such + * as an external library, or a codec implementation provided by the OS or + * the hardware. + * If this field is NULL, this is a builtin, libavcodec native codec. + * If non-NULL, this will be the suffix in AVCodec.name in most cases + * (usually AVCodec.name will be of the form "_"). + *) + wrapper_name: PAnsiChar {const}; + + (***************************************************************** + * No fields below this line are part of the public API. They + * may not be used outside of libavcodec and can be changed and + * removed at will. + * New public fields should be added right above. + ***************************************************************** + *) + priv_data_size: cint; + next: PAVCodec; + (** + * @name Frame-level threading support functions + * @{ + *) + (** + * If defined, called on thread contexts when they are created. + * If the codec allocates writable tables in init(), re-allocate them here. + * priv_data will be set to a copy of the original. + *) + init_thread_copy: function (avctx: PAVCodecContext): Pcint; cdecl; + (** + * Copy necessary context variables from a previous thread context to the current one. + * If not defined, the next thread will start automatically; otherwise, the codec + * must call ff_thread_finish_setup(). + * + * dst and src will (rarely) point to the same context, in which case memcpy should be skipped. + *) + update_thread_context: function (dst: PAVCodecContext; src: {const} PAVCodecContext): cint; cdecl; + (** @} *) + + (** + * Private codec-specific defaults. + *) + defaults: {const} pointer; + + (** + * Initialize codec static data, called from avcodec_register(). + * + * This is not intended for time consuming operations as it is + * run for every codec regardless of that codec being used. + *) + init_static_data: procedure (codec: PAVCodec); cdecl; + + init: function (avctx: PAVCodecContext): cint; cdecl; + encode_sub: function (avctx: PAVCodecContext; buf: PByteArray; buf_size: cint; + sub: {const} PAVSubtitle): cint; cdecl; + (** + * Encode data to an AVPacket. + * + * @param avctx codec context + * @param avpkt output AVPacket (may contain a user-provided buffer) + * @param[in] frame AVFrame containing the raw data to be encoded + * @param[out] got_packet_ptr encoder sets to 0 or 1 to indicate that a + * non-empty packet was returned in avpkt. + * @return 0 on success, negative error code on failure + *) + encode2: function (avctx: PAVCodecContext; avpkt: PAVPacket; frame: {const} PAVFrame; + got_packet_ptr: Pcint): cint; cdecl; + decode: function (avctx: PAVCodecContext; outdata: pointer; var outdata_size: cint; avpkt: PAVPacket): cint; cdecl; + close: function (avctx: PAVCodecContext): cint; cdecl; + (** + * Encode API with decoupled packet/frame dataflow. The API is the + * same as the avcodec_ prefixed APIs (avcodec_send_frame() etc.), except + * that: + * - never called if the codec is closed or the wrong type, + * - if AV_CODEC_CAP_DELAY is not set, drain frames are never sent, + * - only one drain frame is ever passed down, + *) + send_frame: function(avctx: PAVCodecContext; frame: {const} PAVFrame): cint; cdecl; + receive_packet: function(avctx: PAVCodecContext; avpkt: PAVPacket): cint; cdecl; + + (** + * Decode API with decoupled packet/frame dataflow. This function is called + * to get one output frame. It should call ff_decode_get_packet() to obtain + * input data. + *) + receive_frame: function(avctx: PAVCodecContext; frame: PAVFrame): cint; cdecl; + (** + * Flush buffers. + * Will be called when seeking + *) + flush: procedure (avctx: PAVCodecContext); cdecl; + (** + * Internal codec capabilities. + * See FF_CODEC_CAP_* in internal.h + *) + caps_internal: cint; + + (** + * Decoding only, a comma-separated list of bitstream filters to apply to + * packets before decoding. + *) + bsfs: {const} PAnsiChar; + + (** + * Array of pointers to hardware configurations supported by the codec, + * or NULL if no hardware supported. The array is terminated by a NULL + * pointer. + * + * The user can only access this field via avcodec_get_hw_config(). + *) + //const struct AVCodecHWConfigInternal **hw_configs; + hw_configs: Ppointer {const}; + end; {TAVCodec} + +(** + * Retrieve supported hardware configurations for a codec. + * + * Values of index from zero to some maximum return the indexed configuration + * descriptor; all other values return NULL. If the codec does not support + * any hardware configurations then it will always return NULL. + *) + function avcodec_get_hw_config(codec: PAVCodec {const}; index: cint): PAVCodecHWConfig; + cdecl; external av__codec; deprecated; {const} + +const + (** + * HWAccel is experimental and is thus avoided in favor of non experimental + * codecs + *) + AV_HWACCEL_CODEC_CAP_EXPERIMENTAL = $0200; + + (** + * Hardware acceleration should be used for decoding even if the codec level + * used is unknown or higher than the maximum supported level reported by the + * hardware driver. + * + * It's generally a good idea to pass this flag unless you have a specific + * reason not to, as hardware tends to under-report supported levels. + *) + AV_HWACCEL_FLAG_IGNORE_LEVEL = (1 << 0); + + (** + * Hardware acceleration can output YUV pixel formats with a different chroma + * sampling than 4:2:0 and/or other than 8 bits per component. + *) + AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH = (1 << 1); + + (** + * Hardware acceleration should still be attempted for decoding when the + * codec profile does not match the reported capabilities of the hardware. + * + * For example, this can be used to try to decode baseline profile H.264 + * streams in hardware - it will often succeed, because many streams marked + * as baseline profile actually conform to constrained baseline profile. + * + * @warning If the stream is actually not supported then the behaviour is + * undefined, and may include returning entirely incorrect output + * while indicating success. + *) + AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH = (1 << 2); + + FF_SUB_CHARENC_MODE_DO_NOTHING = -1; ///< do nothing (demuxer outputs a stream supposed to be already in UTF-8, or the codec is bitmap for instance) + FF_SUB_CHARENC_MODE_AUTOMATIC = 0; ///< libavcodec will select the mode itself + FF_SUB_CHARENC_MODE_PRE_DECODER = 1; ///< the AVPacket data needs to be recoded to UTF-8 before being fed to the decoder, requires iconv + FF_SUB_CHARENC_MODE_IGNORE = 2; ///< neither convert the subtitles, nor check them for valid UTF-8 + + FF_CODEC_PROPERTY_LOSSLESS = $00000001; + FF_CODEC_PROPERTY_CLOSED_CAPTIONS = $00000002; + FF_SUB_TEXT_FMT_ASS = 0; +{$IFDEF FF_API_ASS_TIMING} + FF_SUB_TEXT_FMT_ASS_WITH_TIMINGS = 1; +{$ENDIF} + +{$IFDEF FF_API_CODEC_GET_SET} + (** + * Accessors for some AVCodecContext fields. These used to be provided for ABI + * compatibility, and do not need to be used anymore. + *) + function av_codec_get_pkt_timebase(avctx: {const} PAVCodecContext): TAVRational; + cdecl; external av__codec; deprecated; + procedure av_codec_set_pkt_timebase(avctx: {const} PAVCodecContext; val: TAVRational); + cdecl; external av__codec; deprecated; + + function av_codec_get_codec_descriptor(avctx: {const} PAVCodecContext): PAVCodecDescriptor; + cdecl; external av__codec; deprecated; + procedure av_codec_set_codec_descriptor(avctx: {const} PAVCodecContext; desc: {const} PAVCodecDescriptor); + cdecl; external av__codec; deprecated; + + function av_codec_get_codec_properties(avctx: {const} PAVCodecContext): cuint; + cdecl; external av__codec; deprecated; + +{$IFDEF FF_API_LOWRES} + function av_codec_get_lowres(avctx: {const} PAVCodecContext): cint; + cdecl; external av__codec; deprecated; + procedure av_codec_set_lowres(avctx: PAVCodecContext; val: cint); + cdecl; external av__codec; deprecated; +{$ENDIF} {FF_API_LOWRES} + + function av_codec_get_seek_preroll(avctx: {const} PAVCodecContext): cint; + cdecl; external av__codec; deprecated; + procedure av_codec_set_seek_preroll(avctx: PAVCodecContext; val: cint); + cdecl; external av__codec; deprecated; + +{$IFDEF FF_API_CODEC_GET_SET} + function av_codec_get_max_lowres(codec: {const} PAVCodec): cint; + cdecl; external av__codec; deprecated; +{$ENDIF} {FF_API_CODEC_GET_SET} + + function av_codec_get_chroma_intra_matrix(avctx: {const} PAVCodecContext): PWord; + cdecl; external av__codec; deprecated; + procedure av_codec_set_chroma_intra_matrix(avctx: PAVCodecContext; val: PWord); + cdecl; external av__codec; deprecated; +{$ENDIF} {FF_API_CODEC_GET_SET} + +(** + * @ + *) + +const + AV_SUBTITLE_FLAG_FORCED = $00000001; + +(** + * Iterate over all registered codecs. + * + * @param opaque a pointer where libavcodec will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the next registered codec or NULL when the iteration is + * finished + *) +function av_codec_iterate(opaque: pointer): PAVCodec; + cdecl; external av__codec; + +{$IFDEF FF_API_NEXT} +(** + * If c is NULL, returns the first registered codec, + * if c is non-NULL, returns the next registered codec after c, + * or NULL if c is the last one. + *) +function av_codec_next(c: {const} PAVCodec): PAVCodec; + cdecl; external av__codec; deprecated; +{$ENDIF} + +(** + * Return the LIBAVCODEC_VERSION_INT constant. + *) +function avcodec_version(): cuint; + cdecl; external av__codec; + +(** + * Return the libavcodec build-time configuration. + *) +function avcodec_configuration(): PAnsiChar; + cdecl; external av__codec; + +(** + * Return the libavcodec license. + *) +function avcodec_license(): PAnsiChar; + cdecl; external av__codec; + +{$IFDEF FF_API_NEXT} +(** + * Register the codec codec and initialize libavcodec. + * + * @warning either this function or avcodec_register_all() must be called + * before any other libavcodec functions. + * + * @see avcodec_register_all() + *) +procedure avcodec_register(codec: PAVCodec); + cdecl; external av__codec; deprecated; + +(** + * Register all the codecs, parsers and bitstream filters which were enabled at + * configuration time. If you do not call this function you can select exactly + * which formats you want to support, by using the individual registration + * functions. + * + * @see register_avcodec + * @see avcodec_register + * @see av_register_codec_parser + * @see av_register_bitstream_filter + *) +procedure avcodec_register_all(); + cdecl; external av__codec; deprecated; +{$ENDIF} + +(** + * Allocate an AVCodecContext and set its fields to default values. The + * resulting struct should be freed with avcodec_free_context(). + * + * @param codec if non-NULL, allocate private data and initialize defaults + * for the given codec. It is illegal to then call avcodec_open2() + * with a different codec. + * + * @return An AVCodecContext filled with default values or NULL on failure. + *) +function avcodec_alloc_context3(codec: {const} PAVCodec): PAVCodecContext; + cdecl; external av__codec; + +(** + * Free the codec context and everything associated with it and write NULL to + * the provided pointer. + *) +procedure avcodec_free_context(var avctx: PAVCodecContext); + cdecl; external av__codec; + +{$IFDEF FF_API_GET_CONTEXT_DEFAULTS} +(** + * @deprecated This function should not be used, as closing and opening a codec + * context multiple time is not supported. A new codec context should be + * allocated for each new use. + *) +procedure avcodec_get_context_defaults3(s: PAVCodecContext; codec: {const} PAVCodec); + cdecl; external av__codec; deprecated; +{$ENDIF} + +(** + * Get the AVClass for AVCodecContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + *) +function avcodec_get_class(): {const} PAVClass; + cdecl; external av__codec; + +{$IFDEF FF_API_COPY_CONTEXT} +(** + * Get the AVClass for AVFrame. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + *) +function avcodec_get_frame_class(): {const} PAVClass; + cdecl; external av__codec; + +(** + * Get the AVClass for AVSubtitleRect. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + *) +function avcodec_get_subtitle_rect_class(): {const} PAVClass; + cdecl; external av__codec; + +(** + * Copy the settings of the source AVCodecContext into the destination + * AVCodecContext. The resulting destination codec context will be + * unopened, i.e. you are required to call avcodec_open2() before you + * can use this AVCodecContext to decode/encode video/audio data. + * + * @param dest target codec context, should be initialized with + * avcodec_alloc_context3(), but otherwise uninitialized + * @param src source codec context + * @return AVERROR() on error (e.g. memory allocation error), 0 on success + * + * @deprecated The semantics of this function are ill-defined and it should not + * be used. If you need to transfer the stream parameters from one codec context + * to another, use an intermediate AVCodecParameters instance and the + * avcodec_parameters_from_context() / avcodec_parameters_to_context() + * functions. + *) +function avcodec_copy_context(dest: PAVCodecContext; src: {const} PAVCodecContext): cint; + cdecl; external av__codec; deprecated; +{$ENDIF} + +(** + * Allocate a new AVCodecParameters and set its fields to default values + * (unknown/invalid/0). The returned struct must be freed with + * avcodec_parameters_free(). + *) +function avcodec_parameters_alloc(): PAVCodecParameters; + cdecl; external av__codec; + +(** + * Free an AVCodecParameters instance and everything associated with it and + * write NULL to the supplied pointer. + *) +procedure avcodec_parameters_free(par: PPAVCodecParameters); + cdecl; external av__codec; + +(** + * Copy the contents of src to dst. Any allocated fields in dst are freed and + * replaced with newly allocated duplicates of the corresponding fields in src. + * + * @return >= 0 on success, a negative AVERROR code on failure. + *) +function avcodec_parameters_copy(dst: PAVCodecParameters; src: {const} PAVCodecParameters): cint; + cdecl; external av__codec; + +(** + * Fill the parameters struct based on the values from the supplied codec + * context. Any allocated fields in par are freed and replaced with duplicates + * of the corresponding fields in codec. + * + * @return >= 0 on success, a negative AVERROR code on failure + *) +function avcodec_parameters_from_context(par: PAVCodecParameters; + codec: {const} PAVCodecContext): cint; + cdecl; external av__codec; + +(** + * Fill the codec context based on the values from the supplied codec + * parameters. Any allocated fields in codec that have a corresponding field in + * par are freed and replaced with duplicates of the corresponding field in par. + * Fields in codec that do not have a counterpart in par are not touched. + * + * @return >= 0 on success, a negative AVERROR code on failure. + *) +function avcodec_parameters_to_context(codec: PAVCodecContext; + par: {const} PAVCodecParameters): cint; + cdecl; external av__codec; + +(** + * Initialize the AVCodecContext to use the given AVCodec. Prior to using this + * function the context has to be allocated with avcodec_alloc_context3(). + * + * The functions avcodec_find_decoder_by_name(), avcodec_find_encoder_by_name(), + * avcodec_find_decoder() and avcodec_find_encoder() provide an easy way for + * retrieving a codec. + * + * @warning This function is not thread safe! + * + * @note Always call this function before using decoding routines (such as + * @ref avcodec_receive_frame()). + * + * @code + * avcodec_register_all(); + * av_dict_set(&opts, "b", "2.5M", 0); + * codec = avcodec_find_decoder(AV_CODEC_ID_H264); + * if (!codec) + * exit(1); + * + * context = avcodec_alloc_context3(codec); + * + * if (avcodec_open2(context, codec, opts) < 0) + * exit(1); + * @endcode + * + * @param avctx The context to initialize. + * @param codec The codec to open this context for. If a non-NULL codec has been + * previously passed to avcodec_alloc_context3() or + * for this context, then this parameter MUST be either NULL or + * equal to the previously passed codec. + * @param options A dictionary filled with AVCodecContext and codec-private options. + * On return this object will be filled with options that were not found. + * + * @return zero on success, a negative value on error + * @see avcodec_alloc_context3(), avcodec_find_decoder(), avcodec_find_encoder(), + * av_dict_set(), av_opt_find(). + *) +function avcodec_open2(avctx: PAVCodecContext; codec: {const} PAVCodec; options: PPAVDictionary): cint; + cdecl; external av__codec; + +(** + * Close a given AVCodecContext and free all the data associated with it + * (but not the AVCodecContext itself). + * + * Calling this function on an AVCodecContext that hasn't been opened will free + * the codec-specific data allocated in avcodec_alloc_context3() with a non-NULL + * codec. Subsequent calls will do nothing. + * + * @note Do not use this function. Use avcodec_free_context() to destroy a + * codec context (either open or closed). Opening and closing a codec context + * multiple times is not supported anymore -- use multiple codec contexts + * instead. + *) +function avcodec_close(avctx: PAVCodecContext): cint; + cdecl; external av__codec; + +(** + * Free all allocated data in the given subtitle struct. + * + * @param sub AVSubtitle to free. + *) +procedure avsubtitle_free(sub: PAVSubtitle); + cdecl; external av__codec; + +(** + * @} + *) + +(** + * @addtogroup lavc_packet + * @{ + *) + +(** + * Allocate an AVPacket and set its fields to default values. The resulting + * struct must be freed using av_packet_free(). + * + * @return An AVPacket filled with default values or NULL on failure. + * + * @note this only allocates the AVPacket itself, not the data buffers. Those + * must be allocated through other means such as av_new_packet. + * + * @see av_new_packet + *) +function av_packet_alloc(): PAVPacket; + cdecl; external av__codec; + +(** + * Create a new packet that references the same data as src. + * + * This is a shortcut for av_packet_alloc()+av_packet_ref(). + * + * @return newly created AVPacket on success, NULL on error. + * + * @see av_packet_alloc + * @see av_packet_ref + *) +function av_packet_clone(src: {const} PAVPacket): PAVPacket; + cdecl; external av__codec; + +(** + * Free the packet, if the packet is reference counted, it will be + * unreferenced first. + * + * @param pkt packet to be freed. The pointer will be set to NULL. + * @note passing NULL is a no-op. + *) +procedure av_packet_free(pkt: PPAVPacket); + cdecl; external av__codec; + +(* + * Initialize optional fields of a packet with default values. + * + * Note, this does not touch the data and size members, which have to be + * initialized separately. + * + * @param pkt packet + *) +procedure av_init_packet(var pkt: TAVPacket); + cdecl; external av__codec; + +(* + * Allocate the payload of a packet and initialize its fields with + * default values. + * + * @param pkt packet + * @param size wanted payload size + * @return 0 if OK, AVERROR_xxx otherwise + *) +function av_new_packet(pkt: PAVPacket; size: cint): cint; + cdecl; external av__codec; + +(* + * Reduce packet size, correctly zeroing padding + * + * @param pkt packet + * @param size new size + *) +procedure av_shrink_packet(pkt: PAVPacket; size: cint); + cdecl; external av__codec; + +(** + * Increase packet size, correctly zeroing padding + * + * @param pkt packet + * @param grow_by number of bytes by which to increase the size of the packet + *) +function av_grow_packet(pkt: PAVPacket; grow_by: cint): cint; + cdecl; external av__codec; + +(** + * Initialize a reference-counted packet from av_malloc()ed data. + * + * @param pkt packet to be initialized. This function will set the data, size, + * buf and destruct fields, all others are left untouched. + * @param data Data allocated by av_malloc() to be used as packet data. If this + * function returns successfully, the data is owned by the underlying AVBuffer. + * The caller may not access the data through other means. + * @param size size of data in bytes, without the padding. I.e. the full buffer + * size is assumed to be size + AV_INPUT_BUFFER_PADDING_SIZE. + * + * @return 0 on success, a negative AVERROR on error + *) +function av_packet_from_data(pkt: PAVPacket; data: PByte; size: cint): cint; + cdecl; external av__codec; + +{$IFDEF FF_API_AVPACKET_OLD_API} +(* + * @warning This is a hack - the packet memory allocation stuff is broken. The + * packet is allocated if it was not really allocated. + * + * @deprecated Use av_packet_ref or av_packet_make_refcounted + *) +function av_dup_packet(pkt: PAVPacket): cint; + cdecl; external av__codec; deprecated; +{$ENDIF} + +(** + * Copy packet, including contents + * + * @return 0 on success, negative AVERROR on fail + * + * @deprecated Use av_packet_ref + *) +function av_copy_packet(dst: PAVPacket; src: {const} PAVPacket): cint; + cdecl; external av__codec; deprecated; + +(** + * Copy packet side data + * + * @return 0 on success, negative AVERROR on fail + * + * @deprecated Use av_packet_copy_props + *) +function av_copy_packet_side_data(dst: PAVPacket; src: {const} PAVPacket): cint; + cdecl; external av__codec; deprecated; + +(* + * Free a packet. + * + * @deprecated Use av_packet_unref + * + * @param pkt packet to free + *) +procedure av_free_packet(pkt: PAVPacket); + cdecl; external av__codec; deprecated; + +(** + * Allocate new information of a packet. + * + * @param pkt packet + * @param type side information type + * @param size side information size + * @return pointer to fresh allocated data or NULL otherwise + *) +function av_packet_new_side_data(pkt: PAVPacket; type_: TAVPacketSideDataType; + size: cint): PByte; + cdecl; external av__codec; + +(** + * Wrap an existing array as a packet side data. + * + * @param pkt packet + * @param type side information type + * @param data the side data array. It must be allocated with the av_malloc() + * family of functions. The ownership of the data is transferred to + * pkt. + * @param size side information size + * @return a non-negative number on success, a negative AVERROR code on + * failure. On failure, the packet is unchanged and the data remains + * owned by the caller. + *) +function av_packet_add_side_data(pkt: PAVPacket; type_: TAVPacketSideDataType; + data: Pcuint8; size: size_t): cint; + cdecl; external av__codec; + +(** + * Shrink the already allocated side data buffer + * + * @param pkt packet + * @param type side information type + * @param size new side information size + * @return 0 on success, < 0 on failure + *) +function av_packet_shrink_side_data(pkt: PAVPacket; type_: TAVPacketSideDataType; + size: cint): cint; + cdecl; external av__codec; + +(** + * Get side information from packet. + * + * @param pkt packet + * @param type desired side information type + * @param size pointer for side information size to store (optional) + * @return pointer to data if present or NULL otherwise + *) +function av_packet_get_side_data(pkt: {const} PAVPacket; type_: TAVPacketSideDataType; + size: Pcint): PByte; + cdecl; external av__codec; + +{$IFDEF FF_API_MERGE_SD_API} +function av_packet_merge_side_data(pkt: PAVPacket): cint; + cdecl; external av__codec; deprecated; + +function av_packet_split_side_data(pkt: PAVPacket): cint; + cdecl; external av__codec; deprecated; +{$ENDIF} + +function av_packet_side_data_name(type_: TAVPacketSideDataType): PAnsiChar; + cdecl; external av__codec; + +(** + * Pack a dictionary for use in side_data. + * + * @param dict The dictionary to pack. + * @param size pointer to store the size of the returned data + * @return pointer to data if successful, NULL otherwise + *) +function av_packet_pack_dictionary(dict: PAVDictionary; size: PCuint): PByte; + cdecl; external av__codec; + +(** + * Unpack a dictionary from side_data. + * + * @param data data from side_data + * @param size size of the data + * @param dict the metadata storage dictionary + * @return 0 on success, < 0 on failure + *) +function av_packet_unpack_dictionary(data: {const} PByte; size: cint; dict: PPAVDictionary): cint; + cdecl; external av__codec; + +(** + * Convenience function to free all the side data stored. + * All the other fields stay untouched. + * + * @param pkt packet + *) +procedure av_packet_free_side_data(pkt: PAVPacket); + cdecl; external av__codec; + +(** + * Setup a new reference to the data described by a given packet + * + * If src is reference-counted, setup dst as a new reference to the + * buffer in src. Otherwise allocate a new buffer in dst and copy the + * data from src into it. + * + * All the other fields are copied from src. + * + * @see av_packet_unref + * + * @param dst Destination packet + * @param src Source packet + * + * @return 0 on success, a negative AVERROR on error. + *) +function av_packet_ref(dst: PAVPacket; src: {const} PAVPacket): cint; + cdecl; external av__codec; + +(** + * Wipe the packet. + * + * Unreference the buffer referenced by the packet and reset the + * remaining packet fields to their default values. + * + * @param pkt The packet to be unreferenced. + *) +procedure av_packet_unref(pkt: PAVPacket); + cdecl; external av__codec; + +(** + * Move every field in src to dst and reset src. + * + * @see av_packet_unref + * + * @param src Source packet, will be reset + * @param dst Destination packet + *) +procedure av_packet_move_ref(dst: PAVPacket; src: PAVPacket); + cdecl; external av__codec; + +(** + * Copy only "properties" fields from src to dst. + * + * Properties for the purpose of this function are all the fields + * beside those related to the packet data (buf, data, size) + * + * @param dst Destination packet + * @param src Source packet + * + * @return 0 on success AVERROR on failure. + * + *) +function av_packet_copy_props(dst: PAVPacket; src: {const} PAVPacket): cint; + cdecl; external av__codec; + +(** + * Ensure the data described by a given packet is reference counted. + * + * @note This function does not ensure that the reference will be writable. + * Use av_packet_make_writable instead for that purpose. + * + * @see av_packet_ref + * @see av_packet_make_writable + * + * @param pkt packet whose data should be made reference counted. + * + * @return 0 on success, a negative AVERROR on error. On failure, the + * packet is unchanged. + *) +function av_packet_make_refcounted(pkt: PAVPacket): cint; + cdecl; external av__codec; + +(** + * Create a writable reference for the data described by a given packet, + * avoiding data copy if possible. + * + * @param pkt Packet whose data should be made writable. + * + * @return 0 on success, a negative AVERROR on failure. On failure, the + * packet is unchanged. + *) +function av_packet_make_writable(pkt: PAVPacket): cint; + cdecl; external av__codec; + +(** + * Convert valid timing fields (timestamps / durations) in a packet from one + * timebase to another. Timestamps with unknown values (AV_NOPTS_VALUE) will be + * ignored. + * + * @param pkt packet on which the conversion will be performed + * @param tb_src source timebase, in which the timing fields in pkt are + * expressed + * @param tb_dst destination timebase, to which the timing fields will be + * converted + *) +procedure av_packet_rescale_ts(pkt: PAVPacket; tb_src, tb_dst: TAVRational); + cdecl; external av__codec; + +(** + * @ + *) + +(** + * @addtogroup lavc_decoding + * @ + *) + +(** + * Find a registered decoder with a matching codec ID. + * + * @param id CodecID of the requested decoder + * @return A decoder if one was found, NULL otherwise. + *) +function avcodec_find_decoder(id: TAVCodecID): PAVCodec; + cdecl; external av__codec; + +(** + * Find a registered decoder with the specified name. + * + * @param name name of the requested decoder + * @return A decoder if one was found, NULL otherwise. + *) +function avcodec_find_decoder_by_name(name: PAnsiChar): PAVCodec; + cdecl; external av__codec; + +(** + * The default callback for AVCodecContext.get_buffer2(). It is made public so + * it can be called by custom get_buffer2() implementations for decoders without + * AV_CODEC_CAP_DR1 set. + *) +function avcodec_default_get_buffer2(s: PAVCodecContext; frame: PAVFrame; flags: cint): cint; + cdecl; external av__codec; + +(** + * Modify width and height values so that they will result in a memory + * buffer that is acceptable for the codec if you do not use any horizontal + * padding. + * + * May only be used if a codec with AV_CODEC_CAP_DR1 has been opened. + *) +procedure avcodec_align_dimensions(s: PAVCodecContext; width: PCint; height: PCint); + cdecl; external av__codec; + +(** + * Modifiy width and height values so that they will result in a memory + * buffer that is acceptable for the codec if you also ensure that all + * line sizes are a multiple of the respective linesize_align[i]. + * + * May only be used if a codec with AV_CODEC_CAP_DR1 has been opened. + *) +procedure avcodec_align_dimensions2(s: PAVCodecContext; width: PCint; height: PCint; + linesize_align: PAVNDPArray); + cdecl; external av__codec; + +(** + * Decode the audio frame of size avpkt->size from avpkt->data into frame. + * + * Some decoders may support multiple frames in a single AVPacket. Such + * decoders would then just decode the first frame and the return value would be + * less than the packet size. In this case, avcodec_decode_audio4 has to be + * called again with an AVPacket containing the remaining data in order to + * decode the second frame, etc... Even if no frames are returned, the packet + * needs to be fed to the decoder with remaining data until it is completely + * consumed or an error occurs. + * + * Some decoders (those marked with AV_CODEC_CAP_DELAY) have a delay between input + * and output. This means that for some packets they will not immediately + * produce decoded output and need to be flushed at the end of decoding to get + * all the decoded data. Flushing is done by calling this function with packets + * with avpkt->data set to NULL and avpkt->size set to 0 until it stops + * returning samples. It is safe to flush even those decoders that are not + * marked with AV_CODEC_CAP_DELAY, then no samples will be returned. + * + * @warning The input buffer, avpkt->data must be AV_INPUT_BUFFER_PADDING_SIZE + * larger than the actual read bytes because some optimized bitstream + * readers read 32 or 64 bits at once and could read over the end. + * + * @note The AVCodecContext MUST have been opened with @ref avcodec_open2() + * before packets may be fed to the decoder. + * + * @param avctx the codec context + * @param[out] frame The AVFrame in which to store decoded audio samples. + * The decoder will allocate a buffer for the decoded frame by + * calling the AVCodecContext.get_buffer2() callback. + * When AVCodecContext.refcounted_frames is set to 1, the frame is + * reference counted and the returned reference belongs to the + * caller. The caller must release the frame using av_frame_unref() + * when the frame is no longer needed. The caller may safely write + * to the frame if av_frame_is_writable() returns 1. + * When AVCodecContext.refcounted_frames is set to 0, the returned + * reference belongs to the decoder and is valid only until the + * next call to this function or until closing or flushing the + * decoder. The caller may not write to it. + * @param[out] got_frame_ptr Zero if no frame could be decoded, otherwise it is + * non-zero. Note that this field being set to zero + * does not mean that an error has occurred. For + * decoders with AV_CODEC_CAP_DELAY set, no given decode + * call is guaranteed to produce a frame. + * @param[in] avpkt The input AVPacket containing the input buffer. + * At least avpkt->data and avpkt->size should be set. Some + * decoders might also require additional fields to be set. + * @return A negative error code is returned if an error occurred during + * decoding, otherwise the number of bytes consumed from the input + * AVPacket is returned. + * + * @deprecated Use avcodec_send_packet() and avcodec_receive_frame(). + *) +function avcodec_decode_audio4(avctx: PAVCodecContext; frame: PAVFrame; + got_frame_ptr: Pcint; avpkt: PAVPacket): cint; + cdecl; external av__codec; deprecated; + +(** + * Decode the video frame of size avpkt->size from avpkt->data into picture. + * Some decoders may support multiple frames in a single AVPacket, such + * decoders would then just decode the first frame. + * + * @warning The input buffer must be AV_INPUT_BUFFER_PADDING_SIZE larger than + * the actual read bytes because some optimized bitstream readers read 32 or 64 + * bits at once and could read over the end. + * + * @warning The end of the input buffer buf should be set to 0 to ensure that + * no overreading happens for damaged MPEG streams. + * + * @note Codecs which have the AV_CODEC_CAP_DELAY capability set have a delay + * between input and output, these need to be fed with avpkt->data=NULL, + * avpkt->size=0 at the end to return the remaining frames. + * + * @note The AVCodecContext MUST have been opened with @ref avcodec_open2() + * before packets may be fed to the decoder. + * + * @param avctx the codec context + * @param[out] picture The AVFrame in which the decoded video frame will be stored. + * Use av_frame_alloc() to get an AVFrame. The codec will + * allocate memory for the actual bitmap by calling the + * AVCodecContext.get_buffer2() callback. + * When AVCodecContext.refcounted_frames is set to 1, the frame is + * reference counted and the returned reference belongs to the + * caller. The caller must release the frame using av_frame_unref() + * when the frame is no longer needed. The caller may safely write + * to the frame if av_frame_is_writable() returns 1. + * When AVCodecContext.refcounted_frames is set to 0, the returned + * reference belongs to the decoder and is valid only until the + * next call to this function or until closing or flushing the + * decoder. The caller may not write to it. + * + * @param[in] avpkt The input AVPacket containing the input buffer. + * You can create such packet with av_init_packet() and by then setting + * data and size, some decoders might in addition need other fields like + * flags&AV_PKT_FLAG_KEY. All decoders are designed to use the least + * fields possible. + * @param[in,out] got_picture_ptr Zero if no frame could be decompressed, otherwise, it is nonzero. + * @return On error a negative value is returned, otherwise the number of bytes + * used or zero if no frame could be decompressed. + * + * @deprecated Use avcodec_send_packet() and avcodec_receive_frame(). + *) +function avcodec_decode_video2(avctx: PAVCodecContext; picture: PAVFrame; + var got_picture_ptr: cint; + avpkt: {const} PAVPacket): cint; + cdecl; external av__codec; deprecated; + +(* + * Decode a subtitle message. + * Return a negative value on error, otherwise return the number of bytes used. + * If no subtitle could be decompressed, got_sub_ptr is zero. + * Otherwise, the subtitle is stored in *sub. + * Note that AV_CODEC_CAP_DR1 is not available for subtitle codecs. This is for + * simplicity, because the performance difference is expect to be negligible + * and reusing a get_buffer written for video codecs would probably perform badly + * due to a potentially very different allocation pattern. + * + * Some decoders (those marked with AV_CODEC_CAP_DELAY) have a delay between input + * and output. This means that for some packets they will not immediately + * produce decoded output and need to be flushed at the end of decoding to get + * all the decoded data. Flushing is done by calling this function with packets + * with avpkt->data set to NULL and avpkt->size set to 0 until it stops + * returning subtitles. It is safe to flush even those decoders that are not + * marked with AV_CODEC_CAP_DELAY, then no subtitles will be returned. + * + * @note The AVCodecContext MUST have been opened with @ref avcodec_open2() + * before packets may be fed to the decoder. + * + * @param avctx the codec context + * @param[out] sub The Preallocated AVSubtitle in which the decoded subtitle will be stored, + * must be freed with avsubtitle_free if *got_sub_ptr is set. + * @param[in,out] got_sub_ptr Zero if no subtitle could be decompressed, otherwise, it is nonzero. + * @param[in] avpkt The input AVPacket containing the input buffer. + *) +function avcodec_decode_subtitle2(avctx: PAVCodecContext; sub: PAVSubtitle; + var got_sub_ptr: cint; + avpkt: PAVPacket): cint; + cdecl; external av__codec; + +(** + * Supply raw packet data as input to a decoder. + * + * Internally, this call will copy relevant AVCodecContext fields, which can + * influence decoding per-packet, and apply them when the packet is actually + * decoded. (For example AVCodecContext.skip_frame, which might direct the + * decoder to drop the frame contained by the packet sent with this function.) + * + * @warning The input buffer, avpkt->data must be AV_INPUT_BUFFER_PADDING_SIZE + * larger than the actual read bytes because some optimized bitstream + * readers read 32 or 64 bits at once and could read over the end. + * + * @warning Do not mix this API with the legacy API (like avcodec_decode_video2()) + * on the same AVCodecContext. It will return unexpected results now + * or in future libavcodec versions. + * + * @note The AVCodecContext MUST have been opened with @ref avcodec_open2() + * before packets may be fed to the decoder. + * + * @param avctx codec context + * @param[in] avpkt The input AVPacket. Usually, this will be a single video + * frame, or several complete audio frames. + * Ownership of the packet remains with the caller, and the + * decoder will not write to the packet. The decoder may create + * a reference to the packet data (or copy it if the packet is + * not reference-counted). + * Unlike with older APIs, the packet is always fully consumed, + * and if it contains multiple frames (e.g. some audio codecs), + * will require you to call avcodec_receive_frame() multiple + * times afterwards before you can send a new packet. + * It can be NULL (or an AVPacket with data set to NULL and + * size set to 0); in this case, it is considered a flush + * packet, which signals the end of the stream. Sending the + * first flush packet will return success. Subsequent ones are + * unnecessary and will return AVERROR_EOF. If the decoder + * still has frames buffered, it will return them after sending + * a flush packet. + * + * @return 0 on success, otherwise negative error code: + * AVERROR(EAGAIN): input is not accepted in the current state - user + * must read output with avcodec_receive_frame() (once + * all output is read, the packet should be resent, and + * the call will not fail with EAGAIN). + * AVERROR_EOF: the decoder has been flushed, and no new packets can + * be sent to it (also returned if more than 1 flush + * packet is sent) + * AVERROR(EINVAL): codec not opened, it is an encoder, or requires flush + * AVERROR(ENOMEM): failed to add packet to internal queue, or similar + * other errors: legitimate decoding errors + *) +function avcodec_send_packet(avctx: PAVCodecContext; avpkt: {const} PAVPacket): cint; + cdecl; external av__codec; + +(** + * Return decoded output data from a decoder. + * + * @param avctx codec context + * @param frame This will be set to a reference-counted video or audio + * frame (depending on the decoder type) allocated by the + * decoder. Note that the function will always call + * av_frame_unref(frame) before doing anything else. + * + * @return + * 0: success, a frame was returned + * AVERROR(EAGAIN): output is not available in this state - user must try + * to send new input + * AVERROR_EOF: the decoder has been fully flushed, and there will be + * no more output frames + * AVERROR(EINVAL): codec not opened, or it is an encoder + * other negative values: legitimate decoding errors + *) +function avcodec_receive_frame(avctx: PAVCodecContext; frame: PAVFrame): cint; + cdecl; external av__codec; + +(** + * Supply a raw video or audio frame to the encoder. Use avcodec_receive_packet() + * to retrieve buffered output packets. + * + * @param avctx codec context + * @param[in] frame AVFrame containing the raw audio or video frame to be encoded. + * Ownership of the frame remains with the caller, and the + * encoder will not write to the frame. The encoder may create + * a reference to the frame data (or copy it if the frame is + * not reference-counted). + * It can be NULL, in which case it is considered a flush + * packet. This signals the end of the stream. If the encoder + * still has packets buffered, it will return them after this + * call. Once flushing mode has been entered, additional flush + * packets are ignored, and sending frames will return + * AVERROR_EOF. + * + * For audio: + * If AV_CODEC_CAP_VARIABLE_FRAME_SIZE is set, then each frame + * can have any number of samples. + * If it is not set, frame->nb_samples must be equal to + * avctx->frame_size for all frames except the last. + * The final frame may be smaller than avctx->frame_size. + * @return 0 on success, otherwise negative error code: + * AVERROR(EAGAIN): input is not accepted in the current state - user + * must read output with avcodec_receive_packet() (once + * all output is read, the packet should be resent, and + * the call will not fail with EAGAIN). + * AVERROR_EOF: the encoder has been flushed, and no new frames can + * be sent to it + * AVERROR(EINVAL): codec not opened, refcounted_frames not set, it is a + * decoder, or requires flush + * AVERROR(ENOMEM): failed to add packet to internal queue, or similar + * other errors: legitimate decoding errors + *) +function avcodec_send_frame(avctx: PAVCodecContext; frame: {const} PAVFrame): cint; + cdecl; external av__codec; + +(** + * Read encoded data from the encoder. + * + * @param avctx codec context + * @param avpkt This will be set to a reference-counted packet allocated by the + * encoder. Note that the function will always call + * av_frame_unref(frame) before doing anything else. + * @return 0 on success, otherwise negative error code: + * AVERROR(EAGAIN): output is not available in the current state - user + * must try to send input + * AVERROR_EOF: the encoder has been fully flushed, and there will be + * no more output packets + * AVERROR(EINVAL): codec not opened, or it is an encoder + * other errors: legitimate decoding errors + *) +function avcodec_receive_packet(avctx: PAVCodecContext; avpkt: PAVPacket): cint; + cdecl; external av__codec; + +(** + * Create and return a AVHWFramesContext with values adequate for hardware + * decoding. This is meant to get called from the get_format callback, and is + * a helper for preparing a AVHWFramesContext for AVCodecContext.hw_frames_ctx. + * This API is for decoding with certain hardware acceleration modes/APIs only. + * + * The returned AVHWFramesContext is not initialized. The caller must do this + * with av_hwframe_ctx_init(). + * + * Calling this function is not a requirement, but makes it simpler to avoid + * codec or hardware API specific details when manually allocating frames. + * + * Alternatively to this, an API user can set AVCodecContext.hw_device_ctx, + * which sets up AVCodecContext.hw_frames_ctx fully automatically, and makes + * it unnecessary to call this function or having to care about + * AVHWFramesContext initialization at all. + * + * There are a number of requirements for calling this function: + * + * - It must be called from get_format with the same avctx parameter that was + * passed to get_format. Calling it outside of get_format is not allowed, and + * can trigger undefined behavior. + * - The function is not always supported (see description of return values). + * Even if this function returns successfully, hwaccel initialization could + * fail later. (The degree to which implementations check whether the stream + * is actually supported varies. Some do this check only after the user's + * get_format callback returns.) + * - The hw_pix_fmt must be one of the choices suggested by get_format. If the + * user decides to use a AVHWFramesContext prepared with this API function, + * the user must return the same hw_pix_fmt from get_format. + * - The device_ref passed to this function must support the given hw_pix_fmt. + * - After calling this API function, it is the user's responsibility to + * initialize the AVHWFramesContext (returned by the out_frames_ref parameter), + * and to set AVCodecContext.hw_frames_ctx to it. If done, this must be done + * before returning from get_format (this is implied by the normal + * AVCodecContext.hw_frames_ctx API rules). + * - The AVHWFramesContext parameters may change every time time get_format is + * called. Also, AVCodecContext.hw_frames_ctx is reset before get_format. So + * you are inherently required to go through this process again on every + * get_format call. + * - It is perfectly possible to call this function without actually using + * the resulting AVHWFramesContext. One use-case might be trying to reuse a + * previously initialized AVHWFramesContext, and calling this API function + * only to test whether the required frame parameters have changed. + * - Fields that use dynamically allocated values of any kind must not be set + * by the user unless setting them is explicitly allowed by the documentation. + * If the user sets AVHWFramesContext.free and AVHWFramesContext.user_opaque, + * the new free callback must call the potentially set previous free callback. + * This API call may set any dynamically allocated fields, including the free + * callback. + * + * The function will set at least the following fields on AVHWFramesContext + * (potentially more, depending on hwaccel API): + * + * - All fields set by av_hwframe_ctx_alloc(). + * - Set the format field to hw_pix_fmt. + * - Set the sw_format field to the most suited and most versatile format. (An + * implication is that this will prefer generic formats over opaque formats + * with arbitrary restrictions, if possible.) + * - Set the width/height fields to the coded frame size, rounded up to the + * API-specific minimum alignment. + * - Only _if_ the hwaccel requires a pre-allocated pool: set the initial_pool_size + * field to the number of maximum reference surfaces possible with the codec, + * plus 1 surface for the user to work (meaning the user can safely reference + * at most 1 decoded surface at a time), plus additional buffering introduced + * by frame threading. If the hwaccel does not require pre-allocation, the + * field is left to 0, and the decoder will allocate new surfaces on demand + * during decoding. + * - Possibly AVHWFramesContext.hwctx fields, depending on the underlying + * hardware API. + * + * Essentially, out_frames_ref returns the same as av_hwframe_ctx_alloc(), but + * with basic frame parameters set. + * + * The function is stateless, and does not change the AVCodecContext or the + * device_ref AVHWDeviceContext. + * + * @param avctx The context which is currently calling get_format, and which + * implicitly contains all state needed for filling the returned + * AVHWFramesContext properly. + * @param device_ref A reference to the AVHWDeviceContext describing the device + * which will be used by the hardware decoder. + * @param hw_pix_fmt The hwaccel format you are going to return from get_format. + * @param out_frames_ref On success, set to a reference to an _uninitialized_ + * AVHWFramesContext, created from the given device_ref. + * Fields will be set to values required for decoding. + * Not changed if an error is returned. + * @return zero on success, a negative value on error. The following error codes + * have special semantics: + * AVERROR(ENOENT): the decoder does not support this functionality. Setup + * is always manual, or it is a decoder which does not + * support setting AVCodecContext.hw_frames_ctx at all, + * or it is a software format. + * AVERROR(EINVAL): it is known that hardware decoding is not supported for + * this configuration, or the device_ref is not supported + * for the hwaccel referenced by hw_pix_fmt. + *) +function avcodec_get_hw_frames_parameters(avctx: PAVCodecContext; + device_ref: PAVBufferRef; + hw_pix_fmt: TAVPixelFormat; + out_frames_ref: PPAVBufferRef): cint; +cdecl; external av__codec; + + +(** + * @defgroup lavc_parsing Frame parsing + * @ + *) + +type + TAVPictureStructure = ( + AV_PICTURE_STRUCTURE_UNKNOWN, //< unknown + AV_PICTURE_STRUCTURE_TOP_FIELD, //< coded as top field + AV_PICTURE_STRUCTURE_BOTTOM_FIELD, //< coded as bottom field + AV_PICTURE_STRUCTURE_FRAME //< coded as frame + ); + +const + AV_PARSER_PTS_NB = 4; + PARSER_FLAG_COMPLETE_FRAMES = $0001; + PARSER_FLAG_ONCE = $0002; +/// Set if the parser has a valid file offset + PARSER_FLAG_FETCHED_OFFSET = $0004; + PARSER_FLAG_USE_CODEC_TS = $1000; + +type + (* frame parsing *) + PAVCodecParserContext = ^TAVCodecParserContext; + PAVCodecParser = ^TAVCodecParser; + + TAVCodecParserContext = record + priv_data: pointer; + parser: PAVCodecParser; + frame_offset: cint64; (* offset of the current frame *) + cur_offset: cint64; (* current offset (incremented by each av_parser_parse()) *) + next_frame_offset: cint64; (* offset of the next frame *) + (* video info *) + pict_type: cint; (* XXX: put it back in AVCodecContext *) + (** + * This field is used for proper frame duration computation in lavf. + * It signals, how much longer the frame duration of the current frame + * is compared to normal frame duration. + * + * frame_duration = (1 + repeat_pict) * time_base + * + * It is used by codecs like H.264 to display telecined material. + *) + repeat_pict: cint; (* XXX: put it back in AVCodecContext *) + pts: cint64; (* pts of the current frame *) + dts: cint64; (* dts of the current frame *) + + (* private data *) + last_pts: cint64; + last_dts: cint64; + fetch_timestamp: cint; + + cur_frame_start_index: cint; + cur_frame_offset: array [0..AV_PARSER_PTS_NB - 1] of cint64; + cur_frame_pts: array [0..AV_PARSER_PTS_NB - 1] of cint64; + cur_frame_dts: array [0..AV_PARSER_PTS_NB - 1] of cint64; + + flags: cint; + + offset: cint64; ///< byte offset from starting packet start + cur_frame_end: array [0..AV_PARSER_PTS_NB - 1] of cint64; + + (** + * Set by parser to 1 for key frames and 0 for non-key frames. + * It is initialized to -1, so if the parser doesn't set this flag, + * old-style fallback using FF_I_TYPE picture type as key frames + * will be used. + *) + key_frame: cint; + +{$IFDEF FF_API_CONVERGENCE_DURATION} + (** + * @deprecated unused + *) + convergence_duration: cint64; {deprecated} +{$ENDIF} + + // Timestamp generation support: + (** + * Synchronization point for start of timestamp generation. + * + * Set to >0 for sync point, 0 for no sync point and <0 for undefined + * (default). + * + * For example, this corresponds to presence of H.264 buffering period + * SEI message. + *) + dts_sync_point: cint; + + (** + * Offset of the current timestamp against last timestamp sync point in + * units of AVCodecContext.time_base. + * + * Set to INT_MIN when dts_sync_point unused. Otherwise, it must + * contain a valid timestamp offset. + * + * Note that the timestamp of sync point has usually a nonzero + * dts_ref_dts_delta, which refers to the previous sync point. Offset of + * the next frame after timestamp sync point will be usually 1. + * + * For example, this corresponds to H.264 cpb_removal_delay. + *) + dts_ref_dts_delta: cint; + + (** + * Presentation delay of current frame in units of AVCodecContext.time_base. + * + * Set to INT_MIN when dts_sync_point unused. Otherwise, it must + * contain valid non-negative timestamp delta (presentation time of a frame + * must not lie in the past). + * + * This delay represents the difference between decoding and presentation + * time of the frame. + * + * For example, this corresponds to H.264 dpb_output_delay. + *) + pts_dts_delta: cint; + + (** + * Position of the packet in file. + * + * Analogous to cur_frame_pts/dts + *) + cur_frame_pos: array [0..AV_PARSER_PTS_NB - 1] of cint64; + + (** + * Byte position of currently parsed frame in stream. + *) + pos: cint64; + + (** + * Previous frame byte position. + *) + last_pos: cint64; + + (** + * Duration of the current frame. + * For audio, this is in units of 1 / AVCodecContext.sample_rate. + * For all other types, this is in units of AVCodecContext.time_base. + *) + duration: cint; + + field_order: TAVFieldOrder; + + (** + * Indicate whether a picture is coded as a frame, top field or bottom field. + * + * For example, H.264 field_pic_flag equal to 0 corresponds to + * AV_PICTURE_STRUCTURE_FRAME. An H.264 picture with field_pic_flag + * equal to 1 and bottom_field_flag equal to 0 corresponds to + * AV_PICTURE_STRUCTURE_TOP_FIELD. + *) + picture_structure: TAVPictureStructure; + + (** + * Picture number incremented in presentation or output order. + * This field may be reinitialized at the first picture of a new sequence. + * + * For example, this corresponds to H.264 PicOrderCnt. + *) + output_picture_number: cint; + + (** + * Dimensions of the decoded video intended for presentation. + *) + width: cint; + height: cint; + + (** + * Dimensions of the coded video. + *) + coded_width: cint; + coded_height: cint; + + (** + * The format of the coded data, corresponds to enum AVPixelFormat for video + * and for enum AVSampleFormat for audio. + * + * Note that a decoder can have considerable freedom in how exactly it + * decodes the data, so the format reported here might be different from the + * one returned by a decoder. + *) + format: cint; + end; {AVCodecParserContext} + + TAVCodecParser = record + codec_ids: array [0..4] of cint; (* several codec IDs are permitted *) + priv_data_size: cint; + parser_init: function(s: PAVCodecParserContext): cint; cdecl; + (* This callback never returns an error, a negative value means that + * the frame start was in a previous packet. *) + parser_parse: function(s: PAVCodecParserContext; + avctx: PAVCodecContext; + poutbuf: {const} PPointer; poutbuf_size: PCint; + buf: {const} PByteArray; buf_size: cint): cint; cdecl; + parser_close: procedure(s: PAVCodecParserContext); cdecl; + split: function(avctx: PAVCodecContext; buf: {const} PByteArray; + buf_size: cint): cint; cdecl; + next: PAVCodecParser; + end; {AVCodecParser} + +(** + * Iterate over all registered codec parsers. + * + * @param opaque a pointer where libavcodec will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the next registered codec parser or NULL when the iteration is + * finished + *) +function av_parser_iterate(opaque: pointer): PAVCodecParser; + cdecl; external av__codec; {const} + +function av_parser_next(c: {const} PAVCodecParser): PAVCodecParser; + cdecl; external av__codec; deprecated; + +procedure av_register_codec_parser(parser: PAVCodecParser); + cdecl; external av__codec; deprecated; + +function av_parser_init(codec_id: cint): PAVCodecParserContext; + cdecl; external av__codec; + +(** + * Parse a packet. + * + * @param s parser context. + * @param avctx codec context. + * @param poutbuf set to pointer to parsed buffer or NULL if not yet finished. + * @param poutbuf_size set to size of parsed buffer or zero if not yet finished. + * @param buf input buffer. + * @param buf_size buffer size in bytes without the padding. I.e. the full buffer + size is assumed to be buf_size + AV_INPUT_BUFFER_PADDING_SIZE. + To signal EOF, this should be 0 (so that the last frame + can be output). + * @param pts input presentation timestamp. + * @param dts input decoding timestamp. + * @param pos input byte position in stream. + * @return the number of bytes of the input bitstream used. + * + * Example: + * @code + * while (in_len) do + * begin + * len := av_parser_parse2(myparser, AVCodecContext, data, size, + * in_data, in_len, + * pts, dts, pos); + * in_data := in_data + len; + * in_len := in_len - len; + * + * if (size) then + * decode_frame(data, size); + * end; + * @endcode + *) +function av_parser_parse2(s: PAVCodecParserContext; + avctx: PAVCodecContext; + poutbuf: PPointer; + poutbuf_size: PCint; + buf: {const} PByteArray; + buf_size: cint; + pts: cint64; + dts: cint64; + pos: cint64): cint; + cdecl; external av__codec; + +(** + * @return 0 if the output buffer is a subset of the input, 1 if it is allocated and must be freed + * @deprecated use AVBitStreamFilter + *) +function av_parser_change(s: PAVCodecParserContext; + avctx: PAVCodecContext; + poutbuf: PPointer; poutbuf_size: PCint; + buf: {const} PByteArray; buf_size: cint; keyframe: cint): cint; + cdecl; external av__codec; + +procedure av_parser_close(s: PAVCodecParserContext); + cdecl; external av__codec; + +(** + * @} + * @} + *) + +(** + * @addtogroup lavc_encoding + * @{ + *) + +(** + * Find a registered encoder with a matching codec ID. + * + * @param id AVCodecID of the requested encoder + * @return An encoder if one was found, NULL otherwise. + *) +function avcodec_find_encoder(id: TAVCodecID): PAVCodec; + cdecl; external av__codec; + +(** + * Find a registered encoder with the specified name. + * + * @param name name of the requested encoder + * @return An encoder if one was found, NULL otherwise. + *) +function avcodec_find_encoder_by_name(name: PAnsiChar): PAVCodec; + cdecl; external av__codec; + +(** + * Encode a frame of audio. + * + * Takes input samples from frame and writes the next output packet, if + * available, to avpkt. The output packet does not necessarily contain data for + * the most recent frame, as encoders can delay, split, and combine input frames + * internally as needed. + * + * @param avctx codec context + * @param avpkt output AVPacket. + * The user can supply an output buffer by setting + * avpkt->data and avpkt->size prior to calling the + * function, but if the size of the user-provided data is not + * large enough, encoding will fail. If avpkt->data and + * avpkt->size are set, avpkt->destruct must also be set. All + * other AVPacket fields will be reset by the encoder using + * av_init_packet(). If avpkt->data is NULL, the encoder will + * allocate it. The encoder will set avpkt->size to the size + * of the output packet. + * + * If this function fails or produces no output, avpkt will be + * freed using av_packet_unref(). + * @param[in] frame AVFrame containing the raw audio data to be encoded. + * May be NULL when flushing an encoder that has the + * AV_CODEC_CAP_DELAY capability set. + * If AV_CODEC_CAP_VARIABLE_FRAME_SIZE is set, then each frame + * can have any number of samples. + * If it is not set, frame->nb_samples must be equal to + * avctx->frame_size for all frames except the last. + * The final frame may be smaller than avctx->frame_size. + * @param[out] got_packet_ptr This field is set to 1 by libavcodec if the + * output packet is non-empty, and to 0 if it is + * empty. If the function returns an error, the + * packet can be assumed to be invalid, and the + * value of got_packet_ptr is undefined and should + * not be used. + * @return 0 on success, negative error code on failure + * + * @deprecated use avcodec_send_frame()/avcodec_receive_packet() instead + *) +function avcodec_encode_audio2(avctx: PAVCodecContext; avpkt: PAVPacket; + frame: {const} PAVFrame; got_packet_ptr: Pcint): cint; + cdecl; external av__codec; deprecated; + +(** + * Encode a frame of video. + * + * Takes input raw video data from frame and writes the next output packet, if + * available, to avpkt. The output packet does not necessarily contain data for + * the most recent frame, as encoders can delay and reorder input frames + * internally as needed. + * + * @param avctx codec context + * @param avpkt output AVPacket. + * The user can supply an output buffer by setting + * avpkt->data and avpkt->size prior to calling the + * function, but if the size of the user-provided data is not + * large enough, encoding will fail. All other AVPacket fields + * will be reset by the encoder using av_init_packet(). If + * avpkt->data is NULL, the encoder will allocate it. + * The encoder will set avpkt->size to the size of the + * output packet. The returned data (if any) belongs to the + * caller, he is responsible for freeing it. + * + * If this function fails or produces no output, avpkt will be + * freed using av_packet_unref(). + * @param[in] frame AVFrame containing the raw video data to be encoded. + * May be NULL when flushing an encoder that has the + * AV_CODEC_CAP_DELAY capability set. + * @param[out] got_packet_ptr This field is set to 1 by libavcodec if the + * output packet is non-empty, and to 0 if it is + * empty. If the function returns an error, the + * packet can be assumed to be invalid, and the + * value of got_packet_ptr is undefined and should + * not be used. + * @return 0 on success, negative error code on failure + * + * @deprecated use avcodec_send_frame()/avcodec_receive_packet() instead + *) +function avcodec_encode_video2(avctx: PAVCodecContext; avpkt: PAVPacket; + frame: {const} PAVFrame; got_packet_ptr: Pcint): cint; + cdecl; external av__codec; deprecated; + +function avcodec_encode_subtitle(avctx: PAVCodecContext; buf: PByteArray; + buf_size: cint; sub: {const} PAVSubtitle): cint; + cdecl; external av__codec; + +(** + * @} + *) + +{$IFDEF FF_API_AVPICTURE} +(** + * @addtogroup lavc_picture + * @{ + *) + +(** + * @deprecated unused + *) +function avpicture_alloc (picture: PAVPicture; pix_fmt: TAVPixelFormat; + width: cint; height: cint): cint; + cdecl; external av__codec; deprecated; + +(** + * @deprecated unused + *) +procedure avpicture_free (picture: PAVPicture); + cdecl; external av__codec; deprecated; + +(** + * @deprecated use av_image_fill_arrays() instead. + *) +function avpicture_fill (picture: PAVPicture; ptr: pcuint8; + pix_fmt: TAVPixelFormat; width: cint; height: cint): cint; + cdecl; external av__codec; deprecated; + +(** + * @deprecated use av_image_copy_to_buffer() instead. + *) +function avpicture_layout (src: {const} PAVPicture; pix_fmt: TAVPixelFormat; + width: cint; height: cint; + dest: PByteArray; dest_size: cint): cint; + cdecl; external av__codec; deprecated; + +(** + * @deprecated use av_image_get_buffer_size() instead. + *) +function avpicture_get_size (pix_fmt: TAVPixelFormat; width: cint; height: cint): cint; + cdecl; external av__codec; deprecated; + +(** + * @deprecated av_image_copy() instead. + *) +procedure av_picture_copy(dst: PAVPicture; src: {const} PAVPicture; + pix_fmt: TAVPixelFormat; width: cint; height: cint); + cdecl; external av__codec; deprecated; + +(** + * @deprecated unused + *) +function av_picture_crop(dst: PAVPicture; src: {const} PAVPicture; + pix_fmt: TAVPixelFormat; top_band: cint; left_band: cint): cint; + cdecl; external av__codec; deprecated; + +(** + * @deprecated unused + *) +function av_picture_pad(dst: PAVPicture; src: {const} PAVPicture; + height: cint; width: cint; pix_fmt: TAVPixelFormat; + padtop: cint; padbottom: cint; padleft: cint; + padright: cint; color: PCint): cint; + cdecl; external av__codec; deprecated; + +(** + * @} + *) +{$ENDIF} + +(** + * @defgroup lavc_misc Utility functions + * @ingroup libavc + * + * Miscellaneous utility functions related to both encoding and decoding + * (or neither). + * @ + *) + +(** + * @defgroup lavc_misc_pixfmt Pixel formats + * + * Functions for working with pixel formats. + * @ + *) + +{$IFDEF FF_API_GETCHROMA} +(** + * @deprecated Use av_pix_fmt_get_chroma_sub_sample + *) + +procedure avcodec_get_chroma_sub_sample (pix_fmt: TAVPixelFormat; var h_shift: cint; var v_shift: cint); + cdecl; external av__codec; deprecated; +{$ENDIF} + +(** + * Return a value representing the fourCC code associated to the + * pixel format pix_fmt, or 0 if no associated fourCC code can be + * found. + *) +function avcodec_pix_fmt_to_codec_tag(pix_fmt: TAVPixelFormat): cuint; + cdecl; external av__codec; + +(** + * @deprecated see av_get_pix_fmt_loss() + *) +function avcodec_get_pix_fmt_loss (dst_pix_fmt: TAVPixelFormat; src_pix_fmt: TAVPixelFormat; + has_alpha: cint): cint; + cdecl; external av__codec; + +(** + * Find the best pixel format to convert to given a certain source pixel + * format. When converting from one pixel format to another, information loss + * may occur. For example, when converting from RGB24 to GRAY, the color + * information will be lost. Similarly, other losses occur when converting from + * some formats to other formats. avcodec_find_best_pix_fmt_of_2() searches which of + * the given pixel formats should be used to suffer the least amount of loss. + * The pixel formats from which it chooses one, are determined by the + * pix_fmt_list parameter. + * + * + * @param[in] pix_fmt_list AV_PIX_FMT_NONE terminated array of pixel formats to choose from + * @param[in] src_pix_fmt source pixel format + * @param[in] has_alpha Whether the source pixel format alpha channel is used. + * @param[out] loss_ptr Combination of flags informing you what kind of losses will occur. + * @return The best pixel format to convert to or -1 if none was found. + *) +function avcodec_find_best_pix_fmt_of_list(pix_fmt_list: PAVPixelFormat; + src_pix_fmt: TAVPixelFormat; + has_alpha: cint; loss_ptr: Pcint): TAVPixelFormat; + cdecl; external av__codec; + +(** + * @deprecated see av_find_best_pix_fmt_of_2() + *) +function avcodec_find_best_pix_fmt_of_2(dst_pix_fmt1: TAVPixelFormat; dst_pix_fmt2: TAVPixelFormat; + src_pix_fmt: TAVPixelFormat; has_alpha: cint; loss_ptr: Pcint): TAVPixelFormat; + cdecl; external av__codec; + +function avcodec_find_best_pix_fmt2(dst_pix_fmt1: TAVPixelFormat; dst_pix_fmt2: TAVPixelFormat; + src_pix_fmt: TAVPixelFormat; has_alpha: cint; loss_ptr: Pcint): TAVPixelFormat; + cdecl; external av__codec; deprecated; + +function avcodec_default_get_format(s: PAVCodecContext; fmt: {const} PAVPixelFormat): TAVPixelFormat; + cdecl; external av__codec; + +(** + * @} + *) + +{$IFDEF FF_API_TAG_STRING} +(* Put a string representing the codec tag codec_tag in buf. + * + * @param buf buffer to place codec tag in + * @param buf_size size in bytes of buf + * @param codec_tag codec tag to assign + * @return the length of the string that would have been generated if + * enough space had been available, excluding the trailing null + * + * @deprecated see av_fourcc_make_string() and av_fourcc2str(). + *) +function av_get_codec_tag_string(buf: PAnsiChar; buf_size: size_t; codec_tag: cuint): size_t; + cdecl; external av__codec; deprecated; +{$ENDIF} + +procedure avcodec_string(buf: PAnsiChar; buf_size: cint; enc: PAVCodecContext; encode: cint); + cdecl; external av__codec; + +(** + * Return a name for the specified profile, if available. + * + * @param codec the codec that is searched for the given profile + * @param profile the profile value for which a name is requested + * @return A name for the profile if found, NULL otherwise. + *) +function av_get_profile_name(codec: {const} PAVCodec; profile: cint): {const} PAnsiChar; + cdecl; external av__codec; + +(** + * Return a name for the specified profile, if available. + * + * @param codec_id the ID of the codec to which the requested profile belongs + * @param profile the profile value for which a name is requested + * @return A name for the profile if found, NULL otherwise. + * + * @note unlike av_get_profile_name(), which searches a list of profiles + * supported by a specific decoder or encoder implementation, this + * function searches the list of profiles from the AVCodecDescriptor + *) +function avcodec_profile_name(codec_id: TAVCodecID; profile: cint): {const} PChar; + cdecl; external av__codec; + +function avcodec_default_execute(s: PAVCodecContext; func: TExecuteFunc; arg: Pointer; var ret: cint; count: cint; size: cint): cint; + cdecl; external av__codec; + +function avcodec_default_execute2(s: PAVCodecContext; func: TExecuteFunc; arg: Pointer; var ret: cint; count: cint): cint; + cdecl; external av__codec; +//FIXME func typedef + +(** + * Fill AVFrame audio data and linesize pointers. + * + * The buffer buf must be a preallocated buffer with a size big enough + * to contain the specified samples amount. The filled AVFrame data + * pointers will point to this buffer. + * + * AVFrame extended_data channel pointers are allocated if necessary for + * planar audio. + * + * @param frame the AVFrame + * frame->nb_samples must be set prior to calling the + * function. This function fills in frame->data, + * frame->extended_data, frame->linesize[0]. + * @param nb_channels channel count + * @param sample_fmt sample format + * @param buf buffer to use for frame data + * @param buf_size size of buffer + * @param align plane size sample alignment + * @return >=0 on success, negative error code on failure + * @todo return the size in bytes required to store the samples in + * case of success, at the next libavutil bump + *) +function avcodec_fill_audio_frame(frame: PAVFrame; nb_channels: cint; + sample_fmt: TAVSampleFormat; buf: {const} PByte; + buf_size: cint; align: cint): cint; + cdecl; external av__codec; + +(** + * Flush buffers, should be called when seeking or when switching to a different stream. + *) +procedure avcodec_flush_buffers(avctx: PAVCodecContext); + cdecl; external av__codec; + +(** + * Return codec bits per sample. + * + * @param[in] codec_id the codec + * @return Number of bits per sample or zero if unknown for the given codec. + *) +function av_get_bits_per_sample(codec_id: TAVCodecID): cint; + cdecl; external av__codec; + +(** + * Return the PCM codec associated with a sample format. + * @param be endianness, 0 for little, 1 for big, + * -1 (or anything else) for native + * @return AV_CODEC_ID_PCM_* or AV_CODEC_ID_NONE + *) +function av_get_pcm_codec(fmt: TAVSampleFormat; be: cint): TAVCodecID; + cdecl; external av__codec; + +(** + * Return codec bits per sample. + * Only return non-zero if the bits per sample is exactly correct, not an + * approximation. + * + * @param[in] codec_id the codec + * @return Number of bits per sample or zero if unknown for the given codec. + *) +function av_get_exact_bits_per_sample(codec_id: TAVCodecID): cint; + cdecl; external av__codec; + +(** + * Return audio frame duration. + * + * @param avctx codec context + * @param frame_bytes size of the frame, or 0 if unknown + * @return frame duration, in samples, if known. 0 if not able to + * determine. + *) +function av_get_audio_frame_duration(avctx: PAVCodecContext; frame_bytes: cint): cint; + cdecl; external av__codec; + +(** + * This function is the same as av_get_audio_frame_duration(), except it works + * with AVCodecParameters instead of an AVCodecContext. + *) +function av_get_audio_frame_duration2(par: PAVCodecParameters; frame_bytes: cint): cint; + cdecl; external av__codec; + +type +{$IFDEF FF_API_OLD_BSF} + PAVBitStreamFilterContext = ^TAVBitStreamFilterContext; + PAVBitStreamFilter = ^TAVBitStreamFilter; + + TAVBitStreamFilterContext = record + priv_data: pointer; + filter: {const} PAVBitStreamFilter; + parser: PAVCodecParserContext; + next: PAVBitStreamFilterContext; + (** + * Internal default arguments, used if NULL is passed to av_bitstream_filter_filter(). + * Not for access by library users. + *) + args: PChar; + end; +{$ENDIF} + + PAVBSFInternal = ^TAVBSFInternal; + TAVBSFInternal = record + end; + + (** + * The bitstream filter state. + * + * This struct must be allocated with av_bsf_alloc() and freed with + * av_bsf_free(). + * + * The fields in the struct will only be changed (by the caller or by the + * filter) as described in their documentation, and are to be considered + * immutable otherwise. + *) + PPAVBSFContext = ^PAVBSFContext; + PAVBSFContext = ^TAVBSFContext; + TAVBSFContext = record + (** + * A class for logging and AVOptions + *) + av_class: {const} PAVClass; + + (** + * The bitstream filter this context is an instance of. + *) + filter: {const} PAVBitStreamFilter; + + (** + * Opaque libavcodec internal data. Must not be touched by the caller in any + * way. + *) + internal: PAVBSFInternal; + + (** + * Opaque filter-specific private data. If filter->priv_class is non-NULL, + * this is an AVOptions-enabled struct. + *) + priv_data: pointer; + + (** + * Parameters of the input stream. This field is allocated in + * av_bsf_alloc(), it needs to be filled by the caller before + * av_bsf_init(). + *) + par_in: PAVCodecParameters; + + (** + * Parameters of the output stream. This field is allocated in + * av_bsf_alloc(), it is set by the filter in av_bsf_init(). + *) + par_out: PAVCodecParameters; + + (** + * The timebase used for the timestamps of the input packets. Set by the + * caller before av_bsf_init(). + *) + time_base_in: TAVRational; + + (** + * The timebase used for the timestamps of the output packets. Set by the + * filter in av_bsf_init(). + *) + time_base_out: TAVRational; + end; {TAVBSFContext} + + TAVBitStreamFilter = record + name: PAnsiChar; + + (** + * A list of codec ids supported by the filter, terminated by + * AV_CODEC_ID_NONE. + * May be NULL, in that case the bitstream filter works with any codec id. + *) + codec_ids: PAVCodecID; + + (** + * A class for the private data, used to declare bitstream filter private + * AVOptions. This field is NULL for bitstream filters that do not declare + * any options. + * + * If this field is non-NULL, the first member of the filter private data + * must be a pointer to AVClass, which will be set by libavcodec generic + * code to this class. + *) + priv_class: PAVClass; + + (***************************************************************** + * No fields below this line are part of the public API. They + * may not be used outside of libavcodec and can be changed and + * removed at will. + * New public fields should be added right above. + ***************************************************************** + *) + + priv_data_size: cint; + init: function(ctx: PAVBSFContext): cint; cdecl; + filter: function(ctx: PAVBSFContext; pkt: PAVPacket): cint; cdecl; + close: procedure(ctx: PAVBSFContext); cdecl; + end; + + PPAVBSFList = ^PAVBSFList; + PAVBSFList = ^TAVBSFList; + TAVBSFList = record + end; + +{$IFDEF FF_API_OLD_BSF} +(** + * @deprecated the old bitstream filtering API (using AVBitStreamFilterContext) + * is deprecated. Use the new bitstream filtering API (using AVBSFContext). + *) +procedure av_register_bitstream_filter(bsf: PAVBitStreamFilter); + cdecl; external av__codec; deprecated; + +(** + * @deprecated the old bitstream filtering API (using AVBitStreamFilterContext) + * is deprecated. Use av_bsf_get_by_name(), av_bsf_alloc(), and av_bsf_init() + * from the new bitstream filtering API (using AVBSFContext). + *) +function av_bitstream_filter_init(name: {const} PAnsiChar): PAVBitStreamFilterContext; + cdecl; external av__codec; deprecated; + +(** + * @deprecated the old bitstream filtering API (using AVBitStreamFilterContext) + * is deprecated. Use av_bsf_send_packet() and av_bsf_receive_packet() from the + * new bitstream filtering API (using AVBSFContext). + *) +function av_bitstream_filter_filter(bsfc: PAVBitStreamFilterContext; + avctx: PAVCodecContext; args: {const} PAnsiChar; + poutbuf: PPointer; poutbuf_size: PCint; + buf: {const} PByte; buf_size: cint; keyframe: cint): cint; + cdecl; external av__codec; deprecated; + +(** + * @deprecated the old bitstream filtering API (using AVBitStreamFilterContext) + * is deprecated. Use av_bsf_free() from the new bitstream filtering API (using + * AVBSFContext). + *) +procedure av_bitstream_filter_close(bsf: PAVBitStreamFilterContext); + cdecl; external av__codec; deprecated; + +(** + * @deprecated the old bitstream filtering API (using AVBitStreamFilterContext) + * is deprecated. Use av_bsf_iterate() from the new bitstream filtering API (using + * AVBSFContext). + *) +function av_bitstream_filter_next(f: {const} PAVBitStreamFilter): PAVBitStreamFilter; + cdecl; external av__codec; deprecated; {const} +{$ENDIF} + +(** + * @return a bitstream filter with the specified name or NULL if no such + * bitstream filter exists. + *) +function av_bsf_get_by_name(name: {const} PAnsiChar): {const} PAVBitStreamFilter; + cdecl; external av__codec; + +(** + * Iterate over all registered bitstream filters. + * + * @param opaque a pointer where libavcodec will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the next registered bitstream filter or NULL when the iteration is + * finished + *) +function av_bsf_iterate(opaque: pointer): PAVBitStreamFilter; + cdecl; external av__codec; {const} +{$IFDEF FF_API_NEXT} +function av_bsf_next(opaque: pointer): {const} PAVBitStreamFilter; + cdecl; external av__codec; deprecated; +{$ENDIF} + +(** + * Allocate a context for a given bitstream filter. The caller must fill in the + * context parameters as described in the documentation and then call + * av_bsf_init() before sending any data to the filter. + * + * @param filter the filter for which to allocate an instance. + * @param ctx a pointer into which the pointer to the newly-allocated context + * will be written. It must be freed with av_bsf_free() after the + * filtering is done. + * + * @return 0 on success, a negative AVERROR code on failure + *) +function av_bsf_alloc(filter: {const} PAVBitStreamFilter; ctx: PPAVBSFContext): cint; + cdecl; external av__codec; + +(** + * Prepare the filter for use, after all the parameters and options have been + * set. + *) +function av_bsf_init(ctx: PAVBSFContext): cint; + cdecl; external av__codec; + +(** + * Submit a packet for filtering. + * + * After sending each packet, the filter must be completely drained by calling + * av_bsf_receive_packet() repeatedly until it returns AVERROR(EAGAIN) or + * AVERROR_EOF. + * + * @param pkt the packet to filter. The bitstream filter will take ownership of + * the packet and reset the contents of pkt. pkt is not touched if an error occurs. + * This parameter may be NULL, which signals the end of the stream (i.e. no more + * packets will be sent). That will cause the filter to output any packets it + * may have buffered internally. + * + * @return 0 on success, a negative AVERROR on error. + *) +function av_bsf_send_packet(ctx: PAVBSFContext; pkt: PAVPacket): cint; + cdecl; external av__codec; + +(** + * Retrieve a filtered packet. + * + * @param[out] pkt this struct will be filled with the contents of the filtered + * packet. It is owned by the caller and must be freed using + * av_packet_unref() when it is no longer needed. + * This parameter should be "clean" (i.e. freshly allocated + * with av_packet_alloc() or unreffed with av_packet_unref()) + * when this function is called. If this function returns + * successfully, the contents of pkt will be completely + * overwritten by the returned data. On failure, pkt is not + * touched. + * + * @return 0 on success. AVERROR(EAGAIN) if more packets need to be sent to the + * filter (using av_bsf_send_packet()) to get more output. AVERROR_EOF if there + * will be no further output from the filter. Another negative AVERROR value if + * an error occurs. + * + * @note one input packet may result in several output packets, so after sending + * a packet with av_bsf_send_packet(), this function needs to be called + * repeatedly until it stops returning 0. It is also possible for a filter to + * output fewer packets than were sent to it, so this function may return + * AVERROR(EAGAIN) immediately after a successful av_bsf_send_packet() call. + *) +function av_bsf_receive_packet(ctx: PAVBSFContext; pkt: PAVPacket): cint; + cdecl; external av__codec; + +(** + * Free a bitstream filter context and everything associated with it; write NULL + * into the supplied pointer. + *) +procedure av_bsf_free(ctx: PPAVBSFContext); + cdecl; external av__codec; + +(** + * Get the AVClass for AVBSFContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + *) +function av_bsf_get_class(): {const} PAVClass; + cdecl; external av__codec; + +(** + * Allocate empty list of bitstream filters. + * The list must be later freed by av_bsf_list_free() + * or finalized by av_bsf_list_finalize(). + * + * @return Pointer to @ref AVBSFList on success, NULL in case of failure + *) +function av_bsf_list_alloc(): PAVBSFList; + cdecl; external av__codec; + +(** + * Free list of bitstream filters. + * + * @param lst Pointer to pointer returned by av_bsf_list_alloc() + *) +procedure av_bsf_list_free(lst: PPAVBSFList); + cdecl; external av__codec; + +(** + * Append bitstream filter to the list of bitstream filters. + * + * @param lst List to append to + * @param bsf Filter context to be appended + * + * @return >=0 on success, negative AVERROR in case of failure + *) +function av_bsf_list_append(lst: PAVBSFList; bsf: PAVBSFContext): cint; + cdecl; external av__codec; + +(** + * Construct new bitstream filter context given it's name and options + * and append it to the list of bitstream filters. + * + * @param lst List to append to + * @param bsf_name Name of the bitstream filter + * @param options Options for the bitstream filter, can be set to NULL + * + * @return >=0 on success, negative AVERROR in case of failure + *) +function av_bsf_list_append2(lst: PAVBSFList; bsf_name: {const} Pcchar; options: PPAVDictionary): cint; + cdecl; external av__codec; + +(** + * Finalize list of bitstream filters. + * + * This function will transform @ref AVBSFList to single @ref AVBSFContext, + * so the whole chain of bitstream filters can be treated as single filter + * freshly allocated by av_bsf_alloc(). + * If the call is successful, @ref AVBSFList structure is freed and lst + * will be set to NULL. In case of failure, caller is responsible for + * freeing the structure by av_bsf_list_free() + * + * @param lst Filter list structure to be transformed + * @param[out] bsf Pointer to be set to newly created @ref AVBSFContext structure + * representing the chain of bitstream filters + * + * @return >=0 on success, negative AVERROR in case of failure + *) +function av_bsf_list_finalize(lst: PPAVBSFList; bsf: PPAVBSFContext): cint; + cdecl; external av__codec; + +(** + * Parse string describing list of bitstream filters and create single + * @ref AVBSFContext describing the whole chain of bitstream filters. + * Resulting @ref AVBSFContext can be treated as any other @ref AVBSFContext freshly + * allocated by av_bsf_alloc(). + * + * @param str String describing chain of bitstream filters in format + * `bsf1[=opt1=val1:opt2=val2][,bsf2]` + * @param[out] bsf Pointer to be set to newly created @ref AVBSFContext structure + * representing the chain of bitstream filters + * + * @return >=0 on success, negative AVERROR in case of failure + *) +function av_bsf_list_parse_str(str: {const} Pcchar; bsf: PPAVBSFContext): cint; + cdecl; external av__codec; + +(** + * Get null/pass-through bitstream filter. + * + * @param[out] bsf Pointer to be set to new instance of pass-through bitstream filter + * + * @return + *) +function av_bsf_get_null_filter(bsf: PPAVBSFContext): cint; + cdecl; external av__codec; + +(* memory *) + +(** + * Same behaviour av_fast_malloc but the buffer has additional + * FF_INPUT_BUFFER_PADDING_SIZE at the end which will will always be 0. + * + * In addition the whole buffer will initially and after resizes + * be 0-initialized so that no uninitialized data will ever appear. + *) +procedure av_fast_padded_malloc(ptr: pointer; size: Pcuint; min_size: size_t); + cdecl; external av__codec; + +(** + * Same behaviour av_fast_padded_malloc except that buffer will always + * be 0-initialized after call. + *) +procedure av_fast_padded_mallocz(ptr: pointer; size: Pcuint; min_size: size_t); + cdecl; external av__codec; + +(** + * Encode extradata length to a buffer. Used by xiph codecs. + * + * @param s buffer to write to; must be at least (v/255+1) bytes long + * @param v size of extradata in bytes + * @return number of bytes written to the buffer. + *) +function av_xiphlacing(s: PByte; v: cuint): cuint; + cdecl; external av__codec; + +{$IFDEF FF_API_USER_VISIBLE_AVHWACCEL} +(** + * Register the hardware accelerator hwaccel. + * + * @deprecated This function doesn't do anything. + *) +procedure av_register_hwaccel (hwaccel: PAVHWAccel) + cdecl; external av__codec; deprecated; + +(** + * If hwaccel is NULL, returns the first registered hardware accelerator, + * if hwaccel is non-NULL, returns the next registered hardware accelerator + * after hwaccel, or NULL if hwaccel is the last one. + * + * @deprecated AVHWaccel structures contain no user-serviceable parts, so + * this function should not be used. + *) +function av_hwaccel_next (hwaccel: {const} PAVHWAccel): PAVHWAccel; + cdecl; external av__codec; deprecated; +{$ENDIF} + +{$IFDEF FF_API_LOCKMGR} +(** + * Lock operation used by lockmgr + * + * @deprecated Deprecated together with av_lockmgr_register(). + *) +type + TAVLockOp = ( + AV_LOCK_CREATE, ///< Create a mutex + AV_LOCK_OBTAIN, ///< Lock the mutex + AV_LOCK_RELEASE, ///< Unlock the mutex + AV_LOCK_DESTROY ///< Free mutex resources + ); + +(** + * Register a user provided lock manager supporting the operations + * specified by AVLockOp. The "mutex" argument to the function points + * to a (void * ) where the lockmgr should store/get a pointer to a user + * allocated mutex. It is NULL upon AV_LOCK_CREATE and equal to the + * value left by the last call for all other ops. If the lock manager is + * unable to perform the op then it should leave the mutex in the same + * state as when it was called and return a non-zero value. However, + * when called with AV_LOCK_DESTROY the mutex will always be assumed to + * have been successfully destroyed. If av_lockmgr_register succeeds + * it will return a non-negative value, if it fails it will return a + * negative value and destroy all mutex and unregister all callbacks. + * av_lockmgr_register is not thread-safe, it must be called from a + * single thread before any calls which make use of locking are used. + * + * @param cb User defined callback. av_lockmgr_register invokes calls + * to this callback and the previously registered callback. + * The callback will be used to create more than one mutex + * each of which must be backed by its own underlying locking + * mechanism (i.e. do not use a single static object to + * implement your lock manager). If cb is set to NULL the + * lockmgr will be unregistered. + * + * @deprecated This function does nothing, and always returns 0. Be sure to + * build with thread support to get basic thread safety. + *) +// ToDo: Implement and test this +//function av_lockmgr_register(cb: function (mutex: Ppointer; op: TAVLockOp)): cint; +// cdecl; external av__codec; deprecated; +{$ENDIF} + +(** + * Get the type of the given codec. + *) +function avcodec_get_type(codec_id: TAVCodecID): TAVMediaType; + cdecl; external av__codec; + +(** + * Get the name of a codec. + * @return a static string identifying the codec; never NULL + *) +function avcodec_get_name(id: TAVCodecID): PAnsiChar; + cdecl; external av__codec; + +(** + * @return a positive value if s is open (i.e. avcodec_open2() was called on it + * with no corresponding avcodec_close()), 0 otherwise. + *) +function avcodec_is_open(s: PAVCodecContext): cint; + cdecl; external av__codec; + +(** + * @return a non-zero number if codec is an encoder, zero otherwise + *) +function av_codec_is_encoder(codec: {const} PAVCodec): cint; + cdecl; external av__codec; + +(** + * @return a non-zero number if codec is a decoder, zero otherwise + *) +function av_codec_is_decoder(codec: {const} PAVCodec): cint; + cdecl; external av__codec; + +(** + * @return descriptor for given codec ID or NULL if no descriptor exists. + *) +function avcodec_descriptor_get(id: TAVCodecID): PAVCodecDescriptor; + cdecl; external av__codec; + +(** + * Iterate over all codec descriptors known to libavcodec. + * + * @param prev previous descriptor. NULL to get the first descriptor. + * + * @return next descriptor or NULL after the last descriptor + *) +function avcodec_descriptor_next(prev: {const} PAVCodecDescriptor): PAVCodecDescriptor; + cdecl; external av__codec; + +(** + * @return codec descriptor with the given name or NULL if no such descriptor + * exists. + *) +function avcodec_descriptor_get_by_name(name: {const} PAnsiChar): PAVCodecDescriptor; + cdecl; external av__codec; + +(** + * Allocate a CPB properties structure and initialize its fields to default + * values. + * + * @param size if non-NULL, the size of the allocated struct will be written + * here. This is useful for embedding it in side data. + * + * @return the newly allocated struct or NULL on failure + *) +function av_cpb_properties_alloc(size: Psize_t): PAVCPBProperties; + cdecl; external av__codec; + +(** + * @} + *) + +implementation + +end. diff --git a/src/lib/ffmpeg-4.0/avformat.pas b/src/lib/ffmpeg-4.0/avformat.pas new file mode 100644 index 00000000..b1fcea54 --- /dev/null +++ b/src/lib/ffmpeg-4.0/avformat.pas @@ -0,0 +1,3280 @@ +(* + * copyright (c) 2001 Fabrice Bellard + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of Pascal porting of ffmpeg. + * - Originally by Victor Zinetz for Delphi and Free Pascal on Windows. + * - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT + * in the source codes. + * - Changes and updates by the UltraStar Deluxe Team + * + * Conversion of version 2.0 libavformat/avformat.h + * Version: 56.4.101 + *) + +unit avformat; + +{$IFDEF FPC} + {$MODE DELPHI } + {$PACKENUM 4} (* use 4-byte enums *) + {$PACKRECORDS C} (* C/C++-compatible record packing *) +{$ELSE} + {$MINENUMSIZE 4} (* use 4-byte enums *) +{$ENDIF} + +{$I switches.inc} (* for the HasInline define *) +{$I ff_api-defines.inc} (* FF_API_* defines *) + +{$IFDEF DARWIN} + {$linklib libavformat} +{$ENDIF} + +interface + +uses + ctypes, + avcodec, + avio, + avutil, + rational, + {$IFDEF UNIX} + BaseUnix, + {$ENDIF} + SysUtils, + UConfig; + +const + (* + * IMPORTANT: This headers are valid for all minor revisions of ffmpeg + * version 2.4.* + *) + (* Max. supported version by this header *) + LIBAVFORMAT_MAX_VERSION_MAJOR = 58; + LIBAVFORMAT_MAX_VERSION_MINOR = 20; + LIBAVFORMAT_MAX_VERSION_RELEASE = 100; + LIBAVFORMAT_MAX_VERSION = (LIBAVFORMAT_MAX_VERSION_MAJOR * VERSION_MAJOR) + + (LIBAVFORMAT_MAX_VERSION_MINOR * VERSION_MINOR) + + (LIBAVFORMAT_MAX_VERSION_RELEASE * VERSION_RELEASE); + + (* Min. supported version by this header *) + LIBAVFORMAT_MIN_VERSION_MAJOR = 58; + LIBAVFORMAT_MIN_VERSION_MINOR = 12; + LIBAVFORMAT_MIN_VERSION_RELEASE = 100; + LIBAVFORMAT_MIN_VERSION = (LIBAVFORMAT_MIN_VERSION_MAJOR * VERSION_MAJOR) + + (LIBAVFORMAT_MIN_VERSION_MINOR * VERSION_MINOR) + + (LIBAVFORMAT_MIN_VERSION_RELEASE * VERSION_RELEASE); + +(* Check if linked versions are supported *) +{$IF (LIBAVFORMAT_VERSION < LIBAVFORMAT_MIN_VERSION)} + {$MESSAGE Error 'Linked version of libavformat is too old!'} +{$IFEND} + +(* Check if linked versions are supported *) +{$IF (LIBAVFORMAT_VERSION > LIBAVFORMAT_MAX_VERSION)} + {$MESSAGE Error 'Linked version of libavformat is not yet supported!'} +{$IFEND} + +{ +const + LIBAVFORMAT_BUILD = LIBAVFORMAT_VERSION_INT; + LIBAVFORMAT_IDENT = 'Lavf' AV_STRINGIFY(LIBAVFORMAT_VERSION); +} + +(** + * @defgroup libavf libavformat + * I/O and Muxing/Demuxing Library + * + * Libavformat (lavf) is a library for dealing with various media container + * formats. Its main two purposes are demuxing - i.e. splitting a media file + * into component streams, and the reverse process of muxing - writing supplied + * data in a specified container format. It also has an @ref lavf_io + * "I/O module" which supports a number of protocols for accessing the data (e.g. + * file, tcp, http and others). Before using lavf, you need to call + * av_register_all() to register all compiled muxers, demuxers and protocols. + * Unless you are absolutely sure you won't use libavformat's network + * capabilities, you should also call avformat_network_init(). + * + * A supported input format is described by an AVInputFormat struct, conversely + * an output format is described by AVOutputFormat. You can iterate over all + * registered input/output formats using the av_iformat_next() / + * av_oformat_next() functions. The protocols layer is not part of the public + * API, so you can only get the names of supported protocols with the + * avio_enum_protocols() function. + * + * Main lavf structure used for both muxing and demuxing is AVFormatContext, + * which exports all information about the file being read or written. As with + * most Libavformat structures, its size is not part of public ABI, so it cannot be + * allocated on stack or directly with av_malloc(). To create an + * AVFormatContext, use avformat_alloc_context() (some functions, like + * avformat_open_input() might do that for you). + * + * Most importantly an AVFormatContext contains: + * @li the @ref AVFormatContext.iformat "input" or @ref AVFormatContext.oformat + * "output" format. It is either autodetected or set by user for input; + * always set by user for output. + * @li an @ref AVFormatContext.streams "array" of AVStreams, which describe all + * elementary streams stored in the file. AVStreams are typically referred to + * using their index in this array. + * @li an @ref AVFormatContext.pb "I/O context". It is either opened by lavf or + * set by user for input, always set by user for output (unless you are dealing + * with an AVFMT_NOFILE format). + * + * @section lavf_options Passing options to (de)muxers + * It is possible to configure lavf muxers and demuxers using the @ref avoptions + * mechanism. Generic (format-independent) libavformat options are provided by + * AVFormatContext, they can be examined from a user program by calling + * av_opt_next() / av_opt_find() on an allocated AVFormatContext (or its AVClass + * from avformat_get_class()). Private (format-specific) options are provided by + * AVFormatContext.priv_data if and only if AVInputFormat.priv_class / + * AVOutputFormat.priv_class of the corresponding format struct is non-NULL. + * Further options may be provided by the @ref AVFormatContext.pb "I/O context", + * if its AVClass is non-NULL, and the protocols layer. See the discussion on + * nesting in @ref avoptions documentation to learn how to access those. + * + * @section urls + * URL strings in libavformat are made of a scheme/protocol, a ':', and a + * scheme specific string. URLs without a scheme and ':' used for local files + * are supported but deprecated. "file:" should be used for local files. + * + * It is important that the scheme string is not taken from untrusted + * sources without checks. + * + * Note that some schemes/protocols are quite powerful, allowing access to + * both local and remote files, parts of them, concatenations of them, local + * audio and video devices and so on. + * + * @{ + * + * @defgroup lavf_decoding Demuxing + * @defgroup lavf_decoding Demuxing + * @ + * Demuxers read a media file and split it into chunks of data (@em packets). A + * @ref AVPacket "packet" contains one or more encoded frames which belongs to a + * single elementary stream. In the lavf API this process is represented by the + * avformat_open_input() function for opening a file, av_read_frame() for + * reading a single packet and finally avformat_close_input(), which does the + * cleanup. + * + * @section lavf_decoding_open Opening a media file + * The minimum information required to open a file is its URL, which + * is passed to avformat_open_input(), as in the following code: + * @code + * const char *url = "file:in.mp3"; + * AVFormatContext *s = NULL; + * int ret = avformat_open_input(&s, url, NULL, NULL); + * if (ret < 0) + * abort(); + * @endcode + * The above code attempts to allocate an AVFormatContext, open the + * specified file (autodetecting the format) and read the header, exporting the + * information stored there into s. Some formats do not have a header or do not + * store enough information there, so it is recommended that you call the + * avformat_find_stream_info() function which tries to read and decode a few + * frames to find missing information. + * + * In some cases you might want to preallocate an AVFormatContext yourself with + * avformat_alloc_context() and do some tweaking on it before passing it to + * avformat_open_input(). One such case is when you want to use custom functions + * for reading input data instead of lavf internal I/O layer. + * To do that, create your own AVIOContext with avio_alloc_context(), passing + * your reading callbacks to it. Then set the @em pb field of your + * AVFormatContext to newly created AVIOContext. + * + * Since the format of the opened file is in general not known until after + * avformat_open_input() has returned, it is not possible to set demuxer private + * options on a preallocated context. Instead, the options should be passed to + * avformat_open_input() wrapped in an AVDictionary: + * @code + * AVDictionary *options = NULL; + * av_dict_set(&options, "video_size", "640x480", 0); + * av_dict_set(&options, "pixel_format", "rgb24", 0); + * + * if (avformat_open_input(&s, url, NULL, &options) < 0) + * abort(); + * av_dict_free(&options); + * @endcode + * This code passes the private options 'video_size' and 'pixel_format' to the + * demuxer. They would be necessary for e.g. the rawvideo demuxer, since it + * cannot know how to interpret raw video data otherwise. If the format turns + * out to be something different than raw video, those options will not be + * recognized by the demuxer and therefore will not be applied. Such unrecognized + * options are then returned in the options dictionary (recognized options are + * consumed). The calling program can handle such unrecognized options as it + * wishes, e.g. + * @code + * AVDictionaryEntry *e; + * if (e = av_dict_get(options, "", NULL, AV_DICT_IGNORE_SUFFIX)) { + * fprintf(stderr, "Option %s not recognized by the demuxer.\n", e->key); + * abort(); + * } + * @endcode + * + * After you have finished reading the file, you must close it with + * avformat_close_input(). It will free everything associated with the file. + * + * @section lavf_decoding_read Reading from an opened file + * Reading data from an opened AVFormatContext is done by repeatedly calling + * av_read_frame() on it. Each call, if successful, will return an AVPacket + * containing encoded data for one AVStream, identified by + * AVPacket.stream_index. This packet may be passed straight into the libavcodec + * decoding functions avcodec_send_packet() or avcodec_decode_subtitle2() if the + * caller wishes to decode the data. + * + * AVPacket.pts, AVPacket.dts and AVPacket.duration timing information will be + * set if known. They may also be unset (i.e. AV_NOPTS_VALUE for + * pts/dts, 0 for duration) if the stream does not provide them. The timing + * information will be in AVStream.time_base units, i.e. it has to be + * multiplied by the timebase to convert them to seconds. + * + * If AVPacket.buf is set on the returned packet, then the packet is + * allocated dynamically and the user may keep it indefinitely. + * Otherwise, if AVPacket.buf is NULL, the packet data is backed by a + * static storage somewhere inside the demuxer and the packet is only valid + * until the next av_read_frame() call or closing the file. If the caller + * requires a longer lifetime, av_dup_packet() will make an av_malloc()ed copy + * of it. + * In both cases, the packet must be freed with av_packet_unref() when it is no + * longer needed. + * + * @section lavf_decoding_seek Seeking + * @ + * + * @defgroup lavf_encoding Muxing + * @ + * Muxers take encoded data in the form of @ref AVPacket "AVPackets" and write + * it into files or other output bytestreams in the specified container format. + * + * The main API functions for muxing are avformat_write_header() for writing the + * file header, av_write_frame() / av_interleaved_write_frame() for writing the + * packets and av_write_trailer() for finalizing the file. + * + * At the beginning of the muxing process, the caller must first call + * avformat_alloc_context() to create a muxing context. The caller then sets up + * the muxer by filling the various fields in this context: + * + * - The @ref AVFormatContext.oformat "oformat" field must be set to select the + * muxer that will be used. + * - Unless the format is of the AVFMT_NOFILE type, the @ref AVFormatContext.pb + * "pb" field must be set to an opened IO context, either returned from + * avio_open2() or a custom one. + * - Unless the format is of the AVFMT_NOSTREAMS type, at least one stream must + * be created with the avformat_new_stream() function. The caller should fill + * the @ref AVStream.codecpar "stream codec parameters" information, such as the + * codec @ref AVCodecParameters.codec_type "type", @ref AVCodecParameters.codec_id + * "id" and other parameters (e.g. width / height, the pixel or sample format, + * etc.) as known. The @ref AVStream.time_base "stream timebase" should + * be set to the timebase that the caller desires to use for this stream (note + * that the timebase actually used by the muxer can be different, as will be + * described later). + * - It is advised to manually initialize only the relevant fields in + * AVCodecParameters, rather than using @ref avcodec_parameters_copy() during + * remuxing: there is no guarantee that the codec context values remain valid + * for both input and output format contexts. + * - The caller may fill in additional information, such as @ref + * AVFormatContext.metadata "global" or @ref AVStream.metadata "per-stream" + * metadata, @ref AVFormatContext.chapters "chapters", @ref + * AVFormatContext.programs "programs", etc. as described in the + * AVFormatContext documentation. Whether such information will actually be + * stored in the output depends on what the container format and the muxer + * support. + * + * When the muxing context is fully set up, the caller must call + * avformat_write_header() to initialize the muxer internals and write the file + * header. Whether anything actually is written to the IO context at this step + * depends on the muxer, but this function must always be called. Any muxer + * private options must be passed in the options parameter to this function. + * + * The data is then sent to the muxer by repeatedly calling av_write_frame() or + * av_interleaved_write_frame() (consult those functions' documentation for + * discussion on the difference between them; only one of them may be used with + * a single muxing context, they should not be mixed). Do note that the timing + * information on the packets sent to the muxer must be in the corresponding + * AVStream's timebase. That timebase is set by the muxer (in the + * avformat_write_header() step) and may be different from the timebase + * requested by the caller. + * + * Once all the data has been written, the caller must call av_write_trailer() + * to flush any buffered packets and finalize the output file, then close the IO + * context (if any) and finally free the muxing context with + * avformat_free_context(). + * @} + * + * @defgroup lavf_io I/O Read/Write + * @{ + * @section lavf_io_dirlist Directory listing + * The directory listing API makes it possible to list files on remote servers. + * + * Some of possible use cases: + * - an "open file" dialog to choose files from a remote location, + * - a recursive media finder providing a player with an ability to play all + * files from a given directory. + * + * @subsection lavf_io_dirlist_open Opening a directory + * At first, a directory needs to be opened by calling avio_open_dir() + * supplied with a URL and, optionally, ::AVDictionary containing + * protocol-specific parameters. The function returns zero or positive + * integer and allocates AVIODirContext on success. + * + * @code + * AVIODirContext *ctx = NULL; + * if (avio_open_dir(&ctx, "smb://example.com/some_dir", NULL) < 0) { + * fprintf(stderr, "Cannot open directory.\n"); + * abort(); + * } + * @endcode + * + * This code tries to open a sample directory using smb protocol without + * any additional parameters. + * + * @subsection lavf_io_dirlist_read Reading entries + * Each directory's entry (i.e. file, another directory, anything else + * within ::AVIODirEntryType) is represented by AVIODirEntry. + * Reading consecutive entries from an opened AVIODirContext is done by + * repeatedly calling avio_read_dir() on it. Each call returns zero or + * positive integer if successful. Reading can be stopped right after the + * NULL entry has been read -- it means there are no entries left to be + * read. The following code reads all entries from a directory associated + * with ctx and prints their names to standard output. + * @code + * AVIODirEntry *entry = NULL; + * for (;;) { + * if (avio_read_dir(ctx, &entry) < 0) { + * fprintf(stderr, "Cannot list directory.\n"); + * abort(); + * } + * if (!entry) + * break; + * printf("%s\n", entry->name); + * avio_free_directory_entry(&entry); + * } + * @endcode + * @} + * + * @defgroup lavf_codec Demuxers + * @{ + * @defgroup lavf_codec_native Native Demuxers + * @{ + * @} + * @defgroup lavf_codec_wrappers External library wrappers + * @{ + * @} + * @} + * @defgroup lavf_protos I/O Protocols + * @{ + * @} + * @defgroup lavf_internal Internal + * @{ + * @} + * @} + *) + +//type + +(* + * @defgroup metadata_api Public Metadata API + * @ + * @ingroup libavf + * The metadata API allows libavformat to export metadata tags to a client + * application when demuxing. Conversely it allows a client application to + * set metadata when muxing. + * + * Metadata is exported or set as pairs of key/value strings in the 'metadata' + * fields of the AVFormatContext, AVStream, AVChapter and AVProgram structs + * using the @ref lavu_dict "AVDictionary" API. Like all strings in FFmpeg, + * metadata is assumed to be UTF-8 encoded Unicode. Note that metadata + * exported by demuxers isn't checked to be valid UTF-8 in most cases. + * + * Important concepts to keep in mind: + * - Keys are unique; there can never be 2 tags with the same key. This is + * also meant semantically, i.e., a demuxer should not knowingly produce + * several keys that are literally different but semantically identical. + * E.g., key=Author5, key=Author6. In this example, all authors must be + * placed in the same tag. + * - Metadata is flat, not hierarchical; there are no subtags. If you + * want to store, e.g., the email address of the child of producer Alice + * and actor Bob, that could have key=alice_and_bobs_childs_email_address. + * - Several modifiers can be applied to the tag name. This is done by + * appending a dash character ('-') and the modifier name in the order + * they appear in the list below -- e.g. foo-eng-sort, not foo-sort-eng. + * - language -- a tag whose value is localized for a particular language + * is appended with the ISO 639-2/B 3-letter language code. + * For example: Author-ger=Michael, Author-eng=Mike + * The original/default language is in the unqualified "Author" tag. + * A demuxer should set a default if it sets any translated tag. + * - sorting -- a modified version of a tag that should be used for + * sorting will have '-sort' appended. E.g. artist="The Beatles", + * artist-sort="Beatles, The". + * + * - Demuxers attempt to export metadata in a generic format, however tags + * with no generic equivalents are left as they are stored in the container. + * Follows a list of generic tag names: + * + @verbatim + album -- name of the set this work belongs to + album_artist -- main creator of the set/album, if different from artist. + e.g. "Various Artists" for compilation albums. + artist -- main creator of the work + comment -- any additional description of the file. + composer -- who composed the work, if different from artist. + copyright -- name of copyright holder. + creation_time-- date when the file was created, preferably in ISO 8601. + date -- date when the work was created, preferably in ISO 8601. + disc -- number of a subset, e.g. disc in a multi-disc collection. + encoder -- name/settings of the software/hardware that produced the file. + encoded_by -- person/group who created the file. + filename -- original name of the file. + genre -- . + language -- main language in which the work is performed, preferably + in ISO 639-2 format. Multiple languages can be specified by + separating them with commas. + performer -- artist who performed the work, if different from artist. + E.g for "Also sprach Zarathustra", artist would be "Richard + Strauss" and performer "London Philharmonic Orchestra". + publisher -- name of the label/publisher. + service_name -- name of the service in broadcasting (channel name). + service_provider -- name of the service provider in broadcasting. + title -- name of the work. + track -- number of this work in the set, can be in form current/total. + variant_bitrate -- the total bitrate of the bitrate variant that the current stream is part of + @endverbatim + * + * Look in the examples section for an application example how to use the Metadata API. + * + * @ + *) + +(* packet functions *) + +(** + * Allocate and read the payload of a packet and initialize its fields with + * default values. + * + * @param s associated IO context + * @param pkt packet + * @param size desired payload size + * @return >0 (read size) if OK, AVERROR_xxx otherwise + *) +function av_get_packet(s: PAVIOContext; var pkt: TAVPacket; size: cint): cint; + cdecl; external av__format; + +(** + * Read data and append it to the current content of the AVPacket. + * If pkt->size is 0 this is identical to av_get_packet. + * Note that this uses av_grow_packet and thus involves a realloc + * which is inefficient. Thus this function should only be used + * when there is no reasonable way to know (an upper bound of) + * the final size. + * + * @param s associated IO context + * @param pkt packet + * @param size amount of data to read + * @return >0 (read size) if OK, AVERROR_xxx otherwise, previous data + * will not be lost even if an error occurs. + *) +function av_append_packet(s: PAVIOContext; var pkt: TAVPacket; size: cint): cint; + cdecl; external av__format; + +{$IFNDEF FPC} + //defines for delphi + size_t = cardinal; +{$ENDIF} + +(*************************************************) +(* input/output formats *) + +type + (** + * This structure contains the data a format has to probe a file. + *) + TAVProbeData = record + filename: PAnsiChar; + buf: PByteArray; (**< Buffer must have AVPROBE_PADDING_SIZE of extra allocated bytes filled with zero. *) + buf_size: cint; (**< Size of buf except extra allocated bytes *) + {const} mime_type: PAnsiChar; (**< mime_type, when known. *) + end; + +const + AVPROBE_SCORE_EXTENSION = 50; ///< score for file extension + AVPROBE_SCORE_MIME = 75; ///< score for file mime type + AVPROBE_SCORE_MAX = 100; ///< maximum score + + AVPROBE_SCORE_RETRY = (AVPROBE_SCORE_MAX DIV 4); + AVPROBE_SCORE_STREAM_RETRY = (AVPROBE_SCORE_MAX DIV 4-1); + + AVPROBE_PADDING_SIZE = 32; ///< extra allocated bytes at the end of the probe buffer + +/// Demuxer will use avio_open, no opened file should be provided by the caller. + AVFMT_NOFILE = $0001; + AVFMT_NEEDNUMBER = $0002; (**< Needs '%d' in filename. *) + AVFMT_SHOW_IDS = $0008; (**< Show format stream IDs numbers. *) + AVFMT_GLOBALHEADER = $0040; (**< Format wants global header. *) + AVFMT_NOTIMESTAMPS = $0080; (**< Format does not need / have any timestamps. *) + AVFMT_GENERIC_INDEX = $0100; (**< Use generic index building code. *) + AVFMT_TS_DISCONT = $0200; (**< Format allows timestamp discontinuities. *) + AVFMT_VARIABLE_FPS = $0400; (**< Format allows variable fps. *) + AVFMT_NODIMENSIONS = $0800; (**< Format does not need width/height *) + AVFMT_NOSTREAMS = $1000; (**< Format does not require any streams *) + AVFMT_NOBINSEARCH = $2000; (**< Format does not allow to fall back to binary search via read_timestamp *) + AVFMT_NOGENSEARCH = $4000; (**< Format does not allow to fall back to generic search *) + AVFMT_NO_BYTE_SEEK = $8000; (**< Format does not allow seeking by bytes *) + AVFMT_ALLOW_FLUSH = $10000;(**< Format allows flushing. If not set, the muxer will not receive a NULL packet in the write_packet function. *) + AVFMT_TS_NONSTRICT = $20000;(**< Format does not require strictly + increasing timestamps, but they must + still be monotonic *) + AVFMT_TS_NEGATIVE = $40000; (**< Format allows muxing negative + timestamps. If not set the timestamp + will be shifted in av_write_frame and + av_interleaved_write_frame so they + start from 0. + The user or muxer can override this through + AVFormatContext.avoid_negative_ts + *) + + AVFMT_SEEK_TO_PTS = $4000000; (**< Seeking is based on PTS *) + + // used by AVIndexEntry + AVINDEX_KEYFRAME = $0001; + AVINDEX_DISCARD_FRAME = $0002; (** + * Flag is used to indicate which frame should be discarded after decoding. + *) + AVFMTCTX_NOHEADER = $0001; (**< signal that no header is present + (streams are added dynamically) *) + AVFMTCTX_UNSEEKABLE = $0002; (**< signal that the stream is definitely + not seekable, and attempts to call the + seek function will fail. For some + network protocols (e.g. HLS), this can + change dynamically at runtime. *) + + + MAX_STREAMS = 20; + + AVFMT_FLAG_GENPTS = $0001; ///< Generate missing pts even if it requires parsing future frames. + AVFMT_FLAG_IGNIDX = $0002; ///< Ignore index. + AVFMT_FLAG_NONBLOCK = $0004; ///< Do not block when reading packets from input. + AVFMT_FLAG_IGNDTS = $0008; ///< Ignore DTS on frames that contain both DTS & PTS + AVFMT_FLAG_NOFILLIN = $0010; ///< Do not infer any values from other values, just return what is stored in the container + AVFMT_FLAG_NOPARSE = $0020; ///< Do not use AVParsers, you also must set AVFMT_FLAG_NOFILLIN as the fillin code works on frames and no parsing -> no frames. Also seeking to frames can not work if parsing to find frame boundaries has been disabled + AVFMT_FLAG_NOBUFFER = $0040; ///< Do not buffer frames when possible + AVFMT_FLAG_CUSTOM_IO = $0080; ///< The caller has supplied a custom AVIOContext, don't avio_close() it. + AVFMT_FLAG_DISCARD_CORRUPT = $0100; ///< Discard frames marked corrupted + AVFMT_FLAG_FLUSH_PACKETS = $0200; ///< Flush the AVIOContext every packet. +(** + * When muxing, try to avoid writing any random/volatile data to the output. + * This includes any random IDs, real-time timestamps/dates, muxer version, etc. + * + * This flag is mainly intended for testing. + *) + AVFMT_FLAG_BITEXACT = $0400; + AVFMT_FLAG_MP4A_LATM = $8000; ///< Enable RTP MP4A-LATM payload + AVFMT_FLAG_SORT_DTS = $10000; ///< try to interleave outputted packets by dts (using this flag can slow demuxing down) + AVFMT_FLAG_PRIV_OPT = $20000; ///< Enable use of private options by delaying codec open (this could be made default once all code is converted) + {$IFDEF FF_API_LAVF_KEEPSIDE_FLAG} + AVFMT_FLAG_KEEP_SIDE_DATA = $40000; ///< Deprecated, does nothing. + {$ENDIF} + AVFMT_FLAG_FAST_SEEK = $80000; ///< Enable fast, but inaccurate seeks for some formats + AVFMT_FLAG_SHORTEST = $100000; ///< Stop muxing when the shortest stream stops. + AVFMT_FLAG_AUTO_BSF = $200000; ///< Add bitstream filters as requested by the muxer + + // used by AVStream + AVSTREAM_EVENT_FLAG_METADATA_UPDATED = $0001; ///< The call resulted in updated metadata. + MAX_STD_TIMEBASES = (30*12+30+3+6); + MAX_REORDER_DELAY = 16; + + // used by TAVProgram + AV_PROGRAM_RUNNING = 1; + + + AV_DISPOSITION_DEFAULT = $0001; + AV_DISPOSITION_DUB = $0002; + AV_DISPOSITION_ORIGINAL = $0004; + AV_DISPOSITION_COMMENT = $0008; + AV_DISPOSITION_LYRICS = $0010; + AV_DISPOSITION_KARAOKE = $0020; + + (** + * Track should be used during playback by default. + * Useful for subtitle track that should be displayed + * even when user did not explicitly ask for subtitles. + *) + AV_DISPOSITION_FORCED = $0040; + AV_DISPOSITION_HEARING_IMPAIRED = $0080; (**< stream for hearing impaired audiences *) + AV_DISPOSITION_VISUAL_IMPAIRED = $0100; (**< stream for visual impaired audiences *) + AV_DISPOSITION_CLEAN_EFFECTS = $0200; (**< stream without voice *) +(** + * The stream is stored in the file as an attached picture/"cover art" (e.g. + * APIC frame in ID3v2). The first (usually only) packet associated with it + * will be returned among the first few packets read from the file unless + * seeking takes place. It can also be accessed at any time in + * AVStream.attached_pic. + *) + AV_DISPOSITION_ATTACHED_PIC = $0400; + +(** + * The stream is sparse, and contains thumbnail images, often corresponding + * to chapter markers. Only ever used with AV_DISPOSITION_ATTACHED_PIC. + *) + AV_DISPOSITION_TIMED_THUMBNAILS = $0800; + +(** + * To specify text track kind (different from subtitles default). + *) + AV_DISPOSITION_CAPTIONS = $10000; + AV_DISPOSITION_DESCRIPTIONS = $20000; + AV_DISPOSITION_METADATA = $40000; + AV_DISPOSITION_DEPENDENT = $80000; ///< dependent audio stream (mix_type=0 in mpegts) + +(** + * Options for behavior on timestamp wrap detection. + *) + AV_PTS_WRAP_IGNORE = 0; ///< ignore the wrap + AV_PTS_WRAP_ADD_OFFSET = 1; ///< add the format specific offset on wrap detection + AV_PTS_WRAP_SUB_OFFSET = -1; ///< subtract the format specific offset on wrap detection + + // used by TAVFormatContext.debug + FF_FDEBUG_TS = 0001; + AVFMT_EVENT_FLAG_METADATA_UPDATED = 0001; ///< The call resulted in updated metadata. + + RAW_PACKET_BUFFER_SIZE = 2500000; + + AVFMT_AVOID_NEG_TS_AUTO = -1; ///< Enabled when required by target format + AVFMT_AVOID_NEG_TS_MAKE_NON_NEGATIVE = 1; ///< Shift timestamps so they are non negative + AVFMT_AVOID_NEG_TS_MAKE_ZERO = 2; ///< Shift timestamps so that they start at 0 + +type + PPAVCodecTag = ^PAVCodecTag; + PAVCodecTag = Pointer; + + PAVOutputFormat = ^TAVOutputFormat; + PAVProbeData = ^TAVProbeData; + + PAVInputFormat = ^TAVInputFormat; + PAVIndexEntry = ^TAVIndexEntry; + + PPAVStream = ^PAVStream; + PAVStream = ^TAVStream; + PAVPacketList = ^TAVPacketList; + TAVPacketList = record + pkt: TAVPacket; + next: PAVPacketList; + end; (*AVPacketList*) + + PPAVProgram = ^PAVProgram; + PAVProgram = ^TAVProgram; + + PPAVFormatContext = ^PAVFormatContext; + PAVFormatContext = ^TAVFormatContext; + +(** + * Convert all the metadata sets from ctx according to the source and + * destination conversion tables. + * + * @param d_conv destination tags format conversion table + * @param s_conv source tags format conversion table + *) + PAVMetadataConv = ^TAVMetadataConv; + TAVMetadataConv = record + ctx: PAVFormatContext; + d_conv: {const} PAVMetadataConv; + s_conv: {const} PAVMetadataConv; + end; + + (** From libavdevice/avdevice.h **) + PPAVDeviceInfo = ^PAVDeviceInfo; + PAVDeviceInfo = ^TAVDeviceInfo; + TAVDeviceInfo = record + device_name: PAnsiChar; (**< device name, format depends on device *) + device_description: PAnsiChar; (**< human friendly name *) + end; {TAVDeviceInfo} + + PAVDeviceInfoList = ^TAVDeviceInfoList; + TAVDeviceInfoList = record + devices: PPAVDeviceInfo; (**< list of autodetected devices *) + nb_devices: cint; (**< number of autodetected devices *) + default_device: cint; (**< index of default device or -1 if no default *) + end; {TAVDeviceInfoList} + + PAVDeviceCapabilitiesQuery = ^TAVDeviceCapabilitiesQuery; + TAVDeviceCapabilitiesQuery = record + end; + + PFFFrac = ^TFFFrac; + TFFFrac = record + val: cint64; + num: cint64; + den: cint64; + end; + +(** + * @addtogroup lavf_encoding + * @ + *) + TAVOutputFormat = record + name: PAnsiChar; + (** + * Descriptive name for the format, meant to be more human-readable + * than name. You should use the NULL_IF_CONFIG_SMALL() macro + * to define it. + *) + long_name: PAnsiChar; + mime_type: PAnsiChar; + extensions: PAnsiChar; (**< comma-separated filename extensions *) + (* output support *) + audio_codec: TAVCodecID; (**< default audio codec *) + video_codec: TAVCodecID; (**< default video codec *) + subtitle_codec: TAVCodecID; (**< default subtitle codec *) + (** + * can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, + * AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS, + * AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_ALLOW_FLUSH, + * AVFMT_TS_NONSTRICT, AVFMT_TS_NEGATIVE + *) + flags: cint; + + (** + * List of supported codec_id-codec_tag pairs, ordered by "better + * choice first". The arrays are all terminated by AV_CODEC_ID_NONE. + *) + codec_tag: {const} PPAVCodecTag; + + priv_class: {const} PAVClass; ///< AVClass for the private context + + (***************************************************************** + * No fields below this line are part of the public API. They + * may not be used outside of libavformat and can be changed and + * removed at will. + * New public fields should be added right above. + ***************************************************************** + *) + next: PAVOutputFormat; + (** + * size of private data so that it can be allocated in the wrapper + *) + priv_data_size: cint; + + write_header: function (c: PAVFormatContext): cint; cdecl; + (** + * Write a packet. If AVFMT_ALLOW_FLUSH is set in flags, + * pkt can be NULL in order to flush data buffered in the muxer. + * When flushing, return 0 if there still is more data to flush, + * or 1 if everything was flushed and there is no more buffered + * data. + *) + write_packet: function (c: PAVFormatContext; pkt: PAVPacket): cint; cdecl; + write_trailer: function (c: PAVFormatContext): cint; cdecl; + (** + * Currently only used to set pixel format if not YUV420P. + *) + interleave_packet: function (s: PAVFormatContext; out_: PAVPacket; + in_: PAVPacket; flush: cint): cint; cdecl; + (** + * Test if the given codec can be stored in this container. + * + * @return 1 if the codec is supported, 0 if it is not. + * A negative number if unknown. + * MKTAG('A', 'P', 'I', 'C') if the codec is only supported as AV_DISPOSITION_ATTACHED_PIC + *) + query_codec: function (id: TAVCodecID; std_compliance: cint): cint; cdecl; + + get_output_timestamp: procedure (s: PAVFormatContext; stream: cint; + dts: Pcint64; wall: Pcint64); cdecl; + + (** + * Allows sending messages from application to device. + *) + control_message: function(s: PAVFormatContext; type_: cint; data: pointer; + data_size: size_t): cint; cdecl; + + (** + * Write an uncoded AVFrame. + * + * See av_write_uncoded_frame() for details. + * + * The library will free *frame afterwards, but the muxer can prevent it + * by setting the pointer to NULL. + *) + write_uncodec_frame: function(s: PAVFormatContext; stream_index: cint; + frame: PPAVFrame; flags: cuint): cint; cdecl; + + (** + * Returns device list with it properties. + * @see avdevice_list_devices() for more details. + *) + get_device_list: function(s: PAVFormatContext; device_list: PAVDeviceInfoList): cint; cdecl; + + (** + * Initialize device capabilities submodule. + * @see avdevice_capabilities_create() for more details. + *) + create_device_capabilities: function(s: PAVFormatContext; caps: PAVDeviceCapabilitiesQuery): cint; cdecl; + + (** + * Free device capabilities submodule. + * @see avdevice_capabilities_free() for more details. + *) + free_device_capabilities: function(s: PAVFormatContext; caps: PAVDeviceCapabilitiesQuery): cint; cdecl; + + data_codec: TAVCodecID; (**< default data codec *) + + (** + * Initialize format. May allocate data here, and set any AVFormatContext or + * AVStream parameters that need to be set before packets are sent. + * This method must not write output. + * + * Return 0 if streams were fully configured, 1 if not, negative AVERROR on failure + * + * Any allocations made here must be freed in deinit(). + *) + init: function(s: PAVFormatContext): cint; cdecl; + + (** + * Deinitialize format. If present, this is called whenever the muxer is being + * destroyed, regardless of whether or not the header has been written. + * + * If a trailer is being written, this is called after write_trailer(). + * + * This is called if init() fails as well. + *) + deinit: procedure(s: PAVFormatContext); + + (** + * Set up any necessary bitstream filtering and extract any extra data needed + * for the global header. + * Return 0 if more packets from this stream must be checked; 1 if not. + *) + check_bitstream: function(s: PAVFormatContext; pkt: {const} PAVPacket): cint; cdecl; + end; +(** + * @} + *) + +(** + * @addtogroup lavf_decoding + * @ + *) + TAVInputFormat = record + (** + * A comma separated list of short names for the format. New names + * may be appended with a minor bump. + *) + name: PAnsiChar; + + (** + * Descriptive name for the format, meant to be more human-readable + * than name. You should use the NULL_IF_CONFIG_SMALL() macro + * to define it. + *) + long_name: PAnsiChar; + + (** + * Can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_SHOW_IDS, + * AVFMT_GENERIC_INDEX, AVFMT_TS_DISCONT, AVFMT_NOBINSEARCH, + * AVFMT_NOGENSEARCH, AVFMT_NO_BYTE_SEEK, AVFMT_SEEK_TO_PTS. + *) + flags: cint; + + (** + * If extensions are defined, then no probe is done. You should + * usually not use extension format guessing because it is not + * reliable enough + *) + extensions: PAnsiChar; + + codec_tag: {const} PPAVCodecTag; + + priv_class: {const} PAVClass; ///< AVClass for the private context + + (** + * Comma-separated list of mime types. + * It is used check for matching mime types while probing. + * @see av_probe_input_format2 + *) + mime_type: {const} PAnsiChar; + + (***************************************************************** + * No fields below this line are part of the public API. They + * may not be used outside of libavformat and can be changed and + * removed at will. + * New public fields should be added right above. + ***************************************************************** + *) + next: PAVInputFormat; + + (** + * Raw demuxers store their codec ID here. + *) + raw_codec_id: cint; + + (** + * Size of private data so that it can be allocated in the wrapper. + *) + priv_data_size: cint; + + (** + * Tell if a given file has a chance of being parsed as this format. + * The buffer provided is guaranteed to be AVPROBE_PADDING_SIZE bytes + * big so you do not have to check for that unless you need more. + *) + read_probe: function (p: PAVProbeData): cint; cdecl; + + (** + * Read the format header and initialize the AVFormatContext + * structure. Return 0 if OK. Only used in raw format right + * now. 'avformat_new_stream' should be called to create new streams. + *) + read_header: function (c: PAVFormatContext): cint; cdecl; + + (** + * Read one packet and put it in 'pkt'. pts and flags are also + * set. 'avformat_new_stream' can be called only if the flag + * AVFMTCTX_NOHEADER is used. + * @return 0 on success, < 0 on error. + * When returning an error, pkt must not have been allocated + * or must be freed before returning + *) + read_packet: function (c: PAVFormatContext; var pkt: TAVPacket): cint; cdecl; + + (** + * Close the stream. The AVFormatContext and AVStreams are not + * freed by this function + *) + read_close: function (c: PAVFormatContext): cint; cdecl; + + (** + * Seek to a given timestamp relative to the frames in + * stream component stream_index. + * @param stream_index Must not be -1. + * @param flags Selects which direction should be preferred if no exact + * match is available. + * @return >= 0 on success (but not necessarily the new offset) + *) + read_seek: function (c: PAVFormatContext; stream_index: cint; + timestamp: cint64; flags: cint): cint; cdecl; + + (** + * Get the next timestamp in stream[stream_index].time_base units. + * @return the timestamp or AV_NOPTS_VALUE if an error occurred + *) + read_timestamp: function (s: PAVFormatContext; stream_index: cint; + pos: pint64; pos_limit: cint64): cint64; cdecl; + + (** + * Start/resume playing - only meaningful if using a network-based format + * (RTSP). + *) + read_play: function (c: PAVFormatContext): cint; cdecl; + + (** + * Pause playing - only meaningful if using a network-based format + * (RTSP). + *) + read_pause: function (c: PAVFormatContext): cint; cdecl; + + (** + * Seek to timestamp ts. + * Seeking will be done so that the point from which all active streams + * can be presented successfully will be closest to ts and within min/max_ts. + * Active streams are all streams that have AVStream.discard < AVDISCARD_ALL. + *) + read_seek2: function (s: PAVFormatContext; + stream_index: cint; + min_ts: cint64; + ts: cint64; + max_ts: cint64; + flags: cint): cint; cdecl; + + (** + * Returns device list with it properties. + * @see avdevice_list_devices() for more details. + *) + get_device_list: function(s: PAVFormatContext; device_list: PAVDeviceInfoList): cint; cdecl; + + (** + * Initialize device capabilities submodule. + * @see avdevice_capabilities_create() for more details. + *) + create_device_capabilities: function(s: PAVFormatContext; caps: PAVDeviceCapabilitiesQuery): cint; cdecl; + + (** + * Free device capabilities submodule. + * @see avdevice_capabilities_free() for more details. + *) + free_device_capabilities: function(s: PAVFormatContext; caps: PAVDeviceCapabilitiesQuery): cint; cdecl; + + end; +(** + * @} + *) + + TAVStreamParseType = ( + AVSTREAM_PARSE_NONE, + AVSTREAM_PARSE_FULL, (**< full parsing and repack *) + AVSTREAM_PARSE_HEADERS, (**< Only parse headers, do not repack. *) + AVSTREAM_PARSE_TIMESTAMPS, (**< full parsing and interpolation of timestamps for frames not starting on a packet boundary *) + AVSTREAM_PARSE_FULL_ONCE, (**< full parsing and repack of the first frame only, only implemented for H.264 currently *) + AVSTREAM_PARSE_FULL_RAW (**< full parsing and repack with timestamp and position generation by parser for raw + this assumes that each packet in the file contains no demuxer level headers and + just codec level data, otherwise position generation would fail *) + ); + + TAVIndexEntry = record + pos: cint64; + timestamp: cint64; (**< + * Timestamp in AVStream.time_base units, preferably the time from which on correctly decoded frames are available + * when seeking to this entry. That means preferable PTS on keyframe based formats. + * But demuxers can choose to store a different timestamp, if it is more convenient for the implementation or nothing better + * is known + *) + { Delphi doesn't support bitfields -> use flags_size instead + int flags:2; + int size:30; //Yeah, trying to keep the size of this small to reduce memory requirements (it is 24 vs. 32 bytes due to possible 8-byte alignment). + } + flags_size: cint; // 0..1: flags, 2..31: size + min_distance: cint; (**< Minimum distance between this and the previous keyframe, used to avoid unneeded searching. *) + end; + + Tduration_error = array[0..1] of array[0..MAX_STD_TIMEBASES - 1] of cdouble; + PStreamInfo = ^TStreamInfo; + TStreamInfo = record + last_dts: cint64; + duration_gcd: cint64; + duration_count: cint; + rfps_duration_sum: cint64; + duration_error: ^Tduration_error; + codec_info_duration: cint64; + codec_info_duration_fields: cint64; + frame_delay_evidence: cint; + + (** + * 0 -> decoder has not been searched for yet. + * >0 -> decoder found + * <0 -> decoder with codec_id == -found_decoder has not been found + *) + found_decoder: cint; + + (** + * Those are used for average framerate estimation. + *) + fps_first_dts: cint64; + fps_first_dts_idx: cint; + fps_last_dts: cint64; + fps_last_dts_idx: cint; + end; + + (** + * Stream structure. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(AVStream) must not be used outside libav*. + *) + TAVStream = record + index: cint; (**< stream index in AVFormatContext *) + (** + * Format-specific stream ID. + * decoding: set by libavformat + * encoding: set by the user, replaced by libavformat if left unset + *) + id: cint; (**< format-specific stream ID *) +{$IFDEF FF_API_LAVF_AVCTX} + (** + * @deprecated use the codecpar struct instead + *) + codec: PAVCodecContext; {deprecated} +{$ENDIF} + priv_data: pointer; + + (** + * This is the fundamental unit of time (in seconds) in terms + * of which frame timestamps are represented. + * + * decoding: set by libavformat + * encoding: May be set by the caller before avformat_write_header() to + * provide a hint to the muxer about the desired timebase. In + * avformat_write_header(), the muxer will overwrite this field + * with the timebase that will actually be used for the timestamps + * written into the file (which may or may not be related to the + * user-provided one, depending on the format). + *) + time_base: TAVRational; + + (** + * Decoding: pts of the first frame of the stream in presentation order, in stream time base. + * Only set this if you are absolutely 100% sure that the value you set + * it to really is the pts of the first frame. + * This may be undefined (AV_NOPTS_VALUE). + * @note The ASF header does NOT contain a correct start_time the ASF + * demuxer must NOT set this. + *) + start_time: cint64; + + (** + * Decoding: duration of the stream, in stream time base. + * If a source file does not specify a duration, but does specify + * a bitrate, this value will be estimated from bitrate and file size. + * + * Encoding: May be set by the caller before avformat_write_header() to + * provide a hint to the muxer about the estimated duration. + *) + duration: cint64; + + nb_frames: cint64; ///< number of frames in this stream if known or 0 + + disposition: cint; (**< AV_DISPOSITION_* bitfield *) + + discard: TAVDiscard; ///< Selects which packets can be discarded at will and do not need to be demuxed. + + (** + * sample aspect ratio (0 if unknown) + * - encoding: Set by user. + * - decoding: Set by libavformat. + *) + sample_aspect_ratio: TAVRational; + + metadata: PAVDictionary; + + (** + * Average framerate + * + * - demuxing: May be set by libavformat when creating the stream or in + * avformat_find_stream_info(). + * - muxing: May be set by the caller before avformat_write_header(). + *) + avg_frame_rate: TAVRational; + + (** + * For streams with AV_DISPOSITION_ATTACHED_PIC disposition, this packet + * will contain the attached picture. + * + * decoding: set by libavformat, must not be modified by the caller. + * encoding: unused + *) + attached_pic: TAVPacket; + + (** + * An array of side data that applies to the whole stream (i.e. the + * container does not allow it to change between packets). + * + * There may be no overlap between the side data in this array and side data + * in the packets. I.e. a given side data is either exported by the muxer + * (demuxing) / set by the caller (muxing) in this array, then it never + * appears in the packets, or the side data is exported / sent through + * the packets (always in the first packet where the value becomes known or + * changes), then it does not appear in this array. + * + * - demuxing: Set by libavformat when the stream is created. + * - muxing: May be set by the caller before avformat_write_header(). + * + * Freed by libavformat in avformat_free_context(). + * + * @see av_format_inject_global_side_data() + *) + side_data: PAVPacketSideData; + + (** + * The number of elements in the AVStream.side_data array. + *) + nb_side_data: cint; + + (** + * Flags for the user to detect events happening on the stream. Flags must + * be cleared by the user once the event has been handled. + * A combination of AVSTREAM_EVENT_FLAG_*. + *) + event_flags: cint; + + (** + * Real base framerate of the stream. + * This is the lowest framerate with which all timestamps can be + * represented accurately (it is the least common multiple of all + * framerates in the stream). Note, this value is just a guess! + * For example, if the time base is 1/90000 and all frames have either + * approximately 3600 or 1800 timer ticks, then r_frame_rate will be 50/1. + *) + r_frame_rate: TAVRational; + +{$IFDEF FF_API_LAVF_FFSERVER} + (** + * String containing pairs of key and values describing recommended encoder configuration. + * Pairs are separated by ','. + * Keys are separated from values by '='. + * + * @deprecated unused + *) + recommended_encoder_configuration: PAnsichar; {deprecated} +{$ENDIF} + + (** + * Codec parameters associated with this stream. Allocated and freed by + * libavformat in avformat_new_stream() and avformat_free_context() + * respectively. + * + * - demuxing: filled by libavformat on stream creation or in + * avformat_find_stream_info() + * - muxing: filled by the caller before avformat_write_header() + *) + codecpar: PAVCodecParameters; + + (***************************************************************** + * All fields below this line are not part of the public API. They + * may not be used outside of libavformat and can be changed and + * removed at will. + * Internal note: be aware that physically removing these fields + * will break ABI. Replace removed fields with dummy fields, and + * add new fields to AVStreamInternal. + ***************************************************************** + *) + + (** + * Stream information used internally by avformat_find_stream_info() + *) + info: PStreamInfo; + + pts_wrap_bits: cint; (**< number of bits in pts (used for wrapping control) *) + + // Timestamp generation support: + (** + * Timestamp corresponding to the last dts sync point. + * + * Initialized when AVCodecParserContext.dts_sync_point >= 0 and + * a DTS is received from the underlying container. Otherwise set to + * AV_NOPTS_VALUE by default. + *) + first_dts: cint64; + cur_dts: cint64; + last_IP_pts: cint64; + last_IP_duration: cint; + + (** + * Number of packets to buffer for codec probing + *) + probe_packets: cint; + + (** + * Number of frames that have been demuxed during avformat_find_stream_info() + *) + codec_info_nb_frames: cint; + + (* av_read_frame() support *) + need_parsing: TAVStreamParseType; + parser: PAVCodecParserContext; + + (** + * last packet in packet_buffer for this stream when muxing. + *) + last_in_packet_buffer: PAVPacketList; + probe_data: TAVProbeData; + pts_buffer: array [0..MAX_REORDER_DELAY] of cint64; + + index_entries: PAVIndexEntry; (**< Only used if the format does not + support seeking natively. *) + nb_index_entries: cint; + index_entries_allocated_size: cuint; + + (** + * Stream Identifier + * This is the MPEG-TS stream identifier +1 + * 0 means unknown + *) + stream_identifier: cint; + + interleaver_chunk_size: cint64; + interleaver_chunk_duration: cint64; + + (** + * stream probing state + * -1 -> probing finished + * 0 -> no probing requested + * rest -> perform probing with request_probe being the minimum score to accept. + * NOT PART OF PUBLIC API + *) + request_probe: cint; + (** + * Indicates that everything up to the next keyframe + * should be discarded. + *) + skip_to_keyframe: cint; + + (** + * Number of samples to skip at the start of the frame decoded from the next packet. + *) + skip_samples: cint; + + (** + * If not 0, the number of samples that should be skipped from the start of + * the stream (the samples are removed from packets with pts==0, which also + * assumes negative timestamps do not happen). + * Intended for use with formats such as mp3 with ad-hoc gapless audio + * support. + *) + start_skip_samples: cint64; + + (** + * If not 0, the first audio sample that should be discarded from the stream. + * This is broken by design (needs global sample count), but can't be + * avoided for broken by design formats such as mp3 with ad-hoc gapless + * audio support. + *) + first_discard_sample: cint64; + + (** + * The sample after last sample that is intended to be discarded after + * first_discard_sample. Works on frame boundaries only. Used to prevent + * early EOF if the gapless info is broken (considered concatenated mp3s). + *) + last_discard_sample: cint64; + + (** + * Number of internally decoded frames, used internally in libavformat, do not access + * its lifetime differs from info which is why it is not in that structure. + *) + nb_decoded_frames: cint; + + (** + * Timestamp offset added to timestamps before muxing + * NOT PART OF PUBLIC API + *) + mux_ts_offset: cint64; + + (** + * Internal data to check for wrapping of the time stamp + *) + pts_wrap_reference: cint64; + + (** + * Options for behavior, when a wrap is detected. + * + * Defined by AV_PTS_WRAP_ values. + * + * If correction is enabled, there are two possibilities: + * If the first time stamp is near the wrap point, the wrap offset + * will be subtracted, which will create negative time stamps. + * Otherwise the offset will be added. + *) + pts_wrap_behavior: cint; + + (** + * Internal data to prevent doing update_initial_durations() twice + *) + update_initial_durations_done: cint; + + (** + * Internal data to generate dts from pts + *) + pts_reorder_error: array[0..MAX_REORDER_DELAY] of cint64; + pts_reorder_error_count: array[0..MAX_REORDER_DELAY] of byte; + + (** + * Internal data to analyze DTS and detect faulty mpeg streams + *) + last_dts_for_order_check: cint64; + dts_ordered: byte; + dts_misordered: byte; + + (** + * Internal data to inject global side data + *) + inject_global_side_data: cint; + + (** + * display aspect ratio (0 if unknown) + * - encoding: unused + * - decoding: Set by libavformat to calculate sample_aspect_ratio internally + *) + display_aspect_ratio: TAVRational; + + (** + * An opaque field for libavformat internal usage. + * Must not be accessed in any way by callers. + *) + internal: pointer; + end; (** TAVStream **) + +(** + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(AVProgram) must not be used outside libav*. + *) + TAVProgram = record + id: cint; + flags: cint; + discard: TAVDiscard; ///< selects which program to discard and which to feed to the caller + stream_index: Pcuint; + nb_stream_indexes: cuint; + metadata: PAVDictionary; + + program_num: cint; + pmt_pid: cint; + pcr_pid: cint; + + (***************************************************************** + * All fields below this line are not part of the public API. They + * may not be used outside of libavformat and can be changed and + * removed at will. + * New public fields should be added right above. + ***************************************************************** + *) + start_time: cint64; + end_time: cint64; + + pts_wrap_reference: cint64; ///< reference dts for wrap detection + pts_wrap_behavior: cint; ///< behavior on wrap detection + end; (*AVProgram*) + + PAVChapter = ^TAVChapter; + TAVChapter = record + id: cint; ///< unique ID to identify the chapter + time_base: TAVRational; ///< time base in which the start/end timestamps are specified + start, end_: cint64; ///< chapter start/end time in time_base units + metadata: PAVDictionary; + end; (*AVChapter*) + + TAVChapterArray = array[0..(MaxInt div SizeOf(TAVChapter))-1] of TAVChapter; + PAVChapterArray = ^TAVChapterArray; + + (** + * The duration of a video can be estimated through various ways, and this enum can be used + * to know how the duration was estimated. + *) + TAVDurationEstimationMethod = ( + AVFMT_DURATION_FROM_PTS, ///< Duration accurately estimated from PTSes + AVFMT_DURATION_FROM_STREAM, ///< Duration estimated from a stream with a known duration + AVFMT_DURATION_FROM_BITRATE ///< Duration estimated from bitrate (less accurate) + ); + + PAVFormatInternal = ^TAVFormatInternal; + TAVFormatInternal = record + (** + * Number of streams relevant for interleaving. + * Muxing only. + *) + nb_interleaved_streams: cint; + inject_global_side_data: cint; + end; + + TAv_format_control_message = function (s: PAVFormatContext; type_: cint; + data: pointer; data_size: size_t): cint; cdecl; + + TAVOpenCallback = function (s: PAVFormatContext; pb: PPAVIOContext; url: {const} PAnsiChar; flags: cint; + int_cb: {const} PAVIOInterruptCB; options: PPAVDictionary): cint; cdecl; + + (** + * Format I/O context. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(AVFormatContext) must not be used outside libav*, use + * avformat_alloc_context() to create an AVFormatContext. + * + * Fields can be accessed through AVOptions (av_opt* ), + * the name string used matches the associated command line parameter name and + * can be found in libavformat/options_table.h. + * The AVOption/command line parameter names differ in some cases from the C + * structure field names for historic reasons or brevity. + *) + TAVFormatContext = record + (** + * A class for logging and @ref avoptions. Set by avformat_alloc_context(). + * Exports (de)muxer private options if they exist. + *) + av_class: PAVClass; (**< Set by avformat_alloc_context. *) + + (** + * The input container format. + * + * Demuxing only, set by avformat_open_input(). + *) + iformat: PAVInputFormat; + + (** + * The output container format. + * + * Muxing only, must be set by the caller before avformat_write_header(). + *) + oformat: PAVOutputFormat; + + (** + * Format private data. This is an AVOptions-enabled struct + * if and only if iformat/oformat.priv_class is not NULL. + * + * - muxing: set by avformat_write_header() + * - demuxing: set by avformat_open_input() + *) + priv_data: pointer; + + (* + * I/O context. + * + * - demuxing: either set by the user before avformat_open_input() (then + * the user must close it manually) or set by avformat_open_input(). + * - muxing: set by the user before avformat_write_header(). The caller must + * take care of closing / freeing the IO context. + * + * Do NOT set this field if AVFMT_NOFILE flag is set in + * iformat/oformat.flags. In such a case, the (de)muxer will handle + * I/O in some other way and this field will be NULL. + *) + pb: PAVIOContext; + + (* stream info *) + (** + * Flags signalling stream properties. A combination of AVFMTCTX_*. + * Set by libavformat. + *) + ctx_flags: cint; + + (** + * Number of elements in AVFormatContext.streams. + * + * Set by avformat_new_stream(), must not be modified by any other code. + *) + nb_streams: cuint; + + (** + * A list of all streams in the file. New streams are created with + * avformat_new_stream(). + * + * - demuxing: streams are created by libavformat in avformat_open_input(). + * If AVFMTCTX_NOHEADER is set in ctx_flags, then new streams may also + * appear in av_read_frame(). + * - muxing: streams are created by the user before avformat_write_header(). + * + * Freed by libavformat in avformat_free_context(). + *) + streams: PPAVStream; + +{$IFDEF FF_API_FORMAT_FILENAME} + (** + * input or output filename + * + * - demuxing: set by avformat_open_input() + * - muxing: may be set by the caller before avformat_write_header() + * + * @deprecated Use url instead. + *) + filename: array [0..1023] of AnsiChar; {deprecated} (* input or output filename *) +{$ENDIF} + + (** + * input or output URL. Unlike the old filename field, this field has no + * length restriction. + * + * - demuxing: set by avformat_open_input(), initialized to an empty + * string if url parameter was NULL in avformat_open_input(). + * - muxing: may be set by the caller before calling avformat_write_header() + * (or avformat_init_output() if that is called first) to a string + * which is freeable by av_free(). Set to an empty string if it + * was NULL in avformat_init_output(). + * + * Freed by libavformat in avformat_free_context(). + *) + url: PAnsichar; + + (** + * Position of the first frame of the component, in + * AV_TIME_BASE fractional seconds. NEVER set this value directly: + * It is deduced from the AVStream values. + * + * Demuxing only, set by libavformat. + *) + start_time: cint64; + (** + * Duration of the stream, in AV_TIME_BASE fractional + * seconds. Only set this value if you know none of the individual stream + * durations and also dont set any of them. This is deduced from the + * AVStream values if not set. + *) + duration: cint64; + + (** + * Total stream bitrate in bit/s, 0 if not + * available. Never set it directly if the file_size and the + * duration are known as ffmpeg can compute it automatically. + *) + bit_rate: cint64; + + packet_size: cuint; + max_delay: cint; + + (** + * Flags modifying the (de)muxer behaviour. A combination of AVFMT_FLAG_*. + * Set by the user before avformat_open_input() / avformat_write_header(). + *) + flags: cint; + + (** + * Maximum size of the data read from input for determining + * the input container format. + * Demuxing only, set by the caller before avformat_open_input(). + *) + probesize: cint64; + + (** + * Maximum duration (in AV_TIME_BASE units) of the data read + * from input in avformat_find_stream_info(). + * Demuxing only, set by the caller before avformat_find_stream_info(). + * Can be set to 0 to let avformat choose using a heuristic. + *) + max_analyze_duration: cint64; + + key: pbyte; + keylen: cint; + + nb_programs: cuint; + programs: PPAVProgram; + + (** + * Forced video codec_id. + * Demuxing: Set by user. + *) + video_codec_id: TAVCodecID; + + (** + * Forced audio codec_id. + * Demuxing: Set by user. + *) + audio_codec_id: TAVCodecID; + + (** + * Forced subtitle codec_id. + * Demuxing: Set by user. + *) + subtitle_codec_id: TAVCodecID; + + (** + * Maximum amount of memory in bytes to use for the index of each stream. + * If the index exceeds this size, entries will be discarded as + * needed to maintain a smaller size. This can lead to slower or less + * accurate seeking (depends on demuxer). + * Demuxers for which a full in-memory index is mandatory will ignore + * this. + * - muxing: unused + * - demuxing: set by user + *) + max_index_size: cuint; + + (** + * Maximum amount of memory in bytes to use for buffering frames + * obtained from realtime capture devices. + *) + max_picture_buffer: cuint; + + nb_chapters: cuint; + chapters: PAVChapterArray; + + (** + * Metadata that applies to the whole file. + * + * - demuxing: set by libavformat in avformat_open_input() + * - muxing: may be set by the caller before avformat_write_header() + * + * Freed by libavformat in avformat_free_context(). + *) + metadata: PAVDictionary; + + (** + * Start time of the stream in real world time, in microseconds + * since the Unix epoch (00:00 1st January 1970). That is, pts=0 in the + * stream was captured at this real world time. + * - muxing: Set by the caller before avformat_write_header(). If set to + * either 0 or AV_NOPTS_VALUE, then the current wall-time will + * be used. + * - demuxing: Set by libavformat. AV_NOPTS_VALUE if unknown. Note that + * the value may become known after some number of frames + * have been received. + *) + start_time_realtime: cint64; + + (** + * The number of frames used for determining the framerate in + * avformat_find_stream_info(). + * Demuxing only, set by the caller before avformat_find_stream_info(). + *) + fps_probe_size: cint; + + (** + * Error recognition; higher values will detect more errors but may + * misdetect some more or less valid parts as errors. + * Demuxing only, set by the caller before avformat_open_input(). + *) + error_recognition: cint; + + (** + * Custom interrupt callbacks for the I/O layer. + * + * demuxing: set by the user before avformat_open_input(). + * muxing: set by the user before avformat_write_header() + * (mainly useful for AVFMT_NOFILE formats). The callback + * should also be passed to avio_open2() if it's used to + * open the file. + *) + interrupt_callback: TAVIOInterruptCB; + + (** + * Flags to enable debugging. + *) + debug: cint; + + (** + * Maximum buffering duration for interleaving. + * + * To ensure all the streams are interleaved correctly, + * av_interleaved_write_frame() will wait until it has at least one packet + * for each stream before actually writing any packets to the output file. + * When some streams are "sparse" (i.e. there are large gaps between + * successive packets), this can result in excessive buffering. + * + * This field specifies the maximum difference between the timestamps of the + * first and the last packet in the muxing queue, above which libavformat + * will output a packet regardless of whether it has queued a packet for all + * the streams. + * + * Muxing only, set by the caller before avformat_write_header(). + *) + max_interleave_delta: cint64; + + (** + * Allow non-standard and experimental extension + * @see AVCodecContext.strict_std_compliance + *) + strict_std_compliance: cint; + + (** + * Flags for the user to detect events happening on the file. Flags must + * be cleared by the user once the event has been handled. + * A combination of AVFMT_EVENT_FLAG_*. + *) + event_flags: cint; + + (** + * Maximum number of packets to read while waiting for the first timestamp. + * Decoding only. + *) + max_ts_probe: cint; + + (** + * Avoid negative timestamps during muxing. + * Any value of the AVFMT_AVOID_NEG_TS_* constants. + * Note, this only works when using av_interleaved_write_frame. (interleave_packet_per_dts is in use) + * - muxing: Set by user + * - demuxing: unused + *) + avoid_negative_ts: cint; + + (** + * Transport stream id. + * This will be moved into demuxer private options. Thus no API/ABI compatibility + *) + ts_id: cint; + + (** + * Audio preload in microseconds. + * Note, not all formats support this and unpredictable things may happen if it is used when not supported. + * - encoding: Set by user + * - decoding: unused + *) + audio_preload: cint; + + (** + * Max chunk time in microseconds. + * Note, not all formats support this and unpredictable things may happen if it is used when not supported. + * - encoding: Set by user + * - decoding: unused + *) + max_chunk_duration: cint; + + (** + * Max chunk size in bytes + * Note, not all formats support this and unpredictable things may happen if it is used when not supported. + * - encoding: Set by user + * - decoding: unused + *) + max_chunk_size: cint; + + (** + * forces the use of wallclock timestamps as pts/dts of packets + * This has undefined results in the presence of B frames. + * - encoding: unused + * - decoding: Set by user + *) + use_wallclock_as_timestamps: cint; + + (** + * avio flags, used to force AVIO_FLAG_DIRECT. + * - encoding: unused + * - decoding: Set by user + *) + avio_flags: cint; + + (** + * The duration field can be estimated through various ways, and this field can be used + * to know how the duration was estimated. + * - encoding: unused + * - decoding: Read by user + *) + duration_estimation_method: TAVDurationEstimationMethod; + + (** + * Skip initial bytes when opening stream + * - encoding: unused + * - decoding: Set by user + *) + skip_initial_bytes: cint64; + + (** + * Correct single timestamp overflows + * - encoding: unused + * - decoding: Set by user + *) + correct_ts_overflow: cuint; + + (** + * Force seeking to any (also non key) frames. + * - encoding: unused + * - decoding: Set by user + *) + seek2any: cint; + + (** + * Flush the I/O context after each packet. + * - encoding: Set by user + * - decoding: unused + *) + flush_packets: cint; + + (** + * format probing score. + * The maximal score is AVPROBE_SCORE_MAX, its set when the demuxer probes + * the format. + * - encoding: unused + * - decoding: set by avformat, read by user + *) + probe_score: cint; + + (** + * number of bytes to read maximally to identify format. + * - encoding: unused + * - decoding: set by user + *) + format_probesize: cint; + + (** + * ',' separated list of allowed decoders. + * If NULL then all are allowed + * - encoding: unused + * - decoding: set by user + *) + codec_whitelist: PAnsiChar; + + (** + * ',' separated list of allowed demuxers. + * If NULL then all are allowed + * - encoding: unused + * - decoding: set by user + *) + format_whitelist: PAnsiChar; + + + (** + * An opaque field for libavformat internal usage. + * Must not be accessed in any way by callers. + *) + internal: PAVFormatInternal; + + (** + * IO repositioned flag. + * This is set by avformat when the underlaying IO context read pointer + * is repositioned, for example when doing byte based seeking. + * Demuxers can use the flag to detect such changes. + *) + io_repositioned: cint; + + (** + * Forced video codec. + * This allows forcing a specific decoder, even when there are multiple with + * the same codec_id. + * Demuxing: Set by user + *) + video_codec: PAVCodec; + + (** + * Forced audio codec. + * This allows forcing a specific decoder, even when there are multiple with + * the same codec_id. + * Demuxing: Set by user + *) + audio_codec: PAVCodec; + + (** + * Forced subtitle codec. + * This allows forcing a specific decoder, even when there are multiple with + * the same codec_id. + * Demuxing: Set by user + *) + subtitle_codec: PAVCodec; + + (** + * Forced data codec. + * This allows forcing a specific decoder, even when there are multiple with + * the same codec_id. + * Demuxing: Set by user + *) + data_codec: PAVCodec; + + (** + * Number of bytes to be written as padding in a metadata header. + * Demuxing: Unused. + * Muxing: Set by user via av_format_set_metadata_header_padding. + *) + metadata_header_padding: cint; + + (** + * User data. + * This is a place for some private data of the user. + *) + opaque: pointer; + + (** + * Callback used by devices to communicate with application. + *) + control_message_cb: TAv_format_control_message; + + (** + * Output timestamp offset, in microseconds. + * Muxing: set by user + *) + output_ts_offset: cint64; + + (** + * dump format separator. + * can be ", " or "\n " or anything else + * - muxing: Set by user. + * - demuxing: Set by user. + *) + dump_separator: Pcuint8; + + (** + * Forced Data codec_id. + * Demuxing: Set by user. + *) + data_codec_id: TAVCodecID; +{$IFDEF FF_API_OLD_OPEN_CALLBACKS} + (** + * Called to open further IO contexts when needed for demuxing. + * + * This can be set by the user application to perform security checks on + * the URLs before opening them. + * The function should behave like avio_open2(), AVFormatContext is provided + * as contextual information and to reach AVFormatContext.opaque. + * + * If NULL then some simple checks are used together with avio_open2(). + * + * Must not be accessed directly from outside avformat. + * @See av_format_set_open_cb() + * + * Demuxing: Set by user. + * + * @deprecated Use io_open and io_close. + *) + open_cb: function(s: PAVFormatContext; p: PPAVIOContext; url: {const} PAnsiChar; flags: cint; int_cb: {const} PAVIOInterruptCB; options: PPAVDictionary): cint; cdecl; {deprecated} +{$ENDIF} + + (** + * ',' separated list of allowed protocols. + * - encoding: unused + * - decoding: set by user + *) + protocol_whitelist: pchar; + + (* + * A callback for opening new IO streams. + * + * Whenever a muxer or a demuxer needs to open an IO stream (typically from + * avformat_open_input() for demuxers, but for certain formats can happen at + * other times as well), it will call this callback to obtain an IO context. + * + * @param s the format context + * @param pb on success, the newly opened IO context should be returned here + * @param url the url to open + * @param flags a combination of AVIO_FLAG_* + * @param options a dictionary of additional options, with the same + * semantics as in avio_open2() + * @return 0 on success, a negative AVERROR code on failure + * + * @note Certain muxers and demuxers do nesting, i.e. they open one or more + * additional internal format contexts. Thus the AVFormatContext pointer + * passed to this callback may be different from the one facing the caller. + * It will, however, have the same 'opaque' field. + *) + io_open: function(s: PAVFormatContext; pb: PPAVIOContext; url: {const} pchar; + flags: cint; options: PPAVDictionary): cint; cdecl; + + (** + * A callback for closing the streams opened with AVFormatContext.io_open(). + *) + io_close: procedure(s: PAVFormatContext; pb: PAVIOContext); cdecl; + + (** + * ',' separated list of disallowed protocols. + * - encoding: unused + * - decoding: set by user + *) + protocol_blacklist: PAnsiChar; + + (** + * The maximum number of streams. + * - encoding: unused + * - decoding: set by user + *) + max_streams: cint; + end; (** TAVFormatContext **) + + TAVTimebaseSource = ( + AVFMT_TBCF_AUTO = -1, + AVFMT_TBCF_DECODER, + AVFMT_TBCF_DEMUXER, +{$IFDEF FF_API_R_FRAME_RATE} + AVFMT_TBCF_R_FRAMERATE +{$ENDIF} + ); + +{$IFDEF FF_API_FORMAT_GET_SET} +(** + * Accessors for some AVFormatContext fields. These used to be provided for ABI + * compatibility, and do not need to be used anymore. + *) +function av_format_get_probe_score(s: {const} PAVFormatContext): cint; + cdecl; external av__format; deprecated; +function av_format_get_video_codec(s: {const} PAVFormatContext): PAVCodec; + cdecl; external av__format; deprecated; +procedure av_format_set_video_codec(s: PAVFormatContext; c: PAVCodec); + cdecl; external av__format; deprecated; +function av_format_get_audio_codec(s: {const} PAVFormatContext): PAVCodec; + cdecl; external av__format; deprecated; +procedure av_format_set_audio_codec(s: PAVFormatContext; c: PAVCodec); + cdecl; external av__format; deprecated; +function av_format_get_subtitle_codec(s: {const} PAVFormatContext): PAVCodec; + cdecl; external av__format; deprecated; +procedure av_format_set_subtitle_codec(s: PAVFormatContext; c: PAVCodec); + cdecl; external av__format; deprecated; +function av_format_get_data_codec(s: {const} PAVFormatContext): PAVCodec; + cdecl; external av__format; deprecated; +procedure av_format_set_data_codec(s: PAVFormatContext; c: PAVCodec); + cdecl; external av__format; deprecated; +function av_format_get_metadata_header_padding(s: {const} PAVFormatContext): cint; + cdecl; external av__format; deprecated; +procedure av_format_set_metadata_header_padding(s: PAVFormatContext; c: cint); + cdecl; external av__format; deprecated; +procedure av_format_get_opaque(s: {const} PAVFormatContext); + cdecl; external av__format; deprecated; +procedure av_format_set_opaque(s: PAVFormatContext; opaque: pointer); + cdecl; external av__format; deprecated; +function av_format_get_control_message_cb(s: {const} PAVFormatContext): TAv_format_control_message; + cdecl; external av__format; deprecated; +procedure av_format_set_control_message_cb(s: PAVFormatContext; callback: TAv_format_control_message); + cdecl; external av__format; deprecated; +{$IFDEF FF_API_OLD_OPEN_CALLBACKS} +function av_format_get_open_cb(s: {const} PAVFormatContext): TAVOpenCallback; {deprecated} + cdecl; external av__format; deprecated; +procedure av_format_set_open_cb(s: PAVFormatContext; callback: TAVOpenCallback); {deprecated} + cdecl; external av__format; deprecated; +{$ENDIF} {FF_API_OLD_OPEN_CALLBACKS} +{$ENDIF} {FF_API_FORMAT_GET_SET} + +(** + * This function will cause global side data to be injected in the next packet + * of each stream as well as after any subsequent seek. + *) +procedure av_format_inject_global_side_data(s: PAVFormatContext); + cdecl; external av__format; + +(** + * Returns the method used to set ctx->duration. + * + * @return AVFMT_DURATION_FROM_PTS, AVFMT_DURATION_FROM_STREAM, or AVFMT_DURATION_FROM_BITRATE. + *) +function av_fmt_ctx_get_duration_estimation_method(ctx: {const} PAVFormatContext): TAVDurationEstimationMethod; + cdecl; external av__format; + +{$IFDEF FF_API_FORMAT_GET_SET} +(** + * Accessors for some AVStream fields. These used to be provided for ABI + * compatibility, and do not need to be used anymore. + *) +function av_stream_get_r_frame_rate({const} s: PAVStream): TAVRational; + cdecl; external av__format; deprecated; +procedure av_stream_set_r_frame_rate(s: PAVStream; r: TAVRational); + cdecl; external av__format; deprecated; +{$IFDEF FF_API_LAVF_FFSERVER} +function av_stream_get_recommended_encoder_configuration({const} s: PAVStream): PAnsiChar; + cdecl; external av__format; deprecated; +procedure av_stream_set_recommended_encoder_configuration(s: PAVStream; configuration: PAnsiChar); + cdecl; external av__format; deprecated; +{$ENDIF} {FF_API_LAVF_FFSERVER} +{$ENDIF} {FF_API_FORMAT_GET_SET} + +function av_stream_get_parser(s: {const} PAVStream): PAVCodecParserContext; + cdecl; external av__format; + +(** + * Returns the pts of the last muxed packet + its duration + * + * the retuned value is undefined when used with a demuxer. + *) +function av_stream_get_end_pts(st: {const} PAVStream): cint64; + cdecl; external av__format; + +(** + * @defgroup lavf_core Core functions + * @ingroup libavf + * + * Functions for querying libavformat capabilities, allocating core structures, + * etc. + * @ + *) + +(** + * Return the LIBAVFORMAT_VERSION_INT constant. + *) +function avformat_version(): cuint; + cdecl; external av__format; + +(** + * Return the libavformat build-time configuration. + *) +function avformat_configuration(): {const} PansiChar; + cdecl; external av__format; + +(** + * Return the libavformat license. + *) +function avformat_license(): {const} PansiChar; + cdecl; external av__format; + +{$IFDEF FF_API_NEXT} +(** + * Initialize libavformat and register all the muxers, demuxers and + * protocols. If you do not call this function, then you can select + * exactly which formats you want to support. + * + * @see av_register_input_format() + * @see av_register_output_format() + * @see av_register_protocol() + *) +procedure av_register_all(); + cdecl; external av__format; deprecated; + +procedure av_register_input_format(format: PAVInputFormat); + cdecl; external av__format; deprecated; +procedure av_register_output_format(format: PAVOutputFormat); + cdecl; external av__format; deprecated; +{$ENDIF} + +(** + * Do global initialization of network libraries. This is optional, + * and not recommended anymore. + * + * This functions only exists to work around thread-safety issues + * with older GnuTLS or OpenSSL libraries. If libavformat is linked + * to newer versions of those libraries, or if you do not use them, + * calling this function is unnecessary. Otherwise, you need to call + * this function before any other threads using them are started. + * + * This function will be deprecated once support for older GnuTLS and + * OpenSSL libraries is removed, and this function has no purpose + * anymore. + *) +function avformat_network_init(): cint; + cdecl; external av__format; + +(** + * Undo the initialization done by avformat_network_init. Call it only + * once for each time you called avformat_network_init. + *) +function avformat_network_deinit(): cint; + cdecl; external av__format; + +{$IFDEF FF_API_NEXT} +(** + * If f is NULL, returns the first registered input format, + * if f is non-NULL, returns the next registered input format after f + * or NULL if f is the last one. + *) +function av_iformat_next(f: {const} PAVInputFormat): PAVInputFormat; + cdecl; external av__format; deprecated; + +(** + * If f is NULL, returns the first registered output format, + * if f is non-NULL, returns the next registered input format after f + * or NULL if f is the last one. + *) +function av_oformat_next(f: {const} PAVOutputFormat): PAVOutputFormat; + cdecl; external av__format; deprecated; +{$ENDIF} + +(** + * Iterate over all registered muxers. + * + * @param opaque a pointer where libavformat will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the next registered muxer or NULL when the iteration is + * finished + *) +function av_muxer_iterate(opaque: pointer): PAVOutputFormat; + cdecl; external av__format; deprecated; {const} + +(** + * Iterate over all registered demuxers. + * + * @param opaque a pointer where libavformat will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the next registered demuxer or NULL when the iteration is + * finished + *) +function av_demuxer_iterate(opaque: pointer): PAVInputFormat; + cdecl; external av__format; deprecated; {const} + +(** + * Allocate an AVFormatContext. + * Can be freed with av_free() but do not forget to free everything you + * explicitly allocated as well! + *) +function avformat_alloc_context(): PAVFormatContext; + cdecl; external av__format; + +(** + * Free an AVFormatContext and all its streams. + * @param s context to free + *) +procedure avformat_free_context(s: PAVFormatContext); + cdecl; external av__format; + +(** + * Get the AVClass for AVFormatContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + *) +function avformat_get_class(): {const} PAVClass; + cdecl; external av__format; + +(** + * Add a new stream to a media file. + * + * When demuxing, it is called by the demuxer in read_header(). If the + * flag AVFMTCTX_NOHEADER is set in s.ctx_flags, then it may also + * be called in read_packet(). + * + * When muxing, should be called by the user before avformat_write_header(). + * + * User is required to call avcodec_close() and avformat_free_context() to + * clean up the allocation by avformat_new_stream(). + * + * @param s media file handle + * @param c If non-NULL, the AVCodecContext corresponding to the new stream + * will be initialized to use this codec. This is needed for e.g. codec-specific + * defaults to be set, so codec should be provided if it is known. + * + * @return newly created stream or NULL on error. + *) +function avformat_new_stream(s: PAVFormatContext; c: {const} PAVCodec): PAVStream; + cdecl; external av__format; + +(** + * Wrap an existing array as stream side data. + * + * @param st stream + * @param type side information type + * @param data the side data array. It must be allocated with the av_malloc() + * family of functions. The ownership of the data is transferred to + * st. + * @param size side information size + * @return zero on success, a negative AVERROR code on failure. On failure, + * the stream is unchanged and the data remains owned by the caller. + *) +function av_stream_add_side_data(st: PAVStream; type_: TAVPacketSideDataType; + data: Pcuint8; size: size_t): cint; + cdecl; external av__format; + +(** + * Allocate new information from stream. + * + * @param stream stream + * @param type desired side information type + * @param size side information size + * @return pointer to fresh allocated data or NULL otherwise + *) +function av_stream_new_side_data(stream: PAVStream; + type_: TAVPacketSideDataType; size: cint): Pcuint8; + cdecl; external av__format; + +(** + * Get side information from stream. + * + * @param stream stream + * @param type desired side information type + * @param size pointer for side information size to store (optional) + * @return pointer to data if present or NULL otherwise + *) +function av_stream_get_side_data(stream: {const} PAVStream; + type_: TAVPacketSideDataType; size: Pcint): Pcuint8; + cdecl; external av__format; + +function av_new_program(s: PAVFormatContext; id: cint): PAVProgram; + cdecl; external av__format; + +(** + * @} + *) + +{$IFDEF FF_API_PKT_DUMP} +procedure av_pkt_dump(f: PAVFile; pkt: PAVPacket; dump_payload: cint); {deprecated} + cdecl; external av__format; +procedure av_pkt_dump_log(avcl: Pointer; level: cint; pkt: PAVPacket; dump_payload: cint); {deprecated} + cdecl; external av__format; +{$IFEND} + +(** + * Allocate an AVFormatContext for an output format. + * avformat_free_context() can be used to free the context and + * everything allocated by the framework within it. + * + * @param *ctx is set to the created format context, or to NULL in + * case of failure + * @param oformat format to use for allocating the context, if NULL + * format_name and filename are used instead + * @param format_name the name of output format to use for allocating the + * context, if NULL filename is used instead + * @param filename the name of the filename to use for allocating the + * context, may be NULL + * @return >= 0 in case of success, a negative AVERROR code in case of + * failure + *) +function avformat_alloc_output_context2(ctx: PPAVFormatContext; oformat: PAVOutputFormat; + {const} format_name: PAnsiChar; {const} filename: PAnsiChar): cint; + cdecl; external av__format; + +(** + * @addtogroup lavf_decoding + * @ + *) + +(** + * Find AVInputFormat based on the short name of the input format. + *) +function av_find_input_format(short_name: PAnsiChar): PAVInputFormat; + cdecl; external av__format; + +(** + * Guess the file format. + * + * @param pd data to be probed + * @param is_opened Whether the file is already opened; determines whether + * demuxers with or without AVFMT_NOFILE are probed. + *) +function av_probe_input_format(pd: PAVProbeData; is_opened: cint): PAVInputFormat; + cdecl; external av__format; + +(** + * Guess the file format. + * + * @param pd data to be probed + * @param is_opened Whether the file is already opened; determines whether + * demuxers with or without AVFMT_NOFILE are probed. + * @param score_max A probe score larger that this is required to accept a + * detection, the variable is set to the actual detection + * score afterwards. + * If the score is <= AVPROBE_SCORE_MAX / 4 it is recommended + * to retry with a larger probe buffer. + *) +function av_probe_input_format2(pd: PAVProbeData; is_opened: cint; score_max: PCint): PAVInputFormat; + cdecl; external av__format; + +(** + * Guess the file format. + * + * @param is_opened Whether the file is already opened; determines whether + * demuxers with or without AVFMT_NOFILE are probed. + * @param score_ret The score of the best detection. + *) +function av_probe_input_format3(pd: PAVProbeData; is_opened: cint; score_ret: Pcint): PAVInputFormat; + cdecl; external av__format; + +(** + * Probe a bytestream to determine the input format. Each time a probe returns + * with a score that is too low, the probe buffer size is increased and another + * attempt is made. When the maximum probe size is reached, the input format + * with the highest score is returned. + * + * @param pb the bytestream to probe + * @param fmt the input format is put here + * @param url the url of the stream + * @param logctx the log context + * @param offset the offset within the bytestream to probe from + * @param max_probe_size the maximum probe buffer size (zero for default) + * @return 0 in case of success, a negative value corresponding to an + * AVERROR code otherwise + *) +function av_probe_input_buffer2(pb: PAVIOContext; var fmt: PAVInputFormat; + url: {const} PAnsiChar; logctx: pointer; + offset: cuint; max_probe_size: cuint): cint; + cdecl; external av__format; + +(** + * Like av_probe_input_buffer2() but returns 0 on success + *) +function av_probe_input_buffer(pb: PAVIOContext; var fmt: PAVInputFormat; + url: {const} PAnsiChar; logctx: pointer; + offset: cuint; max_probe_size: cuint): cint; + cdecl; external av__format; + +(** + * Open an input stream and read the header. The codecs are not opened. + * The stream must be closed with av_close_input_file(). + * + * @param ps Pointer to user-supplied AVFormatContext (allocated by avformat_alloc_context). + * May be a pointer to NULL, in which case an AVFormatContext is allocated by this + * function and written into ps. + * Note that a user-supplied AVFormatContext will be freed on failure. + * @param url URL of the stream to open. + * @param fmt If non-NULL, this parameter forces a specific input format. + * Otherwise the format is autodetected. + * @param options A dictionary filled with AVFormatContext and demuxer-private options. + * On return this parameter will be destroyed and replaced with a dict containing + * options that were not found. May be NULL. + * + * @return 0 on success, a negative AVERROR on failure. + * + * @note If you want to use custom IO, preallocate the format context and set its pb field. + *) +function avformat_open_input(ps: PPAVFormatContext; url: {const} PAnsiChar; fmt: PAVInputFormat; options: PPAVDictionary): cint; + cdecl; external av__format; + +function av_demuxer_open(ic: PAVFormatContext): cint; + cdecl; external av__format; deprecated; + +(** + * Read packets of a media file to get stream information. This + * is useful for file formats with no headers such as MPEG. This + * function also computes the real framerate in case of MPEG-2 repeat + * frame mode. + * The logical file position is not changed by this function; + * examined packets may be buffered for later processing. + * + * @param ic media file handle + * @param options If non-NULL, an ic.nb_streams long array of pointers to + * dictionaries, where i-th member contains options for + * codec corresponding to i-th stream. + * On return each dictionary will be filled with options that were not found. + * @return >=0 if OK, AVERROR_xxx on error + * + * @note this function isn't guaranteed to open all the codecs, so + * options being non-empty at return is a perfectly normal behavior. + * + * @todo Let the user decide somehow what information is needed so that + * we do not waste time getting stuff the user does not need. + *) +function avformat_find_stream_info(ic: PAVFormatContext; options: PPAVDictionary): cint; + cdecl; external av__format; + +(** + * Find the programs which belong to a given stream. + * + * @param ic media file handle + * @param last the last found program, the search will start after this + * program, or from the beginning if it is NULL + * @param s stream index + * @return the next program which belongs to s, NULL if no program is found or + * the last program is not among the programs of ic. + *) +function av_find_program_from_stream(ic: PAVFormatContext; last: PAVProgram; s: cint): PAVProgram; + cdecl; external av__format; + +procedure av_program_add_stream_index(ac: PAVFormatContext; progid: cint; idx: cuint); + cdecl; external av__format; + +(** + * Find the "best" stream in the file. + * The best stream is determined according to various heuristics as the most + * likely to be what the user expects. + * If the decoder parameter is non-NULL, av_find_best_stream will find the + * default decoder for the stream's codec; streams for which no decoder can + * be found are ignored. + * + * @param ic media file handle + * @param type stream type: video, audio, subtitles, etc. + * @param wanted_stream_nb user-requested stream number, + * or -1 for automatic selection + * @param related_stream try to find a stream related (eg. in the same + * program) to this one, or -1 if none + * @param decoder_ret if non-NULL, returns the decoder for the + * selected stream + * @param flags flags; none are currently defined + * @return the non-negative stream number in case of success, + * AVERROR_STREAM_NOT_FOUND if no stream with the requested type + * could be found, + * AVERROR_DECODER_NOT_FOUND if streams were found but no decoder + * @note If av_find_best_stream returns successfully and decoder_ret is not + * NULL, then *decoder_ret is guaranteed to be set to a valid AVCodec. + *) +function av_find_best_stream(ic: PAVFormatContext; + type_: TAVMediaType; + wanted_stream_nb: cint; + related_stream: cint; + decoder_ret: PPAVCodec; + flags: cint): cint; + cdecl; external av__format; + +(** + * Return the next frame of a stream. + * This function returns what is stored in the file, and does not validate + * that what is there are valid frames for the decoder. It will split what is + * stored in the file into frames and return one for each call. It will not + * omit invalid data between valid frames so as to give the decoder the maximum + * information possible for decoding. + * + * If pkt->buf is NULL, then the packet is valid until the next + * av_read_frame() or until avformat_close_input(). Otherwise the packet + * is valid indefinitely. In both cases the packet must be freed with + * av_packet_unref when it is no longer needed. For video, the packet contains + * exactly one frame. For audio, it contains an integer number of frames if each + * frame has a known fixed size (e.g. PCM or ADPCM data). If the audio frames + * have a variable size (e.g. MPEG audio), then it contains one frame. + * + * pkt->pts, pkt->dts and pkt->duration are always set to correct + * values in AVStream.time_base units (and guessed if the format cannot + * provide them). pkt->pts can be AV_NOPTS_VALUE if the video format + * has B-frames, so it is better to rely on pkt->dts if you do not + * decompress the payload. + * + * @return 0 if OK, < 0 on error or end of file + *) +function av_read_frame(s: PAVFormatContext; var pkt: TAVPacket): cint; + cdecl; external av__format; + +(** + * Seek to the keyframe at timestamp. + * 'timestamp' in 'stream_index'. + * + * @param s media file handle + * @param stream_index If stream_index is (-1), a default + * stream is selected, and timestamp is automatically converted + * from AV_TIME_BASE units to the stream specific time_base. + * @param timestamp Timestamp in AVStream.time_base units + * or, if no stream is specified, in AV_TIME_BASE units. + * @param flags flags which select direction and seeking mode + * @return >= 0 on success + *) +function av_seek_frame(s: PAVFormatContext; stream_index: cint; timestamp: cint64; + flags: cint): cint; + cdecl; external av__format; + + +(** + * Seek to timestamp ts. + * Seeking will be done so that the point from which all active streams + * can be presented successfully will be closest to ts and within min/max_ts. + * Active streams are all streams that have AVStream.discard < AVDISCARD_ALL. + * + * If flags contain AVSEEK_FLAG_BYTE, then all timestamps are in bytes and + * are the file position (this may not be supported by all demuxers). + * If flags contain AVSEEK_FLAG_FRAME, then all timestamps are in frames + * in the stream with stream_index (this may not be supported by all demuxers). + * Otherwise all timestamps are in units of the stream selected by stream_index + * or if stream_index is -1, in AV_TIME_BASE units. + * If flags contain AVSEEK_FLAG_ANY, then non-keyframes are treated as + * keyframes (this may not be supported by all demuxers). + * If flags contain AVSEEK_FLAG_BACKWARD, it is ignored. + * + * @param s media file handle + * @param stream_index index of the stream which is used as time base reference + * @param min_ts smallest acceptable timestamp + * @param ts target timestamp + * @param max_ts largest acceptable timestamp + * @param flags flags + * @return >=0 on success, error code otherwise + * + * @note This is part of the new seek API which is still under construction. + * Thus do not use this yet. It may change at any time, do not expect + * ABI compatibility yet! + *) +function avformat_seek_file(s: PAVFormatContext; stream_index: cint; min_ts, ts, max_ts: cint64; flags: cint): cint; + cdecl; external av__format; + +(** + * Discard all internally buffered data. This can be useful when dealing with + * discontinuities in the byte stream. Generally works only with formats that + * can resync. This includes headerless formats like MPEG-TS/TS but should also + * work with NUT, Ogg and in a limited way AVI for example. + * + * The set of streams, the detected duration, stream parameters and codecs do + * not change when calling this function. If you want a complete reset, it's + * better to open a new AVFormatContext. + * + * This does not flush the AVIOContext (s->pb). If necessary, call + * avio_flush(s->pb) before calling this function. + * + * @param s media file handle + * @return >=0 on success, error code otherwise + *) +function avformat_flush(s: PAVFormatContext): cint; + cdecl; external av__format; + +(** + * Start playing a network-based stream (e.g. RTSP stream) at the + * current position. + *) +function av_read_play(s: PAVFormatContext): cint; + cdecl; external av__format; + +(** + * Pause a network-based stream (e.g. RTSP stream). + * + * Use av_read_play() to resume it. + *) +function av_read_pause(s: PAVFormatContext): cint; + cdecl; external av__format; + +(** + * Close an opened input AVFormatContext. Free it and all its contents + * and set *s to NULL. + *) +procedure avformat_close_input(s: PPAVFormatContext); + cdecl; external av__format; +(** + * @} + *) + +const + AVSEEK_FLAG_BACKWARD = 1; ///< seek backward + AVSEEK_FLAG_BYTE = 2; ///< seeking based on position in bytes + AVSEEK_FLAG_ANY = 4; ///< seek to any frame, even non-keyframes + AVSEEK_FLAG_FRAME = 8; + + AVSTREAM_INIT_IN_WRITE_HEADER = 0; ///< stream parameters initialized in avformat_write_header + AVSTREAM_INIT_IN_INIT_OUTPUT = 1; ///< stream parameters initialized in avformat_init_output + + AV_FRAME_FILENAME_FLAGS_MULTIPLE = 1; ///< Allow multiple %d + +(** + * @addtogroup lavf_encoding + * @{ + *) +(** + * Allocate the stream private data and write the stream header to + * an output media file. + * + * @param s Media file handle, must be allocated with avformat_alloc_context(). + * Its oformat field must be set to the desired output format; + * Its pb field must be set to an already opened AVIOContext. + * @param options An AVDictionary filled with AVFormatContext and muxer-private options. + * On return this parameter will be destroyed and replaced with a dict containing + * options that were not found. May be NULL. + * + * @return AVSTREAM_INIT_IN_WRITE_HEADER on success if the codec had not already been fully initialized in avformat_init, + * AVSTREAM_INIT_IN_INIT_OUTPUT on success if the codec had already been fully initialized in avformat_init, + * negative AVERROR on failure. + * + * @see av_opt_find, av_dict_set, avio_open, av_oformat_next, avformat_init_output. + *) +function avformat_write_header(s: PAVFormatContext; options: {PPAVDictionary} pointer): cint; + cdecl; external av__format; + +(** + * Allocate the stream private data and initialize the codec, but do not write the header. + * May optionally be used before avformat_write_header to initialize stream parameters + * before actually writing the header. + * If using this function, do not pass the same options to avformat_write_header. + * + * @param s Media file handle, must be allocated with avformat_alloc_context(). + * Its oformat field must be set to the desired output format; + * Its pb field must be set to an already opened AVIOContext. + * @param options An AVDictionary filled with AVFormatContext and muxer-private options. + * On return this parameter will be destroyed and replaced with a dict containing + * options that were not found. May be NULL. + * + * @return AVSTREAM_INIT_IN_WRITE_HEADER on success if the codec requires avformat_write_header to fully initialize, + * AVSTREAM_INIT_IN_INIT_OUTPUT on success if the codec has been fully initialized, + * negative AVERROR on failure. + * + * @see av_opt_find, av_dict_set, avio_open, av_oformat_next, avformat_write_header. + *) +{av_warn_unused_result} +function avformat_init_output(s: PAVFormatContext; options: PPAVDictionary): cint; + cdecl; external av__format; + +(** + * Write a packet to an output media file. + * + * This function passes the packet directly to the muxer, without any buffering + * or reordering. The caller is responsible for correctly interleaving the + * packets if the format requires it. Callers that want libavformat to handle + * the interleaving should call av_interleaved_write_frame() instead of this + * function. + * + * @param s media file handle + * @param pkt The packet containing the data to be written. Note that unlike + * av_interleaved_write_frame(), this function does not take + * ownership of the packet passed to it (though some muxers may make + * an internal reference to the input packet). + *
+ * This parameter can be NULL (at any time, not just at the end), in + * order to immediately flush data buffered within the muxer, for + * muxers that buffer up data internally before writing it to the + * output. + *
+ * Packet's @ref AVPacket.stream_index "stream_index" field must be + * set to the index of the corresponding stream in @ref + * AVFormatContext.streams "s->streams". + *
+ * The timestamps (@ref AVPacket.pts "pts", @ref AVPacket.dts "dts") + * must be set to correct values in the stream's timebase (unless the + * output format is flagged with the AVFMT_NOTIMESTAMPS flag, then + * they can be set to AV_NOPTS_VALUE). + * The dts for subsequent packets passed to this function must be strictly + * increasing when compared in their respective timebases (unless the + * output format is flagged with the AVFMT_TS_NONSTRICT, then they + * merely have to be nondecreasing). @ref AVPacket.duration + * "duration") should also be set if known. + * @return < 0 on error, = 0 if OK, 1 if flushed and there is no more data to flush + * + * @see av_interleaved_write_frame() + *) +function av_write_frame(s: PAVFormatContext; pkt: PAVPacket): cint; + cdecl; external av__format; + +(** + * Write a packet to an output media file ensuring correct interleaving. + * + * This function will buffer the packets internally as needed to make sure the + * packets in the output file are properly interleaved in the order of + * increasing dts. Callers doing their own interleaving should call + * av_write_frame() instead of this function. + * + * Using this function instead of av_write_frame() can give muxers advance + * knowledge of future packets, improving e.g. the behaviour of the mp4 + * muxer for VFR content in fragmenting mode. + * + * @param s media file handle + * @param pkt The packet containing the data to be written. + *
+ * If the packet is reference-counted, this function will take + * ownership of this reference and unreference it later when it sees + * fit. + * The caller must not access the data through this reference after + * this function returns. If the packet is not reference-counted, + * libavformat will make a copy. + *
+ * This parameter can be NULL (at any time, not just at the end), to + * flush the interleaving queues. + *
+ * Packet's @ref AVPacket.stream_index "stream_index" field must be + * set to the index of the corresponding stream in @ref + * AVFormatContext.streams "s->streams". + *
+ * The timestamps (@ref AVPacket.pts "pts", @ref AVPacket.dts "dts") + * must be set to correct values in the stream's timebase (unless the + * output format is flagged with the AVFMT_NOTIMESTAMPS flag, then + * they can be set to AV_NOPTS_VALUE). + * The dts for subsequent packets in one stream must be strictly + * increasing (unless the output format is flagged with the + * AVFMT_TS_NONSTRICT, then they merely have to be nondecreasing). + * @ref AVPacket.duration "duration") should also be set if known. + * + * @return 0 on success, a negative AVERROR on error. Libavformat will always + * take care of freeing the packet, even if this function fails. + * + * @see av_write_frame(), AVFormatContext.max_interleave_delta + *) +function av_interleaved_write_frame(s: PAVFormatContext; var pkt: TAVPacket): cint; + cdecl; external av__format; + +(** + * Write an uncoded frame to an output media file. + * + * The frame must be correctly interleaved according to the container + * specification; if not, then av_interleaved_write_frame() must be used. + * + * See av_interleaved_write_frame() for details. + *) +function av_write_uncoded_frame(s: PAVFormatContext; stream_index: cint; + frame: PAVFrame): cint; + cdecl; external av__format; + +(** + * Write an uncoded frame to an output media file. + * + * If the muxer supports it, this function makes it possible to write an AVFrame + * structure directly, without encoding it into a packet. + * It is mostly useful for devices and similar special muxers that use raw + * video or PCM data and will not serialize it into a byte stream. + * + * To test whether it is possible to use it with a given muxer and stream, + * use av_write_uncoded_frame_query(). + * + * The caller gives up ownership of the frame and must not access it + * afterwards. + * + * @return >=0 for success, a negative code on error + *) +function av_interleaved_write_uncoded_frame(s: PAVFormatContext; stream_index: cint; + frame: PAVFrame): cint; + cdecl; external av__format; + + +(** + * Test whether a muxer supports uncoded frame. + * + * @return >=0 if an uncoded frame can be written to that muxer and stream, + * <0 if not + *) +function av_write_uncoded_frame_query(s: PAVFormatContext; stream_index: cint): cint; + cdecl; external av__format; + +(** + * Write the stream trailer to an output media file and free the + * file private data. + * + * May only be called after a successful call to avformat_write_header. + * + * @param s media file handle + * @return 0 if OK, AVERROR_xxx on error + *) +function av_write_trailer(s: pAVFormatContext): cint; + cdecl; external av__format; + +(** + * Return the output format in the list of registered output formats + * which best matches the provided parameters, or return NULL if + * there is no match. + * + * @param short_name if non-NULL checks if short_name matches with the + * names of the registered formats + * @param filename if non-NULL checks if filename terminates with the + * extensions of the registered formats + * @param mime_type if non-NULL checks if mime_type matches with the + * MIME type of the registered formats + *) +function av_guess_format(short_name: PAnsiChar; + filename: PAnsiChar; + mime_type: PAnsiChar): PAVOutputFormat; + cdecl; external av__format; + +(** + * Guess the codec ID based upon muxer and filename. + *) +function av_guess_codec(fmt: PAVOutputFormat; short_name: PAnsiChar; + filename: PAnsiChar; mime_type: PAnsiChar; + type_: TCodecType): TAVCodecID; + cdecl; external av__format; + +(** + * Get timing information for the data currently output. + * The exact meaning of "currently output" depends on the format. + * It is mostly relevant for devices that have an internal buffer and/or + * work in real time. + * @param s media file handle + * @param stream stream in the media file + * @param[out] dts DTS of the last packet output for the stream, in stream + * time_base units + * @param[out] wall absolute time when that packet whas output, + * in microsecond + * @return 0 if OK, AVERROR(ENOSYS) if the format does not support it + * Note: some formats or devices may not allow to measure dts and wall + * atomically. + *) +function av_get_output_timestamp(s: PAVFormatContext; stream: cint; + dts: Pcint64; wall: Pcint64): cint; + cdecl; external av__format; + + +(** + * @} + *) + + +(** + * @defgroup lavf_misc Utility functions + * @ingroup libavf + * @ + * + * Miscellaneous utility functions related to both muxing and demuxing + * (or neither). + *) + +(** + * Send a nice hexadecimal dump of a buffer to the specified file stream. + * + * @param f The file stream pointer where the dump should be sent to. + * @param buf buffer + * @param size buffer size + * + * @see av_hex_dump_log, av_pkt_dump2, av_pkt_dump_log2 + *) +procedure av_hex_dump(f: PAVFile; buf: {const} PByteArray; size: cint); {<-?FILE} + cdecl; external av__format; + +(** + * Send a nice hexadecimal dump of a buffer to the log. + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct. + * @param level The importance level of the message, lower values signifying + * higher importance. + * @param buf buffer + * @param size buffer size + * + * @see av_hex_dump, av_pkt_dump, av_pkt_dump_log + *) +procedure av_hex_dump_log(avcl: Pointer; level: cint; buf: {const} PByteArray; size: cint); + cdecl; external av__format; + +(** + * Send a nice dump of a packet to the specified file stream. + * + * @param f The file stream pointer where the dump should be sent to. + * @param pkt packet to dump + * @param dump_payload True if the payload must be displayed, too. + * @param st AVStream that the packet belongs to + *) +procedure av_pkt_dump2(f: PAVFile; pkt: {const} PAVPacket; dump_payload: cint; st: {const} PAVStream); + cdecl; external av__format; + +(** + * Send a nice dump of a packet to the log. + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct. + * @param level The importance level of the message, lower values signifying + * higher importance. + * @param pkt packet to dump + * @param dump_payload True if the payload must be displayed, too. + * @param st AVStream that the packet belongs to + *) +procedure av_pkt_dump_log2(avcl: pointer; level: cint; pkt: {const} PAVPacket; dump_payload: cint; + st: {const} PAVStream); + cdecl; external av__format; + +(** + * Get the AVCodecID for the given codec tag tag. + * If no codec id is found returns AV_CODEC_ID_NONE. + * + * @param tags list of supported codec_id-codec_tag pairs, as stored + * in AVInputFormat.codec_tag and AVOutputFormat.codec_tag + * @param tag codec tag to match to a codec ID + *) +function av_codec_get_id(var tags: PAVCodecTag; tag: cuint): TAVCodecID; + cdecl; external av__format; + +(** + * Getsthe codec tag for the given codec id id. + * If no codec tag is found returns 0. + * + * @param tags list of supported codec_id-codec_tag pairs, as stored + * in AVInputFormat.codec_tag and AVOutputFormat.codec_tag + * @param id codec ID to match to a codec tag + *) +function av_codec_get_tag(var tags: PAVCodecTag; id: TAVCodecID): cuint; + cdecl; external av__format; + +(** + * Get the codec tag for the given codec id. + * + * @param tags list of supported codec_id - codec_tag pairs, as stored + * in AVInputFormat.codec_tag and AVOutputFormat.codec_tag + * @param id codec id that should be searched for in the list + * @param tag A pointer to the found tag + * @return 0 if id was not found in tags, > 0 if it was found + *) +function av_codec_get_tag2(var tags: PAVCodecTag; id: TAVCodecID; + tag: Pcuint): cint; + cdecl; external av__format; + +function av_find_default_stream_index(s: PAVFormatContext): cint; + cdecl; external av__format; + +(** + * Get the index for a specific timestamp. + * + * @param st stream that the timestamp belongs to + * @param timestamp timestamp to retrieve the index for + * @param flags if AVSEEK_FLAG_BACKWARD then the returned index will correspond + * to the timestamp which is <= the requested one, if backward + * is 0, then it will be >= + * if AVSEEK_FLAG_ANY seek to any frame, only keyframes otherwise + * @return < 0 if no such timestamp could be found + *) +function av_index_search_timestamp(st: PAVStream; timestamp: cint64; flags: cint): cint; + cdecl; external av__format; + +(** + * Add an index entry into a sorted list. Update the entry if the list + * already contains it. + * + * @param timestamp timestamp in the timebase of the given stream + *) +function av_add_index_entry(st: PAVStream; pos: cint64; timestamp: cint64; + size: cint; distance: cint; flags: cint): cint; + cdecl; external av__format; + +(** + * Split a URL string into components. + * + * The pointers to buffers for storing individual components may be null, + * in order to ignore that component. Buffers for components not found are + * set to empty strings. If the port is not found, it is set to a negative + * value. + * + * @param proto the buffer for the protocol + * @param proto_size the size of the proto buffer + * @param authorization the buffer for the authorization + * @param authorization_size the size of the authorization buffer + * @param hostname the buffer for the host name + * @param hostname_size the size of the hostname buffer + * @param port_ptr a pointer to store the port number in + * @param path the buffer for the path + * @param path_size the size of the path buffer + * @param url the URL to split + *) +procedure av_url_split(proto: PAnsiChar; proto_size: cint; + authorization: PAnsiChar; authorization_size: cint; + hostname: PAnsiChar; hostname_size: cint; + port_ptr: Pcint; + path: PAnsiChar; path_size: cint; + url: {const} PAnsiChar); + cdecl; external av__format; + +(** + * Print detailed information about the input or output format, such as + * duration, bitrate, streams, container, programs, metadata, side data, + * codec and time base. + * + * @param ic the context to analyze + * @param index index of the stream to dump information about + * @param url the URL to print, such as source or destination file + * @param is_output Select whether the specified context is an input(0) or output(1) + *) +procedure av_dump_format(ic: PAVFormatContext; + index: cint; + url: {const} PAnsiChar; + is_output: cint); + cdecl; external av__format; + +(** + * Return in 'buf' the path with '%d' replaced by a number. + * + * Also handles the '%0nd' format where 'n' is the total number + * of digits and '%%'. + * + * @param buf destination buffer + * @param buf_size destination buffer size + * @param path numbered sequence string + * @param number frame number + * @param flags AV_FRAME_FILENAME_FLAGS_* + * @return 0 if OK, -1 on format error + *) +function av_get_frame_filename2(buf: PAnsiChar; buf_size: cint; + path: {const} PAnsiChar; number: cint; flags: cint): cint; + cdecl; external av__format; +function av_get_frame_filename(buf: PAnsiChar; buf_size: cint; + path: {const} PAnsiChar; number: cint): cint; + cdecl; external av__format; + +(** + * Check whether filename actually is a numbered sequence generator. + * + * @param filename possible numbered sequence string + * @return 1 if a valid numbered sequence string, 0 otherwise + *) +function av_filename_number_test(filename: {const} PAnsiChar): cint; + cdecl; external av__format; + +(** + * Generate an SDP for an RTP session. + * + * Note, this overwrites the id values of AVStreams in the muxer contexts + * for getting unique dynamic payload types. + * + * @param ac array of AVFormatContexts describing the RTP streams. If the + * array is composed by only one context, such context can contain + * multiple AVStreams (one AVStream per RTP stream). Otherwise, + * all the contexts in the array (an AVCodecContext per RTP stream) + * must contain only one AVStream. + * @param n_files number of AVCodecContexts contained in ac + * @param buf buffer where the SDP will be stored (must be allocated by + * the caller) + * @param size the size of the buffer + * @return 0 if OK, AVERROR_xxx on error + *) +function av_sdp_create(ac: pointer; n_files: cint; buf: PAnsiChar; size: cint): cint; + cdecl; external av__format; + +(** + * Return a positive value if the given filename has one of the given + * extensions, 0 otherwise. + * + * @param filename file name to check against the given extensions + * @param extensions a comma-separated list of filename extensions + *) +function av_match_ext(filename: {const} Pchar; extensions: {const} Pchar): cint; + cdecl; external av__format; + +(** + * Test if the given container can store a codec. + * + * @param ofmt container to check for compatibility + * @param codec_id codec to potentially store in container + * @param std_compliance standards compliance level, one of FF_COMPLIANCE_* + * + * @return 1 if codec with ID codec_id can be stored in ofmt, 0 if it cannot. + * A negative number if this information is not available. + *) +function avformat_query_codec(ofmt: {const} PAVOutputFormat; codec_id: TAVCodecID; + std_compliance: cint): cint; + cdecl; external av__format; + +(** + * @defgroup riff_fourcc RIFF FourCCs + * @ + * Get the tables mapping RIFF FourCCs to libavcodec AVCodecIDs. The tables are + * meant to be passed to av_codec_get_id()/av_codec_get_tag() as in the + * following code: + * @code + * uint32_t tag = MKTAG('H', '2', '6', '4'); + * const struct AVCodecTag *table[] = { avformat_get_riff_video_tags(), 0 }; + * enum AVCodecID id = av_codec_get_id(table, tag); + * @endcode + *) +(** + * @return the table mapping RIFF FourCCs for video to libavcodec AVCodecID. + *) +function avformat_get_riff_video_tags(): {const} PAVCodecTag; + cdecl; external av__format; +(** + * @return the table mapping RIFF FourCCs for audio to AVCodecID. + *) +function avformat_get_riff_audio_tags(): {const} PAVCodecTag; + cdecl; external av__format; + +(** + * @return the table mapping MOV FourCCs for video to libavcodec AVCodecID. + *) +function avformat_get_mov_video_tags(): {const} PAVCodecTag; + cdecl; external av__format; + +(** + * @return the table mapping MOV FourCCs for audio to AVCodecID. + *) +function avformat_get_mov_audio_tags(): {const} PAVCodecTag; + cdecl; external av__format; + +(** + * Guess the sample aspect ratio of a frame, based on both the stream and the + * frame aspect ratio. + * + * Since the frame aspect ratio is set by the codec but the stream aspect ratio + * is set by the demuxer, these two may not be equal. This function tries to + * return the value that you should use if you would like to display the frame. + * + * Basic logic is to use the stream aspect ratio if it is set to something sane + * otherwise use the frame aspect ratio. This way a container setting, which is + * usually easy to modify can override the coded value in the frames. + * + * @param format the format context which the stream is part of + * @param stream the stream which the frame is part of + * @param frame the frame with the aspect ratio to be determined + * @return the guessed (valid) sample_aspect_ratio, 0/1 if no idea + *) +function av_guess_sample_aspect_ratio(format: PAVFormatContext; stream: PAVStream; frame: PAVFrame): TAVRational; + cdecl; external av__format; + +(** + * Guess the frame rate, based on both the container and codec information. + * + * @param ctx the format context which the stream is part of + * @param stream the stream which the frame is part of + * @param frame the frame for which the frame rate should be determined, may be NULL + * @return the guessed (valid) frame rate, 0/1 if no idea + *) +function av_guess_frame_rate(ctx: PAVFormatContext; stream: PAVStream; frame: PAVFrame): TAVRational; + cdecl; external av__format; + +(** + * Check if the stream st contained in s is matched by the stream specifier + * spec. + * + * See the "stream specifiers" chapter in the documentation for the syntax + * of spec. + * + * @return >0 if st is matched by spec; + * 0 if st is not matched by spec; + * AVERROR code if spec is invalid + * + * @note A stream specifier can match several streams in the format. + *) +function avformat_match_stream_specifier(s: PAVFormatContext; st: PAVStream; + spec: PAnsiChar): cint; + cdecl; external av__format; + +function avformat_queue_attached_pictures(s: PAVFormatContext): cint; + cdecl; external av__format; + +{$IFDEF FF_API_OLD_BSF} +(** + * Apply a list of bitstream filters to a packet. + * + * @param codec AVCodecContext, usually from an AVStream + * @param pkt the packet to apply filters to. If, on success, the returned + * packet has size == 0 and side_data_elems == 0, it indicates that + * the packet should be dropped + * @param pkt the packet to apply filters to + * @param bsfc a NULL-terminated list of filters to apply + * @return >=0 on success; + * AVERROR code on failure + *) +function av_apply_bitstream_filters(codec: PAVCodecContext; pkt: PAVPacket; + bsfc: PAVBitStreamFilterContext): cint; + cdecl; external av__format; deprecated; +{$ENDIF} + +(** + * Transfer internal timing information from one stream to another. + * + * This function is useful when doing stream copy. + * + * @param ofmt target output format for ost + * @param ost output stream which needs timings copy and adjustments + * @param ist reference input stream to copy timings from + * @param copy_tb define from where the stream codec timebase needs to be imported + *) +function avformat_transfer_internal_stream_timing_info(ofmt: {const} PAVOutputFormat; + ost: PAVStream; ist: {const} PAVStream; + copy_tb: TAVTimebaseSource): cint; + cdecl; external av__format; + +(** + * Get the internal codec timebase from a stream. + * + * @param st input stream to extract the timebase from + *) +function av_stream_get_codec_timebase(st: {const} PAVStream): TAVRational; + cdecl; external av__format; + +implementation + +end. diff --git a/src/lib/ffmpeg-4.0/avio.pas b/src/lib/ffmpeg-4.0/avio.pas new file mode 100644 index 00000000..25a89489 --- /dev/null +++ b/src/lib/ffmpeg-4.0/avio.pas @@ -0,0 +1,992 @@ +(* + * copyright (c) 2001 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of Pascal porting of ffmpeg. + * - Originally by Victor Zinetz for Delphi and Free Pascal on Windows. + * - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT + * in the source codes. + * - Changes and updates by the UltraStar Deluxe Team + * + * Conversion of libavformat/avio.h + * unbuffered I/O operations + * @warning This file has to be considered an internal but installed + * header, so it should not be directly included in your projects. + * + * update to + * avformat version: 56.4.101 + *) + +unit avio; + +{$IFDEF FPC} + {$MODE DELPHI } + {$PACKENUM 4} (* use 4-byte enums *) + {$PACKRECORDS C} (* C/C++-compatible record packing *) +{$ELSE} + {$MINENUMSIZE 4} (* use 4-byte enums *) +{$ENDIF} + +{$I switches.inc} + +interface + +uses + ctypes, + {$IFDEF UNIX} + BaseUnix, // for SEEK_CUR + {$ENDIF} + avcodec, + avutil, + SysUtils, + UConfig; + +(** + * Those FF_API_* defines are not part of public API. + * They may change, break or disappear at any time. + *) +const + FF_API_URL_CLASS = (LIBAVFORMAT_VERSION_MAJOR >= 53); + +const + (** + * Seeking works like for a local file. + *) + AVIO_SEEKABLE_NORMAL = (1 << 0); + + (** + * Seeking by timestamp with avio_seek_time() is possible. + *) + AVIO_SEEKABLE_TIME = (1 << 1); + +type + TReadWriteFunc = function(opaque: Pointer; buf: PByteArray; buf_size: cint): cint; cdecl; + TSeekFunc = function(opaque: Pointer; offset: cint64; whence: cint): cint64; cdecl; + Tcallback = function(p: pointer): cint; cdecl; + +type +(** + * Callback for checking whether to abort blocking functions. + * AVERROR_EXIT is returned in this case by the interrupted + * function. During blocking operations, callback is called with + * opaque as parameter. If the callback returns 1, the + * blocking operation will be aborted. + * + * No members can be added to this struct without a major bump, if + * new elements have been added after this struct in AVFormatContext + * or AVIOContext. + *) + PAVIOInterruptCB = ^TAVIOInterruptCB; + TAVIOInterruptCB = record + callback: Tcallback; + opaque: pointer; + end; (*TAVIOInterruptCB*) + + (** + * Directory entry types. + *) + TAVIODirEntryType = ( + AVIO_ENTRY_UNKNOWN, + AVIO_ENTRY_BLOCK_DEVICE, + AVIO_ENTRY_CHARACTER_DEVICE, + AVIO_ENTRY_DIRECTORY, + AVIO_ENTRY_NAMED_PIPE, + AVIO_ENTRY_SYMBOLIC_LINK, + AVIO_ENTRY_SOCKET, + AVIO_ENTRY_FILE, + AVIO_ENTRY_SERVER, + AVIO_ENTRY_SHARE, + AVIO_ENTRY_WORKGROUP + ); + + TAVIODataMarkerType = ( + (** + * Header data; this needs to be present for the stream to be decodeable. + *) + AVIO_DATA_MARKER_HEADER, + (** + * A point in the output bytestream where a decoder can start decoding + * (i.e. a keyframe). A demuxer/decoder given the data flagged with + * AVIO_DATA_MARKER_HEADER, followed by any AVIO_DATA_MARKER_SYNC_POINT, + * should give decodeable results. + *) + AVIO_DATA_MARKER_SYNC_POINT, + (** + * A point in the output bytestream where a demuxer can start parsing + * (for non self synchronizing bytestream formats). That is, any + * non-keyframe packet start point. + *) + AVIO_DATA_MARKER_BOUNDARY_POINT, + (** + * This is any, unlabelled data. It can either be a muxer not marking + * any positions at all, it can be an actual boundary/sync point + * that the muxer chooses not to mark, or a later part of a packet/fragment + * that is cut into multiple write callbacks due to limited IO buffer size. + *) + AVIO_DATA_MARKER_UNKNOWN, + (** + * Trailer data, which doesn't contain actual content, but only for + * finalizing the output file. + *) + AVIO_DATA_MARKER_TRAILER, + (** + * A point in the output bytestream where the underlying AVIOContext might + * flush the buffer depending on latency or buffering requirements. Typically + * means the end of a packet. + *) + AVIO_DATA_MARKER_FLUSH_POINT + ); + + (** + * Describes single entry of the directory. + * + * Only name and type fields are guaranteed be set. + * Rest of fields are protocol or/and platform dependent and might be unknown. + *) + PPAVIODirEntry = ^PAVIODirEntry; + PAVIODirEntry = ^TAVIODirEntry; + TAVIODirEntry = record + name: PAnsiChar; (**< Filename *) + type_: cint; (**< Type of the entry *) + utf8: cint; (**< Set to 1 when name is encoded with UTF-8, 0 otherwise. + Name can be encoded with UTF-8 even though 0 is set. *) + size: cint64; (**< File size in bytes, -1 if unknown. *) + modification_timestamp: cint64; (**< Time of last modification in microseconds since unix + epoch, -1 if unknown. *) + access_timestamp: cint64; (**< Time of last access in microseconds since unix epoch, + -1 if unknown. *) + status_change_timestamp: cint64; (**< Time of last status change in microseconds since unix + epoch, -1 if unknown. *) + user_id: cint64; (**< User ID of owner, -1 if unknown. *) + group_id: cint64; (**< Group ID of owner, -1 if unknown. *) + filemode: cint64; (**< Unix file mode, -1 if unknown. *) + end; + + PPAVIODirContext = ^PAVIODirContext; + PAVIODirContext = ^TAVIODirContext; + TAVIODirContext = record + url_context: pointer; + (** struct URLContext *url_context; *) + end; + +(** + * Bytestream IO Context. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(AVIOContext) must not be used outside libav*. + * + * @note None of the function pointers in AVIOContext should be called + * directly, they should only be set by the client application + * when implementing custom I/O. Normally these are set to the + * function pointers specified in avio_alloc_context() + *) + PPAVIOContext = ^PAVIOContext; + PAVIOContext = ^TAVIOContext; + TAVIOContext = record + (** + * A class for private options. + * + * If this AVIOContext is created by avio_open2(), av_class is set and + * passes the options down to protocols. + * + * If this AVIOContext is manually allocated, then av_class may be set by + * the caller. + * + * warning -- this field can be NULL, be sure to not pass this AVIOContext + * to any av_opt_* functions in that case. + *) + av_class: {const} PAVClass; + + (* + * The following shows the relationship between buffer, buf_ptr, + * buf_ptr_max, buf_end, buf_size, and pos, when reading and when writing + * (since AVIOContext is used for both): + * + ********************************************************************************** + * READING + ********************************************************************************** + * + * | buffer_size | + * |---------------------------------------| + * | | + * + * buffer buf_ptr buf_end + * +---------------+-----------------------+ + * |/ / / / / / / /|/ / / / / / /| | + * read buffer: |/ / consumed / | to be read /| | + * |/ / / / / / / /|/ / / / / / /| | + * +---------------+-----------------------+ + * + * pos + * +-------------------------------------------+-----------------+ + * input file: | | | + * +-------------------------------------------+-----------------+ + * + * + ********************************************************************************** + * WRITING + ********************************************************************************** + * + * | buffer_size | + * |--------------------------------------| + * | | + * + * buf_ptr_max + * buffer (buf_ptr) buf_end + * +-----------------------+--------------+ + * |/ / / / / / / / / / / /| | + * write buffer: | / / to be flushed / / | | + * |/ / / / / / / / / / / /| | + * +-----------------------+--------------+ + * buf_ptr can be in this + * due to a backward seek + * + * pos + * +-------------+----------------------------------------------+ + * output file: | | | + * +-------------+----------------------------------------------+ + * + *) + + buffer: PByteArray; (**< Start of the buffer. *) + buffer_size: cint; (**< Maximum buffer size *) + buf_ptr: PByteArray; (**< Current position in the buffer *) + buf_end: PByteArray; (**< End of the data, may be less than + buffer+buffer_size if the read function returned + less data than requested, e.g. for streams where + no more data has been received yet. *) + opaque: pointer; (**< A private pointer, passed to the read/write/seek/... + functions. *) + read_packet: TReadWriteFunc; + write_packet: TReadWriteFunc; + seek: TSeekFunc; + pos: cint64; (**< position in the file of the current buffer *) + must_flush: cint; (**< unused *) + eof_reached: cint; (**< true if eof reached *) + write_flag: cint; (**< true if open for writing *) + max_packet_size: cint; + checksum: culong; + checksum_ptr: PByteArray; + update_checksum: function (checksum: culong; buf: {const} PAnsiChar; size: cuint): culong; cdecl; + error: cint; (**< contains the error code or 0 if no error happened *) + (** + * Pause or resume playback for network streaming protocols - e.g. MMS. + *) + read_pause: function(opaque: Pointer; pause: cint): cint; cdecl; + (** + * Seek to a given timestamp in stream with the specified stream_index. + * Needed for some network streaming protocols which don't support seeking + * to byte position. + *) + read_seek: function(opaque: Pointer; stream_index: cint; + timestamp: cint64; flags: cint): cint64; cdecl; + (** + * A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable. + *) + seekable: cint; + + (** + * max filesize, used to limit allocations + * This field is internal to libavformat and access from outside is not allowed. + *) + maxsize: cint64; + + (** + * avio_read and avio_write should if possible be satisfied directly + * instead of going through a buffer, and avio_seek will always + * call the underlying seek function directly. + *) + direct: cint; + + (** + * Bytes read statistic + * This field is internal to libavformat and access from outside is not allowed. + *) + bytes_read: cint64; + + (** + * seek statistic + * This field is internal to libavformat and access from outside is not allowed. + *) + seek_count: cint; + + (** + * writeout statistic + * This field is internal to libavformat and access from outside is not allowed. + *) + writeout_count: cint; + + (** + * Original buffer size + * used internally after probing and ensure seekback to reset the buffer size + * This field is internal to libavformat and access from outside is not allowed. + *) + orig_buffer_size: cint; + + (** + * Threshold to favor readahead over seek. + * This is current internal only, do not use from outside. + *) + short_seek_threshold: cint; + + (** + * ',' separated list of allowed protocols. + *) + protocol_whitelist: {const} PAnsiChar; + + (** + * A callback that is used instead of write_packet. + *) + write_data_type: function(opaque: pointer; buf: Pcuint8; buf_size: cint; + type_: TAVIODataMarkerType; time: cint64): cint; cdecl; + (** + * If set, don't call write_data_type separately for AVIO_DATA_MARKER_BOUNDARY_POINT, + * but ignore them and treat them as AVIO_DATA_MARKER_UNKNOWN (to avoid needlessly + * small chunks of data returned from the callback). + *) + ignore_boundary_point: cint; + + (** + * Internal, not meant to be used from outside of AVIOContext. + *) + current_type: TAVIODataMarkerType; + last_time: cint64; + + (** + * A callback that is used instead of short_seek_threshold. + * This is current internal only, do not use from outside. + *) + short_seek_get: function(opaque: pointer): cint; cdecl; + + written: cint64; + + (** + * Maximum reached position before a backward seek in the write buffer, + * used keeping track of already written data for a later flush. + *) + buf_ptr_max: PByteArray; + + (** + * Try to buffer at least this amount of data before flushing it + *) + min_packet_size: cint; + end; {AVIOContext} + +(* unbuffered I/O *) + +(** + * Return the name of the protocol that will handle the passed URL. + * + * NULL is returned if no protocol could be found for the given URL. + * + * @return Name of the protocol or NULL. + *) +function avio_find_protocol_name(url: {const} PAnsiChar): {const} PAnsiChar; + cdecl; external av__format; + +(** + * Return AVIO_* access flags corresponding to the access permissions + * of the resource in url, or a negative value corresponding to an + * AVERROR code in case of failure. The returned access flags are + * masked by the value in flags. + * + * @note This function is intrinsically unsafe, in the sense that the + * checked resource may change its existence or permission status from + * one call to another. Thus you should not trust the returned value, + * unless you are sure that no other processes are accessing the + * checked resource. + *) +function avio_check(url: {const} PAnsiChar; flags: cint): cint; + cdecl; external av__format; + +(** + * Move or rename a resource. + * + * @note url_src and url_dst should share the same protocol and authority. + * + * @param url_src url to resource to be moved + * @param url_dst new url to resource if the operation succeeded + * @return >=0 on success or negative on error. + *) +function avpriv_io_move(url_src: {const} PAnsiChar; url_dst: {const} PAnsiChar): cint; + cdecl; external av__format; + +(** + * Delete a resource. + * + * @param url resource to be deleted. + * @return >=0 on success or negative on error. + *) +function avpriv_io_delete(url: {const} PAnsiChar): cint; + cdecl; external av__format; + +(** + * Open directory for reading. + * + * @param s directory read context. Pointer to a NULL pointer must be passed. + * @param url directory to be listed. + * @param options A dictionary filled with protocol-private options. On return + * this parameter will be destroyed and replaced with a dictionary + * containing options that were not found. May be NULL. + * @return >=0 on success or negative on error. + *) +function avio_open_dir(s: PPAVIODirContext; url: {const} PAnsiChar; options: PPAVDictionary): cint; + cdecl; external av__format; + +(** + * Get next directory entry. + * + * Returned entry must be freed with avio_free_directory_entry(). In particular + * it may outlive AVIODirContext. + * + * @param s directory read context. + * @param[out] next next entry or NULL when no more entries. + * @return >=0 on success or negative on error. End of list is not considered an + * error. + *) +function avio_read_dir(s: PAVIODirContext; next: PPAVIODirEntry): cint; + cdecl; external av__format; + +(** + * Close directory. + * + * @note Entries created using avio_read_dir() are not deleted and must be + * freeded with avio_free_directory_entry(). + * + * @param s directory read context. + * @return >=0 on success or negative on error. + *) +function avio_close_dir(s: PPAVIODirContext): cint; + cdecl; external av__format; + +(** + * Free entry allocated by avio_read_dir(). + * + * @param entry entry to be freed. + *) +procedure avio_free_directory_entry(entry: PPAVIODirEntry); + cdecl; external av__format; + +(** + * Allocate and initialize an AVIOContext for buffered I/O. It must be later + * freed with avio_context_free(). + * + * @param buffer Memory block for input/output operations via AVIOContext. + * The buffer must be allocated with av_malloc() and friends. + * It may be freed and replaced with a new buffer by libavformat. + * AVIOContext.buffer holds the buffer currently in use, + * which must be later freed with av_free(). + * @param buffer_size The buffer size is very important for performance. + * For protocols with fixed blocksize it should be set to this blocksize. + * For others a typical size is a cache page, e.g. 4kb. + * @param write_flag Set to 1 if the buffer should be writable, 0 otherwise. + * @param opaque An opaque pointer to user-specific data. + * @param read_packet A function for refilling the buffer, may be NULL. + * For stream protocols, must never return 0 but rather + * a proper AVERROR code. + * @param write_packet A function for writing the buffer contents, may be NULL. + * The function may not change the input buffers content. + * @param seek A function for seeking to specified byte position, may be NULL. + * + * @return Allocated AVIOContext or NULL on failure. + *) +function avio_alloc_context( + buffer: PAnsiChar; + buffer_size: cint; + write_flag: cint; + opaque: Pointer; + read_packet: TReadWriteFunc; + write_packet: TReadWriteFunc; + seek: TSeekFunc): PAVIOContext; + cdecl; external av__format; + +(** + * Free the supplied IO context and everything associated with it. + * + * @param s Double pointer to the IO context. This function will write NULL + * into s. + *) +procedure avio_context_free(s: PAVIOContext); + cdecl; external av__format; + +procedure avio_w8(s: PAVIOContext; b: cint); + cdecl; external av__format; +procedure avio_write(s: PAVIOContext; buf: {const} PAnsiChar; size: cint); + cdecl; external av__format; +procedure avio_wl64(s: PAVIOContext; val: cuint64); + cdecl; external av__format; +procedure avio_wb64(s: PAVIOContext; val: cuint64); + cdecl; external av__format; +procedure avio_wl32(s: PAVIOContext; val: cuint); + cdecl; external av__format; +procedure avio_wb32(s: PAVIOContext; val: cuint); + cdecl; external av__format; +procedure avio_wl24(s: PAVIOContext; val: cuint); + cdecl; external av__format; +procedure avio_wb24(s: PAVIOContext; val: cuint); + cdecl; external av__format; +procedure avio_wl16(s: PAVIOContext; val: cuint); + cdecl; external av__format; +procedure avio_wb16(s: PAVIOContext; val: cuint); + cdecl; external av__format; + +(** + * Write a NULL-terminated string. + * @return number of bytes written. + *) +function avio_put_str(s: PAVIOContext; str: {const} PAnsiChar): cint; + cdecl; external av__format; + +(** + * Convert an UTF-8 string to UTF-16LE and write it. + * @param s the AVIOContext + * @param str NULL-terminated UTF-8 string + * + * @return number of bytes written. + *) +function avio_put_str16le(s: PAVIOContext; str: {const} PAnsiChar): cint; + cdecl; external av__format; + +(** + * Convert an UTF-8 string to UTF-16BE and write it. + * @param s the AVIOContext + * @param str NULL-terminated UTF-8 string + * + * @return number of bytes written. + *) +function avio_put_str16be(s: PAVIOContext; str: {const} PAnsiChar): cint; + cdecl; external av__format; + +(** + * Mark the written bytestream as a specific type. + * + * Zero-length ranges are omitted from the output. + * + * @param time the stream time the current bytestream pos corresponds to + * (in AV_TIME_BASE units), or AV_NOPTS_VALUE if unknown or not + * applicable + * @param type the kind of data written starting at the current pos + *) +procedure avio_write_marker(s: PAVIOContext; time: cint64; type_: TAVIODataMarkerType); + cdecl; external av__format; + +const +(** + * ORing this as the "whence" parameter to a seek function causes it to + * return the filesize without seeking anywhere. Supporting this is optional. + * If it is not supported then the seek function will return <0. + *) + AVSEEK_SIZE = $10000; + +(** + * Passing this flag as into the "whence" parameter to a seek function causes it to + * seek by any means (like reopening and linear reading) or other normally unreasonable + * means that can be extremely slow. + * This may be ignored by the seek code. + *) + AVSEEK_FORCE = $20000; + +(** + * fseek() equivalent for AVIOContext. + * @return new position or AVERROR. + *) +function avio_seek(s: PAVIOContext; offset: cint64; whence: cint): cint64; + cdecl; external av__format; + +(** + * Skip given number of bytes forward + * @return new position or AVERROR. + *) +function avio_skip(s: PAVIOContext; offset: cint64): cint64; + cdecl; external av__format; + +{$IFDEF UNIX} +(** + * ftell() equivalent for AVIOContext. + * @return position or AVERROR. + *) +function avio_tell(s: PAVIOContext): cint64; {$IFDEF HasInline}inline;{$ENDIF} +{$ELSE} +{$ENDIF} + +(** + * Get the filesize. + * @return filesize or AVERROR + *) +function avio_size(s: PAVIOContext): cint64; + cdecl; external av__format; + +(** + * feof() equivalent for AVIOContext. + * @return non zero if and only if end of file + *) +function avio_feof(s: PAVIOContext): cint; + cdecl; external av__format; + +(** @warning Writes up to 4 KiB per call *) +function avio_printf(s: PAVIOContext; fmt: {const} PAnsiChar; args: array of const): cint; + cdecl; external av__format; + +(** + * Force flushing of buffered data. + * + * For write streams, force the buffered data to be immediately written to the output, + * without to wait to fill the internal buffer. + * + * For read streams, discard all currently buffered data, and advance the + * reported file position to that of the underlying stream. This does not + * read new data, and does not perform any seeks. + *) +procedure avio_flush(s: PAVIOContext); + cdecl; external av__format; + +(** + * Read size bytes from AVIOContext into buf. + * @return number of bytes read or AVERROR + *) +function avio_read(s: PAVIOContext; buf: Pbyte; size: cint): cint; + cdecl; external av__format; + +(** + * Read size bytes from AVIOContext into buf. Unlike avio_read(), this is allowed + * to read fewer bytes than requested. The missing bytes can be read in the next + * call. This always tries to read at least 1 byte. + * Useful to reduce latency in certain cases. + * @return number of bytes read or AVERROR + *) +function avio_read_partial(s: PAVIOContext; buf: Pbyte; size: cint): cint; + cdecl; external av__format; + +(** + * @name Functions for reading from AVIOContext + * @ + * + * @note return 0 if EOF, so you cannot use it if EOF handling is + * necessary + *) +function avio_r8(s: PAVIOContext): cint; + cdecl; external av__format; + +function avio_rl16(s: PAVIOContext): cuint; + cdecl; external av__format; + +function avio_rl24(s: PAVIOContext): cuint; + cdecl; external av__format; + +function avio_rl32(s: PAVIOContext): cuint; + cdecl; external av__format; + +function avio_rl64(s: PAVIOContext): cuint64; + cdecl; external av__format; + +function avio_rb16(s: PAVIOContext): cuint; + cdecl; external av__format; + +function avio_rb24(s: PAVIOContext): cuint; + cdecl; external av__format; + +function avio_rb32(s: PAVIOContext): cuint; + cdecl; external av__format; + +function avio_rb64(s: PAVIOContext): cuint64; + cdecl; external av__format; + +(** + * @ + *) +(** + * Read a string from pb into buf. The reading will terminate when either + * a NULL character was encountered, maxlen bytes have been read, or nothing + * more can be read from pb. The result is guaranteed to be NULL-terminated, it + * will be truncated if buf is too small. + * Note that the string is not interpreted or validated in any way, it + * might get truncated in the middle of a sequence for multi-byte encodings. + * + * @return number of bytes read (is always <= maxlen). + * If reading ends on EOF or error, the return value will be one more than + * bytes actually read. + *) +function avio_get_str(pb: PAVIOContext; maxlen: cint; buf: PAnsiChar; buflen: cint): cint; + cdecl; external av__format; + +(** + * Read a UTF-16 string from pb and convert it to UTF-8. + * The reading will terminate when either a null or invalid character was + * encountered or maxlen bytes have been read. + * @return number of bytes read (is always <= maxlen) + *) +function avio_get_str16le(pb: PAVIOContext; maxlen: cint; buf: PAnsiChar; buflen: cint): cint; + cdecl; external av__format; + +function avio_get_str16be(pb: PAVIOContext; maxlen: cint; buf: PAnsiChar; buflen: cint): cint; + cdecl; external av__format; + +(** + * @name URL open modes + * The flags argument to avio_open must be one of the following + * constants, optionally ORed with other flags. + * @{ + *) +const + AVIO_FLAG_READ = 1; (**< read-only *) + AVIO_FLAG_WRITE = 2; (**< write-only *) + AVIO_FLAG_READ_WRITE = {(AVIO_FLAG_READ|AVIO_FLAG_WRITE)} 3; (**< read-write pseudo flag *) +(** + * @ + *) + +const +(** + * Use non-blocking mode. + * If this flag is set, operations on the context will return + * AVERROR(EAGAIN) if they can not be performed immediately. + * If this flag is not set, operations on the context will never return + * AVERROR(EAGAIN). + * Note that this flag does not affect the opening/connecting of the + * context. Connecting a protocol will always block if necessary (e.g. on + * network protocols) but never hang (e.g. on busy devices). + * Warning: non-blocking protocols is work-in-progress; this flag may be + * silently ignored. + *) + AVIO_FLAG_NONBLOCK = 8; + +(** + * Use direct mode. + * avio_read and avio_write should if possible be satisfied directly + * instead of going through a buffer, and avio_seek will always + * call the underlying seek function directly. + *) + AVIO_FLAG_DIRECT = $8000; + +(** + * Create and initialize a AVIOContext for accessing the + * resource indicated by url. + * @note When the resource indicated by url has been opened in + * read+write mode, the AVIOContext can be used only for writing. + * + * @param s Used to return the pointer to the created AVIOContext. + * In case of failure the pointed to value is set to NULL. + * @param flags flags which control how the resource indicated by url + * is to be opened + * @return 0 in case of success, a negative value corresponding to an + * AVERROR code in case of failure + *) +function avio_open(s: PPAVIOContext; url: {const} PAnsiChar; flags: cint): cint; + cdecl; external av__format; + +(** + * Create and initialize a AVIOContext for accessing the + * resource indicated by url. + * @note When the resource indicated by url has been opened in + * read+write mode, the AVIOContext can be used only for writing. + * + * @param s Used to return the pointer to the created AVIOContext. + * In case of failure the pointed to value is set to NULL. + * @param flags flags which control how the resource indicated by url + * is to be opened + * @param int_cb an interrupt callback to be used at the protocols level + * @param options A dictionary filled with protocol-private options. On return + * this parameter will be destroyed and replaced with a dict containing options + * that were not found. May be NULL. + * @return 0 in case of success, a negative value corresponding to an + * AVERROR code in case of failure + *) +function avio_open2(s: PPAVIOContext; {const} url: PAnsiChar; flags: cint; + {const} int_cb: PAVIOInterruptCB; options: PPAVDictionary): cint; + cdecl; external av__format; + +(** + * Close the resource accessed by the AVIOContext s and free it. + * This function can only be used if s was opened by avio_open(). + * + * The internal buffer is automatically flushed before closing the + * resource. + * + * @return 0 on success, an AVERROR < 0 on error. + * @see avio_close + *) +function avio_close(s: PAVIOContext): cint; + cdecl; external av__format; + +(** + * Close the resource accessed by the AVIOContext *s, free it + * and set the pointer pointing to it to NULL. + * This function can only be used if s was opened by avio_open(). + * + * The internal buffer is automatically flushed before closing the + * resource. + * + * @return 0 on success, an AVERROR < 0 on error. + * @see avio_close + *) +function avio_closep(s: PPAVIOContext): cint; + cdecl; external av__format; + +(** + * Open a write only memory stream. + * + * @param s new IO context + * @return zero if no error. + *) +function avio_open_dyn_buf(s: PPAVIOContext): cint; + cdecl; external av__format; + +(** + * Return the written size and a pointer to the buffer. + * The AVIOContext stream is left intact. + * The buffer must NOT be freed. + * No padding is added to the buffer. + * + * @param s IO context + * @param pbuffer pointer to a byte buffer + * @return the length of the byte buffer + *) +function avio_get_dyn_buf(s: PAVIOContext; var pbuffer: Pcuint8): cint; + cdecl; external av__format; + +(** + * Return the written size and a pointer to the buffer. The buffer + * must be freed with av_free(). + * Padding of AV_INPUT_BUFFER_PADDING_SIZE is added to the buffer. + * + * @param s IO context + * @param pbuffer pointer to a byte buffer + * @return the length of the byte buffer + *) +function avio_close_dyn_buf(s: PAVIOContext; var pbuffer: Pcuint8): cint; + cdecl; external av__format; + +(** + * Iterate through names of available protocols. + * + * @param opaque A private pointer representing current protocol. + * It must be a pointer to NULL on first iteration and will + * be updated by successive calls to avio_enum_protocols. + * @param output If set to 1, iterate over output protocols, + * otherwise over input protocols. + * + * @return A static string containing the name of current protocol or NULL + *) +function avio_enum_protocols(var opaque: Pointer; output: cint): {const} PAnsiChar; + cdecl; external av__format; + +(** + * Pause and resume playing - only meaningful if using a network streaming + * protocol (e.g. MMS). + * @param pause 1 for pause, 0 for resume + *) +function avio_pause(h: PAVIOContext; pause: cint): cint; + cdecl; external av__format; + +(** + * Seek to a given timestamp relative to some component stream. + * Only meaningful if using a network streaming protocol (e.g. MMS.). + * @param stream_index The stream index that the timestamp is relative to. + * If stream_index is (-1) the timestamp should be in AV_TIME_BASE + * units from the beginning of the presentation. + * If a stream_index >= 0 is used and the protocol does not support + * seeking based on component streams, the call will fail with ENOTSUP. + * @param timestamp timestamp in AVStream.time_base units + * or if there is no stream specified then in AV_TIME_BASE units. + * @param flags Optional combination of AVSEEK_FLAG_BACKWARD, AVSEEK_FLAG_BYTE + * and AVSEEK_FLAG_ANY. The protocol may silently ignore + * AVSEEK_FLAG_BACKWARD and AVSEEK_FLAG_ANY, but AVSEEK_FLAG_BYTE will + * fail with ENOTSUP if used and not supported. + * @return >= 0 on success + * @see AVInputFormat: : read_seek + *) +function avio_seek_time(h: PAVIOContext; stream_index: cint; + timestamp: cint64; flags: cint): cint64; + cdecl; external av__format; + +(* Avoid a warning. The header can not be included because it breaks c++. *) +type + PAVBPrint = ^TAVBPrint; + TAVBPrint = record + end; + +(** + * Read contents of h into print buffer, up to max_size bytes, or up to EOF. + * + * @return 0 for success (max_size bytes read or EOF reached), negative error + * code otherwise + *) +function avio_read_to_bprint(h: PAVIOContext; pb: PAVBPrint; max_size: size_t): cint; + cdecl; external av__format; + +(** + * Accept and allocate a client context on a server context. + * @param s the server context + * @param c the client context, must be unallocated + * @return >= 0 on success or a negative value corresponding + * to an AVERROR on failure + *) +function avio_accept(s: PAVIOContext; c: PPAVIOContext): cint; + cdecl; external av__format; + +(** + * Perform one step of the protocol handshake to accept a new client. + * This function must be called on a client returned by avio_accept() before + * using it as a read/write context. + * It is separate from avio_accept() because it may block. + * A step of the handshake is defined by places where the application may + * decide to change the proceedings. + * For example, on a protocol with a request header and a reply header, each + * one can constitute a step because the application may use the parameters + * from the request to change parameters in the reply; or each individual + * chunk of the request can constitute a step. + * If the handshake is already finished, avio_handshake() does nothing and + * returns 0 immediately. + * + * @param c the client context to perform the handshake on + * @return 0 on a complete and successful handshake + * > 0 if the handshake progressed, but is not complete + * < 0 for an AVERROR code + *) +function avio_handshake(c: PAVIOContext): cint; + cdecl; external av__format; + +implementation + +(** + * For SEEK_CUR on Windows + * values taken from stdio.h of C + *) +{$IFNDEF SEEK_SET} +const + SEEK_SET = 0; +{$ENDIF} + +{$IFNDEF SEEK_CUR} +const + SEEK_CUR = 1; +{$ENDIF} + +{$IFNDEF SEEK_END} +const + SEEK_END = 2; +{$ENDIF} + +function avio_tell(s: PAVIOContext): cint64; {$IFDEF HasInline}inline;{$ENDIF} +begin + Result := avio_seek(s, 0, SEEK_CUR); +end; + + +end. diff --git a/src/lib/ffmpeg-4.0/avutil.pas b/src/lib/ffmpeg-4.0/avutil.pas new file mode 100644 index 00000000..2e5e64bd --- /dev/null +++ b/src/lib/ffmpeg-4.0/avutil.pas @@ -0,0 +1,366 @@ +(* + * copyright (c) 2006 Michael Niedermayer + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of Pascal porting of ffmpeg. + * - Originally by Victor Zinetz for Delphi and Free Pascal on Windows. + * - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT + * in the source codes. + * - Changes and updates by the UltraStar Deluxe Team + * + * Conversions of + * + * libavutil/avutil.h: + * version: 54.7.100 + * + *) + +unit avutil; + +{$IFDEF FPC} + {$MODE DELPHI} + {$PACKENUM 4} (* use 4-byte enums *) + {$PACKRECORDS C} (* C/C++-compatible record packing *) + {$MACRO ON} (* Turn macro support on *) +{$ELSE} + {$MINENUMSIZE 4} (* use 4-byte enums *) +{$ENDIF} + +{$I ff_api-defines.inc} (* FF_API_* defines *) + +{$IFDEF DARWIN} + {$linklib libavutil} +{$ENDIF} + +interface + +uses + ctypes, + rational, + {$IFDEF UNIX} + BaseUnix, + {$ENDIF} + UConfig; + +const + (* Max. supported version by this header *) + LIBAVUTIL_MAX_VERSION_MAJOR = 56; + LIBAVUTIL_MAX_VERSION_MINOR = 22; + LIBAVUTIL_MAX_VERSION_RELEASE = 100; + LIBAVUTIL_MAX_VERSION = (LIBAVUTIL_MAX_VERSION_MAJOR * VERSION_MAJOR) + + (LIBAVUTIL_MAX_VERSION_MINOR * VERSION_MINOR) + + (LIBAVUTIL_MAX_VERSION_RELEASE * VERSION_RELEASE); + + (* Min. supported version by this header *) + LIBAVUTIL_MIN_VERSION_MAJOR = 56; + LIBAVUTIL_MIN_VERSION_MINOR = 14; + LIBAVUTIL_MIN_VERSION_RELEASE = 100; + LIBAVUTIL_MIN_VERSION = (LIBAVUTIL_MIN_VERSION_MAJOR * VERSION_MAJOR) + + (LIBAVUTIL_MIN_VERSION_MINOR * VERSION_MINOR) + + (LIBAVUTIL_MIN_VERSION_RELEASE * VERSION_RELEASE); + +(* Check if linked versions are supported *) +{$IF (LIBAVUTIL_VERSION < LIBAVUTIL_MIN_VERSION)} + {$MESSAGE Error 'Linked version of libavutil is too old!'} +{$IFEND} + +{$IF (LIBAVUTIL_VERSION > LIBAVUTIL_MAX_VERSION)} + {$MESSAGE Error 'Linked version of libavutil is not yet supported!'} +{$IFEND} + +type +{$IFNDEF FPC} + // defines for Delphi + size_t = cardinal; +{$ENDIF} + Psize_t = ^size_t; + +(** + * Return the LIBAVUTIL_VERSION_INT constant. + *) +function avutil_version(): cuint; + cdecl; external av__util; + +(** + * Return an informative version string. This usually is the actual release + * version number or a git commit description. This string has no fixed format + * and can change any time. It should never be parsed by code. + *) +function av_version_info(): PAnsiChar; + cdecl; external av__util; + +(** + * Return the libavutil build-time configuration. + *) +function avutil_configuration(): PAnsiChar; + cdecl; external av__util; + +(** + * Return the libavutil license. + *) +function avutil_license(): PAnsiChar; + cdecl; external av__util; + +(** + * @addtogroup lavu_media Media Type + * @brief Media Type + *) + +type + + PAVFile = pointer; + + TAVMediaType = ( + AVMEDIA_TYPE_UNKNOWN = -1, ///< Usually treated as AVMEDIA_TYPE_DATA + AVMEDIA_TYPE_VIDEO, + AVMEDIA_TYPE_AUDIO, + AVMEDIA_TYPE_DATA, ///< Opaque data information usually continuous + AVMEDIA_TYPE_SUBTITLE, + AVMEDIA_TYPE_ATTACHMENT, ///< Opaque data information usually sparse + AVMEDIA_TYPE_NB + ); + +(** + * Return a string describing the media_type enum, NULL if media_type + * is unknown. + *) +function av_get_media_type_string(media_type: TAVMediaType): PAnsiChar; + cdecl; external av__util; + +const + FF_LAMBDA_SHIFT = 7; + FF_LAMBDA_SCALE = (1 shl FF_LAMBDA_SHIFT); + FF_QP2LAMBDA = 118; ///< factor to convert from H.263 QP to lambda + FF_LAMBDA_MAX = (256*128-1); + + FF_QUALITY_SCALE = FF_LAMBDA_SCALE; //FIXME maybe remove + +(** + * @brief Undefined timestamp value + * + * Usually reported by demuxer that work on containers that do not provide + * either pts or dts. + *) + + AV_NOPTS_VALUE = $8000000000000000; + +(** + * Internal time base represented as integer + *) + + AV_TIME_BASE = 1000000; + +(** + * Internal time base represented as fractional value + *) + + AV_TIME_BASE_Q : TAVRational = (num: 1; den: AV_TIME_BASE); + +(** + * @} + * @} + * @defgroup lavu_picture Image related + * + * AVPicture types, pixel formats and basic image planes manipulation. + * + * @ + *) + +type + TAVPictureType = ( + AV_PICTURE_TYPE_NONE = 0, ///< Undefined + AV_PICTURE_TYPE_I, ///< Intra + AV_PICTURE_TYPE_P, ///< Predicted + AV_PICTURE_TYPE_B, ///< Bi-dir predicted + AV_PICTURE_TYPE_S, ///< S(GMC)-VOP MPEG-4 + AV_PICTURE_TYPE_SI, ///< Switching Intra + AV_PICTURE_TYPE_SP, ///< Switching Predicted + AV_PICTURE_TYPE_BI ///< BI type + ); + +(** + * Return a single letter to describe the given picture type + * pict_type. + * + * @param[in] pict_type the picture type @return a single character + * representing the picture type, '?' if pict_type is unknown + *) +function av_get_picture_type_char(pict_type: TAVPictureType): PAnsiChar; + cdecl; external av__util; + +(** + * Return x default pointer in case p is NULL. + *) +function av_x_if_null(p: {const} pointer; x: {const} pointer): pointer; {$IFDEF HasInline}inline;{$ENDIF} + +(** + * Compute the length of an integer list. + * + * @param elsize size in bytes of each list element (only 1, 2, 4 or 8) + * @param term list terminator (usually 0 or -1) + * @param list pointer to the list + * @return length of the list, in elements, not counting the terminator + *) +function av_int_list_length_for_size(elsize: cuint; + {const} list: pointer; term: cuint64): cuint; {av_pure} + cdecl; external av__util; + +(** + * Compute the length of an integer list. + * + * @param term list terminator (usually 0 or -1) + * @param list pointer to the list + * @return length of the list, in elements, not counting the terminator + *) +function av_int_list_length({const} list: pointer; term: cuint64): cuint; + +(** + * Open a file using a UTF-8 filename. + * The API of this function matches POSIX fopen(), errors are returned through + * errno. + *) +function av_fopen_utf8(path: {const} Pchar; mode: {const} Pchar): PAVFile; + cdecl; external av__util; + +(** + * Return the fractional representation of the internal time base. + *) +function av_get_time_base_q: TAVRational; + cdecl; external av__util; + +const AV_FOURCC_MAX_STRING_SIZE = 32; + +function av_fourcc2str(fourcc: cuint64): PAnsiChar; + cdecl; external av__util; + +(** + * Fill the provided buffer with a string containing a FourCC (four-character + * code) representation. + * + * @param buf a buffer with size in bytes of at least AV_FOURCC_MAX_STRING_SIZE + * @param fourcc the fourcc to represent + * @return the buffer in input + *) +function av_fourcc_make_string(buf: PAnsiChar; fourcc: cuint64): PAnsiChar; + cdecl; external av__util; + +{$INCLUDE libavutil/cpu.pas} + +{$INCLUDE libavutil/dict.pas} + +{$INCLUDE libavutil/error.pas} + +{$INCLUDE libavutil/mathematics.pas} + +{$INCLUDE libavutil/mem.pas} + +{$INCLUDE libavutil/log.pas} + +{$INCLUDE libavutil/pixfmt.pas} + +{$INCLUDE libavutil/samplefmt.pas} + +{$INCLUDE libavutil/opt.pas} + +{$INCLUDE libavutil/buffer.pas} + +{$INCLUDE libavutil/frame.pas} + + +(* libavutil/common.h *) // until now MKTAG and MKBETAG is all from common.h KMS 19/5/2010 + +(** + * MKTAG and MKBETAG are usually used to convert a magic string to an enumeration index. + * In Pascal this can probably not be used and the functions could be removed. + * KMS 8/6/2012 + *) +function MKTAG (a, b, c, d: AnsiChar): integer; {$IFDEF HasInline}inline;{$ENDIF} +function MKBETAG(a, b, c, d: AnsiChar): integer; {$IFDEF HasInline}inline;{$ENDIF} + +implementation + +uses + SysUtils; + +function av_x_if_null(p: {const} pointer; x: {const} pointer): pointer; {$IFDEF HasInline}inline;{$ENDIF} +begin + if p = nil then + Result := x + else + Result := p; +end; + +function av_int_list_length({const} list: pointer; term: cuint64): cuint; +begin + // KMS 2013: It is not really clear whether it should be sizeof(pointer) or sizeof(cint). + // Going for the larger one (pointer) should at least prevent buffer overflows. + // So, the result is either 4 byte or 8 byte. + Result := av_int_list_length_for_size(sizeof(pointer), list, term); +end; + +(* libavutil/common.h *) + +function MKTAG(a, b, c, d: AnsiChar): integer; {$IFDEF HasInline}inline;{$ENDIF} +begin + Result := (ord(a) or (ord(b) shl 8) or (ord(c) shl 16) or (ord(d) shl 24)); +end; + +function MKBETAG(a, b, c, d: AnsiChar): integer; {$IFDEF HasInline}inline;{$ENDIF} +begin + Result := (ord(d) or (ord(c) shl 8) or (ord(b) shl 16) or (ord(a) shl 24)); +end; + +(* libavutil/error.h *) + +function av_make_error_string(errbuf: Pchar; errbuf_size: size_t; errnum: cint): Pchar; {$IFDEF HasInline}inline;{$ENDIF} +begin + av_strerror(errnum, errbuf, errbuf_size); + av_make_error_string := errbuf; +end; + +function av_err2str(errnum: cint): pchar; {$IFDEF HasInline}inline;{$ENDIF} +var + errbuf: Pchar; +begin + errbuf := stralloc(AV_ERROR_MAX_STRING_SIZE); + av_make_error_string(errbuf, AV_ERROR_MAX_STRING_SIZE, errnum); + av_err2str := errbuf; +end; + +(* libavutil/mem.h *) + +function av_size_mult(a: size_t; b: size_t; r: Psize_t): size_t; + cdecl; external av__util; +(* To Be Implemented, March 2012 KMS *) +//function av_size_mult(a: size_t; b: size_t; r: pointer): size_t; +//begin +// { +// size_t t = a * b; +// /* Hack inspired from glibc: only try the division if nelem and elsize +// * are both greater than sqrt(SIZE_MAX). */ +// if ((a | b) >= ((size_t)1 << (sizeof(size_t) * 4)) && a && t / a != b) +// return AVERROR(EINVAL); +// *r = t; +// return 0; +//} +//end; + +function AVERROR(e: integer): integer; +begin + AVERROR := AVERROR_SIGN * e; +end; + +end. diff --git a/src/lib/ffmpeg-4.0/ff_api-defines.inc b/src/lib/ffmpeg-4.0/ff_api-defines.inc new file mode 100644 index 00000000..9ac8eedd --- /dev/null +++ b/src/lib/ffmpeg-4.0/ff_api-defines.inc @@ -0,0 +1,169 @@ +// prevent pasdoc from parsing this file +{$IFNDEF PASDOC} + +(** + * FF_API_* defines may be placed below to indicate public API that will be + * dropped at a future version bump. The defines themselves are not part of + * the public API and may change, break or disappear at any time. + *) + +(** avcodec defines *) +{$ifndef FF_API_LOWRES} +{$define FF_API_LOWRES := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_DEBUG_MV} +{$define FF_API_DEBUG_MV := (LIBAVCODEC_VERSION_MAJOR < 58)} +{$endif} +{$ifndef FF_API_AVCTX_TIMEBASE} +{$define FF_API_AVCTX_TIMEBASE := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_CODED_FRAME} +{$define FF_API_CODED_FRAME := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_SIDEDATA_ONLY_PKT} +{$define FF_API_SIDEDATA_ONLY_PKT:= (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_VDPAU_PROFILE} +{$define FF_API_VDPAU_PROFILE := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_CONVERGENCE_DURATION} +{$define FF_API_CONVERGENCE_DURATION := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_AVPICTURE} +{$define FF_API_AVPICTURE := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_AVPACKET_OLD_API} +{$define FF_API_AVPACKET_OLD_API := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_RTP_CALLBACK} +{$define FF_API_RTP_CALLBACK := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_VBV_DELAY} +{$define FF_API_VBV_DELAY := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_CODER_TYPE} +{$define FF_API_CODER_TYPE := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_STAT_BITS} +{$define FF_API_STAT_BITS := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_PRIVATE_OPT} +{$define FF_API_PRIVATE_OPT := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_ASS_TIMING} +{$define FF_API_ASS_TIMING := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_OLD_BSF} +{$define FF_API_OLD_BSF := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_COPY_CONTEXT} +{$define FF_API_COPY_CONTEXT := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_GET_CONTEXT_DEFAULTS} +{$define FF_API_GET_CONTEXT_DEFAULTS := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_NVENC_OLD_NAME} +{$define FF_API_NVENC_OLD_NAME := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_STRUCT_VAAPI_CONTEXT} +{$define FF_API_STRUCT_VAAPI_CONTEXT := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_MERGE_SD_API} +{$define FF_API_MERGE_SD_API := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_TAG_STRING} +{$define FF_API_TAG_STRING := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_GETCHROMA} +{$define FF_API_GETCHROMA := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_CODEC_GET_SET} +{$define FF_API_CODEC_GET_SET := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_USER_VISIBLE_AVHWACCEL} +{$define FF_API_USER_VISIBLE_AVHWACCEL := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_LOCKMGR} +{$define FF_API_LOCKMGR := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_NEXT} +{$define FF_API_NEXT := (LIBAVCODEC_VERSION_MAJOR < 59)} +{$endif} + +(* avutil defines *) +{$ifndef FF_API_VAAPI} +{$define FF_API_VAAPI := (LIBAVUTIL_VERSION_MAJOR < 57)} +{$endif} +{$ifndef FF_API_FRAME_QP} +{$define FF_API_FRAME_QP := (LIBAVUTIL_VERSION_MAJOR < 57)} +{$endif} +{$ifndef FF_API_PLUS1_MINUS1} +{$define FF_API_PLUS1_MINUS1 := (LIBAVUTIL_VERSION_MAJOR < 57)} +{$endif} +{$ifndef FF_API_ERROR_FRAME} +{$define FF_API_ERROR_FRAME := (LIBAVUTIL_VERSION_MAJOR < 57)} +{$endif} +{$ifndef FF_API_PKT_PTS} +{$define FF_API_PKT_PTS := (LIBAVUTIL_VERSION_MAJOR < 57)} +{$endif} +{$ifndef FF_API_CRYPTO_SIZE_T} +{$define FF_API_CRYPTO_SIZE_T := (LIBAVUTIL_VERSION_MAJOR < 57)} +{$endif} +{$ifndef FF_API_FRAME_GET_SET} +{$define FF_API_FRAME_GET_SET := (LIBAVUTIL_VERSION_MAJOR < 57)} +{$endif} +{$ifndef FF_API_PSEUDOPAL} +{$define FF_API_PSEUDOPAL := (LIBAVUTIL_VERSION_MAJOR < 57)} +{$endif} + +(** avformat FF_API defines *) +{$ifndef FF_API_COMPUTE_PKT_FIELDS2} +{$define FF_API_COMPUTE_PKT_FIELDS2 := (LIBAVFORMAT_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_OLD_OPEN_CALLBACKS} +{$define FF_API_OLD_OPEN_CALLBACKS := (LIBAVFORMAT_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_LAVF_AVCTX} +{$define FF_API_LAVF_AVCTX := (LIBAVFORMAT_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_HTTP_USER_AGENT} +{$define FF_API_HTTP_USER_AGENT := (LIBAVFORMAT_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_HLS_WRAP} +{$define FF_API_HLS_WRAP := (LIBAVFORMAT_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_LAVF_KEEPSIDE_FLAG} +{$define FF_API_LAVF_KEEPSIDE_FLAG := (LIBAVFORMAT_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_OLD_ROTATE_API} +{$define FF_API_OLD_ROTATE_API := (LIBAVFORMAT_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_FORMAT_GET_SET} +{$define FF_API_FORMAT_GET_SET := (LIBAVFORMAT_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_OLD_AVIO_EOF_0} +{$define FF_API_OLD_AVIO_EOF_0 := (LIBAVFORMAT_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_LAVF_FFSERVER} +{$define FF_API_LAVF_FFSERVER := (LIBAVFORMAT_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_FORMAT_FILENAME} +{$define FF_API_FORMAT_FILENAME := (LIBAVFORMAT_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_OLD_RTSP_OPTIONS} +{$define FF_API_OLD_RTSP_OPTIONS := (LIBAVFORMAT_VERSION_MAJOR < 59)} +{$endif} +{$ifndef FF_API_NEXT} +{$define FF_API_NEXT := (LIBAVFORMAT_VERSION_MAJOR < 59)} +{$endif} + +{$ifndef FF_API_R_FRAME_RATE} +{$define FF_API_R_FRAME_RATE := 1} +{$endif} + +(** swscale FF_API defines *) +{$ifndef FF_API_SWS_VECTOR} +{$define FF_API_SWS_VECTOR := (LIBSWSCALE_VERSION_MAJOR < 6)} +{$endif} + +{$ENDIF PASDOC} diff --git a/src/lib/ffmpeg-4.0/libavcodec/audioconvert.pas b/src/lib/ffmpeg-4.0/libavcodec/audioconvert.pas new file mode 100644 index 00000000..cf6c96bb --- /dev/null +++ b/src/lib/ffmpeg-4.0/libavcodec/audioconvert.pas @@ -0,0 +1,294 @@ +(* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of the Pascal port of ffmpeg. + * - Changes and updates by the UltraStar Deluxe Team + * + * Conversion of libavutil/channel_layout.h and libavcodec/audioconvert.h + * avutil version 52.66.100; avcodec version 55.52.102 + * + *) + +(** libavutil/channel_layout.h **) + +(** + * @file + * audio channel layout utility functions + *) + +(** + * @defgroup channel_masks Audio channel masks + * + * A channel layout is a 64-bits integer with a bit set for every channel. + * The number of bits set must be equal to the number of channels. + * The value 0 means that the channel layout is not known. + * @note this data structure is not powerful enough to handle channels + * combinations that have the same channel multiple times, such as + * dual-mono. + * + *) +const + {* Audio channel masks *} + AV_CH_FRONT_LEFT = $00000001; + AV_CH_FRONT_RIGHT = $00000002; + AV_CH_FRONT_CENTER = $00000004; + AV_CH_LOW_FREQUENCY = $00000008; + AV_CH_BACK_LEFT = $00000010; + AV_CH_BACK_RIGHT = $00000020; + AV_CH_FRONT_LEFT_OF_CENTER = $00000040; + AV_CH_FRONT_RIGHT_OF_CENTER = $00000080; + AV_CH_BACK_CENTER = $00000100; + AV_CH_SIDE_LEFT = $00000200; + AV_CH_SIDE_RIGHT = $00000400; + AV_CH_TOP_CENTER = $00000800; + AV_CH_TOP_FRONT_LEFT = $00001000; + AV_CH_TOP_FRONT_CENTER = $00002000; + AV_CH_TOP_FRONT_RIGHT = $00004000; + AV_CH_TOP_BACK_LEFT = $00008000; + AV_CH_TOP_BACK_CENTER = $00010000; + AV_CH_TOP_BACK_RIGHT = $00020000; + AV_CH_STEREO_LEFT = $20000000; ///< Stereo downmix. + AV_CH_STEREO_RIGHT = $40000000; ///< See AV_CH_STEREO_LEFT. + AV_CH_WIDE_LEFT = $0000000080000000; + AV_CH_WIDE_RIGHT = $0000000100000000; + AV_CH_SURROUND_DIRECT_LEFT = $0000000200000000; + AV_CH_SURROUND_DIRECT_RIGHT = $0000000400000000; + AV_CH_LOW_FREQUENCY_2 = $0000000800000000; + +(** Channel mask value used for AVCodecContext.request_channel_layout + * to indicate that the user requests the channel order of the decoder output + * to be the native codec channel order. + *) + AV_CH_LAYOUT_NATIVE = $8000000000000000; + +(** + * @} + * @defgroup channel_mask_c Audio channel convenience macros + * @{ + * *) + AV_CH_LAYOUT_MONO = (AV_CH_FRONT_CENTER); + AV_CH_LAYOUT_STEREO = (AV_CH_FRONT_LEFT or AV_CH_FRONT_RIGHT); + AV_CH_LAYOUT_2POINT1 = (AV_CH_LAYOUT_STEREO or AV_CH_LOW_FREQUENCY); + AV_CH_LAYOUT_2_1 = (AV_CH_LAYOUT_STEREO or AV_CH_BACK_CENTER); + AV_CH_LAYOUT_SURROUND = (AV_CH_LAYOUT_STEREO or AV_CH_FRONT_CENTER); + AV_CH_LAYOUT_3POINT1 = (AV_CH_LAYOUT_SURROUND or AV_CH_LOW_FREQUENCY); + AV_CH_LAYOUT_4POINT0 = (AV_CH_LAYOUT_SURROUND or AV_CH_BACK_CENTER); + AV_CH_LAYOUT_4POINT1 = (AV_CH_LAYOUT_4POINT0 or AV_CH_LOW_FREQUENCY); + AV_CH_LAYOUT_2_2 = (AV_CH_LAYOUT_STEREO or AV_CH_SIDE_LEFT or AV_CH_SIDE_RIGHT); + AV_CH_LAYOUT_QUAD = (AV_CH_LAYOUT_STEREO or AV_CH_BACK_LEFT or AV_CH_BACK_RIGHT); + AV_CH_LAYOUT_5POINT0 = (AV_CH_LAYOUT_SURROUND or AV_CH_SIDE_LEFT or AV_CH_SIDE_RIGHT); + AV_CH_LAYOUT_5POINT1 = (AV_CH_LAYOUT_5POINT0 or AV_CH_LOW_FREQUENCY); + AV_CH_LAYOUT_5POINT0_BACK = (AV_CH_LAYOUT_SURROUND or AV_CH_BACK_LEFT or + AV_CH_BACK_RIGHT); + AV_CH_LAYOUT_5POINT1_BACK = (AV_CH_LAYOUT_5POINT0_BACK or AV_CH_LOW_FREQUENCY); + AV_CH_LAYOUT_6POINT0 = (AV_CH_LAYOUT_5POINT0 or AV_CH_BACK_CENTER); + AV_CH_LAYOUT_6POINT0_FRONT = (AV_CH_LAYOUT_2_2 or AV_CH_FRONT_LEFT_OF_CENTER or + AV_CH_FRONT_RIGHT_OF_CENTER); + AV_CH_LAYOUT_HEXAGONAL = (AV_CH_LAYOUT_5POINT0_BACK or AV_CH_BACK_CENTER); + AV_CH_LAYOUT_6POINT1 = (AV_CH_LAYOUT_5POINT1 or AV_CH_BACK_CENTER); + AV_CH_LAYOUT_6POINT1_BACK = (AV_CH_LAYOUT_5POINT1_BACK or AV_CH_BACK_CENTER); + AV_CH_LAYOUT_6POINT1_FRONT = (AV_CH_LAYOUT_6POINT0_FRONT or AV_CH_LOW_FREQUENCY); + AV_CH_LAYOUT_7POINT0 = (AV_CH_LAYOUT_5POINT0 or AV_CH_BACK_LEFT or AV_CH_BACK_RIGHT); + AV_CH_LAYOUT_7POINT0_FRONT = (AV_CH_LAYOUT_5POINT0 or AV_CH_FRONT_LEFT_OF_CENTER or + AV_CH_FRONT_RIGHT_OF_CENTER); + AV_CH_LAYOUT_7POINT1 = (AV_CH_LAYOUT_5POINT1 or AV_CH_BACK_LEFT or AV_CH_BACK_RIGHT); + AV_CH_LAYOUT_7POINT1_WIDE = (AV_CH_LAYOUT_5POINT1 or AV_CH_FRONT_LEFT_OF_CENTER or + AV_CH_FRONT_RIGHT_OF_CENTER); + AV_CH_LAYOUT_OCTAGONAL = (AV_CH_LAYOUT_5POINT0 or AV_CH_BACK_LEFT or AV_CH_BACK_CENTER or + AV_CH_BACK_RIGHT); + AV_CH_LAYOUT_HEXADECAGONAL = (AV_CH_LAYOUT_OCTAGONAL or AV_CH_WIDE_LEFT or AV_CH_WIDE_RIGHT or AV_CH_TOP_BACK_LEFT or + AV_CH_TOP_BACK_RIGHT or AV_CH_TOP_BACK_CENTER or AV_CH_TOP_FRONT_CENTER or + AV_CH_TOP_FRONT_LEFT or AV_CH_TOP_FRONT_RIGHT); + AV_CH_LAYOUT_STEREO_DOWNMIX = (AV_CH_STEREO_LEFT or AV_CH_STEREO_RIGHT); + +type + TAVMatrixEncoding = ( + AV_MATRIX_ENCODING_NONE, + AV_MATRIX_ENCODING_DOLBY, + AV_MATRIX_ENCODING_DPLII, + AV_MATRIX_ENCODING_DPLIIX, + AV_MATRIX_ENCODING_DPLIIZ, + AV_MATRIX_ENCODING_DOLBYEX, + AV_MATRIX_ENCODING_DOLBYHEADPHONE, + AV_MATRIX_ENCODING_NB + ); + +(** + * Return a channel layout id that matches name, or 0 if no match is found. + * + * name can be one or several of the following notations, + * separated by '+' or '|': + * - the name of an usual channel layout (mono, stereo, 4.0, quad, 5.0, + * 5.0(side), 5.1, 5.1(side), 7.1, 7.1(wide), downmix); + * - the name of a single channel (FL, FR, FC, LFE, BL, BR, FLC, FRC, BC, + * SL, SR, TC, TFL, TFC, TFR, TBL, TBC, TBR, DL, DR); + * - a number of channels, in decimal, optionally followed by 'c', yielding + * the default channel layout for that number of channels (@see + * av_get_default_channel_layout); + * - a channel layout mask, in hexadecimal starting with "0x" (see the + * AV_CH_* macros). + * + * Example: "stereo+FC" = "2+FC" = "2c+1c" = "0x7" + *) +function av_get_channel_layout(name: {const} PAnsiChar): cuint64; + cdecl; external av__util; + +(** + * Return a description of a channel layout. + * If nb_channels is <= 0, it is guessed from the channel_layout. + * + * @param buf put here the string containing the channel layout + * @param buf_size size in bytes of the buffer + *) +procedure av_get_channel_layout_string(buf: PAnsiChar; buf_size: cint; nb_channels: cint; channel_layout: cuint64); + cdecl; external av__util; + +type +// Type definition from libavutil/bprint.h +// The actual record is padded to a certain number of bytes. +// As of now (2013) this number is 1024. + PAVBPrint = ^TAVBPrint; + TAVBPrint = record + case integer of + 0 : (paddedRecord: array[1..1024] of byte); + 1 : ( + str: PAnsiChar; //** string so far */ + len: cuint; //** length so far */ + size: cuint; //** allocated memory */ + size_max: cuint; //** maximum allocated memory */ + reserved_internal_buffer: Pchar + ); + end; + +(** + * Append a description of a channel layout to a bprint buffer. + *) +procedure av_bprint_channel_layout(bp: PAVBPrint; nb_channels: cint; channel_layout: cuint64); + cdecl; external av__util; + +(** + * Return the number of channels in the channel layout. + *) +function av_get_channel_layout_nb_channels(channel_layout: cuint64): cint; + cdecl; external av__util; + +(** + * Return default channel layout for a given number of channels. + *) +function av_get_default_channel_layout(nb_channels: cint): cint64; + cdecl; external av__util; + +(** + * Get the index of a channel in channel_layout. + * + * @param channel a channel layout describing exactly one channel which must be + * present in channel_layout. + * + * @return index of channel in channel_layout on success, a negative AVERROR + * on error. + *) +function av_get_channel_layout_channel_index(channel_layout: cuint64; + channel: cuint64): cint; + cdecl; external av__util; + +(** + * Get the channel with the given index in channel_layout. + *) +function av_channel_layout_extract_channel(channel_layout: cuint64; index: cint): cuint64; + cdecl; external av__util; + +(** + * Get the name of a given channel. + * + * @return channel name on success, NULL on error. + *) +function av_get_channel_name(channel: cuint64): PAnsiChar; + cdecl; external av__util; + +(** + * Get the description of a given channel. + * + * @param channel a channel layout with a single channel + * @return channel description on success, NULL on error + *) +function av_get_channel_description(channel: cuint64): PAnsiChar; + cdecl; external av__util; + +(** + * Get the value and name of a standard channel layout. + * + * @param[in] index index in an internal list, starting at 0 + * @param[out] layout channel layout mask + * @param[out] name name of the layout + * @return 0 if the layout exists, + * <0 if index is beyond the limits + *) +function av_get_standard_channel_layout(index: cuint; layout: Pcuint64; + name: {const} PPAnsiChar): cint; + cdecl; external av__util; + +{$IFDEF FF_API_AUDIO_CONVERT} + +(** libavcodec/audioconvert.h **) + +// type definition from libavcodec/audioconvert.c +type + PAVAudioConvert = ^TAVAudioConvert; + TAVAudioConvert = record + in_channels, out_channels: cint; + fmt_pair: cint; + end; + +(** + * Create an audio sample format converter context + * @param out_fmt Output sample format + * @param out_channels Number of output channels + * @param in_fmt Input sample format + * @param in_channels Number of input channels + * @param[in] matrix Channel mixing matrix (of dimension in_channel*out_channels). Set to NULL to ignore. + * @param flags See AV_CPU_FLAG_xx + * @return NULL on error + *) +function av_audio_convert_alloc(out_fmt: TAVSampleFormat; out_channels: cint; + in_fmt: TAVSampleFormat; in_channels: cint; + matrix: {const} Pcfloat; flags: cint): PAVAudioConvert; + cdecl; external av__codec; + +(** + * Free audio sample format converter context + *) +procedure av_audio_convert_free(ctx: PAVAudioConvert); + cdecl; external av__codec; + +type + P6 = array [1..6] of pointer; + I6 = array [1..6] of cint; + +(** + * Convert between audio sample formats + * @param[in] out array of output buffers for each channel. set to NULL to ignore processing of the given channel. + * @param[in] out_stride distance between consecutive output samples (measured in bytes) + * @param[in] in array of input buffers for each channel + * @param[in] in_stride distance between consecutive input samples (measured in bytes) + * @param len length of audio frame size (measured in samples) + *) +function av_audio_convert(ctx: PAVAudioConvert; + out[6]: {const} P6; out_stride[6]: {const} I6; + in[6]: {const} P6; in_stride[6]: {const} I6; len: cint): cint; + cdecl; external av__codec; + +{$IFEND} diff --git a/src/lib/ffmpeg-4.0/libavutil/buffer.pas b/src/lib/ffmpeg-4.0/libavutil/buffer.pas new file mode 100644 index 00000000..5d7a747b --- /dev/null +++ b/src/lib/ffmpeg-4.0/libavutil/buffer.pas @@ -0,0 +1,310 @@ +(* + * AVOptions + * copyright (c) 2005 Michael Niedermayer + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of Pascal porting of ffmpeg. + * - Originally by Victor Zinetz for Delphi and Free Pascal on Windows. + * - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT + * in the source codes. + * - Changes and updates by the UltraStar Deluxe Team + * + * Conversion of libavutil/buffer.h + * avutil version 54.7.100 + * + *) + +const +(** + * Always treat the buffer as read-only, even when it has only one + * reference. + *) + AV_BUFFER_FLAG_READONLY = (1 << 0); + +type +(** + * @defgroup lavu_buffer AVBuffer + * @ingroup lavu_data + * + * @ + * AVBuffer is an API for reference-counted data buffers. + * + * There are two core objects in this API -- AVBuffer and AVBufferRef. AVBuffer + * represents the data buffer itself; it is opaque and not meant to be accessed + * by the caller directly, but only through AVBufferRef. However, the caller may + * e.g. compare two AVBuffer pointers to check whether two different references + * are describing the same data buffer. AVBufferRef represents a single + * reference to an AVBuffer and it is the object that may be manipulated by the + * caller directly. + * + * There are two functions provided for creating a new AVBuffer with a single + * reference -- av_buffer_alloc() to just allocate a new buffer, and + * av_buffer_create() to wrap an existing array in an AVBuffer. From an existing + * reference, additional references may be created with av_buffer_ref(). + * Use av_buffer_unref() to free a reference (this will automatically free the + * data once all the references are freed). + * + * The convention throughout this API and the rest of FFmpeg is such that the + * buffer is considered writable if there exists only one reference to it (and + * it has not been marked as read-only). The av_buffer_is_writable() function is + * provided to check whether this is true and av_buffer_make_writable() will + * automatically create a new writable buffer when necessary. + * Of course nothing prevents the calling code from violating this convention, + * however that is safe only when all the existing references are under its + * control. + * + * @note Referencing and unreferencing the buffers is thread-safe and thus + * may be done from multiple threads simultaneously without any need for + * additional locking. + * + * @note Two different references to the same buffer can point to different + * parts of the buffer (i.e. their AVBufferRef.data will not be equal). + *) + +(** + * A reference counted buffer type. It is opaque and is meant to be used through + * references (AVBufferRef). + *) + TAVBuffer = record + end; + +(** + * A reference to a data buffer. + * + * The size of this struct is not a part of the public ABI and it is not meant + * to be allocated directly. + *) + PPAVBufferRef = ^PAVBufferRef; + PAVBufferRef = ^TAVBufferRef; + TAVBufferRef = record + buffer: TAVBuffer; + (** + * The data buffer. It is considered writable if and only if + * this is the only reference to the buffer, in which case + * av_buffer_is_writable() returns 1. + *) + data: PByte; + (** + * Size of data in bytes. + *) + size: cint; + end; + + //callbacks used in the functions av_buffer_create and av_buffer_pool_init respectively + TFree = procedure(opaque: pointer; data: pbyte); + TAlloc = function(size: cint): PAVBufferRef; + TAlloc2 = function(opaque: pointer; size: cint): PAVBufferRef; + TPoolFree = procedure(opaque: pointer); + +(** + * The buffer pool. This structure is opaque and not meant to be accessed + * directly. It is allocated with av_buffer_pool_init() and freed with + * av_buffer_pool_uninit(). + *) + PPAVBufferPool = ^PAVBufferPool; + PAVBufferPool = ^TAVBufferPool; + TAVBufferPool = record + end; + +(** + * Allocate an AVBuffer of the given size using av_malloc(). + * + * @return an AVBufferRef of given size or NULL when out of memory + *) +function av_buffer_alloc(size: cint): PAVBufferRef; + cdecl; external av__util; + +(** + * Same as av_buffer_alloc(), except the returned buffer will be initialized + * to zero. + *) +function av_buffer_allocz(size: cint): PAVBufferRef; + cdecl; external av__util; + +(** + * Create an AVBuffer from an existing array. + * + * If this function is successful, data is owned by the AVBuffer. The caller may + * only access data through the returned AVBufferRef and references derived from + * it. + * If this function fails, data is left untouched. + * @param data data array + * @param size size of data in bytes + * @param free a callback for freeing this buffer's data + * @param opaque parameter to be got for processing or passed to free + * @param flags a combination of AV_BUFFER_FLAG_* + * + * @return an AVBufferRef referring to data on success, NULL on failure. + *) + +function av_buffer_create(data: PByte; size: cint; + free: TFree; + opaque: pointer; flags: cint): PAVBufferRef; + cdecl; external av__util; + +(** + * Default free callback, which calls av_free() on the buffer data. + * This function is meant to be passed to av_buffer_create(), not called + * directly. + *) +procedure av_buffer_default_free(opaque: pointer; data: pbyte); + cdecl; external av__util; + +(** + * Create a new reference to an AVBuffer. + * + * @return a new AVBufferRef referring to the same AVBuffer as buf or NULL on + * failure. + *) +function av_buffer_ref(buf: PAVBufferRef): PAVBufferRef; + cdecl; external av__util; + +(** + * Free a given reference and automatically free the buffer if there are no more + * references to it. + * + * @param buf the reference to be freed. The pointer is set to NULL on return. + *) +procedure av_buffer_unref(buf: PPAVBufferRef); + cdecl; external av__util; + +(** + * @return 1 if the caller may write to the data referred to by buf (which is + * true if and only if buf is the only reference to the underlying AVBuffer). + * Return 0 otherwise. + * A positive answer is valid until av_buffer_ref() is called on buf. + *) +function av_buffer_is_writable(buf: {const} PAVBufferRef): cint; + cdecl; external av__util; + +(** + * @return the opaque parameter set by av_buffer_create. + *) +procedure av_buffer_get_opaque(buf: {const} PAVBufferRef); + cdecl; external av__util; + +function av_buffer_get_ref_count(buf: {const} PAVBufferRef): cint; + cdecl; external av__util; + +(** + * Create a writable reference from a given buffer reference, avoiding data copy + * if possible. + * + * @param buf buffer reference to make writable. On success, buf is either left + * untouched, or it is unreferenced and a new writable AVBufferRef is + * written in its place. On failure, buf is left untouched. + * @return 0 on success, a negative AVERROR on failure. + *) +function av_buffer_make_writable(buf: PPAVBufferRef): cint; + cdecl; external av__util; + +(** + * Reallocate a given buffer. + * + * @param buf a buffer reference to reallocate. On success, buf will be + * unreferenced and a new reference with the required size will be + * written in its place. On failure buf will be left untouched. *buf + * may be NULL, then a new buffer is allocated. + * @param size required new buffer size. + * @return 0 on success, a negative AVERROR on failure. + * + * @note the buffer is actually reallocated with av_realloc() only if it was + * initially allocated through av_buffer_realloc(NULL) and there is only one + * reference to it (i.e. the one passed to this function). In all other cases + * a new buffer is allocated and the data is copied. + *) +function av_buffer_realloc(buf: PPAVBufferRef; size: cint): cint; + cdecl; external av__util; + +(** + * @defgroup lavu_bufferpool AVBufferPool + * @ingroup lavu_data + * + * @ + * AVBufferPool is an API for a lock-free thread-safe pool of AVBuffers. + * + * Frequently allocating and freeing large buffers may be slow. AVBufferPool is + * meant to solve this in cases when the caller needs a set of buffers of the + * same size (the most obvious use case being buffers for raw video or audio + * frames). + * + * At the beginning, the user must call av_buffer_pool_init() to create the + * buffer pool. Then whenever a buffer is needed, call av_buffer_pool_get() to + * get a reference to a new buffer, similar to av_buffer_alloc(). This new + * reference works in all aspects the same way as the one created by + * av_buffer_alloc(). However, when the last reference to this buffer is + * unreferenced, it is returned to the pool instead of being freed and will be + * reused for subsequent av_buffer_pool_get() calls. + * + * When the caller is done with the pool and no longer needs to allocate any new + * buffers, av_buffer_pool_uninit() must be called to mark the pool as freeable. + * Once all the buffers are released, it will automatically be freed. + * + * Allocating and releasing buffers with this API is thread-safe as long as + * either the default alloc callback is used, or the user-supplied one is + * thread-safe. + *) + +(** + * Allocate and initialize a buffer pool. + * + * @param size size of each buffer in this pool + * @param alloc a function that will be used to allocate new buffers when the + * pool is empty. May be NULL, then the default allocator will be used + * (av_buffer_alloc()). + * @return newly created buffer pool on success, NULL on error. + *) +function av_buffer_pool_init(size: cint; alloc: TAlloc): PAVBufferPool; + cdecl; external av__util; + +(** + * Allocate and initialize a buffer pool with a more complex allocator. + * + * @param size size of each buffer in this pool + * @param opaque arbitrary user data used by the allocator + * @param alloc a function that will be used to allocate new buffers when the + * pool is empty. + * @param pool_free a function that will be called immediately before the pool + * is freed. I.e. after av_buffer_pool_uninit() is called + * by the caller and all the frames are returned to the pool + * and freed. It is intended to uninitialize the user opaque + * data. + * @return newly created buffer pool on success, NULL on error. + *) +function av_buffer_pool_init2(size: cint; opaque: pointer; + alloc: TAlloc2; + pool_free: TPoolFree): PAVBufferPool; + cdecl; external av__util; + +(** + * Mark the pool as being available for freeing. It will actually be freed only + * once all the allocated buffers associated with the pool are released. Thus it + * is safe to call this function while some of the allocated buffers are still + * in use. + * + * @param pool pointer to the pool to be freed. It will be set to NULL. + *) +procedure av_buffer_pool_uninit(pool: PPAVBufferPool); + cdecl; external av__util; + +(** + * Allocate a new AVBuffer, reusing an old buffer from the pool when available. + * This function may be called simultaneously from multiple threads. + * + * @return a reference to the new buffer on success, NULL on error. + *) +function av_buffer_pool_get(pool: PAVBufferPool): PAVBufferRef; + cdecl; external av__util; diff --git a/src/lib/ffmpeg-4.0/libavutil/cpu.pas b/src/lib/ffmpeg-4.0/libavutil/cpu.pas new file mode 100644 index 00000000..32d565ec --- /dev/null +++ b/src/lib/ffmpeg-4.0/libavutil/cpu.pas @@ -0,0 +1,135 @@ +(* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of the Pascal port of ffmpeg. + * - Changes and updates by the UltraStar Deluxe Team + * + * Conversion of libavutil/cpu.h + * avutil version 54.7.100 + * + *) + +const + + AV_CPU_FLAG_FORCE = $80000000; (* force usage of selected flags (OR) *) + + (* lower 16 bits - CPU features *) + AV_CPU_FLAG_MMX = $0001; ///< standard MMX + AV_CPU_FLAG_MMXEXT = $0002; ///< SSE integer functions or AMD MMX ext + AV_CPU_FLAG_MMX2 = $0002; ///< SSE integer functions or AMD MMX ext + AV_CPU_FLAG_3DNOW = $0004; ///< AMD 3DNOW + AV_CPU_FLAG_SSE = $0008; ///< SSE functions + AV_CPU_FLAG_SSE2 = $0010; ///< PIV SSE2 functions + AV_CPU_FLAG_SSE2SLOW = $40000000; ///< SSE2 supported, but usually not faster + ///< than regular MMX/SSE (e.g. Core1) + AV_CPU_FLAG_3DNOWEXT = $0020; ///< AMD 3DNowExt + AV_CPU_FLAG_SSE3 = $0040; ///< Prescott SSE3 functions + AV_CPU_FLAG_SSE3SLOW = $20000000; ///< SSE3 supported, but usually not faster + ///< than regular MMX/SSE (e.g. Core1) + AV_CPU_FLAG_SSSE3 = $0080; ///< Conroe SSSE3 functions + AV_CPU_FLAG_ATOM = $10000000; ///< Atom processor, some SSSE3 instructions are slower + AV_CPU_FLAG_SSE4 = $0100; ///< Penryn SSE4.1 functions + AV_CPU_FLAG_SSE42 = $0200; ///< Nehalem SSE4.2 functions + AV_CPU_FLAG_AESNI = $80000; ///< Advanced Encryption Standard functions + AV_CPU_FLAG_AVX = $4000; ///< AVX functions: requires OS support even if YMM registers aren't used + AV_CPU_FLAG_AVXSLOW = $8000000; ///< AVX supported, but slow when using YMM registers (e.g. Bulldozer) + AV_CPU_FLAG_XOP = $0400; ///< Bulldozer XOP functions + AV_CPU_FLAG_FMA4 = $0800; ///< Bulldozer FMA4 functions + + AV_CPU_FLAG_CMOV = $1000; ///< supports cmov instruction + + AV_CPU_FLAG_AVX2 = $8000; ///< AVX2 functions: requires OS support even if YMM registers aren't used + AV_CPU_FLAG_FMA3 = $10000; ///< Haswell FMA3 functions + AV_CPU_FLAG_BMI1 = $20000; ///< Bit Manipulation Instruction Set 1 + AV_CPU_FLAG_BMI2 = $40000; ///< Bit Manipulation Instruction Set 2 + AV_CPU_FLAG_AVX512 = $100000; ///< AVX-512 functions: requires OS support even if YMM/ZMM registers aren't used + + AV_CPU_FLAG_ALTIVEC = $0001; ///< standard + AV_CPU_FLAG_VSX = $0002; ///< ISA 2.06 + AV_CPU_FLAG_POWER8 = $0004; ///< ISA 2.07 + + AV_CPU_FLAG_ARMV5TE = (1 << 0); + AV_CPU_FLAG_ARMV6 = (1 << 1); + AV_CPU_FLAG_ARMV6T2 = (1 << 2); + AV_CPU_FLAG_VFP = (1 << 3); + AV_CPU_FLAG_VFPV3 = (1 << 4); + AV_CPU_FLAG_NEON = (1 << 5); + AV_CPU_FLAG_ARMV8 = (1 << 6); + AV_CPU_FLAG_VFP_VM = (1 << 7); ///< VFPv2 vector mode, deprecated in ARMv7-A and unavailable in various CPUs implementations + AV_CPU_FLAG_SETEND = (1 <<16); + +(** + * Return the flags which specify extensions supported by the CPU. + * The returned value is affected by av_force_cpu_flags() if that was used + * before. So av_get_cpu_flags() can easily be used in an application to + * detect the enabled cpu flags. + *) +function av_get_cpu_flags(): cint; + cdecl; external av__util; + +(** + * Disables cpu detection and forces the specified flags. + * -1 is a special case that disables forcing of specific flags. + *) +procedure av_force_cpu_flags(flags: cint); + cdecl; external av__util; + +(** + * Set a mask on flags returned by av_get_cpu_flags(). + * This function is mainly useful for testing. + * Please use av_force_cpu_flags() and av_get_cpu_flags() instead which are more flexible + *) +procedure av_set_cpu_flags_mask(mask: cint); + cdecl; external av__util; deprecated; + +(** + * Parse CPU flags from a string. + * + * The returned flags contain the specified flags as well as related unspecified flags. + * + * This function exists only for compatibility with libav. + * Please use av_parse_cpu_caps() when possible. + * @return a combination of AV_CPU_* flags, negative on error. + *) +function av_parse_cpu_flags(s: {const} PAnsiChar): cint; + cdecl; external av__util; deprecated; + +(** + * Parse CPU caps from a string and update the given AV_CPU_* flags based on that. + * + * @return negative on error. + *) +function av_parse_cpu_caps(flags: Pcuint; s: {const} PAnsiChar): cint; + cdecl; external av__util; + +(** + * @return the number of logical CPU cores present. + *) +function av_cpu_count(): cint; + cdecl; external av__util; + +(** + * Get the maximum data alignment that may be required by FFmpeg. + * + * Note that this is affected by the build configuration and the CPU flags mask, + * so e.g. if the CPU supports AVX, but libavutil has been built with + * --disable-avx or the AV_CPU_FLAG_AVX flag has been disabled through + * av_set_cpu_flags_mask(), then this function will behave as if AVX is not + * present. + *) +function av_cpu_max_align(): size_t; + cdecl; external av__util; diff --git a/src/lib/ffmpeg-4.0/libavutil/dict.pas b/src/lib/ffmpeg-4.0/libavutil/dict.pas new file mode 100644 index 00000000..ef54610c --- /dev/null +++ b/src/lib/ffmpeg-4.0/libavutil/dict.pas @@ -0,0 +1,168 @@ +(* + * AVDictionary + * copyright (c) 2011 Karl-Michael Schindler + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of the Pascal port of ffmpeg. + * + * Conversion of libavutil/dict.h + * avutil version 54.7.100 + * + *) + +const + AV_DICT_MATCH_CASE = 1; + AV_DICT_IGNORE_SUFFIX = 2; + AV_DICT_DONT_STRDUP_KEY = 4; (**< Take ownership of a key that's been + allocated with av_malloc() or another memory allocation function. *) + AV_DICT_DONT_STRDUP_VAL = 8; (**< Take ownership of a value that's been + allocated with av_malloc() or another memory allocation function. *) + AV_DICT_DONT_OVERWRITE = 16; (**< Don't overwrite existing entries. *) + AV_DICT_APPEND = 32; (**< If the entry already exists, append to it. Note that no + delimiter is added, the strings are simply concatenated. *) + AV_DICT_MULTIKEY = 64; (**< Allow to store several equal keys in the dictionary *) + +type + PAVDictionaryEntry = ^TAVDictionaryEntry; + TAVDictionaryEntry = record + key: PAnsiChar; + value: PAnsiChar; + end; + +(* with the "help" of libavutil/internal.h: *) + + PPAVDictionary = ^PAVDictionary; + PAVDictionary = ^TAVDictionary; + TAVDictionary = record + count: cint; + elems: PAVDictionaryEntry; + end; + +(** + * Get a dictionary entry with matching key. + * + * The returned entry key or value must not be changed, or it will + * cause undefined behavior. + * + * To iterate through all the dictionary entries, you can set the matching key + * to the null string "" and set the AV_DICT_IGNORE_SUFFIX flag. + * + * @param key matching key + * @param prev Set to the previous matching element to find the next. + * If set to NULL the first matching element is returned. + * @param flags a collection of AV_DICT_* flags controlling how the entry is retrieved + * @return found entry or NULL in case no matching entry was found in the dictionary + *) +function av_dict_get({const} m: PAVDictionary; {const} key: PAnsiChar; {const} prev: PAVDictionaryEntry; flags: cint): PAVDictionaryEntry; + cdecl; external av__util; + +(** + * Get number of entries in dictionary. + * + * @param m dictionary + * @return number of entries in dictionary + *) +function av_dict_count({const} m: PAVDictionary): cint; + cdecl; external av__util; + +(** + * Set the given entry in *pm, overwriting an existing entry. + * + * Note: If AV_DICT_DONT_STRDUP_KEY or AV_DICT_DONT_STRDUP_VAL is set, + * these arguments will be freed on error. + * + * Warning: Adding a new entry to a dictionary invalidates all existing entries + * previously returned with av_dict_get. + * + * @param pm pointer to a pointer to a dictionary struct. If *pm is NULL + * a dictionary struct is allocated and put in *pm. + * @param key entry key to add to *pm (will either be av_strduped or added as a new key depending on flags) + * @param value entry value to add to *pm (will be av_strduped or added as a new key depending on flags). + * Passing a NULL value will cause an existing entry to be deleted. + * @return >= 0 on success otherwise an error code <0 + *) +function av_dict_set(var pm: PAVDictionary; {const} key: PAnsiChar; {const} value: PAnsiChar; flags: cint): cint; + cdecl; external av__util; + +(** + * Convenience wrapper for av_dict_set that converts the value to a string + * and stores it. + * + * Note: If AV_DICT_DONT_STRDUP_KEY is set, key will be freed on error. + *) +function av_dict_set_int(var pm: PAVDictionary; {const} key: PAnsiChar; + value: cint64; flags: cint): cint; + cdecl; external av__util; + +(** + * Parse the key/value pairs list and add the parsed entries to a dictionary. + * + * In case of failure, all the successfully set entries are stored in + * *pm. You may need to manually free the created dictionary. + * + * @param key_val_sep a 0-terminated list of characters used to separate + * key from value + * @param pairs_sep a 0-terminated list of characters used to separate + * two pairs from each other + * @param flags flags to use when adding to dictionary. + * AV_DICT_DONT_STRDUP_KEY and AV_DICT_DONT_STRDUP_VAL + * are ignored since the key/value tokens will always + * be duplicated. + * @return 0 on success, negative AVERROR code on failure + *) +function av_dict_parse_string(var pm: PAVDictionary; {const} str: PAnsiChar; + {const} key_val_sep: PAnsiChar; {const} pairs_sep: PAnsiChar; + flags: cint): cint; + cdecl; external av__util; + +(** + * Copy entries from one AVDictionary struct into another. + * @param dst pointer to a pointer to a AVDictionary struct. If *dst is NULL, + * this function will allocate a struct for you and put it in *dst + * @param src pointer to source AVDictionary struct + * @param flags flags to use when setting entries in *dst + * @note metadata is read using the AV_DICT_IGNORE_SUFFIX flag + * @return 0 on success, negative AVERROR code on failure. If dst was allocated + * by this function, callers should free the associated memory. + *) +function av_dict_copy(var dst: PAVDictionary; {const} src: PAVDictionary; flags: cint): cint; + cdecl; external av__util; + +(** + * Get dictionary entries as a string. + * + * Create a string containing dictionary's entries. + * Such string may be passed back to av_dict_parse_string(). + * @note String is escaped with backslashes ('\'). + * + * @param[in] m dictionary + * @param[out] buffer Pointer to buffer that will be allocated with string containg entries. + * Buffer must be freed by the caller when is no longer needed. + * @param[in] key_val_sep character used to separate key from value + * @param[in] pairs_sep character used to separate two pairs from each other + * @return >= 0 on success, negative on error + * @warning Separators cannot be neither '\\' nor '\0'. They also cannot be the same. + *) +function av_dict_get_string({const} m: PAVDictionary; buffer: PPAnsiChar; + {const} key_val_sep: AnsiChar; {const} pairs_sep: AnsiChar): cint; + cdecl; external av__util; + +(** + * Free all the memory allocated for an AVDictionary struct + * and all keys and values. + *) +procedure av_dict_free(var m: PAVDictionary); + cdecl; external av__util; diff --git a/src/lib/ffmpeg-4.0/libavutil/error.pas b/src/lib/ffmpeg-4.0/libavutil/error.pas new file mode 100644 index 00000000..f972aa7d --- /dev/null +++ b/src/lib/ffmpeg-4.0/libavutil/error.pas @@ -0,0 +1,169 @@ +(* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of the Pascal port of ffmpeg. + * - Changes and updates by the UltraStar Deluxe Team + * + * Conversion of libavutil/error.h + * avutil version 54.7.100 + * + *) + +(** + * @file + * error code definitions + *) + +(** + * @addtogroup lavu_error + * + * @ + *) + +{* error handling *} + +const +{$IFDEF UNIX} + ENOENT = ESysENOENT; + EIO = ESysEIO; + ENOMEM = ESysENOMEM; + EINVAL = ESysEINVAL; + EDOM = ESysEDOM; + ENOSYS = ESysENOSYS; + EILSEQ = ESysEILSEQ; + EPIPE = ESysEPIPE; + EAGAIN = ESysEAGAIN; +{$ELSE} + ENOENT = 2; + EIO = 5; + EAGAIN = 11; + ENOMEM = 12; + EINVAL = 22; + EPIPE = 32; // just an assumption. needs to be checked. + EDOM = 33; + {$IFDEF MSWINDOWS} + // Note: we assume that ffmpeg was compiled with MinGW. + // This must be changed if DLLs were compiled with cygwin. + ENOSYS = 40; // MSVC/MINGW: 40, CYGWIN: 88, LINUX/FPC: 38 + EILSEQ = 42; // MSVC/MINGW: 42, CYGWIN: 138, LINUX/FPC: 84 + {$ENDIF} +{$ENDIF} + +(** + * We need the sign of the error, because some platforms have + * E* and errno already negated. The previous version failed + * with Delphi, because it needed EINVAL defined. + * Warning: This code is platform dependent and assumes constants + * to be 32 bit. + * This version does the following steps: + * 1) shr 30: shifts the sign bit to bit position 2 + * 2) and $00000002: sets all other bits to zero + * positive EINVAL gives 0, negative gives 2 + * 3) - 1: positive EINVAL gives -1, negative 1 + *) +const + AVERROR_SIGN = (EINVAL shr 30) and $00000002 - 1; + +(* +#if EDOM > 0 +#define AVERROR(e) (-(e)) {**< Returns a negative error code from a POSIX error code, to return from library functions. *} +#define AVUNERROR(e) (-(e)) {**< Returns a POSIX error code from a library function error return value. *} +#else +{* Some platforms have E* and errno already negated. *} +#define AVERROR(e) (e) +#define AVUNERROR(e) (e) +#endif +*) +function AVERROR(e: integer): integer; + +const + + // Note: function calls as constant-initializers are invalid + AVERROR_BSF_NOT_FOUND = -(ord($F8) or (ord('B') shl 8) or (ord('S') shl 16) or (ord('F') shl 24)); ///< Bitstream filter not found + AVERROR_BUG = -(ord('B') or (ord('U') shl 8) or (ord('G') shl 16) or (ord('!') shl 24)); ///< Internal bug, also see AVERROR_BUG2 + AVERROR_BUFFER_TOO_SMALL = -(ord('B') or (ord('U') shl 8) or (ord('F') shl 16) or (ord('S') shl 24)); ///< Buffer too small + AVERROR_DECODER_NOT_FOUND = -(ord($F8) or (ord('D') shl 8) or (ord('E') shl 16) or (ord('C') shl 24)); ///< Decoder not found + AVERROR_DEMUXER_NOT_FOUND = -(ord($F8) or (ord('D') shl 8) or (ord('E') shl 16) or (ord('M') shl 24)); ///< Demuxer not found + AVERROR_ENCODER_NOT_FOUND = -(ord($F8) or (ord('E') shl 8) or (ord('N') shl 16) or (ord('C') shl 24)); ///< Encoder not found + AVERROR_EOF = -(ord('E') or (ord('O') shl 8) or (ord('F') shl 16) or (ord(' ') shl 24)); ///< End of file + AVERROR_EXIT = -(ord('E') or (ord('X') shl 8) or (ord('I') shl 16) or (ord('T') shl 24)); ///< Immediate exit was requested; the called function should not be restarted + AVERROR_EXTERNAL = -(ord('E') or (ord('X') shl 8) or (ord('T') shl 16) or (ord(' ') shl 24)); ///< Generic error in an external library + AVERROR_FILTER_NOT_FOUND = -(ord($F8) or (ord('F') shl 8) or (ord('I') shl 16) or (ord('L') shl 24)); ///< Filter not found + AVERROR_INVALIDDATA = -(ord('I') or (ord('N') shl 8) or (ord('D') shl 16) or (ord('A') shl 24)); ///< Invalid data found when processing input + AVERROR_MUXER_NOT_FOUND = -(ord($F8) or (ord('M') shl 8) or (ord('U') shl 16) or (ord('X') shl 24)); ///< Muxer not found + AVERROR_OPTION_NOT_FOUND = -(ord($F8) or (ord('O') shl 8) or (ord('P') shl 16) or (ord('T') shl 24)); ///< Option not found + AVERROR_PATCHWELCOME = -(ord('P') or (ord('A') shl 8) or (ord('W') shl 16) or (ord('E') shl 24)); ///< Not yet implemented in FFmpeg, patches welcome + AVERROR_PROTOCOL_NOT_FOUND = -(ord($F8) or (ord('P') shl 8) or (ord('R') shl 16) or (ord('O') shl 24)); ///< Protocol not found + AVERROR_STREAM_NOT_FOUND = -(ord($F8) or (ord('S') shl 8) or (ord('T') shl 16) or (ord('R') shl 24)); ///< Stream not found + +(** + * This is semantically identical to AVERROR_BUG + * it has been introduced in Libav after our AVERROR_BUG and with a modified value. + *) + AVERROR_BUG2 = -(ord('B') or (ord('U') shl 8) or (ord('G') shl 16) or (ord(' ') shl 24)); + AVERROR_UNKNOWN = -(ord('U') or (ord('N') shl 8) or (ord('K') shl 16) or (ord('N') shl 24)); ///< Unknown error, typically from an external library + AVERROR_EXPERIMENTAL = -($2bb2afa8); ///< Requested feature is flagged experimental. Set strict_std_compliance if you really want to use it. + AVERROR_INPUT_CHANGED = -($636e6701); ///< Input changed between calls. Reconfiguration is required. (can be OR-ed with AVERROR_OUTPUT_CHANGED) + AVERROR_OUTPUT_CHANGED = -($636e6702); ///< Output changed between calls. Reconfiguration is required. (can be OR-ed with AVERROR_INPUT_CHANGED) +(* HTTP & RTSP errors *) + AVERROR_HTTP_BAD_REQUEST = -(ord($F8) or (ord('4') shl 8) or (ord('0') shl 16) or (ord('0') shl 24)); + AVERROR_HTTP_UNAUTHORIZED = -(ord($F8) or (ord('4') shl 8) or (ord('0') shl 16) or (ord('1') shl 24)); + AVERROR_HTTP_FORBIDDEN = -(ord($F8) or (ord('4') shl 8) or (ord('0') shl 16) or (ord('3') shl 24)); + AVERROR_HTTP_NOT_FOUND = -(ord($F8) or (ord('4') shl 8) or (ord('0') shl 16) or (ord('4') shl 24)); + AVERROR_HTTP_OTHER_4XX = -(ord($F8) or (ord('4') shl 8) or (ord('X') shl 16) or (ord('X') shl 24)); + AVERROR_HTTP_SERVER_ERROR = -(ord($F8) or (ord('5') shl 8) or (ord('X') shl 16) or (ord('X') shl 24)); + + AV_ERROR_MAX_STRING_SIZE = 64; + +(* + * Put a description of the AVERROR code errnum in errbuf. + * In case of failure the global variable errno is set to indicate the + * error. Even in case of failure av_strerror() will print a generic + * error message indicating the errnum provided to errbuf. + * + * @param errnum error code to describe + * @param errbuf buffer to which description is written + * @param errbuf_size the size in bytes of errbuf + * @return 0 on success, a negative value if a description for errnum + * cannot be found + *) +function av_strerror(errnum: cint; errbuf: PAnsiChar; errbuf_size: size_t): cint; + cdecl; external av__util; + +(** + * Fill the provided buffer with a string containing an error string + * corresponding to the AVERROR code errnum. + * + * @param errbuf a buffer + * @param errbuf_size size in bytes of errbuf + * @param errnum error code to describe + * @return the buffer in input, filled with the error description + * @see av_strerror() + *) +function av_make_error_string(errbuf: Pchar; errbuf_size: size_t; errnum: cint): Pchar; {$IFDEF HasInline}inline;{$ENDIF} +// Note: defined in avutil.pas + +(** + * Convenience macro, the return value should be used only directly in + * function arguments but never stand-alone. + *) +function av_err2str(errnum: cint): pchar; {$IFDEF HasInline}inline;{$ENDIF} +// Note: defined in avutil.pas + +(** + * @} + *) diff --git a/src/lib/ffmpeg-4.0/libavutil/frame.pas b/src/lib/ffmpeg-4.0/libavutil/frame.pas new file mode 100644 index 00000000..f10e2ff2 --- /dev/null +++ b/src/lib/ffmpeg-4.0/libavutil/frame.pas @@ -0,0 +1,928 @@ +(* + * AVOptions + * copyright (c) 2005 Michael Niedermayer + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of Pascal porting of ffmpeg. + * - Originally by Victor Zinetz for Delphi and Free Pascal on Windows. + * - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT + * in the source codes. + * - Changes and updates by the UltraStar Deluxe Team + * + * Conversion of libavutil/frame.h + * avutil version 54.7.100 + * +*) + +const + AV_NUM_DATA_POINTERS = 8; + + (** from the definitions of TAVFrame *) + + (** + * The frame data may be corrupted, e.g. due to decoding errors. + *) + AV_FRAME_FLAG_CORRUPT = (1 << 0); + (** + * A flag to mark the frames which need to be decoded, but shouldn't be output. + *) + AV_FRAME_FLAG_DISCARD = (1 << 2); + + FF_DECODE_ERROR_INVALID_BITSTREAM = 1; + FF_DECODE_ERROR_MISSING_REFERENCE = 2; + + +type +(* is already in pixfmt.pas + TAVColorSpace = ( + AVCOL_SPC_RGB = 0, + AVCOL_SPC_BT709 = 1, ///< also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B + AVCOL_SPC_UNSPECIFIED = 2, + AVCOL_SPC_FCC = 4, + AVCOL_SPC_BT470BG = 5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601 + AVCOL_SPC_SMPTE170M = 6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC / functionally identical to above + AVCOL_SPC_SMPTE240M_ = 7, + AVCOL_SPC_YCGCO = 8, ///< Used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16 + AVCOL_SPC_BT2020_NCL = 9, ///< ITU-R BT2020 non-constant luminance system + AVCOL_SPC_BT2020_CL = 10, ///< ITU-R BT2020 constant luminance system + AVCOL_SPC_NB ///< Not part of ABI + ); + + TAVColorRange = ( + AVCOL_RANGE_UNSPECIFIED = 0, + AVCOL_RANGE_MPEG = 1, ///< the normal 219*2^(n-8) "MPEG" YUV ranges + AVCOL_RANGE_JPEG = 2, ///< the normal 2^n-1 "JPEG" YUV ranges + AVCOL_RANGE_NB ///< Not part of ABI + ); +*) + +(* Note: AVPanScan is defined in avcodec.h but is here to avoid reference problems - Brian-ch 28/09/2014 + * + * Pan Scan area. + * This specifies the area which should be displayed. + * Note there may be multiple such areas for one frame. + *) + PAVPanScan = ^TAVPanScan; + TAVPanScan = record {24} + (*** id. + * - encoding: set by user. + * - decoding: set by libavcodec. *) + id: cint; + + (*** width and height in 1/16 pel + * - encoding: set by user. + * - decoding: set by libavcodec. *) + width: cint; + height: cint; + + (*** position of the top left corner in 1/16 pel for up to 3 fields/frames. + * - encoding: set by user. + * - decoding: set by libavcodec. *) + position: array [0..2] of array [0..1] of cint16; + end; {TAVPanScan} + + (** + * @defgroup lavu_frame AVFrame + * @ingroup lavu_data + * + * @ + * AVFrame is an abstraction for reference-counted raw multimedia data. + *) + TAVFrameSideDataType = ( + (** + * The data is the AVPanScan struct defined in libavcodec. + *) + AV_FRAME_DATA_PANSCAN, + (** + * ATSC A53 Part 4 Closed Captions. + * A53 CC bitstream is stored as uint8_t in AVFrameSideData.data. + * The number of bytes of CC data is AVFrameSideData.size. + *) + AV_FRAME_DATA_A53_CC, + (** + * Stereoscopic 3d metadata. + * The data is the AVStereo3D struct defined in libavutil/stereo3d.h. + *) + AV_FRAME_DATA_STEREO3D, + (** + * The data is the AVMatrixEncoding enum defined in libavutil/channel_layout.h. + *) + AV_FRAME_DATA_MATRIXENCODING, + (** + * Metadata relevant to a downmix procedure. + * The data is the AVDownmixInfo struct defined in libavutil/downmix_info.h. + *) + AV_FRAME_DATA_DOWNMIX_INFO, + (** + * ReplayGain information in the form of the AVReplayGain struct. + *) + AV_FRAME_DATA_REPLAYGAIN, + (** + * This side data contains a 3x3 transformation matrix describing an affine + * transformation that needs to be applied to the frame for correct + * presentation. + * + * See libavutil/display.h for a detailed description of the data. + *) + AV_FRAME_DATA_DISPLAYMATRIX, + (** + * Active Format Description data consisting of a single byte as specified + * in ETSI TS 101 154 using AVActiveFormatDescription enum. + *) + AV_FRAME_DATA_AFD, + (** + * Motion vectors exported by some codecs (on demand through the export_mvs + * flag set in the libavcodec AVCodecContext flags2 option). + * The data is the AVMotionVector struct defined in + * libavutil/motion_vector.h. + *) + AV_FRAME_DATA_MOTION_VECTORS, + (** + * Recommmends skipping the specified number of samples. This is exported + * only if the "skip_manual" AVOption is set in libavcodec. + * This has the same format as AV_PKT_DATA_SKIP_SAMPLES. + * @code + * u32le number of samples to skip from start of this packet + * u32le number of samples to skip from end of this packet + * u8 reason for start skip + * u8 reason for end skip (0=padding silence, 1=convergence) + * @endcode + *) + AV_FRAME_DATA_SKIP_SAMPLES, + (** + * This side data must be associated with an audio frame and corresponds to + * enum AVAudioServiceType defined in avcodec.h. + *) + AV_FRAME_DATA_AUDIO_SERVICE_TYPE, + (** + * Mastering display metadata associated with a video frame. The payload is + * an AVMasteringDisplayMetadata type and contains information about the + * mastering display color volume. + *) + AV_FRAME_DATA_MASTERING_DISPLAY_METADATA, + (** + * The GOP timecode in 25 bit timecode format. Data format is 64-bit integer. + * This is set on the first frame of a GOP that has a temporal reference of 0. + *) + AV_FRAME_DATA_GOP_TIMECODE, + (** + * The data represents the AVSphericalMapping structure defined in + * libavutil/spherical.h. + *) + AV_FRAME_DATA_SPHERICAL, + (** + * Content light level (based on CTA-861.3). This payload contains data in + * the form of the AVContentLightMetadata struct. + *) + AV_FRAME_DATA_CONTENT_LIGHT_LEVEL, + (** + * The data contains an ICC profile as an opaque octet buffer following the + * format described by ISO 15076-1 with an optional name defined in the + * metadata key entry "name". + *) + AV_FRAME_DATA_ICC_PROFILE, +{$IFDEF FF_API_FRAME_QP} + (** + * Implementation-specific description of the format of AV_FRAME_QP_TABLE_DATA. + * The contents of this side data are undocumented and internal; use + * av_frame_set_qp_table() and av_frame_get_qp_table() to access this in a + * meaningful way instead. + */) + AV_FRAME_DATA_QP_TABLE_PROPERTIES, + + (** + * Raw QP table data. Its format is described by + * AV_FRAME_DATA_QP_TABLE_PROPERTIES. Use av_frame_set_qp_table() and + * av_frame_get_qp_table() to access this instead. + *) + AV_FRAME_DATA_QP_TABLE_DATA +{$ENDIF} + ); + + TAVActiveFormatDescription = ( + AV_AFD_SAME = 8, + AV_AFD_4_3 = 9, + AV_AFD_16_9 = 10, + AV_AFD_14_9 = 11, + AV_AFD_4_3_SP_14_9 = 13, + AV_AFD_16_9_SP_14_9 = 14, + AV_AFD_SP_4_3 = 15 + ); {TAVActiveFormatDescription} + + PAVFrameSideData = ^TAVFrameSideData; +(** + * Structure to hold side data for an AVFrame. + * + * sizeof(AVFrameSideData) is not a part of the public ABI, so new fields may be added + * to the end with a minor bump. + *) + TAVFrameSideData = record + type_: TAVFrameSideDataType; + data: PByte; + size: cint; + metadata: TAVDictionary; + buf: PAVBufferRef; + end; {TAVFrameSideData} + +(** + * This structure describes decoded (raw) audio or video data. + * + * AVFrame must be allocated using av_frame_alloc(). Note that this only + * allocates the AVFrame itself, the buffers for the data must be managed + * through other means (see below). + * AVFrame must be freed with av_frame_free(). + * + * AVFrame is typically allocated once and then reused multiple times to hold + * different data (e.g. a single AVFrame to hold frames received from a + * decoder). In such a case, av_frame_unref() will free any references held by + * the frame and reset it to its original clean state before it + * is reused again. + * + * The data described by an AVFrame is usually reference counted through the + * AVBuffer API. The underlying buffer references are stored in AVFrame.buf / + * AVFrame.extended_buf. An AVFrame is considered to be reference counted if at + * least one reference is set, i.e. if AVFrame.buf[0] != NULL. In such a case, + * every single data plane must be contained in one of the buffers in + * AVFrame.buf or AVFrame.extended_buf. + * There may be a single buffer for all the data, or one separate buffer for + * each plane, or anything in between. + * + * sizeof(AVFrame) is not a part of the public ABI, so new fields may be added + * to the end with a minor bump. + * + * Fields can be accessed through AVOptions, the name string used, matches the + * C structure field name for fields accessible through AVOptions. The AVClass + * for AVFrame can be obtained from avcodec_get_frame_class() + *) + PPAVFrame = ^PAVFrame; + PAVFrame = ^TAVFrame; + TAVFrame = record + (** + * pointer to the picture/channel planes. + * This might be different from the first allocated byte + * + * Some decoders access areas outside 0,0 - width,height, please + * see avcodec_align_dimensions2(). Some filters and swscale can read + * up to 16 bytes beyond the planes, if these filters are to be used, + * then 16 extra bytes must be allocated. + * + * NOTE: Except for hwaccel formats, pointers not needed by the format + * MUST be set to NULL. + *) + data: array [0..AV_NUM_DATA_POINTERS - 1] of pbyte; + + (** + * For video, size in bytes of each picture line. + * For audio, size in bytes of each plane. + * + * For audio, only linesize[0] may be set. For planar audio, each channel + * plane must be the same size. + * + * For video the linesizes should be multiples of the CPUs alignment + * preference, this is 16 or 32 for modern desktop CPUs. + * Some code requires such alignment other code can be slower without + * correct alignment, for yet other it makes no difference. + * + * @note The linesize may be larger than the size of usable data -- there + * may be extra padding present for performance reasons. + *) + linesize: array [0..AV_NUM_DATA_POINTERS - 1] of cint; + + (** + * pointers to the data planes/channels. + * + * For video, this should simply point to data[]. + * + * For planar audio, each channel has a separate data pointer, and + * linesize[0] contains the size of each channel buffer. + * For packed audio, there is just one data pointer, and linesize[0] + * contains the total size of the buffer for all channels. + * + * Note: Both data and extended_data will always be set by get_buffer(), + * but for planar audio with more channels that can fit in data, + * extended_data must be used in order to access all channels. + *) + extended_data: ^pbyte; + + (** + * @name Video dimensions + * Video frames only. The coded dimensions (in pixels) of the video frame, + * i.e. the size of the rectangle that contains some well-defined values. + * + * @note The part of the frame intended for display/presentation is further + * restricted by the @ref cropping "Cropping rectangle". + *) + width, height: cint; + (** + * number of audio samples (per channel) described by this frame + *) + nb_samples: cint; + + (** + * format of the frame, -1 if unknown or unset + * Values correspond to enum AVPixelFormat for video frames, + * enum AVSampleFormat for audio) + *) + format: cint; + + (** + * 1 -> keyframe, 0-> not + *) + key_frame: cint; + + (** + * Picture type of the frame + *) + pict_type: TAVPictureType; + + (** + * sample aspect ratio for the video frame, 0/1 if unknown/unspecified + *) + sample_aspect_ratio: TAVRational; + + (** + * presentation timestamp in time_base units (time when frame should be shown to user) + *) + pts: cint64; + +{$IFDEF FF_API_PKT_PTS} + (** + * PTS copied from the AVPacket that was decoded to produce this frame. + *) + pkt_pts: cint64; {deprecated} +{$ENDIF} + + (** + * DTS copied from the AVPacket that triggered returning this frame. (if frame threading isn't used) + * This is also the Presentation time of this AVFrame calculated from + * only AVPacket.dts values without pts values. + *) + pkt_dts: cint64; + + (** + * picture number in bitstream order + *) + coded_picture_number: cint; + + (** + * picture number in display order + *) + display_picture_number: cint; + + (** + * quality (between 1 (good) and FF_LAMBDA_MAX (bad)) + *) + quality: cint; + + (** + * for some private data of the user + *) + opaque: pointer; + +{$IFDEF FF_API_ERROR_FRAME} + (** + * @deprecated unused + *) + error: array [0..AV_NUM_DATA_POINTERS - 1] of cuint64; {deprecated} +{$ENDIF} + + (** + * When decoding, this signals how much the picture must be delayed. + * extra_delay = repeat_pict / (2*fps) + *) + repeat_pict: cint; + + (** + * The content of the picture is interlaced. + *) + interlaced_frame: cint; + + (** + * If the content is interlaced, is top field displayed first. + *) + top_field_first: cint; + + (** + * Tell user application that palette has changed from previous frame. + *) + palette_has_changed: cint; + + (** + * reordered opaque 64 bits (generally an integer or a double precision float + * PTS but can be anything). + * The user sets AVCodecContext.reordered_opaque to represent the input at + * that time, + * the decoder reorders values as needed and sets AVFrame.reordered_opaque + * to exactly one of the values provided by the user through AVCodecContext.reordered_opaque + * @deprecated in favor of pkt_pts + *) + reordered_opaque: cint64; + + (** + * Sample rate of the audio data. + *) + sample_rate: cint; + + (** + * Channel layout of the audio data. + *) + channel_layout: cuint64; + + (** + * AVBuffer references backing the data for this frame. If all elements of + * this array are NULL, then this frame is not reference counted. This array + * must be filled contiguously -- if buf[i] is non-NULL then buf[j] must + * also be non-NULL for all j < i. + * + * There may be at most one AVBuffer per data plane, so for video this array + * always contains all the references. For planar audio with more than + * AV_NUM_DATA_POINTERS channels, there may be more buffers than can fit in + * this array. Then the extra AVBufferRef pointers are stored in the + * extended_buf array. + *) + buf: array [0..AV_NUM_DATA_POINTERS - 1] of PAVBufferRef; + + (** + * For planar audio which requires more than AV_NUM_DATA_POINTERS + * AVBufferRef pointers, this array will hold all the references which + * cannot fit into AVFrame.buf. + * + * Note that this is different from AVFrame.extended_data, which always + * contains all the pointers. This array only contains the extra pointers, + * which cannot fit into AVFrame.buf. + * + * This array is always allocated using av_malloc() by whoever constructs + * the frame. It is freed in av_frame_unref(). + *) + extended_buf: PPAVBufferRef; + + (** + * Number of elements in extended_buf. + *) + nb_extended_buf: cint; + + side_data: ^PAVFrameSideData; + nb_side_data: cint; + + (** + * @defgroup lavu_frame_flags AV_FRAME_FLAGS + * @ingroup lavu_frame + * Flags describing additional frame properties. + * + * @ + *) + + (** + * Frame flags, a combination of @ref lavu_frame_flags + *) + flags: cint; + + (** + * MPEG vs JPEG YUV range. + * - encoding: Set by user + * - decoding: Set by libavcodec + *) + color_range: TAVColorRange; + + color_primaries: TAVColorPrimaries; + + color_trc: TAVColorTransferCharacteristic; + + (** + * YUV colorspace type. + * - encoding: Set by user + * - decoding: Set by libavcodec + *) + colorspace: TAVColorSpace; + + chroma_location: TAVChromaLocation; + + (** + * frame timestamp estimated using various heuristics, in stream time base + * - encoding: unused + * - decoding: set by libavcodec, read by user. + *) + best_effort_timestamp: cint64; + + (** + * reordered pos from the last AVPacket that has been input into the decoder + * - encoding: unused + * - decoding: Read by user. + *) + pkt_pos: cint64; + + (** + * duration of the corresponding packet, expressed in + * AVStream->time_base units, 0 if unknown. + * - encoding: unused + * - decoding: Read by user. + *) + pkt_duration: cint64; + + (** + * metadata. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + *) + metadata: PAVDictionary; + + (** + * decode error flags of the frame, set to a combination of + * FF_DECODE_ERROR_xxx flags if the decoder produced a frame, but there + * were errors during the decoding. + * - encoding: unused + * - decoding: set by libavcodec, read by user. + *) + decode_error_flags: cint; + + (** + * number of audio channels, only used for audio. + * - encoding: unused + * - decoding: Read by user. + *) + channels: cint; + + (** + * size of the corresponding packet containing the compressed + * frame. + * It is set to a negative value if unknown. + * - encoding: unused + * - decoding: set by libavcodec, read by user. + *) + pkt_size: cint; + +{$IFDEF FF_API_FRAME_QP} + (** + * QP table + *) + qscale_table: PByte; {deprecated} + (** + * QP store stride + *) + qstride: cint; {deprecated} + + qscale_type: cint; {deprecated} + + qp_table_buf: PAVBufferRef; {deprecated} +{$ENDIF} + (** + * For hwaccel-format frames, this should be a reference to the + * AVHWFramesContext describing the frame. + *) + hw_frames_ctx: PAVBufferRef; + + (** + * AVBufferRef for free use by the API user. FFmpeg will never check the + * contents of the buffer ref. FFmpeg calls av_buffer_unref() on it when + * the frame is unreferenced. av_frame_copy_props() calls create a new + * reference with av_buffer_ref() for the target frame's opaque_ref field. + * + * This is unrelated to the opaque field, although it serves a similar + * purpose. + *) + opaque_ref: PAVBufferRef; + + (** + * @anchor cropping + * @name Cropping + * Video frames only. The number of pixels to discard from the the + * top/bottom/left/right border of the frame to obtain the sub-rectangle of + * the frame intended for presentation. + *) + crop_top: size_t; + crop_bottom: size_t; + crop_left: size_t; + crop_right: size_t; + (** + * AVBufferRef for internal use by a single libav* library. + * Must not be used to transfer data between libraries. + * Has to be NULL when ownership of the frame leaves the respective library. + * + * Code outside the FFmpeg libs should never check or change the contents of the buffer ref. + * + * FFmpeg calls av_buffer_unref() on it when the frame is unreferenced. + * av_frame_copy_props() calls create a new reference with av_buffer_ref() + * for the target frame's private_ref field. + *) + private_ref: PAVBufferRef; + end; {TAVFrame} + +{$IFDEF FF_API_FRAME_GET_SET} +(** + * Accessors for some AVFrame fields. These used to be provided for ABI + * compatibility, and do not need to be used anymore. + *) +function av_frame_get_best_effort_timestamp(frame: {const} PAVFrame): cint64; + cdecl; external av__codec; overload; deprecated; +procedure av_frame_set_best_effort_timestamp(frame: PAVFrame; val: cint64); + cdecl; external av__codec; overload; deprecated; +function av_frame_get_pkt_duration (frame: {const} PAVFrame): cint64; + cdecl; external av__codec; overload; deprecated; +procedure av_frame_get_pkt_duration (frame: PAVFrame; val: cint64); + cdecl; external av__codec; overload; deprecated; +function av_frame_get_pkt_pos (frame: {const} PAVFrame): cint64; + cdecl; external av__codec; overload; deprecated; +procedure av_frame_get_pkt_pos (frame: PAVFrame; val: cint64); + cdecl; external av__codec; overload; deprecated; +function av_frame_get_channel_layout (frame: {const} PAVFrame): cint64; + cdecl; external av__codec; overload; deprecated; +procedure av_frame_get_channel_layout (frame: PAVFrame; val: cint64); + cdecl; external av__codec; overload; deprecated; +function av_frame_get_channels (frame: {const} PAVFrame): cint; + cdecl; external av__codec; deprecated; +procedure av_frame_set_channels (frame: PAVFrame; val: cint); + cdecl; external av__codec; deprecated; +function av_frame_get_sample_rate (frame: {const} PAVFrame): cint; + cdecl; external av__codec; deprecated; +procedure av_frame_set_sample_rate (frame: PAVFrame; val: cint); + cdecl; external av__codec; deprecated; +function av_frame_get_metadata (frame: {const} PAVFrame): PAVDictionary; + cdecl; external av__codec; deprecated; +procedure av_frame_set_metadata (frame: PAVFrame; val: PAVDictionary); + cdecl; external av__codec; deprecated; +function av_frame_get_decode_error_flags (frame: {const} PAVFrame): cint; + cdecl; external av__codec; deprecated; +procedure av_frame_set_decode_error_flags (frame: PAVFrame; val: cint); + cdecl; external av__codec; deprecated; +function av_frame_get_pkt_size (frame: {const} PAVFrame): cint; + cdecl; external av__codec; deprecated; +procedure av_frame_set_pkt_size (frame: PAVFrame; val: cint); + cdecl; external av__codec; deprecated; +function avpriv_frame_get_metadatap(frame: PAVFrame): PPAVDictionary; + cdecl; external av__codec; deprecated; +{$IFDEF FF_API_FRAME_QP} +function av_frame_get_qp_table(f: PAVFrame; stride: pcint; type_: pcint): PByte; + cdecl; external av__codec; deprecated; +function av_frame_set_qp_table(f: PAVFrame; buf: PAVBufferRef; stride: cint; type_: cint): cint; + cdecl; external av__codec; deprecated; +{$ENDIF} +function av_frame_get_colorspace(frame: {const} PAVFrame): TAVColorSpace; + cdecl; external av__codec; deprecated; +procedure av_frame_set_colorspace(frame: PAVFrame; val: TAVColorSpace); + cdecl; external av__codec; deprecated; +procedure av_frame_set_color_range(frame: PAVFrame; val: TAVColorSpace); + cdecl; external av__codec; deprecated; +{$ENDIF} + +(** + * Get the name of a colorspace. + * @return a static string identifying the colorspace; can be NULL. + *) +function av_get_colorspace_name(val: TAVColorSpace): PAnsiChar; + cdecl; external av__codec; + +(** + * Allocate an AVFrame and set its fields to default values. The resulting + * struct must be freed using av_frame_free(). + * + * @return An AVFrame filled with default values or NULL on failure. + * + * @note this only allocates the AVFrame itself, not the data buffers. Those + * must be allocated through other means, e.g. with av_frame_get_buffer() or + * manually. + *) +function av_frame_alloc(): PAVFrame; + cdecl; external av__util; + +(** + * Free the frame and any dynamically allocated objects in it, + * e.g. extended_data. If the frame is reference counted, it will be + * unreferenced first. + * + * @param frame frame to be freed. The pointer will be set to NULL. + *) +procedure av_frame_free(frame: PPAVFrame); + cdecl; external av__codec; + +(** + * Set up a new reference to the data described by the source frame. + * + * Copy frame properties from src to dst and create a new reference for each + * AVBufferRef from src. + * + * If src is not reference counted, new buffers are allocated and the data is + * copied. + * + * @warning: dst MUST have been either unreferenced with av_frame_unref(dst), + * or newly allocated with av_frame_alloc() before calling this + * function, or undefined behavior will occur. + * + * @return 0 on success, a negative AVERROR on error + *) +function av_frame_ref(dst: PAVFrame; src: {const} PAVFrame): cint; + cdecl; external av__codec; + +(** + * Create a new frame that references the same data as src. + * + * This is a shortcut for av_frame_alloc()+av_frame_ref(). + * + * @return newly created AVFrame on success, NULL on error. + *) +function av_frame_clone(src: {const} PAVFrame): PAVFrame; + cdecl; external av__codec; + +(** + * Unreference all the buffers referenced by frame and reset the frame fields. + *) +procedure av_frame_unref(frame: PAVFrame); + cdecl; external av__util; + +(** + * Move everything contained in src to dst and reset src. + * + * @warning: dst is not unreferenced, but directly overwritten without reading + * or deallocating its contents. Call av_frame_unref(dst) manually + * before calling this function to ensure that no memory is leaked. + *) +procedure av_frame_move_ref(dst, src: PAVFrame); + cdecl; external av__codec; + +(** + * Allocate new buffer(s) for audio or video data. + * + * The following fields must be set on frame before calling this function: + * - format (pixel format for video, sample format for audio) + * - width and height for video + * - nb_samples and channel_layout for audio + * + * This function will fill AVFrame.data and AVFrame.buf arrays and, if + * necessary, allocate and fill AVFrame.extended_data and AVFrame.extended_buf. + * For planar formats, one buffer will be allocated for each plane. + * + * @warning: if frame already has been allocated, calling this function will + * leak memory. In addition, undefined behavior can occur in certain + * cases. + * + * @param frame frame in which to store the new buffers. + * @param align Required buffer size alignment. If equal to 0, alignment will be + * chosen automatically for the current CPU. It is highly + * recommended to pass 0 here unless you know what you are doing. + * + * @return 0 on success, a negative AVERROR on error. + *) +function av_frame_get_buffer(frame: PAVFrame; align: cint): cint; + cdecl; external av__codec; + +(** + * Check if the frame data is writable. + * + * @return A positive value if the frame data is writable (which is true if and + * only if each of the underlying buffers has only one reference, namely the one + * stored in this frame). Return 0 otherwise. + * + * If 1 is returned the answer is valid until av_buffer_ref() is called on any + * of the underlying AVBufferRefs (e.g. through av_frame_ref() or directly). + * + * @see av_frame_make_writable(), av_buffer_is_writable() + *) +function av_frame_is_writable(frame: PAVFrame): cint; + cdecl; external av__codec; + +(** + * Ensure that the frame data is writable, avoiding data copy if possible. + * + * Do nothing if the frame is writable, allocate new buffers and copy the data + * if it is not. + * + * @return 0 on success, a negative AVERROR on error. + * + * @see av_frame_is_writable(), av_buffer_is_writable(), + * av_buffer_make_writable() + *) +function av_frame_make_writable(frame: PAVFrame): cint; + cdecl; external av__codec; + +(** + * Copy the frame data from src to dst. + * + * This function does not allocate anything, dst must be already initialized and + * allocated with the same parameters as src. + * + * This function only copies the frame data (i.e. the contents of the data / + * extended data arrays), not any other properties. + * + * @return >= 0 on success, a negative AVERROR on error. + *) +function av_frame_copy(dst: PAVFrame; src: {const} PAVFrame): cint; + cdecl; external av__codec; + +(** + * Copy only "metadata" fields from src to dst. + * + * Metadata for the purpose of this function are those fields that do not affect + * the data layout in the buffers. E.g. pts, sample rate (for audio) or sample + * aspect ratio (for video), but not width/height or channel layout. + * Side data is also copied. + *) +function av_frame_copy_props(dst: PAVFrame; src: {const} PAVFrame): cint; + cdecl; external av__codec; + +(** + * Get the buffer reference a given data plane is stored in. + * + * @param plane index of the data plane of interest in frame->extended_data. + * + * @return the buffer reference that contains the plane or NULL if the input + * frame is not valid. + *) +function av_frame_get_plane_buffer(frame: PAVFrame; plane: cint): PAVBufferRef; + cdecl; external av__codec; + +(** + * Add a new side data to a frame. + * + * @param frame a frame to which the side data should be added + * @param type type of the added side data + * @param size size of the side data + * + * @return newly added side data on success, NULL on error + *) +function av_frame_new_side_data(frame: PAVFrame; + type_: TAVFrameSideDataType; + size: cint): PAVFrameSideData; + cdecl; external av__codec; + +(** + * Add a new side data to a frame from an existing AVBufferRef + * + * @param frame a frame to which the side data should be added + * @param type the type of the added side data + * @param buf an AVBufferRef to add as side data. The ownership of + * the reference is transferred to the frame. + * + * @return newly added side data on success, NULL on error. On failure + * the frame is unchanged and the AVBufferRef remains owned by + * the caller. + *) +function av_frame_new_side_data_from_buf(frame: PAVFrame; + type_: TAVFrameSideDataType; + buf: PAVBufferRef): PAVFrameSideData; + cdecl; external av__codec; + +(** + * @return a pointer to the side data of a given type on success, NULL if there + * is no side data with such type in this frame. + *) +function av_frame_get_side_data(frame: {const} PAVFrame; type_: TAVFrameSideDataType): PAVFrameSideData; + cdecl; external av__codec; + +(** + * If side data of the supplied type exists in the frame, free it and remove it + * from the frame. + *) +procedure av_frame_remove_side_data(frame: PAVFrame; type_: TAVFrameSideDataType); + cdecl; external av__codec; + + +(** + * Flags for frame cropping. + *) +const + (** + * Apply the maximum possible cropping, even if it requires setting the + * AVFrame.data[] entries to unaligned pointers. Passing unaligned data + * to FFmpeg API is generally not allowed, and causes undefined behavior + * (such as crashes). You can pass unaligned data only to FFmpeg APIs that + * are explicitly documented to accept it. Use this flag only if you + * absolutely know what you are doing. + *) + AV_FRAME_CROP_UNALIGNED = 1 << 0; + +(** + * Crop the given video AVFrame according to its crop_left/crop_top/crop_right/ + * crop_bottom fields. If cropping is successful, the function will adjust the + * data pointers and the width/height fields, and set the crop fields to 0. + * + * In all cases, the cropping boundaries will be rounded to the inherent + * alignment of the pixel format. In some cases, such as for opaque hwaccel + * formats, the left/top cropping is ignored. The crop fields are set to 0 even + * if the cropping was rounded or ignored. + * + * @param frame the frame which should be cropped + * @param flags Some combination of AV_FRAME_CROP_* flags, or 0. + * + * @return >= 0 on success, a negative AVERROR on error. If the cropping fields + * were invalid, AVERROR(ERANGE) is returned, and nothing is changed. + *) +function av_frame_apply_cropping(frame: PAVFrame; flags: cint): cint; + cdecl; external av__codec; + +(** + * @return a string identifying the side data type + *) +function av_frame_side_data_name(type_: TAVFrameSideDataType): PAnsiChar; + cdecl; external av__codec; diff --git a/src/lib/ffmpeg-4.0/libavutil/log.pas b/src/lib/ffmpeg-4.0/libavutil/log.pas new file mode 100644 index 00000000..f8621644 --- /dev/null +++ b/src/lib/ffmpeg-4.0/libavutil/log.pas @@ -0,0 +1,530 @@ +(* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of the Pascal port of ffmpeg. + * - Changes and updates by the UltraStar Deluxe Team + * + * Conversion of libavutil/log.h + * avutil version 54.7.100 + * + *) + +(** + * @file + * log + *) + +type + (* from opt.h *) + TAVOptionType = ( + AV_OPT_TYPE_FLAGS, + AV_OPT_TYPE_INT, + AV_OPT_TYPE_INT64, + AV_OPT_TYPE_DOUBLE, + AV_OPT_TYPE_FLOAT, + AV_OPT_TYPE_STRING, + AV_OPT_TYPE_RATIONAL, + AV_OPT_TYPE_BINARY, ///< offset must point to a pointer immediately followed by an int for the length + AV_OPT_TYPE_DICT, + AV_OPT_TYPE_UINT64, + AV_OPT_TYPE_CONST, + AV_OPT_TYPE_BOOL, + AV_OPT_TYPE_CHANNEL_LAYOUT, + AV_OPT_TYPE_COLOR, + AV_OPT_TYPE_DURATION, + AV_OPT_TYPE_PIXEL_FMT, + AV_OPT_TYPE_SAMPLE_FMT, + AV_OPT_TYPE_IMAGE_SIZE, ///< offset must point to two consecutive integers + AV_OPT_TYPE_VIDEO_RATE ///< offset must point to AVRational + ); + +const + AV_OPT_FLAG_ENCODING_PARAM = 1; ///< a generic parameter which can be set by the user for muxing or encoding + AV_OPT_FLAG_DECODING_PARAM = 2; ///< a generic parameter which can be set by the user for demuxing or decoding + AV_OPT_FLAG_AUDIO_PARAM = 8; + AV_OPT_FLAG_VIDEO_PARAM = 16; + AV_OPT_FLAG_SUBTITLE_PARAM = 32; + (** + * The option is intended for exporting values to the caller. + *) + AV_OPT_FLAG_EXPORT = 64; + (** + * The option may not be set through the AVOptions API, only read. + * This flag only makes sense when AV_OPT_FLAG_EXPORT is also set. + *) + AV_OPT_FLAG_READONLY = 128; + AV_OPT_FLAG_BSF_PARAM = 1 shl 8; ///< a generic parameter which can be set by the user for bit stream filtering + AV_OPT_FLAG_FILTERING_PARAM = 1 shl 16; ///< a generic parameter which can be set by the user for filtering + +type + (** + * AVOption + *) + PAVOption = ^TAVOption; + TAVOption = record + name: {const} PAnsiChar; + + (** + * short English help text + * @todo What about other languages? + *) + help: {const} PAnsiChar; + + (** + * The offset relative to the context structure where the option + * value is stored. It should be 0 for named constants. + *) + offset: cint; + type_: TAVOptionType; + + (** + * the default value for scalar options + *) + default_val: record + case cint of + 0: (i64: cint64); + 1: (dbl: cdouble); + 2: (str: PAnsiChar); + (* TODO those are unused now *) + 3: (q: TAVRational); + end; + min: cdouble; ///< minimum valid value for the option + max: cdouble; ///< maximum valid value for the option + + flags: cint; +//FIXME think about enc-audio, ... style flags + + (** + * The logical unit to which the option belongs. Non-constant + * options and corresponding named constants share the same + * unit. May be NULL. + *) + unit_: {const} PAnsiChar; + end; + +type + PAVClassCategory = ^TAVClassCategory; + TAVClassCategory = ( + AV_CLASS_CATEGORY_NA = 0, + AV_CLASS_CATEGORY_INPUT, + AV_CLASS_CATEGORY_OUTPUT, + AV_CLASS_CATEGORY_MUXER, + AV_CLASS_CATEGORY_DEMUXER, + AV_CLASS_CATEGORY_ENCODER, + AV_CLASS_CATEGORY_DECODER, + AV_CLASS_CATEGORY_FILTER, + AV_CLASS_CATEGORY_BITSTREAM_FILTER, + AV_CLASS_CATEGORY_SWSCALER, + AV_CLASS_CATEGORY_SWRESAMPLER, + AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT = 40, + AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT, + AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT, + AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT, + AV_CLASS_CATEGORY_DEVICE_OUTPUT, + AV_CLASS_CATEGORY_DEVICE_INPUT, + AV_CLASS_CATEGORY_NB ///< not part of ABI/API + ); + +(* +#define AV_IS_INPUT_DEVICE(category) \ + (((category) == AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT) || \ + ((category) == AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT) || \ + ((category) == AV_CLASS_CATEGORY_DEVICE_INPUT)) + +#define AV_IS_OUTPUT_DEVICE(category) \ + (((category) == AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT) || \ + ((category) == AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT) || \ + ((category) == AV_CLASS_CATEGORY_DEVICE_OUTPUT)) +*) + +// struct AVOptionRanges; + + (** + * A single allowed range of values, or a single allowed value. + *) + PAVOptionRange = ^TAVOptionRange; + PPAVOptionRange = ^PAVOptionRange; + TAVOptionRange = record + str: {const} PAnsiChar; + (** + * Value range. + * For string ranges this represents the min/max length. + * For dimensions this represents the min/max pixel count or width/height in multi-component case. + *) + value_min, value_max: cdouble; + (** + * Value's component range. + * For string this represents the unicode range for chars, 0-127 limits to ASCII. + *) + component_min, component_max: cdouble; + (** + * Range flag. + * If set to 1 the struct encodes a range, if set to 0 a single value. + *) + is_range: cint; + end; + + (** + * List of AVOptionRange structs. + *) + PAVOptionRanges = ^TAVOptionRanges; + PPAVOptionRanges = ^PAVOptionRanges; + TAVOptionRanges = record + (** + * Array of option ranges. + * + * Most of option types use just one component. + * Following describes multi-component option types: + * + * AV_OPT_TYPE_IMAGE_SIZE: + * component index 0: range of pixel count (width * height). + * component index 1: range of width. + * component index 2: range of height. + * + * @note To obtain multi-component version of this structure, user must + * provide AV_OPT_MULTI_COMPONENT_RANGE to av_opt_query_ranges or + * av_opt_query_ranges_default function. + * + * Multi-component range can be read as in following example: + * + * @code + * int range_index, component_index; + * AVOptionRanges *ranges; + * AVOptionRange *range[3]; //may require more than 3 in the future. + * av_opt_query_ranges(&ranges, obj, key, AV_OPT_MULTI_COMPONENT_RANGE); + * for (range_index = 0; range_index < ranges->nb_ranges; range_index++) { + * for (component_index = 0; component_index < ranges->nb_components; component_index++) + * range[component_index] = ranges->range[ranges->nb_ranges * component_index + range_index]; + * //do something with range here. + * } + * av_opt_freep_ranges(&ranges); + * @endcode + *) + range: PPAVOptionRange; + (** + * Number of ranges per component. + *) + nb_ranges: cint; + (** + * Number of componentes. + *) + nb_components: cint; + end; + +(** + * Describe the class of an AVClass context structure. That is an + * arbitrary struct of which the first field is a pointer to an + * AVClass struct (e.g. AVCodecContext, AVFormatContext etc.). + *) + PAVClass = ^TAVClass; + TAVClass = record + (** + * The name of the class; usually it is the same name as the + * context structure type to which the AVClass is associated. + *) + class_name: PAnsiChar; + + (** + * A pointer to a function which returns the name of a context + * instance ctx associated with the class. + *) + item_name: function(ctx: pointer): PAnsiChar; cdecl; + + (** + * a pointer to the first option specified in the class if any or NULL + * + * @see av_set_default_options() + *) + option: PAVOption; + + (** + * LIBAVUTIL_VERSION with which this structure was created. + * This is used to allow fields to be added without requiring major + * version bumps everywhere. + *) + version: cint; + + (** + * Offset in the structure where log_level_offset is stored. + * 0 means there is no such variable + *) + log_level_offset_offset: cint; + + (** + * Offset in the structure where a pointer to the parent context for + * logging is stored. For example a decoder could pass its AVCodecContext + * to eval as such a parent context, which an av_log() implementation + * could then leverage to display the parent context. + * The offset can be NULL. + *) + parent_log_context_offset: cint; + + (** + * Return next AVOptions-enabled child or NULL + *) + child_next: function (obj: pointer; prev: pointer): pointer; cdecl; + + (** + * Return an AVClass corresponding to the next potential + * AVOptions-enabled child. + * + * The difference between child_next and this is that + * child_next iterates over _already existing_ objects, while + * child_class_next iterates over _all possible_ children. + *) + child_class_next: function (prev: {const} PAVClass): {const} PAVClass; cdecl; + + (** + * Category used for visualization (like color) + * This is only set if the category is equal for all objects using this class. + * available since version (51 << 16 | 56 << 8 | 100) + *) + category: TAVClassCategory; + + (** + * Callback to return the category. + * available since version (51 << 16 | 59 << 8 | 100) + *) + get_category: function (ctx: pointer): PAVClassCategory; cdecl; + + (** + * Callback to return the supported/allowed ranges. + * available since version (52.12) + *) + query_ranges: function (P: PPAVOptionRanges; obj: pointer; key: {const} PAnsiChar; flags: cint): cint; cdecl; +end; + +const +(** + * Print no output. + *) + AV_LOG_QUIET = -8; + +(** + * Something went really wrong and we will crash now. + *) + AV_LOG_PANIC = 0; + +(** + * Something went wrong and recovery is not possible. + * For example, no header was found for a format which depends + * on headers or an illegal combination of parameters is used. + *) + AV_LOG_FATAL = 8; + +(** + * Something went wrong and cannot losslessly be recovered. + * However, not all future data is affected. + *) + AV_LOG_ERROR = 16; + +(** + * Something somehow does not look correct. This may or may not + * lead to problems. An example would be the use of '-vstrict -2'. + *) + AV_LOG_WARNING = 24; + +(** + * Standard information. + *) + AV_LOG_INFO = 32; + +(** + * Detailed information. + *) + AV_LOG_VERBOSE = 40; + +(** + * Stuff which is only useful for libav* developers. + *) + AV_LOG_DEBUG = 48; + +(** + * Extremely verbose debugging, useful for libav* development. + *) + AV_LOG_TRACE = 56; + + AV_LOG_MAX_OFFSET = (AV_LOG_DEBUG - AV_LOG_QUIET); + +(** + * Sets additional colors for extended debugging sessions. + * @code + av_log(ctx, AV_LOG_DEBUG|AV_LOG_C(134), "Message in purple\n"); + @endcode + * Requires 256color terminal support. Uses outside debugging is not + * recommended. + *) +{** to be translated if needed + AV_LOG_C(x) (x << 8) +**} + +(** + * Send the specified message to the log if the level is less than or equal + * to the current av_log_level. By default, all logging messages are sent to + * stderr. This behavior can be altered by setting a different logging callback + * function. + * @see av_log_set_callback + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct or NULL if general log. + * @param level The importance level of the message expressed using a @ref + * lavu_log_constants "Logging Constant". + * @param fmt The format string (printf-compatible) that specifies how + * subsequent arguments are converted to output. + *) +{** to be translated if needed +void av_log(void *avcl, int level, const char *fmt, ...) av_printf_format(3, 4); +**} + +type + va_list = pointer; + +(** + * Send the specified message to the log if the level is less than or equal + * to the current av_log_level. By default, all logging messages are sent to + * stderr. This behavior can be altered by setting a different logging callback + * function. + * @see av_log_set_callback + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct. + * @param level The importance level of the message expressed using a @ref + * lavu_log_constants "Logging Constant". + * @param fmt The format string (printf-compatible) that specifies how + * subsequent arguments are converted to output. + * @param vl The arguments referenced by the format string. + *) +procedure av_vlog(avcl: pointer; level: cint; fmt: {const} PAnsiChar; vl: va_list); + cdecl; external av__util; + +(** + * Get the current log level + * + * @see lavu_log_constants + * + * @return Current log level + *) +function av_log_get_level(): cint; + cdecl; external av__util; + +(** + * Set the log level + * + * @see lavu_log_constants + * + * @param level Logging level + *) +procedure av_log_set_level(level: cint); + cdecl; external av__util; + +(** + * Set the logging callback + * + * @note The callback must be thread safe, even if the application does not use + * threads itself as some codecs are multithreaded. + * + * @see av_log_default_callback + * + * @param callback A logging function with a compatible signature. + *) +{** to be translated if needed +void av_log_set_callback(void (*callback)(void*, int, const char*, va_list)); +**} + +(** + * Default logging callback + * + * It prints the message to stderr, optionally colorizing it. + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct. + * @param level The importance level of the message expressed using a @ref + * lavu_log_constants "Logging Constant". + * @param fmt The format string (printf-compatible) that specifies how + * subsequent arguments are converted to output. + * @param vl The arguments referenced by the format string. + *) +{** to be translated if needed +void av_log_default_callback(void* avcl, int level, const char *fmt, va_list vl); +**} + +(** + * Return the context name + * + * @param ctx The AVClass context + * + * @return The AVClass class_name + *) +function av_default_item_name(ctx: pointer): PAnsiChar; + cdecl; external av__util; +function av_default_get_category(ptr: pointer): TAVClassCategory; + cdecl; external av__util; + +(** + * Format a line of log the same way as the default callback. + * @param line buffer to receive the formatted line + * @param line_size size of the buffer + * @param print_prefix used to store whether the prefix must be printed; + * must point to a persistent integer initially set to 1 + *) +procedure av_log_format_line(ptr: pointer; level: cint; fmt: {const} PAnsiChar; vl: va_list; + line: PAnsiChar; line_size: cint; print_prefix: Pcint); + cdecl; external av__util; + +(** + * Format a line of log the same way as the default callback. + * @param line buffer to receive the formatted line; + * may be NULL if line_size is 0 + * @param line_size size of the buffer; at most line_size-1 characters will + * be written to the buffer, plus one null terminator + * @param print_prefix used to store whether the prefix must be printed; + * must point to a persistent integer initially set to 1 + * @return Returns a negative value if an error occurred, otherwise returns + * the number of characters that would have been written for a + * sufficiently large buffer, not including the terminating null + * character. If the return value is not less than line_size, it means + * that the log message was truncated to fit the buffer. + *) +function av_log_format_line2(ptr: pointer; level: cint; fmt: {const} PAnsiChar; vl: va_list; + line: PAnsiChar; line_size: cint; print_prefix: Pcint): cint; + cdecl; external av__util; + + +const +(** + * Skip repeated messages, this requires the user app to use av_log() instead of + * (f)printf as the 2 would otherwise interfere and lead to + * "Last message repeated x times" messages below (f)printf messages with some + * bad luck. + * Also to receive the last, "last repeated" line if any, the user app must + * call av_log(NULL, AV_LOG_QUIET, "%s", ""); at the end + *) + AV_LOG_SKIP_REPEATED = 1; + +(** + * Include the log severity in messages originating from codecs. + * + * Results in messages such as: + * [rawvideo @ 0xDEADBEEF] [error] encode did not produce valid pts + *) + AV_LOG_PRINT_LEVEL = 2; + +procedure av_log_set_flags(arg: cint); + cdecl; external av__util; + +function av_log_get_flags: cint; + cdecl; external av__util; diff --git a/src/lib/ffmpeg-4.0/libavutil/mathematics.pas b/src/lib/ffmpeg-4.0/libavutil/mathematics.pas new file mode 100644 index 00000000..f6df1368 --- /dev/null +++ b/src/lib/ffmpeg-4.0/libavutil/mathematics.pas @@ -0,0 +1,222 @@ +(* + * copyright (c) 2005-2012 Michael Niedermayer + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of Pascal porting of ffmpeg. + * - Originally by Victor Zinetz for Delphi and Free Pascal on Windows. + * - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT + * in the source codes. + * - Changes and updates by the UltraStar Deluxe Team + * + * Conversion of libavutil/mathematics.h + * avutil version 54.7.100 + * + *) + +(** + * @file + * @addtogroup lavu_math + * Mathematical utilities for working with timestamp and time base. + *) + +const + M_E = 2.7182818284590452354; // e + M_LN2 = 0.69314718055994530942; // log_e 2 + M_LN10 = 2.30258509299404568402; // log_e 10 + M_LOG2_10 = 3.32192809488736234787; // log_2 10 + M_PHI = 1.61803398874989484820; // phi / golden ratio + M_PI = 3.14159265358979323846; // pi + M_PI_2 = 1.57079632679489661923; // pi/2 + M_SQRT1_2 = 0.70710678118654752440; // 1/sqrt(2) + M_SQRT2 = 1.41421356237309504880; // sqrt(2) + NAN = $7fc00000; + INFINITY = $7f800000; + +(** + * @addtogroup lavu_math + * @ + *) + +type + (** + * Rounding methods. + *) + TAVRounding = ( + AV_ROUND_ZERO = 0, ///< Round toward zero. + AV_ROUND_INF = 1, ///< Round away from zero. + AV_ROUND_DOWN = 2, ///< Round toward -infinity. + AV_ROUND_UP = 3, ///< Round toward +infinity. + AV_ROUND_NEAR_INF = 5, ///< Round to nearest and halfway cases away from zero. + (** + * Flag telling rescaling functions to pass `INT64_MIN`/`MAX` through + * unchanged, avoiding special cases for #AV_NOPTS_VALUE. + * + * Unlike other values of the enumeration AVRounding, this value is a + * bitmask that must be used in conjunction with another value of the + * enumeration through a bitwise OR, in order to set behavior for normal + * cases. + * + * @code{.c} + * av_rescale_rnd(3, 1, 2, AV_ROUND_UP | AV_ROUND_PASS_MINMAX); + * // Rescaling 3: + * // Calculating 3 * 1 / 2 + * // 3 / 2 is rounded up to 2 + * // => 2 + * + * av_rescale_rnd(AV_NOPTS_VALUE, 1, 2, AV_ROUND_UP | AV_ROUND_PASS_MINMAX); + * // Rescaling AV_NOPTS_VALUE: + * // AV_NOPTS_VALUE == INT64_MIN + * // AV_NOPTS_VALUE is passed through + * // => AV_NOPTS_VALUE + * @endcode + *) + AV_ROUND_PASS_MINMAX = 8192 + ); + +(** + * Compute the greatest common divisor of two integer operands. + * + * @param a,b Operands + * @return GCD of a and b up to sign; if a >= 0 and b >= 0, return value is >= 0; + * if a == 0 and b == 0, returns 0. + *) +function av_gcd(a, b: cint64): cint64; + cdecl; external av__util; {av_const} + +(** + * Rescale a 64-bit integer with rounding to nearest. + * + * The operation is mathematically equivalent to `a * b / c`, but writing that + * directly can overflow. + * + * This function is equivalent to av_rescale_rnd() with #AV_ROUND_NEAR_INF. + * + * @see av_rescale_rnd(), av_rescale_q(), av_rescale_q_rnd() + *) +function av_rescale (a, b, c: cint64): cint64; + cdecl; external av__util; {av_const} + +(** + * Rescale a 64-bit integer with specified rounding. + * + * The operation is mathematically equivalent to `a * b / c`, but writing that + * directly can overflow, and does not support different rounding methods. + * + * @see av_rescale(), av_rescale_q(), av_rescale_q_rnd() + *) +function av_rescale_rnd (a, b, c: cint64; rnd: TAVRounding): cint64; + cdecl; external av__util; {av_const} + +(** + * Rescale a 64-bit integer by 2 rational numbers. + * + * The operation is mathematically equivalent to `a * bq / cq`. + * + * This function is equivalent to av_rescale_q_rnd() with #AV_ROUND_NEAR_INF. + * + * @see av_rescale(), av_rescale_rnd(), av_rescale_q_rnd() + *) +function av_rescale_q (a: cint64; bq, cq: TAVRational): cint64; + cdecl; external av__util; {av_const} + +(** + * Rescale a 64-bit integer by 2 rational numbers with specified rounding. + * + * The operation is mathematically equivalent to `a * bq / cq`. + * + * @see av_rescale(), av_rescale_rnd(), av_rescale_q() + *) +function av_rescale_q_rnd(a: cint64; bq, cq: TAVRational; + rnd: TAVRounding): cint64; + cdecl; external av__util; {av_const} + +(** + * Compare two timestamps each in its own time base. + * + * @return One of the following values: + * - -1 if `ts_a` is before `ts_b` + * - 1 if `ts_a` is after `ts_b` + * - 0 if they represent the same position + * + * @warning + * The result of the function is undefined if one of the timestamps is outside + * the `int64_t` range when represented in the other's timebase. + *) +function av_compare_ts(ts_a: cint64; tb_a: TAVRational; ts_b: cint64; tb_b: TAVRational): cint; + cdecl; external av__util; + +(** + * Compare the remainders of two integer operands divided by a common divisor. + * + * In other words, compare the least significant `log2(mod)` bits of integers + * `a` and `b`. + * + * @code{.c} + * av_compare_mod(0x11, 0x02, 0x10) < 0 // since 0x11 % 0x10 (0x1) < 0x02 % 0x10 (0x2) + * av_compare_mod(0x11, 0x02, 0x20) > 0 // since 0x11 % 0x20 (0x11) > 0x02 % 0x20 (0x02) + * @endcode + * + * @param a,b Operands + * @param mod Divisor; must be a power of 2 + * @return + * - a negative value if `a % mod < b % mod` + * - a positive value if `a % mod > b % mod` + * - zero if `a % mod == b % mod` + *) +function av_compare_mod(a, b, modVar: cuint64): cint64; + cdecl; external av__util; + +(** + * Rescale a timestamp while preserving known durations. + * + * This function is designed to be called per audio packet to scale the input + * timestamp to a different time base. Compared to a simple av_rescale_q() + * call, this function is robust against possible inconsistent frame durations. + * + * The `last` parameter is a state variable that must be preserved for all + * subsequent calls for the same stream. For the first call, `*last` should be + * initialized to #AV_NOPTS_VALUE. + * + * @param[in] in_tb Input time base + * @param[in] in_ts Input timestamp + * @param[in] fs_tb Duration time base; typically this is finer-grained + * (greater) than `in_tb` and `out_tb` + * @param[in] duration Duration till the next call to this function (i.e. + * duration of the current packet/frame) + * @param[in,out] last Pointer to a timestamp expressed in terms of + * `fs_tb`, acting as a state variable + * @param[in] out_tb Output timebase + * @return Timestamp expressed in terms of `out_tb` + * + * @note In the context of this function, "duration" is in term of samples, not + * seconds. + *) +function av_rescale_delta(in_tb: TAVRational; in_ts: cint64; fs_tb: TAVRational; duration: cint; last: Pcint64; out_tb: TAVRational): cint64; + cdecl; external av__util; + +(** + * Add a value to a timestamp. + * + * This function guarantees that when the same value is repeatly added that + * no accumulation of rounding errors occurs. + * + * @param ts Input timestamp + * @param ts_tb Input timestamp timebase + * @param inc value to add to ts + * @param inc_tb inc timebase + *) +function av_add_stable(ts_tb: TAVRational; ts: cint64; inc_tb: TAVRational; inc: cint64): cint64; + cdecl; external av__util; diff --git a/src/lib/ffmpeg-4.0/libavutil/mem.pas b/src/lib/ffmpeg-4.0/libavutil/mem.pas new file mode 100644 index 00000000..30a87899 --- /dev/null +++ b/src/lib/ffmpeg-4.0/libavutil/mem.pas @@ -0,0 +1,578 @@ +(* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of the Pascal port of ffmpeg. + * - Changes and updates by the UltraStar Deluxe Team + * + * Conversion of libavutil/mem.h + * avutil version 52.66.100 + * + *) + +(** + * @file + * error code definitions + *) + +(* Memory handling functions *) + +(** + * @defgroup lavu_mem_funcs Heap Management + * Functions responsible for allocating, freeing, and copying memory. + * + * All memory allocation functions have a built-in upper limit of `INT_MAX` + * bytes. This may be changed with av_max_alloc(), although exercise extreme + * caution when doing so. + * + * @{ + *) + +(** + * Allocate a memory block with alignment suitable for all memory accesses + * (including vectors if available on the CPU). + * + * @param size Size in bytes for the memory block to be allocated + * @return Pointer to the allocated block, or `NULL` if the block cannot + * be allocated + * @see av_mallocz() + * @see av_mallocz() + *) +function av_malloc(size: size_t): pointer; + cdecl; external av__util; {av_malloc_attrib av_alloc_size(1)} + +(** + * Allocate a memory block with alignment suitable for all memory accesses + * (including vectors if available on the CPU) and zero all the bytes of the + * block. + * + * @param size Size in bytes for the memory block to be allocated + * @return Pointer to the allocated block, or `NULL` if it cannot be allocated + * @see av_malloc() + *) +function av_mallocz(size: size_t): pointer; + cdecl; external av__util; {av_malloc_attrib av_alloc_size(1)} + +(** + * Allocate a memory block for an array with av_malloc(). + * + * The allocated memory will have size `size * nmemb` bytes. + * + * @param nmemb Number of element + * @param size Size of a single element + * @return Pointer to the allocated block, or `NULL` if the block cannot + * be allocated + * @see av_malloc() + *) +function av_malloc_array(nmemb: size_t; size: size_t): pointer; {av_alloc_size(1, 2)} + cdecl; external av__util; + +(** + * Allocate a memory block for an array with av_mallocz(). + * + * The allocated memory will have size `size * nmemb` bytes. + * + * @param nmemb Number of elements + * @param size Size of the single element + * @return Pointer to the allocated block, or `NULL` if the block cannot + * be allocated + * + * @see av_mallocz() + * @see av_malloc_array() + *) +function av_mallocz_array(nmemb: size_t; size: size_t): pointer; {av_alloc_size(1, 2)} + cdecl; external av__util; + +(** + * Allocate a block of nmemb * size bytes with alignment suitable for all + * memory accesses (including vectors if available on the CPU) and + * zero all the bytes of the block. + * The allocation will fail if nmemb * size is greater than or equal + * to INT_MAX. + * @param nmemb + * @param size + * @return Pointer to the allocated block, NULL if it cannot be allocated. + *) +function av_calloc(nmemb: size_t; size: size_t): pointer; + cdecl; external av__util; {av_malloc_attrib} + +(** + * Allocate, reallocate, or free a block of memory. + * + * If `ptr` is `NULL` and `size` > 0, allocate a new block. If `size` is + * zero, free the memory block pointed to by `ptr`. Otherwise, expand or + * shrink that block of memory according to `size`. + * + * @param ptr Pointer to a memory block already allocated with + * av_realloc() or `NULL` + * @param size Size in bytes of the memory block to be allocated or + * reallocated + * + * @return Pointer to a newly-reallocated block or `NULL` if the block + * cannot be reallocated or the function is used to free the memory block + * + * @warning Unlike av_malloc(), the returned pointer is not guaranteed to be + * correctly aligned. + * @see av_fast_realloc() + * @see av_reallocp() + *) +function av_realloc(ptr: pointer; size: size_t): pointer; + cdecl; external av__util; {av_alloc_size(2)} + +(** + * Allocate, reallocate, or free a block of memory through a pointer to a + * pointer. + * + * If `*ptr` is `NULL` and `size` > 0, allocate a new block. If `size` is + * zero, free the memory block pointed to by `*ptr`. Otherwise, expand or + * shrink that block of memory according to `size`. + * + * @param[in,out] ptr Pointer to a pointer to a memory block already allocated + * with av_realloc(), or a pointer to `NULL`. The pointer + * is updated on success, or freed on failure. + * @param[in] size Size in bytes for the memory block to be allocated or + * reallocated + * + * @return Zero on success, an AVERROR error code on failure + * + * @warning Unlike av_malloc(), the allocated memory is not guaranteed to be + * correctly aligned. + *) +function av_reallocp(ptr: pointer; elsize: size_t): cint; + cdecl; external av__util; + +(** + * Allocate, reallocate, or free a block of memory. + * + * This function does the same thing as av_realloc(), except: + * - It takes two size arguments and allocates `nelem * elsize` bytes, + * after checking the result of the multiplication for integer overflow. + * - It frees the input block in case of failure, thus avoiding the memory + * leak with the classic + * @code{.c} + * buf = realloc(buf); + * if (!buf) + * return -1; + * @endcode + * pattern. + *) +function av_realloc_f(ptr: pointer; nelem: size_t; elsize: size_t): pointer; + cdecl; external av__util; + +(** + * Allocate, reallocate, or free an array. + * + * If `ptr` is `NULL` and `nmemb` > 0, allocate a new block. If + * `nmemb` is zero, free the memory block pointed to by `ptr`. + * + * @param ptr Pointer to a memory block already allocated with + * av_realloc() or `NULL` + * @param nmemb Number of elements in the array + * @param size Size of the single element of the array + * + * @return Pointer to a newly-reallocated block or NULL if the block + * cannot be reallocated or the function is used to free the memory block + * + * @warning Unlike av_malloc(), the allocated memory is not guaranteed to be + * correctly aligned. + * @see av_reallocp_array() + *) +function av_realloc_array(ptr: pointer; nmemb, size: size_t): pointer; {av_alloc_size(2, 3)} + cdecl; external av__util; + +(** + * Allocate, reallocate, or free an array through a pointer to a pointer. + * + * If `*ptr` is `NULL` and `nmemb` > 0, allocate a new block. If `nmemb` is + * zero, free the memory block pointed to by `*ptr`. + * + * @param[in,out] ptr Pointer to a pointer to a memory block already + * allocated with av_realloc(), or a pointer to `NULL`. + * The pointer is updated on success, or freed on failure. + * @param[in] nmemb Number of elements + * @param[in] size Size of the single element + * + * @return Zero on success, an AVERROR error code on failure + * + * @warning Unlike av_malloc(), the allocated memory is not guaranteed to be + * correctly aligned. + *) +function av_reallocp_array(ptr: pointer; nmemb, size: size_t): cint; {av_alloc_size(2, 3)} + cdecl; external av__util; + +(** + * Reallocate the given buffer if it is not large enough, otherwise do nothing. + * + * If the given buffer is `NULL`, then a new uninitialized buffer is allocated. + * + * If the given buffer is not large enough, and reallocation fails, `NULL` is + * returned and `*size` is set to 0, but the original buffer is not changed or + * freed. + * + * A typical use pattern follows: + * + * @code{.c} + * uint8_t *buf = ...; + * uint8_t *new_buf = av_fast_realloc(buf, ¤t_size, size_needed); + * if (!new_buf) { + * // Allocation failed; clean up original buffer + * av_freep(&buf); + * return AVERROR(ENOMEM); + * } + * @endcode + * + * @param[in,out] ptr Already allocated buffer, or `NULL` + * @param[in,out] size Pointer to current size of buffer `ptr`. `*size` is + * changed to `min_size` in case of success or 0 in + * case of failure + * @param[in] min_size New size of buffer `ptr` + * @return `ptr` if the buffer is large enough, a pointer to newly reallocated + * buffer if the buffer was not large enough, or `NULL` in case of + * error + * @see av_realloc() + * @see av_fast_malloc() + *) +function av_fast_realloc(ptr: pointer; size: Pcuint; min_size: size_t): pointer; + cdecl; external av__util; + +(** + * Allocate a buffer, reusing the given one if large enough. + * + * Contrary to av_fast_realloc(), the current buffer contents might not be + * preserved and on error the old buffer is freed, thus no special handling to + * avoid memleaks is necessary. + * + * `*ptr` is allowed to be `NULL`, in which case allocation always happens if + * `size_needed` is greater than 0. + * + * @code{.c} + * uint8_t *buf = ...; + * av_fast_malloc(&buf, ¤t_size, size_needed); + * if (!buf) { + * // Allocation failed; buf already freed + * return AVERROR(ENOMEM); + * } + * @endcode + * + * @param[in,out] ptr Pointer to pointer to an already allocated buffer. + * `*ptr` will be overwritten with pointer to new + * buffer on success or `NULL` on failure + * @param[in,out] size Pointer to current size of buffer `*ptr`. `*size` is + * changed to `min_size` in case of success or 0 in + * case of failure + * @param[in] min_size New size of buffer `*ptr` + * @see av_realloc() + * @see av_fast_mallocz() + *) +procedure av_fast_malloc(ptr: pointer; size: Pcuint; min_size: size_t); + cdecl; external av__util; + +(** + * Allocate and clear a buffer, reusing the given one if large enough. + * + * Like av_fast_malloc(), but all newly allocated space is initially cleared. + * Reused buffer is not cleared. + * + * `*ptr` is allowed to be `NULL`, in which case allocation always happens if + * `size_needed` is greater than 0. + * + * @param[in,out] ptr Pointer to pointer to an already allocated buffer. + * `*ptr` will be overwritten with pointer to new + * buffer on success or `NULL` on failure + * @param[in,out] size Pointer to current size of buffer `*ptr`. `*size` is + * changed to `min_size` in case of success or 0 in + * case of failure + * @param[in] min_size New size of buffer `*ptr` + * @see av_fast_malloc() + *) +procedure av_fast_mallocz(ptr: pointer; size: Pcuint; min_size: size_t); + cdecl; external av__util; + +(** + * Free a memory block which has been allocated with a function of av_malloc() + * or av_realloc() family. + * + * @param ptr Pointer to the memory block which should be freed. + * + * @note `ptr = NULL` is explicitly allowed. + * @note It is recommended that you use av_freep() instead, to prevent leaving + * behind dangling pointers. + * @see av_freep() + *) +procedure av_free(ptr: pointer); + cdecl; external av__util; + +(** + * Free a memory block which has been allocated with a function of av_malloc() + * or av_realloc() family, and set the pointer pointing to it to `NULL`. + * + * @code{.c} + * uint8_t *buf = av_malloc(16); + * av_free(buf); + * // buf now contains a dangling pointer to freed memory, and accidental + * // dereference of buf will result in a use-after-free, which may be a + * // security risk. + * + * uint8_t *buf = av_malloc(16); + * av_freep(&buf); + * // buf is now NULL, and accidental dereference will only result in a + * // NULL-pointer dereference. + * @endcode + * + * @param ptr Pointer to the pointer to the memory block which should be freed + * @note `*ptr = NULL` is safe and leads to no action. + * @see av_free() + *) +procedure av_freep (ptr: pointer); + cdecl; external av__util; + +(** + * Duplicate a string. + * + * @param s String to be duplicated + * @return Pointer to a newly-allocated string containing a + * copy of `s` or `NULL` if the string cannot be allocated + * @see av_strndup() + *) +function av_strdup({const} s: PAnsiChar): PAnsiChar; + cdecl; external av__util; {av_malloc_attrib} + +(** + * Duplicate a substring of a string. + * + * @param s String to be duplicated + * @param len Maximum length of the resulting string (not counting the + * terminating byte) + * @return Pointer to a newly-allocated string containing a + * substring of `s` or `NULL` if the string cannot be allocated + *) +function av_strndup({const} s: PAnsiChar; len: size_t): PAnsiChar; + cdecl; external av__util; {av_malloc_attrib} + +(** + * Duplicate a buffer with av_malloc(). + * + * @param p Buffer to be duplicated + * @param size Size in bytes of the buffer copied + * @return Pointer to a newly allocated buffer containing a + * copy of `p` or `NULL` if the buffer cannot be allocated + *) +function av_memdup({const} p: pointer; size: size_t): pointer; + cdecl; external av__util; + +(** + * Overlapping memcpy() implementation. + * + * @param dst Destination buffer + * @param back Number of bytes back to start copying (i.e. the initial size of + * the overlapping window); must be > 0 + * @param cnt Number of bytes to copy; must be >= 0 + * + * @note `cnt > back` is valid, this will copy the bytes we just copied, + * thus creating a repeating pattern with a period length of `back`. + *) +procedure av_memcpy_backptr(dst: Pcuint8; back: cint; cnt: cint); + cdecl; external av__util; + +(** + * @} + *) + +(** + * @defgroup lavu_mem_dynarray Dynamic Array + * + * Utilities to make an array grow when needed. + * + * Sometimes, the programmer would want to have an array that can grow when + * needed. The libavutil dynamic array utilities fill that need. + * + * libavutil supports two systems of appending elements onto a dynamically + * allocated array, the first one storing the pointer to the value in the + * array, and the second storing the value directly. In both systems, the + * caller is responsible for maintaining a variable containing the length of + * the array, as well as freeing of the array after use. + * + * The first system stores pointers to values in a block of dynamically + * allocated memory. Since only pointers are stored, the function does not need + * to know the size of the type. Both av_dynarray_add() and + * av_dynarray_add_nofree() implement this system. + * + * @code + * type **array = NULL; //< an array of pointers to values + * int nb = 0; //< a variable to keep track of the length of the array + * + * type to_be_added = ...; + * type to_be_added2 = ...; + * + * av_dynarray_add(&array, &nb, &to_be_added); + * if (nb == 0) + * return AVERROR(ENOMEM); + * + * av_dynarray_add(&array, &nb, &to_be_added2); + * if (nb == 0) + * return AVERROR(ENOMEM); + * + * // Now: + * // nb == 2 + * // &to_be_added == array[0] + * // &to_be_added2 == array[1] + * + * av_freep(&array); + * @endcode + * + * The second system stores the value directly in a block of memory. As a + * result, the function has to know the size of the type. av_dynarray2_add() + * implements this mechanism. + * + * @code + * type *array = NULL; //< an array of values + * int nb = 0; //< a variable to keep track of the length of the array + * + * type to_be_added = ...; + * type to_be_added2 = ...; + * + * type *addr = av_dynarray2_add((void ** )&array, &nb, sizeof(*array), NULL); + * if (!addr) + * return AVERROR(ENOMEM); + * memcpy(addr, &to_be_added, sizeof(to_be_added)); + * + * // Shortcut of the above. + * type *addr = av_dynarray2_add((void ** )&array, &nb, sizeof(*array), + * (const void * )&to_be_added2); + * if (!addr) + * return AVERROR(ENOMEM); + * + * // Now: + * // nb == 2 + * // to_be_added == array[0] + * // to_be_added2 == array[1] + * + * av_freep(&array); + * @endcode + * + * @{ + *) + + +(** + * Add the pointer to an element to a dynamic array. + * + * The array to grow is supposed to be an array of pointers to + * structures, and the element to add must be a pointer to an already + * allocated structure. + * + * The array is reallocated when its size reaches powers of 2. + * Therefore, the amortized cost of adding an element is constant. + * + * In case of success, the pointer to the array is updated in order to + * point to the new grown array, and the number pointed to by `nb_ptr` + * is incremented. + * In case of failure, the array is freed, `*tab_ptr` is set to `NULL` and + * `*nb_ptr` is set to 0. + * + * @param[in,out] tab_ptr Pointer to the array to grow + * @param[in,out] nb_ptr Pointer to the number of elements in the array + * @param[in] elem Element to add + * @see av_dynarray_add_nofree(), av_dynarray2_add() + *) +procedure av_dynarray_add(tab_ptr: pointer; nb_ptr: Pcint; elem: pointer); + cdecl; external av__util; + +(** + * Add an element to a dynamic array. + * + * Function has the same functionality as av_dynarray_add(), + * but it doesn't free memory on fails. It returns error code + * instead and leave current buffer untouched. + * + * @return >=0 on success, negative otherwise + * @see av_dynarray_add(), av_dynarray2_add() + *) +function av_dynarray_add_nofree(tab_ptr: pointer; nb_ptr: Pcint; elem: pointer): cint; + cdecl; external av__util; + +(** + * Add an element of size `elem_size` to a dynamic array. + * + * The array is reallocated when its number of elements reaches powers of 2. + * Therefore, the amortized cost of adding an element is constant. + * + * In case of success, the pointer to the array is updated in order to + * point to the new grown array, and the number pointed to by `nb_ptr` + * is incremented. + * In case of failure, the array is freed, `*tab_ptr` is set to `NULL` and + * `*nb_ptr` is set to 0. + * + * @param[in,out] tab_ptr Pointer to the array to grow + * @param[in,out] nb_ptr Pointer to the number of elements in the array + * @param[in] elem_size Size in bytes of an element in the array + * @param[in] elem_data Pointer to the data of the element to add. If + * `NULL`, the space of the newly added element is + * allocated but left uninitialized. + * + * @return Pointer to the data of the element to copy in the newly allocated + * space + * @see av_dynarray_add(), av_dynarray_add_nofree() + *) +function av_dynarray2_add(tab_ptr: Pointer; nb_ptr: Pcint; elem_size: size_t; + {const} elem_data: Pcuint8): pointer; + cdecl; external av__util; + +(** + * @} + *) + +(** + * @defgroup lavu_mem_misc Miscellaneous Functions + * + * Other functions related to memory allocation. + * + * @{ + *) + +(** + * Multiply two `size_t` values checking for overflow. + * + * @param[in] a,b Operands of multiplication + * @param[out] r Pointer to the result of the operation + * @return 0 on success, AVERROR(EINVAL) on overflow + *) +//static inline int av_size_mult(size_t a, size_t b, size_t *r) +{ + size_t t = a * b; + /* Hack inspired from glibc: don't try the division if nelem and elsize + * are both less than sqrt(SIZE_MAX). */ + if ((a | b) >= ((size_t)1 << (sizeof(size_t) * 4)) && a && t / a != b) + return AVERROR(EINVAL); + *r = t; + return 0; +} + +(** + * Set the maximum size that may be allocated in one block. + * + * The value specified with this function is effective for all libavutil's @ref + * lavu_mem_funcs "heap management functions." + * + * By default, the max value is defined as `INT_MAX`. + * + * @param max Value to be set as the new maximum size + * + * @warning Exercise extreme caution when using this function. Don't touch + * this if you do not understand the full consequence of doing so. + *) +procedure av_max_alloc(max: size_t); + cdecl; external av__util; diff --git a/src/lib/ffmpeg-4.0/libavutil/opt.pas b/src/lib/ffmpeg-4.0/libavutil/opt.pas new file mode 100644 index 00000000..87ec68aa --- /dev/null +++ b/src/lib/ffmpeg-4.0/libavutil/opt.pas @@ -0,0 +1,507 @@ +(* + * AVOptions + * copyright (c) 2005 Michael Niedermayer + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of Pascal porting of ffmpeg. + * - Originally by Victor Zinetz for Delphi and Free Pascal on Windows. + * - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT + * in the source codes. + * - Changes and updates by the UltraStar Deluxe Team + * + * Conversion of libavutil/opt.h + * avutil version 54.7.100 + * + *) + +(** + * Show the obj options. + * + * @param req_flags requested flags for the options to show. Show only the + * options for which it is opt->flags & req_flags. + * @param rej_flags rejected flags for the options to show. Show only the + * options for which it is !(opt->flags & req_flags). + * @param av_log_obj log context to use for showing the options + *) +function av_opt_show2(obj: pointer; av_log_obj: pointer; req_flags: cint; rej_flags: cint): cint; + cdecl; external av__util; + +(** + * Set the values of all AVOption fields to their default values. + * + * @param s an AVOption-enabled struct (its first member must be a pointer to AVClass) + *) +procedure av_opt_set_defaults(s: pointer); + cdecl; external av__util; + +(** + * Set the values of all AVOption fields to their default values. Only these + * AVOption fields for which (opt->flags & mask) == flags will have their + * default applied to s. + * + * @param s an AVOption-enabled struct (its first member must be a pointer to AVClass) + * @param mask combination of AV_OPT_FLAG_* + * @param flags combination of AV_OPT_FLAG_* + *) +procedure av_opt_set_defaults2(s: Pointer; mask: cint; flags: cint); + cdecl; external av__util; deprecated; + +(** + * Parse the key/value pairs list in opts. For each key/value pair + * found, stores the value in the field in ctx that is named like the + * key. ctx must be an AVClass context, storing is done using + * AVOptions. + * + * @param opts options string to parse, may be NULL + * @param key_val_sep a 0-terminated list of characters used to + * separate key from value + * @param pairs_sep a 0-terminated list of characters used to separate + * two pairs from each other + * @return the number of successfully set key/value pairs, or a negative + * value corresponding to an AVERROR code in case of error: + * AVERROR(EINVAL) if opts cannot be parsed, + * the error code issued by av_set_string3() if a key/value pair + * cannot be set +*) +function av_set_options_string(ctx: pointer; opts: {const} PAnsiChar; + key_val_sep: {const} PAnsiChar; pairs_sep: {const} PAnsiChar): cint; + cdecl; external av__util; + +(** + * Parse the key-value pairs list in opts. For each key=value pair found, + * set the value of the corresponding option in ctx. + * + * @param ctx the AVClass object to set options on + * @param opts the options string, key-value pairs separated by a + * delimiter + * @param shorthand a NULL-terminated array of options names for shorthand + * notation: if the first field in opts has no key part, + * the key is taken from the first element of shorthand; + * then again for the second, etc., until either opts is + * finished, shorthand is finished or a named option is + * found; after that, all options must be named + * @param key_val_sep a 0-terminated list of characters used to separate + * key from value, for example '=' + * @param pairs_sep a 0-terminated list of characters used to separate + * two pairs from each other, for example ':' or ',' + * @return the number of successfully set key=value pairs, or a negative + * value corresponding to an AVERROR code in case of error: + * AVERROR(EINVAL) if opts cannot be parsed, + * the error code issued by av_set_string3() if a key/value pair + * cannot be set + * + * Options names must use only the following characters: a-z A-Z 0-9 - . / _ + * Separators must use characters distinct from option names and from each + * other. + *) +function av_opt_set_from_string(ctx: pointer; opts: {const} PAnsiChar; + shorthand: {const} PAnsiChar; + key_val_sep: {const} PAnsiChar; pairs_sep: {const} PAnsiChar): cint; + cdecl; external av__util; + +(** + * Free all allocated objects in obj. + *) +procedure av_opt_free(obj: pointer); + cdecl; external av__util; + +(** + * Check whether a particular flag is set in a flags field. + * + * @param field_name the name of the flag field option + * @param flag_name the name of the flag to check + * @return non-zero if the flag is set, zero if the flag isn't set, + * isn't of the right type, or the flags field doesn't exist. + *) +function av_opt_flag_is_set(obj: pointer; field_name: {const} PAnsiChar; flag_name: {const} PAnsiChar): cint; + cdecl; external av__util; + +(** + * Set all the options from a given dictionary on an object. + * + * @param obj a struct whose first element is a pointer to AVClass + * @param options options to process. This dictionary will be freed and replaced + * by a new one containing all options not found in obj. + * Of course this new dictionary needs to be freed by caller + * with av_dict_free(). + * + * @return 0 on success, a negative AVERROR if some option was found in obj, + * but could not be set. + * + * @see av_dict_copy() + *) +function av_opt_set_dict(obj: pointer; var options: PAVDictionary): cint; + cdecl; external av__util; + +(** + * Set all the options from a given dictionary on an object. + * + * @param obj a struct whose first element is a pointer to AVClass + * @param options options to process. This dictionary will be freed and replaced + * by a new one containing all options not found in obj. + * Of course this new dictionary needs to be freed by caller + * with av_dict_free(). + * @param search_flags A combination of AV_OPT_SEARCH_*. + * + * @return 0 on success, a negative AVERROR if some option was found in obj, + * but could not be set. + * + * @see av_dict_copy() + *) +function av_opt_set_dict2(obj: pointer; var options: PAVDictionary; search_flags: cint): cint; + cdecl; external av__util; + +(** + * Extract a key-value pair from the beginning of a string. + * + * @param ropts pointer to the options string, will be updated to + * point to the rest of the string (one of the pairs_sep + * or the final NUL) + * @param key_val_sep a 0-terminated list of characters used to separate + * key from value, for example '=' + * @param pairs_sep a 0-terminated list of characters used to separate + * two pairs from each other, for example ':' or ',' + * @param flags flags; see the AV_OPT_FLAG_* values below + * @param rkey parsed key; must be freed using av_free() + * @param rval parsed value; must be freed using av_free() + * + * @return >=0 for success, or a negative value corresponding to an + * AVERROR code in case of error; in particular: + * AVERROR(EINVAL) if no key is present + * + *) +function av_opt_get_key_value(ropts: {const} PPAnsiChar; + key_val_sep: {const} PAnsiChar; pairs_sep: {const} PAnsiChar; + flags: byte; + rkey, rval: PPAnsiChar): cint; + cdecl; external av__util; + +const + (** + * Accept to parse a value without a key; the key will then be returned + * as NULL. + *) + AV_OPT_FLAG_IMPLICIT_KEY = 1; + +(** + * @defgroup opt_eval_funcs Evaluating option strings + * @ + * This group of functions can be used to evaluate option strings + * and get numbers out of them. They do the same thing as av_opt_set(), + * except the result is written into the caller-supplied pointer. + * + * @param obj a struct whose first element is a pointer to AVClass. + * @param o an option for which the string is to be evaluated. + * @param val string to be evaluated. + * @param *_out value of the string will be written here. + * + * @return 0 on success, a negative number on failure. + *) +function av_opt_eval_flags (obj: pointer; o: {const} PAVOption; val: {const} PAnsiChar; flags_out: Pcint): cint; + cdecl; external av__util; +function av_opt_eval_int (obj: pointer; o: {const} PAVOption; val: {const} PAnsiChar; int_out: Pcint): cint; + cdecl; external av__util; +function av_opt_eval_int64 (obj: pointer; o: {const} PAVOption; val: {const} PAnsiChar; int64_out: Pcint64): cint; + cdecl; external av__util; +function av_opt_eval_float (obj: pointer; o: {const} PAVOption; val: {const} PAnsiChar; float_out: Pcfloat): cint; + cdecl; external av__util; +function av_opt_eval_double(obj: pointer; o: {const} PAVOption; val: {const} PAnsiChar; double_out: Pcdouble): cint; + cdecl; external av__util; +function av_opt_eval_q (obj: pointer; o: {const} PAVOption; val: {const} PAnsiChar; q_out: PAVRational): cint; + cdecl; external av__util; +(** + * @ + *) + +const + AV_OPT_SEARCH_CHILDREN = (1 << 0); (**< Search in possible children of the + given object first.*) +(** + * The obj passed to av_opt_find() is fake -- only a double pointer to AVClass + * instead of a required pointer to a struct containing AVClass. This is + * useful for searching for options without needing to allocate the corresponding + * object. + *) + AV_OPT_SEARCH_FAKE_OBJ = (1 << 1); + +(** + * In av_opt_get, return NULL if the option has a pointer type and is set to NULL, + * rather than returning an empty string. + *) + AV_OPT_ALLOW_NULL = (1 << 2); +(** + * Allows av_opt_query_ranges and av_opt_query_ranges_default to return more than + * one component for certain option types. + * @see AVOptionRanges for details. + *) + AV_OPT_MULTI_COMPONENT_RANGE = (1 << 12); + +(** + * Look for an option in an object. Consider only options which + * have all the specified flags set. + * + * @param[in] obj A pointer to a struct whose first element is a + * pointer to an AVClass. + * @param[in] name The name of the option to look for. + * @param[in] unit When searching for named constants, name of the unit + * it belongs to. + * @param opt_flags Find only options with all the specified flags set (AV_OPT_FLAG). + * @param search_flags A combination of AV_OPT_SEARCH_*. + * + * @return A pointer to the option found, or NULL if no option + * was found. + * + * @note Options found with AV_OPT_SEARCH_CHILDREN flag may not be settable + * directly with av_set_string3(). Use special calls which take an options + * AVDictionary (e.g. avformat_open_input()) to set options found with this + * flag. + *) +function av_opt_find(obj: pointer; name: {const} PAnsiChar; unit_: {const} PAnsiChar; + opt_flags: cint; search_flags: cint): PAVOption; + cdecl; external av__util; + +(** + * Look for an option in an object. Consider only options which + * have all the specified flags set. + * + * @param[in] obj A pointer to a struct whose first element is a + * pointer to an AVClass. + * Alternatively a double pointer to an AVClass, if + * AV_OPT_SEARCH_FAKE_OBJ search flag is set. + * @param[in] name The name of the option to look for. + * @param[in] unit When searching for named constants, name of the unit + * it belongs to. + * @param opt_flags Find only options with all the specified flags set (AV_OPT_FLAG). + * @param search_flags A combination of AV_OPT_SEARCH_*. + * @param[out] target_obj if non-NULL, an object to which the option belongs will be + * written here. It may be different from obj if AV_OPT_SEARCH_CHILDREN is present + * in search_flags. This parameter is ignored if search_flags contain + * AV_OPT_SEARCH_FAKE_OBJ. + * + * @return A pointer to the option found, or NULL if no option + * was found. + *) +function av_opt_find2(obj: pointer; name: {const} PAnsiChar; unit_: {const} PAnsiChar; + opt_flags: cint; search_flags: cint; out target_obj: pointer): {const} PAVOption; + cdecl; external av__util; + +(** + * Iterate over all AVOptions belonging to obj. + * + * @param obj an AVOptions-enabled struct or a double pointer to an + * AVClass describing it. + * @param prev result of the previous call to av_opt_next() on this object + * or NULL + * @return next AVOption or NULL + *) +function av_opt_next(obj: {const} pointer; prev: {const} PAVOption): {const} PAVOption; + cdecl; external av__util; + +(** + * Iterate over AVOptions-enabled children of obj. + * + * @param prev result of a previous call to this function or NULL + * @return next AVOptions-enabled child or NULL + *) +function av_opt_child_next(obj: pointer; prev: pointer): pointer; + cdecl; external av__util; + +(** + * Iterate over potential AVOptions-enabled children of parent. + * + * @param prev result of a previous call to this function or NULL + * @return AVClass corresponding to next potential child or NULL + *) +function av_opt_child_class_next(parent: {const} PAVClass; prev: {const} PAVClass): {const} PAVClass; + cdecl; external av__util; + +(** + * @defgroup opt_set_funcs Option setting functions + * @ + * Those functions set the field of obj with the given name to value. + * + * @param[in] obj A struct whose first element is a pointer to an AVClass. + * @param[in] name the name of the field to set + * @param[in] val The value to set. In case of av_opt_set() if the field is not + * of a string type, then the given string is parsed. + * SI postfixes and some named scalars are supported. + * If the field is of a numeric type, it has to be a numeric or named + * scalar. Behavior with more than one scalar and +- infix operators + * is undefined. + * If the field is of a flags type, it has to be a sequence of numeric + * scalars or named flags separated by '+' or '-'. Prefixing a flag + * with '+' causes it to be set without affecting the other flags; + * similarly, '-' unsets a flag. + * @param search_flags flags passed to av_opt_find2. I.e. if AV_OPT_SEARCH_CHILDREN + * is passed here, then the option may be set on a child of obj. + * + * @return 0 if the value has been set, or an AVERROR code in case of + * error: + * AVERROR_OPTION_NOT_FOUND if no matching option exists + * AVERROR(ERANGE) if the value is out of range + * AVERROR(EINVAL) if the value is not valid + *) +function av_opt_set (obj: pointer; name: {const} PAnsiChar; val: {const} PAnsiChar; search_flags: cint): cint; + cdecl; external av__util; +function av_opt_set_int (obj: pointer; name: {const} PAnsiChar; val: cint64; search_flags: cint): cint; + cdecl; external av__util; +function av_opt_set_double (obj: pointer; name: {const} PAnsiChar; val: cdouble; search_flags: cint): cint; + cdecl; external av__util; +function av_opt_set_q (obj: pointer; name: {const} PAnsiChar; val: TAVRational; search_flags: cint): cint; + cdecl; external av__util; +function av_opt_set_bin (obj: pointer; name: {const} PAnsiChar; val: {const} cuint8; search_flags: cint): cint; + cdecl; external av__util; +function av_opt_set_image_size(obj: pointer; name: {const} PAnsiChar; w, h, search_flags: cint): cint; + cdecl; external av__util; +function av_opt_set_pixel_fmt (obj: pointer; name: {const} PAnsiChar; fmt: TAVPixelFormat; search_flags: cint): cint; + cdecl; external av__util; +function av_opt_set_sample_fmt(obj: pointer; name: {const} PAnsiChar; fmt: TAVSampleFormat; search_flags: cint): cint; + cdecl; external av__util; +function av_opt_set_video_rate(obj: pointer; name: {const} PAnsiChar; val: TAVRational; search_flags: cint): cint; + cdecl; external av__util; +function av_opt_set_channel_layout(obj: pointer; name: {const} PAnsiChar; ch_layout: cint64; search_flags: cint): cint; + cdecl; external av__util; + +(** + * @note Any old dictionary present is discarded and replaced with a copy of the new one. The + * caller still owns val is and responsible for freeing it. + *) +function av_opt_set_dict_val(obj: pointer; name: {const} PAnsiChar; val: {const} PAVDictionary; search_flags: cint): cint; + cdecl; external av__util; + +(** + * Set a binary option to an integer list. + * + * @param obj AVClass object to set options on + * @param name name of the binary option + * @param val pointer to an integer list (must have the correct type with + * regard to the contents of the list) + * @param term list terminator (usually 0 or -1) + * @param flags search flags + *) +{to be translated +#define av_opt_set_int_list(obj, name, val, term, flags) \ + (av_int_list_length(val, term) > INT_MAX / sizeof(*(val)) ? \ + AVERROR(EINVAL) : \ + av_opt_set_bin(obj, name, (const uint8_t *)(val), \ + av_int_list_length(val, term) * sizeof(*(val)), flags)) +} +(** + * @ + *) + +(** + * @defgroup opt_get_funcs Option getting functions + * @ + * Those functions get a value of the option with the given name from an object. + * + * @param[in] obj a struct whose first element is a pointer to an AVClass. + * @param[in] name name of the option to get. + * @param[in] search_flags flags passed to av_opt_find2. I.e. if AV_OPT_SEARCH_CHILDREN + * is passed here, then the option may be found in a child of obj. + * @param[out] out_val value of the option will be written here + * @return >=0 on success, a negative error code otherwise + *) +(** + * @note the returned string will be av_malloc()ed and must be av_free()ed by the caller + * + * @note if AV_OPT_ALLOW_NULL is set in search_flags in av_opt_get, and the option has + * AV_OPT_TYPE_STRING or AV_OPT_TYPE_BINARY and is set to NULL, *out_val will be set + * to NULL instead of an allocated empty string. + *) +function av_opt_get (obj: pointer; name: {const} PAnsiChar; search_flags: cint; out out_val: Pcuint8): cint; + cdecl; external av__util; +function av_opt_get_int (obj: pointer; name: {const} PAnsiChar; search_flags: cint; out_val: Pcint64): cint; + cdecl; external av__util; +function av_opt_get_double (obj: pointer; name: {const} PAnsiChar; search_flags: cint; out_val: Pcdouble): cint; + cdecl; external av__util; +function av_opt_get_q (obj: pointer; name: {const} PAnsiChar; search_flags: cint; out_val: PAVRational): cint; + cdecl; external av__util; +function av_opt_get_image_size(obj: pointer; name: {const} PAnsiChar; search_flags: cint; w_out, h_out: Pcint): cint; + cdecl; external av__util; +function av_opt_get_pixel_fmt (obj: pointer; name: {const} PAnsiChar; search_flags: cint; out_fmt: PAVPixelFormat): cint; + cdecl; external av__util; +function av_opt_get_sample_fmt(obj: pointer; name: {const} PAnsiChar; search_flags: cint; out_fmt: PAVPixelFormat): cint; + cdecl; external av__util; +function av_opt_get_video_rate(obj: pointer; name: {const} PAnsiChar; search_flags: cint; out_val: PAVRational): cint; + cdecl; external av__util; +function av_opt_get_channel_layout(obj: pointer; name: {const} PAnsiChar; search_flags: cint; ch_layout: Pcint64): cint; + cdecl; external av__util; +(** + * @param[out] out_val The returned dictionary is a copy of the actual value and must + * be freed with av_dict_free() by the caller + *) +function av_opt_get_dict_val (obj: pointer; name: {const} PAnsiChar; search_flags: cint; out out_val: PAVDictionary): cint; + cdecl; external av__util; +(** + * @ + *) +(** + * Gets a pointer to the requested field in a struct. + * This function allows accessing a struct even when its fields are moved or + * renamed since the application making the access has been compiled, + * + * @returns a pointer to the field, it can be cast to the correct type and read + * or written to. + *) +function av_opt_ptr(avclass: {const} PAVClass; obj: pointer; name: {const} PAnsiChar): pointer; + cdecl; external av__util; + +(** + * Free an AVOptionRanges struct and set it to NULL. + *) +procedure av_opt_freep_ranges(ranges: PPAVOptionRanges); + cdecl; external av__util; + +(** + * Get a list of allowed ranges for the given option. + * + * The returned list may depend on other fields in obj like for example profile. + * + * @param flags is a bitmask of flags, undefined flags should not be set and should be ignored + * AV_OPT_SEARCH_FAKE_OBJ indicates that the obj is a double pointer to a AVClass instead of a full instance + * AV_OPT_MULTI_COMPONENT_RANGE indicates that function may return more than one component, @see AVOptionRanges + * + * The result must be freed with av_opt_freep_ranges. + * + * @return number of compontents returned on success, a negative errro code otherwise + *) +function av_opt_query_ranges(P: PPAVOptionRanges; obj: pointer; key: {const} PAnsiChar; flags: cint): cint; + cdecl; external av__util; + +function av_opt_copy(dest: pointer;src: {const }pointer): cint; + cdecl; external av__util; + +(** + * Get a default list of allowed ranges for the given option. + * + * This list is constructed without using the AVClass.query_ranges() callback + * and can be used as fallback from within the callback. + * + * @param flags is a bitmask of flags, undefined flags should not be set and should be ignored + * AV_OPT_SEARCH_FAKE_OBJ indicates that the obj is a double pointer to a AVClass instead of a full instance + * AV_OPT_MULTI_COMPONENT_RANGE indicates that function may return more than one component, @see AVOptionRanges + * + * The result must be freed with av_opt_free_ranges. + * + * @return number of compontents returned on success, a negative errro code otherwise + *) +function av_opt_query_ranges_default(P: PPAVOptionRanges; obj: pointer; key: {const} PAnsiChar; flags: cint): cint; + cdecl; external av__util; + +(** + * @ + *) diff --git a/src/lib/ffmpeg-4.0/libavutil/pixfmt.pas b/src/lib/ffmpeg-4.0/libavutil/pixfmt.pas new file mode 100644 index 00000000..a8cdad64 --- /dev/null +++ b/src/lib/ffmpeg-4.0/libavutil/pixfmt.pas @@ -0,0 +1,599 @@ +(* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of the Pascal port of ffmpeg. + * - Changes and updates by the UltraStar Deluxe Team + * + * Conversion of libavutil/pixfmt.h + * avutil version 54.7.100 + * + *) + +(** + * @file + * Pixel format + *) + +const + AVPALETTE_SIZE = 1024; + AVPALETTE_COUNT = 256; + +type +(** + * Pixel format. Notes: + * + * @note + * AV_PIX_FMT_RGB32 is handled in an endian-specific manner. An RGBA + * color is put together as: + * (A << 24) | (R << 16) | (G << 8) | B + * This is stored as BGRA on little-endian CPU architectures and ARGB on + * big-endian CPUs. + * + * @par + * When the pixel format is palettized RGB32 (AV_PIX_FMT_PAL8), the palettized + * image data is stored in AVFrame.data[0]. The palette is transported in + * AVFrame.data[1], is 1024 bytes long (256 4-byte entries) and is + * formatted the same as in AV_PIX_FMT_RGB32 described above (i.e., it is + * also endian-specific). Note also that the individual RGB32 palette + * components stored in AVFrame.data[1] should be in the range 0..255. + * This is important as many custom PAL8 video codecs that were designed + * to run on the IBM VGA graphics adapter use 6-bit palette components. + * + * @par + * For all the 8 bits per pixel formats, an RGB32 palette is in data[1] like + * for pal8. This palette is filled in automatically by the function + * allocating the picture. + *) + + PAVPixelFormat = ^TAVPixelFormat; + TAVPixelFormat = ( + AV_PIX_FMT_NONE = -1, + AV_PIX_FMT_YUV420P, ///< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples) + AV_PIX_FMT_YUYV422, ///< packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr + AV_PIX_FMT_RGB24, ///< packed RGB 8:8:8, 24bpp, RGBRGB... + AV_PIX_FMT_BGR24, ///< packed RGB 8:8:8, 24bpp, BGRBGR... + AV_PIX_FMT_YUV422P, ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples) + AV_PIX_FMT_YUV444P, ///< planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples) + AV_PIX_FMT_YUV410P, ///< planar YUV 4:1:0, 9bpp, (1 Cr & Cb sample per 4x4 Y samples) + AV_PIX_FMT_YUV411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) + AV_PIX_FMT_GRAY8, ///< Y , 8bpp + AV_PIX_FMT_MONOWHITE, ///< Y , 1bpp, 0 is white, 1 is black, in each byte pixels are ordered from the msb to the lsb + AV_PIX_FMT_MONOBLACK, ///< Y , 1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb + AV_PIX_FMT_PAL8, ///< 8 bits with AV_PIX_FMT_RGB32 palette + AV_PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting color_range + AV_PIX_FMT_YUVJ422P, ///< planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV422P and setting color_range + AV_PIX_FMT_YUVJ444P, ///< planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting color_range + AV_PIX_FMT_UYVY422, ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1 + AV_PIX_FMT_UYYVYY411, ///< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3 + AV_PIX_FMT_BGR8, ///< packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb) + AV_PIX_FMT_BGR4, ///< packed RGB 1:2:1 bitstream, 4bpp, (msb)1B 2G 1R(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits + AV_PIX_FMT_BGR4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb) + AV_PIX_FMT_RGB8, ///< packed RGB 3:3:2, 8bpp, (msb)2R 3G 3B(lsb) + AV_PIX_FMT_RGB4, ///< packed RGB 1:2:1 bitstream, 4bpp, (msb)1R 2G 1B(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits + AV_PIX_FMT_RGB4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1R 2G 1B(lsb) + AV_PIX_FMT_NV12, ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V) + AV_PIX_FMT_NV21, ///< as above, but U and V bytes are swapped + + AV_PIX_FMT_ARGB, ///< packed ARGB 8:8:8:8, 32bpp, ARGBARGB... + AV_PIX_FMT_RGBA, ///< packed RGBA 8:8:8:8, 32bpp, RGBARGBA... + AV_PIX_FMT_ABGR, ///< packed ABGR 8:8:8:8, 32bpp, ABGRABGR... + AV_PIX_FMT_BGRA, ///< packed BGRA 8:8:8:8, 32bpp, BGRABGRA... + + AV_PIX_FMT_GRAY16BE, ///< Y , 16bpp, big-endian + AV_PIX_FMT_GRAY16LE, ///< Y , 16bpp, little-endian + AV_PIX_FMT_YUV440P, ///< planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples) + AV_PIX_FMT_YUVJ440P, ///< planar YUV 4:4:0 full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV440P and setting color_range + AV_PIX_FMT_YUVA420P, ///< planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples) + AV_PIX_FMT_RGB48BE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as big-endian + AV_PIX_FMT_RGB48LE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as little-endian + + AV_PIX_FMT_RGB565BE, ///< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), big-endian + AV_PIX_FMT_RGB565LE, ///< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), little-endian + AV_PIX_FMT_RGB555BE, ///< packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), big-endian, most significant bit to 0 + AV_PIX_FMT_RGB555LE, ///< packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), little-endian, most significant bit to 0 + + AV_PIX_FMT_BGR565BE, ///< packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), big-endian + AV_PIX_FMT_BGR565LE, ///< packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), little-endian + AV_PIX_FMT_BGR555BE, ///< packed BGR 5:5:5, 16bpp, (msb)1X 5B 5G 5R(lsb), big-endian, most significant bit to 1 + AV_PIX_FMT_BGR555LE, ///< packed BGR 5:5:5, 16bpp, (msb)1X 5B 5G 5R(lsb), little-endian, most significant bit to 1 +{$IFDEF FF_API_VAAPI} + (** Deprecated pixel formats *) + AV_PIX_FMT_VAAPI_MOCO, ///< HW acceleration through VA API at motion compensation entry-point, Picture.data[3] contains a vaapi_render_state struct which contains macroblocks as well as various fields extracted from headers + AV_PIX_FMT_VAAPI_IDCT, ///< HW acceleration through VA API at IDCT entry-point, Picture.data[3] contains a vaapi_render_state struct which contains fields extracted from headers + AV_PIX_FMT_VAAPI_VLD, ///< HW decoding through VA API, Picture.data[3] contains a VASurfaceID + + AV_PIX_FMT_VAAPI = AV_PIX_FMT_VAAPI_VLD, +{$ELSE} + AV_PIX_FMT_VAAPI, +{$ENDIF} + AV_PIX_FMT_YUV420P16LE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + AV_PIX_FMT_YUV420P16BE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + AV_PIX_FMT_YUV422P16LE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_YUV422P16BE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + AV_PIX_FMT_YUV444P16LE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + AV_PIX_FMT_YUV444P16BE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + AV_PIX_FMT_DXVA2_VLD, ///< HW decoding through DXVA2, Picture.data[3] contains a LPDIRECT3DSURFACE9 pointer + + AV_PIX_FMT_RGB444LE, ///< packed RGB 4:4:4, 16bpp, (msb)4X 4R 4G 4B(lsb), little-endian, most significant bits to 0 + AV_PIX_FMT_RGB444BE, ///< packed RGB 4:4:4, 16bpp, (msb)4X 4R 4G 4B(lsb), big-endian, most significant bits to 0 + AV_PIX_FMT_BGR444LE, ///< packed BGR 4:4:4, 16bpp, (msb)4X 4B 4G 4R(lsb), little-endian, most significant bits to 1 + AV_PIX_FMT_BGR444BE, ///< packed BGR 4:4:4, 16bpp, (msb)4X 4B 4G 4R(lsb), big-endian, most significant bits to 1 + AV_PIX_FMT_YA8, ///< 8 bits gray, 8 bits alpha +(* see const declaration way down + AV_PIX_FMT_Y400A = AV_PIX_FMT_YA8, ///< alias for AV_PIX_FMT_YA8 + AV_PIX_FMT_GRAY8A= AV_PIX_FMT_YA8, ///< alias for AV_PIX_FMT_YA8 +*) + AV_PIX_FMT_BGR48BE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as big-endian + AV_PIX_FMT_BGR48LE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as little-endian + + (** + * The following 12 formats have the disadvantage of needing 1 format for each bit depth. + * Notice that each 9/10 bits sample is stored in 16 bits with extra padding. + * If you want to support multiple bit depths, then using AV_PIX_FMT_YUV420P16* with the bpp stored separately is better. + *) + AV_PIX_FMT_YUV420P9BE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + AV_PIX_FMT_YUV420P9LE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + AV_PIX_FMT_YUV420P10BE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + AV_PIX_FMT_YUV420P10LE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + AV_PIX_FMT_YUV422P10BE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + AV_PIX_FMT_YUV422P10LE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_YUV444P9BE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + AV_PIX_FMT_YUV444P9LE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + AV_PIX_FMT_YUV444P10BE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + AV_PIX_FMT_YUV444P10LE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + AV_PIX_FMT_YUV422P9BE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + AV_PIX_FMT_YUV422P9LE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_GBRP, ///< planar GBR 4:4:4 24bpp + AV_PIX_FMT_GBR24P = AV_PIX_FMT_GBRP, // alias for #AV_PIX_FMT_GBRP + AV_PIX_FMT_GBRP9BE, ///< planar GBR 4:4:4 27bpp, big-endian + AV_PIX_FMT_GBRP9LE, ///< planar GBR 4:4:4 27bpp, little-endian + AV_PIX_FMT_GBRP10BE, ///< planar GBR 4:4:4 30bpp, big-endian + AV_PIX_FMT_GBRP10LE, ///< planar GBR 4:4:4 30bpp, little-endian + AV_PIX_FMT_GBRP16BE, ///< planar GBR 4:4:4 48bpp, big-endian + AV_PIX_FMT_GBRP16LE, ///< planar GBR 4:4:4 48bpp, little-endian + AV_PIX_FMT_YUVA422P, ///< planar YUV 4:2:2 24bpp, (1 Cr & Cb sample per 2x1 Y & A samples) + AV_PIX_FMT_YUVA444P, ///< planar YUV 4:4:4 32bpp, (1 Cr & Cb sample per 1x1 Y & A samples) + AV_PIX_FMT_YUVA420P9BE, ///< planar YUV 4:2:0 22.5bpp, (1 Cr & Cb sample per 2x2 Y & A samples), big-endian + AV_PIX_FMT_YUVA420P9LE, ///< planar YUV 4:2:0 22.5bpp, (1 Cr & Cb sample per 2x2 Y & A samples), little-endian + AV_PIX_FMT_YUVA422P9BE, ///< planar YUV 4:2:2 27bpp, (1 Cr & Cb sample per 2x1 Y & A samples), big-endian + AV_PIX_FMT_YUVA422P9LE, ///< planar YUV 4:2:2 27bpp, (1 Cr & Cb sample per 2x1 Y & A samples), little-endian + AV_PIX_FMT_YUVA444P9BE, ///< planar YUV 4:4:4 36bpp, (1 Cr & Cb sample per 1x1 Y & A samples), big-endian + AV_PIX_FMT_YUVA444P9LE, ///< planar YUV 4:4:4 36bpp, (1 Cr & Cb sample per 1x1 Y & A samples), little-endian + AV_PIX_FMT_YUVA420P10BE, ///< planar YUV 4:2:0 25bpp, (1 Cr & Cb sample per 2x2 Y & A samples, big-endian) + AV_PIX_FMT_YUVA420P10LE, ///< planar YUV 4:2:0 25bpp, (1 Cr & Cb sample per 2x2 Y & A samples, little-endian) + AV_PIX_FMT_YUVA422P10BE, ///< planar YUV 4:2:2 30bpp, (1 Cr & Cb sample per 2x1 Y & A samples, big-endian) + AV_PIX_FMT_YUVA422P10LE, ///< planar YUV 4:2:2 30bpp, (1 Cr & Cb sample per 2x1 Y & A samples, little-endian) + AV_PIX_FMT_YUVA444P10BE, ///< planar YUV 4:4:4 40bpp, (1 Cr & Cb sample per 1x1 Y & A samples, big-endian) + AV_PIX_FMT_YUVA444P10LE, ///< planar YUV 4:4:4 40bpp, (1 Cr & Cb sample per 1x1 Y & A samples, little-endian) + AV_PIX_FMT_YUVA420P16BE, ///< planar YUV 4:2:0 40bpp, (1 Cr & Cb sample per 2x2 Y & A samples, big-endian) + AV_PIX_FMT_YUVA420P16LE, ///< planar YUV 4:2:0 40bpp, (1 Cr & Cb sample per 2x2 Y & A samples, little-endian) + AV_PIX_FMT_YUVA422P16BE, ///< planar YUV 4:2:2 48bpp, (1 Cr & Cb sample per 2x1 Y & A samples, big-endian) + AV_PIX_FMT_YUVA422P16LE, ///< planar YUV 4:2:2 48bpp, (1 Cr & Cb sample per 2x1 Y & A samples, little-endian) + AV_PIX_FMT_YUVA444P16BE, ///< planar YUV 4:4:4 64bpp, (1 Cr & Cb sample per 1x1 Y & A samples, big-endian) + AV_PIX_FMT_YUVA444P16LE, ///< planar YUV 4:4:4 64bpp, (1 Cr & Cb sample per 1x1 Y & A samples, little-endian) + + AV_PIX_FMT_VDPAU, ///< HW acceleration through VDPAU, Picture.data[3] contains a VdpVideoSurface + + AV_PIX_FMT_XYZ12LE, ///< packed XYZ 4:4:4, 36 bpp, (msb) 12X, 12Y, 12Z (lsb), the 2-byte value for each X/Y/Z is stored as little-endian, the 4 lower bits are set to 0 + AV_PIX_FMT_XYZ12BE, ///< packed XYZ 4:4:4, 36 bpp, (msb) 12X, 12Y, 12Z (lsb), the 2-byte value for each X/Y/Z is stored as big-endian, the 4 lower bits are set to 0 + AV_PIX_FMT_NV16, ///< interleaved chroma YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples) + AV_PIX_FMT_NV20LE, ///< interleaved chroma YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_NV20BE, ///< interleaved chroma YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + + AV_PIX_FMT_RGBA64BE, ///< packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian + AV_PIX_FMT_RGBA64LE, ///< packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian + AV_PIX_FMT_BGRA64BE, ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian + AV_PIX_FMT_BGRA64LE, ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian + + AV_PIX_FMT_YVYU422, ///< packed YUV 4:2:2, 16bpp, Y0 Cr Y1 Cb + + AV_PIX_FMT_YA16BE, ///< 16 bits gray, 16 bits alpha (big-endian) + AV_PIX_FMT_YA16LE, ///< 16 bits gray, 16 bits alpha (little-endian) + + AV_PIX_FMT_GBRAP, ///< planar GBRA 4:4:4:4 32bpp + AV_PIX_FMT_GBRAP16BE, ///< planar GBRA 4:4:4:4 64bpp, big-endian + AV_PIX_FMT_GBRAP16LE, ///< planar GBRA 4:4:4:4 64bpp, little-endian + (** + * HW acceleration through QSV, data[3] contains a pointer to the + * mfxFrameSurface1 structure. + *) + AV_PIX_FMT_QSV, + (** + * HW acceleration though MMAL, data[3] contains a pointer to the + * MMAL_BUFFER_HEADER_T structure. + *) + AV_PIX_FMT_MMAL, + + AV_PIX_FMT_D3D11VA_VLD, ///< HW decoding through Direct3D11 via old API, Picture.data[3] contains a ID3D11VideoDecoderOutputView pointer + + (** + * HW acceleration through CUDA. data[i] contain CUdeviceptr pointers + * exactly as for system memory frames. + *) + AV_PIX_FMT_CUDA, + + AV_PIX_FMT_0RGB, ///< packed RGB 8:8:8, 32bpp, XRGBXRGB... X=unused/undefined + AV_PIX_FMT_RGB0, ///< packed RGB 8:8:8, 32bpp, RGBXRGBX... X=unused/undefined + AV_PIX_FMT_0BGR, ///< packed BGR 8:8:8, 32bpp, XBGRXBGR... X=unused/undefined + AV_PIX_FMT_BGR0, ///< packed BGR 8:8:8, 32bpp, BGRXBGRX... X=unused/undefined + + AV_PIX_FMT_YUV420P12BE, ///< planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + AV_PIX_FMT_YUV420P12LE, ///< planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + AV_PIX_FMT_YUV420P14BE, ///< planar YUV 4:2:0,21bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + AV_PIX_FMT_YUV420P14LE, ///< planar YUV 4:2:0,21bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + AV_PIX_FMT_YUV422P12BE, ///< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + AV_PIX_FMT_YUV422P12LE, ///< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_YUV422P14BE, ///< planar YUV 4:2:2,28bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + AV_PIX_FMT_YUV422P14LE, ///< planar YUV 4:2:2,28bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_YUV444P12BE, ///< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + AV_PIX_FMT_YUV444P12LE, ///< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + AV_PIX_FMT_YUV444P14BE, ///< planar YUV 4:4:4,42bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + AV_PIX_FMT_YUV444P14LE, ///< planar YUV 4:4:4,42bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + AV_PIX_FMT_GBRP12BE, ///< planar GBR 4:4:4 36bpp, big-endian + AV_PIX_FMT_GBRP12LE, ///< planar GBR 4:4:4 36bpp, little-endian + AV_PIX_FMT_GBRP14BE, ///< planar GBR 4:4:4 42bpp, big-endian + AV_PIX_FMT_GBRP14LE, ///< planar GBR 4:4:4 42bpp, little-endian + AV_PIX_FMT_YUVJ411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV411P and setting color_range + + AV_PIX_FMT_BAYER_BGGR8, ///< bayer, BGBG..(odd line), GRGR..(even line), 8-bit samples */ + AV_PIX_FMT_BAYER_RGGB8, ///< bayer, RGRG..(odd line), GBGB..(even line), 8-bit samples */ + AV_PIX_FMT_BAYER_GBRG8, ///< bayer, GBGB..(odd line), RGRG..(even line), 8-bit samples */ + AV_PIX_FMT_BAYER_GRBG8, ///< bayer, GRGR..(odd line), BGBG..(even line), 8-bit samples */ + AV_PIX_FMT_BAYER_BGGR16LE, ///< bayer, BGBG..(odd line), GRGR..(even line), 16-bit samples, little-endian */ + AV_PIX_FMT_BAYER_BGGR16BE, ///< bayer, BGBG..(odd line), GRGR..(even line), 16-bit samples, big-endian */ + AV_PIX_FMT_BAYER_RGGB16LE, ///< bayer, RGRG..(odd line), GBGB..(even line), 16-bit samples, little-endian */ + AV_PIX_FMT_BAYER_RGGB16BE, ///< bayer, RGRG..(odd line), GBGB..(even line), 16-bit samples, big-endian */ + AV_PIX_FMT_BAYER_GBRG16LE, ///< bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, little-endian */ + AV_PIX_FMT_BAYER_GBRG16BE, ///< bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, big-endian */ + AV_PIX_FMT_BAYER_GRBG16LE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, little-endian */ + AV_PIX_FMT_BAYER_GRBG16BE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, big-endian */ + + AV_PIX_FMT_XVMC, ///< XVideo Motion Acceleration via common packet passing + + AV_PIX_FMT_YUV440P10LE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian + AV_PIX_FMT_YUV440P10BE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian + AV_PIX_FMT_YUV440P12LE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian + AV_PIX_FMT_YUV440P12BE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian + AV_PIX_FMT_AYUV64LE, ///< packed AYUV 4:4:4,64bpp (1 Cr & Cb sample per 1x1 Y & A samples), little-endian + AV_PIX_FMT_AYUV64BE, ///< packed AYUV 4:4:4,64bpp (1 Cr & Cb sample per 1x1 Y & A samples), big-endian + + AV_PIX_FMT_VIDEOTOOLBOX, ///< hardware decoding through Videotoolbox + + AV_PIX_FMT_P010LE, ///< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, little-endian + AV_PIX_FMT_P010BE, ///< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, big-endian + + AV_PIX_FMT_GBRAP12BE, ///< planar GBR 4:4:4:4 48bpp, big-endian + AV_PIX_FMT_GBRAP12LE, ///< planar GBR 4:4:4:4 48bpp, little-endian + + AV_PIX_FMT_GBRAP10BE, ///< planar GBR 4:4:4:4 40bpp, big-endian + AV_PIX_FMT_GBRAP10LE, ///< planar GBR 4:4:4:4 40bpp, little-endian + + AV_PIX_FMT_MEDIACODEC, ///< hardware decoding through MediaCodec + + AV_PIX_FMT_GRAY12BE, ///< Y , 12bpp, big-endian + AV_PIX_FMT_GRAY12LE, ///< Y , 12bpp, little-endian + AV_PIX_FMT_GRAY10BE, ///< Y , 10bpp, big-endian + AV_PIX_FMT_GRAY10LE, ///< Y , 10bpp, little-endian + + AV_PIX_FMT_P016LE, ///< like NV12, with 16bpp per component, little-endian + AV_PIX_FMT_P016BE, ///< like NV12, with 16bpp per component, big-endian + + (** + * Hardware surfaces for Direct3D11. + * + * This is preferred over the legacy AV_PIX_FMT_D3D11VA_VLD. The new D3D11 + * hwaccel API and filtering support AV_PIX_FMT_D3D11 only. + * + * data[0] contains a ID3D11Texture2D pointer, and data[1] contains the + * texture array index of the frame as intptr_t if the ID3D11Texture2D is + * an array texture (or always 0 if it's a normal texture). + *) + AV_PIX_FMT_D3D11, + + AV_PIX_FMT_GRAY9BE, ///< Y , 9bpp, big-endian + AV_PIX_FMT_GRAY9LE, ///< Y , 9bpp, little-endian + + AV_PIX_FMT_GBRPF32BE, ///< IEEE-754 single precision planar GBR 4:4:4, 96bpp, big-endian + AV_PIX_FMT_GBRPF32LE, ///< IEEE-754 single precision planar GBR 4:4:4, 96bpp, little-endian + AV_PIX_FMT_GBRAPF32BE, ///< IEEE-754 single precision planar GBRA 4:4:4:4, 128bpp, big-endian + AV_PIX_FMT_GBRAPF32LE, ///< IEEE-754 single precision planar GBRA 4:4:4:4, 128bpp, little-endian + + (** + * DRM-managed buffers exposed through PRIME buffer sharing. + * + * data[0] points to an AVDRMFrameDescriptor. + *) + AV_PIX_FMT_DRM_PRIME, + (** + * Hardware surfaces for OpenCL. + * + * data[i] contain 2D image objects (typed in C as cl_mem, used + * in OpenCL as image2d_t) for each plane of the surface. + *) + AV_PIX_FMT_OPENCL, + + AV_PIX_FMT_NB ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions + ); + +const + AV_PIX_FMT_Y400A = AV_PIX_FMT_YA8; ///< alias for AV_PIX_FMT_YA8 + AV_PIX_FMT_GRAY8A= AV_PIX_FMT_YA8; ///< alias for AV_PIX_FMT_YA8 + +{$IFDEF WORDS_BIGENDIAN} + AV_PIX_FMT_RGB32 = AV_PIX_FMT_ARGB; + AV_PIX_FMT_RGB32_1 = AV_PIX_FMT_RGBA; + AV_PIX_FMT_BGR32 = AV_PIX_FMT_ABGR; + AV_PIX_FMT_BGR32_1 = AV_PIX_FMT_BGRA; + AV_PIX_FMT_0RGB32 = AV_PIX_FMT_0RGB; + AV_PIX_FMT_0BGR32 = AV_PIX_FMT_0BGR; + + AV_PIX_FMT_GRAY9 = AV_PIX_FMT_GRAY9BE; + AV_PIX_FMT_GRAY10 = AV_PIX_FMT_GRAY10BE; + AV_PIX_FMT_GRAY12 = AV_PIX_FMT_GRAY12BE; + AV_PIX_FMT_GRAY16 = AV_PIX_FMT_GRAY16BE; + AV_PIX_FMT_YA16 = AV_PIX_FMT_YA16BE; + AV_PIX_FMT_RGB48 = AV_PIX_FMT_RGB48BE; + AV_PIX_FMT_RGB565 = AV_PIX_FMT_RGB565BE; + AV_PIX_FMT_RGB555 = AV_PIX_FMT_RGB555BE; + AV_PIX_FMT_RGB444 = AV_PIX_FMT_RGB444BE; + AV_PIX_FMT_RGBA64 = AV_PIX_FMT_RGBA64BE; + AV_PIX_FMT_BGR48 = AV_PIX_FMT_BGR48BE; + AV_PIX_FMT_BGR565 = AV_PIX_FMT_BGR565BE; + AV_PIX_FMT_BGR555 = AV_PIX_FMT_BGR555BE; + AV_PIX_FMT_BGR444 = AV_PIX_FMT_BGR444BE; + AV_PIX_FMT_BGRA64 = AV_PIX_FMT_BGRA64BE; + + AV_PIX_FMT_YUV420P9 = AV_PIX_FMT_YUV420P9BE; + AV_PIX_FMT_YUV422P9 = AV_PIX_FMT_YUV422P9BE; + AV_PIX_FMT_YUV444P9 = AV_PIX_FMT_YUV444P9BE; + AV_PIX_FMT_YUV420P10 = AV_PIX_FMT_YUV420P10BE; + AV_PIX_FMT_YUV422P10 = AV_PIX_FMT_YUV422P10BE; + AV_PIX_FMT_YUV440P10 = AV_PIX_FMT_YUV440P10BE; + AV_PIX_FMT_YUV444P10 = AV_PIX_FMT_YUV444P10BE; + AV_PIX_FMT_YUV420P12 = AV_PIX_FMT_YUV420P12BE; + AV_PIX_FMT_YUV422P12 = AV_PIX_FMT_YUV422P12BE; + AV_PIX_FMT_YUV440P12 = AV_PIX_FMT_YUV440P12BE; + AV_PIX_FMT_YUV444P12 = AV_PIX_FMT_YUV444P12BE; + AV_PIX_FMT_YUV420P14 = AV_PIX_FMT_YUV420P14BE; + AV_PIX_FMT_YUV422P14 = AV_PIX_FMT_YUV422P14BE; + AV_PIX_FMT_YUV444P14= AV_PIX_FMT_YUV444P14BE; + AV_PIX_FMT_YUV420P16 = AV_PIX_FMT_YUV420P16BE; + AV_PIX_FMT_YUV422P16 = AV_PIX_FMT_YUV422P16BE; + AV_PIX_FMT_YUV444P16 = AV_PIX_FMT_YUV444P16BE; + + AV_PIX_FMT_GBRP9 = AV_PIX_FMT_GBRP9BE; + AV_PIX_FMT_GBRP10 = AV_PIX_FMT_GBRP10BE; + AV_PIX_FMT_GBRP12 = AV_PIX_FMT_GBRP12BE; + AV_PIX_FMT_GBRP14 = AV_PIX_FMT_GBRP14BE; + AV_PIX_FMT_GBRP16 = AV_PIX_FMT_GBRP16BE; + AV_PIX_FMT_GBRAP10 = AV_PIX_FMT_GBRAP10BE; + AV_PIX_FMT_GBRAP12 = AV_PIX_FMT_GBRAP12BE; + AV_PIX_FMT_GBRAP16 = AV_PIX_FMT_GBRAP16BE; + + AV_PIX_FMT_BAYER_BGGR16 = AV_PIX_FMT_BAYER_BGGR16BE; + AV_PIX_FMT_BAYER_RGGB16 = AV_PIX_FMT_BAYER_RGGB16BE; + AV_PIX_FMT_BAYER_GBRG16 = AV_PIX_FMT_BAYER_GBRG16BE; + AV_PIX_FMT_BAYER_GRBG16 = AV_PIX_FMT_BAYER_GRBG16BE; + + AV_PIX_FMT_GBRPF32 = AV_PIX_FMT_GBRPF32BE; + AV_PIX_FMT_GBRAPF32 = AV_PIX_FMT_GBRAPF32BE; + + AV_PIX_FMT_YUVA420P9 = AV_PIX_FMT_YUVA420P9BE; + AV_PIX_FMT_YUVA422P9 = AV_PIX_FMT_YUVA422P9BE; + AV_PIX_FMT_YUVA444P9 = AV_PIX_FMT_YUVA444P9BE; + AV_PIX_FMT_YUVA420P10 = AV_PIX_FMT_YUVA420P10BE; + AV_PIX_FMT_YUVA422P10 = AV_PIX_FMT_YUVA422P10BE; + AV_PIX_FMT_YUVA444P10 = AV_PIX_FMT_YUVA444P10BE; + AV_PIX_FMT_YUVA420P16 = AV_PIX_FMT_YUVA420P16BE; + AV_PIX_FMT_YUVA422P16 = AV_PIX_FMT_YUVA422P16BE; + AV_PIX_FMT_YUVA444P16 = AV_PIX_FMT_YUVA444P16BE; + + AV_PIX_FMT_XYZ12 = AV_PIX_FMT_XYZ12BE; + AV_PIX_FMT_NV20 = AV_PIX_FMT_NV20BE; + AV_PIX_FMT_AYUV64 = AV_PIX_FMT_AYUV64BE; + AV_PIX_FMT_P010 = AV_PIX_FMT_P010BE; + AV_PIX_FMT_P016 = AV_PIX_FMT_P016BE; + +{$ELSE} + AV_PIX_FMT_RGB32 = AV_PIX_FMT_BGRA; + AV_PIX_FMT_RGB32_1 = AV_PIX_FMT_ABGR; + AV_PIX_FMT_BGR32 = AV_PIX_FMT_RGBA; + AV_PIX_FMT_BGR32_1 = AV_PIX_FMT_ARGB; + AV_PIX_FMT_0RGB32 = AV_PIX_FMT_BGR0; + AV_PIX_FMT_0BGR32 = AV_PIX_FMT_RGB0; + + AV_PIX_FMT_GRAY9 = AV_PIX_FMT_GRAY9LE; + AV_PIX_FMT_GRAY10 = AV_PIX_FMT_GRAY10LE; + AV_PIX_FMT_GRAY12 = AV_PIX_FMT_GRAY12LE; + AV_PIX_FMT_GRAY16 = AV_PIX_FMT_GRAY16LE; + AV_PIX_FMT_YA16 = AV_PIX_FMT_YA16LE; + AV_PIX_FMT_RGB48 = AV_PIX_FMT_RGB48LE; + AV_PIX_FMT_RGB565 = AV_PIX_FMT_RGB565LE; + AV_PIX_FMT_RGB555 = AV_PIX_FMT_RGB555LE; + AV_PIX_FMT_RGB444 = AV_PIX_FMT_RGB444LE; + AV_PIX_FMT_RGBA64 = AV_PIX_FMT_RGBA64LE; + AV_PIX_FMT_BGR48 = AV_PIX_FMT_BGR48LE; + AV_PIX_FMT_BGR565 = AV_PIX_FMT_BGR565LE; + AV_PIX_FMT_BGR555 = AV_PIX_FMT_BGR555LE; + AV_PIX_FMT_BGR444 = AV_PIX_FMT_BGR444LE; + AV_PIX_FMT_BGRA64 = AV_PIX_FMT_BGRA64LE; + + AV_PIX_FMT_YUV420P9 = AV_PIX_FMT_YUV420P9LE; + AV_PIX_FMT_YUV422P9 = AV_PIX_FMT_YUV422P9LE; + AV_PIX_FMT_YUV444P9 = AV_PIX_FMT_YUV444P9LE; + AV_PIX_FMT_YUV420P10 = AV_PIX_FMT_YUV420P10LE; + AV_PIX_FMT_YUV422P10 = AV_PIX_FMT_YUV422P10LE; + AV_PIX_FMT_YUV440P10 = AV_PIX_FMT_YUV440P10LE; + AV_PIX_FMT_YUV444P10 = AV_PIX_FMT_YUV444P10LE; + AV_PIX_FMT_YUV420P12 = AV_PIX_FMT_YUV420P12LE; + AV_PIX_FMT_YUV422P12 = AV_PIX_FMT_YUV422P12LE; + AV_PIX_FMT_YUV440P12 = AV_PIX_FMT_YUV440P12LE; + AV_PIX_FMT_YUV444P12 = AV_PIX_FMT_YUV444P12LE; + AV_PIX_FMT_YUV420P14 = AV_PIX_FMT_YUV420P14LE; + AV_PIX_FMT_YUV422P14 = AV_PIX_FMT_YUV422P14LE; + AV_PIX_FMT_YUV444P14= AV_PIX_FMT_YUV444P14LE; + AV_PIX_FMT_YUV420P16 = AV_PIX_FMT_YUV420P16LE; + AV_PIX_FMT_YUV422P16 = AV_PIX_FMT_YUV422P16LE; + AV_PIX_FMT_YUV444P16 = AV_PIX_FMT_YUV444P16LE; + + AV_PIX_FMT_GBRP9 = AV_PIX_FMT_GBRP9LE; + AV_PIX_FMT_GBRP10 = AV_PIX_FMT_GBRP10LE; + AV_PIX_FMT_GBRP12 = AV_PIX_FMT_GBRP12LE; + AV_PIX_FMT_GBRP14 = AV_PIX_FMT_GBRP14LE; + AV_PIX_FMT_GBRP16 = AV_PIX_FMT_GBRP16LE; + AV_PIX_FMT_GBRAP10 = AV_PIX_FMT_GBRAP10LE; + AV_PIX_FMT_GBRAP12 = AV_PIX_FMT_GBRAP12LE; + AV_PIX_FMT_GBRAP16 = AV_PIX_FMT_GBRAP16LE; + + AV_PIX_FMT_BAYER_BGGR16 = AV_PIX_FMT_BAYER_BGGR16LE; + AV_PIX_FMT_BAYER_RGGB16 = AV_PIX_FMT_BAYER_RGGB16LE; + AV_PIX_FMT_BAYER_GBRG16 = AV_PIX_FMT_BAYER_GBRG16LE; + AV_PIX_FMT_BAYER_GRBG16 = AV_PIX_FMT_BAYER_GRBG16LE; + + AV_PIX_FMT_GBRPF32 = AV_PIX_FMT_GBRPF32LE; + AV_PIX_FMT_GBRAPF32 = AV_PIX_FMT_GBRAPF32LE; + + AV_PIX_FMT_YUVA420P9 = AV_PIX_FMT_YUVA420P9LE; + AV_PIX_FMT_YUVA422P9 = AV_PIX_FMT_YUVA422P9LE; + AV_PIX_FMT_YUVA444P9 = AV_PIX_FMT_YUVA444P9LE; + AV_PIX_FMT_YUVA420P10 = AV_PIX_FMT_YUVA420P10LE; + AV_PIX_FMT_YUVA422P10 = AV_PIX_FMT_YUVA422P10LE; + AV_PIX_FMT_YUVA444P10 = AV_PIX_FMT_YUVA444P10LE; + AV_PIX_FMT_YUVA420P16 = AV_PIX_FMT_YUVA420P16LE; + AV_PIX_FMT_YUVA422P16 = AV_PIX_FMT_YUVA422P16LE; + AV_PIX_FMT_YUVA444P16 = AV_PIX_FMT_YUVA444P16LE; + + AV_PIX_FMT_XYZ12 = AV_PIX_FMT_XYZ12LE; + AV_PIX_FMT_NV20 = AV_PIX_FMT_NV20LE; + AV_PIX_FMT_AYUV64 = AV_PIX_FMT_AYUV64LE; + AV_PIX_FMT_P010 = AV_PIX_FMT_P010LE; + AV_PIX_FMT_P016 = AV_PIX_FMT_P016LE; +{$ENDIF} + +type +(** + * Chromaticity coordinates of the source primaries. + * These values match the ones defined by ISO/IEC 23001-8_2013 § 7.1. + *) + TAVColorPrimaries = ( + AVCOL_PRI_RESERVED0 = 0, + AVCOL_PRI_BT709 = 1, ///< also ITU-R BT1361 / IEC 61966-2-4 / SMPTE RP177 Annex B + AVCOL_PRI_UNSPECIFIED = 2, + AVCOL_PRI_RESERVED = 3, + AVCOL_PRI_BT470M = 4, ///< also FCC Title 47 Code of Federal Regulations 73.682 (a)(20) + AVCOL_PRI_BT470BG = 5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM + AVCOL_PRI_SMPTE170M = 6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC + AVCOL_PRI_SMPTE240M = 7, ///< functionally identical to above + AVCOL_PRI_FILM = 8, ///< colour filters using Illuminant C + AVCOL_PRI_BT2020 = 9, ///< ITU-R BT2020 + AVCOL_PRI_SMPTE428 = 10, ///< SMPTE ST 428-1 (CIE 1931 XYZ) + AVCOL_PRI_SMPTEST428_1 = AVCOL_PRI_SMPTE428, + AVCOL_PRI_SMPTE431 = 11, ///< SMPTE ST 431-2 (2011) / DCI P3 + AVCOL_PRI_SMPTE432 = 12, ///< SMPTE ST 432-1 (2010) / P3 D65 / Display P3 + AVCOL_PRI_JEDEC_P22 = 22, ///< JEDEC P22 phosphors + AVCOL_PRI_NB ///< Not part of ABI + ); + +(** + * Color Transfer Characteristic. + * These values match the ones defined by ISO/IEC 23001-8_2013 § 7.2. + *) + TAVColorTransferCharacteristic = ( + AVCOL_TRC_RESERVED0 = 0, + AVCOL_TRC_BT709 = 1, ///< also ITU-R BT1361 + AVCOL_TRC_UNSPECIFIED = 2, + AVCOL_TRC_RESERVED = 3, + AVCOL_TRC_GAMMA22 = 4, ///< also ITU-R BT470M / ITU-R BT1700 625 PAL & SECAM + AVCOL_TRC_GAMMA28 = 5, ///< also ITU-R BT470BG + AVCOL_TRC_SMPTE170M = 6, ///< also ITU-R BT601-6 525 or 625 / ITU-R BT1358 525 or 625 / ITU-R BT1700 NTSC + AVCOL_TRC_SMPTE240M = 7, + AVCOL_TRC_LINEAR = 8, ///< "Linear transfer characteristics" + AVCOL_TRC_LOG = 9, ///< "Logarithmic transfer characteristic (100:1 range)" + AVCOL_TRC_LOG_SQRT = 10, ///< "Logarithmic transfer characteristic (100 * Sqrt(10) : 1 range)" + AVCOL_TRC_IEC61966_2_4 = 11, ///< IEC 61966-2-4 + AVCOL_TRC_BT1361_ECG = 12, ///< ITU-R BT1361 Extended Colour Gamut + AVCOL_TRC_IEC61966_2_1 = 13, ///< IEC 61966-2-1 (sRGB or sYCC) + AVCOL_TRC_BT2020_10 = 14, ///< ITU-R BT2020 for 10-bit system + AVCOL_TRC_BT2020_12 = 15, ///< ITU-R BT2020 for 12-bit system + AVCOL_TRC_SMPTE2084 = 16, ///< SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems + AVCOL_TRC_SMPTEST2084 = AVCOL_TRC_SMPTE2084, + AVCOL_TRC_SMPTE428 = 17, ///< SMPTE ST 428-1 + AVCOL_TRC_SMPTEST428_1 = AVCOL_TRC_SMPTE428, + AVCOL_TRC_ARIB_STD_B67 = 18, ///< ARIB STD-B67, known as "Hybrid log-gamma" + AVCOL_TRC_NB ///< Not part of ABI + ); + +(** + * YUV colorspace type. + * These values match the ones defined by ISO/IEC 23001-8_2013 § 7.3. + *) + TAVColorSpace = ( + AVCOL_SPC_RGB = 0, ///< order of coefficients is actually GBR, also IEC 61966-2-1 (sRGB) + AVCOL_SPC_BT709 = 1, ///< also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B + AVCOL_SPC_UNSPECIFIED = 2, + AVCOL_SPC_RESERVED = 3, + AVCOL_SPC_FCC = 4, ///< FCC Title 47 Code of Federal Regulations 73.682 (a)(20) + AVCOL_SPC_BT470BG = 5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601 + AVCOL_SPC_SMPTE170M = 6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC + AVCOL_SPC_SMPTE240M = 7, ///< functionally identical to above + AVCOL_SPC_YCGCO = 8, ///< Used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16 + AVCOL_SPC_YCOCG = AVCOL_SPC_YCGCO, + AVCOL_SPC_BT2020_NCL = 9, ///< ITU-R BT2020 non-constant luminance system + AVCOL_SPC_BT2020_CL = 10, ///< ITU-R BT2020 constant luminance system + AVCOL_SPC_SMPTE2085 = 11, ///< SMPTE 2085, Y'D'zD'x + AVCOL_SPC_CHROMA_DERIVED_NCL = 12, ///< Chromaticity-derived non-constant luminance system + AVCOL_SPC_CHROMA_DERIVED_CL = 13, ///< Chromaticity-derived constant luminance system + AVCOL_SPC_ICTCP = 14, ///< ITU-R BT.2100-0, ICtCp + AVCOL_SPC_NB ///< Not part of ABI + ); + +type +(** + * MPEG vs JPEG YUV range. + *) + TAVColorRange = ( + AVCOL_RANGE_UNSPECIFIED = 0, + AVCOL_RANGE_MPEG = 1, ///< the normal 219*2^(n-8) "MPEG" YUV ranges + AVCOL_RANGE_JPEG = 2, ///< the normal 2^n-1 "JPEG" YUV ranges + AVCOL_RANGE_NB ///< Not part of ABI + ); + +(** + * Location of chroma samples. + * + * Illustration showing the location of the first (top left) chroma sample of the + * image, the left shows only luma, the right + * shows the location of the chroma sample, the 2 could be imagined to overlay + * each other but are drawn separately due to limitations of ASCII + * + * 1st 2nd 1st 2nd horizontal luma sample positions + * v v v v + * ______ ______ + *1st luma line > |X X ... |3 4 X ... X are luma samples, + * | |1 2 1-6 are possible chroma positions + *2nd luma line > |X X ... |5 6 X ... 0 is undefined/unknown position + *) + TAVChromaLocation = ( + AVCHROMA_LOC_UNSPECIFIED = 0, + AVCHROMA_LOC_LEFT = 1, ///< MPEG-2/4 4:2:0, H.264 default for 4:2:0 + AVCHROMA_LOC_CENTER = 2, ///< MPEG-1 4:2:0, JPEG 4:2:0, H.263 4:2:0 + AVCHROMA_LOC_TOPLEFT = 3, ///< ITU-R 601, SMPTE 274M 296M S314M(DV 4:1:1), mpeg2 4:2:2 + AVCHROMA_LOC_TOP = 4, + AVCHROMA_LOC_BOTTOMLEFT = 5, + AVCHROMA_LOC_BOTTOM = 6, + AVCHROMA_LOC_NB ///< Not part of ABI + ); diff --git a/src/lib/ffmpeg-4.0/libavutil/samplefmt.pas b/src/lib/ffmpeg-4.0/libavutil/samplefmt.pas new file mode 100644 index 00000000..85b11305 --- /dev/null +++ b/src/lib/ffmpeg-4.0/libavutil/samplefmt.pas @@ -0,0 +1,287 @@ +(* + * SampleFormat + * copyright (c) 2011 Karl-Michael Schindler + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of the Pascal port of ffmpeg. + * + * Conversion of libavutil/samplefmt.h + * avutil version 54.7.100 + * + *) + +type +(** + * @addtogroup lavu_audio + * @ + * + * @defgroup lavu_sampfmts Audio sample formats + * + * Audio sample format enumeration and related convenience functions. + * @ + *) + +(** + * Audio sample formats + * + * - The data described by the sample format is always in native-endian order. + * Sample values can be expressed by native C types, hence the lack of a signed + * 24-bit sample format even though it is a common raw audio data format. + * + * - The floating-point formats are based on full volume being in the range + * [-1.0, 1.0]. Any values outside this range are beyond full volume level. + * + * - The data layout as used in av_samples_fill_arrays() and elsewhere in FFmpeg + * (such as AVFrame in libavcodec) is as follows: + * + * @par + * For planar sample formats, each audio channel is in a separate data plane, + * and linesize is the buffer size, in bytes, for a single plane. All data + * planes must be the same size. For packed sample formats, only the first data + * plane is used, and samples for each channel are interleaved. In this case, + * linesize is the buffer size, in bytes, for the 1 plane. + * + *) + TAVSampleFormat = ( + AV_SAMPLE_FMT_NONE = -1, + AV_SAMPLE_FMT_U8, ///< unsigned 8 bits + AV_SAMPLE_FMT_S16, ///< signed 16 bits + AV_SAMPLE_FMT_S32, ///< signed 32 bits + AV_SAMPLE_FMT_FLT, ///< float + AV_SAMPLE_FMT_DBL, ///< double + + AV_SAMPLE_FMT_U8P, ///< unsigned 8 bits, planar + AV_SAMPLE_FMT_S16P, ///< signed 16 bits, planar + AV_SAMPLE_FMT_S32P, ///< signed 32 bits, planar + AV_SAMPLE_FMT_FLTP, ///< float, planar + AV_SAMPLE_FMT_DBLP, ///< double, planar + AV_SAMPLE_FMT_S64, ///< signed 64 bits + AV_SAMPLE_FMT_S64P, ///< signed 64 bits, planar + + AV_SAMPLE_FMT_NB ///< Number of sample formats. DO NOT USE if linking dynamically + ); + TAVSampleFormatArray = array [0 .. MaxInt div SizeOf(TAVSampleFormat) - 1] of TAVSampleFormat; + PAVSampleFormatArray = ^TAVSampleFormatArray; + +(** + * Return the name of sample_fmt, or NULL if sample_fmt is not + * recognized. + *) +function av_get_sample_fmt_name(sample_fmt: TAVSampleFormat): {const} PAnsiChar; + cdecl; external av__util; + +(** + * Return a sample format corresponding to name, or AV_SAMPLE_FMT_NONE + * on error. + *) +function av_get_sample_fmt(name: {const} PAnsiChar): TAVSampleFormat; + cdecl; external av__util; + +(** + * Return the planar<->packed alternative form of the given sample format, or + * AV_SAMPLE_FMT_NONE on error. If the passed sample_fmt is already in the + * requested planar/packed format, the format returned is the same as the + * input. + *) +function av_get_alt_sample_fmt(sample_fmt: TAVSampleFormat; planar: cint): TAVSampleFormat; + cdecl; external av__util; + +(** + * Get the packed alternative form of the given sample format. + * + * If the passed sample_fmt is already in packed format, the format returned is + * the same as the input. + * + * @return the packed alternative form of the given sample format or + AV_SAMPLE_FMT_NONE on error. + *) +function av_get_packed_sample_fmt(sample_fmt: TAVSampleFormat): TAVSampleFormat; + cdecl; external av__util; + +(** + * Get the planar alternative form of the given sample format. + * + * If the passed sample_fmt is already in planar format, the format returned is + * the same as the input. + * + * @return the planar alternative form of the given sample format or + AV_SAMPLE_FMT_NONE on error. + *) +function av_get_planar_sample_fmt(sample_fmt: TAVSampleFormat): TAVSampleFormat; + cdecl; external av__util; + +(** + * Generate a string corresponding to the sample format with + * sample_fmt, or a header if sample_fmt is negative. + * + * @param buf the buffer where to write the string + * @param buf_size the size of buf + * @param sample_fmt the number of the sample format to print the + * corresponding info string, or a negative value to print the + * corresponding header. + * @return the pointer to the filled buffer or NULL if sample_fmt is + * unknown or in case of other errors + *) +function av_get_sample_fmt_string(buf: PAnsiChar; buf_size: cint; sample_fmt: TAVSampleFormat): PAnsiChar; + cdecl; external av__util; + +(** + * Return number of bytes per sample. + * + * @param sample_fmt the sample format + * @return number of bytes per sample or zero if unknown for the given + * sample format + *) +function av_get_bytes_per_sample(sample_fmt: TAVSampleFormat): cint; + cdecl; external av__util; + +type + OctArrayOfPcuint8 = array[0..7] of Pcuint8; + OctArrayOfcint = array[0..7] of cint; + +(** + * Check if the sample format is planar. + * + * @param sample_fmt the sample format to inspect + * @return 1 if the sample format is planar, 0 if it is interleaved + *) +function av_sample_fmt_is_planar(sample_fmt: TAVSampleFormat): cint; + cdecl; external av__util; + +(** + * Get the required buffer size for the given audio parameters. + * + * @param[out] linesize calculated linesize, may be NULL + * @param nb_channels the number of channels + * @param nb_samples the number of samples in a single channel + * @param sample_fmt the sample format + * @param align buffer size alignment (0 = default, 1 = no alignment) + * @return required buffer size, or negative error code on failure + *) +function av_samples_get_buffer_size(linesize: Pcint; nb_channels: cint; nb_samples: cint; + sample_fmt: TAVSampleFormat; align: cint): cint; + cdecl; external av__util; + +(** + * @ + * + * @defgroup lavu_sampmanip Samples manipulation + * + * Functions that manipulate audio samples + * @ + *) + +(** + * Fill plane data pointers and linesize for samples with sample + * format sample_fmt. + * + * The audio_data array is filled with the pointers to the samples data planes: + * for planar, set the start point of each channel's data within the buffer, + * for packed, set the start point of the entire buffer only. + * + * The value pointed to by linesize is set to the aligned size of each + * channel's data buffer for planar layout, or to the aligned size of the + * buffer for all channels for packed layout. + * + * The buffer in buf must be big enough to contain all the samples + * (use av_samples_get_buffer_size() to compute its minimum size), + * otherwise the audio_data pointers will point to invalid data. + * + * @see enum AVSampleFormat + * The documentation for AVSampleFormat describes the data layout. + * + * @param[out] audio_data array to be filled with the pointer for each channel + * @param[out] linesize calculated linesize, may be NULL + * @param buf the pointer to a buffer containing the samples + * @param nb_channels the number of channels + * @param nb_samples the number of samples in a single channel + * @param sample_fmt the sample format + * @param align buffer size alignment (0 = default, 1 = no alignment) + * @return >=0 on success or a negative error code on failure + * @todo return minimum size in bytes required for the buffer in case + * of success at the next bump + *) +function av_samples_fill_arrays(var audio_data: Pcuint8; linesize: Pcint; + buf: Pcuint8; + nb_channels: cint; nb_samples: cint; + sample_fmt: TAVSampleFormat; align: cint): cint; + cdecl; external av__util; + +(** + * Allocate a samples buffer for nb_samples samples, and fill data pointers and + * linesize accordingly. + * The allocated samples buffer can be freed by using av_freep(&audio_data[0]) + * + * @see enum AVSampleFormat + * The documentation for AVSampleFormat describes the data layout. + * + * @param[out] audio_data array to be filled with the pointer for each channel + * @param[out] linesize aligned size for audio buffer(s), may be NULL + * @param nb_channels number of audio channels + * @param nb_samples number of samples per channel + * @param align buffer size alignment (0 = default, 1 = no alignment) + * @return >=0 on success or a negative error code on failure + * @todo return the size of the allocated buffer in case of success at the next bump + * @see av_samples_fill_arrays() + * @see av_samples_alloc_array_and_samples() + *) +function av_samples_alloc(var audio_data: Pcuint8; linesize: Pcint; + nb_channels: cint; nb_samples: cint; + sample_fmt: TAVSampleFormat; align: cint): cint; + cdecl; external av__util; + +(** + * Allocate a data pointers array, samples buffer for nb_samples + * samples, and fill data pointers and linesize accordingly. + * + * This is the same as av_samples_alloc(), but also allocates the data + * pointers array. + * + * @see av_samples_alloc() + *) +function av_samples_alloc_array_and_samples(var audio_data: Pcuint8; linesize: Pcint; + nb_channels: cint; nb_samples: cint; + sample_fmt: TAVSampleFormat; align: cint): cint; + cdecl; external av__util; + +(** + * Copy samples from src to dst. + * + * @param dst destination array of pointers to data planes + * @param src source array of pointers to data planes + * @param dst_offset offset in samples at which the data will be written to dst + * @param src_offset offset in samples at which the data will be read from src + * @param nb_samples number of samples to be copied + * @param nb_channels number of audio channels + * @param sample_fmt audio sample format + *) +function av_samples_copy(var dst: Pcuint8; src: {const} Pcuint8; dst_offset: cint; + src_offset: cint; nb_samples: cint; nb_channels: cint; + sample_fmt: TAVSampleFormat): cint; + cdecl; external av__util; + +(** + * Fill an audio buffer with silence. + * + * @param audio_data array of pointers to data planes + * @param offset offset in samples at which to start filling + * @param nb_samples number of samples to fill + * @param nb_channels number of audio channels + * @param sample_fmt audio sample format + *) +function av_samples_set_silence(var audio_data: Pcuint8; offset: cint; nb_samples: cint; + nb_channels: cint; sample_fmt: TAVSampleFormat): cint; + cdecl; external av__util; diff --git a/src/lib/ffmpeg-4.0/rational.pas b/src/lib/ffmpeg-4.0/rational.pas new file mode 100644 index 00000000..d7fcb5b2 --- /dev/null +++ b/src/lib/ffmpeg-4.0/rational.pas @@ -0,0 +1,270 @@ +(* + * rational numbers + * Copyright (c) 2003 Michael Niedermayer + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of Pascal porting of ffmpeg. + * - Originally by Victor Zinetz for Delphi and Free Pascal on Windows. + * - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT + * in the source codes. + * - Changes and updates by the UltraStar Deluxe Team + * + * Conversion of libavutil/rational.h + * avutil version 54.7.100 + * + *) + +unit rational; + +{$IFDEF FPC} + {$MODE DELPHI} + {$PACKENUM 4} (* use 4-byte enums *) + {$PACKRECORDS C} (* C/C++-compatible record packing *) +{$ELSE} + {$MINENUMSIZE 4} (* use 4-byte enums *) +{$ENDIF} + +{$I switches.inc} + +interface + +uses + ctypes, + UConfig; + +(** + * @addtogroup lavu_math + * @{ + *) + +type +(** + * Rational number (pair of numerator and denominator). + *) + PAVRational = ^TAVRational; + TAVRational = record + num: cint; ///< Numerator + den: cint; ///< Denominator + end; + + TAVRationalArray = array[0 .. (MaxInt div SizeOf(TAVRational))-1] of TAVRational; + PAVRationalArray = ^TAVRationalArray; + +(** + * Create an AVRational. + * + * Useful for compilers that do not support compound literals. + * + * @note The return value is not reduced. + * @see av_reduce() + */ +static inline AVRational av_make_q(int num, int den) +{ + AVRational r = { num, den }; + return r; +} + +/**) + +(** + * Create an AVRational. + * + * Useful for compilers that do not support compound literals. + * + * @note The return value is not reduced. + * @see av_reduce() + *) +function av_make_q(num, den: cint): TAVRational; {$IFDEF HasInline}inline;{$ENDIF} + +(** + * Compare two rationals. + * + * @param a First rational + * @param b Second rational + * + * @return One of the following values: + * - 0 if `a == b` + * - 1 if `a > b` + * - -1 if `a < b` + * - `INT_MIN` if one of the values is of the form `0 / 0` + *) +function av_cmp_q(a: TAVRational; b: TAVRational): cint; {$IFDEF HasInline}inline;{$ENDIF} + +(** + * Convert an AVRational to a `double`. + * @param a AVRational to convert + * @return `a` in floating-point form + * @see av_d2q() + *) +function av_q2d(a: TAVRational): cdouble; {$IFDEF HasInline}inline;{$ENDIF} + +(** + * Reduce a fraction. + * + * This is useful for framerate calculations. + * + * @param[out] dst_num Destination numerator + * @param[out] dst_den Destination denominator + * @param[in] num Source numerator + * @param[in] den Source denominator + * @param[in] max Maximum allowed values for `dst_num` & `dst_den` + * @return 1 if the operation is exact, 0 otherwise + *) +function av_reduce(dst_num: PCint; dst_den: PCint; num: cint64; den: cint64; max: cint64): cint; + cdecl; external av__util; + +(** + * Multiply two rationals. + * @param b First rational + * @param c Second rational + * @return b*c + *) +function av_mul_q(b: TAVRational; c: TAVRational): TAVRational; + cdecl; external av__util; {av_const} + +(** + * Divide one rational by another. + * @param b First rational + * @param c Second rational + * @return b/c + *) +function av_div_q(b: TAVRational; c: TAVRational): TAVRational; + cdecl; external av__util; {av_const} + +(** + * Add two rationals. + * @param b First rational + * @param c Second rational + * @return b+c + *) +function av_add_q(b: TAVRational; c: TAVRational): TAVRational; + cdecl; external av__util; {av_const} + +(** + * Subtract one rational from another. + * @param b First rational + * @param c Second rational + * @return b-c + *) +function av_sub_q(b: TAVRational; c: TAVRational): TAVRational; + cdecl; external av__util; {av_const} + +(** + * Invert a rational. + * @param q value + * @return 1 / q + *) +function av_inv_q(q: TAVRational): TAVRational; {$IFDEF HasInline}inline;{$ENDIF} + +(** + * Convert a double precision floating point number to a rational. + * + * In case of infinity, the returned value is expressed as `{1, 0}` or + * `{-1, 0}` depending on the sign. + * + * @param d `double` to convert + * @param max Maximum allowed numerator and denominator + * @return `d` in AVRational form + * @see av_q2d() + *) +function av_d2q(d: cdouble; max: cint): TAVRational; + cdecl; external av__util; {av_const} + +(** + * Find which of the two rationals is closer to another rational. + * + * @param q Rational to be compared against + * @param q1,q2 Rationals to be tested + * @return One of the following values: + * - 1 if `q1` is nearer to `q` than `q2` + * - -1 if `q2` is nearer to `q` than `q1` + * - 0 if they have the same distance + *) +function av_nearer_q(q, q1, q2: TAVRational): cint; + cdecl; external av__util; + +(** + * Find the value in a list of rationals nearest a given reference rational. + * + * @param q Reference rational + * @param q_list Array of rationals terminated by `{0, 0}` + * @return Index of the nearest value found in the array + *) +function av_find_nearest_q_idx(q: TAVRational; q_list: {const} PAVRationalArray): cint; + cdecl; external av__util; + +(** + * Convert an AVRational to a IEEE 32-bit `float` expressed in fixed-point + * format. + * + * @param q Rational to be converted + * @return Equivalent floating-point value, expressed as an unsigned 32-bit + * integer. + * @note The returned value is platform-indepedant. + *) +function av_q2intfloat(q: TAVRational): cuint32; + cdecl; external av__util; + +implementation + +function av_cmp_q (a: TAVRational; b: TAVRational): cint; {$IFDEF HasInline}inline;{$ENDIF} +var + tmp: cint64; +begin + tmp := a.num * cint64(b.den) - b.num * cint64(a.den); + +{ old version + if (tmp <> 0) then + Result := (tmp shr 63) or 1 + else + Result := 0; +} +{ C original: + if(tmp) return ((tmp ^ a.den ^ b.den)>>63)|1; + else if(b.den && a.den) return 0; + else if(a.num && b.num) return (a.num>>31) - (b.num>>31); + else return INT_MIN; +} + + if tmp <> 0 then + Result := ((tmp xor a.den xor b.den) shr 63) or 1 + else if (b.den and a.den) <> 0 then + Result := 0 + else if (a.num and b.num) <> 0 then + Result := (a.num shr 31) - (b.num shr 31) + else + Result := low(cint); + +end; + +function av_q2d(a: TAVRational): cdouble; {$IFDEF HasInline}inline;{$ENDIF} +begin + Result := a.num / a.den; +end; + +function av_inv_q(q: TAVRational): TAVRational; {$IFDEF HasInline}inline;{$ENDIF} +begin + Result.num := q.den; + Result.den := q.num; +end; + +function av_make_q(num, den: cint): TAVRational; {$IFDEF HasInline}inline;{$ENDIF} +begin + Result.num := num; + Result.den := den; +end; + +end. diff --git a/src/lib/ffmpeg-4.0/swresample.pas b/src/lib/ffmpeg-4.0/swresample.pas new file mode 100644 index 00000000..aea02d36 --- /dev/null +++ b/src/lib/ffmpeg-4.0/swresample.pas @@ -0,0 +1,467 @@ +(* + * copyright (c) 2006 Michael Niedermayer + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * This is a part of Pascal porting of ffmpeg. + * - Originally by Victor Zinetz for Delphi and Free Pascal on Windows. + * - For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT + * in the source codes. + * - Changes and updates by the UltraStar Deluxe Team + * + * Conversion of + * + * libswresample/swresample.h: + * version: 0.18.100 + * + *) + + +unit swresample; + +{$IFDEF FPC} + {$MODE DELPHI} + {$PACKENUM 4} (* use 4-byte enums *) + {$PACKRECORDS C} (* C/C++-compatible record packing *) +{$ELSE} + {$MINENUMSIZE 4} (* use 4-byte enums *) +{$ENDIF} + +{$IFDEF DARWIN} + {$linklib swresample} +{$ENDIF} + +interface + +uses + ctypes, + avutil, + rational, + {$IFDEF UNIX} + BaseUnix, + {$ENDIF} + UConfig; + +const + (* + * IMPORTANT: The official FFmpeg C headers change very quickly. Often some + * of the data structures are changed so that they become incompatible with + * older header files. The Pascal headers have to be adjusted to those changes, + * otherwise the application might crash randomly or strange bugs (not + * necessarily related to video or audio due to buffer overflows etc.) might + * occur. + * + * In the past users reported problems with USDX that took hours to fix and + * the problem was an unsupported version of FFmpeg. So we decided to disable + * support for future versions of FFmpeg until the headers are revised by us + * for that version as they otherwise most probably will break USDX. + * + * If the headers do not yet support your FFmpeg version you may want to + * adjust the max. version numbers manually but please note: it may work but + * in many cases it does not. The USDX team does NOT PROVIDE ANY SUPPORT + * for the game if the MAX. VERSION WAS CHANGED. + * + * The only safe way to support new versions of FFmpeg is to add the changes + * of the FFmpeg git repository C headers to the Pascal headers. + * You can accelerate this process by posting a patch with the git changes + * translated to Pascal to our bug tracker (please join our IRC chat before + * you start working on it). Simply adjusting the max. versions is NOT a valid + * fix. + *) + + (* Supported version by this header *) + LIBSWRESAMPLE_MAX_VERSION_MAJOR = 3; + LIBSWRESAMPLE_MAX_VERSION_MINOR = 3; + LIBSWRESAMPLE_MAX_VERSION_RELEASE = 100; + LIBSWRESAMPLE_MAX_VERSION = (LIBSWRESAMPLE_MAX_VERSION_MAJOR * VERSION_MAJOR) + + (LIBSWRESAMPLE_MAX_VERSION_MINOR * VERSION_MINOR) + + (LIBSWRESAMPLE_MAX_VERSION_RELEASE * VERSION_RELEASE); + + (* Min. supported version by this header *) + LIBSWRESAMPLE_MIN_VERSION_MAJOR = 3; + LIBSWRESAMPLE_MIN_VERSION_MINOR = 1; + LIBSWRESAMPLE_MIN_VERSION_RELEASE = 100; + LIBSWRESAMPLE_MIN_VERSION = (LIBSWRESAMPLE_MIN_VERSION_MAJOR * VERSION_MAJOR) + + (LIBSWRESAMPLE_MIN_VERSION_MINOR * VERSION_MINOR) + + (LIBSWRESAMPLE_MIN_VERSION_RELEASE * VERSION_RELEASE); + +(* Check if linked versions are supported *) +{$IF (LIBSWRESAMPLE_VERSION < LIBSWRESAMPLE_MIN_VERSION)} + {$MESSAGE Error 'Linked version of libswresample is too old!'} +{$IFEND} + +(* Check if linked version is supported *) +{$IF (LIBSWRESAMPLE_VERSION > LIBSWRESAMPLE_MAX_VERSION)} + {$MESSAGE Error 'Linked version of libswresample is not yet supported!'} +{$IFEND} + +{$IF LIBSWRESAMPLE_VERSION_MAJOR < 1} + SWR_CH_MAX = 32; (* < Maximum number of channels *) +{$ENDIF} + SWR_FLAG_RESAMPLE = 1; (* < Force resampling even if equal sample rate *) + +type +(** Dithering algorithms *) + TSwrDitherType = ( + SWR_DITHER_NONE = 0, + SWR_DITHER_RECTANGULAR, + SWR_DITHER_TRIANGULAR, + SWR_DITHER_TRIANGULAR_HIGHPASS, + + SWR_DITHER_NS = 64, (* < not part of API/ABI *) + SWR_DITHER_NS_LIPSHITZ, + SWR_DITHER_NS_F_WEIGHTED, + SWR_DITHER_NS_MODIFIED_E_WEIGHTED, + SWR_DITHER_NS_IMPROVED_E_WEIGHTED, + SWR_DITHER_NS_SHIBATA, + SWR_DITHER_NS_LOW_SHIBATA, + SWR_DITHER_NS_HIGH_SHIBATA, + SWR_DITHER_NB (* < not part of API/ABI *) + ); + +(** Resampling Engines *) + TSwrEngine = ( + SWR_ENGINE_SWR, (* < SW Resampler *) + SWR_ENGINE_SOXR, (* < SoX Resampler *) + SWR_ENGINE_NB (* < not part of API/ABI *) + ); + +(** Resampling Filter Types *) + TSwrFilterType = ( + SWR_FILTER_TYPE_CUBIC, (* < Cubic *) + SWR_FILTER_TYPE_BLACKMAN_NUTTALL, (* < Blackman Nuttall windowed sinc *) + SWR_FILTER_TYPE_KAISER (* < Kaiser windowed sinc *) + ); + +(** + * The libswresample context. Unlike libavcodec and libavformat, this structure + * is opaque. This means that if you would like to set options, you must use + * the @ref avoptions API and cannot directly set values to members of the + * structure. + *) + PPSwrContext= ^PSwrContext; + PSwrContext = ^TSwrContext; + TSwrContext = record + end; + +{$INCLUDE libavcodec/audioconvert.pas} + +(** + * Get the AVClass for swrContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + *) +function swr_get_class(): PAVClass; + cdecl; external sw__resample; + +(** + * Allocate SwrContext. + * + * If you use this function you will need to set the parameters (manually or + * with swr_alloc_set_opts()) before calling swr_init(). + * + * @see swr_alloc_set_opts(), swr_init(), swr_free() + * @return NULL on error, allocated context otherwise + *) +function swr_alloc(): PSwrContext; + cdecl; external sw__resample; + +(** + * Initialize context after user parameters have been set. + * + * @see av_opt_set_int() + * @see av_opt_set_dict() + * + * @param[in,out] s Swr context to initialize + * @return AVERROR error code in case of failure. + *) +function swr_init(s: PSwrContext): cint; + cdecl; external sw__resample; + +(** + * Check whether an swr context has been initialized or not. + * + * @param[in] s Swr context to check + * @see swr_init() + * @return positive if it has been initialized, 0 if not initialized + *) +function swr_is_initialized(s: PSwrContext): cint; + cdecl; external sw__resample; + +(** + * Allocate SwrContext if needed and set/reset common parameters. + * + * This function does not require s to be allocated with swr_alloc(). On the + * other hand, swr_alloc() can use swr_alloc_set_opts() to set the parameters + * on the allocated context. + * + * @param s existing Swr context if available, or NULL if not + * @param out_ch_layout output channel layout (AV_CH_LAYOUT_* ) + * @param out_sample_fmt output sample format (AV_SAMPLE_FMT_* ). + * @param out_sample_rate output sample rate (frequency in Hz) + * @param in_ch_layout input channel layout (AV_CH_LAYOUT_* ) + * @param in_sample_fmt input sample format (AV_SAMPLE_FMT_* ). + * @param in_sample_rate input sample rate (frequency in Hz) + * @param log_offset logging level offset + * @param log_ctx parent logging context, can be NULL + * + * @see swr_init(), swr_free() + * @return NULL on error, allocated context otherwise + *) +function swr_alloc_set_opts(s: PSwrContext; + out_ch_layout: cint64; out_sample_fmt: TAVSampleFormat; out_sample_rate: cint; + in_ch_layout: cint64; in_sample_fmt: TAVSampleFormat; in_sample_rate: cint; + log_offset: cint; log_ctx: pointer): PSwrContext; + cdecl; external sw__resample; + +(** + * Free the given SwrContext and set the pointer to NULL. + * + * @param[in] s a pointer to a pointer to Swr context + *) +procedure swr_free(s: PPSwrContext); + cdecl; external sw__resample; + +(** + * Closes the context so that swr_is_initialized() returns 0. + * + * The context can be brought back to life by running swr_init(), + * swr_init() can also be used without swr_close(). + * This function is mainly provided for simplifying the usecase + * where one tries to support libavresample and libswresample. + * + * @param[in,out] s Swr context to be closed + *) +procedure swr_close(s: PSwrContext); + cdecl; external sw__resample; + +(** + * Convert audio. + * + * in and in_count can be set to 0 to flush the last few samples out at the + * end. + * + * If more input is provided than output space, then the input will be buffered. + * You can avoid this buffering by using swr_get_out_samples() to retrieve an + * upper bound on the required number of output samples for the given number of + * input samples. Conversion will run directly without copying whenever possible. + * + * @param s allocated Swr context, with parameters set + * @param out output buffers, only the first one need be set in case of packed audio + * @param out_count amount of space available for output in samples per channel + * @param in input buffers, only the first one need to be set in case of packed audio + * @param in_count number of input samples available in one channel + * + * @return number of samples output per channel, negative value on error + *) +function swr_convert(s: PSwrContext; var out_: PByte; out_count: cint; + var in_: {const} PByte; in_count: cint): cint; + cdecl; external sw__resample; + +(** + * Convert the next timestamp from input to output + * timestamps are in 1/(in_sample_rate * out_sample_rate) units. + * + * @note There are 2 slightly differently behaving modes. + * First is when automatic timestamp compensation is not used, (min_compensation >= FLT_MAX) + * in this case timestamps will be passed through with delays compensated + * Second is when automatic timestamp compensation is used, (min_compensation < FLT_MAX) + * in this case the output timestamps will match output sample numbers + * + * @param pts timestamp for the next input sample, INT64_MIN if unknown + * @return the output timestamp for the next output sample + *) +function swr_next_pts(s: PSwrContext; pts: cint64): cint64; + cdecl; external sw__resample; + +(** + * Activate resampling compensation ("soft" compensation). This function is + * internally called when needed in swr_next_pts(). + * + * @param[in,out] s allocated Swr context. If it is not initialized, + * or SWR_FLAG_RESAMPLE is not set, swr_init() is + * called with the flag set. + * @param[in] sample_delta delta in PTS per sample + * @param[in] compensation_distance number of samples to compensate for + * @return >= 0 on success, AVERROR error codes if: + * @li @c s is NULL, + * @li @c compensation_distance is less than 0, + * @li @c compensation_distance is 0 but sample_delta is not, + * @li compensation unsupported by resampler, or + * @li swr_init() fails when called. + *) +function swr_set_compensation(s: PSwrContext; sample_delta: cint; compensation_distance: cint): cint; + cdecl; external sw__resample; + +(** + * Set a customized input channel mapping. + * + * @param[in,out] s allocated Swr context, not yet initialized + * @param[in] channel_map customized input channel mapping (array of channel + * indexes, -1 for a muted channel) + * @return >= 0 on success, or AVERROR error code in case of failure. + *) +function swr_set_channel_mapping(s: PSwrContext; {const} channel_map: pcint): cint; + cdecl; external sw__resample; + +(** + * Generate a channel mixing matrix. + * + * This function is the one used internally by libswresample for building the + * default mixing matrix. It is made public just as a utility function for + * building custom matrices. + * + * @param in_layout input channel layout + * @param out_layout output channel layout + * @param center_mix_level mix level for the center channel + * @param surround_mix_level mix level for the surround channel(s) + * @param lfe_mix_level mix level for the low-frequency effects channel + * @param rematrix_maxval if 1.0, coefficients will be normalized to prevent + * overflow. if INT_MAX, coefficients will not be + * normalized. + * @param[out] matrix mixing coefficients; matrix[i + stride * o] is + * the weight of input channel i in output channel o. + * @param stride distance between adjacent input channels in the + * matrix array + * @param matrix_encoding matrixed stereo downmix mode (e.g. dplii) + * @param log_ctx parent logging context, can be NULL + * @return 0 on success, negative AVERROR code on failure + *) +function swr_build_matrix(in_layout: Pcuint64; out_layout: Pcuint64; + center_mix_level: cdouble; surround_mix_level: cdouble; + lfe_mix_level: cdouble; rematrix_maxval: cdouble; + rematrix_volume: cdouble; matrix: Pcdouble; + stride: cint; matrix_encoding: TAVMatrixEncoding; + log_ctx: pointer): cint; + cdecl; external sw__resample; + +(** + * Set a customized remix matrix. + * + * @param s allocated Swr context, not yet initialized + * @param matrix remix coefficients; matrix[i + stride * o] is + * the weight of input channel i in output channel o + * @param stride offset between lines of the matrix + * @return >= 0 on success, or AVERROR error code in case of failure. + *) +function swr_set_matrix(s: PSwrContext; {const} matrix: pcdouble; stride: cint): cint; + cdecl; external sw__resample; + +(** + * Drops the specified number of output samples. + * + * This function, along with swr_inject_silence(), is called by swr_next_pts() + * if needed for "hard" compensation. + * + * @param s allocated Swr context + * @param count number of samples to be dropped + * + * @return >= 0 on success, or a negative AVERROR code on failure + *) +function swr_drop_output(s: PSwrContext; count: cint): cint; + cdecl; external sw__resample; + +(** + * Injects the specified number of silence samples. + * + * This function, along with swr_drop_output(), is called by swr_next_pts() + * if needed for "hard" compensation. + * + * @param s allocated Swr context + * @param count number of samples to be dropped + * + * @return >= 0 on success, or a negative AVERROR code on failure + *) +function swr_inject_silence(s: PSwrContext; count: cint): cint; + cdecl; external sw__resample; + +(** + * Gets the delay the next input sample will experience relative to the next output sample. + * + * Swresample can buffer data if more input has been provided than available + * output space, also converting between sample rates needs a delay. + * This function returns the sum of all such delays. + * The exact delay is not necessarily an integer value in either input or + * output sample rate. Especially when downsampling by a large value, the + * output sample rate may be a poor choice to represent the delay, similarly + * for upsampling and the input sample rate. + * + * @param s swr context + * @param base timebase in which the returned delay will be: + * @li if it's set to 1 the returned delay is in seconds + * @li if it's set to 1000 the returned delay is in milliseconds + * @li if it's set to the input sample rate then the returned + * delay is in input samples + * @li if it's set to the output sample rate then the returned + * delay is in output samples + * @li if it's the least common multiple of in_sample_rate and + * out_sample_rate then an exact rounding-free delay will be + * returned + * @returns the delay in 1 / @c base units. + *) +function swr_get_delay(s: PSwrContext; base: cint64): cint64; + cdecl; external sw__resample; + +(** + * Find an upper bound on the number of samples that the next swr_convert + * call will output, if called with in_samples of input samples. This + * depends on the internal state, and anything changing the internal state + * (like further swr_convert() calls) will may change the number of samples + * swr_get_out_samples() returns for the same number of input samples. + * + * @param in_samples number of input samples. + * @note any call to swr_inject_silence(), swr_convert(), swr_next_pts() + * or swr_set_compensation() invalidates this limit + * @note it is recommended to pass the correct available buffer size + * to all functions like swr_convert() even if swr_get_out_samples() + * indicates that less would be used. + * @returns an upper bound on the number of samples that the next swr_convert + * will output or a negative value to indicate an error + *) +function swr_get_out_samples(s: PSwrContext; in_samples: cint): cint; + cdecl; external sw__resample; + +(** + * Return the @ref LIBSWRESAMPLE_VERSION_INT constant. + * + * This is useful to check if the build-time libswresample has the same version + * as the run-time one. + * + * @returns the unsigned int-typed version + *) +function swresample_version(): cuint; + cdecl; external sw__resample; + +(** + * Return the swr build-time configuration. + * + * @returns the build-time @c ./configure flags + *) +function swresample_configuration(): PAnsiChar; + cdecl; external sw__resample; + +(** + * Return the swr license. + * + * @returns the license of libswresample, determined at build-time + *) +function swresample_license(): PAnsiChar; + cdecl; external sw__resample; + +implementation + +end. + diff --git a/src/lib/ffmpeg-4.0/swscale.pas b/src/lib/ffmpeg-4.0/swscale.pas new file mode 100644 index 00000000..59391758 --- /dev/null +++ b/src/lib/ffmpeg-4.0/swscale.pas @@ -0,0 +1,439 @@ +(* + * Copyright (C) 2001-2011 Michael Niedermayer + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * FFmpeg Pascal port + * - Ported by the UltraStar Deluxe Team + * + * Conversion of libswscale/swscale.h + * version: 3.0.100 + *) + +unit swscale; + +{$IFDEF FPC} + {$MODE DELPHI } + {$PACKENUM 4} (* use 4-byte enums *) + {$PACKRECORDS C} (* C/C++-compatible record packing *) + {$MACRO ON} (* Turn macro support on *) +{$ELSE} + {$MINENUMSIZE 4} (* use 4-byte enums *) +{$ENDIF} + +{$I switches.inc} (* for ffmpeg defines *) +{$I ff_api-defines.inc} (* FF_API_* defines *) + +{$IFDEF DARWIN} + {$linklib libswscale} +{$ENDIF} + +interface + +uses + ctypes, + avutil, + avcodec, + UConfig; + +const +(* + * IMPORTANT: The official FFmpeg C headers change very quickly. Often some + * of the data structures are changed so that they become incompatible with + * older header files. The Pascal headers have to be adjusted to those changes, + * otherwise the application might crash randomly or strange bugs (not + * necessarily related to video or audio due to buffer overflows etc.) might + * occur. + * + * In the past users reported problems with USDX that took hours to fix and + * the problem was an unsupported version of FFmpeg. So we decided to disable + * support for future versions of FFmpeg until the headers are revised by us + * for that version as they otherwise most probably will break USDX. + * + * If the headers do not yet support your FFmpeg version you may want to + * adjust the max. version numbers manually but please note: it may work but + * in many cases it does not. The USDX team does NOT PROVIDE ANY SUPPORT + * for the game if the MAX. VERSION WAS CHANGED. + * + * The only safe way to support new versions of FFmpeg is to add the changes + * of the FFmpeg git repository C headers to the Pascal headers. + * You can accelerate this process by posting a patch with the git changes + * translated to Pascal to our bug tracker (please join our IRC chat before + * you start working on it). Simply adjusting the max. versions is NOT a valid + * fix. + *) + + (* Max. supported version by this header *) + LIBSWSCALE_MAX_VERSION_MAJOR = 5; + LIBSWSCALE_MAX_VERSION_MINOR = 3; + LIBSWSCALE_MAX_VERSION_RELEASE = 100; + LIBSWSCALE_MAX_VERSION = (LIBSWSCALE_MAX_VERSION_MAJOR * VERSION_MAJOR) + + (LIBSWSCALE_MAX_VERSION_MINOR * VERSION_MINOR) + + (LIBSWSCALE_MAX_VERSION_RELEASE * VERSION_RELEASE); + +(* Check if linked versions are supported *) +{$IF (LIBSWSCALE_VERSION > LIBSWSCALE_MAX_VERSION)} + {$MESSAGE Error 'Linked version of libswscale is not yet supported!'} +{$IFEND} + +type + TQuadCintArray = array[0..3] of cint; + PQuadCintArray = ^TQuadCintArray; + TCintArray = array[0..0] of cint; + PCintArray = ^TCintArray; + TPCuint8Array = array[0..0] of PCuint8; + PPCuint8Array = ^TPCuint8Array; + +(** + * Return the LIBSWSCALE_VERSION_INT constant. + *) +function swscale_version(): cuint; + cdecl; external sw__scale; + +(** + * Return the libswscale build-time configuration. + *) +function swscale_configuration(): PAnsiChar; + cdecl; external sw__scale; + +(** + * Return the libswscale license. + *) +function swscale_license(): PAnsiChar; + cdecl; external sw__scale; + +const + (* values for the flags, the stuff on the command line is different *) + SWS_FAST_BILINEAR = 1; + SWS_BILINEAR = 2; + SWS_BICUBIC = 4; + SWS_X = 8; + SWS_POINT = $10; + SWS_AREA = $20; + SWS_BICUBLIN = $40; + SWS_GAUSS = $80; + SWS_SINC = $100; + SWS_LANCZOS = $200; + SWS_SPLINE = $400; + + SWS_SRC_V_CHR_DROP_MASK = $30000; + SWS_SRC_V_CHR_DROP_SHIFT = 16; + + SWS_PARAM_DEFAULT = 123456; + + SWS_PRINT_INFO = $1000; + + // the following 3 flags are not completely implemented + // internal chrominance subsampling info + SWS_FULL_CHR_H_INT = $2000; + // input subsampling info + SWS_FULL_CHR_H_INP = $4000; + SWS_DIRECT_BGR = $8000; + SWS_ACCURATE_RND = $40000; + SWS_BITEXACT = $80000; + + SWS_MAX_REDUCE_CUTOFF = 0.002; + + SWS_CS_ITU709 = 1; + SWS_CS_FCC = 4; + SWS_CS_ITU601 = 5; + SWS_CS_ITU624 = 5; + SWS_CS_SMPTE170M = 5; + SWS_CS_SMPTE240M = 7; + SWS_CS_DEFAULT = 5; + SWS_CS_BT2020 = 9; + +(** + * Return a pointer to yuv<->rgb coefficients for the given colorspace + * suitable for sws_setColorspaceDetails(). + * + * @param colorspace One of the SWS_CS_* macros. If invalid, + * SWS_CS_DEFAULT is used. + *) +function sws_getCoefficients(colorspace: cint): Pcint; + cdecl; external sw__scale; + +type + + // when used for filters they must have an odd number of elements + // coeffs cannot be shared between vectors + PSwsVector = ^TSwsVector; + TSwsVector = record + coeff: PCdouble; // pointer to the list of coefficients + length: cint; // number of coefficients in the vector + end; + + // vectors can be shared + PSwsFilter = ^TSwsFilter; + TSwsFilter = record + lumH: PSwsVector; + lumV: PSwsVector; + chrH: PSwsVector; + chrV: PSwsVector; + end; + + PSwsContext = ^TSwsContext; + TSwsContext = record + {internal structure} + end; + +(** + * Return a positive value if pix_fmt is a supported input format, 0 + * otherwise. + *) +function sws_isSupportedInput(pix_fmt: TAVPixelFormat): cint; + cdecl; external sw__scale; + +(** + * Return a positive value if pix_fmt is a supported output format, 0 + * otherwise. + *) +function sws_isSupportedOutput(pix_fmt: TAVPixelFormat): cint; + cdecl; external sw__scale; + +(** + * @param[in] pix_fmt the pixel format + * @return a positive value if an endianness conversion for pix_fmt is + * supported, 0 otherwise. + *) +function sws_isSupportedEndiannessConversion(pix_fmt: TAVPixelFormat): cint; + cdecl; external sw__scale; + +(** + * Allocate an empty SwsContext. This must be filled and passed to + * sws_init_context(). For filling see AVOptions, options.c and + * sws_setColorspaceDetails(). + *) +function sws_alloc_context(): PSwsContext; + cdecl; external sw__scale; + +(** + * Initialize the swscaler context sws_context. + * + * @return zero or positive value on success, a negative value on + * error + *) +function sws_init_context(sws_context: PSwsContext; srcFilter: PSwsFilter; dstFilter: PSwsFilter): cint; + cdecl; external sw__scale; + +(** + * Free the swscaler context swsContext. + * If swsContext is NULL, then does nothing. + *) +procedure sws_freeContext(swsContext: PSwsContext); + cdecl; external sw__scale; + +(** + * Allocate and return a SwsContext. You need it to perform + * scaling/conversion operations using sws_scale(). + * + * @param srcW the width of the source image + * @param srcH the height of the source image + * @param srcFormat the source image format + * @param dstW the width of the destination image + * @param dstH the height of the destination image + * @param dstFormat the destination image format + * @param flags specify which algorithm and options to use for rescaling + * @param param extra parameters to tune the used scaler + * For SWS_BICUBIC param[0] and [1] tune the shape of the basis + * function, param[0] tunes f(1) and param[1] f??(1) + * For SWS_GAUSS param[0] tunes the exponent and thus cutoff + * frequency + * For SWS_LANCZOS param[0] tunes the width of the window function + * @return a pointer to an allocated context, or NULL in case of error + * @note this function is to be removed after a saner alternative is + * written + *) +function sws_getContext(srcW: cint; srcH: cint; srcFormat: TAVPixelFormat; + dstW: cint; dstH: cint; dstFormat: TAVPixelFormat; + flags: cint; srcFilter: PSwsFilter; + dstFilter: PSwsFilter; param: {const} PCdouble): PSwsContext; + cdecl; external sw__scale; + +(** + * Scale the image slice in srcSlice and put the resulting scaled + * slice in the image in dst. A slice is a sequence of consecutive + * rows in an image. + * + * Slices have to be provided in sequential order, either in + * top-bottom or bottom-top order. If slices are provided in + * non-sequential order the behavior of the function is undefined. + * + * @param c the scaling context previously created with + * sws_getContext() + * @param srcSlice the array containing the pointers to the planes of + * the source slice + * @param srcStride the array containing the strides for each plane of + * the source image + * @param srcSliceY the position in the source image of the slice to + * process, that is the number (counted starting from + * zero) in the image of the first row of the slice + * @param srcSliceH the height of the source slice, that is the number + * of rows in the slice + * @param dst the array containing the pointers to the planes of + * the destination image + * @param dstStride the array containing the strides for each plane of + * the destination image + * @return the height of the output slice + *) +function sws_scale(c: PSwsContext; {const} srcSlice: PPCuint8Array; + {const} srcStride: PCintArray; srcSliceY: cint; srcSliceH: cint; + {const} dst: PPCuint8Array; {const} dstStride: PCintArray): cint; + cdecl; external sw__scale; + +(** + * @param dstRange flag indicating the while-black range of the output (1=jpeg / 0=mpeg) + * @param srcRange flag indicating the while-black range of the input (1=jpeg / 0=mpeg) + * @param table the yuv2rgb coefficients describing the output yuv space, normally ff_yuv2rgb_coeffs[x] + * @param inv_table the yuv2rgb coefficients describing the input yuv space, normally ff_yuv2rgb_coeffs[x] + * @param brightness 16.16 fixed point brightness correction + * @param contrast 16.16 fixed point contrast correction + * @param saturation 16.16 fixed point saturation correction + * @return -1 if not supported + *) +function sws_setColorspaceDetails(c: PSwsContext; inv_table: PQuadCintArray; + srcRange: cint; table: PQuadCintArray; dstRange: cint; + brightness: cint; contrast: cint; saturation: cint): cint; + cdecl; external sw__scale; + +(** + * @return -1 if not supported + *) +function sws_getColorspaceDetails(c: PSwsContext; var inv_table: PQuadCintArray; + var srcRange: cint; var table: PQuadCintArray; var dstRange: cint; + var brightness: cint; var contrast: cint; var saturation: cint): cint; + cdecl; external sw__scale; + +(** + * Allocate and return an uninitialized vector with length coefficients. + *) +function sws_allocVec(length: cint): PSwsVector; + cdecl; external sw__scale; + +(** + * Return a normalized Gaussian curve used to filter stuff + * quality = 3 is high quality, lower is lower quality. + *) +function sws_getGaussianVec(variance: cdouble; quality: cdouble): PSwsVector; + cdecl; external sw__scale; + +(** + * Scale all the coefficients of a by the scalar value. + *) +procedure sws_scaleVec(a: PSwsVector; scalar: cdouble); + cdecl; external sw__scale; + +(** + * Scale all the coefficients of a so that their sum equals height. + *) +procedure sws_normalizeVec(a: PSwsVector; height: cdouble); + cdecl; external sw__scale; + +{$IFDEF FF_API_SWS_VECTOR} +function sws_getConstVec(c: cdouble; length: cint): PSwsVector; + cdecl; external sw__scale; deprecated; +function sws_getIdentityVec: PSwsVector; + cdecl; external sw__scale; deprecated; +procedure sws_convVec(a: PSwsVector; b: PSwsVector); + cdecl; external sw__scale; deprecated; +procedure sws_addVec(a: PSwsVector; b: PSwsVector); + cdecl; external sw__scale; deprecated; +procedure sws_subVec(a: PSwsVector; b: PSwsVector); + cdecl; external sw__scale; deprecated; +procedure sws_shiftVec(a: PSwsVector; shift: cint); + cdecl; external sw__scale; deprecated; +function sws_cloneVec(a: PSwsVector): PSwsVector; + cdecl; external sw__scale; deprecated; +procedure sws_printVec2(a: PSwsVector; + log_ctx: PAVClass; // PAVClass is declared in avcodec.pas + log_level: cint); + cdecl; external sw__scale; deprecated; +{$ENDIF} + +procedure sws_freeVec(a: PSwsVector); + cdecl; external sw__scale; + +function sws_getDefaultFilter(lumaGBlur: cfloat; chromaGBlur: cfloat; + lumaSharpen: cfloat; chromaSharpen: cfloat; + chromaHShift: cfloat; chromaVShift: cfloat; + verbose: cint): PSwsFilter; + cdecl; external sw__scale; + +procedure sws_freeFilter(filter: PSwsFilter); + cdecl; external sw__scale; + +(** + * Check if context can be reused, otherwise reallocates a new one. + * + * If context is NULL, just calls sws_getContext() to get a new + * context. Otherwise, checks if the parameters are the ones already + * saved in context. If that is the case, returns the current + * context. Otherwise, frees context and gets a new context with + * the new parameters. + * + * Be warned that srcFilter and dstFilter are not checked, they + * are assumed to remain the same. + *) +function sws_getCachedContext(context: PSwsContext; + srcW: cint; srcH: cint; srcFormat: TAVPixelFormat; + dstW: cint; dstH: cint; dstFormat: TAVPixelFormat; + flags: cint; srcFilter: PSwsFilter; + dstFilter: PSwsFilter; param: PCdouble): PSwsContext; + cdecl; external sw__scale; + +(** + * Convert an 8bit paletted frame into a frame with a color depth of 32-bits. + * + * The output frame will have the same packed format as the palette. + * + * @param src source frame buffer + * @param dst destination frame buffer + * @param num_pixels number of pixels to convert + * @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src + *) +procedure sws_convertPalette8ToPacked32({const} src: PPCuint8Array; + dst: PPCuint8Array; + num_pixels: cint; + {const} palette: PPCuint8Array); + cdecl; external sw__scale; + +(** + * Convert an 8bit paletted frame into a frame with a color depth of 24 bits. + * + * With the palette format "ABCD", the destination frame ends up with the format "ABC". + * + * @param src source frame buffer + * @param dst destination frame buffer + * @param num_pixels number of pixels to convert + * @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src + *) +procedure sws_convertPalette8ToPacked24({const} src: PPCuint8Array; + dst: PPCuint8Array; + num_pixels: cint; + {const} palette: PPCuint8Array); + cdecl; external sw__scale; + +(** + * Get the AVClass for swsContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + *) +function sws_get_class(): {const} PAVClass; + cdecl; external sw__scale; + +implementation + +end. diff --git a/src/lib/other/cpucount.pas b/src/lib/other/cpucount.pas new file mode 100644 index 00000000..f7a9e27c --- /dev/null +++ b/src/lib/other/cpucount.pas @@ -0,0 +1,76 @@ +{$MODE OBJFPC} + +unit cpucount; +interface +//returns number of cores: a computer with two hyperthreaded cores will report 4 +function GetLogicalCpuCount: Integer; + +implementation + +{$IF defined(windows)} +uses windows; +{$endif} + +{$IF defined(darwin)} +uses ctypes, sysctl; +{$endif} + +{$IFDEF Linux} +uses ctypes; + +const _SC_NPROCESSORS_ONLN = 83; +function sysconf(i: cint): clong; cdecl; external name 'sysconf'; +{$ENDIF} + + +function GetLogicalCpuCount: integer; +// returns a good default for the number of threads on this system +{$IF defined(windows)} +//returns total number of processors available to system including logical hyperthreaded processors +var + i: Integer; + ProcessAffinityMask, SystemAffinityMask: DWORD_PTR; + Mask: DWORD; + SystemInfo: SYSTEM_INFO; +begin + if GetProcessAffinityMask(GetCurrentProcess, ProcessAffinityMask, SystemAffinityMask) + then begin + Result := 0; + for i := 0 to 31 do begin + Mask := DWord(1) shl i; + if (ProcessAffinityMask and Mask)<>0 then + inc(Result); + end; + end else begin + //can't get the affinity mask so we just report the total number of processors + GetSystemInfo(SystemInfo); + Result := SystemInfo.dwNumberOfProcessors; + end; +end; +{$ELSEIF defined(UNTESTEDsolaris)} + begin + t = sysconf(_SC_NPROC_ONLN); + end; +{$ELSEIF defined(freebsd) or defined(darwin)} +var + mib: array[0..1] of cint; + len: cint; + t: cint; +begin + mib[0] := CTL_HW; + mib[1] := HW_NCPU; + len := sizeof(t); + fpsysctl(pchar(@mib), 2, @t, @len, Nil, 0); + Result:=t; +end; +{$ELSEIF defined(linux)} + begin + Result:=sysconf(_SC_NPROCESSORS_ONLN); + end; + +{$ELSE} + begin + Result:=1; + end; +{$ENDIF} +end. diff --git a/src/lua/ULuaScreenSing.pas b/src/lua/ULuaScreenSing.pas index a9a43349..ebef457b 100644 --- a/src/lua/ULuaScreenSing.pas +++ b/src/lua/ULuaScreenSing.pas @@ -96,7 +96,7 @@ function ULuaScreenSing_SetSettings(L: Plua_State): Integer; cdecl; function ULuaScreenSing_GetSongLines(L: Plua_State): Integer; cdecl; const - ULuaScreenSing_Lib_f: array [0..UIni.IMaxPlayerCount-1] of lual_reg = ( + ULuaScreenSing_Lib_f: array [0..11] of lual_reg = ( (name:'GetScores';func:ULuaScreenSing_GetScores), (name:'GetRating';func:ULuaScreenSing_GetRating), (name:'GetBPM';func:ULuaScreenSing_GetBPM), @@ -405,7 +405,7 @@ function ULuaScreenSing_GetSongLines(L: Plua_State): Integer; cdecl; I, J: Integer; begin Result := 1; - if (Length(Lines) >= 1) then + if (Length(CurrentSong.Lines) >= 1) then begin lua_ClearStack(L); @@ -413,10 +413,10 @@ function ULuaScreenSing_GetSongLines(L: Plua_State): Integer; cdecl; luaL_Error(L, PChar('can''t allocate enough stack space in ULuaScreenSing_GetSongLines')); // lines array table - lua_CreateTable(L, Length(Lines[0].Line), 0); + lua_CreateTable(L, Length(CurrentSong.Lines[0].Line), 0); - for I := 0 to High(Lines[0].Line) do - with Lines[0].Line[I] do + for I := 0 to High(CurrentSong.Lines[0].Line) do + with CurrentSong.Lines[0].Line[I] do begin lua_pushInteger(L, I+1); diff --git a/src/menu/UDisplay.pas b/src/menu/UDisplay.pas index 53886bdb..33c73701 100644 --- a/src/menu/UDisplay.pas +++ b/src/menu/UDisplay.pas @@ -1,8 +1,8 @@ {* UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the + + UltraStar Deluxe WorldParty is the legal property of its developers, + whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see + along with this program. Check "LICENSE" file. If not, see . *} @@ -31,15 +31,16 @@ interface {$I switches.inc} uses - UCommon, + dglOpenGL, Math, sdl2, - dglOpenGL, SysUtils, + UCommon, + UHookableEvent, UMenu, - UPath, UMusic, - UHookableEvent; + UPath, + UTexture; type TDisplay = class @@ -57,7 +58,7 @@ TDisplay = class FadeTex: array[0..1] of GLuint; TexW, TexH: Cardinal; - + FPSCounter: cardinal; NextFPSSwap: cardinal; @@ -77,6 +78,9 @@ TDisplay = class Console_Draw: boolean; Console_ScrollOffset: integer; + // textures for software mouse cursor + Tex_Cursor_Unpressed: TTexture; + Tex_Cursor_Pressed: TTexture; procedure DrawDebugInformation; procedure DrawDebugConsole; @@ -107,7 +111,7 @@ TDisplay = class procedure InitFadeTextures(); procedure ToggleConsole; - + procedure SaveScreenShot; function Draw: boolean; @@ -168,18 +172,17 @@ TDisplay = class implementation uses - TextGL, StrUtils, + TextGL, UCommandLine, UGraphic, UIni, UImage, + ULanguage, ULog, UMain, - UTexture, - UTime, - ULanguage, - UPathUtils; + UPathUtils, + UTime; constructor TDisplay.Create; begin @@ -217,6 +220,9 @@ constructor TDisplay.Create; Cursor_Fade := false; Cursor_HiddenByScreen := true; Cursor_Update := false; + + Tex_Cursor_Unpressed := UTexture.Texture.LoadTexture('Cursor', TEXTURE_TYPE_TRANSPARENT, 0); + Tex_Cursor_Pressed := UTexture.Texture.LoadTexture('Cursor_Pressed', TEXTURE_TYPE_TRANSPARENT, 0); end; destructor TDisplay.Destroy; @@ -321,7 +327,7 @@ function TDisplay.Draw: boolean; begin FadeEnabled := false; end; - + if (FadeEnabled and not FadeFailed) then begin // create fading texture if we're just starting @@ -616,12 +622,7 @@ procedure TDisplay.DrawCursor; glEnable(GL_TEXTURE_2D); glEnable(GL_BLEND); glDisable(GL_DEPTH_TEST); - - if (Cursor_Pressed) and (Tex_Cursor_Pressed.TexNum > 0) then - glBindTexture(GL_TEXTURE_2D, Tex_Cursor_Pressed.TexNum) - else - glBindTexture(GL_TEXTURE_2D, Tex_Cursor_Unpressed.TexNum); - + glBindTexture(GL_TEXTURE_2D, IfThen(Cursor_Pressed, Tex_Cursor_Pressed.TexNum, Tex_Cursor_Unpressed.TexNum)); glBegin(GL_QUADS); glTexCoord2f(0, 0); glVertex2f(DrawX, Cursor_Y); @@ -705,7 +706,7 @@ procedure TDisplay.AbortScreenChange; // and call the OnShow procedure of the previous screen // because it was already called by default fade procedure NextScreen.OnShow; - + end; end; diff --git a/src/menu/UMenu.pas b/src/menu/UMenu.pas index 08e8a508..880cfba5 100644 --- a/src/menu/UMenu.pas +++ b/src/menu/UMenu.pas @@ -58,7 +58,6 @@ TMenu = class Interactions: array of TInteract; SelInteraction: integer; - ButtonPos: integer; Button: array of TButton; SelectsS: array of TSelectSlide; @@ -114,7 +113,6 @@ TMenu = class function AddText(X, Y, W: real; Style: integer; Size, ColR, ColG, ColB: real; Align: integer; const Text_: UTF8String; Reflection_: boolean; ReflectionSpacing_: real; Z : real; Writable: boolean): integer; overload; // button - procedure SetButtonLength(Length: cardinal); //Function that Set Length of Button Array in one Step instead of register new Memory for every Button function AddButton(ThemeButton: TThemeButton): integer; overload; function AddButton(X, Y, W, H: real; const TexName: IPath): integer; overload; function AddButton(X, Y, W, H: real; const TexName: IPath; Typ: TTextureType; Reflection: boolean): integer; overload; @@ -200,7 +198,6 @@ implementation uses StrUtils, UCommon, - UCovers, UDisplay, UDrawTexture, UGraphic, @@ -245,9 +242,6 @@ constructor TMenu.Create; SetLength(Statics, 0); SetLength(Button, 0); - //Set ButtonPos to Autoset Length - ButtonPos := -1; - Background := nil; RightMbESC := true; @@ -269,8 +263,6 @@ constructor TMenu.Create(Back: string); else BackImg.TexNum := 0; - //Set ButtonPos to Autoset Length - ButtonPos := -1; end; constructor TMenu.Create(Back: string; W, H: integer); @@ -843,19 +835,6 @@ function TMenu.AddText(X, Y, W: real; Result := TextNum; end; -//Function that Set Length of Button boolean in one Step instead of register new Memory for every Button -procedure TMenu.SetButtonLength(Length: cardinal); -begin - if (ButtonPos = -1) and (Length > 0) then - begin - //Set Length of Button - SetLength(Button, Length); - - //Set ButtonPos to start with 0 - ButtonPos := 0; - end; -end; - // Method to add a button in our TMenu. It returns the assigned ButtonNumber function TMenu.AddButton(ThemeButton: TThemeButton): integer; var @@ -937,18 +916,9 @@ function TMenu.AddButton(X, Y, W, H, ColR, ColG, ColB, Int, DColR, DColG, DColB, Reflection: boolean; ReflectionSpacing, DeSelectReflectionSpacing: real): integer; begin - // adds button - //SetLength is used once to reduce Memory usement - if (ButtonPos <> -1) then - begin - Result := ButtonPos; - Inc(ButtonPos) - end - else //Old Method -> Reserve new Memory for every Button - begin - Result := Length(Button); - SetLength(Button, Result + 1); - end; + // add button + Result := Length(Button); + SetLength(Button, Result+1); // colorize hack if (Typ = TEXTURE_TYPE_COLORIZED) then @@ -1476,18 +1446,10 @@ function TMenu.AddSelectSlide(X, Y, W, H, SkipX, SBGW, ColR, ColG, ColB, Int, DC SelectsS[S].SBGInt := SBGInt; SelectsS[S].SBGDInt := SBGDInt; - SelectsS[High(SelectsS)].Tex_SelectS_ArrowL := Tex_SelectS_ArrowL; SelectsS[High(SelectsS)].Tex_SelectS_ArrowL.X := X + W + SkipX; - SelectsS[High(SelectsS)].Tex_SelectS_ArrowL.Y := Y + (H - Tex_SelectS_ArrowL.H) / 2; - SelectsS[High(SelectsS)].Tex_SelectS_ArrowL.W := Tex_SelectS_ArrowL.W; - SelectsS[High(SelectsS)].Tex_SelectS_ArrowL.H := Tex_SelectS_ArrowL.H; - - - SelectsS[High(SelectsS)].Tex_SelectS_ArrowR := Tex_SelectS_ArrowR; - SelectsS[High(SelectsS)].Tex_SelectS_ArrowR.X := X + W + SkipX + SBGW - Tex_SelectS_ArrowR.W; - SelectsS[High(SelectsS)].Tex_SelectS_ArrowR.Y := Y + (H - Tex_SelectS_ArrowR.H) / 2; - SelectsS[High(SelectsS)].Tex_SelectS_ArrowR.W := Tex_SelectS_ArrowR.W; - SelectsS[High(SelectsS)].Tex_SelectS_ArrowR.H := Tex_SelectS_ArrowR.H; + SelectsS[High(SelectsS)].Tex_SelectS_ArrowL.Y := Y + (H - SelectsS[High(SelectsS)].Tex_SelectS_ArrowL.H) / 2; + SelectsS[High(SelectsS)].Tex_SelectS_ArrowR.X := X + W + SkipX + SBGW - SelectsS[High(SelectsS)].Tex_SelectS_ArrowR.W; + SelectsS[High(SelectsS)].Tex_SelectS_ArrowR.Y := Y + (H - SelectsS[High(SelectsS)].Tex_SelectS_ArrowR.H) / 2; SelectsS[S].TextureSBG.X := X + W + SkipX; SelectsS[S].TextureSBG.Y := Y; diff --git a/src/menu/UMenuSelectSlide.pas b/src/menu/UMenuSelectSlide.pas index da106aa1..06f5fac9 100644 --- a/src/menu/UMenuSelectSlide.pas +++ b/src/menu/UMenuSelectSlide.pas @@ -1,8 +1,8 @@ {* UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the + + UltraStar Deluxe WorldParty is the legal property of its developers, + whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see + along with this program. Check "LICENSE" file. If not, see . *} @@ -116,7 +116,7 @@ TSelectSlide = class STDColG: real; STDColB: real; STDInt: real; - + // position and size property X: real read Texture.x write Texture.x; property Y: real read Texture.y write Texture.y; @@ -186,6 +186,8 @@ constructor TSelectSlide.Create; SBGDColG := 1; SBGDColB := 1; SBGDInt := 1; + Self.Tex_SelectS_ArrowL := UTexture.Texture.LoadTexture('Select_ArrowLeft', TEXTURE_TYPE_TRANSPARENT, 0); + Self.Tex_SelectS_ArrowR := UTexture.Texture.LoadTexture('Select_ArrowRight', TEXTURE_TYPE_TRANSPARENT, 0); end; procedure TSelectSlide.SetSelect(Value: boolean); @@ -364,7 +366,7 @@ function TSelectSlide.AdjustOptionTextToFit(OptText: UTF8String): UTF8String; Len: integer; begin Result := OptText; - + if (TextureSBG.W > 0) then begin MaxLen := TextureSBG.W - MinSideSpacing * 2; @@ -385,7 +387,7 @@ function TSelectSlide.AdjustOptionTextToFit(OptText: UTF8String): UTF8String; repeat Dec(Len); until (byte(OptText[Len]) and 128) = 0; - + Result := copy(OptText, 1, Len) + '..'; end; end; @@ -471,7 +473,7 @@ procedure TSelectSlide.GenLines; //Free old Space used by Texts for I := Low(TextOpt) to High(TextOpt) do TextOpt[I].Free; - + SetLength (TextOpt, Lines); for I := Low(TextOpt) to High(TextOpt) do @@ -520,7 +522,7 @@ function TSelectSlide.OnClick(X, Y: Real): TMouseClickAction; var AreaW: Real; begin - // default: press return on click + // default: press return on click Result := maReturn; // use left sides to inc or dec selection by click diff --git a/src/menu/UMenuText.pas b/src/menu/UMenuText.pas index 47cc8685..17076fc0 100644 --- a/src/menu/UMenuText.pas +++ b/src/menu/UMenuText.pas @@ -1,8 +1,8 @@ {* UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the + + UltraStar Deluxe WorldParty is the legal property of its developers, + whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see + along with this program. Check "LICENSE" file. If not, see . *} @@ -94,7 +94,6 @@ implementation uses UGraphic, UDisplay, - UUnicodeStringHelper, {$IFDEF MSWINDOWS} LazUTF8, {$ELSE} diff --git a/src/screens/UScreenAbout.pas b/src/screens/UScreenAbout.pas index f03168e4..5ddfbd3f 100644 --- a/src/screens/UScreenAbout.pas +++ b/src/screens/UScreenAbout.pas @@ -56,14 +56,15 @@ TScreenAbout = class(TMenu) implementation uses + Classes, + UCommon, UGraphic, UDataBase, - USongs, - USong, ULanguage, - UCommon, - Classes, ULog, + UScreenDevelopers, + USongs, + USong, UUnicodeUtils; function TScreenAbout.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; @@ -92,26 +93,19 @@ function TScreenAbout.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Press SDLK_RETURN: begin //Developers Button - if Interaction = 2 then + if Interaction = 1 then begin AudioPlayback.PlaySound(SoundLib.Back); ScreenDevelopers.SetOverview(''); FadeTo(@ScreenDevelopers); end; //Exit Button Pressed - if Interaction = 1 then + if Interaction = 0 then begin AudioPlayback.PlaySound(SoundLib.Back); FadeTo(@ScreenMain); end; - // ultrastar deluxe team credits - if Interaction = 0 then - begin - AudioPlayback.PlaySound(SoundLib.Back); - ScreenDevelopers.SetOverview('USDX'); - FadeTo(@ScreenDevelopers); - end; end; SDLK_LEFT: begin @@ -142,7 +136,6 @@ constructor TScreenAbout.Create; LoadFromTheme(Theme.AboutMain); AboutStaticBghelper := AddStatic(Theme.AboutMain.StaticBghelper); - AddButton(Theme.AboutMain.ButtonCredits); AddButton(Theme.AboutMain.ButtonExit); AddButton(Theme.AboutMain.ButtonDevelopers); @@ -152,6 +145,8 @@ constructor TScreenAbout.Create; procedure TScreenAbout.OnShow; begin inherited; + if not Assigned(UGraphic.ScreenDevelopers) then //load the screen only the first time + UGraphic.ScreenDevelopers := TScreenDevelopers.Create(); //Set Overview Text: SetOverview; diff --git a/src/screens/UScreenJukebox.pas b/src/screens/UScreenJukebox.pas index ab1bef0d..827f2c8b 100644 --- a/src/screens/UScreenJukebox.pas +++ b/src/screens/UScreenJukebox.pas @@ -2038,6 +2038,8 @@ constructor TScreenJukebox.Create; procedure TScreenJukebox.OnShow; begin inherited; + if not Assigned(UGraphic.ScreenJukeboxOptions) then //load the screen only the first time + UGraphic.ScreenJukeboxOptions := TScreenJukeboxOptions.Create(); Log.LogStatus('Begin', 'OnShow'); @@ -2371,8 +2373,8 @@ procedure TScreenJukebox.OnSentenceChange(SentenceIndex: cardinal); (not Lyrics.IsQueueFull) do begin // add the next line to the queue or a dummy if no more lines are available - if (Lyrics.LineCounter <= High(Lines[0].Line)) then - Lyrics.AddLine(@Lines[0].Line[Lyrics.LineCounter]) + if (Lyrics.LineCounter <= High(CurrentSong.Lines[0].Line)) then + Lyrics.AddLine(@CurrentSong.Lines[0].Line[Lyrics.LineCounter]) else Lyrics.AddLine(nil); end; @@ -2602,9 +2604,9 @@ procedure TScreenJukebox.PlayMusic(ID: integer; ShowList: boolean); // initialize lyrics by filling its queue while (not Lyrics.IsQueueFull) and - (Lyrics.LineCounter <= High(Lines[0].Line)) do + (Lyrics.LineCounter <= High(CurrentSong.Lines[0].Line)) do begin - Lyrics.AddLine(@Lines[0].Line[Lyrics.LineCounter]); + Lyrics.AddLine(@CurrentSong.Lines[0].Line[Lyrics.LineCounter]); end; Max := 9; diff --git a/src/screens/UScreenJukeboxPlaylist.pas b/src/screens/UScreenJukeboxPlaylist.pas index 20805e95..4346cac8 100644 --- a/src/screens/UScreenJukeboxPlaylist.pas +++ b/src/screens/UScreenJukeboxPlaylist.pas @@ -1,8 +1,8 @@ {* UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the + + UltraStar Deluxe WorldParty is the legal property of its developers, + whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see + along with this program. Check "LICENSE" file. If not, see . *} @@ -68,14 +68,15 @@ implementation uses UGraphic, - UMain, UIni, - UTexture, ULanguage, + UMain, UParty, - USong, UPlaylist, + USong, USongs, + UScreenJukebox, + UTexture, UUnicodeUtils; function TScreenJukeboxPlaylist.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; @@ -140,7 +141,7 @@ function TScreenJukeboxPlaylist.ParseInput(PressedKey: cardinal; CharCode: UCS4C begin SetPlaylists; end; - + end; end; end; @@ -234,7 +235,8 @@ procedure TScreenJukeboxPlaylist.SetPlaylists; procedure TScreenJukeboxPlaylist.OnShow; begin inherited; - + if not Assigned(UGraphic.ScreenJukebox) then //load the screen only the first time + UGraphic.ScreenJukebox := TScreenJukebox.Create(); end; procedure TScreenJukeboxPlaylist.InitJukebox; @@ -317,4 +319,3 @@ procedure TScreenJukeboxPlaylist.SetAnimationProgress(Progress: real); end; end. - diff --git a/src/screens/UScreenMain.pas b/src/screens/UScreenMain.pas index 100cda51..75bcbe6c 100644 --- a/src/screens/UScreenMain.pas +++ b/src/screens/UScreenMain.pas @@ -25,74 +25,67 @@ interface -{$IFDEF FPC} - {$MODE OBJFPC} -{$ENDIF} +{$MODE OBJFPC} {$I switches.inc} uses - ULog, MD5, - UMenu, sdl2, + SysUtils, UDisplay, - UMusic, UFiles, + UMenu, + UMusic, + ULog, USong, - UScreenSong, - SysUtils, + UTexture, UThemes; type - TScreenMain = class(TMenu) - - public - TextDescription: integer; - TextDescriptionLong: integer; - - constructor Create; override; - function ParseInput(PressedKey: Cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; override; - procedure OnShow; override; - procedure SetInteraction(Num: integer); override; - procedure SetAnimationProgress(Progress: real); override; - procedure SetLoadProgress(Progress: string); -// procedure UpdateTextDescriptionFor(IID: integer); virtual; - - private - function CheckSongs(): boolean; - // ButtonSoloIID, ButtonMultiIID, ButtonJukeboxIID, ButtonStatIID, ButtonOptionsIID, ButtonExitIID, ButtonAboutIID, - - // MapIIDtoDescID: array of integer; - + public + constructor Create(); override; + function ParseInput(PressedKey: Cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; override; + function ParseMouse(MouseButton: integer; BtnDown: boolean; X, Y: integer): boolean; override; + function Draw: boolean; override; + procedure OnShow; override; + procedure SetInteraction(Num: integer); override; + procedure SetAnimationProgress(Progress: real); override; + private + TextDescription, TextDescriptionLong, TextProgressSongs: integer; + PreloadCovers: boolean; //flag to stop to preload covers when exists an user interaction + function CheckSongs(): boolean; end; implementation uses + dglOpenGL, UGraphic, UNote, UIni, - UTexture, USongs, ULanguage, UParty, - USkins, + UScreenPlayerSelection, + UScreenSong, + UScreenPartyOptions, + UScreenJukeboxPlaylist, + UScreenOptions, + UScreenStatMain, + UScreenAbout, UUnicodeUtils; const ITEMS_PER_ROW = 3; // Number of buttons for row of buttons in Main menu. -function TScreenMain.ParseInput(PressedKey: Cardinal; CharCode: UCS4Char; - PressedDown: boolean): boolean; -var - SDL_ModState: word; +function TScreenMain.ParseInput(PressedKey: Cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; begin Result := true; - SDL_ModState := SDL_GetModState and (KMOD_LSHIFT + KMOD_RSHIFT + KMOD_LCTRL + KMOD_RCTRL + KMOD_LALT + KMOD_RALT); if (PressedDown) then begin + Self.PreloadCovers := false; //check normal keys case UCS4UpperCase(CharCode) of Ord('Q'): @@ -108,47 +101,77 @@ function TScreenMain.ParseInput(PressedKey: Cardinal; CharCode: UCS4Char; Result := false; SDLK_RETURN: begin + if (Interaction < 3) and (not Assigned(UGraphic.ScreenSong)) then //loaded in draw, but a fast interaction can finish here in crash + UGraphic.ScreenSong := TScreenSong.Create(); + //reset Party.bPartyGame := false; case Interaction of 0: //solo + begin + if Self.CheckSongs then begin - if Self.CheckSongs then + UGraphic.ScreenSong.Mode := smNormal; + if (Ini.Players >= 0) and (Ini.Players <= 3) then + UNote.PlayersPlay := Ini.Players + 1; + if (Ini.Players = 4) then + UNote.PlayersPlay := 6; + + if Ini.OnSongClick = sSelectPlayer then + FadeTo(@ScreenSong) + else begin - if (Ini.Players >= 0) and (Ini.Players <= 3) then - UNote.PlayersPlay := Ini.Players + 1; - if (Ini.Players = 4) then - UNote.PlayersPlay := 6; - - if Ini.OnSongClick = sSelectPlayer then - FadeTo(@ScreenSong) - else - begin - ScreenName.Goto_SingScreen := false; - FadeTo(@ScreenName, SoundLib.Start); - end; + if not Assigned(UGraphic.ScreenName) then + UGraphic.ScreenName := TScreenName.Create(); + + ScreenName.Goto_SingScreen := false; + FadeTo(@ScreenName, SoundLib.Start); end; end; + end; 1: //party + begin + if Self.CheckSongs then begin - if Self.CheckSongs then - begin - Party.bPartyGame := true; - FadeTo(@ScreenPartyOptions, SoundLib.Start); - end - end; + if not Assigned(UGraphic.ScreenPartyOptions) then //load the screens only the first time + UGraphic.ScreenPartyOptions := TScreenPartyOptions.Create(); + + Party.bPartyGame := true; + FadeTo(@ScreenPartyOptions, SoundLib.Start); + end + end; 2: //jukebox + begin + if not Assigned(UGraphic.ScreenJukeboxPlaylist) then //load the screens only the first time + UGraphic.ScreenJukeboxPlaylist := TScreenJukeboxPlaylist.Create(); + if Self.CheckSongs then FadeTo(@ScreenJukeboxPlaylist, SoundLib.Start); + end; 3: //stats + begin + if not Assigned(UGraphic.ScreenStatMain) then //load the screens only the first time + UGraphic.ScreenStatMain := TScreenStatMain.Create(); + if Self.CheckSongs then FadeTo(@ScreenStatMain, SoundLib.Start); + end; 4: //options - FadeTo(@ScreenOptions, SoundLib.Start); + begin + if not Assigned(UGraphic.ScreenOptions) then //load the screens only the first time + UGraphic.ScreenOptions := TScreenOptions.Create(); + + FadeTo(@UGraphic.ScreenOptions, SoundLib.Start); + end; 5: //exit Result := false; 6: //about + begin + if not Assigned(UGraphic.ScreenAbout) then //load the screens only the first time + UGraphic.ScreenAbout := TScreenAbout.Create(); + FadeTo(@ScreenAbout, SoundLib.Start); + end; end; end; SDLK_DOWN: @@ -163,10 +186,15 @@ function TScreenMain.ParseInput(PressedKey: Cardinal; CharCode: UCS4Char; end end; +function TScreenMain.ParseMouse(MouseButton: integer; BtnDown: boolean; X, Y: integer): boolean; +begin + Result := inherited; + Self.PreloadCovers := false; +end; -constructor TScreenMain.Create; +constructor TScreenMain.Create(); begin - inherited Create; + inherited Create(); {** * Attention ^^: * New Creation Order needed because of LoadFromTheme @@ -175,8 +203,9 @@ constructor TScreenMain.Create; * Then LoadFromTheme * after LoadFromTheme the Buttons and Selects *} - TextDescription := AddText(Theme.Main.TextDescription); + TextDescription := AddText(Theme.Main.TextDescription); TextDescriptionLong := AddText(Theme.Main.TextDescriptionLong); + TextProgressSongs := AddText(Theme.Main.ProgressSongsText); LoadFromTheme(Theme.Main); @@ -189,8 +218,36 @@ constructor TScreenMain.Create; AddButton(Theme.Main.ButtonExit); AddButton(Theme.Main.ButtonAbout); - Interaction := 0; + Self.PreloadCovers := true; +end; + +function TScreenMain.Draw: boolean; +var + ProgressSong: TProgressSong; +begin + inherited Draw; + ProgressSong := USongs.Songs.GetLoadProgress(); + if not ProgressSong.Finished then //while song loading show progress + begin + Self.Text[TextDescriptionLong].Visible := false; + Self.Text[TextProgressSongs].Text := ProgressSong.Folder+': '+IntToStr(ProgressSong.Total); + end + else //after finish song loading, return to normal mode, close popup and start to preload covers + begin + Self.Text[TextDescriptionLong].Visible := true; + Self.Text[TextProgressSongs].Visible := false; + if ProgressSong.Total > 0 then + UGraphic.ScreenPopupError.Visible := false; + + if not Assigned(UGraphic.ScreenSong) then + UGraphic.ScreenSong := TScreenSong.Create() + else if Self.PreloadCovers then //start to preload covers slowly if don't exists user interaction + UGraphic.ScreenSong.LoadCovers() + else //enable again after user interaction + Self.PreloadCovers := true; + end; + Result := true; end; procedure TScreenMain.OnShow; @@ -199,8 +256,6 @@ procedure TScreenMain.OnShow; SoundLib.StartBgMusic; - ScreenSong.Mode := smNormal; - {** * Clean up TPartyGame here * at the moment there is no better place for this @@ -222,21 +277,15 @@ procedure TScreenMain.SetAnimationProgress(Progress: real); Statics[0].Texture.ScaleH := Progress; end; -procedure TScreenMain.SetLoadProgress(Progress: string); -begin - Text[3].Text := Progress; -end; - function TScreenMain.CheckSongs(): boolean; begin Result := false; - if Songs.LoadingSongs then - ScreenPopupError.ShowPopup(Language.Translate('ERROR_LOADING_SONGS')) + if USongs.Songs.GetLoadProgress().Folder <> '' then + UGraphic.ScreenPopupError.ShowPopup(Language.Translate('ERROR_LOADING_SONGS')) else if Songs.SongList.Count = 0 then - ScreenPopupError.ShowPopup(Language.Translate('ERROR_NO_SONGS')) + UGraphic.ScreenPopupError.ShowPopup(Language.Translate('ERROR_NO_SONGS')) else Result := true; - end; end. diff --git a/src/screens/UScreenOpen.pas b/src/screens/UScreenOpen.pas index 9d88ef34..b1e6de64 100644 --- a/src/screens/UScreenOpen.pas +++ b/src/screens/UScreenOpen.pas @@ -1,8 +1,8 @@ {* UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the + + UltraStar Deluxe WorldParty is the legal property of its developers, + whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see + along with this program. Check "LICENSE" file. If not, see . *} @@ -209,20 +209,4 @@ procedure TScreenOpen.OnShow; Text[fTextN].Text := fFilename.ToUTF8(); end; -(* -function TScreenEditSub.Draw: boolean; -var - Min: integer; - Sec: integer; - AktBeat: integer; -begin - -end; - -procedure TScreenEditSub.Finish; -begin -// -end; -*) - end. diff --git a/src/screens/UScreenOptions.pas b/src/screens/UScreenOptions.pas index 454e0456..02c2ec03 100644 --- a/src/screens/UScreenOptions.pas +++ b/src/screens/UScreenOptions.pas @@ -1,9 +1,9 @@ {* UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the - COPYRIGHT file distributed with this source distribution. + + UltraStar Deluxe WorldParty is the legal property of its developers, + whose names are too numerous to list here. Please refer to the + COPYRIGHT file distributed with this source distribution. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,8 +16,8 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see - . + along with this program. Check "LICENSE" file. If not, see + . *} @@ -51,7 +51,7 @@ TScreenOptions = class(TMenu) ButtonInputIID, ButtonLyricsIID, ButtonThemesIID, - ButtonRecordIID, + ButtonMicrophonesIID, ButtonAdvancedIID, ButtonNetworkIID, ButtonWebcamIID, @@ -77,6 +77,16 @@ implementation UGraphic, UDatabase, ULanguage, + UScreenOptionsGame, + UScreenOptionsGraphics, + UScreenOptionsSound, + UScreenOptionsLyrics, + UScreenOptionsThemes, + UScreenOptionsMicrophones, + UScreenOptionsAdvanced, + UScreenOptionsNetwork, + UScreenOptionsWebcam, + UScreenOptionsJukebox, UWebcam, UUnicodeUtils; @@ -97,95 +107,108 @@ function TScreenOptions.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Pre // check special keys case PressedKey of SDLK_ESCAPE, - SDLK_BACKSPACE : - begin - Ini.Save; - AudioPlayback.PlaySound(SoundLib.Back); - FadeTo(@ScreenMain); - end; + SDLK_BACKSPACE: + begin + Ini.Save; + AudioPlayback.PlaySound(SoundLib.Back); + FadeTo(@ScreenMain); + end; SDLK_RETURN: + begin + if Interaction = ButtonGameIID then begin - if Interaction = ButtonGameIID then - begin - AudioPlayback.PlaySound(SoundLib.Start); - FadeTo(@ScreenOptionsGame); - end; + if not Assigned(UGraphic.ScreenOptionsGame) then + UGraphic.ScreenOptionsGame := TScreenOptionsGame.Create(); - if Interaction = ButtonGraphicsIID then - begin - AudioPlayback.PlaySound(SoundLib.Start); - FadeTo(@ScreenOptionsGraphics); - end; + AudioPlayback.PlaySound(SoundLib.Start); + FadeTo(@ScreenOptionsGame); + end + else if Interaction = ButtonGraphicsIID then + begin + if not Assigned(UGraphic.ScreenOptionsGraphics) then + UGraphic.ScreenOptionsGraphics := TScreenOptionsGraphics.Create(); - if Interaction = ButtonSoundIID then - begin - AudioPlayback.PlaySound(SoundLib.Start); - FadeTo(@ScreenOptionsSound); - end; + AudioPlayback.PlaySound(SoundLib.Start); + FadeTo(@ScreenOptionsGraphics); + end + else if Interaction = ButtonSoundIID then + begin + if not Assigned(UGraphic.ScreenOptionsSound) then + UGraphic.ScreenOptionsSound := TScreenOptionsSound.Create(); - if Interaction = ButtonLyricsIID then - begin - AudioPlayback.PlaySound(SoundLib.Start); - FadeTo(@ScreenOptionsLyrics); - end; + AudioPlayback.PlaySound(SoundLib.Start); + FadeTo(@ScreenOptionsSound); + end + else if Interaction = ButtonLyricsIID then + begin + if not Assigned(UGraphic.ScreenOptionsLyrics) then + UGraphic.ScreenOptionsLyrics := TScreenOptionsLyrics.Create(); - if Interaction = ButtonThemesIID then - begin - AudioPlayback.PlaySound(SoundLib.Start); - FadeTo(@ScreenOptionsThemes); - end; + AudioPlayback.PlaySound(SoundLib.Start); + FadeTo(@ScreenOptionsLyrics); + end + else if Interaction = ButtonThemesIID then + begin + if not Assigned(UGraphic.ScreenOptionsThemes) then + UGraphic.ScreenOptionsThemes := TScreenOptionsThemes.Create(); - if Interaction = ButtonRecordIID then - begin - AudioPlayback.PlaySound(SoundLib.Start); - FadeTo(@ScreenOptionsRecord); - end; + AudioPlayback.PlaySound(SoundLib.Start); + FadeTo(@ScreenOptionsThemes); + end + else if Interaction = ButtonMicrophonesIID then + begin + if not Assigned(UGraphic.ScreenOptionsMicrophones) then + UGraphic.ScreenOptionsMicrophones := TScreenOptionsMicrophones.Create(); - if Interaction = ButtonAdvancedIID then + AudioPlayback.PlaySound(SoundLib.Start); + FadeTo(@ScreenOptionsMicrophones); + end + else if Interaction = ButtonAdvancedIID then + begin + if not Assigned(UGraphic.ScreenOptionsAdvanced) then + UGraphic.ScreenOptionsAdvanced := TScreenOptionsAdvanced.Create(); + + AudioPlayback.PlaySound(SoundLib.Start); + FadeTo(@ScreenOptionsAdvanced); + end + else if Interaction = ButtonNetworkIID then + if High(DataBase.NetworkUser) = -1 then + UGraphic.ScreenPopupError.ShowPopup(ULanguage.Language.Translate('SING_OPTIONS_NETWORK_NO_DLL')) + else begin - AudioPlayback.PlaySound(SoundLib.Start); - FadeTo(@ScreenOptionsAdvanced); - end; + if not Assigned(UGraphic.ScreenOptionsNetwork) then + UGraphic.ScreenOptionsNetwork := TScreenOptionsNetwork.Create(); - if Interaction = ButtonNetworkIID then - begin - if (High(DataBase.NetworkUser) = -1) then - ScreenPopupError.ShowPopup(Language.Translate('SING_OPTIONS_NETWORK_NO_DLL')) - else - begin - AudioPlayback.PlaySound(SoundLib.Back); - FadeTo(@ScreenOptionsNetwork); - end; - end; - - if Interaction = ButtonWebcamIID then - begin AudioPlayback.PlaySound(SoundLib.Back); - FadeTo(@ScreenOptionsWebcam); - end; + FadeTo(@ScreenOptionsNetwork); + end + else if Interaction = ButtonWebcamIID then + begin + if not Assigned(UGraphic.ScreenOptionsWebcam) then + UGraphic.ScreenOptionsWebcam := TScreenOptionsWebcam.Create(); - if Interaction = ButtonJukeboxIID then - begin - if (Songs.SongList.Count >= 1) then - begin - AudioPlayback.PlaySound(SoundLib.Start); - FadeTo(@ScreenOptionsJukebox); - end - else //show error message, No Songs Loaded - ScreenPopupError.ShowPopup(Language.Translate('ERROR_NO_SONGS')); - end; - - if Interaction = ButtonExitIID then - begin - Ini.Save; - AudioPlayback.PlaySound(SoundLib.Back); - FadeTo(@ScreenMain); - end; + AudioPlayback.PlaySound(SoundLib.Back); + FadeTo(@ScreenOptionsWebcam); + end + else if Interaction = ButtonJukeboxIID then + begin + if not Assigned(UGraphic.ScreenOptionsJukebox) then + UGraphic.ScreenOptionsJukebox := TScreenOptionsJukebox.Create(); + + AudioPlayback.PlaySound(SoundLib.Start); + FadeTo(@ScreenOptionsJukebox); + end + else if Interaction = ButtonExitIID then + begin + Ini.Save; + AudioPlayback.PlaySound(SoundLib.Back); + FadeTo(@ScreenMain); end; - SDLK_DOWN: InteractNextRow; - SDLK_UP: InteractPrevRow; - SDLK_RIGHT: InteractNext; - SDLK_LEFT: InteractPrev; + end; + SDLK_DOWN: InteractNextRow; + SDLK_UP: InteractPrevRow; + SDLK_RIGHT: InteractNext; + SDLK_LEFT: InteractPrev; end; end; end; @@ -198,7 +221,7 @@ constructor TScreenOptions.Create; begin OldPos := Length(Button); Result := AddButton(Btn); - if Length(Button) <> OldPos then // check if button was succesfully added + if Length(Button) <> OldPos then // check if button was succesfully added begin IIDvar := High(Interactions); @@ -218,14 +241,14 @@ constructor TScreenOptions.Create; LoadFromTheme(Theme.Options); - // Order is irrelevant to the represenatation, however InteractNext/Prev is not working with a different order + // Order is irrelevant to the represenatation, however InteractNext/Prev is not working with a different order AddButtonChecked(Theme.Options.ButtonGame, OPTIONS_DESC_INDEX_GAME, ButtonGameIID); AddButtonChecked(Theme.Options.ButtonGraphics, OPTIONS_DESC_INDEX_GRAPHICS, ButtonGraphicsIID); AddButtonChecked(Theme.Options.ButtonSound, OPTIONS_DESC_INDEX_SOUND, ButtonSoundIID); AddButtonChecked(Theme.Options.ButtonLyrics, OPTIONS_DESC_INDEX_LYRICS, ButtonLyricsIID); AddButtonChecked(Theme.Options.ButtonThemes, OPTIONS_DESC_INDEX_THEMES, ButtonThemesIID); - AddButtonChecked(Theme.Options.ButtonRecord, OPTIONS_DESC_INDEX_RECORD, ButtonRecordIID); + AddButtonChecked(Theme.Options.ButtonMicrophones, OPTIONS_DESC_INDEX_MICROPHONES, ButtonMicrophonesIID); AddButtonChecked(Theme.Options.ButtonAdvanced, OPTIONS_DESC_INDEX_ADVANCED, ButtonAdvancedIID); AddButtonChecked(Theme.Options.ButtonNetwork, OPTIONS_DESC_INDEX_NETWORK, ButtonNetworkIID); @@ -240,7 +263,7 @@ constructor TScreenOptions.Create; procedure TScreenOptions.OnShow; begin inherited; - // continue possibly stopped bg-music (stopped in record options) + // continue possibly stopped bg-music (stopped in Microphones options) SoundLib.StartBgMusic; end; @@ -251,7 +274,8 @@ procedure TScreenOptions.SetInteraction(Num: integer); end; procedure TScreenOptions.SetAnimationProgress(Progress: real); -var i: integer; +var + i: integer; begin // update all buttons for i := 0 to High(Button) do @@ -259,10 +283,11 @@ procedure TScreenOptions.SetAnimationProgress(Progress: real); end; procedure TScreenOptions.UpdateTextDescriptionFor(IID: integer); -var index: integer; +var + index: integer; begin // Sanity check - if (IID < 0 ) or (IID >= Length(MapIIDtoDescID)) then + if (IID < 0) or (IID >= Length(MapIIDtoDescID)) then Exit; Text[TextDescription].Text := Theme.Options.Description[MapIIDtoDescID[IID]]; diff --git a/src/screens/UScreenOptionsGame.pas b/src/screens/UScreenOptionsGame.pas index fbc706ca..185b000b 100644 --- a/src/screens/UScreenOptionsGame.pas +++ b/src/screens/UScreenOptionsGame.pas @@ -37,8 +37,7 @@ interface type TScreenOptionsGame = class(TMenu) private - Language: integer; - SongMenu: integer; + Language, SongMenu, Sorting, Tabs: integer; procedure ReloadScreen(); procedure ReloadScreens(); protected @@ -60,6 +59,8 @@ implementation ULanguage, UMusic, UScreensong, + UScreenOptions, + USongs, UThemes; function TScreenOptionsGame.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; @@ -150,21 +151,30 @@ constructor TScreenOptionsGame.Create; procedure TScreenOptionsGame.OnShow; begin inherited; - Self.Language := Ini.Language; - Self.SongMenu := Ini.SongMenu; + Self.Language := UIni.Ini.Language; + Self.SongMenu := UIni.Ini.SongMenu; + Self.Sorting := UIni.Ini.Sorting; + Self.Tabs := UIni.Ini.Tabs; Interaction := 0; end; -// Reload all screens, after Language changed +// Reload all screens, after Language changed or screen song after songmenu, sorting or tabs changed procedure TScreenOptionsGame.ReloadScreens(); begin UIni.Ini.Save; - if Self.SongMenu <> UIni.Ini.SongMenu then + if (Self.SongMenu <> UIni.Ini.SongMenu) or (Self.Sorting <> UIni.Ini.Sorting) or (Self.Tabs <> UIni.Ini.Tabs) then begin - UThemes.Theme.ThemeSongLoad(); - UGraphic.ScreenSong.Free(); - UGraphic.ScreenSong := TScreenSong.Create(); - UGraphic.ScreenSong.GenerateThumbnails(); + if ((Self.Sorting <> UIni.Ini.Sorting) or (Self.Tabs <> UIni.Ini.Tabs)) and USongs.Songs.GetLoadProgress().Finished then + USongs.CatSongs.Refresh(); + + if (Self.SongMenu <> UIni.Ini.SongMenu) then + UThemes.Theme.ThemeSongLoad(); + + if USongs.Songs.GetLoadProgress().Finished then + begin + FreeAndNil(UGraphic.ScreenSong); + UGraphic.ScreenSong := TScreenSong.Create(); + end; end; if Self.Language <> UIni.Ini.Language then begin @@ -172,7 +182,8 @@ procedure TScreenOptionsGame.ReloadScreens(); UGraphic.UnLoadScreens(); UThemes.Theme.LoadTheme(UIni.Ini.Theme, UIni.Ini.Color); UGraphic.LoadScreens(); - UGraphic.ScreenSong.GenerateThumbnails(); + UGraphic.ScreenOptions := TScreenOptions.Create(); + UGraphic.ScreenOptionsGame := TScreenOptionsGame.Create(); end; AudioPlayback.PlaySound(SoundLib.Back); FadeTo(@ScreenOptions); diff --git a/src/screens/UScreenOptionsInput.pas b/src/screens/UScreenOptionsInput.pas deleted file mode 100644 index 10bca23b..00000000 --- a/src/screens/UScreenOptionsInput.pas +++ /dev/null @@ -1,209 +0,0 @@ -{* - UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the - COPYRIGHT file distributed with this source distribution. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see - . - *} - - -unit UScreenOptionsInput; - -interface - -{$MODE OBJFPC} - -{$I switches.inc} - -uses - UCommon, - UMenu, - sdl2, - UMusic, - UIni, - UThemes, - UJoystick; - -type - - TByteSet = set of byte; - - TScreenOptionsInput = class(TMenu) - protected - // interaction IDs - ButtonExitIID: integer; - SelectMouse: integer; - SelectJoyPad: integer; - - // values - ActualMouse: integer; - - SoundInteractions: TByteSet; - - WasJoy: boolean; - WasMouse: boolean; - - protected - procedure CheckOption; - - public - constructor Create; override; - function ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; override; - - procedure OnShow; override; - procedure OnHide; override; - - end; - -implementation - -uses - UGraphic, - UDisplay, - UUnicodeUtils, - SysUtils; - -function TScreenOptionsInput.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; -begin - Result := true; - if (PressedDown) then - begin // Key Down - // check normal keys - case UCS4UpperCase(CharCode) of - Ord('Q'): - begin - Result := false; - Exit; - end; - end; - - // check special keys - case PressedKey of - SDLK_ESCAPE, - SDLK_BACKSPACE : - begin - Ini.Save; - AudioPlayback.PlaySound(SoundLib.Back); - FadeTo(@ScreenOptions); - end; - SDLK_RETURN: - begin - if Interaction = ButtonExitIID then - begin - Ini.Save; - AudioPlayback.PlaySound(SoundLib.Back); - FadeTo(@ScreenOptions); - end; - end; - SDLK_DOWN: - InteractNext; - SDLK_UP : - InteractPrev; - SDLK_RIGHT: - begin - if (Interaction in SoundInteractions) then - begin - AudioPlayback.PlaySound(SoundLib.Option); - InteractInc; - end; - CheckOption; - end; - SDLK_LEFT: - begin - if (Interaction in SoundInteractions) then - begin - AudioPlayback.PlaySound(SoundLib.Option); - InteractDec; - end; - CheckOption; - end; - end; - end; -end; - -constructor TScreenOptionsInput.Create; -begin - inherited Create; - SoundInteractions := []; - - LoadFromTheme(Theme.OptionsInput); - - Theme.OptionsInput.SelectMouse.showArrows := true; - Theme.OptionsInput.SelectMouse.oneItemOnly := true; - SelectMouse := AddSelectSlide(Theme.OptionsInput.SelectMouse, ActualMouse, UIni.IMouse, 'OPTION_VALUE_'); - Include(SoundInteractions, SelectMouse); - - Theme.OptionsInput.SelectJoypad.showArrows := true; - Theme.OptionsInput.SelectJoypad.oneItemOnly := true; - SelectJoyPad := AddSelectSlide(Theme.OptionsInput.SelectJoypad, UIni.Ini.Joypad, UIni.IJoypad, 'OPTION_VALUE_'); - Include(SoundInteractions, SelectJoyPad); - - - AddButton(Theme.OptionsInput.ButtonExit); - ButtonExitIID := High(Interactions); - if (Length(Button[0].Text)=0) then - AddButtonText(20, 5, Theme.Options.Description[OPTIONS_DESC_INDEX_BACK]); - -end; - -procedure TScreenOptionsInput.OnShow; -begin - inherited; - - ActualMouse := Ini.Mouse; - UpdateSelectSlideOptions(Theme.OptionsInput.SelectMouse, SelectMouse, UIni.IMouse, ActualMouse, 'OPTION_VALUE_'); - - WasMouse := Ini.Mouse > 0; - WasJoy := HasJoyStick; - Interaction := 0; -end; - -procedure TScreenOptionsInput.OnHide; -begin - inherited; - - // TODO: query confirm whether to disable mouse - // TODO: RattleSN4K3: query confirm whether to disable Joypad (requires interaction mode, Controller/Mouse/Keyboard) - - // update actual Mouse configuration - Ini.Mouse := ActualMouse; - Display.SetCursor; - - // re-initialize or remove joypad support - if WasJoy and (Ini.Joypad = 0) then begin - FinalizeJoyStick; - end else if not WasJoy and (Ini.Joypad = 1) then - InitializeJoystick; - -end; - -procedure TScreenOptionsInput.CheckOption; -begin - inherited; - - if (Interaction = SelectMouse) then - begin - if ActualMouse > 0 then Ini.Mouse := ActualMouse - else Ini.Mouse := 1; - Display.SetCursor; - Display.UpdateCursor; - end; - -end; - - -end. diff --git a/src/screens/UScreenOptionsJukebox.pas b/src/screens/UScreenOptionsJukebox.pas index 75661113..dde6de6f 100644 --- a/src/screens/UScreenOptionsJukebox.pas +++ b/src/screens/UScreenOptionsJukebox.pas @@ -1,8 +1,8 @@ {* UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the + + UltraStar Deluxe WorldParty is the legal property of its developers, + whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see + along with this program. Check "LICENSE" file. If not, see . *} @@ -266,12 +266,12 @@ function TScreenOptionsJukebox.ParseInput(PressedKey: cardinal; CharCode: UCS4Ch end; end; -procedure TScreenOptionsJukebox.UpdatePropertyList; +procedure TScreenOptionsJukebox.UpdatePropertyList; // >>>>> FIX ME <<<<< var IProperty: array of UTF8String; I: integer; begin - +{ if (SelectsS[FontSelect].SelectedOption <> 0) then begin SetLength(IProperty, Length(IPropertyTranslated)); @@ -287,6 +287,7 @@ procedure TScreenOptionsJukebox.UpdatePropertyList; end; UpdateSelectSlideOptions(Theme.OptionsJukebox.SelectProperty, PropertySelect, IProperty, Ini.JukeboxProperty); + } end; procedure TScreenOptionsJukebox.InteractInc; @@ -467,11 +468,11 @@ constructor TScreenOptionsJukebox.Create; Theme.OptionsJukebox.SelectLyricsFont.showArrows := true; Theme.OptionsJukebox.SelectLyricsFont.oneItemOnly := true; - FontSelect := AddSelectSlide(Theme.OptionsJukebox.SelectLyricsFont, Ini.JukeboxFont, ILyricsFontTranslated); + AddSelectSlide(Theme.OptionsJukebox.SelectLyricsFont, UIni.Ini.JukeboxFont, UIni.ILyricsFont, 'OPTION_VALUE_'); Theme.OptionsJukebox.SelectLyricsEffect.showArrows := true; Theme.OptionsJukebox.SelectLyricsEffect.oneItemOnly := true; - AddSelectSlide(Theme.OptionsJukebox.SelectLyricsEffect, Ini.JukeboxEffect, ILyricsEffectTranslated); + AddSelectSlide(Theme.OptionsJukebox.SelectLyricsEffect, UIni.Ini.JukeboxEffect, UIni.ILyricsEffect, 'OPTION_VALUE_'); Theme.OptionsJukebox.SelectLyricsAlpha.showArrows := true; Theme.OptionsJukebox.SelectLyricsAlpha.oneItemOnly := true; @@ -479,15 +480,15 @@ constructor TScreenOptionsJukebox.Create; Theme.OptionsJukebox.SelectLine.showArrows := true; Theme.OptionsJukebox.SelectLine.oneItemOnly := true; - LineSelect := AddSelectSlide(Theme.OptionsJukebox.SelectLine, Ini.JukeboxLine, ILineTranslated); + LineSelect := AddSelectSlide(Theme.OptionsJukebox.SelectLine, UIni.Ini.JukeboxLine, UIni.ILineTranslated, 'OPTION_VALUE_'); Theme.OptionsJukebox.SelectProperty.showArrows := true; Theme.OptionsJukebox.SelectProperty.oneItemOnly := true; - PropertySelect := AddSelectSlide(Theme.OptionsJukebox.SelectProperty, Ini.JukeboxProperty, IPropertyTranslated); + AddSelectSlide(Theme.OptionsJukebox.SelectProperty, UIni.Ini.JukeboxProperty, UIni.IPropertyTranslated, 'OPTION_VALUE_'); Theme.OptionsJukebox.SelectColor.showArrows := true; Theme.OptionsJukebox.SelectColor.oneItemOnly := true; - LineColorSelect := AddSelectSlide(Theme.OptionsJukebox.SelectColor, Ini.JukeboxSingLineColor, ISingLineColorTranslated); + LineColorSelect := AddSelectSlide(Theme.OptionsJukebox.SelectColor, UIni.Ini.JukeboxSingLineColor, UIni.ISingLineColorTranslated, 'OPTION_VALUE_'); Theme.OptionsJukebox.SelectR.showArrows := false; Theme.OptionsJukebox.SelectR.oneItemOnly := true; @@ -663,4 +664,4 @@ function TScreenOptionsJukebox.Draw: boolean; LyricSample(); end; -end. +end. \ No newline at end of file diff --git a/src/screens/UScreenOptionsRecord.pas b/src/screens/UScreenOptionsMicrophones.pas similarity index 87% rename from src/screens/UScreenOptionsRecord.pas rename to src/screens/UScreenOptionsMicrophones.pas index 4d66e8ba..92a0f07a 100644 --- a/src/screens/UScreenOptionsRecord.pas +++ b/src/screens/UScreenOptionsMicrophones.pas @@ -21,7 +21,7 @@ *} -unit UScreenOptionsRecord; +unit UScreenOptionsMicrophones; interface @@ -49,7 +49,7 @@ TPeakInfo = record Time: cardinal; end; - TScreenOptionsRecord = class(TMenu) + TScreenOptionsMicrophones = class(TMenu) private // max. count of input-channels determined for all devices MaxChannelCount: integer; @@ -101,7 +101,7 @@ TScreenOptionsRecord = class(TMenu) end; var //slider translation - ChannelPlayer: array[0..12] of UTF8String = ('Off', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'); + ChannelPlayer: array[0..6] of UTF8String = ('Off', '1', '2', '3', '4', '5', '6'); MicBoost: array[0..3] of UTF8String = ('Off', '+6dB', '+12dB', '+18dB'); const @@ -132,7 +132,7 @@ implementation UUnicodeUtils, ULog; -function TScreenOptionsRecord.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; +function TScreenOptionsMicrophones.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; begin Result := true; if (PressedDown) then @@ -144,26 +144,6 @@ function TScreenOptionsRecord.ParseInput(PressedKey: cardinal; CharCode: UCS4Cha Result := false; Exit; end; - Ord('+'): - begin - // FIXME: add a nice volume-slider instead - // or at least provide visualization and acceleration if the user holds the key pressed. - ChangeVolume(0.02); - end; - Ord('-'): - begin - // FIXME: add a nice volume-slider instead - // or at least provide visualization and acceleration if the user holds the key pressed. - ChangeVolume(-0.02); - end; - Ord('T'): - begin - if ((SDL_GetModState() and KMOD_SHIFT) <> 0) then - Ini.ThresholdIndex := (Ini.ThresholdIndex + Length(IThresholdVals) - 1) mod Length(IThresholdVals) - else - Ini.ThresholdIndex := (Ini.ThresholdIndex + 1) mod Length(IThresholdVals); - UpdateSelectSlideOptions(Theme.OptionsRecord.SelectThreshold, SelectThresholdID, IThreshold, Ini.ThresholdIndex); - end; end; // check special keys @@ -217,7 +197,7 @@ function TScreenOptionsRecord.ParseInput(PressedKey: cardinal; CharCode: UCS4Cha end; end; -function TScreenOptionsRecord.ValidateSettings: boolean; +function TScreenOptionsMicrophones.ValidateSettings: boolean; var BadPlayer: integer; begin @@ -235,7 +215,7 @@ function TScreenOptionsRecord.ValidateSettings: boolean; end; end; -constructor TScreenOptionsRecord.Create; +constructor TScreenOptionsMicrophones.Create; var DeviceIndex: integer; SourceIndex: integer; @@ -248,7 +228,7 @@ constructor TScreenOptionsRecord.Create; begin inherited Create; - LoadFromTheme(Theme.OptionsRecord); + LoadFromTheme(Theme.OptionsMicrophones); // set CurrentDeviceIndex to a valid device if (Length(AudioInputProcessor.DeviceList) > 0) then @@ -273,9 +253,9 @@ constructor TScreenOptionsRecord.Create; InputDeviceNames[DeviceIndex] := AudioInputProcessor.DeviceList[DeviceIndex].Name; end; // add device-selection slider (InteractionID: 0) - Theme.OptionsRecord.SelectSlideCard.showArrows := true; - Theme.OptionsRecord.SelectSlideCard.oneItemOnly := true; - AddSelectSlide(Theme.OptionsRecord.SelectSlideCard, CurrentDeviceIndex, InputDeviceNames); + Theme.OptionsMicrophones.SelectSlideCard.showArrows := true; + Theme.OptionsMicrophones.SelectSlideCard.oneItemOnly := true; + AddSelectSlide(Theme.OptionsMicrophones.SelectSlideCard, CurrentDeviceIndex, InputDeviceNames); // init source-selection slider SetLength(InputSourceNames, Length(InputDevice.Source)); @@ -284,14 +264,14 @@ constructor TScreenOptionsRecord.Create; InputSourceNames[SourceIndex] := InputDevice.Source[SourceIndex].Name; end; - Theme.OptionsRecord.SelectSlideInput.showArrows := true; - Theme.OptionsRecord.SelectSlideInput.oneItemOnly := true; + Theme.OptionsMicrophones.SelectSlideInput.showArrows := true; + Theme.OptionsMicrophones.SelectSlideInput.oneItemOnly := true; // add source-selection slider (InteractionID: 1) - SelectInputSourceID := AddSelectSlide(Theme.OptionsRecord.SelectSlideInput, InputDeviceCfg.Input, InputSourceNames); + SelectInputSourceID := AddSelectSlide(Theme.OptionsMicrophones.SelectSlideInput, InputDeviceCfg.Input, InputSourceNames); // add space for source volume bar - WidgetYPos := Theme.OptionsRecord.SelectSlideInput.Y + - Theme.OptionsRecord.SelectSlideInput.H + + WidgetYPos := Theme.OptionsMicrophones.SelectSlideInput.Y + + Theme.OptionsMicrophones.SelectSlideInput.H + SourceBarsTotalHeight; // find max. channel count of all devices @@ -311,7 +291,7 @@ constructor TScreenOptionsRecord.Create; begin // copy reference slide SelectSlideChannelTheme[ChannelIndex] := - Theme.OptionsRecord.SelectSlideChannel; + Theme.OptionsMicrophones.SelectSlideChannel; // set current channel-theme ChannelTheme := @SelectSlideChannelTheme[ChannelIndex]; // adjust vertical position @@ -341,19 +321,19 @@ constructor TScreenOptionsRecord.Create; end; end; - Theme.OptionsRecord.SelectThreshold.showArrows := true; //basisbit TODO - Theme.OptionsRecord.SelectThreshold.oneItemOnly := true; - SelectThresholdID := AddSelectSlide(Theme.OptionsRecord.SelectThreshold, Ini.ThresholdIndex, IThreshold); + Theme.OptionsMicrophones.SelectThreshold.showArrows := true; + Theme.OptionsMicrophones.SelectThreshold.oneItemOnly := true; + SelectThresholdID := AddSelectSlide(Theme.OptionsMicrophones.SelectThreshold, Ini.ThresholdIndex, IThreshold); - Theme.OptionsRecord.SelectMicBoost.showArrows := true; - Theme.OptionsRecord.SelectMicBoost.oneItemOnly := true; + Theme.OptionsMicrophones.SelectMicBoost.showArrows := true; + Theme.OptionsMicrophones.SelectMicBoost.oneItemOnly := true; MicBoost[0] := ULanguage.Language.Translate('OPTION_VALUE_OFF'); - AddSelectSlide(Theme.OptionsRecord.SelectMicBoost, Ini.MicBoost, MicBoost); + AddSelectSlide(Theme.OptionsMicrophones.SelectMicBoost, Ini.MicBoost, MicBoost); end; // add Exit-button - AddButton(Theme.OptionsRecord.ButtonExit); + AddButton(Theme.OptionsMicrophones.ButtonExit); if (Length(Button[0].Text) = 0) then AddButtonText(20, 5, Theme.Options.Description[OPTIONS_DESC_INDEX_BACK]); // store InteractionID @@ -366,14 +346,14 @@ constructor TScreenOptionsRecord.Create; Interaction := 0; end; -procedure TScreenOptionsRecord.UpdateInputDevice; +procedure TScreenOptionsMicrophones.UpdateInputDevice; var SourceIndex: integer; InputDevice: TAudioInputDevice; InputDeviceCfg: PInputDeviceConfig; ChannelIndex: integer; begin - //Log.LogStatus('Update input-device', 'TScreenOptionsRecord.UpdateCard') ; + //Log.LogStatus('Update input-device', 'TScreenOptionsMicrophones.UpdateCard') ; StopPreview(); @@ -393,7 +373,7 @@ procedure TScreenOptionsRecord.UpdateInputDevice; begin InputSourceNames[SourceIndex] := InputDevice.Source[SourceIndex].Name; end; - UpdateSelectSlideOptions(Theme.OptionsRecord.SelectSlideInput, SelectInputSourceID, + UpdateSelectSlideOptions(Theme.OptionsMicrophones.SelectSlideInput, SelectInputSourceID, InputSourceNames, InputDeviceCfg.Input); // update channel-to-player mapping sliders @@ -426,7 +406,7 @@ procedure TScreenOptionsRecord.UpdateInputDevice; StartPreview(); end; -procedure TScreenOptionsRecord.ChangeVolume(VolumeChange: single); +procedure TScreenOptionsMicrophones.ChangeVolume(VolumeChange: single); var InputDevice: TAudioInputDevice; Volume: single; @@ -451,7 +431,7 @@ procedure TScreenOptionsRecord.ChangeVolume(VolumeChange: single); NextVolumePollTime := 0; end; -procedure TScreenOptionsRecord.OnShow; +procedure TScreenOptionsMicrophones.OnShow; var ChannelIndex: integer; begin @@ -472,7 +452,7 @@ procedure TScreenOptionsRecord.OnShow; UpdateInputDevice(); end; -procedure TScreenOptionsRecord.OnHide; +procedure TScreenOptionsMicrophones.OnHide; var ChannelIndex: integer; begin @@ -485,7 +465,7 @@ procedure TScreenOptionsRecord.OnHide; SetLength(ChannelPeak, 0); end; -procedure TScreenOptionsRecord.StartPreview; +procedure TScreenOptionsMicrophones.StartPreview; var ChannelIndex: integer; Device: TAudioInputDevice; @@ -509,7 +489,7 @@ procedure TScreenOptionsRecord.StartPreview; end; end; -procedure TScreenOptionsRecord.StopPreview; +procedure TScreenOptionsMicrophones.StopPreview; var ChannelIndex: integer; Device: TAudioInputDevice; @@ -525,7 +505,7 @@ procedure TScreenOptionsRecord.StopPreview; PreviewDeviceIndex := -1; end; -procedure TScreenOptionsRecord.DrawVolume(x, y, Width, Height: single); +procedure TScreenOptionsMicrophones.DrawVolume(x, y, Width, Height: single); var x1, y1, x2, y2: single; VolBarInnerWidth: integer; @@ -597,7 +577,7 @@ procedure TScreenOptionsRecord.DrawVolume(x, y, Width, Height: single); glDisable(GL_BLEND); end; -procedure TScreenOptionsRecord.DrawVUMeter(const State: TDrawState; x, y, Width, Height: single); +procedure TScreenOptionsMicrophones.DrawVUMeter(const State: TDrawState; x, y, Width, Height: single); var x1, y1, x2, y2: single; Volume, PeakVolume: single; @@ -686,7 +666,7 @@ procedure TScreenOptionsRecord.DrawVUMeter(const State: TDrawState; x, y, Width, glDisable(GL_BLEND); end; -procedure TScreenOptionsRecord.DrawPitch(const State: TDrawState; x, y, Width, Height: single); +procedure TScreenOptionsMicrophones.DrawPitch(const State: TDrawState; x, y, Width, Height: single); var x1, y1, x2, y2: single; i: integer; @@ -777,7 +757,7 @@ procedure TScreenOptionsRecord.DrawPitch(const State: TDrawState; x, y, Width, H glPrint(ToneString); end; -function TScreenOptionsRecord.Draw: boolean; +function TScreenOptionsMicrophones.Draw: boolean; var Device: TAudioInputDevice; DeviceCfg: PInputDeviceConfig; diff --git a/src/screens/UScreenOptionsNetwork.pas b/src/screens/UScreenOptionsNetwork.pas index 7db3199d..d98ddbba 100644 --- a/src/screens/UScreenOptionsNetwork.pas +++ b/src/screens/UScreenOptionsNetwork.pas @@ -1,8 +1,8 @@ {* UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the + + UltraStar Deluxe WorldParty is the legal property of its developers, + whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see + along with this program. Check "LICENSE" file. If not, see . *} @@ -65,7 +65,7 @@ TScreenOptionsNetwork = class(TMenu) EncryptPassword: UTF8String; InsertButton: integer; - + public constructor Create; override; function ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; override; @@ -79,10 +79,11 @@ TScreenOptionsNetwork = class(TMenu) implementation uses + SysUtils, UGraphic, ULanguage, - UUnicodeUtils, - SysUtils; + UScreenPopup, + UUnicodeUtils; var Receive_String: widestring; @@ -499,6 +500,8 @@ procedure TScreenOptionsNetwork.OnShow; I, J: integer; begin inherited; + if not Assigned(UGraphic.ScreenPopupInsertUser) then //load the screen only the first time + UGraphic.ScreenPopupInsertUser := TScreenPopupInsertUser.Create(); CurrentWebsiteIndex := 0; CurrentUserIndex := 0; @@ -532,7 +535,6 @@ procedure TScreenOptionsNetwork.OnShow; end; Interaction := 0; - end; procedure TScreenOptionsNetwork.UpdateUsernameList(ResetIndex: boolean); @@ -668,4 +670,3 @@ procedure TScreenOptionsNetwork.DeleteUser; end; end. - diff --git a/src/screens/UScreenOptionsThemes.pas b/src/screens/UScreenOptionsThemes.pas index 22dc2fa0..9006ea59 100644 --- a/src/screens/UScreenOptionsThemes.pas +++ b/src/screens/UScreenOptionsThemes.pas @@ -67,6 +67,7 @@ implementation UMain, UPathUtils, UUnicodeUtils, + UScreenOptions, USkins; function TScreenOptionsThemes.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; @@ -250,6 +251,8 @@ procedure TScreenOptionsThemes.ReloadScreens; begin UGraphic.UnLoadScreens(); UGraphic.LoadScreens(); + UGraphic.ScreenOptions := TScreenOptions.Create(); + UGraphic.ScreenOptionsThemes := TScreenOptionsThemes.Create(); Ini.Load; end; end; diff --git a/src/screens/UScreenPartyOptions.pas b/src/screens/UScreenPartyOptions.pas index 2c6b1a2a..93eede2e 100644 --- a/src/screens/UScreenPartyOptions.pas +++ b/src/screens/UScreenPartyOptions.pas @@ -80,14 +80,23 @@ implementation uses UGraphic, - UMain, UIni, - UTexture, ULanguage, + UMain, UParty, - USong, UPlaylist, + UScreenPartyNewRound, + UScreenPartyScore, + UScreenPartyWin, + UScreenPartyPlayer, + UScreenPartyRounds, + UScreenPartyTournamentRounds, + UScreenPartyTournamentPlayer, + UScreenPartyTournamentOptions, + UScreenPartyTournamentWin, + USong, USongs, + UTexture, UUnicodeUtils; function TScreenPartyOptions.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; @@ -130,8 +139,8 @@ function TScreenPartyOptions.ParseInput(PressedKey: cardinal; CharCode: UCS4Char case Mode of 0: InitClassic; 1: InitFree; - 2: InitChallenge; - 3: InitTournament; + 2: InitTournament; + // 3: InitChallenge; // hidden for the moment. Check again in the future end; end; @@ -243,9 +252,9 @@ procedure TScreenPartyOptions.FillLevel; begin SetLength(ILevel, 3); - ILevel[0] := Language.Translate('SING_EASY'); - ILevel[1] := Language.Translate('SING_MEDIUM'); - ILevel[2] := Language.Translate('SING_HARD'); + ILevel[0] := Language.Translate('OPTION_VALUE_EASY'); + ILevel[1] := Language.Translate('OPTION_VALUE_MEDIUM'); + ILevel[2] := Language.Translate('OPTION_VALUE_HARD'); end; procedure TScreenPartyOptions.SetPlaylists; @@ -306,7 +315,14 @@ procedure TScreenPartyOptions.SetPlaylist2; IPlaylist2[0] := 'No Categories found'; end; end; - 2: + + 2: + begin + SetLength(IPlaylist2, 1); + IPlaylist2[0] := '---'; + end; + + { 3: //Challenge mode desactivated for the moment begin if (Length(PlaylistMan.Playlists) > 0) then begin @@ -318,12 +334,7 @@ procedure TScreenPartyOptions.SetPlaylist2; SetLength(IPlaylist2, 1); IPlaylist2[0] := 'No Playlists found'; end; - end; - 3: - begin - SetLength(IPlaylist2, 1); - IPlaylist2[0] := '---'; - end; + end; } end; Playlist2 := 0; @@ -333,7 +344,14 @@ procedure TScreenPartyOptions.SetPlaylist2; procedure TScreenPartyOptions.OnShow; begin inherited; - + if not Assigned(UGraphic.ScreenPartyNewRound) then //load the screens only the first time + begin + UGraphic.ScreenPartyNewRound := TScreenPartyNewRound.Create(); + UGraphic.ScreenPartyScore := TScreenPartyScore.Create(); + UGraphic.ScreenPartyWin := TScreenPartyWin.Create(); + UGraphic.ScreenPartyPlayer := TScreenPartyPlayer.Create(); + UGraphic.ScreenPartyRounds := TScreenPartyRounds.Create(); + end; Party.Clear; // check if there are loaded modes @@ -411,6 +429,13 @@ procedure TScreenPartyOptions.InitTournament; begin ScreenSong.Mode := smPartyTournament; AudioPlayback.PlaySound(SoundLib.Start); + if not Assigned(UGraphic.ScreenPartyTournamentRounds) then //load the screens only the first time + begin + UGraphic.ScreenPartyTournamentRounds := TScreenPartyTournamentRounds.Create(); + UGraphic.ScreenPartyTournamentPlayer := TScreenPartyTournamentPlayer.Create(); + UGraphic.ScreenPartyTournamentOptions := TScreenPartyTournamentOptions.Create(); + UGraphic.ScreenPartyTournamentWin := TScreenPartyTournamentWin.Create(); + end; FadeTo(@ScreenPartyTournamentPlayer); end; diff --git a/src/screens/UScreenPartyPlayer.pas b/src/screens/UScreenPartyPlayer.pas index c7b205e5..5558237a 100644 --- a/src/screens/UScreenPartyPlayer.pas +++ b/src/screens/UScreenPartyPlayer.pas @@ -77,7 +77,6 @@ TScreenPartyPlayer = class(TMenu) Player12Name: cardinal; constructor Create; override; - function ShouldHandleInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean; out SuppressKey: boolean): boolean; override; function ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; override; procedure OnShow; override; @@ -212,24 +211,6 @@ procedure TScreenPartyPlayer.UpdateParty; end; end; -function TScreenPartyPlayer.ShouldHandleInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean; out SuppressKey: boolean): boolean; -begin - Result := inherited; - // only suppress special keys for now - case PressedKey of - // Templates for Names Mod - SDLK_F1, SDLK_F2, SDLK_F3, SDLK_F4, SDLK_F5, SDLK_F6, SDLK_F7, SDLK_F8, SDLK_F9, SDLK_F10, SDLK_F11, SDLK_F12: - if (Button[Interactions[Interaction].Num].Selected) then - begin - SuppressKey := true; - end - else - begin - Result := false; - end; - end; -end; - function TScreenPartyPlayer.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; var SDL_ModState: word; @@ -251,16 +232,7 @@ function TScreenPartyPlayer.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; SelectsS[Interactions[Interaction].Num].Visible) or (Button[Interactions[Interaction].Num].Visible); end; - procedure HandleNameTemplate(const index: integer); - var - isAlternate: boolean; - begin - isAlternate := (SDL_ModState = KMOD_LSHIFT) or (SDL_ModState = KMOD_RSHIFT); - isAlternate := isAlternate or (SDL_ModState = KMOD_LALT); // legacy key combination - if isAlternate then Ini.NameTemplate[index] := Button[Interactions[Interaction].Num].Text[0].Text - else Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[index]; - end; begin Result := true; @@ -285,19 +257,6 @@ function TScreenPartyPlayer.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; // check special keys case PressedKey of - // Templates for Names Mod - SDLK_F1: HandleNameTemplate(0); - SDLK_F2: HandleNameTemplate(1); - SDLK_F3: HandleNameTemplate(2); - SDLK_F4: HandleNameTemplate(3); - SDLK_F5: HandleNameTemplate(4); - SDLK_F6: HandleNameTemplate(5); - SDLK_F7: HandleNameTemplate(6); - SDLK_F8: HandleNameTemplate(7); - SDLK_F9: HandleNameTemplate(8); - SDLK_F10: HandleNameTemplate(9); - SDLK_F11: HandleNameTemplate(10); - SDLK_F12: HandleNameTemplate(11); SDLK_BACKSPACE: begin diff --git a/src/screens/UScreenPartyTournamentPlayer.pas b/src/screens/UScreenPartyTournamentPlayer.pas index 12be7f2b..207e1855 100644 --- a/src/screens/UScreenPartyTournamentPlayer.pas +++ b/src/screens/UScreenPartyTournamentPlayer.pas @@ -71,7 +71,6 @@ TScreenPartyTournamentPlayer = class(TMenu) Player16Name: cardinal; constructor Create; override; - function ShouldHandleInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean; out SuppressKey: boolean): boolean; override; function ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; override; procedure OnShow; override; procedure SetAnimationProgress(Progress: real); override; @@ -147,24 +146,6 @@ procedure TScreenPartyTournamentPlayer.UpdatePartyTournament; end; -function TScreenPartyTournamentPlayer.ShouldHandleInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean; out SuppressKey: boolean): boolean; -begin - Result := inherited; - // only suppress special keys for now - case PressedKey of - // Templates for Names Mod - SDLK_F1, SDLK_F2, SDLK_F3, SDLK_F4, SDLK_F5, SDLK_F6, SDLK_F7, SDLK_F8, SDLK_F9, SDLK_F10, SDLK_F11, SDLK_F12: - if (Button[Interactions[Interaction].Num].Selected) then - begin - SuppressKey := true; - end - else - begin - Result := false; - end; - end; -end; - function TScreenPartyTournamentPlayer.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; var SDL_ModState: word; @@ -211,116 +192,7 @@ function TScreenPartyTournamentPlayer.ParseInput(PressedKey: cardinal; CharCode: isAlternate := (SDL_ModState = KMOD_LSHIFT) or (SDL_ModState = KMOD_RSHIFT); isAlternate := isAlternate or (SDL_ModState = KMOD_LALT); // legacy key combination case PressedKey of - // Templates for Names Mod - SDLK_F1: - if isAlternate then - begin - Ini.NameTemplate[0] := Button[Interactions[Interaction].Num].Text[0].Text; - end - else - begin - Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[0]; - end; - SDLK_F2: - if isAlternate then - begin - Ini.NameTemplate[1] := Button[Interactions[Interaction].Num].Text[0].Text; - end - else - begin - Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[1]; - end; - SDLK_F3: - if isAlternate then - begin - Ini.NameTemplate[2] := Button[Interactions[Interaction].Num].Text[0].Text; - end - else - begin - Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[2]; - end; - SDLK_F4: - if isAlternate then - begin - Ini.NameTemplate[3] := Button[Interactions[Interaction].Num].Text[0].Text; - end - else - begin - Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[3]; - end; - SDLK_F5: - if isAlternate then - begin - Ini.NameTemplate[4] := Button[Interactions[Interaction].Num].Text[0].Text; - end - else - begin - Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[4]; - end; - SDLK_F6: - if isAlternate then - begin - Ini.NameTemplate[5] := Button[Interactions[Interaction].Num].Text[0].Text; - end - else - begin - Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[5]; - end; - SDLK_F7: - if isAlternate then - begin - Ini.NameTemplate[6] := Button[Interactions[Interaction].Num].Text[0].Text; - end - else - begin - Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[6]; - end; - SDLK_F8: - if isAlternate then - begin - Ini.NameTemplate[7] := Button[Interactions[Interaction].Num].Text[0].Text; - end - else - begin - Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[7]; - end; - SDLK_F9: - if isAlternate then - begin - Ini.NameTemplate[8] := Button[Interactions[Interaction].Num].Text[0].Text; - end - else - begin - Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[8]; - end; - SDLK_F10: - if isAlternate then - begin - Ini.NameTemplate[9] := Button[Interactions[Interaction].Num].Text[0].Text; - end - else - begin - Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[9]; - end; - SDLK_F11: - if isAlternate then - begin - Ini.NameTemplate[10] := Button[Interactions[Interaction].Num].Text[0].Text; - end - else - begin - Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[10]; - end; - SDLK_F12: - if isAlternate then - begin - Ini.NameTemplate[11] := Button[Interactions[Interaction].Num].Text[0].Text; - end - else - begin - Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[11]; - end; - + SDLK_BACKSPACE: begin Button[Interactions[Interaction].Num].Text[0].DeleteLastLetter; diff --git a/src/screens/UScreenName.pas b/src/screens/UScreenPlayerSelection.pas similarity index 90% rename from src/screens/UScreenName.pas rename to src/screens/UScreenPlayerSelection.pas index b5b473a2..8ccba721 100644 --- a/src/screens/UScreenName.pas +++ b/src/screens/UScreenPlayerSelection.pas @@ -21,7 +21,7 @@ *} -unit UScreenName; +unit UScreenPlayerSelection; interface @@ -45,7 +45,6 @@ interface UNote, UScreenScore, UScreenSingController, - UScreenTop5, ULog, UTexture, UThemes; @@ -87,11 +86,11 @@ TScreenName = class(TMenu) PlayerAvatarButton: array of integer; PlayerAvatarButtonMD5: array of UTF8String; + PreloadCovers: boolean; //flag to stop to preload covers when exists an user interaction public Goto_SingScreen: boolean; //If true then next Screen in SingScreen constructor Create; override; - function ShouldHandleInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean; out SuppressKey: boolean): boolean; override; function ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; override; function ParseMouse(MouseButton: integer; BtnDown: boolean; X, Y: integer): boolean; override; @@ -140,8 +139,8 @@ function TScreenName.ParseMouse(MouseButton: integer; BtnDown: boolean; X, Y: in I: integer; Btn: integer; begin + Self.PreloadCovers := false; Result := true; - inherited ParseMouse(MouseButton, BtnDown, X, Y); // transfer mousecords to the 800x600 raster we use to draw @@ -177,7 +176,7 @@ function TScreenName.ParseMouse(MouseButton: integer; BtnDown: boolean; X, Y: in if InRegion(X, Y, Button[PlayerAvatarButton[Btn]].GetMouseOverArea) then begin - Interaction := 2; + Interaction := 5; ParseInput(SDLK_LEFT, 0, true); ParseInput(SDLK_LEFT, 0, true); @@ -190,7 +189,7 @@ function TScreenName.ParseMouse(MouseButton: integer; BtnDown: boolean; X, Y: in if InRegion(X, Y, Button[PlayerAvatarButton[Btn]].GetMouseOverArea) then begin - Interaction := 2; + Interaction := 5; ParseInput(SDLK_LEFT, 0, true); end; @@ -202,7 +201,7 @@ function TScreenName.ParseMouse(MouseButton: integer; BtnDown: boolean; X, Y: in if InRegion(X, Y, Button[PlayerAvatarButton[Btn]].GetMouseOverArea) then begin - Interaction := 2; + Interaction := 5; ParseInput(SDLK_RIGHT, 0, true); end; @@ -237,56 +236,18 @@ function TScreenName.ParseMouse(MouseButton: integer; BtnDown: boolean; X, Y: in end; end; -function TScreenName.ShouldHandleInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean; out SuppressKey: boolean): boolean; -begin - Result := inherited; - // only suppress special keys for now - case PressedKey of - // Templates for Names Mod - SDLK_F1, SDLK_F2, SDLK_F3, SDLK_F4, SDLK_F5, SDLK_F6, SDLK_F7, SDLK_F8, SDLK_F9, SDLK_F10, SDLK_F11, SDLK_F12: - if (Button[PlayerName].Selected) then - begin - SuppressKey := true; - end - else - begin - Result := false; - end; - end; -end; - function TScreenName.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; var I: integer; SDL_ModState: word; Col: TRGB; - procedure HandleNameTemplate(const index: integer); - var - isAlternate: boolean; - begin - isAlternate := (SDL_ModState = KMOD_LSHIFT) or (SDL_ModState = KMOD_RSHIFT); - isAlternate := isAlternate or (SDL_ModState = KMOD_LALT); // legacy key combination - - if isAlternate then - begin - Ini.NameTemplate[index] := Button[PlayerName].Text[0].Text; - end - else - begin - Button[PlayerName].Text[0].Text := Ini.NameTemplate[index]; - PlayerNames[PlayerIndex] := Button[PlayerName].Text[0].Text; - end; - end; - begin Result := true; if (PressedDown) then begin // Key Down - - SDL_ModState := SDL_GetModState and (KMOD_LSHIFT + KMOD_RSHIFT - + KMOD_LCTRL + KMOD_RCTRL + KMOD_LALT + KMOD_RALT); - + Self.PreloadCovers := false; + SDL_ModState := SDL_GetModState and (KMOD_LSHIFT + KMOD_RSHIFT + KMOD_LCTRL + KMOD_RCTRL + KMOD_LALT + KMOD_RALT); if (not Button[PlayerName].Selected) then begin // check normal keys @@ -298,36 +259,21 @@ function TScreenName.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse end; end; end - else if (Interaction = 3) and (IsPrintableChar(CharCode)) then + else if (Interaction = 2) and (IsPrintableChar(CharCode)) then //pass printable chars to button begin - // pass printable chars to button - Button[PlayerName].Text[0].Text := Button[PlayerName].Text[0].Text + - UCS4ToUTF8String(CharCode); - - PlayerNames[PlayerIndex] := Button[PlayerName].Text[0].Text; + if Length(Button[PlayerName].Text[0].Text) < 12 then + begin + Button[PlayerName].Text[0].Text := Button[PlayerName].Text[0].Text +UCS4ToUTF8String(CharCode); + PlayerNames[PlayerIndex] := Button[PlayerName].Text[0].Text; + end; Exit; end; - // check special keys case PressedKey of - // Templates for Names Mod - SDLK_F1: HandleNameTemplate(0); - SDLK_F2: HandleNameTemplate(1); - SDLK_F3: HandleNameTemplate(2); - SDLK_F4: HandleNameTemplate(3); - SDLK_F5: HandleNameTemplate(4); - SDLK_F6: HandleNameTemplate(5); - SDLK_F7: HandleNameTemplate(6); - SDLK_F8: HandleNameTemplate(7); - SDLK_F9: HandleNameTemplate(8); - SDLK_F10: HandleNameTemplate(9); - SDLK_F11: HandleNameTemplate(10); - SDLK_F12: HandleNameTemplate(11); - SDLK_BACKSPACE: begin - if (Interaction = 3) then + if (Interaction = 2) then begin Button[PlayerName].Text[0].DeleteLastLetter(); PlayerNames[PlayerIndex] := Button[PlayerName].Text[0].Text; @@ -397,7 +343,6 @@ function TScreenName.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse // AudioPlayback.PlaySound(SoundLib.Start); - if GoTo_SingScreen then begin FadeTo(@ScreenSing); @@ -425,16 +370,12 @@ function TScreenName.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse SDLK_RIGHT: begin - AudioPlayback.PlaySound(SoundLib.Change); - if (Interaction in [0, 4, 5]) then + if (Interaction in [1, 3, 4]) then InteractInc; - if (Interaction = 0) then - RefreshPlayers(); - - if (Interaction = 1) then - begin //TODO: adapt this to new playersize + if (Interaction = 0) then // Player selection + begin //TODO: adapt this to new playersize if (PlayerIndex < UIni.IPlayersVals[CountIndex]-1) then begin PlayerIndex := PlayerIndex + 1; @@ -446,37 +387,43 @@ function TScreenName.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse end; end; - if (Interaction = 2) then - begin - SelectNext; - SetAvatarScroll; - PlayerAvatars[PlayerIndex] := AvatarTarget; - SetPlayerAvatar(PlayerIndex); - end; + if (Interaction = 1) then //Number of players + begin + RefreshPlayers(); + AudioPlayback.PlaySound(SoundLib.Option); + end; - if (Interaction = 4) then + if (Interaction = 3) then //Player color begin RefreshColor(); SelectsS[PlayerColor].SetSelect(true); + AudioPlayback.PlaySound(SoundLib.Option); end; - if (Interaction = 5) then + + if (Interaction = 4) then //level color begin PlayerLevel[PlayerIndex] := LevelIndex; + AudioPlayback.PlaySound(SoundLib.Option); end; + if (Interaction = 5) then //avatar selection + begin + SelectNext; + SetAvatarScroll; + PlayerAvatars[PlayerIndex] := AvatarTarget; + SetPlayerAvatar(PlayerIndex); + end; + + end; SDLK_LEFT: begin - AudioPlayback.PlaySound(SoundLib.Change); - if (Interaction in [0, 4, 5]) then + if (Interaction in [1, 3, 4]) then InteractDec; if (Interaction = 0) then - RefreshPlayers(); - - if (Interaction = 1) then begin if (PlayerIndex > 0) then begin @@ -489,24 +436,36 @@ function TScreenName.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse end; end; - if (Interaction = 2) then + + if (Interaction = 1) then + begin + RefreshPlayers(); + AudioPlayback.PlaySound(SoundLib.Option); + end; + + if (Interaction = 3) then begin - SelectPrev; - SetAvatarScroll; - PlayerAvatars[PlayerIndex] := AvatarTarget; - SetPlayerAvatar(PlayerIndex); + RefreshColor(); + SelectsS[PlayerColor].SetSelect(true); + AudioPlayback.PlaySound(SoundLib.Option); end; if (Interaction = 4) then begin - RefreshColor(); - SelectsS[PlayerColor].SetSelect(true); + PlayerLevel[PlayerIndex] := LevelIndex; + AudioPlayback.PlaySound(SoundLib.Option); end; + if (Interaction = 5) then begin - PlayerLevel[PlayerIndex] := LevelIndex; + SelectPrev; + SetAvatarScroll; + PlayerAvatars[PlayerIndex] := AvatarTarget; + SetPlayerAvatar(PlayerIndex); + end; + end; end; @@ -783,6 +742,8 @@ constructor TScreenName.Create; LoadFromTheme(Theme.Name); + PlayerSelect := AddButton(Theme.Name.PlayerSelectCurrent); + Theme.Name.SelectPlayersCount.oneItemOnly := true; Theme.Name.SelectPlayersCount.showArrows := true; PlayersCount := AddSelectSlide(Theme.Name.SelectPlayersCount, CountIndex, IPlayers); @@ -794,10 +755,6 @@ constructor TScreenName.Create; PlayerCurrentText[I] := AddText(Theme.Name.PlayerSelectText[I]); end; - PlayerSelect := AddButton(Theme.Name.PlayerSelectCurrent); - - PlayerAvatar := AddButton(Theme.Name.PlayerButtonAvatar); - PlayerAvatarIID := High(Interactions); PlayerName := AddButton(Theme.Name.PlayerButtonName); Button[PlayerName].Text[0].Writable := true; @@ -810,8 +767,11 @@ constructor TScreenName.Create; Theme.Name.SelectPlayerLevel.showArrows := true; PlayerSelectLevel := AddSelectSlide(Theme.Name.SelectPlayerLevel, LevelIndex, UIni.IDifficulty, 'OPTION_VALUE_'); - isScrolling := false; + PlayerAvatar := AddButton(Theme.Name.PlayerButtonAvatar); + PlayerAvatarIID := High(Interactions); + isScrolling := false; + Self.PreloadCovers := true; GenerateAvatars(); NumVisibleAvatars := Theme.Name.PlayerScrollAvatar.NumAvatars; @@ -1061,7 +1021,11 @@ function TScreenName.Draw: boolean; isScrolling := false; AvatarCurrent := AvatarTarget; end; - end; + end + else if Self.PreloadCovers then //start to preload covers slowly if don't exists user interaction + UGraphic.ScreenSong.LoadCovers() + else //enable again after user interaction + Self.PreloadCovers := true; SetAvatarScroll; diff --git a/src/screens/UScreenScore.pas b/src/screens/UScreenScore.pas index abacb626..5ac9a306 100644 --- a/src/screens/UScreenScore.pas +++ b/src/screens/UScreenScore.pas @@ -1,8 +1,8 @@ {* UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the + + UltraStar Deluxe WorldParty is the legal property of its developers, + whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. This program is free software: you can redistribute it and/or modify @@ -16,10 +16,10 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see + along with this program. Check "LICENSE" file. If not, see . *} - + unit UScreenScore; interface @@ -216,17 +216,18 @@ implementation uses UAvatars, UGraphic, - UScreenSong, - UMenuStatic, - UTime, - USkins, - ULog, ULanguage, + ULog, + UMenuStatic, UNote, - USong, UPathUtils, - UUnicodeUtils, - UScreenPopup; + USkins, + USong, + UScreenTop5, + UScreenPopup, + UScreenSong, + UTime, + UUnicodeUtils; { ***************************** @@ -262,7 +263,7 @@ procedure SendScore(SendInfo: TSendInfo; Website: integer); end; SendStatus := DllMan.WebsiteSendScore(SendInfo); - + case SendStatus of 0: ScreenPopupError.ShowPopup(Language.Translate('WEBSITE_NO_CONNECTION')); 2: ScreenPopupError.ShowPopup(Language.Translate('WEBSITE_LOGIN_ERROR')); @@ -422,7 +423,6 @@ function TScreenScore.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Press else CurrentRound := 0; - AudioPlayback.PlaySound(SoundLib.Change); RefreshTexts; if not (Ini.SavePlayback=1) then @@ -448,7 +448,6 @@ function TScreenScore.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Press else CurrentRound := Length(PlaylistMedley.Stats)-1; - AudioPlayback.PlaySound(SoundLib.Change); RefreshTexts; if not (Ini.SavePlayback=1) then @@ -502,7 +501,7 @@ function TScreenScore.ParseMouse(MouseButton: Integer; BtnDown: Boolean; X, Y: i else SetInteraction(-1); - if (MouseButton = SDL_BUTTON_LEFT) and BtnDown then + if (MouseButton in [SDL_BUTTON_RIGHT, SDL_BUTTON_LEFT]) and BtnDown then ParseInput(SDLK_RETURN, 0, true); end; @@ -877,6 +876,10 @@ constructor TScreenScore.Create; //## the bars that visualize the score ## + //rating pictures that show a picture according to your rate + for I := 0 to 7 do + Tex_Score_Ratings[I] := UTexture.Texture.LoadTexture('Rating_'+IntToStr(I), TEXTURE_TYPE_TRANSPARENT); + //NoteBar ScoreBar LoadColor(R, G, B, 'P' + IntToStr(Player) + 'Dark'); Col2 := $10000 * Round(R*255) + $100 * Round(G*255) + Round(B*255); @@ -1091,6 +1094,11 @@ procedure TScreenScore.OnShow; V: array[1..UIni.IMaxPlayerCount] of boolean; // visibility array ArrayStartModifier: integer; begin + if not Assigned(UGraphic.ScreenPopupSendScore) then //load the screens only the first time + begin + UGraphic.ScreenPopupSendScore := TScreenPopupSendScore.Create(); + UGraphic.ScreenTop5 := TScreenTop5.Create(); + end; FinishScreenDraw := false; @@ -1505,7 +1513,7 @@ procedure TscreenScore.DrawRating(PlayerNumber: integer; Rating: integer); glBindTexture(GL_TEXTURE_2D, Tex_Score_Ratings[Rating].TexNum); glColor3f(1.0, 1.0, 1.0); - + glEnable(GL_TEXTURE_2D); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); diff --git a/src/screens/UScreenSong.pas b/src/screens/UScreenSong.pas index fc46f194..5330cc80 100644 --- a/src/screens/UScreenSong.pas +++ b/src/screens/UScreenSong.pas @@ -1,9 +1,9 @@ {* UltraStar Deluxe WorldParty - Karaoke Game - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the - COPYRIGHT file distributed with this source distribution. + UltraStar Deluxe WorldParty is the legal property of its developers, + whose names are too numerous to list here. Please refer to the + COPYRIGHT file distributed with this source distribution. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with this program. Check "LICENSE" file. If not, see - . + . *} @@ -25,22 +25,17 @@ interface -{$IFDEF FPC} - {$MODE Delphi} -{$ENDIF} +{$MODE OBJFPC} {$I switches.inc} uses SysUtils, sdl2, - UCatCovers, UCommon, UDataBase, - UDisplay, UDllManager, UPath, - UFiles, UIni, ULanguage, ULog, @@ -51,11 +46,6 @@ interface USongs, UTexture, UThemes, - UUnicodeStringHelper, - {$IFDEF MSWINDOWS} - LazUTF8Classes, - LazUTF8, - {$ENDIF} UTime; type @@ -64,28 +54,19 @@ interface TScreenSong = class(TMenu) private Equalizer: Tms_Equalizer; - - PreviewOpened: Integer; // interaction of the Song that is loaded for preview music - // -1 if nothing is opened - - isScrolling: boolean; // true if song flow is about to move - + PreviewOpened: Integer; //interaction of the song that is loaded for preview music -1 if nothing is opened + IsScrolling: boolean; //true if song flow is about to move fCurrentVideo: IVideo; - MainChessboardMinLine: integer; - MainListMinLine: integer; - - LastVisibleSongIndex: integer; - FirstVisibleSongIndex: integer; - - ListLastVisibleSongIndex: integer; + MinLine: integer; //current chessboard line + LastMinLine: integer; //used on list mode ListFirstVisibleSongIndex: integer; MainListFirstVisibleSongIndex: integer; - - LastSelectMouse: integer; - LastSelectTime: integer; - + Covers: integer; //number of covers to preload + PreloadCovers: boolean; //flag to stop to preload covers when exists an user interaction procedure StartMusicPreview(); procedure StartVideoPreview(); + procedure LoadCover(B: integer); + procedure LoadMainCover(); public TextArtist: integer; TextTitle: integer; @@ -98,8 +79,8 @@ TScreenSong = class(TMenu) VideoIcon: cardinal; //Medley Icons - MedleyIcon: cardinal; - CalcMedleyIcon: cardinal; + MedleyIcon: cardinal; + CalcMedleyIcon: cardinal; TextMedleyArtist: array of integer; TextMedleyTitle: array of integer; TextMedleyNumber: array of integer; @@ -122,9 +103,6 @@ TScreenSong = class(TMenu) CoverFull: boolean; CoverTime: real; - CoverX: integer; - CoverY: integer; - CoverW: integer; is_jump: boolean; // Jump to Song Mod is_jump_title:boolean; //Jump to SOng MOd-YTrue if search for Title @@ -167,7 +145,9 @@ TScreenSong = class(TMenu) TextNonParty: array of cardinal; // for chessboard songmenu - StaticActual: integer; + MainCover: integer; + SongSelectionUp: integer; + SongSelectionDown: integer; // for list songmenu StaticList: array of integer; @@ -179,7 +159,7 @@ TScreenSong = class(TMenu) ListMedleyIcon: array of integer; ListCalcMedleyIcon: array of integer; ListDuetIcon: array of integer; - ListRapIcon: array of integer; + ListRapIcon: array of integer; PlayMidi: boolean; MidiFadeIn: boolean; @@ -216,54 +196,30 @@ TScreenSong = class(TMenu) MessageTime: cardinal; MessageTimeFade: cardinal; - ChessboardMinLine: integer; - ListMinLine: integer; - ListLastMinLine: integer; - SongIndex: integer; //Index of Song that is playing since UScreenScore... constructor Create; override; - procedure SetScroll; - procedure SetScrollRefresh; - + procedure SetScroll(force: boolean = false); procedure SetRouletteScroll; procedure SetChessboardScroll; procedure SetCarouselScroll; procedure SetSlotMachineScroll; procedure SetSlideScroll; procedure SetListScroll; - - procedure SetRouletteScrollRefresh; - procedure SetChessboardScrollRefresh; - procedure SetCarouselScrollRefresh; - procedure SetSlotMachineScrollRefresh; - procedure SetSlideScrollRefresh; - procedure SetListScrollRefresh; - function ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; override; - function ParseMouse(MouseButton: integer; BtnDown: boolean; X, Y: integer): boolean; override; - function ParseMouseRoulette(MouseButton: integer; BtnDown: boolean; X, Y: integer): boolean; - function ParseMouseChessboard(MouseButton: integer; BtnDown: boolean; X, Y: integer): boolean; - function Draw: boolean; override; - function FinishedMusic: boolean; - - procedure WriteMessage(msg: UTF8String); procedure FadeMessage(); procedure CloseMessage(); - - procedure GenerateThumbnails(); + procedure AddButtons(); procedure OnShow; override; procedure OnShowFinish; override; procedure OnHide; override; - procedure SelectNext(onlyFix: boolean = true); - procedure SelectPrev; + procedure SelectNext(); + procedure SelectPrev(); procedure SelectNextRow; procedure SelectPrevRow; - procedure SelectNextListRow; - procedure SelectPrevListRow; - procedure SkipTo(Target: cardinal; TargetInteraction: integer = 0; VS: integer = 0); + procedure SkipTo(Target: cardinal); procedure FixSelected; //Show Wrong Song when Tabs on Fix procedure FixSelected2; //Show Wrong Song when Tabs on Fix procedure ShowCatTL(Cat: integer);// Show Cat in Top left @@ -272,13 +228,11 @@ TScreenSong = class(TMenu) procedure Refresh;//(GiveStats: boolean); //Refresh Song Sorting procedure ChangeSorting(Tabs: integer; Duet: boolean; Sorting: integer); procedure ChangeMusic; - function FreeListMode: boolean; //Party Mode procedure SelectRandomSong; procedure SetJoker; - procedure SetStatics; procedure ColorizeJokers; //procedure PartyTimeLimit; function PermitCategory(ID: integer): boolean; @@ -291,13 +245,9 @@ TScreenSong = class(TMenu) procedure OnSongSelect; // called when song flows movement stops at a song procedure OnSongDeSelect; // called before current song is deselected - procedure LoadCover(NumberOfButtonInArray: integer); - + procedure LoadCovers(); procedure SongScore; - //Extensions - procedure DrawExtensions; - //Medley procedure StartMedley(NumSongs: integer; MinSource: TMedleySource); function getVisibleMedleyArr(MinSource: TMedleySource): TVisArr; @@ -312,8 +262,6 @@ TScreenSong = class(TMenu) procedure ParseInputNextVertical(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean); procedure ParseInputPrevVertical(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean); - - procedure ResetScrollList; end; implementation @@ -321,7 +269,7 @@ implementation uses Math, dglOpenGL, - UCovers, + StrUtils, UGraphic, UMain, UMenuButton, @@ -329,9 +277,12 @@ implementation UAudioPlaybackBase, UParty, UPlaylist, + UScreenPopup, UScreenSongMenu, + UScreenSongJumpto, USkins, - UUnicodeUtils, UMenuStatic; + UUnicodeUtils, + UMenuStatic; const MAX_TIME = 30; @@ -341,10 +292,7 @@ implementation // ***** Public methods ****** // function TScreenSong.FreeListMode: boolean; begin - if ((Mode = smNormal) or (Mode = smPartyTournament) or (Mode = smPartyFree) or (Mode = smJukebox)) then - Result := true - else - Result := false; + Result := (Mode in [smNormal, smPartyTournament, smPartyFree, smJukebox]); end; //Show Wrong Song when Tabs on Fix @@ -352,7 +300,7 @@ procedure TScreenSong.FixSelected; var I, I2: integer; begin - if (CatSongs.VisibleSongs > 0) then + if (USongs.CatSongs.GetVisibleSongs() > 0) then begin I2:= 0; for I := Low(CatSongs.Song) to High(Catsongs.Song) do @@ -373,7 +321,7 @@ procedure TScreenSong.FixSelected2; var I, I2: integer; begin - if (CatSongs.VisibleSongs > 0) then + if (USongs.CatSongs.GetVisibleSongs() > 0) then begin I2:= 0; for I := Low(CatSongs.Song) to High(Catsongs.Song) do @@ -420,23 +368,10 @@ procedure TScreenSong.HideCatTL; end; //Show Cat in Top Left Mod End -procedure TScreenSong.ResetScrollList(); -begin - - if (TSongMenuMode(Ini.SongMenu) = smList) then - begin - ListFirstVisibleSongIndex := 0; - ListMinLine := 0; - ListLastMinLine := 0; - - SetScrollRefresh; - end; - -end; - procedure TScreenSong.ParseInputNextHorizontal(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean); var SDL_ModState: word; + I: integer; begin CloseMessage(); @@ -456,17 +391,10 @@ procedure TScreenSong.ParseInputNextHorizontal(PressedKey: cardinal; CharCode: U end else begin - if (TSongMenuMode(Ini.SongMenu) <> smList) then - begin - AudioPlayback.PlaySound(SoundLib.Change); - SelectNext(false); - SetScrollRefresh; - end - else + for I := 1 to IfThen(PressedKey = SDLK_PAGEDOWN, Theme.Song.Cover.Rows, 1) do begin - // list change row - SelectNextListRow; - SetScrollRefresh; + Self.SelectNext(); + Self.SetScroll(true) end; end; end; @@ -475,6 +403,7 @@ procedure TScreenSong.ParseInputNextHorizontal(PressedKey: cardinal; CharCode: U procedure TScreenSong.ParseInputPrevHorizontal(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean); var SDL_ModState: word; + I: integer; begin CloseMessage(); @@ -494,17 +423,10 @@ procedure TScreenSong.ParseInputPrevHorizontal(PressedKey: cardinal; CharCode: U end else begin - if (TSongMenuMode(Ini.SongMenu) <> smList) then - begin - AudioPlayback.PlaySound(SoundLib.Change); - SelectPrev; - SetScrollRefresh; - end - else + for I := 1 to IfThen(PressedKey = SDLK_PAGEUP, Theme.Song.Cover.Rows, 1) do begin - // list change row - SelectPrevListRow; - SetScrollRefresh; + Self.SelectPrev(); + Self.SetScroll(true) end; end; end; @@ -524,7 +446,7 @@ procedure TScreenSong.ParseInputNextVertical(PressedKey: cardinal; CharCode: UCS if (TSongMenuMode(Ini.SongMenu) <> smChessboard) and (TSongMenuMode(Ini.SongMenu) <> smMosaic) and (TSongMenuMode(Ini.SongMenu) <> smSlotMachine) then begin //Cat Change Hack - if Ini.TabsAtStartup = 1 then + if UIni.Ini.Tabs = 1 then begin I := Interaction; @@ -546,21 +468,15 @@ procedure TScreenSong.ParseInputNextVertical(PressedKey: cardinal; CharCode: UCS CatSongs.ClickCategoryButton(Interaction); SelectNext; FixSelected; - - //Play Music: - AudioPlayback.PlaySound(SoundLib.Change); end; //Cat Change Hack End} end else - begin - // chessboard change row - SelectNextRow; - SetScrollRefresh; - end; - - // ResetScrollList; - + for I := 1 to IfThen(PressedKey = SDLK_PAGEDOWN, Theme.Song.Cover.Rows, 1) do + begin + Self.SelectNextRow(); + Self.SetScroll(true) + end; end else begin @@ -568,7 +484,7 @@ procedure TScreenSong.ParseInputNextVertical(PressedKey: cardinal; CharCode: UCS begin // chessboard change row SelectNextRow; - SetScrollRefresh; + Self.SetScroll(true); end; end; end; @@ -588,7 +504,7 @@ procedure TScreenSong.ParseInputPrevVertical(PressedKey: cardinal; CharCode: UCS if (TSongMenuMode(Ini.SongMenu) <> smChessboard) and (TSongMenuMode(Ini.SongMenu) <> smMosaic) and (TSongMenuMode(Ini.SongMenu) <> smSlotMachine) then begin //Cat Change Hack - if Ini.TabsAtStartup = 1 then + if UIni.Ini.Tabs = 1 then begin I := Interaction; I2 := 0; @@ -612,21 +528,15 @@ procedure TScreenSong.ParseInputPrevVertical(PressedKey: cardinal; CharCode: UCS CatSongs.ClickCategoryButton(I); SelectNext; FixSelected; - - //Play Music: - AudioPlayback.PlaySound(SoundLib.Change); end; //Cat Change Hack End} end else - begin - // chessboard change row - SelectPrevRow; - SetScrollRefresh; - end; - - // ResetScrollList; - + for I := 1 to IfThen(PressedKey = SDLK_PAGEUP, Theme.Song.Cover.Rows, 1) do + begin + Self.SelectPrevRow(); + Self.SetScroll(true) + end; end else begin @@ -634,7 +544,7 @@ procedure TScreenSong.ParseInputPrevVertical(PressedKey: cardinal; CharCode: UCS begin // chessboard change row SelectPrevRow; - SetScrollRefresh; + Self.SetScroll(true); end; end; @@ -646,19 +556,16 @@ procedure TScreenSong.ParseInputPrevVertical(PressedKey: cardinal; CharCode: UCS // should be checked to know the next window to load; function TScreenSong.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; var - I: integer; - I2: integer; - SDL_ModState: word; - UpperLetter: UCS4Char; - TempStr: UTF8String; - VerifySong, WebList: string; + I: integer; + I2: integer; + SDL_ModState: word; + PressedKeyEncoded: UTF8String; + Song: USong.TSong; + WebList: string; Fix: boolean; - VS: integer; begin Result := true; - VS := CatSongs.VisibleSongs; - //Song Screen Extensions (Jumpto + Menu) if (ScreenSongMenu.Visible) then begin @@ -673,123 +580,36 @@ function TScreenSong.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse if (PressedDown) then begin // Key Down + Self.PreloadCovers := false; + SDL_ModState := SDL_GetModState and (KMOD_LSHIFT + KMOD_RSHIFT + KMOD_LCTRL + KMOD_RCTRL + KMOD_LALT + KMOD_RALT); - SDL_ModState := SDL_GetModState and (KMOD_LSHIFT + KMOD_RSHIFT - + KMOD_LCTRL + KMOD_RCTRL + KMOD_LALT + KMOD_RALT); - - //Jump to Artist/Titel - if ((SDL_ModState and KMOD_LALT <> 0) and (FreeListMode)) then + //jump to artist or title letter + if Self.FreeListMode() and ((SDL_ModState = KMOD_LCTRL) or (SDL_ModState = KMOD_LALT)) then begin - if(PressedKey > 1114111) then - begin - Exit; - end; - UpperLetter := UCS4UpperCase(PressedKey); - if (PressedKey in ([SDLK_a..SDLK_z, SDLK_0..SDLK_9])) then begin - I2 := Length(CatSongs.Song); - - //Jump To Titel - if (SDL_ModState = (KMOD_LALT or KMOD_LSHIFT)) then - begin - for I := 1 to High(CatSongs.Song) do - begin - if (CatSongs.Song[(I + Interaction) mod I2].Visible) then - begin - TempStr := CatSongs.Song[(I + Interaction) mod I2].Title; - if (Length(TempStr) > 0) and - (UCS4UpperCase(UTF8ToUCS4String(TempStr)[0]) = UpperLetter) then - begin - SkipTo(CatSongs.VisibleIndex((I + Interaction) mod I2), (I + Interaction) mod I2, VS); - - AudioPlayback.PlaySound(SoundLib.Change); - - SetScrollRefresh; - //Break and Exit - Exit; - end; - end; - end; - end - //Jump to Artist - else if (SDL_ModState = KMOD_LALT) then - begin - for I := 1 to High(CatSongs.Song) do - begin - if (CatSongs.Song[(I + Interaction) mod I2].Visible) then - begin - TempStr := CatSongs.Song[(I + Interaction) mod I2].Artist; - if (Length(TempStr) > 0) and - (UCS4UpperCase(UTF8ToUCS4String(TempStr)[0]) = UpperLetter) then - begin - SkipTo(CatSongs.VisibleIndex((I + Interaction) mod I2), (I + Interaction) mod I2, VS); - - AudioPlayback.PlaySound(SoundLib.Change); - - SetScrollRefresh; - - //Break and Exit - Exit; - end; - end; - end; - end; - end; - - Exit; - end - else if (((PressedKey = SDLK_PAGEUP) or (PressedKey = SDLK_PAGEDOWN)) and (FreeListMode)) then - begin - I2 := Length(CatSongs.Song); - //get first letter of artist of currently selected song - UpperLetter := UCS4UpperCase(UTF8ToUCS4String(CatSongs.Song[(Interaction) mod I2].Artist)[0]); - if (PressedKey = SDLK_PAGEDOWN) then - begin - for I := 1 to High(CatSongs.Song) do - begin - if (CatSongs.Song[(I + Interaction) mod I2].Visible) then - begin - TempStr := CatSongs.Song[(I + Interaction) mod I2].Artist; - if (Length(TempStr) > 0) and - (UCS4UpperCase(UTF8ToUCS4String(TempStr)[0]) <> UpperLetter) then - begin - SkipTo(CatSongs.VisibleIndex((I + Interaction) mod I2), (I + Interaction) mod I2, VS); - AudioPlayback.PlaySound(SoundLib.Change); - SetScrollRefresh; - Exit; - end; - end; - end; - end - else if (PressedKey = SDLK_PAGEUP) then - begin - for I := High(CatSongs.Song) downto 1 do + PressedKeyEncoded := UUnicodeUtils.UCS4ToUTF8String(PressedKey); + for I2 := 0 to 1 do begin - if (CatSongs.Song[(I + Interaction) mod I2].Visible) then + I := 0; + for Song in CatSongs.Song do begin - TempStr := CatSongs.Song[(I + Interaction) mod I2].Artist; - if (Length(TempStr) > 0) and - (UCS4UpperCase(UTF8ToUCS4String(TempStr)[0]) <> UpperLetter) then + if + Song.Visible + and (((I2 = 0) and (I > Interaction)) or ((I2 = 1) and (I < Interaction))) + and UUnicodeUtils.UTF8StartsText(PressedKeyEncoded, IfThen(SDL_ModState = KMOD_LCTRL, Song.Title, Song.Artist)) + then begin - SkipTo(CatSongs.VisibleIndex((I + Interaction) mod I2), (I + Interaction) mod I2, VS); - AudioPlayback.PlaySound(SoundLib.Change); - SetScrollRefresh; + Self.SkipTo(I); Exit; end; + Inc(I); end; end; end; Exit; end; - // ********************** - // * workaround for LCTRL+R: it should be changed when we have a solution for the - // * CTRL+'A'..'Z' problem - if (SDL_ModState = KMOD_LCTRL) and (PressedKey = SDLK_R) then - CharCode := UCS4Char('R'); - // ********************** - // check normal keys case UCS4UpperCase(CharCode) of Ord('Q'): @@ -912,7 +732,7 @@ function TScreenSong.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse else if not MakeMedley and (CatSongs.Song[Interaction].Medley.Source>=msCalculated) and (Mode = smNormal)then - StartMedley(0, msCalculated); + StartMedley(0, msCalculated); end; Ord('D'): @@ -927,11 +747,11 @@ function TScreenSong.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse Ord('R'): begin - Randomize; + Randomize; if (Songs.SongList.Count > 0) and (FreeListMode) then begin - if (SDL_ModState = KMOD_LSHIFT) and (Ini.TabsAtStartup = 1) then // random category + if (SDL_ModState = KMOD_LSHIFT) and (UIni.Ini.Tabs = 1) then // random category begin I2 := 0; // count cats for I := 0 to High(CatSongs.Song) do @@ -962,7 +782,7 @@ function TScreenSong.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse end; end; end - else if (SDL_ModState = KMOD_LCTRL) and (Ini.TabsAtStartup = 1) then // random in all categories + else if (SDL_ModState = KMOD_LCTRL) and (UIni.Ini.Tabs = 1) then // random in all categories begin repeat I2 := Random(High(CatSongs.Song) + 1); @@ -991,15 +811,14 @@ function TScreenSong.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse Inc(I2); // choose song - SkipTo(I2 - I); + Self.SkipTo(I2 - I); end else // random in one category begin - SkipTo(Random(CatSongs.VisibleSongs)); + Self.SkipTo(Random(USongs.CatSongs.GetVisibleSongs())); end; - AudioPlayback.PlaySound(SoundLib.Change); - SetScrollRefresh; + Self.SetScroll(true); end; Exit; end; @@ -1014,9 +833,7 @@ function TScreenSong.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse for I:= 0 to High(Database.NetworkUser) do begin DllMan.LoadWebsite(I); - VerifySong := DllMan.WebsiteVerifySong(CatSongs.Song[Interaction].MD5); - - if (VerifySong = 'OK_SONG') then + if (DllMan.WebsiteVerifySong(WideString(CatSongs.Song[Interaction].MD5)) = 'OK_SONG') then WebList := Database.NetworkUser[I].Website + #13 end; @@ -1034,14 +851,15 @@ function TScreenSong.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse SDLK_ESCAPE, SDLK_BACKSPACE : begin - CloseMessage(); + Self.CloseMessage(); + Self.HideCatTL(); if (FreeListMode) then begin Fix := true; //On Escape goto Cat-List Hack - if (Ini.TabsAtStartup = 1) and (CatSongs.CatNumShow <> -1) then + if (UIni.Ini.Tabs = 1) and (CatSongs.CatNumShow <> -1) then begin //Find Category @@ -1074,49 +892,40 @@ function TScreenSong.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse //Stop Music //StopMusicPreview(); - OnSongDeSelect; + Self.OnSongDeSelect(); CatSongs.ShowCategoryList; - //Show Cat in Top Left Mod - HideCatTL; - //Show Wrong Song when Tabs on Fix if (Fix) then begin SelectNext; FixSelected; + Self.SetScroll(true); end; - ChessboardMinLine := MainChessboardMinLine; - ListMinLine := MainListMinLine; ListFirstVisibleSongIndex := MainListFirstVisibleSongIndex; if (TSongMenuMode(Ini.SongMenu) in [smList]) then - ListLastMinLine := -1; + Self.LastMinLine := -1; end else begin //On Escape goto Cat-List Hack End //Tabs off and in Search or Playlist -> Go back to Song view + Self.StopMusicPreview(); if (CatSongs.CatNumShow < -1) then begin - //Atm: Set Empty Filter CatSongs.SetFilter('', fltAll); - - //Show Cat in Top Left Mod - HideCatTL; Interaction := 0; - - //Show Wrong Song when Tabs on Fix - SelectNext; - FixSelected; + //it not needed in all modes, for example chessboard + Self.SelectNext(); + Self.FixSelected(); + Self.SetScroll(true); end else begin - StopMusicPreview(); - AudioPlayback.PlaySound(SoundLib.Back); //if (Mode = smPartyTournament) then // CurrentPartyTime := MAX_TIME - StrToInt(Text[TextPartyTime].Text); @@ -1135,30 +944,23 @@ function TScreenSong.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse //When in party Mode then Ask before Close else if (Mode = smPartyClassic) then begin - AudioPlayback.PlaySound(SoundLib.Back); CheckFadeTo(@ScreenMain,'MSG_END_PARTY'); end; if (TSongMenuMode(Ini.SongMenu) in [smChessboard, smMosaic, smList, smSlotMachine]) then - SetScrollRefresh; + Self.SetScroll(true); end; SDLK_RETURN: begin CloseMessage(); - - LastSelectTime := SDL_GetTicks; - if (Songs.SongList.Count > 0) then begin if CatSongs.Song[Interaction].Main then begin // clicked on Category Button - MainChessboardMinLine := ChessboardMinLine; - ChessboardMinLine := 0; - - MainListMinLine := ListMinLine; - ListMinLine := 0; + Self.MinLine := 0; + Self.LastMinLine := 0; ListFirstVisibleSongIndex := 0; //Show Cat in Top Left Mod @@ -1169,10 +971,7 @@ function TScreenSong.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse //Show Wrong Song when Tabs on Fix SelectNext; FixSelected; - - SetScrollRefresh; - - ResetScrollList; + Self.SetScroll(true); end else begin // clicked on song @@ -1247,41 +1046,29 @@ function TScreenSong.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse end; end; end; - - SDLK_DOWN: + SDLK_DOWN, SDLK_PAGEDOWN: begin - LastSelectTime := SDL_GetTicks; - if (TSongMenuMode(Ini.SongMenu) in [smSlotMachine, smList]) then ParseInputNextHorizontal(PressedKey, CharCode, PressedDown) else ParseInputNextVertical(PressedKey, CharCode, PressedDown); end; - - SDLK_UP: + SDLK_UP, SDLK_PAGEUP: begin - LastSelectTime := SDL_GetTicks; - if (TSongMenuMode(Ini.SongMenu) in [smSlotMachine, smList]) then ParseInputPrevHorizontal(PressedKey, CharCode, PressedDown) else ParseInputPrevVertical(PressedKey, CharCode, PressedDown); end; - SDLK_RIGHT: begin - LastSelectTime := SDL_GetTicks; - if (TSongMenuMode(Ini.SongMenu) in [smSlotMachine, smList]) then ParseInputNextVertical(PressedKey, CharCode, PressedDown) else ParseInputNextHorizontal(PressedKey, CharCode, PressedDown); end; - SDLK_LEFT: begin - LastSelectTime := SDL_GetTicks; - if (TSongMenuMode(Ini.SongMenu) in [smSlotMachine, smList]) then ParseInputPrevVertical(PressedKey, CharCode, PressedDown) else @@ -1292,8 +1079,11 @@ function TScreenSong.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse if (Mode = smJukebox) and (not CatSongs.Song[Interaction].Main) then ScreenJukebox.AddSongToJukeboxList(Interaction); - if (Mode = smNormal) and (CatSongs.Song[Interaction].isDuet) then - DuetChange := not DuetChange; + if (Mode = smNormal) and (USongs.CatSongs.Song[Interaction].isDuet) then + begin + Self.DuetChange := not Self.DuetChange; + Self.SetScroll(true); + end; end; SDLK_1: begin //Joker @@ -1345,225 +1135,59 @@ function TScreenSong.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Presse end; function TScreenSong.ParseMouse(MouseButton: integer; BtnDown: boolean; X, Y: integer): boolean; +var + B: integer; begin + Result := true; + Self.PreloadCovers := false; - // transfer mousecords to the 800x600 raster we use to draw + //transfer mousecords to the 800x600 raster we use to draw + Y := Round((Y / ScreenH) * RenderH); X := Round((X / (ScreenW / Screens)) * RenderW); if (X > RenderW) then X := X - RenderW; - Y := Round((Y / ScreenH) * RenderH); - - if (ScreenSongMenu.Visible) then - begin - Result := ScreenSongMenu.ParseMouse(MouseButton, BtnDown, X, Y); - exit; - end - else if (ScreenSongJumpTo.Visible) then - begin - Result := ScreenSongJumpTo.ParseMouse(MouseButton, BtnDown, X, Y); - exit; - end - else // no extension visible - begin - - case TSongMenuMode(Ini.SongMenu) of - smChessboard: Result := ParseMouseChessboard(MouseButton, BtnDown, X, Y); - smMosaic: Result := ParseMouseChessboard(MouseButton, BtnDown, X, Y); - smSlotMachine: Result := ParseMouseChessboard(MouseButton, BtnDown, X, Y); - else - Result := ParseMouseRoulette(MouseButton, BtnDown, X, Y); - end; - end; -end; - -function TScreenSong.ParseMouseChessboard(MouseButton: integer; BtnDown: boolean; X, Y: integer): boolean; -var - B: integer; -begin - Result := true; - - if (BtnDown) then + if UGraphic.ScreenSongMenu.Visible then + Result := UGraphic.ScreenSongMenu.ParseMouse(MouseButton, BtnDown, X, Y) + else if UGraphic.ScreenSongJumpTo.Visible then + Result := UGraphic.ScreenSongJumpTo.ParseMouse(MouseButton, BtnDown, X, Y) + else if BtnDown then begin - //if RightMbESC is set, send ESC keypress - if RightMbESC and (MouseButton = SDL_BUTTON_RIGHT) then - Result:=ParseInput(SDLK_ESCAPE, 0, true) - - //song scrolling with mousewheel - else if (MouseButton = SDL_BUTTON_WHEELDOWN) then - ParseInput(SDLK_DOWN, 0, true) - - else if (MouseButton = SDL_BUTTON_WHEELUP) then - ParseInput(SDLK_UP, 0, true) - - else - begin - - // click cover - for B := 0 to High(Button) do + case MouseButton of + SDL_BUTTON_LEFT: begin - if (Button[B].Visible) then - begin - if InRegion(X, Y, Button[B].GetMouseOverArea) then - begin - ParseInput(SDLK_RETURN, 0, true) - end; - end; + for B := 0 to High(Self.Button) do + if Self.Button[B].Visible and (Self.Button[B].Z > 0.9) and Self.InRegion(X, Y, Self.Button[B].GetMouseOverArea()) then //z to roulette mode fix + if Self.Interaction = B then + Self.ParseInput(SDLK_RETURN, 0, true) + else + Self.SkipTo(B); + + if Self.InRegion(X, Y, Self.Statics[Self.SongSelectionUp].GetMouseOverArea()) then //arrow to page up + Self.ParseInput(SDLK_PAGEUP, 0, true) + else if Self.InRegion(X, Y, Self.Statics[Self.SongSelectionDown].GetMouseOverArea()) then //arrow to page down + Self.ParseInput(SDLK_PAGEDOWN, 0, true); end; + SDL_BUTTON_RIGHT: //go back + if Self.RightMbESC then + Result := Self.ParseInput(SDLK_ESCAPE, 0, true); + SDL_BUTTON_MIDDLE: //open song menu + Self.ParseInput(0, Ord('M'), true); + SDL_BUTTON_WHEELDOWN: //next song + Self.SelectNext(); + SDL_BUTTON_WHEELUP: //previous song + Self.SelectPrev(); end; - end - else - begin - - // hover cover - for B := 0 to High(Button) do - begin - if (Button[B].Visible) then + else if UIni.TSongMenuMode(UIni.Ini.SongMenu) = smChessboard then //hover cover + for B := 0 to High(Self.Button) do + if Self.Button[B].Visible and Self.InRegion(X, Y, Self.Button[B].GetMouseOverArea()) and (Self.Interaction <> B) then begin - if InRegion(X, Y, Button[B].GetMouseOverArea) then - begin - if (Interaction <> B) then - begin - // play current hover - isScrolling := false; - OnSongDeSelect; - Interaction := B; - SetScrollRefresh; - LastSelectMouse := SDL_GetTicks; - LastSelectTime := SDL_GetTicks; - end; - end; + Self.Interaction := B; + Self.SongTarget := B; + Self.OnSongDeSelect(); + Self.SetScroll(); end; - end; - - end; -end; - -function TScreenSong.ParseMouseRoulette(MouseButton: integer; BtnDown: boolean; X, Y: integer): boolean; -var - I, J: Integer; - Btn: Integer; -begin - Result := true; - - if (BtnDown) then - begin - //if RightMbESC is set, send ESC keypress - if RightMbESC and (MouseButton = SDL_BUTTON_RIGHT) then - Result:=ParseInput(SDLK_ESCAPE, 0, true) - - //song scrolling with mousewheel - else if (MouseButton = SDL_BUTTON_WHEELDOWN) then - ParseInput(SDLK_RIGHT, 0, true) - - else if (MouseButton = SDL_BUTTON_WHEELUP) then - ParseInput(SDLK_LEFT, 0, true) - - //LMB anywhere starts - else if (MouseButton = SDL_BUTTON_LEFT) then - begin - if (CatSongs.VisibleSongs =3) or (CatSongs.VisibleSongs = 4) then - begin - // select the second visible button left from selected - I := 0; - Btn := Interaction; - while (I < 1) do - begin - Dec(Btn); - if (Btn < 0) then - Btn := High(CatSongs.Song); - - if (CatSongs.Song[Btn].Visible) then - Inc(I); - end; - - // test the 3 front buttons for click - for I := 0 to 2 do - begin - if InRegion(X, Y, Button[Btn].GetMouseOverArea) then - begin - // song cover clicked - if (I = 1) then - begin // Selected Song clicked -> start singing - ParseInput(SDLK_RETURN, 0, true); - end - else - begin // one of the other 4 covers in the front clicked -> select it - J := I - 1; - while (J < 0) do - begin - ParseInput(SDLK_LEFT, 0, true); - Inc(J); - end; - - while (J > 0) do - begin - ParseInput(SDLK_RIGHT, 0, true); - Dec(J); - end; - end; - Break; - end; - - Btn := CatSongs.FindNextVisible(Btn); - if (Btn = -1) then - Break; - end; - end - else if (CatSongs.VisibleSongs > 4) then - begin - // select the second visible button left from selected - I := 0; - Btn := Interaction; - while (I < 2) do - begin - Dec(Btn); - if (Btn < 0) then - Btn := High(CatSongs.Song); - - if (CatSongs.Song[Btn].Visible) then - Inc(I); - end; - - // test the 5 front buttons for click - for I := 0 to 4 do - begin - - if InRegion(X, Y, Button[Btn].GetMouseOverArea) then - begin - // song cover clicked - if (I = 2) then - begin // Selected Song clicked -> start singing - ParseInput(SDLK_RETURN, 0, true); - end - else - begin // one of the other 4 covers in the front clicked -> select it - J := I - 2; - while (J < 0) do - begin - ParseInput(SDLK_LEFT, 0, true); - Inc(J); - end; - - while (J > 0) do - begin - ParseInput(SDLK_RIGHT, 0, true); - Dec(J); - end; - end; - Break; - end; - - Btn := CatSongs.FindNextVisible(Btn); - if (Btn = -1) then - Break; - end; - end - else - ParseInput(SDLK_RETURN, 0, true); - end; - end; end; procedure TScreenSong.ColorizeJokers; @@ -1597,6 +1221,9 @@ constructor TScreenSong.Create; begin inherited Create; + Self.AddButtons(); + Self.Covers := High(USongs.CatSongs.Song); + Self.PreloadCovers := true; LoadFromTheme(Theme.Song); TextArtist := AddText(Theme.Song.TextArtist); @@ -1676,7 +1303,7 @@ constructor TScreenSong.Create; Equalizer := Tms_Equalizer.Create(AudioPlayback, Theme.Song.Equalizer); PreviewOpened := -1; - isScrolling := false; + Self.IsScrolling := false; fCurrentVideo := nil; @@ -1718,8 +1345,15 @@ constructor TScreenSong.Create; StaticMedley[I] := AddStatic(Theme.Song.StaticMedley[I]); end; - StaticActual := AddStatic(Theme.Song.Cover.SelectX, Theme.Song.Cover.SelectY, - Theme.Song.Cover.SelectW, Theme.Song.Cover.SelectH, PATH_NONE); + Self.MainCover := AddStatic( + Theme.Song.Cover.SelectX, + Theme.Song.Cover.SelectY, + Theme.Song.Cover.SelectW, + Theme.Song.Cover.SelectH, + PATH_NONE + ); + Self.SongSelectionUp := Self.AddStatic(UThemes.Theme.Song.SongSelectionUp); + Self.SongSelectionDown := Self.AddStatic(UThemes.Theme.Song.SongSelectionDown); Num := Theme.Song.ListCover.Rows; @@ -1796,194 +1430,101 @@ constructor TScreenSong.Create; ListRapIcon[I] := AddStatic(Theme.Song.RapIcon); end; - MainChessboardMinLine := 0; - MainListMinLine := 0; - - ChessboardMinLine := 0; - ListMinLine := 0; + Self.MinLine := 0; ListFirstVisibleSongIndex := 0; - - LastSelectMouse := 0; - LastSelectTime := 0; - end; procedure TScreenSong.ColorDuetNameSingers(); + procedure SetColor(Singer: integer; Color: integer); + begin + Self.Statics[Singer].Texture.ColR := ColPlayer[Color].R; + Self.Statics[Singer].Texture.ColG := ColPlayer[Color].G; + Self.Statics[Singer].Texture.ColB := ColPlayer[Color].B; + end; var Col: TRGB; begin - if (PlayersPlay = 1) then - begin - Statics[Static2PlayersDuetSingerP1].Texture.ColR := ColPlayer[0].R; - Statics[Static2PlayersDuetSingerP1].Texture.ColG := ColPlayer[0].G; - Statics[Static2PlayersDuetSingerP1].Texture.ColB := ColPlayer[0].B; - - Col := GetPlayerLightColor(Ini.SingColor[0]); - Statics[Static2PlayersDuetSingerP2].Texture.ColR := Col.R; - Statics[Static2PlayersDuetSingerP2].Texture.ColG := Col.G; - Statics[Static2PlayersDuetSingerP2].Texture.ColB := Col.B; - end; - - if (PlayersPlay = 2) then - begin - Statics[Static2PlayersDuetSingerP1].Texture.ColR := ColPlayer[0].R; - Statics[Static2PlayersDuetSingerP1].Texture.ColG := ColPlayer[0].G; - Statics[Static2PlayersDuetSingerP1].Texture.ColB := ColPlayer[0].B; + case UNote.PlayersPlay of + 1: + begin + SetColor(Static2PlayersDuetSingerP1, 0); - Statics[Static2PlayersDuetSingerP2].Texture.ColR := ColPlayer[1].R; - Statics[Static2PlayersDuetSingerP2].Texture.ColG := ColPlayer[1].G; - Statics[Static2PlayersDuetSingerP2].Texture.ColB := ColPlayer[1].B; - end; + Col := UThemes.GetPlayerLightColor(Ini.SingColor[0]); + Self.Statics[Static2PlayersDuetSingerP2].Texture.ColR := Col.R; + Self.Statics[Static2PlayersDuetSingerP2].Texture.ColG := Col.G; + Self.Statics[Static2PlayersDuetSingerP2].Texture.ColB := Col.B; + end; + 2: + begin + SetColor(Static2PlayersDuetSingerP1, 0); + SetColor(Static2PlayersDuetSingerP2, 1); + end; + 3: + begin + SetColor(Static3PlayersDuetSingerP1, 0); + SetColor(Static3PlayersDuetSingerP2, 1); + SetColor(Static3PlayersDuetSingerP3, 2); + end; + 4: + begin + if UGraphic.Screens = 1 then + begin + SetColor(Static2PlayersDuetSingerP1, 0); + SetColor(Static2PlayersDuetSingerP2, 1); + SetColor(Static4PlayersDuetSingerP3, 2); + SetColor(Static4PlayersDuetSingerP4, 3); + end + else + begin + if UGraphic.ScreenAct = 1 then + begin + SetColor(Static2PlayersDuetSingerP1, 0); + SetColor(Static2PlayersDuetSingerP2, 1); + end; - if (PlayersPlay = 3) then - begin - Statics[Static3PlayersDuetSingerP1].Texture.ColR := ColPlayer[0].R; - Statics[Static3PlayersDuetSingerP1].Texture.ColG := ColPlayer[0].G; - Statics[Static3PlayersDuetSingerP1].Texture.ColB := ColPlayer[0].B; - - Statics[Static3PlayersDuetSingerP2].Texture.ColR := ColPlayer[1].R; - Statics[Static3PlayersDuetSingerP2].Texture.ColG := ColPlayer[1].G; - Statics[Static3PlayersDuetSingerP2].Texture.ColB := ColPlayer[1].B; - - Statics[Static3PlayersDuetSingerP3].Texture.ColR := ColPlayer[2].R; - Statics[Static3PlayersDuetSingerP3].Texture.ColG := ColPlayer[2].G; - Statics[Static3PlayersDuetSingerP3].Texture.ColB := ColPlayer[2].B; - end; - - if (PlayersPlay = 4) then - begin - if (Screens = 1) then - begin - Statics[Static2PlayersDuetSingerP1].Texture.ColR := ColPlayer[0].R; - Statics[Static2PlayersDuetSingerP1].Texture.ColG := ColPlayer[0].G; - Statics[Static2PlayersDuetSingerP1].Texture.ColB := ColPlayer[0].B; - - Statics[Static2PlayersDuetSingerP2].Texture.ColR := ColPlayer[1].R; - Statics[Static2PlayersDuetSingerP2].Texture.ColG := ColPlayer[1].G; - Statics[Static2PlayersDuetSingerP2].Texture.ColB := ColPlayer[1].B; - - Statics[Static4PlayersDuetSingerP3].Texture.ColR := ColPlayer[2].R; - Statics[Static4PlayersDuetSingerP3].Texture.ColG := ColPlayer[2].G; - Statics[Static4PlayersDuetSingerP3].Texture.ColB := ColPlayer[2].B; - - Statics[Static4PlayersDuetSingerP4].Texture.ColR := ColPlayer[3].R; - Statics[Static4PlayersDuetSingerP4].Texture.ColG := ColPlayer[3].G; - Statics[Static4PlayersDuetSingerP4].Texture.ColB := ColPlayer[3].B; - end - else - begin - if (ScreenAct = 1) then - begin - Statics[Static2PlayersDuetSingerP1].Texture.ColR := ColPlayer[0].R; - Statics[Static2PlayersDuetSingerP1].Texture.ColG := ColPlayer[0].G; - Statics[Static2PlayersDuetSingerP1].Texture.ColB := ColPlayer[0].B; - - Statics[Static2PlayersDuetSingerP2].Texture.ColR := ColPlayer[1].R; - Statics[Static2PlayersDuetSingerP2].Texture.ColG := ColPlayer[1].G; - Statics[Static2PlayersDuetSingerP2].Texture.ColB := ColPlayer[1].B; - end; - - if (ScreenAct = 2) then - begin - Statics[Static2PlayersDuetSingerP1].Texture.ColR := ColPlayer[2].R; - Statics[Static2PlayersDuetSingerP1].Texture.ColG := ColPlayer[2].G; - Statics[Static2PlayersDuetSingerP1].Texture.ColB := ColPlayer[2].B; - - Statics[Static2PlayersDuetSingerP2].Texture.ColR := ColPlayer[3].R; - Statics[Static2PlayersDuetSingerP2].Texture.ColG := ColPlayer[3].G; - Statics[Static2PlayersDuetSingerP2].Texture.ColB := ColPlayer[3].B; - end; - end; - end; - - if (PlayersPlay = 6) then - begin - if (Screens = 1) then - begin - Statics[Static3PlayersDuetSingerP1].Texture.ColR := ColPlayer[0].R; - Statics[Static3PlayersDuetSingerP1].Texture.ColG := ColPlayer[0].G; - Statics[Static3PlayersDuetSingerP1].Texture.ColB := ColPlayer[0].B; - - Statics[Static3PlayersDuetSingerP2].Texture.ColR := ColPlayer[1].R; - Statics[Static3PlayersDuetSingerP2].Texture.ColG := ColPlayer[1].G; - Statics[Static3PlayersDuetSingerP2].Texture.ColB := ColPlayer[1].B; - - Statics[Static3PlayersDuetSingerP3].Texture.ColR := ColPlayer[2].R; - Statics[Static3PlayersDuetSingerP3].Texture.ColG := ColPlayer[2].G; - Statics[Static3PlayersDuetSingerP3].Texture.ColB := ColPlayer[2].B; - - Statics[Static6PlayersDuetSingerP4].Texture.ColR := ColPlayer[3].R; - Statics[Static6PlayersDuetSingerP4].Texture.ColG := ColPlayer[3].G; - Statics[Static6PlayersDuetSingerP4].Texture.ColB := ColPlayer[3].B; - - Statics[Static6PlayersDuetSingerP5].Texture.ColR := ColPlayer[4].R; - Statics[Static6PlayersDuetSingerP5].Texture.ColG := ColPlayer[4].G; - Statics[Static6PlayersDuetSingerP5].Texture.ColB := ColPlayer[4].B; - - Statics[Static6PlayersDuetSingerP6].Texture.ColR := ColPlayer[5].R; - Statics[Static6PlayersDuetSingerP6].Texture.ColG := ColPlayer[5].G; - Statics[Static6PlayersDuetSingerP6].Texture.ColB := ColPlayer[5].B; - end - else - begin - if (ScreenAct = 1) then - begin - Statics[Static3PlayersDuetSingerP1].Texture.ColR := ColPlayer[0].R; - Statics[Static3PlayersDuetSingerP1].Texture.ColG := ColPlayer[0].G; - Statics[Static3PlayersDuetSingerP1].Texture.ColB := ColPlayer[0].B; - - Statics[Static3PlayersDuetSingerP2].Texture.ColR := ColPlayer[1].R; - Statics[Static3PlayersDuetSingerP2].Texture.ColG := ColPlayer[1].G; - Statics[Static3PlayersDuetSingerP2].Texture.ColB := ColPlayer[1].B; - - Statics[Static3PlayersDuetSingerP3].Texture.ColR := ColPlayer[2].R; - Statics[Static3PlayersDuetSingerP3].Texture.ColG := ColPlayer[2].G; - Statics[Static3PlayersDuetSingerP3].Texture.ColB := ColPlayer[2].B; + if UGraphic.ScreenAct = 2 then + begin + SetColor(Static2PlayersDuetSingerP1, 2); + SetColor(Static2PlayersDuetSingerP2, 3); + end; + end; end; - - if (ScreenAct = 2) then + 6: begin - Statics[Static3PlayersDuetSingerP1].Texture.ColR := ColPlayer[3].R; - Statics[Static3PlayersDuetSingerP1].Texture.ColG := ColPlayer[3].G; - Statics[Static3PlayersDuetSingerP1].Texture.ColB := ColPlayer[3].B; - - Statics[Static3PlayersDuetSingerP2].Texture.ColR := ColPlayer[4].R; - Statics[Static3PlayersDuetSingerP2].Texture.ColG := ColPlayer[4].G; - Statics[Static3PlayersDuetSingerP2].Texture.ColB := ColPlayer[4].B; - - Statics[Static3PlayersDuetSingerP3].Texture.ColR := ColPlayer[5].R; - Statics[Static3PlayersDuetSingerP3].Texture.ColG := ColPlayer[5].G; - Statics[Static3PlayersDuetSingerP3].Texture.ColB := ColPlayer[5].B; + if UGraphic.Screens = 1 then + begin + SetColor(Static3PlayersDuetSingerP1, 0); + SetColor(Static3PlayersDuetSingerP2, 1); + SetColor(Static3PlayersDuetSingerP3, 2); + SetColor(Static6PlayersDuetSingerP4, 3); + SetColor(Static6PlayersDuetSingerP5, 4); + SetColor(Static6PlayersDuetSingerP6, 5); + end + else + begin + if UGraphic.ScreenAct = 1 then + begin + SetColor(Static3PlayersDuetSingerP1, 0); + SetColor(Static3PlayersDuetSingerP2, 1); + SetColor(Static3PlayersDuetSingerP3, 2); + end; + if UGraphic.ScreenAct = 2 then + begin + SetColor(Static3PlayersDuetSingerP1, 3); + SetColor(Static3PlayersDuetSingerP2, 4); + SetColor(Static3PlayersDuetSingerP3, 5); + end; + end; end; - end; end; end; -procedure TScreenSong.GenerateThumbnails(); -var - I: integer; - CoverFile: IPath; - Song: TSong; -begin - if (Length(CatSongs.Song) <= 0) then - Exit; - - // set length of button array once instead for every song - SetButtonLength(Length(CatSongs.Song)); - - // create all buttons - for I := 0 to High(CatSongs.Song) do - AddButton(300 + I*250, 140, 200, 200, PATH_NONE, TEXTURE_TYPE_PLAIN, Theme.Song.Cover.Reflections); - - // reset selection - if (Length(CatSongs.Song) > 0) then - Interaction := 0; -end; - { called when song flows movement stops at a song } procedure TScreenSong.OnSongSelect; begin + Self.SongTarget := Self.Interaction; + Self.IsScrolling := false; if (Ini.PreviewVolume <> 0) then begin StartMusicPreview; @@ -1994,51 +1535,32 @@ procedure TScreenSong.OnSongSelect; CoverTime := 0; SongIndex := -1; - - //SetScrollRefresh; end; { called before current song is deselected } procedure TScreenSong.OnSongDeSelect; begin + Self.IsScrolling := true; DuetChange := false; CoverTime := 10; StopMusicPreview(); StopVideoPreview(); PreviewOpened := -1; - - //SetScrollRefresh; -end; - -procedure TScreenSong.SetScrollRefresh; -begin - case TSongMenuMode(Ini.SongMenu) of - smRoulette: SetRouletteScrollRefresh; - smChessboard: SetChessboardScrollRefresh; - smCarousel: SetCarouselScrollRefresh; - smSlotMachine: SetSlotMachineScrollRefresh; - smSlide: SetSlideScrollRefresh; - smList: SetListScrollRefresh; - smMosaic: SetChessboardScrollRefresh; - end; - {if Button[Interaction].Texture.TexNum > 0 then - begin - glDeleteTextures(1, PGLuint(@Button[Interaction].Texture.TexNum)); - Button[Interaction].Texture.TexNum := 0; - end; - Button[Interaction].Texture := Covers.FindCover(Button[Interaction].Texture.Name).GetTexture();} - //basisbit todo here end; -procedure TScreenSong.SetScroll; +procedure TScreenSong.SetScroll(force: boolean = false); var VS, B, SongsInCat: integer; + DuetPlayer1: UTF8String = ''; + DuetPlayer2: UTF8String = ''; begin - VS := CatSongs.VisibleSongs; + if not (force or Self.IsScrolling) then //to avoid unnecessary modifications if nothing changes + Exit; + + VS := USongs.CatSongs.GetVisibleSongs(); if VS > 0 then begin - case TSongMenuMode(Ini.SongMenu) of smRoulette: SetRouletteScroll; smChessboard: SetChessboardScroll; @@ -2055,8 +1577,8 @@ procedure TScreenSong.SetScroll; Statics[VideoIcon].Visible := CatSongs.Song[Interaction].Video.IsSet; // Set visibility of medley icons - Statics[MedleyIcon].Visible := (CatSongs.Song[Interaction].Medley.Source = msTag); - Statics[CalcMedleyIcon].Visible := (CatSongs.Song[Interaction].Medley.Source = msCalculated); + Statics[MedleyIcon].Visible := (CatSongs.Song[Interaction].Medley.Source = msTag) and not CatSongs.Song[Interaction].isDuet; + Statics[CalcMedleyIcon].Visible := (CatSongs.Song[Interaction].Medley.Source = msCalculated) and not CatSongs.Song[Interaction].isDuet; //Set Visibility of Duet Icon Statics[DuetIcon].Visible := CatSongs.Song[Interaction].isDuet; @@ -2064,7 +1586,6 @@ procedure TScreenSong.SetScroll; //Set Visibility of Rap Icon Statics[RapIcon].Visible := CatSongs.Song[Interaction].hasRap; - // Set texts Text[TextArtist].Text := CatSongs.Song[Interaction].Artist; Text[TextTitle].Text := CatSongs.Song[Interaction].Title; @@ -2076,19 +1597,17 @@ procedure TScreenSong.SetScroll; end; // Duet Singers - if (CatSongs.Song[Interaction].isDuet) then + if USongs.CatSongs.Song[Interaction].isDuet then begin - if (PlayersPlay = 3) or (PlayersPlay = 6) then + if (UNote.PlayersPlay = 3) or (UNote.PlayersPlay = 6) then begin Text[Text3PlayersDuetSingerP1].Visible := true; Text[Text3PlayersDuetSingerP2].Visible := true; Text[Text3PlayersDuetSingerP3].Visible := true; - Statics[Static3PlayersDuetSingerP1].Visible := true; Statics[Static3PlayersDuetSingerP2].Visible := true; Statics[Static3PlayersDuetSingerP3].Visible := true; - - if (Screens = 1) and (PlayersPlay = 6) then + if (UGraphic.Screens = 1) and (UNote.PlayersPlay = 6) then begin Statics[Static6PlayersDuetSingerP4].Visible := true; Statics[Static6PlayersDuetSingerP5].Visible := true; @@ -2099,11 +1618,9 @@ procedure TScreenSong.SetScroll; begin Text[Text2PlayersDuetSingerP1].Visible := true; Text[Text2PlayersDuetSingerP2].Visible := true; - Statics[Static2PlayersDuetSingerP1].Visible := true; Statics[Static2PlayersDuetSingerP2].Visible := true; - - if (Screens = 1) and (PlayersPlay = 4) then + if (UGraphic.Screens = 1) and (UNote.PlayersPlay = 4) then begin Statics[Static4PlayersDuetSingerP3].Visible := true; Statics[Static4PlayersDuetSingerP4].Visible := true; @@ -2111,100 +1628,68 @@ procedure TScreenSong.SetScroll; end; // Set duet texts - if (DuetChange) then + if Self.DuetChange then begin - if (PlayersPlay = 3) or (PlayersPlay = 6) then - begin - if (PlayersPlay = 3) then - begin - Text[Text3PlayersDuetSingerP1].Text := CatSongs.Song[Interaction].DuetNames[1]; - Text[Text3PlayersDuetSingerP2].Text := CatSongs.Song[Interaction].DuetNames[0]; - Text[Text3PlayersDuetSingerP3].Text := CatSongs.Song[Interaction].DuetNames[1]; - end - else - begin - if (ScreenAct = 1) then - begin - Text[Text3PlayersDuetSingerP1].Text := CatSongs.Song[Interaction].DuetNames[1]; - Text[Text3PlayersDuetSingerP2].Text := CatSongs.Song[Interaction].DuetNames[0]; - Text[Text3PlayersDuetSingerP3].Text := CatSongs.Song[Interaction].DuetNames[1]; - end - else - begin - Text[Text3PlayersDuetSingerP1].Text := CatSongs.Song[Interaction].DuetNames[0]; - Text[Text3PlayersDuetSingerP2].Text := CatSongs.Song[Interaction].DuetNames[1]; - Text[Text3PlayersDuetSingerP3].Text := CatSongs.Song[Interaction].DuetNames[0]; - end; - end; - end - else - begin - Text[Text2PlayersDuetSingerP1].Text := CatSongs.Song[Interaction].DuetNames[1]; - Text[Text2PlayersDuetSingerP2].Text := CatSongs.Song[Interaction].DuetNames[0]; - end; + DuetPlayer1 := CatSongs.Song[Interaction].DuetNames[1]; + DuetPlayer2 := CatSongs.Song[Interaction].DuetNames[0]; end else begin - if (PlayersPlay = 3) or (PlayersPlay = 6) then - begin - if (PlayersPlay = 3) then - begin - Text[Text3PlayersDuetSingerP1].Text := CatSongs.Song[Interaction].DuetNames[0]; - Text[Text3PlayersDuetSingerP2].Text := CatSongs.Song[Interaction].DuetNames[1]; - Text[Text3PlayersDuetSingerP3].Text := CatSongs.Song[Interaction].DuetNames[0]; - end - else + DuetPlayer1 := CatSongs.Song[Interaction].DuetNames[0]; + DuetPlayer2 := CatSongs.Song[Interaction].DuetNames[1]; + end; + case UNote.PlayersPlay of + 6: begin - if (ScreenAct = 1) then + if UGraphic.ScreenAct = 1 then begin - Text[Text3PlayersDuetSingerP1].Text := CatSongs.Song[Interaction].DuetNames[0]; - Text[Text3PlayersDuetSingerP2].Text := CatSongs.Song[Interaction].DuetNames[1]; - Text[Text3PlayersDuetSingerP3].Text := CatSongs.Song[Interaction].DuetNames[0]; + Text[Text3PlayersDuetSingerP1].Text := DuetPlayer1; + Text[Text3PlayersDuetSingerP2].Text := DuetPlayer2; + Text[Text3PlayersDuetSingerP3].Text := DuetPlayer1; end else begin - Text[Text3PlayersDuetSingerP1].Text := CatSongs.Song[Interaction].DuetNames[1]; - Text[Text3PlayersDuetSingerP2].Text := CatSongs.Song[Interaction].DuetNames[0]; - Text[Text3PlayersDuetSingerP3].Text := CatSongs.Song[Interaction].DuetNames[1]; - end; + Text[Text3PlayersDuetSingerP1].Text := DuetPlayer2; + Text[Text3PlayersDuetSingerP2].Text := DuetPlayer1; + Text[Text3PlayersDuetSingerP3].Text := DuetPlayer2; + end + end; + 3: + begin + Text[Text3PlayersDuetSingerP1].Text := DuetPlayer1; + Text[Text3PlayersDuetSingerP2].Text := DuetPlayer2; + Text[Text3PlayersDuetSingerP3].Text := DuetPlayer1; + end; + else //1 or 2 players + begin + Text[Text2PlayersDuetSingerP1].Text := DuetPlayer1; + Text[Text2PlayersDuetSingerP2].Text := DuetPlayer2; end; - end - else - begin - Text[Text2PlayersDuetSingerP1].Text := CatSongs.Song[Interaction].DuetNames[0]; - Text[Text2PlayersDuetSingerP2].Text := CatSongs.Song[Interaction].DuetNames[1]; - end; end; end else begin Text[Text2PlayersDuetSingerP1].Visible := false; Text[Text2PlayersDuetSingerP2].Visible := false; - - Statics[Static2PlayersDuetSingerP1].Visible := false; - Statics[Static2PlayersDuetSingerP2].Visible := false; - Text[Text3PlayersDuetSingerP1].Visible := false; Text[Text3PlayersDuetSingerP2].Visible := false; Text[Text3PlayersDuetSingerP3].Visible := false; - + Statics[Static2PlayersDuetSingerP1].Visible := false; + Statics[Static2PlayersDuetSingerP2].Visible := false; Statics[Static3PlayersDuetSingerP1].Visible := false; Statics[Static3PlayersDuetSingerP2].Visible := false; Statics[Static3PlayersDuetSingerP3].Visible := false; - Statics[Static4PlayersDuetSingerP3].Visible := false; Statics[Static4PlayersDuetSingerP4].Visible := false; - Statics[Static6PlayersDuetSingerP4].Visible := false; Statics[Static6PlayersDuetSingerP5].Visible := false; Statics[Static6PlayersDuetSingerP6].Visible := false; - end; //Set Song Score SongScore; - if (Ini.TabsAtStartup = 1) and (CatSongs.CatNumShow = -1) then + if (UIni.Ini.Tabs = 1) and (CatSongs.CatNumShow = -1) then begin Text[TextNumber].Text := IntToStr(CatSongs.Song[Interaction].OrderNum) + '/' + IntToStr(CatSongs.CatCount); SongsInCat := CatSongs.Song[Interaction].CatNumber; @@ -2217,7 +1702,7 @@ procedure TScreenSong.SetScroll; Text[TextNumber].Text := IntToStr(CatSongs.VisibleIndex(Interaction)+1) + '/' + IntToStr(VS) else if (CatSongs.CatNumShow = -3) then Text[TextNumber].Text := IntToStr(CatSongs.VisibleIndex(Interaction)+1) + '/' + IntToStr(VS) - else if (Ini.TabsAtStartup = 1) then + else if (UIni.Ini.Tabs = 1) then begin Text[TextNumber].Text := IntToStr(CatSongs.Song[Interaction].CatNumber)+ '/' + IntToStr(VS); if not Interaction = 0 then Text[TextNumber].Text := Text[TextNumber].Text + '/' + IntToStr(CatSongs.Song[Interaction - CatSongs.Song[Interaction].CatNumber].CatNumber); @@ -2240,731 +1725,393 @@ procedure TScreenSong.SetScroll; end; end; -(** - * Roulette - *) procedure TScreenSong.SetRouletteScroll; var - B: integer; - Angle: real; - Pos: real; - VS: integer; - Padding: real; - X,AutoWidthCorrection: real; + I, VisibleIndex: integer; + VS: integer; + B: TButton; + Angle, AutoWidthCorrection, Pos: real; begin - VS := CatSongs.VisibleSongs(); - - //calculate Auto-Width-Correction + VS := USongs.CatSongs.GetVisibleSongs(); AutoWidthCorrection:= (UGraphic.RenderH/UGraphic.ScreenH)*(UGraphic.ScreenW/UGraphic.RenderW); //ToDo basisbit: width for 2-screen-setup if Screens > 1 then AutoWidthCorrection:= AutoWidthCorrection / 2; - //LoadCover(Interaction); - // Update positions of all buttons - for B := 0 to High(Button) do + + I := 0; + VisibleIndex := 0; + for B in Button do begin - Button[B].Visible := CatSongs.Song[B].Visible; // adjust visibility - if Button[B].Visible then // Only change pos for visible buttons + B.Visible := CatSongs.Song[I].Visible; // adjust visibility + if B.Visible then // Only change pos for visible buttons begin // Pos is the distance to the centered cover in the range [-VS/2..+VS/2] - Pos := (CatSongs.VisibleIndex(B) - SongCurrent); - if (Pos < -VS/2) then + Pos := VisibleIndex - Self.SongCurrent; + Inc(VisibleIndex); + if (Pos < -VS / 2) then Pos := Pos + VS - else if (Pos > VS/2) then + else if (Pos > VS / 2) then Pos := Pos - VS; // Avoid overlapping of the front covers. // Use an alternate position for the five front covers. if (Abs(Pos) < 2.5) then begin - LoadCover(B); + Self.LoadCover(I); Angle := Pi * (Pos / Min(VS, 5)); // Range: (-1/4*Pi .. +1/4*Pi) - - Button[B].H := Abs(Theme.Song.Cover.H * AutoWidthCorrection * cos(Angle*0.8)); - Button[B].W := Abs(Theme.Song.Cover.W * cos(Angle*0.8)); - - //Button[B].Reflectionspacing := 15 * Button[B].H/Theme.Song.Cover.H; - Button[B].DeSelectReflectionspacing := 15 * Button[B].H/Theme.Song.Cover.H; - - Padding := (Button[B].W - Theme.Song.Cover.W)/2; - X := Sin(Angle*1.3) * 0.9 * 1.6; - - Button[B].X := Theme.Song.Cover.X + Theme.Song.Cover.W * X - Padding; - Button[B].Y := ((Theme.Song.Cover.Y) + ((Theme.Song.Cover.H) - Abs(Theme.Song.Cover.H * cos(Angle))) * 0.5) - (Button[B].H - (Button[B].H/AutoWidthCorrection)); - Button[B].Z := 0.95 - Abs(Pos) * 0.01; - - if VS < 5 then - begin - Button[B].Texture.Alpha := 1 - Abs(Pos) / VS * 2; - end - else - Button[B].Texture.Alpha := 1; + B.H := Abs(Theme.Song.Cover.H * AutoWidthCorrection * Cos(Angle * 0.8)); + B.W := Abs(Theme.Song.Cover.W * Cos(Angle * 0.8)); + // B.Reflectionspacing := 15 * B.H / Theme.Song.Cover.H; + B.DeSelectReflectionspacing := 15 * B.H / Theme.Song.Cover.H; + B.X := Theme.Song.Cover.X + Theme.Song.Cover.W * Sin(Angle * 1.3) * 0.9 * 1.6 - (B.W - Theme.Song.Cover.W) / 2; + B.Y := ((Theme.Song.Cover.Y) + ((Theme.Song.Cover.H) - Abs(Theme.Song.Cover.H * Cos(Angle))) * 0.5) - (B.H - (B.H / AutoWidthCorrection)); + B.Z := 0.95 - Abs(Pos) * 0.01; + B.Texture.Alpha := IfThen(VS < 5, 1 - Abs(Pos) / VS * 2, 1); end - { only draw 3 visible covers in the background - (the 3 that are on the opposite of the front covers} - (*else if (VS > 7) and (Abs(Pos) > floor(VS/2) - 1.5) then + //only draw 5 visible covers in the background (the 5 that are on the opposite of the front covers + else if (VS > 9) and (Abs(Pos) > Floor(VS / 2) - 2.5) then begin - LoadCover(B); + Self.LoadCover(I); // Transform Pos to range [-1..-3/4, +3/4..+1] - { the 3 covers at the back will show up in the gap between the + { the 5 covers at the back will show up in the gap between the front cover and its neighbors one cover will be hiddenbehind the front cover, but this will not be a lack of performance ;) } if Pos < 0 then - Pos := (Pos - 2 + ceil(VS/2))/8 - 0.75 + Pos := (Pos - 2 + Ceil(VS / 2)) / 8 - 0.75 else - Pos := (Pos + 2 - floor(VS/2))/8 + 0.75; + Pos := (Pos + 2 - Floor(VS / 2)) / 8 + 0.75; // angle in radians [-2Pi..-Pi, +Pi..+2Pi] - Angle := 2*Pi * Pos; - - Button[B].H := 0.6*(Theme.Song.Cover.H-Abs(Theme.Song.Cover.H * cos(Angle/2)*0.8)); - Button[B].W := 0.6*(Theme.Song.Cover.W-Abs(Theme.Song.Cover.W * cos(Angle/2)*0.8)); - - //Padding := (Button[B].H - Theme.Song.Cover.H)/2; - - Button[B].X := Theme.Song.Cover.X+Theme.Song.Cover.W/2-Button[b].W/2+Theme.Song.Cover.W/320*((Theme.Song.Cover.W)*sin(Angle/2)*1.52); - Button[B].Y := Theme.Song.Cover.Y - (Button[B].H - Theme.Song.Cover.H)*0.75; - Button[B].Z := (0.4 - Abs(Pos/4)) -0.00001; //z < 0.49999 is behind the cover 1 is in front of the covers - - Button[B].Texture.Alpha := 1; - - //Button[B].Reflectionspacing := 15 * Button[B].H/Theme.Song.Cover.H; - Button[B].DeSelectReflectionspacing := 15 * Button[B].H/Theme.Song.Cover.H; - end*) - { all other covers are not visible } + Angle := 2 * Pi * Pos; + B.H := 0.6 * (Theme.Song.Cover.H - Abs(Theme.Song.Cover.H * Cos(Angle / 2) * 0.8)); + B.W := 0.6 * (Theme.Song.Cover.W - Abs(Theme.Song.Cover.W * Cos(Angle / 2) * 0.8)); + B.X := Theme.Song.Cover.X + Theme.Song.Cover.W / 2 - B.W / 2 + Theme.Song.Cover.W / 320 * (Theme.Song.Cover.W * Sin(Angle / 2) * 1.52); + B.Y := Theme.Song.Cover.Y - (B.H - Theme.Song.Cover.H) * 0.75; + B.Z := (0.4 - Abs(Pos / 4)) - 0.00001; //z < 0.49999 is behind the cover 1 is in front of the covers + B.Texture.Alpha := 1; + //B.Reflectionspacing := 15 * B.H / Theme.Song.Cover.H; + B.DeSelectReflectionspacing := 15 * B.H / Theme.Song.Cover.H; + end else - begin - Button[B].Visible := false; - end; + B.Visible := false; end; + Inc(I); end; end; -procedure TScreenSong.SetRouletteScrollRefresh; -var - B: integer; - Angle: real; - Z, Z2: real; - VS: integer; -begin - VS := CatSongs.VisibleSongs(); - - for B := 0 to High(Button) do - begin - Button[B].Visible := CatSongs.Song[B].Visible; - if Button[B].Visible then - begin - // angle between the cover and selected song-cover in radians - Angle := 2*Pi * (CatSongs.VisibleIndex(B) - SongCurrent) / VS; - - // calc z-position from angle - Z := (1 + cos(Angle)) / 2; // scaled to range [0..1] - Z2 := (1 + 2*Z) / 3; // scaled to range [1/3..1] - - // adjust cover's width and height according its z-position - // Note: Theme.Song.Cover.W is not used as width and height are equal - // and Theme.Song.Cover.W is used as circle radius in Scroll5. - Button[B].W := Theme.Song.Cover.W * Z2; - Button[B].H := Theme.Song.Cover.H * Z2;//Button[B].W; - - // set cover position - Button[B].X := Theme.Song.Cover.X + - (0.185 * Theme.Song.Cover.W * VS * sin(Angle)) * Z2 - - ((Button[B].W - Theme.Song.Cover.W)/2); - Button[B].Y := Theme.Song.Cover.Y + - (Theme.Song.Cover.H - Abs(Button[B].H)) * 0.7; - Button[B].Z := Z / 2 + 0.3; - end; - end; -end; - -(** - * Chessboard - *) procedure TScreenSong.SetChessboardScroll; var - B: integer; - GridY, GridX, FactorH, FactorW: real; - CoverH, CoverW, ZoomH, ZoomW, CurrentTick: integer; - Padding: integer; - MaxRow, MaxCol, Line, LastLine, Index, Count: integer; - CorrectX: real; - First: boolean; + B, CoverH, CoverW, MaxRow, MaxCol, Line, Index, Count: integer; begin - Padding := Theme.Song.Cover.Padding; - GridX := Theme.Song.Cover.X; - GridY := Theme.Song.Cover.Y; - CoverH := Theme.Song.Cover.H; CoverW := Theme.Song.Cover.W; - - ZoomH := Theme.Song.Cover.ZoomThumbH; - ZoomW := Theme.Song.Cover.ZoomThumbW; - - FactorH := Theme.Song.Cover.ZoomThumbH; - FactorW := Theme.Song.Cover.ZoomThumbW; - - MaxRow := Theme.Song.Cover.Rows + ChessboardMinLine; + MaxRow := Theme.Song.Cover.Rows; MaxCol := Theme.Song.Cover.Cols; - + Line := 0; Index := 0; - LastLine := 0; Count := 0; - First := true; - CorrectX := 0; - // new song select by mouse - if (LastSelectMouse <> 0) and (SDL_GetTicks > LastSelectMouse + MAX_TIME_MOUSE_SELECT) then + for B := 0 to High(Self.Button) do begin - LastSelectMouse := 0; - OnSongSelect; - end; - - // Update positions of all buttons - for B := 0 to High(Button) do - begin - Button[B].Visible := CatSongs.Song[B].Visible; // adjust visibility - - if (Button[B].Visible) then - begin - LastVisibleSongIndex := B; - - if (First) then - begin - FirstVisibleSongIndex := B; - First := false; - end; - end; - + Self.Button[B].Visible := USongs.CatSongs.Song[B].Visible; Line := Count div MaxCol; - - if (Button[B].Visible) and (Line < MaxRow) then // Only change pos for visible buttons + if Self.Button[B].Visible and (Line < (MaxRow + Self.MinLine)) then //only change position for visible buttons begin - - if (Line >= ChessboardMinLine) then + if Line >= Self.MinLine then begin - LoadCover(B); - if (Index = Interaction) then + Self.LoadCover(B); + Self.Button[B].X := Theme.Song.Cover.X + (CoverW + Theme.Song.Cover.Padding) * (Count mod MaxCol); + Self.Button[B].Y := Theme.Song.Cover.Y + (CoverH + Theme.Song.Cover.Padding) * (Line - Self.MinLine); + if Index = Interaction then begin - if (LastSelectTime <> 0) then + if Self.Button[B].H < Theme.Song.Cover.ZoomThumbH then //zoom effect in 10 steps begin - CurrentTick := SDL_GetTicks; - FactorH := CoverH + (1/((ZoomH - CoverH)/(CurrentTick - LastSelectTime)*0.6)); - FactorW := CoverW + (1/((ZoomW - CoverW)/(CurrentTick - LastSelectTime)*0.6)); + Self.Button[B].H := Self.Button[B].H + ((Theme.Song.Cover.ZoomThumbH - CoverH) / 10); + Self.Button[B].W := Self.Button[B].W + ((Theme.Song.Cover.ZoomThumbW - CoverW) / 10); end - else - begin - FactorH := ZoomH; - FactorW := ZoomW; - end; - - if (FactorH > ZoomH) then - FactorH := ZoomH; - - if (FactorW > ZoomW) then - FactorW := ZoomW; + else //finished zoom effect + Self.OnSongSelect(); - if (FactorW = ZoomW) and (FactorH = ZoomH) then - LastSelectTime := 0; - - Button[B].H := FactorH; - Button[B].W := FactorW; - Button[B].Z := 1; + Self.Button[B].X := Self.Button[B].X - (Self.Button[B].W - CoverW) / 2; + Self.Button[B].Y := Self.Button[B].Y - (Self.Button[B].H - CoverH) / 2; + Self.Button[B].Z := 1; end else begin - Button[B].H := CoverH; - Button[B].W := CoverW; - Button[B].Z := 0.9; - end; - - Button[B].Reflection := false; - - if (Count = 0) or (Line <> LastLine) then - begin - Button[B].X := GridX; - end - else - begin - Button[B].X := CorrectX + CoverW + Padding; - end; - - CorrectX := Button[B].X; - - if (Index = Interaction) then - Button[B].X := Button[B].X - (FactorW - CoverW)/2; - - if (Line = ChessboardMinLine)then - begin - Button[B].Y := GridY; - - if (Index = Interaction) then - Button[B].Y := Button[B].Y - (FactorH - CoverH)/2; + Self.Button[B].SetSelect(false); + Self.Button[B].H := CoverH; + Self.Button[B].W := CoverW; + Self.Button[B].Z := 0.9; end - else - begin - Button[B].Y := GridY + (CoverH + Padding) * (Line - ChessboardMinLine); - - if (Index = Interaction) then - Button[B].Y := Button[B].Y - (FactorH - CoverH)/2; - end; - - LastLine := Line; end - else + else //hide not visible songs upper than MinLine + MaxRow begin - Button[B].Visible := false; - Button[B].Z := 0; + Self.Button[B].Visible := false; + Self.Button[B].Z := 0; end; - - Count := Count + 1; + Inc(Count); end - else + else //hide not visible songs lower than MinLine begin - Button[B].Visible := false; - Button[B].Z := 0; + Self.Button[B].Visible := false; + Self.Button[B].Z := 0; end; - - Index := Index + 1; + Inc(Index); end; - -end; - -procedure TScreenSong.SetChessboardScrollRefresh; -begin - if Statics[StaticActual].Texture.Name <> Skin.GetTextureFileName('SongCover') then + Self.LoadMainCover(); + if not Self.Button[Self.Interaction].Visible then begin - glDeleteTextures(1, PGLuint(@Statics[StaticActual].Texture.TexNum)); + Self.MinLine := Ceil((USongs.CatSongs.VisibleIndex(Self.Interaction) + 1 - MaxCol * MaxRow) / MaxCol); + if (Line - Self.MinLine) > MaxRow then //to decrease line when push up (or pag up) key + Self.MinLine += MaxRow - 1; end; - - Statics[StaticActual].Texture := Covers.FindCover(Button[Interaction].Texture.Name).GetTexture(); - Statics[StaticActual].Texture.Alpha := 1; - - Statics[StaticActual].Texture.X := Theme.Song.Cover.SelectX; - Statics[StaticActual].Texture.Y := Theme.Song.Cover.SelectY; - Statics[StaticActual].Texture.W := Theme.Song.Cover.SelectW; - Statics[StaticActual].Texture.H := Theme.Song.Cover.SelectH; - Statics[StaticActual].Texture.Z := 1; - - Statics[StaticActual].Reflection := Theme.Song.Cover.SelectReflection; - Statics[StaticActual].Reflectionspacing := Theme.Song.Cover.SelectReflectionSpacing; end; -(** - * Carousel - *) procedure TScreenSong.SetCarouselScroll; var - B, Count: integer; + B, VisibleIndex: integer; + X: real; begin - - Count := 0; - - // line - for B := 0 to High(Button) do + VisibleIndex := 0; + for B := 0 to High(Self.Button) do begin - Button[B].Visible := CatSongs.Song[B].Visible; - - if (Button[B].Visible) then + Self.Button[B].Visible := USongs.CatSongs.Song[B].Visible; + if Self.Button[B].Visible then begin - Button[B].X := Theme.Song.Cover.X + (Count - SongCurrent) * (Theme.Song.Cover.W + Theme.Song.Cover.Padding); - - if (Button[B].X < -Theme.Song.Cover.W) or (Button[B].X > 800) then - begin - Button[B].Visible := false; - end - else - begin - Button[B].Visible := true; - LoadCover(B); - end; - Button[B].X := Theme.Song.Cover.X + (Count - SongCurrent) * (Theme.Song.Cover.W + Theme.Song.Cover.Padding); - Button[B].Y := Theme.Song.Cover.Y; - Button[B].W := Theme.Song.Cover.W; - Button[B].H := Theme.Song.Cover.H; + X := Theme.Song.Cover.X + (VisibleIndex - Self.SongCurrent) * (Theme.Song.Cover.W + Theme.Song.Cover.Padding); + Inc(VisibleIndex); + if not ((X < -Theme.Song.Cover.W) or (X > 800)) then + Self.LoadCover(B) + else //hide preload covers + Self.Button[B].Visible := false; - Count := Count + 1; + Self.Button[B].H := Theme.Song.Cover.H; + Self.Button[B].W := Theme.Song.Cover.W; + Self.Button[B].X := X; //after load cover to avoid cover flash on change + Self.Button[B].Y := Theme.Song.Cover.Y; + Self.Button[B].Z := 0.95; //more than 0.9 to be clicked with mouse and less than 1 to hide reflection end; end; end; -procedure TScreenSong.SetCarouselScrollRefresh; -begin -end; - -(** - * Slot Machine - *) procedure TScreenSong.SetSlotMachineScroll; var - B: integer; - Angle: real; - Pos: real; - VS: integer; - diff: real; - X: real; + B, VS, VisibleIndex: integer; + Angle, Pos: real; begin - VS := CatSongs.VisibleSongs; - - for B := Low(Button) to High(Button) do + VS := USongs.CatSongs.GetVisibleSongs(); + VisibleIndex := 0; + for B := 0 to High(Self.Button) do begin - Button[B].Visible := CatSongs.Song[B].Visible; //Adjust Visibility - if Button[B].Visible then //Only Change Pos for Visible Buttons + Self.Button[B].Visible := USongs.CatSongs.Song[B].Visible; + if Self.Button[B].Visible then begin - Pos := (CatSongs.VisibleIndex(B) - SongCurrent); + Pos := (VisibleIndex - Self.SongCurrent); + Inc(VisibleIndex); if (Pos < -VS/2) then Pos := Pos + VS else if (Pos > VS/2) then Pos := Pos - VS; - //fixed Positions if (Abs(Pos) < 2.0) then begin - LoadCover(B); + Self.LoadCover(B); Angle := Pi * (Pos / 5); - - Button[B].Texture.Alpha := 1 - Abs(Pos/1.5); - - Button[B].H := Abs(Theme.Song.Cover.H * cos(Angle*1.2)); - - Button[B].DeSelectReflectionspacing := 15 * Button[B].H/Theme.Song.Cover.H; - - Button[B].Z := 0.05 - Abs(Pos) * 0.01; - - Button[B].X := (Theme.Song.Cover.X + (Theme.Song.Cover.H - Abs(Theme.Song.Cover.H * cos(Angle))) * 0.8); - - Button[B].W := Button[B].H; - - Diff := (Button[B].H - Theme.Song.Cover.H)/2; - - X := Sin(Angle*1.3)*0.8; - - Button[B].Y := Theme.Song.Cover.Y + Theme.Song.Cover.W * X - Diff; - + Self.Button[B].Texture.Alpha := 1 - Abs(Pos / 1.5); + Self.Button[B].H := Abs(Theme.Song.Cover.H * cos(Angle * 1.2)); + Self.Button[B].W := Self.Button[B].H; + Self.Button[B].X := (Theme.Song.Cover.X + (Theme.Song.Cover.H - Abs(Theme.Song.Cover.H * cos(Angle))) * 0.8); + Self.Button[B].Y := Theme.Song.Cover.Y + Theme.Song.Cover.W * (Sin(Angle * 1.3) * 0.8) - ((Self.Button[B].H - Theme.Song.Cover.H) / 2); + Self.Button[B].Z := 1; + Self.Button[B].DeSelectReflectionspacing := 15 * Self.Button[B].H / Theme.Song.Cover.H; end else - begin - Button[B].Visible := false; - end; - end; + Self.Button[B].Visible := false; + end; end; end; -procedure TScreenSong.SetSlotMachineScrollRefresh; -begin -end; - -(** - * Slide - *) procedure TScreenSong.SetSlideScroll; var - B, Count, DiffH: integer; - Scale: real; + B, VisibleIndex, DiffH: integer; + Scale, X, Z: real; begin - - Count := 0; + VisibleIndex := 0; Scale := 0.90; DiffH := 20; - - // line - for B := 0 to High(Button) do + for B := 0 to High(Self.Button) do begin - Button[B].Visible := CatSongs.Song[B].Visible; - - if (Button[B].Visible) then + Self.Button[B].Visible := USongs.CatSongs.Song[B].Visible; + if Self.Button[B].Visible then begin - - if (B <= Interaction) then - Button[B].X := Theme.Song.Cover.X + (Count - SongCurrent) * Theme.Song.Cover.Padding - else - Button[B].X := Theme.Song.Cover.X + (Count - SongCurrent) * Theme.Song.Cover.W - (Count - SongCurrent) * (Theme.Song.Cover.W * Scale - Theme.Song.Cover.Padding); - - if not (Button[B].X < -Theme.Song.Cover.W) or (Button[B].X > 800) then - LoadCover(B); - - if (B <= Interaction) then - Button[B].X := Theme.Song.Cover.X + (Count - SongCurrent) * Theme.Song.Cover.Padding - else - Button[B].X := Theme.Song.Cover.X + (Count - SongCurrent) * Theme.Song.Cover.W - (Count - SongCurrent) * (Theme.Song.Cover.W * Scale - Theme.Song.Cover.Padding); - - Button[B].Y := Theme.Song.Cover.Y; - Button[B].W := Theme.Song.Cover.W; - Button[B].H := Theme.Song.Cover.H; - - if (B < Interaction) then + Z := Theme.SongMenu.SelectSlide1.Z - 0.02; //all covers under arrows + X := Theme.Song.Cover.X + (VisibleIndex - Self.SongCurrent) * Theme.Song.Cover.Padding; + Inc(VisibleIndex); + if not ((X < -Theme.Song.Cover.W) or (X > 800)) then begin - Button[B].Z := B/High(Button); - - Button[B].Texture.RightScale := Scale; - Button[B].Texture.LeftScale := 1; - - Button[B].H := Theme.Song.Cover.H - DiffH; - Button[B].W := Button[B].W * Scale; - - Button[B].Y := Theme.Song.Cover.Y + DiffH; - - Button[B].Texture.Alpha := 1; - end - else - begin - if (B > Interaction) then + Self.LoadCover(B); + Self.Button[B].X := X; //after load cover to avoid cover flash on change + if B = Self.Interaction then begin - Button[B].Z := 1 - ((Count + 1)/100); - - Button[B].Texture.LeftScale := Scale; - Button[B].Texture.RightScale := 1; - - Button[B].H := Theme.Song.Cover.H - DiffH; - Button[B].W := Button[B].W * Scale; - - Button[B].Y := Theme.Song.Cover.Y + DiffH; - - Button[B].Texture.Alpha := 1; + Self.Button[B].H := Theme.Song.Cover.H; + Self.Button[B].W := Theme.Song.Cover.W; + Self.Button[B].Y := Theme.Song.Cover.Y; + Self.Button[B].Reflection := false; + Self.Button[B].Texture.LeftScale := 1; + Self.Button[B].Texture.RightScale := 1; + Self.Button[B].Z := Z; end else begin - Button[B].Z := 1; - - Button[B].Texture.LeftScale := 1; - Button[B].Texture.RightScale := 1; - - Button[B].H := Theme.Song.Cover.H; - Button[B].W := Theme.Song.Cover.W; - - Button[B].Y := Theme.Song.Cover.Y; - - Button[B].Texture.Alpha := 1; - Button[B].Texture.Z := 1; + Self.Button[B].H := Theme.Song.Cover.H - DiffH; + Self.Button[B].W := Theme.Song.Cover.W * Scale; + Self.Button[B].Y := Theme.Song.Cover.Y + DiffH; + Self.Button[B].Reflection := true; + Self.Button[B].SetSelect(false); + if B < Self.Interaction then + begin + Self.Button[B].Texture.LeftScale := 1; + Self.Button[B].Texture.RightScale := Scale; + Self.Button[B].Z := Z - (Self.Interaction - B) * 0.01; //put first covers under following and under arrows + end + else + begin + Self.Button[B].Texture.LeftScale := Scale; + Self.Button[B].Texture.RightScale := 1; + Self.Button[B].Z := Z - (B - Self.Interaction) * 0.01; //put last covers under previous and under arrows + end end; - end; - - if (Button[B].X < -Button[B].W) or (Button[B].X > 800) then - begin - Button[B].Visible := false; end - else - Button[B].Visible := true; - - Count := Count + 1; + else //hide preload covers + Self.Button[B].Visible := false; end; end; end; -procedure TScreenSong.SetSlideScrollRefresh; -begin -end; - - -(** - * List - *) procedure TScreenSong.SetListScroll; var - B, Line: integer; - First: boolean; + B, Line, I, Current: integer; + Alpha: real; begin - Line := 0; - First := true; + Current := USongs.CatSongs.VisibleIndex(Self.Interaction); + //move up at the start of list or in the rest of it + if (Current < Self.MinLine) and ((Current < Theme.Song.Cover.Rows) or (Current <= Self.LastMinLine)) then + Self.MinLine := Current + //move down in the tail of list or in the rest of it + else if (Current - Theme.Song.Cover.Rows >= Self.MinLine) and ((Current > USongs.CatSongs.GetVisibleSongs() - Theme.Song.Cover.Rows) or (Current > Self.LastMinLine)) then + Self.MinLine := Current - Theme.Song.Cover.Rows + 1; + + Self.LastMinLine := Self.MinLine; - // line - for B := 0 to High(Button) do + // save first category + if USongs.CatSongs.Song[Interaction].Main then + Self.MainListFirstVisibleSongIndex := 0; + + for I := 0 to High(Self.StaticsList) do begin - Button[B].Visible := CatSongs.Song[B].Visible; + Self.Text[ListTextArtist[I]].Text := ''; + Self.Text[ListTextTitle[I]].Text := ''; + Self.Text[ListTextYear[I]].Text := ''; + Self.Statics[ListVideoIcon[I]].Visible := false; + Self.Statics[ListMedleyIcon[I]].Visible := false; + Self.Statics[ListCalcMedleyIcon[I]].Visible := false; + Self.Statics[ListDuetIcon[I]].Visible := false; + Self.Statics[ListRapIcon[I]].Visible := false; + Self.StaticsList[I].Texture.TexNum := Self.StaticsList[I].TextureDeSelect.TexNum; + Self.StaticsList[I].Texture.W := Theme.Song.ListCover.W; + Self.StaticsList[I].Texture.H := Theme.Song.ListCover.H; + Self.StaticsList[I].Texture.X := Theme.Song.ListCover.X; + end; - if (Button[B].Visible) then + Line := 0; + for B := 0 to High(Self.Button) do + begin + Self.Button[B].Visible := CatSongs.Song[B].Visible; + if (Self.Button[B].Visible) then begin - if (Line >= ListMinLine) then + if (Line >= Self.MinLine) and (Line - Self.MinLine < Theme.Song.ListCover.Rows) then begin - - if (First) then - begin - ListFirstVisibleSongIndex := B; - First := false; - end; - - if (Line - ListMinLine < Theme.Song.ListCover.Rows) then + I := Line - Self.MinLine; + if I = 0 then + Self.ListFirstVisibleSongIndex := B; + + Self.LoadCover(B); + Self.Button[B].H := Theme.Song.Cover.H; + Self.Button[B].W := Theme.Song.Cover.W; + Self.Button[B].X := Theme.Song.Cover.X; + Self.Button[B].Y := Theme.Song.Cover.Y + I * (Theme.Song.Cover.H + Theme.Song.Cover.Padding); + Self.Button[B].Z := 1; + if (B = Self.Interaction) then begin - LoadCover(B); - Button[B].Z := 1; - - Button[B].X := Theme.Song.Cover.X; - Button[B].Y := Theme.Song.Cover.Y + (Line - ListMinLine) * (Theme.Song.Cover.H + Theme.Song.Cover.Padding); - Button[B].W := Theme.Song.Cover.W; - Button[B].H := Theme.Song.Cover.H; - - Line := Line + 1; + Alpha := 1; + Self.StaticsList[I].Texture.TexNum := Self.StaticsList[I].TextureSelect.TexNum; end else begin - Button[B].Visible := false; + Self.Button[B].SetSelect(false); + Alpha := 0.7; + Self.StaticsList[I].Texture.TexNum := Self.StaticsList[I].TextureDeSelect.TexNum; end; - end - else - begin - Line := Line + 1; - Button[B].Visible := false; - end; - end; - end; - -end; - -procedure TScreenSong.SetListScrollRefresh; -var - B, Count, I, VS: integer; - SongID: array of integer; - Alpha: real; -begin - if Statics[StaticActual].Texture.Name <> Skin.GetTextureFileName('SongCover') then - begin - glDeleteTextures(1, PGLuint(@Statics[StaticActual].Texture.TexNum)); - end; - - Statics[StaticActual].Texture := Covers.FindCover(Button[Interaction].Texture.Name).GetTexture(); - Statics[StaticActual].Texture.Alpha := 1; - - Statics[StaticActual].Texture.X := Theme.Song.Cover.SelectX; - Statics[StaticActual].Texture.Y := Theme.Song.Cover.SelectY; - Statics[StaticActual].Texture.W := Theme.Song.Cover.SelectW; - Statics[StaticActual].Texture.H := Theme.Song.Cover.SelectH; - Statics[StaticActual].Texture.Z := 1; - - Statics[StaticActual].Reflection := Theme.Song.Cover.SelectReflection; - Statics[StaticActual].Reflectionspacing := Theme.Song.Cover.SelectReflectionSpacing; - - for I := 0 to High(StaticsList) do - begin - Text[ListTextArtist[I]].Text := ''; - Text[ListTextTitle[I]].Text := ''; - Text[ListTextYear[I]].Text := ''; - Statics[ListVideoIcon[I]].Visible := false; - Statics[ListMedleyIcon[I]].Visible := false; - Statics[ListCalcMedleyIcon[I]].Visible := false; - Statics[ListDuetIcon[I]].Visible := false; - Statics[ListRapIcon[I]].Visible := false; - - //reset - StaticsList[I].Texture.TexNum := StaticsList[I].TextureDeSelect.TexNum; - StaticsList[I].Texture.W := Theme.Song.ListCover.W; - StaticsList[I].Texture.H := Theme.Song.ListCover.H; - StaticsList[I].Texture.X := Theme.Song.ListCover.X; - end; - - Count := 0; - - B := ListFirstVisibleSongIndex; - VS := CatSongs.VisibleSongs; - - if (ListMinLine <> ListLastMinLine) then //and ((ListMinLine <= VS - Theme.Song.ListCover.Rows)) then// change start - begin - if (ListLastMinLine < ListMinLine) then - B := CatSongs.FindNextVisible(B) - else - B := CatSongs.FindPreviousVisible(B); - - ListLastMinLine := ListMinLine; - end; - - SetLength(SongID, 0); - - while ((Count <= High(StaticsList)) and (B <= High(CatSongs.Song))) do - begin - if (CatSongs.Song[B].Visible) then - begin - SetLength(SongID, Length(SongID) + 1); - - SongID[High(SongID)] := B; - Count := Count + 1; - end; - - B := B + 1; - end; - - // save first category - if CatSongs.Song[Interaction].Main then - MainListFirstVisibleSongIndex := CatSongs.FindPreviousVisible(SongID[0]); - - for I := 0 to Count - 1 do - begin - if (SongID[I] = Interaction) then - begin - Alpha := 1; - StaticsList[I].Texture.TexNum := StaticsList[I].TextureSelect.TexNum; - end - else - Alpha := 0.7; - - // Set visibility of video icon - Statics[ListVideoIcon[I]].Texture.Alpha := Alpha; - Statics[ListVideoIcon[I]].Visible := CatSongs.Song[SongID[I]].Video.IsSet; - - // Set visibility of medley icons - Statics[ListMedleyIcon[I]].Texture.Alpha := Alpha; - Statics[ListMedleyIcon[I]].Visible := (CatSongs.Song[SongID[I]].Medley.Source = msTag); - - Statics[ListCalcMedleyIcon[I]].Texture.Alpha := Alpha; - Statics[ListCalcMedleyIcon[I]].Visible := (CatSongs.Song[SongID[I]].Medley.Source = msCalculated); - - //Set Visibility of Duet Icon - Statics[ListDuetIcon[I]].Texture.Alpha := Alpha; - Statics[ListDuetIcon[I]].Visible := CatSongs.Song[SongID[I]].isDuet; - - //Set Visibility of Rap Icon - Statics[ListRapIcon[I]].Texture.Alpha := Alpha; - Statics[ListRapIcon[I]].Visible := CatSongs.Song[SongID[I]].hasRap; - - // Set texts - Text[ListTextArtist[I]].Alpha := Alpha; - Text[ListTextArtist[I]].Text := CatSongs.Song[SongID[I]].Artist; - - Text[ListTextTitle[I]].Alpha := Alpha; - Text[ListTextTitle[I]].Text := CatSongs.Song[SongID[I]].Title; - - Text[ListTextYear[I]].Alpha := Alpha; - - if ((Ini.Tabs = 0) or (TSortingType(Ini.Sorting) <> sYear)) - and (CatSongs.Song[SongID[I]].Year <> 0) then - Text[ListTextYear[I]].Text := '(' + InttoStr(CatSongs.Song[SongID[I]].Year) + ')' - else - Text[ListTextYear[I]].Text := ''; - + Self.Statics[ListVideoIcon[I]].Texture.Alpha := Alpha; + Self.Statics[ListVideoIcon[I]].Visible := USongs.CatSongs.Song[B].Video.IsSet; + Self.Statics[ListMedleyIcon[I]].Texture.Alpha := Alpha; + Self.Statics[ListMedleyIcon[I]].Visible := (USongs.CatSongs.Song[B].Medley.Source = msTag) and not CatSongs.Song[Interaction].isDuet; + Self.Statics[ListCalcMedleyIcon[I]].Texture.Alpha := Alpha; + Self.Statics[ListCalcMedleyIcon[I]].Visible := (USongs.CatSongs.Song[B].Medley.Source = msCalculated) and not CatSongs.Song[Interaction].isDuet; + Self.Statics[ListDuetIcon[I]].Texture.Alpha := Alpha; + Self.Statics[ListDuetIcon[I]].Visible := USongs.CatSongs.Song[B].isDuet; + Self.Statics[ListRapIcon[I]].Texture.Alpha := Alpha; + Self.Statics[ListRapIcon[I]].Visible := USongs.CatSongs.Song[B].hasRap; + Self.Text[ListTextArtist[I]].Alpha := Alpha; + Self.Text[ListTextArtist[I]].Text := USongs.CatSongs.Song[B].Artist; + Self.Text[ListTextTitle[I]].Alpha := Alpha; + Self.Text[ListTextTitle[I]].Text := USongs.CatSongs.Song[B].Title; + Self.Text[ListTextYear[I]].Alpha := Alpha; + Self.Text[ListTextYear[I]].Text := IfThen(((UIni.Ini.Tabs = 0) or (TSortingType(UIni.Ini.Sorting) <> sYear)) and (USongs.CatSongs.Song[B].Year <> 0), IntToStr(USongs.CatSongs.Song[B].Year), ''); + end + else + Self.Button[B].Visible := false; + Inc(Line); + end; end; + Self.LoadMainCover(); +end; +procedure TScreenSong.AddButtons(); +var + I: integer; +begin + for I := Length(Button) to High(USongs.CatSongs.Song) do + Self.AddButton(Theme.Song.Cover.X, Theme.Song.Cover.Y, Theme.Song.Cover.W, Theme.Song.Cover.H, PATH_NONE, TEXTURE_TYPE_PLAIN, Theme.Song.Cover.Reflections); end; -procedure TScreenSong.OnShow; +procedure TScreenSong.OnShow(); var I: integer; + Visible: boolean; begin inherited; - - CloseMessage(); - - if (TSongMenuMode(Ini.SongMenu) in [smChessboard, smList, smMosaic]) then + if not Assigned(UGraphic.ScreenSongMenu) then //load the screens only the first time begin - Statics[StaticActual].Texture.X := Theme.Song.Cover.SelectX; - Statics[StaticActual].Texture.Y := Theme.Song.Cover.SelectY; - Statics[StaticActual].Texture.W := Theme.Song.Cover.SelectW; - Statics[StaticActual].Texture.H := Theme.Song.Cover.SelectH; - Statics[StaticActual].Texture.Z := 1; - - Statics[StaticActual].Reflection := Theme.Song.Cover.SelectReflection; - Statics[StaticActual].Reflectionspacing := Theme.Song.Cover.SelectReflectionSpacing; + UGraphic.ScreenSongMenu := TScreenSongMenu.Create(); + UGraphic.ScreenSongJumpto := TScreenSongJumpto.Create(); + UGraphic.ScreenPopupScoreDownload := TScreenPopupScoreDownload.Create(); + end; - Statics[StaticActual].Visible := true; - end - else + //add more buttons if needed because this screen can be created before finish loading songs if meanwhile use options screens + if Length(Self.Button) < High(USongs.CatSongs.Song) then begin - Statics[StaticActual].Visible := false; + Self.AddButtons(); + Self.Covers := Length(Self.Button) - 1; end; + Self.CloseMessage(); + if (TSongMenuMode(Ini.SongMenu) <> smList) then begin for I := 0 to High(StaticsList) do begin StaticsList[StaticList[I]].Visible := false; - Text[ListTextArtist[I]].Visible := false; Text[ListTextTitle[I]].Visible := false; Text[ListTextYear[I]].Visible := false; @@ -2972,9 +2119,8 @@ procedure TScreenSong.OnShow; Statics[ListMedleyIcon[I]].Visible := false; Statics[ListCalcMedleyIcon[I]].Visible := false; Statics[ListDuetIcon[I]].Visible := false; - Statics[ListRapIcon[I]].Visible := false; + Statics[ListRapIcon[I]].Visible := false; end; - Text[TextArtist].Visible := true; Text[TextTitle].Visible := true; Text[TextYear].Visible := true; @@ -2982,14 +2128,13 @@ procedure TScreenSong.OnShow; Statics[MedleyIcon].Visible := true; Statics[CalcMedleyIcon].Visible := true; Statics[DuetIcon].Visible := true; - Statics[RapIcon].Visible := true; + Statics[RapIcon].Visible := true; end else begin for I := 0 to High(StaticsList) do begin StaticsList[StaticList[I]].Visible := true; - Text[ListTextArtist[I]].Visible := true; Text[ListTextTitle[I]].Visible := true; Text[ListTextYear[I]].Visible := true; @@ -2997,9 +2142,8 @@ procedure TScreenSong.OnShow; Statics[ListMedleyIcon[I]].Visible := true; Statics[ListCalcMedleyIcon[I]].Visible := true; Statics[ListDuetIcon[I]].Visible := true; - Statics[ListRapIcon[I]].Visible := true; + Statics[ListRapIcon[I]].Visible := true; end; - Text[TextArtist].Visible := false; Text[TextTitle].Visible := false; Text[TextYear].Visible := false; @@ -3007,7 +2151,7 @@ procedure TScreenSong.OnShow; Statics[MedleyIcon].Visible := false; Statics[CalcMedleyIcon].Visible := false; Statics[DuetIcon].Visible := false; - Statics[RapIcon].Visible := false; + Statics[RapIcon].Visible := false; end; // for duet names @@ -3042,17 +2186,16 @@ procedure TScreenSong.OnShow; if Ini.Players = 4 then PlayersPlay := 6; //Cat Mod etc - if (Ini.TabsAtStartup = 1) and (CatSongs.CatNumShow = -1) then + if (UIni.Ini.Tabs = 1) and (CatSongs.CatNumShow = -1) then begin CatSongs.ShowCategoryList; - if (TSongMenuMode(Ini.SongMenu) <> smCarousel) and (TSongMenuMode(Ini.SongMenu) <> smSlide) then FixSelected; + end + else //initialize visible songs + USongs.CatSongs.SetVisibleSongs(); - //Show Cat in Top Left Mod - HideCatTL; - end; - + Self.SetScroll(true); //Playlist Mode if not(Mode = smPartyClassic) then @@ -3078,28 +2221,37 @@ procedure TScreenSong.OnShow; if (ScreenSong.Mode = smJukebox) and (Ini.PartyPopup = 1) then ScreenSongMenu.MenuShow(SM_Jukebox); - isScrolling := false; - SetJoker; - SetStatics; + Self.IsScrolling := false; + Self.SetJoker(); + + //Set Visibility of Party Statics and Text + Visible := (Mode = smPartyClassic); + for I := 0 to High(StaticParty) do + Statics[StaticParty[I]].Visible := Visible; + + for I := 0 to High(TextParty) do + Text[TextParty[I]].Visible := Visible; + + //Set Visibility of Non Party Statics and Text + Visible := not Visible; + for I := 0 to High(StaticNonParty) do + Statics[StaticNonParty[I]].Visible := Visible; + + for I := 0 to High(TextNonParty) do + Text[TextNonParty[I]].Visible := Visible; end; procedure TScreenSong.OnShowFinish; begin DuetChange := false; - - isScrolling := true; + Self.IsScrolling := true; CoverTime := 10; - - SetScrollRefresh; - //if (Mode = smPartyTournament) then // PartyTime := SDL_GetTicks(); - end; procedure TScreenSong.OnHide; begin - // turn music volume to 100% AudioPlayback.SetVolume(1.0); @@ -3108,26 +2260,6 @@ procedure TScreenSong.OnHide; StopVideoPreview(); end; -procedure TScreenSong.DrawExtensions; -begin - //Draw Song Menu - if (ScreenSongMenu.Visible) then - begin - ScreenSongMenu.Draw; - end - else if (ScreenSongJumpto.Visible) then - begin - ScreenSongJumpto.Draw; - end; -end; - -function TScreenSong.FinishedMusic: boolean; -begin - - Result := AudioPlayback.Finished; - -end; - function TScreenSong.Draw: boolean; var dx: real; @@ -3139,7 +2271,7 @@ function TScreenSong.Draw: boolean; FadeMessage(); - if isScrolling then + if Self.IsScrolling and (TSongMenuMode(UIni.Ini.SongMenu) <> smChessboard) then begin dx := SongTarget - SongCurrent; dt := TimeSkip * 7; @@ -3149,29 +2281,17 @@ function TScreenSong.Draw: boolean; SongCurrent := SongCurrent + dx*dt; - if SameValue(SongCurrent, SongTarget, 0.002) and (CatSongs.VisibleSongs > 0) then - begin - isScrolling := false; - SongCurrent := SongTarget; - OnSongSelect; - end; - end; - - { //basisbit todo this block was auskommentiert - if SongCurrent > Catsongs.VisibleSongs then - begin - SongCurrent := SongCurrent - Catsongs.VisibleSongs; - SongTarget := SongTarget - Catsongs.VisibleSongs; - end; } - - - //Log.BenchmarkStart(5); - - // Song Menu Style - SetScroll; + if (Self.SongCurrent = Self.SongTarget) then //if occurs an incomplete scroll add one chance to complete well + SongCurrent := SongTarget - 0.002 + else if SameValue(Self.SongCurrent, Self.SongTarget, 0.002) and (USongs.CatSongs.GetVisibleSongs() > 0) then + Self.OnSongSelect(); + end + else if Self.PreloadCovers then //start to preload covers slowly if don't exists user interaction + Self.LoadCovers() + else //enable again after user interaction + Self.PreloadCovers := true; - //Log.BenchmarkEnd(5); - //Log.LogBenchmark('SetScroll4', 5); + Self.SetScroll(); if (AudioPlayback.Finished) then CoverTime := 0; @@ -3180,20 +2300,16 @@ function TScreenSong.Draw: boolean; if (TSongMenuMode(Ini.SongMenu) in [smChessboard, smMosaic, smList]) then begin if not(Assigned(fCurrentVideo)) then - Statics[StaticActual].Texture.Alpha := 1 - else + Statics[Self.MainCover].Texture.Alpha := 1 + else if (CoverTime < 9) then begin - if (CoverTime < 9) and Assigned(fCurrentVideo) then - begin - //Update Fading Time - CoverTime := CoverTime + TimeSkip; + CoverTime := CoverTime + TimeSkip; - //Update Fading Texture - Statics[StaticActual].Texture.Alpha := 1 - (CoverTime - 1) * 1.5; - if Statics[StaticActual].Texture.Alpha < 0 then - Statics[StaticActual].Texture.Alpha := 0; - end; + //Update Fading Texture + Statics[Self.MainCover].Texture.Alpha := 1 - (CoverTime - 1) * 1.5; + if Statics[Self.MainCover].Texture.Alpha < 0 then + Statics[Self.MainCover].Texture.Alpha := 0; end; end else @@ -3305,7 +2421,7 @@ function TScreenSong.Draw: boolean; //We draw Buttons for our own for I := 0 to Length(Button) - 1 do begin - if (TSongMenuMode(Ini.SongMenu) in [smChessboard, smMosaic, smList]) or (((I<>Interaction) or not Assigned(fCurrentVideo) or (VideoAlpha<1) or FinishedMusic)) then + if (TSongMenuMode(Ini.SongMenu) in [smChessboard, smMosaic, smList]) or (((I<>Interaction) or not Assigned(fCurrentVideo) or (VideoAlpha<1) or AudioPlayback.Finished)) then Button[I].Draw; end; @@ -3365,7 +2481,11 @@ function TScreenSong.Draw: boolean; Equalizer.Draw; - DrawExtensions; + //Draw Song Menu + if ScreenSongMenu.Visible then + ScreenSongMenu.Draw + else if ScreenSongJumpto.Visible then + ScreenSongJumpto.Draw; //if (Mode = smPartyTournament) then // PartyTimeLimit(); @@ -3373,21 +2493,16 @@ function TScreenSong.Draw: boolean; Result := true; end; -procedure TScreenSong.SelectNext(onlyFix: boolean = true); +procedure TScreenSong.SelectNext(); var Skip: integer; - VS: integer; NextInt: integer; begin - VS := CatSongs.VisibleSongs; - if VS > 0 then + if USongs.CatSongs.GetVisibleSongs() > 0 then begin - if (not isScrolling) and (VS > 0) then - begin - isScrolling := true; - OnSongDeselect; - end; + if not Self.IsScrolling then + Self.OnSongDeselect(); Skip := 1; @@ -3399,47 +2514,30 @@ procedure TScreenSong.SelectNext(onlyFix: boolean = true); SongTarget := SongTarget + 1;//Skip; - if not ((TSongMenuMode(Ini.SongMenu) in [smChessboard, smList, smMosaic]) and (NextInt < Interaction)) then Interaction := NextInt; // try to keep all at the beginning - if SongTarget > VS-1 then + if SongTarget > USongs.CatSongs.GetVisibleSongs()-1 then begin - SongTarget := SongTarget - VS; - SongCurrent := SongCurrent - VS; + SongTarget := SongTarget - USongs.CatSongs.GetVisibleSongs(); + SongCurrent := SongCurrent - USongs.CatSongs.GetVisibleSongs(); end; // if ((TSongMenuMode(Ini.SongMenu) in [smList]) and (NextInt = 0)) then // SongCurrent := -1; - - if (not onlyFix) then - begin - if (TSongMenuMode(Ini.SongMenu) in [smChessboard, smMosaic]) then - begin - if (not Button[Interaction].Visible) then - ChessboardMinLine := ChessboardMinLine + 1; - end; - end; - end; end; procedure TScreenSong.SelectPrev; var Skip: integer; - VS: integer; PrevInt: integer; begin - VS := CatSongs.VisibleSongs; - - if (VS > 0) then + if (USongs.CatSongs.GetVisibleSongs() > 0) then begin - if (not isScrolling) then - begin - isScrolling := true; - OnSongDeselect; - end; + if not Self.IsScrolling then + Self.OnSongDeselect(); Skip := 1; @@ -3449,147 +2547,71 @@ procedure TScreenSong.SelectPrev; SongTarget := SongTarget - 1; PrevInt := (Interaction - Skip + Length(Interactions)) mod Length(Interactions); - if not ((TSongMenuMode(Ini.SongMenu) in [smChessboard, smList, smMosaic]) and (PrevInt > Interaction)) then Interaction := PrevInt; - if (TSongMenuMode(Ini.SongMenu) in [smChessboard, smMosaic]) then - begin - if (not Button[Interaction].Visible) then - ChessboardMinLine := ChessboardMinLine - 1; - end; - // try to keep all at the beginning if SongTarget < 0 then begin - SongTarget := SongTarget + CatSongs.VisibleSongs; - SongCurrent := SongCurrent + CatSongs.VisibleSongs; + SongTarget := SongTarget + USongs.CatSongs.GetVisibleSongs(); + SongCurrent := SongCurrent + USongs.CatSongs.GetVisibleSongs(); end; end; end; procedure TScreenSong.SelectNextRow; var - Skip, SongIndex: integer; - VS: integer; + Skip, SongIndexRow: integer; begin - VS := CatSongs.VisibleSongs; - - AudioPlayback.PlaySound(SoundLib.Change); - - if VS > 0 then + if USongs.CatSongs.GetVisibleSongs() > 0 then begin - - if (not isScrolling) and (VS > 0) then - begin - isScrolling := true; - OnSongDeselect; - end; + if not Self.IsScrolling then + Self.OnSongDeselect(); Skip := 0; - SongIndex := Interaction; + SongIndexRow := Interaction; - while ((Skip <= Theme.Song.Cover.Cols) and (SongIndex < Length(CatSongs.Song))) do + while ((Skip <= Theme.Song.Cover.Cols) and (SongIndexRow < Length(CatSongs.Song))) do begin - if (CatSongs.Song[SongIndex].Visible) then + if (CatSongs.Song[SongIndexRow].Visible) then begin Inc(Skip); end; - Inc(SongIndex); - end; - - SongTarget := SongTarget + 1; - - if (Skip <= Theme.Song.Cover.Cols) then - begin - Interaction := LastVisibleSongIndex; - end - else - begin - if (CatSongs.Song[SongIndex - 1].Visible) then - Interaction := SongIndex - 1; + Inc(SongIndexRow); end; - if (not Button[Interaction].Visible) then - ChessboardMinLine := ChessboardMinLine + 1; + Self.SongTarget += 1; + if (USongs.CatSongs.Song[SongIndexRow - 1].Visible) then + Self.Interaction := SongIndexRow - 1; end; end; procedure TScreenSong.SelectPrevRow; var - Skip, SongIndex: integer; - VS: integer; + Skip, SongIndexRow: integer; begin - VS := CatSongs.VisibleSongs; - - AudioPlayback.PlaySound(SoundLib.Change); - - if (VS > 0) then + if (USongs.CatSongs.GetVisibleSongs() > 0) then begin - - if (not isScrolling) and (VS > 0) then - begin - isScrolling := true; - OnSongDeselect; - end; + if not Self.IsScrolling then + Self.OnSongDeselect(); Skip := 0; - SongIndex := Interaction; + SongIndexRow := Interaction; - while ((Skip <= Theme.Song.Cover.Cols) and (SongIndex > -1)) do + while ((Skip <= Theme.Song.Cover.Cols) and (SongIndexRow > -1)) do begin - if (CatSongs.Song[SongIndex].Visible) then + if (CatSongs.Song[SongIndexRow].Visible) then begin Inc(Skip); end; - Dec(SongIndex); - end; - - SongTarget := SongTarget - 1; - - if (Skip <= Theme.Song.Cover.Cols) then - begin - Interaction := FirstVisibleSongIndex; - end - else - begin - if (CatSongs.Song[SongIndex + 1].Visible) then - Interaction := SongIndex + 1; + Dec(SongIndexRow); end; - end; - - if (not Button[Interaction].Visible) then - ChessboardMinLine := ChessboardMinLine - 1; -end; - -procedure TScreenSong.SelectNextListRow; -var - VS, MaxListLine: integer; - NrMiddleSong: integer; - MaxListLineTmp: real; -begin - AudioPlayback.PlaySound(SoundLib.Change); - SelectNext; - - if (not Button[Interaction].Visible) then - begin - ListLastMinLine := ListMinLine; - ListMinLine := ListMinLine + 1; - end; -end; - -procedure TScreenSong.SelectPrevListRow; -begin - AudioPlayback.PlaySound(SoundLib.Change); - SelectPrev; - - if (not Button[Interaction].Visible) then - begin - ListLastMinLine := ListMinLine; - ListMinLine := ListMinLine - 1; + SongTarget -= 1; + if (USongs.CatSongs.Song[SongIndexRow + 1].Visible) then + Self.Interaction := SongIndexRow + 1; end; end; @@ -3597,8 +2619,6 @@ procedure TScreenSong.StartMusicPreview(); var Song: TSong; PreviewPos: real; - I: integer; - Vol: cardinal; begin if SongIndex <> -1 then begin @@ -3608,7 +2628,7 @@ procedure TScreenSong.StartMusicPreview(); AudioPlayback.Close(); - if CatSongs.VisibleSongs = 0 then + if USongs.CatSongs.GetVisibleSongs() = 0 then Exit; Song := CatSongs.Song[Interaction]; @@ -3667,17 +2687,13 @@ procedure TScreenSong.StartVideoPreview(); if (Ini.VideoPreview=0) then Exit; - if Assigned(fCurrentVideo) then - begin - fCurrentVideo.Stop(); - fCurrentVideo := nil; - end; + Self.StopVideoPreview(); //if no audio open => exit if (PreviewOpened = -1) then Exit; - if CatSongs.VisibleSongs = 0 then + if USongs.CatSongs.GetVisibleSongs() = 0 then Exit; Song := CatSongs.Song[Interaction]; @@ -3720,63 +2736,59 @@ procedure TScreenSong.ChangeMusic; StartVideoPreview(); end; -procedure TScreenSong.SkipTo(Target: cardinal; TargetInteraction: integer = 0; VS: integer = 0); +procedure TScreenSong.SkipTo(Target: cardinal); var - i: integer; - MaxLine: real; - ChessboardLine: real; + I: integer; begin - if (TSongMenuMode(Ini.SongMenu) in [smRoulette, smCarousel, smSlide, smSlotMachine]) then + if (TSongMenuMode(UIni.Ini.SongMenu) in [smRoulette, smCarousel, smSlide, smSlotMachine]) then begin - Interaction := High(CatSongs.Song); - SongTarget := 0; - - for i := 1 to Target+1 do - SelectNext; + Self.Interaction := High(CatSongs.Song); + Self.SongTarget := 0; + for I := 0 to Target do + Self.SelectNext(); - FixSelected2; - end; - - if (TSongMenuMode(Ini.SongMenu) in [smChessboard, smList, smMosaic]) then + Self.FixSelected2(); + end + else if (TSongMenuMode(UIni.Ini.SongMenu) in [smChessboard, smList, smMosaic]) then //TODO it fails with tabs on begin - Interaction := TargetInteraction; - SongTarget := Interaction; - - if not (Button[Interaction].Visible) then - begin - ChessboardLine := (CatSongs.VisibleIndex(Interaction) - Theme.Song.Cover.Cols * Theme.Song.Cover.Rows) / Theme.Song.Cover.Cols; - - if (Frac(ChessboardLine) > 0) then - ChessboardMinLine := Round(ChessboardLine) + 1 - else - ChessboardMinLine := Round(ChessboardLine); - - MaxLine := (VS - Theme.Song.Cover.Cols * Theme.Song.Cover.Rows) / Theme.Song.Cover.Cols; - - if (Frac(Maxline) > 0) then - MaxLine := Round(MaxLine) + 1 - else - MaxLine := Round(MaxLine); - - if (ChessboardMinLine > MaxLine) then - ChessboardMinLine := Round(MaxLine); - end; - - FixSelected; - OnSongSelect; + Self.Interaction := Target - 1; + Self.SelectNext(); end; end; + procedure TScreenSong.SelectRandomSong; + procedure SkipToNoDuet(); + var + Count: Integer; + RealTarget, Target: cardinal; + begin + if (Mode = smPartyClassic) then + begin + repeat + Target := Random(USongs.CatSongs.GetVisibleSongs()); + RealTarget := -1; + Count := -1; + repeat + Inc(RealTarget); + if (CatSongs.Song[RealTarget].Visible) then + Inc(Count); + until (Count = Target); + until not(CatSongs.Song[RealTarget].isDuet); + end + else + Target := Random(USongs.CatSongs.GetVisibleSongs()); + + Self.SkipTo(Target); + end; var - I, I2, Count, RealTarget: integer; - Target: cardinal; + I, I2: integer; begin case PlayListMan.Mode of smAll: // all songs just select random song begin // when tabs are activated then use tab method - if (Ini.TabsAtStartup = 1) then + if (UIni.Ini.Tabs = 1) then begin repeat I2 := Low(CatSongs.Song) + Random(High(CatSongs.Song) + 1 - Low(CatSongs.Song)); @@ -3798,123 +2810,25 @@ procedure TScreenSong.SelectRandomSong; CatSongs.ClickCategoryButton(I); SelectNext; - - // choose song - // duets not playble - if (Mode = smPartyClassic) then - begin - repeat - Target := Random(CatSongs.VisibleSongs); - - RealTarget := -1; - Count := -1; - - repeat - Inc(RealTarget); - - if (CatSongs.Song[RealTarget].Visible) then - Inc(Count); - until (Count = Target); - - until not(CatSongs.Song[RealTarget].isDuet); - end - else - Target := Random(CatSongs.VisibleSongs); - - SkipTo(Target, RealTarget, CatSongs.VisibleSongs); - //SkipTo(I2 - I); - end - // when tabs are deactivated use easy method - else - begin - // duets not playble - if (Mode = smPartyClassic) then - begin - repeat - Target := Random(CatSongs.VisibleSongs); - - RealTarget := -1; - Count := -1; - - repeat - Inc(RealTarget); - - if (CatSongs.Song[RealTarget].Visible) then - Inc(Count); - until (Count = Target); - - until not(CatSongs.Song[RealTarget].isDuet); - end - else - Target := Random(CatSongs.VisibleSongs); - - SkipTo(Target); end; + SkipToNoDuet(); end; smCategory: // one category select category and select random song begin - CatSongs.ShowCategoryList; CatSongs.ClickCategoryButton(PlaylistMan.CurPlayList); ShowCatTL(PlaylistMan.CurPlayList); - SelectNext; FixSelected2; - - // duets not playble - if (Mode = smPartyClassic) then - begin - repeat - Target := Random(CatSongs.VisibleSongs); - - RealTarget := -1; - Count := -1; - - repeat - Inc(RealTarget); - - if (CatSongs.Song[RealTarget].Visible) then - Inc(Count); - until (Count = Target); - - until not(CatSongs.Song[RealTarget].isDuet); - end - else - Target := Random(CatSongs.VisibleSongs); - - SkipTo(Target); + SkipToNoDuet(); end; smPlaylist: // playlist: select playlist and select random song begin PlaylistMan.SetPlayList(PlaylistMan.CurPlayList); - - // duets not playble - if (Mode = smPartyClassic) then - begin - repeat - Target := Random(CatSongs.VisibleSongs); - - RealTarget := -1; - Count := -1; - - repeat - Inc(RealTarget); - - if (CatSongs.Song[RealTarget].Visible) then - Inc(Count); - until (Count = Target); - - until not(CatSongs.Song[RealTarget].isDuet); - end - else - Target := Random(CatSongs.VisibleSongs); - - SkipTo(Target); + SkipToNoDuet(); FixSelected2; end; end; - - AudioPlayback.PlaySound(SoundLib.Change); SetScroll; end; @@ -4035,32 +2949,7 @@ procedure TScreenSong.SetJoker; end; end; -procedure TScreenSong.SetStatics; -var - I: integer; - Visible: boolean; -begin - //Set Visibility of Party Statics and Text - Visible := (Mode = smPartyClassic); - - for I := 0 to High(StaticParty) do - Statics[StaticParty[I]].Visible := Visible; - - for I := 0 to High(TextParty) do - Text[TextParty[I]].Visible := Visible; - - //Set Visibility of Non Party Statics and Text - Visible := not Visible; - - for I := 0 to High(StaticNonParty) do - Statics[StaticNonParty[I]].Visible := Visible; - - for I := 0 to High(TextNonParty) do - Text[TextNonParty[I]].Visible := Visible; -end; - //Procedures for Menu - procedure TScreenSong.StartSong; begin CatSongs.Selected := Interaction; @@ -4096,23 +2985,45 @@ procedure TScreenSong.DoJoker (Team: integer); end; end; -procedure TScreenSong.LoadCover(NumberOfButtonInArray: integer); -var - deb1: string; - CoverFile: IPath; - Song: TSong; +{ Preload covers on draw if not exists a user interaction } +procedure TScreenSong.LoadCovers(); begin - if not Assigned(Button[NumberOfButtonInArray].Texture.Name) then + if Self.Covers > 0 then begin - Song := CatSongs.Song[NumberOfButtonInArray]; - CoverFile := Song.Path.Append(Song.Cover); - if not CoverFile.IsFile() or Song.Cover.IsUnset then - CoverFile := Skin.GetTextureFileName('SongCover'); + Self.LoadCover(Self.Covers); + Dec(Self.Covers); + end +end; - Button[NumberOfButtonInArray].Texture := Covers.AddCover(CoverFile).GetTexture(); +{ Load covers dynamically in a song button } +procedure TScreenSong.LoadCover(B: integer); +begin + if not Assigned(Self.Button[B].Texture.Name) then + begin + Self.Button[B].Texture := UTexture.Texture.LoadTexture(USongs.CatSongs.Song[B].Path.Append(USongs.CatSongs.Song[B].Cover)); + if not Assigned(Self.Button[B].Texture.Name) then //the default cover is used if texture assignment failed or don't exist + Self.Button[B].Texture := UTexture.Texture.LoadTexture(USkins.Skin.GetTextureFileName('SongCover')); end; end; +{ Load main cover in some game modes } +procedure TScreenSong.LoadMainCover(); +begin + if Statics[Self.MainCover].Texture.Name <> Skin.GetTextureFileName('SongCover') then + glDeleteTextures(1, PGLuint(@Statics[Self.MainCover].Texture.TexNum)); + + if TSongMenuMode(UIni.Ini.SongMenu) in [smChessboard, smMosaic] then //to load cover after change line + Self.LoadCover(Self.Interaction); + + Statics[Self.MainCover].Texture := UTexture.Texture.LoadTexture(Button[Self.Interaction].Texture.Name); + Statics[Self.MainCover].Texture.X := Theme.Song.Cover.SelectX; + Statics[Self.MainCover].Texture.Y := Theme.Song.Cover.SelectY; + Statics[Self.MainCover].Texture.W := Theme.Song.Cover.SelectW; + Statics[Self.MainCover].Texture.H := Theme.Song.Cover.SelectH; + Statics[Self.MainCover].Texture.Z := 1; + Statics[Self.MainCover].Texture.Alpha := 1; +end; + procedure TScreenSong.Refresh; begin @@ -4172,7 +3083,6 @@ procedure TScreenSong.StartMedley(NumSongs: integer; MinSource: TMedleySource); var I: integer; VS: integer; - begin //Sel3 := 0; if (NumSongs > 0) and not MakeMedley then @@ -4181,7 +3091,7 @@ procedure TScreenSong.StartMedley(NumSongs: integer; MinSource: TMedleySource); if VS < NumSongs then PlaylistMedley.NumMedleySongs := VS else - PlaylistMedley.NumMedleySongs := NumSongs; + PlaylistMedley.NumMedleySongs := NumSongs; //set up Playlist Medley SetLength(PlaylistMedley.Song, 0); @@ -4348,26 +3258,10 @@ procedure TScreenSong.SongScore; end; - -procedure TScreenSong.WriteMessage(msg: UTF8String); -begin - - MessageTime := SDL_GetTicks(); - - Statics[InfoMessageBG].Texture.Alpha := 1; - Text[InfoMessageText].Alpha := 1; - - Statics[InfoMessageBG].Visible := true; - Text[InfoMessageText].Visible := true; - Text[InfoMessageText].Text := msg; - -end; - procedure TScreenSong.FadeMessage(); var factor: real; begin - if ((SDL_GetTicks - MessageTime)/1000 > MAX_MESSAGE) then begin if (MessageTimeFade = 0) then @@ -4382,7 +3276,6 @@ procedure TScreenSong.FadeMessage(); Statics[InfoMessageBG].Draw; Text[InfoMessageText].Draw; - end; procedure TScreenSong.CloseMessage(); @@ -4396,7 +3289,7 @@ procedure TScreenSong.ChangeSorting(Tabs: integer; Duet: boolean; Sorting: integ I, Count: integer; begin Ini.Sorting := Sorting; - Ini.TabsAtStartup := Tabs; + UIni.Ini.Tabs := Tabs; //ClearButtons(); CatSongs.Refresh; diff --git a/src/screens/UScreenSongJumpto.pas b/src/screens/UScreenSongJumpto.pas index e9514dd1..434ce3c5 100644 --- a/src/screens/UScreenSongJumpto.pas +++ b/src/screens/UScreenSongJumpto.pas @@ -1,8 +1,8 @@ {* UltraStar Deluxe WorldParty - Karaoke Game - - UltraStar Deluxe WorldParty is the legal property of its developers, - whose names are too numerous to list here. Please refer to the + + UltraStar Deluxe WorldParty is the legal property of its developers, + whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. Check "LICENSE" file. If not, see + along with this program. Check "LICENSE" file. If not, see . *} @@ -92,7 +92,6 @@ function TScreenSongJumpto.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Button[0].Text[0].ColR := Theme.SongJumpto.ButtonSearchText.ColR; Button[0].Text[0].ColG := Theme.SongJumpto.ButtonSearchText.ColG; Button[0].Text[0].ColB := Theme.SongJumpto.ButtonSearchText.ColB; - Button[0].Text[0].Text := Button[0].Text[0].Text + UCS4ToUTF8String(CharCode); SetTextFound(CatSongs.SetFilter(Button[0].Text[0].Text, fSelectType)); end; @@ -118,8 +117,7 @@ function TScreenSongJumpto.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; begin //ScreenSong.UnLoadDetailedCover; Button[0].Text[0].Text := ''; - CatSongs.SetFilter('', fltAll); - SetTextFound(0); + SetTextFound(CatSongs.SetFilter('', fltAll)); end; end; @@ -234,28 +232,15 @@ procedure TScreenSongJumpto.SetTextFound(Count: cardinal); //Set visSongs fVisSongs := Count; - //Fix SongSelection - if (TSongMenuMode(Ini.SongMenu) in [smRoulette, smCarousel, smSlide, smSlotMachine]) then - begin - ScreenSong.Interaction := high(CatSongs.Song); - end; - - if (TSongMenuMode(Ini.SongMenu) in [smChessboard, smList, smMosaic]) then - begin - ScreenSong.Interaction := 0; - ScreenSong.ChessboardMinLine := 0; - ScreenSong.ListMinLine := 0; - end; - + ScreenSong.Interaction := 0; ScreenSong.SelectNext; ScreenSong.FixSelected; - - ScreenSong.SetScrollRefresh; + ScreenSong.SetScroll(true); //Play Correct Music - if (ScreenSong.Interaction <> fLastPlayed) or (CatSongs.VisibleSongs = 0) then + if (ScreenSong.Interaction <> fLastPlayed) or (USongs.CatSongs.GetVisibleSongs() = 0) then begin - if (CatSongs.VisibleSongs > 0) then + if (USongs.CatSongs.GetVisibleSongs() > 0) then fLastPlayed := ScreenSong.Interaction else fLastPlayed := -1; diff --git a/src/screens/UScreenSongMenu.pas b/src/screens/UScreenSongMenu.pas index 82fd3aad..e0a89998 100644 --- a/src/screens/UScreenSongMenu.pas +++ b/src/screens/UScreenSongMenu.pas @@ -77,8 +77,6 @@ TScreenSongMenu = class(TMenu) SM_Refresh_Scores = 64 or 6; SM_Song = 64 or 8; SM_Medley = 64 or 16; - SM_Sorting = 64 or 32; - SM_Extra = 64 or 64; SM_Jukebox = 64 or 128; var @@ -170,9 +168,8 @@ function TScreenSongMenu.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Pr end else begin - AudioPlayback.PlaySound(SoundLib.Change); ScreenSong.SelectNext; - ScreenSong.SetScrollRefresh; + ScreenSong.SetScroll(true); end; end; SDLK_LEFT: @@ -185,9 +182,8 @@ function TScreenSongMenu.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; Pr end else begin - AudioPlayback.PlaySound(SoundLib.Change); ScreenSong.SelectPrev; - ScreenSong.SetScrollRefresh; + ScreenSong.SetScroll(true); end; end; @@ -328,21 +324,17 @@ procedure TScreenSongMenu.MenuShow(sMenu: byte); Button[0].Visible := true; Button[1].Visible := ((Length(PlaylistMedley.Song) > 0) or (CatSongs.Song[ScreenSong.Interaction].Medley.Source > msNone)); Button[2].Visible := true; - Button[3].Visible := true; - Button[4].Visible := true; + Button[3].Visible := false; + Button[4].Visible := false; SelectsS[0].Visible := false; SelectsS[1].Visible := false; SelectsS[2].Visible := false; - // need because of no web dll - Button[2].Selectable := true; - Button[0].Text[0].Text := Language.Translate('SONG_MENU_SONG'); Button[1].Text[0].Text := Language.Translate('SONG_MENU_MEDLEY'); - Button[2].Text[0].Text := Language.Translate('SONG_MENU_SORTING'); - Button[3].Text[0].Text := Language.Translate('SONG_MENU_REFRESH_SCORES'); - Button[4].Text[0].Text := Language.Translate('SONG_MENU_EXTRA'); + Button[2].Text[0].Text := Language.Translate('SONG_MENU_REFRESH_SCORES'); + end; SM_Song: begin @@ -352,7 +344,7 @@ procedure TScreenSongMenu.MenuShow(sMenu: byte); Button[0].Visible := true; Button[1].Visible := true; Button[2].Visible := true; - Button[3].Visible := true; + Button[3].Visible := false; Button[4].Visible := true; SelectsS[0].Visible := false; @@ -390,47 +382,6 @@ procedure TScreenSongMenu.MenuShow(sMenu: byte); Button[4].Text[0].Text := Language.Translate('SONG_MENU_CANCEL'); end; - SM_Sorting: - begin - CurMenu := sMenu; - Text[0].Text := Language.Translate('SONG_MENU_NAME_SORTING'); - - Button[0].Visible := false; - Button[1].Visible := false; - Button[2].Visible := false; - Button[3].Visible := true; - Button[4].Visible := true; - - SelectsS[0].Visible := true; - SelectsS[1].Visible := true; - SelectsS[2].Visible := true; - - SetLength(ISelections1, 2); - ISelections1[0] := Language.Translate('SONG_MENU_SORTING_TABS_OFF'); - ISelections1[1] := Language.Translate('SONG_MENU_SORTING_TABS_ON'); - - SetLength(ISelections2, 2); - ISelections2[0] := Language.Translate('SONG_MENU_SORTING_ALL'); - ISelections2[1] := Language.Translate('SONG_MENU_SORTING_DUET'); - - SetLength(ISelections3, Length(UIni.ISorting)); - For I := 0 to High(UIni.ISorting) do - ISelections3[I] := UIni.ISorting[I]; - - SelectValue1 := Ini.Tabs; - SelectValue3 := Ini.Sorting; - - UpdateSelectSlideOptions(Theme.SongMenu.SelectSlide1, 0, ISelections1, SelectValue1); - UpdateSelectSlideOptions(Theme.SongMenu.SelectSlide2, 1, ISelections2, SelectValue2); - UpdateSelectSlideOptions(Theme.SongMenu.SelectSlide3, 2, ISelections3, SelectValue3); - - //Button[3].Visible := (Ini.Sorting <> SelectValue3); - Button[3].Text[0].Text := Language.Translate('SONG_MENU_SORTING_APPLY'); - Button[4].Text[0].Text := Language.Translate('SONG_MENU_CANCEL'); - - Interaction := 3; - end; - SM_PlayList: begin CurMenu := sMenu; @@ -449,7 +400,6 @@ procedure TScreenSongMenu.MenuShow(sMenu: byte); Button[0].Text[0].Text := Language.Translate('SONG_MENU_PLAY'); Button[1].Text[0].Text := Language.Translate('SONG_MENU_CHANGEPLAYERS'); Button[2].Text[0].Text := Language.Translate('SONG_MENU_PLAYLIST_DEL'); - Button[3].Text[0].Text := Language.Translate('SONG_MENU_EDIT'); end; SM_Playlist_Add: @@ -721,9 +671,7 @@ procedure TScreenSongMenu.MenuShow(sMenu: byte); Button[0].Text[0].Text := Language.Translate('SONG_MENU_PLAY'); end; - SM_Extra: - begin - end; + SM_Jukebox: begin CurMenu := sMenu; @@ -732,7 +680,7 @@ procedure TScreenSongMenu.MenuShow(sMenu: byte); UpdateJukeboxButtons(); - Button[0].Visible := (Ini.TabsAtStartup = 1); + Button[0].Visible := (UIni.Ini.Tabs = 1); Button[3].Visible := false; Button[4].Visible := true; @@ -745,7 +693,7 @@ procedure TScreenSongMenu.MenuShow(sMenu: byte); Button[4].Text[0].Text := Language.Translate('SONG_MENU_START_JUKEBOX'); - if (Ini.TabsAtStartup = 1) then + if (UIni.Ini.Tabs = 1) then Interaction := 0 else Interaction := 1; @@ -773,39 +721,12 @@ procedure TScreenSongMenu.HandleReturn; end; 2: // button 3 - begin - ScreenPopupError.ShowPopup(Language.Translate('PARTY_MODE_NOT_AVAILABLE')); - // MenuShow(SM_Sorting); - end; - - 3: // selectslide 1 - begin - //Dummy - end; - - 4: // selectslide 2 - begin - //Dummy - end; - - 5: // selectslide 3 - begin - //Dummy - end; - - 6: // button 4 begin // show refresh scores menu MenuShow(SM_Refresh_Scores); ScreenSong.StopMusicPreview(); ScreenSong.StopVideoPreview(); end; - 7: // button 5 - begin - ScreenPopupError.ShowPopup(Language.Translate('PARTY_MODE_NOT_AVAILABLE')); - // show extras - //MenuShow(SM_Extra); - end; end; end; @@ -838,24 +759,9 @@ procedure TScreenSongMenu.HandleReturn; MenuShow(SM_Playlist_Add); end; - 3: // selectslide 1 - begin - //Dummy - end; - - 4: // selectslide 2 - begin - //Dummy - end; - - 5: // selectslide 3 - begin - //Dummy - end; - 7: // button 5 begin - // show main menu + // show main menu (cancel) MenuShow(SM_Main); end; end; @@ -919,37 +825,6 @@ procedure TScreenSongMenu.HandleReturn; end; end; - SM_Sorting: - begin - Case Interaction of - 0: //Button 1 - begin - end; - - 1: //Button 2 - begin - end; - - 3: //Slide - begin - //dummy - end; - - 6: //Button 4 - begin - //Change Sorting - ScreenSong.ChangeSorting(SelectValue1, (SelectValue2 = 0), SelectValue3); - Visible := false; - end; - - 7: // button 5 - begin - // show main menu - MenuShow(SM_Main); - end; - end; - end; - SM_PlayList: begin Visible := false; diff --git a/src/screens/UScreenStatMain.pas b/src/screens/UScreenStatMain.pas index e22de585..7b89c05c 100644 --- a/src/screens/UScreenStatMain.pas +++ b/src/screens/UScreenStatMain.pas @@ -61,14 +61,15 @@ TScreenStatMain = class(TMenu) implementation uses + Classes, + UCommon, UGraphic, UDataBase, - USongs, - USong, ULanguage, - UCommon, - Classes, ULog, + USongs, + USong, + UScreenStatDetail, UUnicodeUtils; function TScreenStatMain.ParseInput(PressedKey: cardinal; CharCode: UCS4Char; PressedDown: boolean): boolean; @@ -158,7 +159,6 @@ constructor TScreenStatMain.Create; AddButtonText(14, 20, Theme.Options.Description[OPTIONS_DESC_INDEX_BACK]); Interaction := 0; - end; procedure TScreenStatMain.OnShow; @@ -166,6 +166,9 @@ procedure TScreenStatMain.OnShow; I: integer; begin inherited; + if not Assigned(UGraphic.ScreenStatDetail) then //load the screen only the first time + UGraphic.ScreenStatDetail := TScreenStatDetail.Create(); + //Set Songs with Vid SongsWithVid := 0; for I := 0 to Songs.SongList.Count -1 do diff --git a/src/screens/controllers/UScreenSingController.pas b/src/screens/controllers/UScreenSingController.pas index 0f17ea10..2da82b69 100644 --- a/src/screens/controllers/UScreenSingController.pas +++ b/src/screens/controllers/UScreenSingController.pas @@ -57,7 +57,7 @@ interface type - TPos = record // Lines[part].Line[line].Note[note] + TPos = record // CurrentSong.Lines[part].Line[line].Note[note] part: integer; line: integer; note: integer; @@ -1081,12 +1081,12 @@ procedure TScreenSingController.LoadNextSong(); begin found := false; - for line := 0 to length(Lines[0].Line) - 1 do + for line := 0 to length(CurrentSong.Lines[0].Line) - 1 do begin - for note := 0 to length(Lines[0].Line[line].Note) - 1 do + for note := 0 to length(CurrentSong.Lines[0].Line[line].Note) - 1 do begin - if (beat >= Lines[0].Line[line].Note[note].Start) and - (beat <= Lines[0].Line[line].Note[note].Start + Lines[0].Line[line].Note[note].Length) then + if (beat >= CurrentSong.Lines[0].Line[line].Note[note].Start) and + (beat <= CurrentSong.Lines[0].Line[line].Note[note].Start + CurrentSong.Lines[0].Line[line].Note[note].Length) then begin Result.part := 0; Result.line := line; @@ -1103,12 +1103,12 @@ procedure TScreenSingController.LoadNextSong(); if CurrentSong.isDuet and (PlayersPlay <> 1) then begin - for Line := 0 to length(Lines[1].Line) - 1 do + for Line := 0 to length(CurrentSong.Lines[1].Line) - 1 do begin - for Note := 0 to length(Lines[1].Line[Line].Note) - 1 do + for Note := 0 to length(CurrentSong.Lines[1].Line[Line].Note) - 1 do begin - if (beat>=Lines[1].Line[Line].Note[Note].Start) and - (beat<=Lines[1].Line[Line].Note[Note].Start + Lines[1].Line[Line].Note[Note].Length) then + if (beat>=CurrentSong.Lines[1].Line[Line].Note[Note].Start) and + (beat<=CurrentSong.Lines[1].Line[Line].Note[Note].Start + CurrentSong.Lines[1].Line[Line].Note[Note].Length) then begin Result.CP := 1; Result.line := Line; @@ -1125,11 +1125,11 @@ procedure TScreenSingController.LoadNextSong(); min := high(integer); //second try (approximating) - for line := 0 to length(Lines[0].Line) - 1 do + for line := 0 to length(CurrentSong.Lines[0].Line) - 1 do begin - for note := 0 to length(Lines[0].Line[line].Note) - 1 do + for note := 0 to length(CurrentSong.Lines[0].Line[line].Note) - 1 do begin - diff := abs(Lines[0].Line[line].Note[note].Start - beat); + diff := abs(CurrentSong.Lines[0].Line[line].Note[note].Start - beat); if diff < min then begin Result.part := 0; @@ -1143,11 +1143,11 @@ procedure TScreenSingController.LoadNextSong(); if CurrentSong.isDuet and (PlayersPlay <> 1) then begin - for Line := 0 to length(Lines[1].Line) - 1 do + for Line := 0 to length(CurrentSong.Lines[1].Line) - 1 do begin - for Note := 0 to length(Lines[1].Line[Line].Note) - 1 do + for Note := 0 to length(CurrentSong.Lines[1].Line[Line].Note) - 1 do begin - diff := abs(Lines[1].Line[Line].Note[Note].Start - beat); + diff := abs(CurrentSong.Lines[1].Line[Line].Note[Note].Start - beat); if diff= PlaylistMedley.CurrentMedleySong then @@ -1227,7 +1225,7 @@ procedure TScreenSingController.LoadNextSong(); //medley start and end timestamps StartNote := FindNote(CurrentSong.Medley.StartBeat - round(CurrentSong.BPM*CurrentSong.Medley.FadeIn_time/60)); - MedleyStart := GetTimeFromBeat(Lines[0].Line[StartNote.line].Note[0].Start); + MedleyStart := GetTimeFromBeat(CurrentSong.Lines[0].Line[StartNote.line].Note[0].Start); //check Medley-Start if (MedleyStart+CurrentSong.Medley.FadeIn_time*0.5>GetTimeFromBeat(CurrentSong.Medley.StartBeat)) then @@ -1357,25 +1355,25 @@ procedure TScreenSingController.LoadNextSong(); begin // initialize lyrics by filling its queue while (not LyricsDuetP1.IsQueueFull) and - (LyricsDuetP1.LineCounter <= High(Lines[0].Line)) do + (LyricsDuetP1.LineCounter <= High(CurrentSong.Lines[0].Line)) do begin - LyricsDuetP1.AddLine(@Lines[0].Line[LyricsDuetP1.LineCounter]); + LyricsDuetP1.AddLine(@CurrentSong.Lines[0].Line[LyricsDuetP1.LineCounter]); end; // initialize lyrics by filling its queue while (not LyricsDuetP2.IsQueueFull) and - (LyricsDuetP2.LineCounter <= High(Lines[1].Line)) do + (LyricsDuetP2.LineCounter <= High(CurrentSong.Lines[1].Line)) do begin - LyricsDuetP2.AddLine(@Lines[1].Line[LyricsDuetP2.LineCounter]); + LyricsDuetP2.AddLine(@CurrentSong.Lines[1].Line[LyricsDuetP2.LineCounter]); end; end else begin // initialize lyrics by filling its queue while (not Lyrics.IsQueueFull) and - (Lyrics.LineCounter <= High(Lines[0].Line)) do + (Lyrics.LineCounter <= High(CurrentSong.Lines[0].Line)) do begin - Lyrics.AddLine(@Lines[0].Line[Lyrics.LineCounter]); + Lyrics.AddLine(@CurrentSong.Lines[0].Line[Lyrics.LineCounter]); end; end; @@ -1391,18 +1389,18 @@ procedure TScreenSingController.LoadNextSong(); if (CurrentSong.isDuet) and (PlayersPlay <> 1) then begin - for Index := Low(Lines[1].Line) to High(Lines[1].Line) do - if Lines[1].Line[Index].TotalNotes = 0 then + for Index := Low(CurrentSong.Lines[1].Line) to High(CurrentSong.Lines[1].Line) do + if CurrentSong.Lines[1].Line[Index].TotalNotes = 0 then Inc(NumEmptySentences[1]); - for Index := Low(Lines[0].Line) to High(Lines[0].Line) do - if Lines[0].Line[Index].TotalNotes = 0 then + for Index := Low(CurrentSong.Lines[0].Line) to High(CurrentSong.Lines[0].Line) do + if CurrentSong.Lines[0].Line[Index].TotalNotes = 0 then Inc(NumEmptySentences[0]); end else begin - for Index := Low(Lines[0].Line) to High(Lines[0].Line) do - if Lines[0].Line[Index].TotalNotes = 0 then + for Index := Low(CurrentSong.Lines[0].Line) to High(CurrentSong.Lines[0].Line) do + if CurrentSong.Lines[0].Line[Index].TotalNotes = 0 then Inc(NumEmptySentences[0]); end; @@ -1619,7 +1617,7 @@ procedure TScreenSingController.OnSentenceEnd(CP: integer; SentenceIndex: cardin // TODO: move this to a better place MAX_LINE_RATING = 8; // max. rating for singing performance begin - Line := @Lines[CP].Line[SentenceIndex]; + Line := @CurrentSong.Lines[CP].Line[SentenceIndex]; // check for empty sentence if Line.TotalNotes <= 0 then @@ -1632,7 +1630,7 @@ procedure TScreenSingController.OnSentenceEnd(CP: integer; SentenceIndex: cardin MaxSongScore := MAX_SONG_SCORE - MAX_SONG_LINE_BONUS; // Note: ScoreValue is the sum of all note values of the song - MaxLineScore := MaxSongScore * (Line.TotalNotes / Lines[CP].ScoreValue); + MaxLineScore := MaxSongScore * (Line.TotalNotes / CurrentSong.Lines[CP].ScoreValue); for PlayerIndex := 0 to High(Player) do begin @@ -1667,7 +1665,7 @@ procedure TScreenSingController.OnSentenceEnd(CP: integer; SentenceIndex: cardin if Ini.LineBonus > 0 then begin // line-bonus points (same for each line, no matter how long the line is) - LineBonus := MAX_SONG_LINE_BONUS / (Length(Lines[CP].Line) - + LineBonus := MAX_SONG_LINE_BONUS / (Length(CurrentSong.Lines[CP].Line) - NumEmptySentences[CP]); // apply line-bonus CurrentPlayer.ScoreLine := @@ -1733,9 +1731,9 @@ procedure TScreenSingController.OnSentenceChange(CP: integer; SentenceIndex: car (not tmp_Lyric.IsQueueFull) do begin // add the next line to the queue or a dummy if no more lines are available - if (tmp_Lyric.LineCounter <= High(Lines[CP].Line)) then + if (tmp_Lyric.LineCounter <= High(CurrentSong.Lines[CP].Line)) then begin - tmp_Lyric.AddLine(@Lines[CP].Line[tmp_Lyric.LineCounter]); + tmp_Lyric.AddLine(@CurrentSong.Lines[CP].Line[tmp_Lyric.LineCounter]); end else tmp_Lyric.AddLine(nil); @@ -1774,15 +1772,6 @@ procedure TScreenSingController.UpdateMedleyStats(medley_end: boolean); //TODO if PlaylistMedley.CurrentMedleySong <= PlaylistMedley.NumMedleySongs then for I := 0 to num - 1 do PlaylistMedley.Stats[len - 1].Player[I] := Player[I]; - - if medley_end and not PlaylistMedley.ApplausePlayed and - (PlaylistMedley.CurrentMedleySong<=PlaylistMedley.NumMedleySongs) then - begin - PlaylistMedley.ApplausePlayed:=true; - - AudioPlayback.Fade(CurrentSong.Medley.FadeOut_time, 0.1); - AudioPlayback.PlaySound(SoundLib.Applause); - end; end; diff --git a/src/screens/views/UScreenSingView.pas b/src/screens/views/UScreenSingView.pas index 085af4d2..507f35da 100644 --- a/src/screens/views/UScreenSingView.pas +++ b/src/screens/views/UScreenSingView.pas @@ -1752,25 +1752,25 @@ procedure TScreenSingView.DrawInfoLyricBar(); x := x + GAPxStart; //move x to the right by Song-Gap-Seconds //width - //LastLine := Lines[0].Line[Length(Lines[0].Line) - 1]; + //LastLine := CurrentSong.Lines[0].Line[Length(CurrentSong.Lines[0].Line) - 1]; w := w - GAPxStart; //calculate total singing seconds of song SongStart := 99999999999999; SongEnd := CurrentSong.BPM*TotalTime/60; - for CurrentLine := 0 to High(Lines) do //P1 of Duett or standard, P2 of Duett,.. + for CurrentLine := 0 to High(CurrentSong.Lines) do //P1 of Duett or standard, P2 of Duett,.. begin - numLines := Length(Lines[CurrentLine].Line); //Lyric lines + numLines := Length(CurrentSong.Lines[CurrentLine].Line); //Lyric lines if (numLines < 2) then //catch cases which could cause endless loop Exit; - if SongStart > (Lines[CurrentLine].Line[0].Note[0].Start+(CurrentSong.BPM*CurrentSong.GAP*(1/60/1000))) then - SongStart := Lines[CurrentLine].Line[0].Note[0].Start + (CurrentSong.BPM*CurrentSong.GAP*(1/60/1000)); + if SongStart > (CurrentSong.Lines[CurrentLine].Line[0].Note[0].Start+(CurrentSong.BPM*CurrentSong.GAP*(1/60/1000))) then + SongStart := CurrentSong.Lines[CurrentLine].Line[0].Note[0].Start + (CurrentSong.BPM*CurrentSong.GAP*(1/60/1000)); end; ww := SongEnd - SongStart; - for CurrentLine := 0 to High(Lines) do //for P1 of Duett-lyrics or standard-lyrics, P2 of Duett,.. + for CurrentLine := 0 to High(CurrentSong.Lines) do //for P1 of Duett-lyrics or standard-lyrics, P2 of Duett,.. begin - numLines := Length(Lines[CurrentLine].Line); //Lyric lines + numLines := Length(CurrentSong.Lines[CurrentLine].Line); //Lyric lines if (numLines < 2) then //catch cases which could cause endless loop Exit; //set color to player.color @@ -1782,11 +1782,11 @@ procedure TScreenSingView.DrawInfoLyricBar(); glbegin(gl_quads); for line := 0 to numLines - 1 do begin - if (Lines[CurrentLine].Line[line].Note = nil) or (ww < Lines[CurrentLine].Line[line].Note[Lines[CurrentLine].Line[line].HighNote].Start) then Continue; - pos := (Lines[CurrentLine].Line[line].Note[0].Start)/ww*w; - br := (Lines[CurrentLine].Line[line].Note[Lines[CurrentLine].Line[line].HighNote].Start + - Lines[CurrentLine].Line[line].Note[Lines[CurrentLine].Line[line].HighNote].Length - - Lines[CurrentLine].Line[line].Note[0].Start ) / ww*w; //br = last note of sentence position + its length - first note of sentence position + if (CurrentSong.Lines[CurrentLine].Line[line].Note = nil) or (ww < CurrentSong.Lines[CurrentLine].Line[line].Note[CurrentSong.Lines[CurrentLine].Line[line].HighNote].Start) then Continue; + pos := (CurrentSong.Lines[CurrentLine].Line[line].Note[0].Start)/ww*w; + br := (CurrentSong.Lines[CurrentLine].Line[line].Note[CurrentSong.Lines[CurrentLine].Line[line].HighNote].Start + + CurrentSong.Lines[CurrentLine].Line[line].Note[CurrentSong.Lines[CurrentLine].Line[line].HighNote].Length - + CurrentSong.Lines[CurrentLine].Line[line].Note[0].Start ) / ww*w; //br = last note of sentence position + its length - first note of sentence position //draw a square glVertex2f(x+pos, y); //left top diff --git a/src/units/.gitkeep b/src/units/.gitkeep deleted file mode 100644 index e69de29b..00000000