# Package com.brightcove.player.event

- Interface Summary
  Interface | Description
  --- | ---
  Component | Classes that implement this interface will be designed to work with the EventEmitter System Classes that implement this interface should use the Emits and ListensFor annotations
  EventEmitter | Defines the public facing api for classes that wish to emit events.
  EventListener | Abstract class used as part of the event registration process.
  EventLogger.LoggerCallback | This interface provides a way implement alternative logging.

- Class Summary
  Class | Description
  --- | ---
  AbstractComponent | Provides some common implementation that useful to all that interact with RegisteringEventEmitters components, including: Maintaining a reference to an EventEmitter Wraps incoming EventEmitter in a RegisteringEventEmitter Ensures incoming EventEmitter is not null Maintains a collection of EventListener tokens for use with EventEmitter.off() Provides standard required method for initializing Event listeners
  AbstractEvent<PropertyValueType> |
  BackgroundEventListener | Implements an `EventListener` and calls `processEvent` on a background thread.
  Event | Represents a single Event, that is designed to be passed down a chain of listeners.
  EventEmitterImpl | The 'Main' implementation of EventEmitter.
  EventLogger | Simple class that can be used to listen to and log out information on all emitted events.
  EventType | Maintains a list of Event types that the system is aware of.
  MediaEvent | Immutable object the describes a media event.
  RegisteringEventEmitter | The RegisteringEventEmitter allows developers to constrain which events their Components are intended to listen for and emit.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  Default | This annotation should be used to mark the processEvent method when declaring a subclass of EventListener.
  Emits | Annotation used for Component classes in order to describe what EventTypes this Component will Emits
  ListensFor | Annotation used for Component classes in order to describe what EventTypes this Component will ListensFor.