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

📄 gui_main.cpp

📁 网络MPEG4IP流媒体开发源代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
  videoradio[0] = CreateMenuRadio(videosub,			       "50 %",			       &videosizelist,			       GTK_SIGNAL_FUNC(on_video_radio),			       GINT_TO_POINTER(50));  videoradio[1] = CreateMenuRadio(videosub,			       "100 %",			       &videosizelist,			       GTK_SIGNAL_FUNC(on_video_radio),			       GINT_TO_POINTER(100));  gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM((videoradio[1])), TRUE);  videoradio[2] = CreateMenuRadio(videosub,			       "200 %",			       &videosizelist,			       GTK_SIGNAL_FUNC(on_video_radio),			       GINT_TO_POINTER(200));  menuitem = CreateMenuItem(videosub, 			    accel_group, 			    tooltips, 			    NULL, NULL, NULL, 			    NULL, NULL);  menuitem = CreateMenuItem(videosub,			    accel_group,			    tooltips,			    "Full Screen",			    "M-<enter>",			    "Full Screen",			    GTK_SIGNAL_FUNC(on_video_fullscreen),			    NULL);  menuitem = CreateMenuItem(videosub, 			    accel_group, 			    tooltips, 			    NULL, NULL, NULL, 			    NULL, NULL);  GSList *aspectratiolist = NULL;  int value = config.get_config_value(CONFIG_ASPECT_RATIO);  set_aspect_ratio(value);  aspectratio[0] = CreateMenuRadio(videosub,				   "Aspect Ration Auto",				   &aspectratiolist,				   GTK_SIGNAL_FUNC(on_aspect_ratio),				   GINT_TO_POINTER(0));  aspectratio[1] = CreateMenuRadio(videosub,				   "3:4",				   &aspectratiolist,				   GTK_SIGNAL_FUNC(on_aspect_ratio),				   GINT_TO_POINTER(1));  aspectratio[2] = CreateMenuRadio(videosub,				   "16:9",				   &aspectratiolist,				   GTK_SIGNAL_FUNC(on_aspect_ratio),				   GINT_TO_POINTER(2));  aspectratio[3] = CreateMenuRadio(videosub,				   "1.85 Letterbox",				   &aspectratiolist,				   GTK_SIGNAL_FUNC(on_aspect_ratio),				   GINT_TO_POINTER(2));  aspectratio[4] = CreateMenuRadio(videosub,				   "2.35 Letterbox",				   &aspectratiolist,				   GTK_SIGNAL_FUNC(on_aspect_ratio),				   GINT_TO_POINTER(2));  gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(aspectratio[value]), TRUE);  CreateMenuItemSeperator(menu);  seek_menuitem = CreateMenuItem(menu, 				 accel_group,				 tooltips,				 "Seek",				 "^S",				 "Seek",				 GTK_SIGNAL_FUNC(on_menu_seek),				 NULL);  gtk_widget_set_sensitive(seek_menuitem, 0);  CreateMenuItemSeperator(menu);  menuitem = CreateMenuCheck(menu, 			     "Play Audio", 			     GTK_SIGNAL_FUNC(on_media_play_audio),			     NULL,			     config.get_config_value(CONFIG_PLAY_AUDIO));  menuitem = CreateMenuCheck(menu, 			     "Play Video", 			     GTK_SIGNAL_FUNC(on_media_play_video),			     NULL,			     config.get_config_value(CONFIG_PLAY_VIDEO));  CreateMenuItemSeperator(menu);  menu = CreateBarSubMenu(menubar, "Network");  menuitem = CreateMenuCheck(menu,			     "Use RTP over RTSP(TCP)",			     GTK_SIGNAL_FUNC(on_network_rtp_over_rtsp),			     NULL,			     config.get_config_value(CONFIG_USE_RTP_OVER_RTSP));  menu = CreateBarSubMenu(menubar, "Help");  menuitem = CreateMenuItem(menu,			    accel_group,			    tooltips,			    "Help",			    NULL,			    NULL,			    GTK_SIGNAL_FUNC(on_main_menu_help),			    NULL);  CreateMenuItemSeperator(menu);  GtkWidget *debugsub;  debugsub = CreateSubMenu(menu, "Debug");  menuitem = CreateMenuCheck(debugsub, 			     "Mpeg4ISOOnly",			     GTK_SIGNAL_FUNC(on_debug_mpeg4isoonly),			     NULL,			     config.get_config_value(CONFIG_USE_MPEG4_ISO_ONLY) == 0 ? FALSE : TRUE);  menuitem = CreateMenuCheck(debugsub, 			     "Use Old mp4 library",			     GTK_SIGNAL_FUNC(on_debug_use_old_mp4_lib),			     NULL,			     config.get_config_value(CONFIG_USE_OLD_MP4_LIB) == 0 ? FALSE : TRUE);  CreateLogLevelSubmenu(debugsub, 			"HTTP library", 			config.get_config_value(CONFIG_HTTP_DEBUG),			GTK_SIGNAL_FUNC(on_debug_http));  CreateLogLevelSubmenu(debugsub, 			"RTSP library", 			config.get_config_value(CONFIG_RTSP_DEBUG),			GTK_SIGNAL_FUNC(on_debug_rtsp));  CreateLogLevelSubmenu(debugsub, 			"RTP library", 			config.get_config_value(CONFIG_RTP_DEBUG),			GTK_SIGNAL_FUNC(on_debug_rtp));  CreateLogLevelSubmenu(debugsub, 			"SDP library", 			config.get_config_value(CONFIG_SDP_DEBUG),			GTK_SIGNAL_FUNC(on_debug_sdp));  CreateLogLevelSubmenu(debugsub,			"Mpeg2 Transport Library",			config.get_config_value(CONFIG_MPEG2T_DEBUG),			GTK_SIGNAL_FUNC(on_debug_mpeg2t));  CreateMenuItemSeperator(menu);  menuitem = CreateMenuItem(menu,			    accel_group,			    tooltips, 			    "About",			    NULL,			    NULL,			    GTK_SIGNAL_FUNC(on_main_menu_about),			    NULL);  // this is how you turn off the widget  gtk_widget_set_sensitive(close_menuitem, 0);  GtkWidget *hbox;  /*   * first line - Play: combo box browse button    */  hbox = gtk_hbox_new(FALSE, 1);  gtk_widget_show(hbox);  gtk_box_pack_start(GTK_BOX(main_vbox), hbox, FALSE, FALSE, 5);    GtkWidget *label;  label = gtk_label_new("Play: ");  gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 10);  gtk_widget_show(label);  // combo box uses list playlist.  combo = gtk_combo_new();  gtk_signal_connect(GTK_OBJECT(GTK_COMBO(combo)->entry),		     "activate",		     GTK_SIGNAL_FUNC(on_play_list_selected), 		     NULL);  gtk_signal_connect(GTK_OBJECT(GTK_COMBO(combo)->list),		     "select_child",		     GTK_SIGNAL_FUNC(on_playlist_child_selected),		     combo);  gtk_combo_set_popdown_strings (GTK_COMBO(combo), playlist);  gtk_combo_set_value_in_list(GTK_COMBO(combo), FALSE, FALSE);  gtk_combo_disable_activate(GTK_COMBO(combo));  gtk_combo_set_use_arrows_always(GTK_COMBO(combo), 1);  gtk_combo_set_case_sensitive(GTK_COMBO(combo), TRUE);  gtk_box_pack_start(GTK_BOX(hbox), combo, TRUE, TRUE, 0);  gtk_widget_show(combo);  /* button for browse */  GtkWidget *button;  button = gtk_button_new_with_label("Browse");  gtk_signal_connect(GTK_OBJECT(button),		     "clicked",		     GTK_SIGNAL_FUNC(on_browse_button_clicked),		     NULL);  gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 10);  gtk_widget_show(button);  /*************************************************************************   * 2nd line  play pause stop speaker volume   *************************************************************************/  hbox = gtk_hbox_new(FALSE, 1);  gtk_box_pack_start(GTK_BOX(main_vbox), hbox, FALSE, FALSE, 5);  gtk_widget_show(hbox);  GtkWidget *vbox, *hbox2;  vbox = gtk_vbox_new(TRUE, 1);  gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 5);  gtk_widget_show(vbox);  hbox2 = gtk_hbox_new(TRUE, 1);  gtk_box_pack_start(GTK_BOX(vbox), hbox2, FALSE, FALSE, 0);  gtk_widget_show(hbox2);  GtkWidget *image;    play_button = gtk_toggle_button_new();  image = CreateWidgetFromXpm(main_window,xpm_play);  gtk_container_add(GTK_CONTAINER(play_button), image);#if 0  //gdk_pixmap_unref((GdkPixmap *)image);#endif  gtk_widget_show(play_button);  gtk_signal_connect(GTK_OBJECT(play_button),		     "clicked",		     GTK_SIGNAL_FUNC(on_play_clicked),		     NULL);  gtk_box_pack_start(GTK_BOX(hbox2), play_button, FALSE, FALSE, 2);  pause_button = gtk_toggle_button_new();  image = CreateWidgetFromXpm(main_window,xpm_pause);  gtk_container_add(GTK_CONTAINER(pause_button), image);#if 0  gdk_pixmap_unref((GdkPixmap *)image);#endif  gtk_widget_show(pause_button);  gtk_signal_connect(GTK_OBJECT(pause_button),		     "clicked",		     GTK_SIGNAL_FUNC(on_pause_clicked),		     NULL);  gtk_box_pack_start(GTK_BOX(hbox2), pause_button, FALSE, FALSE, 2);  stop_button = gtk_toggle_button_new();  image = CreateWidgetFromXpm(main_window,xpm_stop);  gtk_container_add(GTK_CONTAINER(stop_button), image);#if 0  gdk_pixmap_unref((GdkPixmap *)image);#endif  gtk_widget_show(stop_button);  gtk_signal_connect(GTK_OBJECT(stop_button),		     "clicked",		     GTK_SIGNAL_FUNC(on_stop_clicked),		     NULL);  gtk_box_pack_start(GTK_BOX(hbox2), stop_button, FALSE, FALSE, 2);  gtk_widget_set_sensitive(play_button, 0);  gtk_widget_set_sensitive(pause_button, 0);  gtk_widget_set_sensitive(stop_button, 0);  GtkWidget *sep = gtk_vseparator_new();  gtk_widget_show(sep);  gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 5);  vbox = gtk_vbox_new(FALSE, 1);  gtk_widget_show(vbox);  gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 5);  hbox2 = gtk_hbox_new(FALSE, 1);  gtk_widget_show(hbox2);  gtk_box_pack_start(GTK_BOX(vbox), hbox2, FALSE, FALSE, 0);  speaker_button = gtk_button_new();  image = CreateWidgetFromXpm(speaker_button,			      master_muted == 0 ?			      xpm_speaker : xpm_speaker_muted);  gtk_container_add(GTK_CONTAINER(speaker_button), image);#if 0  gdk_pixmap_unref((GdkPixmap *)image);#endif  gtk_widget_show(speaker_button);  gtk_signal_connect(GTK_OBJECT(speaker_button),		     "clicked",		     GTK_SIGNAL_FUNC(on_speaker_clicked),		     NULL);  gtk_box_pack_start(GTK_BOX(hbox2), speaker_button, FALSE, FALSE, 5);  GtkObject *vol_adj;  vol_adj = gtk_adjustment_new(master_volume,			       0.0,			       100.0,			       5.0,			       25.0,			       0.0);    GtkWidget *vol;  vol = gtk_hscale_new(GTK_ADJUSTMENT(vol_adj));  gtk_scale_set_digits(GTK_SCALE(vol),0);  gtk_scale_set_draw_value(GTK_SCALE(vol), 0);  gtk_range_set_adjustment ( GTK_RANGE( vol ), GTK_ADJUSTMENT(vol_adj));#ifdef HAVE_GTK_2_0  gtk_widget_set_size_request(GTK_WIDGET(vol), 100, -1);  gtk_range_set_update_policy(GTK_RANGE(vol), GTK_UPDATE_DISCONTINUOUS);#else  gtk_range_slider_update ( GTK_RANGE( vol ) );  gtk_range_clear_background ( GTK_RANGE( vol ) );  //gtk_range_draw_background ( GTK_RANGE( vol ) );#endif#ifdef HAVE_GTK_2_0  // We don't need this - I'm not 100% sure why, but we don't...  gtk_signal_connect(vol_adj,		     "value_changed",		     GTK_SIGNAL_FUNC(on_volume_adjusted),		     vol);#else  gtk_signal_connect(GTK_OBJECT(vol), 		     "button_release_event",		     GTK_SIGNAL_FUNC(on_volume_adjusted),		     vol);#endif  gtk_widget_show(vol);  volume_slider = vol;  gtk_box_pack_start(GTK_BOX(hbox2), vol, TRUE, TRUE, 0);    // boxes for Looped label   sep = gtk_vseparator_new();  gtk_widget_show(sep);  gtk_box_pack_start(GTK_BOX(hbox), sep, FALSE, FALSE, 5);  vbox = gtk_vbox_new(TRUE, 1);  gtk_widget_show(vbox);  gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 5);  hbox2 = gtk_hbox_new(TRUE, 1);  gtk_widget_show(hbox2);  gtk_box_pack_start(GTK_BOX(vbox), hbox2, FALSE, FALSE, 0);  GtkWidget *loop_enabled_button;  loop_enabled_button = gtk_check_button_new_with_label("Looped");  gtk_box_pack_start(GTK_BOX(hbox2), loop_enabled_button, FALSE, FALSE, 0);  gtk_signal_connect(GTK_OBJECT(loop_enabled_button),		     "toggled",		     GTK_SIGNAL_FUNC(on_loop_enabled_button),		     loop_enabled_button);  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(loop_enabled_button),			       master_looped);  gtk_widget_show(loop_enabled_button);    /*    * 3rd line - where we are meter...   */  hbox = gtk_hbox_new(FALSE, 5);  gtk_box_pack_start(GTK_BOX(main_vbox), hbox, FALSE, FALSE, 0);  gtk_widget_show(hbox);  GtkObject *time_slider_adj;  master_time = 0;  time_slider_adj = gtk_adjustment_new(0.0,				  0.0,				  100.0,				  0.5,				  0.5,				  0.5);    time_slider = gtk_hscale_new(GTK_ADJUSTMENT(time_slider_adj));  gtk_range_set_update_policy(GTK_RANGE(time_slider), GTK_UPDATE_DELAYED);  gtk_scale_set_digits(GTK_SCALE(time_slider),0);  gtk_scale_set_draw_value(GTK_SCALE(time_slider), 0);  gtk_range_set_adjustment(GTK_RANGE(time_slider), 			   GTK_ADJUSTMENT(time_slider_adj));#ifndef HAVE_GTK_2_0  gtk_range_slider_update(GTK_RANGE(time_slider));  gtk_range_clear_background(GTK_RANGE( time_slider));#endif  gtk_signal_connect(GTK_OBJECT(time_slider), 		     "button_release_event",		     GTK_SIGNAL_FUNC(on_time_slider_adjusted),		     time_slider);  gtk_signal_connect(GTK_OBJECT(time_slider),		     "button_press_event",		     GTK_SIGNAL_FUNC(on_time_slider_pressed),		     NULL);  gtk_widget_set_sensitive(time_slider, 0);  gtk_widget_show(time_slider);  gtk_box_pack_start(GTK_BOX(hbox), time_slider, TRUE, TRUE, 0);  /*    * 4th line - time display...   */  hbox = gtk_hbox_new(FALSE, 1);  gtk_box_pack_start(GTK_BOX(main_vbox), hbox, FALSE, FALSE, 0);  gtk_widget_show(hbox);    time_disp = gtk_label_new("0:00:00");  gtk_widget_ref(time_disp);  gtk_widget_show(time_disp);  gtk_box_pack_start(GTK_BOX(hbox), time_disp, TRUE, TRUE,0);  // session information  for (int ix = 0; ix < 4; ix++) {    hbox = gtk_hbox_new(FALSE, 1);    gtk_box_pack_start(GTK_BOX(main_vbox), hbox, FALSE, FALSE, 0);    gtk_widget_show(hbox);      session_desc[ix] = gtk_label_new("");    gtk_widget_ref(session_desc[ix]);    gtk_widget_show(session_desc[ix]);    gtk_box_pack_start(GTK_BOX(hbox), session_desc[ix], TRUE, TRUE,0);  }  gtk_timeout_add(500, main_timer, main_window);  gtk_container_add(GTK_CONTAINER(main_window), main_vbox);  gtk_widget_show(main_window);  /*   * set up drag and drop   */  gtk_drag_dest_set(main_window, 		    GTK_DEST_DEFAULT_ALL, 		    drop_types,		    1, 		    GDK_ACTION_COPY);  gtk_signal_connect(GTK_OBJECT(main_window), 		     "drag_data_received",		     GTK_SIGNAL_FUNC(on_drag_data_received),		     main_window);  /*   * any args passed ?   */  argc--;  argv++;  if (argc > 0) {    start_session_from_name(*argv);  }  gtk_main();  exit(0);}/* end gui_main.cpp */

⌨️ 快捷键说明

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