⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interfacewindow.cpp

📁 video linux conference
💻 CPP
📖 第 1 页 / 共 4 页
字号:
    fMenuBar->MoveTo(r.LeftTop());    fMenuBar->ResizeTo(r.Width(), fMenuBar->Bounds().Height());    r.top += fMenuBar->Bounds().Height() + 1.0;    p_mediaControl->MoveTo(r.LeftTop());    p_mediaControl->ResizeTo(r.Width(), r.Height());}/***************************************************************************** * InterfaceWindow::MessageReceived *****************************************************************************/void InterfaceWindow::MessageReceived( BMessage * p_message ){    switch( p_message->what )    {        case B_ABOUT_REQUESTED:        {            BAlert * alert;            alert = new BAlert( "VLC media player" VERSION,                                "VLC media player" VERSION " (BeOS interface)\n\n"                                "The VideoLAN team <videolan@videolan.org>\n"                                "http://www.videolan.org/", _("OK") );            alert->Go();            break;        }        case TOGGLE_ON_TOP:            break;        case OPEN_FILE:            _ShowFilePanel( B_REFS_RECEIVED, _("VLC media player: Open Media Files") );            break;        case LOAD_SUBFILE:            _ShowFilePanel( SUBFILE_RECEIVED, _("VLC media player: Open Subtitle File") );            break;        case OPEN_PLAYLIST:            if (fPlaylistWindow->Lock())            {                if (fPlaylistWindow->IsHidden())                    fPlaylistWindow->Show();                else                    fPlaylistWindow->Activate();                fPlaylistWindow->Unlock();            }            break;        case OPEN_DVD:            {                const char * psz_device;                if( p_playlist &&                    p_message->FindString( "device", &psz_device ) == B_OK )                {                    char psz_uri[1024];                    memset( psz_uri, 0, 1024 );                    snprintf( psz_uri, 1024, "dvdnav:%s", psz_device );                    playlist_Add( p_playlist, psz_uri, psz_device,                                  PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END );                }                _UpdatePlaylist();            }            break;        case SUBFILE_RECEIVED:        {            entry_ref ref;            if( p_message->FindRef( "refs", 0, &ref ) == B_OK )            {                BPath path( &ref );                if ( path.InitCheck() == B_OK )                    config_PutPsz( p_intf, "sub-file", path.Path() );            }            break;        }        case STOP_PLAYBACK:            if( p_playlist )            {                playlist_Stop( p_playlist );            }            p_mediaControl->SetStatus(-1, INPUT_RATE_DEFAULT);            break;        case START_PLAYBACK:        case PAUSE_PLAYBACK:        {            vlc_value_t val;            val.i_int = PLAYING_S;            if( p_input )            {                var_Get( p_input, "state", &val );            }            if( p_input && val.i_int != PAUSE_S )            {                val.i_int = PAUSE_S;                var_Set( p_input, "state", val );            }            else            {                playlist_Play( p_playlist );            }            break;        }        case HEIGHTH_PLAY:            if( p_input )            {                var_SetInteger( p_input, "rate", INPUT_RATE_DEFAULT * 8 );            }            break;        case QUARTER_PLAY:            if( p_input )            {                var_SetInteger( p_input, "rate", INPUT_RATE_DEFAULT * 4 );            }            break;        case HALF_PLAY:            if( p_input )            {                var_SetInteger( p_input, "rate", INPUT_RATE_DEFAULT * 2 );            }            break;        case NORMAL_PLAY:            if( p_input )            {                var_SetInteger( p_input, "rate", INPUT_RATE_DEFAULT );            }            break;        case TWICE_PLAY:            if( p_input )            {                var_SetInteger( p_input, "rate", INPUT_RATE_DEFAULT / 2 );            }            break;        case FOUR_PLAY:            if( p_input )            {                var_SetInteger( p_input, "rate", INPUT_RATE_DEFAULT / 4 );            }            break;        case HEIGHT_PLAY:            if( p_input )            {                var_SetInteger( p_input, "rate", INPUT_RATE_DEFAULT / 8 );            }            break;        case SEEK_PLAYBACK:            /* handled by semaphores */            break;        case VOLUME_CHG:            aout_VolumeSet( p_intf, p_mediaControl->GetVolume() );            break;        case VOLUME_MUTE:            aout_VolumeMute( p_intf, NULL );            break;        case SELECT_CHANNEL:        {            int32 channel;            if( p_input )            {                if( p_message->FindInt32( "audio-es", &channel ) == B_OK )                {                    var_SetInteger( p_input, "audio-es", channel );                }                else if( p_message->FindInt32( "spu-es", &channel ) == B_OK )                {                    var_SetInteger( p_input, "spu-es", channel );                }            }            break;        }        case PREV_TITLE:            if( p_input )            {                var_SetVoid( p_input, "prev-title" );            }            break;        case NEXT_TITLE:            if( p_input )            {                var_SetVoid( p_input, "next-title" );            }            break;        case TOGGLE_TITLE:        {            int32 index;            if( p_input &&                p_message->FindInt32( "index", &index ) == B_OK )            {                var_SetInteger( p_input, "title", index );            }            break;        }        case PREV_CHAPTER:            if( p_input )            {                var_SetVoid( p_input, "prev-chapter" );            }            break;        case NEXT_CHAPTER:            if( p_input )            {                var_SetVoid( p_input, "next-chapter" );            }            break;        case TOGGLE_CHAPTER:        {            int32 index;            if( p_input &&                p_message->FindInt32( "index", &index ) == B_OK )            {                var_SetInteger( p_input, "chapter", index );            }            break;        }        case PREV_FILE:            if( p_playlist )            {                playlist_Prev( p_playlist );            }            break;        case NEXT_FILE:            if( p_playlist )            {                playlist_Next( p_playlist );            }            break;        case NAVIGATE_PREV:            if( p_input )            {                vlc_value_t val;                /* First try to go to previous chapter */                if( !var_Get( p_input, "chapter", &val ) )                {                    if( val.i_int > 1 )                    {                        var_SetVoid( p_input, "prev-chapter" );                        break;                    }                }                /* Try to go to previous title */                if( !var_Get( p_input, "title", &val ) )                {                    if( val.i_int > 1 )                    {                        var_SetVoid( p_input, "prev-title" );                        break;                    }                }                /* Try to go to previous file */                if( p_playlist )                {                    playlist_Prev( p_playlist );                }            }            break;        case NAVIGATE_NEXT:            if( p_input )            {                vlc_value_t val, val_list;                /* First try to go to next chapter */                if( !var_Get( p_input, "chapter", &val ) )                {                    var_Change( p_input, "chapter", VLC_VAR_GETCHOICES,                                &val_list, NULL );                    if( val_list.p_list->i_count > val.i_int )                    {                        var_Change( p_input, "chapter", VLC_VAR_FREELIST,                                    &val_list, NULL );                        var_SetVoid( p_input, "next-chapter" );                        break;                    }                    var_Change( p_input, "chapter", VLC_VAR_FREELIST,                                &val_list, NULL );                }                /* Try to go to next title */                if( !var_Get( p_input, "title", &val ) )                {                    var_Change( p_input, "title", VLC_VAR_GETCHOICES,                                &val_list, NULL );                    if( val_list.p_list->i_count > val.i_int )                    {                        var_Change( p_input, "title", VLC_VAR_FREELIST,                                    &val_list, NULL );                        var_SetVoid( p_input, "next-title" );                        break;                    }                    var_Change( p_input, "title", VLC_VAR_FREELIST,                                &val_list, NULL );                }                /* Try to go to next file */                if( p_playlist )                {                    playlist_Next( p_playlist );                }            }            break;        // drag'n'drop and system messages        case MSG_SOUNDPLAY:            // convert soundplay drag'n'drop message (containing paths)            // to normal message (containing refs)            {                const char* path;                for ( int32 i = 0; p_message->FindString( "path", i, &path ) == B_OK; i++ )                {                    entry_ref ref;                    if ( get_ref_for_path( path, &ref ) == B_OK )                        p_message->AddRef( "refs", &ref );                }            }            // fall through        case B_REFS_RECEIVED:        case B_SIMPLE_DATA:        {            /* file(s) opened by the File menu -> append to the playlist;               file(s) opened by drag & drop -> replace playlist;               file(s) opened by 'shift' + drag & drop -> append */            int32 count;            type_code dummy;            if( p_message->GetInfo( "refs", &dummy, &count ) != B_OK ||                count < 1 )            {                break;            }            vlc_bool_t b_remove = ( p_message->WasDropped() &&                                    !( modifiers() & B_SHIFT_KEY ) );            if( b_remove && p_playlist )            {                playlist_Clear( p_playlist );            }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -