mirror of
https://github.com/moonlight-stream/moonlight-ios.git
synced 2026-06-15 21:21:45 +00:00
Now stop discovery when pairing
This commit is contained in:
@@ -21,6 +21,7 @@
|
|||||||
- (id) initWithHosts:(NSArray*)hosts andCallback:(id<DiscoveryCallback>) callback;
|
- (id) initWithHosts:(NSArray*)hosts andCallback:(id<DiscoveryCallback>) callback;
|
||||||
- (void) startDiscovery;
|
- (void) startDiscovery;
|
||||||
- (void) stopDiscovery;
|
- (void) stopDiscovery;
|
||||||
|
- (void) stopDiscoveryBlocking;
|
||||||
- (BOOL) addHostToDiscovery:(Host*)host;
|
- (BOOL) addHostToDiscovery:(Host*)host;
|
||||||
- (void) removeHostFromDiscovery:(Host*)host;
|
- (void) removeHostFromDiscovery:(Host*)host;
|
||||||
- (void) discoverHost:(NSString*)hostAddress withCallback:(void (^)(Host*))callback;
|
- (void) discoverHost:(NSString*)hostAddress withCallback:(void (^)(Host*))callback;
|
||||||
|
|||||||
@@ -69,8 +69,14 @@
|
|||||||
[_mdnsMan stopSearching];
|
[_mdnsMan stopSearching];
|
||||||
[_opQueue cancelAllOperations];
|
[_opQueue cancelAllOperations];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void) stopDiscoveryBlocking {
|
||||||
|
NSLog(@"Stopping discovery and waiting for workers to stop");
|
||||||
shouldDiscover = NO;
|
shouldDiscover = NO;
|
||||||
[_mdnsMan stopSearching];
|
[_mdnsMan stopSearching];
|
||||||
|
[_opQueue cancelAllOperations];
|
||||||
|
[_opQueue waitUntilAllOperationsAreFinished];
|
||||||
|
NSLog(@"All discovery workers stopped");
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL) addHostToDiscovery:(Host *)host {
|
- (BOOL) addHostToDiscovery:(Host *)host {
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ static StreamConfiguration* streamConfig;
|
|||||||
[_pairAlert dismissWithClickedButtonIndex:0 animated:NO];
|
[_pairAlert dismissWithClickedButtonIndex:0 animated:NO];
|
||||||
_pairAlert = [[UIAlertView alloc] initWithTitle:@"Pairing Failed" message:message delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
|
_pairAlert = [[UIAlertView alloc] initWithTitle:@"Pairing Failed" message:message delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
|
||||||
[_pairAlert show];
|
[_pairAlert show];
|
||||||
|
[_discMan startDiscovery];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,6 +60,7 @@ static StreamConfiguration* streamConfig;
|
|||||||
[_pairAlert dismissWithClickedButtonIndex:0 animated:NO];
|
[_pairAlert dismissWithClickedButtonIndex:0 animated:NO];
|
||||||
_pairAlert = [[UIAlertView alloc] initWithTitle:@"Pairing Succesful" message:@"Successfully paired to host" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
|
_pairAlert = [[UIAlertView alloc] initWithTitle:@"Pairing Succesful" message:@"Successfully paired to host" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
|
||||||
[_pairAlert show];
|
[_pairAlert show];
|
||||||
|
[_discMan startDiscovery];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,6 +109,8 @@ static StreamConfiguration* streamConfig;
|
|||||||
[self alreadyPaired];
|
[self alreadyPaired];
|
||||||
} else {
|
} else {
|
||||||
NSLog(@"Trying to pair");
|
NSLog(@"Trying to pair");
|
||||||
|
// Polling the server while pairing causes the server to screw up
|
||||||
|
[_discMan stopDiscoveryBlocking];
|
||||||
PairManager* pMan = [[PairManager alloc] initWithManager:hMan andCert:_cert callback:self];
|
PairManager* pMan = [[PairManager alloc] initWithManager:hMan andCert:_cert callback:self];
|
||||||
[_opQueue addOperation:pMan];
|
[_opQueue addOperation:pMan];
|
||||||
}
|
}
|
||||||
@@ -322,9 +326,7 @@ static StreamConfiguration* streamConfig;
|
|||||||
[super viewDidDisappear:animated];
|
[super viewDidDisappear:animated];
|
||||||
// when discovery stops, we must create a new instance because you cannot restart an NSOperation when it is finished
|
// when discovery stops, we must create a new instance because you cannot restart an NSOperation when it is finished
|
||||||
[_discMan stopDiscovery];
|
[_discMan stopDiscovery];
|
||||||
@synchronized(hostList) {
|
|
||||||
_discMan = [[DiscoveryManager alloc] initWithHosts:[hostList allObjects] andCallback:self];
|
|
||||||
}
|
|
||||||
// In case the host objects were updated in the background
|
// In case the host objects were updated in the background
|
||||||
[[[DataManager alloc] init] saveHosts];
|
[[[DataManager alloc] init] saveHosts];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user