New upstream version 21.0.2+dfsg1

This commit is contained in:
Sebastian Ramacher 2018-02-19 20:54:37 +01:00
parent 1f1bbb3518
commit baafb6325b
706 changed files with 49633 additions and 5044 deletions

View file

@ -6,12 +6,28 @@ SlideShow="Presentació de diapositives"
SlideShow.TransitionSpeed="Velocitat de la transició (mil·lisegons)"
SlideShow.SlideTime="Temps entre diapositives (mil·lisegons)"
SlideShow.Files="Fitxers d'imatge"
SlideShow.CustomSize="Relació d'aspecte"
SlideShow.CustomSize.Auto="Automàtic"
SlideShow.Randomize="Reproducció aleatòria"
SlideShow.Loop="Bucle"
SlideShow.Transition="Transició"
SlideShow.Transition.Cut="Tall"
SlideShow.Transition.Fade="Desaparèixer"
SlideShow.Transition.Swipe="De cop"
SlideShow.Transition.Slide="Diapositiva"
SlideShow.PlaybackBehavior="Comportament de la visibilitat"
SlideShow.PlaybackBehavior.StopRestart="Atura quan no sigui visible, reinicia quan sigui visible"
SlideShow.PlaybackBehavior.PauseUnpause="Pausa quan no sigui visible, reprèn quan sigui visible"
SlideShow.PlaybackBehavior.AlwaysPlay="Reprodueix sempre fins i tot quan no sigui visible"
SlideShow.SlideMode="Mode de diapositives"
SlideShow.SlideMode.Auto="Automàtic"
SlideShow.SlideMode.Manual="Manual (ús de tecles per controlar les diapositives)"
SlideShow.PlayPause="Reprodueix/Pausa"
SlideShow.Restart="Reinicia"
SlideShow.Stop="Atura"
SlideShow.NextSlide="Diapositiva següent"
SlideShow.PreviousSlide="Diapositiva anterior"
SlideShow.HideWhenDone="Amaga en finalitzar la presentació"
ColorSource="Origen del color"
ColorSource.Color="Color"

View file

@ -9,11 +9,25 @@ SlideShow.Files="Soubory obrázků"
SlideShow.CustomSize="Poměr stran"
SlideShow.CustomSize.Auto="Automatický"
SlideShow.Randomize="Náhodné přehrávání"
SlideShow.Loop="Opakovat"
SlideShow.Transition="Přechod"
SlideShow.Transition.Cut="Střih"
SlideShow.Transition.Fade="Slábnutí"
SlideShow.Transition.Swipe="Tažení"
SlideShow.Transition.Slide="Sklouznutí"
SlideShow.PlaybackBehavior="Závislost na viditelnosti"
SlideShow.PlaybackBehavior.StopRestart="Zastavit při skrytém, restartovat při obnovení"
SlideShow.PlaybackBehavior.PauseUnpause="Pozastavit při skrytém, pokračovat při obnovení"
SlideShow.PlaybackBehavior.AlwaysPlay="Přehrát vždy (i když není vidět)"
SlideShow.SlideMode="Režim prezentace"
SlideShow.SlideMode.Auto="Automatický"
SlideShow.SlideMode.Manual="Manuální (pro ovládání prezentace je nutné použít zkratky)"
SlideShow.PlayPause="Přehrát/Pozastavit"
SlideShow.Restart="Restartovat"
SlideShow.Stop="Zastavit"
SlideShow.NextSlide="Další snímek"
SlideShow.PreviousSlide="Předchozí snímek"
SlideShow.HideWhenDone="Skrýt na konci prezentace"
ColorSource="Zdroj barvy"
ColorSource.Color="Barva"

View file

@ -9,11 +9,25 @@ SlideShow.Files="Billedfiler"
SlideShow.CustomSize="Afgrænsningsstørrelse/Formatforhold"
SlideShow.CustomSize.Auto="Automatisk"
SlideShow.Randomize="Tilfældig afspilning"
SlideShow.Loop="Gentagelse"
SlideShow.Transition="Overgang"
SlideShow.Transition.Cut="Klip"
SlideShow.Transition.Fade="Overgang"
SlideShow.Transition.Swipe="Stryg"
SlideShow.Transition.Slide="Glide"
SlideShow.PlaybackBehavior="Synlighedsadfærd"
SlideShow.PlaybackBehavior.StopRestart="Stop når ikke synlig, genstart når synlig"
SlideShow.PlaybackBehavior.PauseUnpause="Sæt på pause når ikke synlig, genoptag når synlig"
SlideShow.PlaybackBehavior.AlwaysPlay="Afspil altid også når usynlig"
SlideShow.SlideMode="Diasshowtilstand"
SlideShow.SlideMode.Auto="Automatisk"
SlideShow.SlideMode.Manual="Manuel (styr diasshow via genvejstaster)"
SlideShow.PlayPause="Afspil/pause"
SlideShow.Restart="Genstart"
SlideShow.Stop="Stop"
SlideShow.NextSlide="Næste dias"
SlideShow.PreviousSlide="Foregående dias"
SlideShow.HideWhenDone="Skjul når diasshow er færdigt"
ColorSource="Farvekilde"
ColorSource.Color="Farve"

View file

@ -3,17 +3,31 @@ File="Bilddatei"
UnloadWhenNotShowing="Entlade Bild, wenn es nicht angezeigt wird"
SlideShow="Diashow"
SlideShow.TransitionSpeed="Geschwindigkeit des Übergangs (Millisekunden)"
SlideShow.TransitionSpeed="Übergangsgeschwindigkeit (Millisekunden)"
SlideShow.SlideTime="Zeit zwischen Bildern (Millisekunden)"
SlideShow.Files="Bilddateien"
SlideShow.CustomSize="Rahmen Größe/Seitenverhältnis"
SlideShow.CustomSize.Auto="Automatisch"
SlideShow.Randomize="Zufällige Wiedergabe"
SlideShow.Loop="Endlosschleife"
SlideShow.Transition="Übergang"
SlideShow.Transition.Cut="Schnitt"
SlideShow.Transition.Fade="Überblenden"
SlideShow.Transition.Swipe="Swipe"
SlideShow.Transition.Slide="Slide"
SlideShow.PlaybackBehavior="Sichtbarkeitsverhalten"
SlideShow.PlaybackBehavior.StopRestart="Anhalten wenn nicht sichtbar, neu starten wenn sichtbar"
SlideShow.PlaybackBehavior.PauseUnpause="Pausieren wenn nicht sichtbar, fortsetzen wenn sichtbar"
SlideShow.PlaybackBehavior.AlwaysPlay="Immer abspielen, auch wenn nicht sichtbar"
SlideShow.SlideMode="Diashowmodus"
SlideShow.SlideMode.Auto="Automatisch"
SlideShow.SlideMode.Manual="Manuell (Hotkeys verwenden, um Diashow zu steuern)"
SlideShow.PlayPause="Abspielen/Pausieren"
SlideShow.Restart="Neu starten"
SlideShow.Stop="Stop"
SlideShow.NextSlide="Nächstes Bild"
SlideShow.PreviousSlide="Vorheriges Bild"
SlideShow.HideWhenDone="Verbergen, wenn die Diashow vorbei ist"
ColorSource="Farbquelle"
ColorSource.Color="Farbe"

View file

