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

📄 controls.m

📁 VLC Player Source Code
💻 M
📖 第 1 页 / 共 3 页
字号:
    {        var_Set( p_playlist, "repeat", val );    }    val.b_bool = !val.b_bool;    var_Set( p_playlist, "loop", val );    if( val.b_bool )    {        vout_OSDMessage( p_intf, DEFAULT_CHAN, _( "Repeat All" ) );        config_PutInt( p_playlist, "loop", 1 );    }    else    {        vout_OSDMessage( p_intf, DEFAULT_CHAN, _( "Repeat Off" ) );        config_PutInt( p_playlist, "loop", 0 );    }    p_intf->p_sys->b_playmode_update = true;    p_intf->p_sys->b_intf_update = true;    vlc_object_release( p_playlist );}- (IBAction)forward:(id)sender{    intf_thread_t * p_intf = VLCIntf;    var_SetInteger( p_intf->p_libvlc, "key-action", ACTIONID_JUMP_FORWARD_SHORT );}- (IBAction)backward:(id)sender{    vlc_value_t val;    intf_thread_t * p_intf = VLCIntf;    var_SetInteger( p_intf->p_libvlc, "key-action", ACTIONID_JUMP_BACKWARD_SHORT );}- (IBAction)volumeUp:(id)sender{    intf_thread_t * p_intf = VLCIntf;    var_SetInteger( p_intf->p_libvlc, "key-action", ACTIONID_VOL_UP );    /* Manage volume status */    [o_main manageVolumeSlider];}- (IBAction)volumeDown:(id)sender{    intf_thread_t * p_intf = VLCIntf;    var_SetInteger( p_intf->p_libvlc, "key-action", ACTIONID_VOL_DOWN );    /* Manage volume status */    [o_main manageVolumeSlider];}- (IBAction)mute:(id)sender{    intf_thread_t * p_intf = VLCIntf;    var_SetInteger( p_intf->p_libvlc, "key-action", ACTIONID_VOL_MUTE );    /* Manage volume status */    [o_main manageVolumeSlider];}- (IBAction)volumeSliderUpdated:(id)sender{    intf_thread_t * p_intf = VLCIntf;    audio_volume_t i_volume = (audio_volume_t)[sender intValue];    int i_volume_step = 0;    i_volume_step = config_GetInt( p_intf->p_libvlc, "volume-step" );    aout_VolumeSet( p_intf, i_volume * i_volume_step );    /* Manage volume status */    [o_main manageVolumeSlider];}- (IBAction)showPosition: (id)sender{    vout_thread_t *p_vout = vlc_object_find( VLCIntf, VLC_OBJECT_VOUT,                                             FIND_ANYWHERE );    if( p_vout != NULL )    {        intf_thread_t * p_intf = VLCIntf;        var_SetInteger( p_intf->p_libvlc, "key-action", ACTIONID_POSITION );        vlc_object_release( (vlc_object_t *)p_vout );    }}- (IBAction)toogleFullscreen:(id)sender {    NSMenuItem *o_mi = [[NSMenuItem alloc] initWithTitle: _NS("Fullscreen") action: nil keyEquivalent:@""];    [self windowAction: [o_mi autorelease]];}- (BOOL) isFullscreen {    id o_vout_view = [self getVoutView];    if( o_vout_view )    {        return [o_vout_view isFullscreen];    }    return NO;}- (IBAction)windowAction:(id)sender{    NSString *o_title = [sender title];    vout_thread_t *p_vout = vlc_object_find( VLCIntf, VLC_OBJECT_VOUT,                                              FIND_ANYWHERE );    if( p_vout != NULL )    {        id o_vout_view = [self getVoutView];        if( o_vout_view )        {            if( [o_title isEqualToString: _NS("Half Size") ] )                [o_vout_view scaleWindowWithFactor: 0.5 animate: YES];            else if( [o_title isEqualToString: _NS("Normal Size") ] )                [o_vout_view scaleWindowWithFactor: 1.0 animate: YES];            else if( [o_title isEqualToString: _NS("Double Size") ] )                [o_vout_view scaleWindowWithFactor: 2.0 animate: YES];            else if( [o_title isEqualToString: _NS("Float on Top") ] )                [o_vout_view toggleFloatOnTop];            else if( [o_title isEqualToString: _NS("Fit to Screen") ] )            {                id o_window = [o_vout_view getWindow];                if( ![o_window isZoomed] )                    [o_window performZoom:self];            }            else if( [o_title isEqualToString: _NS("Snapshot") ] )            {                [o_vout_view snapshot];            }            else            {                /* Fullscreen state for next time will be saved here too */                [o_vout_view toggleFullscreen];            }        }        vlc_object_release( (vlc_object_t *)p_vout );    }    else    {        playlist_t * p_playlist = pl_Yield( VLCIntf );        if( [o_title isEqualToString: _NS("Fullscreen")] ||            [sender isKindOfClass:[NSButton class]] )        {            vlc_value_t val;            var_Get( p_playlist, "fullscreen", &val );            var_Set( p_playlist, "fullscreen", (vlc_value_t)!val.b_bool );        }        pl_Release( VLCIntf );    }}- (void)scrollWheel:(NSEvent *)theEvent{    intf_thread_t * p_intf = VLCIntf;    float f_yabsvalue = [theEvent deltaY] > 0.0f ? [theEvent deltaY] : -[theEvent deltaY];    float f_xabsvalue = [theEvent deltaX] > 0.0f ? [theEvent deltaX] : -[theEvent deltaX];    int i, i_yvlckey, i_xvlckey;    if ([theEvent deltaY] < 0.0f)        i_yvlckey = KEY_MOUSEWHEELDOWN;    else        i_yvlckey = KEY_MOUSEWHEELUP;    if ([theEvent deltaX] < 0.0f)        i_xvlckey = KEY_MOUSEWHEELRIGHT;    else        i_xvlckey = KEY_MOUSEWHEELLEFT;    /* Send multiple key event, depending on the intensity of the event */    for (i = 0; i < (int)(f_yabsvalue/4.+1.) && f_yabsvalue > 0.05 ; i++)        var_SetInteger( p_intf->p_libvlc, "key-pressed", i_yvlckey );    /* Prioritize Y event (sound volume) over X event */    if (f_yabsvalue < 0.05)    {        for (i = 0; i < (int)(f_xabsvalue/6.+1.) && f_xabsvalue > 0.05; i++)         var_SetInteger( p_intf->p_libvlc, "key-pressed", i_xvlckey );    }}- (BOOL)keyEvent:(NSEvent *)o_event{    BOOL eventHandled = NO;    unichar key = [[o_event charactersIgnoringModifiers] characterAtIndex: 0];    if( key )    {        vout_thread_t *p_vout = vlc_object_find( VLCIntf, VLC_OBJECT_VOUT,                                              FIND_ANYWHERE );        if( p_vout != NULL )        {            /* Escape */            if( key == (unichar) 0x1b )            {                id o_vout_view = [self getVoutView];                if( o_vout_view && [o_vout_view isFullscreen] )                {                    [o_vout_view toggleFullscreen];                    eventHandled = YES;                }            }            else if( key == ' ' )            {                [self play:self];                eventHandled = YES;            }            vlc_object_release( (vlc_object_t *)p_vout );        }    }    return eventHandled;}- (void)setupVarMenuItem:(NSMenuItem *)o_mi                    target:(vlc_object_t *)p_object                    var:(const char *)psz_variable                    selector:(SEL)pf_callback{    vlc_value_t val, text;    int i_type = var_Type( p_object, psz_variable );    switch( i_type & VLC_VAR_TYPE )    {    case VLC_VAR_VOID:    case VLC_VAR_BOOL:    case VLC_VAR_VARIABLE:    case VLC_VAR_STRING:    case VLC_VAR_INTEGER:        break;    default:        /* Variable doesn't exist or isn't handled */        return;    }     /* Make sure we want to display the variable */    if( i_type & VLC_VAR_HASCHOICE )    {        var_Change( p_object, psz_variable, VLC_VAR_CHOICESCOUNT, &val, NULL );        if( val.i_int == 0 ) return;        if( (i_type & VLC_VAR_TYPE) != VLC_VAR_VARIABLE && val.i_int == 1 )            return;    }     /* Get the descriptive name of the variable */    var_Change( p_object, psz_variable, VLC_VAR_GETTEXT, &text, NULL );    [o_mi setTitle: [[VLCMain sharedInstance] localizedString: text.psz_string ?                                        text.psz_string : strdup( psz_variable ) ]];    var_Get( p_object, psz_variable, &val );    if( i_type & VLC_VAR_HASCHOICE )    {        NSMenu *o_menu = [o_mi submenu];        [self setupVarMenu: o_menu forMenuItem: o_mi target:p_object                        var:psz_variable selector:pf_callback];         free( text.psz_string );        return;    }    VLCMenuExt *o_data;    switch( i_type & VLC_VAR_TYPE )    {    case VLC_VAR_VOID:        o_data = [[VLCMenuExt alloc] initWithVar: psz_variable Object: p_object->i_object_id                Value: val ofType: i_type];        [o_mi setRepresentedObject: [NSValue valueWithPointer:[o_data retain]]];        break;    case VLC_VAR_BOOL:        o_data = [[VLCMenuExt alloc] initWithVar: psz_variable Object: p_object->i_object_id                Value: val ofType: i_type];        [o_mi setRepresentedObject: [NSValue valueWithPointer:[o_data retain]]];        if( !( i_type & VLC_VAR_ISCOMMAND ) )            [o_mi setState: val.b_bool ? TRUE : FALSE ];        break;    default:        free( text.psz_string );        return;    }    if( ( i_type & VLC_VAR_TYPE ) == VLC_VAR_STRING ) free( val.psz_string );    free( text.psz_string );}- (void)setupVarMenu:(NSMenu *)o_menu                    forMenuItem: (NSMenuItem *)o_parent                    target:(vlc_object_t *)p_object                    var:(const char *)psz_variable                    selector:(SEL)pf_callback{    vlc_value_t val, val_list, text_list;    int i_type, i, i_nb_items;    /* remove previous items */    i_nb_items = [o_menu numberOfItems];    for( i = 0; i < i_nb_items; i++ )    {        [o_menu removeItemAtIndex: 0];    }    /* Check the type of the object variable */    i_type = var_Type( p_object, psz_variable );    /* Make sure we want to display the variable */    if( i_type & VLC_VAR_HASCHOICE )    {        var_Change( p_object, psz_variable, VLC_VAR_CHOICESCOUNT, &val, NULL );        if( val.i_int == 0 ) return;        if( (i_type & VLC_VAR_TYPE) != VLC_VAR_VARIABLE && val.i_int == 1 )            return;    }    else    {        return;    }    switch( i_type & VLC_VAR_TYPE )    {    case VLC_VAR_VOID:    case VLC_VAR_BOOL:    case VLC_VAR_VARIABLE:    case VLC_VAR_STRING:    case VLC_VAR_INTEGER:        break;    default:        /* Variable doesn't exist or isn't handled */        return;    }    if( var_Get( p_object, psz_variable, &val ) < 0 )    {        return;    }    if( var_Change( p_object, psz_variable, VLC_VAR_GETLIST,                    &val_list, &text_list ) < 0 )    {        if( (i_type & VLC_VAR_TYPE) == VLC_VAR_STRING ) free( val.psz_string );        return;    }    /* make (un)sensitive */    [o_parent setEnabled: ( val_list.p_list->i_count > 1 )];    for( i = 0; i < val_list.p_list->i_count; i++ )    {        vlc_value_t another_val;        NSMenuItem * o_lmi;        NSString *o_title = @"";        VLCMenuExt *o_data;

⌨️ 快捷键说明

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