source: titan/titan/mute.h @ 39562

Last change on this file since 39562 was 31946, checked in by gost, 9 years ago

[titan] activate vfdmutex at mute

File size: 1.8 KB
Line 
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
8void screenmute(struct skin* screen, struct skin* node, int flag)
9{
10        struct skin* framebuffer = getscreen("framebuffer");
11        struct skin* mute = getscreen("mute");
12
13        if(getconfig("stepmute", NULL) == NULL)
14                addconfig("stepmute", "0");
15               
16        if(status.mute == 0 && atoi(getconfig("stepmute", NULL)) == 1)
17                setmute(2);
18        else if(status.mute == 0 || status.mute == 2)
19        {
20                m_lock(&status.vfdmutex, 3);
21                if(status.mute == 2)
22                        setvol(getconfigint("vol", NULL));
23                setmute(1);
24#ifndef MIPSEL
25//#ifdef SH4
26                system("amixer -c 1 set HDMI mute &");
27                system("amixer -c 1 set Analog mute &");
28                system("amixer -c 1 set SPDIF mute &");
29                audiostop(status.aktservice->audiodev);
30#endif
31                setnodeattr(mute, framebuffer, 0);
32                if(status.drawallwaysbg[0] != NULL)
33                {
34                        free(status.drawallwaysbg[0]);
35                        status.drawallwaysbg[0] = NULL;
36                }
37                status.drawallwaysbg[0] = savescreen(mute);
38                if(flag == 2 || flag == 3)
39                        drawscreen(mute, 0, 2);
40                else
41                        drawscreen(mute, 0, 0);
42                status.drawallways[0] = mute;
43                m_unlock(&status.vfdmutex, 3);
44        }
45        else
46        {
47#ifndef MIPSEL
48//#ifdef SH4
49                audioplay(status.aktservice->audiodev);
50                system("amixer -c 1 set HDMI unmute &");
51                system("amixer -c 1 set Analog unmute &");
52                system("amixer -c 1 set SPDIF unmute &");
53#endif
54                m_lock(&status.vfdmutex, 3);
55                setmute(0);
56                if(flag == 2 || flag == 3)
57                        clearscreennolock(mute);
58                else
59                        clearscreen(mute);
60                if(status.drawallwaysbg[0] != NULL)
61                {
62                        restorescreen(status.drawallwaysbg[0], mute);
63                        status.drawallwaysbg[0] = NULL;
64                }
65                status.drawallways[0] = NULL;
66                if(flag == 0 || flag == 2)
67                        blitfb(0);
68                m_unlock(&status.vfdmutex, 3);
69        }
70}
71
72#endif
Note: See TracBrowser for help on using the repository browser.