Zrythm
a highly automated and intuitive digital audio workstation
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
track.h File Reference

Track widget to be shown in the tracklist. More...

#include "gtk_wrapper.h"
Include dependency graph for track.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  TrackWidget
 The TrackWidget is split into 3 parts. More...
 

Macros

#define TRACK_WIDGET_TYPE   (track_widget_get_type ())
 
#define TRACK_BUTTON_SIZE   18
 
#define TRACK_BUTTON_PADDING   6
 Padding between each button.
 
#define TRACK_BUTTON_PADDING_FROM_EDGE   3
 Padding between the track edges and the buttons.
 
#define TRACK_BOT_BUTTONS_SHOULD_BE_VISIBLE(height)
 
#define TRACK_COLOR_AREA_WIDTH   18
 
#define TRACK_ICON_NAME_MONO_COMPAT   "mono"
 
#define TRACK_ICON_NAME_SWAP_PHASE   "phase"
 
#define TRACK_ICON_NAME_RECORD   "media-record"
 
#define TRACK_ICON_NAME_SOLO   "solo"
 
#define TRACK_ICON_NAME_MUTE   "mute"
 
#define TRACK_ICON_NAME_LISTEN   "gnome-icon-library-headphones-symbolic"
 
#define TRACK_ICON_NAME_SHOW_UI   "jam-icons-screen"
 
#define TRACK_ICON_NAME_SHOW_AUTOMATION_LANES   "automation-4p"
 
#define TRACK_ICON_NAME_SHOW_TRACK_LANES   "untitled-ui-rows-03"
 
#define TRACK_ICON_NAME_LOCK   "gnome-icon-library-padlock2-symbolic"
 
#define TRACK_ICON_NAME_UNLOCK   "gnome-icon-library-padlock2-open-symbolic"
 
#define TRACK_ICON_NAME_FREEZE   "fork-awesome-snowflake-o"
 
#define TRACK_ICON_NAME_PLUS   "add"
 
#define TRACK_ICON_NAME_MINUS   "remove"
 
#define TRACK_ICON_NAME_BUS   "effect"
 
#define TRACK_ICON_NAME_CHORDS   "minuet-chords"
 
#define TRACK_ICON_NAME_SHOW_MARKERS    "gnome-icon-library-flag-outline-thick-symbolic"
 
#define TRACK_ICON_NAME_MIDI   "instrument"
 
#define TRACK_ICON_NAME_TEMPO   "filename-bpm-amarok"
 
#define TRACK_ICON_NAME_MODULATOR   "gnome-icon-library-encoder-knob-symbolic"
 
#define TRACK_ICON_NAME_FOLD   "fluentui-folder-regular"
 
#define TRACK_ICON_NAME_FOLD_OPEN   "fluentui-folder-open-regular"
 
#define TRACK_ICON_NAME_MONITOR_AUDIO   "audition"
 
#define TRACK_ICON_IS(x, name)   (string_is_equal (x, TRACK_ICON_NAME_##name))
 
#define TRACK_CB_ICON_IS(name)   TRACK_ICON_IS (cb->icon_name, name)
 

Typedefs

typedef struct _ArrangerWidget ArrangerWidget
 
typedef struct _MeterWidget MeterWidget
 
typedef struct _TrackCanvasWidget TrackCanvasWidget
 

Enumerations

enum class  TrackWidgetHighlight { TRACK_WIDGET_HIGHLIGHT_NONE , TRACK_WIDGET_HIGHLIGHT_TOP , TRACK_WIDGET_HIGHLIGHT_BOTTOM , TRACK_WIDGET_HIGHLIGHT_INSIDE }
 Highlight location. More...
 
enum class  TrackWidgetResizeTarget { TRACK_WIDGET_RESIZE_TARGET_TRACK , TRACK_WIDGET_RESIZE_TARGET_AT , TRACK_WIDGET_RESIZE_TARGET_LANE }
 Resize target. More...
 

Functions

 TYPEDEF_STRUCT_UNDERSCORED (FaderButtonsWidget)
 
const char * track_widget_highlight_to_str (TrackWidgetHighlight highlight)
 
TrackWidgettrack_widget_new (Track *track)
 Sets up the track widget.
 
void track_widget_set_name (TrackWidget *self, const char *name)
 Sets the Track name on the TrackWidget.
 
void track_widget_on_show_automation_toggled (TrackWidget *self)
 Callback when automation button is toggled.
 
void track_widget_on_show_lanes_toggled (TrackWidget *self)
 Callback when automation button is toggled.
 
void track_widget_on_record_toggled (TrackWidget *self)
 Callback when record button is toggled.
 
bool track_widget_is_cursor_in_range_select_half (TrackWidget *self, double y)
 Returns if cursor is in the range select "half".
 
void track_widget_update_icons (TrackWidget *self)
 Updates the track icons.
 
void track_widget_update_size (TrackWidget *self)
 Updates the full track size and redraws the track.
 
TrackWidgetHighlight track_widget_get_highlight_location (TrackWidget *self, int y)
 Returns the highlight location based on y relative to self.
 
void track_widget_do_highlight (TrackWidget *self, gint x, gint y, const int highlight)
 Highlights/unhighlights the Tracks appropriately.
 
int track_widget_get_local_y (TrackWidget *self, ArrangerWidget *arranger, int arranger_y)
 Converts Y from the arranger coordinates to the track coordinates.
 
void track_widget_redraw_meters (TrackWidget *self)
 Causes a redraw of the meters only.
 
void track_widget_recreate_group_colors (TrackWidget *self)
 Re-fills TrackWidget.group_colors_box.
 
CustomButtonWidgettrack_widget_get_hovered_button (TrackWidget *self, int x, int y)
 
AutomationModeWidgettrack_widget_get_hovered_am_widget (TrackWidget *self, int x, int y)
 
AutomationTracktrack_widget_get_at_at_y (TrackWidget *self, double y)
 

Detailed Description

Track widget to be shown in the tracklist.

Definition in file track.h.

Macro Definition Documentation

◆ TRACK_WIDGET_TYPE

#define TRACK_WIDGET_TYPE   (track_widget_get_type ())

Definition at line 15 of file track.h.

Typedef Documentation

◆ ArrangerWidget

typedef struct _ArrangerWidget ArrangerWidget

Definition at line 18 of file track.h.

◆ MeterWidget

typedef struct _MeterWidget MeterWidget

Definition at line 21 of file track.h.

◆ TrackCanvasWidget

typedef struct _TrackCanvasWidget TrackCanvasWidget

Definition at line 23 of file track.h.