/** * Create a new media player event for a given native event. * * @param event native event * @param eventMask bit mask of enabled events (i.e. events to send notifications for) * @return media player event, or <code>null</code> if the native event type is not enabled or otherwise could not be handled */ public MediaListPlayerEvent newMediaListPlayerEvent(libvlc_event_t evt, int eventMask) { // Create an event suitable for the native event type... MediaListPlayerEvent result = null; switch(evt.type) { // === Events relating to the media list player ========================= case libvlc_event_e.libvlc_MediaListPlayerNextItemSet: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.MEDIA_CHANGED)) { IntPtr media = evt.u.item; result = new MediaListPlayerNextItemSetEvent(mediaListPlayer, media, mediaListPlayer.Mrl(media)); // } break; // === Events relating to the current media ============================= case libvlc_event_e.libvlc_MediaMetaChanged: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.MEDIA_META_CHANGED)) { result = new MediaListMediaMetaChangedEvent(mediaListPlayer, evt.u.meta_type); // } break; case libvlc_event_e.libvlc_MediaSubItemAdded: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.MEDIA_SUB_ITEM_ADDED)) { result = new MediaListMediaSubItemAddedEvent(mediaListPlayer, evt.u.new_child); // } break; case libvlc_event_e.libvlc_MediaDurationChanged: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.MEDIA_DURATION_CHANGED)) { result = new MediaListMediaDurationChangedEvent(mediaListPlayer, evt.u.new_duration); // } break; case libvlc_event_e.libvlc_MediaParsedChanged: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.MEDIA_PARSED_CHANGED)) { result = new MediaListMediaParsedChangedEvent(mediaListPlayer, evt.u.new_status); // } break; case libvlc_event_e.libvlc_MediaFreed: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.MEDIA_FREED)) { result = new MediaListMediaFreedEvent(mediaListPlayer); // } break; case libvlc_event_e.libvlc_MediaStateChanged: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.MEDIA_STATE_CHANGED)) { result = new MediaListMediaStateChangedEvent(mediaListPlayer, evt.u.new_state); // } break; } return result; }
/** * Create an event. * * @param event native event * @return media list event, or <code>null</code> if the native event type is not enabled or otherwise could not be handled */ public MediaListEvent CreateEvent(libvlc_event_t evt) { // Create an event suitable for the native event type... MediaListEvent result = null; switch(evt.type) { case libvlc_event_e.libvlc_MediaListWillAddItem: //result = new MediaListWillAddItemEvent(mediaList, evt.u.media_list_event.item, evt.u.media_list_event.index); // FIXME break; case libvlc_event_e.libvlc_MediaListItemAdded: //result = new MediaListItemAddedEvent(mediaList, evt.u.media_list_event.item, evt.u.media_list_event.index); break; case libvlc_event_e.libvlc_MediaListWillDeleteItem: //result = new MediaListWillDeleteItemEvent(mediaList, evt.u.media_list_event.item, evt.u.media_list_event.index); break; case libvlc_event_e.libvlc_MediaListItemDeleted: //result = new MediaListItemDeletedEvent(mediaList, evt.u.media_list_event.item, evt.u.media_list_event.index); break; } return result; }
/** * Create a new media player event for a given native event. * * @param event native event * @param eventMask bit mask of enabled events (i.e. events to send notifications for) * @return media player event, or <code>null</code> if the native event type is not enabled or otherwise could not be handled */ public MediaPlayerEvent CreateEvent(libvlc_event_t evt, int eventMask) { // Create an event suitable for the native event type... MediaPlayerEvent result = null; switch(evt.type) { // === Events relating to the media player ============================== case libvlc_event_e.libvlc_MediaPlayerMediaChanged: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.MEDIA_CHANGED)) { result = new MediaPlayerMediaChangedEvent(mediaPlayer, evt.u.md, mediaPlayer.Mrl(evt.u.md)); // } break; case libvlc_event_e.libvlc_MediaPlayerNothingSpecial: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.MEDIA_CHANGED)) { result = new MediaPlayerNothingSpecialEvent(mediaPlayer); // } break; case libvlc_event_e.libvlc_MediaPlayerOpening: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.OPENING)) { result = new MediaPlayerOpeningEvent(mediaPlayer); // } break; case libvlc_event_e.libvlc_MediaPlayerBuffering: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.BUFFERING)) { result = new MediaPlayerBufferingEvent(mediaPlayer, evt.u.new_cache); // } break; case libvlc_event_e.libvlc_MediaPlayerPlaying: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.PLAYING)) { result = new MediaPlayerPlayingEvent(mediaPlayer); // } break; case libvlc_event_e.libvlc_MediaPlayerPaused: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.PAUSED)) { result = new MediaPlayerPausedEvent(mediaPlayer); // } break; case libvlc_event_e.libvlc_MediaPlayerStopped: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.STOPPED)) { result = new MediaPlayerStoppedEvent(mediaPlayer); // } break; case libvlc_event_e.libvlc_MediaPlayerForward: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.FORWARD)) { result = new MediaPlayerForwardEvent(mediaPlayer); // } break; case libvlc_event_e.libvlc_MediaPlayerBackward: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.BACKWARD)) { result = new MediaPlayerBackwardEvent(mediaPlayer); // } break; case libvlc_event_e.libvlc_MediaPlayerEndReached: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.FINISHED)) { result = new MediaPlayerEndReachedEvent(mediaPlayer); // } break; case libvlc_event_e.libvlc_MediaPlayerEncounteredError: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.ERROR)) { result = new MediaPlayerEncounteredErrorEvent(mediaPlayer); // } break; case libvlc_event_e.libvlc_MediaPlayerTimeChanged: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.TIME_CHANGED)) { result = new MediaPlayerTimeChangedEvent(mediaPlayer, evt.u.new_time); // } break; case libvlc_event_e.libvlc_MediaPlayerPositionChanged: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.POSITION_CHANGED)) { result = new MediaPlayerPositionChangedEvent(mediaPlayer, evt.u.new_position); // } break; case libvlc_event_e.libvlc_MediaPlayerSeekableChanged: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.SEEKABLE_CHANGED)) { result = new MediaPlayerSeekableChangedEvent(mediaPlayer, evt.u.new_seekable); // } break; case libvlc_event_e.libvlc_MediaPlayerPausableChanged: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.PAUSABLE_CHANGED)) { result = new MediaPlayerPausableChangedEvent(mediaPlayer, evt.u.new_pausable); // } break; case libvlc_event_e.libvlc_MediaPlayerTitleChanged: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.TITLE_CHANGED)) { result = new MediaPlayerTitleChangedEvent(mediaPlayer, evt.u.new_title); // } break; case libvlc_event_e.libvlc_MediaPlayerSnapshotTaken: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.SNAPSHOT_TAKEN)) { result = new MediaPlayerSnapshotTakenEvent(mediaPlayer, NativeString.String(evt.u.psz_filename)); // } break; case libvlc_event_e.libvlc_MediaPlayerLengthChanged: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.LENGTH_CHANGED)) { result = new MediaPlayerLengthChangedEvent(mediaPlayer, evt.u.new_length); // } break; case libvlc_event_e.libvlc_MediaPlayerVout: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.VIDEO_OUTPUT)) { result = new MediaPlayerVoutEvent(mediaPlayer, evt.u.new_count); // } break; // === Events relating to the current media ============================= case libvlc_event_e.libvlc_MediaMetaChanged: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.MEDIA_META_CHANGED)) { result = new MediaMetaChangedEvent(mediaPlayer, evt.u.meta_type); // } break; case libvlc_event_e.libvlc_MediaSubItemAdded: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.MEDIA_SUB_ITEM_ADDED)) { result = new MediaSubItemAddedEvent(mediaPlayer, evt.u.new_child); // } break; case libvlc_event_e.libvlc_MediaDurationChanged: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.MEDIA_DURATION_CHANGED)) { result = new MediaDurationChangedEvent(mediaPlayer, evt.u.new_duration); // } break; case libvlc_event_e.libvlc_MediaParsedChanged: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.MEDIA_PARSED_CHANGED)) { result = new MediaParsedChangedEvent(mediaPlayer, evt.u.new_status); // } break; case libvlc_event_e.libvlc_MediaFreed: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.MEDIA_FREED)) { result = new MediaFreedEvent(mediaPlayer); // } break; case libvlc_event_e.libvlc_MediaStateChanged: // if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.MEDIA_STATE_CHANGED)) { result = new MediaStateChangedEvent(mediaPlayer, evt.u.new_state); // } break; } return result; }