@ -2,6 +2,21 @@ ImageInput="Εικόνα"
File="Αρχείο εικόνας"
UnloadWhenNotShowing="Ξεφόρτωση εικόνας όταν δεν εμφανίζεται"
SlideShow.Files="Αρχεία φωτογραφίας"
SlideShow="Παρουσίαση Εικόνων"
SlideShow.TransitionSpeed="Ταχύτητα μετάβασης (χιλιοστά δευτερολέπτου)"
SlideShow.SlideTime="Χρόνος μεταξύ των διαφανειών (χιλιοστά δευτερολέπτου)"
SlideShow.Files="Αρχεία εικόνων"
SlideShow.CustomSize="Μέγεθος Οριοθέτησης/Αναλογία"
SlideShow.CustomSize.Auto="Αυτόματο"
SlideShow.Randomize="Τυχαιοποίηση αναπαραγωγής"
SlideShow.Transition="Μετάβαση"
SlideShow.Transition.Cut="Αποκοπή"
SlideShow.Transition.Fade="Ξεθώριασμα"
SlideShow.Transition.Swipe="Σύρσιμο"
SlideShow.Transition.Slide="Ολίσθηση"
ColorSource="Πηγή χρώματος"
ColorSource.Color="Χρώμα"
ColorSource.Width="Πλάτος"
ColorSource.Height="Ύψος"

View file

@ -9,11 +9,25 @@ SlideShow.Files="Image Files"
SlideShow.CustomSize="Bounding Size/Aspect Ratio"
SlideShow.CustomSize.Auto="Automatic"
SlideShow.Randomize="Randomize Playback"
SlideShow.Loop="Loop"
SlideShow.Transition="Transition"
SlideShow.Transition.Cut="Cut"
SlideShow.Transition.Fade="Fade"
SlideShow.Transition.Swipe="Swipe"
SlideShow.Transition.Slide="Slide"
SlideShow.PlaybackBehavior="Visibility Behavior"
SlideShow.PlaybackBehavior.StopRestart="Stop when not visible, restart when visible"
SlideShow.PlaybackBehavior.PauseUnpause="Pause when not visible, unpause when visible"
SlideShow.PlaybackBehavior.AlwaysPlay="Always play even when not visible"
SlideShow.SlideMode="Slide Mode"
SlideShow.SlideMode.Auto="Automatic"
SlideShow.SlideMode.Manual="Manual (Use hotkeys to control slideshow)"
SlideShow.PlayPause="Play/Pause"
SlideShow.Restart="Restart"
SlideShow.Stop="Stop"
SlideShow.NextSlide="Next Slide"
SlideShow.PreviousSlide="Previous Slide"
SlideShow.HideWhenDone="Hide when slideshow is done"
ColorSource="Color Source"
ColorSource.Color="Color"

View file

@ -9,11 +9,25 @@ SlideShow.Files="Archivo de imagen"
SlideShow.CustomSize="Relación de aspecto"
SlideShow.CustomSize.Auto="Automático"
SlideShow.Randomize="Reproducción aleatoria"
SlideShow.Loop="Bucle"
SlideShow.Transition="Transición"
SlideShow.Transition.Cut="Corte"
SlideShow.Transition.Fade="Desvanecimiento"
SlideShow.Transition.Swipe="Deslizar Rapido"
SlideShow.Transition.Slide="Deslizar"
SlideShow.PlaybackBehavior="Comportamiento de visibilidad"
SlideShow.PlaybackBehavior.StopRestart="Detener cuando no sea visible, reiniciar cuando sea visible"
SlideShow.PlaybackBehavior.PauseUnpause="Pausar cuando no sea visible, reanudar cuando sea visible"
SlideShow.PlaybackBehavior.AlwaysPlay="Reproducir siempre incluso cuando no sea visible"
SlideShow.SlideMode="Modo de diapositivas"
SlideShow.SlideMode.Auto="Automático"
SlideShow.SlideMode.Manual="Manual (uso de teclas para controlar las diapositivas)"
SlideShow.PlayPause="Reproducir/Pausar"
SlideShow.Restart="Reiniciar"
SlideShow.Stop="Detener"
SlideShow.NextSlide="Siguiente diapositiva"
SlideShow.PreviousSlide="Diapositiva anterior"
SlideShow.HideWhenDone="Ocultar cuando se acabe la presentación"
ColorSource="Origen de color"
ColorSource.Color="Color"

View file

@ -9,11 +9,25 @@ SlideShow.Files="Irudi fitxategiak"
SlideShow.CustomSize="Markoaren tamaina/Aspektu-erlazioa"
SlideShow.CustomSize.Auto="Automatikoa"
SlideShow.Randomize="Ausazko erreprodukzioa"
SlideShow.Loop="Begizta"
SlideShow.Transition="Trantsizioa"
SlideShow.Transition.Cut="Ebaki"
SlideShow.Transition.Fade="Iraungi"
SlideShow.Transition.Swipe="Korritu"
SlideShow.Transition.Slide="Irristatu"
SlideShow.PlaybackBehavior="Ikuste-jokabidea"
SlideShow.PlaybackBehavior.StopRestart="Ikusten ez bada gelditu, ikusten denean berrabiarazi"
SlideShow.PlaybackBehavior.PauseUnpause="Ikusten ez bada pausatu, ikusten denean jarraitu"
SlideShow.PlaybackBehavior.AlwaysPlay="Erreproduzitu beti nahiz eta ez ikusi"
SlideShow.SlideMode="Diapositiba modua"
SlideShow.SlideMode.Auto="Automatikoa"
SlideShow.SlideMode.Manual="Eskuz (erabili teklak kontrolatzeko aurkezpena)"
SlideShow.PlayPause=" Erreproduzitu/Pausarazi"
SlideShow.Restart="Berrabiarazi"
SlideShow.Stop="Gelditu"
SlideShow.NextSlide="Hurrengo diapositiba"
SlideShow.PreviousSlide="Aurreko diapositiba"
SlideShow.HideWhenDone="Ezkutatu aurkezpena bukatzean"
ColorSource="Kolorearen iturburua"
ColorSource.Color="Kolorea"

View file

@ -9,11 +9,25 @@ SlideShow.Files="Kuvatiedostot"
SlideShow.CustomSize="Rajauskoko/Kuvasuhde"
SlideShow.CustomSize.Auto="Automaattinen"
SlideShow.Randomize="Toista satunnaisesti"
SlideShow.Loop="Toista jatkuvasti"
SlideShow.Transition="Siirtymä"
SlideShow.Transition.Cut="Leikkaa"
SlideShow.Transition.Fade="Häivytä"
SlideShow.Transition.Swipe="Pyyhkäise"
SlideShow.Transition.Slide="Liu'uta"
SlideShow.PlaybackBehavior="Näkyvyyskäyttäytyminen"
SlideShow.PlaybackBehavior.StopRestart="Pysäytä toisto kun lähde ei näy. Käynnistä toisto uudelleen, kun se on taas näkyvissä"
SlideShow.PlaybackBehavior.PauseUnpause="Keskeytä toisto kun lähde ei näy. Jatka toistoa, kun se on taas näkyvissä"
SlideShow.PlaybackBehavior.AlwaysPlay="Toista aina, vaikka lähde ei olisi näkyvissä"
SlideShow.SlideMode="Leikkaustila"
SlideShow.SlideMode.Auto="Automaattinen"
SlideShow.SlideMode.Manual="Manuaalinen (Käytä pikanäppäimiä ohjataksesi diashowta)"
SlideShow.PlayPause="Toista/Tauko"
SlideShow.Restart="Aloita alusta"
SlideShow.Stop="Pysäytä"
SlideShow.NextSlide="Seuraava dia"
SlideShow.PreviousSlide="Edellinen dia"
SlideShow.HideWhenDone="Piilota kun diaesitys on valmis"
ColorSource="Värilähde"
ColorSource.Color="Väri"

