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

📄 mplayertv

📁 用perl和gtk+写的调用mplayer播放电视的软件
💻
📖 第 1 页 / 共 5 页
字号:
    #$self->{table2}->attach ($self->{mplayer_path_ent},         1, 2, 1, 2, ['fill', 'expand'], [], 2, 2);    #$self->{mplayer_browse_btn} = new Gtk2::Button ("...");    #$self->{mplayer_browse_btn}->signal_connect ("clicked", \&MplayerBrowseBtn, $self);    #$self->{tooltips}->set_tip ($self->{mplayer_browse_btn}, "Browse");    #$self->{table2}->attach ($self->{mplayer_browse_btn},       2, 3, 1, 2, [], [], 2, 2);    $self->{preexec_label} = new Gtk2::Label ("Pre-exec:");    $self->{preexec_label}->set_alignment (0, 0);    $self->{preexec_ent} = new Gtk2::Entry ();    #$self->{preexec_ent}->set_size_request (100, -1);    $self->{preexec_ent}->set_text ($self->{config}->{preexec});    $self->{table2}->attach ($self->{preexec_label},            0, 1, 0, 1, ['fill'], [], 2, 2);    $self->{table2}->attach ($self->{preexec_ent},              1, 2, 0, 1, ['fill', 'expand'], [], 2, 2);    $self->{postexec_label} = new Gtk2::Label ("Post-exec:");    $self->{postexec_label}->set_alignment (0, 0);    $self->{postexec_ent} = new Gtk2::Entry ();    #$self->{postexec_ent}->set_size_request (100, -1);    $self->{postexec_ent}->set_text ($self->{config}->{postexec});    $self->{table2}->attach ($self->{postexec_label},           0, 1, 1, 2, ['fill'], [], 2, 2);    $self->{table2}->attach ($self->{postexec_ent},             1, 2, 1, 2, ['fill', 'expand'], [], 2, 2);        $self->{terminal_emulator_label} = new Gtk2::Label ("Terminal:");    $self->{terminal_emulator_label}->set_alignment (0, 0);    $self->{table2}->attach ($self->{terminal_emulator_label},  0, 1, 4, 5, ['fill'], [], 2, 2);    $self->{terminal_emulator_ent} = new Gtk2::Entry ();    $self->{terminal_emulator_ent}->set_size_request (100, -1);    $self->{terminal_emulator_ent}->set_text ($self->{config}->{terminal_emulator});    $self->{table2}->attach ($self->{terminal_emulator_ent},    1, 2, 4, 5, ['fill'], [], 2, 2);    $self->{terminal_emulator_browse_btn} = new Gtk2::Button ("...");    $self->{terminal_emulator_browse_btn}->signal_connect ("clicked", \&TerminalEmulatorBrowseBtn, $self);    $self->{tooltips}->set_tip ($self->{terminal_emulator_browse_btn}, "Browse");    $self->{table2}->attach ($self->{terminal_emulator_browse_btn}, 2, 3, 4, 5, [], [], 2, 2);        $self->{mplayer_opts_label} = new Gtk2::Label ("MPlayer options:");    $self->{mplayer_opts_label}->set_alignment (0, 0);    $self->{table2}->attach ($self->{mplayer_opts_label},       0, 1, 6, 7, ['fill'], [], 2, 2);    $self->{mplayer_opts_ent} = new Gtk2::Entry ();    $self->{mplayer_opts_ent}->set_size_request (100, -1);    $self->{mplayer_opts_ent}->set_text ($self->{config}->{mplayer_opts});    $self->{table2}->attach ($self->{mplayer_opts_ent},         1, 2, 6, 7, ['fill'], [], 2, 2);        #$self->{scantv_label} = new Gtk2::Label ("scantv:");    #$self->{scantv_label}->set_alignment (0, 0);    #$self->{scantv_ent} = new Gtk2::Entry ();    #$self->{scantv_ent}->set_size_request (100, -1);    #$self->{scantv_ent}->set_text ($self->{config}->{scantv});    #$self->{table2}->attach ($self->{scantv_label},             0, 1, 5, 6, ['fill'], [], 2, 2);    #$self->{table2}->attach ($self->{scantv_ent},               1, 2, 5, 6, ['fill'], [], 2, 2);    #$self->{scantv_browse_btn} = new Gtk2::Button ("...");    #$self->{scantv_browse_btn}->signal_connect ("clicked", \&ScantvBrowseBtn, $self);    #$self->{tooltips}->set_tip ($self->{scantv_browse_btn}, "Browse");    #$self->{table2}->attach ($self->{scantv_browse_btn},        2, 3, 5, 6, [], [], 2, 2);       ### PAGE 3: VIDEO    $self->{table3} = new Gtk2::Table (13, 3, 0);    $self->{page3}->pack_start ($self->{table3}, 1, 1, 0);    $self->{tv_drivers_label} = new Gtk2::Label ("TV driver: ");    $self->{tv_drivers_label}->set_alignment (0, 0);    $self->{table3}->attach ($self->{tv_drivers_label},         0, 1, 1, 2, ['fill'], [], 2, 2);    $self->{tv_drivers_option} = new Gtk2::OptionMenu;    $self->{tv_drivers_menu} = new Gtk2::Menu;    $self->{tv_drivers_option}->set_menu ($self->{tv_drivers_menu});    $self->{tv_drivers_option}->set_size_request (100, -1);    $self->{tv_drivers_option}->set_history (0);    my $i = 0;    foreach ("v4l", "v4l2", "bsdbt848", "dummy") {        my $item = new Gtk2::MenuItem($_);        $item->{label} = $_;        $self->{tv_drivers_menu}->append($item);        $self->{tv_drivers_option}->set_history ($i) if ($_ eq $self->{config}->{tv});        $i++;    }    $self->{table3}->attach ($self->{tv_drivers_option},        1, 2, 1, 2, ['fill'], [], 2, 2);        $self->{tv_device_label} = new Gtk2::Label ("TV device:");    $self->{tv_device_label}->set_alignment (0, 0);    $self->{table3}->attach ($self->{tv_device_label},          0, 1, 2, 3, ['fill'], [], 2, 2);    $self->{tv_device_ent} = new Gtk2::Entry ();    $self->{tv_device_ent}->set_size_request (100, -1);    $self->{tv_device_ent}->set_text ($self->{config}->{tv_device});    $self->{table3}->attach ($self->{tv_device_ent},            1, 2, 2, 3, ['fill'], [], 2, 2);    $self->{vo_drivers_label} = new Gtk2::Label ("Video output driver:");    $self->{vo_drivers_label}->set_alignment (0, 0);    $self->{table3}->attach ($self->{vo_drivers_label},         0, 1, 3, 4, ['fill'], [], 2, 2);    $self->{vo_drivers_option} = new Gtk2::OptionMenu;    $self->{vo_drivers_menu} = new Gtk2::Menu;    $self->{vo_drivers_option}->set_menu($self->{vo_drivers_menu});    $self->{vo_drivers_option}->set_size_request (100, -1);    $self->{vo_drivers_option}->set_history(0);    $self->update_vo_drivers_list ();    $self->{table3}->attach ($self->{vo_drivers_option},        1, 2, 3, 4, ['fill'], [], 2, 2);    #$self->{vo_update_btn} = new Gtk2::Button ("_Update");    #$self->{vo_update_btn}->set_size_request (60, -1);    #$self->{vo_update_btn}->signal_connect ("clicked", sub { $self->update_vo_drivers_list ()});    #$self->{tooltips}->set_tip ($self->{vo_update_btn}, "Runs mplayer and fetch video output drivers list");    #$self->{table3}->attach ($self->{vo_update_btn},            2, 3, 3, 4, ['fill'], [], 2, 2);        $self->{vo_subdriver_label} = new Gtk2::Label ("Video output subdriver:");    $self->{vo_subdriver_label}->set_alignment (0, 0);    $self->{table3}->attach ($self->{vo_subdriver_label},       0, 1, 4, 5, ['fill'], [], 2, 2);    $self->{vo_subdriver_ent} = new Gtk2::Entry ();    $self->{vo_subdriver_ent}->set_size_request (100, -1);    $self->{vo_subdriver_ent}->set_text ($self->{config}->{subvo});    $self->{table3}->attach ($self->{vo_subdriver_ent},         1, 2, 4, 5, ['fill'], [], 2, 2);        $self->{outfmts_label} = new Gtk2::Label ("Output format of tuner:");    $self->{outfmts_label}->set_alignment (0, 0);    $self->{table3}->attach ($self->{outfmts_label},            0, 1, 5, 6, ['fill'], [], 2, 2);    $self->{outfmts_option} = new Gtk2::OptionMenu;    $self->{outfmts_menu} = new Gtk2::Menu;    $self->{outfmts_option}->set_menu ($self->{outfmts_menu});    $self->{outfmts_option}->set_size_request (100, -1);    $self->{outfmts_option}->set_history(0);    $self->update_outfmts_list ();    $self->{table3}->attach ($self->{outfmts_option},           1, 2, 5, 6, ['fill'], [], 2, 2);        $self->{norm_label} = new Gtk2::Label ("Norm:");    $self->{norm_label}->set_alignment (0, 0);    $self->{table3}->attach ($self->{norm_label},               0, 1, 6, 7, ['fill'], [], 2, 2);    $self->{norm_option} = new Gtk2::OptionMenu;    $self->{norm_menu} = new Gtk2::Menu;    $self->{norm_option}->set_menu ($self->{norm_menu});    $self->{norm_option}->set_size_request (100, -1);    $self->{norm_option}->set_history (0);    $i = 0;    foreach ("PAL", "NTSC", "SECAM", "PAL-Nc", "PAL-M", "PAL-N", "NTSC-JP", "PAL-60") {        my $item = new Gtk2::MenuItem($_);        $item->{label} = $_;        $self->{norm_menu}->append($item);        $self->{norm_option}->set_history ($i) if ($_ eq $self->{config}->{_defaults}->{norm});        $i++;    }    $self->{table3}->attach ($self->{norm_option},              1, 2, 6, 7, ['fill'], [], 2, 2);    $self->{input_label} = new Gtk2::Label ("Input:");    $self->{input_label}->set_alignment (0, 0);    $self->{table3}->attach ($self->{input_label},              0, 1, 7, 8, ['fill'], [], 2, 2);    $self->{input_option} = new Gtk2::OptionMenu;    $self->{input_menu} = new Gtk2::Menu;    $self->{input_option}->set_menu ($self->{input_menu});    $self->{input_option}->set_size_request (120, -1);    $self->{input_option}->set_history (0);    $i = 0;    foreach ("#0 Television", "#1 Composite", "#2 S-Video", "#3", "#4") {        my $item = new Gtk2::MenuItem($_);        $item->{label} = $_;        $self->{input_menu}->append($item);        $self->{input_option}->set_history ($i) if ($i eq $self->{config}->{_defaults}->{input});        $i++;    }    $self->{table3}->attach ($self->{input_option},             1, 2, 7, 8, ['fill'], [], 2, 2);    $self->{ratio_label} = new Gtk2::Label ("Ratio:");    $self->{ratio_label}->set_alignment (0, 0);    $self->{table3}->attach ($self->{ratio_label},              0, 1, 8, 9, ['fill'], [], 2, 2);    $self->{ratio_option} = new Gtk2::OptionMenu;    $self->{ratio_menu} = new Gtk2::Menu;    $self->{ratio_option}->set_menu ($self->{ratio_menu});    $self->{ratio_option}->set_size_request (100, -1);    $self->{ratio_option}->set_history (0);    $i = 0;    foreach ("4:3", "16:9") {        my $item = new Gtk2::MenuItem($_);        $item->{label} = $_;        $self->{ratio_menu}->append($item);        $self->{ratio_option}->set_history ($i) if ($_ eq $self->{config}->{_global}->{ratio});        $i++;    }    $self->{table3}->attach ($self->{ratio_option},             1, 2, 8, 9, ['fill'], [], 2, 2);    $self->{channel_list_label} = new Gtk2::Label ("Channel list:");    $self->{channel_list_label}->set_alignment (0, 0);    $self->{table3}->attach ($self->{channel_list_label},       0, 1, 9, 10, ['fill'], [], 2, 2);    $self->{channel_list_option} = new Gtk2::OptionMenu;    $self->{channel_list_menu} = new Gtk2::Menu;    $self->{channel_list_option}->set_menu ($self->{channel_list_menu});    $self->{channel_list_option}->set_history (0);    $i = 0;    foreach ("europe-east", "europe-west", "us-bcast", "us-cable",         "us-cable-hrc", "japan-bcast", "japan-cable", "italy", "newzealand",        "australia", "ireland", "france", "china-bcast", "southafrica",        "argentina", "russia") {        my $item = new Gtk2::MenuItem($_);        $item->{label} = $_;        $self->{channel_list_menu}->append($item);        $self->{channel_list_option}->set_history ($i) if ($_ eq $self->{config}->{_global}->{freqtab});        $i++;    }    $self->{table3}->attach ($self->{channel_list_option},      1, 2, 9, 10, ['fill'], [], 2, 2);    $self->{osd_label} = new Gtk2::Label ("OSD:");    $self->{osd_label}->set_alignment (0, 0);    $self->{table3}->attach ($self->{osd_label},                0, 1, 10, 11, ['fill'], [], 2, 2);    $self->{table3b} = new Gtk2::Table (2, 1, 0);    $self->{table3}->attach ($self->{table3b},                  1, 2, 10, 11, ['fill'], [], 2, 2);    $self->{osd_radio1} = new Gtk2::RadioButton (undef, "On");    $self->{osd_radio1}->signal_connect ("pressed", sub { $self->{osd} = "yes"}); #TODO    $self->{table3b}->attach ($self->{osd_radio1}, 0, 1, 0, 1, ['fill'], [], 2, 2);    $self->{osd_radio2} = new Gtk2::RadioButton ($self->{osd_radio1}, "Off");    $self->{osd_radio2}->signal_connect ("pressed", sub { $self->{osd} = "no"}); #TODO    $self->{table3b}->attach ($self->{osd_radio2}, 1, 2, 0, 1, ['fill'], [], 2, 2);    if ($self->{config}->{_global}->{osd} eq "no") {        $self->{osd_radio2}->set_active (1);        $self->{osd} = "no";    }    else {        $self->{osd_radio1}->set_active (1);        $self->{osd} = "yes";    }       $self->{fullscreen_label} = new Gtk2::Label ("Start in full screen:");    $self->{fullscreen_label}->set_alignment (0, 0);    $self->{table3}->attach ($self->{fullscreen_label},         0, 1, 11, 12, ['fill'], [], 2, 2);    $self->{table3c} = new Gtk2::Table (2, 1, 0);    $self->{table3}->attach ($self->{table3c},                  1, 2, 11, 12, ['fill'], [], 2, 2);    $self->{fullscreen_radio1} = new Gtk2::RadioButton (undef, "On");    $self->{fullscreen_radio1}->signal_connect ("pressed", sub { $self->{fullscreen} = "yes"}); #TODO    $self->{table3c}->attach ($self->{fullscreen_radio1},       0, 1, 0, 1, ['fill'], [], 2, 2);    $self->{fullscreen_radio2} = new Gtk2::RadioButton ($self->{fullscreen_radio1}, "Off");    $self->{fullscreen_radio2}->signal_connect ("pressed", sub { $self->{fullscreen} = "no"}); #TODO    $self->{table3c}->attach ($self->{fullscreen_radio2},       1, 2, 0, 1, ['fill'], [], 2, 2);    if ($self->{config}->{fullscreen} eq "no") {        $self->{fullscreen_radio2}->set_active (1);        $self->{fullscreen} = "no";    }    else {        $self->{fullscreen_radio1}->set_active (1);        $self->{fullscreen} = "yes";    }    $self->{mjpeg_label} = new Gtk2::Label ("Hardware MJPEG:");    $self->{mjpeg_label}->set_alignment (0, 0);    $self->{table3}->attach ($self->{mjpeg_label},              0, 1, 12, 13, ['fill'], [], 2, 2);    $self->{mjpeg_option} = new Gtk2::OptionMenu;    $self->{mjpeg_menu} = new Gtk2::Menu;    $self->{mjpeg_option}->set_menu ($self->{mjpeg_menu});    $self->{mjpeg_option}->set_size_request (100, -1);    $self->{mjpeg_option}->set_history (0);    $i = 0;    foreach $size ("no", "full size", "medium size", "small size") {        my $item = new Gtk2::MenuItem($size);        $item->{label} = $size;        $self->{mjpeg_menu}->append($item);        $item->signal_connect("activate", sub {                if ($_[1] eq "no") {                    $self->{capt_label}->show_all ();                    $self->{size_option}->show_all ();                }                else {                    $self->{capt_label}->hide_all ();                    $self->{size_option}->hide_all ();                }            }, $size);        $self->{mjpeg_option}->set_history ($i) if ($size eq $self->{config}->{mjpeg});        $i++;    }    $self->{table3}->attach ($self->{mjpeg_option},             1, 2, 12, 13, ['fill'], [], 2, 2);        $self->{capt_label} = new Gtk2::Label ("Capture size:");    $self->{capt_label}->set_alignment (0, 0);    $self->{table3}->attach ($self->{capt_label},               0, 1, 13, 14, ['fill'], [], 2, 2);    $self->{size_option} = new Gtk2::OptionMenu;    $self->{size_menu} = new Gtk2::Menu;    $self->{size_option}->set_menu ($self->{size_menu});    $self->{size_option}->set_size_request (100, -1);    $self->{size_option}->set_history (0);    $i = 0;    foreach $size ("768x576", "720x576 (PAL)", "720x480 (NTSC)",                    "640x480", "512x384",                   "360x288 (Half PAL)", "360x240 (Half NTSC)") {        my $item = new Gtk2::MenuItem($size);        $item->{label} = $size;        $self->{size_menu}->append($item);        $_ = $size; s/^(\d+)x\d+.*/$1/; $w = $_;        $_ = $size; s/^\d+x(\d+).*/$1/; $h = $_;        if ($self->{config}->{width} == $w && $self->{config}->{height} == $h) {            $self->{size_option}->set_history ($i);        }        $i++;    }    $self->{table3}->attach ($self->{size_option},              1, 2, 13, 14, ['fill'], [], 2, 2);        ### PAGE 4: VIDEO FILTERS    $self->{table4} = new Gtk2::Table (1, 1, 0);    $self->{page4}->pack_start ($self->{table4}, 1, 1, 0);    $self->{vf_notebook} = new Gtk2::Notebook;    $self->{vf_notebook}->set_tab_pos ('left');    $self->{vf_notebook}->set_scrollable (1);    $self->{table4}->attach ($self->{vf_notebook},              0, 1, 0, 1, ['fill'], ['fill', 'expand'], 2, 2);    $i = 0;    foreach $filter (@{$self->{vf_table}}) {        my $name = $filter->{name};        my $desc = $filter->{desc};        my $longdesc = $filter->{longdesc};        my @params = @{$filter->{params}};        my $help = undef;

⌨️ 快捷键说明

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