Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
track.h File Reference

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

#include <stdbool.h>
#include <gtk/gtk.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  TrackWidgetHighlight { TRACK_WIDGET_HIGHLIGHT_NONE , TRACK_WIDGET_HIGHLIGHT_TOP , TRACK_WIDGET_HIGHLIGHT_BOTTOM , TRACK_WIDGET_HIGHLIGHT_INSIDE }
 Highlight location. More...
 
enum  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 17 of file track.h.

Typedef Documentation

◆ ArrangerWidget

typedef struct _ArrangerWidget ArrangerWidget

Definition at line 20 of file track.h.

◆ MeterWidget

typedef struct _MeterWidget MeterWidget

Definition at line 23 of file track.h.

◆ TrackCanvasWidget

typedef struct _TrackCanvasWidget TrackCanvasWidget

Definition at line 25 of file track.h.