Forum

Please note that you can subscribe to the individual forums. A subscription for news only covers the news.

Notifications
Clear all

Has anyone found a way of launching a slide show in the program?  

   RSS

0

I'm trying to find a way of having a slide show launched that would randomly display a set folder of pictures for a set amount of time and then be removed. Any suggestions? 

10 Answers
0

I came up with this- However, is there a way of making is so that the pictures don't cascade and will show up in the same spot?

 

[report-SLIDE SHOW]
removeflag=timerdone
procedure=slideshow

[procedure-slideshow]
procedure=startslideshow

[procedure-startslideshow]
select=all
procedure=settimer
procedure=setflagss
procedure=chosess

[procedure-settimer]
setflag=time25sec

[flag-time25sec]
mintime=00:00:25
mintimeprocedure=timerdone

[procedure-timerdone]
setflag=timerdone
message=timerdone

[procedure-setflagss]
setflag=slideshow

[flag-slideshow]
mintime=00:00:01
mintimeprocedure=removeslide

[procedure-chosess]
select=random
showpicture=1.jpg
showpicture=2.jpg
showpicture=3.jpg
showpicture=4.jpg
showpicture=5.jpg
showpicture=6.jpg
notif=timerdone

[procedure-removeslide]
select=all
procedure=removeslide2
procedure=startslideshow

[procedure-removeslide2]
removeflag=slideshow
removepicture=1.jpg
removepicture=2.jpg
removepicture=3.jpg
removepicture=4.jpg
removepicture=5.jpg
removepicture=6.jpg

0

The show seems not to stop.

 

   [procedure-startslideshow]

   select=all

   procedure=settimer

   procedure=setflagss

   procedure=chosess

 

Procedure SetTimer sets flag time25sec which expires to set flag TimerDone, which should stop the show.

Procedure Chosess selects picture to show, (blocked if TimerDone).

Procedure SetFlagss sets flag slideshow, which expires to call up RemoveSlide.

Procedure RemoveSlide calls up StartSlideShow (this procedure), which I believe is resetting flag time25sec and meaning the show goes on forever. You could move Procedure=SetTimer out of this procedure and into SlideShow.

I’m not sure how it’s bypassing the built-in feature that prevents loops.

I’m also uncertain of how Mintime works with flags. I’d set up flag timer25sec with ‘Duration’ and ‘ExpireProcedure’ rather than mintime and mintimeprocedure. Still looking into the applications for Mintime...

As to the question of controlling where pictures appear on the screen, I’d like an answer to that myself.

0

Just a few comments.

You cannot reuse the picture window to the next picture. But you can close it before you show the next picture.

The difference between duration and mintime in flags is:

When the duration has passed, the flag is removed and the ExpireProcedure is called, if any. If the flag is removed before the duration is up, nothing happens.

When mintime has been passed, the MinTimeProcedure is called, if any, but the flag remains. If the flag is removed before mintime is up, the sub is punished, if a QuickPenalty is defined.

Sven

 

0

I get it. Thanks. I hadn't imagined that the two procedures could be used with flags.

[Flag-Test]
Mintime=00:00:10
MinTimeProcedure=Good2Go
QuickProcedure=Too Soon

The slideshow script idea has helped me out. Thanks Chazz. In the interests of avoiding the anti-loop feature I had some long scripts of procedure followed by flag for pause which expires to call the next procedure etc: 24 clouts with the frying pan would involve 24 procedures. But it seems there's no loop avoidance when a flag separates the first and second procedures. If you follow.

 

 

0

Thank you both for your help. Sven, when I change from mintime and mintimeprocedure to duration and expireprocedure it still does not turn off the settimer flag at the desired interval allowing the program to continue. Any thoughts?

 

procedure=slideshow

[procedure-slideshow]
procedure=startslideshow

[procedure-startslideshow]
select=all
procedure=settimer
procedure=setflagss
procedure=chosess

[procedure-settimer]
setflag=settimer

[flag-settimer]
duration=00:00:10
expireprocedure=timerdone

[procedure-timerdone]
message=timerdone

[procedure-setflagss]
setflag=slideshow

[flag-slideshow]
duration=00:00:02
expireprocedure=removeslide

[procedure-chosess]
select=random
showpicture=1.jpg
showpicture=2.jpg
showpicture=3.jpg
showpicture=4.jpg
showpicture=5.jpg
showpicture=6.jpg
if=settimer

[procedure-removeslide]
select=all
procedure=removeslide2
procedure=startslideshow

[procedure-removeslide2]
removeflag=slideshow
removepicture=1.jpg
removepicture=2.jpg
removepicture=3.jpg
removepicture=4.jpg
removepicture=5.jpg
removepicture=6.jpg

 

 

 

0

@simon-cagey: Yes, loop avoidance only happens when a procedure is called more than once from the same action. The expiration of a flag is a separate action.

@chazz: I am quite busy at the moment, and I don't have the energy to debug other peoples scripts. Sorry.

Sven

0

I completely understand Sven. Thanks. I just wanted to make certain it wasn't a bug.

0

It still seems the timer is reset on each circuit. Procedure Removeslide calls StartSlideShow which resets the timer. Move Procedure=SetTimer out of Startslideshow. This is an abbreviated version - it works but may cut out some useful steps in your wider script. 

 

[Report-Slideshow]
setflag=settimer
procedure=startslideshow

[flag-settimer]
duration=00:00:10
expireprocedure=timerdone

[Procedure-TimerDone]
message=timerdone

 

[Procedure-StartSlideShow]
if=settimer
setflag=slideshow
select=random
showpicture=A
showpicture=B

[flag-slideshow]
duration=00:00:02
ExpireProcedure=Removeslide

[Procedure-Removeslide]
procedure=removeslide2
procedure=startslideshow

[Procedure-Removeslide2]
removeflag=slideshow
removepicture=A
removepicture=B

0

Of course, 'removeflag=slideshow' is pointless: it's expired! 

0

Great!! Thanks so much Simon!