Das Programm bietet weiterhin die Möglichkeit programmierbare Diaprojektoren anzusteuern um somit computergesteuerte Diavorträge durchzuführen. Zur Zeit werden unterschiedliche Rollei Diaprojektoren unterstützt: Rolleivision 35 twin digital P und Rolleivision twin MSC 3x0 P.
Diese Diaprojektoren lassen sich mit Hilfe einer seriellen Schnittstelle (RS 232) durch einen Computer ansteuern. Daher ist es möglich einen Diavortrag vollautomatisch ablaufen zu lassen. Der Computer setzt für jedes Dia die Überblend- und Standzeit und sorgt auch für den Diawechsel. Zusätzlich kann man den Diavortrag mit einer Musik unterlegen. Dabei übernimmt der Computer das Abspielen einer oder mehrerer Audio-Dateien (zur Zeit werden WAV- und MP3-Dateien unterstützt).
Das Programm möchte den Anwender bei der Erstellung eines Diavortrages unterstützen, indem es ihm die Anordnung der Dias auf bequeme Weise ermöglicht und ihm hilft, die Diawechsel mit der Musik zu synchronisieren, z.B. einen Diawechsel passend zu einem Rythmuswechsel durchzuführen. Ein Diavortrag kann während der Erstellung auch ohne angeschlossenen Diaprojektor in Echtzeit simuliert werden.
Durch die Möglichkeit der Simulation des Diavortrages, kann das Programm auch dazu verwendet werden, den Diavortrag auf einem angeschlossenen Computer-Monitor oder TV-Bildschirm vorzuführen. Somit ist es möglich, das Programm zur Präsentation von vortragsbegleitenden Grafiken einzusetzen.
Zu dem Diavortrag .
Das Hauptmenü enthält die folgenden Einträge:
In der Toolbar sind einige häufig benötigte Operationen direkt über Icons aufrufbar.
Statuszeile
In der Statuszeile werden Informationen über den aktuellen Zustand des Programms angezeigt. Es gibt drei Anzeige-Bereiche:
Neu | Einen neuen Diavortrag anlegen, die Daten des aktuellen Diavortrags werden gelöscht. |
Öffnen... | Einen Diavortrag aus einer Datei einlesen. |
Öffnen zum Änderen... | Einen Diavortrag aus einer Datei einlesen, ohne jedoch das Skript-Ereignis "Presentation_loaded" auszuführen. |
Speichern | Speichert den aktuell bearbeiteten Diavortrag. |
Speichern als... | Speichert den aktuell bearbeiteten Diavortrag unter einem anderen Namen ab. |
Erzeuge relative Pfade |
Ersetzt alle absoluten Pfade
(z.B. c:\dokumente\bilder\bild.jpg) durch relative Pfade (z.B.
..\bilder\bild.jpg), somit können Diashows einfacher auf dem
Datenträger verschoben werden. |
Importiere XML-Datei... | Importiert einen Diavortrag aus einer XML-Datei. |
Exportieren als XML-Datei... | Exportiert den aktuellen Diavortrag als XML-Datei. |
Importiere dynamische Grafik-Datei... |
Importiert eine extern erstellte Datei mit
dynamischen Grafik-Objekten. |
Exportiere dynamische Grafik-Datei... |
Exportiert die aktuellen dynamischen
Grafik-Objekte in eine Datei, diese kann mit externen Programmen
weiterbearbeitet werden und anschließend wieder importiert werden. |
Exportieren... | NOCH NICHT IMPLEMENTIERT, verwende ein entsprechendes Skript. |
Drucken... | NOCH NICHT IMPLEMENTIERT. |
Zuletzt geöffnete Dateien | Schnellauswahl der zuletzt bearbeiteten Dateien. |
Beenden | Programm beenden. Es erfolgt eine Nachfrage, falls die aktuellen Daten noch nicht gespeichert wurden. |
Rückgängig | NOCH NICHT IMPLEMENTIERT. |
Wiederherstellen | NOCH NICHT IMPLEMENTIERT. |
Ausschneiden | Markierte(s) Dia(s) in die Zwischenablage ablegen und aus den Präsentationsdaten löschen. |
Kopieren | Markierte(s) Dia(s) in die Zwischenablage ablegen. |
Einfügen | Im der Zwischenablage abgelege Dias nach der aktuell markierten Position einfügen. |
Alles auswählen | Alle Dias der Präsentation auswählen (selektieren). |
Finde Text... | Suche einen Text in den Dia-Informationen (Id, Kommentar oder Bild-Datei-Name). |
Finde nächste | Finde das nächste Vorkommen des Such-Textes. |
Dia anhängen | Neues Dia an das Ende der aktuellen Präsentation anfügen. |
Dia hinzufügen | Neues Dia an die aktuelle Position einfügen |
Löschen | Markierte(s) Dia(s) löschen. |
Starte von Auswahl | Starte das Abspielen der aktuellen Diapräsentation ab dem markierten Dia. Vor dem Abspielen wird das das Magazin zur ausgewählten Position transportiert. |
Starte mit Auswahl | Starte das Abspielen der aktuellen Diapräsentation ab dem markierten Dia. Es erfolgt kein Transport des Magazins zur Position, d.h. das Magazin sollte schon vorher manuell positioniert sein. |
Start | Starte das Abspielen der aktuellen Diapräsentation. |
Pause | Pausiere das Abspielen der gerade laufenden Diapräsentation. |
Stop | Stoppe das Abspielen der gerade laufenden Diapräsentation. |
Musik Kommentar hinzufügen | Setze einen Kommentar-Makrierung an die aktuelle Abspielposition. Nur während dem Abspielen verfügbar. |
Graphik-Operation hinzufügen |
Setzt eine Grafik-Operation an die aktuelle
Abspielposition. Nur während dem Abspielen verfügbar. |
Überblendzeit ändern... | Änderung der Test-Überblendzeit durchführen |
Fade in Test | Führt im Play-Info-Dialog einen Überblend-Test mit den beiden aktuell ausgewählten Dias durch. Als Überblendzeit wird die Test-Überblendzeit verwendet. |
Fade out Test | Analog zum Fade in Test, jedoch mit umgekehrter Reihenfolge. |
Konfiguration... | Anzeige eines modalen Dialoges um Einstellungen für das Programm zu ändern: COM-Port Einstellungen, Simulation- und Skriptmodus). |
Player-Einstellungen... |
Einstellungen für den mp3-Player vornehmen
(nur unter Linux) |
Logging... | Anzeige eines Dialoges um Protokoll-Ausgaben anzuzeigen, Ausgaben können im Konfigurations-Dialog ausgeschaltet weden. |
Projektor kontrollieren... | Anzeige eines Dialoges zur manuellen Kontrolle des Diaprojektors. |
Präsentationsdaten... | Anzeige eines modalen Dialoges zur Eingabe eines Kommentars zur aktuellen Präsentation. |
Präsentationsereignisse... | Anzeige eines modalen Dialoges zur Eingabe von Skripten zu entsprechenden Ereignissen. |
Musik Daten... | Anzeige eines modalen Dialoges zur Eingabe der
Musik-Stücke und Abspiel-Positionen. Hier können Wav-Dateien
eingegeben werden, die während der Präsentation abgespielt
werden sollen. Zu jeder Wav-Datei können Start- und Stop-, sowie
Ein- und Ausblend-Zeitpunkte angegeben werden. ACHTUNG: dieser Dialog ist noch nicht ganz ausgereift! --> verwende Drag & Drop stattdessen! |
Kommentare zur Musik... | Anzeige eines modalen Dialoges in dem die Musik-Kommentare
modifiziert werden können. ACHTUNG: dieser Dialog ist noch nicht ganz ausgereift! |
Kommentare zu den Dias... | Anzeige eines modalen Dialoges in dem Kommentare zu
Dia-Bereichen modifiziert werden können (z.B. Intro, Kapitel 1,
Finale, etc.). Diese Kommentare sind als Hilfe bei der Erstellung von
'Drehbüchern' gedacht. ACHTUNG: dieser Dialog ist noch nicht ganz ausgereift! |
Ändere Eintrag... | Anzeige eines Dialoges zum modifizieren der Daten des gerade ausgewählten Dias, in diesem Dialog können z.B. Stand- und Überblendzeit, sowie Kommentar-Text des Dias geändert werden. |
Abspiel Status... | Anzeige eines Dialoges in dem das Bild des gerade aktivierte Dias angezeigt wird. Dieser Dialog ist für die Beurteilung der Präsentation im Simulations-Modus nützlich. |
Modifiziere Python Skripte... | Öffnet einen Dialog, in dem Skripte geladen, modifiziert, gespeichert und ausgeführt werden können. |
Python Skripte ausführen | Schnellstart der im "scripts" Verzeichnis verfügbaren Skripte. |
Hilfe | Anzeige der Hilfe für das Programm. |
Über... | Informationen über das Programm anzeigen. |
Präsentationsdaten-Dialog, modal
Präsentationsereignisse-Dialog, modal
Musik-Kommentare-Dialog, modal
Dia-Kommentare-Dialog, modal
Dynamische Grafik-Operationen-Dialog,
modal
In diesem Dialog können Eigenschaften der dynamischen Texte
geändert weden (Farbe, Zeichensatz, Zeichensatzgröße).
Diese Dialog kann über das Kontext-Menü der
Zeitleisten-Ansicht geöffnet werden oder durch das anclicken eines
dynamischen Textes mit der linken Maustaste bei gleichzeitig
gedrückter Shift-Taste.
Dieser Dialog repräsentiert eine virtuelle Leinwand. In diesem
Dialog wird das gerade aktuelle oder selektierte Bild angezeigt, falls
ein solches vorhanden ist. Hier können auch die
Überblend-Effekte ausgetestet werden (Menüpunkt: "Abspielen /
Fade in/out").
Über das Kontext-Menü der Bildanzeige (aktivierbar über
die rechte Maustaste) kann der Dialog auf Vollbildschirm Modus
umgeschaltet werden. In diesem Modus nimmt der Dialog die gesamte
Bildschirmgröße ein, dies ist z.B. für die
Präsentation von Diavorträgen mit digitalen Projektoren
nützlich. Weiter kann im Kontext-Menü die gerade laufende
Überblendung unterbrochen und fortgesetzt werden und das aktuelle
Bild gespeichert werden.
Am unteren Ende des Dialoges kann man den Skalierungs-Modus für
die Bilder einstellen. Folgende Modi stehen zur Verfügung:
Suchen-Dialog, modal
Über-Dialog, modal
Hier wird Information über die Anwendung angezeigt. Es gibt mehrere Kategorien:
In diesem Dialog wird die Online-Hilfe für die Anwendung angezeigt. Es besteht die Möglichkeit über die Navigations-Knöpfe am unteren Ende des Dialogs innerhalb der Hilfe zu navigieren.
Hier können Skripte eingegeben, verändert, importiert, exportiert und getestet werden. Die von der Applikation zur Verfügung gestellten Skript-Befehle sind in dem Abschnitt Skript-Funktionen zusammengefasst. Im unteren Bereich des Dialoges befindet sich ein Ausgabe-Bereich, hier werden alle Texte angezeigt, die mit der Funktion mindiapy.PrintLn( string ) ausgegeben werden.
Das Programm MinDia wurde von Michael Neuroth geschrieben und steht unter der GPL.
Bei der Erstellung einiger Teile des Programms wurden Quelltexte und Bibliotheken aus anderen Quellen verwendet, siehe dazu den Abschnitt Beiträge.
ACHTUNG:
Die Verwendung des Programms erfolgt auf eigene Gefahr. Der Autor
übernimmt keinerlei Gewährleistung für dieses Programm.
WARNUNG:
Das Programm kann über die serielle Schnittstelle (RS232)
Dia-Projektoren vom Typ Rolleivision 35
twin digital P und Rolleivision
twin MSC 3x0 P ansteuern. Die Nutzung dieser
Funktionalität erfolgt auf eigene Gefahr. Bei
unsachgemäßer Verwendung dieser Ansteuer-Möglichkeit des
Projektors kann der Dia-Projektor beschädigt werden. Der Autor
übernimmt übernimmt keine Gewährleistung für
die korrekte Funktion dieser Ansteuerung.
Da Autoren von Programmen immer gerne über die Nützlichkeit ihrer geschriebenen Programmes für andere User informiert sein möchten, bittet der Autor um Erfahrungsberichte beim Einsatz des Programms (positive wie negative), Fehlermeldungen, Verbesserungsvorschläge und Quellcode (für Plugin-Module, Bugfixes, Ergänzungen, etc.). Jede Rückmeldung ist sehr willkommen.
Der Autor ist auch gerne bereit, bei der Erstellung von weiteren Plugin-Modulen (für weitere Skript-Sprachen) und für die Ansteuerung von anderen Dia-Projektoren, Unterstützung zu leisten.
Zur Zeit läuft MinDia auf den folgenden Plattformen:
Schlüssel-Text=Werte-Text
ACHTUNG: zwischen dem Zuweisungs-Zeichen (=) und dem
Schlüssel-Text und dem Werte-Text darf kein Leerzeichen stehen,
ansonsten wird der Schlüssel nicht erkannt.
Die Ini-Datei wird unter Linux im User-Home Verzeichnis
(~/.mindia.ini) und unter Windows in dem Verzeichnis, das unter dem
Registry-Eintrag "HKEY_CURRENT_USER.Software.mindia.inifile" eingetragen
ist, gespeichert. Falls unter Windows das Setup.exe Programm zur
Installation verwendet wird, ist dies in der Regel das Verzichnis
c:\programme\mindia.
Die folgende Einträge werden zur Zeit unterstützt:
Schlüssel | Mögliche Werte |
---|---|
com.port_no | 1,2,3,4 |
com.baudrate | 110, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 |
com.parity_mode | none (keine), even (gerade), odd (ungerade) |
com.stopbits | 1, 1.5, 2 |
com.databits | 6,7,8 |
com.flow | 0 (keine), 1 (XON/XOFF), 2 (Hardware) |
com.logging | 0, 1 |
script_events.enabled | 0, 1 |
config.logging |
0, 1 |
config.projector_id |
1=Digital Twin P; 2=MSC 3x0 P |
config.scriptEvents |
0, 1 |
config.simulation |
0, 1 |
datafile.? | Dateiname |
Neben der Verwendung von Skripten als Makros, können auch Skripte für verschiedene Ereignisse angegeben werden, siehe dazu den Abschnitt Skript-Ereignisse.
Weiter kann zu jedem Dia ein Skript angegeben werden, dieses wird an
zwei Stellen während des Abspielens eines Diavortrages aufgerufen.
Zum einen zum Beginn des Überblendens (Variable bDissolve besitzt
den Wert 1) und zum anderen wenn das Überblenden beendet ist
(Variable bDissolve besitzt den Wert 0). Dies kann z.B. zur Anzeige von
Texten und Bildunterschriften eingesetzt werden.
Über die Plugin-Schnittstelle können verschieden Skript-Sprachen eingebunden werden. Die Funktionalität des Programms wird dann über verschiedene Funktionen, bzw. Objekt-Methoden zur Verfügung gestellt. Die Anbindung der verschiedenen Skript-Sprachen erfolgt über SWIG.
Zur Zeit unterstützt MinDia die Skript-Sprache Python.
Folgende Funktionen stehen in dem Modul mindiapy zur Verfügung:
# Ausgabe eines Strings auf ein Ausgabe-Fenster
mindiapy.PrintLn( "Ausgabetext" )
# Anzeige einer modalen Messagebox
# Rueckgabewerte: -1 == Undefined, 0 == Ok, 1 == Cancel
iRet = mindiapy.DoMessageBox( "Meldungstext", "Titel-Text" )
# Zugriff auf das Dia-Praesentations-Objekt
aDiaPresentation = mindiapy.GetDiaPresentation()
# Suspendierung des aktuellen Threads fuer einige ms (hier 100 ms)
mindiapy.SleepMS( 100 )
# Konvertiert einen RGB Farbwert in einen HSV Farbwert
aHSV = mindiapy.RgbToHsv( aRGB )
# Konvertiert einen HSV Farbwert in einen RGB Farbwert
aRGB = mindiapy.HsvToRgb( aHSV )
Das Objekt-Modell besteht aus den folgenden Klassen:
##############################################################
class IDiaPresentation:
bool IsChanged():
string GetDocName():
string GetDescription():
int GetDiaCount():
IDia GetDia( int iIndex ):
IDia AddNewDia():
int GetSoundFileCount():
string GetSoundFileNameAt( int iIndex ):
bool SetSoundFileNameAt( int iIndex, string sFileName ):
IDiaOutputWindow GetOutputWindow():
bool LoadPresentation( string sFileName ):
bool SavePresentation():
bool SavePresentationAs( string sFileName ):
bool GotoPosition( int iPosition ):
bool PlayFrom( int iFromDiaNo ):
bool Play():
bool Stop():
bool Pause():
bool Continue():
bool IsPlayModus():
bool IsPauseModus():
bool IsEditModus():
string GetPlayModusStrg():
bool IsSimulation():
void SetSimulation( bool bSimulation ):
##############################################################
class IDia
double GetTotalTime():
double GetShowTime():
bool SetShowTime( double dVal ):
double GetDissolveTime():
bool SetDissolveTime( double dVal ):
string GetId() const:
bool SetId( string sId ):
string GetComment():
bool SetComment( string sComment ):
string GetImageFile():
bool SetImageFile( string sFileName ):
string GetScript():
bool SetScript( string sScript ):
bool GetHorizontalFormat():
bool SetHorizontalFormat( bool bHorizontal ):
##############################################################
class IDiaOutputWindow
bool IsValid():
bool Show():
bool Hide():
bool Maximize():
bool Restore():
int GetWidth():
int GetHeight():
bool SetSize( int iWidth, iHeight ):
bool SetPos( int x, int y ):
int GetDrawWidth():
int GetDrawHeight():
bool Clear():
bool SetColor( int iRed, int iGreen, int iBlue ):
bool SetFont( string sFontName ):
bool SetFontSize( int iSizeInPixel, bool bBold, bool bItalic ):
int SetTextXY( int x, int y, string sText ):
int GetTextCount():
bool MoveText( int iTextID, int x, int y ):
int GetTextX( int iTextID ):
int GetTextY( int iTextID ):
int GetTextWidth( int iTextID ):
int GetTextHeight( int iTextID ):
bool SetTextColor( int iTextID, int iRed, int iGreen, int iBlue ):
bool DeleteText( int iTextID ):
##############################################################
class IColor
int iRed
int iGreen
int iBlue
##############################################################
class IHsv
int iHue
int iSaturation
int iValue
Bemerkung:
Zur Erzeugung eines neuen Dia-Objektes nur die Methode AddNewDia an dem
IDiaPresentation Objekt verwenden. Niemals den in Python eingebauten
new-Operator nutzen!
# script example for a slide-script
# the variable bDissolve will be set
# from the MinDia-Application
import mindiapy
aPres = mindiapy.GetDiaPresentation()
aWin = aPres.GetOutputWindow()
def Dissolve():
aWin.SetFontSize( 30 )
aWin.SetTextXY( 10, 10, "Fade In" )
def Show():
aWin.Clear()
aWin.SetFontSize( 30 )
aWin.SetTextXY( 30, 50, "Show" )
if bDissolve==1:
Dissolve()
else:
Show()
Ereignis | Bemerkung |
---|---|
Presentation_Started | Die Präsentation soll gestartet werden. Dieses Ereignis wird unmittelbar vor dem Starten des Abspielens erzeugt, d.h. die Präsentation wurde noch nicht gestartet. |
Presentation_Stoped | Die Präsentation wurde gestoppt. Dieses Ereignis wird unmittelbar nach dem Stoppen des Abspielens erzeugt, d.h. die Präsentation wurde schon gestoppt. |
Presentation_Paused | Die Präsentation wird unterbrochen. |
Presentation_Saved | Die Präsentation wurde gespeichert. Dieses Ereigniss wird unmittelbar nach dem Speichern erzeugt, d.h. die Präsenation wurde schon gespeichert. |
Presentation_Loaded | Eine neue Präsentation wurde eingelesen. Dieses Ereigniss wird unmittelbar nach dem Einlesen erzeugt, d.h. die Präsenation wurde schon eingelesen. |
Aus folgenden Projekten oder Quellen wurden Dateien, bzw. Funktionalität verwendet, oder sie sind nützlich für die Erstellung von Dia-Show's:
Zu weiteren Informationen über SWIG siehe www.swig.org.