View file

@ -9,11 +9,25 @@ SlideShow.Files="Fichiers image"
SlideShow.CustomSize="Taille Limite/Ratio d'aspect"
SlideShow.CustomSize.Auto="Automatique"
SlideShow.Randomize="Lecture aléatoire"
SlideShow.Loop="Boucle"
SlideShow.Transition="Transition"
SlideShow.Transition.Cut="Coupure"
SlideShow.Transition.Fade="Fondu"
SlideShow.Transition.Swipe="Balayage"
SlideShow.Transition.Slide="Glissement"
SlideShow.PlaybackBehavior="Comportement de Visibilité"
SlideShow.PlaybackBehavior.StopRestart="Arrêter si non visible, redémarrer si visible"
SlideShow.PlaybackBehavior.PauseUnpause="Suspendre si non visible, reprendre si visible"
SlideShow.PlaybackBehavior.AlwaysPlay="Toujours jouer même lorsqu'elle n'est pas visible"
SlideShow.SlideMode="Mode Diapo"
SlideShow.SlideMode.Auto="Automatique"
SlideShow.SlideMode.Manual="Manuel (utiliser les raccourcis clavier pour contrôler le diapo)"
SlideShow.PlayPause="Lire/Pause"
SlideShow.Restart="Relancer"
SlideShow.Stop="Arrêter"
SlideShow.NextSlide="Diapo suivante"
SlideShow.PreviousSlide="Diapo précédente"
SlideShow.HideWhenDone="Masquer lorsque le diaporama est terminé"
ColorSource="Source de couleur"
ColorSource.Color="Couleur"

View file

@ -9,11 +9,25 @@ SlideShow.Files="Képfájlok"
SlideShow.CustomSize="Befoglaló méret/Képarány"
SlideShow.CustomSize.Auto="Automatikus"
SlideShow.Randomize="Véletlenszerű lejátszás"
SlideShow.Loop="Ismétlés"
SlideShow.Transition="Átmenet"
SlideShow.Transition.Cut="Kivágás"
SlideShow.Transition.Fade="Áttűnés"
SlideShow.Transition.Swipe="Lapozás"
SlideShow.Transition.Slide="Csúsztatás"
SlideShow.PlaybackBehavior="Láthatósági opció"
SlideShow.PlaybackBehavior.StopRestart="Leállítás, ha nem látható, újraindul, ha látható"
SlideShow.PlaybackBehavior.PauseUnpause="Szüneteltet, ha nem látható, folytatás, ha látható"
SlideShow.PlaybackBehavior.AlwaysPlay="Mindig lejátsza, akkor is, ha nem látható"
SlideShow.SlideMode="Csúsztatás mód"
SlideShow.SlideMode.Auto="Automatikus"
SlideShow.SlideMode.Manual="Kézi (Billentyűket használjon az irányításhoz)"
SlideShow.PlayPause="Lejátszás/Szünet"
SlideShow.Restart="Újraindítás"
SlideShow.Stop="Leállítás"
SlideShow.NextSlide="Következő dia"
SlideShow.PreviousSlide="Előző dia"
SlideShow.HideWhenDone="Elrejtés a diavetítés végén"
ColorSource="Színforrás"
ColorSource.Color="Szín"

View file

@ -6,12 +6,28 @@ SlideShow="Presentazione immagini"
SlideShow.TransitionSpeed="Velocità di transizione (millisecondi)"
SlideShow.SlideTime="Tempo tra le diapositive (millisecondi)"
SlideShow.Files="Files Immagini"
SlideShow.CustomSize="Dimensioni/proporzioni"
SlideShow.CustomSize.Auto="Automatico"
SlideShow.Randomize="Randomizzare la riproduzione"
SlideShow.Loop="Loop"
SlideShow.Transition="Transizione"
SlideShow.Transition.Cut="Taglio"
SlideShow.Transition.Fade="Dissolvenza"
SlideShow.Transition.Swipe="Scorri"
SlideShow.Transition.Slide="Scivola"
SlideShow.PlaybackBehavior="Comportamento visibilità"
SlideShow.PlaybackBehavior.StopRestart="Interrompi quando non visibile, riavvia quando visibile"
SlideShow.PlaybackBehavior.PauseUnpause="Pausa quando non visibile, riprendi quando visibile"
SlideShow.PlaybackBehavior.AlwaysPlay="Continua sempre anche quando non visibile"
SlideShow.SlideMode="Modalità Slide"
SlideShow.SlideMode.Auto="Automatico"
SlideShow.SlideMode.Manual="Manuale (usa i tasti di scelta rapida per controllare la presentazione)"
SlideShow.PlayPause="Play/Pausa"
SlideShow.Restart="Riavvia"
SlideShow.Stop="Stop"
SlideShow.NextSlide="Prossima Slide"
SlideShow.PreviousSlide="Slide Precedente"
SlideShow.HideWhenDone="Nascondi quando la presentazione è terminata"
ColorSource="Origine del colore"
ColorSource.Color="Colore"

View file

@ -9,11 +9,25 @@ SlideShow.Files="画像ファイル"
SlideShow.CustomSize="バウンディングサイズ/アスペクト比"
SlideShow.CustomSize.Auto="自動"
SlideShow.Randomize="ランダム再生"
SlideShow.Loop="繰り返し"
SlideShow.Transition="トランジション"
SlideShow.Transition.Cut="カット"
SlideShow.Transition.Fade="フェード"
SlideShow.Transition.Swipe="スワイプ"
SlideShow.Transition.Slide="スライド"
SlideShow.PlaybackBehavior="表示の動作"
SlideShow.PlaybackBehavior.StopRestart="表示されていないときは停止し、表示されているときは再開する"
SlideShow.PlaybackBehavior.PauseUnpause="表示されていないときは一時停止し、表示されているときは一時停止しない"
SlideShow.PlaybackBehavior.AlwaysPlay="表示されていないときにも常に再生する"
SlideShow.SlideMode="スライドモード"
SlideShow.SlideMode.Auto="自動"
SlideShow.SlideMode.Manual="手動 (ホットキーを使用してスライドショーを制御する)"
SlideShow.PlayPause="再生/一時停止"
SlideShow.Restart="再開"
SlideShow.Stop="停止"
SlideShow.NextSlide="次のスライド"
SlideShow.PreviousSlide="前のスライド"
SlideShow.HideWhenDone="スライドショーが終わったら非表示にする"
ColorSource="色ソース"
ColorSource.Color="色"

View file

