CapabilityFilter¶
CapabilityFilter is an object that wraps an NSArray of required capabilities. This CapabilityFilter is used for determining which devices will appear in DiscoveryManager’s compatibleDevices array. The contents of a CapabilityFilter’s array must be any of the string constants defined in the Capability header files.
CapabilityFilter values¶
Here are some examples of values for the Capability constants.
- kMediaPlayerPlayVideo = “MediaPlayer.Display.Video”
- kMediaPlayerDisplayImage = “MediaPlayer.Display.Image”
- kVolumeControlSubscribe = “VolumeControl.Subscribe”
- kMediaControlAny = “Media.Control.Any”
All Capability header files also define a constant array of all capabilities defined in that header (ex. kVolumeControlCapabilities).
AND/OR Filtering¶
CapabilityFilter is an AND filter. A ConnectableDevice would need to satisfy all conditions of a CapabilityFilter to pass.
[DiscoveryManager capabilityFilters] is an OR filter. a ConnectableDevice only needs to satisfy one condition (CapabilityFilter) to pass.
Examples¶
Filter for all devices that support video playback AND any media controls AND volume up/down.
NSArray *capabilities = @[
kMediaPlayerPlayVideo,
kMediaControlAny,
kVolumeControlVolumeUpDown
];
CapabilityFilter *filter =
[CapabilityFilter filterWithCapabilities:capabilities];
[[DiscoveryManager sharedManager] setCapabilityFilters:@[filter]];
Filter for all devices that support (video playback AND any media controls AND volume up/down) OR (image display).
NSArray *videoCapabilities = @[
kMediaPlayerPlayVideo,
kMediaControlAny,
kVolumeControlVolumeUpDown
];
NSArray *imageCapabilities = @[
kMediaPlayerDisplayImage
];
CapabilityFilter *videoFilter =
[CapabilityFilter filterWithCapabilities:videoCapabilities];
CapabilityFilter *imageFilter =
[CapabilityFilter filterWithCapabilities:imageCapabilities];
[[DiscoveryManager sharedManager] setCapabilityFilters:@[videoFilter, imageFilter]];
Properties¶
- NSArray * capabilities
- Array of capabilities required by this filter. This property is readonly use the addCapability or addCapabilities to build this object.
Methods¶
- + (CapabilityFilter *) filterWithCapabilities:(NSArray *)capabilities
Create a CapabilityFilter with the given array required capabilities.
Parameters
- capabilities – Capabilities to be added to the new filter
- - (void) addCapability:(NSString *)capability
Add a required capability to the filter.
Parameters
- capability – Capability name to add (see capability header files for NSString constants)
- - (void) addCapabilities:(NSArray *)capabilities
Add array of required capabilities to the filter.
Parameters
- capabilities – List of capability names (see capability header files for NSString constants)