code: def usable_service(self):
          
          services = self._services
          for protocol in self._supported_protocols:
              if protocol in services and services[protocol].is_usable():
                  return services[protocol]
  
          return None
docs: Return a usable service or None if there is none.
  
          A service is usable if enough configuration to be able to make a
          connection is available. If several protocols are usable, MRP will be
          preferred over DMAP.