@classmethod
def factory(cls, response):
    """
        Factory event from response.

        :returns: SpeakerServiceEvent instance or None if response is unsupported
        """
    valid_responses_map = {'CpChanged': 'speaker.service.changed',
        'SignInStatus': 'speaker.service.logged_in', 'SignOutStatus':
        'speaker.service.logged_out'}
    if response.name not in valid_responses_map:
        return None
    return cls(valid_responses_map[response.name], response.data['cpname'])
