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

📄 bookmarks.m

📁 uclinux 下的vlc播放器源代码
💻 M
📖 第 1 页 / 共 2 页
字号:
    if( pp_bookmarks[i]->psz_name )     {        free( pp_bookmarks[i]->psz_name );    }    pp_bookmarks[i]->psz_name = strdup([[o_edit_fld_name stringValue] UTF8String]);     pp_bookmarks[i]->i_byte_offset = [[o_edit_fld_bytes stringValue] intValue];    pp_bookmarks[i]->i_time_offset = ([[o_edit_fld_time stringValue] intValue]  * 1000000);        if( input_Control( p_input, INPUT_CHANGE_BOOKMARK, pp_bookmarks[i], i )        != VLC_SUCCESS )    {        msg_Warn( p_intf, "Unable to change the bookmark");        vlc_object_release( p_input );        return;    }        [o_tbl_dataTable reloadData];    vlc_object_release( p_input );             [NSApp endSheet: o_edit_window];    [o_edit_window close];}- (IBAction)extract:(id)sender{    /* extract */        intf_thread_t * p_intf = VLCIntf;        if( [o_tbl_dataTable numberOfSelectedRows] < 2 )    {        NSBeginAlertSheet(_NS("Invalid selection"), _NS("OK"),            @"", @"", o_bookmarks_window, nil, nil, nil, nil,             _NS("Two bookmarks have to be selected."));        return;    }    input_thread_t *p_input =        (input_thread_t *)vlc_object_find( p_intf, VLC_OBJECT_INPUT,                                           FIND_ANYWHERE );    if( !p_input )    {        NSBeginCriticalAlertSheet(_NS("No input found"), _NS("OK"),            @"", @"", o_bookmarks_window, nil, nil, nil, nil,             _NS("The stream must be playing or paused for bookmarks to work."));        return;    }        seekpoint_t **pp_bookmarks;    int i_bookmarks ;    int i_first = -1;    int i_second = -1;    int x = 0;    int c = 0;    while (c != 2)    {        if([o_tbl_dataTable isRowSelected:x])        {            if (i_first == -1)            {                i_first = x;                c = 1;            }             else if (i_second == -1)            {                i_second = x;                c = 2;            }        }        x = (x + 1);    }        msg_Dbg(p_intf, "got the bookmark-indexes");        if( input_Control( p_input, INPUT_GET_BOOKMARKS, &pp_bookmarks,        &i_bookmarks ) != VLC_SUCCESS )    {        vlc_object_release( p_input );        msg_Err(p_intf, "already defined bookmarks couldn't be retrieved");        return;    }    msg_Dbg(p_intf, "calling wizard");    [[[VLCMain sharedInstance] getWizard] initWithExtractValuesFrom:            [[NSNumber numberWithInt:            (pp_bookmarks[i_first]->i_time_offset/1000000)] stringValue]            to: [[NSNumber numberWithInt:            (pp_bookmarks[i_second]->i_time_offset/1000000)] stringValue]            ofItem: [NSString stringWithUTF8String:            p_input->input.p_item->psz_uri]];    vlc_object_release( p_input );    msg_Dbg(p_intf, "released input");}- (IBAction)goToBookmark:(id)sender{    intf_thread_t * p_intf = VLCIntf;    input_thread_t *p_input =    (input_thread_t *)vlc_object_find( p_intf, VLC_OBJECT_INPUT,         FIND_ANYWHERE );        if( !p_input )     {        return;    }    input_Control( p_input, INPUT_SET_BOOKMARK, [o_tbl_dataTable selectedRow] );    vlc_object_release( p_input );}- (IBAction)remove:(id)sender{    /* remove selected item */    intf_thread_t * p_intf = VLCIntf;    input_thread_t *p_input =    (input_thread_t *)vlc_object_find( p_intf, VLC_OBJECT_INPUT,         FIND_ANYWHERE );        if( !p_input ) return;    int i_focused = [o_tbl_dataTable selectedRow];    if( i_focused >= 0 )    {        input_Control( p_input, INPUT_DEL_BOOKMARK, i_focused );    }    vlc_object_release( p_input );        [o_tbl_dataTable reloadData];}/***************************************************************************** * callback stuff *****************************************************************************/-(id)getDataTable{    return o_tbl_dataTable;}/***************************************************************************** * data source methods *****************************************************************************/- (int)numberOfRowsInTableView:(NSTableView *)theDataTable{    /* return the number of bookmarks */    intf_thread_t * p_intf = VLCIntf;    input_thread_t * p_input = (input_thread_t *)vlc_object_find( p_intf,        VLC_OBJECT_INPUT, FIND_ANYWHERE );    seekpoint_t **pp_bookmarks;    int i_bookmarks;        if( !p_input )    {        return 0;    }    else if( input_Control( p_input, INPUT_GET_BOOKMARKS, &pp_bookmarks,                       &i_bookmarks ) != VLC_SUCCESS )    {        vlc_object_release( p_input );        return 0;    }    else {        vlc_object_release( p_input );        return i_bookmarks;    }}- (id)tableView:(NSTableView *)theDataTable objectValueForTableColumn:    (NSTableColumn *)theTableColumn row: (int)row{    /* return the corresponding data as NSString */    intf_thread_t * p_intf = VLCIntf;    input_thread_t * p_input = (input_thread_t *)vlc_object_find( p_intf,        VLC_OBJECT_INPUT, FIND_ANYWHERE );    seekpoint_t **pp_bookmarks;    int i_bookmarks;    char * toBeReturned;    toBeReturned = "";    int i_toBeReturned;    i_toBeReturned = 0;        if( !p_input )    {        return @"";    }     else if( input_Control( p_input, INPUT_GET_BOOKMARKS, &pp_bookmarks,                       &i_bookmarks ) != VLC_SUCCESS )    {        vlc_object_release( p_input );        return @"";    }    else    {        if ([[theTableColumn identifier] isEqualToString: @"description"])        {            toBeReturned = pp_bookmarks[row]->psz_name;            vlc_object_release( p_input );            return [NSString stringWithUTF8String: toBeReturned];        }         else if ([[theTableColumn identifier] isEqualToString: @"size_offset"])        {            i_toBeReturned = pp_bookmarks[row]->i_byte_offset;            vlc_object_release( p_input );            return [[NSNumber numberWithInt: i_toBeReturned] stringValue];        }        else if ([[theTableColumn identifier] isEqualToString: @"time_offset"])        {            i_toBeReturned = pp_bookmarks[row]->i_time_offset;            vlc_object_release( p_input );            return [[NSNumber numberWithInt: (i_toBeReturned / 1000000)]                stringValue];        }        else        {            /* may not happen, but just in case */            vlc_object_release( p_input );            msg_Err(p_intf, "unknown table column identifier (%s) while "                "updating the bookmark table", [[theTableColumn identifier]                UTF8String] );            return @"unknown identifier";        }    }}/***************************************************************************** * delegate methods *****************************************************************************/- (void)tableViewSelectionDidChange:(NSNotification *)aNotification{    /* check whether a row is selected and en-/disable the edit/remove buttons */    if ([o_tbl_dataTable selectedRow] == -1)    {        /* no row is selected */        [o_btn_edit setEnabled: NO];        [o_btn_rm setEnabled: NO];        [o_btn_extract setEnabled: NO];    }    else    {        /* a row is selected */        [o_btn_edit setEnabled: YES];        [o_btn_rm setEnabled: YES];        if ([o_tbl_dataTable numberOfSelectedRows] == 2)        {            [o_btn_extract setEnabled: YES];        }    }}@end

⌨️ 快捷键说明

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