Hello community, here is the log from the commit of package impressive for openSUSE:Factory checked in at 2019-10-02 11:58:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/impressive (Old) and /work/SRC/openSUSE:Factory/.impressive.new.2352 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "impressive" Wed Oct 2 11:58:49 2019 rev:2 rq:734218 version:0.12.1 Changes: -------- --- /work/SRC/openSUSE:Factory/impressive/impressive.changes 2019-06-19 21:13:45.690823461 +0200 +++ /work/SRC/openSUSE:Factory/.impressive.new.2352/impressive.changes 2019-10-02 11:58:51.727036854 +0200 @@ -1,0 +2,21 @@ +Tue Oct 1 06:54:04 UTC 2019 - Jan Engelhardt <[email protected]> + +- Fix description typography. Drop redundant %attr. + +------------------------------------------------------------------- +Mon Sep 30 14:22:18 UTC 2019 - Christophe Giboudeaux <[email protected]> + +- Update to 0.12.1: + * fixed crash in crash reporter with recent Pillow versions + * fixed crash with recent PyGame versions when non-latin characters appeared + in slide titles + * fixed page rotation + * fixed -x/--fade mode + * fixed directory playback mode + * basic Raspberry Pi 4 compatibility (untested; requires X11) + * more robust PDF hyperlink parser (page boxes can now be PDF references) + * added option to temporarily inhibit automatic slideshows + * default keybinding: [A] key, actions: auto-start, auto-stop, auto-toggle +- Run spec-cleaner + +------------------------------------------------------------------- Old: ---- Impressive-0.12.0.tar.gz New: ---- Impressive-0.12.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ impressive.spec ++++++ --- /var/tmp/diff_new_pack.CqAZPN/_old 2019-10-02 11:58:52.771034178 +0200 +++ /var/tmp/diff_new_pack.CqAZPN/_new 2019-10-02 11:58:52.775034168 +0200 @@ -1,7 +1,7 @@ # # spec file for package impressive # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,35 +12,35 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define dist_name Impressive Name: impressive -Version: 0.12.0 +Version: 0.12.1 Release: 0 -Summary: A PDF and image viewer optimized for presentations -License: GPL-2.0 +Summary: PDF and image viewer optimized for presentations +License: GPL-2.0-only Group: Productivity/Office/Other -Url: http://impressive.sourceforge.net/ +URL: http://impressive.sourceforge.net/ Source0: http://downloads.sourceforge.net/project/%{name}/%{dist_name}/%{version}/%{dist_name}-%{version}.tar.gz Requires: ghostscript Requires: python-imaging Requires: python-opengl Requires: python-pygame Recommends: mupdf -BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch %description -A DRI accelerated pdf documents viewer with 3D -effects. Currently, it only supports keyboard -commands (not mouse) and a single 3D cube effect. +A DRI accelerated PDF document viewer with 3D effects. Currently, it only +supports keyboard commands (not mouse) and a single 3D cube effect. %prep %setup -q -n %{dist_name}-%{version} +sed -i 's/env python2/python/' impressive.py + %build %install @@ -49,12 +49,12 @@ install -d -m 755 %{buildroot}%{_mandir}/man1 install -m 755 %{name}.py %{buildroot}%{_bindir}/%{name} -gzip -9 %{name}.1 && -install -m 644 %{name}.1.gz %{buildroot}%{_mandir}/man1 +gzip -9c <%{name}.1 >%{buildroot}%{_mandir}/man1/%{name}.1.gz %files -%defattr(-,root,root,-) -%attr(0755,root,root)%{_bindir}/%{name} -%doc %{_mandir}/man1/%{name}.1.gz +%license license.txt +%doc changelog.txt +%{_bindir}/%{name} +%{_mandir}/man1/%{name}.1%{?ext_man} %changelog ++++++ Impressive-0.12.0.tar.gz -> Impressive-0.12.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Impressive-0.12.0/changelog.txt new/Impressive-0.12.1/changelog.txt --- old/Impressive-0.12.0/changelog.txt 2018-02-04 21:31:39.000000000 +0100 +++ new/Impressive-0.12.1/changelog.txt 2019-08-28 22:10:44.000000000 +0200 @@ -1,3 +1,15 @@ +0.12.1 [2019-08-28] +- fixed crash in crash reporter with recent Pillow versions +- fixed crash with recent PyGame versions when non-latin characters appeared + in slide titles +- fixed page rotation +- fixed -x/--fade mode +- fixed directory playback mode +- basic Raspberry Pi 4 compatibility (untested; requires X11) +- more robust PDF hyperlink parser (page boxes can now be PDF references) +- added option to temporarily inhibit automatic slideshows + - default keybinding: [A] key, actions: auto-start, auto-stop, auto-toggle + 0.12.0 [2018-02-04] - many zoom mode related changes - box-zoom mode: use Ctrl+LMB-drag to draw a box and zoom it to fit Binary files old/Impressive-0.12.0/demo.pdf and new/Impressive-0.12.1/demo.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Impressive-0.12.0/impressive.1 new/Impressive-0.12.1/impressive.1 --- old/Impressive-0.12.0/impressive.1 2018-02-04 21:31:39.000000000 +0100 +++ new/Impressive-0.12.1/impressive.1 2019-08-28 22:10:44.000000000 +0200 @@ -1,5 +1,5 @@ .\" generated by KeyJ's html2man.py version 0.1.1 -.TH IMPRESSIVE 1 2018-02-04 "Martin J. Fiedler" "Impressive Documentation"> +.TH IMPRESSIVE 1 2019-08-28 "Martin J. Fiedler" "Impressive Documentation"> .SH "NAME" Impressive \- presentation tool with eye candy .SH "SYNOPSIS" @@ -666,6 +666,16 @@ .RE .PP .br +\fBA\fR key +.RS +Toggle automatic slideshow mode. +.br +If an automatic presentation has been started with the \fB\-a\fR/\:\fB\-\-auto\fR option, it is temporarily disabled until this key is pressed again. It is not automatically re\-enabled after changing the page. If the \fB\-a\fR/\:\fB\-\-auto\fR has not been used, an automatic presentation with a timeout of 30 seconds is started when this key is pressed for the first time. +.br +Note that if a page has a \fBtimeout\fR PageProp, the specified timeout is \fIalways\fR in effect when the page is entered, even if the automatic slideshow is otherwise disabled. +.RE +.PP +.br \fBS\fR key .RS Save the info script associated with the current presentation. The main purpose for this is to permanently save highlight boxes or keyboard shortcuts, so they will be restored the next time this presentation is started. @@ -857,6 +867,26 @@ The following list describes all actions supported by Impressive, together with the conditions under which they will match. Note that most actions will not match in overview mode and during video playback, unless mentioned otherwise in the description. .PP .br +\fBauto\-start\fR +.RS +(Re\-)enable automatic presentation mode. If the current page has no \fBtimeout\fR PageProp and no \fB\-a\fR/\:\fB\-\-auto\fR option has been specified, an automatic presentation is started with a 30\-second page interval. +.RE +.PP +.br +\fBauto\-stop\fR +.RS +Disable automatic presentation mode. If the current page has a \fBtimeout\fR PageProp or an \fB\-a\fR/\:\fB\-\-auto\fR option has been specified, the timeout for the current page is stopped. +.br +The automatic presentation stays disabled after changing pages, unless a \fBtimeout\fR PageProp is specified for the target page, which will take precedence over the otherwise disabled automatic presentation mode. +.RE +.PP +.br +\fBauto\-toggle\fR +.RS +Disables or (re\-)enables automatic presentations, depending on the current state. +.RE +.PP +.br \fBbox\-add\fR .RS Draw a highlight box if the mouse has been moved since the button has been pressed down. This action must only be bound to a mouse button event, otherwise it will not function properly. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Impressive-0.12.0/impressive.html new/Impressive-0.12.1/impressive.html --- old/Impressive-0.12.0/impressive.html 2018-02-04 21:31:39.000000000 +0100 +++ new/Impressive-0.12.1/impressive.html 2019-08-28 22:10:44.000000000 +0200 @@ -13,12 +13,12 @@ <!--VERSION--> <p style="text-indent:0;"> <a href="http://impressive.sourceforge.net/">http://impressive.sourceforge.net/</a><br /> -<b>Version:</b> 0.12.0<br /> +<b>Version:</b> 0.12.1<br /> <b>Author:</b> <a href="mailto:[email protected]">Martin J. Fiedler</a><br /> -<b>Last updated:</b> 2018-02-04</p> +<b>Last updated:</b> 2019-08-28</p> <!--END--> <!--man -.TH IMPRESSIVE 1 2018-02-04 "Martin J. Fiedler" "Impressive Documentation"> +.TH IMPRESSIVE 1 2019-08-28 "Martin J. Fiedler" "Impressive Documentation"> .SH "NAME" Impressive \- presentation tool with eye candy .SH "SYNOPSIS" @@ -104,18 +104,22 @@ <p>Impressive runs on Rasbperry Pi Single-Board Computers with bearable performance, if the following notes are taken into consideration:</p> <ul> +<li>On Raspberry Pi generations 1, 2 and 3:<ul> <li>Overscan must be off (set <code>disable_overscan=1</code> in <code>/boot/config.txt</code>, or run <code>raspi-config</code> → Advanced Menu → Overscan).</li> <li>The classic Broadcom OpenGL ES driver stack must be used, <strong>not</strong> the Fake-KMS or Full-KMS Mesa drivers (disable <code>dtoverlay=vc4-</code>(<code>f</code>)<code>kms-v3d</code> in <code>/boot/config.txt</code>, or run <code>raspi-config</code> → Advanced Menu → GL Driver → Legacy: Original non-GL desktop driver).</li> <li>Doesn't require X11 – can also be run from a normal text console in Raspbian Lite.</li> <li>Can be run from X11, but only in fullscreen mode.</li> +</ul></li> +<li>On the Raspberry Pi 4, Impressive behaves like the desktop version.<ul> +<li>Must be run from X11, can use windowed mode.</li></ul></li> <li>Video playback uses omxplayer instead of MPlayer. This has the following advantages and drawbacks:<ul> <li>Only H.264 and (if licensed on the specific device) MPEG-2 video codecs are supported.</li> -<li>These are, howver, hardware-decoded with full performance.</li> +<li>These are, however, hardware-decoded with full performance.</li> <li>Fine-grained seeking (1 second / 10 second) is not supported. 1-second seek operations are ignored, 10-second seek maps to 30-second seek.</li> </ul></li> <li>Since microSD storage is <em>very</em> slow on the Raspberry Pi, consider using the <code>-cz</code>/<code>--cache compressed</code> option for better performance. This will consume more RAM though, which is also a scarce resource on the device, but typical presentation slides with uniformly colored backgrounds compress very well and shouldn't be a problem.</li> </ul> -<p>Using Impressive, it is possible to convert a Raspberry Pi into an automated »digital signage« system, i.e. a system with the sole purpose of repeatedly showing a single presentation, which can consist of one or more PDF files, image files, or videos. Currently, there's no automated installation for this mode; however the following script (which is included in an SVN checkout as well) contains the necessary code and installation instructions (for advanced users):<br /> +<p>Using Impressive, it is possible to convert a Raspberry Pi 1 to 3 into an automated »digital signage« system, i.e. a system with the sole purpose of repeatedly showing a single presentation, which can consist of one or more PDF files, image files, or videos. Currently, there's no automated installation for this mode; however the following script (which is included in an SVN checkout as well) contains the necessary code and installation instructions (for advanced users):<br /> <a style="margin-left:32px;" href="https://svn.emphy.de/impressive/trunk/impressive/boot_impressive.sh">https://svn.emphy.de/impressive/trunk/impressive/boot_impressive.sh</a></p> <!--------------------------------------------------------------------------------> @@ -461,6 +465,11 @@ <dt><strong>RMB</strong> (right mouse button) over a highlight box</dt> <dd>If the right mouse button is clicked while the mouse cursor is above a highlight box, the box will be removed. If the last box on a page is removed, the page will turn bright and sharp again.</dd> +<dt><strong>A</strong> key</dt> +<dd>Toggle automatic slideshow mode.<br /> +If an automatic presentation has been started with the <code>-a</code>/<code>--auto</code> option, it is temporarily disabled until this key is pressed again. It is not automatically re-enabled after changing the page. If the <code>-a</code>/<code>--auto</code> has not been used, an automatic presentation with a timeout of 30 seconds is started when this key is pressed for the first time.<br /> +Note that if a page has a <code>timeout</code> PageProp, the specified timeout is <em>always</em> in effect when the page is entered, even if the automatic slideshow is otherwise disabled.</dd> + <dt><strong>S</strong> key</dt> <dd>Save the info script associated with the current presentation. The main purpose for this is to permanently save highlight boxes or keyboard shortcuts, so they will be restored the next time this presentation is started.</dd> @@ -568,6 +577,16 @@ <p>The following list describes all actions supported by Impressive, together with the conditions under which they will match. Note that most actions will not match in overview mode and during video playback, unless mentioned otherwise in the description.</p><dl> +<dt><code>auto-start</code></dt> +<dd>(Re-)enable automatic presentation mode. If the current page has no <code>timeout</code> PageProp and no <code>-a</code>/<code>--auto</code> option has been specified, an automatic presentation is started with a 30-second page interval.</dd> + +<dt><code>auto-stop</code></dt> +<dd>Disable automatic presentation mode. If the current page has a <code>timeout</code> PageProp or an <code>-a</code>/<code>--auto</code> option has been specified, the timeout for the current page is stopped.<br /> +The automatic presentation stays disabled after changing pages, unless a <code>timeout</code> PageProp is specified for the target page, which will take precedence over the otherwise disabled automatic presentation mode.</dd> + +<dt><code>auto-toggle</code></dt> +<dd>Disables or (re-)enables automatic presentations, depending on the current state.</dd> + <dt><code>box-add</code></dt> <dd>Draw a highlight box if the mouse has been moved since the button has been pressed down. This action must only be bound to a mouse button event, otherwise it will not function properly.</dd> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Impressive-0.12.0/impressive.py new/Impressive-0.12.1/impressive.py --- old/Impressive-0.12.0/impressive.py 2018-02-04 21:31:39.000000000 +0100 +++ new/Impressive-0.12.1/impressive.py 2019-08-28 22:10:44.000000000 +0200 @@ -2,7 +2,7 @@ # -*- coding: iso-8859-1 -*- # # Impressive, a fancy presentation tool -# Copyright (C) 2005-2014 Martin J. Fiedler <[email protected]> +# Copyright (C) 2005-2019 Martin J. Fiedler <[email protected]> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License, version 2, as @@ -18,8 +18,8 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA __title__ = "Impressive" -__version__ = "0.12.0" -__rev__ = 235 +__version__ = "0.12.1" +__rev__ = 246 __author__ = "Martin J. Fiedler" __email__ = "[email protected]" __website__ = "http://impressive.sourceforge.net/" @@ -72,7 +72,8 @@ EnableOverview = True InitialPage = None Wrap = False -AutoAdvance = None +AutoAdvanceTime = 30000 +AutoAdvanceEnabled = False AutoAutoAdvance = False RenderToDirectory = None Rotation = 0 @@ -376,7 +377,15 @@ pygame.quit() def SetWindowTitle(self, text): - pygame.display.set_caption(text, __title__) + if not isinstance(text, unicode): + try: + text = unicode(text, 'utf-8') + except UnicodeDecodeError: + text = unicode(text, 'windows-1252', 'replace') + try: + pygame.display.set_caption(text, __title__) + except UnicodeEncodeError: + pygame.display.set_caption(text.encode('utf-8'), __title__) def GetWindowID(self): return pygame.display.get_wm_info()['window'] @@ -538,6 +547,10 @@ return Platform_PyGame.GetScreenSize(self) +class Platform_RasPi4(Platform_Unix): + use_omxplayer = True + + class Platform_EGL(Platform_Unix): name = 'egl' egllib = "EGL" @@ -706,7 +719,16 @@ libbcm_host = ctypes.util.find_library("bcm_host") if libbcm_host: - Platform = Platform_BCM2835(libbcm_host) + try: + with open("/sys/firmware/devicetree/base/model") as f: + model = f.read() + except EnvironmentError: + model = "" + m = re.search(r'pi\s*(\d+)', model, flags=re.I) + if m and (int(m.group(1)) >= 4): + Platform = Platform_RasPi4() + else: + Platform = Platform_BCM2835(libbcm_host) elif os.name == "nt": Platform = Platform_Win32() else: @@ -2544,6 +2566,12 @@ raise PDFError, "object does not match the intended type" return data + def resolve(self, obj): + if isinstance(obj, PDFref): + return self.getobj(obj) + else: + return obj + def parse_xref_section(self, start, count): xref = {} for obj in xrange(start, start + count): @@ -2600,7 +2628,7 @@ self.page_count = page self.obj2page[obj] = page self.page2obj[page] = obj - self.box[page] = node.get('CropBox', cbox) or node.get('MediaBox', mbox) + self.box[page] = self.resolve(node.get('CropBox', cbox) or node.get('MediaBox', mbox)) self.rotate[page] = node.get('Rotate', rotate) self.annots[page] = [a.ref for a in anode] except (KeyError, TypeError, ValueError): @@ -3267,6 +3295,11 @@ print >>sys.stderr, " Display of PDF files will not be supported." +def ApplyRotation(img, rot): + rot = (rot or 0) & 3 + if not rot: return img + return img.transpose({1:Image.ROTATE_270, 2:Image.ROTATE_180, 3:Image.ROTATE_90}[rot]) + # generate a dummy image def DummyPage(): img = Image.new('RGB', (ScreenWidth, ScreenHeight)) @@ -3325,7 +3358,7 @@ return DummyPage() # apply rotation - if rot: img = img.rotate(90 * (4 - rot)) + img = ApplyRotation(img, rot) # compute final output image size based on PAR if not parscale: @@ -3410,11 +3443,7 @@ return DummyPage() # apply rotation - rot = GetPageProp(page, 'rotate') - if rot is None: - rot = Rotation - if rot: - img = img.rotate(90 * (4 - rot)) + img = ApplyRotation(img, GetPageProp(page, 'rotate', Rotation)) # determine destination size newsize = ZoomToFit((img.size[0], int(img.size[1] * PAR + 0.5)), @@ -4307,7 +4336,7 @@ PageEnterTime = Platform.GetTicks() - StartTime IsZoomed = 0 # no, we don't have a pre-zoomed image right now WantStatus = False # don't show status unless it's changed interactively - PageTimeout = AutoAdvance + PageTimeout = AutoAdvanceTime if AutoAdvanceEnabled else 0 shown = GetPageProp(Pcurrent, '_shown', 0) try: os.chdir(os.path.dirname(GetPageProp(Pcurrent, '_file'))) @@ -4940,6 +4969,7 @@ f = fullscreen tab = overview-enter, overview-exit s = save + a = auto-toggle t = time-toggle r = time-reset c = box-clear @@ -5650,6 +5680,33 @@ "fade to a white screen" FadeMode(1.0) + def _auto_stop(self): + "stop automatic slideshow" + global AutoAdvanceEnabled, PageTimeout + AutoAdvanceEnabled = False + PageTimeout = 0 + Platform.ScheduleEvent('$page-timeout', 0) + if AutoAdvanceProgress: + DrawCurrentPage() + def _auto_start(self): + "start or resume automatic slideshow" + global AutoAdvanceEnabled, PageTimeout + AutoAdvanceEnabled = True + PageTimeout = AutoAdvanceTime + if (GetPageProp(Pcurrent, '_shown') == 1) or Wrap: + PageTimeout = GetPageProp(Pcurrent, 'timeout', PageTimeout) + dt = PageTimeout - (Platform.GetTicks() - PageEnterTime) + if dt > 0: + Platform.ScheduleEvent('$page-timeout', dt) + else: + TransitionTo(GetNextPage(Pcurrent, 1)) + def _auto_toggle(self): + "toggle automatic slideshow" + if AutoAdvanceEnabled: + self._auto_stop() + else: + self._auto_start() + def _time_toggle(self): "toggle time display and/or time tracking mode" global TimeDisplay @@ -5807,7 +5864,7 @@ print >>sys.stderr, "Warning: input file `%s' has unrecognized file type" % name elif os.path.isdir(name): - images = [os.path.join(name, f) for f in os.listdir(name) if IsImageFileName(f)] + images = [os.path.join(name, f) for f in os.listdir(name) if IsImageFile(f)] images.sort(lambda a, b: cmp(a.lower(), b.lower())) if not images: print >>sys.stderr, "Warning: no image files in directory `%s'" % name @@ -5838,7 +5895,7 @@ global PAR, DAR, TempFileName, Bare, MaxZoomFactor global BackgroundRendering, FileStats, RTrunning, RTrestart, StartTime global CursorImage, CursorVisible, InfoScriptPath - global HalfScreen, AutoAdvance, WindowPos + global HalfScreen, AutoAdvanceTime, AutoAdvanceEnabled, WindowPos global BoxFadeDarknessBase, BoxZoomDarknessBase, SpotRadiusBase global BoxIndexBuffer, UseBlurShader @@ -6189,8 +6246,9 @@ time_left -= GetPageProp(p, 'transtime', TransitionDuration) p = pnext if pages and (time_left >= pages): - AutoAdvance = time_left / pages - print >>sys.stderr, "Setting auto-advance timeout to %.1f seconds." % (0.001 * AutoAdvance) + AutoAdvanceTime = time_left / pages + AutoAdvanceEnabled = True + print >>sys.stderr, "Setting auto-advance timeout to %.1f seconds." % (0.001 * AutoAdvanceTime) else: print >>sys.stderr, "Warning: Could not determine auto-advance timeout automatically." @@ -6235,7 +6293,8 @@ # prebuffer current and next page Pnext = 0 RenderPage(Pcurrent, Tcurrent) - DrawCurrentPage() + if not FadeInOut: + DrawCurrentPage() PageEntered(update_time=False) PreloadNextPage(GetNextPage(Pcurrent, 1)) @@ -6332,7 +6391,14 @@ print >>sys.stderr, "Impressive version:", __version__ print >>sys.stderr, "Python version:", sys.version print >>sys.stderr, "PyGame version:", pygame.__version__ - print >>sys.stderr, "PIL version:", Image.VERSION + if hasattr(Image, "__version__"): # Pillow >= 5.2 + print >>sys.stderr, "PIL version: Pillow", Image.__version__ + elif hasattr(Image, "PILLOW_VERSION"): # Pillow < 7.0 + print >>sys.stderr, "PIL version: Pillow", Image.PILLOW_VERSION + elif hasattr(Image, "VERSION"): # classic PIL or Pillow 1.x + print >>sys.stderr, "PIL version: classic", Image.VERSION + else: + print >>sys.stderr, "PIL version: unknown" if PDFRenderer: print >>sys.stderr, "PDF renderer:", PDFRenderer.name else: @@ -6396,28 +6462,28 @@ Usage: """+os.path.basename(sys.argv[0])+""" [OPTION...] <INPUT(S)...> -You may either play a PDF file, a directory containing image files or -individual image files. +Inputs may be PDF files, image files, video files or directories +containing image files. Input options: + -h, --help show this help text and exit -r, --rotate <n> rotate pages clockwise in 90-degree steps --scale scale images to fit screen (not used in PDF mode) --supersample use supersampling (only used in PDF mode) -s --supersample for PDF files, --scale for image files -I, --script <path> set the path of the info script - -u, --poll <seconds> check periodically if the source file has been - updated and reload it if it did + -u, --poll <seconds> check periodically if the source files have been + updated and reload them if they did -X, --shuffle put input files into random order - -h, --help show this help text and exit Output options: - -o, --output <dir> don't display the presentation, only render to .png --fullscreen start in fullscreen mode -ff, --fake-fullscreen start in "fake fullscreen" mode -f, --windowed start in windowed mode -g, --geometry <WxH> set window size or fullscreen resolution -A, --aspect <X:Y> adjust for a specific display aspect ratio (e.g. 5:4) -G, --gamma <G[:BL]> specify startup gamma and black level + -o, --output <dir> don't display the presentation, only render to .png Page options: -i, --initialpage <n> start with page <n> @@ -6442,33 +6508,33 @@ -z, --zoom <factor> set zoom factor (default: 2.0) --maxzoom <factor> maximum factor to render high-resolution zoom -x, --fade fade in at start and fade out at end - --spot-radius <px> set the initial radius of the spotlight, in pixels --invert display slides in inverted colors + --noblur use legacy blur implementation + --spot-radius <px> set the initial radius of the spotlight, in pixels --min-box-size <x> set minimum size of a highlight box, in pixels --box-edge <px> size of highlight box borders, in pixels --zbox-edge <px> size of zoom box borders, in pixels --darkness <p> set highlight box mode darkness to <p> percent --zoomdarkness <p> set box-zoom mode darkness to <p> percent - --noblur use legacy blur implementation Timing options: - -M, --minutes display time in minutes, not seconds - --clock show current time instead of time elapsed - --tracking enable time tracking mode - --time-display enable time display (implies --tracking) -a, --auto <seconds> automatically advance to next page after some seconds -d, --duration <time> set the desired duration of the presentation and show a progress bar at the bottom of the screen -y, --auto-auto if a duration is set, set the default time-out so that it will be reached exactly + -q, --page-progress shows a progress bar based on the position in the + presentation (based on pages, not time) -k, --auto-progress shows a progress bar for each page for auto-advance + --time-display enable time display (implies --tracking) + --tracking enable time tracking mode + --clock show current time instead of time elapsed + -M, --minutes display time in minutes, not seconds -T, --transtime <ms> set transition duration in milliseconds -D, --mousedelay <ms> set mouse hide delay for fullscreen mode (in ms) (0 = show permanently, 1 = don't show at all) -B, --boxfade <ms> set highlight box fade duration in milliseconds -Z, --zoomtime <ms> set zoom animation duration in milliseconds - -q, --page-progress shows a progress bar based on the position in the - presentation (based on pages, not time) Control options: --control-help display help about control configuration and exit @@ -6478,9 +6544,9 @@ -W, --nowheel disable page navigation via mouse wheel, zoom instead --noquit disable single-key shortcuts that quit the program --evtest run Impressive in event test mode - --bare don't use any special features (hyperlinks etc.) Advanced options: + --bare don't use any special features (hyperlinks etc.) -c, --cache <mode> set page cache mode: -c none = disable caching completely -c memory = store cache in RAM, uncompressed @@ -6492,8 +6558,8 @@ -P, --renderer <path> set path to PDF renderer executable (GhostScript, Xpdf/Poppler pdftoppm, or MuPDF mudraw/pdfdraw) -V, --overscan <px> render PDF files <px> pixels larger than the screen - --nologo disable startup logo and version number display -H, --half-screen show OSD on right half of the screen only + --nologo disable startup logo and version number display -v, --verbose (slightly) more verbose operation For detailed information, visit""", __website__ @@ -6625,14 +6691,15 @@ global FileName, FileList, Fullscreen, Scaling, Supersample, CacheMode global TransitionDuration, MouseHideDelay, BoxFadeDuration, ZoomDuration global ScreenWidth, ScreenHeight, InitialPage, Wrap, TimeTracking - global AutoAdvance, RenderToDirectory, Rotation, DAR, Verbose + global AutoAdvanceTime, AutoAdvanceEnabled, AutoAutoAdvance + global RenderToDirectory, Rotation, DAR, Verbose global BackgroundRendering, UseAutoScreenSize, PollInterval, CacheFileName global PageRangeStart, PageRangeEnd, FontList, FontSize, Gamma, BlackLevel global EstimatedDuration, CursorImage, CursorHotspot, MinutesOnly, Overscan global PDFRendererPath, InfoScriptPath, EventTestMode, EnableCursor global AutoOverview, DefaultZoomFactor, FadeInOut, ShowLogo, Shuffle global QuitAtEnd, ShowClock, HalfScreen, SpotRadius, InvertPages - global MinBoxSize, AutoAutoAdvance, AutoAdvanceProgress, BoxFadeDarkness + global MinBoxSize, AutoAdvanceProgress, BoxFadeDarkness global WindowPos, FakeFullscreen, UseBlurShader, Bare, EnableOverview global PageProgress, BoxZoomDarkness, MaxZoomFactor, BoxEdgeSize global TimeDisplay, MouseWheelZoom, ZoomBoxEdgeSize @@ -6784,8 +6851,12 @@ opterr("invalid parameter for --duration") if opt in ("-a", "--auto"): try: - AutoAdvance = int(float(arg) * 1000) - assert (AutoAdvance > 0) and (AutoAdvance <= 86400000) + if arg.lower().strip('.') in ("0", "00", "off", "none", "false"): + AutoAdvanceEnabled = False + else: + AutoAdvanceTime = int(float(arg) * 1000) + assert (AutoAdvanceTime > 0) and (AutoAdvanceTime <= 86400000) + AutoAdvanceEnabled = True except: opterr("invalid parameter for --auto") if opt in ("-T", "--transtime"):
