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_PATTERN_ENVELOPE_CALLBACKS_H__
21 #define __AGS_PATTERN_ENVELOPE_CALLBACKS_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/editor/ags_pattern_envelope.h>
33 
34 G_BEGIN_DECLS
35 
36 void ags_pattern_envelope_edit_callback(GtkCellRendererToggle *cell_renderer,
37 					gchar *path_str,
38 					AgsPatternEnvelope *pattern_envelope);
39 void ags_pattern_envelope_plot_callback(GtkCellRendererToggle *cell_renderer,
40 					gchar *path_str,
41 					AgsPatternEnvelope *pattern_envelope);
42 
43 /* range */
44 void ags_pattern_envelope_audio_channel_start_callback(GtkWidget *spin_button,
45 						       AgsPatternEnvelope *pattern_envelope);
46 void ags_pattern_envelope_audio_channel_end_callback(GtkWidget *spin_button,
47 						     AgsPatternEnvelope *pattern_envelope);
48 
49 void ags_pattern_envelope_pad_start_callback(GtkWidget *spin_button,
50 					     AgsPatternEnvelope *pattern_envelope);
51 void ags_pattern_envelope_pad_end_callback(GtkWidget *spin_button,
52 					   AgsPatternEnvelope *pattern_envelope);
53 
54 void ags_pattern_envelope_x_start_callback(GtkWidget *spin_button,
55 					   AgsPatternEnvelope *pattern_envelope);
56 void ags_pattern_envelope_x_end_callback(GtkWidget *spin_button,
57 					 AgsPatternEnvelope *pattern_envelope);
58 
59 /* envelope */
60 void ags_pattern_envelope_attack_x_callback(GtkWidget *range,
61 					    AgsPatternEnvelope *pattern_envelope);
62 void ags_pattern_envelope_attack_y_callback(GtkWidget *range,
63 					    AgsPatternEnvelope *pattern_envelope);
64 
65 void ags_pattern_envelope_decay_x_callback(GtkWidget *range,
66 					   AgsPatternEnvelope *pattern_envelope);
67 void ags_pattern_envelope_decay_y_callback(GtkWidget *range,
68 					   AgsPatternEnvelope *pattern_envelope);
69 
70 void ags_pattern_envelope_sustain_x_callback(GtkWidget *range,
71 					     AgsPatternEnvelope *pattern_envelope);
72 void ags_pattern_envelope_sustain_y_callback(GtkWidget *range,
73 					     AgsPatternEnvelope *pattern_envelope);
74 
75 void ags_pattern_envelope_release_x_callback(GtkWidget *range,
76 					     AgsPatternEnvelope *pattern_envelope);
77 void ags_pattern_envelope_release_y_callback(GtkWidget *range,
78 					     AgsPatternEnvelope *pattern_envelope);
79 
80 void ags_pattern_envelope_ratio_callback(GtkWidget *range,
81 					 AgsPatternEnvelope *pattern_envelope);
82 
83 /* actions */
84 void ags_pattern_envelope_preset_move_up_callback(GtkWidget *button,
85 						  AgsPatternEnvelope *pattern_envelope);
86 void ags_pattern_envelope_preset_move_down_callback(GtkWidget *button,
87 						    AgsPatternEnvelope *pattern_envelope);
88 void ags_pattern_envelope_preset_add_callback(GtkWidget *button,
89 					      AgsPatternEnvelope *pattern_envelope);
90 void ags_pattern_envelope_preset_remove_callback(GtkWidget *button,
91 						 AgsPatternEnvelope *pattern_envelope);
92 
93 int ags_pattern_envelope_preset_rename_response_callback(GtkWidget *widget, gint response,
94 							 AgsPatternEnvelope *pattern_envelope);
95 
96 G_END_DECLS
97 
98 #endif /*__AGS_PATTERN_ENVELOPE_CALLBACKS_H__*/
99