33#define VDOWN_BUTTON 103
44#define POWER_BUTTON 104
55#define HOME_BUTTON 101
6+ bool inited = false ;
67
7- static NSString *pauseMusicSequence = @" " ;
8- static NSString *skipTrackSequence = @" " ;
9- static NSString *toggleRepeatSequence = @" " ;
10- static NSString *f15Sequence = @" " ;
11- static NSString *b15Sequence = @" " ;
12- static NSTimer *bopTimer;
13-
14-
15- static void loadPrefs ();
16-
17-
8+ %group tweakStuff
189id sharedInstance;
19- static BOOL tweakEnabled = YES ;
20- static BOOL isRunning = NO ;
21-
10+ bool isRunning = NO ;
2211static void triggerButton (char button) {
23- if (tweakEnabled && !isRunning) {
24- isRunning = YES ;
25- if (!sharedInstance) sharedInstance = [[Bop alloc ] init ] ;
12+ NSLog ( @" [Bop] triggerButton " );
13+ if (!isRunning){
14+ isRunning = YES ;
2615 [sharedInstance buttonPressed_LG: button];
27- isRunning = NO ;
28- }
16+ isRunning = NO ;
17+
18+ }
19+
2920}
3021
3122
@@ -72,6 +63,7 @@ static void triggerButton(char button) {
7263 if (force == 1 && force2 == 1 ){
7364 // NSLog(@"[BOP] Volume");
7465 triggerButton (' V' );
66+
7567 }
7668 }
7769 if (type+type2 == 207 && force+force2 == 2 ){
@@ -82,8 +74,10 @@ static void triggerButton(char button) {
8274 // NSLog(@"[BOP] Single button %i", type);
8375 if (type == VDOWN_BUTTON)
8476 triggerButton (' D' );
85- else if (type == VUP_BUTTON)
86- triggerButton (' U' );
77+ else if (type == VUP_BUTTON){
78+ NSLog (@" [Bop] %i " , force);
79+ triggerButton (' U' );
80+ }
8781 else if (type == POWER_BUTTON)
8882 triggerButton (' L' );
8983 else if (type == HOME_BUTTON)
@@ -96,92 +90,16 @@ static void triggerButton(char button) {
9690%end
9791
9892
99- @implementation Bop
100- NSMutableString *sequence = [@" " mutableCopy ];
101- NSTimeInterval lastPress;
102-
103- + (id )sharedInstance {
104- return sharedInstance;
105- }
106-
107- -(id )init {
108- lastPress = 0.0 ;
109- return self;
110- }
111-
112-
113-
114- -(void )buttonPressed_LG : (char )button {
115-
116- NSTimeInterval now = [[NSDate date ] timeIntervalSince1970 ] * 1000 ;
117- if (now - lastPress > 650.0 ){
118- [sequence setString: @" " ];
119- } else {
120- if (bopTimer)
121- [bopTimer invalidate ];
122- }
123- if (now - lastPress < 100.0 )
124- [sequence deleteCharactersInRange: NSMakeRange ([sequence length ]-1 , 1 )];
125- lastPress = now;
126-
127- [sequence appendFormat: @" %c " , button];
128- NSLog (@" [BOP] Sequence:%@ Added:%c " , sequence, button);
129- bopTimer = [NSTimer scheduledTimerWithTimeInterval: 2.0
130- target: self
131- selector: @selector (interpSeq )
132- userInfo: nil
133- repeats: NO ];
134- }
135- -(void )interpSeq {
136-
137- if ([[sequence copy ] isEqualToString: pauseMusicSequence]) {[self pauseMusic ];}
138- if ([[sequence copy ] isEqualToString: skipTrackSequence]) {[self skipTrack ];}
139- if ([[sequence copy ] isEqualToString: toggleRepeatSequence]) {[self repeatMusic ];}
140- if ([[sequence copy ] isEqualToString: f15Sequence]) {[self f15Music ];}
141- if ([[sequence copy ] isEqualToString: b15Sequence]) {[self b15Music ];}
142- }
143-
144- -(void )respring_LG : (BOOL )safeMode {
145- [sequence setString: @" " ];
146- pid_t pid;
147- if (safeMode) {
148- const char * args[] = {" killall" , " -SEGV" , " SpringBoard" , NULL };
149- posix_spawn (&pid, " /usr/bin/killall" , NULL , NULL , (char * const *)args, NULL );
150- } else {
151- const char * args[] = {" killall" , " backboardd" , NULL };
152- posix_spawn (&pid, " /usr/bin/killall" , NULL , NULL , (char * const *)args, NULL );
153- }
154- }
155- -(void )pauseMusic {
156- MRMediaRemoteSendCommand (kMRTogglePlayPause , 0 );
157- }
158- -(void )repeatMusic {
159- MRMediaRemoteSendCommand (kMRToggleRepeat , 0 );
160- }
161- -(void )skipTrack {
162- MRMediaRemoteSendCommand (kMRNextTrack , 0 );
163- }
164- -(void )f15Music {
165- MRMediaRemoteSendCommand (kMRSkipFifteenSeconds , 0 );
166- }
167- -(void )b15Music {
168- MRMediaRemoteSendCommand (kMRGoBackFifteenSeconds , 0 );
169- }
170- -(void )loadPrefs {
171- loadPrefs ();
172- }
173-
174-
175- @end
17693
94+ %end
17795
17896
179- static void loadPrefs () {
180- NSDictionary *prefs = [[NSUserDefaults standardUserDefaults ] persistentDomainForName: @" com.squidkingdom.boppreferences.defaults" ];
181- pauseMusicSequence = [[prefs objectForKey: @" pauseMusicSequence" ] uppercaseString ];
182- skipTrackSequence = [[prefs objectForKey: @" skipTrackSequence" ] uppercaseString ];
183- }
18497
18598%ctor {
186- loadPrefs ();
99+ NSLog (@" [Bop] Ctor" );
100+ if (!inited)
101+ %init (tweakStuff);
102+ inited = true ;
103+ sharedInstance = [[Bop alloc ] init ];
104+ [sharedInstance loadPrefs ];
187105}
0 commit comments