Merge dwminer/framerate
This commit is contained in:
commit
c1ba841783
2
Makefile
2
Makefile
|
@ -1,4 +1,4 @@
|
||||||
VERSION := git-20161030
|
VERSION := git-20161128
|
||||||
|
|
||||||
PREFIX := /usr/local
|
PREFIX := /usr/local
|
||||||
MANPREFIX := $(PREFIX)/share/man
|
MANPREFIX := $(PREFIX)/share/man
|
||||||
|
|
2
image.c
2
image.c
|
@ -68,6 +68,7 @@ void img_init(img_t *img, win_t *win)
|
||||||
img->alpha = ALPHA_LAYER;
|
img->alpha = ALPHA_LAYER;
|
||||||
img->multi.cap = img->multi.cnt = 0;
|
img->multi.cap = img->multi.cnt = 0;
|
||||||
img->multi.animate = options->animate;
|
img->multi.animate = options->animate;
|
||||||
|
img->multi.framedelay = options->framerate > 0 ? 1000 / options->framerate : 0;
|
||||||
img->multi.length = 0;
|
img->multi.length = 0;
|
||||||
|
|
||||||
img->cmod = imlib_create_color_modifier();
|
img->cmod = imlib_create_color_modifier();
|
||||||
|
@ -263,6 +264,7 @@ bool img_load_gif(img_t *img, const fileinfo_t *file)
|
||||||
img->multi.cap * sizeof(img_frame_t));
|
img->multi.cap * sizeof(img_frame_t));
|
||||||
}
|
}
|
||||||
img->multi.frames[img->multi.cnt].im = im;
|
img->multi.frames[img->multi.cnt].im = im;
|
||||||
|
delay = img->multi.framedelay > 0 ? img->multi.framedelay : delay;
|
||||||
img->multi.frames[img->multi.cnt].delay = delay > 0 ? delay : DEF_GIF_DELAY;
|
img->multi.frames[img->multi.cnt].delay = delay > 0 ? delay : DEF_GIF_DELAY;
|
||||||
img->multi.length += img->multi.frames[img->multi.cnt].delay;
|
img->multi.length += img->multi.frames[img->multi.cnt].delay;
|
||||||
img->multi.cnt++;
|
img->multi.cnt++;
|
||||||
|
|
1
image.h
1
image.h
|
@ -35,6 +35,7 @@ typedef struct {
|
||||||
int cnt;
|
int cnt;
|
||||||
int sel;
|
int sel;
|
||||||
bool animate;
|
bool animate;
|
||||||
|
int framedelay;
|
||||||
int length;
|
int length;
|
||||||
} multi_img_t;
|
} multi_img_t;
|
||||||
|
|
||||||
|
|
14
options.c
14
options.c
|
@ -32,8 +32,9 @@ const options_t *options = (const options_t*) &_options;
|
||||||
|
|
||||||
void print_usage(void)
|
void print_usage(void)
|
||||||
{
|
{
|
||||||
printf("usage: sxiv [-abcfhioqrtvZ] [-e WID] [-G GAMMA] [-g GEOMETRY] "
|
printf("usage: sxiv [-abcfhioqrtvZ] [-A FRAMERATE] [-e WID] [-G GAMMA] "
|
||||||
"[-N NAME] [-n NUM] [-S DELAY] [-s MODE] [-z ZOOM] FILES...\n");
|
"[-g GEOMETRY] [-N NAME] [-n NUM] [-S DELAY] [-s MODE] [-z ZOOM] "
|
||||||
|
"FILES...\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_version(void)
|
void print_version(void)
|
||||||
|
@ -60,6 +61,7 @@ void parse_options(int argc, char **argv)
|
||||||
_options.animate = false;
|
_options.animate = false;
|
||||||
_options.gamma = 0;
|
_options.gamma = 0;
|
||||||
_options.slideshow = 0;
|
_options.slideshow = 0;
|
||||||
|
_options.framerate = 0;
|
||||||
|
|
||||||
_options.fullscreen = false;
|
_options.fullscreen = false;
|
||||||
_options.embed = 0;
|
_options.embed = 0;
|
||||||
|
@ -71,11 +73,17 @@ void parse_options(int argc, char **argv)
|
||||||
_options.thumb_mode = false;
|
_options.thumb_mode = false;
|
||||||
_options.clean_cache = false;
|
_options.clean_cache = false;
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "abce:fG:g:hin:N:oqrS:s:tvZz:")) != -1) {
|
while ((opt = getopt(argc, argv, "A:abce:fG:g:hin:N:oqrS:s:tvZz:")) != -1) {
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
case '?':
|
case '?':
|
||||||
print_usage();
|
print_usage();
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
|
case 'A':
|
||||||
|
n = strtol(optarg, &end, 0);
|
||||||
|
if (*end != '\0' || n <= 0)
|
||||||
|
error(EXIT_FAILURE, 0, "Invalid argument for option -A: %s", optarg);
|
||||||
|
_options.framerate = n;
|
||||||
|
/* fall through */
|
||||||
case 'a':
|
case 'a':
|
||||||
_options.animate = true;
|
_options.animate = true;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -37,6 +37,7 @@ typedef struct {
|
||||||
bool animate;
|
bool animate;
|
||||||
int gamma;
|
int gamma;
|
||||||
int slideshow;
|
int slideshow;
|
||||||
|
int framerate;
|
||||||
|
|
||||||
/* window: */
|
/* window: */
|
||||||
bool fullscreen;
|
bool fullscreen;
|
||||||
|
|
6
sxiv.1
6
sxiv.1
|
@ -4,6 +4,8 @@ sxiv \- Simple X Image Viewer
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B sxiv
|
.B sxiv
|
||||||
.RB [ \-abcfhioqrtvZ ]
|
.RB [ \-abcfhioqrtvZ ]
|
||||||
|
.RB [ \-A
|
||||||
|
.IR FRAMERATE ]
|
||||||
.RB [ \-e
|
.RB [ \-e
|
||||||
.IR WID ]
|
.IR WID ]
|
||||||
.RB [ \-G
|
.RB [ \-G
|
||||||
|
@ -33,6 +35,10 @@ Please note, that the fullscreen mode requires an EWMH/NetWM compliant window
|
||||||
manager.
|
manager.
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
.TP
|
.TP
|
||||||
|
.BI "\-A " FRAMERATE
|
||||||
|
Play animations with a constant frame rate set to
|
||||||
|
.IR FRAMERATE .
|
||||||
|
.TP
|
||||||
.B \-a
|
.B \-a
|
||||||
Play animations of multi-frame images.
|
Play animations of multi-frame images.
|
||||||
.TP
|
.TP
|
||||||
|
|
Loading…
Reference in a new issue