1 | #ifndef MUTE_H |
---|
2 | #define MUTE_H |
---|
3 | |
---|
4 | //screen and node are needed if funktion is called from rc handle |
---|
5 | //flag 1 = no blit |
---|
6 | //flag 2 = no framebuffer lock |
---|
7 | //flag 3 = no framebuffer lock and no blit |
---|
8 | void screenmute(struct skin* screen, struct skin* node, int flag) |
---|
9 | { |
---|
10 | int tmpscreencalc = 0; |
---|
11 | struct skin* framebuffer = getscreen("framebuffer"); |
---|
12 | struct skin* mute = getscreen("mute"); |
---|
13 | |
---|
14 | if(getconfig("stepmute", NULL) == NULL) |
---|
15 | addconfig("stepmute", "0"); |
---|
16 | |
---|
17 | if(status.mute == 0 && atoi(getconfig("stepmute", NULL)) == 1) |
---|
18 | { |
---|
19 | status.mute = 2; |
---|
20 | setmute(2); |
---|
21 | } |
---|
22 | else if(status.mute == 0 || status.mute == 2) |
---|
23 | { |
---|
24 | if(status.mute == 2) |
---|
25 | setvol(getconfigint("vol", NULL)); |
---|
26 | status.mute = 1; |
---|
27 | setmute(1); |
---|
28 | setnodeattr(mute, framebuffer); |
---|
29 | if(status.drawallwaysbg[0] != NULL) |
---|
30 | free(status.drawallwaysbg[0]); |
---|
31 | status.drawallwaysbg[0] = savescreen(mute); |
---|
32 | tmpscreencalc = status.screencalc; |
---|
33 | status.screencalc = 0; |
---|
34 | if(flag == 2 || flag == 3) |
---|
35 | drawscreen(mute, 2); |
---|
36 | else |
---|
37 | drawscreen(mute, 0); |
---|
38 | status.screencalc = tmpscreencalc; |
---|
39 | status.drawallways[0] = mute; |
---|
40 | } |
---|
41 | |
---|
42 | else |
---|
43 | { |
---|
44 | status.mute = 0; |
---|
45 | setmute(0); |
---|
46 | if(flag == 2 || flag == 3) |
---|
47 | clearscreennolock(mute); |
---|
48 | else |
---|
49 | clearscreen(mute); |
---|
50 | if(status.drawallwaysbg[0] != NULL) |
---|
51 | { |
---|
52 | restorescreen(status.drawallwaysbg[0], mute); |
---|
53 | status.drawallwaysbg[0] = NULL; |
---|
54 | } |
---|
55 | status.drawallways[0] = NULL; |
---|
56 | if(flag == 0 || flag == 2) |
---|
57 | blitfb(0); |
---|
58 | } |
---|
59 | } |
---|
60 | |
---|
61 | #endif |
---|