1 /* GSequencer - Advanced GTK Sequencer 2 * Copyright (C) 2005-2019 Joël Krähemann 3 * 4 * This file is part of GSequencer. 5 * 6 * GSequencer is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * GSequencer is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with GSequencer. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 #ifndef __AGS_CONNECTION_EDITOR_H__ 21 #define __AGS_CONNECTION_EDITOR_H__ 22 23 #include <glib.h> 24 #include <glib-object.h> 25 26 #include <gtk/gtk.h> 27 28 #include <ags/libags.h> 29 #include <ags/libags-audio.h> 30 #include <ags/libags-gui.h> 31 32 #include <ags/X/ags_machine.h> 33 #include <ags/X/ags_property_collection_editor.h> 34 35 G_BEGIN_DECLS 36 37 #define AGS_TYPE_CONNECTION_EDITOR (ags_connection_editor_get_type()) 38 #define AGS_CONNECTION_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_CONNECTION_EDITOR, AgsConnectionEditor)) 39 #define AGS_CONNECTION_EDITOR_CLASS(class) (G_TYPE_CHECK_CLASS_CAST((class), AGS_TYPE_CONNECTION_EDITOR, AgsConnectionEditorClass)) 40 #define AGS_IS_CONNECTION_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), AGS_TYPE_CONNECTION_EDITOR)) 41 #define AGS_IS_CONNECTION_EDITOR_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), AGS_TYPE_CONNECTION_EDITOR)) 42 #define AGS_CONNECTION_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), AGS_TYPE_CONNECTION_EDITOR, AgsConnectionEditorClass)) 43 44 #define AGS_CONNECTION_EDITOR_DEFAULT_VERSION "2.0.0" 45 #define AGS_CONNECTION_EDITOR_DEFAULT_BUILD_ID "Sun Aug 26 19:06:10 UTC 2018" 46 47 typedef struct _AgsConnectionEditor AgsConnectionEditor; 48 typedef struct _AgsConnectionEditorClass AgsConnectionEditorClass; 49 50 typedef enum{ 51 AGS_CONNECTION_EDITOR_CONNECTED = 1, 52 AGS_CONNECTION_EDITOR_CLOSING = 1 << 1, 53 AGS_CONNECTION_EDITOR_SHOW_OUTPUT = 1 << 2, 54 AGS_CONNECTION_EDITOR_SHOW_INPUT = 1 << 3, 55 }AgsConnectionEditorFlags; 56 57 struct _AgsConnectionEditor 58 { 59 GtkDialog dialog; 60 61 guint flags; 62 63 gchar *version; 64 gchar *build_id; 65 66 AgsMachine *machine; 67 68 GtkNotebook *notebook; 69 70 GtkScrolledWindow *output_listing_editor_scrolled_window; 71 AgsPropertyCollectionEditor *output_listing_editor; 72 73 GtkScrolledWindow *input_listing_editor_scrolled_window; 74 AgsPropertyCollectionEditor *input_listing_editor; 75 76 GtkScrolledWindow *output_connection_editor_scrolled_window; 77 AgsPropertyCollectionEditor *output_connection_editor; 78 79 GtkScrolledWindow *input_connection_editor_scrolled_window; 80 AgsPropertyCollectionEditor *input_connection_editor; 81 82 GtkButton *apply; 83 GtkButton *ok; 84 GtkButton *cancel; 85 }; 86 87 struct _AgsConnectionEditorClass 88 { 89 GtkDialogClass dialog; 90 91 void (*set_machine)(AgsConnectionEditor *connection_editor, 92 AgsMachine *machine); 93 }; 94 95 GType ags_connection_editor_get_type(void); 96 97 void ags_connection_editor_set_machine(AgsConnectionEditor *connection_editor, 98 AgsMachine *machine); 99 100 AgsConnectionEditor* ags_connection_editor_new(AgsMachine *machine); 101 102 G_END_DECLS 103 104 #endif /*__AGS_CONNECTION_EDITOR_H__*/ 105