@ -9,11 +9,25 @@ SlideShow.Files="이미지 파일 형식"
SlideShow.CustomSize="경계 크기/화면 비율"
SlideShow.CustomSize.Auto="자동"
SlideShow.Randomize="무작위 재생"
SlideShow.Loop="반복"
SlideShow.Transition="전환 방식"
SlideShow.Transition.Cut="자르기"
SlideShow.Transition.Fade="서서히 사라지기"
SlideShow.Transition.Swipe="밀어내기"
SlideShow.Transition.Slide="슬라이드"
SlideShow.PlaybackBehavior="표시 동작 설정"
SlideShow.PlaybackBehavior.StopRestart="보이지 않을 때 중단, 보이면 재시작"
SlideShow.PlaybackBehavior.PauseUnpause="보이지 않을 때 일시 정지, 보이면 일시 정지 해제"
SlideShow.PlaybackBehavior.AlwaysPlay="보이지 않아도 항상 재생"
SlideShow.SlideMode="슬라이드 방식"
SlideShow.SlideMode.Auto="자동"
SlideShow.SlideMode.Manual="수동 (단축키로 슬라이드 쇼를 제어)"
SlideShow.PlayPause="재생/일시 정지"
SlideShow.Restart="재시작"
SlideShow.Stop="중단"
SlideShow.NextSlide="다음 슬라이드"
SlideShow.PreviousSlide="이전 슬라이드"
SlideShow.HideWhenDone="슬라이드 쇼가 끝나면 숨기기"
ColorSource="색상 소스"
ColorSource.Color="색상"

View file

@ -6,11 +6,31 @@ SlideShow="Lysbildefremvisning"
SlideShow.TransitionSpeed="Overgangshastighet (millisekunder)"
SlideShow.SlideTime="Tid mellom lysbilder (millisekunder)"
SlideShow.Files="Bildefiler"
SlideShow.CustomSize="Markeringsboks/størrelsesforhold"
SlideShow.CustomSize.Auto="Automatisk"
SlideShow.Randomize="Tilfeldig avspilling"
SlideShow.Loop="Repeter"
SlideShow.Transition="Overgang"
SlideShow.Transition.Cut="Kutt"
SlideShow.Transition.Fade="Forløpning"
SlideShow.Transition.Swipe="Sveip"
SlideShow.Transition.Slide="Skyv"
SlideShow.PlaybackBehavior="Synlighetsvalg"
SlideShow.PlaybackBehavior.StopRestart="Stopp når ikke synlig, spill fra starten når synlig"
SlideShow.PlaybackBehavior.PauseUnpause="Stans når ikke synlig, spill når synlig"
SlideShow.PlaybackBehavior.AlwaysPlay="Alltid spill, selv når ikke synlig"
SlideShow.SlideMode="Lysbildemodus"
SlideShow.SlideMode.Auto="Automatisk"
SlideShow.SlideMode.Manual="Manuell (bruk hurtigtaster for å styre lysbildene)"
SlideShow.PlayPause="Spill av/pause"
SlideShow.Restart="Start på nytt"
SlideShow.Stop="Stopp"
SlideShow.NextSlide="Neste lysbilde"
SlideShow.PreviousSlide="Forrige lysbilde"
SlideShow.HideWhenDone="Skjul når lysbildefremvisning er ferdig"
ColorSource="Fargekilde"
ColorSource.Color="Farge"
ColorSource.Width="Bredde"
ColorSource.Height="Høyde"

View file

@ -9,11 +9,25 @@ SlideShow.Files="Afbeeldingsbestanden"
SlideShow.CustomSize="Randgrootte/Beeldverhouding"
SlideShow.CustomSize.Auto="Automatisch"
SlideShow.Randomize="Willekeurige Volgorde"
SlideShow.Loop="Herhalen"
SlideShow.Transition="Overgang"
SlideShow.Transition.Cut="Knippen"
SlideShow.Transition.Fade="Vervagen"
SlideShow.Transition.Swipe="Vegen"
SlideShow.Transition.Slide="Slide"
SlideShow.PlaybackBehavior="Zichtbaarheidsgedrag"
SlideShow.PlaybackBehavior.StopRestart="Stop wanneer niet zichtbaar, herstart wanneer wel zichtbaar"
SlideShow.PlaybackBehavior.PauseUnpause="Pauzeer wanneer niet zichtbaar, hervat wanneer wel zichtbaar"
SlideShow.PlaybackBehavior.AlwaysPlay="Altijd spelen, zelfs wanneer niet zichtbaar"
SlideShow.SlideMode="Diamodus"
SlideShow.SlideMode.Auto="Automatisch"
SlideShow.SlideMode.Manual="Handmatig (gebruik sneltoetsen om diashow te bedienen)"
SlideShow.PlayPause="Afspelen/pauzeren"
SlideShow.Restart="Herstarten"
SlideShow.Stop="Stop"
SlideShow.NextSlide="Volgende dia"
SlideShow.PreviousSlide="Vorige dia"
SlideShow.HideWhenDone="Verbergen wanneer diashow afgelopen is"
ColorSource="Kleurbron"
ColorSource.Color="Kleur"

View file

@ -9,11 +9,25 @@ SlideShow.Files="Pliki graficzne"
SlideShow.CustomSize="Ograniczenie rozmiaru/Proporcje"
SlideShow.CustomSize.Auto="Automatycznie"
SlideShow.Randomize="Odtwarzanie losowe"
SlideShow.Loop="Pętla"
SlideShow.Transition="Efekt przejścia"
SlideShow.Transition.Cut="Cięcie"
SlideShow.Transition.Fade="Zanikanie"
SlideShow.Transition.Swipe="Przeciągnięcie"
SlideShow.Transition.Slide="Przesunięcie"
SlideShow.PlaybackBehavior="Zachowanie"
SlideShow.PlaybackBehavior.StopRestart="Zatrzymaj, gdy niewidoczne. Odtwarzaj od początku, gdy widoczne."
SlideShow.PlaybackBehavior.PauseUnpause="Wstrzymaj, gdy niewidoczne. Wznów, gdy widoczne."
SlideShow.PlaybackBehavior.AlwaysPlay="Odtwarzaj cały czas bez względu na widoczność."
SlideShow.SlideMode="Tryb slajdu"
SlideShow.SlideMode.Auto="Automatycznie"
SlideShow.SlideMode.Manual="Ręcznie (użyj skrótów klawiszowych do kontroli slajdów)"
SlideShow.PlayPause="Odtwarzaj/Wstrzymaj"
SlideShow.Restart="Zrestartuj"
SlideShow.Stop="Zatrzymaj"
SlideShow.NextSlide="Następny slajd"
SlideShow.PreviousSlide="Poprzedni slajd"
SlideShow.HideWhenDone="Ukryj po zakończeniu slajdów"
ColorSource="Kolor"
ColorSource.Color="Kolor"

View file

@ -9,11 +9,25 @@ SlideShow.Files="Arquivos de Imagem"
SlideShow.CustomSize="Tamanho Delimitador/Proporção"
SlideShow.CustomSize.Auto="Automático"
SlideShow.Randomize="Reprodução aleatória"
SlideShow.Loop="Loop"
SlideShow.Transition="Transição"
SlideShow.Transition.Cut="Corte"
SlideShow.Transition.Fade="Esmaecer"
SlideShow.Transition.Swipe="Arrastar"
SlideShow.Transition.Slide="Deslizar"
SlideShow.PlaybackBehavior="Comportamento de Visibilidade"
SlideShow.PlaybackBehavior.StopRestart="Parar quando não visível, reiniciar quando visível"
SlideShow.PlaybackBehavior.PauseUnpause="Pausa quando não visível, resumir quando visível"
SlideShow.PlaybackBehavior.AlwaysPlay="Sempre reproduzir, mesmo quando não visível"
SlideShow.SlideMode="Modo de slide"
SlideShow.SlideMode.Auto="Automático"
SlideShow.SlideMode.Manual="Manual (Usar as teclas de atalho para controlar a apresentação)"
SlideShow.PlayPause="Reproduzir/Pausar"
SlideShow.Restart="Reiniciar"
SlideShow.Stop="Parar"
SlideShow.NextSlide="Próximo Slide"
SlideShow.PreviousSlide="Slide Anterior"
SlideShow.HideWhenDone="Esconder quando terminar a apresentação"
ColorSource="Fonte de Cor"
ColorSource.Color="Cor"

