File: fade.c

package info (click to toggle)
xslideshow 3.1-7
  • links: PTS
  • area: non-free
  • in suites: sarge
  • size: 792 kB
  • ctags: 1,375
  • sloc: ansic: 14,006; makefile: 897; sh: 1
file content (128 lines) | stat: -rw-r--r-- 2,553 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/*
	fade.c - animate fade

	Author:	Susumu Shiohara (shiohara@tpp.epson.co.jp)

		Copyright 1993-1997 by Susumu Shiohara

				All Rights Reserved

*/

#include "xslideshow.h"
#include "animproto.h"

static XColor xcs[256];
static int mapsize;

#if defined(__STDC__) || defined(__cplusplus)
void PreFadeColors(int ms)
#else
void PreFadeColors(ms)
int ms;
#endif
{
int i;

	/* PseudoColor Only */
	if(theVisual->class == PseudoColor){
		for(i = 0; i < ms; i++){
			xcs[i].red	 = xcolors[i].red;
			xcs[i].green = xcolors[i].green;
			xcs[i].blue	 = xcolors[i].blue;
			xcs[i].flags = xcolors[i].flags;
			xcs[i].pixel = xcolors[i].pixel;
		}
	}
}

#if defined(__STDC__) || defined(__cplusplus)
void FadeColors(int mode, int ms)
#else
void FadeColors(mode, ms)
int mode,ms;
#endif
{
int i,j;

	if(theVisual->class == PseudoColor){
		if(mode){

			for(j=255; j > 0; j -= app_data.fadeSteps){

				for(i=0;i<ms;i++){
					fcolors[i].red	=(word)((int)xcs[i].red   * j / 255);
					fcolors[i].green=(word)((int)xcs[i].green * j / 255);
					fcolors[i].blue =(word)((int)xcs[i].blue  * j / 255);
					fcolors[i].flags=xcs[i].flags;
					fcolors[i].pixel=xcs[i].pixel;
				}
				StoreColors(fcolors,ms);
				myusleep(app_data.fadeTicks);
				if(gotSomeAction == True)
					return;
			}

		}
		else{

			for(j=0; j < 255; j += app_data.fadeSteps){

				for(i=0;i<ms;i++){
					fcolors[i].red	=(word)((int)xcs[i].red   * j / 255);
					fcolors[i].green=(word)((int)xcs[i].green * j / 255);
					fcolors[i].blue =(word)((int)xcs[i].blue  * j / 255);
					fcolors[i].flags=xcs[i].flags;
					fcolors[i].pixel=xcs[i].pixel;
				}
				StoreColors(fcolors,ms);
				myusleep(app_data.fadeTicks);
				if(gotSomeAction == True)
					return;
			}

		}
	}
}

#if defined(__STDC__) || defined(__cplusplus)
ActionStatus xfadeshow(char *fname)	/* Fade in */
#else
ActionStatus xfadeshow(fname)
char *fname;
#endif
{
	mapsize = gim.subImageList->mapsize;

	PreDisplay();

	if(app_data.showFileName)
		createFileNameWindow(fname);

	ShowImage(	(windowWidth-gim.subImageList->width)/2,
				(windowHeight-gim.subImageList->height)/2,
				gim.subImageList->width,gim.subImageList->height);

	PreFadeColors(mapsize);
	FadeColors(False,mapsize);
	StoreColors(xcolors,mapsize);

	if(app_data.showFileName)
		raiseFileNameWindow();

	return(mywait());
}

#if defined(__STDC__) || defined(__cplusplus)
void postxfadeshow(char *fname)	/* Fade out */
#else
void postxfadeshow(fname)
char *fname;
#endif
{
	if(app_data.showFileName)
		removeFileNameWindow();

	FadeColors(True,mapsize);
}