1 /* 2 * Copyright (C) 2019 Alexandros Theodotou <alex at zrythm dot org> 3 * 4 * This file is part of Zrythm 5 * 6 * Zrythm is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU Affero 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 * Zrythm 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 Affero General Public License for more details. 15 * 16 * You should have received a copy of the GNU Affero General Public License 17 * along with Zrythm. If not, see <https://www.gnu.org/licenses/>. 18 */ 19 20 /** 21 * \file 22 * 23 * Bus track for effects. 24 */ 25 26 #ifndef __GUI_WIDGETS_MIDI_BUS_TRACK_H__ 27 #define __GUI_WIDGETS_MIDI_BUS_TRACK_H__ 28 29 #include "audio/channel.h" 30 #include "gui/widgets/track.h" 31 32 #include <gtk/gtk.h> 33 34 #define MIDI_BUS_TRACK_WIDGET_TYPE \ 35 (midi_bus_track_widget_get_type ()) 36 G_DECLARE_FINAL_TYPE ( 37 MidiBusTrackWidget, 38 midi_bus_track_widget, 39 Z, MIDI_BUS_TRACK_WIDGET, 40 TrackWidget) 41 42 typedef struct _AutomationTracklistWidget 43 AutomationTracklistWidget; 44 typedef struct Track MidiBusTrack; 45 46 /** 47 * Top is the track part and bot is the automation part 48 */ 49 typedef struct _MidiBusTrackWidget 50 { 51 TrackWidget parent_instance; 52 GtkToggleButton * solo; 53 GtkToggleButton * mute; 54 GtkToggleButton * show_automation; 55 } MidiBusTrackWidget; 56 57 /** 58 * Creates a new track widget from the given track. 59 */ 60 MidiBusTrackWidget * 61 midi_bus_track_widget_new (Track * track); 62 63 /** 64 * Updates changes in the backend to the ui 65 */ 66 void 67 midi_bus_track_widget_refresh ( 68 MidiBusTrackWidget * self); 69 70 void 71 midi_bus_track_widget_refresh_buttons ( 72 MidiBusTrackWidget * self); 73 74 #endif 75