View file

@ -9,4 +9,7 @@ SlideShow.Transition="Tranziție"
SlideShow.Transition.Cut="Decupare"
SlideShow.Transition.Slide="Diapozitiv"
ColorSource.Color="Culoare"
ColorSource.Width="Lățime"
ColorSource.Height="Înălțime"

View file

@ -9,11 +9,25 @@ SlideShow.Files="Файлы изображений"
SlideShow.CustomSize="Ограничение размера/Соотношение сторон"
SlideShow.CustomSize.Auto="Автоматически"
SlideShow.Randomize="Случайное воспроизведение"
SlideShow.Loop="Повтор"
SlideShow.Transition="Переход"
SlideShow.Transition.Cut="Обрезать"
SlideShow.Transition.Fade="Затухание"
SlideShow.Transition.Swipe="Перемещение"
SlideShow.Transition.Slide="Сдвиг"
SlideShow.PlaybackBehavior="Поведение видимости"
SlideShow.PlaybackBehavior.StopRestart="Всегда воспроизводить, даже если не видимый"
SlideShow.PlaybackBehavior.PauseUnpause="Приостановить если не видимый, возобновить если видимый"
SlideShow.PlaybackBehavior.AlwaysPlay="Всегда проигрывать, даже если не видимый"
SlideShow.SlideMode="Режим перелистывания"
SlideShow.SlideMode.Auto="Автоматический"
SlideShow.SlideMode.Manual="Ручной (Используйте горячие клавиши для управления слайд-шоу)"
SlideShow.PlayPause="Воспроизвести/Пауза"
SlideShow.Restart="Перезапустить"
SlideShow.Stop="Остановить"
SlideShow.NextSlide="Следующий слайд"
SlideShow.PreviousSlide="Предыдущий слайд"
SlideShow.HideWhenDone="Скрыть после завершения слайд-шоу"
ColorSource="Фоновый цвет"
ColorSource.Color="Цвет"

View file

@ -6,11 +6,31 @@ SlideShow="Prezentácia obrázkov"
SlideShow.TransitionSpeed="Rýchlosť prechodu (v milisekundách)"
SlideShow.SlideTime="Čas medzi snímkami (v milisekundách)"
SlideShow.Files="Obrázky"
SlideShow.CustomSize="Veľkosť/pomer strán"
SlideShow.CustomSize.Auto="Automatické"
SlideShow.Randomize="Náhodné prehrávanie"
SlideShow.Loop="Slučka"
SlideShow.Transition="Prechod"
SlideShow.Transition.Cut="Strih"
SlideShow.Transition.Fade="Miznutie"
SlideShow.Transition.Swipe="Potiahnite"
SlideShow.Transition.Slide="Posunutie"
SlideShow.PlaybackBehavior="Fungovanie podľa viditeľnosti"
SlideShow.PlaybackBehavior.StopRestart="Zastaviť, keď nie je viditeľná, reštartovať, keď je viditeľná"
SlideShow.PlaybackBehavior.PauseUnpause="Pozastaviť, keď nie je viditeľná, zrušiť pozastavenie, keď je viditeľná"
SlideShow.PlaybackBehavior.AlwaysPlay="Vždy prehrávať, aj keď nie je viditeľná"
SlideShow.SlideMode="Ovládanie prezentácie"
SlideShow.SlideMode.Auto="Automatické"
SlideShow.SlideMode.Manual="Manuálne (použite klávesy na ovládanie prezentácie)"
SlideShow.PlayPause="Prehrať/Pozastaviť"
SlideShow.Restart="Reštartovať"
SlideShow.Stop="Zastaviť"
SlideShow.NextSlide="Ďalšia snímka"
SlideShow.PreviousSlide="Predchádzajúca snímka"
SlideShow.HideWhenDone="Skryť, keď prezentácia skončí"
ColorSource="Farba"
ColorSource.Color="Farba"
ColorSource.Width="Šírka"
ColorSource.Height="Výška"

View file

@ -6,13 +6,28 @@ SlideShow="Bildspel"
SlideShow.TransitionSpeed="Övergångshastighet (millisekunder)"
SlideShow.SlideTime="Tid mellan bilder (millisekunder)"
SlideShow.Files="Bildfiler"
SlideShow.CustomSize="Avgränsningsstorlek/bildformat"
SlideShow.CustomSize.Auto="Automatisk"
SlideShow.Randomize="Slumpa uppspelning"
SlideShow.Loop="Upprepa"
SlideShow.Transition="Övergång"
SlideShow.Transition.Cut="Klipp"
SlideShow.Transition.Fade="Tona"
SlideShow.Transition.Swipe="Svep"
SlideShow.Transition.Slide="Glid"
SlideShow.PlaybackBehavior="Synlighetsbeteende"
SlideShow.PlaybackBehavior.StopRestart="Stoppa när den inte syns, starta om när den syns"
SlideShow.PlaybackBehavior.PauseUnpause="Pausa när den inte syns, återuppta när den syns"
SlideShow.PlaybackBehavior.AlwaysPlay="Spela alltid även när den inte syns"
SlideShow.SlideMode="Bildspelsläge"
SlideShow.SlideMode.Auto="Automatisk"
SlideShow.SlideMode.Manual="Manuellt (använd kortkommandon för att styra bildspelet)"
SlideShow.PlayPause="Spela/Pausa"
SlideShow.Restart="Starta om"
SlideShow.Stop="Stoppa"
SlideShow.NextSlide="Nästa bild"
SlideShow.PreviousSlide="Föregående bild"
SlideShow.HideWhenDone="Dölj när bildspelet är färdigt"
ColorSource="Färgkälla"
ColorSource.Color="Färg"

View file

@ -9,11 +9,25 @@ SlideShow.Files="Görüntü Dosyaları"
SlideShow.CustomSize="Sınırlayıcı Boyut/En-Boy Oranı"
SlideShow.CustomSize.Auto="Otomatik"
SlideShow.Randomize="Rastgele Gösterim"
SlideShow.Loop="Döngü"
SlideShow.Transition="Geçiş"
SlideShow.Transition.Cut="Cut"
SlideShow.Transition.Fade="Fade"
SlideShow.Transition.Swipe="Swipe"
SlideShow.Transition.Slide="Slide"
SlideShow.PlaybackBehavior="Görünürlük Davranışı"
SlideShow.PlaybackBehavior.StopRestart="Görünür olmadığında durdur, görünür olduğunda yeniden başlat"
SlideShow.PlaybackBehavior.PauseUnpause="Görünür olmadığında duraklat, görünür olduğunda oynat"
SlideShow.PlaybackBehavior.AlwaysPlay="Görünür olmadığında bile her zaman oynat"
SlideShow.SlideMode="Slayt Modu"
SlideShow.SlideMode.Auto="Otomatik"
SlideShow.SlideMode.Manual="Elle (Slayt gösterisini kontrol etmek için kısayol tuşlarını kullanın)"
SlideShow.PlayPause="Oynat/Duraklat"
SlideShow.Restart="Yeniden Başlat"
SlideShow.Stop="Durdur"
SlideShow.NextSlide="Sonraki Slayt"
SlideShow.PreviousSlide="Önceki Slayt"
SlideShow.HideWhenDone="Slayt gösterisi tamamlandığında gizle"
ColorSource="Renk Kaynağı"
ColorSource.Color="Renk"

