📄 video_dialog.cpp
字号:
profile->SetFloatValue(CFG_VIDEO_CROP_ASPECT_RATIO, aspectValues[gtk_option_menu_get_history(GTK_OPTION_MENU(temp))]); temp = lookup_widget(dialog, "VideoFilterMenu"); profile->SetStringValue(CFG_VIDEO_FILTER, profilefilterNames[gtk_option_menu_get_history(GTK_OPTION_MENU(temp))]); profile->Update(); profile->WriteToFile(); } } else { if (profile->GetName() == NULL) { delete profile; } } OnVideoProfileFinished(pass_profile); gtk_widget_destroy(GTK_WIDGET(dialog));}void CreateVideoProfileDialog(CVideoProfile *profile){ GtkWidget *dialog_vbox4; GtkWidget *VideoProfileTable; GtkWidget *VideoProfileEncoder; GtkWidget *VideoProfileSize; GtkWidget *VideoProfileAspectRatio; GtkWidget *label87; GtkWidget *label88; GtkWidget *label89; GtkWidget *label93; GtkWidget *VideoProfileName; GtkWidget *label92; GtkWidget *VideoEncoderSettingsButton; GtkWidget *alignment11; GtkWidget *hbox59; GtkWidget *image11; GtkWidget *label95; GtkWidget *label91; GtkObject *VideoProfileBitRate_adj; GtkWidget *VideoProfileBitRate; GtkWidget *label90; GtkObject *VideoProfileFrameRate_adj; GtkWidget *VideoProfileFrameRate; GtkWidget *label166; GtkWidget *VideoFilterMenu; GtkWidget *dialog_action_area3; GtkWidget *cancelbutton3; GtkWidget *okbutton3; GtkTooltips *tooltips; bool new_profile = profile == NULL; if (new_profile) { profile = new CVideoProfile(NULL, NULL); profile->LoadConfigVariables(); profile->Initialize(false); } tooltips = gtk_tooltips_new(); VideoProfileDialog = gtk_dialog_new(); gtk_window_set_title(GTK_WINDOW(VideoProfileDialog), _("Video Profile")); gtk_window_set_modal(GTK_WINDOW(VideoProfileDialog), TRUE); gtk_window_set_resizable(GTK_WINDOW(VideoProfileDialog), FALSE); gtk_window_set_transient_for(GTK_WINDOW(VideoProfileDialog), GTK_WINDOW(MainWindow)); dialog_vbox4 = GTK_DIALOG(VideoProfileDialog)->vbox; gtk_widget_show(dialog_vbox4); VideoProfileTable = gtk_table_new(8, 2, FALSE); gtk_widget_show(VideoProfileTable); gtk_box_pack_start(GTK_BOX(dialog_vbox4), VideoProfileTable, TRUE, TRUE, 0); gtk_table_set_row_spacings(GTK_TABLE(VideoProfileTable), 3); VideoProfileEncoder = gtk_option_menu_new(); gtk_widget_show(VideoProfileEncoder); gtk_table_attach(GTK_TABLE(VideoProfileTable), VideoProfileEncoder, 1, 2, 1, 2, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0); gtk_tooltips_set_tip(tooltips, VideoProfileEncoder, _("Select Encoder/Encoding"), NULL); uint encoderIndex = 0; uint i; encoderNames = (const char **)malloc(video_encoder_table_size * sizeof(char *)); for (i = 0; i < video_encoder_table_size; i++) { if ((strcasecmp(profile->GetStringValue(CFG_VIDEO_ENCODING), video_encoder_table[i].encoding) == 0) && (strcasecmp(profile->GetStringValue(CFG_VIDEO_ENCODER), video_encoder_table[i].encoder) == 0)) { encoderIndex = i; } encoderNames[i] = video_encoder_table[i].encoding_name; } CreateOptionMenu(VideoProfileEncoder, encoderNames, video_encoder_table_size, encoderIndex); VideoProfileSize = gtk_option_menu_new(); gtk_widget_show(VideoProfileSize); gtk_table_attach(GTK_TABLE(VideoProfileTable), VideoProfileSize, 1, 2, 2, 3, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0); gtk_tooltips_set_tip(tooltips, VideoProfileSize, _("Select Output Stream Size"), NULL); VideoProfileAspectRatio = gtk_option_menu_new(); gtk_widget_show(VideoProfileAspectRatio); gtk_table_attach(GTK_TABLE(VideoProfileTable), VideoProfileAspectRatio, 1, 2, 3, 4, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0); gtk_tooltips_set_tip(tooltips, VideoProfileAspectRatio, _("Crop to Aspect Ratio"), NULL); uint aspectIndex = 0; for (uint i = 0; i < NUM_ELEMENTS_IN_ARRAY(aspectValues); i++) { if (profile->GetFloatValue(CFG_VIDEO_CROP_ASPECT_RATIO) == aspectValues[i]) { aspectIndex = i; break; } } CreateOptionMenu(VideoProfileAspectRatio, aspectNames, NUM_ELEMENTS_IN_ARRAY(aspectNames), aspectIndex); label87 = gtk_label_new(_("Encoder:")); gtk_widget_show(label87); gtk_table_attach(GTK_TABLE(VideoProfileTable), label87, 0, 1, 1, 2, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0); gtk_misc_set_alignment(GTK_MISC(label87), 0, 0.5); label88 = gtk_label_new(_("Size:")); gtk_widget_show(label88); gtk_table_attach(GTK_TABLE(VideoProfileTable), label88, 0, 1, 2, 3, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0); gtk_misc_set_alignment(GTK_MISC(label88), 0, 0.5); label89 = gtk_label_new(_("Crop to Aspect Ratio:")); gtk_widget_show(label89); gtk_table_attach(GTK_TABLE(VideoProfileTable), label89, 0, 1, 3, 4, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0); gtk_misc_set_alignment(GTK_MISC(label89), 0, 0.5); label93 = gtk_label_new(_("Video Profile:")); gtk_widget_show(label93); gtk_table_attach(GTK_TABLE(VideoProfileTable), label93, 0, 1, 0, 1, (GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 8); gtk_misc_set_alignment(GTK_MISC(label93), 0.05, 0.5); VideoProfileName = gtk_entry_new(); gtk_widget_show(VideoProfileName); gtk_table_attach(GTK_TABLE(VideoProfileTable), VideoProfileName, 1, 2, 0, 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0); if (new_profile == false) { gtk_entry_set_text(GTK_ENTRY(VideoProfileName), profile->GetName()); gtk_widget_set_sensitive(VideoProfileName, false); } label92 = gtk_label_new(_("Encoder Settings:")); gtk_widget_show(label92); gtk_table_attach(GTK_TABLE(VideoProfileTable), label92, 0, 1, 7, 8, (GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0); gtk_misc_set_alignment(GTK_MISC(label92), 0, 0.5); VideoEncoderSettingsButton = gtk_button_new(); gtk_widget_show(VideoEncoderSettingsButton); gtk_table_attach(GTK_TABLE(VideoProfileTable), VideoEncoderSettingsButton, 1, 2, 7, 8, (GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0); gtk_widget_set_sensitive(VideoEncoderSettingsButton, FALSE); gtk_tooltips_set_tip(tooltips, VideoEncoderSettingsButton, _("Configure Encoder Specific Settings"), NULL); alignment11 = gtk_alignment_new(0.5, 0.5, 0, 0); gtk_widget_show(alignment11); gtk_container_add(GTK_CONTAINER(VideoEncoderSettingsButton), alignment11); hbox59 = gtk_hbox_new(FALSE, 2); gtk_widget_show(hbox59); gtk_container_add(GTK_CONTAINER(alignment11), hbox59); image11 = gtk_image_new_from_stock("gtk-preferences", GTK_ICON_SIZE_BUTTON); gtk_widget_show(image11); gtk_box_pack_start(GTK_BOX(hbox59), image11, FALSE, FALSE, 0); label95 = gtk_label_new_with_mnemonic(_("Settings")); gtk_widget_show(label95); gtk_box_pack_start(GTK_BOX(hbox59), label95, FALSE, FALSE, 0); label91 = gtk_label_new(_("Bit Rate(kbps):")); gtk_widget_show(label91); gtk_table_attach(GTK_TABLE(VideoProfileTable), label91, 0, 1, 6, 7, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0); gtk_misc_set_alignment(GTK_MISC(label91), 0, 0.5); VideoProfileBitRate_adj = gtk_adjustment_new(profile->GetIntegerValue(CFG_VIDEO_BIT_RATE), 25, 4000, 50, 1000, 1000); VideoProfileBitRate = gtk_spin_button_new(GTK_ADJUSTMENT(VideoProfileBitRate_adj), 50, 0); gtk_widget_show(VideoProfileBitRate); gtk_table_attach(GTK_TABLE(VideoProfileTable), VideoProfileBitRate, 1, 2, 6, 7, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(GTK_EXPAND), 0, 0); gtk_tooltips_set_tip(tooltips, VideoProfileBitRate, _("Enter Bit Rate"), NULL); label90 = gtk_label_new(_("Frame Rate(fps):")); gtk_widget_show(label90); gtk_table_attach(GTK_TABLE(VideoProfileTable), label90, 0, 1, 5, 6, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0); gtk_misc_set_alignment(GTK_MISC(label90), 0, 0.5); VideoProfileFrameRate_adj = gtk_adjustment_new(profile->GetFloatValue(CFG_VIDEO_FRAME_RATE), 0, MyConfig->GetIntegerValue(CONFIG_VIDEO_SIGNAL) == VIDEO_SIGNAL_NTSC ? VIDEO_NTSC_FRAME_RATE : VIDEO_PAL_FRAME_RATE, 1, 5, 5); VideoProfileFrameRate = gtk_spin_button_new(GTK_ADJUSTMENT(VideoProfileFrameRate_adj), 1, 2); gtk_widget_show(VideoProfileFrameRate); gtk_table_attach(GTK_TABLE(VideoProfileTable), VideoProfileFrameRate, 1, 2, 5, 6, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0); gtk_tooltips_set_tip(tooltips, VideoProfileFrameRate, _("Enter Frame Rate"), NULL); label166 = gtk_label_new(_("Video Filter:")); gtk_widget_show(label166); gtk_table_attach(GTK_TABLE(VideoProfileTable), label166, 0, 1, 4, 5, (GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0); gtk_misc_set_alignment(GTK_MISC(label166), 0, 0.5); VideoFilterMenu = gtk_option_menu_new(); gtk_widget_show(VideoFilterMenu); gtk_table_attach(GTK_TABLE(VideoProfileTable), VideoFilterMenu, 1, 2, 4, 5, (GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0); uint filterIndex = 0; for (i = 0; i < NUM_ELEMENTS_IN_ARRAY(profilefilterNames); i++) { if (strcasecmp(profile->GetStringValue(CFG_VIDEO_FILTER), profilefilterNames[i]) == 0) { filterIndex = i; break; } } CreateOptionMenu(VideoFilterMenu, profilefilterNames, NUM_ELEMENTS_IN_ARRAY(profilefilterNames), filterIndex); dialog_action_area3 = GTK_DIALOG(VideoProfileDialog)->action_area; gtk_widget_show(dialog_action_area3); gtk_button_box_set_layout(GTK_BUTTON_BOX(dialog_action_area3), GTK_BUTTONBOX_END); cancelbutton3 = gtk_button_new_from_stock("gtk-cancel"); gtk_widget_show(cancelbutton3); gtk_dialog_add_action_widget(GTK_DIALOG(VideoProfileDialog), cancelbutton3, GTK_RESPONSE_CANCEL); GTK_WIDGET_SET_FLAGS(cancelbutton3, GTK_CAN_DEFAULT); okbutton3 = gtk_button_new_from_stock("gtk-ok"); gtk_widget_show(okbutton3); gtk_dialog_add_action_widget(GTK_DIALOG(VideoProfileDialog), okbutton3, GTK_RESPONSE_OK); GTK_WIDGET_SET_FLAGS(okbutton3, GTK_CAN_DEFAULT); g_signal_connect((gpointer) VideoProfileDialog, "response", G_CALLBACK(on_VideoProfileDialog_response), profile); g_signal_connect((gpointer) VideoProfileEncoder, "changed", G_CALLBACK(on_VideoProfileEncoder_changed), NULL); g_signal_connect((gpointer) VideoEncoderSettingsButton, "clicked", G_CALLBACK(on_VideoEncoderSettingsButton), profile); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF(VideoProfileDialog, VideoProfileDialog, "VideoProfileDialog"); GLADE_HOOKUP_OBJECT_NO_REF(VideoProfileDialog, dialog_vbox4, "dialog_vbox4"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoProfileTable, "VideoProfileTable"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoProfileEncoder, "VideoProfileEncoder"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoProfileSize, "VideoProfileSize"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoProfileAspectRatio, "VideoProfileAspectRatio"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, label87, "label87"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, label88, "label88"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, label89, "label89"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, label93, "label93"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoProfileName, "VideoProfileName"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, label92, "label92"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoEncoderSettingsButton, "VideoEncoderSettingsButton"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, alignment11, "alignment11"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, hbox59, "hbox59"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, image11, "image11"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, label95, "label95"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, label91, "label91"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoProfileBitRate, "VideoProfileBitRate"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, label90, "label90"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoProfileFrameRate, "VideoProfileFrameRate"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, label166, "label166"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, VideoFilterMenu, "VideoFilterMenu"); GLADE_HOOKUP_OBJECT_NO_REF(VideoProfileDialog, dialog_action_area3, "dialog_action_area3"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, cancelbutton3, "cancelbutton3"); GLADE_HOOKUP_OBJECT(VideoProfileDialog, okbutton3, "okbutton3"); GLADE_HOOKUP_OBJECT_NO_REF(VideoProfileDialog, tooltips, "tooltips"); CreateSizeMenu(profile->GetIntegerValue(CFG_VIDEO_WIDTH), profile->GetIntegerValue(CFG_VIDEO_HEIGHT)); // return VideoProfileDialog; gtk_widget_show(VideoProfileDialog);}/* end video_dialog.cpp */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -