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

📄 gui_main.cpp

📁 网络MPEG4IP流媒体开发源代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
  	// enabled button	record_enabled_button = gtk_check_button_new_with_label("Enabled");	gtk_box_pack_start(GTK_BOX(hbox), record_enabled_button, TRUE, TRUE, 5);	gtk_signal_connect(GTK_OBJECT(record_enabled_button), 		"toggled",		GTK_SIGNAL_FUNC(on_record_enabled_button),		NULL);	gtk_widget_show(record_enabled_button);	// create second row	hbox = gtk_hbox_new(FALSE, 1);	gtk_widget_show(hbox);	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);	// settings summary	record_settings_label = gtk_label_new("");	gtk_misc_set_alignment(GTK_MISC(record_settings_label), 0.0, 0.5);	gtk_widget_show(record_settings_label);	gtk_box_pack_start(GTK_BOX(hbox), record_settings_label, TRUE, TRUE, 0);	// settings button	record_settings_button = gtk_button_new_with_label(" Settings... ");	gtk_box_pack_start(GTK_BOX(hbox), record_settings_button, FALSE, FALSE, 5);	gtk_signal_connect(GTK_OBJECT(record_settings_button), 		"clicked",		GTK_SIGNAL_FUNC(on_record_settings_button),		NULL);	gtk_widget_show(record_settings_button);	// finalize	gtk_container_add(GTK_CONTAINER(frame), vbox);	gtk_widget_show(frame);}static void LayoutTransmitFrame(GtkWidget* box){	GtkWidget *frame;	GtkWidget *vbox, *hbox;	frame = gtk_frame_new("Transmission");	gtk_frame_set_label_align(GTK_FRAME(frame), frameLabelAlignment, 0);	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);	gtk_box_pack_start(GTK_BOX(box), frame, TRUE, TRUE, 5);	vbox = gtk_vbox_new(FALSE, 1);	gtk_widget_show(vbox);	// create first row, homogenous	hbox = gtk_hbox_new(TRUE, 1);	gtk_widget_show(hbox);	gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 5);  	// enabled button	transmit_enabled_button = gtk_check_button_new_with_label("Enabled");	gtk_box_pack_start(GTK_BOX(hbox), transmit_enabled_button, TRUE, TRUE, 5);	gtk_signal_connect(GTK_OBJECT(transmit_enabled_button), 		"toggled",		GTK_SIGNAL_FUNC(on_transmit_enabled_button),		NULL);	gtk_widget_show(transmit_enabled_button);	// create second row	hbox = gtk_hbox_new(FALSE, 1);	gtk_widget_show(hbox);	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);	// settings summary	transmit_settings_label = gtk_label_new("");	gtk_misc_set_alignment(GTK_MISC(transmit_settings_label), 0.0, 0.5);	gtk_widget_show(transmit_settings_label);	gtk_box_pack_start(GTK_BOX(hbox), transmit_settings_label, TRUE, TRUE, 0);	// settings button	transmit_settings_button = gtk_button_new_with_label(" Settings... ");	gtk_box_pack_start(GTK_BOX(hbox), 		transmit_settings_button, FALSE, FALSE, 5);	gtk_signal_connect(GTK_OBJECT(transmit_settings_button), 		"clicked",		GTK_SIGNAL_FUNC(on_transmit_settings_button),		NULL);	gtk_widget_show(transmit_settings_button);	// finalize	gtk_container_add(GTK_CONTAINER(frame), vbox);	gtk_widget_show(frame);}// Control framevoid LayoutControlFrame(GtkWidget* box){	GtkWidget *frame;	GtkWidget *vbox;	GtkWidget *hbox;	GtkWidget *label;	GtkWidget *separator;	GtkObject* adjustment;	frame = gtk_frame_new("Control");	gtk_frame_set_label_align(GTK_FRAME(frame), frameLabelAlignment, 0);	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);	gtk_box_pack_end(GTK_BOX(box), frame, FALSE, FALSE, 5);	vbox = gtk_vbox_new(FALSE, 1);	gtk_widget_show(vbox);	gtk_container_add(GTK_CONTAINER(frame), vbox);	hbox = gtk_hbox_new(FALSE, 1);	gtk_widget_show(hbox);	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);	label = gtk_label_new(" Duration:");	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);	gtk_widget_show(label);	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);	adjustment = gtk_adjustment_new(		MyConfig->GetIntegerValue(CONFIG_APP_DURATION),		1, 24 * 60 * 60, 1, 0, 0);	duration_spinner = gtk_spin_button_new(GTK_ADJUSTMENT(adjustment), 1, 0);	gtk_signal_connect(GTK_OBJECT(duration_spinner),		"value-changed",		GTK_SIGNAL_FUNC(on_duration_changed),		GTK_OBJECT(duration_spinner));	gtk_widget_show(duration_spinner);	gtk_box_pack_start(GTK_BOX(hbox), duration_spinner, FALSE, FALSE, 5);	durationUnitsIndex = 0; // temporary	duration_units_menu = CreateOptionMenu(NULL,		durationUnitsNames, 		sizeof(durationUnitsNames) / sizeof(char*),		durationUnitsIndex,		GTK_SIGNAL_FUNC(on_duration_units_menu_activate));	gtk_box_pack_start(GTK_BOX(hbox), duration_units_menu, FALSE, FALSE, 5);	// vertical separator	separator = gtk_vseparator_new();	gtk_widget_show(separator);	gtk_box_pack_start(GTK_BOX(hbox), separator, FALSE, FALSE, 0);	start_button = gtk_button_new();	start_button_label = gtk_label_new("  Start  ");	gtk_misc_set_alignment(GTK_MISC(start_button_label), 0.5, 0.5);	gtk_container_add(GTK_CONTAINER(start_button), start_button_label);	gtk_widget_show(start_button_label);	gtk_box_pack_start(GTK_BOX(hbox), start_button, TRUE, TRUE, 5);	gtk_signal_connect(GTK_OBJECT(start_button), 		"clicked",		GTK_SIGNAL_FUNC(on_start_button),		NULL);	gtk_widget_show(start_button);	// separator	separator = gtk_hseparator_new();	gtk_widget_show(separator);	gtk_box_pack_start(GTK_BOX(vbox), separator, TRUE, TRUE, 0);	// second row	hbox = gtk_hbox_new(FALSE, 1);	gtk_widget_show(hbox);	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);	label = gtk_label_new(" Configuration File:");	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);	gtk_widget_show(label);	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);	config_file_entry = gtk_entry_new_with_max_length(256);	gtk_entry_set_text(GTK_ENTRY(config_file_entry), 		MyConfig->GetFileName());	gtk_widget_show(config_file_entry);	gtk_box_pack_start(GTK_BOX(hbox), config_file_entry, TRUE, TRUE, 5);		// config file load button	load_config_button = gtk_button_new_with_label(" Load... ");	gtk_signal_connect(GTK_OBJECT(load_config_button),		 "clicked",		 GTK_SIGNAL_FUNC(on_load_config_button),		 NULL);	gtk_widget_show(load_config_button);	gtk_box_pack_start(GTK_BOX(hbox), load_config_button, FALSE, FALSE, 5);	// config file save button	save_config_button = gtk_button_new_with_label(" Save ");	gtk_signal_connect(GTK_OBJECT(save_config_button),		 "clicked",		 GTK_SIGNAL_FUNC(on_save_config_button),		 NULL);	gtk_widget_show(save_config_button);	gtk_box_pack_start(GTK_BOX(hbox), save_config_button, FALSE, FALSE, 5);	gtk_widget_show(frame); // show control frame}// Status framevoid LayoutStatusFrame(GtkWidget* box){	GtkWidget *frame;	GtkWidget *frame_vbox;	GtkWidget *vbox, *hbox;	GtkWidget *separator;	frame = gtk_frame_new("Status");	gtk_frame_set_label_align(GTK_FRAME(frame), frameLabelAlignment, 0);	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);	gtk_box_pack_end(GTK_BOX(box), frame, FALSE, FALSE, 5);	// frame vbox	frame_vbox = gtk_vbox_new(FALSE, 1);	gtk_widget_show(frame_vbox);	gtk_container_add(GTK_CONTAINER(frame), frame_vbox);	// first row	hbox = gtk_hbox_new(FALSE, 1);	gtk_widget_show(hbox);	gtk_box_pack_start(GTK_BOX(frame_vbox), hbox, FALSE, FALSE, 2);	media_source_label = gtk_label_new(" Source:");	gtk_misc_set_alignment(GTK_MISC(media_source_label), 0.0, 0.5);	gtk_widget_show(media_source_label);	gtk_box_pack_start(GTK_BOX(hbox), media_source_label, TRUE, TRUE, 5);	media_source = gtk_label_new("");	gtk_misc_set_alignment(GTK_MISC(media_source), 1.0, 0.5);	gtk_widget_show(media_source);	gtk_box_pack_start(GTK_BOX(hbox), media_source, TRUE, TRUE, 5);	// separator	separator = gtk_hseparator_new();	gtk_widget_show(separator);	gtk_box_pack_start(GTK_BOX(frame_vbox), separator, TRUE, TRUE, 0);	// second row	hbox = gtk_hbox_new(FALSE, 1);	gtk_widget_show(hbox);	gtk_box_pack_start(GTK_BOX(frame_vbox), hbox, FALSE, FALSE, 2);	// vbox for time labels	vbox = gtk_vbox_new(FALSE, 1);	gtk_widget_show(vbox);	gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5);	start_time_label = gtk_label_new(" Start Time:");	gtk_misc_set_alignment(GTK_MISC(start_time_label), 0.0, 0.5);	gtk_widget_show(start_time_label);	gtk_box_pack_start(GTK_BOX(vbox), start_time_label, TRUE, TRUE, 0);	duration_label = gtk_label_new(" Current Duration:");	gtk_misc_set_alignment(GTK_MISC(duration_label), 0.0, 0.5);	gtk_widget_show(duration_label);	gtk_box_pack_start(GTK_BOX(vbox), duration_label, TRUE, TRUE, 0);	current_time_label = gtk_label_new(" Current Time:");	gtk_misc_set_alignment(GTK_MISC(current_time_label), 0.0, 0.5);	gtk_widget_show(current_time_label);	gtk_box_pack_start(GTK_BOX(vbox), current_time_label, TRUE, TRUE, 0);	finish_time_label = gtk_label_new(" Finish Time:");	gtk_misc_set_alignment(GTK_MISC(finish_time_label), 0.0, 0.5);	gtk_widget_show(finish_time_label);	gtk_box_pack_start(GTK_BOX(vbox), finish_time_label, TRUE, TRUE, 0);	// vbox for time values	vbox = gtk_vbox_new(FALSE, 1);	gtk_widget_show(vbox);	gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);	start_time = gtk_label_new("");	gtk_misc_set_alignment(GTK_MISC(start_time), 1.0, 0.5);	gtk_widget_show(start_time);	gtk_box_pack_start(GTK_BOX(vbox), start_time, TRUE, TRUE, 0);	duration = gtk_label_new("");	gtk_misc_set_alignment(GTK_MISC(duration), 1.0, 0.5);	gtk_widget_show(duration);	gtk_box_pack_start(GTK_BOX(vbox), duration, TRUE, TRUE, 0);	current_time = gtk_label_new("                 ");	gtk_misc_set_alignment(GTK_MISC(current_time), 1.0, 0.5);	gtk_widget_show(current_time);	gtk_box_pack_start(GTK_BOX(vbox), current_time, TRUE, TRUE, 0);	finish_time = gtk_label_new("");	gtk_misc_set_alignment(GTK_MISC(finish_time), 1.0, 0.5);	gtk_widget_show(finish_time);	gtk_box_pack_start(GTK_BOX(vbox), finish_time, TRUE, TRUE, 0);	// vbox for time units	vbox = gtk_vbox_new(FALSE, 1);	gtk_widget_show(vbox);	gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 5);	start_time_units = gtk_label_new("");	gtk_misc_set_alignment(GTK_MISC(start_time_units), 1.0, 0.5);	gtk_widget_show(start_time_units);	gtk_box_pack_start(GTK_BOX(vbox), start_time_units, TRUE, TRUE, 0);	duration_units = gtk_label_new("");	gtk_misc_set_alignment(GTK_MISC(duration_units), 1.0, 0.5);	gtk_widget_show(duration_units);	gtk_box_pack_start(GTK_BOX(vbox), duration_units, TRUE, TRUE, 0);	current_time_units = gtk_label_new("");	gtk_misc_set_alignment(GTK_MISC(current_time_units), 1.0, 0.5);	gtk_widget_show(current_time_units);	gtk_box_pack_start(GTK_BOX(vbox), current_time_units, TRUE, TRUE, 0);	finish_time_units = gtk_label_new("");	gtk_misc_set_alignment(GTK_MISC(finish_time_units), 1.0, 0.5);	gtk_widget_show(finish_time_units);	gtk_box_pack_start(GTK_BOX(vbox), finish_time_units, TRUE, TRUE, 0);	// separator	separator = gtk_hseparator_new();	gtk_widget_show(separator);	gtk_box_pack_start(GTK_BOX(frame_vbox), separator, TRUE, TRUE, 0);	// third row	hbox = gtk_hbox_new(FALSE, 1);	gtk_widget_show(hbox);	gtk_box_pack_start(GTK_BOX(frame_vbox), hbox, FALSE, FALSE, 2);	// vbox for size labels	vbox = gtk_vbox_new(FALSE, 1);	gtk_widget_show(vbox);	gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5);	current_size_label = gtk_label_new(" Current Size:");	gtk_misc_set_alignment(GTK_MISC(current_size_label), 0.0, 0.5);	gtk_widget_show(current_size_label);	gtk_box_pack_start(GTK_BOX(vbox), current_size_label, TRUE, TRUE, 0);	final_size_label = gtk_label_new(" Estimated Final Size:");	gtk_misc_set_alignment(GTK_MISC(final_size_label), 0.0, 0.5);	gtk_widget_show(final_size_label);	gtk_box_pack_start(GTK_BOX(vbox), final_size_label, TRUE, TRUE, 0);	// vbox for size values	vbox = gtk_vbox_new(FALSE, 1);	gtk_widget_show(vbox);	gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);	current_size = gtk_label_new("");	gtk_misc_set_alignment(GTK_MISC(current_size), 1.0, 0.5);	gtk_widget_show(current_size);	gtk_box_pack_start(GTK_BOX(vbox), current_size, TRUE, TRUE, 0);	final_size = gtk_label_new("");	gtk_misc_set_alignment(GTK_MISC(final_size), 1.0, 0.5);	gtk_widget_show(final_size);	gtk_box_pack_start(GTK_BOX(vbox), final_size, TRUE, TRUE, 0);	// vbox for size units	vbox = gtk_vbox_new(FALSE, 1);	gtk_widget_show(vbox);	gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 5);	current_size_units = gtk_label_new("");	gtk_misc_set_alignment(GTK_MISC(current_size_units), 1.0, 0.5);	gtk_widget_show(current_size_units);	gtk_box_pack_start(GTK_BOX(vbox), current_size_units, TRUE, TRUE, 0);	final_size_units = gtk_label_new("");	gtk_misc_set_alignment(GTK_MISC(final_size_units), 1.0, 0.5);	gtk_widget_show(final_size_units);	gtk_box_pack_start(GTK_BOX(vbox), final_size_units, TRUE, TRUE, 0);	// separator	separator = gtk_hseparator_new();	gtk_widget_show(separator);	gtk_box_pack_start(GTK_BOX(frame_vbox), separator, TRUE, TRUE, 0);	// fourth row	hbox = gtk_hbox_new(FALSE, 1);	gtk_widget_show(hbox);	gtk_box_pack_start(GTK_BOX(frame_vbox), hbox, FALSE, FALSE, 2);	actual_fps_label = gtk_label_new(" Video Frame Rate:");	gtk_misc_set_alignment(GTK_MISC(actual_fps_label), 0.0, 0.5);	gtk_widget_show(actual_fps_label);	gtk_box_pack_start(GTK_BOX(hbox), actual_fps_label, TRUE, TRUE, 5);	actual_fps = gtk_label_new("");	gtk_misc_set_alignment(GTK_MISC(actual_fps), 1.0, 0.5);	gtk_widget_show(actual_fps);	gtk_box_pack_start(GTK_BOX(hbox), actual_fps, FALSE, FALSE, 0);	actual_fps_units = gtk_label_new("");	gtk_misc_set_alignment(GTK_MISC(actual_fps_units), 1.0, 0.5);	gtk_widget_show(actual_fps_units);	gtk_box_pack_start(GTK_BOX(hbox), actual_fps_units, FALSE, FALSE, 5);	gtk_widget_show(frame); // show control frame}/* * Main routine - set up window */int gui_main(int argc, char **argv, CLiveConfig* pConfig){	MyConfig = pConfig;	AVFlow = new CPreviewAVMediaFlow(pConfig);	gtk_init(&argc, &argv);	// Setup main window	main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);	gtk_window_set_policy(GTK_WINDOW(main_window), FALSE, FALSE, TRUE);	char buffer[80];	snprintf(buffer, sizeof(buffer), "cisco mp4live %s", VERSION);	gtk_window_set_title(GTK_WINDOW(main_window), buffer);	gtk_signal_connect(GTK_OBJECT(main_window),		"delete_event",		GTK_SIGNAL_FUNC(delete_event),		NULL);	// main boxes	main_hbox = gtk_hbox_new(FALSE, 1);	gtk_container_set_border_width(GTK_CONTAINER(main_hbox), 4);	gtk_widget_show(main_hbox);	gtk_container_add(GTK_CONTAINER(main_window), main_hbox);	main_vbox1 = gtk_vbox_new(FALSE, 1);	gtk_container_set_border_width(GTK_CONTAINER(main_vbox1), 4);	gtk_widget_show(main_vbox1);	gtk_box_pack_start(GTK_BOX(main_hbox), main_vbox1, FALSE, FALSE, 5);	main_vbox2 = gtk_vbox_new(FALSE, 1);	gtk_container_set_border_width(GTK_CONTAINER(main_vbox2), 4);	gtk_widget_show(main_vbox2);	gtk_box_pack_start(GTK_BOX(main_hbox), main_vbox2, FALSE, FALSE, 5);	// Video Preview	NewVideoWindow();		// Video Frame	LayoutVideoFrame(main_vbox2);	// Audio Frame	LayoutAudioFrame(main_vbox2);	// Recording Frame	LayoutRecordingFrame(main_vbox2);	// Transmission Frame	LayoutTransmitFrame(main_vbox2);	// Status frame	LayoutStatusFrame(main_vbox1);	// Control frame	LayoutControlFrame(main_vbox1);	DisplayAllSettings();	gtk_widget_show(main_window);	if (MyConfig->GetBoolValue(CONFIG_VIDEO_ENABLE)) {		AVFlow->StartVideoPreview();	}	// "press" start button	if (MyConfig->m_appAutomatic) {		on_start_button(start_button, NULL);	}	gtk_main();	delete AVFlow;	return 0;}/* end gui_main.cpp */

⌨️ 快捷键说明

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