summaryrefslogtreecommitdiff
path: root/library
Unidiff
Diffstat (limited to 'library') (more/less context) (ignore whitespace changes)
-rw-r--r--library/custom-sharp.h33
1 files changed, 18 insertions, 15 deletions
diff --git a/library/custom-sharp.h b/library/custom-sharp.h
index f65d474..08f8a6f 100644
--- a/library/custom-sharp.h
+++ b/library/custom-sharp.h
@@ -30,25 +30,25 @@
30#define APM_IOC_BATTERY_MAIN_CHK _IO(APM_IOC_MAGIC, 33) 30#define APM_IOC_BATTERY_MAIN_CHK _IO(APM_IOC_MAGIC, 33)
31#endif 31#endif
32 32
33#include <unistd.h> 33#include <unistd.h>
34#include <stdio.h> 34#include <stdio.h>
35#include <signal.h> 35#include <signal.h>
36#include <fcntl.h> 36#include <fcntl.h>
37#include <sys/ioctl.h> 37#include <sys/ioctl.h>
38 38
39#define SHARP_DEV_IOCTL_COMMAND_START 0x5680 39#define SHARP_DEV_IOCTL_COMMAND_START 0x5680
40 40
41/* --- for SHARP_BUZZER device --- */ 41/* --- for SHARP_BUZZER device --- */
42 #defineSHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) 42#define SHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
43#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START) 43#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START)
44#define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1) 44#define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1)
45#define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2) 45#define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2)
46#define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3) 46#define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3)
47#define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4) 47#define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4)
48#define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5) 48#define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5)
49 49
50#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */ 50#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */
51#define SHARP_BUZ_KEYSOUND 2 /* key sound */ 51#define SHARP_BUZ_KEYSOUND 2 /* key sound */
52#define SHARP_PDA_ILLCLICKSOUND 3 /* illegal click */ 52#define SHARP_PDA_ILLCLICKSOUND 3 /* illegal click */
53#define SHARP_PDA_WARNSOUND 4 /* warning occurred */ 53#define SHARP_PDA_WARNSOUND 4 /* warning occurred */
54#define SHARP_PDA_ERRORSOUND 5 /* error occurred */ 54#define SHARP_PDA_ERRORSOUND 5 /* error occurred */
@@ -61,24 +61,27 @@
61#define SHARP_BUZ_DAILY_ALARM 12 /* daily alarm */ 61#define SHARP_BUZ_DAILY_ALARM 12 /* daily alarm */
62#define SHARP_BUZ_GOT_PHONE_CALL 13 /* phone call sound */ 62#define SHARP_BUZ_GOT_PHONE_CALL 13 /* phone call sound */
63#define SHARP_BUZ_GOT_MAIL 14 /* mail sound */ 63#define SHARP_BUZ_GOT_MAIL 14 /* mail sound */
64 64
65 65
66#define CUSTOM_BUZZER( sound ) \ 66#define CUSTOM_BUZZER( sound ) \
67{ \ 67{ \
68 static int fd = open( "/dev/sharp_buz", O_RDWR|O_NONBLOCK ); \ 68 static int fd = open( "/dev/sharp_buz", O_RDWR|O_NONBLOCK ); \
69 ioctl( fd, SHARP_BUZZER_MAKESOUND, sound ); \ 69 ioctl( fd, SHARP_BUZZER_MAKESOUND, sound ); \
70} 70}
71 71
72#define CUSTOM_SOUND_ALARM CUSTOM_BUZZER( SHARP_BUZ_SCHEDULE_ALARM ) 72#define CUSTOM_SOUND_ALARM CUSTOM_BUZZER( SHARP_BUZ_SCHEDULE_ALARM )
73#define CUSTOM_SOUND_KEYCLICK CUSTOM_BUZZER( SHARP_BUZ_KEYSOUND )
74#define CUSTOM_SOUND_TOUCH CUSTOM_BUZZER( SHARP_BUZ_TOUCHSOUND )
75
73 76
74#include <sys/ioctl.h> 77#include <sys/ioctl.h>
75#include <asm/sharp_char.h> 78#include <asm/sharp_char.h>
76 79
77// a bit awkward, as this value is defined in emailclient.cpp aswell... 80// a bit awkward, as this value is defined in emailclient.cpp aswell...
78#define LED_MAIL 0 81#define LED_MAIL 0
79#define SHARP_LED_MAIL 9 82#define SHARP_LED_MAIL 9
80 83
81#define CUSTOM_LEDS( led, status ) \ 84#define CUSTOM_LEDS( led, status ) \
82{ \ 85{ \
83 if ( led == LED_MAIL ) \ 86 if ( led == LED_MAIL ) \
84 led = SHARP_LED_MAIL; \ 87 led = SHARP_LED_MAIL; \
@@ -88,60 +91,60 @@
88 leds.which = led; \ 91 leds.which = led; \
89 leds.status = status; \ 92 leds.status = status; \
90 ioctl( fd, SHARP_LED_SETSTATUS, (char*)&leds ); \ 93 ioctl( fd, SHARP_LED_SETSTATUS, (char*)&leds ); \
91} 94}
92 95
93#define QPE_HAVE_MEMALERTER 96#define QPE_HAVE_MEMALERTER
94 97
95#define QPE_MEMALERTER_IMPL \ 98#define QPE_MEMALERTER_IMPL \
96static void sig_handler(int sig) \ 99static void sig_handler(int sig) \
97{ \ 100{ \
98 switch (sig) { \ 101 switch (sig) { \
99 case SIGHUP: \ 102 case SIGHUP: \
100 memstate = VeryLow; \ 103 memstate = VeryLow; \
101 break; \ 104 break; \
102 case SIGUSR1: \ 105 case SIGUSR1: \
103 memstate = Normal; \ 106 memstate = Normal; \
104 break; \ 107 break; \
105 case SIGUSR2: \ 108 case SIGUSR2: \
106 memstate = Low; \ 109 memstate = Low; \
107 break; \ 110 break; \
108 } \ 111 } \
109} \ 112} \
110static void initMemalerter() \ 113static void initMemalerter() \
111{ \ 114{ \
112 struct sigaction sa; \ 115 struct sigaction sa; \
113 memset(&sa, '\0', sizeof sa); \ 116 memset(&sa, '\0', sizeof sa); \
114 sa.sa_handler = sig_handler; \ 117 sa.sa_handler = sig_handler; \
115 sa.sa_flags = SA_RESTART; \ 118 sa.sa_flags = SA_RESTART; \
116 if (sigaction(SIGHUP, &sa, NULL) < 0) { \ 119 if (sigaction(SIGHUP, &sa, NULL) < 0) { \
117 return; \ 120 return; \
118 } \ 121 } \
119 if (sigaction(SIGUSR1, &sa, NULL) < 0) { \ 122 if (sigaction(SIGUSR1, &sa, NULL) < 0) { \
120 return; \ 123 return; \
121 } \ 124 } \
122 if (sigaction(SIGUSR2, &sa, NULL) < 0) { \ 125 if (sigaction(SIGUSR2, &sa, NULL) < 0) { \
123 return; \ 126 return; \
124 } \ 127 } \
125 FILE *fo = fopen("/proc/sys/vm/freepg_signal_proc", "w"); \ 128 FILE *fo = fopen("/proc/sys/vm/freepg_signal_proc", "w"); \
126 \ 129 \
127 if (!fo) \ 130 if (!fo) \
128 return; \ 131 return; \
129 fprintf(fo, "qpe\n"); \ 132 fprintf(fo, "qpe\n"); \
130 fclose(fo); \ 133 fclose(fo); \
131} 134}
132 135
133#define QPE_INITIAL_NUMLOCK_STATE \ 136#define QPE_INITIAL_NUMLOCK_STATE \
134{ \ 137{ \
135 bool numLock = FALSE; \ 138 bool numLock = FALSE; \
136 sharp_kbdctl_modifstat st; \ 139 sharp_kbdctl_modifstat st; \
137 int dev = ::open("/dev/sharp_kbdctl", O_RDWR); \ 140 int dev = ::open("/dev/sharp_kbdctl", O_RDWR); \
138 if( dev >= 0 ) { \ 141 if( dev >= 0 ) { \
139 memset(&st, 0, sizeof(st)); \ 142 memset(&st, 0, sizeof(st)); \
140 st.which = 3; \ 143 st.which = 3; \
141 int ret = ioctl(dev, SHARP_KBDCTL_GETMODIFSTAT, (char*)&st); \ 144 int ret = ioctl(dev, SHARP_KBDCTL_GETMODIFSTAT, (char*)&st); \
142 if( !ret ) \ 145 if( !ret ) \
143 numLock = (bool)st.stat; \ 146 numLock = (bool)st.stat; \
144 ::close(dev); \ 147 ::close(dev); \
145 } \ 148 } \
146 return numLock; \ 149 return numLock; \
147} 150}