View file

@ -1,6 +1,6 @@
ImageInput="Зображення"
File="Файл зображення"
UnloadWhenNotShowing="Вивантажи зображення, коли не відображається"
UnloadWhenNotShowing="Вивантажувати зображення, коли воно не виводиться"
SlideShow="Слайд-шоу"
SlideShow.TransitionSpeed="Тривалість відео-переходу (мілісекунд)"
@ -9,11 +9,25 @@ SlideShow.Files="Файли зображень"
SlideShow.CustomSize="Розмір рамки/пропорції"
SlideShow.CustomSize.Auto="Автоматично"
SlideShow.Randomize="Випадкове відтворення"
SlideShow.Loop="Циклічно відтворювати"
SlideShow.Transition="Відео-перехід"
SlideShow.Transition.Cut="Cut"
SlideShow.Transition.Fade="Fade"
SlideShow.Transition.Swipe="Swipe"
SlideShow.Transition.Slide="Slide"
SlideShow.PlaybackBehavior="Видимість та відтворення"
SlideShow.PlaybackBehavior.StopRestart="Зупинити, коли не видимий. Грати з початку, коли видимий"
SlideShow.PlaybackBehavior.PauseUnpause="Призупинити, коли не видимий. Грати далі, коли видимий"
SlideShow.PlaybackBehavior.AlwaysPlay="Завжди грати навіть тоді, коли не видимий"
SlideShow.SlideMode="Режим слайдів"
SlideShow.SlideMode.Auto="Автоматично"
SlideShow.SlideMode.Manual="Вручну (використовувати Гарячі клавіші для контролю)"
SlideShow.PlayPause="Відтворення / Пауза"
SlideShow.Restart="Грати з початку"
SlideShow.Stop="Зупинити"
SlideShow.NextSlide="Наступний слайд"
SlideShow.PreviousSlide="Попередній слайд"
SlideShow.HideWhenDone="Не показувати джерело, коли відтворення слайд-шоу завершено"
ColorSource="Щільний колір"
ColorSource.Color="Колір"

View file

@ -0,0 +1,36 @@
ImageInput="Hình ảnh"
File="Tập tin hình ảnh"
UnloadWhenNotShowing="Tải lên hình ảnh khi không hiển thị"
SlideShow="Trình chiếu hình ảnh"
SlideShow.TransitionSpeed="Tốc độ chuyển cảnh (mili giây)"
SlideShow.SlideTime="Thời gian giữa các slide (mili giây)"
SlideShow.Files="Tập tin hình ảnh"
SlideShow.CustomSize="Kích thước / Tỷ lệ co dãn"
SlideShow.CustomSize.Auto="Tự động"
SlideShow.Randomize="Phát lại ngẫu nhiên"
SlideShow.Loop="Lặp lại"
SlideShow.Transition="Chuyển cảnh"
SlideShow.Transition.Cut="Cắt"
SlideShow.Transition.Fade="Mờ dần"
SlideShow.Transition.Swipe="Vuốt"
SlideShow.Transition.Slide="Trượt"
SlideShow.PlaybackBehavior="Hành vi hiển thị"
SlideShow.PlaybackBehavior.StopRestart="Dừng khi không hiển thị, khởi động lại khi hiển thị"
SlideShow.PlaybackBehavior.PauseUnpause="Tạm dừng khi không hiển thị, bỏ tạm dừng khi hiển thị"
SlideShow.PlaybackBehavior.AlwaysPlay="Luôn luôn phát ngay cả khi không hiển thị"
SlideShow.SlideMode="Chế độ Slide"
SlideShow.SlideMode.Auto="Tự động"
SlideShow.SlideMode.Manual="Bằng tay (Dùng phím nóng để điều khiển trình chiếu)"
SlideShow.PlayPause="Phát/Tạm dừng"
SlideShow.Restart="Khởi động lại"
SlideShow.Stop="Dừng"
SlideShow.NextSlide="Slide kế"
SlideShow.PreviousSlide="Slide trước"
SlideShow.HideWhenDone="Ẩn khi trình chiếu xong"
ColorSource="Nguồn màu"
ColorSource.Color="Màu"
ColorSource.Width="Chiều rộng"
ColorSource.Height="Chiều cao"

View file

@ -9,11 +9,25 @@ SlideShow.Files="图像文件"
SlideShow.CustomSize="边框大小/高宽比"
SlideShow.CustomSize.Auto="自动"
SlideShow.Randomize="随机播放"
SlideShow.Loop="循环"
SlideShow.Transition="转换"
SlideShow.Transition.Cut="剪切"
SlideShow.Transition.Fade="淡出"
SlideShow.Transition.Swipe="滑动"
SlideShow.Transition.Slide="幻灯片"
SlideShow.PlaybackBehavior="可见性的行为"
SlideShow.PlaybackBehavior.StopRestart="不可见时停止, 可见时重新开始"
SlideShow.PlaybackBehavior.PauseUnpause="不可见时暂停, 可见时取消暂停"
SlideShow.PlaybackBehavior.AlwaysPlay="即使在不可见时也保持播放"
SlideShow.SlideMode="幻灯片模式"
SlideShow.SlideMode.Auto="自动"
SlideShow.SlideMode.Manual="手动 (使用热键来控制幻灯片)"
SlideShow.PlayPause="播放/暂停"
SlideShow.Restart="重新开始"
SlideShow.Stop="停止"
SlideShow.NextSlide="下一张幻灯片"
SlideShow.PreviousSlide="上一张幻灯片"
SlideShow.HideWhenDone="幻灯片完成时隐藏"
ColorSource="色源"
ColorSource.Color="色彩"

View file

@ -9,11 +9,25 @@ SlideShow.Files="圖片檔案"
SlideShow.CustomSize="邊框大小長寬比"
SlideShow.CustomSize.Auto="自動"
SlideShow.Randomize="隨機播放"
SlideShow.Loop="循環播放"
SlideShow.Transition="變更特效"
SlideShow.Transition.Cut="直接變更"
SlideShow.Transition.Fade="淡入淡出"
SlideShow.Transition.Swipe="滑出"
SlideShow.Transition.Slide="推出"
SlideShow.PlaybackBehavior="播放行為"
SlideShow.PlaybackBehavior.StopRestart="不可見時停止,可見時重新開始"
SlideShow.PlaybackBehavior.PauseUnpause="不可見時暫停,可見時取消暫停"
SlideShow.PlaybackBehavior.AlwaysPlay="即使不可見一樣播放"
SlideShow.SlideMode="投影片模式"
SlideShow.SlideMode.Auto="自動"
SlideShow.SlideMode.Manual="手動 (使用熱鍵來控制幻燈片)"
SlideShow.PlayPause="播放/暫停"
SlideShow.Restart="重新開始"
SlideShow.Stop="停止"
SlideShow.NextSlide="下一張投影片"
SlideShow.PreviousSlide="前一張投影片"
SlideShow.HideWhenDone="完成時隱藏"
ColorSource="色彩來源"
ColorSource.Color="色彩"

