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

📄 open.m

📁 uclinux 下的vlc播放器源代码
💻 M
📖 第 1 页 / 共 2 页
字号:
        [o_ext isEqualToString: @"iso"] )    {        o_mrl_string = o_filename;    }    else    {        o_mrl_string = [NSString stringWithFormat: @"%s://%@",                        b_stream ? "stream" : "file",                        o_filename];    }    [o_mrl setStringValue: o_mrl_string]; }- (IBAction)openFileBrowse:(id)sender{    NSOpenPanel *o_open_panel = [NSOpenPanel openPanel];        [o_open_panel setAllowsMultipleSelection: NO];    [o_open_panel setCanChooseDirectories: YES];    [o_open_panel setTitle: _NS("Open File")];    [o_open_panel setPrompt: _NS("Open")];    [o_open_panel beginSheetForDirectory:nil        file:nil        types:nil        modalForWindow:[sender window]        modalDelegate: self        didEndSelector: @selector(pathChosenInPanel:                         withReturn:                        contextInfo:)        contextInfo: nil];}- (void)pathChosenInPanel: (NSOpenPanel *) sheet withReturn:(int)returnCode contextInfo:(void  *)contextInfo{    if (returnCode == NSFileHandlingPanelOKButton)    {        NSString *o_filename = [[sheet filenames] objectAtIndex: 0];        [o_file_path setStringValue: o_filename];        [self openFilePathChanged: nil];    }}- (IBAction)openFileStreamChanged:(id)sender{    [self openFilePathChanged: nil];}- (IBAction)openDiscTypeChanged:(id)sender{    NSString *o_type;    vlc_bool_t b_device, b_menus, b_title_chapter;        [o_disc_device removeAllItems];    b_title_chapter = ![o_disc_dvd_menus state];        o_type = [[o_disc_type selectedCell] title];    if ( [o_type isEqualToString: _NS("VIDEO_TS directory")] )    {        b_device = 0; b_menus = 1;    }    else    {        NSArray *o_devices;        NSString *o_disc;        const char *psz_class = NULL;        b_device = 1;        if ( [o_type isEqualToString: _NS("VCD")] )        {            psz_class = kIOCDMediaClass;            o_disc = o_type;            b_menus = 0; b_title_chapter = 1;            [o_disc_dvd_menus setState: FALSE];        }        else if ( [o_type isEqualToString: _NS("Audio CD")])        {            psz_class = kIOCDMediaClass;            o_disc = o_type;            b_menus = 0; b_title_chapter = 0;            [o_disc_dvd_menus setState: FALSE];        }        else        {            psz_class = kIODVDMediaClass;            o_disc = o_type;            b_menus = 1;        }            o_devices = GetEjectableMediaOfClass( psz_class );        if ( o_devices != nil )        {            int i_devices = [o_devices count];                    if ( i_devices )            {                int i;                        for( i = 0; i < i_devices; i++ )                {                    [o_disc_device                         addItemWithObjectValue: [o_devices objectAtIndex: i]];                }                [o_disc_device selectItemAtIndex: 0];            }            else            {                [o_disc_device setStringValue:                     [NSString stringWithFormat: _NS("No %@s found"), o_disc]];            }        }    }    [o_disc_device setEnabled: b_device];    [o_disc_title setEnabled: b_title_chapter];    [o_disc_title_stp setEnabled: b_title_chapter];    [o_disc_chapter setEnabled: b_title_chapter];    [o_disc_chapter_stp setEnabled: b_title_chapter];    [o_disc_videots_folder setEnabled: !b_device];    [o_disc_videots_btn_browse setEnabled: !b_device];    [o_disc_dvd_menus setEnabled: b_menus];    [self openDiscInfoChanged: nil];}- (IBAction)openDiscStepperChanged:(id)sender{    int i_tag = [sender tag];    if( i_tag == 0 )    {        [o_disc_title setIntValue: [o_disc_title_stp intValue]];    }    else if( i_tag == 1 )    {        [o_disc_chapter setIntValue: [o_disc_chapter_stp intValue]];    }    [self openDiscInfoChanged: nil];}- (void)openDiscInfoChanged:(NSNotification *)o_notification{    NSString *o_type;    NSString *o_device;    NSString *o_videots;    NSString *o_mrl_string;    int i_title, i_chapter;    vlc_bool_t b_menus;    o_type = [[o_disc_type selectedCell] title];    o_device = [o_disc_device stringValue];    i_title = [o_disc_title intValue];    i_chapter = [o_disc_chapter intValue];    o_videots = [o_disc_videots_folder stringValue];    b_menus = [o_disc_dvd_menus state];    if ( [o_type isEqualToString: _NS("VCD")] )    {        if ( [o_device isEqualToString:                [NSString stringWithFormat: _NS("No %@s found"), o_type]] )            o_device = @"";        o_mrl_string = [NSString stringWithFormat: @"vcd://%@@%i:%i",                        o_device, i_title, i_chapter];     }    else if ( [o_type isEqualToString: _NS("Audio CD")] )    {        if ( [o_device isEqualToString:                [NSString stringWithFormat: _NS("No %@s found"), o_type]] )            o_device = @"";        o_mrl_string = [NSString stringWithFormat: @"cdda://%@",                        o_device];     }    else if ( [o_type isEqualToString: _NS("DVD")] )    {        if ( [o_device isEqualToString:                [NSString stringWithFormat: _NS("No %@s found"), o_type]] )            o_device = @"";        if ( b_menus )            o_mrl_string = [NSString stringWithFormat: @"dvdnav://%@",                            o_device];         else            o_mrl_string = [NSString stringWithFormat: @"dvdread://%@@%i:%i-",                            o_device, i_title, i_chapter];     }    else /* VIDEO_TS folder */    {        if ( b_menus )            o_mrl_string = [NSString stringWithFormat: @"dvdnav://%@",                            o_videots];         else            o_mrl_string = [NSString stringWithFormat: @"dvdread://%@@%i:%i",                            o_videots, i_title, i_chapter];     }    [o_mrl setStringValue: o_mrl_string]; }- (IBAction)openDiscMenusChanged:(id)sender{    [self openDiscInfoChanged: nil];    [self openDiscTypeChanged: nil];}- (IBAction)openVTSBrowse:(id)sender{    NSOpenPanel *o_open_panel = [NSOpenPanel openPanel];    [o_open_panel setAllowsMultipleSelection: NO];    [o_open_panel setCanChooseFiles: NO];    [o_open_panel setCanChooseDirectories: YES];    [o_open_panel setTitle: _NS("Open VIDEO_TS Directory")];    [o_open_panel setPrompt: _NS("Open")];    if( [o_open_panel runModalForDirectory: nil            file: nil types: nil] == NSOKButton )    {        NSString *o_dirname = [[o_open_panel filenames] objectAtIndex: 0];        [o_disc_videots_folder setStringValue: o_dirname];        [self openDiscInfoChanged: nil];    }}- (IBAction)openNetModeChanged:(id)sender{    NSString *o_mode;    BOOL b_udp = FALSE;    BOOL b_udpm = FALSE;    BOOL b_http = FALSE;    o_mode = [[o_net_mode selectedCell] title];    if( [o_mode isEqualToString: _NS("UDP/RTP")] ) b_udp = TRUE;    else if( [o_mode isEqualToString: _NS("UDP/RTP Multicast")] ) b_udpm = TRUE;    else if( [o_mode isEqualToString: _NS("HTTP/FTP/MMS/RTSP")] ) b_http = TRUE;    [o_net_udp_port setEnabled: b_udp];    [o_net_udp_port_stp setEnabled: b_udp];    [o_net_udpm_addr setEnabled: b_udpm];    [o_net_udpm_port setEnabled: b_udpm];    [o_net_udpm_port_stp setEnabled: b_udpm];    [o_net_http_url setEnabled: b_http];    [self openNetInfoChanged: nil];}- (IBAction)openNetStepperChanged:(id)sender{    int i_tag = [sender tag];    if( i_tag == 0 )    {        [o_net_udp_port setIntValue: [o_net_udp_port_stp intValue]];    }    else if( i_tag == 1 )    {        [o_net_udpm_port setIntValue: [o_net_udpm_port_stp intValue]];    }    [self openNetInfoChanged: nil];}- (void)openNetInfoChanged:(NSNotification *)o_notification{    NSString *o_mode;    NSString *o_mrl_string = [NSString string];    intf_thread_t * p_intf = VLCIntf;    o_mode = [[o_net_mode selectedCell] title];    if( [o_mode isEqualToString: _NS("UDP/RTP")] )    {        int i_port = [o_net_udp_port intValue];        o_mrl_string = [NSString stringWithString: @"udp://"];         if( i_port != config_GetInt( p_intf, "server-port" ) )        {            o_mrl_string =                 [o_mrl_string stringByAppendingFormat: @"@:%i", i_port];         }     }    else if( [o_mode isEqualToString: _NS("UDP/RTP Multicast")] )     {        NSString *o_addr = [o_net_udpm_addr stringValue];        int i_port = [o_net_udpm_port intValue];        o_mrl_string = [NSString stringWithFormat: @"udp://@%@", o_addr];         if( i_port != config_GetInt( p_intf, "server-port" ) )        {            o_mrl_string =                 [o_mrl_string stringByAppendingFormat: @":%i", i_port];         }     }    else if( [o_mode isEqualToString: _NS("HTTP/FTP/MMS/RTSP")] )    {        NSString *o_url = [o_net_http_url stringValue];        if ( ![o_url hasPrefix:@"http:"] && ![o_url hasPrefix:@"ftp:"]              && ![o_url hasPrefix:@"mms"] && ![o_url hasPrefix:@"rtsp"] )            o_mrl_string = [NSString stringWithFormat: @"http://%@", o_url];        else            o_mrl_string = o_url;    }    [o_mrl setStringValue: o_mrl_string];}- (void)openFile{    NSOpenPanel *o_open_panel = [NSOpenPanel openPanel];    int i;        [o_open_panel setAllowsMultipleSelection: YES];    [o_open_panel setCanChooseDirectories: YES];    [o_open_panel setTitle: _NS("Open File")];    [o_open_panel setPrompt: _NS("Open")];        if( [o_open_panel runModalForDirectory: nil            file: nil types: nil] == NSOKButton )    {        NSArray *o_array = [NSArray array];        NSArray *o_values = [[o_open_panel filenames]                sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];        for( i = 0; i < (int)[o_values count]; i++)        {            NSDictionary *o_dic;            o_dic = [NSDictionary dictionaryWithObject:[o_values objectAtIndex:i] forKey:@"ITEM_URL"];            o_array = [o_array arrayByAddingObject: o_dic];        }        [o_playlist appendArray: o_array atPos: -1 enqueue:NO];    }}- (IBAction)subsChanged:(id)sender{    if ([o_file_sub_ckbox state] == NSOnState)    {        [o_file_sub_btn_settings setEnabled:YES];    }    else    {        [o_file_sub_btn_settings setEnabled:NO];    }}- (IBAction)subSettings:(id)sender{    [NSApp beginSheet: o_file_sub_sheet        modalForWindow: [sender window]        modalDelegate: self        didEndSelector: NULL        contextInfo: nil];}- (IBAction)subFileBrowse:(id)sender{    NSOpenPanel *o_open_panel = [NSOpenPanel openPanel];        [o_open_panel setAllowsMultipleSelection: NO];    [o_open_panel setTitle: _NS("Open File")];    [o_open_panel setPrompt: _NS("Open")];    if( [o_open_panel runModalForDirectory: nil             file: nil types: nil] == NSOKButton )    {        NSString *o_filename = [[o_open_panel filenames] objectAtIndex: 0];        [o_file_sub_path setStringValue: o_filename];    }}- (IBAction)subOverride:(id)sender{    BOOL b_state = [o_file_sub_override state];    [o_file_sub_delay setEnabled: b_state];    [o_file_sub_delay_stp setEnabled: b_state];    [o_file_sub_fps setEnabled: b_state];    [o_file_sub_fps_stp setEnabled: b_state];}- (IBAction)subDelayStepperChanged:(id)sender{    [o_file_sub_delay setIntValue: [o_file_sub_delay_stp intValue]];}- (IBAction)subFpsStepperChanged:(id)sender;{    [o_file_sub_fps setFloatValue: [o_file_sub_fps_stp floatValue]];}- (IBAction)subCloseSheet:(id)sender{    [o_file_sub_sheet orderOut:sender];    [NSApp endSheet: o_file_sub_sheet];}- (IBAction)panelCancel:(id)sender{    [NSApp stopModalWithCode: 0];}- (IBAction)panelOk:(id)sender{    if( [[o_mrl stringValue] length] )    {        [NSApp stopModalWithCode: 1];    }    else    {        NSBeep();    }}@end

⌨️ 快捷键说明

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