void qtVlc::eventCallback(const libvlc_event_t *event, void *data) { //static int i_first_time_media_player_time_changed = 0; //static bool b_media_player_title_changed = false; qtVlc *const that = static_cast<qtVlc *>(data); if (event->type != libvlc_MediaPlayerTimeChanged) qDebug() << "event:" << libvlc_event_type_name(event->type) << that->getUrl(); // Media player events if (event->type == libvlc_MediaPlayerStopped) { //qDebug() << "event:" << libvlc_event_type_name(event->type) << that->getUrl(); emit that->playerStopped(); } if (event->type == libvlc_MediaPlayerTitleChanged) { qDebug() << "event:" << libvlc_event_type_name(event->type) << that->getUrl(); //emit that->stateChanged(Phonon::BufferingState); } if (event->type == libvlc_MediaPlayerTimeChanged) { //qDebug() << "event:" << libvlc_event_type_name(event->type) << that->getUrl(); emit that->timeChanged(); //that->timeChanged(); } }
void VLCPlayer::handleEvent(const libvlc_event_t* pEvt, void * pUserData) { libvlc_time_t time; switch(pEvt->type) { case libvlc_MediaPlayerTimeChanged: time = libvlc_media_player_get_time(VLCPlayer::media_player); //qDebug() << "MediaPlayerTimeChanged " << time << " ms"; break; case libvlc_MediaPlayerEndReached: qDebug() << "MediaPlayerEndReached"; VLCPlayer::mutex.lock(); VLCPlayer::playbackInProgress = false; VLCPlayer::mutex.unlock(); break; default: printf("%s\n", libvlc_event_type_name(pEvt->type)); } if (VLCPlayer::handler) VLCPlayer::handler -> handleEvent(pEvt, pUserData); }
void VlcMediaListPlayerPrivate::event_cb(const libvlc_event_t *e, void *o) { VlcMediaListPlayerPrivate *p = static_cast<VlcMediaListPlayerPrivate *>(o); emit p->libvlcEvent(e); switch(e->type) { case libvlc_MediaListPlayerPlayed: emit p->played(); break; case libvlc_MediaListPlayerNextItemSet: emit p->nextItemSet(e->u.media_list_player_next_item_set.item); emit p->nextItemSet(VlcMedia(e->u.media_list_player_next_item_set.item)); break; case libvlc_MediaListPlayerStopped: emit p->stopped(); break; default: qDebug("VlcMediaListPlayer: unknown Event: %i (%s)", e->type, libvlc_event_type_name(e->type)); } }
/************************************************************************** * event_attach (internal) : * * Add a callback for an event. **************************************************************************/ static int event_attach( libvlc_event_manager_t * p_event_manager, libvlc_event_type_t event_type, libvlc_callback_t pf_callback, void *p_user_data, bool is_asynchronous ) { libvlc_event_listeners_group_t * listeners_group; libvlc_event_listener_t * listener; int i; listener = malloc(sizeof(libvlc_event_listener_t)); if( unlikely(listener == NULL) ) return ENOMEM; listener->event_type = event_type; listener->p_user_data = p_user_data; listener->pf_callback = pf_callback; listener->is_asynchronous = is_asynchronous; vlc_mutex_lock( &p_event_manager->object_lock ); for( i = 0; i < vlc_array_count(&p_event_manager->listeners_groups); i++ ) { listeners_group = vlc_array_item_at_index(&p_event_manager->listeners_groups, i); if( listeners_group->event_type == listener->event_type ) { vlc_array_append( &listeners_group->listeners, listener ); vlc_mutex_unlock( &p_event_manager->object_lock ); return 0; } } vlc_mutex_unlock( &p_event_manager->object_lock ); free(listener); fprintf( stderr, "This object event manager doesn't know about '%s' events", libvlc_event_type_name(event_type) ); assert(0); return -1; }
void VLCVideoWrapper::handleVLCEvents(const libvlc_event_t *pEvent, void *param) { printf("receive event %s\n", libvlc_event_type_name(pEvent->type)); }
void VLCEventBridge::onVLCEvent( const libvlc_event_t * event, void * playerInstance ) { VLCMediaPlayer* p = ( VLCMediaPlayer* )playerInstance; switch( event->type ) { case libvlc_MediaPlayerPaused: { p->emitPaused(); break; } case libvlc_MediaPlayerBuffering: { p->emitBuffering(); break; } case libvlc_MediaPlayerPlaying: { p->emitPlaying(); break; } case libvlc_MediaPlayerOpening: { p->emitOpening(); break; } case libvlc_MediaPlayerStopped: { p->emitStopped(); break; } case libvlc_MediaPlayerEndReached: { p->emitEnded(); break; } case libvlc_MediaPlayerPausableChanged: { int newPausable = event->u.media_player_pausable_changed.new_pausable; p->emitPausable( newPausable == 1 ); break; } case libvlc_MediaPlayerSeekableChanged: { int newSeekable = event->u.media_player_seekable_changed.new_seekable; p->emitSeekable( newSeekable == 1 ); break; } case libvlc_MediaPlayerPositionChanged: { float newPosition = event->u.media_player_position_changed.new_position; p->emitPositionChanged( newPosition ); break; } case libvlc_MediaPlayerTimeChanged: { libvlc_time_t newTime = event->u.media_player_time_changed.new_time; p->emitTimeChanged( newTime ); break; } case libvlc_MediaPlayerEncounteredError: { p->emitEncounteredError(); break; } case libvlc_MediaPlayerMediaChanged: { libvlc_media_t* newMedia = event->u.media_player_media_changed.new_media; p->handleMediaChanged( newMedia ); break; } case libvlc_MediaPlayerSnapshotTaken: { char* pszFilename = event->u.media_player_snapshot_taken.psz_filename; QString fileName( pszFilename ); p->emitSnapshotTaken( fileName ); break; } default: qDebug() << "Unhandled EventType: " << libvlc_event_type_name( event->type ); } }
inline const char* eventName( libvlc_event_type_t event ) { return libvlc_event_type_name( event ); }