maybe somebody will test it before posting it in the bug section.
Here´s the
Code: Select all
Global screen_x.l
Global screen_y.l
Procedure getFileNames(ActPfad$)
NewList FileList.s()
Ergebnis = ExamineDirectory(0, ActPfad$, "*")
Repeat
DirFlag = NextDirectoryEntry()
If DirFlag = 1
DateiName$ = DirectoryEntryName()
Endung$ = GetExtensionPart(DateiName$)
;MessageRequester("Endung$",Endung$,0)
If Endung$ = "bmp" Or Endung$ = "jpg" Or Endung$ = "jpeg" Or Endung$ = "tif" Or Endung$ = "tga" Or Endung$ = "png"Or Endung$ = "JPG" Or Endung$ = "JPEG" Or Endung$ = "TIF" Or Endung$ = "TGA" Or Endung$ = "PNG"
DateiName$ = ActPfad$ + DateiName$
;MessageRequester("DateiName$",DateiName$,0)
AddElement(FileList())
FileList()=DateiName$
EndIf
EndIf
Until DirFlag = 0
ResetList(FileList())
EndProcedure
Procedure showPict(FileName$)
If LoadImage(0, FileName$)
PictW=ImageWidth()
PictH=ImageHeight()
If PictW > screen_x
PictH = PictH * screen_x / PictW
PictW = screen_x
EndIf
If PictH > screen_y
PictW = PictW * screen_y / PictH
PictH = screen_y
EndIf
PictX = (screen_x - PictW) / 2
PictY = (screen_y - PictH) / 2
ResizeImage(0, PictW, PictH)
ClearScreen(0,0,0)
StartDrawing(ScreenOutput())
DrawImage(UseImage(0), PictX, PictY)
StopDrawing()
FlipBuffers()
ProcedureReturn = #true
Else
MessageRequester("Fehler!",FileName$ + " konnte nicht geöffnet werden.",0)
ProcedureReturn = #false
EndIf
EndProcedure
Procedure.s ProgNam()
ProgPath$ = Space(250)
GetModuleFileName_(0,@ProgPath$,250)
ProcedureReturn ProgPath$
EndProcedure
Pause.b
UseJPEGImageDecoder()
UseTGAImageDecoder()
UsePNGImageDecoder()
UseTIFFImageDecoder()
screen_x = GetSystemMetrics_(#SM_CXSCREEN)
screen_y = GetSystemMetrics_(#SM_CYSCREEN)
Pfad$ = GetPathPart(ProgNam());####################
;Pfad$ = "F:\";#####################################
;F: is my CD-Drive. Same problem as with GetPathPart()
getFileNames(Pfad$)
Ergebnis = InitSprite()
If OpenScreen(screen_x, screen_y, 32, "Dia Show")
InitKeyboard()
InitMouse()
ExamineKeyboard()
ExamineMouse()
While NextElement(FileList()) And KeyboardPushed(#PB_Key_Escape) = 0
ExamineKeyboard()
ExamineMouse()
i=0
links=0
rechts=0
Pause = 0
If showPict(FileList())
Repeat
ExamineKeyboard()
ExamineMouse()
Delay(20)
If Pause <> 1
i=i+1
EndIf
If MouseButton(1) Or KeyboardPushed(#PB_Key_Left)
links = 1
EndIf
If MouseButton(2) Or KeyboardPushed(#PB_Key_Right)
rechts = 1
EndIf
If MouseButton(3) Or KeyboardPushed(#PB_Key_Space)
Pause = Pause ! 1
EndIf
Until rechts Or links Or KeyboardPushed(#PB_Key_Escape) Or i > 250
Delay(200)
FreeImage(0)
EndIf
If links
PreviousElement(FileList())
PreviousElement(FileList())
EndIf
Wend
CloseScreen()
EndIf
End
As written - started from HD it shows even jpg´s from CD.
Started from CD it crashes with jpg´s but not with tif´s.
Arrow/mouse right = next pict
ESC = quit
If somebody want´s to do the work an start a burning session ...
PS.: I´m using PureBasic 3.72 on WinXP. The CD is burned with multi session (15 sessions now

)