View file

@ -15,7 +15,16 @@
#define S_SLIDE_TIME "slide_time"
#define S_TRANSITION "transition"
#define S_RANDOMIZE "randomize"
#define S_LOOP "loop"
#define S_HIDE "hide"
#define S_FILES "files"
#define S_BEHAVIOR "playback_behavior"
#define S_BEHAVIOR_STOP_RESTART "stop_restart"
#define S_BEHAVIOR_PAUSE_UNPAUSE "pause_unpause"
#define S_BEHAVIOR_ALWAYS_PLAY "always_play"
#define S_MODE "slide_mode"
#define S_MODE_AUTO "mode_auto"
#define S_MODE_MANUAL "mode_manual"
#define TR_CUT "cut"
#define TR_FADE "fade"
@ -29,7 +38,16 @@
#define T_SLIDE_TIME T_("SlideTime")
#define T_TRANSITION T_("Transition")
#define T_RANDOMIZE T_("Randomize")
#define T_LOOP T_("Loop")
#define T_HIDE T_("HideWhenDone")
#define T_FILES T_("Files")
#define T_BEHAVIOR T_("PlaybackBehavior")
#define T_BEHAVIOR_STOP_RESTART T_("PlaybackBehavior.StopRestart")
#define T_BEHAVIOR_PAUSE_UNPAUSE T_("PlaybackBehavior.PauseUnpause")
#define T_BEHAVIOR_ALWAYS_PLAY T_("PlaybackBehavior.AlwaysPlay")
#define T_MODE T_("SlideMode")
#define T_MODE_AUTO T_("SlideMode.Auto")
#define T_MODE_MANUAL T_("SlideMode.Manual")
#define T_TR_(text) obs_module_text("SlideShow.Transition." text)
#define T_TR_CUT T_TR_("Cut")
@ -44,10 +62,25 @@ struct image_file_data {
obs_source_t *source;
};
enum behavior {
BEHAVIOR_STOP_RESTART,
BEHAVIOR_PAUSE_UNPAUSE,
BEHAVIOR_ALWAYS_PLAY,
};
struct slideshow {
obs_source_t *source;
bool randomize;
bool loop;
bool restart_on_activate;
bool pause_on_deactivate;
bool restart;
bool manual;
bool hide;
bool use_cut;
bool paused;
bool stop;
float slide_time;
uint32_t tr_speed;
const char *tr_name;
@ -61,6 +94,14 @@ struct slideshow {
pthread_mutex_t mutex;
DARRAY(struct image_file_data) files;
enum behavior behavior;
obs_hotkey_id play_pause_hotkey;
obs_hotkey_id restart_hotkey;
obs_hotkey_id stop_hotkey;
obs_hotkey_id next_hotkey;
obs_hotkey_id prev_hotkey;
};
static obs_source_t *get_transition(struct slideshow *ss)
@ -179,6 +220,33 @@ static bool valid_extension(const char *ext)
astrcmpi(ext, ".gif") == 0;
}
static inline bool item_valid(struct slideshow *ss)
{
return ss->files.num && ss->cur_item < ss->files.num;
}
static void do_transition(void *data, bool to_null)
{
struct slideshow *ss = data;
bool valid = item_valid(ss);
if (valid && ss->use_cut)
obs_transition_set(ss->transition,
ss->files.array[ss->cur_item].source);
else if (valid && !to_null)
obs_transition_start(ss->transition,
OBS_TRANSITION_MODE_AUTO,
ss->tr_speed,
ss->files.array[ss->cur_item].source);
else
obs_transition_start(ss->transition,
OBS_TRANSITION_MODE_AUTO,
ss->tr_speed,
NULL);
}
static void ss_update(void *data, obs_data_t *settings)
{
DARRAY(struct image_file_data) new_files;
@ -193,12 +261,27 @@ static void ss_update(void *data, obs_data_t *settings)
uint32_t cx = 0;
uint32_t cy = 0;
size_t count;
const char *behavior;
const char *mode;
/* ------------------------------------- */
/* get settings data */
da_init(new_files);
behavior = obs_data_get_string(settings, S_BEHAVIOR);
if (astrcmpi(behavior, S_BEHAVIOR_PAUSE_UNPAUSE) == 0)
ss->behavior = BEHAVIOR_PAUSE_UNPAUSE;
else if (astrcmpi(behavior, S_BEHAVIOR_ALWAYS_PLAY) == 0)
ss->behavior = BEHAVIOR_ALWAYS_PLAY;
else /* S_BEHAVIOR_STOP_RESTART */
ss->behavior = BEHAVIOR_STOP_RESTART;
mode = obs_data_get_string(settings, S_MODE);
ss->manual = (astrcmpi(mode, S_MODE_MANUAL) == 0);
tr_name = obs_data_get_string(settings, S_TRANSITION);
if (astrcmpi(tr_name, TR_CUT) == 0)
tr_name = "cut_transition";
@ -210,6 +293,8 @@ static void ss_update(void *data, obs_data_t *settings)
tr_name = "fade_transition";
ss->randomize = obs_data_get_bool(settings, S_RANDOMIZE);
ss->loop = obs_data_get_bool(settings, S_LOOP);
ss->hide = obs_data_get_bool(settings, S_HIDE);
if (!ss->tr_name || strcmp(tr_name, ss->tr_name) != 0)
new_tr = obs_source_create_private(tr_name, NULL, NULL);
@ -347,13 +432,139 @@ static void ss_update(void *data, obs_data_t *settings)
if (new_tr)
obs_source_add_active_child(ss->source, new_tr);
if (ss->files.num)
obs_transition_start(ss->transition, OBS_TRANSITION_MODE_AUTO,
ss->tr_speed,
ss->files.array[ss->cur_item].source);
do_transition(ss, false);
obs_data_array_release(array);
}
static void ss_play_pause(void *data)
{
struct slideshow *ss = data;
ss->paused = !ss->paused;
ss->manual = ss->paused;
}
static void ss_restart(void *data)
{
struct slideshow *ss = data;
ss->elapsed = 0.0f;
ss->cur_item = 0;
obs_transition_set(ss->transition,
ss->files.array[ss->cur_item].source);
ss->stop = false;
ss->paused = false;
}
static void ss_stop(void *data)
{
struct slideshow *ss = data;
ss->elapsed = 0.0f;
ss->cur_item = 0;
do_transition(ss, true);
ss->stop = true;
ss->paused = false;
}
static void ss_next_slide(void *data)
{
struct slideshow *ss = data;
if (!ss->files.num)
return;
if (++ss->cur_item >= ss->files.num)
ss->cur_item = 0;
do_transition(ss, false);
}
static void ss_previous_slide(void *data)
{
struct slideshow *ss = data;
if (!ss->files.num)
return;
if (ss->cur_item == 0)
ss->cur_item = ss->files.num - 1;
else
--ss->cur_item;
do_transition(ss, false);
}
static void play_pause_hotkey(void *data, obs_hotkey_id id,
obs_hotkey_t *hotkey, bool pressed)
{
UNUSED_PARAMETER(id);
UNUSED_PARAMETER(hotkey);
struct slideshow *ss = data;
if (pressed && obs_source_active(ss->source))
ss_play_pause(ss);
}
static void restart_hotkey(void *data, obs_hotkey_id id,
obs_hotkey_t *hotkey, bool pressed)
{
UNUSED_PARAMETER(id);
UNUSED_PARAMETER(hotkey);
struct slideshow *ss = data;
if (pressed && obs_source_active(ss->source))
ss_restart(ss);
}
static void stop_hotkey(void *data, obs_hotkey_id id,
obs_hotkey_t *hotkey, bool pressed)
{
UNUSED_PARAMETER(id);
UNUSED_PARAMETER(hotkey);
struct slideshow *ss = data;
if (pressed && obs_source_active(ss->source))
ss_stop(ss);
}
static void next_slide_hotkey(void *data, obs_hotkey_id id,
obs_hotkey_t *hotkey, bool pressed)
{
UNUSED_PARAMETER(id);
UNUSED_PARAMETER(hotkey);
struct slideshow *ss = data;
if (!ss->manual)
return;
if (pressed && obs_source_active(ss->source))
ss_next_slide(ss);
}
static void previous_slide_hotkey(void *data, obs_hotkey_id id,
obs_hotkey_t *hotkey, bool pressed)
{
UNUSED_PARAMETER(id);
UNUSED_PARAMETER(hotkey);
struct slideshow *ss = data;
if (!ss->manual)
return;
if (pressed && obs_source_active(ss->source))
ss_previous_slide(ss);
}
static void ss_destroy(void *data)
{
struct slideshow *ss = data;
@ -367,8 +578,38 @@ static void ss_destroy(void *data)
static void *ss_create(obs_data_t *settings, obs_source_t *source)
{
struct slideshow *ss = bzalloc(sizeof(*ss));
ss->source = source;
ss->manual = false;
ss->paused = false;
ss->stop = false;
ss->play_pause_hotkey = obs_hotkey_register_source(source,
"SlideShow.PlayPause",
obs_module_text("SlideShow.PlayPause"),
play_pause_hotkey, ss);
ss->restart_hotkey = obs_hotkey_register_source(source,
"SlideShow.Restart",
obs_module_text("SlideShow.Restart"),
restart_hotkey, ss);
ss->stop_hotkey = obs_hotkey_register_source(source,
"SlideShow.Stop",
obs_module_text("SlideShow.Stop"),
stop_hotkey, ss);
ss->prev_hotkey = obs_hotkey_register_source(source,
"SlideShow.NextSlide",
obs_module_text("SlideShow.NextSlide"),
next_slide_hotkey, ss);
ss->prev_hotkey = obs_hotkey_register_source(source,
"SlideShow.PreviousSlide",
obs_module_text("SlideShow.PreviousSlide"),
previous_slide_hotkey, ss);
pthread_mutex_init_value(&ss->mutex);
if (pthread_mutex_init(&ss->mutex, NULL) != 0)
goto error;
@ -403,10 +644,33 @@ static void ss_video_tick(void *data, float seconds)
if (!ss->transition || !ss->slide_time)
return;
if (ss->restart_on_activate && !ss->randomize && ss->use_cut) {
ss->elapsed = 0.0f;
ss->cur_item = 0;
do_transition(ss, false);
ss->restart_on_activate = false;
ss->use_cut = false;
ss->stop = false;
return;
}
if (ss->pause_on_deactivate || ss->manual || ss->stop || ss->paused)
return;
ss->elapsed += seconds;
if (ss->elapsed > ss->slide_time) {
ss->elapsed -= ss->slide_time;
if (!ss->loop && ss->cur_item == ss->files.num - 1) {
if (ss->hide)
do_transition(ss, true);
else
do_transition(ss, false);
return;
}
if (ss->randomize) {
size_t next = ss->cur_item;
if (ss->files.num > 1) {
@ -420,9 +684,7 @@ static void ss_video_tick(void *data, float seconds)
}
if (ss->files.num)
obs_transition_start(ss->transition,
OBS_TRANSITION_MODE_AUTO, ss->tr_speed,
ss->files.array[ss->cur_item].source);
do_transition(ss, false);
}
}
@ -506,6 +768,10 @@ static void ss_defaults(obs_data_t *settings)
obs_data_set_default_int(settings, S_SLIDE_TIME, 8000);
obs_data_set_default_int(settings, S_TR_SPEED, 700);
obs_data_set_default_string(settings, S_CUSTOM_SIZE, T_CUSTOM_SIZE_AUTO);
obs_data_set_default_string(settings, S_BEHAVIOR,
S_BEHAVIOR_ALWAYS_PLAY);
obs_data_set_default_string(settings, S_MODE, S_MODE_AUTO);
obs_data_set_default_bool(settings, S_LOOP, true);
}
static const char *file_filter =
@ -538,6 +804,20 @@ static obs_properties_t *ss_properties(void *data)
/* ----------------- */
p = obs_properties_add_list(ppts, S_BEHAVIOR, T_BEHAVIOR,
OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING);
obs_property_list_add_string(p, T_BEHAVIOR_ALWAYS_PLAY,
S_BEHAVIOR_ALWAYS_PLAY);
obs_property_list_add_string(p, T_BEHAVIOR_STOP_RESTART,
S_BEHAVIOR_STOP_RESTART);
obs_property_list_add_string(p, T_BEHAVIOR_PAUSE_UNPAUSE,
S_BEHAVIOR_PAUSE_UNPAUSE);
p = obs_properties_add_list(ppts, S_MODE, T_MODE,
OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING);
obs_property_list_add_string(p, T_MODE_AUTO, S_MODE_AUTO);
obs_property_list_add_string(p, T_MODE_MANUAL, S_MODE_MANUAL);
p = obs_properties_add_list(ppts, S_TRANSITION, T_TRANSITION,
OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING);
obs_property_list_add_string(p, T_TR_CUT, TR_CUT);
@ -549,6 +829,8 @@ static obs_properties_t *ss_properties(void *data)
50, 3600000, 50);
obs_properties_add_int(ppts, S_TR_SPEED, T_TR_SPEED,
0, 3600000, 50);
obs_properties_add_bool(ppts, S_LOOP, T_LOOP);
obs_properties_add_bool(ppts, S_HIDE, T_HIDE);
obs_properties_add_bool(ppts, S_RANDOMIZE, T_RANDOMIZE);
p = obs_properties_add_list(ppts, S_CUSTOM_SIZE, T_CUSTOM_SIZE,
@ -585,6 +867,26 @@ static obs_properties_t *ss_properties(void *data)
return ppts;
}
static void ss_activate(void *data)
{
struct slideshow *ss = data;
if (ss->behavior == BEHAVIOR_STOP_RESTART) {
ss->restart_on_activate = true;
ss->use_cut = true;
} else if (ss->behavior == BEHAVIOR_PAUSE_UNPAUSE) {
ss->pause_on_deactivate = false;
}
}
static void ss_deactivate(void *data)
{
struct slideshow *ss = data;
if (ss->behavior == BEHAVIOR_PAUSE_UNPAUSE)
ss->pause_on_deactivate = true;
}
struct obs_source_info slideshow_info = {
.id = "slideshow",
.type = OBS_SOURCE_TYPE_INPUT,
@ -595,6 +897,8 @@ struct obs_source_info slideshow_info = {
.create = ss_create,
.destroy = ss_destroy,
.update = ss_update,
.activate = ss_activate,
.deactivate = ss_deactivate,
.video_render = ss_video_render,
.video_tick = ss_video_tick,
.audio_render = ss_audio_render,