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

📄 recording_dialog.cpp

📁 网络MPEG4IP流媒体开发源代码
💻 CPP
字号:
/* * The contents of this file are subject to the Mozilla Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/MPL/ *  * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. *  * The Original Code is MPEG4IP. *  * The Initial Developer of the Original Code is Cisco Systems Inc. * Portions created by Cisco Systems Inc. are * Copyright (C) Cisco Systems Inc. 2001-2002.  All Rights Reserved. *  * Contributor(s):  *		Dave Mackie		dmackie@cisco.com *		Bill May 		wmay@cisco.com */#include "mp4live.h"#include "mp4live_gui.h"static GtkWidget *dialog;static GtkWidget *file_combo;static GtkWidget *file_entry;static GtkWidget *video_raw_button;static GtkWidget *video_encoded_button;static GtkWidget *audio_raw_button;static GtkWidget *audio_encoded_button;static GtkWidget *overwrite_button;static void on_destroy_dialog (GtkWidget *widget, gpointer *data){  gtk_grab_remove(dialog);  gtk_widget_destroy(dialog);  dialog = NULL;} static void on_browse_button (GtkWidget *widget, gpointer *data){	FileBrowser(file_entry);}static bool Validate(){	const char *name;	name = gtk_entry_get_text(GTK_ENTRY(file_entry));	if (name == NULL || *name == '\0') {		ShowMessage("Error", "Must specify file");		return false;	}  	struct stat statbuf;	if (stat(name, &statbuf) == 0 && !S_ISREG(statbuf.st_mode)) {		ShowMessage("Error", "Specified name is not a file");		return false;	}	return true;}  static void Save(){	MyConfig->SetStringValue(CONFIG_RECORD_MP4_FILE_NAME,		gtk_entry_get_text(GTK_ENTRY(file_entry)));	MyConfig->UpdateFileHistory(		gtk_entry_get_text(GTK_ENTRY(file_entry)));	MyConfig->SetBoolValue(CONFIG_RECORD_RAW_VIDEO,		gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(video_raw_button)));	MyConfig->SetBoolValue(CONFIG_RECORD_ENCODED_VIDEO,		gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(video_encoded_button)));	MyConfig->SetBoolValue(CONFIG_RECORD_RAW_AUDIO,		gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(audio_raw_button)));	MyConfig->SetBoolValue(CONFIG_RECORD_ENCODED_AUDIO,		gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(audio_encoded_button)));	MyConfig->SetBoolValue(CONFIG_RECORD_MP4_OVERWRITE,		gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(overwrite_button)));	MyConfig->Update();	DisplayRecordingSettings();}static void on_ok_button (GtkWidget *widget, gpointer *data){	if (!Validate()) {		return;	}	Save();    on_destroy_dialog(NULL, NULL);}static void on_cancel_button (GtkWidget *widget, gpointer *data){	on_destroy_dialog(NULL, NULL);}void CreateRecordingDialog (void) {	GtkWidget *hbox, *label;	dialog = gtk_dialog_new();	gtk_signal_connect(GTK_OBJECT(dialog),			 "destroy",			 GTK_SIGNAL_FUNC(on_destroy_dialog),			 &dialog);	gtk_window_set_title(GTK_WINDOW(dialog), "Recording Settings");	gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);	// first row	hbox = gtk_hbox_new(FALSE, 1);	gtk_widget_show(hbox);	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, TRUE, TRUE, 5);	// file label 	label = gtk_label_new(" File:");	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);	gtk_widget_show(label);	// file entry	file_combo = CreateFileCombo(		MyConfig->GetStringValue(CONFIG_RECORD_MP4_FILE_NAME));	file_entry = GTK_COMBO(file_combo)->entry;	gtk_widget_show(file_combo);	gtk_box_pack_start(GTK_BOX(hbox), file_combo, TRUE, TRUE, 5);		// file browse button	GtkWidget *browse_button = gtk_button_new_with_label(" Browse... ");	gtk_signal_connect(GTK_OBJECT(browse_button),		 "clicked",		 GTK_SIGNAL_FUNC(on_browse_button),		 NULL);	gtk_box_pack_start(GTK_BOX(hbox), browse_button, FALSE, FALSE, 0);	gtk_widget_show(browse_button);	// second row	hbox = gtk_hbox_new(FALSE, 1);	gtk_widget_show(hbox);	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, TRUE, TRUE, 5);	// overwrite button	overwrite_button = 		gtk_check_button_new_with_label("Overwrite existing file");	gtk_box_pack_start(GTK_BOX(hbox), overwrite_button, FALSE, FALSE, 5);	gtk_widget_show(overwrite_button);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(overwrite_button),		MyConfig->GetBoolValue(CONFIG_RECORD_MP4_OVERWRITE));  	// third row	hbox = gtk_hbox_new(FALSE, 1);	gtk_widget_show(hbox);	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, TRUE, TRUE, 5);	// video label	label = gtk_label_new(" Video:");	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);	gtk_widget_show(label);	// video raw button	video_raw_button = gtk_check_button_new_with_label("Raw");	gtk_box_pack_start(GTK_BOX(hbox), video_raw_button, FALSE, FALSE, 5);	gtk_widget_show(video_raw_button);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(video_raw_button),		MyConfig->GetBoolValue(CONFIG_RECORD_RAW_VIDEO));  	// video encoded button	video_encoded_button = gtk_check_button_new_with_label("Encoded");	gtk_box_pack_start(GTK_BOX(hbox), video_encoded_button, FALSE, FALSE, 5);	gtk_widget_show(video_encoded_button);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(video_encoded_button),		MyConfig->GetBoolValue(CONFIG_RECORD_ENCODED_VIDEO));  	// fourth row	hbox = gtk_hbox_new(FALSE, 1);	gtk_widget_show(hbox);	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, TRUE, TRUE, 5);	// audio label	label = gtk_label_new(" Audio:");	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);	gtk_widget_show(label);	// audio raw button	audio_raw_button = gtk_check_button_new_with_label("Raw");	gtk_box_pack_start(GTK_BOX(hbox), audio_raw_button, FALSE, FALSE, 5);	gtk_widget_show(audio_raw_button);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(audio_raw_button),		MyConfig->GetBoolValue(CONFIG_RECORD_RAW_AUDIO));  	// audio encoded button	audio_encoded_button = gtk_check_button_new_with_label("Encoded");	gtk_box_pack_start(GTK_BOX(hbox), audio_encoded_button, FALSE, FALSE, 5);	gtk_widget_show(audio_encoded_button);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(audio_encoded_button),		MyConfig->GetBoolValue(CONFIG_RECORD_ENCODED_AUDIO));  	// fifth row	// standard buttons 	AddButtonToDialog(dialog,		" OK ", 		GTK_SIGNAL_FUNC(on_ok_button));	AddButtonToDialog(dialog,		" Cancel ", 		GTK_SIGNAL_FUNC(on_cancel_button));	gtk_widget_show(dialog);	gtk_grab_add(dialog);}/* end recording_dialog.cpp */

⌨️ 快捷键说明

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