|
@@ -91,6 +91,7 @@ static inline void wd_main_queue(void (^block)(void)){
|
|
} else {
|
|
} else {
|
|
[self startUpnp];
|
|
[self startUpnp];
|
|
}
|
|
}
|
|
|
|
+ [self.currentDevices removeAllObjects];
|
|
__block int count = searchTime +1;
|
|
__block int count = searchTime +1;
|
|
_searchTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(0, 0));
|
|
_searchTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(0, 0));
|
|
dispatch_source_set_timer(_searchTimer, DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
|
|
dispatch_source_set_timer(_searchTimer, DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
|
|
@@ -190,10 +191,7 @@ static inline void wd_main_queue(void (^block)(void)){
|
|
-(void)CallBackAddZoneMedia:(NSArray *)nStr Size:(NSInteger)size{
|
|
-(void)CallBackAddZoneMedia:(NSArray *)nStr Size:(NSInteger)size{
|
|
NSLog(@"搜索到设备:%@",nStr);
|
|
NSLog(@"搜索到设备:%@",nStr);
|
|
NSLog(@"%s",__func__);
|
|
NSLog(@"%s",__func__);
|
|
- dispatch_async(dispatch_get_global_queue(0, 0), ^{
|
|
|
|
- [self addDevice:nStr];
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
|
|
+ [self addDevice:nStr];
|
|
}
|
|
}
|
|
|
|
|
|
- (void)updateClockID:(NSString *)clockID clockDic:(NSDictionary *)clockDic clockTime:(NSString *)clockTime operationType:(BOOL)isOn deleteClock:(BOOL)isDelete{
|
|
- (void)updateClockID:(NSString *)clockID clockDic:(NSDictionary *)clockDic clockTime:(NSString *)clockTime operationType:(BOOL)isOn deleteClock:(BOOL)isDelete{
|
|
@@ -227,17 +225,14 @@ static inline void wd_main_queue(void (^block)(void)){
|
|
}
|
|
}
|
|
|
|
|
|
- (void)addDevice:(NSArray *)array {
|
|
- (void)addDevice:(NSArray *)array {
|
|
-
|
|
|
|
NSMutableDictionary *deviceDict = [NSMutableDictionary dictionary];
|
|
NSMutableDictionary *deviceDict = [NSMutableDictionary dictionary];
|
|
-
|
|
|
|
- [deviceDict setObject:array[0] forKey:@"devName"];
|
|
|
|
- [deviceDict setObject:array[1] forKey:@"devUUId"];
|
|
|
|
- [deviceDict setObject:array[2] forKey:@"devBaseURL"];
|
|
|
|
-
|
|
|
|
- [deviceDict setObject:array[5] forKey:@"devCMURL"];
|
|
|
|
- [deviceDict setObject:array[7] forKey:@"devAVTURL"];
|
|
|
|
- [deviceDict setObject:array[9] forKey:@"devRCURL"];
|
|
|
|
- [deviceDict setObject:array[11] forKey:@"devGMURL"];
|
|
|
|
|
|
+ [deviceDict setObject:array[0] forKey:@"deviceName"];
|
|
|
|
+ [deviceDict setObject:array[1] forKey:@"deviceUUID"];
|
|
|
|
+ [deviceDict setObject:array[2] forKey:@"deviceBaseUrl"];
|
|
|
|
+ [deviceDict setObject:array[5] forKey:@"connectionManagerUrl"];
|
|
|
|
+ [deviceDict setObject:array[7] forKey:@"avTransportUrl"];
|
|
|
|
+ [deviceDict setObject:array[9] forKey:@"renderingControlUrl"];
|
|
|
|
+ [deviceDict setObject:array[11] forKey:@"groupManagementUrl"];
|
|
NSArray *deviceInfo = [[ASControlTools sharedInstanceUPNP] libupnp_GetDeviceInfo:array[11] ServiceTYPE:array[10]];
|
|
NSArray *deviceInfo = [[ASControlTools sharedInstanceUPNP] libupnp_GetDeviceInfo:array[11] ServiceTYPE:array[10]];
|
|
if(deviceInfo == nil || [deviceInfo isEqual:[NSNull null]]){
|
|
if(deviceInfo == nil || [deviceInfo isEqual:[NSNull null]]){
|
|
return;
|
|
return;
|
|
@@ -254,7 +249,6 @@ static inline void wd_main_queue(void (^block)(void)){
|
|
NSString *devFlag = [NSString stringWithFormat:@"%@-%@",deviceInfo[9],deviceInfo[10]];
|
|
NSString *devFlag = [NSString stringWithFormat:@"%@-%@",deviceInfo[9],deviceInfo[10]];
|
|
[deviceDict setObject:devFlag forKey:@"devFlag"];
|
|
[deviceDict setObject:devFlag forKey:@"devFlag"];
|
|
[deviceDict setObject:[deviceInfo[18] length] ?deviceInfo[18]:@"MJ_M" forKey:@"devProductModel"];
|
|
[deviceDict setObject:[deviceInfo[18] length] ?deviceInfo[18]:@"MJ_M" forKey:@"devProductModel"];
|
|
- [deviceDict setObject:[deviceInfo[32] length] ?deviceInfo[32]:@"null" forKey:@"devClockStr"];
|
|
|
|
[deviceDict setObject:[deviceInfo[39] length] ?deviceInfo[39] :@"0" forKey:@"devOpenLowPowerNotice"];
|
|
[deviceDict setObject:[deviceInfo[39] length] ?deviceInfo[39] :@"0" forKey:@"devOpenLowPowerNotice"];
|
|
[deviceDict setObject:[deviceInfo[19] length] ? deviceInfo[19] : @"1.0.0" forKey:@"devVersion"];
|
|
[deviceDict setObject:[deviceInfo[19] length] ? deviceInfo[19] : @"1.0.0" forKey:@"devVersion"];
|
|
[deviceDict setObject:[deviceInfo[41] length] ? deviceInfo[41] :@"" forKey:@"devDuerAccessToken"];
|
|
[deviceDict setObject:[deviceInfo[41] length] ? deviceInfo[41] :@"" forKey:@"devDuerAccessToken"];
|
|
@@ -288,13 +282,24 @@ static inline void wd_main_queue(void (^block)(void)){
|
|
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"deviceUUID = %@",array[1]];
|
|
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"deviceUUID = %@",array[1]];
|
|
BOOL isExist = [self.currentDevices filteredArrayUsingPredicate:predicate].count;
|
|
BOOL isExist = [self.currentDevices filteredArrayUsingPredicate:predicate].count;
|
|
if (!isExist) {
|
|
if (!isExist) {
|
|
|
|
+ id<MKRWIFIDeviceManagerDelegate> obj;
|
|
|
|
+ NSEnumerator *enumerator = [self.listeners objectEnumerator];
|
|
|
|
+ while ((obj = [enumerator nextObject]) != nil) {
|
|
|
|
+ wd_main_queue(^{
|
|
|
|
+ if ([obj respondsToSelector:@selector(didSearchNewDevice:)]) {
|
|
|
|
+ [obj didSearchNewDevice:deviceDict];
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
[self.currentDevices addObject:deviceDict];
|
|
[self.currentDevices addObject:deviceDict];
|
|
}
|
|
}
|
|
id<MKRWIFIDeviceManagerDelegate> obj;
|
|
id<MKRWIFIDeviceManagerDelegate> obj;
|
|
NSEnumerator *enumerator = [self.listeners objectEnumerator];
|
|
NSEnumerator *enumerator = [self.listeners objectEnumerator];
|
|
while ((obj = [enumerator nextObject]) != nil) {
|
|
while ((obj = [enumerator nextObject]) != nil) {
|
|
wd_main_queue(^{
|
|
wd_main_queue(^{
|
|
- [obj didSearchNewDevice:self.currentDevices];
|
|
|
|
|
|
+ if ([obj respondsToSelector:@selector(currentDevicesChange:)]) {
|
|
|
|
+ [obj currentDevicesChange:self.currentDevices];
|
|
|
|
+ }
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|