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

📄 interfacewindow.cpp

📁 video linux conference
💻 CPP
📖 第 1 页 / 共 4 页
字号:
        if ( fSettings->FindInt32( "playlist display mode", (int32*)&displayMode ) == B_OK )            fPlaylistWindow->SetDisplayMode( displayMode );    }}/***************************************************************************** * InterfaceWindow::_StoreSettings *****************************************************************************/voidInterfaceWindow::_StoreSettings(){    /* Save the volume */    config_PutInt( p_intf, "volume", p_mediaControl->GetVolume() );    config_SaveConfigFile( p_intf, "main" );    /* Save the windows positions */    if ( fSettings->ReplaceRect( "main frame", Frame() ) != B_OK )        fSettings->AddRect( "main frame", Frame() );    if ( fPlaylistWindow->Lock() )    {        if (fSettings->ReplaceRect( "playlist frame", fPlaylistWindow->Frame() ) != B_OK)            fSettings->AddRect( "playlist frame", fPlaylistWindow->Frame() );        if (fSettings->ReplaceBool( "playlist showing", !fPlaylistWindow->IsHidden() ) != B_OK)            fSettings->AddBool( "playlist showing", !fPlaylistWindow->IsHidden() );        fPlaylistWindow->Unlock();    }    if ( fMessagesWindow->Lock() )    {        if (fSettings->ReplaceRect( "messages frame", fMessagesWindow->Frame() ) != B_OK)            fSettings->AddRect( "messages frame", fMessagesWindow->Frame() );        if (fSettings->ReplaceBool( "messages showing", !fMessagesWindow->IsHidden() ) != B_OK)            fSettings->AddBool( "messages showing", !fMessagesWindow->IsHidden() );        fMessagesWindow->Unlock();    }    if ( fPreferencesWindow->Lock() )    {        if (fSettings->ReplaceRect( "settings frame", fPreferencesWindow->Frame() ) != B_OK)            fSettings->AddRect( "settings frame", fPreferencesWindow->Frame() );        if (fSettings->ReplaceBool( "settings showing", !fPreferencesWindow->IsHidden() ) != B_OK)            fSettings->AddBool( "settings showing", !fPreferencesWindow->IsHidden() );        fPreferencesWindow->Unlock();    }    uint32 displayMode = fPlaylistWindow->DisplayMode();    if (fSettings->ReplaceInt32( "playlist display mode", displayMode ) != B_OK )        fSettings->AddInt32( "playlist display mode", displayMode );    save_settings( fSettings, "interface_settings", "VideoLAN Client" );}/***************************************************************************** * CDMenu::CDMenu *****************************************************************************/CDMenu::CDMenu(const char *name)      : BMenu(name){}/***************************************************************************** * CDMenu::~CDMenu *****************************************************************************/CDMenu::~CDMenu(){}/***************************************************************************** * CDMenu::AttachedToWindow *****************************************************************************/void CDMenu::AttachedToWindow(void){    // remove all items    while ( BMenuItem* item = RemoveItem( 0L ) )        delete item;    GetCD( "/dev/disk" );    BMenu::AttachedToWindow();}/***************************************************************************** * CDMenu::GetCD *****************************************************************************/int CDMenu::GetCD( const char *directory ){    BVolumeRoster volRoster;    BVolume vol;    BDirectory dir;    status_t status = volRoster.GetNextVolume( &vol );    while ( status ==  B_NO_ERROR )    {        BString deviceName;        BString volumeName;        bool isCDROM;        if ( get_volume_info( vol, volumeName, isCDROM, deviceName )             && isCDROM )        {            BMessage* msg = new BMessage( OPEN_DVD );            msg->AddString( "device", deviceName.String() );            BMenuItem* item = new BMenuItem( volumeName.String(), msg );            AddItem( item );        }         vol.Unset();        status = volRoster.GetNextVolume( &vol );    }    return 0;}/***************************************************************************** * LanguageMenu::LanguageMenu *****************************************************************************/LanguageMenu::LanguageMenu( intf_thread_t * _p_intf, const char * psz_name,                            char * _psz_variable )    : BMenu( psz_name ){    p_intf       = _p_intf;    psz_variable = strdup( _psz_variable );}/***************************************************************************** * LanguageMenu::~LanguageMenu *****************************************************************************/LanguageMenu::~LanguageMenu(){    free( psz_variable );}/***************************************************************************** * LanguageMenu::AttachedToWindow *****************************************************************************/void LanguageMenu::AttachedToWindow(){    BMenuItem * item;    // remove all items    while( ( item = RemoveItem( 0L ) ) )    {        delete item;    }    SetRadioMode( true );    input_thread_t * p_input = (input_thread_t *)            vlc_object_find( p_intf, VLC_OBJECT_INPUT, FIND_ANYWHERE );    if( !p_input )    {        return;    }    vlc_value_t val_list, text_list;    BMessage * message;    int i_current;    i_current = var_GetInteger( p_input, psz_variable );    var_Change( p_input, psz_variable, VLC_VAR_GETLIST, &val_list, &text_list );    for( int i = 0; i < val_list.p_list->i_count; i++ )    {        message = new BMessage( SELECT_CHANNEL );        message->AddInt32( psz_variable, val_list.p_list->p_values[i].i_int );        item = new BMenuItem( text_list.p_list->p_values[i].psz_string, message );        if( val_list.p_list->p_values[i].i_int == i_current )        {            item->SetMarked( true );        }        AddItem( item );    }    var_Change( p_input, psz_variable, VLC_VAR_FREELIST, &val_list, &text_list );    vlc_object_release( p_input );    BMenu::AttachedToWindow();}/***************************************************************************** * TitleMenu::TitleMenu *****************************************************************************/TitleMenu::TitleMenu( const char *name, intf_thread_t  *p_interface )    : BMenu(name),    p_intf( p_interface ){}/***************************************************************************** * TitleMenu::~TitleMenu *****************************************************************************/TitleMenu::~TitleMenu(){}/***************************************************************************** * TitleMenu::AttachedToWindow *****************************************************************************/void TitleMenu::AttachedToWindow(){    BMenuItem * item;    while( ( item = RemoveItem( 0L ) ) )    {        delete item;    }    input_thread_t * p_input;    p_input = (input_thread_t *)        vlc_object_find( p_intf, VLC_OBJECT_INPUT, FIND_ANYWHERE );    if( !p_input )    {        return;    }    vlc_value_t val;    BMessage * message;    if( !var_Get( p_input, "title", &val ) )    {        vlc_value_t val_list, text_list;        var_Change( p_input, "title", VLC_VAR_GETCHOICES,                    &val_list, &text_list );        for( int i = 0; i < val_list.p_list->i_count; i++ )        {            message = new BMessage( TOGGLE_TITLE );            message->AddInt32( "index", val_list.p_list->p_values[i].i_int );            item = new BMenuItem( text_list.p_list->p_values[i].psz_string,                                  message );            if( val_list.p_list->p_values[i].i_int == val.i_int )            {                item->SetMarked( true );            }            AddItem( item );        }        var_Change( p_input, "title", VLC_VAR_FREELIST,                    &val_list, &text_list );    }    vlc_object_release( p_input );    BMenu::AttachedToWindow();}/***************************************************************************** * ChapterMenu::ChapterMenu *****************************************************************************/ChapterMenu::ChapterMenu( const char *name, intf_thread_t  *p_interface )    : BMenu(name),    p_intf( p_interface ){}/***************************************************************************** * ChapterMenu::~ChapterMenu *****************************************************************************/ChapterMenu::~ChapterMenu(){}/***************************************************************************** * ChapterMenu::AttachedToWindow *****************************************************************************/void ChapterMenu::AttachedToWindow(){    BMenuItem * item;    while( ( item = RemoveItem( 0L ) ) )    {        delete item;    }    input_thread_t * p_input;    p_input = (input_thread_t *)        vlc_object_find( p_intf, VLC_OBJECT_INPUT, FIND_ANYWHERE );    if( !p_input )    {        return;    }    vlc_value_t val;    BMessage * message;    if( !var_Get( p_input, "chapter", &val ) )    {        vlc_value_t val_list, text_list;        var_Change( p_input, "chapter", VLC_VAR_GETCHOICES,                    &val_list, &text_list );        for( int i = 0; i < val_list.p_list->i_count; i++ )        {            message = new BMessage( TOGGLE_CHAPTER );            message->AddInt32( "index", val_list.p_list->p_values[i].i_int );            item = new BMenuItem( text_list.p_list->p_values[i].psz_string,                                  message );            if( val_list.p_list->p_values[i].i_int == val.i_int )            {                item->SetMarked( true );            }            AddItem( item );        }        var_Change( p_input, "chapter", VLC_VAR_FREELIST,                    &val_list, &text_list );    }    vlc_object_release( p_input );    BMenu::AttachedToWindow();}/***************************************************************************** * load_settings *****************************************************************************/status_tload_settings( BMessage* message, const char* fileName, const char* folder ){    status_t ret = B_BAD_VALUE;    if ( message )    {        BPath path;        if ( ( ret = find_directory( B_USER_SETTINGS_DIRECTORY, &path ) ) == B_OK )        {            // passing folder is optional            if ( folder )                ret = path.Append( folder );            if ( ret == B_OK && ( ret = path.Append( fileName ) ) == B_OK )            {                BFile file( path.Path(), B_READ_ONLY );                if ( ( ret = file.InitCheck() ) == B_OK )                {                    ret = message->Unflatten( &file );                    file.Unset();                }            }        }    }    return ret;}/***************************************************************************** * save_settings *****************************************************************************/status_tsave_settings( BMessage* message, const char* fileName, const char* folder ){    status_t ret = B_BAD_VALUE;    if ( message )    {        BPath path;        if ( ( ret = find_directory( B_USER_SETTINGS_DIRECTORY, &path ) ) == B_OK )        {            // passing folder is optional            if ( folder && ( ret = path.Append( folder ) ) == B_OK )                ret = create_directory( path.Path(), 0777 );            if ( ret == B_OK && ( ret = path.Append( fileName ) ) == B_OK )            {                BFile file( path.Path(), B_WRITE_ONLY | B_CREATE_FILE | B_ERASE_FILE );                if ( ( ret = file.InitCheck() ) == B_OK )                {                    ret = message->Flatten( &file );                    file.Unset();                }            }        }    }    return ret;}

⌨️ 快捷键说明

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