The program MinDia can be used to perform multimedia slide presentations on the computer. It is possible to dissolve images, display texts in the images and play music while the slide presentation/show is running.
The program can also control programable slide-projectors, this makes it possible to perform computer controled slide presentations. At this moment some Rollei slide projectors are supported:.Rolleivision 35 twin digital P and Rolleivision twin MSC 3x0 P.
These slide projectors can be controled by a computer via a serial interface (RS 232). So it is possible to run an full automated slide show. The computer sets the dissolve- and show-time for every slide and performs also the slide change. In addition the slide presentation can be accompanied with music. Thereby the computer plays one or more audio files (at the moment WAV- and MP3-files are supported).
The program supports the user by the creation of a slide show, by allowing a comfortable arrangement of the slides and giving him an easy way to synchronize the change of slides with the music, i. e. to perform a slide change fitting to a rythmchange in the music. A slide show can be simulated in real time while editing the presentation, there need no slide projector be connected to the computer.
Because of the feature of the simulation of a slide show, the program can be used to show the slide presentation on a connected computer monitor or TV screen. Thereby it is possible to use the program for the presentation of figures in a talk.
To the slideshow.
The important features of the program are:
A slide show consists of the following elements:
For the arrangement of the slides the Pult-view is used and for the synchronization of the slide change with the music the timeline-view is used.
The main window of the program MinDia contains many different areas: the menubar, the toolbar, a statusbar (at the bottom of the window) and the workingarea. The workingarea contains two different subareas: the slide-pult-view and the timeline-view.
All functions of the programm can be accessed via the menubar.
Nearly all menu items have a accelerator-key, because of a fast and
comfortable usage of the programm (Example: Ctrl+O to open a
presentation file).
The mainmenu contains the following entries:
Toolbar
The toolbar contains some icons for frequently used functions.
Statusbar
In the statusbar informations about the actual staus of the programm will be shown. There are three areas:
Workingarea
In this area the slides
can be inserted and aranged.
A new slide will allways be inserted at the end of the actual
presenation.
The modification of the slide sequence can be done with the clipboard:
first the slide has to be selected (click on the slide with the mouse
pointer), than the slide can be cut into the clipboard, after that the
slide should be selected where the slide in the clipboard should be
inserted, finally paste the slide in the clipoard into the presenation.
It is possible to select more than one slide at a time, this can be
achieved by pressing the 'Shift' button while selecting the slides.
It is also possible to drop down image files on this area
(Drag&Drop). Drag&Drop works also for slides inside the
slide-desk-view.
In this area the
dissolve- and showtimes of the slides will be shown.
Additional the dissolvetime and showtime of the slides can be changed
with a mouse-move:
As soon as the mouse pointer is over an end of a slide, the shape of
the mouse pointer changes. By pressing the left mouse button and
simultaneously moving the mouse pointer horizontally the showtime of the
slide can be changed.
The same can be done with the dissolvetime, by moving the mouse pointer
over the end of the dissolve ramp.
Additional the music files (at the moment WAV and MP3 are supported)
can be added by dropping them on this area (Drag&Drop), the new
music file will be inserted as the last track.
Texts can also be added by dropping them in the area of the dynamic
graphic operations (Drag&Drop), the text will be insterted as a
dynamical text. This dynamical text can be modified in a dialog by
clicking with the left mouse button on the text and simultaneously
pressing the shift button or by using the context menu.
New |
Create a new presentation, all data of the actual presentation wil be deleted. |
Open... |
Read a presentation from a file. |
Open for edit... |
Read a presentation from a file, but don't execute the script event "Presentation_loaded". |
Save |
Save the actual presentation into a file. |
Save as... |
Save the actual presentation into a file with another name. |
Make relative paths | Replaces all absoulte paths (i.e. c:\document\images\image.jpg) with relative paths (i.e. ..\images\image.jpg). Presentations with relative paths can be moved easyly to other positions. |
Import XML... |
Import a presentation from a XML file. |
Export XMK... |
Export the actuall presentation as a XML file. |
Import dyn. graphics... |
Import an external generated file with dynamical graphic operations/objects. |
Export dyn. graphics... |
Export the actuall dynamical graphic operations/objects in a file, this file can be modified with external programs and re-imported into the MinDia program. |
Export... |
NOT IMPLEMENTED YET, use a script for that operation. |
Print... |
NOT IMPLEMENTED YET. |
Last files |
Fast selection of the last opend files. |
Exit |
Program exit. If there are some modified presentation data a messagebox will be shown to confirm the operation. |
Un |
NOT IMPLEMENTED YET. |
Redo |
NOT IMPLEMENTED YET. |
Cut |
Copy the selected slides into the clipboard and remove the slides from the presentation. |
Copy |
Copy the selected slides into the clipboard. |
Paste |
Inserts the slides in the clipboard at the actual selected position into the presentation. |
Select all |
Select all slides of the presentation. |
Find... |
Search for a text in the dia information data (Id, comment or image file name). |
Find next |
Search for the next occurence of the search text. |
Append dia |
Append a new slide at the end of the actual presentation. |
Add dia |
Add a new slide at the acutal position. |
Delete |
Delete the selected slides. |
Start from selected |
Start the actual presentation with the
selected slide. Before the presentations starts to play, the slide
magazin will be transported to the selected position. |
Start at selected |
Start the actual presentation with the selected slide. There will be no transport of the slide magazin, this means you should position the slide magazin manually. |
Start |
Starts the presentation. |
Pause |
Pause the running presentation. |
Stop |
Stops the running presentation. |
Add sound comment |
Sets a sound comment mark at the actual play position. Only available while the presentation is playing. |
Add graphic operation |
Sets a graphic operation at the actual play position. Only available while the presenation is playing. |
Dissolve time... |
Changes the dissolvetime for testing. |
Fade in test |
Runs in the Play-Info-Dialog a dissolve test with the two selected slides. The dissolvetime is the actual test dissolvetime. |
Fade out test |
Like the "Fade in test", but the other way arround. |
Configuration... |
Shows a modal dialog to change the settings of the programm: COM port settings, Simulation- and Scriptmodus). |
Player Configuration... |
Settings for the mp3-player (only under Linux). |
Logging... |
Shows a dialog to trace the logging output, the logging output can be switched of in the Configuration Dialog. |
Projector control... |
Shows a dialog to manually control the projector. |
Presentation data... |
Shows a modal dialog to enter a comment for the acutal presentation. |
Presentation events... |
Shows a modal dialog to enter scripts for script events. |
Sound data... |
Shows a modal dialog to enter information
about music tracks and play positions. Here the sound files (WAV or MP3)
and the play positions (start and stop) can be given. |
Sound comments... |
Shows a modal dialog to enter sound comments. |
Plot comments... |
Shows a modal dialog to enter comments for
areas in the slide show (i.e. intro, chapter one, file, etc.). This
comments can be usefull for the creation of presentation scripts. |
Modify item... |
Shows a dialog to modify data of the
selected slide. In this Dialog the showtime, dissolvetime and comments
of a slide can be changed. |
Play infos... |
Show a dialog in which the image of actual
slide will be shown. This is the 'virtual movie screen'. This dialog is
very usefull for the simulation modus of a presenation. |
Modify Python scripts... |
Opens a dialog in which scripts can be opend, changed, saved and executed. |
Run Python scripts |
Fast execute of scripts which are in the "scripts" directory. |
Help |
Show the help for this program. |
About... |
Show informations about the program. |
Configuration-Dialog (configuration of the serial port RS232), modal
Presentationdata-Dialog, modal
Presentationevents-Dialog, modal
Dia-Comment-Dialog, modal
Dynamical Graphic Operations-Dialog, modal
Dialog to change properties of the dynamic texts (color, font,
fontsize).
This dialog can be opend with the context menu in the timeline view or
by clicking on a dynamical text with the left mouse button and
simultaneously pressing the Shift button.
This dialog has the function of a virtual screen. In this dialog the
actual or selected image (if available) will be shown and the fade-in or
fade-out effect can be tested (Menuitem: "Play/Fade in/out").
With the context menu of the image view (the context menu can be
activated by pressing the right mouse button) the dialog can be switched
to a full screen modus. In this modus the dialog fills the whole
screen, this is usefull for presentations of slide shows with digital
projectors. Further functions accessed by the context menu are pausing
and continuing of the running dissolving effect and saving the actual
image into a file.
At the bottom of the dialog the scale modus for images can be changed.
The following modi are available:
There are some keyboard inputs possible (if the
dialog owns the input focus, that means is activated) which are
shortcuts for context menu items:
Search-Dialog, modal
About-Dialog, modal
In this dialog some informations about the application will be
shown. There are different categories:
Hier wird Information über die Anwendung angezeigt. Es gibt
mehrere Kategorien:
Help-Dialog, sometimes modal
In this dialog the online help (this file !) of the application will
be shown. It is possible to navigate in the help using the navigation
buttons at the bottom of the dialog.
With this dialog it is possible to enter, change, import, export and test scripts. The available script commands are documented in the section script-functions. The output area in the lower area of the dialog is used to show the output of scripts. Output can be gererated with the function mindiapy.PrintLn( string ).
MinDia (c) by Michael Neuroth, 2001-2004.
The program MinDia is written by Michael Neuroth and released under the GPL.
For some parts of the program other source code and libraries from other sources are used, for more information have a look in the section contributions.
ATTENTION:
Use this program at your own risk. The author does not take any
guaranty for this program.
WARNING:
The program can be used to control the slide projectors of the type Rolleivision 35 twin digital P andRolleivision twin MSC 3x0 P via
the serial com port (RS232). Use this functionality at your own risk.
By using this functioniality in a wrong way it is possible to damage
your projector. The author does not take any guaranty for a correct
working projector control.
The homepage of MinDia is available under
this link mindia.sourceforge.net zu. The author can be reached under
this e-mail address mindia@users.sourceforge.net. The project
page on sourceforge holds other usefull information about the
project. There is a user
forum and a bug
tracker available at sourceforge.
It is allways nice for authors of open projects to
have some feedback about the program. Any kind of feedback is welcome: user reports, bugs, bugfixes,
feature-requests, nice post cards, ...
MinDia uses the Qt-Framework. It
requires at least Qt 2.3.0. The program works also with Qt 3.x.y.
To use the (optional) script feature, the script language Python has to
be installed.
Currently MinDia runs on the following plattforms:
The following commandline parameters are available:
In the ini file (.mindia.ini) some
configuration parameters can be set, these values overwrite the default
values. The values can also be changed with the configuration dialog. The format of
the ini file entries allways like this:
Key-Text=Value-Text
ATTENTION: between the assign character (=) and the key-text and the value-text is no space character allowed, otherwise the key will not be recognized.
The ini file can be found under Linux in the user-home directory (~/.mindia.ini) and under Windows in the directory, which is given in the registry entry "HKEY_CURRENT_USER.Software.mindia.inifile". If you use the setup program this will be something like c:\programs\mindia.
These ini file key's are valid:
Key |
Values |
---|---|
com.port_no | 1,2,3,4 |
com.baudrate | 110, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 |
com.parity_mode | none, even, odd |
com.stopbits | 1, 1.5, 2 |
com.databits | 6,7,8 |
com.flow | 0 (none), 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.? | filename |
By using scripts the functionality of the program can be extended. With scripts the import and export of the presentation data can be archieved. Check functions can be realized (i.e. to check if the show times for the slides fulfill the technical spezifications of the slide projector, see verifyshow.py) and scale operations can be executed (see _settime.py).
Beside the usage as macros, scripts could also be
used for events, for that topic see the section script events.
Additional it is possible to assign to every slide
a script, this script will be executed at two times in the play modus
of the presentaion. The first execution is performed at the begin of
the dissolve phase (variable bDissolve has the value 1) and the second
execution is performed when the dissolve phase is finished (variable
bDissolve has the value 0). This can be used to show texts..
The following functions are available in the module mindiapy:
# Output of a string in a output window
mindiapy.PrintLn( "outputtext" )
# Show a modal messagebox
# return values are: -1 == Undefined, 0 == Ok, 1 == Cancel
iRet = mindiapy.DoMessageBox( "Message text", "Title-Text" )
# Access of the presentation object
aDiaPresentation = mindiapy.GetDiaPresentation()
# suspend the actual thread for some ms
mindiapy.SleepMS( 100 )
# convert a RGB color value in a HSV color value
aHSV = mindiapy.RgbToHsv( aRGB )
# convert a HSV color value in a RGB color value
aRGB = mindiapy.HsvToRgb( aHSV )
The Object-Model consists of these classes:
The (schematical) definitions of the classes have
the form:
##############################################################
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
Remark:
To create a new slide object only the method AddNewDia in the
IDiaPresentation object should be used. Never use the Python new
operator!
# 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()
In a presenation is it possible to define different script events. These script events will be executed, if the event occures. The following events are available:
Ereignis |
Bemerkung |
Presentation_Started |
The presentation should be started. This
event will be created immediately before the start of the presentation,
this means that the presentation is not started. |
Presentation_Stoped |
The presentation was stoped. This event will be created immediately after the stop of the presentation, this means that the presentation has stoped allready. |
Presentation_Paused |
The presentation was paused. |
Presentation_Saved |
The presentation was saved. This event will be created immediately after the presentation was saved. |
Presentation_Loaded |
A new presenation was loaded. This event will be created immediately after the presentation was read, this means the data of the presentation is allready loaded. |
TODO !
The graphical user interface of the program MinDia was implemented with the Qt-Framework of Trolltech.
The project uses parts (files or functions) from the following projects or they are usefull to create a slide show:
Further information about the well known programming language are available under http://www.python.org/ and http://www.pythonlabs.com/.
A program package to create dynamic loadable modules for script languages out of C/C++ functions. SWIG supports a lot of different scripting languages, like Python, Perl and Tcl.
For further informations about SWIG see http://www.swig.org/.