summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-12-12 14:43:24 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-12-12 14:43:24 +0000
commitbc89fe0147c04b67141936d109c00dfd4d69cc4b (patch)
tree544ff450c40fe1f43853a8420228a26f27f1eafb /gtk2_ardour
parent30daaebaa2d90d6b0e8673143ccc3cacd7bd1753 (diff)
most of the 2.X->3.0 commit (up to rev 4299) except for gtk2_ardour/editor_canvas.cc; builds and runs and does a few specific things but expect it to be buggy for a while yet
git-svn-id: svn://localhost/ardour2/branches/3.0@4313 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/SAE-de-keypad.bindings.in214
-rw-r--r--gtk2_ardour/SAE-de-nokeypad.bindings.in214
-rw-r--r--gtk2_ardour/SAE-us-keypad.bindings.in (renamed from gtk2_ardour/SAE-de.bindings.in)144
-rw-r--r--gtk2_ardour/SAE-us-nokeypad.bindings.in213
-rw-r--r--gtk2_ardour/SAE-us.bindings.in346
-rw-r--r--gtk2_ardour/SConscript53
-rw-r--r--gtk2_ardour/about.cc70
-rw-r--r--gtk2_ardour/ardev_common.sh.in10
-rw-r--r--gtk2_ardour/ardour-sae.menus36
-rw-r--r--gtk2_ardour/ardour.menus.in (renamed from gtk2_ardour/ardour.menus)36
-rw-r--r--gtk2_ardour/ardour.sh.in19
-rw-r--r--gtk2_ardour/ardour2_ui_dark_sae.rc.in1587
-rw-r--r--gtk2_ardour/ardour2_ui_light_sae.rc.in1584
-rw-r--r--gtk2_ardour/ardour2_ui_sae.conf20
-rw-r--r--gtk2_ardour/ardour3_ui_dark_sae.rc.in1587
-rw-r--r--gtk2_ardour/ardour3_ui_light_sae.rc.in1584
-rw-r--r--gtk2_ardour/ardour_dialog.cc19
-rw-r--r--gtk2_ardour/ardour_dialog.h7
-rw-r--r--gtk2_ardour/ardour_ui.cc69
-rw-r--r--gtk2_ardour/ardour_ui.h13
-rw-r--r--gtk2_ardour/ardour_ui2.cc4
-rw-r--r--gtk2_ardour/ardour_ui_dependents.cc19
-rw-r--r--gtk2_ardour/ardour_ui_ed.cc8
-rw-r--r--gtk2_ardour/ardour_ui_options.cc16
-rw-r--r--gtk2_ardour/au_pluginui.mm38
-rw-r--r--gtk2_ardour/audio_clock.cc24
-rw-r--r--gtk2_ardour/audio_region_editor.cc67
-rw-r--r--gtk2_ardour/audio_region_editor.h13
-rw-r--r--gtk2_ardour/audio_streamview.cc10
-rw-r--r--gtk2_ardour/audio_time_axis.cc59
-rw-r--r--gtk2_ardour/automation_time_axis.cc29
-rw-r--r--gtk2_ardour/automation_time_axis.h2
-rw-r--r--gtk2_ardour/canvas-waveview.c11
-rw-r--r--gtk2_ardour/canvas_vars.h1
-rw-r--r--gtk2_ardour/cocoacarbon.mm13
-rw-r--r--gtk2_ardour/crossfade_edit.cc273
-rw-r--r--gtk2_ardour/crossfade_edit.h9
-rw-r--r--gtk2_ardour/crossfade_view.cc3
-rw-r--r--gtk2_ardour/editor.cc259
-rw-r--r--gtk2_ardour/editor.h52
-rw-r--r--gtk2_ardour/editor_actions.cc31
-rw-r--r--gtk2_ardour/editor_audio_import.cc185
-rw-r--r--gtk2_ardour/editor_canvas.cc324
-rw-r--r--gtk2_ardour/editor_cursors.cc5
-rw-r--r--gtk2_ardour/editor_edit_groups.cc9
-rw-r--r--gtk2_ardour/editor_mixer.cc21
-rw-r--r--gtk2_ardour/editor_mouse.cc240
-rw-r--r--gtk2_ardour/editor_ops.cc215
-rw-r--r--gtk2_ardour/editor_region_list.cc14
-rw-r--r--gtk2_ardour/editor_route_list.cc118
-rw-r--r--gtk2_ardour/editor_rulers.cc79
-rw-r--r--gtk2_ardour/editor_tempodisplay.cc16
-rw-r--r--gtk2_ardour/editor_timefx.cc14
-rw-r--r--gtk2_ardour/export_range_markers_dialog.cc10
-rw-r--r--gtk2_ardour/gain_meter.cc4
-rw-r--r--gtk2_ardour/generic_pluginui.cc23
-rw-r--r--gtk2_ardour/icons/computer_keyboard.pngbin0 -> 1320 bytes
-rw-r--r--gtk2_ardour/icons/computer_keyboard_active.pngbin0 -> 1495 bytes
-rw-r--r--gtk2_ardour/keyboard.cc74
-rw-r--r--gtk2_ardour/keyboard.h2
-rw-r--r--gtk2_ardour/main.cc8
-rw-r--r--gtk2_ardour/matrix.cc1
-rw-r--r--gtk2_ardour/mixer_strip.cc40
-rw-r--r--gtk2_ardour/mixer_strip.h4
-rw-r--r--gtk2_ardour/mixer_ui.cc108
-rw-r--r--gtk2_ardour/mixer_ui.h3
-rw-r--r--gtk2_ardour/mnemonic-us.bindings.in17
-rw-r--r--gtk2_ardour/nag.cc206
-rw-r--r--gtk2_ardour/nag.h39
-rw-r--r--gtk2_ardour/new_session_dialog.cc26
-rw-r--r--gtk2_ardour/new_session_dialog.h2
-rw-r--r--gtk2_ardour/option_editor.cc9
-rw-r--r--gtk2_ardour/panner_ui.cc9
-rw-r--r--gtk2_ardour/plugin_eq_gui.cc8
-rw-r--r--gtk2_ardour/plugin_selector.h2
-rw-r--r--gtk2_ardour/plugin_ui.cc60
-rw-r--r--gtk2_ardour/plugin_ui.h9
-rw-r--r--gtk2_ardour/po/de_DE.po9855
-rw-r--r--gtk2_ardour/processor_box.cc48
-rw-r--r--gtk2_ardour/processor_box.h4
-rw-r--r--gtk2_ardour/public_editor.h3
-rw-r--r--gtk2_ardour/route_time_axis.cc36
-rw-r--r--gtk2_ardour/route_ui.cc108
-rw-r--r--gtk2_ardour/route_ui.h2
-rw-r--r--gtk2_ardour/send_ui.cc8
-rw-r--r--gtk2_ardour/send_ui.h4
-rw-r--r--gtk2_ardour/sfdb_ui.cc2
-rw-r--r--gtk2_ardour/streamview.cc9
-rw-r--r--gtk2_ardour/streamview.h2
-rw-r--r--gtk2_ardour/theme_manager.cc31
-rw-r--r--gtk2_ardour/time_axis_view.cc1843
-rw-r--r--gtk2_ardour/time_axis_view.h1
-rw-r--r--gtk2_ardour/time_axis_view_item.cc3
-rw-r--r--gtk2_ardour/ui_config.cc13
-rw-r--r--gtk2_ardour/utils.cc78
95 files changed, 15531 insertions, 7189 deletions
diff --git a/gtk2_ardour/SAE-de-keypad.bindings.in b/gtk2_ardour/SAE-de-keypad.bindings.in
new file mode 100644
index 0000000000..e8e3e1b338
--- /dev/null
+++ b/gtk2_ardour/SAE-de-keypad.bindings.in
@@ -0,0 +1,214 @@
+; ardour-2.2 GtkAccelMap rc-file -*- scheme -*-
+; this file is a hand-edited map that is processed by scons
+; to produce a real accelmap.
+;
+
+;; punctuation
+(gtk_accel_path "<Actions>/Editor/center-playhead" "Escape")
+(gtk_accel_path "<Actions>/Transport/ToggleRoll" "space")
+(gtk_accel_path "<Actions>/Transport/ToggleRollForgetCapture" "<%PRIMARY%>period")
+(gtk_accel_path "<Actions>/Transport/record-roll" "<%PRIMARY%>space")
+
+(gtk_accel_path "<Actions>/Common/ToggleOptionsEditor" "<%PRIMARY%>,")
+
+(gtk_accel_path "<Actions>/Editor/align-regions-end" "<%PRIMARY%><%SECONDARY%>less")
+(gtk_accel_path "<Actions>/Editor/align-regions-end-relative" "<%PRIMARY%>less")
+(gtk_accel_path "<Actions>/Editor/align-regions-start" "<%LEVEL4%><%SECONDARY%>less")
+(gtk_accel_path "<Actions>/Editor/align-regions-start-relative" "<%LEVEL4%>less")
+(gtk_accel_path "<Actions>/Editor/align-regions-sync" "<%SECONDARY%>less")
+(gtk_accel_path "<Actions>/Editor/align-regions-sync-relative" "less")
+
+; (gtk_accel_path "<Actions>/Editor/edit-cursor-to-next-region-sync" "semicolon")
+; (gtk_accel_path "<Actions>/Editor/edit-cursor-to-previous-region-sync" "apostrophe")
+(gtk_accel_path "<Actions>/Editor/cycle-edit-point" "asciicircum")
+(gtk_accel_path "<Actions>/Editor/cycle-edit-point-with-marker" "<%SECONDARY%>asciicircum")
+
+(gtk_accel_path "<Actions>/Editor/extend-range-to-end-of-region" "rightanglebracket")
+(gtk_accel_path "<Actions>/Editor/extend-range-to-start-of-region" "leftanglebracket")
+
+(gtk_accel_path "<Actions>/Editor/trim-from-start" "<%TERTIARY%>braceleft")
+(gtk_accel_path "<Actions>/Editor/trim-to-end" "<%TERTIARY%>braceright")
+
+(gtk_accel_path "<Actions>/Editor/play-from-edit-point-and-return" "<%LEVEL4%>space")
+(gtk_accel_path "<Actions>/Editor/play-edit-range" "<%SECONDARY%>space")
+
+;; letters
+
+;; OBERE ZEILE
+
+(gtk_accel_path "<Actions>/Editor/set-fade-in-length" "q")
+(gtk_accel_path "<Actions>/Common/Quit" "<%PRIMARY%>q")
+(gtk_accel_path "<Actions>/Editor/toggle-fade-in-active" "<%SECONDARY%>q")
+(gtk_accel_path "<Actions>/Editor/set-playhead" "w")
+;; note that ctrl-w is special and consumed by the keyboard snooper
+
+
+(gtk_accel_path "<Actions>/Main/Close" "<%PRIMARY%>w")
+(gtk_accel_path "<Actions>/Editor/set-fade-out-length" "e")
+(gtk_accel_path "<Actions>/Main/ExportSession" "<%PRIMARY%>e")
+(gtk_accel_path "<Actions>/Editor/toggle-fade-out-active" "<%SECONDARY%>e")
+(gtk_accel_path "<Actions>/Editor/export-region" "<%PRIMARY%><%TERTIARY%>e")
+(gtk_accel_path "<Actions>/Editor/show-editor-mixer" "<%TERTIARY%>e")
+; (gtk_accel_path "<Actions>/Common/goto-editor" "<%SECONDARY%>e")
+(gtk_accel_path "<Actions>/Editor/redo" "<%PRIMARY%><%TERTIARY%>z")
+(gtk_accel_path "<Actions>/Transport/Record" "<%TERTIARY%>r")
+(gtk_accel_path "<Actions>/Editor/temporal-zoom-out" "r")
+(gtk_accel_path "<Actions>/Transport/Record" "<%TERTIARY%>r")
+(gtk_accel_path "<Actions>/Editor/reverse-region" "<%LEVEL4%>r")
+(gtk_accel_path "<Actions>/Editor/temporal-zoom-in" "t")
+(gtk_accel_path "<Actions>/Common/ToggleThemeManager" "<%WINDOW%>t")
+(gtk_accel_path "<Actions>/Editor/pitch-shift-region" "<%LEVEL4%>t")
+(gtk_accel_path "<Actions>/Editor/split-region" "y")
+(gtk_accel_path "<Actions>/Editor/set-region-sync-position" "u")
+(gtk_accel_path "<Actions>/Editor/insert-region" "i")
+(gtk_accel_path "<Actions>/Editor/addExistingAudioFiles" "<%PRIMARY%>i")
+(gtk_accel_path "<Actions>/Editor/invert-selection" "<%TERTIARY%>i")
+(gtk_accel_path "<Actions>/Main/Open" "<%PRIMARY%>o")
+(gtk_accel_path "<Actions>/Main/Recent" "<%PRIMARY%><%TERTIARY%>o")
+(gtk_accel_path "<Actions>/Editor/naturalize-region" "<%LEVEL4%>o")
+(gtk_accel_path "<Actions>/Transport/TogglePunch" "p")
+(gtk_accel_path "<Actions>/Editor/select-all-in-punch-range" "<%TERTIARY%>p")
+
+;; MITTELZEILE
+
+(gtk_accel_path "<Actions>/Editor/trim-front" "a")
+(gtk_accel_path "<Actions>/Editor/select-all" "<%PRIMARY%>a")
+(gtk_accel_path "<Actions>/Editor/select-all-between-cursors" "<%TERTIARY%>a")
+(gtk_accel_path "<Actions>/Editor/select-all-between-cursors" "<%TERTIARY%><%SECONDARY%>a")
+(gtk_accel_path "<Actions>/Editor/play-selected-regions" "s")
+(gtk_accel_path "<Actions>/Common/Save" "<%PRIMARY%>s")
+(gtk_accel_path "<Actions>/Main/Snapshot" "<%PRIMARY%><%TERTIARY%>s")
+(gtk_accel_path "<Actions>/Editor/trim-back" "d")
+(gtk_accel_path "<Actions>/Editor/duplicate-region" "<%PRIMARY%>d")
+(gtk_accel_path "<Actions>/Editor/multi-duplicate-region" "<%PRIMARY%><%TERTIARY%>d")
+(gtk_accel_path "<Actions>/Editor/toggle-follow-playhead" "f")
+(gtk_accel_path "<Actions>/Common/toggle-rhythm-ferret" "<%WINDOW%>f")
+; (gtk_accel_path "<Actions>/Editor/set-edit-point" "g")
+; (gtk_accel_path "<Actions>/MouseMode/set-mouse-mode-gain" "g")
+(gtk_accel_path "<Actions>/Editor/nudge-backward" "g")
+(gtk_accel_path "<Actions>/Editor/nudge-forward" "h")
+(gtk_accel_path "<Actions>/Common/ToggleKeyEditor" "<%SECONDARY%>k")
+(gtk_accel_path "<Actions>/Common/ToggleLocations" "<%SECONDARY%>l")
+(gtk_accel_path "<Actions>/Transport/Loop" "l")
+(gtk_accel_path "<Actions>/Editor/lock-region" "<%LEVEL4%>l")
+(gtk_accel_path "<Actions>/Editor/select-all-in-loop-range" "<%TERTIARY%>l")
+
+;; UNTERE ZEILE
+
+(gtk_accel_path "<Actions>/Editor/zoom-to-region" "z")
+(gtk_accel_path "<Actions>/Editor/undo" "<%PRIMARY%>z")
+(gtk_accel_path "<Actions>/Editor/zoom-to-session" "<%SECONDARY%>z")
+(gtk_accel_path "<Actions>/Editor/toggle-zoom" "<%TERTIARY%>z")
+(gtk_accel_path "<Actions>/Editor/editor-separate" "x")
+(gtk_accel_path "<Actions>/Editor/editor-cut" "<%PRIMARY%>x")
+(gtk_accel_path "<Actions>/Editor/crop" "c")
+(gtk_accel_path "<Actions>/Editor/editor-copy" "<%PRIMARY%>c")
+(gtk_accel_path "<Actions>/Common/ToggleColorManager" "<%SECONDARY%>c")
+(gtk_accel_path "<Actions>/Editor/editor-paste" "<%PRIMARY%>v")
+(gtk_accel_path "<Actions>/Editor/add-location-from-playhead" "b")
+(gtk_accel_path "<Actions>/Common/ToggleBigClock" "<%SECONDARY%>b")
+(gtk_accel_path "<Actions>/Editor/normalize-region" "n")
+(gtk_accel_path "<Actions>/Main/New" "<%PRIMARY%>n")
+(gtk_accel_path "<Actions>/Main/AddTrackBus" "<%PRIMARY%><%TERTIARY%>n")
+(gtk_accel_path "<Actions>/Common/toggle-editor-mixer-on-top" "<%SECONDARY%>m")
+(gtk_accel_path "<Actions>/Editor/add-location-from-playhead" "KP_Enter")
+(gtk_accel_path "<Actions>/Editor/mute-unmute-region" "m")
+
+;; arrow keys, navigation etc.
+
+(gtk_accel_path "<Actions>/Editor/playhead-to-edit" "Return")
+(gtk_accel_path "<Actions>/Editor/edit-to-playhead" "<%SECONDARY%>Return")
+(gtk_accel_path "<Actions>/Editor/editor-delete" "BackSpace")
+(gtk_accel_path "<Actions>/Editor/remove-last-capture" "<%PRIMARY%>Delete")
+
+(gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-boundary" "leftarrow")
+(gtk_accel_path "<Actions>/Editor/playhead-backward-to-grid" "<%TERTIARY%><%LEVEL4%>leftarrow")
+(gtk_accel_path "<Actions>/Editor/edit-cursor-to-previous-region-sync" "<%TERTIARY%><%SECONDARY%>leftarrow")
+(gtk_accel_path "<Actions>/Transport/Rewind" "<%PRIMARY%>leftarrow")
+(gtk_accel_path "<Actions>/Editor/tab-to-transient-backwards" "<%SECONDARY%>leftarrow")
+(gtk_accel_path "<Actions>/Editor/nudge-playhead-backward" "<%TERTIARY%>leftarrow")
+(gtk_accel_path "<Actions>/Editor/jump-backward-to-mark" "<%PRIMARY%><%SECONDARY%>leftarrow")
+
+(gtk_accel_path "<Actions>/Editor/selected-marker-to-previous-region-boundary" "<%PRIMARY%><%TERTIARY%>leftarrow")
+
+(gtk_accel_path "<Actions>/Editor/playhead-to-next-region-boundary" "rightarrow")
+(gtk_accel_path "<Actions>/Editor/playhead-forward-to-grid" "<%TERTIARY%><%LEVEL4%>rightarrow")
+(gtk_accel_path "<Actions>/Editor/edit-cursor-to-next-region-sync" "<%TERTIARY%><%SECONDARY%>leftarrow")
+(gtk_accel_path "<Actions>/Transport/Forward" "<%PRIMARY%>rightarrow")
+(gtk_accel_path "<Actions>/Editor/tab-to-transient-forwards" "<%SECONDARY%>rightarrow")
+(gtk_accel_path "<Actions>/Editor/nudge-playhead-forward" "<%TERTIARY%>rightarrow")
+(gtk_accel_path "<Actions>/Editor/jump-forward-to-mark" "<%PRIMARY%><%SECONDARY%>rightarrow")
+
+(gtk_accel_path "<Actions>/Editor/selected-marker-to-next-region-boundary" "<%PRIMARY%><%TERTIARY%>rightarrow")
+
+
+(gtk_accel_path "<Actions>/Editor/scroll-tracks-down" "Page_Down")
+(gtk_accel_path "<Actions>/Editor/scroll-tracks-up" "Page_Up")
+
+(gtk_accel_path "<Actions>/Transport/GotoEnd" "End")
+(gtk_accel_path "<Actions>/Editor/select-all-after-edit-cursor" "<%PRIMARY%><%TERTIARY%>End")
+(gtk_accel_path "<Actions>/Editor/select-all-after-playhead" "<%TERTIARY%>End")
+
+(gtk_accel_path "<Actions>/Transport/GotoStart" "Home")
+(gtk_accel_path "<Actions>/Editor/select-all-before-edit-cursor" "<%PRIMARY%><%TERTIARY%>Home")
+(gtk_accel_path "<Actions>/Editor/select-all-before-playhead" "<%TERTIARY%>Home")
+
+(gtk_accel_path "<Actions>/Editor/select-prev-route" "uparrow")
+(gtk_accel_path "<Actions>/Transport/TransitionToRoll" "<%PRIMARY%>uparrow")
+(gtk_accel_path "<Actions>/Editor/move-selected-tracks-up" "<%TERTIARY%>uparrow")
+(gtk_accel_path "<Actions>/Editor/select-next-route" "downarrow")
+(gtk_accel_path "<Actions>/Transport/TransitionToReverse" "<%PRIMARY%>downarrow")
+(gtk_accel_path "<Actions>/Editor/move-selected-tracks-down" "<%TERTIARY%>downarrow")
+
+;; keypad
+
+(gtk_accel_path "<Actions>/Editor/finish-add-range" "<%TERTIARY%><%PRIMARY%>KP_Up")
+(gtk_accel_path "<Actions>/Editor/goto-mark-1" "KP_1")
+(gtk_accel_path "<Actions>/Editor/goto-mark-2" "KP_2")
+(gtk_accel_path "<Actions>/Editor/goto-mark-3" "KP_3")
+(gtk_accel_path "<Actions>/Editor/goto-mark-4" "KP_4")
+(gtk_accel_path "<Actions>/Editor/goto-mark-5" "KP_5")
+(gtk_accel_path "<Actions>/Editor/goto-mark-6" "KP_6")
+(gtk_accel_path "<Actions>/Editor/goto-mark-7" "KP_7")
+(gtk_accel_path "<Actions>/Editor/goto-mark-8" "KP_8")
+(gtk_accel_path "<Actions>/Editor/goto-mark-9" "KP_9")
+(gtk_accel_path "<Actions>/Editor/nudge-next-backward" "<%PRIMARY%>KP_Subtract")
+(gtk_accel_path "<Actions>/Editor/cut-region-gain" "KP_Subtract")
+
+(gtk_accel_path "<Actions>/Editor/nudge-next-forward" "<%PRIMARY%>KP_Add")
+(gtk_accel_path "<Actions>/Editor/boost-region-gain" "KP_Add")
+
+(gtk_accel_path "<Actions>/Transport/GotoZero" "KP_Insert")
+
+;; F-N keys
+
+; (gtk_accel_path "<Actions>/Editor/start-range" "F1")
+; (gtk_accel_path "<Actions>/Editor/edit-cursor-to-range-start" "<%TERTIARY%>F1")
+; (gtk_accel_path "<Actions>/Editor/finish-range" "F2")
+; (gtk_accel_path "<Actions>/Editor/edit-cursor-to-range-end" "<%TERTIARY%>F2")
+; (gtk_accel_path "<Actions>/Editor/brush-at-mouse" "F3")
+(gtk_accel_path "<Actions>/Editor/step-mouse-mode" "F1")
+(gtk_accel_path "<Actions>/Common/ToggleMaximalEditor" "F2")
+
+
+
+
+;; numbers
+
+(gtk_accel_path "<Actions>/Editor/toggle-edit-mode" "1")
+(gtk_accel_path "<Actions>/Editor/cycle-snap-mode" "2")
+(gtk_accel_path "<Actions>/Editor/cycle-snap-choice" "3")
+(gtk_accel_path "<Actions>/Transport/ToggleAutoPlay" "4")
+(gtk_accel_path "<Actions>/Transport/ToggleAutoReturn" "5")
+(gtk_accel_path "<Actions>/Transport/ToggleAutoInput" "6")
+(gtk_accel_path "<Actions>/Transport/ToggleClick" "7")
+
+(gtk_accel_path "<Actions>/Editor/set-loop-from-edit-range" "8")
+(gtk_accel_path "<Actions>/Editor/set-loop-from-region" "<%LEVEL4%>8")
+; (gtk_accel_path "<Actions>/Editor/loop-region" "<%PRIMARY%>8")
+
+(gtk_accel_path "<Actions>/Editor/set-punch-from-edit-range" "9")
+(gtk_accel_path "<Actions>/Editor/set-punch-from-region" "<%LEVEL4%>9")
+
+(gtk_accel_path "<Actions>/Editor/set-tempo-from-region" "<%LEVEL4%>0")
+(gtk_accel_path "<Actions>/Editor/set-tempo-from-edit-range" "0")
diff --git a/gtk2_ardour/SAE-de-nokeypad.bindings.in b/gtk2_ardour/SAE-de-nokeypad.bindings.in
new file mode 100644
index 0000000000..27c824e5dd
--- /dev/null
+++ b/gtk2_ardour/SAE-de-nokeypad.bindings.in
@@ -0,0 +1,214 @@
+; ardour-2.2 GtkAccelMap rc-file -*- scheme -*-
+; this file is a hand-edited map that is processed by scons
+; to produce a real accelmap.
+;
+
+;; punctuation
+(gtk_accel_path "<Actions>/Editor/center-playhead" "Escape")
+(gtk_accel_path "<Actions>/Transport/ToggleRoll" "space")
+(gtk_accel_path "<Actions>/Transport/ToggleRollForgetCapture" "<%PRIMARY%>period")
+(gtk_accel_path "<Actions>/Transport/record-roll" "<%PRIMARY%>space")
+
+(gtk_accel_path "<Actions>/Common/ToggleOptionsEditor" "<%PRIMARY%>,")
+
+(gtk_accel_path "<Actions>/Editor/align-regions-end" "<%PRIMARY%><%SECONDARY%>less")
+(gtk_accel_path "<Actions>/Editor/align-regions-end-relative" "<%PRIMARY%>less")
+(gtk_accel_path "<Actions>/Editor/align-regions-start" "<%LEVEL4%><%SECONDARY%>less")
+(gtk_accel_path "<Actions>/Editor/align-regions-start-relative" "<%LEVEL4%>less")
+(gtk_accel_path "<Actions>/Editor/align-regions-sync" "<%SECONDARY%>less")
+(gtk_accel_path "<Actions>/Editor/align-regions-sync-relative" "less")
+
+; (gtk_accel_path "<Actions>/Editor/edit-cursor-to-next-region-sync" "semicolon")
+; (gtk_accel_path "<Actions>/Editor/edit-cursor-to-previous-region-sync" "apostrophe")
+(gtk_accel_path "<Actions>/Editor/cycle-edit-point" "asciicircum")
+(gtk_accel_path "<Actions>/Editor/cycle-edit-point-with-marker" "<%SECONDARY%>asciicircum")
+
+(gtk_accel_path "<Actions>/Editor/extend-range-to-end-of-region" "rightanglebracket")
+(gtk_accel_path "<Actions>/Editor/extend-range-to-start-of-region" "leftanglebracket")
+
+(gtk_accel_path "<Actions>/Editor/trim-from-start" "<%TERTIARY%>braceleft")
+(gtk_accel_path "<Actions>/Editor/trim-to-end" "<%TERTIARY%>braceright")
+
+(gtk_accel_path "<Actions>/Editor/play-from-edit-point-and-return" "<%LEVEL4%>space")
+(gtk_accel_path "<Actions>/Editor/play-edit-range" "<%SECONDARY%>space")
+
+;; letters
+
+;; OBERE ZEILE
+
+(gtk_accel_path "<Actions>/Editor/set-fade-in-length" "q")
+(gtk_accel_path "<Actions>/Common/Quit" "<%PRIMARY%>q")
+(gtk_accel_path "<Actions>/Editor/toggle-fade-in-active" "<%SECONDARY%>q")
+(gtk_accel_path "<Actions>/Editor/set-playhead" "w")
+;; note that ctrl-w is special and consumed by the keyboard snooper
+
+
+(gtk_accel_path "<Actions>/Main/Close" "<%PRIMARY%>w")
+(gtk_accel_path "<Actions>/Editor/set-fade-out-length" "e")
+(gtk_accel_path "<Actions>/Main/ExportSession" "<%PRIMARY%>e")
+(gtk_accel_path "<Actions>/Editor/toggle-fade-out-active" "<%SECONDARY%>e")
+(gtk_accel_path "<Actions>/Editor/export-region" "<%PRIMARY%><%TERTIARY%>e")
+(gtk_accel_path "<Actions>/Editor/show-editor-mixer" "<%TERTIARY%>e")
+; (gtk_accel_path "<Actions>/Common/goto-editor" "<%SECONDARY%>e")
+(gtk_accel_path "<Actions>/Editor/redo" "<%PRIMARY%><%TERTIARY%>z")
+(gtk_accel_path "<Actions>/Transport/Record" "<%TERTIARY%>r")
+(gtk_accel_path "<Actions>/Editor/temporal-zoom-out" "r")
+(gtk_accel_path "<Actions>/Transport/Record" "<%TERTIARY%>r")
+(gtk_accel_path "<Actions>/Editor/reverse-region" "<%LEVEL4%>r")
+(gtk_accel_path "<Actions>/Editor/temporal-zoom-in" "t")
+(gtk_accel_path "<Actions>/Common/ToggleThemeManager" "<%SECONDARY%>t")
+(gtk_accel_path "<Actions>/Editor/pitch-shift-region" "<%LEVEL4%>t")
+(gtk_accel_path "<Actions>/Editor/split-region" "y")
+(gtk_accel_path "<Actions>/Editor/set-region-sync-position" "u")
+(gtk_accel_path "<Actions>/Editor/insert-region" "i")
+(gtk_accel_path "<Actions>/Editor/addExistingAudioFiles" "<%PRIMARY%>i")
+(gtk_accel_path "<Actions>/Editor/invert-selection" "<%TERTIARY%>i")
+(gtk_accel_path "<Actions>/Main/Open" "<%PRIMARY%>o")
+(gtk_accel_path "<Actions>/Main/Recent" "<%PRIMARY%><%TERTIARY%>o")
+(gtk_accel_path "<Actions>/Editor/naturalize-region" "<%LEVEL4%>o")
+(gtk_accel_path "<Actions>/Transport/TogglePunch" "p")
+(gtk_accel_path "<Actions>/Editor/select-all-in-punch-range" "<%TERTIARY%>p")
+
+;; MITTELZEILE
+
+(gtk_accel_path "<Actions>/Editor/trim-front" "a")
+(gtk_accel_path "<Actions>/Editor/select-all" "<%PRIMARY%>a")
+(gtk_accel_path "<Actions>/Editor/select-all-between-cursors" "<%TERTIARY%>a")
+(gtk_accel_path "<Actions>/Editor/select-all-between-cursors" "<%TERTIARY%><%SECONDARY%>a")
+(gtk_accel_path "<Actions>/Editor/play-selected-regions" "s")
+(gtk_accel_path "<Actions>/Common/Save" "<%PRIMARY%>s")
+(gtk_accel_path "<Actions>/Main/Snapshot" "<%PRIMARY%><%TERTIARY%>s")
+(gtk_accel_path "<Actions>/Editor/trim-back" "d")
+(gtk_accel_path "<Actions>/Editor/duplicate-region" "<%PRIMARY%>d")
+(gtk_accel_path "<Actions>/Editor/multi-duplicate-region" "<%PRIMARY%><%TERTIARY%>d")
+(gtk_accel_path "<Actions>/Editor/toggle-follow-playhead" "f")
+(gtk_accel_path "<Actions>/Common/toggle-rhythm-ferret" "<%SECONDARY%>f")
+; (gtk_accel_path "<Actions>/Editor/set-edit-point" "g")
+; (gtk_accel_path "<Actions>/MouseMode/set-mouse-mode-gain" "g")
+(gtk_accel_path "<Actions>/Editor/nudge-backward" "g")
+(gtk_accel_path "<Actions>/Editor/nudge-forward" "h")
+(gtk_accel_path "<Actions>/Common/ToggleKeyEditor" "<%SECONDARY%>k")
+(gtk_accel_path "<Actions>/Common/ToggleLocations" "<%SECONDARY%>l")
+(gtk_accel_path "<Actions>/Transport/Loop" "l")
+(gtk_accel_path "<Actions>/Editor/lock-region" "<%LEVEL4%>l")
+(gtk_accel_path "<Actions>/Editor/select-all-in-loop-range" "<%TERTIARY%>l")
+
+;; UNTERE ZEILE
+
+(gtk_accel_path "<Actions>/Editor/zoom-to-region" "z")
+(gtk_accel_path "<Actions>/Editor/undo" "<%PRIMARY%>z")
+(gtk_accel_path "<Actions>/Editor/zoom-to-session" "<%SECONDARY%>z")
+(gtk_accel_path "<Actions>/Editor/toggle-zoom" "<%TERTIARY%>z")
+(gtk_accel_path "<Actions>/Editor/editor-separate" "x")
+(gtk_accel_path "<Actions>/Editor/editor-cut" "<%PRIMARY%>x")
+(gtk_accel_path "<Actions>/Editor/crop" "c")
+(gtk_accel_path "<Actions>/Editor/editor-copy" "<%PRIMARY%>c")
+(gtk_accel_path "<Actions>/Common/ToggleColorManager" "<%SECONDARY%>c")
+(gtk_accel_path "<Actions>/Editor/editor-paste" "<%PRIMARY%>v")
+(gtk_accel_path "<Actions>/Editor/add-location-from-playhead" "b")
+(gtk_accel_path "<Actions>/Common/ToggleBigClock" "<%SECONDARY%>b")
+(gtk_accel_path "<Actions>/Editor/normalize-region" "n")
+(gtk_accel_path "<Actions>/Main/New" "<%PRIMARY%>n")
+(gtk_accel_path "<Actions>/Main/AddTrackBus" "<%PRIMARY%><%TERTIARY%>n")
+(gtk_accel_path "<Actions>/Common/toggle-editor-mixer-on-top" "<%SECONDARY%>m")
+(gtk_accel_path "<Actions>/Editor/mute-unmute-region" "m")
+
+;; arrow keys, navigation etc.
+
+(gtk_accel_path "<Actions>/Editor/playhead-to-edit" "Return")
+(gtk_accel_path "<Actions>/Editor/edit-to-playhead" "<%SECONDARY%>Return")
+(gtk_accel_path "<Actions>/Editor/editor-delete" "BackSpace")
+(gtk_accel_path "<Actions>/Editor/remove-last-capture" "<%PRIMARY%>BackSpace")
+
+(gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-boundary" "leftarrow")
+(gtk_accel_path "<Actions>/Editor/playhead-backward-to-grid" "<%TERTIARY%><%LEVEL4%>leftarrow")
+(gtk_accel_path "<Actions>/Editor/edit-cursor-to-previous-region-sync" "<%TERTIARY%><%SECONDARY%>leftarrow")
+(gtk_accel_path "<Actions>/Transport/Rewind" "<%PRIMARY%>leftarrow")
+(gtk_accel_path "<Actions>/Editor/tab-to-transient-backwards" "<%SECONDARY%>leftarrow")
+(gtk_accel_path "<Actions>/Editor/nudge-playhead-backward" "<%TERTIARY%>leftarrow")
+(gtk_accel_path "<Actions>/Editor/jump-backward-to-mark" "<%PRIMARY%><%SECONDARY%>leftarrow")
+
+(gtk_accel_path "<Actions>/Editor/selected-marker-to-previous-region-boundary" "<%PRIMARY%><%TERTIARY%>leftarrow")
+
+(gtk_accel_path "<Actions>/Editor/playhead-to-next-region-boundary" "rightarrow")
+(gtk_accel_path "<Actions>/Editor/playhead-forward-to-grid" "<%TERTIARY%><%LEVEL4%>rightarrow")
+(gtk_accel_path "<Actions>/Editor/edit-cursor-to-next-region-sync" "<%TERTIARY%><%SECONDARY%>leftarrow")
+(gtk_accel_path "<Actions>/Transport/Forward" "<%PRIMARY%>rightarrow")
+(gtk_accel_path "<Actions>/Editor/tab-to-transient-forwards" "<%SECONDARY%>rightarrow")
+(gtk_accel_path "<Actions>/Editor/nudge-playhead-forward" "<%TERTIARY%>rightarrow")
+(gtk_accel_path "<Actions>/Editor/jump-forward-to-mark" "<%PRIMARY%><%SECONDARY%>rightarrow")
+
+(gtk_accel_path "<Actions>/Editor/selected-marker-to-next-region-boundary" "<%PRIMARY%><%TERTIARY%>rightarrow")
+
+
+(gtk_accel_path "<Actions>/Editor/scroll-tracks-down" "Page_Down")
+(gtk_accel_path "<Actions>/Editor/scroll-tracks-up" "Page_Up")
+
+(gtk_accel_path "<Actions>/Transport/GotoEnd" "End")
+(gtk_accel_path "<Actions>/Editor/select-all-after-edit-cursor" "<%PRIMARY%><%TERTIARY%>End")
+(gtk_accel_path "<Actions>/Editor/select-all-after-playhead" "<%TERTIARY%>End")
+
+(gtk_accel_path "<Actions>/Transport/GotoStart" "Home")
+(gtk_accel_path "<Actions>/Editor/select-all-before-edit-cursor" "<%PRIMARY%><%TERTIARY%>Home")
+(gtk_accel_path "<Actions>/Editor/select-all-before-playhead" "<%TERTIARY%>Home")
+
+(gtk_accel_path "<Actions>/Editor/select-prev-route" "uparrow")
+(gtk_accel_path "<Actions>/Transport/TransitionToRoll" "<%PRIMARY%>uparrow")
+(gtk_accel_path "<Actions>/Editor/move-selected-tracks-up" "<%TERTIARY%>uparrow")
+(gtk_accel_path "<Actions>/Editor/select-next-route" "downarrow")
+(gtk_accel_path "<Actions>/Transport/TransitionToReverse" "<%PRIMARY%>downarrow")
+(gtk_accel_path "<Actions>/Editor/move-selected-tracks-down" "<%TERTIARY%>downarrow")
+
+;; keypad
+
+(gtk_accel_path "<Actions>/Editor/finish-add-range" "<%TERTIARY%><%PRIMARY%>KP_Up")
+(gtk_accel_path "<Actions>/Editor/goto-mark-1" "KP_1")
+(gtk_accel_path "<Actions>/Editor/goto-mark-2" "KP_2")
+(gtk_accel_path "<Actions>/Editor/goto-mark-3" "KP_3")
+(gtk_accel_path "<Actions>/Editor/goto-mark-4" "KP_4")
+(gtk_accel_path "<Actions>/Editor/goto-mark-5" "KP_5")
+(gtk_accel_path "<Actions>/Editor/goto-mark-6" "KP_6")
+(gtk_accel_path "<Actions>/Editor/goto-mark-7" "KP_7")
+(gtk_accel_path "<Actions>/Editor/goto-mark-8" "KP_8")
+(gtk_accel_path "<Actions>/Editor/goto-mark-9" "KP_9")
+; (gtk_accel_path "<Actions>/Editor/nudge-next-backward" "<%PRIMARY%>KP_Subtract")
+(gtk_accel_path "<Actions>/Editor/cut-region-gain" "j")
+
+; (gtk_accel_path "<Actions>/Editor/nudge-next-forward" "<%PRIMARY%>KP_Add")
+(gtk_accel_path "<Actions>/Editor/boost-region-gain" "k")
+
+(gtk_accel_path "<Actions>/Transport/GotoZero" "KP_Insert")
+
+;; F-N keys
+
+; (gtk_accel_path "<Actions>/Editor/start-range" "F1")
+; (gtk_accel_path "<Actions>/Editor/edit-cursor-to-range-start" "<%TERTIARY%>F1")
+; (gtk_accel_path "<Actions>/Editor/finish-range" "F2")
+; (gtk_accel_path "<Actions>/Editor/edit-cursor-to-range-end" "<%TERTIARY%>F2")
+; (gtk_accel_path "<Actions>/Editor/brush-at-mouse" "F3")
+(gtk_accel_path "<Actions>/Editor/step-mouse-mode" "F1")
+(gtk_accel_path "<Actions>/Common/ToggleMaximalEditor" "F2")
+
+
+
+
+;; numbers
+
+(gtk_accel_path "<Actions>/Editor/toggle-edit-mode" "1")
+(gtk_accel_path "<Actions>/Editor/cycle-snap-mode" "2")
+(gtk_accel_path "<Actions>/Editor/cycle-snap-choice" "3")
+(gtk_accel_path "<Actions>/Transport/ToggleAutoPlay" "4")
+(gtk_accel_path "<Actions>/Transport/ToggleAutoReturn" "5")
+(gtk_accel_path "<Actions>/Transport/ToggleAutoInput" "6")
+(gtk_accel_path "<Actions>/Transport/ToggleClick" "7")
+
+(gtk_accel_path "<Actions>/Editor/set-loop-from-edit-range" "8")
+(gtk_accel_path "<Actions>/Editor/set-loop-from-region" "<%LEVEL4%>8")
+; (gtk_accel_path "<Actions>/Editor/loop-region" "<%PRIMARY%>8")
+
+(gtk_accel_path "<Actions>/Editor/set-punch-from-edit-range" "9")
+(gtk_accel_path "<Actions>/Editor/set-punch-from-region" "<%LEVEL4%>9")
+
+(gtk_accel_path "<Actions>/Editor/set-tempo-from-region" "<%LEVEL4%>0")
+(gtk_accel_path "<Actions>/Editor/set-tempo-from-edit-range" "0")
+
diff --git a/gtk2_ardour/SAE-de.bindings.in b/gtk2_ardour/SAE-us-keypad.bindings.in
index fa4f3bcc37..e4d98140fd 100644
--- a/gtk2_ardour/SAE-de.bindings.in
+++ b/gtk2_ardour/SAE-us-keypad.bindings.in
@@ -4,9 +4,9 @@
;
;; punctuation
-
+(gtk_accel_path "<Actions>/Editor/center-playhead" "Escape")
(gtk_accel_path "<Actions>/Transport/ToggleRoll" "space")
-(gtk_accel_path "<Actions>/Transport/ToggleRollForgetCapture" "<%PRIMARY%>space")
+(gtk_accel_path "<Actions>/Transport/ToggleRollForgetCapture" "<%PRIMARY%>period")
(gtk_accel_path "<Actions>/Transport/record-roll" "<%PRIMARY%>space")
(gtk_accel_path "<Actions>/Editor/align-regions-end" "<%PRIMARY%><%SECONDARY%>less")
@@ -16,23 +16,20 @@
(gtk_accel_path "<Actions>/Editor/align-regions-sync" "<%SECONDARY%>less")
(gtk_accel_path "<Actions>/Editor/align-regions-sync-relative" "less")
-(gtk_accel_path "<Actions>/Editor/edit-cursor-to-next-region-sync" "semicolon")
-(gtk_accel_path "<Actions>/Editor/edit-cursor-to-previous-region-sync" "apostrophe")
+; (gtk_accel_path "<Actions>/Editor/edit-cursor-to-next-region-sync" "semicolon")
+; (gtk_accel_path "<Actions>/Editor/edit-cursor-to-previous-region-sync" "apostrophe")
(gtk_accel_path "<Actions>/Editor/cycle-edit-point" "asciicircum")
(gtk_accel_path "<Actions>/Editor/cycle-edit-point-with-marker" "<%SECONDARY%>asciicircum")
(gtk_accel_path "<Actions>/Editor/extend-range-to-end-of-region" "rightanglebracket")
(gtk_accel_path "<Actions>/Editor/extend-range-to-start-of-region" "leftanglebracket")
-(gtk_accel_path "<Actions>/Editor/set-loop-from-edit-range" "bracketright")
-(gtk_accel_path "<Actions>/Editor/set-loop-from-region" "<%PRIMARY%><%SECONDARY%>bracketright")
-(gtk_accel_path "<Actions>/Editor/loop-region" "<%PRIMARY%>bracketright")
-
-(gtk_accel_path "<Actions>/Editor/set-punch-from-edit-range" "bracketleft")
-
(gtk_accel_path "<Actions>/Editor/trim-from-start" "<%TERTIARY%>braceleft")
(gtk_accel_path "<Actions>/Editor/trim-to-end" "<%TERTIARY%>braceright")
+(gtk_accel_path "<Actions>/Editor/play-from-edit-point-and-return" "<%LEVEL4%>space")
+(gtk_accel_path "<Actions>/Editor/play-edit-range" "<%SECONDARY%>space")
+
;; letters
;; OBERE ZEILE
@@ -40,25 +37,26 @@
(gtk_accel_path "<Actions>/Editor/set-fade-in-length" "q")
(gtk_accel_path "<Actions>/Common/Quit" "<%PRIMARY%>q")
(gtk_accel_path "<Actions>/Editor/toggle-fade-in-active" "<%SECONDARY%>q")
-
+(gtk_accel_path "<Actions>/Editor/set-playhead" "w")
;; note that ctrl-w is special and consumed by the keyboard snooper
-(gtk_accel_path "<Actions>/Editor/play-from-edit-point-and-return" "<%LEVEL4%>space")
-(gtk_accel_path "<Actions>/Editor/play-edit-range" "<%SECONDARY%>space")
-(gtk_accel_path "<Actions>/Editor/play-selected-regions" "s")
+
(gtk_accel_path "<Actions>/Main/Close" "<%PRIMARY%>w")
(gtk_accel_path "<Actions>/Editor/set-fade-out-length" "e")
(gtk_accel_path "<Actions>/Main/ExportSession" "<%PRIMARY%>e")
-(gtk_accel_path "<Actions>/Editor/select-all-before-edit-cursor" "<%PRIMARY%>e")
(gtk_accel_path "<Actions>/Editor/toggle-fade-out-active" "<%SECONDARY%>e")
+(gtk_accel_path "<Actions>/Editor/export-region" "<%PRIMARY%><%TERTIARY%>e")
(gtk_accel_path "<Actions>/Editor/show-editor-mixer" "<%TERTIARY%>e")
; (gtk_accel_path "<Actions>/Common/goto-editor" "<%SECONDARY%>e")
-(gtk_accel_path "<Actions>/Editor/select-all-after-edit-cursor" "<%TERTIARY%><%PRIMARY%>e")
(gtk_accel_path "<Actions>/Editor/redo" "<%PRIMARY%><%TERTIARY%>z")
(gtk_accel_path "<Actions>/Transport/Record" "<%TERTIARY%>r")
(gtk_accel_path "<Actions>/Editor/temporal-zoom-out" "r")
+(gtk_accel_path "<Actions>/Transport/Record" "<%TERTIARY%>r")
+(gtk_accel_path "<Actions>/Editor/reverse-region" "<%LEVEL4%>r")
(gtk_accel_path "<Actions>/Editor/temporal-zoom-in" "t")
-(gtk_accel_path "<Actions>/Editor/split-region" "y")
+(gtk_accel_path "<Actions>/Common/ToggleThemeManager" "<%WINDOW%>t")
+(gtk_accel_path "<Actions>/Editor/pitch-shift-region" "<%LEVEL4%>t")
+(gtk_accel_path "<Actions>/Editor/split-region" "z")
(gtk_accel_path "<Actions>/Editor/set-region-sync-position" "u")
(gtk_accel_path "<Actions>/Editor/insert-region" "i")
(gtk_accel_path "<Actions>/Editor/addExistingAudioFiles" "<%PRIMARY%>i")
@@ -66,19 +64,24 @@
(gtk_accel_path "<Actions>/Common/ToggleOptionsEditor" "<%SECONDARY%>o")
(gtk_accel_path "<Actions>/Main/Open" "<%PRIMARY%>o")
(gtk_accel_path "<Actions>/Main/Recent" "<%PRIMARY%><%TERTIARY%>o")
-(gtk_accel_path "<Actions>/Editor/set-playhead" "w")
+(gtk_accel_path "<Actions>/Editor/naturalize-region" "<%LEVEL4%>o")
+(gtk_accel_path "<Actions>/Transport/TogglePunch" "p")
(gtk_accel_path "<Actions>/Editor/select-all-in-punch-range" "<%TERTIARY%>p")
;; MITTELZEILE
(gtk_accel_path "<Actions>/Editor/trim-front" "a")
(gtk_accel_path "<Actions>/Editor/select-all" "<%PRIMARY%>a")
-(gtk_accel_path "<Actions>/Editor/trim-back" "d")
+(gtk_accel_path "<Actions>/Editor/select-all-between-cursors" "<%TERTIARY%>a")
+(gtk_accel_path "<Actions>/Editor/select-all-between-cursors" "<%TERTIARY%><%SECONDARY%>a")
+(gtk_accel_path "<Actions>/Editor/play-selected-regions" "s")
(gtk_accel_path "<Actions>/Common/Save" "<%PRIMARY%>s")
(gtk_accel_path "<Actions>/Main/Snapshot" "<%PRIMARY%><%TERTIARY%>s")
+(gtk_accel_path "<Actions>/Editor/trim-back" "d")
(gtk_accel_path "<Actions>/Editor/duplicate-region" "<%PRIMARY%>d")
(gtk_accel_path "<Actions>/Editor/multi-duplicate-region" "<%PRIMARY%><%TERTIARY%>d")
(gtk_accel_path "<Actions>/Editor/toggle-follow-playhead" "f")
+(gtk_accel_path "<Actions>/Common/toggle-rhythm-ferret" "<%WINDOW%>f")
; (gtk_accel_path "<Actions>/Editor/set-edit-point" "g")
; (gtk_accel_path "<Actions>/MouseMode/set-mouse-mode-gain" "g")
(gtk_accel_path "<Actions>/Editor/nudge-backward" "g")
@@ -86,25 +89,27 @@
(gtk_accel_path "<Actions>/Common/ToggleKeyEditor" "<%SECONDARY%>k")
(gtk_accel_path "<Actions>/Common/ToggleLocations" "<%SECONDARY%>l")
(gtk_accel_path "<Actions>/Transport/Loop" "l")
+(gtk_accel_path "<Actions>/Editor/lock-region" "<%LEVEL4%>l")
(gtk_accel_path "<Actions>/Editor/select-all-in-loop-range" "<%TERTIARY%>l")
;; UNTERE ZEILE
-(gtk_accel_path "<Actions>/Editor/zoom-to-region" "z")
+(gtk_accel_path "<Actions>/Editor/zoom-to-region" "y")
(gtk_accel_path "<Actions>/Editor/undo" "<%PRIMARY%>z")
-(gtk_accel_path "<Actions>/Editor/zoom-to-session" "<%SECONDARY%>z")
-(gtk_accel_path "<Actions>/Editor/toggle-zoom" "<%TERTIARY%>z")
+(gtk_accel_path "<Actions>/Editor/zoom-to-session" "<%SECONDARY%>y")
+(gtk_accel_path "<Actions>/Editor/toggle-zoom" "<%TERTIARY%>y")
(gtk_accel_path "<Actions>/Editor/editor-separate" "x")
(gtk_accel_path "<Actions>/Editor/editor-cut" "<%PRIMARY%>x")
(gtk_accel_path "<Actions>/Editor/crop" "c")
(gtk_accel_path "<Actions>/Editor/editor-copy" "<%PRIMARY%>c")
(gtk_accel_path "<Actions>/Common/ToggleColorManager" "<%SECONDARY%>c")
(gtk_accel_path "<Actions>/Editor/editor-paste" "<%PRIMARY%>v")
+(gtk_accel_path "<Actions>/Editor/add-location-from-playhead" "b")
(gtk_accel_path "<Actions>/Common/ToggleBigClock" "<%SECONDARY%>b")
(gtk_accel_path "<Actions>/Editor/normalize-region" "n")
(gtk_accel_path "<Actions>/Main/New" "<%PRIMARY%>n")
(gtk_accel_path "<Actions>/Main/AddTrackBus" "<%PRIMARY%><%TERTIARY%>n")
-(gtk_accel_path "<Actions>/Common/goto-mixer" "<%SECONDARY%>m")
+(gtk_accel_path "<Actions>/Common/toggle-editor-mixer-on-top" "<%SECONDARY%>m")
(gtk_accel_path "<Actions>/Editor/add-location-from-playhead" "KP_Enter")
(gtk_accel_path "<Actions>/Editor/mute-unmute-region" "m")
@@ -116,26 +121,35 @@
(gtk_accel_path "<Actions>/Editor/remove-last-capture" "<%PRIMARY%>Delete")
(gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-boundary" "leftarrow")
+(gtk_accel_path "<Actions>/Editor/playhead-backward-to-grid" "<%TERTIARY%><%LEVEL4%>leftarrow")
+(gtk_accel_path "<Actions>/Editor/edit-cursor-to-previous-region-sync" "<%TERTIARY%><%SECONDARY%>leftarrow")
(gtk_accel_path "<Actions>/Transport/Rewind" "<%PRIMARY%>leftarrow")
(gtk_accel_path "<Actions>/Editor/tab-to-transient-backwards" "<%SECONDARY%>leftarrow")
(gtk_accel_path "<Actions>/Editor/nudge-playhead-backward" "<%TERTIARY%>leftarrow")
+(gtk_accel_path "<Actions>/Editor/jump-backward-to-mark" "<%PRIMARY%><%SECONDARY%>leftarrow")
+
(gtk_accel_path "<Actions>/Editor/selected-marker-to-previous-region-boundary" "<%PRIMARY%><%TERTIARY%>leftarrow")
(gtk_accel_path "<Actions>/Editor/playhead-to-next-region-boundary" "rightarrow")
+(gtk_accel_path "<Actions>/Editor/playhead-forward-to-grid" "<%TERTIARY%><%LEVEL4%>rightarrow")
+(gtk_accel_path "<Actions>/Editor/edit-cursor-to-next-region-sync" "<%TERTIARY%><%SECONDARY%>leftarrow")
(gtk_accel_path "<Actions>/Transport/Forward" "<%PRIMARY%>rightarrow")
(gtk_accel_path "<Actions>/Editor/tab-to-transient-forwards" "<%SECONDARY%>rightarrow")
(gtk_accel_path "<Actions>/Editor/nudge-playhead-forward" "<%TERTIARY%>rightarrow")
+(gtk_accel_path "<Actions>/Editor/jump-forward-to-mark" "<%PRIMARY%><%SECONDARY%>rightarrow")
+
(gtk_accel_path "<Actions>/Editor/selected-marker-to-next-region-boundary" "<%PRIMARY%><%TERTIARY%>rightarrow")
+
(gtk_accel_path "<Actions>/Editor/scroll-tracks-down" "Page_Down")
(gtk_accel_path "<Actions>/Editor/scroll-tracks-up" "Page_Up")
(gtk_accel_path "<Actions>/Transport/GotoEnd" "End")
-(gtk_accel_path "<Actions>/Editor/select-all-after-edit-cursor" "<%TERTIARY%>End")
-(gtk_accel_path "<Actions>/Editor/select-all-after-playhead" "<%TERTIARY%><%PRIMARY%>End")
+(gtk_accel_path "<Actions>/Editor/select-all-after-edit-cursor" "<%PRIMARY%><%TERTIARY%>End")
+(gtk_accel_path "<Actions>/Editor/select-all-after-playhead" "<%TERTIARY%>End")
(gtk_accel_path "<Actions>/Transport/GotoStart" "Home")
-(gtk_accel_path "<Actions>/Editor/select-all-before-edit-cursor" "<%TERTIARY%>Home")
+(gtk_accel_path "<Actions>/Editor/select-all-before-edit-cursor" "<%PRIMARY%><%TERTIARY%>Home")
(gtk_accel_path "<Actions>/Editor/select-all-before-playhead" "<%TERTIARY%>Home")
(gtk_accel_path "<Actions>/Editor/select-prev-route" "uparrow")
@@ -152,37 +166,50 @@
(gtk_accel_path "<Actions>/Editor/goto-mark-2" "KP_2")
(gtk_accel_path "<Actions>/Editor/goto-mark-3" "KP_3")
(gtk_accel_path "<Actions>/Editor/goto-mark-4" "KP_4")
-(gtk_accel_path "<Actions>/Editor/jump-backward-to-mark" "<%PRIMARY%>KP_4")
(gtk_accel_path "<Actions>/Editor/goto-mark-5" "KP_5")
(gtk_accel_path "<Actions>/Editor/goto-mark-6" "KP_6")
-(gtk_accel_path "<Actions>/Editor/jump-forward-to-mark" "<%PRIMARY%>KP_6")
(gtk_accel_path "<Actions>/Editor/goto-mark-7" "KP_7")
(gtk_accel_path "<Actions>/Editor/goto-mark-8" "KP_8")
(gtk_accel_path "<Actions>/Editor/goto-mark-9" "KP_9")
(gtk_accel_path "<Actions>/Editor/nudge-next-backward" "<%PRIMARY%>KP_Subtract")
+(gtk_accel_path "<Actions>/Editor/cut-region-gain" "KP_Subtract")
+
(gtk_accel_path "<Actions>/Editor/nudge-next-forward" "<%PRIMARY%>KP_Add")
+(gtk_accel_path "<Actions>/Editor/boost-region-gain" "KP_Add")
+
(gtk_accel_path "<Actions>/Transport/GotoZero" "KP_Insert")
;; F-N keys
-(gtk_accel_path "<Actions>/Editor/start-range" "F1")
-(gtk_accel_path "<Actions>/Editor/edit-cursor-to-range-start" "<%TERTIARY%>F1")
-(gtk_accel_path "<Actions>/Editor/finish-range" "F2")
-(gtk_accel_path "<Actions>/Editor/edit-cursor-to-range-end" "<%TERTIARY%>F2")
-(gtk_accel_path "<Actions>/Editor/brush-at-mouse" "F3")
-(gtk_accel_path "<Actions>/Common/ToggleMaximalEditor" "F11")
-(gtk_accel_path "<Actions>/Editor/select-all" "F14")
-(gtk_accel_path "<Actions>/Editor/invert-selection" "F15")
-(gtk_accel_path "<Actions>/Editor/select-all-between-cursors" "F16")
+; (gtk_accel_path "<Actions>/Editor/start-range" "F1")
+; (gtk_accel_path "<Actions>/Editor/edit-cursor-to-range-start" "<%TERTIARY%>F1")
+; (gtk_accel_path "<Actions>/Editor/finish-range" "F2")
+; (gtk_accel_path "<Actions>/Editor/edit-cursor-to-range-end" "<%TERTIARY%>F2")
+; (gtk_accel_path "<Actions>/Editor/brush-at-mouse" "F3")
+(gtk_accel_path "<Actions>/Editor/step-mouse-mode" "F1")
+(gtk_accel_path "<Actions>/Common/ToggleMaximalEditor" "F2")
+
+
+
;; numbers
(gtk_accel_path "<Actions>/Editor/toggle-edit-mode" "1")
(gtk_accel_path "<Actions>/Editor/cycle-snap-mode" "2")
(gtk_accel_path "<Actions>/Editor/cycle-snap-choice" "3")
-(gtk_accel_path "<Actions>/Transport/ToggleAutoReturn" "4")
-(gtk_accel_path "<Actions>/Transport/ToggleClick" "5")
-(gtk_accel_path "<Actions>/Editor/set-tempo-from-region" "9")
+(gtk_accel_path "<Actions>/Transport/ToggleAutoPlay" "4")
+(gtk_accel_path "<Actions>/Transport/ToggleAutoReturn" "5")
+(gtk_accel_path "<Actions>/Transport/ToggleAutoInput" "6")
+(gtk_accel_path "<Actions>/Transport/ToggleClick" "7")
+
+(gtk_accel_path "<Actions>/Editor/set-loop-from-edit-range" "8")
+(gtk_accel_path "<Actions>/Editor/set-loop-from-region" "<%LEVEL4%>8")
+; (gtk_accel_path "<Actions>/Editor/loop-region" "<%PRIMARY%>8")
+
+(gtk_accel_path "<Actions>/Editor/set-punch-from-edit-range" "9")
+(gtk_accel_path "<Actions>/Editor/set-punch-from-region" "<%LEVEL4%>9")
+
+(gtk_accel_path "<Actions>/Editor/set-tempo-from-region" "<%LEVEL4%>0")
(gtk_accel_path "<Actions>/Editor/set-tempo-from-edit-range" "0")
;;
@@ -246,7 +273,6 @@
; (gtk_accel_path "<Actions>/Editor/View" "")
; (gtk_accel_path "<Actions>/Editor/ZoomFocus" "")
; (gtk_accel_path "<Actions>/Editor/center-edit-cursor" "")
-; (gtk_accel_path "<Actions>/Editor/center-playhead" "")
; (gtk_accel_path "<Actions>/Editor/playhead-to-next-region-sync" "")
; (gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-sync" "")
; (gtk_accel_path "<Actions>/Editor/playhead-to-range-end" "")
@@ -330,9 +356,9 @@
; (gtk_accel_path "<Actions>/Snap/snap-to-smpte-seconds" "")
; (gtk_accel_path "<Actions>/Snap/snap-to-thirds" "")
; (gtk_accel_path "<Actions>/Snap/snap-to-thirtyseconds" "")
-; (gtk_accel_path "<Actions>/Transport/PlaySelection" "")
-; (gtk_accel_path "<Actions>/Transport/ToggleAutoInput" "")
-; (gtk_accel_path "<Actions>/Transport/ToggleAutoPlay" "")
+; (gtk_accel_path "<Actions>/Transport/Playwion" "")
+
+
; (gtk_accel_path "<Actions>/Transport/ToggleAutoReturn" "")
; (gtk_accel_path "<Actions>/Transport/TogglePunchIn" "")
; (gtk_accel_path "<Actions>/Transport/TogglePunchOut" "")
@@ -384,19 +410,19 @@
; (gtk_accel_path "<Actions>/options/UseMMC" "")
; (gtk_accel_path "<Actions>/options/UseSoftwareMonitoring" "")
; (gtk_accel_path "<Actions>/options/VerifyRemoveLastCapture" "")
-; (gtk_accel_path "<Actions>/processormenu/activate" "")
-; (gtk_accel_path "<Actions>/processormenu/activate_all" "")
-; (gtk_accel_path "<Actions>/processormenu/clear" "")
-; (gtk_accel_path "<Actions>/processormenu/copy" "")
-; (gtk_accel_path "<Actions>/processormenu/cut" "")
-; (gtk_accel_path "<Actions>/processormenu/deactivate" "")
-; (gtk_accel_path "<Actions>/processormenu/deactivate_all" "")
-; (gtk_accel_path "<Actions>/processormenu/deselectall" "<%PRIMARY%><%TERTIARY%>a")
-; (gtk_accel_path "<Actions>/processormenu/edit" "")
-; (gtk_accel_path "<Actions>/processormenu/newinsert" "")
-; (gtk_accel_path "<Actions>/processormenu/newplugin" "")
-; (gtk_accel_path "<Actions>/processormenu/newsend" "")
-; (gtk_accel_path "<Actions>/processormenu/paste" "")
-; (gtk_accel_path "<Actions>/processormenu/rename" "")
-; (gtk_accel_path "<Actions>/processormenu/selectall" "")
+; (gtk_accel_path "<Actions>/redirectmenu/activate" "")
+; (gtk_accel_path "<Actions>/redirectmenu/activate_all" "")
+; (gtk_accel_path "<Actions>/redirectmenu/clear" "")
+; (gtk_accel_path "<Actions>/redirectmenu/copy" "")
+; (gtk_accel_path "<Actions>/redirectmenu/cut" "")
+; (gtk_accel_path "<Actions>/redirectmenu/deactivate" "")
+; (gtk_accel_path "<Actions>/redirectmenu/deactivate_all" "")
+; (gtk_accel_path "<Actions>/redirectmenu/deselectall" "<%PRIMARY%><%TERTIARY%>a")
+; (gtk_accel_path "<Actions>/redirectmenu/edit" "")
+; (gtk_accel_path "<Actions>/redirectmenu/newinsert" "")
+; (gtk_accel_path "<Actions>/redirectmenu/newplugin" "")
+; (gtk_accel_path "<Actions>/redirectmenu/newsend" "")
+; (gtk_accel_path "<Actions>/redirectmenu/paste" "")
+; (gtk_accel_path "<Actions>/redirectmenu/rename" "")
+; (gtk_accel_path "<Actions>/redirectmenu/selectall" "")
;(gtk_accel_path "<Actions>/MouseMode/set-mouse-mode-object" "o")
diff --git a/gtk2_ardour/SAE-us-nokeypad.bindings.in b/gtk2_ardour/SAE-us-nokeypad.bindings.in
new file mode 100644
index 0000000000..a84ee2bf20
--- /dev/null
+++ b/gtk2_ardour/SAE-us-nokeypad.bindings.in
@@ -0,0 +1,213 @@
+; ardour-2.2 GtkAccelMap rc-file -*- scheme -*-
+; this file is a hand-edited map that is processed by scons
+; to produce a real accelmap.
+;
+
+;; punctuation
+(gtk_accel_path "<Actions>/Editor/center-playhead" "Escape")
+(gtk_accel_path "<Actions>/Transport/ToggleRoll" "space")
+(gtk_accel_path "<Actions>/Transport/ToggleRollForgetCapture" "<%PRIMARY%>period")
+(gtk_accel_path "<Actions>/Transport/record-roll" "<%PRIMARY%>space")
+
+(gtk_accel_path "<Actions>/Editor/align-regions-end" "<%PRIMARY%><%SECONDARY%>less")
+(gtk_accel_path "<Actions>/Editor/align-regions-end-relative" "<%PRIMARY%>less")
+(gtk_accel_path "<Actions>/Editor/align-regions-start" "<%LEVEL4%><%SECONDARY%>less")
+(gtk_accel_path "<Actions>/Editor/align-regions-start-relative" "<%LEVEL4%>less")
+(gtk_accel_path "<Actions>/Editor/align-regions-sync" "<%SECONDARY%>less")
+(gtk_accel_path "<Actions>/Editor/align-regions-sync-relative" "less")
+
+; (gtk_accel_path "<Actions>/Editor/edit-cursor-to-next-region-sync" "semicolon")
+; (gtk_accel_path "<Actions>/Editor/edit-cursor-to-previous-region-sync" "apostrophe")
+(gtk_accel_path "<Actions>/Editor/cycle-edit-point" "asciicircum")
+(gtk_accel_path "<Actions>/Editor/cycle-edit-point-with-marker" "<%SECONDARY%>asciicircum")
+
+(gtk_accel_path "<Actions>/Editor/extend-range-to-end-of-region" "rightanglebracket")
+(gtk_accel_path "<Actions>/Editor/extend-range-to-start-of-region" "leftanglebracket")
+
+(gtk_accel_path "<Actions>/Editor/trim-from-start" "<%TERTIARY%>braceleft")
+(gtk_accel_path "<Actions>/Editor/trim-to-end" "<%TERTIARY%>braceright")
+
+(gtk_accel_path "<Actions>/Editor/play-from-edit-point-and-return" "<%LEVEL4%>space")
+(gtk_accel_path "<Actions>/Editor/play-edit-range" "<%SECONDARY%>space")
+
+;; letters
+
+;; OBERE ZEILE
+
+(gtk_accel_path "<Actions>/Editor/set-fade-in-length" "q")
+(gtk_accel_path "<Actions>/Common/Quit" "<%PRIMARY%>q")
+(gtk_accel_path "<Actions>/Editor/toggle-fade-in-active" "<%SECONDARY%>q")
+(gtk_accel_path "<Actions>/Editor/set-playhead" "w")
+;; note that ctrl-w is special and consumed by the keyboard snooper
+
+
+(gtk_accel_path "<Actions>/Main/Close" "<%PRIMARY%>w")
+(gtk_accel_path "<Actions>/Editor/set-fade-out-length" "e")
+(gtk_accel_path "<Actions>/Main/ExportSession" "<%PRIMARY%>e")
+(gtk_accel_path "<Actions>/Editor/toggle-fade-out-active" "<%SECONDARY%>e")
+(gtk_accel_path "<Actions>/Editor/export-region" "<%PRIMARY%><%TERTIARY%>e")
+(gtk_accel_path "<Actions>/Editor/show-editor-mixer" "<%TERTIARY%>e")
+; (gtk_accel_path "<Actions>/Common/goto-editor" "<%SECONDARY%>e")
+(gtk_accel_path "<Actions>/Editor/redo" "<%PRIMARY%><%TERTIARY%>z")
+(gtk_accel_path "<Actions>/Transport/Record" "<%TERTIARY%>r")
+(gtk_accel_path "<Actions>/Editor/temporal-zoom-out" "r")
+(gtk_accel_path "<Actions>/Transport/Record" "<%TERTIARY%>r")
+(gtk_accel_path "<Actions>/Editor/reverse-region" "<%LEVEL4%>r")
+(gtk_accel_path "<Actions>/Editor/temporal-zoom-in" "t")
+(gtk_accel_path "<Actions>/Common/ToggleThemeManager" "<%SECONDARY%>t")
+(gtk_accel_path "<Actions>/Editor/pitch-shift-region" "<%LEVEL4%>t")
+(gtk_accel_path "<Actions>/Editor/split-region" "z")
+(gtk_accel_path "<Actions>/Editor/set-region-sync-position" "u")
+(gtk_accel_path "<Actions>/Editor/insert-region" "i")
+(gtk_accel_path "<Actions>/Editor/addExistingAudioFiles" "<%PRIMARY%>i")
+(gtk_accel_path "<Actions>/Editor/invert-selection" "<%TERTIARY%>i")
+(gtk_accel_path "<Actions>/Common/ToggleOptionsEditor" "<%SECONDARY%>o")
+(gtk_accel_path "<Actions>/Main/Open" "<%PRIMARY%>o")
+(gtk_accel_path "<Actions>/Main/Recent" "<%PRIMARY%><%TERTIARY%>o")
+(gtk_accel_path "<Actions>/Editor/naturalize-region" "<%LEVEL4%>o")
+(gtk_accel_path "<Actions>/Transport/TogglePunch" "p")
+(gtk_accel_path "<Actions>/Editor/select-all-in-punch-range" "<%TERTIARY%>p")
+
+;; MITTELZEILE
+
+(gtk_accel_path "<Actions>/Editor/trim-front" "a")
+(gtk_accel_path "<Actions>/Editor/select-all" "<%PRIMARY%>a")
+(gtk_accel_path "<Actions>/Editor/select-all-between-cursors" "<%TERTIARY%>a")
+(gtk_accel_path "<Actions>/Editor/select-all-between-cursors" "<%TERTIARY%><%SECONDARY%>a")
+(gtk_accel_path "<Actions>/Editor/play-selected-regions" "s")
+(gtk_accel_path "<Actions>/Common/Save" "<%PRIMARY%>s")
+(gtk_accel_path "<Actions>/Main/Snapshot" "<%PRIMARY%><%TERTIARY%>s")
+(gtk_accel_path "<Actions>/Editor/trim-back" "d")
+(gtk_accel_path "<Actions>/Editor/duplicate-region" "<%PRIMARY%>d")
+(gtk_accel_path "<Actions>/Editor/multi-duplicate-region" "<%PRIMARY%><%TERTIARY%>d")
+(gtk_accel_path "<Actions>/Editor/toggle-follow-playhead" "f")
+(gtk_accel_path "<Actions>/Common/toggle-rhythm-ferret" "<%SECONDARY%>f")
+; (gtk_accel_path "<Actions>/Editor/set-edit-point" "g")
+; (gtk_accel_path "<Actions>/MouseMode/set-mouse-mode-gain" "g")
+(gtk_accel_path "<Actions>/Editor/nudge-backward" "g")
+(gtk_accel_path "<Actions>/Editor/nudge-forward" "h")
+(gtk_accel_path "<Actions>/Common/ToggleKeyEditor" "<%SECONDARY%>k")
+(gtk_accel_path "<Actions>/Common/ToggleLocations" "<%SECONDARY%>l")
+(gtk_accel_path "<Actions>/Transport/Loop" "l")
+(gtk_accel_path "<Actions>/Editor/lock-region" "<%LEVEL4%>l")
+(gtk_accel_path "<Actions>/Editor/select-all-in-loop-range" "<%TERTIARY%>l")
+
+;; UNTERE ZEILE
+
+(gtk_accel_path "<Actions>/Editor/zoom-to-region" "y")
+(gtk_accel_path "<Actions>/Editor/undo" "<%PRIMARY%>z")
+(gtk_accel_path "<Actions>/Editor/zoom-to-session" "<%SECONDARY%>y")
+(gtk_accel_path "<Actions>/Editor/toggle-zoom" "<%TERTIARY%>y")
+(gtk_accel_path "<Actions>/Editor/editor-separate" "x")
+(gtk_accel_path "<Actions>/Editor/editor-cut" "<%PRIMARY%>x")
+(gtk_accel_path "<Actions>/Editor/crop" "c")
+(gtk_accel_path "<Actions>/Editor/editor-copy" "<%PRIMARY%>c")
+(gtk_accel_path "<Actions>/Common/ToggleColorManager" "<%SECONDARY%>c")
+(gtk_accel_path "<Actions>/Editor/editor-paste" "<%PRIMARY%>v")
+(gtk_accel_path "<Actions>/Editor/add-location-from-playhead" "b")
+(gtk_accel_path "<Actions>/Common/ToggleBigClock" "<%SECONDARY%>b")
+(gtk_accel_path "<Actions>/Editor/normalize-region" "n")
+(gtk_accel_path "<Actions>/Main/New" "<%PRIMARY%>n")
+(gtk_accel_path "<Actions>/Main/AddTrackBus" "<%PRIMARY%><%TERTIARY%>n")
+(gtk_accel_path "<Actions>/Common/toggle-editor-mixer-on-top" "<%SECONDARY%>m")
+(gtk_accel_path "<Actions>/Editor/mute-unmute-region" "m")
+
+;; arrow keys, navigation etc.
+
+(gtk_accel_path "<Actions>/Editor/playhead-to-edit" "Return")
+(gtk_accel_path "<Actions>/Editor/edit-to-playhead" "<%SECONDARY%>Return")
+(gtk_accel_path "<Actions>/Editor/editor-delete" "BackSpace")
+(gtk_accel_path "<Actions>/Editor/remove-last-capture" "<%PRIMARY%>BackSpace")
+
+(gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-boundary" "leftarrow")
+(gtk_accel_path "<Actions>/Editor/playhead-backward-to-grid" "<%TERTIARY%><%LEVEL4%>leftarrow")
+(gtk_accel_path "<Actions>/Editor/edit-cursor-to-previous-region-sync" "<%TERTIARY%><%SECONDARY%>leftarrow")
+(gtk_accel_path "<Actions>/Transport/Rewind" "<%PRIMARY%>leftarrow")
+(gtk_accel_path "<Actions>/Editor/tab-to-transient-backwards" "<%SECONDARY%>leftarrow")
+(gtk_accel_path "<Actions>/Editor/nudge-playhead-backward" "<%TERTIARY%>leftarrow")
+(gtk_accel_path "<Actions>/Editor/jump-backward-to-mark" "<%PRIMARY%><%SECONDARY%>leftarrow")
+
+(gtk_accel_path "<Actions>/Editor/selected-marker-to-previous-region-boundary" "<%PRIMARY%><%TERTIARY%>leftarrow")
+
+(gtk_accel_path "<Actions>/Editor/playhead-to-next-region-boundary" "rightarrow")
+(gtk_accel_path "<Actions>/Editor/playhead-forward-to-grid" "<%TERTIARY%><%LEVEL4%>rightarrow")
+(gtk_accel_path "<Actions>/Editor/edit-cursor-to-next-region-sync" "<%TERTIARY%><%SECONDARY%>leftarrow")
+(gtk_accel_path "<Actions>/Transport/Forward" "<%PRIMARY%>rightarrow")
+(gtk_accel_path "<Actions>/Editor/tab-to-transient-forwards" "<%SECONDARY%>rightarrow")
+(gtk_accel_path "<Actions>/Editor/nudge-playhead-forward" "<%TERTIARY%>rightarrow")
+(gtk_accel_path "<Actions>/Editor/jump-forward-to-mark" "<%PRIMARY%><%SECONDARY%>rightarrow")
+
+(gtk_accel_path "<Actions>/Editor/selected-marker-to-next-region-boundary" "<%PRIMARY%><%TERTIARY%>rightarrow")
+
+
+(gtk_accel_path "<Actions>/Editor/scroll-tracks-down" "Page_Down")
+(gtk_accel_path "<Actions>/Editor/scroll-tracks-up" "Page_Up")
+
+(gtk_accel_path "<Actions>/Transport/GotoEnd" "End")
+(gtk_accel_path "<Actions>/Editor/select-all-after-edit-cursor" "<%PRIMARY%><%TERTIARY%>End")
+(gtk_accel_path "<Actions>/Editor/select-all-after-playhead" "<%TERTIARY%>End")
+
+(gtk_accel_path "<Actions>/Transport/GotoStart" "Home")
+(gtk_accel_path "<Actions>/Editor/select-all-before-edit-cursor" "<%PRIMARY%><%TERTIARY%>Home")
+(gtk_accel_path "<Actions>/Editor/select-all-before-playhead" "<%TERTIARY%>Home")
+
+(gtk_accel_path "<Actions>/Editor/select-prev-route" "uparrow")
+(gtk_accel_path "<Actions>/Transport/TransitionToRoll" "<%PRIMARY%>uparrow")
+(gtk_accel_path "<Actions>/Editor/move-selected-tracks-up" "<%TERTIARY%>uparrow")
+(gtk_accel_path "<Actions>/Editor/select-next-route" "downarrow")
+(gtk_accel_path "<Actions>/Transport/TransitionToReverse" "<%PRIMARY%>downarrow")
+(gtk_accel_path "<Actions>/Editor/move-selected-tracks-down" "<%TERTIARY%>downarrow")
+
+;; keypad
+
+(gtk_accel_path "<Actions>/Editor/finish-add-range" "<%TERTIARY%><%PRIMARY%>KP_Up")
+(gtk_accel_path "<Actions>/Editor/goto-mark-1" "KP_1")
+(gtk_accel_path "<Actions>/Editor/goto-mark-2" "KP_2")
+(gtk_accel_path "<Actions>/Editor/goto-mark-3" "KP_3")
+(gtk_accel_path "<Actions>/Editor/goto-mark-4" "KP_4")
+(gtk_accel_path "<Actions>/Editor/goto-mark-5" "KP_5")
+(gtk_accel_path "<Actions>/Editor/goto-mark-6" "KP_6")
+(gtk_accel_path "<Actions>/Editor/goto-mark-7" "KP_7")
+(gtk_accel_path "<Actions>/Editor/goto-mark-8" "KP_8")
+(gtk_accel_path "<Actions>/Editor/goto-mark-9" "KP_9")
+; (gtk_accel_path "<Actions>/Editor/nudge-next-backward" "<%PRIMARY%>KP_Subtract")
+(gtk_accel_path "<Actions>/Editor/cut-region-gain" "j")
+
+; (gtk_accel_path "<Actions>/Editor/nudge-next-forward" "<%PRIMARY%>KP_Add")
+(gtk_accel_path "<Actions>/Editor/boost-region-gain" "k")
+
+(gtk_accel_path "<Actions>/Transport/GotoZero" "KP_Insert")
+
+;; F-N keys
+
+; (gtk_accel_path "<Actions>/Editor/start-range" "F1")
+; (gtk_accel_path "<Actions>/Editor/edit-cursor-to-range-start" "<%TERTIARY%>F1")
+; (gtk_accel_path "<Actions>/Editor/finish-range" "F2")
+; (gtk_accel_path "<Actions>/Editor/edit-cursor-to-range-end" "<%TERTIARY%>F2")
+; (gtk_accel_path "<Actions>/Editor/brush-at-mouse" "F3")
+(gtk_accel_path "<Actions>/Editor/step-mouse-mode" "F1")
+(gtk_accel_path "<Actions>/Common/ToggleMaximalEditor" "F2")
+
+
+
+
+;; numbers
+
+(gtk_accel_path "<Actions>/Editor/toggle-edit-mode" "1")
+(gtk_accel_path "<Actions>/Editor/cycle-snap-mode" "2")
+(gtk_accel_path "<Actions>/Editor/cycle-snap-choice" "3")
+(gtk_accel_path "<Actions>/Transport/ToggleAutoPlay" "4")
+(gtk_accel_path "<Actions>/Transport/ToggleAutoReturn" "5")
+(gtk_accel_path "<Actions>/Transport/ToggleAutoInput" "6")
+(gtk_accel_path "<Actions>/Transport/ToggleClick" "7")
+
+(gtk_accel_path "<Actions>/Editor/set-loop-from-edit-range" "8")
+(gtk_accel_path "<Actions>/Editor/set-loop-from-region" "<%LEVEL4%>8")
+; (gtk_accel_path "<Actions>/Editor/loop-region" "<%PRIMARY%>8")
+
+(gtk_accel_path "<Actions>/Editor/set-punch-from-edit-range" "9")
+(gtk_accel_path "<Actions>/Editor/set-punch-from-region" "<%LEVEL4%>9")
+
+(gtk_accel_path "<Actions>/Editor/set-tempo-from-region" "<%LEVEL4%>0")
+(gtk_accel_path "<Actions>/Editor/set-tempo-from-edit-range" "0")
+
diff --git a/gtk2_ardour/SAE-us.bindings.in b/gtk2_ardour/SAE-us.bindings.in
deleted file mode 100644
index a8c3f1fe0e..0000000000
--- a/gtk2_ardour/SAE-us.bindings.in
+++ /dev/null
@@ -1,346 +0,0 @@
-; ardour GtkAccelMap rc-file -*- scheme -*-
-; this file is an automated accelerator map dump
-;
-; (gtk_accel_path "<Actions>/RegionList/RegionListSort" "")
-(gtk_accel_path "<Actions>/Common/Quit" "<%PRIMARY%>q")
-(gtk_accel_path "<Actions>/Common/Save" "<%PRIMARY%>s")
-; (gtk_accel_path "<Actions>/Editor/Pullup" "")
-; (gtk_accel_path "<Actions>/Editor/zoom-to-session" "")
-; (gtk_accel_path "<Actions>/JACK/JACKReconnect" "")
-; (gtk_accel_path "<Actions>/Editor/Autoconnect" "")
-; (gtk_accel_path "<Actions>/Editor/Edit" "")
-(gtk_accel_path "<Actions>/Editor/cycle-edit-point" "grave")
-(gtk_accel_path "<Actions>/Editor/cycle-edit-point-with-marker" "<%SECONDARY%>grave")
-(gtk_accel_path "<Actions>/Editor/toggle-edit-mode" "1")
-(gtk_accel_path "<Actions>/Editor/cycle-snap-mode" "2")
-(gtk_accel_path "<Actions>/Editor/cycle-snap-choice" "3")
-; (gtk_accel_path "<Actions>/processormenu/copy" "")
-; (gtk_accel_path "<Actions>/options/MeterFalloffFaster" "")
-(gtk_accel_path "<Actions>/Transport/ToggleRollForgetCapture" "<%PRIMARY%>space")
-(gtk_accel_path "<Actions>/Transport/record-roll" "<%TERTIARY%>space")
-(gtk_accel_path "<Actions>/Transport/Record" "<%TERTIARY%>r")
-; (gtk_accel_path "<Actions>/RegionList/SortByRegionLength" "")
-; (gtk_accel_path "<Actions>/options/MeterFalloffSlowest" "")
-; (gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-sync" "")
-; (gtk_accel_path "<Actions>/processormenu/deactivate_all" "")
-; (gtk_accel_path "<Actions>/RegionList/SortByRegionPosition" "")
-; (gtk_accel_path "<Actions>/Editor/ZoomFocus" "")
-(gtk_accel_path "<Actions>/Editor/addExistingAudioFiles" "<%SECONDARY%>i")
-; (gtk_accel_path "<Actions>/options/MeterFalloffSlow" "")
-; (gtk_accel_path "<Actions>/RegionList/rlHide" "")
-; (gtk_accel_path "<Actions>/Main/Metering" "")
-(gtk_accel_path "<Actions>/Editor/playhead-to-next-region-boundary" "rightarrow")
-(gtk_accel_path "<Actions>/Editor/selected-marker-to-next-region-boundary" "<%PRIMARY%><%TERTIARY%>rightarrow")
-; (gtk_accel_path "<Actions>/Zoom/zoom-focus-playhead" "")
-; (gtk_accel_path "<Actions>/Editor/center-edit-cursor" "")
-; (gtk_accel_path "<Actions>/Editor/Monitoring" "")
-; (gtk_accel_path "<Actions>/processormenu/deactivate" "")
-; (gtk_accel_path "<Actions>/options/LatchedRecordEnable" "")
-; (gtk_accel_path "<Actions>/Transport/TogglePunchIn" "")
-; (gtk_accel_path "<Actions>/ShuttleActions/SetShuttleUnitsPercentage" "")
-; (gtk_accel_path "<Actions>/Main/Close" "")
-; (gtk_accel_path "<Actions>/Main/New" "")
-(gtk_accel_path "<Actions>/Editor/nudge-next-backward" "<%PRIMARY%>KP_Subtract")
-; (gtk_accel_path "<Actions>/Editor/EditSelectRangeOptions" "")
-; (gtk_accel_path "<Actions>/Transport/ToggleTimeMaster" "")
-; (gtk_accel_path "<Actions>/Snap/snap-to-thirds" "")
-(gtk_accel_path "<Actions>/Editor/align-regions-start-relative" "<%TERTIARY%>a")
-; (gtk_accel_path "<Actions>/Main/Export" "")
-(gtk_accel_path "<Actions>/Editor/jump-forward-to-mark" "<%PRIMARY%>KP_Right")
-; (gtk_accel_path "<Actions>/Editor/Smpte30" "")
-; (gtk_accel_path "<Actions>/Editor/playhead-to-range-start" "")
-; (gtk_accel_path "<Actions>/Editor/Subframes" "")
-; (gtk_accel_path "<Actions>/Editor/Smpte2997drop" "")
-(gtk_accel_path "<Actions>/Main/AddTrackBus" "<%PRIMARY%><%SECONDARY%>n")
-(gtk_accel_path "<Actions>/Editor/align-regions-end" "<%LEVEL4%>a")
-; (gtk_accel_path "<Actions>/JACK/JACKDisconnect" "")
-; (gtk_accel_path "<Actions>/options/MeterFalloffFast" "")
-; (gtk_accel_path "<Actions>/options/FileDataFormatFloat" "")
-; (gtk_accel_path "<Actions>/Snap/snap-to-region-end" "")
-(gtk_accel_path "<Actions>/Editor/edit-cursor-to-next-region-sync" "semicolon")
-; (gtk_accel_path "<Actions>/options/StopRecordingOnXrun" "")
-; (gtk_accel_path "<Actions>/RegionList/SortDescending" "")
-; (gtk_accel_path "<Actions>/options/DoNotRunPluginsWhileRecording" "")
-; (gtk_accel_path "<Actions>/Editor/PullupNone" "")
-(gtk_accel_path "<Actions>/MouseMode/set-mouse-mode-range" "r")
-(gtk_accel_path "<Actions>/Editor/jump-backward-to-mark" "<%PRIMARY%>KP_Left")
-; (gtk_accel_path "<Actions>/Main/AudioFileFormatData" "")
-; (gtk_accel_path "<Actions>/options/MeterFalloffFastest" "")
-(gtk_accel_path "<Actions>/Editor/play-selected-regions" "w")
-(gtk_accel_path "<Actions>/Editor/play-edit-range" "<%SECONDARY%>w")
-(gtk_accel_path "<Actions>/Transport/Forward" "<%PRIMARY%>rightarrow")
-; (gtk_accel_path "<Actions>/Snap/snap-to-smpte-seconds" "")
-; (gtk_accel_path "<Actions>/Snap/snap-to-smpte-frame" "")
-; (gtk_accel_path "<Actions>/Main/ExportSelection" "")
-; (gtk_accel_path "<Actions>/options/StopPluginsWithTransport" "")
-(gtk_accel_path "<Actions>/Editor/editor-paste" "<%PRIMARY%>v")
-(gtk_accel_path "<Actions>/Editor/scroll-tracks-down" "Page_Down")
-(gtk_accel_path "<Actions>/Editor/select-next-route" "downarrow")
-(gtk_accel_path "<Actions>/Editor/select-prev-route" "uparrow")
-; (gtk_accel_path "<Actions>/Snap/snap-to-smpte-minutes" "")
-; (gtk_accel_path "<Actions>/Main/FlushWastebasket" "")
-(gtk_accel_path "<Actions>/Editor/normalize-region" "n")
-(gtk_accel_path "<Actions>/Editor/nudge-forward" "h")
-; (gtk_accel_path "<Actions>/RegionList/SortByRegionEndinFile" "")
-; (gtk_accel_path "<Actions>/Editor/ToggleMeasureVisibility" "")
-; (gtk_accel_path "<Actions>/Zoom/zoom-focus-center" "")
-(gtk_accel_path "<Actions>/Editor/nudge-backward" "g")
-; (gtk_accel_path "<Actions>/options/LatchedSolo" "")
-; (gtk_accel_path "<Actions>/options/MeterHoldOff" "")
-; (gtk_accel_path "<Actions>/options/OutputAutoConnectMaster" "")
-; (gtk_accel_path "<Actions>/JACK/JACKLatency64" "")
-(gtk_accel_path "<Actions>/Editor/undo" "<%PRIMARY%>z")
-(gtk_accel_path "<Actions>/Editor/insert-region" "i")
-; (gtk_accel_path "<Actions>/Editor/center-playhead" "")
-; (gtk_accel_path "<Actions>/Snap/snap-to-region-start" "")
-; (gtk_accel_path "<Actions>/Editor/View" "")
-; (gtk_accel_path "<Actions>/Editor/Layering" "")
-; (gtk_accel_path "<Actions>/JACK/JACKLatency4096" "")
-(gtk_accel_path "<Actions>/Editor/scroll-tracks-up" "Page_Up")
-(gtk_accel_path "<Actions>/Editor/set-edit-point" "g")
-; (gtk_accel_path "<Actions>/Editor/Smpte30drop" "")
-; (gtk_accel_path "<Actions>/Zoom/zoom-focus-edit" "")
-(gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-boundary" "leftarrow")
-(gtk_accel_path "<Actions>/Editor/selected-marker-to-previous-region-boundary" "<%PRIMARY%><%TERTIARY%>leftarrow")
-; (gtk_accel_path "<Actions>/Editor/EditCursorMovementOptions" "")
-; (gtk_accel_path "<Actions>/processormenu/activate_all" "")
-; (gtk_accel_path "<Actions>/processormenu/paste" "")
-; (gtk_accel_path "<Actions>/Editor/Smpte25" "")
-; (gtk_accel_path "<Actions>/options/RegionEquivalentsOverlap" "")
-; (gtk_accel_path "<Actions>/Main/MeteringFallOffRate" "")
-; (gtk_accel_path "<Actions>/options/UseHardwareMonitoring" "")
-; (gtk_accel_path "<Actions>/Editor/Smpte24" "")
-; (gtk_accel_path "<Actions>/Snap/snap-to-mark" "")
-; (gtk_accel_path "<Actions>/Editor/CrossfadesShort" "")
-; (gtk_accel_path "<Actions>/Editor/Smpte5994" "")
-; (gtk_accel_path "<Actions>/JACK/JACKLatency8192" "")
-; (gtk_accel_path "<Actions>/Editor/toggle-xfades-visible" "")
-(gtk_accel_path "<Actions>/Editor/extend-range-to-end-of-region" "rightanglebracket")
-(gtk_accel_path "<Actions>/Editor/start-range" "F1")
-; (gtk_accel_path "<Actions>/ShuttleActions/SetShuttleUnitsSemitones" "")
-; (gtk_accel_path "<Actions>/JACK/JACKLatency128" "")
-; (gtk_accel_path "<Actions>/Snap/snap-to-beat" "")
-; (gtk_accel_path "<Actions>/Editor/RegionEditOps" "")
-; (gtk_accel_path "<Actions>/Editor/snap-magnetic" "")
-; (gtk_accel_path "<Actions>/Editor/playhead-to-range-end" "")
-(gtk_accel_path "<Actions>/Editor/scroll-playhead-forward" "<%TERTIARY%>rightarrow")
-(gtk_accel_path "<Actions>/Editor/align-regions-sync-relative" "<%SECONDARY%>less")
-(gtk_accel_path "<Actions>/Editor/align-regions-sync" "less")
-; (gtk_accel_path "<Actions>/Editor/EditSelectRegionOptions" "")
-(gtk_accel_path "<Actions>/Editor/crop" "c")
-; (gtk_accel_path "<Actions>/processormenu/newsend" "")
-; (gtk_accel_path "<Actions>/Editor/ToggleGeneric MIDISurfaceSubMenu" "")
-; (gtk_accel_path "<Actions>/Editor/MeterFalloff" "")
-; (gtk_accel_path "<Actions>/RegionList/rlRemove" "")
-(gtk_accel_path "<Actions>/Transport/GotoStart" "Home")
-(gtk_accel_path "<Actions>/Editor/select-all-before-edit-cursor" "<%TERTIARY%>Home")
-(gtk_accel_path "<Actions>/Editor/scroll-playhead-backward" "<%TERTIARY%>leftarrow")
-(gtk_accel_path "<Actions>/Editor/split-region" "z")
-; (gtk_accel_path "<Actions>/Transport/ToggleAutoInput" "")
-; (gtk_accel_path "<Actions>/Snap/snap-to-thirtyseconds" "")
-; (gtk_accel_path "<Actions>/Snap/snap-to-minutes" "")
-; (gtk_accel_path "<Actions>/Main/Windows" "")
-; (gtk_accel_path "<Actions>/Main/CleanupUnused" "")
-; (gtk_accel_path "<Actions>/processormenu/deselectall" "")
-; (gtk_accel_path "<Actions>/options/SoloViaBus" "")
-; (gtk_accel_path "<Actions>/RegionList/rlAudition" "")
-(gtk_accel_path "<Actions>/Editor/set-region-sync-position" "u")
-; (gtk_accel_path "<Actions>/Editor/PullupPlus4Plus1" "")
-; (gtk_accel_path "<Actions>/Snap/snap-to-region-boundary" "")
-; (gtk_accel_path "<Actions>/JACK/JACK" "")
-(gtk_accel_path "<Actions>/Editor/editor-cut" "<%PRIMARY%>x")
-(gtk_accel_path "<Actions>/Editor/editor-separate" "F4")
-; (gtk_accel_path "<Actions>/RegionList/SortAscending" "")
-; (gtk_accel_path "<Actions>/Main/Help" "")
-; (gtk_accel_path "<Actions>/options/UseExternalMonitoring" "")
-; (gtk_accel_path "<Actions>/Editor/Smpte23976" "")
-(gtk_accel_path "<Actions>/Common/goto-editor" "<%WINDOW%>e")
-(gtk_accel_path "<Actions>/Editor/select-all" "F14")
-(gtk_accel_path "<Actions>/Editor/invert-selection" "F15")
-(gtk_accel_path "<Actions>/Editor/nudge-next-forward" "<%PRIMARY%>KP_Add")
-; (gtk_accel_path "<Actions>/options/ShowSoloMutes" "")
-; (gtk_accel_path "<Actions>/Snap/snap-to-eighths" "")
-(gtk_accel_path "<Actions>/Editor/select-all-after-playhead" "<%TERTIARY%><%PRIMARY%>p")
-(gtk_accel_path "<Actions>/Common/ToggleMaximalEditor" "F11")
-; (gtk_accel_path "<Actions>/RegionList/SortBySourceFileLength" "")
-; (gtk_accel_path "<Actions>/Editor/Timecode" "")
-; (gtk_accel_path "<Actions>/Transport/PlaySelection" "")
-; (gtk_accel_path "<Actions>/Editor/PullupMinus4Minus1" "")
-(gtk_accel_path "<Actions>/Editor/select-all-after-edit-cursor" "<%TERTIARY%><%PRIMARY%>e")
-; (gtk_accel_path "<Actions>/RegionList/SortBySourceFileName" "")
-(gtk_accel_path "<Actions>/Editor/finish-range" "F2")
-(gtk_accel_path "<Actions>/Editor/select-range-between-cursors" "F16")
-(gtk_accel_path "<Actions>/Transport/Loop" "l")
-; (gtk_accel_path "<Actions>/Editor/CrossfadesFull" "")
-(gtk_accel_path "<Actions>/Editor/finish-add-range" "<%TERTIARY%><%PRIMARY%>KP_Up")
-; (gtk_accel_path "<Actions>/options/SendMTC" "")
-; (gtk_accel_path "<Actions>/Transport/TogglePunchOut" "")
-(gtk_accel_path "<Actions>/Editor/select-all-in-loop-range" "<%PRIMARY%>l")
-(gtk_accel_path "<Actions>/Editor/show-editor-mixer" "<%TERTIARY%>e")
-; (gtk_accel_path "<Actions>/options/SoloInPlace" "")
-; (gtk_accel_path "<Actions>/Main/Options" "")
-; (gtk_accel_path "<Actions>/options/MeterFalloffMedium" "")
-(gtk_accel_path "<Actions>/Editor/toggle-follow-playhead" "f")
-; (gtk_accel_path "<Actions>/Main/SaveTemplate" "")
-(gtk_accel_path "<Actions>/Transport/TransitionToRoll" "<%PRIMARY%>uparrow")
-; (gtk_accel_path "<Actions>/RegionList/SortByRegionStartinFile" "")
-; (gtk_accel_path "<Actions>/options/GainReduceFastTransport" "")
-; (gtk_accel_path "<Actions>/Common/ToggleInspector" "")
-; (gtk_accel_path "<Actions>/Transport/ToggleAutoPlay" "")
-; (gtk_accel_path "<Actions>/Editor/playhead-to-next-region-sync" "")
-(gtk_accel_path "<Actions>/Editor/edit-to-playhead" "<%SECONDARY%>Return")
-; (gtk_accel_path "<Actions>/Editor/LayerMoveAddHigher" "")
-; (gtk_accel_path "<Actions>/Editor/Smpte60" "")
-; (gtk_accel_path "<Actions>/Main/Open" "")
-; (gtk_accel_path "<Actions>/Zoom/zoom-focus-left" "")
-; (gtk_accel_path "<Actions>/Main/TransportOptions" "")
-; (gtk_accel_path "<Actions>/Main/ControlSurfaces" "")
-; (gtk_accel_path "<Actions>/options/FileHeaderFormatBWF" "")
-; (gtk_accel_path "<Actions>/Transport/ToggleAutoReturn" "")
-; (gtk_accel_path "<Actions>/Editor/Smpte2997" "")
-; (gtk_accel_path "<Actions>/Editor/ToggleWaveformVisibility" "")
-(gtk_accel_path "<Actions>/Editor/redo" "<%PRIMARY%>r")
-; (gtk_accel_path "<Actions>/Main/ExportSession" "")
-; (gtk_accel_path "<Actions>/options/InputAutoConnectPhysical" "")
-; (gtk_accel_path "<Actions>/Snap/snap-to-edit-cursor" "")
-(gtk_accel_path "<Actions>/Editor/temporal-zoom-in" "t")
-; (gtk_accel_path "<Actions>/JACK/Latency" "")
-(gtk_accel_path "<Actions>/Editor/edit-cursor-to-range-end" "<%TERTIARY%>F2")
-; (gtk_accel_path "<Actions>/processormenu/rename" "")
-; (gtk_accel_path "<Actions>/RegionList/rlShowAuto" "")
-(gtk_accel_path "<Actions>/Editor/select-all-before-playhead" "<%PRIMARY%>p")
-; (gtk_accel_path "<Actions>/Main/Session" "")
-(gtk_accel_path "<Actions>/Editor/edit-cursor-to-range-start" "<%TERTIARY%>F1")
-; (gtk_accel_path "<Actions>/Main/AudioFileFormat" "")
-; (gtk_accel_path "<Actions>/Transport/Transport" "")
-(gtk_accel_path "<Actions>/MouseMode/set-mouse-mode-timefx" "t")
-; (gtk_accel_path "<Actions>/RegionList/SortByRegionName" "")
-; (gtk_accel_path "<Actions>/Main/KeyMouse Actions" "")
-(gtk_accel_path "<Actions>/MouseMode/set-mouse-mode-gain" "g")
-; (gtk_accel_path "<Actions>/Snap/snap-to-frame" "")
-; (gtk_accel_path "<Actions>/Editor/SnapTo" "")
-(gtk_accel_path "<Actions>/Transport/TransitionToReverse" "<%PRIMARY%>downarrow")
-; (gtk_accel_path "<Actions>/Editor/Crossfades" "")
-; (gtk_accel_path "<Actions>/Editor/PullupPlus4" "")
-; (gtk_accel_path "<Actions>/Main/MeteringHoldTime" "")
-; (gtk_accel_path "<Actions>/Editor/PullupPlus1" "")
-; (gtk_accel_path "<Actions>/Editor/Smpte24976" "")
-; (gtk_accel_path "<Actions>/options/FileDataFormat24bit" "")
-; (gtk_accel_path "<Actions>/Editor/SnapMode" "")
-(gtk_accel_path "<Actions>/Common/ToggleOptionsEditor" "<%WINDOW%>o")
-; (gtk_accel_path "<Actions>/Editor/PullupMinus4" "")
-(gtk_accel_path "<Actions>/Common/goto-mixer" "<%WINDOW%>m")
-; (gtk_accel_path "<Actions>/RegionList/SortBySourceFileCreationDate" "")
-; (gtk_accel_path "<Actions>/processormenu/activate" "")
-(gtk_accel_path "<Actions>/Editor/extend-range-to-start-of-region" "leftanglebracket")
-; (gtk_accel_path "<Actions>/Editor/PullupMinus1" "")
-; (gtk_accel_path "<Actions>/Editor/snap-normal" "")
-(gtk_accel_path "<Actions>/Common/ToggleBigClock" "<%WINDOW%>b")
-(gtk_accel_path "<Actions>/Common/ToggleKeyEditor" "<%WINDOW%>k")
-; (gtk_accel_path "<Actions>/Snap/snap-to-asixteenthbeat" "")
-(gtk_accel_path "<Actions>/Editor/select-all-in-punch-range" "<%PRIMARY%>d")
-; (gtk_accel_path "<Actions>/processormenu/edit" "")
-(gtk_accel_path "<Actions>/Editor/duplicate-region" "d")
-(gtk_accel_path "<Actions>/Editor/multi-duplicate-region" "<%SECONDARY%>d")
-; (gtk_accel_path "<Actions>/JACK/JACKLatency2048" "")
-; (gtk_accel_path "<Actions>/Editor/ToggleWaveformsWhileRecording" "")
-; (gtk_accel_path "<Actions>/Zoom/zoom-focus-right" "")
-(gtk_accel_path "<Actions>/Editor/remove-last-capture" "<%PRIMARY%>Delete")
-; (gtk_accel_path "<Actions>/options/FileHeaderFormatWAVE" "")
-(gtk_accel_path "<Actions>/Transport/GotoZero" "KP_0")
-(gtk_accel_path "<Actions>/Editor/select-all-after-edit-cursor" "<%TERTIARY%>End")
-; (gtk_accel_path "<Actions>/processormenu/cut" "")
-; (gtk_accel_path "<Actions>/processormenu/newinsert" "")
-; (gtk_accel_path "<Actions>/options/UseMMC" "")
-; (gtk_accel_path "<Actions>/options/MeterFalloffOff" "")
-;(gtk_accel_path "<Actions>/MouseMode/set-mouse-mode-object" "o")
-; (gtk_accel_path "<Actions>/Editor/PullupMinus4Plus1" "")
-; (gtk_accel_path "<Actions>/Editor/MeterHold" "")
-; (gtk_accel_path "<Actions>/Snap/snap-to-cd-frame" "")
-; (gtk_accel_path "<Actions>/options/StopTransportAtEndOfSession" "")
-; (gtk_accel_path "<Actions>/Main/Cleanup" "")
-; (gtk_accel_path "<Actions>/Main/Snapshot" "")
-; (gtk_accel_path "<Actions>/Transport/ToggleVideoSync" "")
-(gtk_accel_path "<Actions>/Transport/ToggleRoll" "space")
-; (gtk_accel_path "<Actions>/RegionList/SortBySourceFilesystem" "")
-(gtk_accel_path "<Actions>/Common/ToggleColorManager" "<%WINDOW%>c")
-; (gtk_accel_path "<Actions>/Common/About" "")
-; (gtk_accel_path "<Actions>/JACK/JACKLatency32" "")
-(gtk_accel_path "<Actions>/Editor/playhead-to-edit" "Return")
-; (gtk_accel_path "<Actions>/options/FileHeaderFormatWAVE64" "")
-(gtk_accel_path "<Actions>/Editor/brush-at-mouse" "F3")
-; (gtk_accel_path "<Actions>/RegionList/rlShowAll" "")
-(gtk_accel_path "<Actions>/Transport/Rewind" "<%PRIMARY%>leftarrow")
-; (gtk_accel_path "<Actions>/RegionList/SortByRegionTimestamp" "")
-; (gtk_accel_path "<Actions>/options/VerifyRemoveLastCapture" "")
-; (gtk_accel_path "<Actions>/options/OutputAutoConnectPhysical" "")
-; (gtk_accel_path "<Actions>/options/SendMMC" "")
-; (gtk_accel_path "<Actions>/Editor/toggle-auto-xfades" "")
-; (gtk_accel_path "<Actions>/Main/AudioFileFormatHeader" "")
-; (gtk_accel_path "<Actions>/options/MeterHoldShort" "")
-; (gtk_accel_path "<Actions>/options/MeterHoldMedium" "")
-(gtk_accel_path "<Actions>/Editor/select-all-before-edit-cursor" "<%PRIMARY%>e")
-; (gtk_accel_path "<Actions>/Editor/Subframes80" "")
-; (gtk_accel_path "<Actions>/options/FileHeaderFormatCAF" "")
-(gtk_accel_path "<Actions>/Common/ToggleLocations" "<%WINDOW%>l")
-; (gtk_accel_path "<Actions>/Editor/ToggleGeneric MIDISurface" "")
-(gtk_accel_path "<Actions>/Editor/editor-delete" "BackSpace")
-; (gtk_accel_path "<Actions>/JACK/JACKLatency256" "")
-(gtk_accel_path "<Actions>/Editor/select-all-between-cursors" "F16")
-; (gtk_accel_path "<Actions>/Editor/LayerAddHigher" "")
-; (gtk_accel_path "<Actions>/Editor/Solo" "")
-; (gtk_accel_path "<Actions>/JACK/JACKLatency1024" "")
-; (gtk_accel_path "<Actions>/Main/ExportRangeMarkers" "")
-(gtk_accel_path "<Actions>/Editor/set-playhead" "p")
-; (gtk_accel_path "<Actions>/Editor/toggle-xfades-active" "")
-; (gtk_accel_path "<Actions>/Snap/snap-to-bar" "")
-; (gtk_accel_path "<Actions>/Editor/LayerLaterHigher" "")
-; (gtk_accel_path "<Actions>/processormenu/selectall" "")
-(gtk_accel_path "<Actions>/Editor/editor-copy" "<%PRIMARY%>c")
-; (gtk_accel_path "<Actions>/Snap/snap-to-quarters" "")
-(gtk_accel_path "<Actions>/Editor/temporal-zoom-out" "r")
-; (gtk_accel_path "<Actions>/options/UseSoftwareMonitoring" "")
-; (gtk_accel_path "<Actions>/Editor/Subframes100" "")
-(gtk_accel_path "<Actions>/Editor/mute-unmute-region" "<%SECONDARY%>m")
-(gtk_accel_path "<Actions>/Editor/add-location-from-playhead" "m")
-; (gtk_accel_path "<Actions>/options/OutputAutoConnectManual" "")
-; (gtk_accel_path "<Actions>/Snap/snap-to-region-sync" "")
-(gtk_accel_path "<Actions>/Editor/edit-cursor-to-previous-region-sync" "apostrophe")
-; (gtk_accel_path "<Actions>/processormenu/clear" "")
-; (gtk_accel_path "<Actions>/Editor/ToggleGeneric MIDISurfaceFeedback" "")
-; (gtk_accel_path "<Actions>/Editor/PullupPlus4Minus1" "")
-; (gtk_accel_path "<Actions>/JACK/JACKLatency512" "")
-; (gtk_accel_path "<Actions>/Main/Recent" "")
-; (gtk_accel_path "<Actions>/processormenu/newplugin" "")
-; (gtk_accel_path "<Actions>/options/InputAutoConnectManual" "")
-; (gtk_accel_path "<Actions>/options/MeterHoldLong" "")
-; (gtk_accel_path "<Actions>/Snap/snap-to-seconds" "")
-(gtk_accel_path "<Actions>/Editor/set-fade-in-length" "q")
-(gtk_accel_path "<Actions>/Editor/toggle-fade-in-active" "<%SECONDARY%>q")
-(gtk_accel_path "<Actions>/Editor/set-fade-out-length" "e")
-(gtk_accel_path "<Actions>/Editor/toggle-fade-out-active" "<%SECONDARY%>e")
-(gtk_accel_path "<Actions>/Editor/trim-from-start" "<%TERTIARY%>braceleft")
-(gtk_accel_path "<Actions>/Editor/trim-to-end" "<%TERTIARY%>braceright")
-(gtk_accel_path "<Actions>/Editor/trim-front" "a")
-(gtk_accel_path "<Actions>/Editor/trim-back" "s")
-(gtk_accel_path "<Actions>/Editor/goto-mark-1" "KP_1")
-(gtk_accel_path "<Actions>/Editor/goto-mark-2" "KP_2")
-(gtk_accel_path "<Actions>/Editor/goto-mark-3" "KP_3")
-(gtk_accel_path "<Actions>/Editor/goto-mark-4" "KP_4")
-(gtk_accel_path "<Actions>/Editor/goto-mark-5" "KP_5")
-(gtk_accel_path "<Actions>/Editor/goto-mark-6" "KP_6")
-(gtk_accel_path "<Actions>/Editor/goto-mark-7" "KP_7")
-(gtk_accel_path "<Actions>/Editor/goto-mark-8" "KP_8")
-(gtk_accel_path "<Actions>/Editor/goto-mark-9" "KP_9")
-(gtk_accel_path "<Actions>/Transport/ToggleClick" "5")
-(gtk_accel_path "<Actions>/Transport/ToggleAutoReturn" "4")
-(gtk_accel_path "<Actions>/Transport/focus-on-clock" "KP_Divide")
-(gtk_accel_path "<Actions>/Editor/set-loop-from-edit-range" "bracketright")
-(gtk_accel_path "<Actions>/Editor/set-punch-from-edit-range" "bracketleft")
-(gtk_accel_path "<Actions>/Editor/set-loop-from-region" "<%PRIMARY%><%SECONDARY%>bracketright")
-(gtk_accel_path "<Actions>/Editor/loop-region" "<%PRIMARY%>bracketright")
-(gtk_accel_path "<Actions>/Editor/toggle-zoom" "o")
-(gtk_accel_path "<Actions>/Editor/zoom-to-region" "y")
-(gtk_accel_path "<Actions>/Editor/pitch-shift-region" "F5")
-(gtk_accel_path "<Actions>/Editor/play-from-edit-point-and-return" "<%LEVEL4%>space")
-
diff --git a/gtk2_ardour/SConscript b/gtk2_ardour/SConscript
index f8089d099e..ea649dea6a 100644
--- a/gtk2_ardour/SConscript
+++ b/gtk2_ardour/SConscript
@@ -204,6 +204,7 @@ midi_streamview.cc
midi_time_axis.cc
mixer_strip.cc
mixer_ui.cc
+nag.cc
new_session_dialog.cc
option_editor.cc
opts.cc
@@ -402,8 +403,28 @@ for style in ['', 'BOLD', 'ITALIC']:
key = '%' + key + '%'
my_font_dict[key] = fontstyle
-ardour_dark_theme = env.SubstInFile ('ardour3_ui_dark.rc', 'ardour3_ui_dark.rc.in', SUBST_DICT = my_font_dict)
-ardour_light_theme = env.SubstInFile ('ardour3_ui_light.rc', 'ardour3_ui_light.rc.in', SUBST_DICT = my_font_dict)
+#
+# create menus based on build platform
+#
+
+if env['GTKOSX']:
+ ardour_menus = env.Command ('ardour.menus', 'ardour.menus.in', "cpp -E -P -DGTKOSX -DTOP_MENUBAR ardour.menus.in ardour.menus", chdir=1)
+else:
+ ardour_menus = env.Command ('ardour.menus', 'ardour.menus.in', "cpp -E -P ardour.menus.in ardour.menus", chdir=1)
+
+ardour_dark_theme = env.SubstInFile ('ardour3_ui_dark.rc',
+ 'ardour3_ui_dark.rc.in',
+ SUBST_DICT = my_font_dict)
+ardour_light_theme = env.SubstInFile ('ardour3_ui_light.rc',
+ 'ardour3_ui_light.rc.in',
+ SUBST_DICT = my_font_dict)
+
+ardour_dark_sae_theme = env.SubstInFile ('ardour3_ui_dark_sae.rc',
+ 'ardour3_ui_dark_sae.rc.in',
+ SUBST_DICT = my_font_dict)
+ardour_light_sae_theme = env.SubstInFile ('ardour3_ui_light_sae.rc',
+ 'ardour3_ui_light_sae.rc.in',
+ SUBST_DICT = my_font_dict)
my_subst_dict = { }
@@ -436,7 +457,7 @@ else:
keybindings_dict['%LEVEL4%'] = env['WINDOWS_KEY']
keybindings_dict['%WINDOW%'] = 'Alt'
-for b in [ 'SAE-de', 'SAE-us', 'mnemonic-us', 'ergonomic-us' ]:
+for b in [ 'SAE-de-keypad', 'SAE-de-nokeypad', 'SAE-us-keypad', 'SAE-us-nokeypad', 'mnemonic-us', 'ergonomic-us' ]:
target_file = b + '.bindings'
src_file = target_file + '.in'
Default (env.SubstInFile (target_file, src_file, SUBST_DICT = keybindings_dict))
@@ -455,6 +476,9 @@ Default(ardourdev)
Default(ardoursh)
Default(ardour_dark_theme)
Default(ardour_light_theme)
+Default(ardour_dark_sae_theme)
+Default(ardour_light_sae_theme)
+Default(ardour_menus)
if env['VST']:
Default(ardourlib)
@@ -480,12 +504,17 @@ if env['NLS']:
# configuration files
env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour3'), ardour_dark_theme))
env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour3'), ardour_light_theme))
+env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour3'), ardour_dark_sae_theme))
+env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour3'), ardour_light_sae_theme))
env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour3'), 'ardour3_ui_default.conf'))
env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour3'), 'ardour.menus'))
env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour3'), 'ardour-sae.menus'))
env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour3'), 'ergonomic-us.bindings'))
env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour3'), 'mnemonic-us.bindings'))
-env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour3'), 'SAE-de.bindings'))
+env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour3'), 'SAE-de-keypad.bindings'))
+env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour3'), 'SAE-us-keypad.bindings'))
+env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour3'), 'SAE-de-nokeypad.bindings'))
+env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour3'), 'SAE-us-nokeypad.bindings'))
# data files
env.Alias('install', env.Install(os.path.join(install_prefix, 'share', 'ardour3'), 'splash.png'))
env.Alias('install', env.Install(os.path.join(install_prefix, 'share', 'ardour3', 'pixmaps'), pixmap_files))
@@ -539,12 +568,19 @@ env.Alias ('tarball', env.Distribute (env['DISTTREE'],
'ardour.sh.in',
'ardev_common.sh.in',
'ardev', 'ardbg',
- 'ardour3_ui_dark.rc.in', 'ardour3_ui_light.rc.in', 'splash.png',
- 'ardour.menus', 'ardour-sae.menus',
+ 'ardour3_ui_dark.rc.in',
+ 'ardour3_ui_light.rc.in',
+ 'ardour3_ui_dark_sae.rc.in',
+ 'ardour3_ui_light_sae.rc.in',
+ 'splash.png',
+ 'ardour.menus.in',
+ 'ardour-sae.menus',
'mnemonic-us.bindings.in',
'ergonomic-us.bindings.in',
- 'SAE-us.bindings.in',
- 'SAE-de.bindings.in',
+ 'SAE-us-keypad.bindings.in',
+ 'SAE-us-nokeypad.bindings.in',
+ 'SAE-de-keypad.bindings.in',
+ 'SAE-de-nokeypad.bindings.in',
'ardour3_ui_default.conf',
'editor_xpms',
'ardour2.xml',
@@ -556,6 +592,7 @@ env.Alias ('tarball', env.Distribute (env['DISTTREE'],
icon_files +
skipped_files +
audiounit_files +
+ lv2_files +
gtkosx_files +
x11_files +
freesound_files +
diff --git a/gtk2_ardour/about.cc b/gtk2_ardour/about.cc
index 7d41847e14..4f08036bd7 100644
--- a/gtk2_ardour/about.cc
+++ b/gtk2_ardour/about.cc
@@ -120,52 +120,56 @@ static const gchar * paypal_xpm[] = {
#endif
static const char* authors[] = {
- N_("Paul Davis"),
- N_("Jesse Chappell"),
- N_("Taybin Rutkin"),
+ N_("Brian Ahr"),
+ N_("John Anderson"),
N_("Marcus Andersson"),
+ N_("Nedko Arnaudov"),
+ N_("Hans Baier"),
+ N_("Ben Bell"),
+ N_("Sakari Bergen"),
+ N_("Chris Cannam"),
+ N_("Jesse Chappell"),
+ N_("Thomas Charbonnel"),
+ N_("Sam Chessman"),
+ N_("Paul Davis"),
+ N_("Gerard van Dongen"),
+ N_("Colin Fletcher"),
+ N_("Hans Fugal"),
+ N_("Christopher George"),
N_("Jeremy Hall"),
+ N_("Audun Halland"),
N_("Steve Harris"),
- N_("Tim Mayberry"),
- N_("Mark Stewart"),
- N_("Sam Chessman"),
- N_("Jack O'Quin"),
+ N_("Carl Hetherington"),
+ N_("Rob Holland"),
+ N_("Robert Jordens"),
+ N_("Stefan Kersten"),
+ N_("Armand Klenk"),
N_("Matt Krai"),
- N_("Ben Bell"),
- N_("Gerard van Dongen"),
- N_("Thomas Charbonnel"),
- N_("Nick Mainsbridge"),
N_("Colin Law"),
- N_("Sampo Savolainen"),
N_("Joshua Leach"),
- N_("Rob Holland"),
- N_("Per Sigmond"),
- N_("Doug Mclain"),
- N_("Petter Sundlöf"),
- N_("Thorsten Wilms"),
N_("Ben Loftis"),
- N_("Stefan Kersten"),
- N_("Christopher George"),
- N_("Robert Jordens"),
- N_("Dave Robillard"),
- N_("Hans Baier"),
- N_("Hans Fugal"),
- N_("Brian Ahr"),
+ N_("Nick Mainsbridge"),
+ N_("Tim Mayberry"),
+ N_("Doug Mclain"),
+ N_("Jack O'Quin"),
N_("Nimal Ratnayake"),
- N_("Mike Täht"),
- N_("John Anderson"),
- N_("Nedko Arnaudov"),
- N_("Carl Hetherington"),
- N_("Colin Fletcher"),
+ N_("Dave Robillard"),
+ N_("Taybin Rutkin"),
+ N_("Sampo Savolainen"),
+ N_("Per Sigmond"),
+ N_("Lincoln Spiteri"),
+ N_("Mark Stewart"),
N_("Roland Stigge"),
- N_("Audun Halland"),
- N_("Armand Klenk"),
- 0
+ N_("Petter Sundlöf"),
+ N_("Mike Täht"),
+ N_("Thorsten Wilms"),
};
static const char* translators[] = {
N_("French:\n\tAlain Fréhel <alain.frehel@free.fr>\n\tChristophe Combelles <ccomb@free.fr>\n"),
- N_("German:\n\tKarsten Petersen <kapet@kapet.de>\n\tSebastian Arnold <mail@sebastian-arnold.net>\n"),
+ N_("German:\n\tKarsten Petersen <kapet@kapet.de>\
+\n\tSebastian Arnold <mail@sebastian-arnold.net>\
+\n\tRobert Schwede<schwede@ironshark.com>\n"),
N_("Italian:\n\tFilippo Pappalardo <filippo@email.it>\n"),
N_("Portuguese:\n\tRui Nuno Capela <rncbc@rncbc.org>\n"),
N_("Brazilian Portuguese:\n\tAlexander da Franca Fernandes <alexander@nautae.eti.br>\
diff --git a/gtk2_ardour/ardev_common.sh.in b/gtk2_ardour/ardev_common.sh.in
index 3e223fe8cc..28eaad39c7 100644
--- a/gtk2_ardour/ardev_common.sh.in
+++ b/gtk2_ardour/ardev_common.sh.in
@@ -4,14 +4,18 @@ cd `dirname "$0"`/..
export ARDOUR_PATH=gtk2_ardour/icons:gtk2_ardour/pixmaps:gtk2_ardour:.
export ARDOUR_DATA_PATH=gtk2_ardour:.
-export GTK_PATH=libs/clearlooks
+if test -d $HOME/gtk/inst ; then
+ echo USING NEW CLEARLOOKS
+ export GTK_PATH=~/.ardour2:libs/clearlooks-newer
+else
+ echo USING OLD CLEARLOOKS
+ export GTK_PATH=~/.ardour2:libs/clearlooks-older
+fi
export VAMP_PATH=libs/vamp-plugins:$VAMP_PATH
export LD_LIBRARY_PATH=libs/vamp-sdk:libs/surfaces/control_protocol:libs/ardour:libs/midi++2:libs/pbd:libs/rubberband:libs/soundtouch:libs/gtkmm2ext:libs/sigc++2:libs/glibmm2:libs/gtkmm2/atk:libs/gtkmm2/pango:libs/gtkmm2/gdk:libs/gtkmm2/gtk:libs/libgnomecanvasmm:libs/libsndfile:libs/appleutility:libs/cairomm:libs/taglib:libs/evoral:$LD_LIBRARY_PATH
# DYLD_LIBRARY_PATH is for darwin.
export DYLD_FALLBACK_LIBRARY_PATH=$LD_LIBRARY_PATH
-# For the internal clearlooks engine
-export GTK_PATH=$PWD/libs/clearlooks:~/.ardour3
EXECUTABLE=gtk2_ardour/ardour-%VERSION%
diff --git a/gtk2_ardour/ardour-sae.menus b/gtk2_ardour/ardour-sae.menus
index 021d8c3b0e..2a73c4c16a 100644
--- a/gtk2_ardour/ardour-sae.menus
+++ b/gtk2_ardour/ardour-sae.menus
@@ -161,6 +161,9 @@
<menuitem action='toggle-fade-in-active'/>
<menuitem action='set-fade-out-length'/>
<menuitem action='toggle-fade-out-active'/>
+ <separator/>
+ <menuitem action='toggle-selected-region-fades'/>
+ <menuitem action='toggle-region-fades'/>
</menu>
<menu action="SelectMenu">
<menuitem action='select-all'/>
@@ -172,10 +175,14 @@
<menuitem action='select-all-within-cursors'/>
<menuitem action='select-all-in-punch-range'/>
<menuitem action='select-all-in-loop-range'/>
+ <separator/>
+ <menuitem action='select-next-route'/>
+ <menuitem action='select-prev-route'/>
</menu>
</menu>
<menu action='TrackMenu'>
+ <menuitem action='remove-track'/>
<menuitem action='AddTrackBus'/>
<menuitem action="move-selected-tracks-up"/>
<menuitem action="move-selected-tracks-down"/>
@@ -193,7 +200,6 @@
<menuitem action='logarithmic-waveforms'/>
</menu>
<menuitem action='toggle-track-active'/>
- <menuitem action='remove-track'/>
</menu>
<menu action='RegionMenu'>
@@ -266,8 +272,8 @@
</menu>
<menu action="WindowMenu">
- <menuitem action='goto-editor'/>
- <menuitem action='goto-mixer'/>
+
+ <menuitem action='toggle-editor-mixer-on-top'/>
<menuitem action='ToggleLocations'/>
<menuitem action='ToggleKeyEditor'/>
<menuitem action='ToggleThemeManager'/>
@@ -306,17 +312,16 @@
<menuitem action='edit-at-selected-marker'/>
</menu>
<menu action='KeyMouseActions'>
- <menuitem action='select-next-route'/>
- <menuitem action='select-prev-route'/>
<menuitem action='focus-on-clock'/>
<menuitem action='GotoZero'/>
<menuitem action='GotoStart'/>
<menuitem action='GotoEnd'/>
+ <separator/>
+ <menuitem action='step-mouse-mode'/>
<menuitem action='set-mouse-mode-object'/>
- <menuitem action='set-mouse-mode-range'/>
- <menuitem action='set-mouse-mode-gain'/>
<menuitem action='set-mouse-mode-zoom'/>
<menuitem action='set-mouse-mode-timefx'/>
+ <separator/>
<menuitem action='cycle-edit-point'/>
<menuitem action='cycle-edit-point-with-marker'/>
<menuitem action='toggle-edit-mode'/>
@@ -331,7 +336,6 @@
</menubar>
-<<<<<<< .working
<popup action="RulerMenuPopup">
<menuitem action="toggle-minsec-ruler"/>
<menuitem action="toggle-samples-ruler"/>
@@ -345,21 +349,8 @@
</popup>
<popup name='processormenu'>
-=======
- <popup action="RulerMenuPopup">
- <menuitem action="toggle-minsec-ruler"/>
- <menuitem action="toggle-samples-ruler"/>
- <menuitem action="toggle-bbt-ruler"/>
+ <menuitem action='delete'/>
<separator/>
- <menuitem action="toggle-meter-ruler"/>
- <menuitem action="toggle-tempo-ruler"/>
- <menuitem action="toggle-loop-punch-ruler"/>
- <menuitem action="toggle-cd-marker-ruler"/>
- <menuitem action="toggle-marker-ruler"/>
- </popup>
-
- <popup name='redirectmenu'>
->>>>>>> .merge-right.r3622
<menuitem action='newplugin'/>
<menuitem action='newinsert'/>
<menuitem action='newsend'/>
@@ -369,7 +360,6 @@
<menuitem action='cut'/>
<menuitem action='copy'/>
<menuitem action='paste'/>
- <menuitem action='delete'/>
<separator/>
<menuitem action='rename'/>
<separator/>
diff --git a/gtk2_ardour/ardour.menus b/gtk2_ardour/ardour.menus.in
index e1209296d6..3f00dbcb2f 100644
--- a/gtk2_ardour/ardour.menus
+++ b/gtk2_ardour/ardour.menus.in
@@ -10,18 +10,15 @@
<menuitem action='Save'/>
<menuitem action='Snapshot'/>
<menuitem action='SaveTemplate'/>
- <menu name='Metadata' action='Metadata'>
- <menuitem action='EditMetadata'/>
- <menuitem action='ImportMetadata'/>
- </menu>
<separator/>
<menuitem action='AddTrackBus'/>
<separator/>
<menuitem action='addExistingAudioFiles'/>
- <menuitem action='importFromSession'/>
<separator/>
<menu name='Export' action='Export'>
- <menuitem action='ExportAudio'/>
+ <menuitem action='ExportSession'/>
+ <menuitem action='ExportSelection'/>
+ <menuitem action='ExportRangeMarkers'/>
</menu>
<separator/>
<menu name='Cleanup' action='Cleanup'>
@@ -29,6 +26,10 @@
<menuitem action='FlushWastebasket'/>
</menu>
<separator/>
+#ifdef GTKOSX
+ <menuitem action='ToggleOptionsEditor'/>
+ <menuitem action='About'/>
+#endif
<menuitem action='Quit'/>
</menu>
@@ -59,6 +60,7 @@
<menuitem action='TransitionToReverse'/>
<separator/>
+
<menu action="MovePlayHeadMenu">
<menuitem action='set-playhead'/>
<menuitem action='playhead-to-edit'/>
@@ -85,7 +87,6 @@
<menuitem action='GotoStart'/>
<menuitem action='GotoEnd'/>
<menuitem action='GotoWallClock'/>
-
</menu>
<menu action="MoveActiveMarkMenu">
@@ -194,6 +195,7 @@
<menuitem action='select-prev-route'/>
<menuitem action='brush-at-mouse'/>
<separator/>
+ <menuitem action='step-mouse-mode'/>
<menuitem action='set-mouse-mode-object'/>
<menuitem action='set-mouse-mode-range'/>
<menuitem action='set-mouse-mode-gain'/>
@@ -209,6 +211,10 @@
<separator/>
<menuitem action='break-drag'/>
</menu>
+#ifndef GTKOSX
+ <separator/>
+ <menuitem action='ToggleOptionsEditor'/>
+#endif
</menu>
<menu action='RegionMenu'>
@@ -236,6 +242,11 @@
<menuitem action='duplicate-region'/>
<menuitem action='multi-duplicate-region'/>
<menuitem action='region-fill-track'/>
+ <separator/>
+ <menuitem action='loop-region'/>
+ <menuitem action='set-punch-from-region'/>
+ <menuitem action='add-range-marker-from-region'/>
+ <menuitem action='add-range-markers-from-region'/>
</menu>
<menu action='TrackMenu'>
@@ -379,7 +390,6 @@
<menuitem action='ToggleMaximalEditor'/>
<menuitem action='show-editor-mixer'/>
- <menuitem action='show-editor-list'/>
<menuitem action='ToggleMeasureVisibility'/>
<menuitem action='toggle-waveform-visible'/>
<menuitem action='ToggleWaveformsWhileRecording'/>
@@ -406,11 +416,10 @@
<separator/>
<menuitem action='goto-editor'/>
<menuitem action='goto-mixer'/>
- <menuitem action='ToggleOptionsEditor'/>
+ <menuitem action='toggle-editor-mixer-on-top'/>
<menuitem action='ToggleInspector'/>
<menuitem action='ToggleLocations'/>
<menuitem action='ToggleKeyEditor'/>
- <menuitem action='ToggleBundleManager'/>
<menuitem action='ToggleThemeManager'/>
<menuitem action='ToggleBigClock'/>
<menuitem action='toggle-rhythm-ferret'/>
@@ -432,7 +441,6 @@
</menu>
<menu action='SyncMenu'>
<menuitem action='SendMTC'/>
- <menuitem action='SendMidiClock'/>
<menuitem action='SendMMC'/>
<menuitem action='UseMMC'/>
</menu>
@@ -513,6 +521,7 @@
<menuitem action='SoloInPlace'/>
<menuitem action='SoloViaBus'/>
<menuitem action='ShowSoloMutes'/>
+ <menuitem action='SoloMuteOverride'/>
</menu>
<menu action='Crossfades'>
<menuitem action='toggle-xfades-active'/>
@@ -539,6 +548,7 @@
<menu action='MiscOptions'>
<menuitem action='UseOSC'/>
<menuitem action='StopPluginsWithTransport'/>
+ <menuitem action='NewPluginsActive'/>
<menuitem action='DoNotRunPluginsWhileRecording'/>
<menuitem action='LatchedRecordEnable'/>
<menuitem action='RegionEquivalentsOverlap'/>
@@ -551,9 +561,9 @@
<menuitem action='PrimaryClockDeltaEditCursor'/>
<menuitem action='SecondaryClockDeltaEditCursor'/>
<menuitem action='OnlyCopyImportedFiles'/>
- <menuitem action='ShowTrackMeters'/>
<menuitem action='DefaultNarrowMS'/>
<menuitem action='link-region-and-track-selection'/>
+ <menuitem action='NameNewMarkers'/>
<menuitem action='RubberbandingSnapsToGrid'/>
<menuitem action='AutoAnalyseAudio'/>
<menuitem action='toggle-region-fades'/>
@@ -579,7 +589,7 @@
<menuitem action="toggle-loop-punch-ruler"/>
</popup>
- <popup name='processormenu'>
+ <popup name='redirectmenu'>
<menuitem action='newplugin'/>
<menuitem action='newinsert'/>
<menuitem action='newsend'/>
diff --git a/gtk2_ardour/ardour.sh.in b/gtk2_ardour/ardour.sh.in
index 4a7219823c..077073bdf6 100644
--- a/gtk2_ardour/ardour.sh.in
+++ b/gtk2_ardour/ardour.sh.in
@@ -18,6 +18,25 @@ if [ "$MLOCK_LIMIT" != "unlimited" ]; then
fi
+## Glib atomic test
+
+GLIB=$(ldd %INSTALL_PREFIX%/%LIBDIR%/ardour2/ardour-%VERSION% 2> /dev/null | grep glib-2.0 | sed 's/.*=> \([^ ]*\) .*/\1/')
+
+if [ "$GLIB" = "" ]; then
+ echo "WARNING: Could not check your glib-2.0 for mutex locking atomic operations."
+ echo ""
+elif [ $(nm -D --radix=dec --defined-only -S $GLIB | grep -w g_atomic_int_add | cut -d ' ' -f 2) -gt 32 ]; then
+ echo "WARNING: Your system contains a suspect libglib-2.0. Your version might be built"
+ echo " to use mutex locking atomic operations. This is a fallback solution to"
+ echo " a more robust hardware supported atomicity. It might cause reduced "
+ echo " performance and/or deadlocks. Please contact your distribution support"
+ echo " about this issue."
+ echo " Unfortunately this check is not 100% accurate, so this might not be"
+ echo " the case with your system."
+ echo ""
+fi
+
+exec %INSTALL_PREFIX%/%LIBDIR%/ardour2/ardour-%VERSION% "$@"
## Glib atomic test
diff --git a/gtk2_ardour/ardour2_ui_dark_sae.rc.in b/gtk2_ardour/ardour2_ui_dark_sae.rc.in
new file mode 100644
index 0000000000..1b0635a1b9
--- /dev/null
+++ b/gtk2_ardour/ardour2_ui_dark_sae.rc.in
@@ -0,0 +1,1587 @@
+#
+# This is the GTK style file for Ardour
+#
+
+style "very_small_text"
+{
+ font_name = "%FONT_SMALLER%"
+}
+
+style "small_text"
+{
+ font_name = "%FONT_SMALL%"
+}
+
+style "small_bold_text"
+{
+ font_name = "%FONT_BOLD_SMALL%"
+}
+
+style "medium_bold_text"
+{
+ font_name = "%FONT_BOLD_NORMAL%"
+}
+
+style "medium_text"
+{
+ font_name = "%FONT_NORMAL%"
+}
+
+style "red_medium_text" = "medium_text"
+{
+ fg[NORMAL] = { 1.0, 0, 0 }
+ fg[ACTIVE] = { 1.0, 0, 0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+}
+
+style "large_text"
+{
+ font_name = "%FONT_LARGE%"
+}
+
+style "larger_bold_text"
+{
+ font_name = "%FONT_BOLD_BIGGER%"
+}
+
+style "plugin_name_text"
+{
+ font_name = "%FONT_BOLD_LARGER%"
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+}
+
+style "plugin_maker_text"
+{
+ font_name = "%FONT_BOLD_BIGGER%"
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+}
+
+style "automation_track_name"
+{
+ font_name = "%FONT_ITALIC_NORMAL%"
+}
+
+style "first_action_message"
+{
+ font_name = "%FONT_HUGER%"
+}
+
+style "verbose_canvas_cursor"
+{
+ font_name = "%FONT_BOLD_LARGER%"
+}
+
+style "marker_text"
+{
+ font_name = "%FONT_SMALLER%"
+}
+
+style "time_axis_view_item_name"
+{
+ font_name = "%FONT_SMALLER%"
+}
+
+style "default_base" = "medium_text"
+{
+
+ GtkWidget::cursor_color = {1.0, 1.0, 1.0 }
+ GtkButton::default_border = { 0, 0, 0, 0 }
+ GtkButton::default_outside_border = { 0, 0, 0, 0 }
+ GtkButton::button_relief = GTK_RELIEF_NONE
+ GtkTreeView::vertical-padding = 0
+ GtkTreeView::horizontal-padding = 0
+ GtkTreeView::even-row-color = { 0, 0, 0 }
+ GtkTreeView::odd-row-color = { 0.06, 0.06, 0.10 }
+
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ fg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ fg[PRELIGHT] = { 1.0, 1.0, 1.0 }
+ fg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+ fg[SELECTED] = { 0.80, 0.80, 0.80 }
+
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+ bg[ACTIVE] = { 0.35, 0.35, 0.40 }
+ bg[PRELIGHT] = "#565690"
+ bg[INSENSITIVE] = { 0.10, 0.10, 0.10 }
+ bg[SELECTED] = { 0, 0.40, 0.60 }
+
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+ text[ACTIVE] = { 0.80, 0.80, 0.80 }
+ text[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ text[INSENSITIVE] = { 0.80, 0.80, 0.80}
+ text[SELECTED] = { 1.0, 1.0, 1.0 }
+
+ base[ACTIVE] = "#272a2f"
+ base[NORMAL] = "#1a1e20"
+ base[PRELIGHT] = { 0.20, 0.20, 0.20 }
+ base[INSENSITIVE] = "#4c5159"
+ base[SELECTED] = { 0.25, 0.25, 0.25 }
+
+ engine "clearlooks"
+ {
+ menubarstyle = 0 # 0 = flat, 1 = sunken, 2 = flat gradient
+ }
+}
+
+style "base_frame"
+{
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+}
+
+style "transport_base" = "medium_bold_text"
+{
+ bg[NORMAL] = { 0.10, 0.10, 0.10 }
+ bg[ACTIVE] = { 0, 0, 0 }
+ bg[PRELIGHT] = { 0, 0, 0 }
+ bg[INSENSITIVE] = { 0, 0, 0 }
+ bg[SELECTED] = { 0, 0, 0 }
+}
+/*
+style "black_mackie_menu_bar"
+{
+ font_name = "%FONT_BOLD_NORMAL%"
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ bg[NORMAL] = { 0, 0, 0 }
+}
+*/
+
+style "default_button"
+{
+ font_name = "%FONT_SMALL%"
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.30, 0.30, 0.35 }
+ bg[ACTIVE] = "#565690"
+ bg[PRELIGHT] = { 0.15, 0.15, 0.20 }
+ bg[INSENSITIVE] = { 0.15, 0.15, 0.20 }
+ bg[SELECTED] = { 0.15, 0.15, 0.20 }
+}
+
+style "default_menu"
+{
+ font_name = "%FONT_NORMAL%"
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.30, 0.30, 0.35 }
+ bg[ACTIVE] = "#565690"
+ bg[PRELIGHT] = { 0.15, 0.15, 0.20 }
+ bg[INSENSITIVE] = { 0.15, 0.15, 0.20 }
+ bg[SELECTED] = { 0.15, 0.15, 0.20 }
+}
+
+style "default_generic"
+{
+ font_name = "%FONT_NORMAL%"
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.30, 0.30, 0.35 }
+ bg[ACTIVE] = "#565690"
+ bg[PRELIGHT] = { 0.15, 0.15, 0.20 }
+ bg[INSENSITIVE] = { 0.15, 0.15, 0.20 }
+ bg[SELECTED] = { 0.15, 0.15, 0.20 }
+}
+
+style "very_small_button" = "default_button"
+{
+ font_name = "%FONT_SMALLER%"
+ ythickness = 0
+ xthickness = 0
+}
+
+style "small_button" = "default_button"
+{
+}
+
+style "very_small_red_active_and_selected_button" = "very_small_button"
+{
+ bg[ACTIVE] = { 1.0, 0, 0}
+ bg[SELECTED] = { 1.0, 0, 0}
+}
+
+style "small_red_active_and_selected_button" = "small_button"
+{
+ fg[ACTIVE] = { 0, 0, 0 }
+ bg[ACTIVE] = { 1.0, 0, 0}
+ bg[SELECTED] = { 1.0, 0, 0}
+}
+
+style "gain_fader"
+{
+ bg[NORMAL] = { 0.269, 0.269, 0.300}
+ bg[ACTIVE] = { 0.152, 0.152, 0.168 }
+}
+
+
+style "track_rec_enable_button" = "small_button"
+{
+}
+
+style "track_rec_enable_button_active" = "small_button"
+{
+ fg[SELECTED] = { 0.0, 0.0, 0.0 }
+ fg[ACTIVE] = { 0.0, 0.0, 0.0 }
+ fg[PRELIGHT] = { 0.0, 0.0, 0.0 }
+ fg[NORMAL] = { 0.0, 0.0, 0.0 }
+
+ bg[NORMAL] = { 1.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 1.0, 0.0, 0.0 }
+ bg[SELECTED] = { 1.0, 0.0, 0.0 }
+ bg[PRELIGHT] = { 1.0, 0.0, 0.0 }
+}
+
+style "track_rec_enable_button_alternate" = "small_button"
+{
+ fg[SELECTED] = { 0.0, 0.0, 0.0 }
+ fg[ACTIVE] = { 0.0, 0.0, 0.0 }
+ fg[PRELIGHT] = { 0.0, 0.0, 0.0 }
+ fg[NORMAL] = { 0.0, 0.0, 0.0 }
+
+ bg[NORMAL] = { 0.91, 0.68, 0.68}
+ bg[ACTIVE] = { 0.91, 0.68, 0.68}
+ bg[SELECTED] = { 0.91, 0.68, 0.68}
+ bg[PRELIGHT] = { 0.91, 0.68, 0.68}
+}
+
+style "mixer_track_rec_enable_button" = "track_rec_enable_button"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_track_rec_enable_button_alternate" = "track_rec_enable_button_alternate"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_track_rec_enable_button_active" = "track_rec_enable_button_active"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "solo_button" = "small_button"
+{
+}
+
+style "solo_button_alternate" = "small_button"
+{
+ bg[NORMAL] = { 0.69, 0.69, 0.69 } # solo-safe
+ bg[ACTIVE] = { 0.69, 0.69, 0.69 } # solo-safe
+ bg[SELECTED] = { 0.69, 0.69, 0.69 } # solo-safe
+ bg[PRELIGHT] = { 0.69, 0.69, 0.69 } # solo-safe
+
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+}
+
+
+style "solo_button_active" = "small_button"
+{
+ bg[NORMAL] = { 0.66, 0.97, 0.19 } # solo
+ bg[ACTIVE] = { 0.66, 0.97, 0.19 } # solo
+ bg[SELECTED] = { 0.66, 0.97, 0.19 } # solo
+ bg[PRELIGHT] = { 0.66, 0.97, 0.19 } # solo
+
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+}
+
+style "mixer_solo_button" = "solo_button"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_solo_button_alternate" = "solo_button_alternate"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+style "mixer_solo_button_active" = "solo_button_active"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mute_button" = "small_button"
+{
+}
+
+style "mute_button_alternate" = "small_button"
+{
+ bg[ACTIVE] = { 1.0, 0.98, 0.53 }
+ bg[NORMAL] = { 1.0, 0.98, 0.53 }
+ bg[SELECTED] = { 1.0, 0.98, 0.53 }
+ bg[PRELIGHT] = { 1.0, 0.98, 0.53 }
+
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+}
+
+style "mute_button_active" = "small_button"
+{
+ bg[NORMAL] = { 0.90, 0.89, 0.73 }
+ bg[ACTIVE] = { 0.90, 0.89, 0.73 }
+ bg[PRELIGHT] = { 0.90, 0.89, 0.73 }
+ bg[SELECTED] = { 0.90, 0.89, 0.73 }
+
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+}
+
+style "mixer_mute_button_alternate" = "mute_button_alternate"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_mute_button_active" = "mute_button_active"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "multiline_combo" = "small_button"
+{
+ font_name = "%FONT_NORMAL%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_mute_button" = "mute_button"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "track_loop_button" = "small_button"
+{
+ bg[ACTIVE] = { 1.0, 0.98, 0.53 }
+ bg[PRELIGHT] = { 1.0, 0.98, 0.53 }
+
+}
+
+style "mixer_red_active_button" = "very_small_button"
+{
+ fg[ACTIVE] = { 0, 1.0, 1.0 }
+ bg[ACTIVE] = { 0.7, 0, 0 }
+
+ base[INSENSITIVE] = { 0.16, 0.16, 0.21 }
+ bg[INSENSITIVE] = { 0.16, 0.16, 0.21 }
+}
+
+style "time_button" = "default_button"
+{
+ font_name = "%FONT_SMALL%"
+}
+
+style "transport_button"
+{
+}
+
+style "transport_button_active"
+{
+ bg[NORMAL] = { 0.50, 1.0, 0.50 }
+ bg[ACTIVE] = { 0.50, 1.0, 0.50 }
+ bg[SELECTED] = { 0.50, 1.0, 0.50 }
+ bg[PRELIGHT] = { 0.50, 1.0, 0.50 }
+
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+}
+
+style "transport_rec_button"
+{
+}
+
+style "transport_rec_button_active"
+{
+ bg[ACTIVE] = { 1.0, 0, 0 }
+ bg[NORMAL] = { 1.0, 0, 0 }
+ bg[SELECTED] = { 1.0, 0, 0 }
+ bg[PRELIGHT] = { 1.0, 0, 0 }
+}
+
+style "transport_rec_button_alternate"
+{
+ bg[PRELIGHT] = { 0.91, 0.68, 0.68 }
+ bg[NORMAL] = { 0.91, 0.68, 0.68 }
+ bg[SELECTED] = { 0.91, 0.68, 0.68 }
+ bg[ACTIVE] = { 0.91, 0.68, 0.68 }
+}
+
+style "shuttle_control" = "very_small_text"
+{
+ fg[NORMAL] = { 0.85, 0.92, 0.98 }
+ fg[ACTIVE] = { 0.85, 0.92, 0.98 }
+ fg[PRELIGHT] = { 0.85, 0.92, 0.98 }
+ fg[SELECTED] = { 0.85, 0.92, 0.98 }
+ fg[INSENSITIVE] = { 0.85, 0.92, 0.98 }
+
+ bg[NORMAL] = { 0.26, 0.26, 0.31 }
+ bg[PRELIGHT] = { 0.26, 0.26, 0.31 }
+ bg[INSENSITIVE] = { 0.26, 0.26, 0.31 }
+ bg[ACTIVE] = { 0.70, 0.70, 0.70 }
+ bg[SELECTED] = { 1.0, 0.04, 0.04 }
+}
+
+style "ardour_adjusters" = "default_generic"
+{
+ bg[NORMAL] = { 0.60, 0.60, 0.60 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.06, 0.06, 0.06 }
+}
+
+style "editor_hscrollbar" = "ardour_adjusters"
+{
+ #
+ # special case: we want this scrollbar to be as tall as the
+ # zoom focus selector combobox. scrollbars don't expand to
+ # fill the space available to them, so we have to explicitly
+ # make it bigger.
+ #
+ GtkRange::slider_width = 27
+ GtkScrollbar::slider_width = 27
+}
+
+style "resizer_handle"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ bg[NORMAL] = "#818181"
+}
+
+style "ardour_progressbars" = "default_generic"
+{
+ bg[NORMAL] = { 0, 0, 0 }
+ bg[PRELIGHT] = { 0.00, 0.36, 0.40 }
+}
+
+style "preferences" = "default_base"
+{
+ font_name = "%FONT_NORMAL%"
+ fg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+}
+
+style "option_entry" = "default_base"
+{
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+ fg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+
+ base[INSENSITIVE] = { 0.07, 0.07, 0.12 }
+
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+ bg[ACTIVE] = { 0.35, 0.35, 0.40 }
+}
+
+style "red_when_active" = "medium_text"
+{
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.26, 0.26, 0.31 }
+
+ fg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 1.0, 0, 0}
+}
+
+style "xrun_warn"
+{
+ font_name = "%FONT_BOLD_LARGE%"
+
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+ text[NORMAL] = { 1.0, 1.0, 1.0 }
+ text[ACTIVE] = { 1.0, 1.0, 1.0 }
+ base[NORMAL] = { 0.09, 0.48, 0.46 }
+ base[ACTIVE] = { 0.09, 0.48, 0.46 }
+ bg[NORMAL] = { 1.0, 0.48, 0.46 }
+ bg[ACTIVE] = { 0.09, 1.0, 0.46 }
+}
+/*
+style "menu_bar_base" = "default_base"
+{
+ bg[NORMAL] = { 0.2, 0.2, 0.3 }
+ bg[ACTIVE] = { 0, 0, 0 }
+ bg[PRELIGHT] = { 0, 0, 0 }
+ bg[INSENSITIVE] = { 0, 0, 0 }
+ bg[SELECTED] = { 0, 0, 0 }
+}
+*/
+style "fatal_message" = "medium_text"
+{
+ fg[ACTIVE] = { 1.0, 0, 1.0 }
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0,0,0 }
+ bg[NORMAL] = { 0,0,0 }
+ base[ACTIVE] = { 0,0,0 }
+ base[NORMAL] = { 0,0,0 }
+}
+
+style "error_message" = "medium_text"
+{
+ fg[ACTIVE] = { 1.0, 0, 0 }
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0,0,0 }
+ bg[NORMAL] = { 0,0,0 }
+ base[ACTIVE] = { 0,0,0 }
+ base[NORMAL] = { 0,0,0 }
+}
+
+style "info_message" = "medium_text"
+{
+ fg[ACTIVE] = { 1.0, 0, 0 }
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0,0,0 }
+ bg[NORMAL] = { 0,0,0 }
+ base[ACTIVE] = { 0,0,0 }
+ base[NORMAL] = { 0,0,0 }
+}
+
+style "warning_message" = "medium_text"
+{
+ fg[ACTIVE] = { 0.30,0.30, 1.0 }
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0, 0, 0 }
+ bg[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ base[NORMAL] = { 0, 0, 0 }
+}
+
+style "medium_entry" = "medium_text"
+{
+ fg[NORMAL] = { 0.70, 0.70, 0.70 }
+ fg[ACTIVE] = { 0.70, 0.70, 0.70 }
+ fg[SELECTED] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ base[SELECTED] = { 0.70, 0.70, 0.70 }
+}
+
+style "medium_entry_noselection_fg" = "medium_entry"
+{
+ fg[SELECTED] = { 0.50, 1.0, 0.50 }
+}
+
+style "medium_entry_noselection_bg" = "medium_entry"
+{
+ bg[SELECTED] = { 1.0, 1.0, 1.0 }
+}
+
+style "medium_bold_entry" = "medium_bold_text"
+{
+ fg[NORMAL] = { 0.70, 0.70, 0.70 }
+ fg[ACTIVE] = { 0.70, 0.70, 0.70 }
+
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ base[SELECTED] = { 0, 0, 0 }
+}
+
+style "small_entry" = "small_text"
+{
+ fg[NORMAL] = { 0.70, 0.70, 0.70 }
+ fg[ACTIVE] = { 0, 1.0, 0 }
+ fg[SELECTED] = { 0, 1.0, 0 }
+ text[NORMAL] = { 0.70, 0.70, 0.70 }
+ text[ACTIVE] = { 0, 1.0, 0 }
+ text[SELECTED] = { 0, 1.0, 0 }
+ bg[NORMAL] = { 0.0, 0.0, 0.0 }
+ bg[SELECTED] = { 0.0, 0.0, 0.0 }
+ bg[SELECTED] = { 0.0, 0.0, 0.0 }
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ base[SELECTED] = { 0, 0, 0 }
+}
+
+style "red_active_small_entry" = "small_entry"
+{
+ fg[ACTIVE] = { 1.0, 0.0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+}
+
+style "small_bold_entry" = "small_bold_text"
+{
+ fg[NORMAL] = { 0.70, 0.70, 0.70 }
+ fg[ACTIVE] = { 0.70, 0.70, 0.70 }
+
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ base[SELECTED] = { 0, 0, 0 }
+}
+
+style "small_red_on_black_entry" = "small_bold_text"
+{
+ fg[NORMAL] = { 1.0, 0, 0 }
+ fg[ACTIVE] = { 1.0, 0, 0 }
+ base[NORMAL] = { 0.0, 0.0, 0.0 }
+ base[ACTIVE] = { 0.0, 0.0, 0.0 }
+ bg[NORMAL] = { 0.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 0.0, 0.0, 0.0 }
+}
+
+style "non_recording_big_clock_display" = "medium_entry"
+{
+ font_name = "%FONT_MASSIVE%"
+
+ fg[NORMAL] = { 0.50, 1.0, 0.50 }
+ fg[ACTIVE] = { 1.0, 0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+ fg[PRELIGHT] = { 1.0, 0, 0.0 }
+ fg[INSENSITIVE] = { 1.0, 0, 0.0 }
+
+ base[NORMAL] = { 0.0, 0.0, 0.0 }
+ base[ACTIVE] = { 0.0, 0.0, 0.0 }
+ bg[NORMAL] = { 0.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 0.7, 0.0, 0.0 }
+}
+
+style "recording_big_clock_display" = "non_recording_big_clock_display"
+{
+ fg[NORMAL] = { 1.0, 0, 0 }
+}
+
+style "transport_clock_display"
+{
+ font_name = "%FONT_BOLD_BIGGER%"
+
+ fg[NORMAL] = { 0.50, 1.0, 0.50 }
+ fg[ACTIVE] = { 1.0, 0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+ fg[PRELIGHT] = { 1.0, 0, 0.0 }
+ fg[INSENSITIVE] = { 1.0, 0, 0.0 }
+
+ base[NORMAL] = { 0.0, 0.0, 0.0 }
+ base[ACTIVE] = { 0.0, 0.0, 0.0 }
+ bg[NORMAL] = { 0.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 0.0, 0.0, 0.0 }
+}
+
+style "transport_clock_display_delta" = "transport_clock_display"
+{
+ fg[NORMAL] = { 0.30, 0.30, 1.0 }
+}
+
+style "tempo_meter_clock_display"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 1.0, 1.0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+ base[NORMAL] = { 0.0, 0.48, 1.0 }
+ base[ACTIVE] = { 0.09, 0.98, 0.46 }
+ bg[NORMAL] = { 0.0, 0.48, 1.0 }
+ bg[ACTIVE] = { 0.09, 0.98, 0.46 }
+}
+
+style "default_clock_display" = "medium text"
+{
+ fg[NORMAL] = { 0.50, 1.0, 0.50 }
+ fg[ACTIVE] = { 1.0, 0.0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ bg[NORMAL] = { 0, 0, 0 }
+ bg[ACTIVE] = { 0, 0, 0 }
+}
+
+style "editor_time_ruler" = "small_text"
+{
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.09, 0.09, 0.09 }
+}
+
+style "audio_bus_base"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 0.77, 0.77, 0.72 }
+ fg[NORMAL] = { 0.7, 0.8, 0.2 }
+ bg[NORMAL] = { 0.20, 0.20, 0.26 }
+}
+
+style "audio_track_base" = "default_base"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 0.77, 0.77, 0.72 }
+ bg[NORMAL] = { 0.18, 0.19, 0.22 }
+ bg[ACTIVE] = { 0.20, 0.20, 0.20 }
+ bg[PRELIGHT] = { 0.20, 0.20, 0.20 }
+ bg[INSENSITIVE] = { 0.20, 0.20, 0.20 }
+ bg[SELECTED] = { 0.20, 0.20, 0.20 }
+}
+
+style "midi_bus_base"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 0.77, 0.77, 0.72 }
+ fg[NORMAL] = { 0.7, 0.8, 0.2 }
+ #bg[NORMAL] = {0, 0.36, 0.40 }
+ bg[NORMAL] = "#444466"
+}
+
+style "midi_track_base" = "default_base"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 0.77, 0.77, 0.72 }
+ bg[NORMAL] = { 0.48, 0.30, 0.32 }
+ bg[ACTIVE] = { 0.20, 0.20, 0.20 }
+ bg[PRELIGHT] = { 0.20, 0.20, 0.20 }
+ bg[INSENSITIVE] = { 0.20, 0.20, 0.20 }
+ bg[SELECTED] = { 0.20, 0.20, 0.20 }
+}
+
+style "track_controls_inactive"
+{
+ bg[NORMAL] = { 0.60, 0.60, 0.66 }
+ bg[ACTIVE] = { 0.60, 0.60, 0.66 }
+ bg[INSENSITIVE] = { 0.60, 0.60, 0.66 }
+ bg[SELECTED] = { 0.60, 0.60, 0.66 }
+ bg[PRELIGHT] = { 0.60, 0.60, 0.66 }
+
+ #font_name = "sans 18"
+ fg[NORMAL] = { 0.7, 0.8, 0.2 }
+}
+
+style "audio_track_metrics" = "audio_track_base"
+{
+ font_name = "%FONT_TINY%"
+}
+
+style "audio_bus_metrics" = "audio_bus_base"
+{
+ font_name = "%FONT_TINY%"
+}
+
+style "audio_track_metrics_inactive" = "track_controls_inactive"
+{
+ font_name = "%FONT_TINY%"
+}
+
+style "audio_bus_metrics_inactive" = "track_controls_inactive"
+{
+ font_name = "%FONT_TINY%"
+}
+
+style "track_name_display"
+{
+ font_name = "%FONT_NORMAL%"
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ fg[ACTIVE] = { 0.80, 0.80, 0.80 }
+
+ base[NORMAL] = { 0.06, 0.06, 0.06 }
+ base[ACTIVE] = { 0.26, 0.26, 0.26 }
+ bg[NORMAL] = { 0.26, 0.26, 0.26 }
+ bg[ACTIVE] = { 0.26, 0.26, 0.26 }
+}
+
+style "active_track_name_display"
+{
+ font_name = "%FONT_NORMAL%"
+ GtkWidget::cursor_color = {0, 0, 0 }
+ text[NORMAL] = { 0.26, 0.26, 0.26 }
+ base[NORMAL] = { 0.89, 0.89, 0.89 }
+}
+
+style "track_separator"
+{
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+}
+
+#
+# Track edit groups. These styles define
+# the colors that the "edit" button will
+# use as a track is moved from
+# track edit group to track edit group.
+# There are 8 edit groups. Edit group 0
+# is used for tracks that are not editable,
+# so we leave its style to the default.
+#
+
+style "edit_group_0"
+
+{
+ bg[ACTIVE] = { 1.0, 0.65, 0.13 }
+ bg[NORMAL] = { 0.31, 0.31, 0.31 }
+ fg[NORMAL] = { 0.82, 0.91, 0.99 }
+ fg[ACTIVE] = { 0, 0, 0 }
+}
+
+style "edit_group_1"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.93, 0.34, 0.08 }
+ bg[PRELIGHT] = { 0.93, 0.34, 0.08 }
+ bg[SELECTED] = { 0.93, 0.34, 0.08 }
+}
+
+style "edit_group_2"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.93, 0.34, 0.08 }
+ bg[PRELIGHT] = { 0.93, 0.34, 0.08 }
+ bg[SELECTED] = { 0.93, 0.34, 0.08 }
+}
+
+style "edit_group_3"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.93, 0.34, 0.08 }
+ bg[PRELIGHT] = { 0.93, 0.34, 0.08 }
+ bg[SELECTED] = { 0.93, 0.34, 0.08 }
+}
+
+style "treeview_parent_node"
+{
+ # specifies *just* the color used for whole file rows when not selected
+ fg[NORMAL] = { 0.0, 0.6, 0.85 }
+}
+
+style "treeview_display" = "small_bold_text"
+{
+ # expander arrow border and DnD "icon" text
+ fg[NORMAL] = { 0.8, 0.8, 0.8 }
+
+ # background with no rows or no selection, plus
+ # expander arrow core and DnD "icon" background
+ base[NORMAL] = { 0.20, 0.20, 0.25 }
+
+ # selected row bg when window does not have focus (including during DnD)
+ base[ACTIVE] = { 0.0, 0.60, 0.60 }
+
+ # selected row bg when window has focus
+ base[SELECTED] = { 0, 0.75, 0.75 }
+
+ # row text when in normal state and not a parent
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+
+ # selected row text with window focus
+ text[SELECTED] = { 0, 1.0, 1.0 }
+
+ # selected row text without window focus (including during DnD)
+ text[ACTIVE] = { 0, 1.0, 1.0 }
+}
+
+style "main_canvas_area"
+{
+ bg[NORMAL] = { 0.30, 0.30, 0.34 }
+ bg[ACTIVE] = { 0.30, 0.30, 0.34 }
+ bg[INSENSITIVE] = { 0.30, 0.30, 0.34 }
+ bg[SELECTED] = { 0.30, 0.30, 0.34 }
+ bg[PRELIGHT] = { 0.30, 0.30, 0.34 }
+}
+
+style "track_controls_inactive"
+{
+ bg[NORMAL] = { 0.60, 0.60, 0.66 }
+ bg[ACTIVE] = { 0.60, 0.60, 0.66 }
+ bg[INSENSITIVE] = { 0.60, 0.60, 0.66 }
+ bg[SELECTED] = { 0.60, 0.60, 0.66 }
+ bg[PRELIGHT] = { 0.60, 0.60, 0.66 }
+
+ font_name = "%FONT_LARGE%"
+ fg[NORMAL] = { 0.7, 0.8, 0.2 }
+}
+
+style "edit_controls_base_selected"
+{
+ bg[NORMAL] = { 0.32, 0.32, 0.54 }
+ bg[ACTIVE] = { 0.32, 0.32, 0.54 }
+ bg[INSENSITIVE] = { 0.32, 0.32, 0.54 }
+ bg[SELECTED] = { 0.32, 0.32, 0.54 }
+ bg[PRELIGHT] = { 0.32, 0.32, 0.54 }
+}
+
+style "automation_track_controls_base"
+{
+ bg[NORMAL] = { 0.22, 0.22, 0.29 }
+ bg[ACTIVE] = { 0.22, 0.22, 0.29 }
+ bg[INSENSITIVE] = { 0.22, 0.22, 0.29 }
+ bg[SELECTED] = { 0.22, 0.22, 0.29 }
+ bg[PRELIGHT] = { 0.22, 0.22, 0.29 }
+}
+
+# Plugin Editors
+style "plugin_slider"
+{
+ font_name ="%FONT_BOLD_BIG%"
+
+ # the slider itself. the inactive part is INSENSITIVE,
+ # the active part is something else.
+
+ fg[NORMAL] = { 0.37, 0.43, 0.52 }
+ fg[ACTIVE] = { 0.37, 0.43, 0.52 }
+ fg[INSENSITIVE] = {0.35, 0.35, 0.40 } # matches default_base
+ fg[SELECTED] = { 0.37, 0.43, 0.52 }
+ fg[PRELIGHT] = { 0.37, 0.43, 0.52 }
+
+ # draws the outer rectangle around the slider
+
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[INSENSITIVE] = {0.80, 0.80, 0.80 }
+ bg[SELECTED] = { 0.80, 0.80, 0.80 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+
+ # the numeric display
+
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+ text[ACTIVE] = { 0.80, 0.80, 0.80 }
+ text[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+ text[SELECTED] = { 0.80, 0.80, 0.80 }
+ text[PRELIGHT] = { 0.80, 0.80, 0.80 }
+}
+
+style "track_list_display" = "small_bold_text"
+{
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+ text[ACTIVE] = { 0.3, 0.3, 0.3 }
+ text[INSENSITIVE] = { 0, 0, 0 }
+ text[SELECTED] = { 0.8, 0.8, 0.8 }
+
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ base[INSENSITIVE] = { 0, 0, 0 }
+ base[SELECTED] = { 0, 0, 0 }
+}
+
+style "inspector_track_list_display" = "track_list_display"
+{
+ text[ACTIVE] = { 0.8, 0.8, 0.8 }
+
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0.2, 0.2, 0.2 }
+ base[INSENSITIVE] = { 0, 0, 0 }
+ base[SELECTED] = { 0.3, 0.3, 0.4 }
+}
+
+style "redirect_list_display"
+{
+ GtkTreeView::horizontal-separator = 0
+ GtkTreeView::vertical-separator = 0
+
+ font_name = "%FONT_SMALL%"
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+ text[ACTIVE] = { 0.70, 0.70, 0.70 }
+ text[INSENSITIVE] = { 0, 0, 0 }
+ text[SELECTED] = { 0.9, 0.3, 0.3 }
+
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ base[INSENSITIVE] = { 0, 0, 0 }
+ base[SELECTED] = { 0, 0, 0 }
+
+ # these two are explicitly used by the cell renderer for the
+ # text
+
+ fg[NORMAL] = { 0.5, 0.5, 0.5 } # used for inactive
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 } # used for active
+}
+
+style "inspector_redirect_list_display" = "redirect_list_display"
+{
+ base[SELECTED] = { 0.3, 0.3, 0.3 }
+}
+
+# MixerPanZone:
+#
+# the NORMAL fg color is used for the pan puck
+# the ACTIVE fg color is used for the speaker boxes
+
+style "pan_zone" = "default_base"
+{
+ fg[NORMAL] = { 0.34, 0.95, 0.92 }
+ fg[ACTIVE] = { 0.95, 0.48, 0.11 }
+}
+
+style "paler_red_when_active" = "medium_text"
+{
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ fg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.31, 0.31, 0.31 }
+ bg[PRELIGHT] = { 0.31, 0.31, 0.31 }
+
+ fg[ACTIVE] = { 0.36, 0.46, 0.28 }
+ bg[ACTIVE] = { 1.00, 0.59, 0.59}
+}
+
+style "peak_display_peaked_entry" = "small_text"
+{
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+ fg[SELECTED] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = {0.9, 0.0, 0.0 }
+ bg[ACTIVE] = { 0.9, 0.0, 0.0 }
+ bg[PRELIGHT] = { 0.9, 0.0, 0.0 }
+ bg[INSENSITIVE] = { 0.9, 0.0, 0.0 }
+ bg[SELECTED] = { 0.9, 0.0, 0.0 }
+ base[NORMAL] = { 0.9, 0.0, 0.0 }
+ base[ACTIVE] = { 0.9, 0.0, 0.0 }
+ base[PRELIGHT] = { 0.9, 0.0, 0.0 }
+ base[INSENSITIVE] = { 0.9, 0.0, 0.0 }
+ base[SELECTED] = { 0.9, 0.0, 0.0 }
+}
+
+style "selected_strip_frame"
+{
+ fg[NORMAL] = { 0.74, 0.42, 0.47 }
+ bg[NORMAL] = { 0.79, 0.28, 0.18 }
+}
+
+style "flashing_alert" = "very_small_text"
+{
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.26, 0.26, 0.31 }
+
+ fg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 1.0, 0, 0}
+}
+
+style "selected_io_selector_port_list" = "medium_bold_text"
+{
+
+ GtkTreeView::even-row-color = { 0, 0, 0 }
+ GtkTreeView::odd-row-color = { 0, 0, 0 }
+
+# fg is used to color the fg (text) of the column header button
+
+ fg[NORMAL] = { 0.85, 0.85, 0.85 }
+ fg[SELECTED] = { 0.85, 0.85, 0.85 }
+ fg[ACTIVE] = { 0.85, 0.85, 0.85 }
+ fg[PRELIGHT] = { 0.85, 0.85, 0.85 }
+ fg[INSENSITIVE] = { 0.85, 0.85, 0.85 }
+
+# bg is used used to color the background of the column header button
+
+ bg[NORMAL] = { 0.30, 0.30, 0.35 }
+ bg[ACTIVE] = { 0.30, 0.30, 0.35 }
+ bg[PRELIGHT] = { 0.30, 0.30, 0.35 }
+ bg[INSENSITIVE] = { 0.30, 0.30, 0.35 }
+ bg[SELECTED] = { 0.30, 0.30, 0.35 }
+
+# text is used to color the treeview row text
+
+ text[NORMAL] = { 0.85, 0.85, 0.85 }
+ text[SELECTED] = { 0.85, 0.85, 0.85 }
+
+# base is used to color a treeview with no rows
+
+ base[NORMAL] = { 0.20, 0.20, 0.25 }
+ base[ACTIVE] = { 0.20, 0.20, 0.25 }
+ base[PRELIGHT] = { 0.20, 0.20, 0.25 }
+ base[INSENSITIVE] = { 0.20, 0.20, 0.25 }
+ base[SELECTED] = { 0.20, 0.20, 0.25 }
+
+}
+
+style "io_selector_port_list" = "medium_text"
+{
+ GtkTreeView::even-row-color = { 0.20, 0.20, 0.25 }
+ GtkTreeView::odd-row-color = { 0.20, 0.20, 0.25 }
+# fg is used to color the fg (text) of the column header button
+
+ fg[NORMAL] = { 0.70, 0.70, 0.70 }
+ fg[SELECTED] = { 0.70, 0.70, 0.70 }
+ fg[ACTIVE] = { 0.70, 0.70, 0.70 }
+ fg[PRELIGHT] = { 0.70, 0.70, 0.70 }
+ fg[INSENSITIVE] = { 0.70, 0.70, 0.70 }
+
+# bg is used used to color the background of the column header button
+
+ bg[NORMAL] = { 0.30, 0.30, 0.35 }
+ bg[ACTIVE] = { 0.30, 0.30, 0.35 }
+ bg[PRELIGHT] = { 0.30, 0.30, 0.35 }
+ bg[INSENSITIVE] = { 0.30, 0.30, 0.35 }
+ bg[SELECTED] = { 0.30, 0.30, 0.35 }
+
+# text is used to color the treeview row text
+
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+ text[SELECTED] = { 0.80, 0.80, 0.80 }
+
+# base is used to color a treeview with no rows
+
+ base[NORMAL] = { 0.20, 0.20, 0.25 }
+ base[ACTIVE] = { 0.20, 0.20, 0.25 }
+ base[PRELIGHT] = { 0.20, 0.20, 0.25 }
+ base[INSENSITIVE] = { 0.20, 0.20, 0.25 }
+ base[SELECTED] = { 0.20, 0.20, 0.25 }
+}
+
+style "io_selector_notebook" = "default_base"
+{
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ font_name ="%FONT_BOLD_NORMAL%"
+}
+
+style "tearoff_arrow" = "medium_bold_entry"
+{
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ fg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+}
+
+style "location_row_button" = "default_button"
+{
+ font_name = "%FONT_NORMAL%"
+}
+
+style "location_rows_clock" = "default_clock_display"
+{
+ font_name = "%FONT_BIG%"
+}
+
+style "pan_slider"
+{
+ font_name = "%FONT_NORMAL%"
+
+ fg[NORMAL] = { 0.22, 0.73, 0.22 }
+ fg[ACTIVE] = { 0.22, 0.73, 0.22 }
+ fg[INSENSITIVE] = {0.22, 0.53, 0.22 }
+ fg[SELECTED] = { 0.67, 0.23, 0.22 }
+ fg[PRELIGHT] = { 0.67, 0.23, 0.22 }
+
+ bg[NORMAL] = { 0.05, 0.05, 0.05 }
+ bg[ACTIVE] = { 0, 0, 0 }
+ bg[INSENSITIVE] = {0.12, 0.19, 0.25 }
+ bg[SELECTED] = { 0, 0, 0 }
+ bg[PRELIGHT] = { 0, 0, 0 }
+
+ text[NORMAL] = { 0.70, 0.70, 0.70 }
+ text[ACTIVE] = { 0.70, 0.70, 0.70 }
+ text[INSENSITIVE] = { 0.70, 0.70, 0.70 }
+ text[SELECTED] = { 0.70, 0.70, 0.70 }
+ text[PRELIGHT] = { 0.70, 0.70, 0.70 }
+
+ # used to draw the triangular indicators
+
+ base[NORMAL] = { 0.80, 0.80, 0.80 }
+ base[ACTIVE] = { 0.80, 0.80, 0.80 }
+ base[INSENSITIVE] = {0.6, 0.6, 0.6 }
+ base[SELECTED] = { 0.80, 0.80, 0.80 }
+ base[PRELIGHT] = { 0.80, 0.80, 0.80 }
+
+}
+
+style "ardour_button" ="default_button"
+{
+ xthickness = 1
+ ythickness = 1
+}
+
+#---------------------------------------------------------------
+
+class "GtkWidget" style:highest "default_base"
+class "GtkScrollbar" style:highest "ardour_adjusters"
+class "GtkLabel" style:highest "default_generic"
+class "GtkButton" style:highest "ardour_button"
+class "GtkArrow" style:highest "tearoff_arrow"
+class "GtkProgressBar" style:highest "ardour_progressbars"
+
+widget "*FirstActionMessage" style:highest "first_action_message"
+widget "*VerboseCanvasCursor" style:highest "verbose_canvas_cursor"
+widget "*MarkerText" style:highest "marker_text"
+widget "*TimeAxisViewItemName*" style:highest "time_axis_view_item_name"
+#widget "*ExportProgress" style:highest "default_generic"
+widget "*ExportFileLabel" style:highest "small_bold_text"
+widget "*ExportFormatLabel" style:highest "medium_bold_text"
+widget "*ExportHeader" style:highest "small_bold_text"
+widget "*ExportFileDisplay" style:highest "medium_entry"
+widget "*ExportFormatDisplay" style:highest "medium_entry"
+widget "*ExportCheckbox" style:highest "small_entry"
+widget "*ExportTrackSelector*" style:highest "medium_entry_noselection_bg"
+widget "*EditModeSelector" style:highest "medium_bold_entry"
+widget "*SnapTypeSelector" style:highest "medium_bold_entry"
+widget "*SnapModeSelector" style:highest "medium_bold_entry"
+widget "*ZoomFocusSelector" style:highest "medium_bold_entry"
+widget "*ArdourContextMenu*" style:highest "default_menu"
+widget "*EditGroupTitleButton*" style:highest "default_button"
+widget "*MixerGroupTitleButton*" style:highest "default_button"
+widget "*ErrorLogCloseButton" style:highest "default_button"
+widget "*EditorGTKButton*" style:highest "default_button"
+widget "*ToolbarButton" style:highest "default_button"
+widget "*ToolbarButton*" style:highest "default_button"
+widget "*CrossfadeEditButton" style:highest "default_button"
+widget "*CrossfadeEditButton*" style:highest "default_button"
+widget "*TrackHistoryButton*" style:highest "default_button"
+widget "*TrackSizeButton*" style:highest "default_button"
+widget "*TrackPlaylistButton*" style:highest "default_button"
+widget "*TrackAutomationButton*" style:highest "default_button"
+widget "*TrackGroupButton*" style:highest "default_button"
+widget "*TrackMixButton*" style:highest "default_button"
+widget "*TrackVisualButton*" style:highest "default_button"
+widget "*TrackRemoveButton*" style:highest "default_button"
+widget "*BaseButton" style:highest "default_button"
+widget "*TakeButtonLabel" style:highest "default_button"
+widget "*MixerWidthButton" style:highest "default_button"
+widget "*MixerHideButton" style:highest "default_button"
+widget "*MixerSendButton" style:highest "default_button"
+widget "*MixerSendButtonLabel" style:highest "default_button"
+widget "*MixerSendSwitch" style:highest "default_button"
+widget "*MixerInsertButton" style:highest "default_button"
+widget "*MixerInsertButtonLabel" style:highest "default_button"
+widget "*MixerInsertSwitch" style:highest "default_button"
+widget "*MixerMonitorInputButton*" style:highest "very_small_button"
+widget "*MixerMonitorInputButton.*" style:highest "very_small_button"
+widget "*MixerIOButton" style:highest "very_small_button"
+widget "*MixerIOButtonLabel" style:highest "very_small_button"
+widget "*AddRouteDialogSpinner" style:highest "ardour_adjusters"
+widget "*AddRouteDialogRadioButton*" style:highest "preferences"
+widget "*OptionsNotebook" style:highest "preferences"
+widget "*OptionEditorToggleButton*" style:highest "preferences"
+widget "*OptionsLabel" style:highest "preferences"
+widget "*OptionEditorAuditionerLabel" style:highest "preferences"
+widget "*OptionsEntry" style:highest "option_entry"
+widget "*InspectorNotebook" style:highest "preferences"
+widget "*NewSessionDialog" style:highest "preferences"
+widget "*NewSessionDialogButton*" style:highest "preferences"
+widget "*MixerSendSwitch*" style:highest "very_small_red_active_and_selected_button"
+widget "*OptionEditorToggleButton" style:highest "small_red_active_and_selected_button"
+widget "*NewSessionDialogButton" style:highest "small_red_active_and_selected_button"
+widget "*RecordEnableButton" style:highest "track_rec_enable_button"
+widget "*RecordEnableButton-active" style:highest "track_rec_enable_button_active"
+widget "*RecordEnableButton-alternate" style:highest "track_rec_enable_button_alternate"
+widget "*MixerRecordEnableButton" style:highest "mixer_track_rec_enable_button"
+widget "*MixerRecordEnableButton-active" style:highest "mixer_track_rec_enable_button_active"
+widget "*MixerRecordEnableButton-alternate" style:highest "mixer_track_rec_enable_button_alternate"
+widget "*MuteButton" style:highest "mute_button"
+widget "*MuteButton-alternate" style:highest "mute_button_alternate"
+widget "*MuteButton-active" style:highest "mute_button_active"
+widget "*MixerMuteButton" style:highest "mixer_mute_button"
+widget "*MixerMuteButton-alternate" style:highest "mixer_mute_button_alternate"
+widget "*MixerMuteButton-active" style:highest "mixer_mute_button_active"
+widget "*SoloButton" style:highest "solo_button"
+widget "*SoloButton-alternate" style:highest "solo_button_alternate"
+widget "*SoloButton-active" style:highest "solo_button_active"
+widget "*MixerSoloButton" style:highest "mixer_solo_button"
+widget "*MixerSoloButton-alternate" style:highest "mixer_solo_button_alternate"
+widget "*MixerSoloButton-active" style:highest "mixer_solo_button_active"
+widget "*TrackLoopButton*" style:highest "track_loop_button"
+widget "*PanAutomationLineSelector*" style:highest "multiline_combo"
+widget "*EditorTimeButton*" style:highest "time_button"
+widget "*MixerPhaseInvertButton*" style:highest "very_small_button"
+widget "*MixerPhaseInvertButton.*" style:highest "very_small_button"
+widget "*MixerAutomationRecordingButton*" style:highest "very_small_button"
+widget "*MixerAutomationRecordingButton.*" style:highest "very_small_button"
+widget "*MixerAutomationModeButton*" style:highest "very_small_button"
+widget "*MixerAutomationModeButton.*" style:highest "very_small_button"
+widget "*MixerAutomationPlaybackButton*" style:highest "very_small_button"
+widget "*MixerAutomationPlaybackButton.*" style:highest "very_small_button"
+widget "*MixerNameButton" style:highest "very_small_button"
+widget "*MixerNameButtonLabel" style:highest "very_small_button"
+widget "*MixerGroupButton" style:highest "very_small_button"
+widget "*MixerGroupButtonLabel" style:highest "very_small_button"
+widget "*MixerCommentButton" style:highest "very_small_button"
+widget "*MixerCommentButton*" style:highest "very_small_button"
+widget "*EditGroupButton" style:highest "very_small_button"
+widget "*EditGroupButtonLabel" style:highest "very_small_button"
+widget "*TransportButton" style:highest "transport_rec_button"
+widget "*TransportButton-active" style:highest "transport_button_active"
+widget "*ShuttleButton" style:highest "transport_button"
+widget "*ShuttleButton*" style:highest "transport_button"
+widget "*ShuttleDisplay" style:highest "transport_button"
+widget "*ShuttleDisplay*" style:highest "transport_button"
+widget "*ShuttleControl" style:highest "shuttle_control"
+widget "*TransportRecButton" style:highest "transport_rec_button"
+widget "*TransportRecButton*" style:highest "transport_rec_button"
+widget "*TransportRecButton-active" style:highest "transport_rec_button_active"
+widget "*TransportRecButton-active*" style:highest "transport_rec_button_active"
+widget "*TransportRecButton-alternate" style:highest "transport_rec_button_alternate"
+widget "*TransportRecButton-alternate*" style:highest "transport_rec_button_alternate"
+widget "*TransportRecButton*" style:highest "transport_rec_button"
+widget "*RecordingXrunWarningWindow" style:highest "xrun_warn"
+widget "*RecordingXrunWarningWindow*" style:highest "xrun_warn"
+/*widget "*MainMenuBar" style:highest "menu_bar_base"*/
+widget "*ErrorMessage" style:highest "error_message"
+widget "*FatalMessage" style:highest "fatal_message"
+widget "*InfoMessage" style:highest "info_message"
+widget "*WarningMessage" style:highest "warning_message"
+widget "*BigClockNonRecording" style:highest "non_recording_big_clock_display"
+widget "*BigClockRecording" style:highest "recording_big_clock_display"
+widget "*TransportClockDisplay" style:highest "transport_clock_display"
+widget "*SecondaryClockDisplay" style:highest "transport_clock_display"
+widget "*TransportClockDisplayDelta" style:highest "transport_clock_display_delta"
+widget "*SecondaryClockDisplayDelta" style:highest "transport_clock_display_delta"
+widget "*AudioClockFramesUpperInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockFramesLowerInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockSMPTEUpperInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockSMPTELowerInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockBBTUpperInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockBBTLowerInfo" style:highest "tempo_meter_clock_display"
+widget "*SelectionStartClock" style:highest "default_clock_display"
+widget "*SelectionEndClock" style:highest "default_clock_display"
+widget "*EditPointClock" style:highest "default_clock_display"
+widget "*PreRollClock" style:highest "default_clock_display"
+widget "*PostRollClock" style:highest "default_clock_display"
+widget "*NudgeClock" style:highest "default_clock_display"
+widget "*InsertTimeClock" style:highest "default_clock_display"
+widget "*ZoomRangeClock" style:highest "default_clock_display"
+widget "*SMPTEOffsetClock" style:highest "default_clock_display"
+widget "*TransportLabel" style:highest "small_bold_text"
+widget "*TakeLabel" style:highest "small_bold_text"
+widget "*LocationLabel" style:highest "small_bold_text"
+widget "*WipeLabel" style:highest "small_bold_text"
+widget "*TakeTagLabel" style:highest "small_bold_text"
+widget "*ToolBarLabel" style:highest "small_bold_text"
+widget "*EditorDisplayLabel" style:highest "small_bold_text"
+widget "*NewSessionLabel" style:highest "large_text"
+widget "*GlobalButtonLabel" style:highest "default_generic"
+widget "*ClickButton" style:highest "medium_entry"
+widget "*RegionNameDisplay" style:highest "medium_entry"
+widget "*PluginDisplay" style:highest "medium_entry"
+widget "*SelectionDisplay" style:highest "medium_entry"
+widget "*HistorySelector" style:highest "medium_entry"
+widget "*LocationSelector" style:highest "medium_entry"
+widget "*TakeSelector" style:highest "medium_entry"
+widget "*RegionSelector" style:highest "medium_entry"
+widget "*SMPTERuler" style:highest "editor_time_ruler"
+widget "*BBTRuler" style:highest "editor_time_ruler"
+widget "*FramesRuler" style:highest "editor_time_ruler"
+widget "*MinSecRuler" style:highest "editor_time_ruler"
+widget "*BaseFrame" style:highest "base_frame"
+
+widget "*AudioTrackStripBase" style:highest "audio_track_base"
+widget "*AudioBusStripBase" style:highest "audio_bus_base"
+widget "*MidiTrackStripBase" style:highest "midi_track_base"
+widget "*AudioTrackStripBaseInactive" style:highest "track_controls_inactive"
+widget "*AudioBusStripBaseInactive" style:highest "track_controls_inactive"
+widget "*MidiTrackStripBaseInactive" style:highest "track_controls_inactive"
+widget "*FaderMetricsStrip" style:highest "audio_track_metrics"
+widget "*AudioTrackMetrics" style:highest "audio_track_metrics"
+widget "*AudioBusMetrics" style:highest "audio_bus_metrics"
+widget "*AudioTrackMetricsInactive" style:highest "audio_track_metrics_inactive"
+widget "*AudioBusMetricsInactive" style:highest "audio_bus_metrics_inactive"
+
+widget "*TimeAxisViewControlsBaseUnselected" style:highest "audio_track_base"
+widget "*AudioTrackControlsBaseUnselected" style:highest "audio_track_base"
+widget "*MidiTrackControlsBaseUnselected" style:highest "midi_track_base"
+widget "*AudioTrackFader" style:highest "gain_fader"
+
+widget "*BusControlsBaseUnselected" style:highest "audio_bus_base"
+widget "*AudioBusFader" style:highest "gain_fader"
+widget "*TrackSeparator" style:highest "track_separator"
+widget "*TrackEditIndicator0*" style:highest "edit_group_0"
+widget "*TrackEditIndicator1*" style:highest "edit_group_1"
+widget "*TrackEditIndicator2*" style:highest "edit_group_2"
+widget "*TrackEditIndicator3*" style:highest "edit_group_3"
+widget "*TrackEditIndicator4*" style:highest "edit_group_3"
+widget "*TrackEditIndicator5*" style:highest "edit_group_3"
+widget "*TrackEditIndicator6*" style:highest "edit_group_3"
+widget "*TrackEditIndicator7*" style:highest "edit_group_3"
+widget "*EditorTrackNameDisplay" style:highest "track_name_display"
+widget "*EditorTrackNameDisplay*" style:highest "track_name_display"
+widget "*EditorActiveTrackNameDisplay" style:highest "active_track_name_display"
+widget "*EditorActiveTrackNameDisplay*" style:highest "active_track_name_display"
+widget "*CrossfadeEditAuditionButton" style:highest "red_when_active"
+widget "*CrossfadeEditAuditionButton*" style:highest "red_when_active"
+widget "*CrossfadeEditCurveButton" style:highest "red_when_active"
+widget "*CrossfadeEditCurveButton*" style:highest "red_when_active"
+widget "*CrossfadeEditLabel" style:highest "medium_text"
+widget "*CrossfadeEditFrame" style:highest "base_frame"
+widget "*MouseModeButton" style:highest "default_button"
+widget "*MouseModeButton*" style:highest "default_button"
+widget "*EditorMainCanvas" style:highest "main_canvas_area"
+widget "*AudioTrackControlsBaseInactiveUnselected" style:highest "track_controls_inactive"
+widget "*BusControlsBaseInactiveUnselected" style:highest "track_controls_inactive"
+widget "*AutomationTrackControlsBaseInactiveUnselected" style:highest "track_controls_inactive"
+widget "*AutomationTrackName" style:highest "automation_track_name"
+widget "*AudioTrackControlsBaseInactiveSelected" style:highest "track_controls_inactive"
+widget "*BusControlsBaseInactiveSelected" style:highest "track_controls_inactive"
+widget "*AutomationTrackControlsBaseInactiveSelected" style:highest "track_controls_inactive"
+widget "*AudioTrackControlsBaseSelected" style:highest "edit_controls_base_selected"
+widget "*MidiTrackControlsBaseSelected" style:highest "edit_controls_base_selected"
+widget "*BusControlsBaseSelected" style:highest "edit_controls_base_selected"
+widget "*AutomationTrackControlsBase" style:highest "automation_track_controls_base"
+widget "*AutomationTrackControlsBaseSelected" style:highest "edit_controls_base_selected"
+/*widget "*EditorMenuBar*" style:highest "black_mackie_menu_bar"
+widget "*MainMenuBar*" style:highest "black_mackie_menu_bar"
+*/
+widget "*ZoomClickBox" style:highest "medium_bold_entry"
+widget "*PluginParameterLabel" style:highest "medium_text"
+widget "*PluginNameInfo" style:highest "plugin_name_text"
+widget "*PluginMakerInfo" style:highest "plugin_maker_text"
+widget "*PluginParameterInfo" style:highest "medium_text"
+widget "*MotionControllerValue" style:highest "medium_entry"
+widget "*ParameterValueDisplay" style:highest "medium_bold_entry"
+widget "*PluginUIClickBox" style:highest "medium_bold_entry"
+widget "*PluginUIClickBox*" style:highest "medium_bold_entry"
+widget "*PluginSlider" style:highest "plugin_slider"
+widget "*RedirectSelector" style:highest "redirect_list_display"
+widget "*RedirectSelector.*" style:highest "redirect_list_display"
+widget "*EditGroupDisplay" style:highest "treeview_display"
+widget "*TrackListDisplay" style:highest "treeview_display"
+widget "*RegionListDisplay" style:highest "treeview_display"
+widget "*NamedSelectionDisplay" style:highest "treeview_display"
+widget "*SnapshotDisplay" style:highest "treeview_display"
+widget "*MixerTrackCommentArea" style:highest "option_entry"
+widget "*MixerPanZone" style:highest "pan_zone"
+widget "*MixerTrackDisplayList" style:highest "treeview_display"
+widget "*MixerSnapshotDisplayList" style:highest "treeview_display"
+widget "*MixerAuxDisplayList" style:highest "treeview_display"
+widget "*MixerGroupList" style:highest "treeview_display"
+widget "*RegionEditorLabel" style:highest "medium_text"
+widget "*RegionEditorSmallLabel" style:highest "small_text"
+widget "*RegionEditorEntry" style:highest "medium_entry"
+widget "*RegionEditorClock" style:highest "default_clock_display"
+widget "*RegionEditorToggleButton" style:highest "paler_red_when_active"
+widget "*RegionEditorToggleButton*" style:highest "paler_red_when_active"
+widget "*MixerStripSpeedBase" style:highest "small_entry"
+widget "*MixerStripSpeedBase*" style:highest "small_entry"
+widget "*MixerStripSpeedBaseNotOne" style:highest "small_red_on_black_entry"
+widget "*MixerStripSpeedBaseNotOne*" style:highest "small_red_on_black_entry"
+widget "*MixerStripGainDisplay" style:highest "small_entry"
+widget "*MixerStripGainDisplay*" style:highest "small_entry"
+widget "*MixerStripGainUnitButton" style:highest "very_small_button"
+widget "*MixerStripGainUnitButton*" style:highest "very_small_button"
+widget "*MixerStripMeterPreButton" style:highest "very_small_button"
+widget "*MixerStripMeterPreButton*" style:highest "very_small_button"
+widget "*MixerStripPeakDisplay*" style:highest "red_active_small_entry"
+widget "*MixerStripPeakDisplayPeak*" style:highest "peak_display_peaked_entry"
+widget "*MixerStripSelectedFrame" style:highest "selected_strip_frame"
+widget "*MixerStripFrame" style:highest "base_frame"
+widget "*HWMonitorButton" style:highest "red_when_active"
+widget "*HWMonitorButton*" style:highest "red_when_active"
+widget "*TransportSoloAlert" style:highest "flashing_alert"
+widget "*TransportSoloAlert.*" style:highest "flashing_alert"
+widget "*TransportAuditioningAlert" style:highest "flashing_alert"
+widget "*TransportAuditioningAlert.*" style:highest "flashing_alert"
+widget "*FadeCurve" style:highest "medium_bold_entry"
+widget "*FadeCurve*" style:highest "medium_bold_entry"
+widget "*IOSelectorButton" style:highest "default_button"
+widget "*IOSelectorButton*" style:highest "default_button"
+widget "*IOSelectorList" style:highest "medium_entry_noselection_fg"
+widget "*IOSelectorPortList" style:highest "io_selector_port_list"
+widget "*IOSelectorPortList.*" style:highest "io_selector_port_list"
+widget "*IOSelectorPortListSelected" style:highest "selected_io_selector_port_list"
+widget "*IOSelectorPortListSelected.*" style:highest "selected_io_selector_port_list"
+widget "*IOSelectorNotebook" style:highest "io_selector_notebook"
+widget "*IOSelectorNotebookTab" style:highest "io_selector_notebook"
+widget "*IOSelectorFrame" style:highest "base_frame"
+widget "*ConnectionEditorButton" style:highest "default_button"
+widget "*ConnectionEditorButton*" style:highest "default_button"
+widget "*ConnectionEditorList" style:highest "medium_entry_noselection_fg"
+widget "*ConnectionEditorConnectionList" style:highest "medium_entry"
+widget "*ConnectionEditorPortList" style:highest "io_selector_port_list"
+widget "*ConnectionEditorPortListSelected" style:highest "selected_io_selector_port_list"
+widget "*ConnectionEditorNotebook" style:highest "io_selector_notebook"
+widget "*ConnectionEditorNotebookTab" style:highest "io_selector_notebook"
+widget "*ConnectionEditorFrame" style:highest "base_frame"
+widget "*RouteParamsListDisplay" style:highest "inspector_track_list_display"
+widget "*RouteParamsPreListDisplay" style:highest "inspector_redirect_list_display"
+widget "*RouteParamsPostListDisplay" style:highest "inspector_redirect_list_display"
+widget "*TearOffArrow" style:highest "tearoff_arrow"
+widget "*RouteParamsTitleButton" style:highest "medium_text"
+widget "*RouteParamsTitleLabel" style:highest "medium_text"
+widget "*PluginAutomateRecordButton" style:highest "small_red_active_and_selected_button"
+widget "*PluginAutomateRecordButton*" style:highest "small_red_active_and_selected_button"
+widget "*PluginAutomatePlayButton" style:highest "small_red_active_and_selected_button"
+widget "*PluginAutomatePlayButton*" style:highest "small_red_active_and_selected_button"
+widget "*PluginAutomateButton" style:highest "small_button"
+widget "*PluginAutomateButton*" style:highest "small_button"
+widget "*PluginSaveButton" style:highest "small_button"
+widget "*PluginSaveButton*" style:highest "small_button"
+widget "*PluginLoadButton" style:highest "small_button"
+widget "*PluginLoadButton*" style:highest "small_button"
+
+widget "*MetricDialogFrame" style:highest "base_frame"
+widget "*MetricEntry" style:highest "medium_bold_entry"
+widget "*MetricButton" style:highest "default_button"
+widget "*MetricButton.*" style:highest "default_button"
+widget "*MetricLabel" style:highest "medium_text"
+widget "*TimeStretchButton" style:highest "default_button"
+widget "*TimeStretchButton.*" style:highest "default_button"
+widget "*TimeStretchProgress" style:highest "default_generic"
+widget "*ChoiceWindow" style:highest "default_generic"
+widget "*ChoicePrompt" style:highest "default_generic"
+widget "*ChoiceButton" style:highest "default_button"
+widget "*ChoiceButton*" style:highest "default_button"
+widget "*SelectionModeButton" style:highest "default_button"
+widget "*SelectionModeButton*" style:highest "default_button"
+widget "*TrackLabel" style:highest "medium_text"
+widget "*TrackPlugName" style:highest "medium_text"
+widget "*TrackParameterName" style:highest "small_text"
+widget "*AddRouteDialog*" style:highest "medium_text"
+widget "*AddRouteDialog.GtkLabel" style:highest "medium_text"
+widget "*AddRouteDialogChannelChoice" style:highest "medium_bold_entry"
+widget "*AddRouteDialogSpinner" style:highest "medium_bold_entry"
+widget "*AddRouteDialogSpinner*" style:highest "medium_bold_entry"
+widget "*AddRouteDialogRadioButton" style:highest "red_when_active"
+widget "*AddRouteDialogButton" style:highest "default_button"
+widget "*AddRouteDialogNameTemplateEntry" style:highest "medium_bold_entry"
+widget "*NewSessionIOLabel" style:highest "larger_bold_text"
+widget "*NewSessionSR1Label" style:highest "red_medium_text"
+widget "*NewSessionSR2Label" style:highest "medium_text"
+widget "*NewSessionChannelChoice" style:highest "medium_bold_entry"
+widget "*NewSessionMainButton" style:highest "larger_bold_text"
+widget "*NewSessionMainButton*" style:highest "larger_bold_text"
+widget "*NewSessionMainLabel" style:highest "larger_bold_text"
+widget "*LocationEditRowClock" style:highest "location_rows_clock"
+widget "*LocationEditNameLabel" style:highest "medium_text"
+widget "*LocationEditSetButton" style:highest "location_row_button"
+widget "*LocationEditSetButton*" style:highest "location_row_button"
+widget "*LocationEditGoButton" style:highest "location_row_button"
+widget "*LocationEditGoButton*" style:highest "location_row_button"
+widget "*LocationEditCdButton" style:highest "small_red_active_and_selected_button"
+widget "*LocationEditCdButton*" style:highest "small_red_active_and_selected_button"
+widget "*LocationEditHideButton" style:highest "small_red_active_and_selected_button"
+widget "*LocationEditHideButton*" style:highest "small_red_active_and_selected_button"
+widget "*LocationEditNumberLabel" style:highest "small_text"
+widget "*LocationLocEditorFrame" style:highest "base_frame"
+widget "*LocationRangeEditorFrame" style:highest "base_frame"
+widget "*LocationEditNameEntry" style:highest "option_entry"
+widget "*LocationAddLocationButton" style:highest "default_button"
+widget "*LocationAddLocationButton*" style:highest "default_button"
+widget "*LocationAddRangeButton" style:highest "default_button"
+widget "*LocationAddRangeButton*" style:highest "default_button"
+widget "*LocationEditRemoveButton" style:highest "location_row_button"
+widget "*LocationEditRemoveButton*" style:highest "location_row_button"
+widget "*PanSlider" style:highest "pan_slider"
+widget "*PanningLinkButton" style:highest "mixer_red_active_button"
+widget "*PanningLinkButton.*" style:highest "mixer_red_active_button"
+widget "*PanningLinkDirectionButton" style:highest "very_small_button"
+widget "*PanningLinkDirectionButton.*" style:highest "very_small_button"
+widget "*ChannelCountSelector" style:highest "medium_bold_entry"
+widget "*ChannelCountSelector.GtkArrow" style:highest "default_generic"
+widget "*RegionListWholeFile" style:highest "treeview_parent_node"
+widget "*EditorHScrollbar" style:highest "editor_hscrollbar"
+widget "*ResizerHandler" style:highest "resizer_handle"
+
+style "tooltip" {
+ fg[NORMAL] = { 0.20, 0.20, 0.20 }
+ bg[NORMAL] = "#FFFFFF"
+}
+
+widget "*ooltip*" style:highest "tooltip"
diff --git a/gtk2_ardour/ardour2_ui_light_sae.rc.in b/gtk2_ardour/ardour2_ui_light_sae.rc.in
new file mode 100644
index 0000000000..2a6844c6d0
--- /dev/null
+++ b/gtk2_ardour/ardour2_ui_light_sae.rc.in
@@ -0,0 +1,1584 @@
+#
+# This is the GTK style file for Ardour
+#
+
+style "very_small_text"
+{
+ font_name = "%FONT_SMALLER%"
+}
+
+style "small_text"
+{
+ font_name = "%FONT_SMALL%"
+}
+
+style "small_bold_text"
+{
+ font_name = "%FONT_BOLD_SMALL%"
+}
+
+style "medium_bold_text"
+{
+ font_name = "%FONT_BOLD_NORMAL%"
+}
+
+style "medium_text"
+{
+ font_name = "%FONT_NORMAL%"
+}
+
+style "red_medium_text" = "medium_text"
+{
+ fg[NORMAL] = { 1.0, 0, 0 }
+ fg[ACTIVE] = { 1.0, 0, 0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+}
+
+
+style "large_text"
+{
+ font_name = "%FONT_LARGE%"
+}
+
+style "larger_bold_text"
+{
+ font_name = "%FONT_BOLD_BIGGER%"
+}
+
+style "plugin_name_text"
+{
+ font_name = "%FONT_BOLD_LARGER%"
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+}
+
+style "plugin_maker_text"
+{
+ font_name = "%FONT_BOLD_BIGGER%"
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+}
+
+style "automation_track_name"
+{
+ font_name = "%FONT_ITALIC_NORMAL%"
+}
+
+style "first_action_message"
+{
+ font_name = "%FONT_HUGER%"
+}
+
+style "verbose_canvas_cursor"
+{
+ font_name = "%FONT_BOLD_LARGER%"
+}
+
+style "marker_text"
+{
+ font_name = "%FONT_NORMAL%"
+}
+
+style "time_axis_view_item_name"
+{
+ font_name = "%FONT_SMALLER%"
+}
+
+style "default_base" = "medium_text"
+{
+
+ GtkButton::default_border = { 0, 0, 0, 0 }
+ GtkButton::default_outside_border = { 0, 0, 0, 0 }
+ GtkButton::button_relief = GTK_RELIEF_NONE
+ GtkTreeView::vertical-padding = 0
+ GtkTreeView::horizontal-padding = 0
+ GtkTreeView::even-row-color = { 0.70, 0.70, 0.70 }
+ GtkTreeView::odd-row-color = { 0.64, 0.64, 0.64 }
+
+ fg[NORMAL] = { 0.30, 0.30, 0.40 }
+ fg[ACTIVE] = { 0.30, 0.30, 0.40 }
+ fg[PRELIGHT] = { 0.10, 0.10, 0.20 }
+ fg[INSENSITIVE] = { 0.30, 0.30, 0.40 }
+ fg[SELECTED] = { 0.30, 0.30, 0.40 }
+
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+ bg[SELECTED] = { 0.80, 0.80, 0.80 }
+
+ text[NORMAL] = { 0.30, 0.30, 0.40 }
+ text[ACTIVE] = { 0.30, 0.30, 0.40 }
+ text[PRELIGHT] = { 0.30, 0.30, 0.40 }
+ text[INSENSITIVE] = { 0.30, 0.30, 0.40 }
+ text[SELECTED] = { 0, 0, 0 }
+
+ base[ACTIVE] = { 0.80, 0.80, 0.80 }
+ base[NORMAL] = { 0.80, 0.80, 0.80 }
+ base[PRELIGHT] = { 0.90, 0.90, 0.90 }
+ base[INSENSITIVE] = "#4c5159"
+ base[SELECTED] = { 0.60, 0.60, 0.80 }
+
+ engine "clearlooks"
+ {
+ menubarstyle = 0 # 0 = flat, 1 = sunken, 2 = flat gradient
+ menuitemstyle = 0 # 0 = flat, 1 = 3d-ish (gradient), 2 = 3d-ish (button)
+ listviewitemstyle = 0 # 0 = flat, 1 = 3d-ish (gradient)
+ progressbarstyle = 1 # 0 = candy bar, 1 = fancy candy bar, 2 = flat
+ }
+}
+
+style "base_frame"
+{
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ fg[NORMAL] = { 0.35, 0.35, 0.40 }
+}
+
+style "transport_base" = "medium_bold_text"
+{
+ bg[NORMAL] = { 0.10, 0.10, 0.10 }
+ bg[ACTIVE] = { 0, 0, 0 }
+ bg[PRELIGHT] = { 0, 0, 0 }
+ bg[INSENSITIVE] = { 0, 0, 0 }
+ bg[SELECTED] = { 0, 0, 0 }
+}
+/*
+style "black_mackie_menu_bar"
+{
+ font_name = "%FONT_BOLD_NORMAL%"
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ bg[NORMAL] = { 0, 0, 0 }
+}
+*/
+style "default_button"
+{
+ font_name = "%FONT_SMALL%"
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = "#565690"
+ bg[PRELIGHT] = { 0.70, 0.70, 0.90 }
+ bg[INSENSITIVE] = { 0.70, 0.70, 0.90 }
+ bg[SELECTED] = { 0.70, 0.70, 0.90 }
+}
+
+style "default_menu"
+{
+ font_name = "%FONT_NORMAL%"
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = "#565690"
+ bg[PRELIGHT] = { 0.70, 0.70, 0.90 }
+ bg[INSENSITIVE] = { 0.70, 0.70, 0.90 }
+ bg[SELECTED] = { 0.70, 0.70, 0.90 }
+}
+
+style "default_generic"
+{
+ font_name = "%FONT_NORMAL%"
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = "#565690"
+ bg[PRELIGHT] = { 0.70, 0.70, 0.90 }
+ bg[INSENSITIVE] = { 0.70, 0.70, 0.90 }
+ bg[SELECTED] = { 0.70, 0.70, 0.90 }
+}
+
+style "very_small_button" = "default_button"
+{
+ font_name = "%FONT_SMALLER%"
+ ythickness = 0
+ xthickness = 0
+}
+
+style "small_button" = "default_button"
+{
+}
+
+style "very_small_red_active_and_selected_button" = "very_small_button"
+{
+ bg[ACTIVE] = { 1.0, 0, 0}
+ bg[SELECTED] = { 1.0, 0, 0}
+}
+
+style "small_red_active_and_selected_button" = "small_button"
+{
+ fg[ACTIVE] = { 0, 0, 0 }
+ bg[ACTIVE] = { 1.0, 0, 0}
+ bg[SELECTED] = { 1.0, 0, 0}
+}
+
+style "gain_fader"
+{
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.80, 0.80, 0.80 }
+}
+
+
+style "track_rec_enable_button" = "small_button"
+{
+}
+
+style "track_rec_enable_button_active" = "small_button"
+{
+ fg[SELECTED] = { 0.0, 0.0, 0.0 }
+ fg[ACTIVE] = { 0.0, 0.0, 0.0 }
+ fg[PRELIGHT] = { 0.0, 0.0, 0.0 }
+ fg[NORMAL] = { 0.0, 0.0, 0.0 }
+
+ bg[NORMAL] = { 1.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 1.0, 0.0, 0.0 }
+ bg[SELECTED] = { 1.0, 0.0, 0.0 }
+ bg[PRELIGHT] = { 1.0, 0.0, 0.0 }
+}
+
+style "track_rec_enable_button_alternate" = "small_button"
+{
+ fg[SELECTED] = { 0.0, 0.0, 0.0 }
+ fg[ACTIVE] = { 0.0, 0.0, 0.0 }
+ fg[PRELIGHT] = { 0.0, 0.0, 0.0 }
+ fg[NORMAL] = { 0.0, 0.0, 0.0 }
+
+ bg[NORMAL] = { 0.91, 0.68, 0.68}
+ bg[ACTIVE] = { 0.91, 0.68, 0.68}
+ bg[SELECTED] = { 0.91, 0.68, 0.68}
+ bg[PRELIGHT] = { 0.91, 0.68, 0.68}
+}
+
+style "mixer_track_rec_enable_button" = "track_rec_enable_button"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_track_rec_enable_button_alternate" = "track_rec_enable_button_alternate"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_track_rec_enable_button_active" = "track_rec_enable_button_active"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "solo_button" = "small_button"
+{
+}
+
+style "solo_button_alternate" = "small_button"
+{
+ bg[NORMAL] = { 0.19, 0.97, 0.69 } # solo-safe
+ bg[ACTIVE] = { 0.19, 0.97, 0.69 } # solo-safe
+ bg[SELECTED] = { 0.19, 0.97, 0.69 } # solo-safe
+ bg[PRELIGHT] = { 0.19, 0.97, 0.69 } # solo-safe
+
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+}
+
+
+style "solo_button_active" = "small_button"
+{
+ bg[NORMAL] = { 0.66, 0.97, 0.19 } # solo
+ bg[ACTIVE] = { 0.66, 0.97, 0.19 } # solo
+ bg[SELECTED] = { 0.66, 0.97, 0.19 } # solo
+ bg[PRELIGHT] = { 0.66, 0.97, 0.19 } # solo
+
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+}
+
+style "mixer_solo_button" = "solo_button"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_solo_button_alternate" = "solo_button_alternate"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+style "mixer_solo_button_active" = "solo_button_active"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+
+style "mute_button" = "small_button"
+{
+}
+
+style "mute_button_alternate" = "small_button"
+{
+ bg[ACTIVE] = { 1.0, 0.98, 0.53 }
+ bg[NORMAL] = { 1.0, 0.98, 0.53 }
+ bg[SELECTED] = { 1.0, 0.98, 0.53 }
+ bg[PRELIGHT] = { 1.0, 0.98, 0.53 }
+
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+}
+
+style "mute_button_active" = "small_button"
+{
+ bg[NORMAL] = { 0.90, 0.89, 0.73 }
+ bg[ACTIVE] = { 0.90, 0.89, 0.73 }
+ bg[PRELIGHT] = { 0.90, 0.89, 0.73 }
+ bg[SELECTED] = { 0.90, 0.89, 0.73 }
+
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+}
+
+style "mixer_mute_button_alternate" = "mute_button_alternate"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_mute_button_active" = "mute_button_active"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "multiline_combo" = "small_button"
+{
+ font_name = "%FONT_NORMAL%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_mute_button" = "mute_button"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "track_loop_button" = "small_button"
+{
+ bg[ACTIVE] = { 1.0, 0.98, 0.53 }
+ bg[PRELIGHT] = { 1.0, 0.98, 0.53 }
+
+}
+
+style "mixer_red_active_button" = "very_small_button"
+{
+ fg[ACTIVE] = { 0, 1.0, 1.0 }
+ bg[ACTIVE] = { 0.7, 0, 0 }
+
+ base[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+ bg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+}
+
+style "time_button" = "default_button"
+{
+ font_name = "%FONT_SMALL%"
+}
+
+style "transport_button"
+{
+}
+
+style "transport_button_active"
+{
+ bg[NORMAL] = { 0.50, 1.0, 0.50 }
+ bg[ACTIVE] = { 0.50, 1.0, 0.50 }
+ bg[SELECTED] = { 0.50, 1.0, 0.50 }
+ bg[PRELIGHT] = { 0.50, 1.0, 0.50 }
+
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+}
+
+style "transport_rec_button"
+{
+}
+
+style "transport_rec_button_active"
+{
+ bg[ACTIVE] = { 1.0, 0, 0 }
+ bg[NORMAL] = { 1.0, 0, 0 }
+ bg[SELECTED] = { 1.0, 0, 0 }
+ bg[PRELIGHT] = { 1.0, 0, 0 }
+}
+
+style "transport_rec_button_alternate"
+{
+ bg[PRELIGHT] = { 0.91, 0.68, 0.68 }
+ bg[NORMAL] = { 0.91, 0.68, 0.68 }
+ bg[SELECTED] = { 0.91, 0.68, 0.68 }
+ bg[ACTIVE] = { 0.91, 0.68, 0.68 }
+}
+
+style "shuttle_control" = "very_small_text"
+{
+ fg[NORMAL] = { 0.85, 0.92, 0.98 }
+ fg[ACTIVE] = { 0.85, 0.92, 0.98 }
+ fg[PRELIGHT] = { 0.85, 0.92, 0.98 }
+ fg[SELECTED] = { 0.85, 0.92, 0.98 }
+ fg[INSENSITIVE] = { 0.85, 0.92, 0.98 }
+
+ bg[NORMAL] = { 0.26, 0.26, 0.31 }
+ bg[PRELIGHT] = { 0.26, 0.26, 0.31 }
+ bg[INSENSITIVE] = { 0.26, 0.26, 0.31 }
+ bg[ACTIVE] = { 0.70, 0.70, 0.70 }
+ bg[SELECTED] = { 1.0, 0.04, 0.04 }
+}
+
+style "ardour_adjusters" = "default_generic"
+{
+ bg[NORMAL] = { 0.60, 0.60, 0.60 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.06, 0.06, 0.06 }
+}
+
+style "editor_hscrollbar" = "ardour_adjusters"
+{
+ #
+ # special case: we want this scrollbar to be as tall as the
+ # zoom focus selector combobox. scrollbars don't expand to
+ # fill the space available to them, so we have to explicitly
+ # make it bigger.
+ #
+ GtkRange::slider_width = 27
+ GtkScrollbar::slider_width = 27
+}
+
+style "resizer_handle"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ bg[NORMAL] = "#818181"
+}
+
+style "ardour_progressbars" = "default_generic"
+{
+ bg[NORMAL] = { 0, 0, 0 }
+ bg[PRELIGHT] = { 0.00, 0.36, 0.40 }
+}
+
+style "preferences" = "default_base"
+{
+ font_name = "%FONT_NORMAL%"
+ fg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+}
+
+style "option_entry" = "default_base"
+{
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+ fg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+
+ base[INSENSITIVE] = { 0.07, 0.07, 0.12 }
+
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+ bg[ACTIVE] = { 0.35, 0.35, 0.40 }
+}
+
+style "red_when_active" = "medium_text"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+
+ fg[ACTIVE] = { 0, 0, 0 }
+ bg[ACTIVE] = { 1.0, 0, 0}
+}
+
+style "xrun_warn"
+{
+ font_name = "%FONT_BOLD_LARGE%"
+
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+ text[NORMAL] = { 1.0, 1.0, 1.0 }
+ text[ACTIVE] = { 1.0, 1.0, 1.0 }
+ base[NORMAL] = { 0.09, 0.48, 0.46 }
+ base[ACTIVE] = { 0.09, 0.48, 0.46 }
+ bg[NORMAL] = { 1.0, 0.48, 0.46 }
+ bg[ACTIVE] = { 0.09, 1.0, 0.46 }
+}
+/*
+style "menu_bar_base" = "default_base"
+{
+ bg[NORMAL] = { 0.2, 0.2, 0.3 }
+ bg[ACTIVE] = { 0, 0, 0 }
+ bg[PRELIGHT] = { 0, 0, 0 }
+ bg[INSENSITIVE] = { 0, 0, 0 }
+ bg[SELECTED] = { 0, 0, 0 }
+}
+*/
+style "fatal_message" = "medium_text"
+{
+ fg[ACTIVE] = { 1.0, 0, 1.0 }
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0,0,0 }
+ bg[NORMAL] = { 0,0,0 }
+ base[ACTIVE] = { 0,0,0 }
+ base[NORMAL] = { 0,0,0 }
+}
+
+style "error_message" = "medium_text"
+{
+ fg[ACTIVE] = { 1.0, 0, 0 }
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0,0,0 }
+ bg[NORMAL] = { 0,0,0 }
+ base[ACTIVE] = { 0,0,0 }
+ base[NORMAL] = { 0,0,0 }
+}
+
+style "info_message" = "medium_text"
+{
+ fg[ACTIVE] = { 1.0, 0, 0 }
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0,0,0 }
+ bg[NORMAL] = { 0,0,0 }
+ base[ACTIVE] = { 0,0,0 }
+ base[NORMAL] = { 0,0,0 }
+}
+
+style "warning_message" = "medium_text"
+{
+ fg[ACTIVE] = { 0.30,0.30, 1.0 }
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0, 0, 0 }
+ bg[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ base[NORMAL] = { 0, 0, 0 }
+}
+
+style "medium_entry" = "medium_text"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[SELECTED] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.70, 0.70, 0.70 }
+
+ base[NORMAL] = { 0.70, 0.70, 0.70 }
+ base[ACTIVE] = { 0.70, 0.70, 0.70 }
+ base[SELECTED] = { 0.70, 0.70, 0.70 }
+}
+
+style "medium_entry_noselection_fg" = "medium_entry"
+{
+ fg[SELECTED] = { 0.50, 1.0, 0.50 }
+}
+
+style "medium_entry_noselection_bg" = "medium_entry"
+{
+ bg[SELECTED] = { 1.0, 1.0, 1.0 }
+}
+
+style "medium_bold_entry" = "medium_bold_text"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[SELECTED] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.70, 0.70, 0.70 }
+
+ base[NORMAL] = { 0.70, 0.70, 0.70 }
+ base[ACTIVE] = { 0.70, 0.70, 0.70 }
+ base[SELECTED] = { 0.70, 0.70, 0.70 }
+}
+
+style "small_entry" = "small_text"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 1.0, 0 }
+ fg[SELECTED] = { 0, 1.0, 0 }
+ text[NORMAL] = { 0, 0, 0 }
+ text[ACTIVE] = { 0, 1.0, 0 }
+ text[SELECTED] = { 0, 1.0, 0 }
+ bg[NORMAL] = { 0.70, 0.70, 0.70 }
+ bg[SELECTED] = { 0.70, 0.70, 0.70 }
+ bg[SELECTED] = { 0.70, 0.70, 0.70 }
+ base[NORMAL] = { 0.70, 0.70, 0.70 }
+ base[ACTIVE] = { 0.70, 0.70, 0.70 }
+ base[SELECTED] = { 0.70, 0.70, 0.70 }
+}
+
+style "red_active_small_entry" = "small_entry"
+{
+ fg[ACTIVE] = { 1.0, 0.0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+}
+
+style "small_bold_entry" = "small_bold_text"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[SELECTED] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.70, 0.70, 0.70 }
+
+ base[NORMAL] = { 0.70, 0.70, 0.70 }
+ base[ACTIVE] = { 0.70, 0.70, 0.70 }
+ base[SELECTED] = { 0.70, 0.70, 0.70 }
+}
+
+style "small_red_on_black_entry" = "small_bold_text"
+{
+ fg[NORMAL] = { 1.0, 0, 0 }
+ fg[ACTIVE] = { 1.0, 0, 0 }
+ base[NORMAL] = { 0.0, 0.0, 0.0 }
+ base[ACTIVE] = { 0.0, 0.0, 0.0 }
+ bg[NORMAL] = { 0.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 0.0, 0.0, 0.0 }
+}
+
+style "non_recording_big_clock_display" = "medium_entry"
+{
+ font_name = "%FONT_MASSIVE%"
+
+ fg[NORMAL] = { 0.50, 1.0, 0.50 }
+ fg[ACTIVE] = { 1.0, 0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+ fg[PRELIGHT] = { 1.0, 0, 0.0 }
+ fg[INSENSITIVE] = { 1.0, 0, 0.0 }
+
+ base[NORMAL] = { 0.0, 0.0, 0.0 }
+ base[ACTIVE] = { 0.0, 0.0, 0.0 }
+ bg[NORMAL] = { 0.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 0.7, 0.0, 0.0 }
+}
+
+style "recording_big_clock_display" = "non_recording_big_clock_display"
+{
+ fg[NORMAL] = { 1.0, 0, 0 }
+}
+
+style "transport_clock_display"
+{
+ font_name = "%FONT_BOLD_BIGGER%"
+
+ fg[NORMAL] = { 0.50, 1.0, 0.50 }
+ fg[ACTIVE] = { 1.0, 0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+ fg[PRELIGHT] = { 1.0, 0, 0.0 }
+ fg[INSENSITIVE] = { 1.0, 0, 0.0 }
+
+ base[NORMAL] = { 0.0, 0.0, 0.0 }
+ base[ACTIVE] = { 0.0, 0.0, 0.0 }
+ bg[NORMAL] = { 0.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 0.0, 0.0, 0.0 }
+}
+
+style "transport_clock_display_delta" = "transport_clock_display"
+{
+ fg[NORMAL] = { 0.30, 0.30, 1.0 }
+}
+
+style "tempo_meter_clock_display"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 1.0, 1.0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+ base[NORMAL] = { 0.0, 0.48, 1.0 }
+ base[ACTIVE] = { 0.09, 0.98, 0.46 }
+ bg[NORMAL] = { 0.0, 0.48, 1.0 }
+ bg[ACTIVE] = { 0.09, 0.98, 0.46 }
+}
+
+style "default_clock_display" = "medium text"
+{
+ fg[NORMAL] = { 0.50, 1.0, 0.50 }
+ fg[ACTIVE] = { 1.0, 0.0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ bg[NORMAL] = { 0, 0, 0 }
+ bg[ACTIVE] = { 0, 0, 0 }
+}
+
+style "editor_time_ruler" = "small_text"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.74, 0.74, 0.77 }
+}
+
+style "audio_bus_base"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.65, 0.65, 0.65 }
+}
+
+style "audio_track_base" = "default_base"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 0.30, 0.30, 0.35 }
+ bg[NORMAL] = { 0.70, 0.70, 0.70 }
+ bg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+ bg[SELECTED] = { 0.80, 0.80, 0.80 }
+}
+
+style "midi_bus_base"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 0.77, 0.77, 0.72 }
+ fg[NORMAL] = { 0.7, 0.8, 0.2 }
+ #bg[NORMAL] = {0, 0.36, 0.40 }
+ bg[NORMAL] = "#444466"
+}
+
+style "midi_track_base" = "default_base"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 0.77, 0.77, 0.72 }
+ bg[NORMAL] = { 0.48, 0.30, 0.32 }
+ bg[ACTIVE] = { 0.70, 0.70, 0.80 }
+ bg[PRELIGHT] = { 0.70, 0.70, 0.80 }
+ bg[INSENSITIVE] = { 0.70, 0.70, 0.80 }
+ bg[SELECTED] = { 0.70, 0.70, 0.80 }
+}
+
+style "track_controls_inactive"
+{
+ bg[NORMAL] = { 0.60, 0.60, 0.66 }
+ bg[ACTIVE] = { 0.60, 0.60, 0.66 }
+ bg[INSENSITIVE] = { 0.60, 0.60, 0.66 }
+ bg[SELECTED] = { 0.60, 0.60, 0.66 }
+ bg[PRELIGHT] = { 0.60, 0.60, 0.66 }
+
+ #font_name = "sans 18"
+ fg[NORMAL] = { 0.7, 0.8, 0.2 }
+}
+
+style "audio_track_metrics" = "audio_track_base"
+{
+ font_name = "%FONT_TINY%"
+}
+
+style "audio_bus_metrics" = "audio_bus_base"
+{
+ font_name = "%FONT_TINY%"
+}
+
+style "audio_track_metrics_inactive" = "track_controls_inactive"
+{
+ font_name = "%FONT_TINY%"
+}
+
+style "audio_bus_metrics_inactive" = "track_controls_inactive"
+{
+ font_name = "%FONT_TINY%"
+}
+
+style "track_name_display"
+{
+ font_name = "%FONT_NORMAL%"
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ fg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ text[INSENSITIVE] = { 0.70, 0.70, 0.70 }
+
+ base[NORMAL] = { 0.80, 0.80, 0.80 }
+ base[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.80, 0.80, 0.80 }
+}
+
+style "active_track_name_display"
+{
+ font_name = "%FONT_NORMAL%"
+ text[NORMAL] = { 0.26, 0.26, 0.26 }
+ base[NORMAL] = { 0.89, 0.89, 0.89 }
+}
+
+style "track_separator"
+{
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+}
+
+#
+# Track edit groups. These styles define
+# the colors that the "edit" button will
+# use as a track is moved from
+# track edit group to track edit group.
+# There are 8 edit groups. Edit group 0
+# is used for tracks that are not editable,
+# so we leave its style to the default.
+#
+
+style "edit_group_0"
+
+{
+ bg[ACTIVE] = { 1.0, 0.65, 0.13 }
+ bg[NORMAL] = { 0.31, 0.31, 0.31 }
+ fg[NORMAL] = { 0.82, 0.91, 0.99 }
+ fg[ACTIVE] = { 0, 0, 0 }
+}
+
+style "edit_group_1"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.93, 0.34, 0.08 }
+ bg[PRELIGHT] = { 0.93, 0.34, 0.08 }
+ bg[SELECTED] = { 0.93, 0.34, 0.08 }
+}
+
+style "edit_group_2"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.93, 0.34, 0.08 }
+ bg[PRELIGHT] = { 0.93, 0.34, 0.08 }
+ bg[SELECTED] = { 0.93, 0.34, 0.08 }
+}
+
+style "edit_group_3"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.93, 0.34, 0.08 }
+ bg[PRELIGHT] = { 0.93, 0.34, 0.08 }
+ bg[SELECTED] = { 0.93, 0.34, 0.08 }
+}
+
+style "treeview_parent_node"
+{
+ # specifies *just* the color used for whole file rows when not selected
+ fg[NORMAL] = { 0.0, 0.0, 1.0 }
+}
+
+style "treeview_display" = "small_bold_text"
+{
+ # expander arrow border and DnD "icon" text
+ fg[NORMAL] = { 0, 0, 0 }
+
+ # background with no rows or no selection, plus
+ # expander arrow core and DnD "icon" background
+ base[NORMAL] = { 0.20, 0.20, 0.25 }
+
+ # selected row bg when window does not have focus (including during DnD)
+ base[ACTIVE] = { 0.0, 0.60, 0.60 }
+
+ # selected row bg when window has focus
+ base[SELECTED] = { 0, 0.75, 0.75 }
+
+ # row text when in normal state and not a parent
+ text[NORMAL] = { 0, 0, 0 }
+
+ # selected row text with window focus
+ text[SELECTED] = { 0, 1.0, 1.0 }
+
+ # selected row text without window focus (including during DnD)
+ text[ACTIVE] = { 0, 1.0, 1.0 }
+}
+
+style "main_canvas_area"
+{
+ bg[NORMAL] = { 0.40, 0.40, 0.40 }
+ bg[ACTIVE] = { 0.40, 0.40, 0.40 }
+ bg[INSENSITIVE] = { 0.40, 0.40, 0.40 }
+ bg[SELECTED] = { 0.40, 0.40, 0.40 }
+ bg[PRELIGHT] = { 0.40, 0.40, 0.40 }
+}
+
+style "track_controls_inactive"
+{
+ bg[NORMAL] = { 0.60, 0.60, 0.66 }
+ bg[ACTIVE] = { 0.60, 0.60, 0.66 }
+ bg[INSENSITIVE] = { 0.60, 0.60, 0.66 }
+ bg[SELECTED] = { 0.60, 0.60, 0.66 }
+ bg[PRELIGHT] = { 0.60, 0.60, 0.66 }
+
+ font_name = "%FONT_LARGE%"
+ fg[NORMAL] = { 0.7, 0.8, 0.2 }
+}
+
+style "edit_controls_base_selected"
+{
+ bg[NORMAL] = { 0.60, 0.54, 0.60 }
+ bg[ACTIVE] = { 0.60, 0.54, 0.60 }
+ bg[INSENSITIVE] = { 0.60, 0.54, 0.60 }
+ bg[SELECTED] = { 0.60, 0.54, 0.60 }
+ bg[PRELIGHT] = { 0.60, 0.54, 0.60 }
+}
+
+style "automation_track_controls_base"
+{
+ bg[NORMAL] = { 0.22, 0.22, 0.29 }
+ bg[ACTIVE] = { 0.22, 0.22, 0.29 }
+ bg[INSENSITIVE] = { 0.22, 0.22, 0.29 }
+ bg[SELECTED] = { 0.22, 0.22, 0.29 }
+ bg[PRELIGHT] = { 0.22, 0.22, 0.29 }
+}
+
+# Plugin Editors
+style "plugin_slider"
+{
+ font_name ="%FONT_BOLD_BIG%"
+
+ # the slider itself. the inactive part is INSENSITIVE,
+ # the active part is something else.
+
+ fg[NORMAL] = { 0.37, 0.43, 0.52 }
+ fg[ACTIVE] = { 0.37, 0.43, 0.52 }
+ fg[INSENSITIVE] = {0.35, 0.35, 0.40 } # matches default_base
+ fg[SELECTED] = { 0.37, 0.43, 0.52 }
+ fg[PRELIGHT] = { 0.37, 0.43, 0.52 }
+
+ # draws the outer rectangle around the slider
+
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[INSENSITIVE] = {0.80, 0.80, 0.80 }
+ bg[SELECTED] = { 0.80, 0.80, 0.80 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+
+ # the numeric display
+
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+ text[ACTIVE] = { 0.80, 0.80, 0.80 }
+ text[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+ text[SELECTED] = { 0.80, 0.80, 0.80 }
+ text[PRELIGHT] = { 0.80, 0.80, 0.80 }
+}
+
+style "track_list_display" = "small_bold_text"
+{
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+ text[ACTIVE] = { 0.3, 0.3, 0.3 }
+ text[INSENSITIVE] = { 0, 0, 0 }
+ text[SELECTED] = { 0.8, 0.8, 0.8 }
+
+ base[NORMAL] = { 0.70, 0.70, 0.70 }
+ base[ACTIVE] = { 0.70, 0.70, 0.70 }
+ base[INSENSITIVE] = { 0.70, 0.70, 0.70 }
+ base[SELECTED] = { 0.70, 0.70, 0.70 }
+}
+
+style "inspector_track_list_display" = "track_list_display"
+{
+ text[ACTIVE] = { 0.8, 0.8, 0.8 }
+
+ base[NORMAL] = { 0.70, 0.70, 0.70 }
+ base[ACTIVE] = { 0.2, 0.2, 0.2 }
+ base[INSENSITIVE] = { 0.70, 0.70, 0.70 }
+ base[SELECTED] = { 0.3, 0.3, 0.4 }
+}
+
+style "redirect_list_display"
+{
+ GtkTreeView::horizontal-separator = 0
+ GtkTreeView::vertical-separator = 0
+
+ font_name = "%FONT_SMALL%"
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+ text[ACTIVE] = { 0.70, 0.70, 0.70 }
+ text[INSENSITIVE] = { 0, 0, 0 }
+ text[SELECTED] = { 0.9, 0.3, 0.3 }
+
+ base[NORMAL] = { 0.70, 0.70, 0.70 }
+ base[ACTIVE] = { 0.70, 0.70, 0.70 }
+ base[INSENSITIVE] = { 0.70, 0.70, 0.70 }
+ base[SELECTED] = { 0.70, 0.70, 0.70 }
+
+ # these two are explicitly used by the cell renderer for the
+ # text
+
+ fg[NORMAL] = { 0.5, 0.5, 0.5 } # used for inactive
+ fg[ACTIVE] = { 0, 0, 0 } # used for active
+}
+
+style "inspector_redirect_list_display" = "redirect_list_display"
+{
+ base[SELECTED] = { 0.3, 0.3, 0.3 }
+}
+
+# MixerPanZone:
+#
+# the NORMAL fg color is used for the pan puck
+# the ACTIVE fg color is used for the speaker boxes
+
+style "pan_zone" = "default_base"
+{
+ fg[NORMAL] = { 0.34, 0.95, 0.92 }
+ fg[ACTIVE] = { 0.95, 0.48, 0.11 }
+}
+
+style "paler_red_when_active" = "medium_text"
+{
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ fg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.31, 0.31, 0.31 }
+ bg[PRELIGHT] = { 0.31, 0.31, 0.31 }
+
+ fg[ACTIVE] = { 0.36, 0.46, 0.28 }
+ bg[ACTIVE] = { 1.00, 0.59, 0.59}
+}
+
+style "peak_display_peaked_entry" = "small_text"
+{
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+ fg[SELECTED] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = {0.9, 0.0, 0.0 }
+ bg[ACTIVE] = { 0.9, 0.0, 0.0 }
+ bg[PRELIGHT] = { 0.9, 0.0, 0.0 }
+ bg[INSENSITIVE] = { 0.9, 0.0, 0.0 }
+ bg[SELECTED] = { 0.9, 0.0, 0.0 }
+ base[NORMAL] = { 0.9, 0.0, 0.0 }
+ base[ACTIVE] = { 0.9, 0.0, 0.0 }
+ base[PRELIGHT] = { 0.9, 0.0, 0.0 }
+ base[INSENSITIVE] = { 0.9, 0.0, 0.0 }
+ base[SELECTED] = { 0.9, 0.0, 0.0 }
+}
+
+style "selected_strip_frame"
+{
+ fg[NORMAL] = { 0.74, 0.42, 0.47 }
+ bg[NORMAL] = { 0.79, 0.28, 0.18 }
+}
+
+style "flashing_alert" = "very_small_text"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+
+ fg[ACTIVE] = { 0, 0, 0 }
+ bg[ACTIVE] = { 1.0, 0, 0}
+}
+
+style "selected_io_selector_port_list" = "medium_bold_text"
+{
+
+ GtkTreeView::even-row-color = { 0.70, 0.70, 0.70 }
+ GtkTreeView::odd-row-color = { 0.70, 0.70, 0.70 }
+
+# fg is used to color the fg (text) of the column header button
+
+ fg[NORMAL] = { 0.30, 0.30, 0.35 }
+ fg[SELECTED] = { 0.30, 0.30, 0.35 }
+ fg[ACTIVE] = { 0.30, 0.30, 0.35 }
+ fg[PRELIGHT] = { 0.30, 0.30, 0.35 }
+ fg[INSENSITIVE] = { 0.30, 0.30, 0.35 }
+
+# bg is used used to color the background of the column header button
+
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+ bg[SELECTED] = { 0.80, 0.80, 0.80 }
+
+# text is used to color the treeview row text
+
+ text[NORMAL] = { 0.30, 0.30, 0.35 }
+ text[SELECTED] = { 0.30, 0.30, 0.35 }
+
+# base is used to color a treeview with no rows
+
+ base[NORMAL] = { 0.70, 0.70, 0.70 }
+ base[ACTIVE] = { 0.70, 0.70, 0.70 }
+ base[PRELIGHT] = { 0.70, 0.70, 0.70 }
+ base[INSENSITIVE] = { 0.70, 0.70, 0.70 }
+ base[SELECTED] = { 0.70, 0.70, 0.70 }
+
+}
+
+style "io_selector_port_list" = "medium_text"
+{
+ GtkTreeView::even-row-color = { 0.70, 0.70, 0.70 }
+ GtkTreeView::odd-row-color = { 0.70, 0.70, 0.70 }
+# fg is used to color the fg (text) of the column header button
+
+ fg[NORMAL] = { 0.30, 0.30, 0.35 }
+ fg[SELECTED] = { 0.30, 0.30, 0.35 }
+ fg[ACTIVE] = { 0.30, 0.30, 0.35 }
+ fg[PRELIGHT] = { 0.30, 0.30, 0.35 }
+ fg[INSENSITIVE] = { 0.30, 0.30, 0.35 }
+
+# bg is used used to color the background of the column header button
+
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+ bg[SELECTED] = { 0.80, 0.80, 0.80 }
+
+# text is used to color the treeview row text
+
+ text[NORMAL] = { 0.30, 0.30, 0.35 }
+ text[SELECTED] = { 0.30, 0.30, 0.35 }
+
+# base is used to color a treeview with no rows
+
+ base[NORMAL] = { 0.20, 0.20, 0.25 }
+ base[ACTIVE] = { 0.20, 0.20, 0.25 }
+ base[PRELIGHT] = { 0.20, 0.20, 0.25 }
+ base[INSENSITIVE] = { 0.20, 0.20, 0.25 }
+ base[SELECTED] = { 0.20, 0.20, 0.25 }
+}
+
+style "io_selector_notebook" = "default_base"
+{
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ font_name ="%FONT_BOLD_NORMAL%"
+}
+
+style "tearoff_arrow" = "medium_bold_entry"
+{
+ fg[NORMAL] = { 0.30, 0.30, 0.30 }
+ fg[PRELIGHT] = { 0.30, 0.30, 0.30 }
+ bg[NORMAL] = { 0.30, 0.30, 0.30 }
+ bg[PRELIGHT] = { 0.30, 0.30, 0.30 }
+}
+
+style "location_row_button" = "default_button"
+{
+ font_name = "%FONT_NORMAL%"
+}
+
+style "location_rows_clock" = "default_clock_display"
+{
+ font_name = "%FONT_BIG%"
+}
+
+style "pan_slider"
+{
+ font_name = "%FONT_NORMAL%"
+
+ fg[NORMAL] = { 0.22, 0.73, 0.22 }
+ fg[ACTIVE] = { 0.22, 0.73, 0.22 }
+ fg[INSENSITIVE] = {0.22, 0.53, 0.22 }
+ fg[SELECTED] = { 0.67, 0.23, 0.22 }
+ fg[PRELIGHT] = { 0.67, 0.23, 0.22 }
+
+ bg[NORMAL] = { 0.05, 0.05, 0.05 }
+ bg[ACTIVE] = { 0, 0, 0 }
+ bg[INSENSITIVE] = {0.12, 0.19, 0.25 }
+ bg[SELECTED] = { 0, 0, 0 }
+ bg[PRELIGHT] = { 0, 0, 0 }
+
+ text[NORMAL] = { 0.70, 0.70, 0.70 }
+ text[ACTIVE] = { 0.70, 0.70, 0.70 }
+ text[INSENSITIVE] = { 0.70, 0.70, 0.70 }
+ text[SELECTED] = { 0.70, 0.70, 0.70 }
+ text[PRELIGHT] = { 0.70, 0.70, 0.70 }
+
+ # used to draw the triangular indicators
+
+ base[NORMAL] = { 0.80, 0.80, 0.80 }
+ base[ACTIVE] = { 0.80, 0.80, 0.80 }
+ base[INSENSITIVE] = {0.6, 0.6, 0.6 }
+ base[SELECTED] = { 0.80, 0.80, 0.80 }
+ base[PRELIGHT] = { 0.80, 0.80, 0.80 }
+
+}
+
+style "ardour_button" ="default_button"
+{
+ xthickness = 1
+ ythickness = 1
+}
+
+#---------------------------------------------------------------
+
+class "GtkWidget" style:highest "default_base"
+class "GtkScrollbar" style:highest "ardour_adjusters"
+class "GtkLabel" style:highest "default_generic"
+class "GtkButton" style:highest "ardour_button"
+class "GtkArrow" style:highest "tearoff_arrow"
+class "GtkProgressBar" style:highest "ardour_progressbars"
+
+widget "*FirstActionMessage" style:highest "first_action_message"
+widget "*VerboseCanvasCursor" style:highest "verbose_canvas_cursor"
+widget "*MarkerText" style:highest "marker_text"
+widget "*TimeAxisViewItemName*" style:highest "time_axis_view_item_name"
+#widget "*ExportProgress" style:highest "default_generic"
+widget "*ExportFileLabel" style:highest "small_bold_text"
+widget "*ExportFormatLabel" style:highest "medium_bold_text"
+widget "*ExportHeader" style:highest "small_bold_text"
+widget "*ExportFileDisplay" style:highest "medium_entry"
+widget "*ExportFormatDisplay" style:highest "medium_entry"
+widget "*ExportCheckbox" style:highest "small_entry"
+widget "*ExportTrackSelector*" style:highest "medium_entry_noselection_bg"
+widget "*EditModeSelector" style:highest "medium_bold_entry"
+widget "*SnapTypeSelector" style:highest "medium_bold_entry"
+widget "*SnapModeSelector" style:highest "medium_bold_entry"
+widget "*ZoomFocusSelector" style:highest "medium_bold_entry"
+widget "*ArdourContextMenu*" style:highest "default_menu"
+widget "*EditGroupTitleButton*" style:highest "default_button"
+widget "*MixerGroupTitleButton*" style:highest "default_button"
+widget "*ErrorLogCloseButton" style:highest "default_button"
+widget "*EditorGTKButton*" style:highest "default_button"
+widget "*ToolbarButton" style:highest "default_button"
+widget "*ToolbarButton*" style:highest "default_button"
+widget "*CrossfadeEditButton" style:highest "default_button"
+widget "*CrossfadeEditButton*" style:highest "default_button"
+widget "*TrackHistoryButton*" style:highest "default_button"
+widget "*TrackSizeButton*" style:highest "default_button"
+widget "*TrackPlaylistButton*" style:highest "default_button"
+widget "*TrackAutomationButton*" style:highest "default_button"
+widget "*TrackGroupButton*" style:highest "default_button"
+widget "*TrackMixButton*" style:highest "default_button"
+widget "*TrackVisualButton*" style:highest "default_button"
+widget "*TrackRemoveButton*" style:highest "default_button"
+widget "*BaseButton" style:highest "default_button"
+widget "*TakeButtonLabel" style:highest "default_generic"
+widget "*MixerWidthButton" style:highest "default_button"
+widget "*MixerHideButton" style:highest "default_button"
+widget "*MixerSendButton" style:highest "default_button"
+widget "*MixerSendButtonLabel" style:highest "default_button"
+widget "*MixerSendSwitch" style:highest "default_button"
+widget "*MixerInsertButton" style:highest "default_button"
+widget "*MixerInsertButtonLabel" style:highest "default_button"
+widget "*MixerInsertSwitch" style:highest "default_button"
+widget "*MixerMonitorInputButton*" style:highest "very_small_button"
+widget "*MixerMonitorInputButton.*" style:highest "very_small_button"
+widget "*MixerIOButton" style:highest "very_small_button"
+widget "*MixerIOButtonLabel" style:highest "very_small_button"
+widget "*AddRouteDialogSpinner" style:highest "ardour_adjusters"
+widget "*AddRouteDialogRadioButton*" style:highest "preferences"
+widget "*OptionsNotebook" style:highest "preferences"
+widget "*OptionEditorToggleButton*" style:highest "preferences"
+widget "*OptionsLabel" style:highest "preferences"
+widget "*OptionEditorAuditionerLabel" style:highest "preferences"
+widget "*OptionsEntry" style:highest "option_entry"
+widget "*InspectorNotebook" style:highest "preferences"
+widget "*NewSessionDialog" style:highest "preferences"
+widget "*NewSessionDialogButton*" style:highest "preferences"
+widget "*MixerSendSwitch*" style:highest "very_small_red_active_and_selected_button"
+widget "*OptionEditorToggleButton" style:highest "small_red_active_and_selected_button"
+widget "*NewSessionDialogButton" style:highest "small_red_active_and_selected_button"
+widget "*RecordEnableButton" style:highest "track_rec_enable_button"
+widget "*RecordEnableButton-active" style:highest "track_rec_enable_button_active"
+widget "*RecordEnableButton-alternate" style:highest "track_rec_enable_button_alternate"
+widget "*MixerRecordEnableButton" style:highest "mixer_track_rec_enable_button"
+widget "*MixerRecordEnableButton-active" style:highest "mixer_track_rec_enable_button_active"
+widget "*MixerRecordEnableButton-alternate" style:highest "mixer_track_rec_enable_button_alternate"
+widget "*MuteButton" style:highest "mute_button"
+widget "*MuteButton-alternate" style:highest "mute_button_alternate"
+widget "*MuteButton-active" style:highest "mute_button_active"
+widget "*MixerMuteButton" style:highest "mixer_mute_button"
+widget "*MixerMuteButton-alternate" style:highest "mixer_mute_button_alternate"
+widget "*MixerMuteButton-active" style:highest "mixer_mute_button_active"
+widget "*SoloButton" style:highest "solo_button"
+widget "*SoloButton-alternate" style:highest "solo_button_alternate"
+widget "*SoloButton-active" style:highest "solo_button_active"
+widget "*MixerSoloButton" style:highest "mixer_solo_button"
+widget "*MixerSoloButton-alternate" style:highest "mixer_solo_button_alternate"
+widget "*MixerSoloButton-active" style:highest "mixer_solo_button_active"
+widget "*TrackLoopButton*" style:highest "track_loop_button"
+widget "*PanAutomationLineSelector*" style:highest "multiline_combo"
+widget "*EditorTimeButton*" style:highest "time_button"
+widget "*MixerPhaseInvertButton*" style:highest "very_small_button"
+widget "*MixerPhaseInvertButton.*" style:highest "very_small_button"
+widget "*MixerAutomationRecordingButton*" style:highest "very_small_button"
+widget "*MixerAutomationRecordingButton.*" style:highest "very_small_button"
+widget "*MixerAutomationModeButton*" style:highest "very_small_button"
+widget "*MixerAutomationModeButton.*" style:highest "very_small_button"
+widget "*MixerAutomationPlaybackButton*" style:highest "very_small_button"
+widget "*MixerAutomationPlaybackButton.*" style:highest "very_small_button"
+widget "*MixerNameButton" style:highest "very_small_button"
+widget "*MixerNameButtonLabel" style:highest "very_small_button"
+widget "*MixerGroupButton" style:highest "very_small_button"
+widget "*MixerGroupButtonLabel" style:highest "very_small_button"
+widget "*MixerCommentButton" style:highest "very_small_button"
+widget "*MixerCommentButton*" style:highest "very_small_button"
+widget "*EditGroupButton" style:highest "very_small_button"
+widget "*EditGroupButtonLabel" style:highest "very_small_button"
+widget "*TransportButton" style:highest "transport_rec_button"
+widget "*TransportButton-active" style:highest "transport_button_active"
+widget "*ShuttleButton" style:highest "transport_button"
+widget "*ShuttleButton*" style:highest "transport_button"
+widget "*ShuttleDisplay" style:highest "transport_button"
+widget "*ShuttleDisplay*" style:highest "transport_button"
+widget "*ShuttleControl" style:highest "shuttle_control"
+widget "*TransportRecButton" style:highest "transport_rec_button"
+widget "*TransportRecButton*" style:highest "transport_rec_button"
+widget "*TransportRecButton-active" style:highest "transport_rec_button_active"
+widget "*TransportRecButton-active*" style:highest "transport_rec_button_active"
+widget "*TransportRecButton-alternate" style:highest "transport_rec_button_alternate"
+widget "*TransportRecButton-alternate*" style:highest "transport_rec_button_alternate"
+widget "*TransportRecButton*" style:highest "transport_rec_button"
+widget "*RecordingXrunWarningWindow" style:highest "xrun_warn"
+widget "*RecordingXrunWarningWindow*" style:highest "xrun_warn"
+/*widget "*MainMenuBar" style:highest "menu_bar_base"*/
+widget "*ErrorMessage" style:highest "error_message"
+widget "*FatalMessage" style:highest "fatal_message"
+widget "*InfoMessage" style:highest "info_message"
+widget "*WarningMessage" style:highest "warning_message"
+widget "*BigClockNonRecording" style:highest "non_recording_big_clock_display"
+widget "*BigClockRecording" style:highest "recording_big_clock_display"
+widget "*TransportClockDisplay" style:highest "transport_clock_display"
+widget "*SecondaryClockDisplay" style:highest "transport_clock_display"
+widget "*TransportClockDisplayDelta" style:highest "transport_clock_display_delta"
+widget "*SecondaryClockDisplayDelta" style:highest "transport_clock_display_delta"
+widget "*AudioClockFramesUpperInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockFramesLowerInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockSMPTEUpperInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockSMPTELowerInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockBBTUpperInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockBBTLowerInfo" style:highest "tempo_meter_clock_display"
+widget "*SelectionStartClock" style:highest "default_clock_display"
+widget "*SelectionEndClock" style:highest "default_clock_display"
+widget "*EditPointClock" style:highest "default_clock_display"
+widget "*PreRollClock" style:highest "default_clock_display"
+widget "*PostRollClock" style:highest "default_clock_display"
+widget "*NudgeClock" style:highest "default_clock_display"
+widget "*InsertTimeClock" style:highest "default_clock_display"
+widget "*ZoomRangeClock" style:highest "default_clock_display"
+widget "*SMPTEOffsetClock" style:highest "default_clock_display"
+widget "*TransportLabel" style:highest "small_bold_text"
+widget "*TakeLabel" style:highest "small_bold_text"
+widget "*LocationLabel" style:highest "small_bold_text"
+widget "*WipeLabel" style:highest "small_bold_text"
+widget "*TakeTagLabel" style:highest "small_bold_text"
+widget "*ToolBarLabel" style:highest "small_bold_text"
+widget "*EditorDisplayLabel" style:highest "small_bold_text"
+widget "*NewSessionLabel" style:highest "large_text"
+widget "*GlobalButtonLabel" style:highest "default_generic"
+widget "*ClickButton" style:highest "medium_entry"
+widget "*RegionNameDisplay" style:highest "medium_entry"
+widget "*PluginDisplay" style:highest "medium_entry"
+widget "*SelectionDisplay" style:highest "medium_entry"
+widget "*HistorySelector" style:highest "medium_entry"
+widget "*LocationSelector" style:highest "medium_entry"
+widget "*TakeSelector" style:highest "medium_entry"
+widget "*RegionSelector" style:highest "medium_entry"
+widget "*SMPTERuler" style:highest "editor_time_ruler"
+widget "*BBTRuler" style:highest "editor_time_ruler"
+widget "*FramesRuler" style:highest "editor_time_ruler"
+widget "*MinSecRuler" style:highest "editor_time_ruler"
+widget "*BaseFrame" style:highest "base_frame"
+
+widget "*AudioTrackStripBase" style:highest "audio_track_base"
+widget "*AudioBusStripBase" style:highest "audio_bus_base"
+widget "*MidiTrackStripBase" style:highest "midi_track_base"
+widget "*AudioTrackStripBaseInactive" style:highest "track_controls_inactive"
+widget "*AudioBusStripBaseInactive" style:highest "track_controls_inactive"
+widget "*MidiTrackStripBaseInactive" style:highest "track_controls_inactive"
+widget "*FaderMetricsStrip" style:highest "audio_track_metrics"
+widget "*AudioTrackMetrics" style:highest "audio_track_metrics"
+widget "*AudioBusMetrics" style:highest "audio_bus_metrics"
+widget "*AudioTrackMetricsInactive" style:highest "audio_track_metrics_inactive"
+widget "*AudioBusMetricsInactive" style:highest "audio_bus_metrics_inactive"
+
+widget "*TimeAxisViewControlsBaseUnselected" style:highest "audio_track_base"
+widget "*AudioTrackControlsBaseUnselected" style:highest "audio_track_base"
+widget "*MidiTrackControlsBaseUnselected" style:highest "midi_track_base"
+widget "*AudioTrackFader" style:highest "gain_fader"
+
+widget "*BusControlsBaseUnselected" style:highest "audio_bus_base"
+widget "*AudioBusFader" style:highest "gain_fader"
+widget "*TrackSeparator" style:highest "track_separator"
+widget "*TrackEditIndicator0*" style:highest "edit_group_0"
+widget "*TrackEditIndicator1*" style:highest "edit_group_1"
+widget "*TrackEditIndicator2*" style:highest "edit_group_2"
+widget "*TrackEditIndicator3*" style:highest "edit_group_3"
+widget "*TrackEditIndicator4*" style:highest "edit_group_3"
+widget "*TrackEditIndicator5*" style:highest "edit_group_3"
+widget "*TrackEditIndicator6*" style:highest "edit_group_3"
+widget "*TrackEditIndicator7*" style:highest "edit_group_3"
+widget "*EditorTrackNameDisplay" style:highest "track_name_display"
+widget "*EditorTrackNameDisplay*" style:highest "track_name_display"
+widget "*EditorActiveTrackNameDisplay" style:highest "active_track_name_display"
+widget "*EditorActiveTrackNameDisplay*" style:highest "active_track_name_display"
+widget "*CrossfadeEditAuditionButton" style:highest "red_when_active"
+widget "*CrossfadeEditAuditionButton*" style:highest "red_when_active"
+widget "*CrossfadeEditCurveButton" style:highest "red_when_active"
+widget "*CrossfadeEditCurveButton*" style:highest "red_when_active"
+widget "*CrossfadeEditLabel" style:highest "medium_text"
+widget "*CrossfadeEditFrame" style:highest "base_frame"
+widget "*MouseModeButton" style:highest "default_button"
+widget "*MouseModeButton*" style:highest "default_button"
+widget "*EditorMainCanvas" style:highest "main_canvas_area"
+widget "*AudioTrackControlsBaseInactiveUnselected" style:highest "track_controls_inactive"
+widget "*BusControlsBaseInactiveUnselected" style:highest "track_controls_inactive"
+widget "*AutomationTrackControlsBaseInactiveUnselected" style:highest "track_controls_inactive"
+widget "*AutomationTrackName" style:highest "automation_track_name"
+widget "*AudioTrackControlsBaseInactiveSelected" style:highest "track_controls_inactive"
+widget "*BusControlsBaseInactiveSelected" style:highest "track_controls_inactive"
+widget "*AutomationTrackControlsBaseInactiveSelected" style:highest "track_controls_inactive"
+widget "*AudioTrackControlsBaseSelected" style:highest "edit_controls_base_selected"
+widget "*MidiTrackControlsBaseSelected" style:highest "edit_controls_base_selected"
+widget "*BusControlsBaseSelected" style:highest "edit_controls_base_selected"
+widget "*AutomationTrackControlsBase" style:highest "automation_track_controls_base"
+widget "*AutomationTrackControlsBaseSelected" style:highest "edit_controls_base_selected"
+/*widget "*EditorMenuBar*" style:highest "black_mackie_menu_bar"
+widget "*MainMenuBar*" style:highest "black_mackie_menu_bar"
+*/
+widget "*ZoomClickBox" style:highest "medium_bold_entry"
+widget "*PluginParameterLabel" style:highest "medium_text"
+widget "*PluginNameInfo" style:highest "plugin_name_text"
+widget "*PluginMakerInfo" style:highest "plugin_maker_text"
+widget "*PluginParameterInfo" style:highest "medium_text"
+widget "*MotionControllerValue" style:highest "medium_entry"
+widget "*ParameterValueDisplay" style:highest "medium_bold_entry"
+widget "*PluginUIClickBox" style:highest "medium_bold_entry"
+widget "*PluginUIClickBox*" style:highest "medium_bold_entry"
+widget "*PluginSlider" style:highest "plugin_slider"
+widget "*RedirectSelector" style:highest "redirect_list_display"
+widget "*RedirectSelector.*" style:highest "redirect_list_display"
+widget "*EditGroupDisplay" style:highest "treeview_display"
+widget "*TrackListDisplay" style:highest "treeview_display"
+widget "*RegionListDisplay" style:highest "treeview_display"
+widget "*NamedSelectionDisplay" style:highest "treeview_display"
+widget "*SnapshotDisplay" style:highest "treeview_display"
+widget "*MixerTrackCommentArea" style:highest "option_entry"
+widget "*MixerPanZone" style:highest "pan_zone"
+widget "*MixerTrackDisplayList" style:highest "treeview_display"
+widget "*MixerSnapshotDisplayList" style:highest "treeview_display"
+widget "*MixerAuxDisplayList" style:highest "treeview_display"
+widget "*MixerGroupList" style:highest "treeview_display"
+widget "*RegionEditorLabel" style:highest "medium_text"
+widget "*RegionEditorSmallLabel" style:highest "small_text"
+widget "*RegionEditorEntry" style:highest "medium_entry"
+widget "*RegionEditorClock" style:highest "default_clock_display"
+widget "*RegionEditorToggleButton" style:highest "paler_red_when_active"
+widget "*RegionEditorToggleButton*" style:highest "paler_red_when_active"
+widget "*MixerStripSpeedBase" style:highest "small_entry"
+widget "*MixerStripSpeedBase*" style:highest "small_entry"
+widget "*MixerStripSpeedBaseNotOne" style:highest "small_red_on_black_entry"
+widget "*MixerStripSpeedBaseNotOne*" style:highest "small_red_on_black_entry"
+widget "*MixerStripGainDisplay" style:highest "small_entry"
+widget "*MixerStripGainDisplay*" style:highest "small_entry"
+widget "*MixerStripGainUnitButton" style:highest "very_small_button"
+widget "*MixerStripGainUnitButton*" style:highest "very_small_button"
+widget "*MixerStripMeterPreButton" style:highest "very_small_button"
+widget "*MixerStripMeterPreButton*" style:highest "very_small_button"
+widget "*MixerStripPeakDisplay*" style:highest "red_active_small_entry"
+widget "*MixerStripPeakDisplayPeak*" style:highest "peak_display_peaked_entry"
+widget "*MixerStripSelectedFrame" style:highest "selected_strip_frame"
+widget "*MixerStripFrame" style:highest "base_frame"
+widget "*HWMonitorButton" style:highest "red_when_active"
+widget "*HWMonitorButton*" style:highest "red_when_active"
+widget "*TransportSoloAlert" style:highest "flashing_alert"
+widget "*TransportSoloAlert.*" style:highest "flashing_alert"
+widget "*TransportAuditioningAlert" style:highest "flashing_alert"
+widget "*TransportAuditioningAlert.*" style:highest "flashing_alert"
+widget "*FadeCurve" style:highest "medium_bold_entry"
+widget "*FadeCurve*" style:highest "medium_bold_entry"
+widget "*IOSelectorButton" style:highest "default_button"
+widget "*IOSelectorButton*" style:highest "default_button"
+widget "*IOSelectorList" style:highest "medium_entry_noselection_fg"
+widget "*IOSelectorPortList" style:highest "io_selector_port_list"
+widget "*IOSelectorPortList.*" style:highest "io_selector_port_list"
+widget "*IOSelectorPortListSelected" style:highest "selected_io_selector_port_list"
+widget "*IOSelectorPortListSelected.*" style:highest "selected_io_selector_port_list"
+widget "*IOSelectorNotebook" style:highest "io_selector_notebook"
+widget "*IOSelectorNotebookTab" style:highest "io_selector_notebook"
+widget "*IOSelectorFrame" style:highest "base_frame"
+widget "*ConnectionEditorButton" style:highest "default_button"
+widget "*ConnectionEditorButton*" style:highest "default_button"
+widget "*ConnectionEditorList" style:highest "medium_entry_noselection_fg"
+widget "*ConnectionEditorConnectionList" style:highest "medium_entry"
+widget "*ConnectionEditorPortList" style:highest "io_selector_port_list"
+widget "*ConnectionEditorPortListSelected" style:highest "selected_io_selector_port_list"
+widget "*ConnectionEditorNotebook" style:highest "io_selector_notebook"
+widget "*ConnectionEditorNotebookTab" style:highest "io_selector_notebook"
+widget "*ConnectionEditorFrame" style:highest "base_frame"
+widget "*RouteParamsListDisplay" style:highest "inspector_track_list_display"
+widget "*RouteParamsPreListDisplay" style:highest "inspector_redirect_list_display"
+widget "*RouteParamsPostListDisplay" style:highest "inspector_redirect_list_display"
+widget "*TearOffArrow" style:highest "tearoff_arrow"
+widget "*RouteParamsTitleButton" style:highest "medium_text"
+widget "*RouteParamsTitleLabel" style:highest "medium_text"
+widget "*PluginAutomateRecordButton" style:highest "small_red_active_and_selected_button"
+widget "*PluginAutomateRecordButton*" style:highest "small_red_active_and_selected_button"
+widget "*PluginAutomatePlayButton" style:highest "small_red_active_and_selected_button"
+widget "*PluginAutomatePlayButton*" style:highest "small_red_active_and_selected_button"
+widget "*PluginAutomateButton" style:highest "small_button"
+widget "*PluginAutomateButton*" style:highest "small_button"
+widget "*PluginSaveButton" style:highest "small_button"
+widget "*PluginSaveButton*" style:highest "small_button"
+widget "*PluginLoadButton" style:highest "small_button"
+widget "*PluginLoadButton*" style:highest "small_button"
+
+widget "*MetricDialogFrame" style:highest "base_frame"
+widget "*MetricEntry" style:highest "medium_bold_entry"
+widget "*MetricButton" style:highest "default_button"
+widget "*MetricButton.*" style:highest "default_button"
+widget "*MetricLabel" style:highest "medium_text"
+widget "*TimeStretchButton" style:highest "default_button"
+widget "*TimeStretchButton.*" style:highest "default_button"
+widget "*TimeStretchProgress" style:highest "default_button"
+widget "*ChoiceWindow" style:highest "default_generic"
+widget "*ChoicePrompt" style:highest "default_generic"
+widget "*ChoiceButton" style:highest "default_button"
+widget "*ChoiceButton*" style:highest "default_button"
+widget "*SelectionModeButton" style:highest "default_button"
+widget "*SelectionModeButton*" style:highest "default_button"
+widget "*TrackLabel" style:highest "medium_text"
+widget "*TrackPlugName" style:highest "medium_text"
+widget "*TrackParameterName" style:highest "small_text"
+widget "*AddRouteDialog*" style:highest "medium_text"
+widget "*AddRouteDialog.GtkLabel" style:highest "medium_text"
+widget "*AddRouteDialogChannelChoice" style:highest "medium_bold_entry"
+widget "*AddRouteDialogSpinner" style:highest "medium_bold_entry"
+widget "*AddRouteDialogSpinner*" style:highest "medium_bold_entry"
+widget "*AddRouteDialogRadioButton" style:highest "red_when_active"
+widget "*AddRouteDialogButton" style:highest "default_button"
+widget "*AddRouteDialogNameTemplateEntry" style:highest "medium_bold_entry"
+widget "*NewSessionIOLabel" style:highest "larger_bold_text"
+widget "*NewSessionSR1Label" style:highest "red_medium_text"
+widget "*NewSessionSR2Label" style:highest "medium_text"
+widget "*NewSessionChannelChoice" style:highest "medium_bold_entry"
+widget "*NewSessionMainButton" style:highest "larger_bold_text"
+widget "*NewSessionMainButton*" style:highest "larger_bold_text"
+widget "*NewSessionMainLabel" style:highest "larger_bold_text"
+widget "*LocationEditRowClock" style:highest "location_rows_clock"
+widget "*LocationEditNameLabel" style:highest "medium_text"
+widget "*LocationEditSetButton" style:highest "location_row_button"
+widget "*LocationEditSetButton*" style:highest "location_row_button"
+widget "*LocationEditGoButton" style:highest "location_row_button"
+widget "*LocationEditGoButton*" style:highest "location_row_button"
+widget "*LocationEditCdButton" style:highest "small_red_active_and_selected_button"
+widget "*LocationEditCdButton*" style:highest "small_red_active_and_selected_button"
+widget "*LocationEditHideButton" style:highest "small_red_active_and_selected_button"
+widget "*LocationEditHideButton*" style:highest "small_red_active_and_selected_button"
+widget "*LocationEditNumberLabel" style:highest "small_text"
+widget "*LocationLocEditorFrame" style:highest "base_frame"
+widget "*LocationRangeEditorFrame" style:highest "base_frame"
+widget "*LocationEditNameEntry" style:highest "option_entry"
+widget "*LocationAddLocationButton" style:highest "default_button"
+widget "*LocationAddLocationButton*" style:highest "default_button"
+widget "*LocationAddRangeButton" style:highest "default_button"
+widget "*LocationAddRangeButton*" style:highest "default_button"
+widget "*LocationEditRemoveButton" style:highest "location_row_button"
+widget "*LocationEditRemoveButton*" style:highest "location_row_button"
+widget "*PanSlider" style:highest "pan_slider"
+widget "*PanningLinkButton" style:highest "mixer_red_active_button"
+widget "*PanningLinkButton.*" style:highest "mixer_red_active_button"
+widget "*PanningLinkDirectionButton" style:highest "very_small_button"
+widget "*PanningLinkDirectionButton.*" style:highest "very_small_button"
+widget "*ChannelCountSelector" style:highest "medium_bold_entry"
+widget "*ChannelCountSelector.GtkArrow" style:highest "default_generic"
+widget "*RegionListWholeFile" style:highest "treeview_parent_node"
+widget "*EditorHScrollbar" style:highest "editor_hscrollbar"
+widget "*ResizerHandler" style:highest "resizer_handle"
diff --git a/gtk2_ardour/ardour2_ui_sae.conf b/gtk2_ardour/ardour2_ui_sae.conf
index b9fac38909..277ec44300 100644
--- a/gtk2_ardour/ardour2_ui_sae.conf
+++ b/gtk2_ardour/ardour2_ui_sae.conf
@@ -2,12 +2,13 @@
<Ardour>
<Canvas>
<Option name="active crossfade" value="e8ed3d77"/>
- <Option name="audio bus base" value="dbd1ea68"/>
- <Option name="audio track base" value="c6d3d868"/>
+ <Option name="audio bus base" value="abe1aa68"/>
+ <Option name="audio master bus base" value="ebb1b168"/>
+ <Option name="audio track base" value="c3c3c868"/>
<Option name="automation line" value="44bc59ff"/>
<Option name="automation track fill" value="a0a0ce68"/>
<Option name="automation track outline" value="282828ff"/>
- <Option name="cdmarkerbar" value="9090a3ff"/>
+ <Option name="cdmarkerbar" value="9090a3a0"/>
<Option name="clipped waveform" value="ff0000e5"/>
<Option name="control point fill" value="000000ff"/>
<Option name="control point outline" value="000000ff"/>
@@ -42,13 +43,13 @@
<Option name="location punch" value="7c3a3aff"/>
<Option name="location range" value="497a59ff"/>
<Option name="marker bar separator" value="30303088"/>
- <Option name="markerbar" value="9898a3ff"/>
+ <Option name="markerbar" value="9898a3a0"/>
<Option name="MarkerDragLine" value="004f00f9"/>
<Option name="marker label" value="000000ff"/>
<Option name="MarkerTrack" value="ddddd8ff"/>
<Option name="MeasureLineBar" value="8c8c988c"/>
<Option name="MeasureLineBeat" value="72727266"/>
- <Option name="meterbar" value="666672ff"/>
+ <Option name="meterbar" value="666672a0"/>
<Option name="MeterColorBase" value="0000ffff"/>
<Option name="MeterColorClip" value="ff0000ff"/>
<Option name="MeterColorMid" value="73f9baff"/>
@@ -63,7 +64,7 @@
<Option name="PunchLine" value="a80000ff"/>
<Option name="RangeDragBarRect" value="969696c6"/>
<Option name="RangeDragRect" value="82c696c6"/>
- <Option name="rangemarker bar" value="7f7f8cff"/>
+ <Option name="rangemarker bar" value="7f7f8ca0"/>
<Option name="RecordingRect" value="e5c6c6ff"/>
<Option name="region base" value="99a7b584"/>
<Option name="RubberBandRect" value="c6c6c659"/>
@@ -72,16 +73,19 @@
<Option name="selected region base" value="130505ff"/>
<Option name="selected waveform fill" value="e6e6fac8"/>
<Option name="selected waveform outline" value="1a1a1acc"/>
+ <Option name="recorded region base" value="ad7173ff"/>
+ <Option name="recorded waveform fill" value="74383884"/>
+ <Option name="recorded waveform outline" value="3b0013ff"/>
<Option name="SelectionRect" value="e8f4d377"/>
<Option name="Selection" value="636363b2"/>
- <Option name="tempo bar" value="72727fff"/>
+ <Option name="tempo bar" value="72727fa0"/>
<Option name="TempoMarker" value="f2425bff"/>
<Option name="TimeAxisFrame" value="000000cb"/>
<Option name="time-stretch-fill" value="e2b5b596"/>
<Option name="time-stretch-outline" value="63636396"/>
<Option name="TransportDragRect" value="969696c6"/>
<Option name="TransportLoopRect" value="1e7728f9"/>
- <Option name="TransportMarkerBar" value="8c8c96ff"/>
+ <Option name="TransportMarkerBar" value="8c8c96a0"/>
<Option name="TransportPunchRect" value="6d2828e5"/>
<Option name="TrimHandleLocked" value="ea0f0f28"/>
<Option name="TrimHandle" value="1900ff44"/>
diff --git a/gtk2_ardour/ardour3_ui_dark_sae.rc.in b/gtk2_ardour/ardour3_ui_dark_sae.rc.in
new file mode 100644
index 0000000000..1b0635a1b9
--- /dev/null
+++ b/gtk2_ardour/ardour3_ui_dark_sae.rc.in
@@ -0,0 +1,1587 @@
+#
+# This is the GTK style file for Ardour
+#
+
+style "very_small_text"
+{
+ font_name = "%FONT_SMALLER%"
+}
+
+style "small_text"
+{
+ font_name = "%FONT_SMALL%"
+}
+
+style "small_bold_text"
+{
+ font_name = "%FONT_BOLD_SMALL%"
+}
+
+style "medium_bold_text"
+{
+ font_name = "%FONT_BOLD_NORMAL%"
+}
+
+style "medium_text"
+{
+ font_name = "%FONT_NORMAL%"
+}
+
+style "red_medium_text" = "medium_text"
+{
+ fg[NORMAL] = { 1.0, 0, 0 }
+ fg[ACTIVE] = { 1.0, 0, 0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+}
+
+style "large_text"
+{
+ font_name = "%FONT_LARGE%"
+}
+
+style "larger_bold_text"
+{
+ font_name = "%FONT_BOLD_BIGGER%"
+}
+
+style "plugin_name_text"
+{
+ font_name = "%FONT_BOLD_LARGER%"
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+}
+
+style "plugin_maker_text"
+{
+ font_name = "%FONT_BOLD_BIGGER%"
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+}
+
+style "automation_track_name"
+{
+ font_name = "%FONT_ITALIC_NORMAL%"
+}
+
+style "first_action_message"
+{
+ font_name = "%FONT_HUGER%"
+}
+
+style "verbose_canvas_cursor"
+{
+ font_name = "%FONT_BOLD_LARGER%"
+}
+
+style "marker_text"
+{
+ font_name = "%FONT_SMALLER%"
+}
+
+style "time_axis_view_item_name"
+{
+ font_name = "%FONT_SMALLER%"
+}
+
+style "default_base" = "medium_text"
+{
+
+ GtkWidget::cursor_color = {1.0, 1.0, 1.0 }
+ GtkButton::default_border = { 0, 0, 0, 0 }
+ GtkButton::default_outside_border = { 0, 0, 0, 0 }
+ GtkButton::button_relief = GTK_RELIEF_NONE
+ GtkTreeView::vertical-padding = 0
+ GtkTreeView::horizontal-padding = 0
+ GtkTreeView::even-row-color = { 0, 0, 0 }
+ GtkTreeView::odd-row-color = { 0.06, 0.06, 0.10 }
+
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ fg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ fg[PRELIGHT] = { 1.0, 1.0, 1.0 }
+ fg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+ fg[SELECTED] = { 0.80, 0.80, 0.80 }
+
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+ bg[ACTIVE] = { 0.35, 0.35, 0.40 }
+ bg[PRELIGHT] = "#565690"
+ bg[INSENSITIVE] = { 0.10, 0.10, 0.10 }
+ bg[SELECTED] = { 0, 0.40, 0.60 }
+
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+ text[ACTIVE] = { 0.80, 0.80, 0.80 }
+ text[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ text[INSENSITIVE] = { 0.80, 0.80, 0.80}
+ text[SELECTED] = { 1.0, 1.0, 1.0 }
+
+ base[ACTIVE] = "#272a2f"
+ base[NORMAL] = "#1a1e20"
+ base[PRELIGHT] = { 0.20, 0.20, 0.20 }
+ base[INSENSITIVE] = "#4c5159"
+ base[SELECTED] = { 0.25, 0.25, 0.25 }
+
+ engine "clearlooks"
+ {
+ menubarstyle = 0 # 0 = flat, 1 = sunken, 2 = flat gradient
+ }
+}
+
+style "base_frame"
+{
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+}
+
+style "transport_base" = "medium_bold_text"
+{
+ bg[NORMAL] = { 0.10, 0.10, 0.10 }
+ bg[ACTIVE] = { 0, 0, 0 }
+ bg[PRELIGHT] = { 0, 0, 0 }
+ bg[INSENSITIVE] = { 0, 0, 0 }
+ bg[SELECTED] = { 0, 0, 0 }
+}
+/*
+style "black_mackie_menu_bar"
+{
+ font_name = "%FONT_BOLD_NORMAL%"
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ bg[NORMAL] = { 0, 0, 0 }
+}
+*/
+
+style "default_button"
+{
+ font_name = "%FONT_SMALL%"
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.30, 0.30, 0.35 }
+ bg[ACTIVE] = "#565690"
+ bg[PRELIGHT] = { 0.15, 0.15, 0.20 }
+ bg[INSENSITIVE] = { 0.15, 0.15, 0.20 }
+ bg[SELECTED] = { 0.15, 0.15, 0.20 }
+}
+
+style "default_menu"
+{
+ font_name = "%FONT_NORMAL%"
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.30, 0.30, 0.35 }
+ bg[ACTIVE] = "#565690"
+ bg[PRELIGHT] = { 0.15, 0.15, 0.20 }
+ bg[INSENSITIVE] = { 0.15, 0.15, 0.20 }
+ bg[SELECTED] = { 0.15, 0.15, 0.20 }
+}
+
+style "default_generic"
+{
+ font_name = "%FONT_NORMAL%"
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.30, 0.30, 0.35 }
+ bg[ACTIVE] = "#565690"
+ bg[PRELIGHT] = { 0.15, 0.15, 0.20 }
+ bg[INSENSITIVE] = { 0.15, 0.15, 0.20 }
+ bg[SELECTED] = { 0.15, 0.15, 0.20 }
+}
+
+style "very_small_button" = "default_button"
+{
+ font_name = "%FONT_SMALLER%"
+ ythickness = 0
+ xthickness = 0
+}
+
+style "small_button" = "default_button"
+{
+}
+
+style "very_small_red_active_and_selected_button" = "very_small_button"
+{
+ bg[ACTIVE] = { 1.0, 0, 0}
+ bg[SELECTED] = { 1.0, 0, 0}
+}
+
+style "small_red_active_and_selected_button" = "small_button"
+{
+ fg[ACTIVE] = { 0, 0, 0 }
+ bg[ACTIVE] = { 1.0, 0, 0}
+ bg[SELECTED] = { 1.0, 0, 0}
+}
+
+style "gain_fader"
+{
+ bg[NORMAL] = { 0.269, 0.269, 0.300}
+ bg[ACTIVE] = { 0.152, 0.152, 0.168 }
+}
+
+
+style "track_rec_enable_button" = "small_button"
+{
+}
+
+style "track_rec_enable_button_active" = "small_button"
+{
+ fg[SELECTED] = { 0.0, 0.0, 0.0 }
+ fg[ACTIVE] = { 0.0, 0.0, 0.0 }
+ fg[PRELIGHT] = { 0.0, 0.0, 0.0 }
+ fg[NORMAL] = { 0.0, 0.0, 0.0 }
+
+ bg[NORMAL] = { 1.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 1.0, 0.0, 0.0 }
+ bg[SELECTED] = { 1.0, 0.0, 0.0 }
+ bg[PRELIGHT] = { 1.0, 0.0, 0.0 }
+}
+
+style "track_rec_enable_button_alternate" = "small_button"
+{
+ fg[SELECTED] = { 0.0, 0.0, 0.0 }
+ fg[ACTIVE] = { 0.0, 0.0, 0.0 }
+ fg[PRELIGHT] = { 0.0, 0.0, 0.0 }
+ fg[NORMAL] = { 0.0, 0.0, 0.0 }
+
+ bg[NORMAL] = { 0.91, 0.68, 0.68}
+ bg[ACTIVE] = { 0.91, 0.68, 0.68}
+ bg[SELECTED] = { 0.91, 0.68, 0.68}
+ bg[PRELIGHT] = { 0.91, 0.68, 0.68}
+}
+
+style "mixer_track_rec_enable_button" = "track_rec_enable_button"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_track_rec_enable_button_alternate" = "track_rec_enable_button_alternate"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_track_rec_enable_button_active" = "track_rec_enable_button_active"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "solo_button" = "small_button"
+{
+}
+
+style "solo_button_alternate" = "small_button"
+{
+ bg[NORMAL] = { 0.69, 0.69, 0.69 } # solo-safe
+ bg[ACTIVE] = { 0.69, 0.69, 0.69 } # solo-safe
+ bg[SELECTED] = { 0.69, 0.69, 0.69 } # solo-safe
+ bg[PRELIGHT] = { 0.69, 0.69, 0.69 } # solo-safe
+
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+}
+
+
+style "solo_button_active" = "small_button"
+{
+ bg[NORMAL] = { 0.66, 0.97, 0.19 } # solo
+ bg[ACTIVE] = { 0.66, 0.97, 0.19 } # solo
+ bg[SELECTED] = { 0.66, 0.97, 0.19 } # solo
+ bg[PRELIGHT] = { 0.66, 0.97, 0.19 } # solo
+
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+}
+
+style "mixer_solo_button" = "solo_button"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_solo_button_alternate" = "solo_button_alternate"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+style "mixer_solo_button_active" = "solo_button_active"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mute_button" = "small_button"
+{
+}
+
+style "mute_button_alternate" = "small_button"
+{
+ bg[ACTIVE] = { 1.0, 0.98, 0.53 }
+ bg[NORMAL] = { 1.0, 0.98, 0.53 }
+ bg[SELECTED] = { 1.0, 0.98, 0.53 }
+ bg[PRELIGHT] = { 1.0, 0.98, 0.53 }
+
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+}
+
+style "mute_button_active" = "small_button"
+{
+ bg[NORMAL] = { 0.90, 0.89, 0.73 }
+ bg[ACTIVE] = { 0.90, 0.89, 0.73 }
+ bg[PRELIGHT] = { 0.90, 0.89, 0.73 }
+ bg[SELECTED] = { 0.90, 0.89, 0.73 }
+
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+}
+
+style "mixer_mute_button_alternate" = "mute_button_alternate"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_mute_button_active" = "mute_button_active"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "multiline_combo" = "small_button"
+{
+ font_name = "%FONT_NORMAL%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_mute_button" = "mute_button"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "track_loop_button" = "small_button"
+{
+ bg[ACTIVE] = { 1.0, 0.98, 0.53 }
+ bg[PRELIGHT] = { 1.0, 0.98, 0.53 }
+
+}
+
+style "mixer_red_active_button" = "very_small_button"
+{
+ fg[ACTIVE] = { 0, 1.0, 1.0 }
+ bg[ACTIVE] = { 0.7, 0, 0 }
+
+ base[INSENSITIVE] = { 0.16, 0.16, 0.21 }
+ bg[INSENSITIVE] = { 0.16, 0.16, 0.21 }
+}
+
+style "time_button" = "default_button"
+{
+ font_name = "%FONT_SMALL%"
+}
+
+style "transport_button"
+{
+}
+
+style "transport_button_active"
+{
+ bg[NORMAL] = { 0.50, 1.0, 0.50 }
+ bg[ACTIVE] = { 0.50, 1.0, 0.50 }
+ bg[SELECTED] = { 0.50, 1.0, 0.50 }
+ bg[PRELIGHT] = { 0.50, 1.0, 0.50 }
+
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+}
+
+style "transport_rec_button"
+{
+}
+
+style "transport_rec_button_active"
+{
+ bg[ACTIVE] = { 1.0, 0, 0 }
+ bg[NORMAL] = { 1.0, 0, 0 }
+ bg[SELECTED] = { 1.0, 0, 0 }
+ bg[PRELIGHT] = { 1.0, 0, 0 }
+}
+
+style "transport_rec_button_alternate"
+{
+ bg[PRELIGHT] = { 0.91, 0.68, 0.68 }
+ bg[NORMAL] = { 0.91, 0.68, 0.68 }
+ bg[SELECTED] = { 0.91, 0.68, 0.68 }
+ bg[ACTIVE] = { 0.91, 0.68, 0.68 }
+}
+
+style "shuttle_control" = "very_small_text"
+{
+ fg[NORMAL] = { 0.85, 0.92, 0.98 }
+ fg[ACTIVE] = { 0.85, 0.92, 0.98 }
+ fg[PRELIGHT] = { 0.85, 0.92, 0.98 }
+ fg[SELECTED] = { 0.85, 0.92, 0.98 }
+ fg[INSENSITIVE] = { 0.85, 0.92, 0.98 }
+
+ bg[NORMAL] = { 0.26, 0.26, 0.31 }
+ bg[PRELIGHT] = { 0.26, 0.26, 0.31 }
+ bg[INSENSITIVE] = { 0.26, 0.26, 0.31 }
+ bg[ACTIVE] = { 0.70, 0.70, 0.70 }
+ bg[SELECTED] = { 1.0, 0.04, 0.04 }
+}
+
+style "ardour_adjusters" = "default_generic"
+{
+ bg[NORMAL] = { 0.60, 0.60, 0.60 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.06, 0.06, 0.06 }
+}
+
+style "editor_hscrollbar" = "ardour_adjusters"
+{
+ #
+ # special case: we want this scrollbar to be as tall as the
+ # zoom focus selector combobox. scrollbars don't expand to
+ # fill the space available to them, so we have to explicitly
+ # make it bigger.
+ #
+ GtkRange::slider_width = 27
+ GtkScrollbar::slider_width = 27
+}
+
+style "resizer_handle"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ bg[NORMAL] = "#818181"
+}
+
+style "ardour_progressbars" = "default_generic"
+{
+ bg[NORMAL] = { 0, 0, 0 }
+ bg[PRELIGHT] = { 0.00, 0.36, 0.40 }
+}
+
+style "preferences" = "default_base"
+{
+ font_name = "%FONT_NORMAL%"
+ fg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+}
+
+style "option_entry" = "default_base"
+{
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+ fg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+
+ base[INSENSITIVE] = { 0.07, 0.07, 0.12 }
+
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+ bg[ACTIVE] = { 0.35, 0.35, 0.40 }
+}
+
+style "red_when_active" = "medium_text"
+{
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.26, 0.26, 0.31 }
+
+ fg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 1.0, 0, 0}
+}
+
+style "xrun_warn"
+{
+ font_name = "%FONT_BOLD_LARGE%"
+
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+ text[NORMAL] = { 1.0, 1.0, 1.0 }
+ text[ACTIVE] = { 1.0, 1.0, 1.0 }
+ base[NORMAL] = { 0.09, 0.48, 0.46 }
+ base[ACTIVE] = { 0.09, 0.48, 0.46 }
+ bg[NORMAL] = { 1.0, 0.48, 0.46 }
+ bg[ACTIVE] = { 0.09, 1.0, 0.46 }
+}
+/*
+style "menu_bar_base" = "default_base"
+{
+ bg[NORMAL] = { 0.2, 0.2, 0.3 }
+ bg[ACTIVE] = { 0, 0, 0 }
+ bg[PRELIGHT] = { 0, 0, 0 }
+ bg[INSENSITIVE] = { 0, 0, 0 }
+ bg[SELECTED] = { 0, 0, 0 }
+}
+*/
+style "fatal_message" = "medium_text"
+{
+ fg[ACTIVE] = { 1.0, 0, 1.0 }
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0,0,0 }
+ bg[NORMAL] = { 0,0,0 }
+ base[ACTIVE] = { 0,0,0 }
+ base[NORMAL] = { 0,0,0 }
+}
+
+style "error_message" = "medium_text"
+{
+ fg[ACTIVE] = { 1.0, 0, 0 }
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0,0,0 }
+ bg[NORMAL] = { 0,0,0 }
+ base[ACTIVE] = { 0,0,0 }
+ base[NORMAL] = { 0,0,0 }
+}
+
+style "info_message" = "medium_text"
+{
+ fg[ACTIVE] = { 1.0, 0, 0 }
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0,0,0 }
+ bg[NORMAL] = { 0,0,0 }
+ base[ACTIVE] = { 0,0,0 }
+ base[NORMAL] = { 0,0,0 }
+}
+
+style "warning_message" = "medium_text"
+{
+ fg[ACTIVE] = { 0.30,0.30, 1.0 }
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0, 0, 0 }
+ bg[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ base[NORMAL] = { 0, 0, 0 }
+}
+
+style "medium_entry" = "medium_text"
+{
+ fg[NORMAL] = { 0.70, 0.70, 0.70 }
+ fg[ACTIVE] = { 0.70, 0.70, 0.70 }
+ fg[SELECTED] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ base[SELECTED] = { 0.70, 0.70, 0.70 }
+}
+
+style "medium_entry_noselection_fg" = "medium_entry"
+{
+ fg[SELECTED] = { 0.50, 1.0, 0.50 }
+}
+
+style "medium_entry_noselection_bg" = "medium_entry"
+{
+ bg[SELECTED] = { 1.0, 1.0, 1.0 }
+}
+
+style "medium_bold_entry" = "medium_bold_text"
+{
+ fg[NORMAL] = { 0.70, 0.70, 0.70 }
+ fg[ACTIVE] = { 0.70, 0.70, 0.70 }
+
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ base[SELECTED] = { 0, 0, 0 }
+}
+
+style "small_entry" = "small_text"
+{
+ fg[NORMAL] = { 0.70, 0.70, 0.70 }
+ fg[ACTIVE] = { 0, 1.0, 0 }
+ fg[SELECTED] = { 0, 1.0, 0 }
+ text[NORMAL] = { 0.70, 0.70, 0.70 }
+ text[ACTIVE] = { 0, 1.0, 0 }
+ text[SELECTED] = { 0, 1.0, 0 }
+ bg[NORMAL] = { 0.0, 0.0, 0.0 }
+ bg[SELECTED] = { 0.0, 0.0, 0.0 }
+ bg[SELECTED] = { 0.0, 0.0, 0.0 }
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ base[SELECTED] = { 0, 0, 0 }
+}
+
+style "red_active_small_entry" = "small_entry"
+{
+ fg[ACTIVE] = { 1.0, 0.0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+}
+
+style "small_bold_entry" = "small_bold_text"
+{
+ fg[NORMAL] = { 0.70, 0.70, 0.70 }
+ fg[ACTIVE] = { 0.70, 0.70, 0.70 }
+
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ base[SELECTED] = { 0, 0, 0 }
+}
+
+style "small_red_on_black_entry" = "small_bold_text"
+{
+ fg[NORMAL] = { 1.0, 0, 0 }
+ fg[ACTIVE] = { 1.0, 0, 0 }
+ base[NORMAL] = { 0.0, 0.0, 0.0 }
+ base[ACTIVE] = { 0.0, 0.0, 0.0 }
+ bg[NORMAL] = { 0.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 0.0, 0.0, 0.0 }
+}
+
+style "non_recording_big_clock_display" = "medium_entry"
+{
+ font_name = "%FONT_MASSIVE%"
+
+ fg[NORMAL] = { 0.50, 1.0, 0.50 }
+ fg[ACTIVE] = { 1.0, 0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+ fg[PRELIGHT] = { 1.0, 0, 0.0 }
+ fg[INSENSITIVE] = { 1.0, 0, 0.0 }
+
+ base[NORMAL] = { 0.0, 0.0, 0.0 }
+ base[ACTIVE] = { 0.0, 0.0, 0.0 }
+ bg[NORMAL] = { 0.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 0.7, 0.0, 0.0 }
+}
+
+style "recording_big_clock_display" = "non_recording_big_clock_display"
+{
+ fg[NORMAL] = { 1.0, 0, 0 }
+}
+
+style "transport_clock_display"
+{
+ font_name = "%FONT_BOLD_BIGGER%"
+
+ fg[NORMAL] = { 0.50, 1.0, 0.50 }
+ fg[ACTIVE] = { 1.0, 0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+ fg[PRELIGHT] = { 1.0, 0, 0.0 }
+ fg[INSENSITIVE] = { 1.0, 0, 0.0 }
+
+ base[NORMAL] = { 0.0, 0.0, 0.0 }
+ base[ACTIVE] = { 0.0, 0.0, 0.0 }
+ bg[NORMAL] = { 0.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 0.0, 0.0, 0.0 }
+}
+
+style "transport_clock_display_delta" = "transport_clock_display"
+{
+ fg[NORMAL] = { 0.30, 0.30, 1.0 }
+}
+
+style "tempo_meter_clock_display"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 1.0, 1.0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+ base[NORMAL] = { 0.0, 0.48, 1.0 }
+ base[ACTIVE] = { 0.09, 0.98, 0.46 }
+ bg[NORMAL] = { 0.0, 0.48, 1.0 }
+ bg[ACTIVE] = { 0.09, 0.98, 0.46 }
+}
+
+style "default_clock_display" = "medium text"
+{
+ fg[NORMAL] = { 0.50, 1.0, 0.50 }
+ fg[ACTIVE] = { 1.0, 0.0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ bg[NORMAL] = { 0, 0, 0 }
+ bg[ACTIVE] = { 0, 0, 0 }
+}
+
+style "editor_time_ruler" = "small_text"
+{
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.09, 0.09, 0.09 }
+}
+
+style "audio_bus_base"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 0.77, 0.77, 0.72 }
+ fg[NORMAL] = { 0.7, 0.8, 0.2 }
+ bg[NORMAL] = { 0.20, 0.20, 0.26 }
+}
+
+style "audio_track_base" = "default_base"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 0.77, 0.77, 0.72 }
+ bg[NORMAL] = { 0.18, 0.19, 0.22 }
+ bg[ACTIVE] = { 0.20, 0.20, 0.20 }
+ bg[PRELIGHT] = { 0.20, 0.20, 0.20 }
+ bg[INSENSITIVE] = { 0.20, 0.20, 0.20 }
+ bg[SELECTED] = { 0.20, 0.20, 0.20 }
+}
+
+style "midi_bus_base"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 0.77, 0.77, 0.72 }
+ fg[NORMAL] = { 0.7, 0.8, 0.2 }
+ #bg[NORMAL] = {0, 0.36, 0.40 }
+ bg[NORMAL] = "#444466"
+}
+
+style "midi_track_base" = "default_base"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 0.77, 0.77, 0.72 }
+ bg[NORMAL] = { 0.48, 0.30, 0.32 }
+ bg[ACTIVE] = { 0.20, 0.20, 0.20 }
+ bg[PRELIGHT] = { 0.20, 0.20, 0.20 }
+ bg[INSENSITIVE] = { 0.20, 0.20, 0.20 }
+ bg[SELECTED] = { 0.20, 0.20, 0.20 }
+}
+
+style "track_controls_inactive"
+{
+ bg[NORMAL] = { 0.60, 0.60, 0.66 }
+ bg[ACTIVE] = { 0.60, 0.60, 0.66 }
+ bg[INSENSITIVE] = { 0.60, 0.60, 0.66 }
+ bg[SELECTED] = { 0.60, 0.60, 0.66 }
+ bg[PRELIGHT] = { 0.60, 0.60, 0.66 }
+
+ #font_name = "sans 18"
+ fg[NORMAL] = { 0.7, 0.8, 0.2 }
+}
+
+style "audio_track_metrics" = "audio_track_base"
+{
+ font_name = "%FONT_TINY%"
+}
+
+style "audio_bus_metrics" = "audio_bus_base"
+{
+ font_name = "%FONT_TINY%"
+}
+
+style "audio_track_metrics_inactive" = "track_controls_inactive"
+{
+ font_name = "%FONT_TINY%"
+}
+
+style "audio_bus_metrics_inactive" = "track_controls_inactive"
+{
+ font_name = "%FONT_TINY%"
+}
+
+style "track_name_display"
+{
+ font_name = "%FONT_NORMAL%"
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ fg[ACTIVE] = { 0.80, 0.80, 0.80 }
+
+ base[NORMAL] = { 0.06, 0.06, 0.06 }
+ base[ACTIVE] = { 0.26, 0.26, 0.26 }
+ bg[NORMAL] = { 0.26, 0.26, 0.26 }
+ bg[ACTIVE] = { 0.26, 0.26, 0.26 }
+}
+
+style "active_track_name_display"
+{
+ font_name = "%FONT_NORMAL%"
+ GtkWidget::cursor_color = {0, 0, 0 }
+ text[NORMAL] = { 0.26, 0.26, 0.26 }
+ base[NORMAL] = { 0.89, 0.89, 0.89 }
+}
+
+style "track_separator"
+{
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+}
+
+#
+# Track edit groups. These styles define
+# the colors that the "edit" button will
+# use as a track is moved from
+# track edit group to track edit group.
+# There are 8 edit groups. Edit group 0
+# is used for tracks that are not editable,
+# so we leave its style to the default.
+#
+
+style "edit_group_0"
+
+{
+ bg[ACTIVE] = { 1.0, 0.65, 0.13 }
+ bg[NORMAL] = { 0.31, 0.31, 0.31 }
+ fg[NORMAL] = { 0.82, 0.91, 0.99 }
+ fg[ACTIVE] = { 0, 0, 0 }
+}
+
+style "edit_group_1"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.93, 0.34, 0.08 }
+ bg[PRELIGHT] = { 0.93, 0.34, 0.08 }
+ bg[SELECTED] = { 0.93, 0.34, 0.08 }
+}
+
+style "edit_group_2"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.93, 0.34, 0.08 }
+ bg[PRELIGHT] = { 0.93, 0.34, 0.08 }
+ bg[SELECTED] = { 0.93, 0.34, 0.08 }
+}
+
+style "edit_group_3"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.93, 0.34, 0.08 }
+ bg[PRELIGHT] = { 0.93, 0.34, 0.08 }
+ bg[SELECTED] = { 0.93, 0.34, 0.08 }
+}
+
+style "treeview_parent_node"
+{
+ # specifies *just* the color used for whole file rows when not selected
+ fg[NORMAL] = { 0.0, 0.6, 0.85 }
+}
+
+style "treeview_display" = "small_bold_text"
+{
+ # expander arrow border and DnD "icon" text
+ fg[NORMAL] = { 0.8, 0.8, 0.8 }
+
+ # background with no rows or no selection, plus
+ # expander arrow core and DnD "icon" background
+ base[NORMAL] = { 0.20, 0.20, 0.25 }
+
+ # selected row bg when window does not have focus (including during DnD)
+ base[ACTIVE] = { 0.0, 0.60, 0.60 }
+
+ # selected row bg when window has focus
+ base[SELECTED] = { 0, 0.75, 0.75 }
+
+ # row text when in normal state and not a parent
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+
+ # selected row text with window focus
+ text[SELECTED] = { 0, 1.0, 1.0 }
+
+ # selected row text without window focus (including during DnD)
+ text[ACTIVE] = { 0, 1.0, 1.0 }
+}
+
+style "main_canvas_area"
+{
+ bg[NORMAL] = { 0.30, 0.30, 0.34 }
+ bg[ACTIVE] = { 0.30, 0.30, 0.34 }
+ bg[INSENSITIVE] = { 0.30, 0.30, 0.34 }
+ bg[SELECTED] = { 0.30, 0.30, 0.34 }
+ bg[PRELIGHT] = { 0.30, 0.30, 0.34 }
+}
+
+style "track_controls_inactive"
+{
+ bg[NORMAL] = { 0.60, 0.60, 0.66 }
+ bg[ACTIVE] = { 0.60, 0.60, 0.66 }
+ bg[INSENSITIVE] = { 0.60, 0.60, 0.66 }
+ bg[SELECTED] = { 0.60, 0.60, 0.66 }
+ bg[PRELIGHT] = { 0.60, 0.60, 0.66 }
+
+ font_name = "%FONT_LARGE%"
+ fg[NORMAL] = { 0.7, 0.8, 0.2 }
+}
+
+style "edit_controls_base_selected"
+{
+ bg[NORMAL] = { 0.32, 0.32, 0.54 }
+ bg[ACTIVE] = { 0.32, 0.32, 0.54 }
+ bg[INSENSITIVE] = { 0.32, 0.32, 0.54 }
+ bg[SELECTED] = { 0.32, 0.32, 0.54 }
+ bg[PRELIGHT] = { 0.32, 0.32, 0.54 }
+}
+
+style "automation_track_controls_base"
+{
+ bg[NORMAL] = { 0.22, 0.22, 0.29 }
+ bg[ACTIVE] = { 0.22, 0.22, 0.29 }
+ bg[INSENSITIVE] = { 0.22, 0.22, 0.29 }
+ bg[SELECTED] = { 0.22, 0.22, 0.29 }
+ bg[PRELIGHT] = { 0.22, 0.22, 0.29 }
+}
+
+# Plugin Editors
+style "plugin_slider"
+{
+ font_name ="%FONT_BOLD_BIG%"
+
+ # the slider itself. the inactive part is INSENSITIVE,
+ # the active part is something else.
+
+ fg[NORMAL] = { 0.37, 0.43, 0.52 }
+ fg[ACTIVE] = { 0.37, 0.43, 0.52 }
+ fg[INSENSITIVE] = {0.35, 0.35, 0.40 } # matches default_base
+ fg[SELECTED] = { 0.37, 0.43, 0.52 }
+ fg[PRELIGHT] = { 0.37, 0.43, 0.52 }
+
+ # draws the outer rectangle around the slider
+
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[INSENSITIVE] = {0.80, 0.80, 0.80 }
+ bg[SELECTED] = { 0.80, 0.80, 0.80 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+
+ # the numeric display
+
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+ text[ACTIVE] = { 0.80, 0.80, 0.80 }
+ text[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+ text[SELECTED] = { 0.80, 0.80, 0.80 }
+ text[PRELIGHT] = { 0.80, 0.80, 0.80 }
+}
+
+style "track_list_display" = "small_bold_text"
+{
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+ text[ACTIVE] = { 0.3, 0.3, 0.3 }
+ text[INSENSITIVE] = { 0, 0, 0 }
+ text[SELECTED] = { 0.8, 0.8, 0.8 }
+
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ base[INSENSITIVE] = { 0, 0, 0 }
+ base[SELECTED] = { 0, 0, 0 }
+}
+
+style "inspector_track_list_display" = "track_list_display"
+{
+ text[ACTIVE] = { 0.8, 0.8, 0.8 }
+
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0.2, 0.2, 0.2 }
+ base[INSENSITIVE] = { 0, 0, 0 }
+ base[SELECTED] = { 0.3, 0.3, 0.4 }
+}
+
+style "redirect_list_display"
+{
+ GtkTreeView::horizontal-separator = 0
+ GtkTreeView::vertical-separator = 0
+
+ font_name = "%FONT_SMALL%"
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+ text[ACTIVE] = { 0.70, 0.70, 0.70 }
+ text[INSENSITIVE] = { 0, 0, 0 }
+ text[SELECTED] = { 0.9, 0.3, 0.3 }
+
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ base[INSENSITIVE] = { 0, 0, 0 }
+ base[SELECTED] = { 0, 0, 0 }
+
+ # these two are explicitly used by the cell renderer for the
+ # text
+
+ fg[NORMAL] = { 0.5, 0.5, 0.5 } # used for inactive
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 } # used for active
+}
+
+style "inspector_redirect_list_display" = "redirect_list_display"
+{
+ base[SELECTED] = { 0.3, 0.3, 0.3 }
+}
+
+# MixerPanZone:
+#
+# the NORMAL fg color is used for the pan puck
+# the ACTIVE fg color is used for the speaker boxes
+
+style "pan_zone" = "default_base"
+{
+ fg[NORMAL] = { 0.34, 0.95, 0.92 }
+ fg[ACTIVE] = { 0.95, 0.48, 0.11 }
+}
+
+style "paler_red_when_active" = "medium_text"
+{
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ fg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.31, 0.31, 0.31 }
+ bg[PRELIGHT] = { 0.31, 0.31, 0.31 }
+
+ fg[ACTIVE] = { 0.36, 0.46, 0.28 }
+ bg[ACTIVE] = { 1.00, 0.59, 0.59}
+}
+
+style "peak_display_peaked_entry" = "small_text"
+{
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+ fg[SELECTED] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = {0.9, 0.0, 0.0 }
+ bg[ACTIVE] = { 0.9, 0.0, 0.0 }
+ bg[PRELIGHT] = { 0.9, 0.0, 0.0 }
+ bg[INSENSITIVE] = { 0.9, 0.0, 0.0 }
+ bg[SELECTED] = { 0.9, 0.0, 0.0 }
+ base[NORMAL] = { 0.9, 0.0, 0.0 }
+ base[ACTIVE] = { 0.9, 0.0, 0.0 }
+ base[PRELIGHT] = { 0.9, 0.0, 0.0 }
+ base[INSENSITIVE] = { 0.9, 0.0, 0.0 }
+ base[SELECTED] = { 0.9, 0.0, 0.0 }
+}
+
+style "selected_strip_frame"
+{
+ fg[NORMAL] = { 0.74, 0.42, 0.47 }
+ bg[NORMAL] = { 0.79, 0.28, 0.18 }
+}
+
+style "flashing_alert" = "very_small_text"
+{
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.26, 0.26, 0.31 }
+
+ fg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 1.0, 0, 0}
+}
+
+style "selected_io_selector_port_list" = "medium_bold_text"
+{
+
+ GtkTreeView::even-row-color = { 0, 0, 0 }
+ GtkTreeView::odd-row-color = { 0, 0, 0 }
+
+# fg is used to color the fg (text) of the column header button
+
+ fg[NORMAL] = { 0.85, 0.85, 0.85 }
+ fg[SELECTED] = { 0.85, 0.85, 0.85 }
+ fg[ACTIVE] = { 0.85, 0.85, 0.85 }
+ fg[PRELIGHT] = { 0.85, 0.85, 0.85 }
+ fg[INSENSITIVE] = { 0.85, 0.85, 0.85 }
+
+# bg is used used to color the background of the column header button
+
+ bg[NORMAL] = { 0.30, 0.30, 0.35 }
+ bg[ACTIVE] = { 0.30, 0.30, 0.35 }
+ bg[PRELIGHT] = { 0.30, 0.30, 0.35 }
+ bg[INSENSITIVE] = { 0.30, 0.30, 0.35 }
+ bg[SELECTED] = { 0.30, 0.30, 0.35 }
+
+# text is used to color the treeview row text
+
+ text[NORMAL] = { 0.85, 0.85, 0.85 }
+ text[SELECTED] = { 0.85, 0.85, 0.85 }
+
+# base is used to color a treeview with no rows
+
+ base[NORMAL] = { 0.20, 0.20, 0.25 }
+ base[ACTIVE] = { 0.20, 0.20, 0.25 }
+ base[PRELIGHT] = { 0.20, 0.20, 0.25 }
+ base[INSENSITIVE] = { 0.20, 0.20, 0.25 }
+ base[SELECTED] = { 0.20, 0.20, 0.25 }
+
+}
+
+style "io_selector_port_list" = "medium_text"
+{
+ GtkTreeView::even-row-color = { 0.20, 0.20, 0.25 }
+ GtkTreeView::odd-row-color = { 0.20, 0.20, 0.25 }
+# fg is used to color the fg (text) of the column header button
+
+ fg[NORMAL] = { 0.70, 0.70, 0.70 }
+ fg[SELECTED] = { 0.70, 0.70, 0.70 }
+ fg[ACTIVE] = { 0.70, 0.70, 0.70 }
+ fg[PRELIGHT] = { 0.70, 0.70, 0.70 }
+ fg[INSENSITIVE] = { 0.70, 0.70, 0.70 }
+
+# bg is used used to color the background of the column header button
+
+ bg[NORMAL] = { 0.30, 0.30, 0.35 }
+ bg[ACTIVE] = { 0.30, 0.30, 0.35 }
+ bg[PRELIGHT] = { 0.30, 0.30, 0.35 }
+ bg[INSENSITIVE] = { 0.30, 0.30, 0.35 }
+ bg[SELECTED] = { 0.30, 0.30, 0.35 }
+
+# text is used to color the treeview row text
+
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+ text[SELECTED] = { 0.80, 0.80, 0.80 }
+
+# base is used to color a treeview with no rows
+
+ base[NORMAL] = { 0.20, 0.20, 0.25 }
+ base[ACTIVE] = { 0.20, 0.20, 0.25 }
+ base[PRELIGHT] = { 0.20, 0.20, 0.25 }
+ base[INSENSITIVE] = { 0.20, 0.20, 0.25 }
+ base[SELECTED] = { 0.20, 0.20, 0.25 }
+}
+
+style "io_selector_notebook" = "default_base"
+{
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ font_name ="%FONT_BOLD_NORMAL%"
+}
+
+style "tearoff_arrow" = "medium_bold_entry"
+{
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ fg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+}
+
+style "location_row_button" = "default_button"
+{
+ font_name = "%FONT_NORMAL%"
+}
+
+style "location_rows_clock" = "default_clock_display"
+{
+ font_name = "%FONT_BIG%"
+}
+
+style "pan_slider"
+{
+ font_name = "%FONT_NORMAL%"
+
+ fg[NORMAL] = { 0.22, 0.73, 0.22 }
+ fg[ACTIVE] = { 0.22, 0.73, 0.22 }
+ fg[INSENSITIVE] = {0.22, 0.53, 0.22 }
+ fg[SELECTED] = { 0.67, 0.23, 0.22 }
+ fg[PRELIGHT] = { 0.67, 0.23, 0.22 }
+
+ bg[NORMAL] = { 0.05, 0.05, 0.05 }
+ bg[ACTIVE] = { 0, 0, 0 }
+ bg[INSENSITIVE] = {0.12, 0.19, 0.25 }
+ bg[SELECTED] = { 0, 0, 0 }
+ bg[PRELIGHT] = { 0, 0, 0 }
+
+ text[NORMAL] = { 0.70, 0.70, 0.70 }
+ text[ACTIVE] = { 0.70, 0.70, 0.70 }
+ text[INSENSITIVE] = { 0.70, 0.70, 0.70 }
+ text[SELECTED] = { 0.70, 0.70, 0.70 }
+ text[PRELIGHT] = { 0.70, 0.70, 0.70 }
+
+ # used to draw the triangular indicators
+
+ base[NORMAL] = { 0.80, 0.80, 0.80 }
+ base[ACTIVE] = { 0.80, 0.80, 0.80 }
+ base[INSENSITIVE] = {0.6, 0.6, 0.6 }
+ base[SELECTED] = { 0.80, 0.80, 0.80 }
+ base[PRELIGHT] = { 0.80, 0.80, 0.80 }
+
+}
+
+style "ardour_button" ="default_button"
+{
+ xthickness = 1
+ ythickness = 1
+}
+
+#---------------------------------------------------------------
+
+class "GtkWidget" style:highest "default_base"
+class "GtkScrollbar" style:highest "ardour_adjusters"
+class "GtkLabel" style:highest "default_generic"
+class "GtkButton" style:highest "ardour_button"
+class "GtkArrow" style:highest "tearoff_arrow"
+class "GtkProgressBar" style:highest "ardour_progressbars"
+
+widget "*FirstActionMessage" style:highest "first_action_message"
+widget "*VerboseCanvasCursor" style:highest "verbose_canvas_cursor"
+widget "*MarkerText" style:highest "marker_text"
+widget "*TimeAxisViewItemName*" style:highest "time_axis_view_item_name"
+#widget "*ExportProgress" style:highest "default_generic"
+widget "*ExportFileLabel" style:highest "small_bold_text"
+widget "*ExportFormatLabel" style:highest "medium_bold_text"
+widget "*ExportHeader" style:highest "small_bold_text"
+widget "*ExportFileDisplay" style:highest "medium_entry"
+widget "*ExportFormatDisplay" style:highest "medium_entry"
+widget "*ExportCheckbox" style:highest "small_entry"
+widget "*ExportTrackSelector*" style:highest "medium_entry_noselection_bg"
+widget "*EditModeSelector" style:highest "medium_bold_entry"
+widget "*SnapTypeSelector" style:highest "medium_bold_entry"
+widget "*SnapModeSelector" style:highest "medium_bold_entry"
+widget "*ZoomFocusSelector" style:highest "medium_bold_entry"
+widget "*ArdourContextMenu*" style:highest "default_menu"
+widget "*EditGroupTitleButton*" style:highest "default_button"
+widget "*MixerGroupTitleButton*" style:highest "default_button"
+widget "*ErrorLogCloseButton" style:highest "default_button"
+widget "*EditorGTKButton*" style:highest "default_button"
+widget "*ToolbarButton" style:highest "default_button"
+widget "*ToolbarButton*" style:highest "default_button"
+widget "*CrossfadeEditButton" style:highest "default_button"
+widget "*CrossfadeEditButton*" style:highest "default_button"
+widget "*TrackHistoryButton*" style:highest "default_button"
+widget "*TrackSizeButton*" style:highest "default_button"
+widget "*TrackPlaylistButton*" style:highest "default_button"
+widget "*TrackAutomationButton*" style:highest "default_button"
+widget "*TrackGroupButton*" style:highest "default_button"
+widget "*TrackMixButton*" style:highest "default_button"
+widget "*TrackVisualButton*" style:highest "default_button"
+widget "*TrackRemoveButton*" style:highest "default_button"
+widget "*BaseButton" style:highest "default_button"
+widget "*TakeButtonLabel" style:highest "default_button"
+widget "*MixerWidthButton" style:highest "default_button"
+widget "*MixerHideButton" style:highest "default_button"
+widget "*MixerSendButton" style:highest "default_button"
+widget "*MixerSendButtonLabel" style:highest "default_button"
+widget "*MixerSendSwitch" style:highest "default_button"
+widget "*MixerInsertButton" style:highest "default_button"
+widget "*MixerInsertButtonLabel" style:highest "default_button"
+widget "*MixerInsertSwitch" style:highest "default_button"
+widget "*MixerMonitorInputButton*" style:highest "very_small_button"
+widget "*MixerMonitorInputButton.*" style:highest "very_small_button"
+widget "*MixerIOButton" style:highest "very_small_button"
+widget "*MixerIOButtonLabel" style:highest "very_small_button"
+widget "*AddRouteDialogSpinner" style:highest "ardour_adjusters"
+widget "*AddRouteDialogRadioButton*" style:highest "preferences"
+widget "*OptionsNotebook" style:highest "preferences"
+widget "*OptionEditorToggleButton*" style:highest "preferences"
+widget "*OptionsLabel" style:highest "preferences"
+widget "*OptionEditorAuditionerLabel" style:highest "preferences"
+widget "*OptionsEntry" style:highest "option_entry"
+widget "*InspectorNotebook" style:highest "preferences"
+widget "*NewSessionDialog" style:highest "preferences"
+widget "*NewSessionDialogButton*" style:highest "preferences"
+widget "*MixerSendSwitch*" style:highest "very_small_red_active_and_selected_button"
+widget "*OptionEditorToggleButton" style:highest "small_red_active_and_selected_button"
+widget "*NewSessionDialogButton" style:highest "small_red_active_and_selected_button"
+widget "*RecordEnableButton" style:highest "track_rec_enable_button"
+widget "*RecordEnableButton-active" style:highest "track_rec_enable_button_active"
+widget "*RecordEnableButton-alternate" style:highest "track_rec_enable_button_alternate"
+widget "*MixerRecordEnableButton" style:highest "mixer_track_rec_enable_button"
+widget "*MixerRecordEnableButton-active" style:highest "mixer_track_rec_enable_button_active"
+widget "*MixerRecordEnableButton-alternate" style:highest "mixer_track_rec_enable_button_alternate"
+widget "*MuteButton" style:highest "mute_button"
+widget "*MuteButton-alternate" style:highest "mute_button_alternate"
+widget "*MuteButton-active" style:highest "mute_button_active"
+widget "*MixerMuteButton" style:highest "mixer_mute_button"
+widget "*MixerMuteButton-alternate" style:highest "mixer_mute_button_alternate"
+widget "*MixerMuteButton-active" style:highest "mixer_mute_button_active"
+widget "*SoloButton" style:highest "solo_button"
+widget "*SoloButton-alternate" style:highest "solo_button_alternate"
+widget "*SoloButton-active" style:highest "solo_button_active"
+widget "*MixerSoloButton" style:highest "mixer_solo_button"
+widget "*MixerSoloButton-alternate" style:highest "mixer_solo_button_alternate"
+widget "*MixerSoloButton-active" style:highest "mixer_solo_button_active"
+widget "*TrackLoopButton*" style:highest "track_loop_button"
+widget "*PanAutomationLineSelector*" style:highest "multiline_combo"
+widget "*EditorTimeButton*" style:highest "time_button"
+widget "*MixerPhaseInvertButton*" style:highest "very_small_button"
+widget "*MixerPhaseInvertButton.*" style:highest "very_small_button"
+widget "*MixerAutomationRecordingButton*" style:highest "very_small_button"
+widget "*MixerAutomationRecordingButton.*" style:highest "very_small_button"
+widget "*MixerAutomationModeButton*" style:highest "very_small_button"
+widget "*MixerAutomationModeButton.*" style:highest "very_small_button"
+widget "*MixerAutomationPlaybackButton*" style:highest "very_small_button"
+widget "*MixerAutomationPlaybackButton.*" style:highest "very_small_button"
+widget "*MixerNameButton" style:highest "very_small_button"
+widget "*MixerNameButtonLabel" style:highest "very_small_button"
+widget "*MixerGroupButton" style:highest "very_small_button"
+widget "*MixerGroupButtonLabel" style:highest "very_small_button"
+widget "*MixerCommentButton" style:highest "very_small_button"
+widget "*MixerCommentButton*" style:highest "very_small_button"
+widget "*EditGroupButton" style:highest "very_small_button"
+widget "*EditGroupButtonLabel" style:highest "very_small_button"
+widget "*TransportButton" style:highest "transport_rec_button"
+widget "*TransportButton-active" style:highest "transport_button_active"
+widget "*ShuttleButton" style:highest "transport_button"
+widget "*ShuttleButton*" style:highest "transport_button"
+widget "*ShuttleDisplay" style:highest "transport_button"
+widget "*ShuttleDisplay*" style:highest "transport_button"
+widget "*ShuttleControl" style:highest "shuttle_control"
+widget "*TransportRecButton" style:highest "transport_rec_button"
+widget "*TransportRecButton*" style:highest "transport_rec_button"
+widget "*TransportRecButton-active" style:highest "transport_rec_button_active"
+widget "*TransportRecButton-active*" style:highest "transport_rec_button_active"
+widget "*TransportRecButton-alternate" style:highest "transport_rec_button_alternate"
+widget "*TransportRecButton-alternate*" style:highest "transport_rec_button_alternate"
+widget "*TransportRecButton*" style:highest "transport_rec_button"
+widget "*RecordingXrunWarningWindow" style:highest "xrun_warn"
+widget "*RecordingXrunWarningWindow*" style:highest "xrun_warn"
+/*widget "*MainMenuBar" style:highest "menu_bar_base"*/
+widget "*ErrorMessage" style:highest "error_message"
+widget "*FatalMessage" style:highest "fatal_message"
+widget "*InfoMessage" style:highest "info_message"
+widget "*WarningMessage" style:highest "warning_message"
+widget "*BigClockNonRecording" style:highest "non_recording_big_clock_display"
+widget "*BigClockRecording" style:highest "recording_big_clock_display"
+widget "*TransportClockDisplay" style:highest "transport_clock_display"
+widget "*SecondaryClockDisplay" style:highest "transport_clock_display"
+widget "*TransportClockDisplayDelta" style:highest "transport_clock_display_delta"
+widget "*SecondaryClockDisplayDelta" style:highest "transport_clock_display_delta"
+widget "*AudioClockFramesUpperInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockFramesLowerInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockSMPTEUpperInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockSMPTELowerInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockBBTUpperInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockBBTLowerInfo" style:highest "tempo_meter_clock_display"
+widget "*SelectionStartClock" style:highest "default_clock_display"
+widget "*SelectionEndClock" style:highest "default_clock_display"
+widget "*EditPointClock" style:highest "default_clock_display"
+widget "*PreRollClock" style:highest "default_clock_display"
+widget "*PostRollClock" style:highest "default_clock_display"
+widget "*NudgeClock" style:highest "default_clock_display"
+widget "*InsertTimeClock" style:highest "default_clock_display"
+widget "*ZoomRangeClock" style:highest "default_clock_display"
+widget "*SMPTEOffsetClock" style:highest "default_clock_display"
+widget "*TransportLabel" style:highest "small_bold_text"
+widget "*TakeLabel" style:highest "small_bold_text"
+widget "*LocationLabel" style:highest "small_bold_text"
+widget "*WipeLabel" style:highest "small_bold_text"
+widget "*TakeTagLabel" style:highest "small_bold_text"
+widget "*ToolBarLabel" style:highest "small_bold_text"
+widget "*EditorDisplayLabel" style:highest "small_bold_text"
+widget "*NewSessionLabel" style:highest "large_text"
+widget "*GlobalButtonLabel" style:highest "default_generic"
+widget "*ClickButton" style:highest "medium_entry"
+widget "*RegionNameDisplay" style:highest "medium_entry"
+widget "*PluginDisplay" style:highest "medium_entry"
+widget "*SelectionDisplay" style:highest "medium_entry"
+widget "*HistorySelector" style:highest "medium_entry"
+widget "*LocationSelector" style:highest "medium_entry"
+widget "*TakeSelector" style:highest "medium_entry"
+widget "*RegionSelector" style:highest "medium_entry"
+widget "*SMPTERuler" style:highest "editor_time_ruler"
+widget "*BBTRuler" style:highest "editor_time_ruler"
+widget "*FramesRuler" style:highest "editor_time_ruler"
+widget "*MinSecRuler" style:highest "editor_time_ruler"
+widget "*BaseFrame" style:highest "base_frame"
+
+widget "*AudioTrackStripBase" style:highest "audio_track_base"
+widget "*AudioBusStripBase" style:highest "audio_bus_base"
+widget "*MidiTrackStripBase" style:highest "midi_track_base"
+widget "*AudioTrackStripBaseInactive" style:highest "track_controls_inactive"
+widget "*AudioBusStripBaseInactive" style:highest "track_controls_inactive"
+widget "*MidiTrackStripBaseInactive" style:highest "track_controls_inactive"
+widget "*FaderMetricsStrip" style:highest "audio_track_metrics"
+widget "*AudioTrackMetrics" style:highest "audio_track_metrics"
+widget "*AudioBusMetrics" style:highest "audio_bus_metrics"
+widget "*AudioTrackMetricsInactive" style:highest "audio_track_metrics_inactive"
+widget "*AudioBusMetricsInactive" style:highest "audio_bus_metrics_inactive"
+
+widget "*TimeAxisViewControlsBaseUnselected" style:highest "audio_track_base"
+widget "*AudioTrackControlsBaseUnselected" style:highest "audio_track_base"
+widget "*MidiTrackControlsBaseUnselected" style:highest "midi_track_base"
+widget "*AudioTrackFader" style:highest "gain_fader"
+
+widget "*BusControlsBaseUnselected" style:highest "audio_bus_base"
+widget "*AudioBusFader" style:highest "gain_fader"
+widget "*TrackSeparator" style:highest "track_separator"
+widget "*TrackEditIndicator0*" style:highest "edit_group_0"
+widget "*TrackEditIndicator1*" style:highest "edit_group_1"
+widget "*TrackEditIndicator2*" style:highest "edit_group_2"
+widget "*TrackEditIndicator3*" style:highest "edit_group_3"
+widget "*TrackEditIndicator4*" style:highest "edit_group_3"
+widget "*TrackEditIndicator5*" style:highest "edit_group_3"
+widget "*TrackEditIndicator6*" style:highest "edit_group_3"
+widget "*TrackEditIndicator7*" style:highest "edit_group_3"
+widget "*EditorTrackNameDisplay" style:highest "track_name_display"
+widget "*EditorTrackNameDisplay*" style:highest "track_name_display"
+widget "*EditorActiveTrackNameDisplay" style:highest "active_track_name_display"
+widget "*EditorActiveTrackNameDisplay*" style:highest "active_track_name_display"
+widget "*CrossfadeEditAuditionButton" style:highest "red_when_active"
+widget "*CrossfadeEditAuditionButton*" style:highest "red_when_active"
+widget "*CrossfadeEditCurveButton" style:highest "red_when_active"
+widget "*CrossfadeEditCurveButton*" style:highest "red_when_active"
+widget "*CrossfadeEditLabel" style:highest "medium_text"
+widget "*CrossfadeEditFrame" style:highest "base_frame"
+widget "*MouseModeButton" style:highest "default_button"
+widget "*MouseModeButton*" style:highest "default_button"
+widget "*EditorMainCanvas" style:highest "main_canvas_area"
+widget "*AudioTrackControlsBaseInactiveUnselected" style:highest "track_controls_inactive"
+widget "*BusControlsBaseInactiveUnselected" style:highest "track_controls_inactive"
+widget "*AutomationTrackControlsBaseInactiveUnselected" style:highest "track_controls_inactive"
+widget "*AutomationTrackName" style:highest "automation_track_name"
+widget "*AudioTrackControlsBaseInactiveSelected" style:highest "track_controls_inactive"
+widget "*BusControlsBaseInactiveSelected" style:highest "track_controls_inactive"
+widget "*AutomationTrackControlsBaseInactiveSelected" style:highest "track_controls_inactive"
+widget "*AudioTrackControlsBaseSelected" style:highest "edit_controls_base_selected"
+widget "*MidiTrackControlsBaseSelected" style:highest "edit_controls_base_selected"
+widget "*BusControlsBaseSelected" style:highest "edit_controls_base_selected"
+widget "*AutomationTrackControlsBase" style:highest "automation_track_controls_base"
+widget "*AutomationTrackControlsBaseSelected" style:highest "edit_controls_base_selected"
+/*widget "*EditorMenuBar*" style:highest "black_mackie_menu_bar"
+widget "*MainMenuBar*" style:highest "black_mackie_menu_bar"
+*/
+widget "*ZoomClickBox" style:highest "medium_bold_entry"
+widget "*PluginParameterLabel" style:highest "medium_text"
+widget "*PluginNameInfo" style:highest "plugin_name_text"
+widget "*PluginMakerInfo" style:highest "plugin_maker_text"
+widget "*PluginParameterInfo" style:highest "medium_text"
+widget "*MotionControllerValue" style:highest "medium_entry"
+widget "*ParameterValueDisplay" style:highest "medium_bold_entry"
+widget "*PluginUIClickBox" style:highest "medium_bold_entry"
+widget "*PluginUIClickBox*" style:highest "medium_bold_entry"
+widget "*PluginSlider" style:highest "plugin_slider"
+widget "*RedirectSelector" style:highest "redirect_list_display"
+widget "*RedirectSelector.*" style:highest "redirect_list_display"
+widget "*EditGroupDisplay" style:highest "treeview_display"
+widget "*TrackListDisplay" style:highest "treeview_display"
+widget "*RegionListDisplay" style:highest "treeview_display"
+widget "*NamedSelectionDisplay" style:highest "treeview_display"
+widget "*SnapshotDisplay" style:highest "treeview_display"
+widget "*MixerTrackCommentArea" style:highest "option_entry"
+widget "*MixerPanZone" style:highest "pan_zone"
+widget "*MixerTrackDisplayList" style:highest "treeview_display"
+widget "*MixerSnapshotDisplayList" style:highest "treeview_display"
+widget "*MixerAuxDisplayList" style:highest "treeview_display"
+widget "*MixerGroupList" style:highest "treeview_display"
+widget "*RegionEditorLabel" style:highest "medium_text"
+widget "*RegionEditorSmallLabel" style:highest "small_text"
+widget "*RegionEditorEntry" style:highest "medium_entry"
+widget "*RegionEditorClock" style:highest "default_clock_display"
+widget "*RegionEditorToggleButton" style:highest "paler_red_when_active"
+widget "*RegionEditorToggleButton*" style:highest "paler_red_when_active"
+widget "*MixerStripSpeedBase" style:highest "small_entry"
+widget "*MixerStripSpeedBase*" style:highest "small_entry"
+widget "*MixerStripSpeedBaseNotOne" style:highest "small_red_on_black_entry"
+widget "*MixerStripSpeedBaseNotOne*" style:highest "small_red_on_black_entry"
+widget "*MixerStripGainDisplay" style:highest "small_entry"
+widget "*MixerStripGainDisplay*" style:highest "small_entry"
+widget "*MixerStripGainUnitButton" style:highest "very_small_button"
+widget "*MixerStripGainUnitButton*" style:highest "very_small_button"
+widget "*MixerStripMeterPreButton" style:highest "very_small_button"
+widget "*MixerStripMeterPreButton*" style:highest "very_small_button"
+widget "*MixerStripPeakDisplay*" style:highest "red_active_small_entry"
+widget "*MixerStripPeakDisplayPeak*" style:highest "peak_display_peaked_entry"
+widget "*MixerStripSelectedFrame" style:highest "selected_strip_frame"
+widget "*MixerStripFrame" style:highest "base_frame"
+widget "*HWMonitorButton" style:highest "red_when_active"
+widget "*HWMonitorButton*" style:highest "red_when_active"
+widget "*TransportSoloAlert" style:highest "flashing_alert"
+widget "*TransportSoloAlert.*" style:highest "flashing_alert"
+widget "*TransportAuditioningAlert" style:highest "flashing_alert"
+widget "*TransportAuditioningAlert.*" style:highest "flashing_alert"
+widget "*FadeCurve" style:highest "medium_bold_entry"
+widget "*FadeCurve*" style:highest "medium_bold_entry"
+widget "*IOSelectorButton" style:highest "default_button"
+widget "*IOSelectorButton*" style:highest "default_button"
+widget "*IOSelectorList" style:highest "medium_entry_noselection_fg"
+widget "*IOSelectorPortList" style:highest "io_selector_port_list"
+widget "*IOSelectorPortList.*" style:highest "io_selector_port_list"
+widget "*IOSelectorPortListSelected" style:highest "selected_io_selector_port_list"
+widget "*IOSelectorPortListSelected.*" style:highest "selected_io_selector_port_list"
+widget "*IOSelectorNotebook" style:highest "io_selector_notebook"
+widget "*IOSelectorNotebookTab" style:highest "io_selector_notebook"
+widget "*IOSelectorFrame" style:highest "base_frame"
+widget "*ConnectionEditorButton" style:highest "default_button"
+widget "*ConnectionEditorButton*" style:highest "default_button"
+widget "*ConnectionEditorList" style:highest "medium_entry_noselection_fg"
+widget "*ConnectionEditorConnectionList" style:highest "medium_entry"
+widget "*ConnectionEditorPortList" style:highest "io_selector_port_list"
+widget "*ConnectionEditorPortListSelected" style:highest "selected_io_selector_port_list"
+widget "*ConnectionEditorNotebook" style:highest "io_selector_notebook"
+widget "*ConnectionEditorNotebookTab" style:highest "io_selector_notebook"
+widget "*ConnectionEditorFrame" style:highest "base_frame"
+widget "*RouteParamsListDisplay" style:highest "inspector_track_list_display"
+widget "*RouteParamsPreListDisplay" style:highest "inspector_redirect_list_display"
+widget "*RouteParamsPostListDisplay" style:highest "inspector_redirect_list_display"
+widget "*TearOffArrow" style:highest "tearoff_arrow"
+widget "*RouteParamsTitleButton" style:highest "medium_text"
+widget "*RouteParamsTitleLabel" style:highest "medium_text"
+widget "*PluginAutomateRecordButton" style:highest "small_red_active_and_selected_button"
+widget "*PluginAutomateRecordButton*" style:highest "small_red_active_and_selected_button"
+widget "*PluginAutomatePlayButton" style:highest "small_red_active_and_selected_button"
+widget "*PluginAutomatePlayButton*" style:highest "small_red_active_and_selected_button"
+widget "*PluginAutomateButton" style:highest "small_button"
+widget "*PluginAutomateButton*" style:highest "small_button"
+widget "*PluginSaveButton" style:highest "small_button"
+widget "*PluginSaveButton*" style:highest "small_button"
+widget "*PluginLoadButton" style:highest "small_button"
+widget "*PluginLoadButton*" style:highest "small_button"
+
+widget "*MetricDialogFrame" style:highest "base_frame"
+widget "*MetricEntry" style:highest "medium_bold_entry"
+widget "*MetricButton" style:highest "default_button"
+widget "*MetricButton.*" style:highest "default_button"
+widget "*MetricLabel" style:highest "medium_text"
+widget "*TimeStretchButton" style:highest "default_button"
+widget "*TimeStretchButton.*" style:highest "default_button"
+widget "*TimeStretchProgress" style:highest "default_generic"
+widget "*ChoiceWindow" style:highest "default_generic"
+widget "*ChoicePrompt" style:highest "default_generic"
+widget "*ChoiceButton" style:highest "default_button"
+widget "*ChoiceButton*" style:highest "default_button"
+widget "*SelectionModeButton" style:highest "default_button"
+widget "*SelectionModeButton*" style:highest "default_button"
+widget "*TrackLabel" style:highest "medium_text"
+widget "*TrackPlugName" style:highest "medium_text"
+widget "*TrackParameterName" style:highest "small_text"
+widget "*AddRouteDialog*" style:highest "medium_text"
+widget "*AddRouteDialog.GtkLabel" style:highest "medium_text"
+widget "*AddRouteDialogChannelChoice" style:highest "medium_bold_entry"
+widget "*AddRouteDialogSpinner" style:highest "medium_bold_entry"
+widget "*AddRouteDialogSpinner*" style:highest "medium_bold_entry"
+widget "*AddRouteDialogRadioButton" style:highest "red_when_active"
+widget "*AddRouteDialogButton" style:highest "default_button"
+widget "*AddRouteDialogNameTemplateEntry" style:highest "medium_bold_entry"
+widget "*NewSessionIOLabel" style:highest "larger_bold_text"
+widget "*NewSessionSR1Label" style:highest "red_medium_text"
+widget "*NewSessionSR2Label" style:highest "medium_text"
+widget "*NewSessionChannelChoice" style:highest "medium_bold_entry"
+widget "*NewSessionMainButton" style:highest "larger_bold_text"
+widget "*NewSessionMainButton*" style:highest "larger_bold_text"
+widget "*NewSessionMainLabel" style:highest "larger_bold_text"
+widget "*LocationEditRowClock" style:highest "location_rows_clock"
+widget "*LocationEditNameLabel" style:highest "medium_text"
+widget "*LocationEditSetButton" style:highest "location_row_button"
+widget "*LocationEditSetButton*" style:highest "location_row_button"
+widget "*LocationEditGoButton" style:highest "location_row_button"
+widget "*LocationEditGoButton*" style:highest "location_row_button"
+widget "*LocationEditCdButton" style:highest "small_red_active_and_selected_button"
+widget "*LocationEditCdButton*" style:highest "small_red_active_and_selected_button"
+widget "*LocationEditHideButton" style:highest "small_red_active_and_selected_button"
+widget "*LocationEditHideButton*" style:highest "small_red_active_and_selected_button"
+widget "*LocationEditNumberLabel" style:highest "small_text"
+widget "*LocationLocEditorFrame" style:highest "base_frame"
+widget "*LocationRangeEditorFrame" style:highest "base_frame"
+widget "*LocationEditNameEntry" style:highest "option_entry"
+widget "*LocationAddLocationButton" style:highest "default_button"
+widget "*LocationAddLocationButton*" style:highest "default_button"
+widget "*LocationAddRangeButton" style:highest "default_button"
+widget "*LocationAddRangeButton*" style:highest "default_button"
+widget "*LocationEditRemoveButton" style:highest "location_row_button"
+widget "*LocationEditRemoveButton*" style:highest "location_row_button"
+widget "*PanSlider" style:highest "pan_slider"
+widget "*PanningLinkButton" style:highest "mixer_red_active_button"
+widget "*PanningLinkButton.*" style:highest "mixer_red_active_button"
+widget "*PanningLinkDirectionButton" style:highest "very_small_button"
+widget "*PanningLinkDirectionButton.*" style:highest "very_small_button"
+widget "*ChannelCountSelector" style:highest "medium_bold_entry"
+widget "*ChannelCountSelector.GtkArrow" style:highest "default_generic"
+widget "*RegionListWholeFile" style:highest "treeview_parent_node"
+widget "*EditorHScrollbar" style:highest "editor_hscrollbar"
+widget "*ResizerHandler" style:highest "resizer_handle"
+
+style "tooltip" {
+ fg[NORMAL] = { 0.20, 0.20, 0.20 }
+ bg[NORMAL] = "#FFFFFF"
+}
+
+widget "*ooltip*" style:highest "tooltip"
diff --git a/gtk2_ardour/ardour3_ui_light_sae.rc.in b/gtk2_ardour/ardour3_ui_light_sae.rc.in
new file mode 100644
index 0000000000..2a6844c6d0
--- /dev/null
+++ b/gtk2_ardour/ardour3_ui_light_sae.rc.in
@@ -0,0 +1,1584 @@
+#
+# This is the GTK style file for Ardour
+#
+
+style "very_small_text"
+{
+ font_name = "%FONT_SMALLER%"
+}
+
+style "small_text"
+{
+ font_name = "%FONT_SMALL%"
+}
+
+style "small_bold_text"
+{
+ font_name = "%FONT_BOLD_SMALL%"
+}
+
+style "medium_bold_text"
+{
+ font_name = "%FONT_BOLD_NORMAL%"
+}
+
+style "medium_text"
+{
+ font_name = "%FONT_NORMAL%"
+}
+
+style "red_medium_text" = "medium_text"
+{
+ fg[NORMAL] = { 1.0, 0, 0 }
+ fg[ACTIVE] = { 1.0, 0, 0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+}
+
+
+style "large_text"
+{
+ font_name = "%FONT_LARGE%"
+}
+
+style "larger_bold_text"
+{
+ font_name = "%FONT_BOLD_BIGGER%"
+}
+
+style "plugin_name_text"
+{
+ font_name = "%FONT_BOLD_LARGER%"
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+}
+
+style "plugin_maker_text"
+{
+ font_name = "%FONT_BOLD_BIGGER%"
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+}
+
+style "automation_track_name"
+{
+ font_name = "%FONT_ITALIC_NORMAL%"
+}
+
+style "first_action_message"
+{
+ font_name = "%FONT_HUGER%"
+}
+
+style "verbose_canvas_cursor"
+{
+ font_name = "%FONT_BOLD_LARGER%"
+}
+
+style "marker_text"
+{
+ font_name = "%FONT_NORMAL%"
+}
+
+style "time_axis_view_item_name"
+{
+ font_name = "%FONT_SMALLER%"
+}
+
+style "default_base" = "medium_text"
+{
+
+ GtkButton::default_border = { 0, 0, 0, 0 }
+ GtkButton::default_outside_border = { 0, 0, 0, 0 }
+ GtkButton::button_relief = GTK_RELIEF_NONE
+ GtkTreeView::vertical-padding = 0
+ GtkTreeView::horizontal-padding = 0
+ GtkTreeView::even-row-color = { 0.70, 0.70, 0.70 }
+ GtkTreeView::odd-row-color = { 0.64, 0.64, 0.64 }
+
+ fg[NORMAL] = { 0.30, 0.30, 0.40 }
+ fg[ACTIVE] = { 0.30, 0.30, 0.40 }
+ fg[PRELIGHT] = { 0.10, 0.10, 0.20 }
+ fg[INSENSITIVE] = { 0.30, 0.30, 0.40 }
+ fg[SELECTED] = { 0.30, 0.30, 0.40 }
+
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+ bg[SELECTED] = { 0.80, 0.80, 0.80 }
+
+ text[NORMAL] = { 0.30, 0.30, 0.40 }
+ text[ACTIVE] = { 0.30, 0.30, 0.40 }
+ text[PRELIGHT] = { 0.30, 0.30, 0.40 }
+ text[INSENSITIVE] = { 0.30, 0.30, 0.40 }
+ text[SELECTED] = { 0, 0, 0 }
+
+ base[ACTIVE] = { 0.80, 0.80, 0.80 }
+ base[NORMAL] = { 0.80, 0.80, 0.80 }
+ base[PRELIGHT] = { 0.90, 0.90, 0.90 }
+ base[INSENSITIVE] = "#4c5159"
+ base[SELECTED] = { 0.60, 0.60, 0.80 }
+
+ engine "clearlooks"
+ {
+ menubarstyle = 0 # 0 = flat, 1 = sunken, 2 = flat gradient
+ menuitemstyle = 0 # 0 = flat, 1 = 3d-ish (gradient), 2 = 3d-ish (button)
+ listviewitemstyle = 0 # 0 = flat, 1 = 3d-ish (gradient)
+ progressbarstyle = 1 # 0 = candy bar, 1 = fancy candy bar, 2 = flat
+ }
+}
+
+style "base_frame"
+{
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ fg[NORMAL] = { 0.35, 0.35, 0.40 }
+}
+
+style "transport_base" = "medium_bold_text"
+{
+ bg[NORMAL] = { 0.10, 0.10, 0.10 }
+ bg[ACTIVE] = { 0, 0, 0 }
+ bg[PRELIGHT] = { 0, 0, 0 }
+ bg[INSENSITIVE] = { 0, 0, 0 }
+ bg[SELECTED] = { 0, 0, 0 }
+}
+/*
+style "black_mackie_menu_bar"
+{
+ font_name = "%FONT_BOLD_NORMAL%"
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ bg[NORMAL] = { 0, 0, 0 }
+}
+*/
+style "default_button"
+{
+ font_name = "%FONT_SMALL%"
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = "#565690"
+ bg[PRELIGHT] = { 0.70, 0.70, 0.90 }
+ bg[INSENSITIVE] = { 0.70, 0.70, 0.90 }
+ bg[SELECTED] = { 0.70, 0.70, 0.90 }
+}
+
+style "default_menu"
+{
+ font_name = "%FONT_NORMAL%"
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = "#565690"
+ bg[PRELIGHT] = { 0.70, 0.70, 0.90 }
+ bg[INSENSITIVE] = { 0.70, 0.70, 0.90 }
+ bg[SELECTED] = { 0.70, 0.70, 0.90 }
+}
+
+style "default_generic"
+{
+ font_name = "%FONT_NORMAL%"
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = "#565690"
+ bg[PRELIGHT] = { 0.70, 0.70, 0.90 }
+ bg[INSENSITIVE] = { 0.70, 0.70, 0.90 }
+ bg[SELECTED] = { 0.70, 0.70, 0.90 }
+}
+
+style "very_small_button" = "default_button"
+{
+ font_name = "%FONT_SMALLER%"
+ ythickness = 0
+ xthickness = 0
+}
+
+style "small_button" = "default_button"
+{
+}
+
+style "very_small_red_active_and_selected_button" = "very_small_button"
+{
+ bg[ACTIVE] = { 1.0, 0, 0}
+ bg[SELECTED] = { 1.0, 0, 0}
+}
+
+style "small_red_active_and_selected_button" = "small_button"
+{
+ fg[ACTIVE] = { 0, 0, 0 }
+ bg[ACTIVE] = { 1.0, 0, 0}
+ bg[SELECTED] = { 1.0, 0, 0}
+}
+
+style "gain_fader"
+{
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.80, 0.80, 0.80 }
+}
+
+
+style "track_rec_enable_button" = "small_button"
+{
+}
+
+style "track_rec_enable_button_active" = "small_button"
+{
+ fg[SELECTED] = { 0.0, 0.0, 0.0 }
+ fg[ACTIVE] = { 0.0, 0.0, 0.0 }
+ fg[PRELIGHT] = { 0.0, 0.0, 0.0 }
+ fg[NORMAL] = { 0.0, 0.0, 0.0 }
+
+ bg[NORMAL] = { 1.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 1.0, 0.0, 0.0 }
+ bg[SELECTED] = { 1.0, 0.0, 0.0 }
+ bg[PRELIGHT] = { 1.0, 0.0, 0.0 }
+}
+
+style "track_rec_enable_button_alternate" = "small_button"
+{
+ fg[SELECTED] = { 0.0, 0.0, 0.0 }
+ fg[ACTIVE] = { 0.0, 0.0, 0.0 }
+ fg[PRELIGHT] = { 0.0, 0.0, 0.0 }
+ fg[NORMAL] = { 0.0, 0.0, 0.0 }
+
+ bg[NORMAL] = { 0.91, 0.68, 0.68}
+ bg[ACTIVE] = { 0.91, 0.68, 0.68}
+ bg[SELECTED] = { 0.91, 0.68, 0.68}
+ bg[PRELIGHT] = { 0.91, 0.68, 0.68}
+}
+
+style "mixer_track_rec_enable_button" = "track_rec_enable_button"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_track_rec_enable_button_alternate" = "track_rec_enable_button_alternate"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_track_rec_enable_button_active" = "track_rec_enable_button_active"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "solo_button" = "small_button"
+{
+}
+
+style "solo_button_alternate" = "small_button"
+{
+ bg[NORMAL] = { 0.19, 0.97, 0.69 } # solo-safe
+ bg[ACTIVE] = { 0.19, 0.97, 0.69 } # solo-safe
+ bg[SELECTED] = { 0.19, 0.97, 0.69 } # solo-safe
+ bg[PRELIGHT] = { 0.19, 0.97, 0.69 } # solo-safe
+
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+}
+
+
+style "solo_button_active" = "small_button"
+{
+ bg[NORMAL] = { 0.66, 0.97, 0.19 } # solo
+ bg[ACTIVE] = { 0.66, 0.97, 0.19 } # solo
+ bg[SELECTED] = { 0.66, 0.97, 0.19 } # solo
+ bg[PRELIGHT] = { 0.66, 0.97, 0.19 } # solo
+
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+}
+
+style "mixer_solo_button" = "solo_button"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_solo_button_alternate" = "solo_button_alternate"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+style "mixer_solo_button_active" = "solo_button_active"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+
+style "mute_button" = "small_button"
+{
+}
+
+style "mute_button_alternate" = "small_button"
+{
+ bg[ACTIVE] = { 1.0, 0.98, 0.53 }
+ bg[NORMAL] = { 1.0, 0.98, 0.53 }
+ bg[SELECTED] = { 1.0, 0.98, 0.53 }
+ bg[PRELIGHT] = { 1.0, 0.98, 0.53 }
+
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+}
+
+style "mute_button_active" = "small_button"
+{
+ bg[NORMAL] = { 0.90, 0.89, 0.73 }
+ bg[ACTIVE] = { 0.90, 0.89, 0.73 }
+ bg[PRELIGHT] = { 0.90, 0.89, 0.73 }
+ bg[SELECTED] = { 0.90, 0.89, 0.73 }
+
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+}
+
+style "mixer_mute_button_alternate" = "mute_button_alternate"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_mute_button_active" = "mute_button_active"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "multiline_combo" = "small_button"
+{
+ font_name = "%FONT_NORMAL%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "mixer_mute_button" = "mute_button"
+{
+ font_name = "%FONT_SMALLER%"
+ xthickness = 0
+ ythickness = 0
+}
+
+style "track_loop_button" = "small_button"
+{
+ bg[ACTIVE] = { 1.0, 0.98, 0.53 }
+ bg[PRELIGHT] = { 1.0, 0.98, 0.53 }
+
+}
+
+style "mixer_red_active_button" = "very_small_button"
+{
+ fg[ACTIVE] = { 0, 1.0, 1.0 }
+ bg[ACTIVE] = { 0.7, 0, 0 }
+
+ base[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+ bg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+}
+
+style "time_button" = "default_button"
+{
+ font_name = "%FONT_SMALL%"
+}
+
+style "transport_button"
+{
+}
+
+style "transport_button_active"
+{
+ bg[NORMAL] = { 0.50, 1.0, 0.50 }
+ bg[ACTIVE] = { 0.50, 1.0, 0.50 }
+ bg[SELECTED] = { 0.50, 1.0, 0.50 }
+ bg[PRELIGHT] = { 0.50, 1.0, 0.50 }
+
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+}
+
+style "transport_rec_button"
+{
+}
+
+style "transport_rec_button_active"
+{
+ bg[ACTIVE] = { 1.0, 0, 0 }
+ bg[NORMAL] = { 1.0, 0, 0 }
+ bg[SELECTED] = { 1.0, 0, 0 }
+ bg[PRELIGHT] = { 1.0, 0, 0 }
+}
+
+style "transport_rec_button_alternate"
+{
+ bg[PRELIGHT] = { 0.91, 0.68, 0.68 }
+ bg[NORMAL] = { 0.91, 0.68, 0.68 }
+ bg[SELECTED] = { 0.91, 0.68, 0.68 }
+ bg[ACTIVE] = { 0.91, 0.68, 0.68 }
+}
+
+style "shuttle_control" = "very_small_text"
+{
+ fg[NORMAL] = { 0.85, 0.92, 0.98 }
+ fg[ACTIVE] = { 0.85, 0.92, 0.98 }
+ fg[PRELIGHT] = { 0.85, 0.92, 0.98 }
+ fg[SELECTED] = { 0.85, 0.92, 0.98 }
+ fg[INSENSITIVE] = { 0.85, 0.92, 0.98 }
+
+ bg[NORMAL] = { 0.26, 0.26, 0.31 }
+ bg[PRELIGHT] = { 0.26, 0.26, 0.31 }
+ bg[INSENSITIVE] = { 0.26, 0.26, 0.31 }
+ bg[ACTIVE] = { 0.70, 0.70, 0.70 }
+ bg[SELECTED] = { 1.0, 0.04, 0.04 }
+}
+
+style "ardour_adjusters" = "default_generic"
+{
+ bg[NORMAL] = { 0.60, 0.60, 0.60 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.06, 0.06, 0.06 }
+}
+
+style "editor_hscrollbar" = "ardour_adjusters"
+{
+ #
+ # special case: we want this scrollbar to be as tall as the
+ # zoom focus selector combobox. scrollbars don't expand to
+ # fill the space available to them, so we have to explicitly
+ # make it bigger.
+ #
+ GtkRange::slider_width = 27
+ GtkScrollbar::slider_width = 27
+}
+
+style "resizer_handle"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ bg[NORMAL] = "#818181"
+}
+
+style "ardour_progressbars" = "default_generic"
+{
+ bg[NORMAL] = { 0, 0, 0 }
+ bg[PRELIGHT] = { 0.00, 0.36, 0.40 }
+}
+
+style "preferences" = "default_base"
+{
+ font_name = "%FONT_NORMAL%"
+ fg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+}
+
+style "option_entry" = "default_base"
+{
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+ fg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+
+ base[INSENSITIVE] = { 0.07, 0.07, 0.12 }
+
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+ bg[ACTIVE] = { 0.35, 0.35, 0.40 }
+}
+
+style "red_when_active" = "medium_text"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+
+ fg[ACTIVE] = { 0, 0, 0 }
+ bg[ACTIVE] = { 1.0, 0, 0}
+}
+
+style "xrun_warn"
+{
+ font_name = "%FONT_BOLD_LARGE%"
+
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+ text[NORMAL] = { 1.0, 1.0, 1.0 }
+ text[ACTIVE] = { 1.0, 1.0, 1.0 }
+ base[NORMAL] = { 0.09, 0.48, 0.46 }
+ base[ACTIVE] = { 0.09, 0.48, 0.46 }
+ bg[NORMAL] = { 1.0, 0.48, 0.46 }
+ bg[ACTIVE] = { 0.09, 1.0, 0.46 }
+}
+/*
+style "menu_bar_base" = "default_base"
+{
+ bg[NORMAL] = { 0.2, 0.2, 0.3 }
+ bg[ACTIVE] = { 0, 0, 0 }
+ bg[PRELIGHT] = { 0, 0, 0 }
+ bg[INSENSITIVE] = { 0, 0, 0 }
+ bg[SELECTED] = { 0, 0, 0 }
+}
+*/
+style "fatal_message" = "medium_text"
+{
+ fg[ACTIVE] = { 1.0, 0, 1.0 }
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0,0,0 }
+ bg[NORMAL] = { 0,0,0 }
+ base[ACTIVE] = { 0,0,0 }
+ base[NORMAL] = { 0,0,0 }
+}
+
+style "error_message" = "medium_text"
+{
+ fg[ACTIVE] = { 1.0, 0, 0 }
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0,0,0 }
+ bg[NORMAL] = { 0,0,0 }
+ base[ACTIVE] = { 0,0,0 }
+ base[NORMAL] = { 0,0,0 }
+}
+
+style "info_message" = "medium_text"
+{
+ fg[ACTIVE] = { 1.0, 0, 0 }
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0,0,0 }
+ bg[NORMAL] = { 0,0,0 }
+ base[ACTIVE] = { 0,0,0 }
+ base[NORMAL] = { 0,0,0 }
+}
+
+style "warning_message" = "medium_text"
+{
+ fg[ACTIVE] = { 0.30,0.30, 1.0 }
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0, 0, 0 }
+ bg[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ base[NORMAL] = { 0, 0, 0 }
+}
+
+style "medium_entry" = "medium_text"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[SELECTED] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.70, 0.70, 0.70 }
+
+ base[NORMAL] = { 0.70, 0.70, 0.70 }
+ base[ACTIVE] = { 0.70, 0.70, 0.70 }
+ base[SELECTED] = { 0.70, 0.70, 0.70 }
+}
+
+style "medium_entry_noselection_fg" = "medium_entry"
+{
+ fg[SELECTED] = { 0.50, 1.0, 0.50 }
+}
+
+style "medium_entry_noselection_bg" = "medium_entry"
+{
+ bg[SELECTED] = { 1.0, 1.0, 1.0 }
+}
+
+style "medium_bold_entry" = "medium_bold_text"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[SELECTED] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.70, 0.70, 0.70 }
+
+ base[NORMAL] = { 0.70, 0.70, 0.70 }
+ base[ACTIVE] = { 0.70, 0.70, 0.70 }
+ base[SELECTED] = { 0.70, 0.70, 0.70 }
+}
+
+style "small_entry" = "small_text"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 1.0, 0 }
+ fg[SELECTED] = { 0, 1.0, 0 }
+ text[NORMAL] = { 0, 0, 0 }
+ text[ACTIVE] = { 0, 1.0, 0 }
+ text[SELECTED] = { 0, 1.0, 0 }
+ bg[NORMAL] = { 0.70, 0.70, 0.70 }
+ bg[SELECTED] = { 0.70, 0.70, 0.70 }
+ bg[SELECTED] = { 0.70, 0.70, 0.70 }
+ base[NORMAL] = { 0.70, 0.70, 0.70 }
+ base[ACTIVE] = { 0.70, 0.70, 0.70 }
+ base[SELECTED] = { 0.70, 0.70, 0.70 }
+}
+
+style "red_active_small_entry" = "small_entry"
+{
+ fg[ACTIVE] = { 1.0, 0.0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+}
+
+style "small_bold_entry" = "small_bold_text"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[ACTIVE] = { 0, 0, 0 }
+ fg[SELECTED] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = { 0.70, 0.70, 0.70 }
+
+ base[NORMAL] = { 0.70, 0.70, 0.70 }
+ base[ACTIVE] = { 0.70, 0.70, 0.70 }
+ base[SELECTED] = { 0.70, 0.70, 0.70 }
+}
+
+style "small_red_on_black_entry" = "small_bold_text"
+{
+ fg[NORMAL] = { 1.0, 0, 0 }
+ fg[ACTIVE] = { 1.0, 0, 0 }
+ base[NORMAL] = { 0.0, 0.0, 0.0 }
+ base[ACTIVE] = { 0.0, 0.0, 0.0 }
+ bg[NORMAL] = { 0.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 0.0, 0.0, 0.0 }
+}
+
+style "non_recording_big_clock_display" = "medium_entry"
+{
+ font_name = "%FONT_MASSIVE%"
+
+ fg[NORMAL] = { 0.50, 1.0, 0.50 }
+ fg[ACTIVE] = { 1.0, 0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+ fg[PRELIGHT] = { 1.0, 0, 0.0 }
+ fg[INSENSITIVE] = { 1.0, 0, 0.0 }
+
+ base[NORMAL] = { 0.0, 0.0, 0.0 }
+ base[ACTIVE] = { 0.0, 0.0, 0.0 }
+ bg[NORMAL] = { 0.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 0.7, 0.0, 0.0 }
+}
+
+style "recording_big_clock_display" = "non_recording_big_clock_display"
+{
+ fg[NORMAL] = { 1.0, 0, 0 }
+}
+
+style "transport_clock_display"
+{
+ font_name = "%FONT_BOLD_BIGGER%"
+
+ fg[NORMAL] = { 0.50, 1.0, 0.50 }
+ fg[ACTIVE] = { 1.0, 0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+ fg[PRELIGHT] = { 1.0, 0, 0.0 }
+ fg[INSENSITIVE] = { 1.0, 0, 0.0 }
+
+ base[NORMAL] = { 0.0, 0.0, 0.0 }
+ base[ACTIVE] = { 0.0, 0.0, 0.0 }
+ bg[NORMAL] = { 0.0, 0.0, 0.0 }
+ bg[ACTIVE] = { 0.0, 0.0, 0.0 }
+}
+
+style "transport_clock_display_delta" = "transport_clock_display"
+{
+ fg[NORMAL] = { 0.30, 0.30, 1.0 }
+}
+
+style "tempo_meter_clock_display"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 1.0, 1.0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+ base[NORMAL] = { 0.0, 0.48, 1.0 }
+ base[ACTIVE] = { 0.09, 0.98, 0.46 }
+ bg[NORMAL] = { 0.0, 0.48, 1.0 }
+ bg[ACTIVE] = { 0.09, 0.98, 0.46 }
+}
+
+style "default_clock_display" = "medium text"
+{
+ fg[NORMAL] = { 0.50, 1.0, 0.50 }
+ fg[ACTIVE] = { 1.0, 0.0, 0.0 }
+ fg[SELECTED] = { 1.0, 0, 0 }
+ base[NORMAL] = { 0, 0, 0 }
+ base[ACTIVE] = { 0, 0, 0 }
+ bg[NORMAL] = { 0, 0, 0 }
+ bg[ACTIVE] = { 0, 0, 0 }
+}
+
+style "editor_time_ruler" = "small_text"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.74, 0.74, 0.77 }
+}
+
+style "audio_bus_base"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.65, 0.65, 0.65 }
+}
+
+style "audio_track_base" = "default_base"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 0.30, 0.30, 0.35 }
+ bg[NORMAL] = { 0.70, 0.70, 0.70 }
+ bg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+ bg[SELECTED] = { 0.80, 0.80, 0.80 }
+}
+
+style "midi_bus_base"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 0.77, 0.77, 0.72 }
+ fg[NORMAL] = { 0.7, 0.8, 0.2 }
+ #bg[NORMAL] = {0, 0.36, 0.40 }
+ bg[NORMAL] = "#444466"
+}
+
+style "midi_track_base" = "default_base"
+{
+ font_name = "%FONT_SMALLER%"
+ fg[NORMAL] = { 0.77, 0.77, 0.72 }
+ bg[NORMAL] = { 0.48, 0.30, 0.32 }
+ bg[ACTIVE] = { 0.70, 0.70, 0.80 }
+ bg[PRELIGHT] = { 0.70, 0.70, 0.80 }
+ bg[INSENSITIVE] = { 0.70, 0.70, 0.80 }
+ bg[SELECTED] = { 0.70, 0.70, 0.80 }
+}
+
+style "track_controls_inactive"
+{
+ bg[NORMAL] = { 0.60, 0.60, 0.66 }
+ bg[ACTIVE] = { 0.60, 0.60, 0.66 }
+ bg[INSENSITIVE] = { 0.60, 0.60, 0.66 }
+ bg[SELECTED] = { 0.60, 0.60, 0.66 }
+ bg[PRELIGHT] = { 0.60, 0.60, 0.66 }
+
+ #font_name = "sans 18"
+ fg[NORMAL] = { 0.7, 0.8, 0.2 }
+}
+
+style "audio_track_metrics" = "audio_track_base"
+{
+ font_name = "%FONT_TINY%"
+}
+
+style "audio_bus_metrics" = "audio_bus_base"
+{
+ font_name = "%FONT_TINY%"
+}
+
+style "audio_track_metrics_inactive" = "track_controls_inactive"
+{
+ font_name = "%FONT_TINY%"
+}
+
+style "audio_bus_metrics_inactive" = "track_controls_inactive"
+{
+ font_name = "%FONT_TINY%"
+}
+
+style "track_name_display"
+{
+ font_name = "%FONT_NORMAL%"
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ fg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ text[INSENSITIVE] = { 0.70, 0.70, 0.70 }
+
+ base[NORMAL] = { 0.80, 0.80, 0.80 }
+ base[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.80, 0.80, 0.80 }
+}
+
+style "active_track_name_display"
+{
+ font_name = "%FONT_NORMAL%"
+ text[NORMAL] = { 0.26, 0.26, 0.26 }
+ base[NORMAL] = { 0.89, 0.89, 0.89 }
+}
+
+style "track_separator"
+{
+ bg[NORMAL] = { 0.35, 0.35, 0.40 }
+}
+
+#
+# Track edit groups. These styles define
+# the colors that the "edit" button will
+# use as a track is moved from
+# track edit group to track edit group.
+# There are 8 edit groups. Edit group 0
+# is used for tracks that are not editable,
+# so we leave its style to the default.
+#
+
+style "edit_group_0"
+
+{
+ bg[ACTIVE] = { 1.0, 0.65, 0.13 }
+ bg[NORMAL] = { 0.31, 0.31, 0.31 }
+ fg[NORMAL] = { 0.82, 0.91, 0.99 }
+ fg[ACTIVE] = { 0, 0, 0 }
+}
+
+style "edit_group_1"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.93, 0.34, 0.08 }
+ bg[PRELIGHT] = { 0.93, 0.34, 0.08 }
+ bg[SELECTED] = { 0.93, 0.34, 0.08 }
+}
+
+style "edit_group_2"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.93, 0.34, 0.08 }
+ bg[PRELIGHT] = { 0.93, 0.34, 0.08 }
+ bg[SELECTED] = { 0.93, 0.34, 0.08 }
+}
+
+style "edit_group_3"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ fg[PRELIGHT] = { 0, 0, 0 }
+ fg[SELECTED] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.93, 0.34, 0.08 }
+ bg[PRELIGHT] = { 0.93, 0.34, 0.08 }
+ bg[SELECTED] = { 0.93, 0.34, 0.08 }
+}
+
+style "treeview_parent_node"
+{
+ # specifies *just* the color used for whole file rows when not selected
+ fg[NORMAL] = { 0.0, 0.0, 1.0 }
+}
+
+style "treeview_display" = "small_bold_text"
+{
+ # expander arrow border and DnD "icon" text
+ fg[NORMAL] = { 0, 0, 0 }
+
+ # background with no rows or no selection, plus
+ # expander arrow core and DnD "icon" background
+ base[NORMAL] = { 0.20, 0.20, 0.25 }
+
+ # selected row bg when window does not have focus (including during DnD)
+ base[ACTIVE] = { 0.0, 0.60, 0.60 }
+
+ # selected row bg when window has focus
+ base[SELECTED] = { 0, 0.75, 0.75 }
+
+ # row text when in normal state and not a parent
+ text[NORMAL] = { 0, 0, 0 }
+
+ # selected row text with window focus
+ text[SELECTED] = { 0, 1.0, 1.0 }
+
+ # selected row text without window focus (including during DnD)
+ text[ACTIVE] = { 0, 1.0, 1.0 }
+}
+
+style "main_canvas_area"
+{
+ bg[NORMAL] = { 0.40, 0.40, 0.40 }
+ bg[ACTIVE] = { 0.40, 0.40, 0.40 }
+ bg[INSENSITIVE] = { 0.40, 0.40, 0.40 }
+ bg[SELECTED] = { 0.40, 0.40, 0.40 }
+ bg[PRELIGHT] = { 0.40, 0.40, 0.40 }
+}
+
+style "track_controls_inactive"
+{
+ bg[NORMAL] = { 0.60, 0.60, 0.66 }
+ bg[ACTIVE] = { 0.60, 0.60, 0.66 }
+ bg[INSENSITIVE] = { 0.60, 0.60, 0.66 }
+ bg[SELECTED] = { 0.60, 0.60, 0.66 }
+ bg[PRELIGHT] = { 0.60, 0.60, 0.66 }
+
+ font_name = "%FONT_LARGE%"
+ fg[NORMAL] = { 0.7, 0.8, 0.2 }
+}
+
+style "edit_controls_base_selected"
+{
+ bg[NORMAL] = { 0.60, 0.54, 0.60 }
+ bg[ACTIVE] = { 0.60, 0.54, 0.60 }
+ bg[INSENSITIVE] = { 0.60, 0.54, 0.60 }
+ bg[SELECTED] = { 0.60, 0.54, 0.60 }
+ bg[PRELIGHT] = { 0.60, 0.54, 0.60 }
+}
+
+style "automation_track_controls_base"
+{
+ bg[NORMAL] = { 0.22, 0.22, 0.29 }
+ bg[ACTIVE] = { 0.22, 0.22, 0.29 }
+ bg[INSENSITIVE] = { 0.22, 0.22, 0.29 }
+ bg[SELECTED] = { 0.22, 0.22, 0.29 }
+ bg[PRELIGHT] = { 0.22, 0.22, 0.29 }
+}
+
+# Plugin Editors
+style "plugin_slider"
+{
+ font_name ="%FONT_BOLD_BIG%"
+
+ # the slider itself. the inactive part is INSENSITIVE,
+ # the active part is something else.
+
+ fg[NORMAL] = { 0.37, 0.43, 0.52 }
+ fg[ACTIVE] = { 0.37, 0.43, 0.52 }
+ fg[INSENSITIVE] = {0.35, 0.35, 0.40 } # matches default_base
+ fg[SELECTED] = { 0.37, 0.43, 0.52 }
+ fg[PRELIGHT] = { 0.37, 0.43, 0.52 }
+
+ # draws the outer rectangle around the slider
+
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[INSENSITIVE] = {0.80, 0.80, 0.80 }
+ bg[SELECTED] = { 0.80, 0.80, 0.80 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+
+ # the numeric display
+
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+ text[ACTIVE] = { 0.80, 0.80, 0.80 }
+ text[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+ text[SELECTED] = { 0.80, 0.80, 0.80 }
+ text[PRELIGHT] = { 0.80, 0.80, 0.80 }
+}
+
+style "track_list_display" = "small_bold_text"
+{
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+ text[ACTIVE] = { 0.3, 0.3, 0.3 }
+ text[INSENSITIVE] = { 0, 0, 0 }
+ text[SELECTED] = { 0.8, 0.8, 0.8 }
+
+ base[NORMAL] = { 0.70, 0.70, 0.70 }
+ base[ACTIVE] = { 0.70, 0.70, 0.70 }
+ base[INSENSITIVE] = { 0.70, 0.70, 0.70 }
+ base[SELECTED] = { 0.70, 0.70, 0.70 }
+}
+
+style "inspector_track_list_display" = "track_list_display"
+{
+ text[ACTIVE] = { 0.8, 0.8, 0.8 }
+
+ base[NORMAL] = { 0.70, 0.70, 0.70 }
+ base[ACTIVE] = { 0.2, 0.2, 0.2 }
+ base[INSENSITIVE] = { 0.70, 0.70, 0.70 }
+ base[SELECTED] = { 0.3, 0.3, 0.4 }
+}
+
+style "redirect_list_display"
+{
+ GtkTreeView::horizontal-separator = 0
+ GtkTreeView::vertical-separator = 0
+
+ font_name = "%FONT_SMALL%"
+ text[NORMAL] = { 0.80, 0.80, 0.80 }
+ text[ACTIVE] = { 0.70, 0.70, 0.70 }
+ text[INSENSITIVE] = { 0, 0, 0 }
+ text[SELECTED] = { 0.9, 0.3, 0.3 }
+
+ base[NORMAL] = { 0.70, 0.70, 0.70 }
+ base[ACTIVE] = { 0.70, 0.70, 0.70 }
+ base[INSENSITIVE] = { 0.70, 0.70, 0.70 }
+ base[SELECTED] = { 0.70, 0.70, 0.70 }
+
+ # these two are explicitly used by the cell renderer for the
+ # text
+
+ fg[NORMAL] = { 0.5, 0.5, 0.5 } # used for inactive
+ fg[ACTIVE] = { 0, 0, 0 } # used for active
+}
+
+style "inspector_redirect_list_display" = "redirect_list_display"
+{
+ base[SELECTED] = { 0.3, 0.3, 0.3 }
+}
+
+# MixerPanZone:
+#
+# the NORMAL fg color is used for the pan puck
+# the ACTIVE fg color is used for the speaker boxes
+
+style "pan_zone" = "default_base"
+{
+ fg[NORMAL] = { 0.34, 0.95, 0.92 }
+ fg[ACTIVE] = { 0.95, 0.48, 0.11 }
+}
+
+style "paler_red_when_active" = "medium_text"
+{
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ fg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.31, 0.31, 0.31 }
+ bg[PRELIGHT] = { 0.31, 0.31, 0.31 }
+
+ fg[ACTIVE] = { 0.36, 0.46, 0.28 }
+ bg[ACTIVE] = { 1.00, 0.59, 0.59}
+}
+
+style "peak_display_peaked_entry" = "small_text"
+{
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ fg[ACTIVE] = { 1.0, 1.0, 1.0 }
+ fg[SELECTED] = { 1.0, 1.0, 1.0 }
+
+ bg[NORMAL] = {0.9, 0.0, 0.0 }
+ bg[ACTIVE] = { 0.9, 0.0, 0.0 }
+ bg[PRELIGHT] = { 0.9, 0.0, 0.0 }
+ bg[INSENSITIVE] = { 0.9, 0.0, 0.0 }
+ bg[SELECTED] = { 0.9, 0.0, 0.0 }
+ base[NORMAL] = { 0.9, 0.0, 0.0 }
+ base[ACTIVE] = { 0.9, 0.0, 0.0 }
+ base[PRELIGHT] = { 0.9, 0.0, 0.0 }
+ base[INSENSITIVE] = { 0.9, 0.0, 0.0 }
+ base[SELECTED] = { 0.9, 0.0, 0.0 }
+}
+
+style "selected_strip_frame"
+{
+ fg[NORMAL] = { 0.74, 0.42, 0.47 }
+ bg[NORMAL] = { 0.79, 0.28, 0.18 }
+}
+
+style "flashing_alert" = "very_small_text"
+{
+ fg[NORMAL] = { 0, 0, 0 }
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+
+ fg[ACTIVE] = { 0, 0, 0 }
+ bg[ACTIVE] = { 1.0, 0, 0}
+}
+
+style "selected_io_selector_port_list" = "medium_bold_text"
+{
+
+ GtkTreeView::even-row-color = { 0.70, 0.70, 0.70 }
+ GtkTreeView::odd-row-color = { 0.70, 0.70, 0.70 }
+
+# fg is used to color the fg (text) of the column header button
+
+ fg[NORMAL] = { 0.30, 0.30, 0.35 }
+ fg[SELECTED] = { 0.30, 0.30, 0.35 }
+ fg[ACTIVE] = { 0.30, 0.30, 0.35 }
+ fg[PRELIGHT] = { 0.30, 0.30, 0.35 }
+ fg[INSENSITIVE] = { 0.30, 0.30, 0.35 }
+
+# bg is used used to color the background of the column header button
+
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+ bg[SELECTED] = { 0.80, 0.80, 0.80 }
+
+# text is used to color the treeview row text
+
+ text[NORMAL] = { 0.30, 0.30, 0.35 }
+ text[SELECTED] = { 0.30, 0.30, 0.35 }
+
+# base is used to color a treeview with no rows
+
+ base[NORMAL] = { 0.70, 0.70, 0.70 }
+ base[ACTIVE] = { 0.70, 0.70, 0.70 }
+ base[PRELIGHT] = { 0.70, 0.70, 0.70 }
+ base[INSENSITIVE] = { 0.70, 0.70, 0.70 }
+ base[SELECTED] = { 0.70, 0.70, 0.70 }
+
+}
+
+style "io_selector_port_list" = "medium_text"
+{
+ GtkTreeView::even-row-color = { 0.70, 0.70, 0.70 }
+ GtkTreeView::odd-row-color = { 0.70, 0.70, 0.70 }
+# fg is used to color the fg (text) of the column header button
+
+ fg[NORMAL] = { 0.30, 0.30, 0.35 }
+ fg[SELECTED] = { 0.30, 0.30, 0.35 }
+ fg[ACTIVE] = { 0.30, 0.30, 0.35 }
+ fg[PRELIGHT] = { 0.30, 0.30, 0.35 }
+ fg[INSENSITIVE] = { 0.30, 0.30, 0.35 }
+
+# bg is used used to color the background of the column header button
+
+ bg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[PRELIGHT] = { 0.80, 0.80, 0.80 }
+ bg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
+ bg[SELECTED] = { 0.80, 0.80, 0.80 }
+
+# text is used to color the treeview row text
+
+ text[NORMAL] = { 0.30, 0.30, 0.35 }
+ text[SELECTED] = { 0.30, 0.30, 0.35 }
+
+# base is used to color a treeview with no rows
+
+ base[NORMAL] = { 0.20, 0.20, 0.25 }
+ base[ACTIVE] = { 0.20, 0.20, 0.25 }
+ base[PRELIGHT] = { 0.20, 0.20, 0.25 }
+ base[INSENSITIVE] = { 0.20, 0.20, 0.25 }
+ base[SELECTED] = { 0.20, 0.20, 0.25 }
+}
+
+style "io_selector_notebook" = "default_base"
+{
+ fg[NORMAL] = { 1.0, 1.0, 1.0 }
+ font_name ="%FONT_BOLD_NORMAL%"
+}
+
+style "tearoff_arrow" = "medium_bold_entry"
+{
+ fg[NORMAL] = { 0.30, 0.30, 0.30 }
+ fg[PRELIGHT] = { 0.30, 0.30, 0.30 }
+ bg[NORMAL] = { 0.30, 0.30, 0.30 }
+ bg[PRELIGHT] = { 0.30, 0.30, 0.30 }
+}
+
+style "location_row_button" = "default_button"
+{
+ font_name = "%FONT_NORMAL%"
+}
+
+style "location_rows_clock" = "default_clock_display"
+{
+ font_name = "%FONT_BIG%"
+}
+
+style "pan_slider"
+{
+ font_name = "%FONT_NORMAL%"
+
+ fg[NORMAL] = { 0.22, 0.73, 0.22 }
+ fg[ACTIVE] = { 0.22, 0.73, 0.22 }
+ fg[INSENSITIVE] = {0.22, 0.53, 0.22 }
+ fg[SELECTED] = { 0.67, 0.23, 0.22 }
+ fg[PRELIGHT] = { 0.67, 0.23, 0.22 }
+
+ bg[NORMAL] = { 0.05, 0.05, 0.05 }
+ bg[ACTIVE] = { 0, 0, 0 }
+ bg[INSENSITIVE] = {0.12, 0.19, 0.25 }
+ bg[SELECTED] = { 0, 0, 0 }
+ bg[PRELIGHT] = { 0, 0, 0 }
+
+ text[NORMAL] = { 0.70, 0.70, 0.70 }
+ text[ACTIVE] = { 0.70, 0.70, 0.70 }
+ text[INSENSITIVE] = { 0.70, 0.70, 0.70 }
+ text[SELECTED] = { 0.70, 0.70, 0.70 }
+ text[PRELIGHT] = { 0.70, 0.70, 0.70 }
+
+ # used to draw the triangular indicators
+
+ base[NORMAL] = { 0.80, 0.80, 0.80 }
+ base[ACTIVE] = { 0.80, 0.80, 0.80 }
+ base[INSENSITIVE] = {0.6, 0.6, 0.6 }
+ base[SELECTED] = { 0.80, 0.80, 0.80 }
+ base[PRELIGHT] = { 0.80, 0.80, 0.80 }
+
+}
+
+style "ardour_button" ="default_button"
+{
+ xthickness = 1
+ ythickness = 1
+}
+
+#---------------------------------------------------------------
+
+class "GtkWidget" style:highest "default_base"
+class "GtkScrollbar" style:highest "ardour_adjusters"
+class "GtkLabel" style:highest "default_generic"
+class "GtkButton" style:highest "ardour_button"
+class "GtkArrow" style:highest "tearoff_arrow"
+class "GtkProgressBar" style:highest "ardour_progressbars"
+
+widget "*FirstActionMessage" style:highest "first_action_message"
+widget "*VerboseCanvasCursor" style:highest "verbose_canvas_cursor"
+widget "*MarkerText" style:highest "marker_text"
+widget "*TimeAxisViewItemName*" style:highest "time_axis_view_item_name"
+#widget "*ExportProgress" style:highest "default_generic"
+widget "*ExportFileLabel" style:highest "small_bold_text"
+widget "*ExportFormatLabel" style:highest "medium_bold_text"
+widget "*ExportHeader" style:highest "small_bold_text"
+widget "*ExportFileDisplay" style:highest "medium_entry"
+widget "*ExportFormatDisplay" style:highest "medium_entry"
+widget "*ExportCheckbox" style:highest "small_entry"
+widget "*ExportTrackSelector*" style:highest "medium_entry_noselection_bg"
+widget "*EditModeSelector" style:highest "medium_bold_entry"
+widget "*SnapTypeSelector" style:highest "medium_bold_entry"
+widget "*SnapModeSelector" style:highest "medium_bold_entry"
+widget "*ZoomFocusSelector" style:highest "medium_bold_entry"
+widget "*ArdourContextMenu*" style:highest "default_menu"
+widget "*EditGroupTitleButton*" style:highest "default_button"
+widget "*MixerGroupTitleButton*" style:highest "default_button"
+widget "*ErrorLogCloseButton" style:highest "default_button"
+widget "*EditorGTKButton*" style:highest "default_button"
+widget "*ToolbarButton" style:highest "default_button"
+widget "*ToolbarButton*" style:highest "default_button"
+widget "*CrossfadeEditButton" style:highest "default_button"
+widget "*CrossfadeEditButton*" style:highest "default_button"
+widget "*TrackHistoryButton*" style:highest "default_button"
+widget "*TrackSizeButton*" style:highest "default_button"
+widget "*TrackPlaylistButton*" style:highest "default_button"
+widget "*TrackAutomationButton*" style:highest "default_button"
+widget "*TrackGroupButton*" style:highest "default_button"
+widget "*TrackMixButton*" style:highest "default_button"
+widget "*TrackVisualButton*" style:highest "default_button"
+widget "*TrackRemoveButton*" style:highest "default_button"
+widget "*BaseButton" style:highest "default_button"
+widget "*TakeButtonLabel" style:highest "default_generic"
+widget "*MixerWidthButton" style:highest "default_button"
+widget "*MixerHideButton" style:highest "default_button"
+widget "*MixerSendButton" style:highest "default_button"
+widget "*MixerSendButtonLabel" style:highest "default_button"
+widget "*MixerSendSwitch" style:highest "default_button"
+widget "*MixerInsertButton" style:highest "default_button"
+widget "*MixerInsertButtonLabel" style:highest "default_button"
+widget "*MixerInsertSwitch" style:highest "default_button"
+widget "*MixerMonitorInputButton*" style:highest "very_small_button"
+widget "*MixerMonitorInputButton.*" style:highest "very_small_button"
+widget "*MixerIOButton" style:highest "very_small_button"
+widget "*MixerIOButtonLabel" style:highest "very_small_button"
+widget "*AddRouteDialogSpinner" style:highest "ardour_adjusters"
+widget "*AddRouteDialogRadioButton*" style:highest "preferences"
+widget "*OptionsNotebook" style:highest "preferences"
+widget "*OptionEditorToggleButton*" style:highest "preferences"
+widget "*OptionsLabel" style:highest "preferences"
+widget "*OptionEditorAuditionerLabel" style:highest "preferences"
+widget "*OptionsEntry" style:highest "option_entry"
+widget "*InspectorNotebook" style:highest "preferences"
+widget "*NewSessionDialog" style:highest "preferences"
+widget "*NewSessionDialogButton*" style:highest "preferences"
+widget "*MixerSendSwitch*" style:highest "very_small_red_active_and_selected_button"
+widget "*OptionEditorToggleButton" style:highest "small_red_active_and_selected_button"
+widget "*NewSessionDialogButton" style:highest "small_red_active_and_selected_button"
+widget "*RecordEnableButton" style:highest "track_rec_enable_button"
+widget "*RecordEnableButton-active" style:highest "track_rec_enable_button_active"
+widget "*RecordEnableButton-alternate" style:highest "track_rec_enable_button_alternate"
+widget "*MixerRecordEnableButton" style:highest "mixer_track_rec_enable_button"
+widget "*MixerRecordEnableButton-active" style:highest "mixer_track_rec_enable_button_active"
+widget "*MixerRecordEnableButton-alternate" style:highest "mixer_track_rec_enable_button_alternate"
+widget "*MuteButton" style:highest "mute_button"
+widget "*MuteButton-alternate" style:highest "mute_button_alternate"
+widget "*MuteButton-active" style:highest "mute_button_active"
+widget "*MixerMuteButton" style:highest "mixer_mute_button"
+widget "*MixerMuteButton-alternate" style:highest "mixer_mute_button_alternate"
+widget "*MixerMuteButton-active" style:highest "mixer_mute_button_active"
+widget "*SoloButton" style:highest "solo_button"
+widget "*SoloButton-alternate" style:highest "solo_button_alternate"
+widget "*SoloButton-active" style:highest "solo_button_active"
+widget "*MixerSoloButton" style:highest "mixer_solo_button"
+widget "*MixerSoloButton-alternate" style:highest "mixer_solo_button_alternate"
+widget "*MixerSoloButton-active" style:highest "mixer_solo_button_active"
+widget "*TrackLoopButton*" style:highest "track_loop_button"
+widget "*PanAutomationLineSelector*" style:highest "multiline_combo"
+widget "*EditorTimeButton*" style:highest "time_button"
+widget "*MixerPhaseInvertButton*" style:highest "very_small_button"
+widget "*MixerPhaseInvertButton.*" style:highest "very_small_button"
+widget "*MixerAutomationRecordingButton*" style:highest "very_small_button"
+widget "*MixerAutomationRecordingButton.*" style:highest "very_small_button"
+widget "*MixerAutomationModeButton*" style:highest "very_small_button"
+widget "*MixerAutomationModeButton.*" style:highest "very_small_button"
+widget "*MixerAutomationPlaybackButton*" style:highest "very_small_button"
+widget "*MixerAutomationPlaybackButton.*" style:highest "very_small_button"
+widget "*MixerNameButton" style:highest "very_small_button"
+widget "*MixerNameButtonLabel" style:highest "very_small_button"
+widget "*MixerGroupButton" style:highest "very_small_button"
+widget "*MixerGroupButtonLabel" style:highest "very_small_button"
+widget "*MixerCommentButton" style:highest "very_small_button"
+widget "*MixerCommentButton*" style:highest "very_small_button"
+widget "*EditGroupButton" style:highest "very_small_button"
+widget "*EditGroupButtonLabel" style:highest "very_small_button"
+widget "*TransportButton" style:highest "transport_rec_button"
+widget "*TransportButton-active" style:highest "transport_button_active"
+widget "*ShuttleButton" style:highest "transport_button"
+widget "*ShuttleButton*" style:highest "transport_button"
+widget "*ShuttleDisplay" style:highest "transport_button"
+widget "*ShuttleDisplay*" style:highest "transport_button"
+widget "*ShuttleControl" style:highest "shuttle_control"
+widget "*TransportRecButton" style:highest "transport_rec_button"
+widget "*TransportRecButton*" style:highest "transport_rec_button"
+widget "*TransportRecButton-active" style:highest "transport_rec_button_active"
+widget "*TransportRecButton-active*" style:highest "transport_rec_button_active"
+widget "*TransportRecButton-alternate" style:highest "transport_rec_button_alternate"
+widget "*TransportRecButton-alternate*" style:highest "transport_rec_button_alternate"
+widget "*TransportRecButton*" style:highest "transport_rec_button"
+widget "*RecordingXrunWarningWindow" style:highest "xrun_warn"
+widget "*RecordingXrunWarningWindow*" style:highest "xrun_warn"
+/*widget "*MainMenuBar" style:highest "menu_bar_base"*/
+widget "*ErrorMessage" style:highest "error_message"
+widget "*FatalMessage" style:highest "fatal_message"
+widget "*InfoMessage" style:highest "info_message"
+widget "*WarningMessage" style:highest "warning_message"
+widget "*BigClockNonRecording" style:highest "non_recording_big_clock_display"
+widget "*BigClockRecording" style:highest "recording_big_clock_display"
+widget "*TransportClockDisplay" style:highest "transport_clock_display"
+widget "*SecondaryClockDisplay" style:highest "transport_clock_display"
+widget "*TransportClockDisplayDelta" style:highest "transport_clock_display_delta"
+widget "*SecondaryClockDisplayDelta" style:highest "transport_clock_display_delta"
+widget "*AudioClockFramesUpperInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockFramesLowerInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockSMPTEUpperInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockSMPTELowerInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockBBTUpperInfo" style:highest "tempo_meter_clock_display"
+widget "*AudioClockBBTLowerInfo" style:highest "tempo_meter_clock_display"
+widget "*SelectionStartClock" style:highest "default_clock_display"
+widget "*SelectionEndClock" style:highest "default_clock_display"
+widget "*EditPointClock" style:highest "default_clock_display"
+widget "*PreRollClock" style:highest "default_clock_display"
+widget "*PostRollClock" style:highest "default_clock_display"
+widget "*NudgeClock" style:highest "default_clock_display"
+widget "*InsertTimeClock" style:highest "default_clock_display"
+widget "*ZoomRangeClock" style:highest "default_clock_display"
+widget "*SMPTEOffsetClock" style:highest "default_clock_display"
+widget "*TransportLabel" style:highest "small_bold_text"
+widget "*TakeLabel" style:highest "small_bold_text"
+widget "*LocationLabel" style:highest "small_bold_text"
+widget "*WipeLabel" style:highest "small_bold_text"
+widget "*TakeTagLabel" style:highest "small_bold_text"
+widget "*ToolBarLabel" style:highest "small_bold_text"
+widget "*EditorDisplayLabel" style:highest "small_bold_text"
+widget "*NewSessionLabel" style:highest "large_text"
+widget "*GlobalButtonLabel" style:highest "default_generic"
+widget "*ClickButton" style:highest "medium_entry"
+widget "*RegionNameDisplay" style:highest "medium_entry"
+widget "*PluginDisplay" style:highest "medium_entry"
+widget "*SelectionDisplay" style:highest "medium_entry"
+widget "*HistorySelector" style:highest "medium_entry"
+widget "*LocationSelector" style:highest "medium_entry"
+widget "*TakeSelector" style:highest "medium_entry"
+widget "*RegionSelector" style:highest "medium_entry"
+widget "*SMPTERuler" style:highest "editor_time_ruler"
+widget "*BBTRuler" style:highest "editor_time_ruler"
+widget "*FramesRuler" style:highest "editor_time_ruler"
+widget "*MinSecRuler" style:highest "editor_time_ruler"
+widget "*BaseFrame" style:highest "base_frame"
+
+widget "*AudioTrackStripBase" style:highest "audio_track_base"
+widget "*AudioBusStripBase" style:highest "audio_bus_base"
+widget "*MidiTrackStripBase" style:highest "midi_track_base"
+widget "*AudioTrackStripBaseInactive" style:highest "track_controls_inactive"
+widget "*AudioBusStripBaseInactive" style:highest "track_controls_inactive"
+widget "*MidiTrackStripBaseInactive" style:highest "track_controls_inactive"
+widget "*FaderMetricsStrip" style:highest "audio_track_metrics"
+widget "*AudioTrackMetrics" style:highest "audio_track_metrics"
+widget "*AudioBusMetrics" style:highest "audio_bus_metrics"
+widget "*AudioTrackMetricsInactive" style:highest "audio_track_metrics_inactive"
+widget "*AudioBusMetricsInactive" style:highest "audio_bus_metrics_inactive"
+
+widget "*TimeAxisViewControlsBaseUnselected" style:highest "audio_track_base"
+widget "*AudioTrackControlsBaseUnselected" style:highest "audio_track_base"
+widget "*MidiTrackControlsBaseUnselected" style:highest "midi_track_base"
+widget "*AudioTrackFader" style:highest "gain_fader"
+
+widget "*BusControlsBaseUnselected" style:highest "audio_bus_base"
+widget "*AudioBusFader" style:highest "gain_fader"
+widget "*TrackSeparator" style:highest "track_separator"
+widget "*TrackEditIndicator0*" style:highest "edit_group_0"
+widget "*TrackEditIndicator1*" style:highest "edit_group_1"
+widget "*TrackEditIndicator2*" style:highest "edit_group_2"
+widget "*TrackEditIndicator3*" style:highest "edit_group_3"
+widget "*TrackEditIndicator4*" style:highest "edit_group_3"
+widget "*TrackEditIndicator5*" style:highest "edit_group_3"
+widget "*TrackEditIndicator6*" style:highest "edit_group_3"
+widget "*TrackEditIndicator7*" style:highest "edit_group_3"
+widget "*EditorTrackNameDisplay" style:highest "track_name_display"
+widget "*EditorTrackNameDisplay*" style:highest "track_name_display"
+widget "*EditorActiveTrackNameDisplay" style:highest "active_track_name_display"
+widget "*EditorActiveTrackNameDisplay*" style:highest "active_track_name_display"
+widget "*CrossfadeEditAuditionButton" style:highest "red_when_active"
+widget "*CrossfadeEditAuditionButton*" style:highest "red_when_active"
+widget "*CrossfadeEditCurveButton" style:highest "red_when_active"
+widget "*CrossfadeEditCurveButton*" style:highest "red_when_active"
+widget "*CrossfadeEditLabel" style:highest "medium_text"
+widget "*CrossfadeEditFrame" style:highest "base_frame"
+widget "*MouseModeButton" style:highest "default_button"
+widget "*MouseModeButton*" style:highest "default_button"
+widget "*EditorMainCanvas" style:highest "main_canvas_area"
+widget "*AudioTrackControlsBaseInactiveUnselected" style:highest "track_controls_inactive"
+widget "*BusControlsBaseInactiveUnselected" style:highest "track_controls_inactive"
+widget "*AutomationTrackControlsBaseInactiveUnselected" style:highest "track_controls_inactive"
+widget "*AutomationTrackName" style:highest "automation_track_name"
+widget "*AudioTrackControlsBaseInactiveSelected" style:highest "track_controls_inactive"
+widget "*BusControlsBaseInactiveSelected" style:highest "track_controls_inactive"
+widget "*AutomationTrackControlsBaseInactiveSelected" style:highest "track_controls_inactive"
+widget "*AudioTrackControlsBaseSelected" style:highest "edit_controls_base_selected"
+widget "*MidiTrackControlsBaseSelected" style:highest "edit_controls_base_selected"
+widget "*BusControlsBaseSelected" style:highest "edit_controls_base_selected"
+widget "*AutomationTrackControlsBase" style:highest "automation_track_controls_base"
+widget "*AutomationTrackControlsBaseSelected" style:highest "edit_controls_base_selected"
+/*widget "*EditorMenuBar*" style:highest "black_mackie_menu_bar"
+widget "*MainMenuBar*" style:highest "black_mackie_menu_bar"
+*/
+widget "*ZoomClickBox" style:highest "medium_bold_entry"
+widget "*PluginParameterLabel" style:highest "medium_text"
+widget "*PluginNameInfo" style:highest "plugin_name_text"
+widget "*PluginMakerInfo" style:highest "plugin_maker_text"
+widget "*PluginParameterInfo" style:highest "medium_text"
+widget "*MotionControllerValue" style:highest "medium_entry"
+widget "*ParameterValueDisplay" style:highest "medium_bold_entry"
+widget "*PluginUIClickBox" style:highest "medium_bold_entry"
+widget "*PluginUIClickBox*" style:highest "medium_bold_entry"
+widget "*PluginSlider" style:highest "plugin_slider"
+widget "*RedirectSelector" style:highest "redirect_list_display"
+widget "*RedirectSelector.*" style:highest "redirect_list_display"
+widget "*EditGroupDisplay" style:highest "treeview_display"
+widget "*TrackListDisplay" style:highest "treeview_display"
+widget "*RegionListDisplay" style:highest "treeview_display"
+widget "*NamedSelectionDisplay" style:highest "treeview_display"
+widget "*SnapshotDisplay" style:highest "treeview_display"
+widget "*MixerTrackCommentArea" style:highest "option_entry"
+widget "*MixerPanZone" style:highest "pan_zone"
+widget "*MixerTrackDisplayList" style:highest "treeview_display"
+widget "*MixerSnapshotDisplayList" style:highest "treeview_display"
+widget "*MixerAuxDisplayList" style:highest "treeview_display"
+widget "*MixerGroupList" style:highest "treeview_display"
+widget "*RegionEditorLabel" style:highest "medium_text"
+widget "*RegionEditorSmallLabel" style:highest "small_text"
+widget "*RegionEditorEntry" style:highest "medium_entry"
+widget "*RegionEditorClock" style:highest "default_clock_display"
+widget "*RegionEditorToggleButton" style:highest "paler_red_when_active"
+widget "*RegionEditorToggleButton*" style:highest "paler_red_when_active"
+widget "*MixerStripSpeedBase" style:highest "small_entry"
+widget "*MixerStripSpeedBase*" style:highest "small_entry"
+widget "*MixerStripSpeedBaseNotOne" style:highest "small_red_on_black_entry"
+widget "*MixerStripSpeedBaseNotOne*" style:highest "small_red_on_black_entry"
+widget "*MixerStripGainDisplay" style:highest "small_entry"
+widget "*MixerStripGainDisplay*" style:highest "small_entry"
+widget "*MixerStripGainUnitButton" style:highest "very_small_button"
+widget "*MixerStripGainUnitButton*" style:highest "very_small_button"
+widget "*MixerStripMeterPreButton" style:highest "very_small_button"
+widget "*MixerStripMeterPreButton*" style:highest "very_small_button"
+widget "*MixerStripPeakDisplay*" style:highest "red_active_small_entry"
+widget "*MixerStripPeakDisplayPeak*" style:highest "peak_display_peaked_entry"
+widget "*MixerStripSelectedFrame" style:highest "selected_strip_frame"
+widget "*MixerStripFrame" style:highest "base_frame"
+widget "*HWMonitorButton" style:highest "red_when_active"
+widget "*HWMonitorButton*" style:highest "red_when_active"
+widget "*TransportSoloAlert" style:highest "flashing_alert"
+widget "*TransportSoloAlert.*" style:highest "flashing_alert"
+widget "*TransportAuditioningAlert" style:highest "flashing_alert"
+widget "*TransportAuditioningAlert.*" style:highest "flashing_alert"
+widget "*FadeCurve" style:highest "medium_bold_entry"
+widget "*FadeCurve*" style:highest "medium_bold_entry"
+widget "*IOSelectorButton" style:highest "default_button"
+widget "*IOSelectorButton*" style:highest "default_button"
+widget "*IOSelectorList" style:highest "medium_entry_noselection_fg"
+widget "*IOSelectorPortList" style:highest "io_selector_port_list"
+widget "*IOSelectorPortList.*" style:highest "io_selector_port_list"
+widget "*IOSelectorPortListSelected" style:highest "selected_io_selector_port_list"
+widget "*IOSelectorPortListSelected.*" style:highest "selected_io_selector_port_list"
+widget "*IOSelectorNotebook" style:highest "io_selector_notebook"
+widget "*IOSelectorNotebookTab" style:highest "io_selector_notebook"
+widget "*IOSelectorFrame" style:highest "base_frame"
+widget "*ConnectionEditorButton" style:highest "default_button"
+widget "*ConnectionEditorButton*" style:highest "default_button"
+widget "*ConnectionEditorList" style:highest "medium_entry_noselection_fg"
+widget "*ConnectionEditorConnectionList" style:highest "medium_entry"
+widget "*ConnectionEditorPortList" style:highest "io_selector_port_list"
+widget "*ConnectionEditorPortListSelected" style:highest "selected_io_selector_port_list"
+widget "*ConnectionEditorNotebook" style:highest "io_selector_notebook"
+widget "*ConnectionEditorNotebookTab" style:highest "io_selector_notebook"
+widget "*ConnectionEditorFrame" style:highest "base_frame"
+widget "*RouteParamsListDisplay" style:highest "inspector_track_list_display"
+widget "*RouteParamsPreListDisplay" style:highest "inspector_redirect_list_display"
+widget "*RouteParamsPostListDisplay" style:highest "inspector_redirect_list_display"
+widget "*TearOffArrow" style:highest "tearoff_arrow"
+widget "*RouteParamsTitleButton" style:highest "medium_text"
+widget "*RouteParamsTitleLabel" style:highest "medium_text"
+widget "*PluginAutomateRecordButton" style:highest "small_red_active_and_selected_button"
+widget "*PluginAutomateRecordButton*" style:highest "small_red_active_and_selected_button"
+widget "*PluginAutomatePlayButton" style:highest "small_red_active_and_selected_button"
+widget "*PluginAutomatePlayButton*" style:highest "small_red_active_and_selected_button"
+widget "*PluginAutomateButton" style:highest "small_button"
+widget "*PluginAutomateButton*" style:highest "small_button"
+widget "*PluginSaveButton" style:highest "small_button"
+widget "*PluginSaveButton*" style:highest "small_button"
+widget "*PluginLoadButton" style:highest "small_button"
+widget "*PluginLoadButton*" style:highest "small_button"
+
+widget "*MetricDialogFrame" style:highest "base_frame"
+widget "*MetricEntry" style:highest "medium_bold_entry"
+widget "*MetricButton" style:highest "default_button"
+widget "*MetricButton.*" style:highest "default_button"
+widget "*MetricLabel" style:highest "medium_text"
+widget "*TimeStretchButton" style:highest "default_button"
+widget "*TimeStretchButton.*" style:highest "default_button"
+widget "*TimeStretchProgress" style:highest "default_button"
+widget "*ChoiceWindow" style:highest "default_generic"
+widget "*ChoicePrompt" style:highest "default_generic"
+widget "*ChoiceButton" style:highest "default_button"
+widget "*ChoiceButton*" style:highest "default_button"
+widget "*SelectionModeButton" style:highest "default_button"
+widget "*SelectionModeButton*" style:highest "default_button"
+widget "*TrackLabel" style:highest "medium_text"
+widget "*TrackPlugName" style:highest "medium_text"
+widget "*TrackParameterName" style:highest "small_text"
+widget "*AddRouteDialog*" style:highest "medium_text"
+widget "*AddRouteDialog.GtkLabel" style:highest "medium_text"
+widget "*AddRouteDialogChannelChoice" style:highest "medium_bold_entry"
+widget "*AddRouteDialogSpinner" style:highest "medium_bold_entry"
+widget "*AddRouteDialogSpinner*" style:highest "medium_bold_entry"
+widget "*AddRouteDialogRadioButton" style:highest "red_when_active"
+widget "*AddRouteDialogButton" style:highest "default_button"
+widget "*AddRouteDialogNameTemplateEntry" style:highest "medium_bold_entry"
+widget "*NewSessionIOLabel" style:highest "larger_bold_text"
+widget "*NewSessionSR1Label" style:highest "red_medium_text"
+widget "*NewSessionSR2Label" style:highest "medium_text"
+widget "*NewSessionChannelChoice" style:highest "medium_bold_entry"
+widget "*NewSessionMainButton" style:highest "larger_bold_text"
+widget "*NewSessionMainButton*" style:highest "larger_bold_text"
+widget "*NewSessionMainLabel" style:highest "larger_bold_text"
+widget "*LocationEditRowClock" style:highest "location_rows_clock"
+widget "*LocationEditNameLabel" style:highest "medium_text"
+widget "*LocationEditSetButton" style:highest "location_row_button"
+widget "*LocationEditSetButton*" style:highest "location_row_button"
+widget "*LocationEditGoButton" style:highest "location_row_button"
+widget "*LocationEditGoButton*" style:highest "location_row_button"
+widget "*LocationEditCdButton" style:highest "small_red_active_and_selected_button"
+widget "*LocationEditCdButton*" style:highest "small_red_active_and_selected_button"
+widget "*LocationEditHideButton" style:highest "small_red_active_and_selected_button"
+widget "*LocationEditHideButton*" style:highest "small_red_active_and_selected_button"
+widget "*LocationEditNumberLabel" style:highest "small_text"
+widget "*LocationLocEditorFrame" style:highest "base_frame"
+widget "*LocationRangeEditorFrame" style:highest "base_frame"
+widget "*LocationEditNameEntry" style:highest "option_entry"
+widget "*LocationAddLocationButton" style:highest "default_button"
+widget "*LocationAddLocationButton*" style:highest "default_button"
+widget "*LocationAddRangeButton" style:highest "default_button"
+widget "*LocationAddRangeButton*" style:highest "default_button"
+widget "*LocationEditRemoveButton" style:highest "location_row_button"
+widget "*LocationEditRemoveButton*" style:highest "location_row_button"
+widget "*PanSlider" style:highest "pan_slider"
+widget "*PanningLinkButton" style:highest "mixer_red_active_button"
+widget "*PanningLinkButton.*" style:highest "mixer_red_active_button"
+widget "*PanningLinkDirectionButton" style:highest "very_small_button"
+widget "*PanningLinkDirectionButton.*" style:highest "very_small_button"
+widget "*ChannelCountSelector" style:highest "medium_bold_entry"
+widget "*ChannelCountSelector.GtkArrow" style:highest "default_generic"
+widget "*RegionListWholeFile" style:highest "treeview_parent_node"
+widget "*EditorHScrollbar" style:highest "editor_hscrollbar"
+widget "*ResizerHandler" style:highest "resizer_handle"
diff --git a/gtk2_ardour/ardour_dialog.cc b/gtk2_ardour/ardour_dialog.cc
index 43fdf85c94..c3d238a9c0 100644
--- a/gtk2_ardour/ardour_dialog.cc
+++ b/gtk2_ardour/ardour_dialog.cc
@@ -18,6 +18,7 @@
*/
#include <iostream>
+#include <sigc++/bind.h>
#include <gtkmm2ext/doi.h>
@@ -25,6 +26,13 @@
#include "keyboard.h"
#include "ardour_ui.h"
#include "splash.h"
+#include "public_editor.h"
+#include "utils.h"
+
+using namespace sigc;
+using namespace Gtk;
+
+sigc::signal<void> ArdourDialog::CloseAllDialogs;
ArdourDialog::ArdourDialog (string title, bool modal, bool use_seperator)
: Dialog (title, modal, use_seperator)
@@ -60,6 +68,7 @@ ArdourDialog::on_leave_notify_event (GdkEventCrossing *ev)
void
ArdourDialog::on_unmap ()
{
+ Keyboard::the_keyboard().leave_window (0, this);
Dialog::on_unmap ();
}
@@ -77,9 +86,17 @@ ArdourDialog::on_show ()
Dialog::on_show ();
}
-void ArdourDialog::init ()
+void
+ArdourDialog::init ()
{
session = 0;
set_type_hint(Gdk::WINDOW_TYPE_HINT_DIALOG);
set_border_width (10);
+ CloseAllDialogs.connect (bind (mem_fun (*this, &ArdourDialog::response), RESPONSE_CANCEL));
+}
+
+bool
+ArdourDialog::on_key_press_event (GdkEventKey* key)
+{
+ return Gtk::Dialog::on_key_press_event (key);
}
diff --git a/gtk2_ardour/ardour_dialog.h b/gtk2_ardour/ardour_dialog.h
index b2c531b0d0..44c731b36c 100644
--- a/gtk2_ardour/ardour_dialog.h
+++ b/gtk2_ardour/ardour_dialog.h
@@ -40,6 +40,9 @@ class ArdourDialog : public Gtk::Dialog
ArdourDialog (Gtk::Window& parent, std::string title, bool modal = false, bool use_separator = false);
~ArdourDialog();
+ static int close_all_current_dialogs (int response);
+
+ bool on_key_press_event (GdkEventKey *);
bool on_enter_notify_event (GdkEventCrossing*);
bool on_leave_notify_event (GdkEventCrossing*);
void on_unmap ();
@@ -55,8 +58,12 @@ class ArdourDialog : public Gtk::Dialog
set_session (0);
}
+ static void close_all_dialogs () { CloseAllDialogs(); }
+
private:
void init ();
+
+ static sigc::signal<void> CloseAllDialogs;
};
#endif // __ardour_dialog_h__
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 44280a3109..3376d1c8da 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -211,6 +211,15 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[])
session_loaded = false;
last_speed_displayed = -1.0f;
ignore_dual_punch = false;
+ _mixer_on_top = false;
+
+ roll_button.unset_flags (Gtk::CAN_FOCUS);
+ stop_button.unset_flags (Gtk::CAN_FOCUS);
+ goto_start_button.unset_flags (Gtk::CAN_FOCUS);
+ goto_end_button.unset_flags (Gtk::CAN_FOCUS);
+ auto_loop_button.unset_flags (Gtk::CAN_FOCUS);
+ play_selection_button.unset_flags (Gtk::CAN_FOCUS);
+ rec_button.unset_flags (Gtk::CAN_FOCUS);
last_configure_time= 0;
@@ -352,11 +361,12 @@ ARDOUR_UI::post_engine ()
/* set default clock modes */
if (Profile->get_sae()) {
- primary_clock.set_mode (AudioClock::MinSec);
+ primary_clock.set_mode (AudioClock::BBT);
+ secondary_clock.set_mode (AudioClock::MinSec);
} else {
primary_clock.set_mode (AudioClock::SMPTE);
+ secondary_clock.set_mode (AudioClock::BBT);
}
- secondary_clock.set_mode (AudioClock::BBT);
/* start the time-of-day-clock */
@@ -640,7 +650,7 @@ void
ARDOUR_UI::startup ()
{
string name, path;
-
+
new_session_dialog = new NewSessionDialog();
bool backend_audio_is_running = EngineControl::engine_running();
@@ -762,6 +772,7 @@ If you still wish to quit, please use the\n\n\
session->set_deletion_in_progress ();
}
+ ArdourDialog::close_all_dialogs ();
engine->stop (true);
save_ardour_state ();
quit ();
@@ -1980,14 +1991,6 @@ ARDOUR_UI::transport_rec_enable_blink (bool onoff)
}
}
-gint
-ARDOUR_UI::hide_and_quit (GdkEventAny *ev, ArdourDialog *window)
-{
- window->hide();
- Gtk::Main::quit ();
- return TRUE;
-}
-
void
ARDOUR_UI::save_template ()
@@ -2242,7 +2245,7 @@ ARDOUR_UI::loading_message (const std::string& msg)
splash->message (msg);
flush_pending ();
}
-
+
void
ARDOUR_UI::idle_load (const Glib::ustring& path)
{
@@ -2255,11 +2258,16 @@ ARDOUR_UI::idle_load (const Glib::ustring& path)
load_session (Glib::path_get_dirname (path), basename_nosuffix (path));
}
} else {
+
ARDOUR_COMMAND_LINE::session_name = path;
+
if (new_session_dialog) {
+
+
/* make it break out of Dialog::run() and
start again.
*/
+
new_session_dialog->response (1);
}
}
@@ -2329,6 +2337,9 @@ ARDOUR_UI::get_session_parameters (bool backend_audio_is_running, bool should_be
case Gtk::RESPONSE_CANCEL:
case Gtk::RESPONSE_DELETE_EVENT:
if (!session) {
+ if (engine && engine->running()) {
+ engine->stop (true);
+ }
quit();
}
new_session_dialog->hide ();
@@ -2381,7 +2392,7 @@ ARDOUR_UI::get_session_parameters (bool backend_audio_is_running, bool should_be
if (session_name[0] == '/' ||
(session_name.length() > 2 && session_name[0] == '.' && session_name[1] == '/') ||
(session_name.length() > 3 && session_name[0] == '.' && session_name[1] == '.' && session_name[2] == '/')) {
-
+
session_path = Glib::path_get_dirname (session_name);
session_name = Glib::path_get_basename (session_name);
@@ -2439,7 +2450,7 @@ ARDOUR_UI::get_session_parameters (bool backend_audio_is_running, bool should_be
loadit:
new_session_dialog->hide ();
-
+
if (load_session (session_path, session_name, template_name)) {
/* force a retry */
response = Gtk::RESPONSE_NONE;
@@ -2519,10 +2530,10 @@ ARDOUR_UI::load_session (const Glib::ustring& path, const Glib::ustring& snap_na
MessageDialog msg (err.what(),
true,
Gtk::MESSAGE_INFO,
- Gtk::BUTTONS_OK_CANCEL);
+ Gtk::BUTTONS_CLOSE);
- msg.set_title (_("Loading Error"));
- msg.set_secondary_text (_("Click the OK button to try again."));
+ msg.set_title (_("Port Registration Error"));
+ msg.set_secondary_text (_("Click the Close button to try again."));
msg.set_position (Gtk::WIN_POS_CENTER);
pop_back_splash ();
msg.present ();
@@ -2545,10 +2556,10 @@ ARDOUR_UI::load_session (const Glib::ustring& path, const Glib::ustring& snap_na
MessageDialog msg (string_compose(_("Session \"%1 (snapshot %2)\" did not load successfully"), path, snap_name),
true,
Gtk::MESSAGE_INFO,
- Gtk::BUTTONS_OK_CANCEL);
+ Gtk::BUTTONS_CLOSE);
msg.set_title (_("Loading Error"));
- msg.set_secondary_text (_("Click the OK button to try again."));
+ msg.set_secondary_text (_("Click the Close button to try again."));
msg.set_position (Gtk::WIN_POS_CENTER);
pop_back_splash ();
msg.present ();
@@ -2630,6 +2641,9 @@ ARDOUR_UI::build_session (const Glib::ustring& path, const Glib::ustring& snap_n
connect_to_session (new_session);
session_loaded = true;
+
+ new_session->save_state(new_session->name());
+
return 0;
}
@@ -2947,8 +2961,6 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
/* XXX do something with name template */
- cerr << "Adding with " << input_chan << " in and " << output_chan << "out\n";
-
if (add_route_dialog->type() == ARDOUR::DataType::MIDI) {
if (track) {
session_add_midi_track(count);
@@ -2995,10 +3007,17 @@ ARDOUR_UI::editor_settings () const
} else {
node = Config->instant_xml(X_("Editor"));
}
+
+ if (!node) {
+ if (getenv("ARDOUR_INSTANT_XML_PATH")) {
+ node = Config->instant_xml(getenv("ARDOUR_INSTANT_XML_PATH"));
+ }
+ }
if (!node) {
node = new XMLNode (X_("Editor"));
}
+
return node;
}
@@ -3032,13 +3051,17 @@ ARDOUR_UI::halt_on_xrun_message ()
void
ARDOUR_UI::xrun_handler(nframes_t where)
{
+ if (!session) {
+ return;
+ }
+
ENSURE_GUI_THREAD (bind(mem_fun(*this, &ARDOUR_UI::xrun_handler), where));
- if (Config->get_create_xrun_marker() && session->actively_recording()) {
+ if (session && Config->get_create_xrun_marker() && session->actively_recording()) {
create_xrun_marker(where);
}
- if (Config->get_stop_recording_on_xrun() && session->actively_recording()) {
+ if (session && Config->get_stop_recording_on_xrun() && session->actively_recording()) {
halt_on_xrun_message ();
}
}
diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h
index 8243a40fd1..bd3531d8fd 100644
--- a/gtk2_ardour/ardour_ui.h
+++ b/gtk2_ardour/ardour_ui.h
@@ -119,6 +119,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI
void hide_about ();
void idle_load (const Glib::ustring& path);
+ void finish();
+
int load_session (const Glib::ustring& path, const Glib::ustring& snapshot, Glib::ustring mix_template = Glib::ustring());
bool session_loaded;
int build_session (const Glib::ustring& path, const Glib::ustring& snapshot,
@@ -183,8 +185,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI
void name_io_setup (ARDOUR::AudioEngine&, string&, ARDOUR::IO& io, bool in);
- static gint hide_and_quit (GdkEventAny *ev, ArdourDialog *);
-
XMLNode* editor_settings() const;
XMLNode* mixer_settings () const;
XMLNode* keyboard_settings () const;
@@ -287,8 +287,10 @@ class ARDOUR_UI : public Gtkmm2ext::UI
Gtk::Tooltips _tooltips;
- void goto_editor_window ();
- void goto_mixer_window ();
+ void goto_editor_window ();
+ void goto_mixer_window ();
+ void toggle_editor_mixer_on_top ();
+ bool _mixer_on_top;
Gtk::Table adjuster_table;
Gtk::Frame adjuster_frame;
@@ -313,7 +315,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI
void startup ();
void shutdown ();
- void finish();
int ask_about_saving_session (const string & why);
/* periodic safety backup, to be precise */
@@ -715,6 +716,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI
void set_denormal_model (ARDOUR::DenormalModel);
void toggle_sync_order_keys ();
+ void toggle_new_plugins_active();
void toggle_StopPluginsWithTransport();
void toggle_DoNotRunPluginsWhileRecording();
void toggle_VerifyRemoveLastCapture();
@@ -725,6 +727,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI
void toggle_GainReduceFastTransport();
void toggle_LatchedSolo();
void toggle_ShowSoloMutes();
+ void toggle_SoloMuteOverride();
void toggle_LatchedRecordEnable ();
void toggle_RegionEquivalentsOverlap ();
void toggle_PrimaryClockDeltaEditCursor ();
diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc
index d294df8036..60f390501e 100644
--- a/gtk2_ardour/ardour_ui2.cc
+++ b/gtk2_ardour/ardour_ui2.cc
@@ -192,6 +192,10 @@ ARDOUR_UI::setup_transport ()
transport_tearoff = manage (new TearOff (transport_tearoff_hbox));
transport_tearoff->set_name ("TransportBase");
+ if (Profile->get_sae()) {
+ transport_tearoff->set_can_be_torn_off (false);
+ }
+
transport_hbox.pack_start (*transport_tearoff, true, false);
transport_base.set_name ("TransportBase");
diff --git a/gtk2_ardour/ardour_ui_dependents.cc b/gtk2_ardour/ardour_ui_dependents.cc
index f81dc8d311..eacf0b50b7 100644
--- a/gtk2_ardour/ardour_ui_dependents.cc
+++ b/gtk2_ardour/ardour_ui_dependents.cc
@@ -99,6 +99,7 @@ ARDOUR_UI::goto_editor_window ()
editor->show_window ();
editor->present ();
+ _mixer_on_top = false;
flush_pending ();
}
@@ -107,12 +108,30 @@ ARDOUR_UI::goto_mixer_window ()
{
mixer->show_window ();
mixer->present ();
+ _mixer_on_top = true;
flush_pending ();
}
+void
+ARDOUR_UI::toggle_editor_mixer_on_top ()
+{
+ if (_mixer_on_top) {
+ goto_editor_window ();
+ } else {
+ goto_mixer_window ();
+ }
+}
+
gint
ARDOUR_UI::exit_on_main_window_close (GdkEventAny *ev)
{
+#ifdef TOP_MENUBAR
+ /* just hide the window, and return - the top menu stays up */
+ editor->hide ();
+ return TRUE;
+#else
+ /* time to get out of here */
finish();
return TRUE;
+#endif
}
diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc
index 4b7008e027..80e543e4b1 100644
--- a/gtk2_ardour/ardour_ui_ed.cc
+++ b/gtk2_ardour/ardour_ui_ed.cc
@@ -193,7 +193,7 @@ ARDOUR_UI::install_actions ()
common_actions = ActionGroup::create (X_("Common"));
ActionManager::register_action (main_actions, X_("WindowMenu"), _("Window"));
- ActionManager::register_action (common_actions, X_("Quit"), _("Quit"), (mem_fun(*this, &ARDOUR_UI::finish)));
+ ActionManager::register_action (common_actions, X_("Quit"), _("Quit"), (hide_return (mem_fun(*this, &ARDOUR_UI::finish))));
/* windows visibility actions */
@@ -201,6 +201,7 @@ ARDOUR_UI::install_actions ()
ActionManager::register_action (common_actions, X_("goto-editor"), _("Show Editor"), mem_fun(*this, &ARDOUR_UI::goto_editor_window));
ActionManager::register_action (common_actions, X_("goto-mixer"), _("Show Mixer"), mem_fun(*this, &ARDOUR_UI::goto_mixer_window));
+ ActionManager::register_action (common_actions, X_("toggle-editor-mixer-on-top"), _("Toggle Editor Mixer on Top"), mem_fun(*this, &ARDOUR_UI::toggle_editor_mixer_on_top));
ActionManager::register_toggle_action (common_actions, X_("ToggleOptionsEditor"), _("Preferences"), mem_fun(*this, &ARDOUR_UI::toggle_options_window));
act = ActionManager::register_toggle_action (common_actions, X_("ToggleInspector"), _("Track/Bus Inspector"), mem_fun(*this, &ARDOUR_UI::toggle_route_params_window));
ActionManager::session_sensitive_actions.push_back (act);
@@ -450,6 +451,7 @@ ARDOUR_UI::install_actions ()
ActionManager::register_toggle_action (option_actions, X_("SyncEditorAndMixerTrackOrder"), _("Sync Editor and Mixer track order"), mem_fun (*this, &ARDOUR_UI::toggle_sync_order_keys));
ActionManager::register_toggle_action (option_actions, X_("StopPluginsWithTransport"), _("Stop plugins with transport"), mem_fun (*this, &ARDOUR_UI::toggle_StopPluginsWithTransport));
+ ActionManager::register_toggle_action (option_actions, X_("NewPluginsActive"), _("New plugins are active"), mem_fun (*this, &ARDOUR_UI::toggle_new_plugins_active));
ActionManager::register_toggle_action (option_actions, X_("VerifyRemoveLastCapture"), _("Verify remove last capture"), mem_fun (*this, &ARDOUR_UI::toggle_VerifyRemoveLastCapture));
ActionManager::register_toggle_action (option_actions, X_("PeriodicSafetyBackups"), _("Make periodic safety backups"), mem_fun (*this, &ARDOUR_UI::toggle_PeriodicSafetyBackups));
ActionManager::register_toggle_action (option_actions, X_("StopRecordingOnXrun"), _("Stop recording on xrun"), mem_fun (*this, &ARDOUR_UI::toggle_StopRecordingOnXrun));
@@ -514,6 +516,8 @@ ARDOUR_UI::install_actions ()
ActionManager::session_sensitive_actions.push_back (act);
act = ActionManager::register_toggle_action (option_actions, X_("ShowSoloMutes"), _("Show solo muting"), mem_fun (*this, &ARDOUR_UI::toggle_ShowSoloMutes));
ActionManager::session_sensitive_actions.push_back (act);
+ act = ActionManager::register_toggle_action (option_actions, X_("SoloMuteOverride"), _("Override muting"), mem_fun (*this, &ARDOUR_UI::toggle_SoloMuteOverride));
+ ActionManager::session_sensitive_actions.push_back (act);
/* act = ActionManager::register_action (option_actions, X_("DisableAllPlugins"), _("Disable All Plugins"), mem_fun (*this, &ARDOUR_UI::disable_all_plugins));
ActionManager::session_sensitive_actions.push_back (act);
@@ -562,7 +566,7 @@ ARDOUR_UI::install_actions ()
*/
act = ActionManager::register_radio_action (option_actions, monitoring_group, X_("UseHardwareMonitoring"), _("JACK does monitoring"), bind (mem_fun (*this, &ARDOUR_UI::set_monitor_model), HardwareMonitoring));
- if (engine->can_request_hardware_monitoring()) {
+ if (!engine->can_request_hardware_monitoring()) {
act->set_sensitive (false);
}
act = ActionManager::register_radio_action (option_actions, monitoring_group, X_("UseSoftwareMonitoring"), _("Ardour does monitoring"), bind (mem_fun (*this, &ARDOUR_UI::set_monitor_model), SoftwareMonitoring));
diff --git a/gtk2_ardour/ardour_ui_options.cc b/gtk2_ardour/ardour_ui_options.cc
index 4c80b8dd35..1d03fd158e 100644
--- a/gtk2_ardour/ardour_ui_options.cc
+++ b/gtk2_ardour/ardour_ui_options.cc
@@ -480,6 +480,12 @@ ARDOUR_UI::toggle_editing_space()
}
void
+ARDOUR_UI::toggle_new_plugins_active ()
+{
+ ActionManager::toggle_config_state ("options", "NewPluginsActive", &Configuration::set_new_plugins_active, &Configuration::get_new_plugins_active);
+}
+
+void
ARDOUR_UI::toggle_StopPluginsWithTransport()
{
ActionManager::toggle_config_state ("options", "StopPluginsWithTransport", &Configuration::set_plugins_stop_with_transport, &Configuration::get_plugins_stop_with_transport);
@@ -558,6 +564,12 @@ ARDOUR_UI::toggle_ShowSoloMutes()
}
void
+ARDOUR_UI::toggle_SoloMuteOverride()
+{
+ ActionManager::toggle_config_state ("options", "SoloMuteOverride", &Configuration::set_solo_mute_override, &Configuration::get_solo_mute_override);
+}
+
+void
ARDOUR_UI::toggle_PrimaryClockDeltaEditCursor()
{
ActionManager::toggle_config_state ("options", "PrimaryClockDeltaEditCursor", &Configuration::set_primary_clock_delta_edit_cursor, &Configuration::get_primary_clock_delta_edit_cursor);
@@ -1118,6 +1130,8 @@ ARDOUR_UI::parameter_changed (const char* parameter_name)
ActionManager::map_some_state ("options", "LatchedSolo", &Configuration::get_solo_latched);
} else if (PARAM_IS ("show-solo-mutes")) {
ActionManager::map_some_state ("options", "ShowSoloMutes", &Configuration::get_show_solo_mutes);
+ } else if (PARAM_IS ("solo-mute-override")) {
+ ActionManager::map_some_state ("options", "SoloMuteOverride", &Configuration::get_solo_mute_override);
} else if (PARAM_IS ("solo-model")) {
map_solo_model ();
} else if (PARAM_IS ("auto-play")) {
@@ -1144,6 +1158,8 @@ ARDOUR_UI::parameter_changed (const char* parameter_name)
ActionManager::map_some_state ("Transport", "ToggleTimeMaster", &Configuration::get_jack_time_master);
} else if (PARAM_IS ("plugins-stop-with-transport")) {
ActionManager::map_some_state ("options", "StopPluginsWithTransport", &Configuration::get_plugins_stop_with_transport);
+ } else if (PARAM_IS ("new-plugins-active")) {
+ ActionManager::map_some_state ("options", "NewPluginsActive", &Configuration::get_new_plugins_active);
} else if (PARAM_IS ("latched-record-enable")) {
ActionManager::map_some_state ("options", "LatchedRecordEnable", &Configuration::get_latched_record_enable);
} else if (PARAM_IS ("verify-remove-last-capture")) {
diff --git a/gtk2_ardour/au_pluginui.mm b/gtk2_ardour/au_pluginui.mm
index 977e5762a7..a46021f66f 100644
--- a/gtk2_ardour/au_pluginui.mm
+++ b/gtk2_ardour/au_pluginui.mm
@@ -1,3 +1,6 @@
+#undef Marker
+#define Marker FuckYouAppleAndYourLackOfNameSpaces
+
#include <pbd/error.h>
#include <ardour/audio_unit.h>
#include <ardour/insert.h>
@@ -18,6 +21,11 @@
#import <AudioUnit/AUCocoaUIView.h>
#import <CoreAudioKit/AUGenericView.h>
+#undef Marker
+
+#include "keyboard.h"
+#include "utils.h"
+#include "public_editor.h"
#include "i18n.h"
using namespace ARDOUR;
@@ -57,15 +65,27 @@ AUPluginUI::AUPluginUI (boost::shared_ptr<PluginInsert> insert)
/* stuff some stuff into the top of the window */
+ HBox* smaller_hbox = manage (new HBox);
+
+ smaller_hbox->pack_start (preset_label, false, false, 10);
+ smaller_hbox->pack_start (preset_combo, false, false);
+ smaller_hbox->pack_start (save_button, false, false);
+ smaller_hbox->pack_start (automation_mode_label, false, false);
+ smaller_hbox->pack_start (automation_mode_selector, false, false);
+ smaller_hbox->pack_start (bypass_button, false, true);
+
+ VBox* v1_box = manage (new VBox);
+ VBox* v2_box = manage (new VBox);
+
+ v1_box->pack_start (*smaller_hbox, false, true);
+ v2_box->pack_start (focus_button, false, true);
+
+ top_box.set_homogeneous (false);
top_box.set_spacing (6);
top_box.set_border_width (6);
- top_box.pack_end (bypass_button, false, true);
- top_box.pack_end (automation_mode_selector, false, false);
- top_box.pack_end (automation_mode_label, false, false);
- top_box.pack_end (save_button, false, false);
- top_box.pack_end (preset_combo, false, false);
- top_box.pack_end (preset_label, false, false);
+ top_box.pack_end (*v2_box, false, false);
+ top_box.pack_end (*v1_box, false, false);
set_spacing (6);
pack_start (top_box, false, false);
@@ -617,14 +637,16 @@ create_au_gui (boost::shared_ptr<PluginInsert> plugin_insert, VBox** box)
bool
AUPluginUI::on_focus_in_event (GdkEventFocus* ev)
{
- cerr << "au plugin focus in\n";
+ //cerr << "au plugin focus in\n";
+ //Keyboard::magic_widget_grab_focus ();
return false;
}
bool
AUPluginUI::on_focus_out_event (GdkEventFocus* ev)
{
- cerr << "au plugin focus out\n";
+ //cerr << "au plugin focus out\n";
+ //Keyboard::magic_widget_drop_focus ();
return false;
}
diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc
index 58db7f636b..c27015801f 100644
--- a/gtk2_ardour/audio_clock.cc
+++ b/gtk2_ardour/audio_clock.cc
@@ -636,14 +636,19 @@ AudioClock::set_bbt (nframes_t when, bool force)
char buf[16];
BBT_Time bbt;
- session->tempo_map().bbt_time (when, bbt);
-
/* handle a common case */
-
- if (is_duration && when == 0) {
- bbt.bars = 0;
- bbt.beats = 0;
-
+ if (is_duration) {
+ if (when == 0) {
+ bbt.bars = 0;
+ bbt.beats = 0;
+ bbt.ticks = 0;
+ } else {
+ session->tempo_map().bbt_time (when, bbt);
+ bbt.bars--;
+ bbt.beats--;
+ }
+ } else {
+ session->tempo_map().bbt_time (when, bbt);
}
sprintf (buf, "%03" PRIu32, bbt.bars);
@@ -1897,6 +1902,11 @@ AudioClock::bbt_frame_from_display (nframes_t pos) const
any.bbt.beats = atoi (beats_label.get_text());
any.bbt.ticks = atoi (ticks_label.get_text());
+ if (is_duration) {
+ any.bbt.bars++;
+ any.bbt.beats++;
+ }
+
nframes_t ret = session->convert_to_frames_at (pos, any);
return ret;
diff --git a/gtk2_ardour/audio_region_editor.cc b/gtk2_ardour/audio_region_editor.cc
index ff84a44488..c36ddbc041 100644
--- a/gtk2_ardour/audio_region_editor.cc
+++ b/gtk2_ardour/audio_region_editor.cc
@@ -47,16 +47,20 @@ AudioRegionEditor::AudioRegionEditor (Session& s, boost::shared_ptr<AudioRegion>
_region_view (rv),
name_label (_("NAME:")),
audition_button (_("play")),
- time_table (3, 2),
- start_clock (X_("regionstart"), true, X_("AudioRegionEditorClock"), true),
+ time_table (5, 2),
+ position_clock (X_("regionposition"), true, X_("AudioRegionEditorClock"), true),
end_clock (X_("regionend"), true, X_("AudioRegionEditorClock"), true),
length_clock (X_("regionlength"), true, X_("AudioRegionEditorClock"), true, true),
- sync_offset_clock (X_("regionsyncoffset"), true, X_("AudioRegionEditorClock"), true, true)
+ /* XXX cannot edit sync point or start yet */
+ sync_offset_clock (X_("regionsyncoffset"), true, X_("AudioRegionEditorClock"), false),
+ start_clock (X_("regionstart"), true, X_("AudioRegionEditorClock"), false)
{
- start_clock.set_session (&_session);
+ position_clock.set_session (&_session);
end_clock.set_session (&_session);
length_clock.set_session (&_session);
+ sync_offset_clock.set_session (&_session);
+ start_clock.set_session (&_session);
name_entry.set_name ("AudioRegionEditorEntry");
name_label.set_name ("AudioRegionEditorLabel");
@@ -79,27 +83,35 @@ AudioRegionEditor::AudioRegionEditor (Session& s, boost::shared_ptr<AudioRegion>
top_row_hbox.pack_start (name_hbox, true, true);
top_row_hbox.pack_end (top_row_button_hbox, true, true);
- start_label.set_name ("AudioRegionEditorLabel");
- start_label.set_text (_("START:"));
+ position_label.set_name ("AudioRegionEditorLabel");
+ position_label.set_text (_("POSITION:"));
end_label.set_name ("AudioRegionEditorLabel");
end_label.set_text (_("END:"));
length_label.set_name ("AudioRegionEditorLabel");
length_label.set_text (_("LENGTH:"));
+ sync_label.set_name ("AudioRegionEditorLabel");
+ sync_label.set_text (_("SYNC POINT:"));
+ start_label.set_name ("AudioRegionEditorLabel");
+ start_label.set_text (_("FILE START:"));
time_table.set_col_spacings (2);
time_table.set_row_spacings (5);
time_table.set_border_width (5);
- start_alignment.set (1.0, 0.5);
+ position_alignment.set (1.0, 0.5);
end_alignment.set (1.0, 0.5);
length_alignment.set (1.0, 0.5);
+ sync_alignment.set (1.0, 0.5);
+ start_alignment.set (1.0, 0.5);
- start_alignment.add (start_label);
+ position_alignment.add (position_label);
end_alignment.add (end_label);
length_alignment.add (length_label);
+ sync_alignment.add (sync_label);
+ start_alignment.add (start_label);
- time_table.attach (start_alignment, 0, 1, 0, 1, Gtk::FILL, Gtk::FILL);
- time_table.attach (start_clock, 1, 2, 0, 1, Gtk::FILL, Gtk::FILL);
+ time_table.attach (position_alignment, 0, 1, 0, 1, Gtk::FILL, Gtk::FILL);
+ time_table.attach (position_clock, 1, 2, 0, 1, Gtk::FILL, Gtk::FILL);
time_table.attach (end_alignment, 0, 1, 1, 2, Gtk::FILL, Gtk::FILL);
time_table.attach (end_clock, 1, 2, 1, 2, Gtk::FILL, Gtk::FILL);
@@ -107,6 +119,12 @@ AudioRegionEditor::AudioRegionEditor (Session& s, boost::shared_ptr<AudioRegion>
time_table.attach (length_alignment, 0, 1, 2, 3, Gtk::FILL, Gtk::FILL);
time_table.attach (length_clock, 1, 2, 2, 3, Gtk::FILL, Gtk::FILL);
+ time_table.attach (sync_alignment, 0, 1, 3, 4, Gtk::FILL, Gtk::FILL);
+ time_table.attach (sync_offset_clock, 1, 2, 3, 4, Gtk::FILL, Gtk::FILL);
+
+ time_table.attach (start_alignment, 0, 1, 4, 5, Gtk::FILL, Gtk::FILL);
+ time_table.attach (start_clock, 1, 2, 4, 5, Gtk::FILL, Gtk::FILL);
+
lower_hbox.pack_start (time_table, true, true);
lower_hbox.pack_start (sep1, false, false);
lower_hbox.pack_start (sep2, false, false);
@@ -128,7 +146,7 @@ AudioRegionEditor::AudioRegionEditor (Session& s, boost::shared_ptr<AudioRegion>
show_all();
name_changed ();
- bounds_changed (Change (StartChanged|LengthChanged|PositionChanged));
+ bounds_changed (Change (StartChanged|LengthChanged|PositionChanged|StartChanged|Region::SyncOffsetChanged));
_region->StateChanged.connect (mem_fun(*this, &AudioRegionEditor::region_changed));
@@ -147,7 +165,8 @@ AudioRegionEditor::region_changed (Change what_changed)
if (what_changed & NameChanged) {
name_changed ();
}
- if (what_changed & BoundsChanged) {
+
+ if (what_changed & Change (BoundsChanged|StartChanged|Region::SyncOffsetChanged)) {
bounds_changed (what_changed);
}
}
@@ -190,7 +209,7 @@ AudioRegionEditor::connect_editor_events ()
{
name_entry.signal_changed().connect (mem_fun(*this, &AudioRegionEditor::name_entry_changed));
- start_clock.ValueChanged.connect (mem_fun(*this, &AudioRegionEditor::start_clock_changed));
+ position_clock.ValueChanged.connect (mem_fun(*this, &AudioRegionEditor::position_clock_changed));
end_clock.ValueChanged.connect (mem_fun(*this, &AudioRegionEditor::end_clock_changed));
length_clock.ValueChanged.connect (mem_fun(*this, &AudioRegionEditor::length_clock_changed));
@@ -199,7 +218,7 @@ AudioRegionEditor::connect_editor_events ()
}
void
-AudioRegionEditor::start_clock_changed ()
+AudioRegionEditor::position_clock_changed ()
{
_session.begin_reversible_command (_("change region start position"));
@@ -207,7 +226,7 @@ AudioRegionEditor::start_clock_changed ()
if (pl) {
XMLNode &before = pl->get_state();
- _region->set_position (start_clock.current_time(), this);
+ _region->set_position (position_clock.current_time(), this);
XMLNode &after = pl->get_state();
_session.add_command(new MementoCommand<Playlist>(*pl, &before, &after));
}
@@ -276,11 +295,25 @@ AudioRegionEditor::name_changed ()
void
AudioRegionEditor::bounds_changed (Change what_changed)
{
- if (what_changed & Change ((PositionChanged|LengthChanged))) {
- start_clock.set (_region->position(), true);
+ if ((what_changed & Change (PositionChanged|LengthChanged)) == Change (PositionChanged|LengthChanged)) {
+ position_clock.set (_region->position(), true);
+ end_clock.set (_region->position() + _region->length(), true);
+ length_clock.set (_region->length(), true);
+ } else if (what_changed & Change (PositionChanged)) {
+ position_clock.set (_region->position(), true);
+ end_clock.set (_region->position() + _region->length(), true);
+ } else if (what_changed & Change (LengthChanged)) {
end_clock.set (_region->position() + _region->length(), true);
length_clock.set (_region->length(), true);
}
+
+ if (what_changed & Region::SyncOffsetChanged) {
+ sync_offset_clock.set (_region->sync_position(), true);
+ }
+
+ if (what_changed & StartChanged) {
+ start_clock.set (_region->start(), true);
+ }
}
void
diff --git a/gtk2_ardour/audio_region_editor.h b/gtk2_ardour/audio_region_editor.h
index 024f390d40..57a9ba40c6 100644
--- a/gtk2_ardour/audio_region_editor.h
+++ b/gtk2_ardour/audio_region_editor.h
@@ -74,17 +74,22 @@ class AudioRegionEditor : public RegionEditor
Gtk::Table time_table;
- Gtk::Label start_label;
+ Gtk::Label position_label;
Gtk::Label end_label;
Gtk::Label length_label;
- Gtk::Alignment start_alignment;
+ Gtk::Label sync_label;
+ Gtk::Label start_label;
+ Gtk::Alignment position_alignment;
Gtk::Alignment end_alignment;
Gtk::Alignment length_alignment;
+ Gtk::Alignment sync_alignment;
+ Gtk::Alignment start_alignment;
- AudioClock start_clock;
+ AudioClock position_clock;
AudioClock end_clock;
AudioClock length_clock;
AudioClock sync_offset_clock;
+ AudioClock start_clock;
Gtk::HSeparator sep3;
Gtk::VSeparator sep1;
@@ -99,7 +104,7 @@ class AudioRegionEditor : public RegionEditor
void activation ();
void name_entry_changed ();
- void start_clock_changed ();
+ void position_clock_changed ();
void end_clock_changed ();
void length_clock_changed ();
diff --git a/gtk2_ardour/audio_streamview.cc b/gtk2_ardour/audio_streamview.cc
index 7fc7be2db2..ed585a91e1 100644
--- a/gtk2_ardour/audio_streamview.cc
+++ b/gtk2_ardour/audio_streamview.cc
@@ -32,6 +32,7 @@
#include <ardour/playlist_templates.h>
#include <ardour/source.h>
#include <ardour/region_factory.h>
+#include <ardour/profile.h>
#include "audio_streamview.h"
#include "audio_region_view.h"
@@ -139,7 +140,7 @@ AudioStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wai
_samples_per_unit, region_color, recording, TimeAxisViewItem::Visibility(TimeAxisViewItem::ShowFrame | TimeAxisViewItem::HideFrameRight));
} else {
region_view = new AudioRegionView (canvas_group, _trackview, region,
- _samples_per_unit, region_color);
+ _samples_per_unit, region_color);
}
break;
case Destructive:
@@ -821,9 +822,12 @@ AudioStreamView::color_handler ()
//case cAudioBusBase:
if (!_trackview.is_track()) {
- canvas_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_AudioBusBase.get();
+ if (Profile->get_sae() && _trackview.route()->is_master()) {
+ canvas_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_AudioMasterBusBase.get();
+ } else {
+ canvas_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_AudioBusBase.get();
+ }
}
-
}
void
diff --git a/gtk2_ardour/audio_time_axis.cc b/gtk2_ardour/audio_time_axis.cc
index 0e1bf20204..aa02977581 100644
--- a/gtk2_ardour/audio_time_axis.cc
+++ b/gtk2_ardour/audio_time_axis.cc
@@ -377,6 +377,65 @@ AudioTimeAxisView::update_pans (bool show)
++i;
}
}
+#if 0
+void
+AudioTimeAxisView::toggle_gain_track ()
+{
+ bool showit = gain_automation_item->get_active();
+
+ if (showit != gain_track->marked_for_display()) {
+ if (showit) {
+ gain_track->set_marked_for_display (true);
+ gain_track->canvas_display->show();
+ gain_track->canvas_background->show();
+ gain_track->get_state_node()->add_property ("shown", X_("yes"));
+ } else {
+ gain_track->set_marked_for_display (false);
+ gain_track->hide ();
+ gain_track->get_state_node()->add_property ("shown", X_("no"));
+ }
+
+ /* now trigger a redisplay */
+
+ if (!no_redraw) {
+ _route->gui_changed (X_("visible_tracks"), (void *) 0); /* EMIT_SIGNAL */
+ }
+ }
+}
+
+void
+AudioTimeAxisView::gain_hidden ()
+{
+ gain_track->get_state_node()->add_property (X_("shown"), X_("no"));
+
+ if (gain_automation_item && !_hidden) {
+ gain_automation_item->set_active (false);
+ }
+
+ _route->gui_changed ("visible_tracks", (void *) 0); /* EMIT_SIGNAL */
+}
+
+void
+AudioTimeAxisView::toggle_pan_track ()
+{
+ bool showit = pan_automation_item->get_active();
+
+ if (showit != pan_track->marked_for_display()) {
+ if (showit) {
+ pan_track->set_marked_for_display (true);
+ pan_track->canvas_display->show();
+ pan_track->canvas_background->show();
+ pan_track->get_state_node()->add_property ("shown", X_("yes"));
+ } else {
+ pan_track->set_marked_for_display (false);
+ pan_track->hide ();
+ pan_track->get_state_node()->add_property ("shown", X_("no"));
+ }
+
+ /* now trigger a redisplay */
+ }
+}
+#endif
void
AudioTimeAxisView::show_all_automation ()
diff --git a/gtk2_ardour/automation_time_axis.cc b/gtk2_ardour/automation_time_axis.cc
index 2313515285..f0bcaa30ba 100644
--- a/gtk2_ardour/automation_time_axis.cc
+++ b/gtk2_ardour/automation_time_axis.cc
@@ -67,7 +67,6 @@ AutomationTimeAxisView::AutomationTimeAxisView (Session& s, boost::shared_ptr<Ro
_base_rect (0),
_view (show_regions ? new AutomationStreamView(*this) : NULL),
_name (nom),
- height_button (_("h")),
clear_button (_("clear")),
auto_button (X_("")) /* force addition of a label */
{
@@ -90,7 +89,7 @@ AutomationTimeAxisView::AutomationTimeAxisView (Session& s, boost::shared_ptr<Ro
_base_rect = new SimpleRect(*canvas_display);
_base_rect->property_x1() = 0.0;
_base_rect->property_y1() = 0.0;
- _base_rect->property_x2() = editor.frame_to_pixel (max_frames);
+ _base_rect->property_x2() = LONG_MAX - 2;
_base_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_AutomationTrackOutline.get();
/* outline ends and bottom */
@@ -106,14 +105,16 @@ AutomationTimeAxisView::AutomationTimeAxisView (Session& s, boost::shared_ptr<Ro
hide_button.add (*(manage (new Gtk::Image (::get_icon("hide")))));
- height_button.set_name ("TrackSizeButton");
auto_button.set_name ("TrackVisualButton");
clear_button.set_name ("TrackVisualButton");
hide_button.set_name ("TrackRemoveButton");
+ auto_button.unset_flags (Gtk::CAN_FOCUS);
+ clear_button.unset_flags (Gtk::CAN_FOCUS);
+ hide_button.unset_flags (Gtk::CAN_FOCUS);
+
controls_table.set_no_show_all();
- ARDOUR_UI::instance()->tooltips().set_tip(height_button, _("track height"));
ARDOUR_UI::instance()->tooltips().set_tip(auto_button, _("automation state"));
ARDOUR_UI::instance()->tooltips().set_tip(clear_button, _("clear track"));
ARDOUR_UI::instance()->tooltips().set_tip(hide_button, _("hide track"));
@@ -174,7 +175,6 @@ AutomationTimeAxisView::AutomationTimeAxisView (Session& s, boost::shared_ptr<Ro
/* add the buttons */
controls_table.attach (hide_button, 0, 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
- controls_table.attach (height_button, 0, 1, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
controls_table.attach (auto_button, 5, 8, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
controls_table.attach (clear_button, 5, 8, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
@@ -184,7 +184,6 @@ AutomationTimeAxisView::AutomationTimeAxisView (Session& s, boost::shared_ptr<Ro
controls_table.show_all ();
- height_button.signal_clicked().connect (mem_fun(*this, &AutomationTimeAxisView::height_clicked));
clear_button.signal_clicked().connect (mem_fun(*this, &AutomationTimeAxisView::clear_clicked));
hide_button.signal_clicked().connect (mem_fun(*this, &AutomationTimeAxisView::hide_clicked));
auto_button.signal_clicked().connect (mem_fun(*this, &AutomationTimeAxisView::auto_clicked));
@@ -362,12 +361,6 @@ AutomationTimeAxisView::set_interpolation (AutomationList::InterpolationStyle st
}
void
-AutomationTimeAxisView::height_clicked ()
-{
- popup_size_menu (0);
-}
-
-void
AutomationTimeAxisView::clear_clicked ()
{
_session.begin_reversible_command (_("clear automation"));
@@ -380,10 +373,9 @@ void
AutomationTimeAxisView::set_height (uint32_t h)
{
bool changed = (height != (uint32_t) h) || first_call_to_set_height;
- bool changed_between_small_and_normal = ( (h == hSmall || h == hSmaller) ^ (height == hSmall || height == hSmaller) );
+ bool changed_between_small_and_normal = ( (height < hNormal && h >= hNormal) || (height >= hNormal || h < hNormal) );
TimeAxisView* state_parent = get_parent_with_state ();
-
assert(state_parent);
XMLNode* xml_node = state_parent->get_automation_child_xml_node (_control->parameter());
@@ -427,7 +419,6 @@ AutomationTimeAxisView::set_height (uint32_t h)
name_hbox.show_all ();
auto_button.show();
- height_button.show();
clear_button.show();
hide_button.show_all();
@@ -446,15 +437,11 @@ AutomationTimeAxisView::set_height (uint32_t h)
name_hbox.show_all ();
auto_button.hide();
- height_button.hide();
clear_button.hide();
hide_button.hide();
}
- } else if (h >= hNormal){
- auto_button.show();
- height_button.show();
- clear_button.show();
- hide_button.show_all();
+ } else if (h >= hNormal){
+ cerr << "track grown, but neither changed_between_small_and_normal nor first_call_to_set_height set!" << endl;
}
if (changed) {
diff --git a/gtk2_ardour/automation_time_axis.h b/gtk2_ardour/automation_time_axis.h
index 8899dc4949..d749a5fbf0 100644
--- a/gtk2_ardour/automation_time_axis.h
+++ b/gtk2_ardour/automation_time_axis.h
@@ -122,7 +122,6 @@ class AutomationTimeAxisView : public TimeAxisView {
bool first_call_to_set_height;
Gtk::Button hide_button;
- Gtk::Button height_button;
Gtk::Button clear_button;
Gtk::Button auto_button;
Gtk::Menu* automation_menu;
@@ -140,7 +139,6 @@ class AutomationTimeAxisView : public TimeAxisView {
void add_line (boost::shared_ptr<AutomationLine>);
void clear_clicked ();
- void height_clicked ();
void hide_clicked ();
void auto_clicked ();
diff --git a/gtk2_ardour/canvas-waveview.c b/gtk2_ardour/canvas-waveview.c
index dee5706c51..f929b31197 100644
--- a/gtk2_ardour/canvas-waveview.c
+++ b/gtk2_ardour/canvas-waveview.c
@@ -1359,8 +1359,9 @@ gnome_canvas_waveview_render (GnomeCanvasItem *item,
prev_pymax = pymax;
prev_pymin = pymin;
}
- }
- else if(waveview->filled && rectify) {
+
+ } else if (waveview->filled && rectify) {
+
int prev_pymax = -1;
int last_pymax = -1;
int next_pymax;
@@ -1611,11 +1612,10 @@ gnome_canvas_waveview_draw (GnomeCanvasItem *item,
int cache_index;
double zbegin, zend;
gboolean rectify;
- double n;
double origin;
double clip_length;
double xoff;
- double yoff;
+ double yoff = 0.0;
double ulx;
double uly;
double lrx;
@@ -1748,7 +1748,8 @@ gnome_canvas_waveview_draw (GnomeCanvasItem *item,
yoff = origin - (waveview->half_height * max) + 0.5;
- if (n == ulx) {
+ if (xoff == ulx) {
+ /* first point */
cairo_move_to (cr, xoff+0.5, yoff);
} else {
cairo_line_to (cr, xoff+0.5, yoff);
diff --git a/gtk2_ardour/canvas_vars.h b/gtk2_ardour/canvas_vars.h
index 6b14d257ad..6f87539dd5 100644
--- a/gtk2_ardour/canvas_vars.h
+++ b/gtk2_ardour/canvas_vars.h
@@ -1,5 +1,6 @@
CANVAS_VARIABLE(canvasvar_ActiveCrossfade, "active crossfade")
CANVAS_VARIABLE(canvasvar_AudioBusBase, "audio bus base")
+CANVAS_VARIABLE(canvasvar_AudioMasterBusBase, "audio master bus base")
CANVAS_VARIABLE(canvasvar_AudioTrackBase, "audio track base")
CANVAS_VARIABLE(canvasvar_AutomationLine, "automation line")
CANVAS_VARIABLE(canvasvar_AutomationTrackFill, "automation track fill")
diff --git a/gtk2_ardour/cocoacarbon.mm b/gtk2_ardour/cocoacarbon.mm
index 75df481186..e4f833dd26 100644
--- a/gtk2_ardour/cocoacarbon.mm
+++ b/gtk2_ardour/cocoacarbon.mm
@@ -163,3 +163,16 @@ ARDOUR_UI::platform_setup ()
}
}
+bool
+cocoa_open_url (const char* uri)
+{
+ NSString* struri = [[NSString alloc] initWithUTF8String:uri];
+ NSURL* nsurl = [[NSURL alloc] initWithString:struri];
+
+ bool ret = [[NSWorkspace sharedWorkspace] openURL:nsurl];
+
+ [struri release];
+ [nsurl release];
+
+ return ret;
+}
diff --git a/gtk2_ardour/crossfade_edit.cc b/gtk2_ardour/crossfade_edit.cc
index 3c67c62f68..eb5cb2fba9 100644
--- a/gtk2_ardour/crossfade_edit.cc
+++ b/gtk2_ardour/crossfade_edit.cc
@@ -36,6 +36,7 @@
#include <ardour/audiosource.h>
#include <ardour/playlist_templates.h>
#include <ardour/region_factory.h>
+#include <ardour/profile.h>
#include <gtkmm2ext/gtk_ui.h>
@@ -48,6 +49,7 @@
#include "canvas_impl.h"
#include "simplerect.h"
#include "waveview.h"
+#include "actions.h"
using namespace std;
using namespace ARDOUR;
@@ -99,6 +101,8 @@ CrossfadeEditor::CrossfadeEditor (Session& s, boost::shared_ptr<Crossfade> xf, d
set_name ("CrossfadeEditWindow");
set_position (Gtk::WIN_POS_MOUSE);
+ add_accel_group (ActionManager::ui_manager->get_accel_group());
+
add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::POINTER_MOTION_MASK);
RadioButtonGroup sel_but_group = select_in_button.get_group();
@@ -198,6 +202,7 @@ CrossfadeEditor::CrossfadeEditor (Session& s, boost::shared_ptr<Crossfade> xf, d
pbutton->add (*pxmap);
pbutton->set_name ("CrossfadeEditButton");
pbutton->signal_clicked().connect (bind (mem_fun(*this, &CrossfadeEditor::apply_preset), *i));
+ ARDOUR_UI::instance()->set_tip (pbutton, (*i)->name, "");
fade_in_table.attach (*pbutton, col, col+1, row, row+1);
fade_in_buttons.push_back (pbutton);
@@ -219,6 +224,7 @@ CrossfadeEditor::CrossfadeEditor (Session& s, boost::shared_ptr<Crossfade> xf, d
pbutton->add (*pxmap);
pbutton->set_name ("CrossfadeEditButton");
pbutton->signal_clicked().connect (bind (mem_fun(*this, &CrossfadeEditor::apply_preset), *i));
+ ARDOUR_UI::instance()->set_tip (pbutton, (*i)->name, "");
fade_out_table.attach (*pbutton, col, col+1, row, row+1);
fade_out_buttons.push_back (pbutton);
@@ -398,7 +404,7 @@ CrossfadeEditor::point_event (GdkEvent* event, Point* point)
if (Keyboard::is_delete_event (&event->button)) {
fade[current].points.remove (point);
delete point;
- }
+ }
redraw ();
break;
@@ -853,58 +859,19 @@ CrossfadeEditor::build_presets ()
fade_out_presets = new Presets;
/* FADE OUT */
- // p = new Preset ("hiin.xpm");
- p = new Preset ("crossfade_in_fast-cut");
- p->push_back (PresetPoint (0, 0));
- p->push_back (PresetPoint (0.0207373, 0.197222));
- p->push_back (PresetPoint (0.0645161, 0.525));
- p->push_back (PresetPoint (0.152074, 0.802778));
- p->push_back (PresetPoint (0.276498, 0.919444));
- p->push_back (PresetPoint (0.481567, 0.980556));
- p->push_back (PresetPoint (0.767281, 1));
- p->push_back (PresetPoint (1, 1));
- fade_in_presets->push_back (p);
-
- // p = new Preset ("loin.xpm");
- p = new Preset ("crossfade_in_transition");
- p->push_back (PresetPoint (0, 0));
- p->push_back (PresetPoint (0.389401, 0.0333333));
- p->push_back (PresetPoint (0.629032, 0.0861111));
- p->push_back (PresetPoint (0.829493, 0.233333));
- p->push_back (PresetPoint (0.9447, 0.483333));
- p->push_back (PresetPoint (0.976959, 0.697222));
- p->push_back (PresetPoint (1, 1));
- fade_in_presets->push_back (p);
-
- // p = new Preset ("regin.xpm");
- p = new Preset ("crossfade_in_constant");
- p->push_back (PresetPoint (0, 0));
- p->push_back (PresetPoint (0.0737327, 0.308333));
- p->push_back (PresetPoint (0.246544, 0.658333));
- p->push_back (PresetPoint (0.470046, 0.886111));
- p->push_back (PresetPoint (0.652074, 0.972222));
- p->push_back (PresetPoint (0.771889, 0.988889));
- p->push_back (PresetPoint (1, 1));
- fade_in_presets->push_back (p);
-
- // p = new Preset ("regin2.xpm");
- p = new Preset ("crossfade_in_slow-cut");
- p->push_back (PresetPoint (0, 0));
- p->push_back (PresetPoint (0.304147, 0.0694444));
- p->push_back (PresetPoint (0.529954, 0.152778));
- p->push_back (PresetPoint (0.725806, 0.333333));
- p->push_back (PresetPoint (0.847926, 0.558333));
- p->push_back (PresetPoint (0.919355, 0.730556));
- p->push_back (PresetPoint (1, 1));
- fade_in_presets->push_back (p);
- // p = new Preset ("linin.xpm");
- p = new Preset ("crossfade_in_dipped");
+ p = new Preset ("Linear (-6dB)", "crossfade_in_dipped");
p->push_back (PresetPoint (0, 0));
- p->push_back (PresetPoint (1, 1));
+ p->push_back (PresetPoint (0.000000, 0.000000));
+ p->push_back (PresetPoint (0.166667, 0.166366));
+ p->push_back (PresetPoint (0.333333, 0.332853));
+ p->push_back (PresetPoint (0.500000, 0.499459));
+ p->push_back (PresetPoint (0.666667, 0.666186));
+ p->push_back (PresetPoint (0.833333, 0.833033));
+ p->push_back (PresetPoint (1.000000, 1.000000));
fade_in_presets->push_back (p);
- p = new Preset ("crossfade_in_default");
+ p = new Preset ("S(1)-curve", "crossfade_in_default");
p->push_back (PresetPoint (0, 0));
p->push_back (PresetPoint (0.1, 0.01));
p->push_back (PresetPoint (0.2, 0.03));
@@ -912,66 +879,141 @@ CrossfadeEditor::build_presets ()
p->push_back (PresetPoint (0.9, 0.99));
p->push_back (PresetPoint (1, 1));
fade_in_presets->push_back (p);
+
+ p = new Preset ("S(2)-curve", "crossfade_in_default");
+ p->push_back (PresetPoint (0.0, 0.0));
+ p->push_back (PresetPoint (0.055, 0.222));
+ p->push_back (PresetPoint (0.163, 0.35));
+ p->push_back (PresetPoint (0.837, 0.678));
+ p->push_back (PresetPoint (0.945, 0.783));
+ p->push_back (PresetPoint (1.0, 1.0));
+ fade_in_presets->push_back (p);
+
+ p = new Preset ("Constant Power (-3dB)", "crossfade_in_constant");
+
+ p->push_back (PresetPoint (0.000000, 0.000000));
+ p->push_back (PresetPoint (0.166667, 0.282192));
+ p->push_back (PresetPoint (0.333333, 0.518174));
+ p->push_back (PresetPoint (0.500000, 0.707946));
+ p->push_back (PresetPoint (0.666667, 0.851507));
+ p->push_back (PresetPoint (0.833333, 0.948859));
+ p->push_back (PresetPoint (1.000000, 1.000000));
+
+ fade_in_presets->push_back (p);
+
+ if (!Profile->get_sae()) {
+ // p = new Preset ("hiin.xpm");
+ p = new Preset ("Long cut", "crossfade_in_fast-cut");
+ p->push_back (PresetPoint (0, 0));
+ p->push_back (PresetPoint (0.0207373, 0.197222));
+ p->push_back (PresetPoint (0.0645161, 0.525));
+ p->push_back (PresetPoint (0.152074, 0.802778));
+ p->push_back (PresetPoint (0.276498, 0.919444));
+ p->push_back (PresetPoint (0.481567, 0.980556));
+ p->push_back (PresetPoint (0.767281, 1));
+ p->push_back (PresetPoint (1, 1));
+ fade_in_presets->push_back (p);
+
+ // p = new Preset ("loin.xpm");
+ p = new Preset ("Short cut", "crossfade_in_transition");
+ p->push_back (PresetPoint (0, 0));
+ p->push_back (PresetPoint (0.389401, 0.0333333));
+ p->push_back (PresetPoint (0.629032, 0.0861111));
+ p->push_back (PresetPoint (0.829493, 0.233333));
+ p->push_back (PresetPoint (0.9447, 0.483333));
+ p->push_back (PresetPoint (0.976959, 0.697222));
+ p->push_back (PresetPoint (1, 1));
+ fade_in_presets->push_back (p);
+
+
+ // p = new Preset ("regin2.xpm");
+ p = new Preset ("Slow cut", "crossfade_in_slow-cut");
+ p->push_back (PresetPoint (0, 0));
+ p->push_back (PresetPoint (0.304147, 0.0694444));
+ p->push_back (PresetPoint (0.529954, 0.152778));
+ p->push_back (PresetPoint (0.725806, 0.333333));
+ p->push_back (PresetPoint (0.847926, 0.558333));
+ p->push_back (PresetPoint (0.919355, 0.730556));
+ p->push_back (PresetPoint (1, 1));
+ fade_in_presets->push_back (p);
+ }
/* FADE OUT */
- // p = new Preset ("hiout.xpm");
- p = new Preset ("crossfade_out_fast-cut");
- p->push_back (PresetPoint (0, 1));
- p->push_back (PresetPoint (0.305556, 1));
- p->push_back (PresetPoint (0.548611, 0.991736));
- p->push_back (PresetPoint (0.759259, 0.931129));
- p->push_back (PresetPoint (0.918981, 0.68595));
- p->push_back (PresetPoint (0.976852, 0.22865));
- p->push_back (PresetPoint (1, 0));
- fade_out_presets->push_back (p);
-
- // p = new Preset ("loout.xpm");
- p = new Preset ("crossfade_out_transition");
+ // p = new Preset ("regout.xpm");
+ p = new Preset ("Linear (-6dB cut)", "crossfade_out_dipped");
p->push_back (PresetPoint (0, 1));
- p->push_back (PresetPoint (0.023041, 0.697222));
- p->push_back (PresetPoint (0.0553, 0.483333));
- p->push_back (PresetPoint (0.170507, 0.233333));
- p->push_back (PresetPoint (0.370968, 0.0861111));
- p->push_back (PresetPoint (0.610599, 0.0333333));
- p->push_back (PresetPoint (1, 0));
+ p->push_back (PresetPoint (0.000000, 1.000000));
+ p->push_back (PresetPoint (0.166667, 0.833033));
+ p->push_back (PresetPoint (0.333333, 0.666186));
+ p->push_back (PresetPoint (0.500000, 0.499459));
+ p->push_back (PresetPoint (0.666667, 0.332853));
+ p->push_back (PresetPoint (0.833333, 0.166366));
+ p->push_back (PresetPoint (1.000000, 0.000000));
fade_out_presets->push_back (p);
- // p = new Preset ("regout.xpm");
- p = new Preset ("crossfade_out_constant");
+ p = new Preset ("S(1)-Curve", "crossfade_out_default");
p->push_back (PresetPoint (0, 1));
- p->push_back (PresetPoint (0.228111, 0.988889));
- p->push_back (PresetPoint (0.347926, 0.972222));
- p->push_back (PresetPoint (0.529954, 0.886111));
- p->push_back (PresetPoint (0.753456, 0.658333));
- p->push_back (PresetPoint (0.9262673, 0.308333));
+ p->push_back (PresetPoint (0.1, 0.99));
+ p->push_back (PresetPoint (0.2, 0.97));
+ p->push_back (PresetPoint (0.8, 0.03));
+ p->push_back (PresetPoint (0.9, 0.01));
p->push_back (PresetPoint (1, 0));
fade_out_presets->push_back (p);
- // p = new Preset ("regout2.xpm");
- p = new Preset ("crossfade_out_slow-fade");
- p->push_back (PresetPoint (0, 1));
- p->push_back (PresetPoint (0.080645, 0.730556));
- p->push_back (PresetPoint (0.277778, 0.289256));
- p->push_back (PresetPoint (0.470046, 0.152778));
- p->push_back (PresetPoint (0.695853, 0.0694444));
- p->push_back (PresetPoint (1, 0));
+ p = new Preset ("S(2)-Curve", "crossfade_out_default");
+ p->push_back (PresetPoint (0.0, 1.0));
+ p->push_back (PresetPoint (0.163, 0.678));
+ p->push_back (PresetPoint (0.055, 0.783));
+ p->push_back (PresetPoint (0.837, 0.35));
+ p->push_back (PresetPoint (0.945, 0.222));
+ p->push_back (PresetPoint (1.0, 0.0));
fade_out_presets->push_back (p);
// p = new Preset ("linout.xpm");
- p = new Preset ("crossfade_out_dipped");
- p->push_back (PresetPoint (0, 1));
- p->push_back (PresetPoint (1, 0));
+ p = new Preset ("Constant Power (-3dB cut)", "crossfade_out_constant");
+ p->push_back (PresetPoint (0.000000, 1.000000));
+ p->push_back (PresetPoint (0.166667, 0.948859));
+ p->push_back (PresetPoint (0.333333, 0.851507));
+ p->push_back (PresetPoint (0.500000, 0.707946));
+ p->push_back (PresetPoint (0.666667, 0.518174));
+ p->push_back (PresetPoint (0.833333, 0.282192));
+ p->push_back (PresetPoint (1.000000, 0.000000));
fade_out_presets->push_back (p);
- p = new Preset ("crossfade_out_default");
- p->push_back (PresetPoint (0, 1));
- p->push_back (PresetPoint (0.1, 0.99));
- p->push_back (PresetPoint (0.2, 0.97));
- p->push_back (PresetPoint (0.8, 0.03));
- p->push_back (PresetPoint (0.9, 0.01));
- p->push_back (PresetPoint (1, 0));
- fade_out_presets->push_back (p);
+ if (!Profile->get_sae()) {
+ // p = new Preset ("hiout.xpm");
+ p = new Preset ("Slow end/cut", "crossfade_out_fast-cut");
+ p->push_back (PresetPoint (0, 1));
+ p->push_back (PresetPoint (0.305556, 1));
+ p->push_back (PresetPoint (0.548611, 0.991736));
+ p->push_back (PresetPoint (0.759259, 0.931129));
+ p->push_back (PresetPoint (0.918981, 0.68595));
+ p->push_back (PresetPoint (0.976852, 0.22865));
+ p->push_back (PresetPoint (1, 0));
+ fade_out_presets->push_back (p);
+
+ // p = new Preset ("loout.xpm");
+ p = new Preset ("Fast start/cut", "crossfade_out_transition");
+ p->push_back (PresetPoint (0, 1));
+ p->push_back (PresetPoint (0.023041, 0.697222));
+ p->push_back (PresetPoint (0.0553, 0.483333));
+ p->push_back (PresetPoint (0.170507, 0.233333));
+ p->push_back (PresetPoint (0.370968, 0.0861111));
+ p->push_back (PresetPoint (0.610599, 0.0333333));
+ p->push_back (PresetPoint (1, 0));
+ fade_out_presets->push_back (p);
+
+ // p = new Preset ("regout2.xpm");
+ p = new Preset ("Slow Fade", "crossfade_out_slow-fade");
+ p->push_back (PresetPoint (0, 1));
+ p->push_back (PresetPoint (0.080645, 0.730556));
+ p->push_back (PresetPoint (0.277778, 0.289256));
+ p->push_back (PresetPoint (0.470046, 0.152778));
+ p->push_back (PresetPoint (0.695853, 0.0694444));
+ p->push_back (PresetPoint (1, 0));
+ fade_out_presets->push_back (p);
+ }
}
void
@@ -1037,7 +1079,7 @@ CrossfadeEditor::x_coordinate (double& xfract) const
{
xfract = min (1.0, xfract);
xfract = max (0.0, xfract);
-
+
return canvas_border + (xfract * effective_width());
}
@@ -1296,3 +1338,44 @@ CrossfadeEditor::audition_left_dry_toggled ()
}
}
}
+
+bool
+CrossfadeEditor::on_key_press_event (GdkEventKey *ev)
+{
+ return true;
+}
+
+bool
+CrossfadeEditor::on_key_release_event (GdkEventKey* ev)
+{
+ switch (ev->keyval) {
+ case GDK_Right:
+ if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
+ audition_right_dry_button.set_active (!audition_right_dry_button.get_active());
+ } else {
+ audition_right_button.set_active (!audition_right_button.get_active());
+ }
+ break;
+
+ case GDK_Left:
+ if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
+ audition_left_dry_button.set_active (!audition_left_dry_button.get_active());
+ } else {
+ audition_left_button.set_active (!audition_left_button.get_active());
+ }
+ break;
+
+ case GDK_space:
+ if (session.is_auditioning()) {
+ cancel_audition ();
+ } else {
+ audition_both_button.set_active (!audition_both_button.get_active());
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return true;
+}
diff --git a/gtk2_ardour/crossfade_edit.h b/gtk2_ardour/crossfade_edit.h
index 9e4db3be88..f7f607393f 100644
--- a/gtk2_ardour/crossfade_edit.h
+++ b/gtk2_ardour/crossfade_edit.h
@@ -62,15 +62,20 @@ class CrossfadeEditor : public ArdourDialog
};
struct Preset : public list<PresetPoint> {
+ const char* name;
const char* image_name;
-
- Preset (const char* x) : image_name (x) {}
+
+ Preset (const char* n, const char* x) : name (n), image_name (x) {}
};
typedef list<Preset*> Presets;
static Presets* fade_in_presets;
static Presets* fade_out_presets;
+
+ protected:
+ bool on_key_press_event (GdkEventKey*);
+ bool on_key_release_event (GdkEventKey*);
private:
boost::shared_ptr<ARDOUR::Crossfade> xfade;
diff --git a/gtk2_ardour/crossfade_view.cc b/gtk2_ardour/crossfade_view.cc
index 8507d5e4d9..a412e310af 100644
--- a/gtk2_ardour/crossfade_view.cc
+++ b/gtk2_ardour/crossfade_view.cc
@@ -175,7 +175,7 @@ CrossfadeView::redraw_curves ()
}
npoints = get_time_axis_view().editor.frame_to_pixel (crossfade->length());
- npoints = std::min (gdk_screen_width(), npoints);
+ // npoints = std::min (gdk_screen_width(), npoints);
if (!_visible || !crossfade->active() || npoints < 3) {
fade_in->hide();
@@ -190,6 +190,7 @@ CrossfadeView::redraw_curves ()
vec = new float[npoints];
crossfade->fade_in().curve().get_vector (0, crossfade->length(), vec, npoints);
+
for (int i = 0, pci = 0; i < npoints; ++i) {
Art::Point &p = (*points)[pci++];
p.set_x(i);
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 6cc35252d5..6f7a5eb132 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -369,6 +369,7 @@ Editor::Editor ()
range_marker_drag_rect = 0;
marker_drag_line = 0;
set_midi_edit_mode (MidiEditPencil, true);
+ _edit_point = EditAtMouse;
set_mouse_mode (MouseObject, true);
frames_per_unit = 2048; /* too early to use reset_zoom () */
@@ -944,22 +945,24 @@ Editor::set_entered_track (TimeAxisView* tav)
void
Editor::show_window ()
{
- show_all_children ();
+ if (! is_visible ()) {
+ show_all ();
- /* re-hide editor list if necessary */
- editor_list_button_toggled ();
-
- /* now reset all audio_time_axis heights, because widgets might need
- to be re-hidden
- */
-
- TimeAxisView *tv;
+ /* re-hide editor list if necessary */
+ editor_list_button_toggled ();
+
+ /* now reset all audio_time_axis heights, because widgets might need
+ to be re-hidden
+ */
+
+ TimeAxisView *tv;
- for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
- tv = (static_cast<TimeAxisView*>(*i));
- tv->reset_height ();
+ for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
+ tv = (static_cast<TimeAxisView*>(*i));
+ tv->reset_height ();
+ }
}
-
+
present ();
}
@@ -1099,8 +1102,6 @@ Editor::access_action (std::string action_group, std::string action_item)
ENSURE_GUI_THREAD (bind (mem_fun (*this, &Editor::access_action), action_group, action_item));
- cout<< "OSC: Recieved: "<< action_item << endl;
-
RefPtr<Action> act;
act = ActionManager::get_action( action_group.c_str(), action_item.c_str() );
@@ -1276,11 +1277,23 @@ Editor::connect_to_session (Session *t)
edit_groups_changed ();
+ edit_point_clock.set_mode(AudioClock::BBT);
edit_point_clock.set_session (session);
zoom_range_clock.set_session (session);
_playlist_selector->set_session (session);
nudge_clock.set_session (session);
- nudge_clock.set (session->frame_rate() * 5); // default of 5 seconds
+ if (Profile->get_sae()) {
+ BBT_Time bbt;
+ bbt.bars = 0;
+ bbt.beats = 0;
+ bbt.ticks = 120;
+ nframes_t pos = session->tempo_map().bbt_duration_at (0, bbt, 1);
+ nudge_clock.set_mode(AudioClock::BBT);
+ nudge_clock.set (pos, true, 0, AudioClock::BBT);
+
+ } else {
+ nudge_clock.set (session->frame_rate() * 5, true, 0, AudioClock::SMPTE); // default of 5 seconds
+ }
playhead_cursor->canvas_item.show ();
@@ -1338,16 +1351,16 @@ Editor::connect_to_session (Session *t)
redisplay_named_selections ();
redisplay_snapshots ();
+ restore_ruler_visibility ();
+ //tempo_map_changed (Change (0));
+ session->tempo_map().apply_with_metrics (*this, &Editor::draw_metric_marks);
+
initial_route_list_display ();
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
(static_cast<TimeAxisView*>(*i))->set_samples_per_unit (frames_per_unit);
}
- restore_ruler_visibility ();
- //tempo_map_changed (Change (0));
- session->tempo_map().apply_with_metrics (*this, &Editor::draw_metric_marks);
-
start_scrolling ();
/* don't show master bus in a new session */
@@ -1889,10 +1902,11 @@ void
Editor::add_region_context_items (StreamView* sv, boost::shared_ptr<Region> region, Menu_Helpers::MenuList& edit_items)
{
using namespace Menu_Helpers;
+ Gtk::MenuItem* foo_item;
Menu *region_menu = manage (new Menu);
MenuList& items = region_menu->items();
region_menu->set_name ("ArdourContextMenu");
-
+
boost::shared_ptr<AudioRegion> ar;
boost::shared_ptr<MidiRegion> mr;
@@ -2031,7 +2045,12 @@ Editor::add_region_context_items (StreamView* sv, boost::shared_ptr<Region> regi
/* range related stuff */
- items.push_back (MenuElem (_("Add Range Markers"), mem_fun (*this, &Editor::add_location_from_audio_region)));
+ items.push_back (MenuElem (_("Add Single Range"), mem_fun (*this, &Editor::add_location_from_audio_region)));
+ items.push_back (MenuElem (_("Add Range Markers"), mem_fun (*this, &Editor::add_locations_from_audio_region)));
+ if (selection->regions.size() < 2) {
+ items.back().set_sensitive (false);
+ }
+
items.push_back (MenuElem (_("Set Range Selection"), mem_fun (*this, &Editor::set_selection_from_region)));
items.push_back (SeparatorElem());
@@ -2054,7 +2073,15 @@ Editor::add_region_context_items (StreamView* sv, boost::shared_ptr<Region> regi
trim_menu->set_name ("ArdourContextMenu");
trim_items.push_back (MenuElem (_("Start to edit point"), mem_fun(*this, &Editor::trim_region_from_edit_point)));
+ foo_item = &trim_items.back();
+ if (_edit_point == EditAtMouse) {
+ foo_item->set_sensitive (false);
+ }
trim_items.push_back (MenuElem (_("Edit point to end"), mem_fun(*this, &Editor::trim_region_to_edit_point)));
+ foo_item = &trim_items.back();
+ if (_edit_point == EditAtMouse) {
+ foo_item->set_sensitive (false);
+ }
trim_items.push_back (MenuElem (_("Trim To Loop"), mem_fun(*this, &Editor::trim_region_to_loop)));
trim_items.push_back (MenuElem (_("Trim To Punch"), mem_fun(*this, &Editor::trim_region_to_punch)));
@@ -2063,6 +2090,10 @@ Editor::add_region_context_items (StreamView* sv, boost::shared_ptr<Region> regi
items.push_back (MenuElem (_("Split"), (mem_fun(*this, &Editor::split_region))));
region_edit_menu_split_item = &items.back();
+
+ if (_edit_point == EditAtMouse) {
+ region_edit_menu_split_item->set_sensitive (false);
+ }
items.push_back (MenuElem (_("Make mono regions"), (mem_fun(*this, &Editor::split_multichannel_region))));
region_edit_menu_split_multichannel_item = &items.back();
@@ -2418,23 +2449,56 @@ Editor::set_state (const XMLNode& node)
_id = prop->value ();
}
- if ((geometry = find_named_node (node, "geometry")) == 0) {
+ g.base_width = default_width;
+ g.base_height = default_height;
+ x = 1;
+ y = 1;
+ xoff = 0;
+ yoff = 21;
- g.base_width = default_width;
- g.base_height = default_height;
- x = 1;
- y = 1;
- xoff = 0;
- yoff = 21;
+ if ((geometry = find_named_node (node, "geometry")) != 0) {
- } else {
+ XMLProperty* prop;
+
+ if ((prop = geometry->property("x_size")) == 0) {
+ prop = geometry->property ("x-size");
+ }
+ if (prop) {
+ g.base_width = atoi(prop->value());
+ }
+ if ((prop = geometry->property("y_size")) == 0) {
+ prop = geometry->property ("y-size");
+ }
+ if (prop) {
+ g.base_height = atoi(prop->value());
+ }
+
+ if ((prop = geometry->property ("x_pos")) == 0) {
+ prop = geometry->property ("x-pos");
+ }
+ if (prop) {
+ x = atoi (prop->value());
+
+ }
+ if ((prop = geometry->property ("y_pos")) == 0) {
+ prop = geometry->property ("y-pos");
+ }
+ if (prop) {
+ y = atoi (prop->value());
+ }
- g.base_width = atoi(geometry->property("x-size")->value());
- g.base_height = atoi(geometry->property("y-size")->value());
- x = atoi(geometry->property("x-pos")->value());
- y = atoi(geometry->property("y-pos")->value());
- xoff = atoi(geometry->property("x-off")->value());
- yoff = atoi(geometry->property("y-off")->value());
+ if ((prop = geometry->property ("x_off")) == 0) {
+ prop = geometry->property ("x-off");
+ }
+ if (prop) {
+ xoff = atoi (prop->value());
+ }
+ if ((prop = geometry->property ("y_off")) == 0) {
+ prop = geometry->property ("y-off");
+ }
+ if (prop) {
+ yoff = atoi (prop->value());
+ }
}
set_default_size (g.base_width, g.base_height);
@@ -2941,7 +3005,7 @@ Editor::setup_toolbar ()
#ifdef GTKOSX
const guint32 FUDGE = 38; // Combo's are stupid - they steal space from the entry for the button
#else
- const guint32 FUDGE = 18; // Combo's are stupid - they steal space from the entry for the button
+ const guint32 FUDGE = 24; // Combo's are stupid - they steal space from the entry for the button
#endif
/* Mode Buttons (tool selection) */
@@ -2996,7 +3060,9 @@ Editor::setup_toolbar ()
vector<string> edit_mode_strings;
edit_mode_strings.push_back (edit_mode_to_string (Slide));
- edit_mode_strings.push_back (edit_mode_to_string (Splice));
+ if (!Profile->get_sae()) {
+ edit_mode_strings.push_back (edit_mode_to_string (Splice));
+ }
edit_mode_strings.push_back (edit_mode_to_string (Lock));
edit_mode_selector.set_name ("EditModeSelector");
@@ -3010,6 +3076,10 @@ Editor::setup_toolbar ()
mouse_mode_tearoff = manage (new TearOff (*mode_box));
mouse_mode_tearoff->set_name ("MouseModeBase");
+ if (Profile->get_sae()) {
+ mouse_mode_tearoff->set_can_be_torn_off (false);
+ }
+
mouse_mode_tearoff->Detach.connect (bind (mem_fun(*this, &Editor::detach_tearoff), static_cast<Box*>(&toolbar_hbox),
&mouse_mode_tearoff->tearoff_window()));
mouse_mode_tearoff->Attach.connect (bind (mem_fun(*this, &Editor::reattach_tearoff), static_cast<Box*> (&toolbar_hbox),
@@ -3138,6 +3208,10 @@ Editor::setup_toolbar ()
tools_tearoff = manage (new TearOff (*hbox));
tools_tearoff->set_name ("MouseModeBase");
+ if (Profile->get_sae()) {
+ tools_tearoff->set_can_be_torn_off (false);
+ }
+
tools_tearoff->Detach.connect (bind (mem_fun(*this, &Editor::detach_tearoff), static_cast<Box*>(&toolbar_hbox),
&tools_tearoff->tearoff_window()));
tools_tearoff->Attach.connect (bind (mem_fun(*this, &Editor::reattach_tearoff), static_cast<Box*> (&toolbar_hbox),
@@ -3306,12 +3380,19 @@ Editor::convert_drop_to_paths (vector<ustring>& paths,
}
/* Parse the "uri-list" format that Nautilus provides,
- where each pathname is delimited by \r\n
+ where each pathname is delimited by \r\n.
+
+ THERE MAY BE NO NULL TERMINATING CHAR!!!
*/
-
- const char* p = data.get_text().c_str();
+
+ ustring txt = data.get_text();
+ const char* p;
const char* q;
+ p = (const char *) malloc (txt.length() + 1);
+ txt.copy ((char *) p, txt.length(), 0);
+ ((char*)p)[txt.length()] = '\0';
+
while (p)
{
if (*p != '#')
@@ -3320,8 +3401,9 @@ Editor::convert_drop_to_paths (vector<ustring>& paths,
p++;
q = p;
- while (*q && (*q != '\n') && (*q != '\r'))
+ while (*q && (*q != '\n') && (*q != '\r')) {
q++;
+ }
if (q > p)
{
@@ -3340,6 +3422,8 @@ Editor::convert_drop_to_paths (vector<ustring>& paths,
p++;
}
+ free ((void*)p);
+
if (uris.empty()) {
return -1;
}
@@ -3638,7 +3722,11 @@ Editor::cycle_edit_mode ()
{
switch (Config->get_edit_mode()) {
case Slide:
- Config->set_edit_mode (Splice);
+ if (Profile->get_sae()) {
+ Config->set_edit_mode (Lock);
+ } else {
+ Config->set_edit_mode (Splice);
+ }
break;
case Splice:
Config->set_edit_mode (Lock);
@@ -3911,12 +3999,23 @@ Editor::pane_allocation_handler (Allocation &alloc, Paned* which)
static int32_t done;
XMLNode* geometry;
- if ((geometry = find_named_node (*node, "geometry")) == 0) {
- width = default_width;
- height = default_height;
- } else {
- width = atoi(geometry->property("x-size")->value());
- height = atoi(geometry->property("y-size")->value());
+ width = default_width;
+ height = default_height;
+
+ if ((geometry = find_named_node (*node, "geometry")) != 0) {
+
+ if ((prop = geometry->property ("x_size")) == 0) {
+ prop = geometry->property ("x-size");
+ }
+ if (prop) {
+ width = atoi (prop->value());
+ }
+ if ((prop = geometry->property ("y_size")) == 0) {
+ prop = geometry->property ("y-size");
+ }
+ if (prop) {
+ height = atoi (prop->value());
+ }
}
if (which == static_cast<Paned*> (&edit_pane)) {
@@ -4594,6 +4693,8 @@ Editor::set_frames_per_unit (double fpu)
void
Editor::post_zoom ()
{
+ nframes64_t cef = 0;
+
// convert fpu to frame count
nframes64_t frames = (nframes64_t) floor (frames_per_unit * canvas_width);
@@ -4614,9 +4715,16 @@ Editor::post_zoom ()
}
}
+
ZoomChanged (); /* EMIT_SIGNAL */
reset_hscrollbar_stepping ();
+
+ if (session) {
+ cef = session->current_end_frame() + (current_page_frames() / 10);// Add a little extra so we can see the end marker
+ }
+ horizontal_adjustment.set_upper (cef / frames_per_unit);
+
//reset_scrolling_region ();
if (playhead_cursor) {
@@ -4663,6 +4771,10 @@ Editor::idle_visual_changer ()
VisualChange::Type p = pending_visual_change.pending;
pending_visual_change.pending = (VisualChange::Type) 0;
+#ifdef FIX_THIS_FOR_V3
+ double last_time_origin = horizontal_adjustment.get_value();
+#endif
+
if (p & VisualChange::ZoomLevel) {
set_frames_per_unit (pending_visual_change.frames_per_unit);
@@ -4672,25 +4784,34 @@ Editor::idle_visual_changer ()
update_tempo_based_rulers ();
}
if (p & VisualChange::TimeOrigin) {
+ horizontal_adjustment.set_value (pending_visual_change.time_origin / frames_per_unit);
+ }
- nframes64_t csf=0, cef=0;
- nframes64_t current_time_origin = (nframes64_t) floor (horizontal_adjustment.get_value() * frames_per_unit);
-
- if (session) {
- csf = session->current_start_frame();
- cef = session->current_end_frame();
- }
-
- /* if we seek beyond the current end of the canvas, move the end */
+ nframes64_t csf=0, cef=0;
+ nframes64_t current_time_origin = (nframes64_t) floor (horizontal_adjustment.get_value() * frames_per_unit);
+
+ if (session) {
+ csf = session->current_start_frame();
+ cef = session->current_end_frame();
+ }
+
+ /* if we seek beyond the current end of the canvas, move the end */
- if (current_time_origin != pending_visual_change.time_origin) {
- cef += current_page_frames() / 10; // Add a little extra so we can see the end marker
- horizontal_adjustment.set_upper (cef / frames_per_unit);
- horizontal_adjustment.set_value (pending_visual_change.time_origin / frames_per_unit);
- } else {
- update_fixed_rulers();
- redisplay_tempo (true);
- }
+#ifdef FIX_THIS_FOR_V3
+ if (last_time_origin == horizontal_adjustment.get_value() ) {
+ /* changed signal not emitted */
+ update_fixed_rulers ();
+ redisplay_tempo (true);
+ }
+#endif
+
+ if (current_time_origin != pending_visual_change.time_origin) {
+ cef += current_page_frames() / 10; // Add a little extra so we can see the end marker
+ horizontal_adjustment.set_upper (cef / frames_per_unit);
+ horizontal_adjustment.set_value (pending_visual_change.time_origin / frames_per_unit);
+ } else {
+ update_fixed_rulers();
+ redisplay_tempo (true);
}
//cerr << "Editor::idle_visual_changer () called ha v:l:u:ps:fpu = " << horizontal_adjustment.get_value() << ":" << horizontal_adjustment.get_lower() << ":" << horizontal_adjustment.get_upper() << ":" << horizontal_adjustment.get_page_size() << ":" << frames_per_unit << endl;//DEBUG
pending_visual_change.idle_handler_id = -1;
@@ -5016,6 +5137,9 @@ Editor::first_idle ()
for (TrackViewList::iterator t = track_views.begin(); t != track_views.end(); ++t) {
(*t)->first_idle();
}
+
+ // first idle adds route children (automation tracks), so we need to redisplay here
+ redisplay_route_list();
if (dialog) {
delete dialog;
@@ -5171,7 +5295,7 @@ Editor::add_to_idle_resize (TimeAxisView* view, uint32_t h)
{
if (resize_idle_id < 0) {
resize_idle_id = g_idle_add (_idle_resizer, this);
- }
+ }
resize_idle_target = h;
@@ -5189,6 +5313,7 @@ Editor::idle_resize ()
(*i)->idle_resize (resize_idle_target);
}
pending_resizes.clear();
+ flush_canvas ();
resize_idle_id = -1;
return false;
}
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index 0fb988bafd..2b421163e4 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -323,6 +323,7 @@ class Editor : public PublicEditor
void toggle_measure_visibility ();
void toggle_logo_visibility ();
+ double get_physical_screen_width () const { return physical_screen_width; };
double physical_screen_width;
double physical_screen_height;
@@ -342,7 +343,6 @@ class Editor : public PublicEditor
void toggle_region_fades_visible ();
void toggle_selected_region_fades (int dir);
void update_region_fade_visibility ();
-
void toggle_auto_xfade ();
void toggle_xfades_active ();
void toggle_xfade_visibility ();
@@ -649,6 +649,13 @@ class Editor : public PublicEditor
ArdourCanvas::Group* cd_marker_bar_group;
/** The group containing all items that require horizontal scrolling. */
+ ArdourCanvas::Group* _background_group;
+ /*
+ The _master_group is the group containing all items
+ that require horizontal scrolling..
+ It is primarily used to separate canvas items
+ that require horizontal scrolling from those that do not.
+ */
ArdourCanvas::Group* _master_group;
/* The group containing all trackviews. Only scrolled vertically. */
@@ -779,6 +786,7 @@ class Editor : public PublicEditor
static const double timebar_height;
guint32 visible_timebars;
gdouble canvas_timebars_vsize;
+ gdouble get_canvas_timebars_vsize () const { return canvas_timebars_vsize; }
Gtk::Menu *editor_ruler_menu;
ArdourCanvas::SimpleRect* tempo_bar;
@@ -899,6 +907,8 @@ class Editor : public PublicEditor
sigc::connection control_scroll_connection;
gdouble get_trackview_group_vertical_offset () const { return vertical_adjustment.get_value () - canvas_timebars_vsize;}
+
+ ArdourCanvas::Group* get_background_group () const { return _background_group; }
ArdourCanvas::Group* get_trackview_group () const { return _trackview_group; }
double last_trackview_group_vertical_offset;
void tie_vertical_scrolling ();
@@ -1138,6 +1148,7 @@ class Editor : public PublicEditor
void toggle_region_mute ();
void toggle_region_lock ();
void toggle_region_opaque ();
+ void toggle_record_enable ();
void set_region_lock_style (ARDOUR::Region::PositionLockStyle);
void raise_region ();
void raise_region_to_top ();
@@ -1248,16 +1259,14 @@ class Editor : public PublicEditor
void bring_in_external_audio (Editing::ImportMode mode, nframes64_t& pos);
- void _do_import (vector<Glib::ustring> paths, Editing::ImportDisposition, Editing::ImportMode mode, ARDOUR::SrcQuality, nframes64_t&);
+ bool idle_drop_paths (std::vector<Glib::ustring> paths, nframes64_t frame, double ypos);
+ void drop_paths_part_two (const std::vector<Glib::ustring>& paths, nframes64_t frame, double ypos);
+
void do_import (vector<Glib::ustring> paths, Editing::ImportDisposition, Editing::ImportMode mode, ARDOUR::SrcQuality, nframes64_t&);
- bool idle_do_import (vector<Glib::ustring> paths, Editing::ImportDisposition, Editing::ImportMode mode, ARDOUR::SrcQuality, nframes64_t&);
-
- void _do_embed (vector<Glib::ustring> paths, Editing::ImportDisposition, Editing::ImportMode mode, nframes64_t&);
void do_embed (vector<Glib::ustring> paths, Editing::ImportDisposition, Editing::ImportMode mode, nframes64_t&);
- bool idle_do_embed (vector<Glib::ustring> paths, Editing::ImportDisposition, Editing::ImportMode mode, nframes64_t&);
int import_sndfiles (vector<Glib::ustring> paths, Editing::ImportMode mode, ARDOUR::SrcQuality, nframes64_t& pos,
- int target_regions, int target_tracks, boost::shared_ptr<ARDOUR::Track>&, bool);
+ int target_regions, int target_tracks, boost::shared_ptr<ARDOUR::Track>, bool, uint32_t total);
int embed_sndfiles (vector<Glib::ustring> paths, bool multiple_files, bool& check_sample_rate, Editing::ImportMode mode,
nframes64_t& pos, int target_regions, int target_tracks, boost::shared_ptr<ARDOUR::Track>&);
@@ -1286,10 +1295,20 @@ class Editor : public PublicEditor
/* import specific info */
- ARDOUR::Session::import_status import_status;
+ struct EditorImportStatus : public ARDOUR::Session::import_status {
+ Editing::ImportMode mode;
+ nframes64_t pos;
+ int target_tracks;
+ int target_regions;
+ boost::shared_ptr<ARDOUR::Track> track;
+ bool replace;
+ };
+
+ EditorImportStatus import_status;
gint import_progress_timeout (void *);
static void *_import_thread (void *);
void* import_thread ();
+ void finish_import ();
/* to support this ... */
@@ -1338,6 +1357,7 @@ class Editor : public PublicEditor
void add_location_mark (nframes64_t where);
void add_location_from_audio_region ();
+ void add_locations_from_audio_region ();
void add_location_from_selection ();
void set_loop_from_selection (bool play);
void set_punch_from_selection ();
@@ -1382,6 +1402,7 @@ class Editor : public PublicEditor
double snap_threshold;
void handle_gui_changes (const string &, void *);
+ bool ignore_gui_changes;
void hide_all_tracks (bool with_select);
@@ -1397,6 +1418,8 @@ class Editor : public PublicEditor
Gtk::Menu fade_context_menu;
void popup_fade_context_menu (int, int, ArdourCanvas::Item*, ItemType);
+ void region_gain_motion_callback (ArdourCanvas::Item*, GdkEvent*);
+
void start_fade_in_grab (ArdourCanvas::Item*, GdkEvent*);
void start_fade_out_grab (ArdourCanvas::Item*, GdkEvent*);
void fade_in_drag_motion_callback (ArdourCanvas::Item*, GdkEvent*);
@@ -1428,6 +1451,7 @@ class Editor : public PublicEditor
void cursor_drag_motion_callback (ArdourCanvas::Item*, GdkEvent*);
void cursor_drag_finished_callback (ArdourCanvas::Item*, GdkEvent*);
+ void cursor_drag_finished_ensure_locate_callback (ArdourCanvas::Item*, GdkEvent*);
void marker_drag_motion_callback (ArdourCanvas::Item*, GdkEvent*);
void marker_drag_finished_callback (ArdourCanvas::Item*, GdkEvent*);
void control_point_drag_motion_callback (ArdourCanvas::Item*, GdkEvent*);
@@ -1448,6 +1472,7 @@ class Editor : public PublicEditor
void start_region_brush_grab (ArdourCanvas::Item*, GdkEvent*);
void start_selection_grab (ArdourCanvas::Item*, GdkEvent*);
void start_cursor_grab (ArdourCanvas::Item*, GdkEvent*);
+ void start_cursor_grab_no_stop (ArdourCanvas::Item*, GdkEvent*);
void start_marker_grab (ArdourCanvas::Item*, GdkEvent*);
void start_control_point_grab (ArdourCanvas::Item*, GdkEvent*);
void start_line_grab_from_regionview (ArdourCanvas::Item*, GdkEvent*);
@@ -1784,7 +1809,9 @@ public:
ArdourCanvas::SimpleRect* range_marker_drag_rect;
void update_marker_drag_item (ARDOUR::Location *);
-
+#ifdef GTKOSX
+ ArdourCanvas::SimpleRect *bogus_background_rect;
+#endif
ArdourCanvas::SimpleRect *transport_bar_range_rect;
ArdourCanvas::SimpleRect *transport_bar_preroll_rect;
ArdourCanvas::SimpleRect *transport_bar_postroll_rect;
@@ -1996,7 +2023,6 @@ public:
guint info,
guint time);
-
void drop_paths (const Glib::RefPtr<Gdk::DragContext>& context,
gint x,
gint y,
@@ -2109,6 +2135,7 @@ public:
Gtk::ComboBoxText stretch_opts_selector;
Gtk::Label stretch_opts_label;
Gtk::ToggleButton precise_button;
+ Gtk::ToggleButton preserve_formants_button;
Gtk::HBox opts_box;
Gtk::Button* cancel_button;
@@ -2151,7 +2178,9 @@ public:
void detach_tearoff (Gtk::Box* b, Gtk::Window* w);
void reattach_tearoff (Gtk::Box* b, Gtk::Window* w, int32_t n);
-
+#ifdef GTKOSX
+ void ensure_all_elements_drawn ();
+#endif
/* nudging tracks */
void nudge_track (bool use_edit_point, bool forwards);
@@ -2250,6 +2279,7 @@ public:
bool entered_track_canvas (GdkEventCrossing*);
void set_entered_track (TimeAxisView*);
void set_entered_regionview (RegionView*);
+ void ensure_track_visible (TimeAxisView*);
gint left_automation_track ();
bool _new_regionviews_show_envelope;
diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc
index a8f3bf3028..75d4b76668 100644
--- a/gtk2_ardour/editor_actions.cc
+++ b/gtk2_ardour/editor_actions.cc
@@ -57,6 +57,8 @@ Editor::register_actions ()
ActionManager::register_action (editor_actions, X_("LatchMenu"), _("Latch"));
ActionManager::register_action (editor_actions, X_("Layering"), _("Layering"));
ActionManager::register_action (editor_actions, X_("Link"), _("Link"));
+ ActionManager::register_action (editor_actions, X_("ZoomFocusMenu"), _("Zoom Focus"));
+ ActionManager::register_action (editor_actions, X_("KeyMouseActions"), _("Key Mouse"));
ActionManager::register_action (editor_actions, X_("LocateToMarker"), _("Locate To Markers"));
ActionManager::register_action (editor_actions, X_("MarkerMenu"), _("Markers"));
ActionManager::register_action (editor_actions, X_("MeterFalloff"), _("Meter falloff"));
@@ -207,6 +209,9 @@ Editor::register_actions ()
act = ActionManager::register_action (editor_actions, "select-prev-route", _("Select Previous Track/Bus"), mem_fun(*this, &Editor::select_prev_route));
ActionManager::session_sensitive_actions.push_back (act);
+ act = ActionManager::register_action (editor_actions, "track-record-enable-toggle", _("Toggle Record Enable"), mem_fun(*this, &Editor::toggle_record_enable));
+ ActionManager::session_sensitive_actions.push_back (act);
+
act = ActionManager::register_action (editor_actions, "save-visual-state-1", _("Save View 1"), bind (mem_fun (*this, &Editor::start_visual_state_op), 0));
ActionManager::session_sensitive_actions.push_back (act);
@@ -378,6 +383,7 @@ Editor::register_actions ()
ActionManager::region_selection_sensitive_actions.push_back (act);
act = ActionManager::register_action (editor_actions, "loop-region", _("Loop Region"), bind (mem_fun(*this, &Editor::set_loop_from_region), true));
ActionManager::session_sensitive_actions.push_back (act);
+ ActionManager::region_selection_sensitive_actions.push_back (act);
act = ActionManager::register_action (editor_actions, "set-punch-from-edit-range", _("Set Punch From Edit Range"), mem_fun(*this, &Editor::set_punch_from_edit_range));
ActionManager::session_sensitive_actions.push_back (act);
act = ActionManager::register_action (editor_actions, "set-punch-from-region", _("Set Punch From Region"), mem_fun(*this, &Editor::set_punch_from_region));
@@ -389,6 +395,12 @@ Editor::register_actions ()
act = ActionManager::register_action (editor_actions, "toggle-opaque-region", _("Toggle Opaque"), mem_fun(*this, &Editor::toggle_region_opaque));
ActionManager::session_sensitive_actions.push_back (act);
ActionManager::region_selection_sensitive_actions.push_back (act);
+ act = ActionManager::register_action (editor_actions, "add-range-marker-from-region", _("Add 1 Range Marker"), mem_fun(*this, &Editor::add_location_from_audio_region));
+ ActionManager::session_sensitive_actions.push_back (act);
+ ActionManager::region_selection_sensitive_actions.push_back (act);
+ act = ActionManager::register_action (editor_actions, "add-range-markers-from-region", _("Add Range Marker(s)"), mem_fun(*this, &Editor::add_locations_from_audio_region));
+ ActionManager::session_sensitive_actions.push_back (act);
+ ActionManager::region_selection_sensitive_actions.push_back (act);
act = ActionManager::register_action (editor_actions, "set-fade-in-length", _("Set Fade In Length"), bind (mem_fun(*this, &Editor::set_fade_length), true));
ActionManager::session_sensitive_actions.push_back (act);
@@ -588,7 +600,11 @@ Editor::register_actions ()
act = ActionManager::register_action (editor_actions, "toggle-track-active", _("Toggle Active"), (mem_fun(*this, &Editor::toggle_tracks_active)));
ActionManager::session_sensitive_actions.push_back (act);
ActionManager::track_selection_sensitive_actions.push_back (act);
- act = ActionManager::register_action (editor_actions, "remove-track", _("Remove"), (mem_fun(*this, &Editor::remove_tracks)));
+ if (Profile->get_sae()) {
+ act = ActionManager::register_action (editor_actions, "remove-track", _("Delete"), (mem_fun(*this, &Editor::remove_tracks)));
+ } else {
+ act = ActionManager::register_action (editor_actions, "remove-track", _("Remove"), (mem_fun(*this, &Editor::remove_tracks)));
+ }
ActionManager::session_sensitive_actions.push_back (act);
ActionManager::track_selection_sensitive_actions.push_back (act);
@@ -640,6 +656,8 @@ Editor::register_actions ()
ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-timefx", _("Timefx Tool"), bind (mem_fun(*this, &Editor::set_mouse_mode), Editing::MouseTimeFX, false));
ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-note", _("Note Tool"), bind (mem_fun(*this, &Editor::set_mouse_mode), Editing::MouseNote, false));
+ ActionManager::register_action (editor_actions, "step-mouse-mode", _("Step Mouse Mode"), bind (mem_fun(*this, &Editor::step_mouse_mode), true));
+
RadioAction::Group edit_point_group;
ActionManager::register_radio_action (editor_actions, edit_point_group, X_("edit-at-playhead"), _("Playhead"), (bind (mem_fun(*this, &Editor::edit_point_chosen), Editing::EditAtPlayhead)));
ActionManager::register_radio_action (editor_actions, edit_point_group, X_("edit-at-mouse"), _("Mouse"), (bind (mem_fun(*this, &Editor::edit_point_chosen), Editing::EditAtPlayhead)));
@@ -647,8 +665,9 @@ Editor::register_actions ()
ActionManager::register_action (editor_actions, "cycle-edit-point", _("Change edit point"), bind (mem_fun (*this, &Editor::cycle_edit_point), false));
ActionManager::register_action (editor_actions, "cycle-edit-point-with-marker", _("Change edit point (w/Marker)"), bind (mem_fun (*this, &Editor::cycle_edit_point), true));
-
- ActionManager::register_action (editor_actions, "set-edit-splice", _("Splice"), bind (mem_fun (*this, &Editor::set_edit_mode), Splice));
+ if (!Profile->get_sae()) {
+ ActionManager::register_action (editor_actions, "set-edit-splice", _("Splice"), bind (mem_fun (*this, &Editor::set_edit_mode), Splice));
+ }
ActionManager::register_action (editor_actions, "set-edit-slide", _("Slide"), bind (mem_fun (*this, &Editor::set_edit_mode), Slide));
ActionManager::register_action (editor_actions, "set-edit-lock", _("Lock"), bind (mem_fun (*this, &Editor::set_edit_mode), Lock));
ActionManager::register_action (editor_actions, "toggle-edit-mode", _("Toggle Edit Mode"), mem_fun (*this, &Editor::cycle_edit_mode));
@@ -706,12 +725,16 @@ Editor::register_actions ()
ruler_meter_action->set_active (true);
ruler_tempo_action->set_active (true);
ruler_marker_action->set_active (true);
- ruler_range_action->set_active (true);
+ ruler_range_action->set_active (false);
+ ruler_loop_punch_action->set_active (true);
+ ruler_loop_punch_action->set_active (true);
if (Profile->get_sae()) {
+ ruler_bbt_action->set_active (true);
ruler_cd_marker_action->set_active (false);
ruler_timecode_action->set_active (false);
ruler_minsec_action->set_active (true);
} else {
+ ruler_bbt_action->set_active (false);
ruler_cd_marker_action->set_active (true);
ruler_timecode_action->set_active (true);
ruler_minsec_action->set_active (false);
diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc
index a12eb0857f..d6246f15fc 100644
--- a/gtk2_ardour/editor_audio_import.cc
+++ b/gtk2_ardour/editor_audio_import.cc
@@ -57,6 +57,7 @@
#include "midi_time_axis.h"
#include "session_import_dialog.h"
#include "utils.h"
+#include "gui_thread.h"
#include "i18n.h"
@@ -217,7 +218,6 @@ Editor::check_whether_and_how_to_import(string path, bool all_or_nothing)
for (SourceMap::iterator i = all_sources.begin(); i != all_sources.end(); ++i) {
string tmp (Glib::path_get_basename (i->second->path()));
-
if (tmp == wave_name) {
wave_name_exists = true;
break;
@@ -226,7 +226,6 @@ Editor::check_whether_and_how_to_import(string path, bool all_or_nothing)
int function = 1;
-
if (wave_name_exists) {
string message;
if (all_or_nothing) {
@@ -249,7 +248,6 @@ Editor::check_whether_and_how_to_import(string path, bool all_or_nothing)
dialog.add_button("Cancel", 2);
}
-
//dialog.add_button("Skip all", 4); // All or rest?
dialog.show();
@@ -322,29 +320,11 @@ Editor::get_nth_selected_midi_track (int nth) const
return mtv->midi_track();
}
-bool
-Editor::idle_do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mode, SrcQuality quality, nframes64_t& pos)
-{
- _do_import (paths, chns, mode, quality, pos);
- return false;
-}
-
void
Editor::do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mode, SrcQuality quality, nframes64_t& pos)
{
-#ifdef GTKOSX
- Glib::signal_idle().connect (bind (mem_fun (*this, &Editor::idle_do_import), paths, chns, mode, quality, pos));
-#else
- _do_import (paths, chns, mode, quality, pos);
-#endif
-}
-
-void
-Editor::_do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mode, SrcQuality quality, nframes64_t& pos)
-{
boost::shared_ptr<Track> track;
vector<ustring> to_import;
- bool ok = true;
int nth = 0;
if (interthread_progress_window == 0) {
@@ -352,11 +332,13 @@ Editor::_do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mo
}
if (chns == Editing::ImportMergeFiles) {
+
/* create 1 region from all paths, add to 1 track,
ignore "track"
*/
+
bool cancel = false;
- for (vector<ustring>::iterator a = paths.begin(); a != paths.end() && ok; ++a) {
+ for (vector<ustring>::iterator a = paths.begin(); a != paths.end(); ++a) {
int check = check_whether_and_how_to_import(*a, false);
if (check == 2) {
cancel = true;
@@ -365,20 +347,21 @@ Editor::_do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mo
}
if (!cancel) {
- if (import_sndfiles (paths, mode, quality, pos, 1, 1, track, false)) {
- ok = false;
- }
+ import_sndfiles (paths, mode, quality, pos, 1, 1, track, false, paths.size());
}
} else {
+
bool replace = false;
+ bool ok = true;
+ vector<ustring>::size_type total = paths.size();
for (vector<ustring>::iterator a = paths.begin(); a != paths.end() && ok; ++a) {
int check = check_whether_and_how_to_import(*a, true);
if (check == 2 ) {
- // skip
+ // user said skip
continue;
}
@@ -390,82 +373,49 @@ Editor::_do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mo
}
- switch (chns) {
- case Editing::ImportDistinctFiles:
-
- to_import.clear ();
- to_import.push_back (*a);
-
- if (mode == Editing::ImportToTrack) {
- track = get_nth_selected_audio_track (nth++);
- }
-
- if (import_sndfiles (to_import, mode, quality, pos, 1, -1, track, replace)) {
- ok = false;
- }
-
- break;
- case Editing::ImportDistinctChannels:
-
- to_import.clear ();
- to_import.push_back (*a);
-
- if (import_sndfiles (to_import, mode, quality, pos, -1, -1, track, replace)) {
- ok = false;
- }
-
- break;
-
- case Editing::ImportSerializeFiles:
-
- to_import.clear ();
- to_import.push_back (*a);
-
- /* create 1 region from this path, add to 1 track,
- reuse "track" across paths
- */
-
- if (import_sndfiles (to_import, mode, quality, pos, 1, 1, track, replace)) {
- ok = false;
- }
+ switch (chns) {
+ case Editing::ImportDistinctFiles:
+
+ to_import.clear ();
+ to_import.push_back (*a);
+
+ if (mode == Editing::ImportToTrack) {
+ track = get_nth_selected_audio_track (nth++);
+ }
+
+ ok = (import_sndfiles (to_import, mode, quality, pos, 1, -1, track, replace, total) == 0);
+ break;
+
+ case Editing::ImportDistinctChannels:
+
+ to_import.clear ();
+ to_import.push_back (*a);
+
+ ok = (import_sndfiles (to_import, mode, quality, pos, -1, -1, track, replace, total) == 0);
+ break;
+
+ case Editing::ImportSerializeFiles:
+
+ to_import.clear ();
+ to_import.push_back (*a);
- break;
+ ok = (import_sndfiles (to_import, mode, quality, pos, 1, 1, track, replace, total) == 0);
+ break;
- case Editing::ImportMergeFiles:
- // Not entered
- break;
+ case Editing::ImportMergeFiles:
+ // Not entered, handled in earlier if() branch
+ break;
}
}
-
- if (ok) {
- session->save_state ("");
- }
-
- interthread_progress_window->hide_all ();
}
-}
-bool
-Editor::idle_do_embed (vector<ustring> paths, ImportDisposition chns, ImportMode mode, nframes64_t& pos)
-{
- _do_embed (paths, chns, mode, pos);
- return false;
+ interthread_progress_window->hide_all ();
}
void
Editor::do_embed (vector<ustring> paths, ImportDisposition chns, ImportMode mode, nframes64_t& pos)
{
-#ifdef GTKOSX
- Glib::signal_idle().connect (bind (mem_fun (*this, &Editor::idle_do_embed), paths, chns, mode, pos));
-#else
- _do_embed (paths, chns, mode, pos);
-#endif
-}
-
-void
-Editor::_do_embed (vector<ustring> paths, ImportDisposition chns, ImportMode mode, nframes64_t& pos)
-{
boost::shared_ptr<Track> track;
bool check_sample_rate = true;
bool ok = false;
@@ -531,7 +481,7 @@ Editor::_do_embed (vector<ustring> paths, ImportDisposition chns, ImportMode mod
int
Editor::import_sndfiles (vector<ustring> paths, ImportMode mode, SrcQuality quality, nframes64_t& pos,
- int target_regions, int target_tracks, boost::shared_ptr<Track>& track, bool replace)
+ int target_regions, int target_tracks, boost::shared_ptr<Track> track, bool replace, uint32_t total)
{
WindowTitle title = string_compose (_("importing %1"), paths.front());
@@ -539,7 +489,7 @@ Editor::import_sndfiles (vector<ustring> paths, ImportMode mode, SrcQuality qual
interthread_progress_window->set_position (Gtk::WIN_POS_MOUSE);
interthread_progress_bar.set_fraction (0.0f);
interthread_cancel_label.set_text (_("Cancel Import"));
- current_interthread_info = &import_status;
+ current_interthread_info = &import_status;
import_status.paths = paths;
import_status.done = false;
@@ -548,42 +498,53 @@ Editor::import_sndfiles (vector<ustring> paths, ImportMode mode, SrcQuality qual
import_status.done = 0.0;
import_status.quality = quality;
import_status.replace_existing_source = replace;
-
+ import_status.total = total;
+
+ import_status.mode = mode;
+ import_status.pos = pos;
+ import_status.target_tracks = target_tracks;
+ import_status.target_regions = target_regions;
+ import_status.track = track;
+ import_status.replace = replace;
interthread_progress_connection = Glib::signal_timeout().connect
(bind (mem_fun(*this, &Editor::import_progress_timeout), (gpointer) 0), 500);
track_canvas->get_window()->set_cursor (Gdk::Cursor (Gdk::WATCH));
- ARDOUR_UI::instance()->flush_pending ();
+ gdk_flush ();
/* start import thread for this spec. this will ultimately call Session::import_audiofiles()
- and if successful will add the file(s) as a region to the session region list.
+ which, if successful, will add the files as regions to the region list. its up to us
+ (the GUI) to direct additional steps after that.
*/
-
+
pthread_create_and_store ("import", &import_status.thread, 0, _import_thread, this);
pthread_detach (import_status.thread);
- while (!(import_status.done || import_status.cancel)) {
+ while (!import_status.done && !import_status.cancel) {
gtk_main_iteration ();
}
interthread_progress_window->hide ();
-
import_status.done = true;
interthread_progress_connection.disconnect ();
- /* import thread finished - see if we should build a new track */
-
- boost::shared_ptr<AudioRegion> r;
-
- if (import_status.cancel || import_status.sources.empty()) {
- goto out;
+ if (!import_status.cancel && !import_status.sources.empty()) {
+ if (add_sources (import_status.paths,
+ import_status.sources,
+ import_status.pos,
+ import_status.mode,
+ import_status.target_regions,
+ import_status.target_tracks,
+ import_status.track, false) == 0) {
+ session->save_state ("");
+ }
+
+ /* update position from results */
+
+ pos = import_status.pos;
}
- if (add_sources (paths, import_status.sources, pos, mode, target_regions, target_tracks, track, false) == 0) {
- session->save_state ("");
- }
- out:
track_canvas->get_window()->set_cursor (*current_canvas_cursor);
return 0;
}
@@ -600,7 +561,7 @@ Editor::embed_sndfiles (vector<Glib::ustring> paths, bool multifile,
int ret = 0;
track_canvas->get_window()->set_cursor (Gdk::Cursor (Gdk::WATCH));
- ARDOUR_UI::instance()->flush_pending ();
+ gdk_flush ();
for (vector<Glib::ustring>::iterator p = paths.begin(); p != paths.end(); ++p) {
@@ -710,8 +671,6 @@ Editor::embed_sndfiles (vector<Glib::ustring> paths, bool multifile,
if ((s = session->source_by_path_and_channel (path, n)) == 0) {
- cerr << "add embed/import source with defer_peaks = true\n";
-
source = boost::dynamic_pointer_cast<AudioFileSource> (SourceFactory::createReadable
(DataType::AUDIO, *session, path, n,
(mode == ImportAsTapeTrack ?
@@ -775,7 +734,7 @@ Editor::add_sources (vector<Glib::ustring> paths, SourceList& sources, nframes64
regions.push_back (RegionFactory::create (sources, 0, sources[0]->length(), region_name, 0,
Region::Flag (Region::DefaultFlags|Region::WholeFile|Region::External)));
- } else if (target_regions == -1) {
+ } else if (target_regions == -1 || target_regions > 1) {
/* take each source and create a region for each one */
@@ -922,7 +881,7 @@ Editor::finish_bringing_in_material (boost::shared_ptr<Region> region, uint32_t
void *
Editor::_import_thread (void *arg)
{
- PBD::ThreadCreated (pthread_self(), X_("Import"));
+ PBD::notify_gui_about_thread_creation (pthread_self(), X_("Import"));
Editor *ed = (Editor *) arg;
return ed->import_thread ();
diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc
index f0a016d039..be004644f9 100644
--- a/gtk2_ardour/editor_canvas.cc
+++ b/gtk2_ardour/editor_canvas.cc
@@ -18,6 +18,7 @@
*/
#include <libgnomecanvasmm/init.h>
+#include <libgnomecanvasmm/pixbuf.h>
#include <jack/types.h>
#include <gtkmm2ext/utils.h>
@@ -29,9 +30,11 @@
#include "waveview.h"
#include "simplerect.h"
#include "simpleline.h"
+#include "imageframe.h"
#include "waveview_p.h"
#include "simplerect_p.h"
#include "simpleline_p.h"
+#include "imageframe_p.h"
#include "canvas_impl.h"
#include "editing.h"
#include "rgb_macros.h"
@@ -39,11 +42,6 @@
#include "time_axis_view.h"
#include "audio_time_axis.h"
-#ifdef WITH_CMT
-#include "imageframe.h"
-#include "imageframe_p.h"
-#endif
-
#include "i18n.h"
using namespace std;
@@ -65,10 +63,7 @@ extern "C"
GType gnome_canvas_simpleline_get_type(void);
GType gnome_canvas_simplerect_get_type(void);
GType gnome_canvas_waveview_get_type(void);
-
-#ifdef WITH_CMT
GType gnome_canvas_imageframe_get_type(void);
-#endif
}
@@ -79,23 +74,16 @@ static void ardour_canvas_type_init()
Glib::wrap_register(gnome_canvas_simpleline_get_type(), &Gnome::Canvas::SimpleLine_Class::wrap_new);
Glib::wrap_register(gnome_canvas_simplerect_get_type(), &Gnome::Canvas::SimpleRect_Class::wrap_new);
Glib::wrap_register(gnome_canvas_waveview_get_type(), &Gnome::Canvas::WaveView_Class::wrap_new);
-
-#ifdef WITH_CMT
- Glib::wrap_register(gnome_canvas_imageframe_get_type(), &Gnome::Canvas::ImageFrame_Class::wrap_new);
-#endif
+ // Glib::wrap_register(gnome_canvas_imageframe_get_type(), &Gnome::Canvas::ImageFrame_Class::wrap_new);
// Register the gtkmm gtypes:
(void) Gnome::Canvas::WaveView::get_type();
(void) Gnome::Canvas::SimpleLine::get_type();
(void) Gnome::Canvas::SimpleRect::get_type();
-
-#ifdef WITH_CMT
(void) Gnome::Canvas::ImageFrame::get_type();
-#endif
}
-
void
Editor::initialize_canvas ()
{
@@ -114,7 +102,7 @@ Editor::initialize_canvas ()
track_canvas->set_dither (Gdk::RGB_DITHER_NONE);
Glib::RefPtr<Gdk::Screen> screen = get_screen();
-
+
if (!screen) {
screen = Gdk::Screen::get_default();
}
@@ -128,10 +116,12 @@ Editor::initialize_canvas ()
verbose_canvas_cursor = new ArdourCanvas::Text (*track_canvas->root());
verbose_canvas_cursor->property_font_desc() = *font;
verbose_canvas_cursor->property_anchor() = ANCHOR_NW;
-
- delete font;
+ delete font;
+
verbose_cursor_visible = false;
+
+ /* on the bottom, an image */
if (Profile->get_sae()) {
Image img (::get_icon (X_("saelogo")));
@@ -143,58 +133,92 @@ Editor::initialize_canvas ()
logo_item->show ();
}
- _master_group = new ArdourCanvas::Group (*track_canvas->root(), 0.0, 0.0);
+ /* a group to hold time (measure) lines */
+ time_line_group = new ArdourCanvas::Group (*track_canvas->root());
- transport_loop_range_rect = new ArdourCanvas::SimpleRect (*_master_group, 0.0, 0.0, 0.0, physical_screen_width);
+#ifdef GTKOSX
+ /*XXX please don't laugh. this actually improves canvas performance on osx */
+ bogus_background_rect = new ArdourCanvas::SimpleRect (*time_line_group, 0.0, 0.0, max_canvas_coordinate/3, physical_screen_height);
+ bogus_background_rect->property_outline_pixels() = 0;
+#endif
+ transport_loop_range_rect = new ArdourCanvas::SimpleRect (*time_line_group, 0.0, 0.0, 0.0, physical_screen_height);
transport_loop_range_rect->property_outline_pixels() = 1;
transport_loop_range_rect->hide();
- transport_punch_range_rect = new ArdourCanvas::SimpleRect (*_master_group, 0.0, 0.0, 0.0, physical_screen_width);
+ transport_punch_range_rect = new ArdourCanvas::SimpleRect (*time_line_group, 0.0, 0.0, 0.0, physical_screen_height);
transport_punch_range_rect->property_outline_pixels() = 0;
transport_punch_range_rect->hide();
- /* a group to hold time (measure) lines */
- time_line_group = new ArdourCanvas::Group (*_master_group, 0.0, 0.0);
+ _background_group = new ArdourCanvas::Group (*track_canvas->root());
+ _master_group = new ArdourCanvas::Group (*track_canvas->root());
- range_marker_drag_rect = new ArdourCanvas::SimpleRect (*time_line_group, 0.0, 0.0, 0.0, physical_screen_width);
+ range_marker_drag_rect = new ArdourCanvas::SimpleRect (*time_line_group, 0.0, 0.0, 0.0, physical_screen_height);
range_marker_drag_rect->hide ();
- _trackview_group = new ArdourCanvas::Group (*_master_group, 0.0, 0.0);
- _region_motion_group = new ArdourCanvas::Group (*_trackview_group, 0.0, 0.0);
-
- /* el barrio */
+ _trackview_group = new ArdourCanvas::Group (*_master_group);
+ _region_motion_group = new ArdourCanvas::Group (*_trackview_group);
- meter_bar_group = new ArdourCanvas::Group (*track_canvas->root());
- meter_bar = new ArdourCanvas::SimpleRect (*meter_bar_group, 0.0, 0.0, physical_screen_width, timebar_height-1.0);
+ meter_bar_group = new ArdourCanvas::Group (*track_canvas->root ());
+ if (Profile->get_sae()) {
+ meter_bar = new ArdourCanvas::SimpleRect (*meter_bar_group, 0.0, 0.0, physical_screen_width, timebar_height - 1);
+ meter_bar->property_outline_pixels() = 1;
+ } else {
+ meter_bar = new ArdourCanvas::SimpleRect (*meter_bar_group, 0.0, 0.0, physical_screen_width, timebar_height);
+ meter_bar->property_outline_pixels() = 0;
+ }
meter_bar->property_outline_what() = (0x1 | 0x8);
- meter_bar->property_outline_pixels() = 1;
- tempo_bar_group = new ArdourCanvas::Group (*track_canvas->root());
- tempo_bar = new ArdourCanvas::SimpleRect (*tempo_bar_group, 0.0, 0.0, physical_screen_width, (timebar_height-1.0));
+ tempo_bar_group = new ArdourCanvas::Group (*track_canvas->root ());
+ if (Profile->get_sae()) {
+ tempo_bar = new ArdourCanvas::SimpleRect (*tempo_bar_group, 0.0, 0.0, physical_screen_width, (timebar_height - 1));
+ tempo_bar->property_outline_pixels() = 1;
+ } else {
+ tempo_bar = new ArdourCanvas::SimpleRect (*tempo_bar_group, 0.0, 0.0, physical_screen_width, (timebar_height));
+ tempo_bar->property_outline_pixels() = 0;
+ }
tempo_bar->property_outline_what() = (0x1 | 0x8);
- tempo_bar->property_outline_pixels() = 1;
- range_marker_bar_group = new ArdourCanvas::Group (*track_canvas->root());
- range_marker_bar = new ArdourCanvas::SimpleRect (*range_marker_bar_group, 0.0, 0.0, physical_screen_width, (timebar_height-1.0));
+ range_marker_bar_group = new ArdourCanvas::Group (*track_canvas->root ());
+ if (Profile->get_sae()) {
+ range_marker_bar = new ArdourCanvas::SimpleRect (*range_marker_bar_group, 0.0, 0.0, physical_screen_width, (timebar_height - 1));
+ range_marker_bar->property_outline_pixels() = 1;
+ } else {
+ range_marker_bar = new ArdourCanvas::SimpleRect (*range_marker_bar_group, 0.0, 0.0, physical_screen_width, (timebar_height));
+ range_marker_bar->property_outline_pixels() = 0;
+ }
range_marker_bar->property_outline_what() = (0x1 | 0x8);
- range_marker_bar->property_outline_pixels() = 1;
- transport_marker_bar_group = new ArdourCanvas::Group (*track_canvas->root());
- transport_marker_bar = new ArdourCanvas::SimpleRect (*transport_marker_bar_group, 0.0, 0.0, physical_screen_width, (timebar_height-1.0));
+ transport_marker_bar_group = new ArdourCanvas::Group (*track_canvas->root ());
+ if (Profile->get_sae()) {
+ transport_marker_bar = new ArdourCanvas::SimpleRect (*transport_marker_bar_group, 0.0, 0.0, physical_screen_width, (timebar_height - 1));
+ transport_marker_bar->property_outline_pixels() = 1;
+ } else {
+ transport_marker_bar = new ArdourCanvas::SimpleRect (*transport_marker_bar_group, 0.0, 0.0, physical_screen_width, (timebar_height));
+ transport_marker_bar->property_outline_pixels() = 0;
+ }
transport_marker_bar->property_outline_what() = (0x1 | 0x8);
- transport_marker_bar->property_outline_pixels() = 1;
- marker_bar_group = new ArdourCanvas::Group (*track_canvas->root());
- marker_bar = new ArdourCanvas::SimpleRect (*marker_bar_group, 0.0, 0.0, physical_screen_width, (timebar_height-1.0));
+ marker_bar_group = new ArdourCanvas::Group (*track_canvas->root ());
+ if (Profile->get_sae()) {
+ marker_bar = new ArdourCanvas::SimpleRect (*marker_bar_group, 0.0, 0.0, physical_screen_width, (timebar_height - 1));
+ marker_bar->property_outline_pixels() = 1;
+ } else {
+ marker_bar = new ArdourCanvas::SimpleRect (*marker_bar_group, 0.0, 0.0, physical_screen_width, (timebar_height));
+ marker_bar->property_outline_pixels() = 0;
+ }
marker_bar->property_outline_what() = (0x1 | 0x8);
- marker_bar->property_outline_pixels() = 1;
- cd_marker_bar_group = new ArdourCanvas::Group (*track_canvas->root());
- cd_marker_bar = new ArdourCanvas::SimpleRect (*cd_marker_bar_group, 0.0, 0.0, physical_screen_width, (timebar_height-1.0));
+ cd_marker_bar_group = new ArdourCanvas::Group (*track_canvas->root ());
+ if (Profile->get_sae()) {
+ cd_marker_bar = new ArdourCanvas::SimpleRect (*cd_marker_bar_group, 0.0, 0.0, physical_screen_width, (timebar_height - 1));
+ cd_marker_bar->property_outline_pixels() = 1;
+ } else {
+ cd_marker_bar = new ArdourCanvas::SimpleRect (*cd_marker_bar_group, 0.0, 0.0, physical_screen_width, (timebar_height));
+ cd_marker_bar->property_outline_pixels() = 0;
+ }
cd_marker_bar->property_outline_what() = (0x1 | 0x8);
- cd_marker_bar->property_outline_pixels() = 1;
- timebar_group = new ArdourCanvas::Group (*track_canvas->root());
+ timebar_group = new ArdourCanvas::Group (*track_canvas->root(), 0.0, 0.0);
cursor_group = new ArdourCanvas::Group (*track_canvas->root(), 0.0, 0.0);
meter_group = new ArdourCanvas::Group (*timebar_group, 0.0, timebar_height * 5.0);
@@ -205,7 +229,7 @@ Editor::initialize_canvas ()
cd_marker_group = new ArdourCanvas::Group (*timebar_group, 0.0, 0.0);
marker_drag_line_points.push_back(Gnome::Art::Point(0.0, 0.0));
- marker_drag_line_points.push_back(Gnome::Art::Point(0.0, 1.0));
+ marker_drag_line_points.push_back(Gnome::Art::Point(0.0, physical_screen_height));
marker_drag_line = new ArdourCanvas::Line (*timebar_group);
marker_drag_line->property_width_pixels() = 1;
@@ -228,14 +252,14 @@ Editor::initialize_canvas ()
transport_punchin_line->property_x1() = 0.0;
transport_punchin_line->property_y1() = 0.0;
transport_punchin_line->property_x2() = 0.0;
- transport_punchin_line->property_y2() = physical_screen_width;
+ transport_punchin_line->property_y2() = physical_screen_height;
transport_punchin_line->hide ();
- transport_punchout_line = new ArdourCanvas::SimpleLine (*_master_group);
+ transport_punchout_line = new ArdourCanvas::SimpleLine (*_master_group);
transport_punchout_line->property_x1() = 0.0;
transport_punchout_line->property_y1() = 0.0;
transport_punchout_line->property_x2() = 0.0;
- transport_punchout_line->property_y2() = physical_screen_width;
+ transport_punchout_line->property_y2() = physical_screen_height;
transport_punchout_line->hide();
// used to show zoom mode active zooming
@@ -263,7 +287,6 @@ Editor::initialize_canvas ()
if (logo_item) {
logo_item->lower_to_bottom ();
}
-
/* need to handle 4 specific types of events as catch-alls */
track_canvas->signal_scroll_event().connect (mem_fun (*this, &Editor::track_canvas_scroll_event));
@@ -283,7 +306,6 @@ Editor::initialize_canvas ()
// Drag-N-Drop from the region list can generate this target
target_table.push_back (TargetEntry ("regions"));
- target_table.push_back (TargetEntry ("routes"));
target_table.push_back (TargetEntry ("text/plain"));
target_table.push_back (TargetEntry ("text/uri-list"));
@@ -326,17 +348,13 @@ Editor::track_canvas_size_allocated ()
}
full_canvas_height = height + canvas_timebars_vsize;
- } else {
- return true;
}
if (height_changed) {
if (playhead_cursor) {
playhead_cursor->set_length (canvas_height);
}
-
- vertical_adjustment.set_page_size (canvas_height);
-
+
for (MarkerSelection::iterator x = selection->markers.begin(); x != selection->markers.end(); ++x) {
(*x)->set_line_vpos (0, canvas_height);
}
@@ -348,10 +366,8 @@ Editor::track_canvas_size_allocated ()
We're increasing the size of the canvas while the bottom is visible.
We scroll down to keep in step with the controls layout.
*/
- vertical_adjustment.set_value (full_canvas_height - canvas_height + 1);
+ vertical_adjustment.set_value (full_canvas_height - canvas_height);
}
-
-
}
handle_new_duration ();
@@ -360,7 +376,7 @@ Editor::track_canvas_size_allocated ()
redisplay_tempo (false);
Resized (); /* EMIT_SIGNAL */
-
+
return false;
}
@@ -380,7 +396,7 @@ Editor::controls_layout_size_request (Requisition* req)
}
}
- gint height = min ( (gint) pos, (gint) (physical_screen_height - 600));
+ gint height = min ((gint) pos, (gint) (physical_screen_height - 600));
gint width = max (edit_controls_vbox.get_width(), controls_layout.get_width());
/* don't get too big. the fudge factors here are just guesses */
@@ -409,11 +425,13 @@ Editor::controls_layout_size_request (Requisition* req)
if (req->height != height) {
req->height = height;
controls_layout.property_height () = (guint) floor (pos);
+ controls_layout.property_height_request () = height;
}
if (changed) {
controls_layout_size_request_connection = controls_layout.signal_size_request().connect (mem_fun (*this, &Editor::controls_layout_size_request));
}
+ //cerr << "sizes = " << req->width << " " << edit_controls_vbox.get_width() << " " << controls_layout.get_width() << " " << zoom_box.get_width() << " " << time_button_frame.get_width() << endl;//DEBUG
}
bool
@@ -429,56 +447,27 @@ Editor::track_canvas_drag_data_received (const RefPtr<Gdk::DragContext>& context
const SelectionData& data,
guint info, guint time)
{
- cerr << "drop on canvas, target = " << data.get_target() << endl;
-
if (data.get_target() == "regions") {
drop_regions (context, x, y, data, info, time);
- }
- else if(data.get_target() == "routes") {
- drop_routes (context, x, y, data, info, time);
- }
- else {
+ } else {
drop_paths (context, x, y, data, info, time);
}
}
+bool
+Editor::idle_drop_paths (vector<ustring> paths, nframes64_t frame, double ypos)
+{
+ drop_paths_part_two (paths, frame, ypos);
+ return false;
+}
+
void
-Editor::drop_paths (const RefPtr<Gdk::DragContext>& context,
- int x, int y,
- const SelectionData& data,
- guint info, guint time)
+Editor::drop_paths_part_two (const vector<ustring>& paths, nframes64_t frame, double ypos)
{
TimeAxisView* tvp;
- RouteTimeAxisView* tv;
- double cy;
- vector<ustring> paths;
- string spath;
- GdkEvent ev;
- nframes64_t frame;
+ AudioTimeAxisView* tv;
- if (convert_drop_to_paths (paths, context, x, y, data, info, time)) {
- goto out;
- }
-
- /* D-n-D coordinates are window-relative, so convert to "world" coordinates
- */
-
- double wx;
- double wy;
-
- track_canvas->window_to_world (x, y, wx, wy);
- //wx += horizontal_adjustment.get_value();
- //wy += vertical_adjustment.get_value();
-
- ev.type = GDK_BUTTON_RELEASE;
- ev.button.x = wx;
- ev.button.y = wy;
-
- frame = event_frame (&ev, 0, &cy);
-
- snap_to (frame);
-
- if ((tvp = trackview_by_y_position (cy)) == 0) {
+ if ((tvp = trackview_by_y_position (ypos)) == 0) {
/* drop onto canvas background: create new tracks */
@@ -490,58 +479,81 @@ Editor::drop_paths (const RefPtr<Gdk::DragContext>& context,
do_embed (paths, Editing::ImportDistinctFiles, ImportAsTrack, frame);
}
- } else if ((tv = dynamic_cast<RouteTimeAxisView*>(tvp)) != 0) {
+ } else if ((tv = dynamic_cast<AudioTimeAxisView*>(tvp)) != 0) {
/* check that its an audio track, not a bus */
- /* check that its an audio track, not a bus */
-
if (tv->get_diskstream()) {
- /* select the track, then embed */
+ /* select the track, then embed/import */
selection->set (tv);
if (Profile->get_sae() || Config->get_only_copy_imported_files()) {
- do_import (paths, Editing::ImportDistinctFiles, Editing::ImportToTrack, SrcBest, frame);
+ do_import (paths, Editing::ImportSerializeFiles, Editing::ImportToTrack, SrcBest, frame);
} else {
- do_embed (paths, Editing::ImportDistinctFiles, ImportToTrack, frame);
+ do_embed (paths, Editing::ImportSerializeFiles, ImportToTrack, frame);
}
}
}
-
- out:
- context->drag_finish (true, false, time);
}
void
-Editor::drop_regions (const RefPtr<Gdk::DragContext>& context,
- int x, int y,
- const SelectionData& data,
- guint info, guint time)
+Editor::drop_paths (const RefPtr<Gdk::DragContext>& context,
+ int x, int y,
+ const SelectionData& data,
+ guint info, guint time)
{
- const SerializedObjectPointers<boost::shared_ptr<Region> >* sr =
- reinterpret_cast<const SerializedObjectPointers<boost::shared_ptr<Region> > *> (data.get_data());
+ vector<ustring> paths;
+ GdkEvent ev;
+ nframes64_t frame;
+ double wx;
+ double wy;
+ double cy;
- for (uint32_t i = 0; i < sr->cnt; ++i) {
+ if (convert_drop_to_paths (paths, context, x, y, data, info, time) == 0) {
+
+ /* D-n-D coordinates are window-relative, so convert to "world" coordinates
+ */
- boost::shared_ptr<Region> r = sr->data[i];
+ track_canvas->window_to_world (x, y, wx, wy);
+
+ ev.type = GDK_BUTTON_RELEASE;
+ ev.button.x = wx;
+ ev.button.y = wy;
- insert_region_list_drag (r, x, y);
+ frame = event_frame (&ev, 0, &cy);
+
+ snap_to (frame);
+
+#ifdef GTKOSX
+ /* We are not allowed to call recursive main event loops from within
+ the main event loop with GTK/Quartz. Since import/embed wants
+ to push up a progress dialog, defer all this till we go idle.
+ */
+ Glib::signal_idle().connect (bind (mem_fun (*this, &Editor::idle_drop_paths), paths, frame, cy));
+#else
+ drop_paths_part_two (paths, frame, cy);
+#endif
}
context->drag_finish (true, false, time);
}
void
-Editor::drop_routes (const Glib::RefPtr<Gdk::DragContext>& context,
- int x, int y,
- const Gtk::SelectionData& data,
- guint info, guint time) {
- const SerializedObjectPointers<boost::shared_ptr<Route> >* sr =
- reinterpret_cast<const SerializedObjectPointers<boost::shared_ptr<Route> > *> (data.get_data());
+Editor::drop_regions (const RefPtr<Gdk::DragContext>& context,
+ int x, int y,
+ const SelectionData& data,
+ guint info, guint time)
+{
+ std::list<boost::shared_ptr<Region> > regions;
+ region_list_display.get_object_drag_data (regions);
- for (uint32_t i = 0; i < sr->cnt; ++i) {
- boost::shared_ptr<Route> r = sr->data[i];
- insert_route_list_drag (r, x, y);
+ for (list<boost::shared_ptr<Region> >::iterator r = regions.begin(); r != regions.end(); ++r) {
+
+ boost::shared_ptr<AudioRegion> ar;
+
+ if ((ar = boost::dynamic_pointer_cast<AudioRegion>(*r)) != 0) {
+ insert_region_list_drag (ar, x, y);
+ }
}
context->drag_finish (true, false, time);
@@ -648,20 +660,24 @@ Editor::autoscroll_canvas ()
double new_pixel;
double target_pixel;
- if (autoscroll_x > 0) {
- autoscroll_x_distance = (unit_to_frame (drag_info.current_pointer_x) - (leftmost_frame + current_page_frames())) / 3;
- } else if (autoscroll_x < 0) {
- autoscroll_x_distance = (leftmost_frame - unit_to_frame (drag_info.current_pointer_x)) / 3;
-
+ if (autoscroll_x_distance != 0) {
+ if (autoscroll_x > 0) {
+ autoscroll_x_distance = (unit_to_frame (drag_info.current_pointer_x) - (leftmost_frame + current_page_frames())) / 3;
+ } else if (autoscroll_x < 0) {
+ autoscroll_x_distance = (leftmost_frame - unit_to_frame (drag_info.current_pointer_x)) / 3;
+
+ }
}
-
- if (autoscroll_y > 0) {
- autoscroll_y_distance = (drag_info.current_pointer_y - (get_trackview_group_vertical_offset() + canvas_height)) / 3;
- } else if (autoscroll_y < 0) {
-
- autoscroll_y_distance = (vertical_adjustment.get_value () - drag_info.current_pointer_y) / 3;
+
+ if (autoscroll_y_distance != 0) {
+ if (autoscroll_y > 0) {
+ autoscroll_y_distance = (drag_info.current_pointer_y - (get_trackview_group_vertical_offset() + canvas_height)) / 3;
+ } else if (autoscroll_y < 0) {
+
+ autoscroll_y_distance = (vertical_adjustment.get_value () - drag_info.current_pointer_y) / 3;
+ }
}
-
+
if (autoscroll_x < 0) {
if (leftmost_frame < autoscroll_x_distance) {
new_frame = 0;
@@ -725,6 +741,8 @@ Editor::autoscroll_canvas ()
reset_x_origin (new_frame);
}
+ vertical_adjustment.set_value (new_pixel);
+
/* fake an event. */
Glib::RefPtr<Gdk::Window> canvas_window = const_cast<Editor*>(this)->track_canvas->get_window();
@@ -738,8 +756,6 @@ Editor::autoscroll_canvas ()
motion_handler (drag_info.item, (GdkEvent*) &ev, drag_info.item_type, true);
- vertical_adjustment.set_value (new_pixel);
-
autoscroll_cnt++;
if (autoscroll_cnt == 1) {
@@ -830,20 +846,33 @@ Editor::scroll_canvas_horizontally ()
_master_group->move (-x_delta, 0);
timebar_group->move (-x_delta, 0);
+ time_line_group->move (-x_delta, 0);
cursor_group->move (-x_delta, 0);
+
update_fixed_rulers ();
redisplay_tempo (true);
+
+#ifndef GTKOSX
+ if (!autoscroll_active) {
+ /* force rulers and canvas to move in lock step */
+ while (gtk_events_pending ()) {
+ gtk_main_iteration ();
+ }
+ }
+#endif
+
}
void
Editor::scroll_canvas_vertically ()
{
/* vertical scrolling only */
+
double y_delta;
y_delta = last_trackview_group_vertical_offset - get_trackview_group_vertical_offset ();
-
_trackview_group->move (0, y_delta);
+ _background_group->move (0, y_delta);
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
(*i)->clip_to_viewport ();
@@ -875,7 +904,7 @@ Editor::color_handler()
{
playhead_cursor->canvas_item.property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_PlayHead.get();
verbose_canvas_cursor->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_VerboseCanvasCursor.get();
-
+
meter_bar->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_MeterBar.get();
meter_bar->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_MarkerBarSeparator.get();
@@ -946,3 +975,4 @@ Editor::flush_canvas ()
// gdk_window_process_updates (GTK_LAYOUT(track_canvas->gobj())->bin_window, true);
}
}
+
diff --git a/gtk2_ardour/editor_cursors.cc b/gtk2_ardour/editor_cursors.cc
index 0f5c414408..93743f580e 100644
--- a/gtk2_ardour/editor_cursors.cc
+++ b/gtk2_ardour/editor_cursors.cc
@@ -35,10 +35,7 @@ Editor::Cursor::Cursor (Editor& ed, bool (Editor::*callbck)(GdkEvent*,ArdourCanv
canvas_item (*editor.cursor_group),
length(1.0)
{
-
- /* "randomly" initialize coords */
-
- points.push_back(Gnome::Art::Point(1.0, 0.0));
+ points.push_back(Gnome::Art::Point(-1.0, 0.0)); // first x-coord needs to be a non-normal value
points.push_back(Gnome::Art::Point(1.0, 1.0));
canvas_item.property_points() = points;
diff --git a/gtk2_ardour/editor_edit_groups.cc b/gtk2_ardour/editor_edit_groups.cc
index 20179f84c6..371b13ed0c 100644
--- a/gtk2_ardour/editor_edit_groups.cc
+++ b/gtk2_ardour/editor_edit_groups.cc
@@ -140,6 +140,9 @@ Editor::edit_group_list_button_press_event (GdkEventButton* ev)
if ((iter = group_model->get_iter (path))) {
if ((group = (*iter)[group_columns.routegroup]) != 0) {
// edit_route_group (group);
+#ifdef GTKOSX
+ edit_group_display.queue_draw();
+#endif
return true;
}
}
@@ -151,6 +154,9 @@ Editor::edit_group_list_button_press_event (GdkEventButton* ev)
if ((iter = group_model->get_iter (path))) {
bool active = (*iter)[group_columns.is_active];
(*iter)[group_columns.is_active] = !active;
+#ifdef GTKOSX
+ edit_group_display.queue_draw();
+#endif
return true;
}
break;
@@ -159,6 +165,9 @@ Editor::edit_group_list_button_press_event (GdkEventButton* ev)
if ((iter = group_model->get_iter (path))) {
bool visible = (*iter)[group_columns.is_visible];
(*iter)[group_columns.is_visible] = !visible;
+#ifdef GTKOSX
+ edit_group_display.queue_draw();
+#endif
return true;
}
break;
diff --git a/gtk2_ardour/editor_mixer.cc b/gtk2_ardour/editor_mixer.cc
index e6b30232cd..bf8aca105e 100644
--- a/gtk2_ardour/editor_mixer.cc
+++ b/gtk2_ardour/editor_mixer.cc
@@ -156,6 +156,16 @@ Editor::ensure_all_elements_drawn ()
#endif
void
+Editor::show_editor_list (bool yn)
+{
+ if (yn) {
+ the_notebook.show();
+ } else {
+ the_notebook.hide();
+ }
+}
+
+void
Editor::create_editor_mixer ()
{
current_mixer_strip = new MixerStrip (*ARDOUR_UI::instance()->the_mixer(),
@@ -170,16 +180,6 @@ Editor::create_editor_mixer ()
}
void
-Editor::show_editor_list (bool yn)
-{
- if (yn) {
- the_notebook.show();
- } else {
- the_notebook.hide();
- }
-}
-
-void
Editor::set_selected_mixer_strip (TimeAxisView& view)
{
AudioTimeAxisView* at;
@@ -228,7 +228,6 @@ Editor::set_selected_mixer_strip (TimeAxisView& view)
}
double current = 0.0;
-bool currentInitialized = 0;
void
Editor::update_current_screen ()
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index 1a03f66f24..4b4ed86164 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -367,8 +367,15 @@ Editor::step_mouse_mode (bool next)
{
switch (current_mouse_mode()) {
case MouseObject:
- if (next) set_mouse_mode (MouseRange);
- else set_mouse_mode (MouseTimeFX);
+ if (next) {
+ if (Profile->get_sae()) {
+ set_mouse_mode (MouseZoom);
+ } else {
+ set_mouse_mode (MouseRange);
+ }
+ } else {
+ set_mouse_mode (MouseTimeFX);
+ }
break;
case MouseRange:
@@ -377,8 +384,19 @@ Editor::step_mouse_mode (bool next)
break;
case MouseZoom:
- if (next) set_mouse_mode (MouseGain);
- else set_mouse_mode (MouseRange);
+ if (next) {
+ if (Profile->get_sae()) {
+ set_mouse_mode (MouseTimeFX);
+ } else {
+ set_mouse_mode (MouseGain);
+ }
+ } else {
+ if (Profile->get_sae()) {
+ set_mouse_mode (MouseObject);
+ } else {
+ set_mouse_mode (MouseRange);
+ }
+ }
break;
case MouseGain:
@@ -387,8 +405,15 @@ Editor::step_mouse_mode (bool next)
break;
case MouseTimeFX:
- if (next) set_mouse_mode (MouseAudition);
- else set_mouse_mode (MouseGain);
+ if (next) {
+ set_mouse_mode (MouseAudition);
+ } else {
+ if (Profile->get_sae()) {
+ set_mouse_mode (MouseZoom);
+ } else {
+ set_mouse_mode (MouseGain);
+ }
+ }
break;
case MouseAudition:
@@ -508,10 +533,11 @@ Editor::set_midi_edit_cursor (MidiEditMode m)
void
Editor::button_selection (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type)
{
- /* in object/audition/timefx mode, any button press sets
- the selection if the object can be selected. this is a
- bit of hack, because we want to avoid this if the
- mouse operation is a region alignment.
+ /* in object/audition/timefx/gain-automation mode,
+ any button press sets the selection if the object
+ can be selected. this is a bit of hack, because
+ we want to avoid this if the mouse operation is a
+ region alignment.
note: not dbl-click or triple-click
*/
@@ -519,6 +545,7 @@ Editor::button_selection (ArdourCanvas::Item* item, GdkEvent* event, ItemType it
if (((mouse_mode != MouseObject) &&
(mouse_mode != MouseAudition || item_type != RegionItem) &&
(mouse_mode != MouseTimeFX || item_type != RegionItem) &&
+ (mouse_mode != MouseGain) &&
(mouse_mode != MouseRange)) ||
((event->type != GDK_BUTTON_PRESS && event->type != GDK_BUTTON_RELEASE) || event->button.button > 3)) {
@@ -537,7 +564,7 @@ Editor::button_selection (ArdourCanvas::Item* item, GdkEvent* event, ItemType it
}
}
}
-
+
Selection::Operation op = Keyboard::selection_type (event->button.state);
bool press = (event->type == GDK_BUTTON_PRESS);
@@ -602,7 +629,7 @@ bool
Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type)
{
Glib::RefPtr<Gdk::Window> canvas_window = const_cast<Editor*>(this)->track_canvas->get_window();
-
+
if (canvas_window) {
Glib::RefPtr<const Gdk::Window> pointer_window;
int x, y;
@@ -626,7 +653,7 @@ Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemTyp
}
button_selection (item, event, item_type);
-
+
if (drag_info.item == 0 &&
(Keyboard::is_delete_event (&event->button) ||
Keyboard::is_context_menu_event (&event->button) ||
@@ -680,27 +707,43 @@ Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemTyp
}
return true;
+ case MarkerBarItem:
case TempoBarItem:
- return true;
-
case MeterBarItem:
+ if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier)) {
+ start_cursor_grab_no_stop(&playhead_cursor->canvas_item, event);
+ }
return true;
+ break;
+
case RangeMarkerBarItem:
- start_range_markerbar_op (item, event, CreateRangeMarker);
+ if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier)) {
+ start_cursor_grab_no_stop(&playhead_cursor->canvas_item, event);
+ } else {
+ start_range_markerbar_op (item, event, CreateRangeMarker);
+ }
return true;
break;
case CdMarkerBarItem:
- start_range_markerbar_op (item, event, CreateCDMarker);
+ if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier)) {
+ start_cursor_grab_no_stop(&playhead_cursor->canvas_item, event);
+ } else {
+ start_range_markerbar_op (item, event, CreateCDMarker);
+ }
return true;
break;
case TransportMarkerBarItem:
- start_range_markerbar_op (item, event, CreateTransportMarker);
+ if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier)) {
+ start_cursor_grab_no_stop(&playhead_cursor->canvas_item, event);
+ } else {
+ start_range_markerbar_op (item, event, CreateTransportMarker);
+ }
return true;
break;
-
+
default:
break;
}
@@ -830,7 +873,13 @@ Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemTyp
case MouseGain:
switch (item_type) {
case RegionItem:
- // start_line_grab_from_regionview (item, event);
+ /* start a grab so that if we finish after moving
+ we can tell what happened.
+ */
+ drag_info.item = item;
+ drag_info.motion_callback = &Editor::region_gain_motion_callback;
+ drag_info.finished_callback = 0;
+ start_grab (event, current_canvas_cursor);
break;
case GainLineItem:
@@ -982,7 +1031,7 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT
{
nframes64_t where = event_frame (event, 0, 0);
AutomationTimeAxisView* atv = 0;
-
+
/* no action if we're recording */
if (session && session->actively_recording()) {
@@ -1001,7 +1050,7 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT
button_selection (item, event, item_type);
/* edit events get handled here */
-
+
if (drag_info.item == 0 && Keyboard::is_edit_event (&event->button)) {
switch (item_type) {
case RegionItem:
@@ -1163,36 +1212,44 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT
return true;
case MarkerBarItem:
- if (!Keyboard::modifier_state_contains (event->button.state, Keyboard::snap_modifier())) {
- snap_to (where, 0, true);
+ if (!_dragging_playhead) {
+ if (!Keyboard::modifier_state_contains (event->button.state, Keyboard::snap_modifier())) {
+ snap_to (where, 0, true);
+ }
+ mouse_add_new_marker (where);
}
- mouse_add_new_marker (where);
return true;
case CdMarkerBarItem:
- // if we get here then a dragged range wasn't done
- if (!Keyboard::modifier_state_contains (event->button.state, Keyboard::snap_modifier())) {
- snap_to (where, 0, true);
+ if (!_dragging_playhead) {
+ // if we get here then a dragged range wasn't done
+ if (!Keyboard::modifier_state_contains (event->button.state, Keyboard::snap_modifier())) {
+ snap_to (where, 0, true);
+ }
+ mouse_add_new_marker (where, true);
}
- mouse_add_new_marker (where, true);
return true;
case TempoBarItem:
- if (!Keyboard::modifier_state_contains (event->button.state, Keyboard::snap_modifier())) {
- snap_to (where);
+ if (!_dragging_playhead) {
+ if (!Keyboard::modifier_state_contains (event->button.state, Keyboard::snap_modifier())) {
+ snap_to (where);
+ }
+ mouse_add_new_tempo_event (where);
}
- mouse_add_new_tempo_event (where);
return true;
case MeterBarItem:
- mouse_add_new_meter_event (pixel_to_frame (event->button.x));
+ if (!_dragging_playhead) {
+ mouse_add_new_meter_event (pixel_to_frame (event->button.x));
+ }
return true;
break;
default:
break;
}
-
+
switch (mouse_mode) {
case MouseObject:
switch (item_type) {
@@ -1219,7 +1276,13 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT
switch (item_type) {
case RegionItem:
- dynamic_cast<AudioRegionView*>(clicked_regionview)->add_gain_point_event (item, event);
+ /* check that we didn't drag before releasing, since
+ its really annoying to create new control
+ points when doing this.
+ */
+ if (drag_info.first_move) {
+ dynamic_cast<AudioRegionView*>(clicked_regionview)->add_gain_point_event (item, event);
+ }
return true;
break;
@@ -1571,7 +1634,7 @@ Editor::leave_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_
case TempoBarItem:
case MarkerBarItem:
if (is_drawable()) {
- track_canvas->get_window()->set_cursor (*timebar_cursor);
+ track_canvas->get_window()->set_cursor (*current_canvas_cursor);
}
break;
@@ -1783,6 +1846,9 @@ Editor::motion_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item
case PlayheadCursorItem:
case MarkerItem:
case ControlPointItem:
+ case MarkerBarItem:
+ case TempoBarItem:
+ case MeterBarItem:
case RangeMarkerBarItem:
case TransportMarkerBarItem:
case CdMarkerBarItem:
@@ -1809,7 +1875,9 @@ Editor::motion_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item
if (!from_autoscroll) {
maybe_autoscroll_horizontally (&event->motion);
}
- (this->*(drag_info.motion_callback)) (item, event);
+ if (drag_info.motion_callback) {
+ (this->*(drag_info.motion_callback)) (item, event);
+ }
goto handled;
}
goto not_handled;
@@ -1819,6 +1887,15 @@ Editor::motion_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item
}
switch (mouse_mode) {
+ case MouseGain:
+ if (item_type == RegionItem) {
+ if (drag_info.item && drag_info.motion_callback) {
+ (this->*(drag_info.motion_callback)) (item, event);
+ }
+ goto handled;
+ }
+ break;
+
case MouseObject:
case MouseRange:
case MouseZoom:
@@ -1829,7 +1906,9 @@ Editor::motion_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item
if (!from_autoscroll) {
maybe_autoscroll (&event->motion);
}
- (this->*(drag_info.motion_callback)) (item, event);
+ if (drag_info.motion_callback) {
+ (this->*(drag_info.motion_callback)) (item, event);
+ }
goto handled;
}
goto not_handled;
@@ -1902,7 +1981,7 @@ Editor::start_grab (GdkEvent* event, Gdk::Cursor *cursor)
// if dragging with button2, the motion is x constrained, with Alt-button2 it is y constrained
- if (event->button.button == 2) {
+ if (Keyboard::is_button2_event (&event->button)) {
if (Keyboard::modifier_state_equals (event->button.state, Keyboard::SecondaryModifier)) {
drag_info.y_constrained = true;
drag_info.x_constrained = false;
@@ -1999,6 +2078,14 @@ Editor::end_grab (ArdourCanvas::Item* item, GdkEvent* event)
}
void
+Editor::region_gain_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
+{
+ if (drag_info.first_move && drag_info.move_threshold_passed) {
+ drag_info.first_move = false;
+ }
+}
+
+void
Editor::start_fade_in_grab (ArdourCanvas::Item* item, GdkEvent* event)
{
drag_info.item = item;
@@ -2258,6 +2345,39 @@ Editor::start_cursor_grab (ArdourCanvas::Item* item, GdkEvent* event)
}
void
+Editor::start_cursor_grab_no_stop (ArdourCanvas::Item* item, GdkEvent* event)
+{
+ drag_info.item = item;
+ drag_info.motion_callback = &Editor::cursor_drag_motion_callback;
+ drag_info.finished_callback = &Editor::cursor_drag_finished_ensure_locate_callback;
+
+ start_grab (event);
+
+ if ((drag_info.data = (item->get_data ("cursor"))) == 0) {
+ fatal << _("programming error: cursor canvas item has no cursor data pointer!") << endmsg;
+ /*NOTREACHED*/
+ }
+
+ Cursor* cursor = (Cursor *) drag_info.data;
+ nframes64_t where = event_frame (event, 0, 0);
+
+ snap_to(where);
+ playhead_cursor->set_position (where);
+
+ if (cursor == playhead_cursor) {
+ _dragging_playhead = true;
+
+ if (session && session->is_auditioning()) {
+ session->cancel_audition ();
+ }
+ }
+
+ drag_info.pointer_frame_offset = drag_info.grab_frame - cursor->current_frame;
+
+ show_verbose_time_cursor (cursor->current_frame, 10);
+}
+
+void
Editor::cursor_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
{
Cursor* cursor = (Cursor *) drag_info.data;
@@ -2294,12 +2414,28 @@ Editor::cursor_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
void
Editor::cursor_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event)
{
- if (drag_info.first_move) return;
+ _dragging_playhead = false;
+
+ if (drag_info.first_move) {
+ return;
+ }
cursor_drag_motion_callback (item, event);
+
+ if (item == &playhead_cursor->canvas_item) {
+ if (session) {
+ session->request_locate (playhead_cursor->current_frame, drag_info.was_rolling);
+ }
+ }
+}
+void
+Editor::cursor_drag_finished_ensure_locate_callback (ArdourCanvas::Item* item, GdkEvent* event)
+{
_dragging_playhead = false;
+ cursor_drag_motion_callback (item, event);
+
if (item == &playhead_cursor->canvas_item) {
if (session) {
session->request_locate (playhead_cursor->current_frame, drag_info.was_rolling);
@@ -3100,12 +3236,14 @@ Editor::start_line_grab (AutomationLine* line, GdkEvent* event)
nframes64_t frame_within_region;
/* need to get x coordinate in terms of parent (TimeAxisItemView)
- origin.
+ origin, and ditto for y.
*/
cx = event->button.x;
cy = event->button.y;
+
line->parent_group().w2i (cx, cy);
+
frame_within_region = (nframes64_t) floor (cx * frames_per_unit);
if (!line->control_points_adjacent (frame_within_region, current_line_drag_info.before,
@@ -3121,6 +3259,11 @@ Editor::start_line_grab (AutomationLine* line, GdkEvent* event)
start_grab (event, fader_cursor);
+ /* store grab start in parent frame */
+
+ drag_info.grab_x = cx;
+ drag_info.grab_y = cy;
+
double fraction = 1.0 - (cy / line->height());
line->start_drag (0, drag_info.grab_frame, fraction);
@@ -3136,7 +3279,7 @@ Editor::line_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
AutomationLine* line = reinterpret_cast<AutomationLine *> (drag_info.data);
double dy = drag_info.current_pointer_y - drag_info.last_pointer_y;
-
+
if (event->button.state & Keyboard::SecondaryModifier) {
dy *= 0.1;
}
@@ -3145,9 +3288,9 @@ Editor::line_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
// calculate zero crossing point. back off by .01 to stay on the
// positive side of zero
- double _unused = 0;
double zero_gain_y = (1.0 - ZERO_GAIN_FRACTION) * line->height() - .01;
- line->parent_group().i2w(_unused, zero_gain_y);
+
+ // line->parent_group().i2w(_unused, zero_gain_y);
// make sure we hit zero when passing through
if ((cy < zero_gain_y and (cy - dy) > zero_gain_y)
@@ -3160,6 +3303,7 @@ Editor::line_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
cy = max (0.0, cy);
cy = min ((double) line->height(), cy);
+
double fraction = 1.0 - (cy / line->height());
bool push;
@@ -3976,7 +4120,6 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
}
begin_reversible_command (op_string);
-
changed_position = (drag_info.last_frame_position != (nframes64_t) (clicked_regionview->region()->position()));
changed_tracks = (trackview_by_y_position (drag_info.current_pointer_y) != &clicked_regionview->get_time_axis_view());
@@ -3994,13 +4137,14 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
TimeAxisView* dest_tv = trackview_by_y_position (iy1);
RouteTimeAxisView* dest_rtv = dynamic_cast<RouteTimeAxisView*>(dest_tv);
+
nframes64_t where;
if (rv->region()->locked()) {
++i;
continue;
}
-
+
if (changed_position && !drag_info.x_constrained) {
where = rv->region()->position() - drag_delta;
} else {
@@ -5538,7 +5682,9 @@ Editor::end_rubberband_select (ArdourCanvas::Item* item, GdkEvent* event)
}
} else {
- selection->clear_tracks();
+ if (!getenv("ARDOUR_SAE")) {
+ selection->clear_tracks();
+ }
selection->clear_regions();
selection->clear_points ();
selection->clear_lines ();
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 283935af77..a5dfb6b08e 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -38,7 +38,6 @@
#include <gtkmm2ext/window_title.h>
#include <gtkmm2ext/popup.h>
-
#include <ardour/audioengine.h>
#include <ardour/session.h>
#include <ardour/audioplaylist.h>
@@ -148,8 +147,6 @@ Editor::split_regions_at (nframes64_t where, RegionSelection& regions)
snap_to (where);
}
- cerr << "Split " << regions.size() << " at " << where << endl;
-
for (RegionSelection::iterator a = regions.begin(); a != regions.end(); ) {
RegionSelection::iterator tmp;
@@ -2009,7 +2006,7 @@ Editor::add_location_from_playhead_cursor ()
}
void
-Editor::add_location_from_audio_region ()
+Editor::add_locations_from_audio_region ()
{
RegionSelection rs;
@@ -2019,15 +2016,61 @@ Editor::add_location_from_audio_region ()
return;
}
- RegionView* rv = *(rs.begin());
- boost::shared_ptr<Region> region = rv->region();
+ session->begin_reversible_command (rs.size () > 1 ? _("add markers") : _("add marker"));
+ XMLNode &before = session->locations()->get_state();
- Location *location = new Location (region->position(), region->last_frame(), region->name(), Location::IsRangeMarker);
+ cerr << "Add locations\n";
+
+ for (RegionSelection::iterator i = rs.begin (); i != rs.end (); ++i) {
+
+ boost::shared_ptr<Region> region = (*i)->region ();
+
+ Location *location = new Location (region->position(), region->last_frame(), region->name(), Location::IsRangeMarker);
+
+ session->locations()->add (location, true);
+ }
+
+ XMLNode &after = session->locations()->get_state();
+ session->add_command (new MementoCommand<Locations>(*(session->locations()), &before, &after));
+ session->commit_reversible_command ();
+}
+
+void
+Editor::add_location_from_audio_region ()
+{
+ RegionSelection rs;
+
+ get_regions_for_action (rs);
+
+ if (rs.empty()) {
+ return;
+ }
+
session->begin_reversible_command (_("add marker"));
- XMLNode &before = session->locations()->get_state();
+ XMLNode &before = session->locations()->get_state();
+
+ string markername;
+
+ if (rs.size() > 1) { // more than one region selected
+ session->locations()->next_available_name(markername, "regions");
+ } else {
+ RegionView* rv = *(rs.begin());
+ boost::shared_ptr<Region> region = rv->region();
+ markername = region->name();
+ }
+
+ if (!choose_new_marker_name(markername)) {
+ return;
+ }
+
+ cerr << "Add location\n";
+
+ // single range spanning all selected
+ Location *location = new Location (rs.start(), rs.end_frame(), markername, Location::IsRangeMarker);
session->locations()->add (location, true);
- XMLNode &after = session->locations()->get_state();
- session->add_command(new MementoCommand<Locations>(*(session->locations()), &before, &after));
+
+ XMLNode &after = session->locations()->get_state();
+ session->add_command (new MementoCommand<Locations>(*(session->locations()), &before, &after));
session->commit_reversible_command ();
}
@@ -3607,7 +3650,7 @@ Editor::unfreeze_route ()
void*
Editor::_freeze_thread (void* arg)
{
- PBD::ThreadCreated (pthread_self(), X_("Freeze"));
+ PBD::notify_gui_about_thread_creation (pthread_self(), X_("Freeze"));
return static_cast<Editor*>(arg)->freeze_thread ();
}
@@ -4734,6 +4777,28 @@ Editor::toggle_region_opaque ()
}
void
+Editor::toggle_record_enable ()
+{
+ bool new_state = false;
+ bool first = true;
+ for (TrackSelection::iterator i = selection->tracks.begin(); i != selection->tracks.end(); ++i) {
+ RouteTimeAxisView *rtav = dynamic_cast<RouteTimeAxisView *>(*i);
+ if (!rtav)
+ continue;
+ if (!rtav->is_track())
+ continue;
+
+ if (first) {
+ new_state = !rtav->track()->record_enabled();
+ first = false;
+ }
+
+ rtav->track()->set_record_enable(new_state, this);
+ }
+}
+
+
+void
Editor::set_fade_length (bool in)
{
RegionSelection rs;
@@ -5216,17 +5281,26 @@ Editor::select_next_route()
TimeAxisView* current = selection->tracks.front();
- for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
- if (*i == current) {
- ++i;
- if (i != track_views.end()) {
- selection->set (*i);
- } else {
- selection->set (*(track_views.begin()));
+ RouteUI *rui;
+ do {
+ for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
+ if (*i == current) {
+ ++i;
+ if (i != track_views.end()) {
+ current = (*i);
+ } else {
+ current = (*(track_views.begin()));
+ //selection->set (*(track_views.begin()));
+ }
+ break;
}
- break;
}
- }
+ rui = dynamic_cast<RouteUI *>(current);
+ } while ( current->hidden() || (rui != NULL && !rui->route()->active()));
+
+ selection->set(current);
+
+ ensure_track_visible(current);
}
void
@@ -5239,17 +5313,55 @@ Editor::select_prev_route()
TimeAxisView* current = selection->tracks.front();
- for (TrackViewList::reverse_iterator i = track_views.rbegin(); i != track_views.rend(); ++i) {
- if (*i == current) {
- ++i;
- if (i != track_views.rend()) {
- selection->set (*i);
- } else {
- selection->set (*(track_views.rbegin()));
+ RouteUI *rui;
+ do {
+ for (TrackViewList::reverse_iterator i = track_views.rbegin(); i != track_views.rend(); ++i) {
+ if (*i == current) {
+ ++i;
+ if (i != track_views.rend()) {
+ current = (*i);
+ } else {
+ current = *(track_views.rbegin());
+ }
+ break;
}
- break;
}
+ rui = dynamic_cast<RouteUI *>(current);
+ } while ( current->hidden() || (rui != NULL && !rui->route()->active()));
+
+ selection->set (current);
+
+ ensure_track_visible(current);
+}
+
+void
+Editor::ensure_track_visible(TimeAxisView *track)
+{
+ if (track->hidden())
+ return;
+
+ double current_view_min_y = vertical_adjustment.get_value();
+ double current_view_max_y = vertical_adjustment.get_value() + vertical_adjustment.get_page_size() - canvas_timebars_vsize;
+
+ double track_min_y = track->y_position;
+ double track_max_y = track->y_position + (double)track->effective_height;
+
+ if (track_min_y >= current_view_min_y &&
+ track_max_y <= current_view_max_y) {
+ return;
+ }
+
+ double new_value;
+
+ if (track_min_y < current_view_min_y) {
+ // Track is above the current view
+ new_value = track_min_y;
+ } else {
+ // Track is below the current view
+ new_value = track->y_position + (double)track->effective_height + canvas_timebars_vsize - vertical_adjustment.get_page_size();
}
+
+ vertical_adjustment.set_value(new_value);
}
void
@@ -6032,26 +6144,34 @@ Editor::insert_time (nframes64_t pos, nframes64_t frames, InsertTimeOption opt,
begin_reversible_command (_("insert time"));
for (TrackSelection::iterator x = selection->tracks.begin(); x != selection->tracks.end(); ++x) {
+ /* regions */
boost::shared_ptr<Playlist> pl = (*x)->playlist();
- if (!pl) {
- continue;
- }
-
- XMLNode &before = pl->get_state();
+ if (pl) {
- if (opt == SplitIntersected) {
- pl->split (pos);
+ XMLNode &before = pl->get_state();
+
+ if (opt == SplitIntersected) {
+ pl->split (pos);
+ }
+
+ pl->shift (pos, frames, (opt == MoveIntersected), ignore_music_glue);
+
+ XMLNode &after = pl->get_state();
+
+ session->add_command (new MementoCommand<Playlist> (*pl, &before, &after));
+ commit = true;
+ }
+
+ /* automation */
+ RouteTimeAxisView* rtav = dynamic_cast<RouteTimeAxisView*> (*x);
+ if (rtav) {
+ rtav->route ()->shift (pos, frames);
+ commit = true;
}
-
- pl->shift (pos, frames, (opt == MoveIntersected), ignore_music_glue);
-
- XMLNode &after = pl->get_state();
-
- session->add_command (new MementoCommand<Playlist> (*pl, &before, &after));
- commit = true;
}
+ /* markers */
if (markers_too) {
bool moved = false;
XMLNode& before (session->locations()->get_state());
@@ -6185,22 +6305,23 @@ Editor::goto_visual_state (uint32_t n)
void
Editor::start_visual_state_op (uint32_t n)
{
- cerr << "Start\n";
+ cerr << "Start visual op\n";
if (visual_state_op_connection.empty()) {
- cerr << "\tqueue\n";
visual_state_op_connection = Glib::signal_timeout().connect (bind (mem_fun (*this, &Editor::end_visual_state_op), n), 1000);
+ cerr << "\tqueued new timeout\n";
}
}
void
Editor::cancel_visual_state_op (uint32_t n)
{
- cerr << "Cancel\n";
if (!visual_state_op_connection.empty()) {
- cerr << "\tgoto\n";
+ cerr << "cancel visual op, time to goto\n";
visual_state_op_connection.disconnect();
goto_visual_state (n);
- }
+ } else {
+ cerr << "cancel visual op, do nothing\n";
+ }
}
bool
diff --git a/gtk2_ardour/editor_region_list.cc b/gtk2_ardour/editor_region_list.cc
index 1c8d95ad12..f2c98dfa30 100644
--- a/gtk2_ardour/editor_region_list.cc
+++ b/gtk2_ardour/editor_region_list.cc
@@ -29,6 +29,7 @@
#include <ardour/audiofilesource.h>
#include <ardour/silentfilesource.h>
#include <ardour/session_region.h>
+#include <ardour/profile.h>
#include <gtkmm2ext/stop_signal.h>
@@ -777,8 +778,6 @@ Editor::region_list_display_button_press (GdkEventButton *ev)
int cellx;
int celly;
- // cerr << "Button press release, button = " << ev->button << endl;
-
if (region_list_display.get_path_at_pos ((int)ev->x, (int)ev->y, path, column, cellx, celly)) {
if ((iter = region_list_model->get_iter (path))) {
region = (*iter)[region_list_columns.region];
@@ -787,14 +786,12 @@ Editor::region_list_display_button_press (GdkEventButton *ev)
if (Keyboard::is_context_menu_event (ev)) {
show_region_list_display_context_menu (ev->button, ev->time);
- cerr << "\tcontext menu event, event handled\n";
return true;
}
if (region == 0) {
region_list_display.get_selection()->unselect_all();
deselect_all();
- cerr << "\tSelection cleared\n";
return false;
}
@@ -807,7 +804,6 @@ Editor::region_list_display_button_press (GdkEventButton *ev)
if (!Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
consider_auditioning (region);
}
- cerr << "\taudition, event handled\n";
return true;
break;
@@ -815,7 +811,6 @@ Editor::region_list_display_button_press (GdkEventButton *ev)
break;
}
- cerr << "\tnot handled\n";
return false;
}
@@ -1036,14 +1031,17 @@ Editor::region_list_display_drag_data_received (const RefPtr<Gdk::DragContext>&
vector<ustring> paths;
if (data.get_target() == "GTK_TREE_MODEL_ROW") {
- cerr << "Delete drag data drop to treeview\n";
region_list_display.on_drag_data_received (context, x, y, data, info, time);
return;
}
if (convert_drop_to_paths (paths, context, x, y, data, info, time) == 0) {
nframes64_t pos = 0;
- do_embed (paths, Editing::ImportDistinctFiles, ImportAsRegion, pos);
+ if (Profile->get_sae() || Config->get_only_copy_imported_files()) {
+ do_import (paths, Editing::ImportDistinctFiles, Editing::ImportAsRegion, SrcBest, pos);
+ } else {
+ do_embed (paths, Editing::ImportDistinctFiles, ImportAsRegion, pos);
+ }
context->drag_finish (true, false, time);
}
}
diff --git a/gtk2_ardour/editor_route_list.cc b/gtk2_ardour/editor_route_list.cc
index db3c4918c2..6e368716f7 100644
--- a/gtk2_ardour/editor_route_list.cc
+++ b/gtk2_ardour/editor_route_list.cc
@@ -147,7 +147,7 @@ void
Editor::handle_gui_changes (const string & what, void *src)
{
ENSURE_GUI_THREAD(bind (mem_fun(*this, &Editor::handle_gui_changes), what, src));
-
+
if (what == "track_height") {
/* Optional :make tracks change height while it happens, instead
of on first-idle
@@ -643,14 +643,10 @@ Editor::route_list_display_drag_data_received (const RefPtr<Gdk::DragContext>& c
const SelectionData& data,
guint info, guint time)
{
- cerr << "RouteLD::dddr target = " << data.get_target() << endl;
-
if (data.get_target() == "GTK_TREE_MODEL_ROW") {
- cerr << "Delete drag data drop to treeview\n";
route_list_display.on_drag_data_received (context, x, y, data, info, time);
return;
}
- cerr << "some other kind of drag\n";
context->drag_finish (true, false, time);
}
@@ -786,114 +782,6 @@ Editor::move_selected_tracks (bool up)
}
route_display_model->reorder (neworder);
-}
-
-#if 0
- vector<boost::shared_ptr<Route> > selected_block;
- boost::shared_ptr<Route> target_unselected_route;
- bool last_track_was_selected = false;
- vector<int> neworder;
- TreeModel::Children rows = route_display_model->children();
- TreeModel::Children::iterator ri;
- uint32_t old_key;
- uint32_t new_key;
- int n;
-
- /* preload "neworder" with the current order */
-
- for (n = 0, ri = rows.begin(); ri != rows.end(); ++ri, ++n) {
- neworder.push_back (n);
- }
-
- for (ri = rows.begin(); ri != rows.end(); ++ri) {
-
- TimeAxisView* tv = (*ri)[route_display_columns.tv];
- boost::shared_ptr<Route> route = (*ri)[route_display_columns.route];
-
- if (selection->selected (tv)) {
-
- selected_block.push_back (route);
- cerr << "--SAVE as SELECTED " << route->name() << endl;
- last_track_was_selected = true;
- continue;
- } else {
-
- if (!last_track_was_selected) {
- /* keep moving through unselected tracks, but save this
- one in case we need it later as the one that will
- move *down* as the selected block moves up.
- */
- target_unselected_route = route;
- cerr << "--pre-SAVE as UNSELECTED " << route->name() << endl;
- continue;
- }
-
- last_track_was_selected = false;
-
- if (!up) {
- /* this is the track immediately after a selected block,
- and this is the one that will move *up* as
- the selected block moves down.
- */
-
- target_unselected_route = route;
- cerr << "--post-SAVE as UNSELECTED " << route->name() << endl;
- } else {
- cerr << "--(up) plan to use existing unselected target\n";
- }
- }
-
- cerr << "TRANSITION: sel = " << selected_block.size() << " unsel = " << target_unselected_route << endl;
-
- /* transitioned between selected/not-selected */
-
- uint32_t distance;
-
- for (vector<boost::shared_ptr<Route> >::iterator x = selected_block.begin(); x != selected_block.end(); ++x) {
- old_key = (*x)->order_key (_order_key);
- new_key = compute_new_key (old_key, up, 1, rows.size());
- neworder[new_key] = old_key;
- cerr << "--SELECTED, reorder from " << old_key << " => " << new_key << endl;
- }
-
- /* now move the unselected tracks in the opposite direction */
-
- if (!selected_block.empty() && target_unselected_route) {
- distance = selected_block.size();
- old_key = target_unselected_route->order_key (_order_key);
- new_key = compute_new_key (old_key, !up, distance, rows.size());
- neworder[new_key] = old_key;
- cerr << "--UNSELECTED, reorder from " << old_key << " => " << new_key << endl;
- }
-
- selected_block.clear ();
- target_unselected_route.reset ();
- }
-
- cerr << "when done ... sel = " << selected_block.size() << " unsel = " << target_unselected_route << endl;
-
- if (!selected_block.empty() || target_unselected_route) {
-
- /* left over blocks */
-
- uint32_t distance;
-
- for (vector<boost::shared_ptr<Route> >::iterator x = selected_block.begin(); x != selected_block.end(); ++x) {
- old_key = (*x)->order_key (_order_key);
- new_key = compute_new_key (old_key, up, 1, rows.size());
- neworder[new_key] = old_key;
- cerr << "--SELECTED, reorder from " << old_key << " => " << new_key << endl;
- }
-
- if (!selected_block.empty() && target_unselected_route) {
- distance = selected_block.size();
- old_key = target_unselected_route->order_key (_order_key);
- new_key = compute_new_key (old_key, !up, distance, rows.size());
- neworder[new_key] = old_key;
- cerr << "--UNSELECTED, reorder from " << old_key << " => " << new_key << endl;
- }
- }
-
- route_display_model->reorder (neworder);
-#endif
+ session->sync_order_keys (_order_key);
+}
diff --git a/gtk2_ardour/editor_rulers.cc b/gtk2_ardour/editor_rulers.cc
index 048d8c2725..a4344c3ffa 100644
--- a/gtk2_ardour/editor_rulers.cc
+++ b/gtk2_ardour/editor_rulers.cc
@@ -33,6 +33,7 @@
#include "actions.h"
#include "gtk-custom-hruler.h"
#include "gui_thread.h"
+#include "time_axis_view.h"
#include "i18n.h"
@@ -64,6 +65,14 @@ Editor::initialize_rulers ()
_ruler_separator->set_name("TimebarPadding");
_ruler_separator->show();
+ _minsec_ruler = gtk_custom_hruler_new ();
+ minsec_ruler = Glib::wrap (_minsec_ruler);
+ minsec_ruler->set_name ("MinSecRuler");
+ minsec_ruler->set_size_request (-1, (int)timebar_height);
+ gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_minsec_ruler), &ruler_metrics[ruler_metric_minsec]);
+ minsec_ruler->hide ();
+ minsec_ruler->set_no_show_all();
+
_smpte_ruler = gtk_custom_hruler_new ();
smpte_ruler = Glib::wrap (_smpte_ruler);
smpte_ruler->set_name ("SMPTERuler");
@@ -90,11 +99,13 @@ Editor::initialize_rulers ()
frames_ruler->hide ();
frames_ruler->set_no_show_all();
- _minsec_ruler = gtk_custom_hruler_new ();
- minsec_ruler = Glib::wrap (_minsec_ruler);
- minsec_ruler->set_name ("MinSecRuler");
- minsec_ruler->set_size_request (-1, (int)timebar_height);
- gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_minsec_ruler), &ruler_metrics[ruler_metric_minsec]);
+ _bbt_ruler = gtk_custom_hruler_new ();
+ bbt_ruler = Glib::wrap (_bbt_ruler);
+ bbt_ruler->set_name ("BBTRuler");
+ bbt_ruler->set_size_request (-1, (int)timebar_height);
+ gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_bbt_ruler), &ruler_metrics[ruler_metric_bbt]);
+ bbt_ruler->hide ();
+ bbt_ruler->set_no_show_all();
minsec_ruler->hide ();
minsec_ruler->set_no_show_all();
minsec_nmarks = 0;
@@ -532,66 +543,76 @@ Editor::restore_ruler_visibility ()
if (node) {
if ((prop = node->property ("smpte")) != 0) {
- if (prop->value() == "yes")
+ if (prop->value() == "yes") {
ruler_timecode_action->set_active (true);
- else
+ } else {
ruler_timecode_action->set_active (false);
+ }
}
if ((prop = node->property ("bbt")) != 0) {
- if (prop->value() == "yes")
+ if (prop->value() == "yes") {
ruler_bbt_action->set_active (true);
- else
+ } else {
ruler_bbt_action->set_active (false);
+ }
}
if ((prop = node->property ("frames")) != 0) {
- if (prop->value() == "yes")
+ if (prop->value() == "yes") {
ruler_samples_action->set_active (true);
- else
+ } else {
ruler_samples_action->set_active (false);
+ }
}
if ((prop = node->property ("minsec")) != 0) {
- if (prop->value() == "yes")
+ if (prop->value() == "yes") {
ruler_minsec_action->set_active (true);
- else
+ } else {
ruler_minsec_action->set_active (false);
+ }
}
if ((prop = node->property ("tempo")) != 0) {
- if (prop->value() == "yes")
+ if (prop->value() == "yes") {
ruler_tempo_action->set_active (true);
- else
+ } else {
ruler_tempo_action->set_active (false);
+ }
}
if ((prop = node->property ("meter")) != 0) {
- if (prop->value() == "yes")
+ if (prop->value() == "yes") {
ruler_meter_action->set_active (true);
- else
+ } else {
ruler_meter_action->set_active (false);
+ }
}
if ((prop = node->property ("marker")) != 0) {
- if (prop->value() == "yes")
+ if (prop->value() == "yes") {
ruler_marker_action->set_active (true);
- else
+ } else {
ruler_marker_action->set_active (false);
+ }
}
if ((prop = node->property ("rangemarker")) != 0) {
- if (prop->value() == "yes")
+ if (prop->value() == "yes") {
ruler_range_action->set_active (true);
- else
+ } else {
ruler_range_action->set_active (false);
+ }
}
if ((prop = node->property ("transportmarker")) != 0) {
- if (prop->value() == "yes")
+ if (prop->value() == "yes") {
ruler_loop_punch_action->set_active (true);
- else
+ } else {
ruler_loop_punch_action->set_active (false);
+ }
}
if ((prop = node->property ("cdmarker")) != 0) {
- if (prop->value() == "yes")
+ if (prop->value() == "yes") {
ruler_cd_marker_action->set_active (true);
- else
+ } else {
ruler_cd_marker_action->set_active (false);
+ }
} else {
// this session doesn't yet know about the cdmarker ruler
@@ -610,7 +631,6 @@ Editor::restore_ruler_visibility ()
}
no_ruler_shown_update = false;
-
update_ruler_visibility ();
}
@@ -816,10 +836,17 @@ Editor::update_ruler_visibility ()
vertical_adjustment.set_value (full_canvas_height - canvas_height + 1);
} else {
_trackview_group->property_y () = - get_trackview_group_vertical_offset ();
+ _background_group->property_y () = - get_trackview_group_vertical_offset ();
_trackview_group->move (0, 0);
+ _background_group->move (0, 0);
last_trackview_group_vertical_offset = get_trackview_group_vertical_offset ();
}
+ gdouble bottom_track_pos = vertical_adjustment.get_value() + canvas_height - canvas_timebars_vsize;
+ if (trackview_by_y_position(bottom_track_pos) != 0) {
+ trackview_by_y_position(bottom_track_pos)->clip_to_viewport ();
+ }
+
ruler_label_vbox.set_size_request (-1, (int)(timebar_height * visible_rulers));
time_canvas_vbox.set_size_request (-1,-1);
diff --git a/gtk2_ardour/editor_tempodisplay.cc b/gtk2_ardour/editor_tempodisplay.cc
index 923c2fbd1c..ec3cf30b45 100644
--- a/gtk2_ardour/editor_tempodisplay.cc
+++ b/gtk2_ardour/editor_tempodisplay.cc
@@ -106,8 +106,7 @@ Editor::tempo_map_changed (Change ignored)
tempo_lines->tempo_map_changed();
compute_current_bbt_points(leftmost_frame, leftmost_frame + current_page_frames());
- session->tempo_map().apply_with_metrics (*this, &Editor::draw_metric_marks);
- update_tempo_based_rulers ();// redraw metric markers
+ session->tempo_map().apply_with_metrics (*this, &Editor::draw_metric_marks); // redraw metric markers
redraw_measures ();
}
@@ -120,8 +119,17 @@ Editor::redisplay_tempo (bool immediate_redraw)
compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_frames()); // redraw rulers and measures
- redraw_measures();
- update_tempo_based_rulers ();
+ compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_frames());
+ if (immediate_redraw) {
+ redraw_measures ();
+ } else {
+#ifdef GTKOSX
+ redraw_measures ();
+#else
+ Glib::signal_idle().connect (mem_fun (*this, &Editor::redraw_measures));
+#endif
+ }
+ update_tempo_based_rulers (); // redraw rulers and measures
}
void
diff --git a/gtk2_ardour/editor_timefx.cc b/gtk2_ardour/editor_timefx.cc
index 6628be7116..3dda9e87e9 100644
--- a/gtk2_ardour/editor_timefx.cc
+++ b/gtk2_ardour/editor_timefx.cc
@@ -72,7 +72,8 @@ Editor::TimeFXDialog::TimeFXDialog (Editor& e, bool pitch)
quick_button (_("Quick but Ugly")),
antialias_button (_("Skip Anti-aliasing")),
stretch_opts_label (_("Contents:")),
- precise_button (_("Strict Linear"))
+ precise_button (_("Strict Linear")),
+ preserve_formants_button(_("Preserve Formants"))
{
set_modal (true);
set_position (Gtk::WIN_POS_MOUSE);
@@ -112,6 +113,9 @@ Editor::TimeFXDialog::TimeFXDialog (Editor& e, bool pitch)
pitch_cent_spinner.set_digits (1);
+ upper_button_box.pack_start (preserve_formants_button, false, false);
+
+
add_button (_("Shift"), Gtk::RESPONSE_ACCEPT);
get_vbox()->pack_start (upper_button_box, false, false);
@@ -281,6 +285,7 @@ Editor::time_fx (RegionSelection& regions, float val, bool pitching)
bool peaklock = true;
bool longwin = false;
bool shortwin = false;
+ bool preserve_formants = false;
string txt;
enum {
@@ -290,6 +295,7 @@ Editor::time_fx (RegionSelection& regions, float val, bool pitching)
} transients = Transients;
precise = current_timefx->precise_button.get_active();
+ preserve_formants = current_timefx->preserve_formants_button.get_active();
txt = current_timefx->stretch_opts_selector.get_active_text ();
@@ -312,10 +318,14 @@ Editor::time_fx (RegionSelection& regions, float val, bool pitching)
if (realtime) options |= RubberBandStretcher::OptionProcessRealTime;
if (precise) options |= RubberBandStretcher::OptionStretchPrecise;
+ if (preserve_formants) options |= RubberBandStretcher::OptionFormantPreserved;
+
if (!peaklock) options |= RubberBandStretcher::OptionPhaseIndependent;
if (longwin) options |= RubberBandStretcher::OptionWindowLong;
if (shortwin) options |= RubberBandStretcher::OptionWindowShort;
+
+
switch (transients) {
case NoTransients:
options |= RubberBandStretcher::OptionTransientsSmooth;
@@ -455,7 +465,7 @@ Editor::do_timefx (TimeFXDialog& dialog)
void*
Editor::timefx_thread (void *arg)
{
- PBD::ThreadCreated (pthread_self(), X_("TimeFX"));
+ PBD::notify_gui_about_thread_creation (pthread_self(), X_("TimeFX"));
TimeFXDialog* tsd = static_cast<TimeFXDialog*>(arg);
diff --git a/gtk2_ardour/export_range_markers_dialog.cc b/gtk2_ardour/export_range_markers_dialog.cc
index bf2f0e3989..cea690f74c 100644
--- a/gtk2_ardour/export_range_markers_dialog.cc
+++ b/gtk2_ardour/export_range_markers_dialog.cc
@@ -131,7 +131,6 @@ ExportRangeMarkersDialog::get_target_filepath(string path, string filename, stri
return target_filepath;
}
-
bool
ExportRangeMarkersDialog::is_filepath_valid(string &filepath)
{
@@ -148,10 +147,10 @@ ExportRangeMarkersDialog::is_filepath_valid(string &filepath)
if ( (stat (filepath.c_str(), &statbuf) != 0) ||
(!S_ISDIR (statbuf.st_mode)) ) {
- string txt = _("Please select an existing target directory. Files are not allowed!");
- MessageDialog msg (*this, txt, false, MESSAGE_ERROR, BUTTONS_OK, true);
- msg.run();
- return false;
+ string txt = _("Please select an existing target directory. Files are not allowed!");
+ MessageDialog msg (*this, txt, false, MESSAGE_ERROR, BUTTONS_OK, true);
+ msg.run();
+ return false;
}
// directory needs to exist and be writable
@@ -166,7 +165,6 @@ ExportRangeMarkersDialog::is_filepath_valid(string &filepath)
return true;
}
-
void
ExportRangeMarkersDialog::init_progress_computing(Locations::LocationList& locations)
{
diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc
index b34c0b8d28..a74df66bc0 100644
--- a/gtk2_ardour/gain_meter.cc
+++ b/gtk2_ardour/gain_meter.cc
@@ -454,7 +454,7 @@ GainMeterBase::meter_press(GdkEventButton* ev)
} else {
- if (ev->button == 2) {
+ if (Keyboard::is_button2_event(ev)) {
// Primary-button2 click is the midi binding click
// button2-click is "momentary"
@@ -465,7 +465,7 @@ GainMeterBase::meter_press(GdkEventButton* ev)
}
}
- if (ev->button == 1 || ev->button == 2) {
+ if (ev->button == 1 || Keyboard::is_button2_event (ev)) {
if (Keyboard::modifier_state_equals (ev->state, Keyboard::ModifierMask (Keyboard::PrimaryModifier|Keyboard::TertiaryModifier))) {
diff --git a/gtk2_ardour/generic_pluginui.cc b/gtk2_ardour/generic_pluginui.cc
index af21227c0f..c7cecc7130 100644
--- a/gtk2_ardour/generic_pluginui.cc
+++ b/gtk2_ardour/generic_pluginui.cc
@@ -77,7 +77,6 @@ GenericPluginUI::GenericPluginUI (boost::shared_ptr<PluginInsert> pi, bool scrol
//set_homogeneous (false);
pack1(main_contents);
-
settings_box.set_homogeneous (false);
HBox* constraint_hbox = manage (new HBox);
@@ -92,16 +91,25 @@ GenericPluginUI::GenericPluginUI (boost::shared_ptr<PluginInsert> pi, bool scrol
smaller_hbox->pack_start (latency_gui, false, false, 10);
smaller_hbox->pack_start (preset_combo, false, false);
smaller_hbox->pack_start (save_button, false, false);
+ smaller_hbox->pack_start (bypass_button, false, true);
constraint_hbox->set_spacing (5);
- constraint_hbox->pack_start (*smaller_hbox, true, false);
- constraint_hbox->pack_end (bypass_button, false, false);
+ constraint_hbox->set_homogeneous (false);
+
+ VBox* v1_box = manage (new VBox);
+ VBox* v2_box = manage (new VBox);
constraint_hbox->pack_start (eqgui_toggle, false, false);
- settings_box.pack_end (*constraint_hbox, false, false);
+ v1_box->pack_start (*smaller_hbox, false, true);
+ v2_box->pack_start (focus_button, false, true);
main_contents.pack_start (settings_box, false, false);
+ constraint_hbox->pack_end (*v2_box, false, false);
+ constraint_hbox->pack_end (*v1_box, false, false);
+
+ main_contents.pack_start (*constraint_hbox, false, false);
+
if ( is_scrollable ) {
scroller.set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
scroller.set_name ("PluginEditor");
@@ -120,9 +128,10 @@ GenericPluginUI::GenericPluginUI (boost::shared_ptr<PluginInsert> pi, bool scrol
eqgui_toggle.signal_toggled().connect( mem_fun(*this, &GenericPluginUI::toggle_plugin_analysis));
pi->ActiveChanged.connect (bind(mem_fun(*this, &GenericPluginUI::processor_active_changed),
- boost::weak_ptr<Processor>(pi)));
- bypass_button.set_active (!pi->active());
+ boost::weak_ptr<Processor>(pi)));
+ bypass_button.set_active (!pi->active());
+
build ();
}
@@ -202,7 +211,7 @@ GenericPluginUI::build ()
/* if we are scrollable, just use one long column */
if (!is_scrollable) {
- if (x++ > 7){
+ if (x++ > 20){
frame = manage (new Frame);
frame->set_name ("BaseFrame");
box = manage (new VBox);
diff --git a/gtk2_ardour/icons/computer_keyboard.png b/gtk2_ardour/icons/computer_keyboard.png
new file mode 100644
index 0000000000..8d425d0385
--- /dev/null
+++ b/gtk2_ardour/icons/computer_keyboard.png
Binary files differ
diff --git a/gtk2_ardour/icons/computer_keyboard_active.png b/gtk2_ardour/icons/computer_keyboard_active.png
new file mode 100644
index 0000000000..70e6b37aa0
--- /dev/null
+++ b/gtk2_ardour/icons/computer_keyboard_active.png
Binary files differ
diff --git a/gtk2_ardour/keyboard.cc b/gtk2_ardour/keyboard.cc
index ef8cc34389..d0fcbea5cf 100644
--- a/gtk2_ardour/keyboard.cc
+++ b/gtk2_ardour/keyboard.cc
@@ -64,6 +64,7 @@ guint Keyboard::TertiaryModifier = GDK_SHIFT_MASK; // Shift
guint Keyboard::Level4Modifier = GDK_CONTROL_MASK; // Control
guint Keyboard::CopyModifier = GDK_MOD1_MASK; // Alt/Option
guint Keyboard::RangeSelectModifier = GDK_SHIFT_MASK;
+guint Keyboard::button2_modifiers = Keyboard::SecondaryModifier|Keyboard::Level4Modifier;
#else
guint Keyboard::PrimaryModifier = GDK_CONTROL_MASK; // Control
guint Keyboard::SecondaryModifier = GDK_MOD1_MASK; // Alt/Option
@@ -71,8 +72,10 @@ guint Keyboard::TertiaryModifier = GDK_SHIFT_MASK; // Shift
guint Keyboard::Level4Modifier = GDK_MOD4_MASK; // Mod4/Windows
guint Keyboard::CopyModifier = GDK_CONTROL_MASK;
guint Keyboard::RangeSelectModifier = GDK_SHIFT_MASK;
+guint Keyboard::button2_modifiers = 0; /* not used */
#endif
+
Keyboard* Keyboard::_the_keyboard = 0;
Gtk::Window* Keyboard::current_window = 0;
bool Keyboard::_some_magic_widget_has_focus = false;
@@ -265,10 +268,20 @@ Keyboard::snooper (GtkWidget *widget, GdkEventKey *event)
}
}
- if (event->type == GDK_KEY_RELEASE && event->keyval == GDK_w && modifier_state_equals (event->state, PrimaryModifier)) {
- if (current_window) {
- current_window->hide ();
- current_window = 0;
+ /* Special keys that we want to handle in
+ any dialog, no matter whether it uses
+ the regular set of accelerators or not
+ */
+
+ if (event->type == GDK_KEY_RELEASE && modifier_state_equals (event->state, PrimaryModifier)) {
+ switch (event->keyval) {
+ case GDK_w:
+ if (current_window) {
+ current_window->hide ();
+ current_window = 0;
+ ret = true;
+ }
+ break;
}
}
@@ -291,25 +304,29 @@ Keyboard::enter_window (GdkEventCrossing *ev, Gtk::Window* win)
bool
Keyboard::leave_window (GdkEventCrossing *ev, Gtk::Window* win)
{
- switch (ev->detail) {
- case GDK_NOTIFY_INFERIOR:
- if (debug_keyboard) {
- cerr << "INFERIOR crossing ... out\n";
- }
- break;
-
- case GDK_NOTIFY_VIRTUAL:
- if (debug_keyboard) {
- cerr << "VIRTUAL crossing ... out\n";
- }
- /* fallthru */
-
- default:
- if (debug_keyboard) {
- cerr << "REAL CROSSING ... out\n";
- cerr << "clearing current target\n";
+ if (ev) {
+ switch (ev->detail) {
+ case GDK_NOTIFY_INFERIOR:
+ if (debug_keyboard) {
+ cerr << "INFERIOR crossing ... out\n";
+ }
+ break;
+
+ case GDK_NOTIFY_VIRTUAL:
+ if (debug_keyboard) {
+ cerr << "VIRTUAL crossing ... out\n";
+ }
+ /* fallthru */
+
+ default:
+ if (debug_keyboard) {
+ cerr << "REAL CROSSING ... out\n";
+ cerr << "clearing current target\n";
+ }
+ state.clear ();
+ current_window = 0;
}
- state.clear ();
+ } else {
current_window = 0;
}
@@ -363,13 +380,24 @@ Keyboard::set_snap_modifier (guint mod)
bool
Keyboard::is_edit_event (GdkEventButton *ev)
{
-
return (ev->type == GDK_BUTTON_PRESS || ev->type == GDK_BUTTON_RELEASE) &&
(ev->button == Keyboard::edit_button()) &&
((ev->state & RelevantModifierKeyMask) == Keyboard::edit_modifier());
}
bool
+Keyboard::is_button2_event (GdkEventButton* ev)
+{
+#ifdef GTKOSX
+ return (ev->button == 2) ||
+ ((ev->button == 1) &&
+ ((ev->state & Keyboard::button2_modifiers) == Keyboard::button2_modifiers));
+#else
+ return ev->button == 2;
+#endif
+}
+
+bool
Keyboard::is_delete_event (GdkEventButton *ev)
{
return (ev->type == GDK_BUTTON_PRESS || ev->type == GDK_BUTTON_RELEASE) &&
diff --git a/gtk2_ardour/keyboard.h b/gtk2_ardour/keyboard.h
index e6d5065e86..5fb696e6a5 100644
--- a/gtk2_ardour/keyboard.h
+++ b/gtk2_ardour/keyboard.h
@@ -107,6 +107,7 @@ class Keyboard : public sigc::trackable, PBD::Stateful
static bool is_edit_event (GdkEventButton*);
static bool is_delete_event (GdkEventButton*);
static bool is_context_menu_event (GdkEventButton*);
+ static bool is_button2_event (GdkEventButton*);
static Keyboard& the_keyboard() { return *_the_keyboard; }
@@ -143,6 +144,7 @@ class Keyboard : public sigc::trackable, PBD::Stateful
static guint delete_but;
static guint delete_mod;
static guint snap_mod;
+ static guint button2_modifiers;
static Gtk::Window* current_window;
static std::string user_keybindings_path;
static bool can_save_keybindings;
diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc
index aecbc1f634..c7724cff63 100644
--- a/gtk2_ardour/main.cc
+++ b/gtk2_ardour/main.cc
@@ -151,6 +151,10 @@ fixup_bundle_environment ()
setenv ("ARDOUR_CONFIG_PATH", path.c_str(), 1);
setenv ("ARDOUR_DATA_PATH", path.c_str(), 1);
+ path = dir_path;
+ path += "/../Resources";
+ setenv ("ARDOUR_INSTANT_XML_PATH", path.c_str(), 1);
+
cstr = getenv ("LADSPA_PATH");
if (cstr) {
path = cstr;
@@ -264,7 +268,6 @@ fixup_bundle_environment ()
path += "/../Resources/gdk-pixbuf.loaders";
setenv ("GDK_PIXBUF_MODULE_FILE", path.c_str(), 1);
- cerr << "Set GDK_PIXBUF_MODULE_FILE to " << path << endl;
if (getenv ("ARDOUR_WITH_JACK")) {
// JACK driver dir
@@ -297,12 +300,9 @@ int main (int argc, char *argv[])
{
vector<Glib::ustring> null_file_list;
- cerr << "here we go\n";
-
#ifdef __APPLE__
fixup_bundle_environment ();
#endif
- cerr << "just did it\n";
Glib::thread_init();
gtk_set_locale ();
diff --git a/gtk2_ardour/matrix.cc b/gtk2_ardour/matrix.cc
index db16362ca0..5cb229e4ea 100644
--- a/gtk2_ardour/matrix.cc
+++ b/gtk2_ardour/matrix.cc
@@ -152,7 +152,6 @@ Matrix::reset_size ()
*/
float w = 0;
- float w1;
float h = 0;
cairo_text_extents_t extents;
cairo_t* cr;
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index 1a357dc002..c6b60b974e 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -321,6 +321,16 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
RouteUI::set_route (rt);
+ if (input_selector) {
+ delete input_selector;
+ input_selector = 0;
+ }
+
+ if (output_selector) {
+ delete output_selector;
+ output_selector = 0;
+ }
+
panners.set_io (rt);
gpm.set_io (rt);
pre_processor_box.set_route (rt);
@@ -364,6 +374,7 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
#endif /* VARISPEED_IN_MIXER_STRIP */
button_table.attach (*rec_enable_button, 0, 2, 2, 3);
+ rec_enable_button->show();
}
if (_route->phase_invert()) {
@@ -385,6 +396,9 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
meter_point_label.set_text (_("post"));
break;
}
+
+ delete route_ops_menu;
+ route_ops_menu = 0;
ARDOUR_UI::instance()->tooltips().set_tip (comment_button, _route->comment().empty() ?
_("Click to Add/Edit Comments"):
@@ -518,20 +532,19 @@ MixerStrip::set_width (Width w, void* owner)
switch (w) {
case Wide:
- set_size_request (-1, -1);
-
+
if (rec_enable_button) {
- ((Gtk::Label*)rec_enable_button->get_child())->set_text (_("record"));
+ ((Gtk::Label*)rec_enable_button->get_child())->set_text (_("Record"));
}
((Gtk::Label*)mute_button->get_child())->set_text (_("Mute"));
((Gtk::Label*)solo_button->get_child())->set_text (_("Solo"));
if (_route->comment() == "") {
comment_button.unset_bg (STATE_NORMAL);
- ((Gtk::Label*)comment_button.get_child())->set_text (_("comments"));
+ ((Gtk::Label*)comment_button.get_child())->set_text (_("Comments"));
} else {
comment_button.modify_bg (STATE_NORMAL, color());
- ((Gtk::Label*)comment_button.get_child())->set_text (_("*comments*"));
+ ((Gtk::Label*)comment_button.get_child())->set_text (_("*Comments*"));
}
((Gtk::Label*)gpm.gain_automation_style_button.get_child())->set_text (gpm.astyle_string(gain_automation->automation_style()));
@@ -539,6 +552,7 @@ MixerStrip::set_width (Width w, void* owner)
((Gtk::Label*)panners.pan_automation_style_button.get_child())->set_text (panners.astyle_string(_route->panner().automation_style()));
((Gtk::Label*)panners.pan_automation_state_button.get_child())->set_text (panners.astate_string(_route->panner().automation_state()));
Gtkmm2ext::set_size_request_to_display_given_text (name_button, "long", 2, 2);
+ set_size_request (-1, -1);
break;
case Narrow:
@@ -564,12 +578,13 @@ MixerStrip::set_width (Width w, void* owner)
set_size_request (max (50, gpm.get_gm_width()), -1);
break;
}
-
update_input_display ();
update_output_display ();
mix_group_changed (0);
name_changed ();
-
+#ifdef GTKOSX
+ WidthChanged();
+#endif
}
void
@@ -1084,7 +1099,7 @@ void
MixerStrip::build_route_ops_menu ()
{
using namespace Menu_Helpers;
- route_ops_menu = manage (new Menu);
+ route_ops_menu = new Menu;
route_ops_menu->set_name ("ArdourContextMenu");
MenuList& items = route_ops_menu->items();
@@ -1107,11 +1122,10 @@ MixerStrip::build_route_ops_menu ()
denormal_menu_item = dynamic_cast<CheckMenuItem *> (&items.back());
denormal_menu_item->set_active (_route->denormal_protection());
- build_remote_control_menu ();
-
- items.push_back (SeparatorElem());
if (!Profile->get_sae()) {
- items.push_back (MenuElem (_("Remote Control ID"), *remote_control_menu));
+ build_remote_control_menu ();
+ items.push_back (SeparatorElem());
+ items.push_back (MenuElem (_("Remote Control ID"), *remote_control_menu));
}
items.push_back (SeparatorElem());
@@ -1121,7 +1135,7 @@ MixerStrip::build_route_ops_menu ()
gint
MixerStrip::name_button_button_press (GdkEventButton* ev)
{
- if (ev->button == 1) {
+ if (ev->button == 1 || ev->button == 3) {
list_route_operations ();
Menu_Helpers::MenuList& items = route_ops_menu->items();
diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h
index c4c28a06e9..2b6aed2717 100644
--- a/gtk2_ardour/mixer_strip.h
+++ b/gtk2_ardour/mixer_strip.h
@@ -96,6 +96,10 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
ARDOUR::RouteGroup* mix_group() const;
void set_route (boost::shared_ptr<ARDOUR::Route>);
+#ifdef GTKOSX
+ sigc::signal<void> WidthChanged;
+#endif
+
protected:
friend class Mixer_UI;
void set_packed (bool yn);
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc
index 0be9b03444..06b30c700c 100644
--- a/gtk2_ardour/mixer_ui.cc
+++ b/gtk2_ardour/mixer_ui.cc
@@ -271,7 +271,7 @@ Mixer_UI::show_window ()
present ();
if (!_visible) {
set_window_pos_and_size ();
-
+
/* now reset each strips width so the right widgets are shown */
MixerStrip* ms;
@@ -339,7 +339,9 @@ Mixer_UI::add_strip (Session::RouteList& routes)
route->NameChanged.connect (bind (mem_fun(*this, &Mixer_UI::strip_name_changed), strip));
strip->GoingAway.connect (bind (mem_fun(*this, &Mixer_UI::remove_strip), strip));
-
+#ifdef GTKOSX
+ strip->WidthChanged.connect (mem_fun(*this, &Mixer_UI::queue_draw_all_strips));
+#endif
strip->signal_button_release_event().connect (bind (mem_fun(*this, &Mixer_UI::strip_button_release_event), strip));
}
@@ -767,6 +769,30 @@ Mixer_UI::redisplay_track_list ()
auto_rebind_midi_controls ();
}
+#ifdef GTKOSX
+void
+Mixer_UI::queue_draw_all_strips ()
+{
+ TreeModel::Children rows = track_model->children();
+ TreeModel::Children::iterator i;
+ long order;
+
+ for (order = 0, i = rows.begin(); i != rows.end(); ++i, ++order) {
+ MixerStrip* strip = (*i)[track_columns.strip];
+
+ if (strip == 0) {
+ continue;
+ }
+
+ bool visible = (*i)[track_columns.visible];
+
+ if (visible) {
+ strip->queue_draw();
+ }
+ }
+}
+#endif
+
void
Mixer_UI::set_auto_rebinding( bool val )
{
@@ -919,6 +945,9 @@ Mixer_UI::track_display_button_press (GdkEventButton* ev)
bool visible = (*iter)[track_columns.visible];
(*iter)[track_columns.visible] = !visible;
}
+#ifdef GTKOSX
+ track_display.queue_draw();
+#endif
}
}
return true;
@@ -1014,6 +1043,9 @@ Mixer_UI::group_display_button_press (GdkEventButton* ev)
if ((iter = group_model->get_iter (path))) {
if ((group = (*iter)[group_columns.group]) != 0) {
// edit_mix_group (group);
+#ifdef GTKOSX
+ group_display.queue_draw();
+#endif
return true;
}
}
@@ -1025,6 +1057,9 @@ Mixer_UI::group_display_button_press (GdkEventButton* ev)
if ((iter = group_model->get_iter (path))) {
bool active = (*iter)[group_columns.active];
(*iter)[group_columns.active] = !active;
+#ifdef GTKOSX
+ group_display.queue_draw();
+#endif
return true;
}
break;
@@ -1033,6 +1068,9 @@ Mixer_UI::group_display_button_press (GdkEventButton* ev)
if ((iter = group_model->get_iter (path))) {
bool visible = (*iter)[group_columns.visible];
(*iter)[group_columns.visible] = !visible;
+#ifdef GTKOSX
+ group_display.queue_draw();
+#endif
return true;
}
break;
@@ -1281,19 +1319,41 @@ Mixer_UI::set_state (const XMLNode& node)
const XMLProperty* prop;
XMLNode* geometry;
- if ((geometry = find_named_node (node, "geometry")) == 0) {
+ m_width = default_width;
+ m_height = default_height;
+ m_root_x = 1;
+ m_root_y = 1;
+
+ if ((geometry = find_named_node (node, "geometry")) != 0) {
- m_width = default_width;
- m_height = default_height;
- m_root_x = 1;
- m_root_y = 1;
+ XMLProperty* prop;
- } else {
+ if ((prop = geometry->property("x_size")) == 0) {
+ prop = geometry->property ("x-size");
+ }
+ if (prop) {
+ m_width = atoi(prop->value());
+ }
+ if ((prop = geometry->property("y_size")) == 0) {
+ prop = geometry->property ("y-size");
+ }
+ if (prop) {
+ m_height = atoi(prop->value());
+ }
- m_width = atoi(geometry->property("x-size")->value().c_str());
- m_height = atoi(geometry->property("y-size")->value().c_str());
- m_root_x = atoi(geometry->property("x-pos")->value().c_str());
- m_root_y = atoi(geometry->property("y-pos")->value().c_str());
+ if ((prop = geometry->property ("x_pos")) == 0) {
+ prop = geometry->property ("x-pos");
+ }
+ if (prop) {
+ m_root_x = atoi (prop->value());
+
+ }
+ if ((prop = geometry->property ("y_pos")) == 0) {
+ prop = geometry->property ("y-pos");
+ }
+ if (prop) {
+ m_root_y = atoi (prop->value());
+ }
}
set_window_pos_and_size ();
@@ -1369,12 +1429,24 @@ Mixer_UI::pane_allocation_handler (Allocation& alloc, Gtk::Paned* which)
int width, height;
static int32_t done[3] = { 0, 0, 0 };
- if ((geometry = find_named_node (*node, "geometry")) == 0) {
- width = default_width;
- height = default_height;
- } else {
- width = atoi(geometry->property("x-size")->value());
- height = atoi(geometry->property("y-size")->value());
+ width = default_width;
+ height = default_height;
+
+ if ((geometry = find_named_node (*node, "geometry")) != 0) {
+
+
+ if ((prop = geometry->property ("x_size")) == 0) {
+ prop = geometry->property ("x-size");
+ }
+ if (prop) {
+ width = atoi (prop->value());
+ }
+ if ((prop = geometry->property ("y_size")) == 0) {
+ prop = geometry->property ("y-size");
+ }
+ if (prop) {
+ height = atoi (prop->value());
+ }
}
if (which == static_cast<Gtk::Paned*> (&rhs_pane1)) {
diff --git a/gtk2_ardour/mixer_ui.h b/gtk2_ardour/mixer_ui.h
index 4765256d58..2b48ade6e0 100644
--- a/gtk2_ardour/mixer_ui.h
+++ b/gtk2_ardour/mixer_ui.h
@@ -152,6 +152,9 @@ class Mixer_UI : public Gtk::Window
void redisplay_track_list ();
bool no_track_list_redisplay;
bool track_display_button_press (GdkEventButton*);
+#ifdef GTKOSX
+ void queue_draw_all_strips ();
+#endif
void track_list_change (const Gtk::TreeModel::Path&,const Gtk::TreeModel::iterator&);
void track_list_delete (const Gtk::TreeModel::Path&);
diff --git a/gtk2_ardour/mnemonic-us.bindings.in b/gtk2_ardour/mnemonic-us.bindings.in
index 8a2a1923ba..27e6e9f259 100644
--- a/gtk2_ardour/mnemonic-us.bindings.in
+++ b/gtk2_ardour/mnemonic-us.bindings.in
@@ -108,28 +108,30 @@
(gtk_accel_path "<Actions>/Common/ToggleBigClock" "<%WINDOW%>b")
(gtk_accel_path "<Actions>/Editor/normalize-region" "<%SECONDARY%>n")
(gtk_accel_path "<Actions>/Editor/mute-unmute-region" "<%SECONDARY%>m")
-(gtk_accel_path "<Actions>/Common/goto-mixer" "<%WINDOW%>m")
+(gtk_accel_path "<Actions>/Common/toggle-editor-mixer-on-top" "<%WINDOW%>m")
;; arrow keys, navigation etc.
(gtk_accel_path "<Actions>/Editor/step-tracks-up" "uparrow")
-(gtk_accel_path "<Actions>/Transport/TransitionToRoll" "<%PRIMARY%>uparrow")
+(gtk_accel_path "<Actions>/Transport/TransitionToRoll" "<%TERTIARY%>uparrow")
(gtk_accel_path "<Actions>/Editor/select-prev-route" "<%SECONDARY%>uparrow")
-(gtk_accel_path "<Actions>/Editor/move-selected-tracks-up" "<%TERTIARY%>uparrow")
+(gtk_accel_path "<Actions>/Editor/move-selected-tracks-up" "<%PRIMARY%>uparrow")
(gtk_accel_path "<Actions>/Editor/step-tracks-down" "downarrow")
-(gtk_accel_path "<Actions>/Transport/TransitionToReverse" "<%PRIMARY%>downarrow")
+(gtk_accel_path "<Actions>/Transport/TransitionToReverse" "<%TERTIARY%>downarrow")
(gtk_accel_path "<Actions>/Editor/select-next-route" "<%SECONDARY%>downarrow")
-(gtk_accel_path "<Actions>/Editor/move-selected-tracks-down" "<%TERTIARY%>downarrow")
+(gtk_accel_path "<Actions>/Editor/move-selected-tracks-down" "<%PRIMARY%>downarrow")
(gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-boundary" "leftarrow")
(gtk_accel_path "<Actions>/Editor/tab-to-transient-backwards" "<%PRIMARY%>leftarrow")
(gtk_accel_path "<Actions>/Editor/nudge-playhead-backward" "<%SECONDARY%>leftarrow")
+(gtk_accel_path "<Actions>/Transport/Rewind" "<%TERTIARY%>leftarrow")
(gtk_accel_path "<Actions>/Editor/selected-marker-to-previous-region-boundary" "<%PRIMARY%><%TERTIARY%>leftarrow")
(gtk_accel_path "<Actions>/Editor/playhead-to-next-region-boundary" "rightarrow")
(gtk_accel_path "<Actions>/Editor/tab-to-transient-forwards" "<%PRIMARY%>rightarrow")
(gtk_accel_path "<Actions>/Editor/nudge-playhead-forward" "<%SECONDARY%>rightarrow")
+(gtk_accel_path "<Actions>/Transport/Forward" "<%TERTIARY%>rightarrow")
(gtk_accel_path "<Actions>/Editor/selected-marker-to-next-region-boundary" "<%PRIMARY%><%TERTIARY%>rightarrow")
(gtk_accel_path "<Actions>/Editor/scroll-tracks-down" "Page_Down")
@@ -214,8 +216,9 @@
(gtk_accel_path "<Actions>/Editor/toggle-edit-mode" "1")
(gtk_accel_path "<Actions>/Editor/cycle-snap-mode" "2")
(gtk_accel_path "<Actions>/Editor/cycle-snap-choice" "3")
-(gtk_accel_path "<Actions>/Transport/ToggleAutoReturn" "4")
-(gtk_accel_path "<Actions>/Transport/ToggleClick" "5")
+(gtk_accel_path "<Actions>/Editor/step-mouse-mode" "4")
+(gtk_accel_path "<Actions>/Transport/ToggleAutoReturn" "5")
+(gtk_accel_path "<Actions>/Transport/ToggleClick" "6")
(gtk_accel_path "<Actions>/Editor/set-tempo-from-region" "9")
(gtk_accel_path "<Actions>/Editor/set-tempo-from-edit-range" "0")
diff --git a/gtk2_ardour/nag.cc b/gtk2_ardour/nag.cc
new file mode 100644
index 0000000000..ece3ac3e2a
--- /dev/null
+++ b/gtk2_ardour/nag.cc
@@ -0,0 +1,206 @@
+#include <fstream>
+#include <gtkmm/stock.h>
+
+#include <ardour/ardour.h>
+#include <ardour/filesystem_paths.h>
+
+#include "nag.h"
+#include "i18n.h"
+
+using namespace ARDOUR;
+using namespace std;
+using namespace Glib;
+using namespace Gtk;
+
+NagScreen::NagScreen (std::string context, bool maybe_sub)
+ : ArdourDialog (_("Support Ardour Development"), true)
+ , donate_button (button_group, _("I'd like to make a one-time donation"))
+ , subscribe_button (button_group, _("Tell me more about becoming a subscriber"))
+ , existing_button (button_group, _("I'm already a subscriber!"))
+ , next_time_button (button_group, _("Ask about this the next time I export"))
+ , never_again_button (button_group, _("Never ever ask me about this again"))
+{
+ if (maybe_sub) {
+ message.set_text (_("Congratulations on your session export.\n\n\
+It looks as if you may already be a subscriber. If so, thanks, and sorry\n\
+to bother you again about this - I'm working on improving our subscriber system\n\
+so that I don't have to keep annoying you with this message.\n\n\
+If you're not a subscriber, perhaps you might consider supporting my work\n\
+on Ardour with either a one-time donation or subscription. Nothing will \n\
+happen if you choose not to do so. However Ardour's continuing development\n\
+relies on a stable, sustainable income stream. Thanks for using Ardour!"));
+ } else {
+ message.set_text (_("Congratulations on your session export.\n\n\
+I hope you find Ardour a useful tool. I'd like to ask you to consider supporting\n\
+its development with either a one-time donation or subscription. Nothing\n\
+will happen if you choose not to do so. However Ardour's continuing development\n\
+relies on a stable, sustainable income stream. Thanks for using Ardour!"));
+ }
+
+ button_box.pack_start (donate_button);
+ button_box.pack_start (subscribe_button);
+ button_box.pack_start (existing_button);
+ button_box.pack_start (next_time_button);
+ button_box.pack_start (never_again_button);
+
+ get_vbox()->set_spacing (12);
+ get_vbox()->pack_start (message);
+ get_vbox()->pack_start (button_box);
+
+ set_border_width (12);
+ add_button (Stock::OK, RESPONSE_ACCEPT);
+}
+
+NagScreen::~NagScreen ()
+{
+}
+
+void
+NagScreen::nag ()
+{
+ show_all ();
+
+ int response = run ();
+
+ hide ();
+
+ switch (response) {
+ case RESPONSE_ACCEPT:
+ break;
+ default:
+ return;
+ }
+
+ if (donate_button.get_active()) {
+ offer_to_donate ();
+ } else if (subscribe_button.get_active()) {
+ offer_to_subscribe ();
+ } else if (never_again_button.get_active ()) {
+ mark_never_again ();
+ } else if (existing_button.get_active ()) {
+ mark_affirmed_subscriber ();
+ }
+}
+
+NagScreen*
+NagScreen::maybe_nag (std::string why)
+{
+ Glib::ustring path;
+ bool really_subscribed;
+ bool maybe_subscribed;
+
+ path = Glib::build_filename (user_config_directory().to_string(), ".nevernag");
+
+ if (Glib::file_test (path, Glib::FILE_TEST_EXISTS)) {
+ return 0;
+ }
+
+ maybe_subscribed = is_subscribed (really_subscribed);
+
+ if (really_subscribed) {
+ return 0;
+ }
+
+ return new NagScreen (why, maybe_subscribed);
+}
+
+void
+NagScreen::mark_never_again ()
+{
+ Glib::ustring path;
+
+ path = Glib::build_filename (user_config_directory().to_string(), ".nevernag");
+
+ ofstream nagfile (path.c_str());
+}
+
+void
+NagScreen::mark_subscriber ()
+{
+ Glib::ustring path;
+
+ path = Glib::build_filename (user_config_directory().to_string(), ".askedaboutsub");
+
+ ofstream subsfile (path.c_str());
+}
+
+void
+NagScreen::mark_affirmed_subscriber ()
+{
+ Glib::ustring path;
+
+ path = Glib::build_filename (user_config_directory().to_string(), ".isubscribe");
+
+ ofstream subsfile (path.c_str());
+}
+
+bool
+NagScreen::is_subscribed (bool& really)
+{
+ Glib::ustring path;
+
+ really = false;
+
+ /* what we'd really like here is a way to query paypal
+ for someone's subscription status. thats a bit complicated
+ so for now, just see if they ever told us they were
+ subscribed. we try to trust our users :)
+ */
+
+ path = Glib::build_filename (user_config_directory().to_string(), ".isubscribe");
+ if (file_test (path, FILE_TEST_EXISTS)) {
+ really = true;
+ return true;
+ }
+
+ path = Glib::build_filename (user_config_directory().to_string(), ".askedaboutsub");
+ if (file_test (path, FILE_TEST_EXISTS)) {
+ /* they never said they were subscribed but they
+ did once express an interest in it.
+ */
+ really = false;
+ return true;
+ }
+
+ return false;
+}
+
+void
+NagScreen::offer_to_donate ()
+{
+ const char* uri = "http://ardour.org/donate";
+
+ /* we don't care if it fails */
+
+ open_uri (uri);
+}
+
+void
+NagScreen::offer_to_subscribe ()
+{
+ const char* uri = "http://ardour.org/subscribe";
+
+ if (open_uri (uri)) {
+ mark_subscriber ();
+ }
+}
+
+bool
+NagScreen::open_uri (const char* uri)
+{
+#ifdef HAVE_GTK_OPEN_URI
+ GError* err;
+ return gtk_open_uri (0, uri, GDK_CURRENT_TIME, &err);
+#else
+#ifndef __APPLE__
+ std::string command = "xdg-open ";
+ command += uri;
+ spawn_command_line_async (command);
+
+ return true;
+#else
+ extern bool cocoa_open_url (const char*);
+ return cocoa_open_url (uri);
+#endif
+#endif
+}
diff --git a/gtk2_ardour/nag.h b/gtk2_ardour/nag.h
new file mode 100644
index 0000000000..5872e28f3b
--- /dev/null
+++ b/gtk2_ardour/nag.h
@@ -0,0 +1,39 @@
+#ifndef __gtk_ardour_nag_h__
+#define __gtk_ardour_nag_h__
+
+#include "ardour_dialog.h"
+
+#include <gtkmm/label.h>
+#include <gtkmm/radiobutton.h>
+#include <gtkmm/buttonbox.h>
+
+class NagScreen : public ArdourDialog
+{
+ public:
+ ~NagScreen();
+
+ static NagScreen* maybe_nag (std::string context);
+ void nag ();
+
+ private:
+ NagScreen (std::string context, bool maybe_subscriber);
+
+ Gtk::Label message;
+ Gtk::VButtonBox button_box;
+ Gtk::RadioButtonGroup button_group;
+ Gtk::RadioButton donate_button;
+ Gtk::RadioButton subscribe_button;
+ Gtk::RadioButton existing_button;
+ Gtk::RadioButton next_time_button;
+ Gtk::RadioButton never_again_button;
+
+ void mark_never_again ();
+ void mark_subscriber ();
+ void mark_affirmed_subscriber ();
+ void offer_to_donate ();
+ void offer_to_subscribe ();
+ bool open_uri (const char*);
+ static bool is_subscribed (bool& really);
+};
+
+#endif /* __gtk_ardour_nag_h__ */
diff --git a/gtk2_ardour/new_session_dialog.cc b/gtk2_ardour/new_session_dialog.cc
index 4c128d4bf3..e87f201a29 100644
--- a/gtk2_ardour/new_session_dialog.cc
+++ b/gtk2_ardour/new_session_dialog.cc
@@ -17,9 +17,6 @@
*/
-#include "i18n.h"
-#include "new_session_dialog.h"
-
#include <pbd/error.h>
#include <ardour/recent_sessions.h>
@@ -46,6 +43,8 @@ using namespace ARDOUR;
#include "opts.h"
#include "utils.h"
+#include "i18n.h"
+#include "new_session_dialog.h"
NewSessionDialog::NewSessionDialog()
: ArdourDialog ("session control")
@@ -426,6 +425,8 @@ NewSessionDialog::NewSessionDialog()
m_notebook->show();
m_notebook->show_all_children();
+ engine_page_session_folder = X_("");
+ engine_page_session_name = X_("");
set_default_response (Gtk::RESPONSE_OK);
if (!ARDOUR_COMMAND_LINE::session_name.length()) {
@@ -466,7 +467,9 @@ NewSessionDialog::run ()
/* nothing to display */
return Gtk::RESPONSE_OK;
}
-
+ if (!(page_set & NewPage) && !(page_set & OpenPage)) {
+ set_response_sensitive (Gtk::RESPONSE_OK, true);
+ }
return ArdourDialog::run ();
}
@@ -521,13 +524,13 @@ void
NewSessionDialog::set_session_name (const Glib::ustring& name)
{
m_name->set_text (name);
+ engine_page_session_name = name;
}
void
NewSessionDialog::set_session_folder(const Glib::ustring& dir)
{
Glib::ustring realdir = dir;
- char* res;
/* this little tangled mess is a result of 4 things:
@@ -547,15 +550,17 @@ NewSessionDialog::set_session_folder(const Glib::ustring& dir)
char buf[PATH_MAX];
- if((res = realpath (dir.c_str(), buf)) != 0) {
+ if(realpath (dir.c_str(), buf) != 0) {
if (!Glib::file_test (dir, Glib::FILE_TEST_IS_DIR)) {
realdir = Glib::path_get_dirname (realdir);
}
m_folder->set_current_folder (realdir);
+ engine_page_session_folder = realdir;
}
#else
+ char* res;
if (!Glib::file_test (dir, Glib::FILE_TEST_IS_DIR)) {
realdir = Glib::path_get_dirname (realdir);
cerr << "didn't exist, use " << realdir << endl;
@@ -593,6 +598,9 @@ NewSessionDialog::session_name() const
case NewPage:
case EnginePage:
/* new or audio setup pages */
+ if (!(page_set & OpenPage) && !(page_set & NewPage)) {
+ return Glib::filename_from_utf8(engine_page_session_name);
+ }
return Glib::filename_from_utf8(m_name->get_text());
default:
break;
@@ -613,8 +621,12 @@ NewSessionDialog::session_folder() const
return Glib::filename_from_utf8(m_folder->get_filename());
case EnginePage:
+ if (!(page_set & OpenPage) && !(page_set & NewPage)) {
+ /* just engine page, nothing else */
+ return Glib::filename_from_utf8(engine_page_session_folder);
+ }
if (page_set == EnginePage) {
- /* just engine page, nothing else : use m_folder since it should be set */
+ /* use m_folder since it should be set */
return Glib::filename_from_utf8(m_folder->get_filename());
}
break;
diff --git a/gtk2_ardour/new_session_dialog.h b/gtk2_ardour/new_session_dialog.h
index aa6911f360..2d35c2d6bf 100644
--- a/gtk2_ardour/new_session_dialog.h
+++ b/gtk2_ardour/new_session_dialog.h
@@ -216,6 +216,8 @@ protected:
bool on_new_session_page;
bool have_engine;
+ Glib::ustring engine_page_session_folder;
+ Glib::ustring engine_page_session_name;
};
#endif // NEW_SESSION_DIALOG_H
diff --git a/gtk2_ardour/option_editor.cc b/gtk2_ardour/option_editor.cc
index c261aba649..3bd864422e 100644
--- a/gtk2_ardour/option_editor.cc
+++ b/gtk2_ardour/option_editor.cc
@@ -28,6 +28,7 @@
#include <ardour/auditioner.h>
#include <ardour/sndfilesource.h>
#include <ardour/crossfade.h>
+#include <ardour/profile.h>
#include <midi++/manager.h>
#include <midi++/factory.h>
#include <gtkmm2ext/stop_signal.h>
@@ -148,9 +149,11 @@ OptionEditor::OptionEditor (ARDOUR_UI& uip, PublicEditor& ed, Mixer_UI& mixui)
setup_keyboard_options ();
setup_auditioner_editor ();
- notebook.pages().push_back (TabElem (sync_packer, _("Sync")));
- notebook.pages().push_back (TabElem (path_table, _("Paths/Files")));
- notebook.pages().push_back (TabElem (keyboard_mouse_table, _("Kbd/Mouse")));
+ if (!Profile->get_sae()) {
+ notebook.pages().push_back (TabElem (sync_packer, _("Sync")));
+ notebook.pages().push_back (TabElem (path_table, _("Paths/Files")));
+ notebook.pages().push_back (TabElem (keyboard_mouse_table, _("Kbd/Mouse")));
+ }
notebook.pages().push_back (TabElem (click_packer, _("Click")));
notebook.pages().push_back (TabElem (audition_packer, _("Audition")));
notebook.pages().push_back (TabElem (misc_packer, _("Misc")));
diff --git a/gtk2_ardour/panner_ui.cc b/gtk2_ardour/panner_ui.cc
index b1273aa460..3368905ad3 100644
--- a/gtk2_ardour/panner_ui.cc
+++ b/gtk2_ardour/panner_ui.cc
@@ -154,6 +154,7 @@ PannerUI::set_io (boost::shared_ptr<IO> io)
panner = 0;
}
+ setup_pan ();
pan_changed (0);
update_pan_sensitive ();
@@ -225,14 +226,12 @@ PannerUI::get_controllable()
bool
PannerUI::panning_link_button_press (GdkEventButton* ev)
{
- cerr << "link press\n";
return true;
}
bool
PannerUI::panning_link_button_release (GdkEventButton* ev)
{
- cerr << "link release\n";
if (!ignore_toggle) {
_io->panner().set_linked (!_io->panner().linked());
}
@@ -259,7 +258,7 @@ PannerUI::update_pan_linkage ()
bool x = _io->panner().linked();
bool bx = panning_link_button.get_active();
-
+
if (x != bx) {
ignore_toggle = true;
@@ -328,6 +327,7 @@ PannerUI::panner_changed ()
{
ENSURE_GUI_THREAD (mem_fun(*this, &PannerUI::panner_changed));
setup_pan ();
+ pan_changed (0);
}
void
@@ -573,6 +573,7 @@ PannerUI::pan_changed (void *src)
break;
case 2:
+ /* bring pan bar state up to date */
update_pan_bars (false);
break;
@@ -806,7 +807,7 @@ PannerUI::pan_automation_state_changed ()
pan_watching.disconnect();
if (x) {
- pan_watching = ARDOUR_UI::RapidScreenUpdate.connect (mem_fun (*this, &PannerUI::effective_pan_display));
+ pan_watching = ARDOUR_UI::RapidScreenUpdate.connect (mem_fun (*this, &PannerUI::effective_pan_display));
}
}
diff --git a/gtk2_ardour/plugin_eq_gui.cc b/gtk2_ardour/plugin_eq_gui.cc
index bacfbe98b2..307503fc8b 100644
--- a/gtk2_ardour/plugin_eq_gui.cc
+++ b/gtk2_ardour/plugin_eq_gui.cc
@@ -458,7 +458,7 @@ PluginEqGui::plot_impulse_phase(Gtk::Widget *w, cairo_t *cr)
float avgY = 0.0;
int avgNum = 0;
- float width = w->get_width();
+ // float width = w->get_width();
float height = w->get_height();
cairo_set_source_rgba(cr, 0.95, 0.3, 0.2, 1.0);
@@ -508,7 +508,7 @@ PluginEqGui::draw_scales_power(Gtk::Widget *w, cairo_t *cr)
cairo_font_extents_t extents;
cairo_font_extents(cr, &extents);
- float fontXOffset = extents.descent + 1.0;
+ // float fontXOffset = extents.descent + 1.0;
char buf[256];
@@ -607,7 +607,7 @@ PluginEqGui::plot_impulse_amplitude(Gtk::Widget *w, cairo_t *cr)
float avgY = 0.0;
int avgNum = 0;
- float width = w->get_width();
+ // float width = w->get_width();
float height = w->get_height();
cairo_set_source_rgb(cr, 1.0, 1.0, 1.0);
@@ -656,7 +656,7 @@ PluginEqGui::plot_signal_amplitude_difference(Gtk::Widget *w, cairo_t *cr)
float avgY = 0.0;
int avgNum = 0;
- float width = w->get_width();
+ // float width = w->get_width();
float height = w->get_height();
cairo_set_source_rgb(cr, 0.0, 1.0, 0.0);
diff --git a/gtk2_ardour/plugin_selector.h b/gtk2_ardour/plugin_selector.h
index c4b613647d..e5224b4fa7 100644
--- a/gtk2_ardour/plugin_selector.h
+++ b/gtk2_ardour/plugin_selector.h
@@ -46,6 +46,7 @@ class PluginSelector : public ArdourDialog
void on_show ();
Gtk::Menu& plugin_menu ();
+ void show_manager ();
private:
PluginInterestedObject* interested_object;
@@ -129,7 +130,6 @@ class PluginSelector : public ArdourDialog
void plugin_chosen_from_menu (const ARDOUR::PluginInfoPtr&);
Gtk::Menu* _menu;
- void show_manager ();
};
#endif // __ardour_plugin_selector_h__
diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc
index 06d2a04125..dbb5f3969e 100644
--- a/gtk2_ardour/plugin_ui.cc
+++ b/gtk2_ardour/plugin_ui.cc
@@ -183,6 +183,22 @@ PluginUIWindow::on_leave_notify_event (GdkEventCrossing *ev)
return false;
}
+bool
+PluginUIWindow::on_focus_in_event (GdkEventFocus *ev)
+{
+ Window::on_focus_in_event (ev);
+ //Keyboard::the_keyboard().magic_widget_grab_focus ();
+ return false;
+}
+
+bool
+PluginUIWindow::on_focus_out_event (GdkEventFocus *ev)
+{
+ Window::on_focus_out_event (ev);
+ //Keyboard::the_keyboard().magic_widget_drop_focus ();
+ return false;
+}
+
void
PluginUIWindow::on_show ()
{
@@ -295,10 +311,6 @@ PluginUIWindow::create_lv2_editor(boost::shared_ptr<PluginInsert> insert)
bool
PluginUIWindow::on_key_press_event (GdkEventKey* event)
{
- if (non_gtk_gui) {
- return false;
- }
-
if (!key_press_focus_accelerator_handler (*this, event)) {
return PublicEditor::instance().on_key_press_event(event);
} else {
@@ -347,6 +359,20 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
bypass_button.set_name ("PluginBypassButton");
bypass_button.signal_toggled().connect (mem_fun(*this, &PlugUIBase::bypass_toggled));
+ focus_button.add_events (Gdk::ENTER_NOTIFY_MASK|Gdk::LEAVE_NOTIFY_MASK);
+
+ focus_button.signal_button_release_event().connect (mem_fun(*this, &PlugUIBase::focus_toggled));
+ focus_button.add_events (Gdk::ENTER_NOTIFY_MASK|Gdk::LEAVE_NOTIFY_MASK);
+
+ /* these images are not managed, so that we can remove them at will */
+
+ focus_out_image = new Image (get_icon (X_("computer_keyboard")));
+ focus_in_image = new Image (get_icon (X_("computer_keyboard_active")));
+
+ focus_button.add (*focus_out_image);
+
+ ARDOUR_UI::instance()->set_tip (&focus_button, _("Click to focus all keyboard events on this plugin window"), "");
+ ARDOUR_UI::instance()->set_tip (&bypass_button, _("Click to enable/disable this plugin"), "");
}
void
@@ -376,6 +402,7 @@ PlugUIBase::save_plugin_setting ()
prompter.set_prompt(_("Name of New Preset:"));
prompter.add_button (Gtk::Stock::ADD, Gtk::RESPONSE_ACCEPT);
prompter.set_response_sensitive (Gtk::RESPONSE_ACCEPT, false);
+ prompter.set_type_hint (Gdk::WINDOW_TYPE_HINT_UTILITY);
prompter.show_all();
@@ -403,14 +430,29 @@ PlugUIBase::bypass_toggled ()
if ((x = bypass_button.get_active()) == insert->active()) {
insert->set_active (!x);
- if (insert->active()) {
- bypass_button.set_label (_("Bypass"));
- } else {
- bypass_button.set_label (_("Active"));
- }
}
}
+bool
+PlugUIBase::focus_toggled (GdkEventButton* ev)
+{
+ if (Keyboard::the_keyboard().some_magic_widget_has_focus()) {
+ Keyboard::the_keyboard().magic_widget_drop_focus();
+ focus_button.remove ();
+ focus_button.add (*focus_out_image);
+ focus_out_image->show ();
+ ARDOUR_UI::instance()->set_tip (&focus_button, _("Click to focus all keyboard events on this plugin window"), "");
+ } else {
+ Keyboard::the_keyboard().magic_widget_grab_focus();
+ focus_button.remove ();
+ focus_button.add (*focus_in_image);
+ focus_in_image->show ();
+ ARDOUR_UI::instance()->set_tip (&focus_button, _("Click to remove keyboard focus from this plugin window"), "");
+ }
+
+ return true;
+}
+
void
PlugUIBase::update_presets ()
{
diff --git a/gtk2_ardour/plugin_ui.h b/gtk2_ardour/plugin_ui.h
index 2dcaaf188c..b5202a9327 100644
--- a/gtk2_ardour/plugin_ui.h
+++ b/gtk2_ardour/plugin_ui.h
@@ -34,6 +34,8 @@
#include <gtkmm/scrolledwindow.h>
#include <gtkmm/label.h>
#include <gtkmm/menu.h>
+#include <gtkmm/image.h>
+#include <gtkmm/adjustment.h>
#include <gtkmm/togglebutton.h>
#include <gtkmm/socket.h>
#include <gtkmm/comboboxtext.h>
@@ -87,11 +89,16 @@ class PlugUIBase : public virtual sigc::trackable
Gtk::ComboBoxText preset_combo;
Gtk::Button save_button;
Gtk::ToggleButton bypass_button;
+ Gtk::EventBox focus_button;
LatencyGUI latency_gui;
+ Gtk::Image* focus_out_image;
+ Gtk::Image* focus_in_image;
+
void setting_selected();
void save_plugin_setting (void);
+ bool focus_toggled(GdkEventButton*);
void bypass_toggled();
void processor_active_changed (boost::weak_ptr<ARDOUR::Processor> p);
};
@@ -223,6 +230,8 @@ class PluginUIWindow : public Gtk::Window
bool on_enter_notify_event (GdkEventCrossing*);
bool on_leave_notify_event (GdkEventCrossing*);
+ bool on_focus_in_event (GdkEventFocus*);
+ bool on_focus_out_event (GdkEventFocus*);
bool on_key_press_event (GdkEventKey*);
bool on_key_release_event (GdkEventKey*);
void on_show ();
diff --git a/gtk2_ardour/po/de_DE.po b/gtk2_ardour/po/de_DE.po
index 5df81e9209..aacb4ddc2b 100644
--- a/gtk2_ardour/po/de_DE.po
+++ b/gtk2_ardour/po/de_DE.po
@@ -1,921 +1,416 @@
# German translations for gtk-ardour
# Copyright (C) 2003 Paul Davis
# This file is distributed under the same license as the gtk-ardour package.
-# Karsten Petersen <kapet@kapet.de>, 2003.
#
+# Karsten Petersen <kapet@kapet.de>, 2003.
+# Edgar Aichinger <edgar.aichinger@aon.at>, 2008.
msgid ""
msgstr ""
"Project-Id-Version: gtk-ardour 0.347.2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-01-07 12:21+0100\n"
-"PO-Revision-Date: 2008-01-07 17:01+0100\n"
-"Last-Translator: Sebastian Arnold <mail@sebastian-arnold.net>\n"
-"Language-Team: Deutsch <de@li.org>\n"
+"POT-Creation-Date: 2008-10-20 19:01+0100\n"
+"PO-Revision-Date: 2008-11-02 11:27+0100\n"
+"Last-Translator: Edgar Aichinger <edgar.aichinger@aon.at>\n"
+"Language-Team: German <kde-i18n-de@lists.kde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: KBabel 0.9.6\n"
+"X-Generator: Lokalize 0.2\n"
"X-Poedit-Country: GERMANY\n"
-"X-Poedit-Basepath: ../\n"
-
-#: gtk2_ardour/about.cc:120
-msgid "Paul Davis"
-msgstr "Paul Davis"
-
-#: gtk2_ardour/about.cc:121
-msgid "Jesse Chappell"
-msgstr "Jesse Chappell"
-
-#: gtk2_ardour/about.cc:122
-msgid "Taybin Rutkin"
-msgstr "Taybin Rutkin"
-
-#: gtk2_ardour/about.cc:123
-msgid "Marcus Andersson"
-msgstr "Marcus Andersson"
-
-#: gtk2_ardour/about.cc:124
-msgid "Jeremy Hall"
-msgstr "Jeremy Hall"
-
-#: gtk2_ardour/about.cc:125
-msgid "Steve Harris"
-msgstr "Steve Harris"
-
-#: gtk2_ardour/about.cc:126
-msgid "Tim Mayberry"
-msgstr "Tim Mayberry"
-
-#: gtk2_ardour/about.cc:127
-msgid "Mark Stewart"
-msgstr "Mark Stewart"
-
-#: gtk2_ardour/about.cc:128
-msgid "Sam Chessman"
-msgstr "Sam Chessman"
-
-#: gtk2_ardour/about.cc:129
-msgid "Jack O'Quin"
-msgstr "Jack O'Quin"
-
-#: gtk2_ardour/about.cc:130
-msgid "Matt Krai"
-msgstr "Matt Krai"
-
-#: gtk2_ardour/about.cc:131
-msgid "Ben Bell"
-msgstr "Ben Bell"
-
-#: gtk2_ardour/about.cc:132
-msgid "Gerard van Dongen"
-msgstr "Gerard van Dongen"
-
-#: gtk2_ardour/about.cc:133
-msgid "Thomas Charbonnel"
-msgstr "Thomas Charbonnel"
-
-#: gtk2_ardour/about.cc:134
-msgid "Nick Mainsbridge"
-msgstr "Nick Mainsbridge"
-
-#: gtk2_ardour/about.cc:135
-msgid "Colin Law"
-msgstr "Colin Law"
-
-#: gtk2_ardour/about.cc:136
-msgid "Sampo Savolainen"
-msgstr "Sampo Savolainen"
-
-#: gtk2_ardour/about.cc:137
-msgid "Joshua Leach"
-msgstr "Joshua Leach"
-
-#: gtk2_ardour/about.cc:138
-msgid "Rob Holland"
-msgstr "Rob Holland"
-
-#: gtk2_ardour/about.cc:139
-msgid "Per Sigmond"
-msgstr "Per Sigmond"
-
-#: gtk2_ardour/about.cc:140
-msgid "Doug Mclain"
-msgstr "Doug Mclain"
+"X-Poedit-Basepath: ../../\n"
+"X-Poedit-SearchPath-0: gtk2_ardour\n"
-#: gtk2_ardour/about.cc:141
-msgid "Petter Sundlöf"
-msgstr "Petter Sundlöf"
-
-#: gtk2_ardour/about.cc:142
-msgid "Thorsten Wilms"
-msgstr "Thorsten Wilms"
-
-#: gtk2_ardour/about.cc:143
-msgid "Ben Loftis"
-msgstr "Ben Loftis"
-
-#: gtk2_ardour/about.cc:144
-msgid "Stefan Kersten"
-msgstr "Stefan Kersten"
-
-#: gtk2_ardour/about.cc:145
-msgid "Christopher George"
-msgstr "Christopher George"
-
-#: gtk2_ardour/about.cc:146
-msgid "Robert Jordens"
-msgstr "Robert Jordens"
-
-#: gtk2_ardour/about.cc:147
-msgid "Dave Robillard"
-msgstr "Dave Robillard"
-
-#: gtk2_ardour/about.cc:148
-msgid "Hans Fugal"
-msgstr "Hans Fugal"
-
-#: gtk2_ardour/about.cc:149
-msgid "Brian Ahr"
-msgstr "Brian Ahr"
-
-#: gtk2_ardour/about.cc:150
-msgid "Nimal Ratnayake"
-msgstr "Nimal Ratnayake"
-
-#: gtk2_ardour/about.cc:151
-msgid "Mike Täht"
-msgstr "Mike Täht"
-
-#: gtk2_ardour/about.cc:152
-msgid "John Anderson"
-msgstr "John Anderson"
-
-#: gtk2_ardour/about.cc:153
-msgid "Nedko Arnaudov"
-msgstr "Nedko Arnaudov"
-
-#: gtk2_ardour/about.cc:154
-msgid "Carl Hetherington"
-msgstr "Carl Hetherington"
-
-#: gtk2_ardour/about.cc:159
-msgid ""
-"French:\n"
-"\tAlain Fréhel <alain.frehel@free.fr>\n"
-"\tChristophe Combelles <ccomb@free.fr>\n"
-msgstr ""
-"French:\n"
-"\tAlain Fréhel <alain.frehel@free.fr>\n"
-"\tChristophe Combelles <ccomb@free.fr>\n"
-
-#: gtk2_ardour/about.cc:160
-msgid ""
-"German:\n"
-"\tKarsten Petersen <kapet@kapet.de>\n"
-"\tSebastian Arnold <mail@sebastian-arnold.net>\n"
-msgstr ""
-"Deutsch:\n"
-"\tKarsten Petersen <kapet@kapet.de>\n"
-"\tSebastian Arnold <mail@sebastian-arnold.net>\n"
-
-#: gtk2_ardour/about.cc:161
-msgid ""
-"Italian:\n"
-"\tFilippo Pappalardo <filippo@email.it>\n"
+#: gtk2_ardour/canvas-simplerect.c:107
+#: gtk2_ardour/canvas-ruler.c:79
+#: gtk2_ardour/canvas-simpleline.c:111
+msgid "x1"
msgstr ""
-"Italian:\n"
-"\tFilippo Pappalardo <filippo@email.it>\n"
-#: gtk2_ardour/about.cc:162
-msgid ""
-"Portuguese:\n"
-"\tRui Nuno Capela <rncbc@rncbc.org>\n"
+#: gtk2_ardour/canvas-simplerect.c:108
+#: gtk2_ardour/canvas-imageframe.c:111
+#: gtk2_ardour/canvas-ruler.c:80
+#: gtk2_ardour/canvas-simpleline.c:112
+msgid "x coordinate of upper left corner of rect"
msgstr ""
-"Portuguese:\n"
-"\tRui Nuno Capela <rncbc@rncbc.org>\n"
-#: gtk2_ardour/about.cc:163
-msgid ""
-"Brazilian Portuguese:\n"
-"\tAlexander da Franca Fernandes <alexander@nautae.eti.br>\n"
-"\tChris Ross <chris@tebibyte.org>\n"
+#: gtk2_ardour/canvas-simplerect.c:117
+#: gtk2_ardour/canvas-ruler.c:89
+#: gtk2_ardour/canvas-simpleline.c:121
+msgid "y1"
msgstr ""
-"Brazilian Portuguese:\n"
-"\tAlexander da Franca Fernandes <alexander@nautae.eti.br>\n"
-"\tChris Ross <chris@tebibyte.org>\n"
-#: gtk2_ardour/about.cc:165
-msgid ""
-"Spanish:\n"
-"\t Alex Krohn <alexkrohn@fastmail.fm>\n"
+#: gtk2_ardour/canvas-simplerect.c:118
+#: gtk2_ardour/canvas-imageframe.c:121
+#: gtk2_ardour/canvas-ruler.c:90
+#: gtk2_ardour/canvas-simpleline.c:122
+msgid "y coordinate of upper left corner of rect "
msgstr ""
-"Spanish:\n"
-"\t Alex Krohn <alexkrohn@fastmail.fm>\n"
-#: gtk2_ardour/about.cc:166
-msgid ""
-"Russian:\n"
-"\t Igor Blinov <pitstop@nm.ru>\n"
+#: gtk2_ardour/canvas-simplerect.c:128
+#: gtk2_ardour/canvas-ruler.c:100
+#: gtk2_ardour/canvas-simpleline.c:132
+msgid "x2"
msgstr ""
-"Russian:\n"
-"\t Igor Blinov <pitstop@nm.ru>\n"
-#: gtk2_ardour/about.cc:167
-msgid ""
-"Greek:\n"
-"\t Klearchos Gourgourinis <muadib@in.gr>\n"
+#: gtk2_ardour/canvas-simplerect.c:129
+#: gtk2_ardour/canvas-ruler.c:101
+#: gtk2_ardour/canvas-simpleline.c:133
+msgid "x coordinate of lower right corner of rect"
msgstr ""
-"Greek:\n"
-"\t Klearchos Gourgourinis <muadib@in.gr>\n"
-#: gtk2_ardour/about.cc:195
-msgid "Copyright (C) 1999-2007 Paul Davis\n"
-msgstr "Copyright (C) 1999-2007 Paul Davis\n"
-
-#: gtk2_ardour/about.cc:196
-msgid ""
-"Ardour comes with ABSOLUTELY NO WARRANTY\n"
-"This is free software, and you are welcome to redistribute it\n"
-"under certain conditions; see the file COPYING for details.\n"
+#: gtk2_ardour/canvas-simplerect.c:138
+#: gtk2_ardour/canvas-ruler.c:110
+#: gtk2_ardour/canvas-simpleline.c:142
+msgid "y2"
msgstr ""
-"Ardour wird Ihnen OHNE JEGLICHE GEWÄHRLEISTUNG zur Verfügung gestellt.\n"
-"Dies ist freie Software und Sie dürfen sie gerne weiterverbreiten,\n"
-"solange Sie sich an die Bedingungen, die in der Datei COPYING aufgeführt sind halten.\n"
-#: gtk2_ardour/about.cc:201
-msgid "visit http://www.ardour.org/"
-msgstr "besuchen Sie http://www.ardour.org"
-
-#: gtk2_ardour/about.cc:202
-msgid ""
-"%1\n"
-"(built from revision %2)"
+#: gtk2_ardour/canvas-simplerect.c:139
+#: gtk2_ardour/canvas-ruler.c:111
+#: gtk2_ardour/canvas-simpleline.c:143
+msgid "y coordinate of lower right corner of rect "
msgstr ""
-"%1\n"
-"(built from revision %2)"
-#: gtk2_ardour/actions.cc:78
-msgid "badly formatted UI definition file"
-msgstr "die UI Definitionsdatei ist falsch formatiert"
-
-#: gtk2_ardour/actions.cc:80
-msgid "Ardour menu definition file not found"
-msgstr "Konnte die ardour Menü-Definition nicht finden"
-
-#: gtk2_ardour/actions.cc:84
-msgid "ardour will not work without a valid ardour.menus file"
-msgstr "ardour benötigt eine gültige ardour.menus Datei"
-
-#: gtk2_ardour/actions.cc:265
-msgid "programmer error: %1 %2"
-msgstr "Programmierfehler: %1 %2"
-
-#: gtk2_ardour/actions.cc:284
-msgid "Unknown action name: %1"
-msgstr "Unbekannte Aktionsbezeichnung: %1"
-
-#: gtk2_ardour/add_route_dialog.cc:41
-#: gtk2_ardour/add_route_dialog.cc:219
-msgid "Mono"
-msgstr "Mono"
-
-#: gtk2_ardour/add_route_dialog.cc:42
-#: gtk2_ardour/add_route_dialog.cc:221
-msgid "Stereo"
-msgstr "Stereo"
-
-#: gtk2_ardour/add_route_dialog.cc:43
-msgid "3 Channels"
-msgstr "3 Kanäle"
-
-#: gtk2_ardour/add_route_dialog.cc:44
-msgid "4 Channels"
-msgstr "4 Kanäle"
-
-#: gtk2_ardour/add_route_dialog.cc:45
-msgid "6 Channels"
-msgstr "6 Kanäle"
-
-#: gtk2_ardour/add_route_dialog.cc:46
-msgid "8 Channels"
-msgstr "8 Kanäle"
-
-#: gtk2_ardour/add_route_dialog.cc:47
-msgid "Manual Setup"
-msgstr "Manuell"
-
-#: gtk2_ardour/add_route_dialog.cc:52
-#: gtk2_ardour/add_route_dialog.cc:200
-#: gtk2_ardour/time_axis_view.cc:592
-msgid "Normal"
-msgstr "Normal"
-
-#: gtk2_ardour/add_route_dialog.cc:53
-#: gtk2_ardour/add_route_dialog.cc:202
-msgid "Tape"
-msgstr "Tape"
-
-#: gtk2_ardour/add_route_dialog.cc:62
-msgid "ardour: add track/bus"
-msgstr "ardour: Füge Spur/Bus hinzu"
-
-#: gtk2_ardour/add_route_dialog.cc:63
-msgid "Tracks"
-msgstr "Audiospuren"
-
-#: gtk2_ardour/add_route_dialog.cc:64
-msgid "Busses"
-msgstr "Busse"
+#: gtk2_ardour/canvas-simplerect.c:149
+msgid "outline pixels"
+msgstr "Pixelbreite der Umrandung"
-#: gtk2_ardour/add_route_dialog.cc:113
-#: gtk2_ardour/plugin_ui.cc:220
-msgid "Add"
-msgstr "Hinzufügen"
+#: gtk2_ardour/canvas-simplerect.c:150
+msgid "width in pixels of outline"
+msgstr "Pixelbreite der Umrandung"
-#: gtk2_ardour/add_route_dialog.cc:131
-msgid "Name (template)"
-msgstr "Name für Mixer-Vorlage"
+#: gtk2_ardour/canvas-simplerect.c:160
+msgid "outline what"
+msgstr "abzugrenzende Ränder"
-#: gtk2_ardour/add_route_dialog.cc:137
-msgid "Channel Configuration"
-msgstr "Kanaleinstellungen"
+#: gtk2_ardour/canvas-simplerect.c:161
+msgid "which boundaries to outline (mask)"
+msgstr "abzugrenzende Ränder"
-#: gtk2_ardour/ardour_ui.cc:114
-msgid ""
-"pre\n"
-"roll"
-msgstr ""
-"pre\n"
-"roll"
+#: gtk2_ardour/canvas-simplerect.c:172
+msgid "fill"
+msgstr "füllen"
-#: gtk2_ardour/ardour_ui.cc:115
-msgid ""
-"post\n"
-"roll"
-msgstr ""
-"post\n"
-"roll"
+#: gtk2_ardour/canvas-simplerect.c:173
+msgid "fill rectangle"
+msgstr "Rechteck füllen"
-#: gtk2_ardour/ardour_ui.cc:141
-msgid "% "
-msgstr ""
+#: gtk2_ardour/canvas-simplerect.c:180
+msgid "draw"
+msgstr "zeichnen"
-#: gtk2_ardour/ardour_ui.cc:143
-#: gtk2_ardour/ardour_ui_ed.cc:306
-msgid "Punch In"
-msgstr "Punch In"
+#: gtk2_ardour/canvas-simplerect.c:181
+msgid "draw rectangle"
+msgstr "Rechteck zeichnen"
-#: gtk2_ardour/ardour_ui.cc:144
-#: gtk2_ardour/ardour_ui_ed.cc:309
-msgid "Punch Out"
-msgstr "Punch Out"
+#: gtk2_ardour/canvas-simplerect.c:189
+msgid "outline color rgba"
+msgstr "Rahmenfarbe RGBA"
-#: gtk2_ardour/ardour_ui.cc:145
-#: gtk2_ardour/ardour_ui_ed.cc:321
-msgid "Auto Return"
-msgstr "Auto Return"
+#: gtk2_ardour/canvas-simplerect.c:190
+msgid "color of outline"
+msgstr "Rahmenfarbe"
-#: gtk2_ardour/ardour_ui.cc:146
-#: gtk2_ardour/ardour_ui_ed.cc:318
-msgid "Auto Play"
-msgstr "Auto Play"
+#: gtk2_ardour/canvas-simplerect.c:200
+msgid "fill color rgba"
+msgstr "Füllfarbe RGBA"
-#: gtk2_ardour/ardour_ui.cc:147
-#: gtk2_ardour/ardour_ui_ed.cc:315
-msgid "Auto Input"
-msgstr "Auto Input"
+#: gtk2_ardour/canvas-simplerect.c:201
+#: gtk2_ardour/canvas-ruler.c:133
+msgid "color of fill"
+msgstr "Füllfarbe"
-#: gtk2_ardour/ardour_ui.cc:148
-#: gtk2_ardour/ardour_ui_ed.cc:312
-#: gtk2_ardour/option_editor.cc:147
-msgid "Click"
-msgstr "Click"
+#: gtk2_ardour/canvas-imageframe.c:104
+msgid "pixbuf"
+msgstr "Pixbuffer"
-#: gtk2_ardour/ardour_ui.cc:149
-msgid ""
-"time\n"
-"master"
-msgstr ""
-"Time\n"
-"Master"
+#: gtk2_ardour/canvas-imageframe.c:105
+msgid "the pixbuf"
+msgstr "Pixbuffer"
-#: gtk2_ardour/ardour_ui.cc:151
-msgid "AUDITION"
-msgstr "VORHÖREN"
+#: gtk2_ardour/canvas-imageframe.c:110
+msgid "x"
+msgstr "x"
-#: gtk2_ardour/ardour_ui.cc:152
-msgid "SOLO"
-msgstr "SOLO"
+#: gtk2_ardour/canvas-imageframe.c:120
+msgid "y"
+msgstr "y"
-#: gtk2_ardour/ardour_ui.cc:154
-msgid "Errors"
-msgstr "Fehlermeldungen"
+#: gtk2_ardour/canvas-imageframe.c:129
+msgid "width"
+msgstr "Breite"
-#: gtk2_ardour/ardour_ui.cc:237
-msgid "could not initialize Ardour."
-msgstr "Konnte ardour nicht initialisieren."
+#: gtk2_ardour/canvas-imageframe.c:130
+msgid "the width"
+msgstr "Breite"
-#: gtk2_ardour/ardour_ui.cc:548
-msgid "Ardour could not start JACK"
-msgstr "Ardour konnte JACK nicht starten"
+#: gtk2_ardour/canvas-imageframe.c:139
+msgid "drawwidth"
+msgstr "gezeichnete Breite"
-#: gtk2_ardour/ardour_ui.cc:550
-msgid "Ardour could not connect to JACK."
-msgstr "ardour konnte nicht zu JACK verbinden."
+#: gtk2_ardour/canvas-imageframe.c:140
+msgid "drawn width"
+msgstr "gezeichnete Breite"
-#: gtk2_ardour/ardour_ui.cc:559
-msgid ""
-"There are several possible reasons:\n"
-"\n"
-"1) You requested audio parameters that are not supported..\n"
-"2) JACK is running as another user.\n"
-"\n"
-"Please consider the possibilities, and perhaps try different parameters."
-msgstr ""
-"Dafür kann es verschiedene Gründe geben:\n"
-"\n"
-"1) Sie haben nicht unterstützte Audioeinstellungen gewählt.\n"
-"2) JACK wurde unter einem anderen Benutzer gestartet.\n"
-"\n"
-"Betrachten Sie bitte diese Möglichkeiten und verwenden sie ggf. andere Einstellungen."
+#: gtk2_ardour/canvas-imageframe.c:148
+msgid "height"
+msgstr "Höhe"
-#: gtk2_ardour/ardour_ui.cc:566
-msgid ""
-"There are several possible reasons:\n"
-"\n"
-"1) JACK is not running.\n"
-"2) JACK is running as another user, perhaps root.\n"
-"3) There is already another client called \"ardour\".\n"
-"\n"
-"Please consider the possibilities, and perhaps (re)start JACK."
-msgstr ""
-"Dafür kann es verschiedene Gründe geben:\n"
-"\n"
-"1) JACK läuft nicht.\n"
-"2) JACK wurde unter einem anderen Benutzer gestartet, möglicherweise als root.\n"
-"3) Es gibt bereits einen anderen Client mit der Bezeichnung \"ardour\".\n"
-"\n"
-"Betrachten Sie bitte diese Möglichkeiten und starten Sie JACK neu, wenn dies notwendig sein sollte."
+#: gtk2_ardour/canvas-imageframe.c:149
+msgid "the height"
+msgstr "Höhe"
-#: gtk2_ardour/ardour_ui.cc:615
-msgid "Could not find command line session \"%1\""
-msgstr "Konnte das per Kommandozeile übergebene Projekt nicht laden: \"%1\""
+#: gtk2_ardour/canvas-imageframe.c:157
+msgid "anchor"
+msgstr "Anker"
-#: gtk2_ardour/ardour_ui.cc:633
-msgid ""
-"\n"
-"\n"
-"No session named \"%1\" exists.\n"
-"To create it from the command line, start ardour as:\n"
-" ardour --new %1"
-msgstr ""
-"\n"
-"\n"
-"Es existiert kein Projekt mit dem Namen \"%1\".\n"
-"Um es von der Kommandozeile aus zu erstellen, starten Sie ardour mit:\n"
-" ardour --new %1"
+#: gtk2_ardour/canvas-imageframe.c:158
+msgid "the anchor"
+msgstr "Anker"
-#: gtk2_ardour/ardour_ui.cc:702
-msgid ""
-"WARNING: Your system has a limit for maximum amount of locked memory. This might cause Ardour to run out of memory before your system runs out of memory. \n"
-"\n"
-"You can view the memory limit with 'ulimit -l', and it is normally controlled by /etc/security/limits.conf"
+#: gtk2_ardour/canvas-ruler.c:121
+msgid "frames_per_unit"
msgstr ""
-"WARNUNG: Ihr System hat eine Begrenzung für die Reservierung von Arbeitsspeicher eingestellt. Dies könnte dazu führen, dass Ardour zu schnell der Speicher ausgeht.\n"
-"\n"
-"Sie können die Speicherbegrenzung mit 'ulimit -l' einsehen und normalerweise in /etc/security/limits.conf verändern."
-#: gtk2_ardour/ardour_ui.cc:710
-msgid "Do not show this window again"
-msgstr "Diese Meldung nicht wieder anzeigen"
+#: gtk2_ardour/canvas-ruler.c:122
+#, fuzzy
+msgid "frames_per_unit of ruler"
+msgstr "Obere Grenze für das Lineal"
-#: gtk2_ardour/ardour_ui.cc:730
-msgid "quit"
-msgstr "Beenden"
+#: gtk2_ardour/canvas-ruler.c:132
+msgid "fill color"
+msgstr "Füllfarbe"
-#: gtk2_ardour/ardour_ui.cc:739
-msgid ""
-"Ardour was unable to save your session.\n"
-"\n"
-"If you still wish to quit, please use the\n"
-"\n"
-"\"Just quit\" option."
-msgstr ""
-"ardour konnte das Projekt nicht speichern.\n"
-"\n"
-"Wenn Sie trotzdem beenden wollen, wählen Sie bitte\n"
-"\n"
-"\"Trotzdem beenden\"."
+#: gtk2_ardour/canvas-ruler.c:143
+msgid "tick color"
+msgstr "Häkchenfarbe"
-#: gtk2_ardour/ardour_ui.cc:763
-msgid "ardour: save session?"
-msgstr "ardour: Projekt speichern?"
+#: gtk2_ardour/canvas-ruler.c:144
+msgid "color of tick"
+msgstr "Häkchenfarbe"
-#: gtk2_ardour/ardour_ui.cc:770
-msgid "Don't %1"
-msgstr "Abbrechen"
+#: gtk2_ardour/canvas-simpleline.c:151
+msgid "color rgba"
+msgstr "RGBA-Farbe"
-#: gtk2_ardour/ardour_ui.cc:772
-msgid "Just %1"
-msgstr "%1"
+#: gtk2_ardour/canvas-simpleline.c:152
+msgid "color of line"
+msgstr "Linienfarbe"
-#: gtk2_ardour/ardour_ui.cc:774
-msgid "Save and %1"
-msgstr "Speichern und %1"
+#: gtk2_ardour/gtk-custom-ruler.c:126
+msgid "Lower"
+msgstr "Untergrenze"
-#: gtk2_ardour/ardour_ui.cc:786
-msgid "session"
-msgstr "Das Projekt"
+#: gtk2_ardour/gtk-custom-ruler.c:127
+msgid "Lower limit of ruler"
+msgstr "Untere Grenze des Lineals"
-#: gtk2_ardour/ardour_ui.cc:788
-msgid "snapshot"
-msgstr "Der Schnappschuss"
+#: gtk2_ardour/gtk-custom-ruler.c:136
+msgid "Upper"
+msgstr "Obergrenze"
-#: gtk2_ardour/ardour_ui.cc:790
-msgid ""
-"The %1\"%2\"\n"
-"has not been saved.\n"
-"\n"
-"Any changes made this time\n"
-"will be lost unless you save it.\n"
-"\n"
-"What do you want to do?"
-msgstr ""
-"%1 \"%2\" wurde nicht gespeichert.\n"
-"\n"
-"Alle Änderungen werden verloren gehen wenn Sie nicht speichern.\n"
-"\n"
-"Wie wollen Sie vorgehen?"
+#: gtk2_ardour/gtk-custom-ruler.c:137
+msgid "Upper limit of ruler"
+msgstr "Obere Grenze für das Lineal"
-#: gtk2_ardour/ardour_ui.cc:804
-msgid "Prompter"
-msgstr "Frage"
+#: gtk2_ardour/gtk-custom-ruler.c:146
+msgid "Position"
+msgstr "Position"
-#: gtk2_ardour/ardour_ui.cc:866
-#, c-format
-msgid "disconnected"
-msgstr "getrennt"
+#: gtk2_ardour/gtk-custom-ruler.c:147
+msgid "Position of mark on the ruler"
+msgstr "Position der Markierung auf dem Lineal"
-#: gtk2_ardour/ardour_ui.cc:873
-#, c-format
-msgid "%.1f kHz / %4.1f ms"
-msgstr "%.1f kHz / %4.1f ms"
+#: gtk2_ardour/gtk-custom-ruler.c:156
+msgid "Max Size"
+msgstr "Maximale Größe"
-#: gtk2_ardour/ardour_ui.cc:877
-#, c-format
-msgid "%u kHz / %4.1f ms"
-msgstr "%u kHz / %4.1f ms"
+#: gtk2_ardour/gtk-custom-ruler.c:157
+msgid "Maximum size of the ruler"
+msgstr "Minimal Größe des Lineals"
-#: gtk2_ardour/ardour_ui.cc:890
-#, c-format
-msgid "DSP: %5.1f%%"
-msgstr "DSP: %5.1f%%"
+#: gtk2_ardour/gtk-custom-ruler.c:166
+msgid "Show Position"
+msgstr "Zeige Position"
-#: gtk2_ardour/ardour_ui.cc:900
-#, c-format
-msgid "Buffers p:%<PRIu32>%% c:%<PRIu32>%%"
-msgstr "Buffer p:%<PRIu32>%% c:%<PRIu32>%%"
+#: gtk2_ardour/gtk-custom-ruler.c:167
+msgid "Draw current ruler position"
+msgstr "Zeige aktuelle Position des Lineals"
-#: gtk2_ardour/ardour_ui.cc:928
-msgid "Disk: 24hrs+"
-msgstr "HD: >24 Std."
+#: gtk2_ardour/export_range_markers_dialog.cc:41
+msgid "ardour: export ranges"
+msgstr "ardour: Bereiche Exportieren"
-#: gtk2_ardour/ardour_ui.cc:948
-#, c-format
-msgid "Disk: %02dh:%02dm:%02ds"
-msgstr "HD: %02dh:%02dm:%02ds"
+#: gtk2_ardour/export_range_markers_dialog.cc:42
+msgid "Export to Directory"
+msgstr "In Verzeichnis exportieren"
-#: gtk2_ardour/ardour_ui.cc:1061
-#: gtk2_ardour/new_session_dialog.cc:365
-msgid "Recent Sessions"
-msgstr "Zuletzt verwendete Projekte"
+#: gtk2_ardour/export_range_markers_dialog.cc:143
+msgid "Please enter a valid target directory."
+msgstr "Bitte geben Sie ein gültiges Zielverzeichis an."
-#: gtk2_ardour/ardour_ui.cc:1150
-msgid ""
-"Ardour is not connected to JACK\n"
-"You cannot open or close sessions in this condition"
+#: gtk2_ardour/export_range_markers_dialog.cc:151
+msgid "Please select an existing target directory. Files are not allowed!"
msgstr ""
-"Ardour ist derzeit nicht mit JACK verbunden.\n"
-"Es ist nicht möglich, neue Projekte zu erstellen."
-
-#: gtk2_ardour/ardour_ui.cc:1174
-msgid "open session"
-msgstr "Projekt öffnen"
-
-#: gtk2_ardour/ardour_ui.cc:1181
-msgid "Ardour sessions"
-msgstr "ardour-Projekte"
-
-#: gtk2_ardour/ardour_ui.cc:1214
-msgid "Patience is a virtue.\n"
-msgstr "Geduld ist eine Tugend.\n"
-
-#: gtk2_ardour/ardour_ui.cc:1224
-msgid "You cannot add a track or bus without a session already loaded."
-msgstr "Sie können erst Spuren oder Busse hinzufügen, wenn ein Projekt geladen wurde."
-
-#: gtk2_ardour/ardour_ui.cc:1234
-#: gtk2_ardour/ardour_ui.cc:1247
-msgid "could not create a new audio track"
-msgstr "Konnte neue Spur nicht erstellen."
-
-#: gtk2_ardour/ardour_ui.cc:1236
-msgid "could only create %1 of %2 new audio %3"
-msgstr "Konnte nur %1 von %2 neuen %3 erstellen"
-
-#: gtk2_ardour/ardour_ui.cc:1237
-msgid "tracks"
-msgstr "Spuren"
+"Bitte wählen Sie ein vorhandenes Zielverzeichnis aus.\n"
+"Dateien sind nicht möglich."
-#: gtk2_ardour/ardour_ui.cc:1237
-msgid "busses"
-msgstr "Audio-Bussen"
+#: gtk2_ardour/export_range_markers_dialog.cc:160
+msgid "Cannot write file in: "
+msgstr "Konnte Datei nicht in Verzeichnis schreiben:"
-#: gtk2_ardour/ardour_ui.cc:1249
-msgid "could not create %1 new audio tracks"
-msgstr "Konnte %1 neue Spuren nicht erstellen."
+#: gtk2_ardour/audio_region_editor.cc:48
+msgid "NAME:"
+msgstr "Name:"
-#: gtk2_ardour/ardour_ui.cc:1270
-msgid ""
-"There are insufficient JACK ports available\n"
-"to create a new track or bus.\n"
-"You should save Ardour, exit and\n"
-"restart JACK with more ports."
-msgstr ""
-"Es sind nicht genügend JACK Ports verfügbar\n"
-"um neue Spuren oder Busse zu erstellen.\n"
-"Speichern Sie Ihr Projekt und starten Sie\n"
-"ardour sowie JACK mit einer größeren\n"
-"Anzahl Ports erneut."
+#: gtk2_ardour/audio_region_editor.cc:49
+msgid "play"
+msgstr "Play"
-#: gtk2_ardour/ardour_ui.cc:1390
-msgid ""
-"Please create 1 or more track\n"
-"before trying to record.\n"
-"Check the Session menu."
-msgstr ""
-"Bitte fügen Sie mindestens eine weitere Spur hinzu,\n"
-"bevor Sie aufnehmen.\n"
-"Weitere Einstellungen finden Sie im Projektmenü."
+#: gtk2_ardour/audio_region_editor.cc:68
+msgid "audition this region"
+msgstr "Diese Region Vorhören"
-#: gtk2_ardour/ardour_ui.cc:1645
-msgid ""
-"JACK has either been shutdown or it\n"
-"disconnected Ardour because Ardour\n"
-"was not fast enough. You can save the\n"
-"session and/or try to reconnect to JACK ."
-msgstr ""
-"JACK wurde entweder beendet oder\n"
-"hat ardour getrennt weil Ardour nicht\n"
-"schnell genug war. Sie sollten versuchen,\n"
-"das Projekt zu speichern und erneut mit JACK zu verbinden."
+#: gtk2_ardour/audio_region_editor.cc:83
+msgid "START:"
+msgstr "Beginn:"
-#: gtk2_ardour/ardour_ui.cc:1662
-msgid "Unable to start the session running"
-msgstr "Konnte das aktuelle Projekt nicht starten"
+#: gtk2_ardour/audio_region_editor.cc:85
+msgid "END:"
+msgstr "Ende:"
-#: gtk2_ardour/ardour_ui.cc:1753
-#: gtk2_ardour/ardour_ui.cc:1772
-#: gtk2_ardour/audio_clock.cc:508
-msgid "none"
-msgstr "keine"
+#: gtk2_ardour/audio_region_editor.cc:87
+msgid "LENGTH:"
+msgstr "Länge:"
-#: gtk2_ardour/ardour_ui.cc:1762
-#: gtk2_ardour/ardour_ui.cc:1781
-msgid "off"
-msgstr "aus"
+#: gtk2_ardour/audio_region_editor.cc:123
+msgid "Region %1"
+msgstr "Region %1"
-#: gtk2_ardour/ardour_ui.cc:1807
-msgid "Name of New Snapshot"
-msgstr "Name für neuen Schnappschuss"
+#: gtk2_ardour/audio_region_editor.cc:204
+msgid "change region start position"
+msgstr "Startposition der Region ändern"
-#: gtk2_ardour/ardour_ui.cc:1959
-msgid "Name for mix template:"
-msgstr "Name für Mixer-Vorlage"
+#: gtk2_ardour/audio_region_editor.cc:221
+msgid "change region end position"
+msgstr "Endposition der Region ändern"
-#: gtk2_ardour/ardour_ui.cc:1960
-msgid "-template"
-msgstr "Vorlage"
+#: gtk2_ardour/audio_region_editor.cc:242
+msgid "change region length"
+msgstr "Länge der Region verändern"
-#: gtk2_ardour/ardour_ui.cc:1989
-msgid ""
-"Welcome to Ardour.\n"
-"\n"
-"The program will take a bit longer to start up\n"
-"while the system fonts are checked.\n"
-"\n"
-"This will only be done once, and you will\n"
-"not see this message again\n"
-msgstr ""
-"Willkommen bei Ardour.\n"
-"\n"
-"Der Programmstart wird etwas länger dauern,\n"
-"da die Systemschriften geprüft werden.\n"
-"\n"
-"Diese Meldung wird nur dieses eine Mal\n"
-"auftauchen.\n"
+#: gtk2_ardour/theme_manager.cc:52
+msgid "Object"
+msgstr "Element"
-#: gtk2_ardour/ardour_ui.cc:2039
-msgid "Ardour cannot understand \"%1\" as a session name"
-msgstr "Ardour kann \"%1\" nicht als Projektnamen benutzen"
+#: gtk2_ardour/theme_manager.cc:53
+msgid "Color"
+msgstr "Farbe"
-#: gtk2_ardour/ardour_ui.cc:2074
-#: gtk2_ardour/ardour_ui.cc:2131
-msgid "Starting audio engine"
-msgstr "Starte Audio Engine"
+#: gtk2_ardour/theme_manager.cc:185
+msgid "Unable to find UI style file %1. Ardour will look strange"
+msgstr "Kann die UI-Style Datei %1 nicht finden. Ardour wird merkwürdig aussehen."
-#: gtk2_ardour/ardour_ui.cc:2249
-msgid ""
-"This session\n"
-"%1\n"
-"already exists. Do you want to open it?"
-msgstr ""
-"Das Projekt\n"
-"%1\n"
-"existiert bereits. Wollen Sie sie öffnen?"
+#: gtk2_ardour/generic_pluginui.cc:80
+msgid "<span size=\"large\">Presets</span>"
+msgstr "<span size=\"large\">Voreinstellungen</span>"
-#: gtk2_ardour/ardour_ui.cc:2430
-msgid ""
-"You do not have write access to this session.\n"
-"This prevents the session from being loaded."
-msgstr ""
-"Sie haben keinen Schreibzugriff auf dieses Projekt.\n"
-"Dadurch kann das Projekt nicht geladen werden."
+#: gtk2_ardour/generic_pluginui.cc:171
+#: gtk2_ardour/ardour_ui_ed.cc:743
+msgid "Controls"
+msgstr "Steuerelemente"
-#: gtk2_ardour/ardour_ui.cc:2437
-msgid "Please wait while Ardour loads your session"
-msgstr "Bitte warten Sie, während Ardour das Projekt lädt"
+#: gtk2_ardour/generic_pluginui.cc:208
+msgid "Plugin Editor: could not build control element for port %1"
+msgstr "Plugin Editor: konnte kein Steuerelement für Port %1 erzeugen"
-#: gtk2_ardour/ardour_ui.cc:2448
-msgid "Session \"%1 (snapshot %2)\" did not load successfully"
-msgstr "Projekt \"%1 (Schnappschuss %2)\" konnte nicht geladen werden."
+#: gtk2_ardour/generic_pluginui.cc:298
+msgid "Automation control"
+msgstr "Automation"
-#: gtk2_ardour/ardour_ui.cc:2453
+#: gtk2_ardour/generic_pluginui.cc:305
#, fuzzy
-msgid "Loading Error"
-msgstr "Programmierfehler:"
-
-#: gtk2_ardour/ardour_ui.cc:2454
-msgid "Click the OK button to try again."
-msgstr "Klicken Sie auf OK, um es erneut zu versuchen."
-
-#: gtk2_ardour/ardour_ui.cc:2527
-msgid "Could not create session in \"%1\""
-msgstr "Konnte kein Projekt in \"%1\" anlegen"
-
-#: gtk2_ardour/ardour_ui.cc:2587
-msgid "No audio files were ready for cleanup"
-msgstr "Keine Audiodateien zum Aufräumen vorhanden"
-
-#: gtk2_ardour/ardour_ui.cc:2591
-msgid ""
-"If this seems suprising, \n"
-"check for any existing snapshots.\n"
-"These may still include regions that\n"
-"require some unused files to continue to exist."
-msgstr ""
-"Falls trotzdem nicht benötigte Dateien\n"
-"existieren, welche hier nicht erkannt werden,\n"
-"sind sie wahrscheinlich noch in einem\n"
-"älteren Schnappschuss als Region eingebunden."
-
-#: gtk2_ardour/ardour_ui.cc:2600
-msgid "ardour: cleanup"
-msgstr "ardour: Aufräumen"
-
-#: gtk2_ardour/ardour_ui.cc:2636
-#: gtk2_ardour/ardour_ui.cc:2642
-msgid "files were"
-msgstr "folgenden Dateien wurden"
-
-#: gtk2_ardour/ardour_ui.cc:2638
-#: gtk2_ardour/ardour_ui.cc:2644
-msgid "file was"
-msgstr "folgende Datei wurde"
+msgid "Mgnual"
+msgstr "Manuell"
-#: gtk2_ardour/ardour_ui.cc:2685
-msgid "Are you sure you want to cleanup?"
-msgstr "Sind Sie sicher, dass Sie aufräumen wollen?"
+#: gtk2_ardour/generic_pluginui.cc:335
+#: gtk2_ardour/generic_pluginui.cc:606
+#: gtk2_ardour/gain_meter.cc:182
+msgid "Manual"
+msgstr "Manuell"
-#: gtk2_ardour/ardour_ui.cc:2690
-msgid ""
-"Cleanup is a destructive operation.\n"
-"ALL undo/redo information will be lost if you cleanup.\n"
-"After cleanup, unused audio files will be moved to a \"dead sounds\" location."
-msgstr ""
-"Das Aufräumen ist eine destruktive Operation.\n"
-"Sämtliche Wiederherstellungsinformationen gehen verloren, wenn Sie aufräumen.\n"
-"Nach dem Aufräumen werden alle nicht benötigten Audiodateien in einen \"dead sounds\" Ordner verschoben."
+#: gtk2_ardour/generic_pluginui.cc:338
+#: gtk2_ardour/generic_pluginui.cc:608
+#: gtk2_ardour/gain_meter.cc:184
+msgid "Play"
+msgstr "Wiedergabe"
-#: gtk2_ardour/ardour_ui.cc:2696
-msgid "Clean Up"
-msgstr "Aufräumen"
+#: gtk2_ardour/generic_pluginui.cc:341
+#: gtk2_ardour/generic_pluginui.cc:610
+#: gtk2_ardour/gain_meter.cc:186
+msgid "Write"
+msgstr "Schreiben"
-#: gtk2_ardour/ardour_ui.cc:2699
-msgid "CleanupDialog"
-msgstr ""
+#: gtk2_ardour/generic_pluginui.cc:344
+#: gtk2_ardour/generic_pluginui.cc:612
+#: gtk2_ardour/gain_meter.cc:188
+msgid "Touch"
+msgstr "Ändern"
-#: gtk2_ardour/ardour_ui.cc:2727
-msgid "cleaned files"
-msgstr "aufgeräumte Dateien"
+#: gtk2_ardour/generic_pluginui.cc:347
+msgid "???"
+msgstr "???"
-#: gtk2_ardour/ardour_ui.cc:2728
-msgid ""
-"The following %1 %2 not in use and \n"
-"have been moved to:\n"
-"%3. \n"
-"\n"
-"Flushing the wastebasket will \n"
-"release an additional\n"
-"%4 %5bytes of disk space.\n"
-msgstr ""
-"Die %1 %2 nicht benötigt und\n"
-"verschoben nach:\n"
-"%3. \n"
-"\n"
-"Wenn Sie den Müll leeren werden weitere\n"
-"%4 %5byte Speicherplatz frei.\n"
+#: gtk2_ardour/gain_meter.cc:117
+#: gtk2_ardour/gain_meter.cc:362
+#: gtk2_ardour/gain_meter.cc:723
+msgid "-inf"
+msgstr "-inf"
-#: gtk2_ardour/ardour_ui.cc:2756
-msgid "deleted file"
-msgstr "gelöschte Datei"
+#: gtk2_ardour/gain_meter.cc:123
+#: gtk2_ardour/gain_meter.cc:769
+msgid "Fader automation mode"
+msgstr "Fader Automationsmodus"
-#: gtk2_ardour/ardour_ui.cc:2757
-msgid ""
-"The following %1 %2 deleted from\n"
-"%3,\n"
-"releasing %4 %5bytes of disk space"
-msgstr ""
-"Die %1 %2 gelöscht aus\n"
-"%3,\n"
-"und machten %4 %5byte Speicherplatz frei"
+#: gtk2_ardour/gain_meter.cc:124
+#: gtk2_ardour/gain_meter.cc:770
+msgid "Fader automation type"
+msgstr "Fader-Automationstyp"
-#: gtk2_ardour/ardour_ui.cc:2875
-msgid "Recording was stopped because your system could not keep up."
-msgstr "Die Aufnahme wurde gestoppt, da Ihr System nicht schnell genug folgen konnte."
+#: gtk2_ardour/gain_meter.cc:132
+#: gtk2_ardour/gain_meter.cc:658
+msgid "Trim"
+msgstr "Abschneiden"
-#: gtk2_ardour/ardour_ui.cc:2886
-msgid ""
-"The disk system on your computer\n"
-"was not able to keep up with Ardour.\n"
-"\n"
-"Specifically, it failed to write data to disk\n"
-"quickly enough to keep up with recording.\n"
-msgstr ""
-"Ihre Festplatte war nicht schnell genug,\n"
-"um ardour zu folgen.\n"
-"\n"
-"Die Daten konnten nicht schnell genug geschrieben\n"
-"werden, um die Aufnahme fortzuführen.\n"
+#: gtk2_ardour/gain_meter.cc:133
+#: gtk2_ardour/gain_meter.cc:662
+msgid "Abs"
+msgstr "Abs"
-#: gtk2_ardour/ardour_ui.cc:2905
-msgid ""
-"The disk system on your computer\n"
-"was not able to keep up with Ardour.\n"
-"\n"
-"Specifically, it failed to read data from disk\n"
-"quickly enough to keep up with playback.\n"
-msgstr ""
-"Ihre Festplatte war nicht schnell genug,\n"
-"um ardour zu folgen.\n"
-"\n"
-"Die Daten konnten nicht schnell genug gelesen\n"
-"werden, um die Wiedergabe aufrechtzuerhalten.\n"
+#: gtk2_ardour/gain_meter.cc:287
+msgid "-Inf"
+msgstr "-Inf"
-#: gtk2_ardour/ardour_ui.cc:2926
-msgid ""
-"This session appears to have been in\n"
-"middle of recording when ardour or\n"
-"the computer was shutdown.\n"
-"\n"
-"Ardour can recover any captured audio for\n"
-"you, or it can ignore it. Please decide\n"
-"what you would like to do.\n"
-msgstr ""
-"Es scheint, dass dieses Projekt während\n"
-"einer Aufnahme abgebrochen oder\n"
-"geschlossen wurde.\n"
-"\n"
-"Ardour kann die Aufgenommenen Audiodaten\n"
-"für Sie wiederherstellen oder sie verwerfen.\n"
-"Bitte entscheiden Sie, wie Sie vorgehen möchten.\n"
+#: gtk2_ardour/gain_meter.cc:473
+#: gtk2_ardour/gain_meter.cc:488
+msgid "meter point change"
+msgstr "Taktwechsel ändern"
-#: gtk2_ardour/ardour_ui.cc:2936
-msgid "Recover from crash"
-msgstr "Daten wiederherstellen"
+#: gtk2_ardour/gain_meter.cc:626
+msgid "M"
+msgstr "M"
-#: gtk2_ardour/ardour_ui.cc:2937
-msgid "Ignore crash data"
-msgstr "Daten verwerfen"
+#: gtk2_ardour/gain_meter.cc:629
+msgid "P"
+msgstr "P"
-#: gtk2_ardour/ardour_ui.cc:2955
-msgid "Could not disconnect from JACK"
-msgstr "Konnte Verbindung mit JACK nicht trennen"
+#: gtk2_ardour/gain_meter.cc:632
+msgid "T"
+msgstr "T"
-#: gtk2_ardour/ardour_ui.cc:2968
-msgid "Could not reconnect to JACK"
-msgstr "Konnte nicht erneut zu JACK verbinden"
+#: gtk2_ardour/gain_meter.cc:635
+msgid "W"
+msgstr "W"
#: gtk2_ardour/ardour_ui2.cc:62
msgid "UI: cannot setup editor"
@@ -975,11 +470,11 @@ msgstr "Automatisches Input Monitoring aktivieren"
#: gtk2_ardour/ardour_ui2.cc:292
msgid "Start recording at auto-punch start"
-msgstr "Beginnt die Aufnahme bei Auto-Punch Start"
+msgstr "Aufnahme am Anfang des Punch-Bereichs beginnen"
#: gtk2_ardour/ardour_ui2.cc:293
msgid "Stop recording at auto-punch end"
-msgstr "Beginnt die Aufnahme bei Auto-Punch Ende"
+msgstr "Aufnahme am Ende des Punch-Bereichs beenden"
#: gtk2_ardour/ardour_ui2.cc:294
msgid "Enable/Disable audio click"
@@ -991,7 +486,7 @@ msgstr "Positionsbezogene Sync-quelle"
#: gtk2_ardour/ardour_ui2.cc:296
msgid "Does Ardour control the time?"
-msgstr "Bestimmt ardour die Time?"
+msgstr "Bestimmt Ardour die Time?"
#: gtk2_ardour/ardour_ui2.cc:297
msgid "Shuttle speed control"
@@ -1031,15 +526,13 @@ msgstr ""
"Klicken stoppt das Vorhören."
#: gtk2_ardour/ardour_ui2.cc:376
-#: gtk2_ardour/ardour_ui2.cc:826
-#: gtk2_ardour/ardour_ui2.cc:882
-#: gtk2_ardour/ardour_ui_options.cc:1064
+#: gtk2_ardour/ardour_ui2.cc:822
+#: gtk2_ardour/ardour_ui2.cc:878
msgid "sprung"
msgstr "Feder"
#: gtk2_ardour/ardour_ui2.cc:377
-#: gtk2_ardour/ardour_ui2.cc:828
-#: gtk2_ardour/ardour_ui_options.cc:1075
+#: gtk2_ardour/ardour_ui2.cc:824
msgid "wheel"
msgstr "Drehrad"
@@ -1047,1300 +540,2057 @@ msgstr "Drehrad"
msgid "Maximum speed"
msgstr "Max. Geschwindigkeit"
-#: gtk2_ardour/ardour_ui2.cc:838
-#: gtk2_ardour/ardour_ui2.cc:861
+#: gtk2_ardour/ardour_ui2.cc:834
+#: gtk2_ardour/ardour_ui2.cc:857
msgid "stop"
msgstr "Stop"
-#: gtk2_ardour/ardour_ui2.cc:880
+#: gtk2_ardour/ardour_ui2.cc:876
msgid "-0.55"
msgstr "-0.55"
-#: gtk2_ardour/ardour_ui_dependents.cc:85
-msgid "Ardour key bindings file not found at \"%1\" or contains errors."
-msgstr "Konnte die Datei mit den Tastaturzuweisungen nicht an der Stelle \"%1\" finden, oder sie ist fehlerhaft."
+#: gtk2_ardour/editor_mouse.cc:147
+msgid "Editor::event_frame() used on unhandled event type %1"
+msgstr "Editor::event_frame() auf unbekannten Eventtyp %1 angewandt"
-#: gtk2_ardour/ardour_ui_dialogs.cc:170
-#: gtk2_ardour/playlist_selector.cc:73
-msgid "close"
-msgstr "Schließen"
+#: gtk2_ardour/editor_mouse.cc:1842
+msgid "programming error: start_grab called without drag item"
+msgstr "Programmierfehler: start_grab called without drag item"
+
+#: gtk2_ardour/editor_mouse.cc:1967
+msgid "programming error: fade in canvas item has no regionview data pointer!"
+msgstr "Programmierfehler: fade in canvas item has no regionview data pointer!"
+
+#: gtk2_ardour/editor_mouse.cc:2042
+msgid "change fade in length"
+msgstr "Ändere Fade-In Länge"
+
+#: gtk2_ardour/editor_mouse.cc:2075
+msgid "programming error: fade out canvas item has no regionview data pointer!"
+msgstr "Programmierfehler: fade out canvas item has no regionview data pointer!"
+
+#: gtk2_ardour/editor_mouse.cc:2159
+msgid "change fade out length"
+msgstr "Fade-Out verändern"
+
+#: gtk2_ardour/editor_mouse.cc:2192
+msgid "programming error: cursor canvas item has no cursor data pointer!"
+msgstr "Programmierfehler: cursor canvas item has no cursor data pointer!"
+
+#: gtk2_ardour/editor_mouse.cc:2287
+#: gtk2_ardour/editor_mouse.cc:5005
+msgid "programming error: marker canvas item has no marker object pointer!"
+msgstr "Programmierfehler: marker canvas item has no marker object pointer!"
+
+#: gtk2_ardour/editor_mouse.cc:2572
+msgid "move marker"
+msgstr "Marker bewegen"
+
+#: gtk2_ardour/editor_mouse.cc:2614
+#: gtk2_ardour/editor_mouse.cc:2646
+msgid "programming error: meter marker canvas item has no marker object pointer!"
+msgstr "pProgrammierfehler: meter marker canvas item has no marker object pointer!"
+
+#: gtk2_ardour/editor_mouse.cc:2714
+msgid "copy meter mark"
+msgstr "Taktmarker kopieren"
+
+#: gtk2_ardour/editor_mouse.cc:2725
+msgid "move meter mark"
+msgstr "Taktwechsel bewegen"
+
+#: gtk2_ardour/editor_mouse.cc:2741
+#: gtk2_ardour/editor_mouse.cc:2775
+msgid "programming error: tempo marker canvas item has no marker object pointer!"
+msgstr "Programmierfehler: tempo marker canvas item has no marker object pointer!"
+
+#: gtk2_ardour/editor_mouse.cc:2746
+#: gtk2_ardour/editor_mouse.cc:2780
+msgid "programming error: marker for tempo is not a tempo marker!"
+msgstr "Programmierfehler: marker for tempo is not a tempo marker!"
+
+#: gtk2_ardour/editor_mouse.cc:2847
+msgid "copy tempo mark"
+msgstr "Tempomarker kopieren"
+
+#: gtk2_ardour/editor_mouse.cc:2858
+msgid "move tempo mark"
+msgstr "Tempowechsel bewegen"
+
+#: gtk2_ardour/editor_mouse.cc:2873
+#: gtk2_ardour/editor_mouse.cc:2892
+#: gtk2_ardour/editor_mouse.cc:2905
+msgid "programming error: control point canvas item has no control point object pointer!"
+msgstr "Programmierfehler: control point canvas item has no control point object pointer!"
+
+#: gtk2_ardour/editor_mouse.cc:3040
+msgid "programming error: line canvas item has no line pointer!"
+msgstr "Programmierfehler: line canvas item has no line pointer!"
+
+#: gtk2_ardour/editor_mouse.cc:3184
+msgid "move region(s)"
+msgstr "Region(en) bewegen"
+
+#: gtk2_ardour/editor_mouse.cc:3256
+msgid "Drag region brush"
+msgstr "Region Brush ziehen"
+
+#: gtk2_ardour/editor_mouse.cc:3904
+msgid "fixed time region copy"
+msgstr "Region zeitgleich kopieren"
+
+#: gtk2_ardour/editor_mouse.cc:3906
+msgid "region copy"
+msgstr "Region kopieren"
+
+#: gtk2_ardour/editor_mouse.cc:3910
+msgid "fixed time region drag"
+msgstr "Region zeitgleich verschieben"
+
+#: gtk2_ardour/editor_mouse.cc:3912
+msgid "region drag"
+msgstr "Region verschieben"
+
+#: gtk2_ardour/editor_mouse.cc:4325
+msgid "selection grab"
+msgstr "Auswählen"
+
+#: gtk2_ardour/editor_mouse.cc:4476
+msgid "range selection"
+msgstr "Auswahlbereich"
-#: gtk2_ardour/ardour_ui_ed.cc:84
+#: gtk2_ardour/editor_mouse.cc:4492
+msgid "trim selection start"
+msgstr "Anfangspunkt der Auswahl abschneiden"
+
+#: gtk2_ardour/editor_mouse.cc:4508
+msgid "trim selection end"
+msgstr "Endpunkt der Auswahl abschneiden"
+
+#: gtk2_ardour/editor_mouse.cc:4525
+msgid "move selection"
+msgstr "Auswahl bewegen"
+
+#: gtk2_ardour/editor_mouse.cc:4914
+msgid "Start point trim"
+msgstr "Anfangspunkt verändern"
+
+#: gtk2_ardour/editor_mouse.cc:4946
+msgid "End point trim"
+msgstr "Endpunkt verändern"
+
+#: gtk2_ardour/editor_mouse.cc:4989
+msgid "trimmed region"
+msgstr "Abgeschnittene Region"
+
+#: gtk2_ardour/editor_mouse.cc:5152
+msgid "new range marker"
+msgstr "Neuer Bereich"
+
+#: gtk2_ardour/editor_mouse.cc:5400
+msgid "rubberband selection"
+msgstr "Bereichsauswahl"
+
+#: gtk2_ardour/editor_mouse.cc:5430
+msgid "Name for region:"
+msgstr "Name für Region:"
+
+#: gtk2_ardour/editor_mouse.cc:5432
+msgid "Rename"
+msgstr "Umbenennen"
+
+#: gtk2_ardour/editor_mouse.cc:5503
+msgid "timestretch"
+msgstr "Time-Stretch"
+
+#: gtk2_ardour/editor_selection.cc:733
+msgid "set selected regions"
+msgstr "Regionen auswählen"
+
+#: gtk2_ardour/editor_selection.cc:875
+msgid "select all"
+msgstr "Alle Regionen auswählen"
+
+#: gtk2_ardour/editor_selection.cc:964
+msgid "select all within"
+msgstr "Alle im Bereich auswählen"
+
+#: gtk2_ardour/editor_selection.cc:1024
+msgid "set selection from range"
+msgstr "Auswahlbereich von Bereich erstellen"
+
+#: gtk2_ardour/editor_selection.cc:1064
+msgid "select all from range"
+msgstr "Alle im Bereich auswählen"
+
+#: gtk2_ardour/editor_selection.cc:1095
+msgid "select all from punch"
+msgstr "Alle im Punch-Bereich auswählen"
+
+#: gtk2_ardour/editor_selection.cc:1126
+msgid "select all from loop"
+msgstr "Alle im Loop-Bereich auswählen"
+
+#: gtk2_ardour/editor_selection.cc:1140
+msgid "select all after cursor"
+msgstr "Alle nach Positionszeiger auswählen"
+
+#: gtk2_ardour/editor_selection.cc:1145
+msgid "select all before cursor"
+msgstr "Alle vor Positionszeiger auswählen"
+
+#: gtk2_ardour/editor_selection.cc:1180
+msgid "select all after edit"
+msgstr "Alles nach Arbeitspunkt auswählen"
+
+#: gtk2_ardour/editor_selection.cc:1185
+msgid "select all before edit"
+msgstr "Alles vor Arbeitspunkt auswählen"
+
+#: gtk2_ardour/editor_selection.cc:1312
+msgid "No edit range defined"
+msgstr "Kein Editierbereich definiert"
+
+#: gtk2_ardour/editor_selection.cc:1318
+msgid ""
+"the edit point is Selected Marker\n"
+"but there is no selected marker."
+msgstr ""
+"der Arbeitspunkt ist der gewählte Positionsmarker,\n"
+"es ist aber kein Positionsmarker ausgewählt."
+
+#: gtk2_ardour/ardour_ui_ed.cc:90
msgid "Session"
msgstr "Projekt"
-#: gtk2_ardour/ardour_ui_ed.cc:85
+#: gtk2_ardour/ardour_ui_ed.cc:91
msgid "Import/Export"
msgstr "Import/Export"
-#: gtk2_ardour/ardour_ui_ed.cc:86
-#: gtk2_ardour/editor.cc:576
-#: gtk2_ardour/editor.cc:647
-msgid "Regions"
-msgstr "Regionen"
-
-#: gtk2_ardour/ardour_ui_ed.cc:87
+#: gtk2_ardour/ardour_ui_ed.cc:92
msgid "Cleanup"
msgstr "Aufräumen"
-#: gtk2_ardour/ardour_ui_ed.cc:88
-#: gtk2_ardour/option_editor.cc:144
+#: gtk2_ardour/ardour_ui_ed.cc:93
msgid "Sync"
msgstr "Sync"
-#: gtk2_ardour/ardour_ui_ed.cc:89
-#: gtk2_ardour/ardour_ui_ed.cc:90
-#: gtk2_ardour/engine_dialog.cc:343
+#: gtk2_ardour/ardour_ui_ed.cc:94
+#: gtk2_ardour/ardour_ui_ed.cc:95
msgid "Options"
msgstr "Optionen"
-#: gtk2_ardour/ardour_ui_ed.cc:91
+#: gtk2_ardour/ardour_ui_ed.cc:96
msgid "Help"
msgstr "Hilfe"
-#: gtk2_ardour/ardour_ui_ed.cc:92
-msgid "KeyMouse Actions"
-msgstr "Tastatur/Maus-Befehle"
+#: gtk2_ardour/ardour_ui_ed.cc:97
+msgid "Misc. Shortcuts"
+msgstr "Verschiedenes"
-#: gtk2_ardour/ardour_ui_ed.cc:93
+#: gtk2_ardour/ardour_ui_ed.cc:98
msgid "Audio File Format"
msgstr "Audio-Dateiformat"
-#: gtk2_ardour/ardour_ui_ed.cc:94
-msgid "Header"
-msgstr "Header"
+#: gtk2_ardour/ardour_ui_ed.cc:99
+msgid "File Type"
+msgstr "Dateiformat"
-#: gtk2_ardour/ardour_ui_ed.cc:95
-msgid "Data"
-msgstr "Datenformat"
+#: gtk2_ardour/ardour_ui_ed.cc:100
+msgid "Sample Format"
+msgstr "Sampleformat"
-#: gtk2_ardour/ardour_ui_ed.cc:96
+#: gtk2_ardour/ardour_ui_ed.cc:101
msgid "Control Surfaces"
msgstr "Eingabegeräte / Controller"
-#: gtk2_ardour/ardour_ui_ed.cc:97
+#: gtk2_ardour/ardour_ui_ed.cc:102
msgid "Metering"
msgstr "Pegelanzeige"
-#: gtk2_ardour/ardour_ui_ed.cc:98
+#: gtk2_ardour/ardour_ui_ed.cc:103
msgid "Fall off rate"
msgstr "Abfall der Pegelanzeige"
-#: gtk2_ardour/ardour_ui_ed.cc:99
+#: gtk2_ardour/ardour_ui_ed.cc:104
msgid "Hold Time"
msgstr "Pegelanzeige halten"
-#: gtk2_ardour/ardour_ui_ed.cc:100
+#: gtk2_ardour/ardour_ui_ed.cc:105
msgid "Denormal Handling"
msgstr "Umgang mit Denormals"
-#: gtk2_ardour/ardour_ui_ed.cc:104
-#: gtk2_ardour/route_time_axis.cc:1343
+#: gtk2_ardour/ardour_ui_ed.cc:109
msgid "New"
msgstr "Neu"
-#: gtk2_ardour/ardour_ui_ed.cc:106
+#: gtk2_ardour/ardour_ui_ed.cc:111
msgid "Open"
msgstr "Öffnen"
-#: gtk2_ardour/ardour_ui_ed.cc:107
+#: gtk2_ardour/ardour_ui_ed.cc:112
msgid "Recent"
msgstr "Zuletzt verwendet..."
-#: gtk2_ardour/ardour_ui_ed.cc:108
-#: gtk2_ardour/io_selector.cc:59
-#: gtk2_ardour/io_selector.cc:747
-#: gtk2_ardour/connection_editor.cc:58
+#: gtk2_ardour/ardour_ui_ed.cc:113
msgid "Close"
msgstr "Schließen"
-#: gtk2_ardour/ardour_ui_ed.cc:111
-#: gtk2_ardour/route_params_ui.cc:513
+#: gtk2_ardour/ardour_ui_ed.cc:116
msgid "Add Track/Bus"
msgstr "Spur/Bus hinzufügen..."
-#: gtk2_ardour/ardour_ui_ed.cc:123
+#: gtk2_ardour/ardour_ui_ed.cc:128
msgid "Connect"
msgstr "Verbinden"
-#: gtk2_ardour/ardour_ui_ed.cc:131
+#: gtk2_ardour/ardour_ui_ed.cc:136
msgid "Snapshot"
msgstr "Schnappschuss..."
-#: gtk2_ardour/ardour_ui_ed.cc:134
+#: gtk2_ardour/ardour_ui_ed.cc:139
msgid "Save Template..."
msgstr "Als Vorlage Speichern..."
-#: gtk2_ardour/ardour_ui_ed.cc:137
+#: gtk2_ardour/ardour_ui_ed.cc:142
msgid "Export session to audiofile..."
msgstr "Exportiere Projekt als Audio-Datei..."
-#: gtk2_ardour/ardour_ui_ed.cc:140
+#: gtk2_ardour/ardour_ui_ed.cc:145
msgid "Export selection to audiofile..."
msgstr "Exportiere Auswahlbereich als Audio-Datei..."
-#: gtk2_ardour/ardour_ui_ed.cc:144
+#: gtk2_ardour/ardour_ui_ed.cc:149
msgid "Export range markers to audiofile..."
msgstr "Exportiere Bereiche als Audio-Datei..."
-#: gtk2_ardour/ardour_ui_ed.cc:148
-#: gtk2_ardour/editor.cc:1724
-#: gtk2_ardour/export_dialog.cc:125
-#: gtk2_ardour/export_dialog.cc:374
-#: gtk2_ardour/export_dialog.cc:1122
-#: gtk2_ardour/export_dialog.cc:1126
+#: gtk2_ardour/ardour_ui_ed.cc:153
msgid "Export"
msgstr "Exportieren"
-#: gtk2_ardour/ardour_ui_ed.cc:151
+#: gtk2_ardour/ardour_ui_ed.cc:156
msgid "Cleanup unused sources"
msgstr "Nicht benutzte Dateien entfernen"
-#: gtk2_ardour/ardour_ui_ed.cc:153
+#: gtk2_ardour/ardour_ui_ed.cc:158
msgid "Flush wastebasket"
msgstr "Müll leeren"
-#: gtk2_ardour/ardour_ui_ed.cc:159
+#: gtk2_ardour/ardour_ui_ed.cc:164
msgid "JACK"
msgstr "JACK"
-#: gtk2_ardour/ardour_ui_ed.cc:160
+#: gtk2_ardour/ardour_ui_ed.cc:165
msgid "Latency"
msgstr "Latenz"
-#: gtk2_ardour/ardour_ui_ed.cc:162
+#: gtk2_ardour/ardour_ui_ed.cc:167
msgid "Reconnect"
msgstr "Neu Verbinden"
-#: gtk2_ardour/ardour_ui_ed.cc:165
-#: gtk2_ardour/mixer_strip.cc:504
-#: gtk2_ardour/mixer_strip.cc:566
+#: gtk2_ardour/ardour_ui_ed.cc:170
msgid "Disconnect"
msgstr "Trennen"
-#: gtk2_ardour/ardour_ui_ed.cc:192
-msgid "Windows"
+#: gtk2_ardour/ardour_ui_ed.cc:197
+msgid "Window"
msgstr "Fenster"
-#: gtk2_ardour/ardour_ui_ed.cc:193
+#: gtk2_ardour/ardour_ui_ed.cc:198
msgid "Quit"
msgstr "Beenden"
-#: gtk2_ardour/ardour_ui_ed.cc:197
+#: gtk2_ardour/ardour_ui_ed.cc:202
msgid "Maximise Editor Space"
-msgstr "Editor Maximieren"
+msgstr "Editor maximieren"
-#: gtk2_ardour/ardour_ui_ed.cc:199
+#: gtk2_ardour/ardour_ui_ed.cc:204
msgid "Show Editor"
msgstr "Editor anzeigen"
-#: gtk2_ardour/ardour_ui_ed.cc:200
+#: gtk2_ardour/ardour_ui_ed.cc:205
msgid "Show Mixer"
msgstr "Mixer anzeigen"
-#: gtk2_ardour/ardour_ui_ed.cc:201
-#: gtk2_ardour/option_editor.cc:117
+#: gtk2_ardour/ardour_ui_ed.cc:206
msgid "Preferences"
msgstr "Einstellungen"
-#: gtk2_ardour/ardour_ui_ed.cc:202
-#: gtk2_ardour/route_params_ui.cc:143
-#: gtk2_ardour/route_params_ui.cc:659
+#: gtk2_ardour/ardour_ui_ed.cc:207
msgid "Track/Bus Inspector"
msgstr "Verbindungen"
-#: gtk2_ardour/ardour_ui_ed.cc:204
-#: gtk2_ardour/connection_editor.cc:146
-#: gtk2_ardour/connection_editor.cc:147
+#: gtk2_ardour/ardour_ui_ed.cc:209
msgid "Connections"
msgstr "Verbindungen"
-#: gtk2_ardour/ardour_ui_ed.cc:206
-#: gtk2_ardour/location_ui.cc:611
+#: gtk2_ardour/ardour_ui_ed.cc:211
msgid "Locations"
msgstr "Positionen"
-#: gtk2_ardour/ardour_ui_ed.cc:208
+#: gtk2_ardour/ardour_ui_ed.cc:213
msgid "Big Clock"
msgstr "Große Zeitanzeige"
-#: gtk2_ardour/ardour_ui_ed.cc:210
+#: gtk2_ardour/ardour_ui_ed.cc:215
msgid "About"
-msgstr "Ãœber ardour..."
+msgstr "Ãœber Ardour..."
-#: gtk2_ardour/ardour_ui_ed.cc:211
+#: gtk2_ardour/ardour_ui_ed.cc:216
msgid "Theme Manager"
msgstr "Thema"
-#: gtk2_ardour/ardour_ui_ed.cc:212
+#: gtk2_ardour/ardour_ui_ed.cc:217
msgid "Keybindings"
msgstr "Tastaturbefehle"
-#: gtk2_ardour/ardour_ui_ed.cc:214
+#: gtk2_ardour/ardour_ui_ed.cc:219
msgid "Add Audio Track"
msgstr "Audiospur hinzufügen"
-#: gtk2_ardour/ardour_ui_ed.cc:216
+#: gtk2_ardour/ardour_ui_ed.cc:221
msgid "Add Audio Bus"
msgstr "Audio-Bus hinzufügen"
-#: gtk2_ardour/ardour_ui_ed.cc:218
+#: gtk2_ardour/ardour_ui_ed.cc:223
msgid "Save"
msgstr "Speichern"
-#: gtk2_ardour/ardour_ui_ed.cc:220
-#: gtk2_ardour/editor_actions.cc:377
+#: gtk2_ardour/ardour_ui_ed.cc:225
msgid "Remove Last Capture"
msgstr "Letzte Aufnahme entfernen"
-#: gtk2_ardour/ardour_ui_ed.cc:227
+#: gtk2_ardour/ardour_ui_ed.cc:232
msgid "Transport"
msgstr "Transport"
-#: gtk2_ardour/ardour_ui_ed.cc:233
-#: gtk2_ardour/engine_dialog.cc:56
-#: gtk2_ardour/sfdb_ui.cc:178
+#: gtk2_ardour/ardour_ui_ed.cc:238
msgid "Stop"
msgstr "Stop"
-#: gtk2_ardour/ardour_ui_ed.cc:236
+#: gtk2_ardour/ardour_ui_ed.cc:241
msgid "Roll"
msgstr "Wiedergabe"
-#: gtk2_ardour/ardour_ui_ed.cc:240
+#: gtk2_ardour/ardour_ui_ed.cc:245
msgid "Start/Stop"
msgstr "Start/Stop"
-#: gtk2_ardour/ardour_ui_ed.cc:243
+#: gtk2_ardour/ardour_ui_ed.cc:248
msgid "Stop + Forget Capture"
msgstr "Stop + Aufnahme verwerfen"
-#: gtk2_ardour/ardour_ui_ed.cc:253
+#: gtk2_ardour/ardour_ui_ed.cc:258
msgid "Transition To Roll"
msgstr "Vorwärts wiedergeben"
-#: gtk2_ardour/ardour_ui_ed.cc:257
+#: gtk2_ardour/ardour_ui_ed.cc:262
msgid "Transition To Reverse"
msgstr "Rückwärts wiedergeben"
-#: gtk2_ardour/ardour_ui_ed.cc:262
+#: gtk2_ardour/ardour_ui_ed.cc:267
msgid "Play Loop Range"
msgstr "Schleife wiedergeben"
-#: gtk2_ardour/ardour_ui_ed.cc:265
+#: gtk2_ardour/ardour_ui_ed.cc:270
msgid "Play Selection"
msgstr "Ausgewählten Bereich wiedergeben"
-#: gtk2_ardour/ardour_ui_ed.cc:269
+#: gtk2_ardour/ardour_ui_ed.cc:274
msgid "Enable Record"
msgstr "Aufnahme aktivieren"
-#: gtk2_ardour/ardour_ui_ed.cc:271
+#: gtk2_ardour/ardour_ui_ed.cc:276
msgid "Start Recording"
msgstr "Aufnahme beginnen"
-#: gtk2_ardour/ardour_ui_ed.cc:274
+#: gtk2_ardour/ardour_ui_ed.cc:279
msgid "Rewind"
msgstr "Rückwärts"
-#: gtk2_ardour/ardour_ui_ed.cc:277
+#: gtk2_ardour/ardour_ui_ed.cc:282
msgid "Rewind (Slow)"
msgstr "Rückwärts (langsam)"
-#: gtk2_ardour/ardour_ui_ed.cc:280
+#: gtk2_ardour/ardour_ui_ed.cc:285
msgid "Rewind (Fast)"
msgstr "Rückwärts (schnell)"
-#: gtk2_ardour/ardour_ui_ed.cc:283
+#: gtk2_ardour/ardour_ui_ed.cc:288
msgid "Forward"
msgstr "Vorwärts"
-#: gtk2_ardour/ardour_ui_ed.cc:286
+#: gtk2_ardour/ardour_ui_ed.cc:291
msgid "Forward (Slow)"
msgstr "Vorwärts (langsam)"
-#: gtk2_ardour/ardour_ui_ed.cc:289
+#: gtk2_ardour/ardour_ui_ed.cc:294
msgid "Forward (Fast)"
msgstr "Vorwärts (schnell)"
-#: gtk2_ardour/ardour_ui_ed.cc:292
+#: gtk2_ardour/ardour_ui_ed.cc:297
msgid "Goto Zero"
msgstr "Zum Nullpunkt springen"
-#: gtk2_ardour/ardour_ui_ed.cc:295
+#: gtk2_ardour/ardour_ui_ed.cc:300
msgid "Goto Start"
msgstr "Zum Anfang springen"
-#: gtk2_ardour/ardour_ui_ed.cc:298
+#: gtk2_ardour/ardour_ui_ed.cc:303
msgid "Goto End"
-msgstr "Zum Ende Springen"
+msgstr "Zum Ende springen"
+
+#: gtk2_ardour/ardour_ui_ed.cc:306
+msgid "Goto Wall Clock"
+msgstr "Zur lokalen Uhrzeit springen"
-#: gtk2_ardour/ardour_ui_ed.cc:302
+#: gtk2_ardour/ardour_ui_ed.cc:310
msgid "Focus On Clock"
msgstr "Fokus auf Zeitanzeige setzen"
+#: gtk2_ardour/ardour_ui_ed.cc:314
+#: gtk2_ardour/ardour_ui_ed.cc:323
+msgid "Bars & Beats"
+msgstr "Takte & Schläge"
+
+#: gtk2_ardour/ardour_ui_ed.cc:316
#: gtk2_ardour/ardour_ui_ed.cc:325
+msgid "Minutes & Seconds"
+msgstr "Minuten & Sekunden"
+
+#: gtk2_ardour/ardour_ui_ed.cc:318
+#: gtk2_ardour/ardour_ui_ed.cc:327
+msgid "Samples"
+msgstr "Samples"
+
+#: gtk2_ardour/ardour_ui_ed.cc:320
+#: gtk2_ardour/ardour_ui_ed.cc:329
+#: gtk2_ardour/ardour_ui_ed.cc:518
+#: gtk2_ardour/ardour_ui_ed.cc:526
+msgid "Off"
+msgstr "Aus"
+
+#: gtk2_ardour/ardour_ui_ed.cc:332
+msgid "Punch In"
+msgstr "Punch In"
+
+#: gtk2_ardour/ardour_ui_ed.cc:335
+msgid "Punch Out"
+msgstr "Punch Out"
+
+#: gtk2_ardour/ardour_ui_ed.cc:338
+msgid "Punch In/Out"
+msgstr "Punch In/Out"
+
+#: gtk2_ardour/ardour_ui_ed.cc:341
+msgid "Click"
+msgstr "Click"
+
+#: gtk2_ardour/ardour_ui_ed.cc:344
+msgid "Auto Input"
+msgstr "Auto Input"
+
+#: gtk2_ardour/ardour_ui_ed.cc:347
+msgid "Auto Play"
+msgstr "Auto Play"
+
+#: gtk2_ardour/ardour_ui_ed.cc:350
+msgid "Auto Return"
+msgstr "Auto Return"
+
+#: gtk2_ardour/ardour_ui_ed.cc:354
msgid "Sync startup to video"
msgstr "Mit Video synchronisieren"
-#: gtk2_ardour/ardour_ui_ed.cc:326
+#: gtk2_ardour/ardour_ui_ed.cc:355
msgid "Time master"
msgstr "Time Master"
-#: gtk2_ardour/ardour_ui_ed.cc:329
+#: gtk2_ardour/ardour_ui_ed.cc:358
msgid "Toggle Record Enable Track1"
msgstr "Aufnahme aktivieren für Spur 1"
-#: gtk2_ardour/ardour_ui_ed.cc:331
+#: gtk2_ardour/ardour_ui_ed.cc:360
msgid "Toggle Record Enable Track2"
msgstr "Aufnahme aktivieren für Spur 2"
-#: gtk2_ardour/ardour_ui_ed.cc:333
+#: gtk2_ardour/ardour_ui_ed.cc:362
msgid "Toggle Record Enable Track3"
msgstr "Aufnahme aktivieren für Spur 3"
-#: gtk2_ardour/ardour_ui_ed.cc:335
+#: gtk2_ardour/ardour_ui_ed.cc:364
msgid "Toggle Record Enable Track4"
msgstr "Aufnahme aktivieren für Spur 4"
-#: gtk2_ardour/ardour_ui_ed.cc:337
+#: gtk2_ardour/ardour_ui_ed.cc:366
msgid "Toggle Record Enable Track5"
msgstr "Aufnahme aktivieren für Spur 5"
-#: gtk2_ardour/ardour_ui_ed.cc:339
+#: gtk2_ardour/ardour_ui_ed.cc:368
msgid "Toggle Record Enable Track6"
msgstr "Aufnahme aktivieren für Spur 6"
-#: gtk2_ardour/ardour_ui_ed.cc:341
+#: gtk2_ardour/ardour_ui_ed.cc:370
msgid "Toggle Record Enable Track7"
msgstr "Aufnahme aktivieren für Spur 7"
-#: gtk2_ardour/ardour_ui_ed.cc:343
+#: gtk2_ardour/ardour_ui_ed.cc:372
msgid "Toggle Record Enable Track8"
msgstr "Aufnahme aktivieren für Spur 8"
-#: gtk2_ardour/ardour_ui_ed.cc:345
+#: gtk2_ardour/ardour_ui_ed.cc:374
msgid "Toggle Record Enable Track9"
msgstr "Aufnahme aktivieren für Spur 9"
-#: gtk2_ardour/ardour_ui_ed.cc:347
+#: gtk2_ardour/ardour_ui_ed.cc:376
msgid "Toggle Record Enable Track10"
msgstr "Aufnahme aktivieren für Spur 10"
-#: gtk2_ardour/ardour_ui_ed.cc:349
+#: gtk2_ardour/ardour_ui_ed.cc:378
msgid "Toggle Record Enable Track11"
msgstr "Aufnahme aktivieren für Spur 11"
-#: gtk2_ardour/ardour_ui_ed.cc:351
+#: gtk2_ardour/ardour_ui_ed.cc:380
msgid "Toggle Record Enable Track12"
msgstr "Aufnahme aktivieren für Spur 12"
-#: gtk2_ardour/ardour_ui_ed.cc:353
+#: gtk2_ardour/ardour_ui_ed.cc:382
msgid "Toggle Record Enable Track13"
msgstr "Aufnahme aktivieren für Spur 13"
-#: gtk2_ardour/ardour_ui_ed.cc:355
+#: gtk2_ardour/ardour_ui_ed.cc:384
msgid "Toggle Record Enable Track14"
msgstr "Aufnahme aktivieren für Spur 14"
-#: gtk2_ardour/ardour_ui_ed.cc:357
+#: gtk2_ardour/ardour_ui_ed.cc:386
msgid "Toggle Record Enable Track15"
msgstr "Aufnahme aktivieren für Spur 15"
-#: gtk2_ardour/ardour_ui_ed.cc:359
+#: gtk2_ardour/ardour_ui_ed.cc:388
msgid "Toggle Record Enable Track16"
msgstr "Aufnahme aktivieren für Spur 16"
-#: gtk2_ardour/ardour_ui_ed.cc:361
+#: gtk2_ardour/ardour_ui_ed.cc:390
msgid "Toggle Record Enable Track17"
msgstr "Aufnahme aktivieren für Spur 17"
-#: gtk2_ardour/ardour_ui_ed.cc:363
+#: gtk2_ardour/ardour_ui_ed.cc:392
msgid "Toggle Record Enable Track18"
msgstr "Aufnahme aktivieren für Spur 18"
-#: gtk2_ardour/ardour_ui_ed.cc:365
+#: gtk2_ardour/ardour_ui_ed.cc:394
msgid "Toggle Record Enable Track19"
msgstr "Aufnahme aktivieren für Spur 19"
-#: gtk2_ardour/ardour_ui_ed.cc:367
+#: gtk2_ardour/ardour_ui_ed.cc:396
msgid "Toggle Record Enable Track20"
msgstr "Aufnahme aktivieren für Spur 20"
-#: gtk2_ardour/ardour_ui_ed.cc:369
+#: gtk2_ardour/ardour_ui_ed.cc:398
msgid "Toggle Record Enable Track21"
msgstr "Aufnahme aktivieren für Spur 21"
-#: gtk2_ardour/ardour_ui_ed.cc:371
+#: gtk2_ardour/ardour_ui_ed.cc:400
msgid "Toggle Record Enable Track22"
msgstr "Aufnahme aktivieren für Spur 22"
-#: gtk2_ardour/ardour_ui_ed.cc:373
+#: gtk2_ardour/ardour_ui_ed.cc:402
msgid "Toggle Record Enable Track23"
msgstr "Aufnahme aktivieren für Spur 23"
-#: gtk2_ardour/ardour_ui_ed.cc:375
+#: gtk2_ardour/ardour_ui_ed.cc:404
msgid "Toggle Record Enable Track24"
msgstr "Aufnahme aktivieren für Spur 24"
-#: gtk2_ardour/ardour_ui_ed.cc:377
+#: gtk2_ardour/ardour_ui_ed.cc:406
msgid "Toggle Record Enable Track25"
msgstr "Aufnahme aktivieren für Spur 25"
-#: gtk2_ardour/ardour_ui_ed.cc:379
+#: gtk2_ardour/ardour_ui_ed.cc:408
msgid "Toggle Record Enable Track26"
msgstr "Aufnahme aktivieren für Spur 26"
-#: gtk2_ardour/ardour_ui_ed.cc:381
+#: gtk2_ardour/ardour_ui_ed.cc:410
msgid "Toggle Record Enable Track27"
msgstr "Aufnahme aktivieren für Spur 27"
-#: gtk2_ardour/ardour_ui_ed.cc:383
+#: gtk2_ardour/ardour_ui_ed.cc:412
msgid "Toggle Record Enable Track28"
msgstr "Aufnahme aktivieren für Spur 28"
-#: gtk2_ardour/ardour_ui_ed.cc:385
+#: gtk2_ardour/ardour_ui_ed.cc:414
msgid "Toggle Record Enable Track29"
msgstr "Aufnahme aktivieren für Spur 29"
-#: gtk2_ardour/ardour_ui_ed.cc:387
+#: gtk2_ardour/ardour_ui_ed.cc:416
msgid "Toggle Record Enable Track30"
msgstr "Aufnahme aktivieren für Spur 30"
-#: gtk2_ardour/ardour_ui_ed.cc:389
+#: gtk2_ardour/ardour_ui_ed.cc:418
msgid "Toggle Record Enable Track31"
msgstr "Aufnahme aktivieren für Spur 31"
-#: gtk2_ardour/ardour_ui_ed.cc:391
+#: gtk2_ardour/ardour_ui_ed.cc:420
msgid "Toggle Record Enable Track32"
msgstr "Aufnahme aktivieren für Spur 32"
-#: gtk2_ardour/ardour_ui_ed.cc:396
+#: gtk2_ardour/ardour_ui_ed.cc:425
msgid "Percentage"
msgstr "Prozent"
-#: gtk2_ardour/ardour_ui_ed.cc:397
+#: gtk2_ardour/ardour_ui_ed.cc:426
msgid "Semitones"
msgstr "Halbtöne"
-#: gtk2_ardour/ardour_ui_ed.cc:401
+#: gtk2_ardour/ardour_ui_ed.cc:430
msgid "Send MTC"
msgstr "MTC senden"
-#: gtk2_ardour/ardour_ui_ed.cc:403
+#: gtk2_ardour/ardour_ui_ed.cc:432
msgid "Send MMC"
msgstr "MMC senden"
-#: gtk2_ardour/ardour_ui_ed.cc:405
+#: gtk2_ardour/ardour_ui_ed.cc:434
msgid "Use MMC"
msgstr "Benutze MMC"
-#: gtk2_ardour/ardour_ui_ed.cc:407
+#: gtk2_ardour/ardour_ui_ed.cc:436
msgid "Send MIDI feedback"
msgstr "MIDI Feedback senden"
-#: gtk2_ardour/ardour_ui_ed.cc:410
+#: gtk2_ardour/ardour_ui_ed.cc:439
msgid "Use OSC"
msgstr "Aktiviere OSC"
-#: gtk2_ardour/ardour_ui_ed.cc:415
+#: gtk2_ardour/ardour_ui_ed.cc:443
+msgid "Tape Machine mode"
+msgstr "Bandmaschinen-Modus"
+
+#: gtk2_ardour/ardour_ui_ed.cc:446
msgid "Sync Editor and Mixer track order"
msgstr "Einheitliche Reihenfolge der Spuren im Editor und Mixer"
-#: gtk2_ardour/ardour_ui_ed.cc:416
+#: gtk2_ardour/ardour_ui_ed.cc:447
msgid "Stop plugins with transport"
msgstr "Plugins mit Transport stoppen"
-#: gtk2_ardour/ardour_ui_ed.cc:417
+#: gtk2_ardour/ardour_ui_ed.cc:448
msgid "Verify remove last capture"
msgstr "Verwerfen der letzten Aufnahme bestätigen"
-#: gtk2_ardour/ardour_ui_ed.cc:418
+#: gtk2_ardour/ardour_ui_ed.cc:449
msgid "Make periodic safety backups"
msgstr "Erstelle regelmäßig Sicherungskopien"
-#: gtk2_ardour/ardour_ui_ed.cc:419
+#: gtk2_ardour/ardour_ui_ed.cc:450
msgid "Stop recording on xrun"
-msgstr "Aufnahme bei XRUN stoppen"
+msgstr "Aufnahme bei xrun stoppen"
-#: gtk2_ardour/ardour_ui_ed.cc:420
+#: gtk2_ardour/ardour_ui_ed.cc:451
+msgid "Create marker at xrun location"
+msgstr "Bei xrun Marker erzeugen"
+
+#: gtk2_ardour/ardour_ui_ed.cc:452
msgid "Stop transport at session end"
msgstr "Transport am Ende des Projekts stoppen"
-#: gtk2_ardour/ardour_ui_ed.cc:421
+#: gtk2_ardour/ardour_ui_ed.cc:453
msgid "-12dB gain reduce ffwd/rewind"
msgstr "Beim Spulen Pegel um -12dB absenken"
-#: gtk2_ardour/ardour_ui_ed.cc:422
+#: gtk2_ardour/ardour_ui_ed.cc:454
msgid "Rec-enable stays engaged at stop"
msgstr "Aufnahmestatus bleibt nach Stop erhalten"
-#: gtk2_ardour/ardour_ui_ed.cc:423
+#: gtk2_ardour/ardour_ui_ed.cc:455
msgid "Region equivalents overlap"
msgstr "Region entspricht Ãœberdeckung"
-#: gtk2_ardour/ardour_ui_ed.cc:424
+#: gtk2_ardour/ardour_ui_ed.cc:456
msgid "Primary Clock delta to edit point"
msgstr "Primäre Zeitanzeige zeigt Abstand zum Arbeitspunkt"
-#: gtk2_ardour/ardour_ui_ed.cc:425
+#: gtk2_ardour/ardour_ui_ed.cc:457
msgid "Secondary Clock delta to edit point"
msgstr "Sekundäre Zeitanzeige zeigt Abstand zum Arbeitspunkt"
-#: gtk2_ardour/ardour_ui_ed.cc:426
+#: gtk2_ardour/ardour_ui_ed.cc:458
msgid "Enable Editor Meters"
msgstr "Aktiviere Pegelanzeigen im Editor"
-#: gtk2_ardour/ardour_ui_ed.cc:427
+#: gtk2_ardour/ardour_ui_ed.cc:459
msgid "Always copy imported files"
msgstr "Importierte Dateien immer kopieren"
-#: gtk2_ardour/ardour_ui_ed.cc:431
+#: gtk2_ardour/ardour_ui_ed.cc:460
+msgid "Rubberbanding Snaps to Grid"
+msgstr "Time-Stretch schnappt auf Raster ein"
+
+#: gtk2_ardour/ardour_ui_ed.cc:461
+msgid "Auto-analyse new audio"
+msgstr "Neue Audiodaten automatisch analysieren"
+
+#: gtk2_ardour/ardour_ui_ed.cc:463
+msgid "Use narrow mixer strips"
+msgstr "Schmale Mixerzüge verwenden"
+
+#: gtk2_ardour/ardour_ui_ed.cc:464
+msgid "Name New Markers"
+msgstr "Neue Marker benennen"
+
+#: gtk2_ardour/ardour_ui_ed.cc:468
msgid "Use DC bias"
-msgstr "DC bias aktivieren"
+msgstr "Benutze DC bias"
-#: gtk2_ardour/ardour_ui_ed.cc:433
+#: gtk2_ardour/ardour_ui_ed.cc:470
msgid "No processor handling"
msgstr "Keine Korrekturen"
-#: gtk2_ardour/ardour_ui_ed.cc:442
-#: gtk2_ardour/ardour_ui_ed.cc:453
+#: gtk2_ardour/ardour_ui_ed.cc:479
+#: gtk2_ardour/ardour_ui_ed.cc:490
msgid "Use FlushToZero"
msgstr "Benutze FlushToZero"
-#: gtk2_ardour/ardour_ui_ed.cc:444
-#: gtk2_ardour/ardour_ui_ed.cc:458
+#: gtk2_ardour/ardour_ui_ed.cc:481
+#: gtk2_ardour/ardour_ui_ed.cc:495
msgid "Use DenormalsAreZero"
msgstr "Benutze DenormalsAreZero"
-#: gtk2_ardour/ardour_ui_ed.cc:446
-#: gtk2_ardour/ardour_ui_ed.cc:463
+#: gtk2_ardour/ardour_ui_ed.cc:483
+#: gtk2_ardour/ardour_ui_ed.cc:500
msgid "Use FlushToZero & DenormalsAreZero"
msgstr "Benutze FlushToZero & DenormalsAreZero"
-#: gtk2_ardour/ardour_ui_ed.cc:469
+#: gtk2_ardour/ardour_ui_ed.cc:506
msgid "Do not run plugins while recording"
-msgstr "Plugins während der Aufnahme daktivieren"
+msgstr "Plugins während der Aufnahme deaktivieren"
-#: gtk2_ardour/ardour_ui_ed.cc:471
+#: gtk2_ardour/ardour_ui_ed.cc:508
msgid "Latched solo"
msgstr "Latch Solo"
-#: gtk2_ardour/ardour_ui_ed.cc:473
+#: gtk2_ardour/ardour_ui_ed.cc:510
msgid "Show solo muting"
msgstr "Solo als Mute anzeigen"
-#: gtk2_ardour/ardour_ui_ed.cc:481
-#: gtk2_ardour/ardour_ui_ed.cc:489
-#: gtk2_ardour/audio_clock.cc:1889
-msgid "Off"
-msgstr "Aus"
-
-#: gtk2_ardour/ardour_ui_ed.cc:482
-#: gtk2_ardour/editor.cc:1335
-#: gtk2_ardour/editor.cc:1338
-#: gtk2_ardour/editor.cc:1357
-#: gtk2_ardour/editor.cc:1360
+#: gtk2_ardour/ardour_ui_ed.cc:519
msgid "Slowest"
msgstr "Sehr langsam"
-#: gtk2_ardour/ardour_ui_ed.cc:483
-#: gtk2_ardour/editor.cc:1339
-#: gtk2_ardour/editor.cc:1361
+#: gtk2_ardour/ardour_ui_ed.cc:520
msgid "Slow"
msgstr "Langsam"
-#: gtk2_ardour/ardour_ui_ed.cc:484
-#: gtk2_ardour/ardour_ui_ed.cc:491
+#: gtk2_ardour/ardour_ui_ed.cc:521
+#: gtk2_ardour/ardour_ui_ed.cc:528
msgid "Medium"
msgstr "Mittel"
-#: gtk2_ardour/ardour_ui_ed.cc:485
-#: gtk2_ardour/editor.cc:1340
-#: gtk2_ardour/editor.cc:1362
-#: gtk2_ardour/sfdb_ui.cc:1070
-#: gtk2_ardour/sfdb_ui.cc:1151
+#: gtk2_ardour/ardour_ui_ed.cc:522
msgid "Fast"
msgstr "Schnell"
-#: gtk2_ardour/ardour_ui_ed.cc:486
+#: gtk2_ardour/ardour_ui_ed.cc:523
msgid "Faster"
msgstr "Schneller"
-#: gtk2_ardour/ardour_ui_ed.cc:487
-#: gtk2_ardour/editor.cc:1341
-#: gtk2_ardour/editor.cc:1363
-#: gtk2_ardour/sfdb_ui.cc:1071
+#: gtk2_ardour/ardour_ui_ed.cc:524
msgid "Fastest"
msgstr "Schnellstmöglich"
-#: gtk2_ardour/ardour_ui_ed.cc:490
-#: gtk2_ardour/editor_actions.cc:79
+#: gtk2_ardour/ardour_ui_ed.cc:527
msgid "Short"
msgstr "Kurz"
-#: gtk2_ardour/ardour_ui_ed.cc:492
+#: gtk2_ardour/ardour_ui_ed.cc:529
msgid "Long"
msgstr "Lange"
-#: gtk2_ardour/ardour_ui_ed.cc:511
-msgid "Hardware monitoring"
-msgstr "Hardware Monitoring"
+#: gtk2_ardour/ardour_ui_ed.cc:554
+msgid "JACK does monitoring"
+msgstr "Monitoring mit JACK"
-#: gtk2_ardour/ardour_ui_ed.cc:512
-msgid "Software monitoring"
-msgstr "Software Monitoring"
+#: gtk2_ardour/ardour_ui_ed.cc:558
+msgid "Ardour does monitoring"
+msgstr "Monitoring mit Ardour"
-#: gtk2_ardour/ardour_ui_ed.cc:513
-msgid "External monitoring"
-msgstr "Externes Monitoring"
+#: gtk2_ardour/ardour_ui_ed.cc:559
+msgid "Audio Hardware does monitoring"
+msgstr "Hardware Monitoring"
-#: gtk2_ardour/ardour_ui_ed.cc:517
+#: gtk2_ardour/ardour_ui_ed.cc:563
msgid "Solo in-place"
msgstr "Solo-In-Place"
-#: gtk2_ardour/ardour_ui_ed.cc:519
+#: gtk2_ardour/ardour_ui_ed.cc:565
msgid "Solo via bus"
msgstr "Solo über Bus"
-#: gtk2_ardour/ardour_ui_ed.cc:524
+#: gtk2_ardour/ardour_ui_ed.cc:570
msgid "Auto-connect inputs to physical inputs"
msgstr "Eingänge automatisch mit Audioeingängen verbinden"
-#: gtk2_ardour/ardour_ui_ed.cc:526
+#: gtk2_ardour/ardour_ui_ed.cc:572
msgid "Manually connect inputs"
msgstr "Eingänge manuell verbinden"
-#: gtk2_ardour/ardour_ui_ed.cc:531
+#: gtk2_ardour/ardour_ui_ed.cc:577
msgid "Auto-connect outputs to physical outs"
msgstr "Ausgänge automatisch mit Audioausgängen verbinden"
-#: gtk2_ardour/ardour_ui_ed.cc:533
+#: gtk2_ardour/ardour_ui_ed.cc:579
msgid "Auto-connect outputs to master bus"
msgstr "Ausgänge automatisch mit Master-Bus verbinden"
-#: gtk2_ardour/ardour_ui_ed.cc:535
+#: gtk2_ardour/ardour_ui_ed.cc:581
msgid "Manually connect outputs"
msgstr "Ausgänge manuell verbinden"
-#: gtk2_ardour/ardour_ui_ed.cc:540
+#: gtk2_ardour/ardour_ui_ed.cc:586
msgid "Remote ID assigned by User"
msgstr "Fernsteuerungs-ID vom Benutzer festgelegt"
-#: gtk2_ardour/ardour_ui_ed.cc:542
+#: gtk2_ardour/ardour_ui_ed.cc:588
msgid "Remote ID follows order of Mixer"
msgstr "Fernsteuerungs-ID aus Reihenfolge im Mixer"
-#: gtk2_ardour/ardour_ui_ed.cc:544
+#: gtk2_ardour/ardour_ui_ed.cc:590
msgid "Remote ID follows order of Editor"
msgstr "Fernsteuerungs-ID aus Reihenfolge im Editor"
-#: gtk2_ardour/ardour_ui_ed.cc:693
-#: gtk2_ardour/generic_pluginui.cc:168
-msgid "Controls"
-msgstr "Steuerelemente"
+#: gtk2_ardour/ardour_ui_ed.cc:593
+msgid "Auto Rebind Controls"
+msgstr "Controller automatisch anbinden"
-#: gtk2_ardour/ardour_ui_ed.cc:697
+#: gtk2_ardour/ardour_ui_ed.cc:747
msgid "Feedback"
msgstr "Feedback"
-#: gtk2_ardour/ardour_ui_ed.cc:803
+#: gtk2_ardour/ardour_ui_ed.cc:853
msgid "Clock"
msgstr "Zeitanzeige"
-#: gtk2_ardour/ardour_ui_options.cc:119
-#: gtk2_ardour/ardour_ui_options.cc:149
-#: gtk2_ardour/editor_actions.cc:874
-#: gtk2_ardour/editor_actions.cc:1233
-#: gtk2_ardour/editor_actions.cc:1246
-#: gtk2_ardour/editor_actions.cc:1310
-#: gtk2_ardour/engine_dialog.cc:887
-#: gtk2_ardour/audio_streamview.cc:172
-msgid "programming error: %1"
-msgstr "Programmierfehler: %1"
+#: gtk2_ardour/editor_edit_groups.cc:52
+msgid "Activate All"
+msgstr "Alle aktivieren"
-#: gtk2_ardour/ardour_ui_options.cc:228
-msgid "programming error: unknown solo model in ARDOUR_UI::set_solo_model: %1"
-msgstr "Programmierfehler: unbekannte Solo-Einstellung in ARDOUR_UI::set_solo_model: %1"
+#: gtk2_ardour/editor_edit_groups.cc:53
+msgid "Disable All"
+msgstr "Alle deaktivieren"
-#: gtk2_ardour/ardour_ui_options.cc:261
-msgid "programming error: unknown remote model in ARDOUR_UI::set_remote_model: %1"
-msgstr "Programmierfehler: unbekanntes Fernsteuerungsmodell in ARDOUR_UI::set_remote_model: %1"
+#: gtk2_ardour/editor_edit_groups.cc:55
+msgid "Add group"
+msgstr "Gruppe hinzufügen"
-#: gtk2_ardour/ardour_ui_options.cc:295
-msgid "programming error: unknown monitor model in ARDOUR_UI::set_monitor_model: %1"
-msgstr "Programmierfehler: unbekannte Monitoring-Einstellung in ARDOUR_UI::set_monitor_model: %1"
+#: gtk2_ardour/editor_edit_groups.cc:228
+msgid "unnamed"
+msgstr "unbenannt"
-#: gtk2_ardour/ardour_ui_options.cc:334
-msgid "programming error: unknown denormal model in ARDOUR_UI::set_denormal_model: %1"
-msgstr "Programmierfehler: unknown denormal model in ARDOUR_UI::set_denormal_model: %1"
+#: gtk2_ardour/editor_edit_groups.cc:257
+msgid "-all-"
+msgstr "-alle-"
-#: gtk2_ardour/ardour_ui_options.cc:699
-msgid "programming error: unknown file header format passed to ARDOUR_UI::map_file_data_format: %1"
-msgstr "Programmierfehler: unbekanntes Dateiheaderformat übergeben an ARDOUR_UI::map_file_data_format: %1"
+#: gtk2_ardour/redirect_automation_line.cc:53
+msgid "redirect automation created for non-plugin"
+msgstr "Redirect-Automation für ein nicht-Plugin erstellt"
-#: gtk2_ardour/ardour_ui_options.cc:735
-msgid "programming error: unknown file data format passed to ARDOUR_UI::map_file_data_format: %1"
-msgstr "Programmierfehler: unbekanntes Dateiformat übergeben an ARDOUR_UI::map_file_data_format: %1"
+#: gtk2_ardour/audio_time_axis.cc:237
+msgid "Fader"
+msgstr "Fader"
-#: gtk2_ardour/ardour_ui_options.cc:1086
-msgid "ST"
-msgstr "HT"
+#: gtk2_ardour/audio_time_axis.cc:242
+msgid "Pan"
+msgstr "Pan"
-#: gtk2_ardour/audio_clock.cc:1885
-#: gtk2_ardour/editor.cc:179
-#: gtk2_ardour/editor_rulers.cc:410
-msgid "Timecode"
-msgstr "Timecode"
+#: gtk2_ardour/audio_time_axis.cc:258
+msgid "Hide all crossfades"
+msgstr "Alle Crossfades verbergen"
-#: gtk2_ardour/audio_clock.cc:1886
-#: gtk2_ardour/editor.cc:178
-#: gtk2_ardour/editor_rulers.cc:422
-msgid "Bars:Beats"
-msgstr "Takte:Schläge"
+#: gtk2_ardour/audio_time_axis.cc:259
+msgid "Show all crossfades"
+msgstr "Alle Crossfades zeigen"
-#: gtk2_ardour/audio_clock.cc:1887
-msgid "Minutes:Seconds"
-msgstr "Minuten:Sekunden"
+#: gtk2_ardour/audio_time_axis.cc:267
+msgid "Show waveforms"
+msgstr "Wellenformen zeigen"
-#: gtk2_ardour/audio_clock.cc:1888
-#: gtk2_ardour/editor.cc:180
-#: gtk2_ardour/editor_rulers.cc:416
-msgid "Samples"
-msgstr "Samples"
+#: gtk2_ardour/audio_time_axis.cc:277
+msgid "Traditional"
+msgstr "Traditionell"
-#: gtk2_ardour/route_time_axis.cc:88
-msgid "m"
-msgstr "m"
+#: gtk2_ardour/audio_time_axis.cc:281
+msgid "Rectified"
+msgstr "Gleichgerichtet"
-#: gtk2_ardour/route_time_axis.cc:88
-msgid "s"
-msgstr "s"
+#: gtk2_ardour/audio_time_axis.cc:291
+msgid "Linear"
+msgstr "Linear"
-#: gtk2_ardour/route_time_axis.cc:88
-msgid "r"
-msgstr "r"
+#: gtk2_ardour/audio_time_axis.cc:294
+msgid "Logarithmic"
+msgstr "Logarithmisch"
-#: gtk2_ardour/route_time_axis.cc:92
-msgid "g"
-msgstr "g"
+#: gtk2_ardour/audio_time_axis.cc:313
+msgid "Waveform"
+msgstr "Wellenform"
-#: gtk2_ardour/route_time_axis.cc:93
-msgid "p"
-msgstr "w"
+#: gtk2_ardour/audio_time_axis.cc:385
+msgid "gain"
+msgstr "Gain"
+
+#: gtk2_ardour/audio_time_axis.cc:425
+msgid "pan"
+msgstr "Pan"
+
+#: gtk2_ardour/editor_imageframe.cc:624
+#: gtk2_ardour/editor_imageframe.cc:654
+msgid "programming error: no ImageFrameView selected"
+msgstr "Programmierfehler: kein ImageFrameView ausgewählt"
+
+#: gtk2_ardour/editor_imageframe.cc:847
+#: gtk2_ardour/editor_imageframe.cc:869
+msgid "programming error: no MarkerView selected"
+msgstr "Programmierfehler: kein MarkerView ausgewählt"
-#: gtk2_ardour/route_time_axis.cc:94
#: gtk2_ardour/automation_time_axis.cc:55
-#: gtk2_ardour/visual_time_axis.cc:73
msgid "h"
msgstr "h"
-#: gtk2_ardour/route_time_axis.cc:95
-msgid "a"
-msgstr "a"
+#: gtk2_ardour/automation_time_axis.cc:56
+msgid "clear"
+msgstr "Leeren"
-#: gtk2_ardour/route_time_axis.cc:96
-#: gtk2_ardour/visual_time_axis.cc:72
-msgid "v"
-msgstr "v"
+#: gtk2_ardour/automation_time_axis.cc:97
+msgid "track height"
+msgstr "Anzeigehöhe"
-#: gtk2_ardour/route_time_axis.cc:154
-#: gtk2_ardour/mixer_strip.cc:88
-msgid "Record"
-msgstr "Aufnahme"
+#: gtk2_ardour/automation_time_axis.cc:98
+msgid "automation state"
+msgstr "Automationsmodus"
-#: gtk2_ardour/route_time_axis.cc:168
-#: gtk2_ardour/editor_actions.cc:58
-#: gtk2_ardour/mixer_strip.cc:88
-#: gtk2_ardour/mixer_strip.cc:422
-msgid "Solo"
-msgstr "Solo"
+#: gtk2_ardour/automation_time_axis.cc:99
+msgid "clear track"
+msgstr "Spur zurücksetzen"
-#: gtk2_ardour/route_time_axis.cc:169
-#: gtk2_ardour/editor.cc:1647
-#: gtk2_ardour/editor.cc:1743
-#: gtk2_ardour/mixer_strip.cc:88
-#: gtk2_ardour/mixer_strip.cc:421
-#: gtk2_ardour/panner_ui.cc:404
-msgid "Mute"
-msgstr "Mute"
+#: gtk2_ardour/automation_time_axis.cc:100
+msgid "hide track"
+msgstr "Diese Spur verbergen"
-#: gtk2_ardour/route_time_axis.cc:170
-msgid "Edit Group"
-msgstr "Bearbeitungsgruppe"
+#: gtk2_ardour/automation_time_axis.cc:294
+msgid "clear automation"
+msgstr "Automation zurücksetzen"
-#: gtk2_ardour/route_time_axis.cc:171
-#: gtk2_ardour/visual_time_axis.cc:91
-msgid "Display Height"
-msgstr "Anzeigehöhe"
+#: gtk2_ardour/automation_time_axis.cc:427
+msgid "Height"
+msgstr "Höhe"
-#: gtk2_ardour/route_time_axis.cc:172
-msgid "Playlist"
-msgstr "Wiedergabeliste"
+#: gtk2_ardour/automation_time_axis.cc:429
+msgid "Hide"
+msgstr "Verbergen"
-#: gtk2_ardour/route_time_axis.cc:173
-#: gtk2_ardour/route_time_axis.cc:431
-msgid "Automation"
-msgstr "Automationen"
+#: gtk2_ardour/automation_time_axis.cc:431
+msgid "Clear"
+msgstr "Leeren"
-#: gtk2_ardour/route_time_axis.cc:174
-#: gtk2_ardour/visual_time_axis.cc:92
-msgid "Visual options"
-msgstr "Visuelle optionen"
+#: gtk2_ardour/automation_time_axis.cc:454
+msgid "State"
+msgstr "Automationssmodus"
-#: gtk2_ardour/route_time_axis.cc:175
-#: gtk2_ardour/visual_time_axis.cc:93
-msgid "Hide this track"
-msgstr "Diese Spur verbergen"
+#: gtk2_ardour/analysis_window.cc:46
+msgid "Signal source"
+msgstr "Signalquelle"
-#: gtk2_ardour/route_time_axis.cc:282
-#: gtk2_ardour/mixer_strip.cc:907
-msgid "No group"
-msgstr "keine Gruppe"
+#: gtk2_ardour/analysis_window.cc:47
+msgid "Selected ranges"
+msgstr "Ausgewählte Bereiche"
-#: gtk2_ardour/route_time_axis.cc:391
-msgid "Show all automation"
-msgstr "Alle Automationen zeigen"
+#: gtk2_ardour/analysis_window.cc:48
+msgid "Selected regions"
+msgstr "Ausgewählte Regionen"
-#: gtk2_ardour/route_time_axis.cc:394
-msgid "Show existing automation"
-msgstr "Verfügbare Automationen zeigen"
+#: gtk2_ardour/analysis_window.cc:50
+msgid "Display model"
+msgstr "Anzeigetyp"
-#: gtk2_ardour/route_time_axis.cc:397
-msgid "Hide all automation"
-msgstr "Automationen verbergen"
+#: gtk2_ardour/analysis_window.cc:51
+msgid "Composite graphs for each track"
+msgstr "Graphen für jede Spur einzeln"
-#: gtk2_ardour/route_time_axis.cc:400
-msgid "Plugins"
-msgstr "Plugins"
+#: gtk2_ardour/analysis_window.cc:52
+msgid "Composite graph of all tracks"
+msgstr "Graphen aller Spuren zusammenfassen"
-#: gtk2_ardour/route_time_axis.cc:421
-#: gtk2_ardour/automation_time_axis.cc:450
-#: gtk2_ardour/imageframe_time_axis.cc:254
-#: gtk2_ardour/marker_time_axis.cc:210
-msgid "Height"
-msgstr "Höhe"
+#: gtk2_ardour/analysis_window.cc:54
+msgid "Show frequency power range"
+msgstr "Leistungsspektrum anzeigen"
-#: gtk2_ardour/route_time_axis.cc:422
-#: gtk2_ardour/imageframe_time_axis.cc:255
-#: gtk2_ardour/marker_time_axis.cc:211
-#: gtk2_ardour/theme_manager.cc:52
-msgid "Color"
-msgstr "Farbe"
+#: gtk2_ardour/analysis_window.cc:55
+msgid "Normalize values"
+msgstr "Normalisieren"
-#: gtk2_ardour/route_time_axis.cc:430
-#: gtk2_ardour/mixer_strip.cc:995
-msgid "Remote Control ID"
-msgstr "ID für Fernsteuerung"
+#: gtk2_ardour/analysis_window.cc:59
+#: gtk2_ardour/analysis_window.cc:60
+msgid "FFT analysis window"
+msgstr "FFT - Analysefenster"
-#: gtk2_ardour/route_time_axis.cc:447
-msgid "Align with existing material"
-msgstr "An vorhandenem Material ausrichten"
+#: gtk2_ardour/analysis_window.cc:67
+msgid "Track"
+msgstr "Spur"
-#: gtk2_ardour/route_time_axis.cc:453
-msgid "Align with capture time"
-msgstr "An Aufnahmezeit ausrichten"
+#: gtk2_ardour/analysis_window.cc:68
+msgid "Show"
+msgstr "Anzeigen"
-#: gtk2_ardour/route_time_axis.cc:460
-msgid "Alignment"
-msgstr "Ausrichtung"
+#: gtk2_ardour/analysis_window.cc:135
+msgid "Re-analyze data"
+msgstr "Daten erneut analysieren"
-#: gtk2_ardour/route_time_axis.cc:464
-msgid "Normal mode"
-msgstr "Normaler Modus"
+#: gtk2_ardour/editor_rulers.cc:353
+msgid "New location marker"
+msgstr "Neuer Positionsmarker"
-#: gtk2_ardour/route_time_axis.cc:467
-msgid "Tape mode"
-msgstr "Tape-Modus"
+#: gtk2_ardour/editor_rulers.cc:354
+msgid "Clear all locations"
+msgstr "Alle Positionsmarker entfernen"
-#: gtk2_ardour/route_time_axis.cc:484
-#: gtk2_ardour/editor.cc:502
-#: gtk2_ardour/editor_actions.cc:82
-#: gtk2_ardour/mixer_strip.cc:980
-#: gtk2_ardour/mixer_ui.cc:116
-msgid "Active"
-msgstr "Aktiv"
+#: gtk2_ardour/editor_rulers.cc:355
+msgid "Unhide locations"
+msgstr "Positionen anzeigen"
-#: gtk2_ardour/route_time_axis.cc:489
-#: gtk2_ardour/editor.cc:1852
-#: gtk2_ardour/editor.cc:3730
-#: gtk2_ardour/editor_actions.cc:463
-#: gtk2_ardour/editor_markers.cc:596
-#: gtk2_ardour/editor_markers.cc:652
-#: gtk2_ardour/imageframe_time_axis.cc:258
-#: gtk2_ardour/location_ui.cc:58
-#: gtk2_ardour/marker_time_axis.cc:214
-#: gtk2_ardour/mixer_strip.cc:999
+#: gtk2_ardour/editor_rulers.cc:360
+msgid "Clear all ranges"
+msgstr "Alle Bereiche entfernen"
+
+#: gtk2_ardour/editor_rulers.cc:361
+msgid "Unhide ranges"
+msgstr "Bereiche anzeigen"
+
+#: gtk2_ardour/editor_rulers.cc:371
+msgid "New CD track marker"
+msgstr "Neuer CD-Track Marker"
+
+#: gtk2_ardour/editor_rulers.cc:376
+msgid "New Tempo"
+msgstr "Tempowechsel einfügen..."
+
+#: gtk2_ardour/editor_rulers.cc:377
+msgid "Clear tempo"
+msgstr "Tempo zurücksetzen"
+
+#: gtk2_ardour/editor_rulers.cc:382
+msgid "New Meter"
+msgstr "Taktwechsel einfügen..."
+
+#: gtk2_ardour/editor_rulers.cc:383
+msgid "Clear meter"
+msgstr "Taktart zurücksetzen"
+
+#: gtk2_ardour/gain_automation_time_axis.cc:64
+msgid "add gain automation event"
+msgstr "Punkt in die Lautstärkekurve einfügen"
+
+#: gtk2_ardour/editor_audio_import.cc:73
+#: gtk2_ardour/editor_audio_import.cc:94
+msgid "You can't import or embed an audiofile until you have a session loaded."
+msgstr "Sie können keine Audiodatei importieren, solange kein Projekt geladen ist."
+
+#: gtk2_ardour/editor_audio_import.cc:79
+#: gtk2_ardour/editor_audio_import.cc:112
+msgid "Add existing audio"
+msgstr "Audio importieren"
+
+#: gtk2_ardour/editor_audio_import.cc:224
+msgid "The session already contains a source file named %1. This file will be imported as a new file, please confirm."
+msgstr "Das Projekt enthält bereits eine Datei %1. Diese Datei wird neu importiert."
+
+#: gtk2_ardour/editor_audio_import.cc:226
+msgid "A source file %1 already exists. This operation will not update that source but import the file %2 as a new source, please confirm."
+msgstr "Die Datei %1 existiert bereits. Dieser Vorgang wird die ursprüngliche Datei nicht beibehalten, sondern die Datei %2 als neue Datei importiern."
+
+#: gtk2_ardour/editor_audio_import.cc:498
+msgid "importing %1"
+msgstr "importiere %1"
+
+#: gtk2_ardour/editor_audio_import.cc:503
+msgid "Cancel Import"
+msgstr "Importieren Abbrechen"
+
+#: gtk2_ardour/editor_audio_import.cc:607
+msgid "Editor: cannot open file \"%1\", (%2)"
+msgstr "Editor: kann die Datei \"%1\" nicht öffnen (%2)"
+
+#: gtk2_ardour/editor_audio_import.cc:615
+msgid "Cancel entire import"
+msgstr "Importieren Abbrechen"
+
+#: gtk2_ardour/editor_audio_import.cc:616
+msgid "Don't embed it"
+msgstr "Nicht einbetten"
+
+#: gtk2_ardour/editor_audio_import.cc:617
+msgid "Embed all without questions"
+msgstr "Alle Importieren ohne nachzufragen"
+
+#: gtk2_ardour/editor_audio_import.cc:620
+#: gtk2_ardour/editor_audio_import.cc:647
+msgid ""
+"%1\n"
+"This audiofile's sample rate doesn't match the session sample rate!"
+msgstr ""
+"%1\n"
+"Die Samplerate dieser Audiodatei unterscheidet sich von der Samplerate dieses Projekts."
+
+#: gtk2_ardour/editor_audio_import.cc:643
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: gtk2_ardour/editor_audio_import.cc:644
+msgid "Embed it anyway"
+msgstr "Trotzdem importieren"
+
+#: gtk2_ardour/editor_audio_import.cc:692
+msgid "could not open %1"
+msgstr "Konnte \"%s\" nicht öffnen."
+
+#: gtk2_ardour/editor_audio_import.cc:822
+msgid "insert sndfile"
+msgstr "Audiodatei einfügen"
+
+#: gtk2_ardour/audio_streamview.cc:171
+msgid "programming error: %1"
+msgstr "Programmierfehler: %1"
+
+#: gtk2_ardour/marker_time_axis.cc:209
msgid "Remove"
msgstr "Löschen"
-#: gtk2_ardour/route_time_axis.cc:514
-#: gtk2_ardour/route_time_axis.cc:569
-#: gtk2_ardour/route_time_axis.cc:838
-#: gtk2_ardour/editor_actions.cc:1297
-msgid "programming error: %1 %2"
-msgstr "Programmierfehler: %1 %2"
+#: gtk2_ardour/marker_time_axis.cc:236
+msgid "1 seconds"
+msgstr "1 Sekunde"
-#: gtk2_ardour/route_time_axis.cc:862
-msgid "Name for playlist"
-msgstr "Name für Wiedergabeliste"
+#: gtk2_ardour/marker_time_axis.cc:237
+msgid "1.5 seconds"
+msgstr "1,5 Sekunden"
-#: gtk2_ardour/route_time_axis.cc:864
-#: gtk2_ardour/route_time_axis.cc:1340
-#: gtk2_ardour/editor.cc:1714
-#: gtk2_ardour/editor.cc:3735
-#: gtk2_ardour/editor_markers.cc:590
-#: gtk2_ardour/editor_markers.cc:1022
-#: gtk2_ardour/editor_mouse.cc:5097
-#: gtk2_ardour/imageframe_time_axis.cc:247
-#: gtk2_ardour/marker_time_axis.cc:207
-#: gtk2_ardour/mixer_strip.cc:978
-#: gtk2_ardour/redirect_box.cc:860
-#: gtk2_ardour/redirect_box.cc:1192
-#: gtk2_ardour/route_ui.cc:814
-#: gtk2_ardour/visual_time_axis.cc:330
-msgid "Rename"
-msgstr "Umbenennen"
+#: gtk2_ardour/marker_time_axis.cc:238
+msgid "2 seconds"
+msgstr "2 Sekunden"
-#: gtk2_ardour/route_time_axis.cc:906
-#: gtk2_ardour/route_time_axis.cc:952
-msgid "Name for Playlist"
-msgstr "Name für Wiedergabeliste"
+#: gtk2_ardour/marker_time_axis.cc:239
+msgid "2.5 seconds"
+msgstr "2,5 Sekunden"
-#: gtk2_ardour/route_time_axis.cc:1155
-#: gtk2_ardour/visual_time_axis.cc:340
-#: gtk2_ardour/visual_time_axis.cc:387
-msgid "A track already exists with that name"
-msgstr "Es existiert bereits eine Spur mit diesem Namen"
+#: gtk2_ardour/marker_time_axis.cc:240
+msgid "3 seconds"
+msgstr "3 Sekunden"
-#: gtk2_ardour/route_time_axis.cc:1344
-msgid "New Copy"
-msgstr "Neue Kopie"
+#: gtk2_ardour/marker_time_axis.cc:245
+msgid "Duration (sec)"
+msgstr "Dauer (Sek)"
-#: gtk2_ardour/route_time_axis.cc:1346
-msgid "Clear Current"
-msgstr "Ausgewählte zurücksetzen"
+#: gtk2_ardour/marker_time_axis.cc:248
+msgid "Remove Marker"
+msgstr "Marker entfernen"
-#: gtk2_ardour/route_time_axis.cc:1349
-msgid "Select from all ..."
-msgstr "Aus allen auswählen..."
+#: gtk2_ardour/marker_time_axis.cc:250
+msgid "Marker"
+msgstr "Marker"
-#: gtk2_ardour/route_time_axis.cc:1554
-#: gtk2_ardour/editor.cc:1368
-#: gtk2_ardour/selection.cc:694
-#: gtk2_ardour/selection.cc:733
-msgid "programming error: "
-msgstr "Programmierfehler:"
+#: gtk2_ardour/marker_time_axis.cc:251
+msgid "Rename Track"
+msgstr "Spur umbenennen"
-#: gtk2_ardour/audio_time_axis.cc:214
-msgid "Fader"
-msgstr "Fader"
+#: gtk2_ardour/redirect_automation_time_axis.cc:95
+msgid "add automation event to "
+msgstr "Automationspunkt einfügen für"
-#: gtk2_ardour/audio_time_axis.cc:219
-msgid "Pan"
-msgstr "Pan"
+#: gtk2_ardour/export_session_dialog.cc:29
+msgid "Export to File"
+msgstr "Als Audiodatei exportieren"
-#: gtk2_ardour/audio_time_axis.cc:235
-msgid "Hide all crossfades"
-msgstr "Alle Crossfades verbergen"
+#: gtk2_ardour/new_session_dialog.cc:51
+msgid "Name :"
+msgstr "Name :"
-#: gtk2_ardour/audio_time_axis.cc:236
-msgid "Show all crossfades"
-msgstr "Alle Crossfades zeigen"
+#: gtk2_ardour/new_session_dialog.cc:55
+#: gtk2_ardour/new_session_dialog.cc:56
+#: gtk2_ardour/new_session_dialog.cc:57
+#: gtk2_ardour/new_session_dialog.cc:58
+msgid "channels"
+msgstr "Kanäle"
-#: gtk2_ardour/audio_time_axis.cc:244
-msgid "Show waveforms"
-msgstr "Wellenformen zeigen"
+#: gtk2_ardour/new_session_dialog.cc:76
+msgid "<b>Busses</b>"
+msgstr "<b>Busse</b>"
-#: gtk2_ardour/audio_time_axis.cc:254
-msgid "Traditional"
-msgstr "Traditionell"
+#: gtk2_ardour/new_session_dialog.cc:77
+msgid "<b>Inputs</b>"
+msgstr "<b>Eingänge</b>"
-#: gtk2_ardour/audio_time_axis.cc:258
-msgid "Rectified"
-msgstr "Gleichgerichtet"
+#: gtk2_ardour/new_session_dialog.cc:78
+msgid "<b>Outputs</b>"
+msgstr "<b>Ausgänge</b>"
-#: gtk2_ardour/audio_time_axis.cc:268
-#: gtk2_ardour/editor.cc:1334
-#: gtk2_ardour/editor.cc:1337
-#: gtk2_ardour/editor.cc:1356
-#: gtk2_ardour/editor.cc:1359
-msgid "Linear"
-msgstr "Linear"
+#: gtk2_ardour/new_session_dialog.cc:80
+msgid "Create Folder In :"
+msgstr "Verzeichnis erstellen in:"
-#: gtk2_ardour/audio_time_axis.cc:271
-msgid "Logarithmic"
-msgstr "Logarithmisch"
+#: gtk2_ardour/new_session_dialog.cc:82
+msgid "Template :"
+msgstr "Vorlage :"
-#: gtk2_ardour/audio_time_axis.cc:290
-msgid "Waveform"
-msgstr "Wellenform"
+#: gtk2_ardour/new_session_dialog.cc:84
+msgid "Create Monitor Bus"
+msgstr "Monitor Bus erstellen"
-#: gtk2_ardour/audio_time_axis.cc:362
-msgid "gain"
-msgstr "Gain"
+#: gtk2_ardour/new_session_dialog.cc:91
+msgid "Create Master Bus"
+msgstr "Master Bus erstellen"
-#: gtk2_ardour/audio_time_axis.cc:402
-msgid "pan"
-msgstr "Pan"
+#: gtk2_ardour/new_session_dialog.cc:93
+msgid "Automatically Connect to Physical Inputs"
+msgstr "Eingänge automatisch mit Audioeingängen verbinden"
+
+#: gtk2_ardour/new_session_dialog.cc:94
+#: gtk2_ardour/new_session_dialog.cc:107
+msgid "Use only"
+msgstr "Benutze nur"
+
+#: gtk2_ardour/new_session_dialog.cc:106
+msgid "Automatically Connect Outputs"
+msgstr "Ausgänge automatisch verbinden"
-#: gtk2_ardour/automation_line.cc:794
+#: gtk2_ardour/new_session_dialog.cc:115
+msgid "... to Master Bus"
+msgstr "... mit Master Bus"
+
+#: gtk2_ardour/new_session_dialog.cc:116
+msgid "... to Physical Outputs"
+msgstr "... mit Audioausgängen"
+
+#: gtk2_ardour/new_session_dialog.cc:122
+msgid "Advanced Options"
+msgstr "Erweiterte Einstellungen"
+
+#: gtk2_ardour/new_session_dialog.cc:130
+msgid "Recent:"
+msgstr "Zuletzt verwendet:"
+
+#: gtk2_ardour/new_session_dialog.cc:167
+msgid "Browse:"
+msgstr "Durchsuchen:"
+
+#: gtk2_ardour/new_session_dialog.cc:379
+msgid "Session Control"
+msgstr "Projektübersicht"
+
+#: gtk2_ardour/new_session_dialog.cc:391
+msgid "Recent Sessions"
+msgstr "Zuletzt verwendete Projekte"
+
+#: gtk2_ardour/new_session_dialog.cc:419
+msgid "select template"
+msgstr "Vorlage auswählen"
+
+#: gtk2_ardour/new_session_dialog.cc:425
+msgid "select session file"
+msgstr "Projektdatei auswählen"
+
+#: gtk2_ardour/new_session_dialog.cc:434
+msgid "select directory"
+msgstr "Verzeichnis auswählen"
+
+#: gtk2_ardour/new_session_dialog.cc:493
+msgid "Audio Setup"
+msgstr "Audio-Einstellungen"
+
+#: gtk2_ardour/new_session_dialog.cc:517
+msgid "New Session"
+msgstr "Neues Projekt"
+
+#: gtk2_ardour/new_session_dialog.cc:522
+msgid "Open Session"
+msgstr "Projekt öffnen"
+
+#: gtk2_ardour/panner_ui.cc:57
+#: gtk2_ardour/panner_ui.cc:272
+msgid "link"
+msgstr "link"
+
+#: gtk2_ardour/panner_ui.cc:70
+msgid "Pan automation mode"
+msgstr "Pan-Automationsmodus"
+
+#: gtk2_ardour/panner_ui.cc:71
+msgid "Pan automation type"
+msgstr "Pan-Automationstyp"
+
+#: gtk2_ardour/panner_ui.cc:81
+msgid "panning link control"
+msgstr "Pan-Regler verbinden"
+
+#: gtk2_ardour/panner_ui.cc:83
+msgid "panning link direction"
+msgstr "Richtung der Verbindung"
+
+#: gtk2_ardour/panner_ui.cc:275
+msgid "L"
+msgstr "L"
+
+#: gtk2_ardour/panner_ui.cc:395
+#, c-format
+msgid "panner for channel %zu"
+msgstr "Pan-Regler für Kanal %zu"
+
+#: gtk2_ardour/panner_ui.cc:466
+msgid "Mute"
+msgstr "Mute"
+
+#: gtk2_ardour/panner_ui.cc:474
+msgid "Bypass"
+msgstr "Bypass"
+
+#: gtk2_ardour/panner_ui.cc:482
+msgid "Reset"
+msgstr "Zurücksetzen"
+
+#: gtk2_ardour/panner_ui.cc:484
+msgid "Reset all"
+msgstr "Alle zurücksetzen"
+
+#: gtk2_ardour/opts.cc:50
+msgid "Usage: "
+msgstr "Aufruf:"
+
+#: gtk2_ardour/opts.cc:51
+msgid " -v, --version Show version information\n"
+msgstr " -v, --version Versionsinformation ausgeben\n"
+
+#: gtk2_ardour/opts.cc:52
+msgid " -h, --help Print this message\n"
+msgstr " -h, --help Diese Hinweise\n"
+
+#: gtk2_ardour/opts.cc:53
+msgid " -b, --bindings Print all possible keyboard binding names\n"
+msgstr " -b, --bindings Alle möglichen Tastenzuweisungsnamen ausgeben\n"
+
+#: gtk2_ardour/opts.cc:54
+msgid " -c, --name name Use a specific jack client name, default is ardour\n"
+msgstr " -c, --name name Benutze spezielle JACK-Clientkennung, Standard: ardour\n"
+
+#: gtk2_ardour/opts.cc:55
+msgid " -d, --disable-plugins Disable all plugins in an existing session\n"
+msgstr "-d, --disable-plugins Alle Plugins eines bestehenden Projekts deaktivieren\n"
+
+#: gtk2_ardour/opts.cc:56
+msgid " -n, --show-splash Show splash screen\n"
+msgstr " -n, --show-splash Zeige Splashscreen\n"
+
+#: gtk2_ardour/opts.cc:57
+msgid " -m, --menus file Use \"file\" for Ardour menus\n"
+msgstr " -m, --menus file Benutze \"file\" für Ardour-Menüs\n"
+
+#: gtk2_ardour/opts.cc:58
+msgid " -N, --new session-name Create a new session from the command line\n"
+msgstr " -N, --new session-name Erstelle neues Projekt aus der Kommandozeile\n"
+
+#: gtk2_ardour/opts.cc:59
+msgid " -O, --no-hw-optimizations Disable h/w specific optimizations\n"
+msgstr " -O, --no-hw-optimizations Hardwarespezifische Optimierungen deaktivieren\n"
+
+#: gtk2_ardour/opts.cc:60
+msgid " -S, --sync\t Draw the gui synchronously \n"
+msgstr " -S, --sync\t Zeichne die GUI synchron \n"
+
+#: gtk2_ardour/opts.cc:62
+msgid " -V, --novst Do not use VST support\n"
+msgstr " -V, --novst VST-Unterstützung ausschalten\n"
+
+#: gtk2_ardour/opts.cc:64
+msgid " [session-name] Name of session to load\n"
+msgstr " [session-name] Name des zu ladenden Projekts\n"
+
+#: gtk2_ardour/opts.cc:65
+msgid " -C, --curvetest filename Curve algorithm debugger\n"
+msgstr " -C, --curvetest filename Kurvenalgorithmus debuggen\n"
+
+#: gtk2_ardour/opts.cc:66
+msgid " -k, --keybindings filename Name of key bindings to load (default is ~/.ardour2/ardour.bindings)\n"
+msgstr " -k, --keybindings filename Dateiname für die Tastaturbelegungen (Standard: ~/.ardour2/ardour.bindings)\n"
+
+#: gtk2_ardour/ardour_ui_options.cc:228
+msgid "programming error: unknown solo model in ARDOUR_UI::set_solo_model: %1"
+msgstr "Programmierfehler: unbekannte Solo-Einstellung in ARDOUR_UI::set_solo_model: %1"
+
+#: gtk2_ardour/ardour_ui_options.cc:261
+msgid "programming error: unknown remote model in ARDOUR_UI::set_remote_model: %1"
+msgstr "Programmierfehler: unbekanntes Fernsteuerungsmodell in ARDOUR_UI::set_remote_model: %1"
+
+#: gtk2_ardour/ardour_ui_options.cc:295
+msgid "programming error: unknown monitor model in ARDOUR_UI::set_monitor_model: %1"
+msgstr "Programmierfehler: unbekannte Monitoring-Einstellung in ARDOUR_UI::set_monitor_model: %1"
+
+#: gtk2_ardour/ardour_ui_options.cc:334
+msgid "programming error: unknown denormal model in ARDOUR_UI::set_denormal_model: %1"
+msgstr "Programmierfehler: unknown denormal model in ARDOUR_UI::set_denormal_model: %1"
+
+#: gtk2_ardour/ardour_ui_options.cc:781
+msgid "programming error: unknown file header format passed to ARDOUR_UI::map_file_data_format: %1"
+msgstr "Programmierfehler: unbekanntes Dateiheaderformat übergeben an ARDOUR_UI::map_file_data_format: %1"
+
+#: gtk2_ardour/ardour_ui_options.cc:817
+msgid "programming error: unknown file data format passed to ARDOUR_UI::map_file_data_format: %1"
+msgstr "Programmierfehler: unbekanntes Dateiformat übergeben an ARDOUR_UI::map_file_data_format: %1"
+
+#: gtk2_ardour/ardour_ui_options.cc:1180
+msgid "ST"
+msgstr "HT"
+
+#: gtk2_ardour/time_axis_view_item.cc:327
+msgid "new duration %1 frames is out of bounds for %2"
+msgstr "Neue Dauer %1 Frames ist außerhalb des erlaubten Bereichs %2"
+
+#: gtk2_ardour/about.cc:201
+msgid "Copyright (C) 1999-2008 Paul Davis\n"
+msgstr "Copyright (C) 1999-2008 Paul Davis\n"
+
+#: gtk2_ardour/about.cc:202
+msgid ""
+"Ardour comes with ABSOLUTELY NO WARRANTY\n"
+"This is free software, and you are welcome to redistribute it\n"
+"under certain conditions; see the file COPYING for details.\n"
+msgstr ""
+"Ardour wird Ihnen OHNE JEGLICHE GEWÄHRLEISTUNG zur Verfügung gestellt.\n"
+"Dies ist freie Software und Sie dürfen sie gerne weiterverbreiten,\n"
+"solange Sie sich an die Bedingungen, die in der Datei COPYING aufgeführt sind halten.\n"
+
+#: gtk2_ardour/about.cc:207
+msgid "visit http://www.ardour.org/"
+msgstr "besuchen Sie http://www.ardour.org"
+
+#: gtk2_ardour/about.cc:208
+msgid ""
+"%1\n"
+"(built from revision %2)"
+msgstr ""
+"%1\n"
+"(Aus Revision %2 erstellt)"
+
+#: gtk2_ardour/pan_automation_time_axis.cc:69
+msgid "You need to select which line to edit"
+msgstr "Sie müssen die entsprechende Automationslinie auswählen"
+
+#: gtk2_ardour/pan_automation_time_axis.cc:90
+msgid "add pan automation event"
+msgstr "Pan-Automationspunkt einfügen"
+
+#: gtk2_ardour/automation_line.cc:610
+msgid "Ignoring illegal points on AutomationLine \"%1\""
+msgstr "Unzulässige Automationspunkte werden ignoriert: \"%1\""
+
+#: gtk2_ardour/automation_line.cc:800
msgid "automation event move"
msgstr "Automationspunkt bewegen"
-#: gtk2_ardour/automation_line.cc:796
+#: gtk2_ardour/automation_line.cc:802
msgid "automation range drag"
msgstr "Automationsbereich bewegen"
-#: gtk2_ardour/automation_line.cc:1021
-#: gtk2_ardour/region_gain_line.cc:83
+#: gtk2_ardour/automation_line.cc:1027
msgid "remove control point"
msgstr "Automationspunkt entfernen"
-#: gtk2_ardour/automation_time_axis.cc:56
-#: gtk2_ardour/editor_ops.cc:3404
-msgid "clear"
-msgstr "Leeren"
+#: gtk2_ardour/editor_route_list.cc:369
+#: gtk2_ardour/mixer_ui.cc:917
+msgid "Show All"
+msgstr "Alles zeigen"
-#: gtk2_ardour/automation_time_axis.cc:97
-msgid "track height"
-msgstr "Anzeigehöhe"
+#: gtk2_ardour/editor_route_list.cc:370
+#: gtk2_ardour/mixer_ui.cc:918
+msgid "Hide All"
+msgstr "Alle verbergen"
-#: gtk2_ardour/automation_time_axis.cc:98
-msgid "automation state"
-msgstr "Automationsmodus"
+#: gtk2_ardour/editor_route_list.cc:371
+#: gtk2_ardour/mixer_ui.cc:919
+msgid "Show All Audio Tracks"
+msgstr "Zeige alle Audio-Spuren"
-#: gtk2_ardour/automation_time_axis.cc:99
-msgid "clear track"
-msgstr "Spur zurücksetzen"
+#: gtk2_ardour/editor_route_list.cc:372
+#: gtk2_ardour/mixer_ui.cc:920
+msgid "Hide All Audio Tracks"
+msgstr "Verberge alle Audio-Spuren"
-#: gtk2_ardour/automation_time_axis.cc:100
-msgid "hide track"
-msgstr "Diese Spur verbergen"
+#: gtk2_ardour/editor_route_list.cc:373
+#: gtk2_ardour/mixer_ui.cc:921
+msgid "Show All Audio Busses"
+msgstr "Zeige alle Audio-Busse"
-#: gtk2_ardour/automation_time_axis.cc:207
-#: gtk2_ardour/automation_time_axis.cc:236
-#: gtk2_ardour/automation_time_axis.cc:461
-#: gtk2_ardour/gain_meter.cc:160
-#: gtk2_ardour/generic_pluginui.cc:332
-#: gtk2_ardour/generic_pluginui.cc:579
-#: gtk2_ardour/panner_ui.cc:88
-msgid "Manual"
-msgstr "Manuell"
+#: gtk2_ardour/editor_route_list.cc:374
+#: gtk2_ardour/mixer_ui.cc:922
+msgid "Hide All Audio Busses"
+msgstr "Verberge alle Audio-Busse"
-#: gtk2_ardour/automation_time_axis.cc:209
-#: gtk2_ardour/automation_time_axis.cc:247
-#: gtk2_ardour/automation_time_axis.cc:465
-#: gtk2_ardour/editor.cc:1931
-#: gtk2_ardour/editor.cc:2014
-#: gtk2_ardour/gain_meter.cc:162
-#: gtk2_ardour/generic_pluginui.cc:335
-#: gtk2_ardour/generic_pluginui.cc:581
-#: gtk2_ardour/panner_ui.cc:90
-msgid "Play"
-msgstr "Wiedergabe"
+#: gtk2_ardour/editor_timefx.cc:71
+msgid "Quick but Ugly"
+msgstr "Quick but Ugly"
-#: gtk2_ardour/automation_time_axis.cc:211
-#: gtk2_ardour/automation_time_axis.cc:258
-#: gtk2_ardour/automation_time_axis.cc:469
-#: gtk2_ardour/gain_meter.cc:164
-#: gtk2_ardour/generic_pluginui.cc:338
-#: gtk2_ardour/generic_pluginui.cc:583
-#: gtk2_ardour/panner_ui.cc:92
-msgid "Write"
-msgstr "Write"
+#: gtk2_ardour/editor_timefx.cc:72
+msgid "Skip Anti-aliasing"
+msgstr "Ãœberspringe Anti-Aliasing"
-#: gtk2_ardour/automation_time_axis.cc:213
-#: gtk2_ardour/automation_time_axis.cc:269
-#: gtk2_ardour/automation_time_axis.cc:473
-#: gtk2_ardour/gain_meter.cc:166
-#: gtk2_ardour/generic_pluginui.cc:341
-#: gtk2_ardour/generic_pluginui.cc:585
-#: gtk2_ardour/panner_ui.cc:94
-msgid "Touch"
-msgstr "Touch"
+#: gtk2_ardour/editor_timefx.cc:73
+msgid "Contents:"
+msgstr "Inhalt:"
-#: gtk2_ardour/automation_time_axis.cc:280
-#: gtk2_ardour/generic_pluginui.cc:344
-msgid "???"
-msgstr "???"
+#: gtk2_ardour/editor_timefx.cc:74
+msgid "Strict Linear"
+msgstr "Linear"
-#: gtk2_ardour/automation_time_axis.cc:294
-msgid "clear automation"
-msgstr "Automation zurücksetzen"
+#: gtk2_ardour/editor_timefx.cc:82
+msgid "Pitch Shift"
+msgstr "Pitch-Shift"
-#: gtk2_ardour/automation_time_axis.cc:452
-#: gtk2_ardour/editor_actions.cc:461
-#: gtk2_ardour/editor_markers.cc:588
-msgid "Hide"
-msgstr "Verbergen"
+#: gtk2_ardour/editor_timefx.cc:84
+msgid "Time Stretch"
+msgstr "Time-Stretch"
-#: gtk2_ardour/automation_time_axis.cc:454
-#: gtk2_ardour/crossfade_edit.cc:77
-#: gtk2_ardour/redirect_box.cc:1180
-#: gtk2_ardour/connection_editor.cc:56
-msgid "Clear"
-msgstr "Leeren"
+#: gtk2_ardour/editor_timefx.cc:100
+msgid "Octaves"
+msgstr "Oktaven"
-#: gtk2_ardour/automation_time_axis.cc:477
-msgid "State"
-msgstr "Automationssmodus"
+#: gtk2_ardour/editor_timefx.cc:104
+msgid "Semitones (12TET)"
+msgstr "Halbtöne"
-#: gtk2_ardour/canvas-imageframe.c:104
-msgid "pixbuf"
-msgstr ""
+#: gtk2_ardour/editor_timefx.cc:108
+msgid "Cents"
+msgstr "Cents"
-#: gtk2_ardour/canvas-imageframe.c:105
-msgid "the pixbuf"
-msgstr ""
+#: gtk2_ardour/editor_timefx.cc:114
+msgid "Shift"
+msgstr "Shift"
-#: gtk2_ardour/canvas-imageframe.c:110
-msgid "x"
-msgstr ""
+#: gtk2_ardour/editor_timefx.cc:149
+msgid "Stretch/Shrink"
+msgstr "Stretch/Shrink"
-#: gtk2_ardour/canvas-imageframe.c:111
-#: gtk2_ardour/canvas-simpleline.c:111
-#: gtk2_ardour/canvas-simplerect.c:107
-msgid "x coordinate of upper left corner of rect"
-msgstr ""
+#: gtk2_ardour/editor_timefx.cc:324
+msgid "timefx cannot be started - thread creation error"
+msgstr "Time-Stretch konnte nicht gestartet werden - Fehler beim erstellen des Threads"
-#: gtk2_ardour/canvas-imageframe.c:120
-msgid "y"
-msgstr ""
+#: gtk2_ardour/editor_timefx.cc:405
+msgid "pitch shift"
+msgstr "pitch-shift"
-#: gtk2_ardour/canvas-imageframe.c:121
-#: gtk2_ardour/canvas-simpleline.c:121
-#: gtk2_ardour/canvas-simplerect.c:117
-msgid "y coordinate of upper left corner of rect "
-msgstr ""
+#: gtk2_ardour/editor_timefx.cc:405
+msgid "time stretch"
+msgstr "Time-Stretch"
-#: gtk2_ardour/canvas-imageframe.c:129
-msgid "width"
-msgstr ""
+#: gtk2_ardour/io_selector.cc:59
+#: gtk2_ardour/io_selector.cc:749
+msgid "OK"
+msgstr "OK"
-#: gtk2_ardour/canvas-imageframe.c:130
-msgid "the width"
-msgstr ""
+#: gtk2_ardour/io_selector.cc:61
+#: gtk2_ardour/io_selector.cc:751
+msgid "Rescan"
+msgstr "Auffrischen"
-#: gtk2_ardour/canvas-imageframe.c:139
-msgid "drawwidth"
-msgstr ""
+#: gtk2_ardour/io_selector.cc:69
+msgid "%1 input"
+msgstr "%1 Eingang"
-#: gtk2_ardour/canvas-imageframe.c:140
-msgid "drawn width"
-msgstr ""
+#: gtk2_ardour/io_selector.cc:71
+msgid "%1 output"
+msgstr "%1 Ausgang"
-#: gtk2_ardour/canvas-imageframe.c:148
-msgid "height"
-msgstr ""
+#: gtk2_ardour/io_selector.cc:143
+msgid "Inputs"
+msgstr "Eingänge"
-#: gtk2_ardour/canvas-imageframe.c:149
-msgid "the height"
-msgstr ""
+#: gtk2_ardour/io_selector.cc:143
+msgid "Outputs"
+msgstr "Ausgänge"
-#: gtk2_ardour/canvas-imageframe.c:157
-msgid "anchor"
-msgstr ""
+#: gtk2_ardour/io_selector.cc:144
+msgid "Add Input"
+msgstr "Hinzufügen"
-#: gtk2_ardour/canvas-imageframe.c:158
-msgid "the anchor"
-msgstr ""
+#: gtk2_ardour/io_selector.cc:144
+msgid "Add Output"
+msgstr "Hinzufügen"
-#: gtk2_ardour/canvas-simpleline.c:110
-#: gtk2_ardour/canvas-simplerect.c:106
-msgid "x1"
-msgstr ""
+#: gtk2_ardour/io_selector.cc:145
+msgid "Remove Input"
+msgstr "Entfernen"
-#: gtk2_ardour/canvas-simpleline.c:120
-#: gtk2_ardour/canvas-simplerect.c:116
-msgid "y1"
-msgstr ""
+#: gtk2_ardour/io_selector.cc:145
+msgid "Remove Output"
+msgstr "Entfernen"
-#: gtk2_ardour/canvas-simpleline.c:131
-#: gtk2_ardour/canvas-simplerect.c:127
-msgid "x2"
-msgstr ""
+#: gtk2_ardour/io_selector.cc:146
+msgid "Disconnect All"
+msgstr "Alle trennen"
-#: gtk2_ardour/canvas-simpleline.c:132
-#: gtk2_ardour/canvas-simplerect.c:128
-msgid "x coordinate of lower right corner of rect"
-msgstr ""
+#: gtk2_ardour/io_selector.cc:160
+msgid "Available connections"
+msgstr "Verfügbare Verbindungen"
-#: gtk2_ardour/canvas-simpleline.c:141
-#: gtk2_ardour/canvas-simplerect.c:137
-msgid "y2"
-msgstr ""
+#: gtk2_ardour/io_selector.cc:550
+#: gtk2_ardour/io_selector.cc:561
+msgid "There are no more JACK ports available."
+msgstr "Es sind keine weiteren JACK Ports verfügbar."
-#: gtk2_ardour/canvas-simpleline.c:142
-#: gtk2_ardour/canvas-simplerect.c:138
-msgid "y coordinate of lower right corner of rect "
-msgstr ""
+#: gtk2_ardour/io_selector.cc:755
+msgid "ardour: "
+msgstr "ardour: "
-#: gtk2_ardour/canvas-simpleline.c:150
-msgid "color rgba"
-msgstr ""
+#: gtk2_ardour/editor_selection_list.cc:180
+msgid "Name for Chunk:"
+msgstr "Name für Abschnitt:"
-#: gtk2_ardour/canvas-simpleline.c:151
-msgid "color of line"
-msgstr ""
+#: gtk2_ardour/editor_selection_list.cc:183
+msgid "Create Chunk"
+msgstr "Abschnitt erzeugen"
-#: gtk2_ardour/canvas-simplerect.c:148
-msgid "outline pixels"
-msgstr ""
+#: gtk2_ardour/editor_selection_list.cc:183
+msgid "Forget it"
+msgstr "Abbrechen"
-#: gtk2_ardour/canvas-simplerect.c:149
-msgid "width in pixels of outline"
-msgstr ""
+#: gtk2_ardour/editor_selection_list.cc:206
+msgid "No selectable material found in the currently selected time range"
+msgstr "Konnte im ausgewählten Bereich kein auswählbares Material finden"
-#: gtk2_ardour/canvas-simplerect.c:159
-msgid "outline what"
+#: gtk2_ardour/time_axis_view.cc:626
+msgid "Largest"
+msgstr "Am größten"
+
+#: gtk2_ardour/time_axis_view.cc:627
+msgid "Large"
+msgstr "Groß"
+
+#: gtk2_ardour/time_axis_view.cc:628
+msgid "Larger"
+msgstr "Größer"
+
+#: gtk2_ardour/time_axis_view.cc:629
+msgid "Normal"
+msgstr "Normal"
+
+#: gtk2_ardour/time_axis_view.cc:630
+msgid "Smaller"
+msgstr "Kleiner"
+
+#: gtk2_ardour/time_axis_view.cc:631
+msgid "Small"
+msgstr "Klein"
+
+#: gtk2_ardour/time_axis_view.cc:971
+msgid "unknown track height name \"%1\" in XML GUI information"
+msgstr "Unbekannte Spurhöhe \"%1\" in der XML GUI Information"
+
+#: gtk2_ardour/redirect_box.cc:239
+msgid "New send"
+msgstr "Neuer Send"
+
+#: gtk2_ardour/redirect_box.cc:240
+msgid "Show send controls"
+msgstr "Zeige Send-Steuerung"
+
+#: gtk2_ardour/redirect_box.cc:422
+#: gtk2_ardour/redirect_box.cc:725
+msgid "ardour: weird plugin dialog"
+msgstr "ardour: Merkwürdiger Plugin-Dialog"
+
+#: gtk2_ardour/redirect_box.cc:429
+msgid ""
+"You attempted to add a plugin (%1).\n"
+"The plugin has %2 inputs\n"
+"but at the insertion point, there are\n"
+"%3 active signal streams.\n"
+"\n"
+"This makes no sense - you are throwing away\n"
+"part of the signal."
msgstr ""
+"Sie möchten ein Plugin hinzufügen (%1).\n"
+"Dieses Plugin besitzt %2 Eingänge,\n"
+"doch an dieser Position existieren\n"
+"%3 aktive Signale.\n"
+"\n"
+"Das ist nicht möglich - es würden Teile\n"
+"des Signals fehlen."
-#: gtk2_ardour/canvas-simplerect.c:160
-msgid "which boundaries to outline (mask)"
+#: gtk2_ardour/redirect_box.cc:441
+msgid ""
+"You attempted to add a plugin (%1).\n"
+"The plugin has %2 inputs\n"
+"but at the insertion point there are\n"
+"only %3 active signal streams.\n"
+"\n"
+"This makes no sense - unless the plugin supports\n"
+"side-chain inputs. A future version of Ardour will\n"
+"support this type of configuration."
msgstr ""
+"Sie möchten ein Plugin hinzufügen (%1).\n"
+"Dieses Plugin besitzt %2 Eingänge,\n"
+"doch an dieser Position existieren\n"
+"nur %3 aktive Signale.\n"
+"\n"
+"Das ist nicht möglich - außer, wenn dieses Plugin\n"
+"Side-Chain-Eingänge unterstützt. Dies wird in einer\n"
+"der nächsten Versionen von Ardour möglich sein."
-#: gtk2_ardour/canvas-simplerect.c:171
-msgid "fill"
+#: gtk2_ardour/redirect_box.cc:454
+msgid ""
+"You attempted to add a plugin (%1).\n"
+"\n"
+"The I/O configuration doesn't make sense:\n"
+"\n"
+"The plugin has %2 inputs and %3 outputs.\n"
+"The track/bus has %4 inputs and %5 outputs.\n"
+"The insertion point, has %6 active signals.\n"
+"\n"
+"Ardour does not understand what to do in such situations.\n"
msgstr ""
+"Sie möchten ein Plugin hinzufügen (%1).\n"
+"\n"
+"Die Ein-/Ausgangskonfiguration ist aber nicht möglich:\n"
+"\n"
+"Das Plugin besitzt %2 Eingänge und %3 Ausgänge.\n"
+"Diese Spur besitzt %4 Eingänge und %5 Ausgänge.\n"
+"An dieser Position existieren %6 aktive Signale.\n"
+"\n"
+"Ardour kann mit dieser Situation nicht umgehen.\n"
-#: gtk2_ardour/canvas-simplerect.c:172
-msgid "fill rectangle"
+#: gtk2_ardour/redirect_box.cc:503
+msgid "Cannot set up new send: %1"
+msgstr "Kann keinen neuen Send erstellen: %1"
+
+#: gtk2_ardour/redirect_box.cc:559
+msgid "Pre-fader inserts, sends & plugins:"
+msgstr "Pre-Fader Inserts, Sends & Plugins:"
+
+#: gtk2_ardour/redirect_box.cc:562
+msgid "Post-fader inserts, sends & plugins:"
+msgstr "Post-Fader Inserts, Sends & Plugins:"
+
+#: gtk2_ardour/redirect_box.cc:728
+msgid ""
+"You cannot reorder this set of redirects\n"
+"in that way because the inputs and\n"
+"outputs do not work correctly."
msgstr ""
+"Sie können diese Gruppe von Redirects\n"
+"nicht auf diese Weise verändern, denn\n"
+"die Ein-/Ausgänge arbeiten ncht korrekt."
-#: gtk2_ardour/canvas-simplerect.c:179
-msgid "draw"
+#: gtk2_ardour/redirect_box.cc:882
+msgid "rename redirect"
+msgstr "Redirect umbenennen"
+
+#: gtk2_ardour/redirect_box.cc:958
+#: gtk2_ardour/redirect_box.cc:1007
+msgid ""
+"Copying the set of redirects on the clipboard failed,\n"
+"probably because the I/O configuration of the plugins\n"
+"could not match the configuration of this track."
msgstr ""
+"Konnte diese Gruppe von Redirects nicht in die\n"
+"Zwischenablage kopieren. Wahrscheinlich passt die\n"
+"Ein-/Ausgangskonfiguration des Plugins nicht zu dieser Spur."
-#: gtk2_ardour/canvas-simplerect.c:180
-msgid "draw rectangle"
+#: gtk2_ardour/redirect_box.cc:1030
+msgid ""
+"Do you really want to remove all pre-fader redirects from this track?\n"
+"(this cannot be undone)"
msgstr ""
+"Wollen Sie wirklich alle Pre-Fader-Redirects von dieser Spur entfernen?\n"
+"(Dies kann nicht rückgängig gemacht werden)"
-#: gtk2_ardour/canvas-simplerect.c:188
-msgid "outline color rgba"
+#: gtk2_ardour/redirect_box.cc:1033
+msgid ""
+"Do you really want to remove all post-fader redirects from this track?\n"
+"(this cannot be undone)"
msgstr ""
+"Wollen Sie wirklich alle Post-Fader-Redirects von dieser Spur entfernen?\n"
+"(Dies kann nicht rückgängig gemacht werden)"
-#: gtk2_ardour/canvas-simplerect.c:189
-msgid "color of outline"
+#: gtk2_ardour/redirect_box.cc:1038
+msgid ""
+"Do you really want to remove all pre-fader redirects from this bus?\n"
+"(this cannot be undone)"
msgstr ""
+"Wollen Sie wirklich alle Pre-Fader-Redirects von diesem Bus entfernen?\n"
+"(Dies kann nicht rückgängig gemacht werden)"
-#: gtk2_ardour/canvas-simplerect.c:199
-msgid "fill color rgba"
+#: gtk2_ardour/redirect_box.cc:1041
+msgid ""
+"Do you really want to remove all post-fader redirects from this bus?\n"
+"(this cannot be undone)"
msgstr ""
+"Wollen Sie wirklich alle Post-Fader-Redirects von diesem Bus entfernen?\n"
+"(Dies kann nicht rückgängig gemacht werden)"
-#: gtk2_ardour/canvas-simplerect.c:200
-msgid "color of fill"
+#: gtk2_ardour/redirect_box.cc:1047
+msgid "Yes, remove them all"
+msgstr "Ja, alle löschen"
+
+#: gtk2_ardour/redirect_box.cc:1145
+msgid "Not connected to JACK - no I/O changes are possible"
+msgstr "Nicht mit Jack verbunden - es sind keine Änderungen an Ein-/Ausgängen möglich"
+
+#: gtk2_ardour/redirect_box.cc:1194
+msgid "New Plugin"
+msgstr "Plugin einfügen"
+
+#: gtk2_ardour/redirect_box.cc:1196
+msgid "New Insert"
+msgstr "Insert einfügen"
+
+#: gtk2_ardour/redirect_box.cc:1198
+msgid "New Send ..."
+msgstr "Send einfügen..."
+
+#: gtk2_ardour/redirect_box.cc:1204
+msgid "Cut"
+msgstr "Ausschneiden"
+
+#: gtk2_ardour/redirect_box.cc:1206
+msgid "Copy"
+msgstr "Kopieren"
+
+#: gtk2_ardour/redirect_box.cc:1209
+msgid "Delete"
+msgstr "Löschen"
+
+#: gtk2_ardour/redirect_box.cc:1212
+msgid "Paste"
+msgstr "Einfügen"
+
+#: gtk2_ardour/redirect_box.cc:1215
+msgid "Select All"
+msgstr "Alles auswählen"
+
+#: gtk2_ardour/redirect_box.cc:1216
+msgid "Deselect All"
+msgstr "Nichts auswählen"
+
+#: gtk2_ardour/redirect_box.cc:1219
+msgid "Activate"
+msgstr "Aktivieren"
+
+#: gtk2_ardour/redirect_box.cc:1221
+msgid "Deactivate"
+msgstr "Deaktivieren"
+
+#: gtk2_ardour/redirect_box.cc:1223
+msgid "Activate all"
+msgstr "Alle aktivieren"
+
+#: gtk2_ardour/redirect_box.cc:1224
+msgid "Deactivate all"
+msgstr "Alle deaktivieren"
+
+#: gtk2_ardour/redirect_box.cc:1227
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: gtk2_ardour/redirect_box.cc:1417
+msgid "%1: %2 (by %3)"
+msgstr "%1: %2 (by %3)"
+
+#: gtk2_ardour/mixer_ui.cc:88
+msgid "Strips"
+msgstr "Spur"
+
+#: gtk2_ardour/mixer_ui.cc:114
+msgid "Group"
+msgstr "Gruppe"
+
+#: gtk2_ardour/mixer_ui.cc:115
+msgid "Active"
+msgstr "Aktiv"
+
+#: gtk2_ardour/mixer_ui.cc:210
+#: gtk2_ardour/mixer_ui.cc:440
+#: gtk2_ardour/mixer_ui.cc:472
+msgid "Mixer"
+msgstr "Mixer"
+
+#: gtk2_ardour/mixer_ui.cc:941
+msgid "track display list item for renamed strip not found!"
+msgstr "Konnte Bezeichnung für umbenannten Mixerkanal nicht in der Spurliste finden!"
+
+#: gtk2_ardour/utils.cc:138
+#: gtk2_ardour/utils.cc:181
+msgid "bad XPM header %1"
+msgstr "Fehlerhafter XPM Header %1"
+
+#: gtk2_ardour/utils.cc:320
+msgid "missing RGBA style for \"%1\""
+msgstr "Fehlender RGBA Style für \"%1\""
+
+#: gtk2_ardour/utils.cc:343
+msgid "no style found for %1, using red"
+msgstr "Kein Stil für %1 gefunden, verwende rot"
+
+#: gtk2_ardour/utils.cc:382
+msgid "unknown style attribute %1 requested for color; using \"red\""
+msgstr "Unbekanntes Stil-Attribute für Farbe verlagt; stattdessen wir lieber \"rot\" verwendet"
+
+#: gtk2_ardour/utils.cc:583
+msgid "cannot find icon image for %1"
+msgstr "Konnte Icon-Bild für %1 nicht finden"
+
+#: gtk2_ardour/visual_time_axis.cc:72
+msgid "v"
+msgstr "v"
+
+#: gtk2_ardour/visual_time_axis.cc:91
+msgid "Display Height"
+msgstr "Anzeigehöhe"
+
+#: gtk2_ardour/visual_time_axis.cc:92
+msgid "Visual options"
+msgstr "Visuelle optionen"
+
+#: gtk2_ardour/visual_time_axis.cc:93
+msgid "Hide this track"
+msgstr "Diese Spur verbergen"
+
+#: gtk2_ardour/visual_time_axis.cc:227
+msgid "ardour: color selection"
+msgstr "ardour: Farbe auswählen"
+
+#: gtk2_ardour/visual_time_axis.cc:266
+msgid ""
+"Do you really want to remove track \"%1\" ?\n"
+"(cannot be undone)"
msgstr ""
+"Wollen Sie wirklich die Spur \"%1\" löschen?\n"
+"(Kann nicht rückgängig gemacht werden!)"
+
+#: gtk2_ardour/visual_time_axis.cc:268
+msgid "No, do nothing."
+msgstr "Nein, nichts machen."
+
+#: gtk2_ardour/visual_time_axis.cc:269
+msgid "Yes, remove it."
+msgstr "Ja, entfernen."
+
+#: gtk2_ardour/visual_time_axis.cc:315
+msgid "new name: "
+msgstr "Neuer Name: "
+
+#: gtk2_ardour/visual_time_axis.cc:326
+#: gtk2_ardour/visual_time_axis.cc:373
+msgid "A track already exists with that name"
+msgstr "Es existiert bereits eine Spur mit diesem Namen"
#: gtk2_ardour/crossfade_edit.cc:74
msgid "ardour: x-fade edit"
msgstr "ardour: Crossfade Editor"
-#: gtk2_ardour/crossfade_edit.cc:78
-#: gtk2_ardour/panner_ui.cc:420
-msgid "Reset"
-msgstr "Zurücksetzen"
-
#: gtk2_ardour/crossfade_edit.cc:79
msgid "Fade"
msgstr "Fade"
@@ -2378,794 +2628,676 @@ msgid "Fade Out"
msgstr "Fade Out"
#: gtk2_ardour/crossfade_edit.cc:171
-#: gtk2_ardour/editor.cc:1723
-#: gtk2_ardour/editor_actions.cc:459
-#: gtk2_ardour/option_editor.cc:148
+#: gtk2_ardour/editor.cc:1835
msgid "Audition"
msgstr "Vorhören"
-#: gtk2_ardour/editor.cc:109
-#: gtk2_ardour/editor.cc:3214
-msgid "CD Frames"
-msgstr "CD-Frames"
-
-#: gtk2_ardour/editor.cc:110
-#: gtk2_ardour/editor.cc:3216
-msgid "SMPTE Frames"
-msgstr "SMPTE-Frames"
-
-#: gtk2_ardour/editor.cc:111
-#: gtk2_ardour/editor.cc:2748
-#: gtk2_ardour/editor.cc:3218
-msgid "SMPTE Seconds"
-msgstr "SMPTE-Sekunden"
-
-#: gtk2_ardour/editor.cc:112
-#: gtk2_ardour/editor.cc:3220
-msgid "SMPTE Minutes"
-msgstr "SMPTE-Minuten"
-
-#: gtk2_ardour/editor.cc:113
-#: gtk2_ardour/editor.cc:3222
-msgid "Seconds"
-msgstr "Sekunden"
-
-#: gtk2_ardour/editor.cc:114
-#: gtk2_ardour/editor.cc:3224
-msgid "Minutes"
-msgstr "Minuten"
-
-#: gtk2_ardour/editor.cc:115
-#: gtk2_ardour/editor.cc:3198
-msgid "Beats/32"
-msgstr "Schläge / 32"
-
-#: gtk2_ardour/editor.cc:116
-#: gtk2_ardour/editor.cc:3196
-msgid "Beats/16"
-msgstr "Schläge / 16"
-
-#: gtk2_ardour/editor.cc:117
-#: gtk2_ardour/editor.cc:3194
-msgid "Beats/8"
-msgstr "Schläge / 8"
-
-#: gtk2_ardour/editor.cc:118
-#: gtk2_ardour/editor.cc:3192
-msgid "Beats/4"
-msgstr "Schläge / 4"
-
-#: gtk2_ardour/editor.cc:119
-#: gtk2_ardour/editor.cc:3190
-msgid "Beats/3"
-msgstr "Schläge / 3"
-
-#: gtk2_ardour/editor.cc:120
-#: gtk2_ardour/editor.cc:3200
-msgid "Beats"
-msgstr "Schläge"
-
-#: gtk2_ardour/editor.cc:121
-#: gtk2_ardour/editor.cc:3202
-msgid "Bars"
-msgstr "Takte"
-
-#: gtk2_ardour/editor.cc:122
-#: gtk2_ardour/editor.cc:3204
-msgid "Marks"
-msgstr "Marker"
-
-#: gtk2_ardour/editor.cc:123
-#: gtk2_ardour/editor.cc:3206
-msgid "Region starts"
-msgstr "Regionen-Anfang"
-
-#: gtk2_ardour/editor.cc:124
-#: gtk2_ardour/editor.cc:3208
-msgid "Region ends"
-msgstr "Regionen-Ende"
-
-#: gtk2_ardour/editor.cc:125
-#: gtk2_ardour/editor.cc:3212
-msgid "Region syncs"
-msgstr "Regionen-Sync"
-
-#: gtk2_ardour/editor.cc:126
-#: gtk2_ardour/editor.cc:3210
-msgid "Region bounds"
-msgstr "Regionen-Grenzen"
-
-#: gtk2_ardour/editor.cc:131
-#: gtk2_ardour/editor.cc:3240
-#: gtk2_ardour/editor_actions.cc:421
-msgid "No Grid"
-msgstr "Raster aus"
-
-#: gtk2_ardour/editor.cc:132
-#: gtk2_ardour/editor.cc:3242
-#: gtk2_ardour/editor_actions.cc:422
-msgid "Grid"
-msgstr "Einrasten"
-
-#: gtk2_ardour/editor.cc:133
-#: gtk2_ardour/editor.cc:3244
-#: gtk2_ardour/editor_actions.cc:423
-msgid "Magnetic"
-msgstr "Magnetisch"
-
-#: gtk2_ardour/editor.cc:138
-#: gtk2_ardour/editor.cc:148
-#: gtk2_ardour/editor.cc:2734
-#: gtk2_ardour/editor.cc:2760
-#: gtk2_ardour/editor.cc:3283
-#: gtk2_ardour/editor.cc:3308
-#: gtk2_ardour/editor_actions.cc:406
-msgid "Playhead"
-msgstr "Positionszeiger"
-
-#: gtk2_ardour/editor.cc:139
-#: gtk2_ardour/editor.cc:3281
-#: gtk2_ardour/editor_actions.cc:408
-#: gtk2_ardour/marker_time_axis.cc:255
-msgid "Marker"
-msgstr "Marker"
-
-#: gtk2_ardour/editor.cc:140
-#: gtk2_ardour/editor.cc:149
-#: gtk2_ardour/editor.cc:3310
-#: gtk2_ardour/editor_actions.cc:407
-msgid "Mouse"
-msgstr "Maus"
-
-#: gtk2_ardour/editor.cc:145
-#: gtk2_ardour/editor.cc:3302
-#: gtk2_ardour/export_dialog.cc:142
-#: gtk2_ardour/export_dialog.cc:158
-#: gtk2_ardour/export_dialog.cc:1131
-#: gtk2_ardour/export_dialog.cc:1135
-msgid "Left"
-msgstr "Links"
-
-#: gtk2_ardour/editor.cc:146
-#: gtk2_ardour/editor.cc:3304
-#: gtk2_ardour/export_dialog.cc:143
-#: gtk2_ardour/export_dialog.cc:159
-msgid "Right"
-msgstr "Rechts"
-
-#: gtk2_ardour/editor.cc:147
-#: gtk2_ardour/editor.cc:3306
-msgid "Center"
-msgstr "Mitte"
-
-#: gtk2_ardour/editor.cc:150
-#: gtk2_ardour/editor.cc:3312
-msgid "Edit Point"
-msgstr "Arbeitspunkt"
+#: gtk2_ardour/midi_port_dialog.cc:22
+msgid "Port name"
+msgstr "Port Name"
-#: gtk2_ardour/editor.cc:177
+#: gtk2_ardour/editor.cc:202
msgid "Mins:Secs"
msgstr "Min:Sek"
-#: gtk2_ardour/editor.cc:181
-#: gtk2_ardour/editor_rulers.cc:436
+#: gtk2_ardour/editor.cc:203
+msgid "Bars:Beats"
+msgstr "Takte:Schläge"
+
+#: gtk2_ardour/editor.cc:204
+msgid "Timecode"
+msgstr "Timecode"
+
+#: gtk2_ardour/editor.cc:206
msgid "Tempo"
msgstr "Tempo"
-#: gtk2_ardour/editor.cc:182
-#: gtk2_ardour/editor_rulers.cc:430
+#: gtk2_ardour/editor.cc:207
msgid "Meter"
msgstr "Taktart"
-#: gtk2_ardour/editor.cc:183
-#: gtk2_ardour/editor_rulers.cc:442
+#: gtk2_ardour/editor.cc:208
msgid "Location Markers"
msgstr "Positionsmarker"
-#: gtk2_ardour/editor.cc:184
-#: gtk2_ardour/editor_rulers.cc:449
+#: gtk2_ardour/editor.cc:209
msgid "Range Markers"
msgstr "Bereiche"
-#: gtk2_ardour/editor.cc:185
-#: gtk2_ardour/editor_rulers.cc:462
+#: gtk2_ardour/editor.cc:210
msgid "Loop/Punch Ranges"
msgstr "Schleifen/Punch-Bereiche"
-#: gtk2_ardour/editor.cc:186
-#: gtk2_ardour/editor_rulers.cc:456
+#: gtk2_ardour/editor.cc:211
msgid "CD Markers"
msgstr "CD-Marker"
-#: gtk2_ardour/editor.cc:204
+#: gtk2_ardour/editor.cc:228
msgid "mode"
msgstr "Modus"
-#: gtk2_ardour/editor.cc:205
+#: gtk2_ardour/editor.cc:229
msgid "automation"
msgstr "Automation"
-#: gtk2_ardour/editor.cc:476
-#: gtk2_ardour/editor.cc:503
-#: gtk2_ardour/editor_actions.cc:84
-#: gtk2_ardour/mixer_ui.cc:90
-#: gtk2_ardour/mixer_ui.cc:117
-#: gtk2_ardour/analysis_window.cc:63
-msgid "Show"
-msgstr "Anzeigen"
-
-#: gtk2_ardour/editor.cc:477
-#: gtk2_ardour/editor.cc:501
+#: gtk2_ardour/editor.cc:513
+#: gtk2_ardour/editor.cc:537
msgid "Name"
msgstr "Name"
-#: gtk2_ardour/editor.cc:619
-#: gtk2_ardour/editor.cc:661
+#: gtk2_ardour/editor.cc:616
+#: gtk2_ardour/editor.cc:687
+msgid "Regions"
+msgstr "Regionen"
+
+#: gtk2_ardour/editor.cc:659
+#: gtk2_ardour/editor.cc:701
msgid "Chunks"
msgstr "Teile"
-#: gtk2_ardour/editor.cc:650
+#: gtk2_ardour/editor.cc:690
msgid "Tracks/Busses"
msgstr "Spuren/Busse"
-#: gtk2_ardour/editor.cc:653
+#: gtk2_ardour/editor.cc:693
msgid "Snapshots"
msgstr "Schnappschüsse"
-#: gtk2_ardour/editor.cc:656
+#: gtk2_ardour/editor.cc:696
msgid "Edit Groups"
msgstr "Bearbeitungsgruppen"
-#: gtk2_ardour/editor.cc:720
+#: gtk2_ardour/editor.cc:759
msgid "Nudge Region/Selection Forwards"
msgstr "Region/Auswahl schrittweise nach vorne"
-#: gtk2_ardour/editor.cc:721
+#: gtk2_ardour/editor.cc:760
msgid "Nudge Region/Selection Backwards"
msgstr "Region/Auswahl schrittweise nach hinten"
-#: gtk2_ardour/editor.cc:751
-#: gtk2_ardour/editor_mixer.cc:358
+#: gtk2_ardour/editor.cc:790
msgid "Editor"
msgstr "Editor"
-#: gtk2_ardour/editor.cc:1169
-#: gtk2_ardour/editor.cc:1177
-#: gtk2_ardour/editor.cc:4181
-#: gtk2_ardour/editor.cc:4209
+#: gtk2_ardour/editor.cc:1238
+#: gtk2_ardour/editor.cc:1246
+#: gtk2_ardour/editor.cc:4504
+#: gtk2_ardour/editor.cc:4531
msgid "Loop"
msgstr "Schleife"
-#: gtk2_ardour/editor.cc:1182
-#: gtk2_ardour/editor.cc:1190
+#: gtk2_ardour/editor.cc:1251
+#: gtk2_ardour/editor.cc:1259
msgid "Punch"
msgstr "Punch"
-#: gtk2_ardour/editor.cc:1314
-#: gtk2_ardour/editor_mouse.cc:1823
-msgid "programming error: fade in canvas item has no regionview data pointer!"
-msgstr "Programmierfehler: fade in canvas item has no regionview data pointer!"
-
-#: gtk2_ardour/editor.cc:1326
-#: gtk2_ardour/editor.cc:1348
-#: gtk2_ardour/redirect_box.cc:1200
-msgid "Deactivate"
-msgstr "Deaktivieren"
-
-#: gtk2_ardour/editor.cc:1328
-#: gtk2_ardour/editor.cc:1350
-#: gtk2_ardour/redirect_box.cc:1198
-msgid "Activate"
-msgstr "Aktivieren"
+#: gtk2_ardour/editor.cc:1456
+#: gtk2_ardour/route_time_axis.cc:1648
+msgid "programming error: "
+msgstr "Programmierfehler:"
-#: gtk2_ardour/editor.cc:1475
-#: gtk2_ardour/editor.cc:1483
-#: gtk2_ardour/editor_ops.cc:3297
+#: gtk2_ardour/editor.cc:1563
+#: gtk2_ardour/editor.cc:1571
msgid "Freeze"
msgstr "Einfrieren"
-#: gtk2_ardour/editor.cc:1479
+#: gtk2_ardour/editor.cc:1567
msgid "Unfreeze"
msgstr "Auftauen"
-#: gtk2_ardour/editor.cc:1649
+#: gtk2_ardour/editor.cc:1754
msgid "Unmute"
msgstr "Unmute"
-#: gtk2_ardour/editor.cc:1653
-#: gtk2_ardour/editor.cc:1978
-#: gtk2_ardour/editor_actions.cc:47
-#: gtk2_ardour/editor_markers.cc:651
-#: gtk2_ardour/mixer_strip.cc:502
-#: gtk2_ardour/mixer_strip.cc:564
-#: gtk2_ardour/redirect_box.cc:1206
-msgid "Edit"
-msgstr "Bearbeiten"
-
-#: gtk2_ardour/editor.cc:1658
+#: gtk2_ardour/editor.cc:1763
msgid "Convert to short"
msgstr "In kurzen Crossfade umwandeln"
-#: gtk2_ardour/editor.cc:1660
+#: gtk2_ardour/editor.cc:1765
msgid "Convert to full"
msgstr "In langen Crossfade umwandeln"
-#: gtk2_ardour/editor.cc:1671
+#: gtk2_ardour/editor.cc:1776
msgid "Crossfade"
msgstr "Crossfade"
-#: gtk2_ardour/editor.cc:1715
+#: gtk2_ardour/editor.cc:1825
msgid "Popup region editor"
msgstr "Regioneneditor öffnen"
-#: gtk2_ardour/editor.cc:1716
+#: gtk2_ardour/editor.cc:1828
msgid "Raise to top layer"
msgstr "Region ganz nach oben"
-#: gtk2_ardour/editor.cc:1717
+#: gtk2_ardour/editor.cc:1829
msgid "Lower to bottom layer"
msgstr "Region ganz nach unten"
-#: gtk2_ardour/editor.cc:1719
+#: gtk2_ardour/editor.cc:1831
msgid "Define sync point"
msgstr "Einrastpunkt definieren"
-#: gtk2_ardour/editor.cc:1720
+#: gtk2_ardour/editor.cc:1832
msgid "Remove sync point"
msgstr "Einrastpunkt entfernen"
-#: gtk2_ardour/editor.cc:1725
+#: gtk2_ardour/editor.cc:1837
msgid "Bounce"
msgstr "Bounce"
-#: gtk2_ardour/editor.cc:1728
-msgid "Analyze region"
-msgstr "Analysiere Region"
+#: gtk2_ardour/editor.cc:1840
+#: gtk2_ardour/editor.cc:2016
+msgid "Spectral Analysis"
+msgstr "FFT-Analyse"
-#: gtk2_ardour/editor.cc:1735
-#: gtk2_ardour/editor_markers.cc:591
+#: gtk2_ardour/editor.cc:1854
msgid "Lock"
msgstr "Sperren"
-#: gtk2_ardour/editor.cc:1753
+#: gtk2_ardour/editor.cc:1861
+msgid "Glue to Bars&Beats"
+msgstr "An Takte und Schläge binden"
+
+#: gtk2_ardour/editor.cc:1885
msgid "Opaque"
msgstr "Deckend"
-#: gtk2_ardour/editor.cc:1763
+#: gtk2_ardour/editor.cc:1895
msgid "Original position"
msgstr "Ursprungsposition"
-#: gtk2_ardour/editor.cc:1776
+#: gtk2_ardour/editor.cc:1908
msgid "Reset Envelope"
msgstr "Lautstärkekurve zurücksetzen"
-#: gtk2_ardour/editor.cc:1778
+#: gtk2_ardour/editor.cc:1910
msgid "Envelope Visible"
msgstr "Lautstärkekurve sichtbar"
-#: gtk2_ardour/editor.cc:1787
+#: gtk2_ardour/editor.cc:1919
msgid "Envelope Active"
msgstr "Lautstärkekurve aktiv"
-#: gtk2_ardour/editor.cc:1801
+#: gtk2_ardour/editor.cc:1933
msgid "DeNormalize"
msgstr "DeNormalisieren"
-#: gtk2_ardour/editor.cc:1803
+#: gtk2_ardour/editor.cc:1935
msgid "Normalize"
msgstr "Normalisieren"
-#: gtk2_ardour/editor.cc:1807
+#: gtk2_ardour/editor.cc:1939
msgid "Reverse"
-msgstr "Rückwärts"
+msgstr "Umkehren"
-#: gtk2_ardour/editor.cc:1812
-#: gtk2_ardour/editor.cc:1903
+#: gtk2_ardour/editor.cc:1944
+#: gtk2_ardour/editor.cc:2035
msgid "Add Range Markers"
msgstr "Bereichsmarker einfügen"
-#: gtk2_ardour/editor.cc:1813
+#: gtk2_ardour/editor.cc:1945
msgid "Set Range Selection"
msgstr "Bereich auswählen"
-#: gtk2_ardour/editor.cc:1822
+#: gtk2_ardour/editor.cc:1954
msgid "Nudge fwd"
msgstr "Schritt nach vorne"
-#: gtk2_ardour/editor.cc:1823
+#: gtk2_ardour/editor.cc:1955
msgid "Nudge bwd"
msgstr "Schritt nach hinten"
-#: gtk2_ardour/editor.cc:1824
+#: gtk2_ardour/editor.cc:1956
msgid "Nudge fwd by capture offset"
msgstr "Schritt nach vorne um Aufnahme-Offset"
-#: gtk2_ardour/editor.cc:1825
+#: gtk2_ardour/editor.cc:1957
msgid "Nudge bwd by capture offset"
msgstr "Schritt nach hinten um Aufnahme-Offset"
-#: gtk2_ardour/editor.cc:1827
-#: gtk2_ardour/editor.cc:1998
-#: gtk2_ardour/editor.cc:2054
+#: gtk2_ardour/editor.cc:1959
+#: gtk2_ardour/editor.cc:2131
+#: gtk2_ardour/editor.cc:2187
msgid "Nudge"
msgstr "Verschieben"
-#: gtk2_ardour/editor.cc:1834
-#: gtk2_ardour/editor_actions.cc:253
+#: gtk2_ardour/editor.cc:1966
msgid "Start to edit point"
msgstr "Von Anfang bis Arbeitspunkt"
-#: gtk2_ardour/editor.cc:1835
-#: gtk2_ardour/editor_actions.cc:255
+#: gtk2_ardour/editor.cc:1967
msgid "Edit point to end"
msgstr "Von Arbeitspunkt bis Ende"
-#: gtk2_ardour/editor.cc:1836
-#: gtk2_ardour/editor_actions.cc:257
+#: gtk2_ardour/editor.cc:1968
msgid "Trim To Loop"
msgstr "Auf Schleife kürzen"
-#: gtk2_ardour/editor.cc:1837
-#: gtk2_ardour/editor_actions.cc:259
+#: gtk2_ardour/editor.cc:1969
msgid "Trim To Punch"
msgstr "Punch-Bereich schneiden"
-#: gtk2_ardour/editor.cc:1839
-#: gtk2_ardour/gain_meter.cc:169
-#: gtk2_ardour/gain_meter.cc:903
-#: gtk2_ardour/panner_ui.cc:97
-#: gtk2_ardour/panner_ui.cc:780
-msgid "Trim"
-msgstr "Abschneiden"
-
-#: gtk2_ardour/editor.cc:1842
+#: gtk2_ardour/editor.cc:1974
msgid "Split"
msgstr "Teilen"
-#: gtk2_ardour/editor.cc:1845
+#: gtk2_ardour/editor.cc:1977
msgid "Make mono regions"
msgstr "Zu Mono-Regionen umwandeln"
-#: gtk2_ardour/editor.cc:1848
+#: gtk2_ardour/editor.cc:1980
+#: gtk2_ardour/editor.cc:3278
msgid "Duplicate"
msgstr "Duplizieren"
-#: gtk2_ardour/editor.cc:1849
+#: gtk2_ardour/editor.cc:1981
msgid "Multi-Duplicate"
msgstr "Mehrfach duplizieren"
-#: gtk2_ardour/editor.cc:1850
+#: gtk2_ardour/editor.cc:1982
msgid "Fill Track"
msgstr "Spur auffüllen"
-#: gtk2_ardour/editor.cc:1879
+#: gtk2_ardour/editor.cc:2011
msgid "Play range"
msgstr "Bereich abspielen"
-#: gtk2_ardour/editor.cc:1880
+#: gtk2_ardour/editor.cc:2012
msgid "Loop range"
msgstr "Bereich in Schleife abspielen"
-#: gtk2_ardour/editor.cc:1884
-msgid "Analyze range"
-msgstr "Bereich analysieren"
-
-#: gtk2_ardour/editor.cc:1888
-#: gtk2_ardour/editor_actions.cc:370
+#: gtk2_ardour/editor.cc:2020
msgid "Extend Range to End of Region"
msgstr "Bereich vergrößern bis zum Ende der Region "
-#: gtk2_ardour/editor.cc:1889
-#: gtk2_ardour/editor_actions.cc:372
+#: gtk2_ardour/editor.cc:2021
msgid "Extend Range to Start of Region"
msgstr "Bereich vergrößern bis zum Anfang der Region "
-#: gtk2_ardour/editor.cc:1892
+#: gtk2_ardour/editor.cc:2024
msgid "Convert to region in-place"
msgstr "Am Rastpunkt der Regionen einrasten"
-#: gtk2_ardour/editor.cc:1893
-#, fuzzy
+#: gtk2_ardour/editor.cc:2025
msgid "Convert to region in region list"
msgstr "Bereich zur Regionenliste hinzufügen"
-#: gtk2_ardour/editor.cc:1896
+#: gtk2_ardour/editor.cc:2028
msgid "Select all in range"
msgstr "Alles im Bereich auswählen"
-#: gtk2_ardour/editor.cc:1899
+#: gtk2_ardour/editor.cc:2031
msgid "Set loop from selection"
msgstr "Schleife aus Auswahl erstellen"
-#: gtk2_ardour/editor.cc:1900
+#: gtk2_ardour/editor.cc:2032
msgid "Set punch from selection"
msgstr "Punch-Bereich aus Auswahl erstellen"
-#: gtk2_ardour/editor.cc:1905
+#: gtk2_ardour/editor.cc:2037
msgid "Crop region to range"
-msgstr "Regionen-Editor öffnen"
+msgstr "Region auf Bereich kürzen"
-#: gtk2_ardour/editor.cc:1906
+#: gtk2_ardour/editor.cc:2038
msgid "Fill range with region"
msgstr "Bereich mit Region ausfüllen"
-#: gtk2_ardour/editor.cc:1907
+#: gtk2_ardour/editor.cc:2039
msgid "Duplicate range"
-msgstr "Bereich Duplizieren"
+msgstr "Bereich duplizieren"
-#: gtk2_ardour/editor.cc:1908
+#: gtk2_ardour/editor.cc:2040
msgid "Create chunk from range"
msgstr "Abschnitt aus Bereich erstellen..."
-#: gtk2_ardour/editor.cc:1910
-msgid "Bounce range"
-msgstr "Bereich Bouncen"
+#: gtk2_ardour/editor.cc:2042
+msgid "Consolidate range"
+msgstr "Bereich als neue Region"
-#: gtk2_ardour/editor.cc:1911
+#: gtk2_ardour/editor.cc:2043
+msgid "Bounce range to region list"
+msgstr "zur Liste der Regionen"
+
+#: gtk2_ardour/editor.cc:2044
msgid "Export range"
msgstr "Bereich exportieren"
-#: gtk2_ardour/editor.cc:1925
-#: gtk2_ardour/editor.cc:2012
+#: gtk2_ardour/editor.cc:2058
+#: gtk2_ardour/editor.cc:2145
msgid "Play from edit point"
msgstr "Wiedergabe ab Arbeitspunkt"
-#: gtk2_ardour/editor.cc:1926
-#: gtk2_ardour/editor.cc:2013
+#: gtk2_ardour/editor.cc:2059
+#: gtk2_ardour/editor.cc:2146
msgid "Play from start"
msgstr "Wiedergabe ab Anfang"
-#: gtk2_ardour/editor.cc:1927
+#: gtk2_ardour/editor.cc:2060
msgid "Play region"
msgstr "Region wiedergeben"
-#: gtk2_ardour/editor.cc:1929
-#: gtk2_ardour/editor_actions.cc:266
+#: gtk2_ardour/editor.cc:2062
msgid "Loop Region"
msgstr "Region in Schleife wiedergeben"
-#: gtk2_ardour/editor.cc:1939
-#: gtk2_ardour/editor.cc:2022
+#: gtk2_ardour/editor.cc:2072
+#: gtk2_ardour/editor.cc:2155
msgid "Select All in track"
msgstr "Alles in Spur auswählen"
-#: gtk2_ardour/editor.cc:1940
-#: gtk2_ardour/editor.cc:2023
-#: gtk2_ardour/editor_actions.cc:137
-#: gtk2_ardour/redirect_box.cc:1194
-msgid "Select All"
-msgstr "Alles Auswählen"
-
-#: gtk2_ardour/editor.cc:1941
-#: gtk2_ardour/editor.cc:2024
+#: gtk2_ardour/editor.cc:2074
+#: gtk2_ardour/editor.cc:2157
msgid "Invert selection in track"
msgstr "Auswahl in Spur umkehren"
-#: gtk2_ardour/editor.cc:1942
-#: gtk2_ardour/editor.cc:2025
+#: gtk2_ardour/editor.cc:2075
+#: gtk2_ardour/editor.cc:2158
msgid "Invert selection"
msgstr "Auswahl umkehren"
-#: gtk2_ardour/editor.cc:1944
+#: gtk2_ardour/editor.cc:2077
msgid "Set range to loop range"
msgstr "Ausgewählten Bereich als Schleife"
-#: gtk2_ardour/editor.cc:1945
+#: gtk2_ardour/editor.cc:2078
msgid "Set range to punch range"
msgstr "Ausgewählten Bereich als Punch-Bereich"
-#: gtk2_ardour/editor.cc:1947
-#: gtk2_ardour/editor_actions.cc:143
+#: gtk2_ardour/editor.cc:2080
msgid "Select All After Edit Point"
msgstr "Alle Regionen nach dem Arbeitspunkt auswählen"
-#: gtk2_ardour/editor.cc:1948
-#: gtk2_ardour/editor_actions.cc:145
+#: gtk2_ardour/editor.cc:2081
msgid "Select All Before Edit Point"
msgstr "Alle Regionen vor dem Arbeitspunkt auswählen"
-#: gtk2_ardour/editor.cc:1949
-#: gtk2_ardour/editor_actions.cc:148
+#: gtk2_ardour/editor.cc:2082
msgid "Select All After Playhead"
msgstr "Alle Regionen nach dem Positionszeiger auswählen"
-#: gtk2_ardour/editor.cc:1950
-#: gtk2_ardour/editor_actions.cc:150
+#: gtk2_ardour/editor.cc:2083
msgid "Select All Before Playhead"
msgstr "Alle Regionen vor dem Positionszeiger auswählen"
-#: gtk2_ardour/editor.cc:1951
-#: gtk2_ardour/editor_actions.cc:152
+#: gtk2_ardour/editor.cc:2084
msgid "Select All Between Playhead & Edit Point"
msgstr "Alle Regionen zwischen Positionszeiger und Arbeitspunkt auswählen"
-#: gtk2_ardour/editor.cc:1952
-#: gtk2_ardour/editor_actions.cc:154
+#: gtk2_ardour/editor.cc:2085
msgid "Select All Within Playhead & Edit Point"
msgstr "Alle Regionen innerhalb Positionszeiger und Arbeitspunkt auswählen"
-#: gtk2_ardour/editor.cc:1953
-#: gtk2_ardour/editor_actions.cc:157
+#: gtk2_ardour/editor.cc:2086
msgid "Select Range Between Playhead & Edit Point"
msgstr "Wähle Bereich zwischen Positionszeiger und Arbeitspunkt aus"
-#: gtk2_ardour/editor.cc:1957
-#: gtk2_ardour/editor.cc:2032
-#: gtk2_ardour/editor_actions.cc:48
+#: gtk2_ardour/editor.cc:2090
+#: gtk2_ardour/editor.cc:2165
msgid "Select"
msgstr "Auswahl"
-#: gtk2_ardour/editor.cc:1965
-#: gtk2_ardour/editor.cc:2040
-#: gtk2_ardour/editor_actions.cc:334
-#: gtk2_ardour/redirect_box.cc:1183
-msgid "Cut"
-msgstr "Ausschneiden"
-
-#: gtk2_ardour/editor.cc:1966
-#: gtk2_ardour/editor.cc:2041
-#: gtk2_ardour/editor_actions.cc:339
-#: gtk2_ardour/redirect_box.cc:1185
-msgid "Copy"
-msgstr "Kopieren"
-
-#: gtk2_ardour/editor.cc:1967
-#: gtk2_ardour/editor.cc:2042
-#: gtk2_ardour/editor_actions.cc:341
-#: gtk2_ardour/redirect_box.cc:1191
-msgid "Paste"
-msgstr "Einfügen"
-
-#: gtk2_ardour/editor.cc:1971
+#: gtk2_ardour/editor.cc:2104
msgid "Align"
msgstr "Ausrichten"
-#: gtk2_ardour/editor.cc:1972
+#: gtk2_ardour/editor.cc:2105
msgid "Align Relative"
msgstr "Relativ ausrichten"
-#: gtk2_ardour/editor.cc:1976
+#: gtk2_ardour/editor.cc:2109
msgid "Insert chunk"
msgstr "Abschnitt einfügen"
-#: gtk2_ardour/editor.cc:1983
+#: gtk2_ardour/editor.cc:2116
msgid "Insert Selected Region"
msgstr "Ausgewählte Region einfügen"
-#: gtk2_ardour/editor.cc:1984
+#: gtk2_ardour/editor.cc:2117
msgid "Insert Existing Audio"
msgstr "Audio importieren..."
-#: gtk2_ardour/editor.cc:1993
-#: gtk2_ardour/editor.cc:2049
+#: gtk2_ardour/editor.cc:2126
+#: gtk2_ardour/editor.cc:2182
msgid "Nudge entire track fwd"
msgstr "Gesamte Spur schrittweise nach vorne"
-#: gtk2_ardour/editor.cc:1994
-#: gtk2_ardour/editor.cc:2050
+#: gtk2_ardour/editor.cc:2127
+#: gtk2_ardour/editor.cc:2183
msgid "Nudge track after edit point fwd"
msgstr "Spur nach Arbeitspunkt schrittweise nach vorne"
-#: gtk2_ardour/editor.cc:1995
-#: gtk2_ardour/editor.cc:2051
+#: gtk2_ardour/editor.cc:2128
+#: gtk2_ardour/editor.cc:2184
msgid "Nudge entire track bwd"
msgstr "Gesamte Spur schrittweise nach hinten"
-#: gtk2_ardour/editor.cc:1996
-#: gtk2_ardour/editor.cc:2052
+#: gtk2_ardour/editor.cc:2129
+#: gtk2_ardour/editor.cc:2185
msgid "Nudge track after edit point bwd"
msgstr "Spur nach Arbeitspunkt schrittweise nach hinten"
-#: gtk2_ardour/editor.cc:2027
+#: gtk2_ardour/editor.cc:2160
msgid "Select all after edit point"
msgstr "Alles nach Arbeitspunkt auswählen"
-#: gtk2_ardour/editor.cc:2028
+#: gtk2_ardour/editor.cc:2161
msgid "Select all before edit point"
msgstr "Alles vor Arbeitspunkt auswählen"
-#: gtk2_ardour/editor.cc:2029
+#: gtk2_ardour/editor.cc:2162
msgid "Select all after playhead"
msgstr "Alles nach Positionszeiger auswählen"
-#: gtk2_ardour/editor.cc:2030
+#: gtk2_ardour/editor.cc:2163
msgid "Select all before playhead"
msgstr "Alles vor Positionszeiger auswählen"
-#: gtk2_ardour/editor.cc:2684
+#: gtk2_ardour/editor.cc:2866
msgid "Select/Move Objects"
msgstr "Objekte auswählen/verschieben"
-#: gtk2_ardour/editor.cc:2685
+#: gtk2_ardour/editor.cc:2867
msgid "Select/Move Ranges"
msgstr "Editierbereich auswählen/verschieben"
-#: gtk2_ardour/editor.cc:2686
+#: gtk2_ardour/editor.cc:2868
msgid "Draw Gain Automation"
msgstr "Lautstärkekurve zeichnen"
-#: gtk2_ardour/editor.cc:2687
+#: gtk2_ardour/editor.cc:2869
msgid "Select Zoom Range"
msgstr "Zoombereich auswählen"
-#: gtk2_ardour/editor.cc:2688
+#: gtk2_ardour/editor.cc:2870
msgid "Stretch/Shrink Regions"
-msgstr "Regionen vergrößern/verkleinern (Time-Stretch)"
+msgstr "Regionen strecken/stauchen (Time-Stretch)"
-#: gtk2_ardour/editor.cc:2689
+#: gtk2_ardour/editor.cc:2871
msgid "Listen to Specific Regions"
msgstr "Ausgewählte Regionen vorhören"
-#: gtk2_ardour/editor.cc:2719
-#: gtk2_ardour/editor_actions.cc:209
+#: gtk2_ardour/editor.cc:2901
msgid "Zoom In"
msgstr "Vergrößern"
-#: gtk2_ardour/editor.cc:2725
-#: gtk2_ardour/editor_actions.cc:207
+#: gtk2_ardour/editor.cc:2907
msgid "Zoom Out"
msgstr "Verkleinern"
-#: gtk2_ardour/editor.cc:2731
-#: gtk2_ardour/editor_actions.cc:211
+#: gtk2_ardour/editor.cc:2913
msgid "Zoom to Session"
msgstr "Auf ganzes Projekt zoomen"
-#: gtk2_ardour/editor.cc:2737
+#: gtk2_ardour/editor.cc:2916
+#: gtk2_ardour/editor.cc:2942
+#: gtk2_ardour/editor.cc:3496
+#: gtk2_ardour/editor.cc:3521
+msgid "Playhead"
+msgstr "Positionszeiger"
+
+#: gtk2_ardour/editor.cc:2919
msgid "Zoom focus"
msgstr "Zoom-Mittelpunkt"
-#: gtk2_ardour/editor.cc:2751
+#: gtk2_ardour/editor.cc:2930
+#: gtk2_ardour/editor.cc:3431
+msgid "SMPTE Seconds"
+msgstr "SMPTE-Sekunden"
+
+#: gtk2_ardour/editor.cc:2933
msgid "Snap/Grid Units"
msgstr "Einrast-Einheiten"
-#: gtk2_ardour/editor.cc:2754
+#: gtk2_ardour/editor.cc:2936
msgid "Magnetic Snap"
msgstr "Magnetisch einrasten"
-#: gtk2_ardour/editor.cc:2757
+#: gtk2_ardour/editor.cc:2939
msgid "Snap/Grid Mode"
msgstr "Einrastmodus"
-#: gtk2_ardour/editor.cc:2763
+#: gtk2_ardour/editor.cc:2945
msgid "Edit point"
msgstr "Arbeitspunkt"
-#: gtk2_ardour/editor.cc:2913
+#: gtk2_ardour/editor.cc:3095
msgid "malformed URL passed to drag-n-drop code"
-msgstr ""
+msgstr "Ungültige URL an drag-n-drop-Code weitergeleitet"
-#: gtk2_ardour/editor.cc:3032
-#: gtk2_ardour/editor_actions.cc:320
+#: gtk2_ardour/editor.cc:3214
msgid "Undo"
msgstr "Rückgängig"
-#: gtk2_ardour/editor.cc:3034
+#: gtk2_ardour/editor.cc:3216
msgid "Undo (%1)"
msgstr "Rückgängig (%1)"
-#: gtk2_ardour/editor.cc:3041
-#: gtk2_ardour/editor_actions.cc:322
+#: gtk2_ardour/editor.cc:3223
msgid "Redo"
msgstr "Wiederherstellen"
-#: gtk2_ardour/editor.cc:3043
+#: gtk2_ardour/editor.cc:3225
msgid "Redo (%1)"
msgstr "Wiederherstellen (%1)"
-#: gtk2_ardour/editor.cc:3073
-msgid "Duplicate how many times?"
-msgstr "Wie häufig duplizieren?"
+#: gtk2_ardour/editor.cc:3255
+msgid "Number of Duplications:"
+msgstr "Anzahl der Duplikate"
-#: gtk2_ardour/editor.cc:3175
+#: gtk2_ardour/editor.cc:3386
msgid "Splice Edit"
-msgstr "Kleben"
+msgstr "Splice Edit"
-#: gtk2_ardour/editor.cc:3177
+#: gtk2_ardour/editor.cc:3388
msgid "Slide Edit"
msgstr "Slide Edit"
-#: gtk2_ardour/editor.cc:3572
+#: gtk2_ardour/editor.cc:3390
+#, fuzzy
+msgid "Lock Edit"
+msgstr "Positionszeiger zum Arbeitspunkt"
+
+#: gtk2_ardour/editor.cc:3403
+msgid "Beats/3"
+msgstr "Schläge / 3"
+
+#: gtk2_ardour/editor.cc:3405
+msgid "Beats/4"
+msgstr "Schläge / 4"
+
+#: gtk2_ardour/editor.cc:3407
+msgid "Beats/8"
+msgstr "Schläge / 8"
+
+#: gtk2_ardour/editor.cc:3409
+msgid "Beats/16"
+msgstr "Schläge / 16"
+
+#: gtk2_ardour/editor.cc:3411
+msgid "Beats/32"
+msgstr "Schläge / 32"
+
+#: gtk2_ardour/editor.cc:3413
+msgid "Beats"
+msgstr "Schläge"
+
+#: gtk2_ardour/editor.cc:3415
+msgid "Bars"
+msgstr "Takte"
+
+#: gtk2_ardour/editor.cc:3417
+msgid "Marks"
+msgstr "Marker"
+
+#: gtk2_ardour/editor.cc:3419
+msgid "Region starts"
+msgstr "Regionen-Anfang"
+
+#: gtk2_ardour/editor.cc:3421
+msgid "Region ends"
+msgstr "Regionen-Ende"
+
+#: gtk2_ardour/editor.cc:3423
+msgid "Region bounds"
+msgstr "Regionen-Grenzen"
+
+#: gtk2_ardour/editor.cc:3425
+msgid "Region syncs"
+msgstr "Regionen-Sync"
+
+#: gtk2_ardour/editor.cc:3427
+msgid "CD Frames"
+msgstr "CD-Frames"
+
+#: gtk2_ardour/editor.cc:3429
+msgid "SMPTE Frames"
+msgstr "SMPTE-Frames"
+
+#: gtk2_ardour/editor.cc:3433
+msgid "SMPTE Minutes"
+msgstr "SMPTE-Minuten"
+
+#: gtk2_ardour/editor.cc:3435
+msgid "Seconds"
+msgstr "Sekunden"
+
+#: gtk2_ardour/editor.cc:3437
+msgid "Minutes"
+msgstr "Minuten"
+
+#: gtk2_ardour/editor.cc:3453
+msgid "No Grid"
+msgstr "Raster aus"
+
+#: gtk2_ardour/editor.cc:3455
+msgid "Grid"
+msgstr "Einrasten"
+
+#: gtk2_ardour/editor.cc:3457
+msgid "Magnetic"
+msgstr "Magnetisch"
+
+#: gtk2_ardour/editor.cc:3515
+msgid "Left"
+msgstr "Links"
+
+#: gtk2_ardour/editor.cc:3517
+msgid "Right"
+msgstr "Rechts"
+
+#: gtk2_ardour/editor.cc:3519
+msgid "Center"
+msgstr "Mitte"
+
+#: gtk2_ardour/editor.cc:3523
+msgid "Mouse"
+msgstr "Maus"
+
+#: gtk2_ardour/editor.cc:3525
+msgid "Active Mark"
+msgstr "Aktueller Marker"
+
+#: gtk2_ardour/editor.cc:3790
msgid ""
"Playlist %1 is currently unused.\n"
"If left alone, no audio files used by it will be cleaned.\n"
@@ -3175,34 +3307,19 @@ msgstr ""
"Es können keine Audiodateien aufgeräumt werden, die von ihr verwendet werden.\n"
"Falls sie gelöscht wird, werden die ausschließlich von ihr verwendeten Audiodateien gelöscht."
-#: gtk2_ardour/editor.cc:3582
+#: gtk2_ardour/editor.cc:3800
msgid "Delete playlist"
msgstr "Wiedergabeliste löschen"
-#: gtk2_ardour/editor.cc:3583
+#: gtk2_ardour/editor.cc:3801
msgid "Keep playlist"
msgstr "Wiedergabeliste beibehalten"
-#: gtk2_ardour/editor.cc:3584
-#: gtk2_ardour/editor_audio_import.cc:515
-#: gtk2_ardour/editor_timefx.cc:78
-#: gtk2_ardour/export_dialog.cc:1034
-#: gtk2_ardour/io_selector.cc:60
-#: gtk2_ardour/io_selector.cc:748
-#: gtk2_ardour/redirect_box.cc:1022
-#: gtk2_ardour/tempo_dialog.cc:42
-#: gtk2_ardour/tempo_dialog.cc:61
-#: gtk2_ardour/tempo_dialog.cc:256
-#: gtk2_ardour/tempo_dialog.cc:274
-#: gtk2_ardour/connection_editor.cc:59
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#: gtk2_ardour/editor.cc:3752
+#: gtk2_ardour/editor.cc:3979
msgid "New name of snapshot"
msgstr "Name für neuen Schnappschuss"
-#: gtk2_ardour/editor.cc:3770
+#: gtk2_ardour/editor.cc:3997
msgid ""
"Do you really want to remove snapshot \"%1\" ?\n"
"(cannot be undone)"
@@ -3210,1476 +3327,2556 @@ msgstr ""
"Wollen Sie den Schnappschuss \"%1\" wirklich löschen?\n"
"(Dies kann nicht rückgängig gemacht werden!)"
-#: gtk2_ardour/editor.cc:3772
-#: gtk2_ardour/editor_ops.cc:206
-#: gtk2_ardour/editor_ops.cc:3954
-#: gtk2_ardour/route_ui.cc:790
-#: gtk2_ardour/visual_time_axis.cc:282
-msgid "No, do nothing."
-msgstr "Nein, nichts machen."
-
-#: gtk2_ardour/editor.cc:3773
-#: gtk2_ardour/route_ui.cc:791
-#: gtk2_ardour/visual_time_axis.cc:283
-msgid "Yes, remove it."
-msgstr "Ja, entfernen."
-
-#: gtk2_ardour/editor.cc:3883
+#: gtk2_ardour/editor.cc:4106
msgid "new playlists"
msgstr "Neue Wiedergabelisten"
-#: gtk2_ardour/editor.cc:3898
+#: gtk2_ardour/editor.cc:4123
msgid "copy playlists"
msgstr "Wiedergabelisten kopieren"
-#: gtk2_ardour/editor.cc:3913
+#: gtk2_ardour/editor.cc:4140
msgid "clear playlists"
msgstr "Wiedergabelisten zurücksetzen"
+#: gtk2_ardour/editor.cc:4736
+msgid "Please wait while Ardour loads visual data"
+msgstr "Bitte warten Sie, während Ardour Daten zur Anzeige des Projekts lädt"
+
+#: gtk2_ardour/route_time_axis.cc:99
+msgid "m"
+msgstr "m"
+
+#: gtk2_ardour/route_time_axis.cc:99
+msgid "s"
+msgstr "s"
+
+#: gtk2_ardour/route_time_axis.cc:99
+msgid "r"
+msgstr "r"
+
+#: gtk2_ardour/route_time_axis.cc:103
+msgid "g"
+msgstr "g"
+
+#: gtk2_ardour/route_time_axis.cc:104
+msgid "p"
+msgstr "w"
+
+#: gtk2_ardour/route_time_axis.cc:106
+msgid "a"
+msgstr "a"
+
+#: gtk2_ardour/route_time_axis.cc:166
+#: gtk2_ardour/mixer_strip.cc:88
+#: gtk2_ardour/mixer_strip.cc:109
+msgid "Record"
+msgstr "Aufnahme"
+
+#: gtk2_ardour/route_time_axis.cc:181
+#: gtk2_ardour/mixer_strip.cc:88
+#: gtk2_ardour/mixer_strip.cc:109
+#: gtk2_ardour/mixer_strip.cc:487
+msgid "Solo"
+msgstr "Solo"
+
+#: gtk2_ardour/route_time_axis.cc:183
+msgid "Edit Group"
+msgstr "Bearbeitungsgruppe"
+
+#: gtk2_ardour/route_time_axis.cc:185
+msgid "Playlist"
+msgstr "Wiedergabeliste"
+
+#: gtk2_ardour/route_time_axis.cc:186
+#: gtk2_ardour/route_time_axis.cc:451
+msgid "Automation"
+msgstr "Automationen"
+
+#: gtk2_ardour/route_time_axis.cc:301
+#: gtk2_ardour/mixer_strip.cc:969
+msgid "No group"
+msgstr "keine Gruppe"
+
+#: gtk2_ardour/route_time_axis.cc:411
+msgid "Show all automation"
+msgstr "Alle Automationen zeigen"
+
+#: gtk2_ardour/route_time_axis.cc:414
+msgid "Show existing automation"
+msgstr "Verfügbare Automationen zeigen"
+
+#: gtk2_ardour/route_time_axis.cc:417
+msgid "Hide all automation"
+msgstr "Automationen verbergen"
+
+#: gtk2_ardour/route_time_axis.cc:420
+msgid "Plugins"
+msgstr "Plugins"
+
+#: gtk2_ardour/route_time_axis.cc:450
+#: gtk2_ardour/mixer_strip.cc:1057
+msgid "Remote Control ID"
+msgstr "ID für Fernsteuerung"
+
+#: gtk2_ardour/route_time_axis.cc:467
+msgid "Align with existing material"
+msgstr "An vorhandenem Material ausrichten"
+
+#: gtk2_ardour/route_time_axis.cc:473
+msgid "Align with capture time"
+msgstr "An Aufnahmezeit ausrichten"
+
+#: gtk2_ardour/route_time_axis.cc:480
+msgid "Alignment"
+msgstr "Ausrichtung"
+
+#: gtk2_ardour/route_time_axis.cc:484
+msgid "Normal mode"
+msgstr "Normaler Modus"
+
+#: gtk2_ardour/route_time_axis.cc:487
+msgid "Tape mode"
+msgstr "Tape-Modus"
+
+#: gtk2_ardour/route_time_axis.cc:535
+#: gtk2_ardour/route_time_axis.cc:590
+#: gtk2_ardour/route_time_axis.cc:836
+msgid "programming error: %1 %2"
+msgstr "Programmierfehler: %1 %2"
+
+#: gtk2_ardour/route_time_axis.cc:860
+msgid "Name for playlist"
+msgstr "Name für Wiedergabeliste"
+
+#: gtk2_ardour/route_time_axis.cc:943
+#: gtk2_ardour/route_time_axis.cc:993
+msgid "Name for Playlist"
+msgstr "Name für Wiedergabeliste"
+
+#: gtk2_ardour/route_time_axis.cc:1386
+msgid "New Copy"
+msgstr "Neue Kopie"
+
+#: gtk2_ardour/route_time_axis.cc:1390
+msgid "New Take"
+msgstr "Neuer Take"
+
+#: gtk2_ardour/route_time_axis.cc:1391
+msgid "Copy Take"
+msgstr "Take kopieren"
+
+#: gtk2_ardour/route_time_axis.cc:1396
+msgid "Clear Current"
+msgstr "Ausgewählte zurücksetzen"
+
+#: gtk2_ardour/route_time_axis.cc:1399
+msgid "Select from all ..."
+msgstr "Aus allen auswählen..."
+
+#: gtk2_ardour/keyeditor.cc:29
+msgid "Shortcut Editor"
+msgstr "Tastenkürzel - Editor"
+
+#: gtk2_ardour/keyeditor.cc:30
+msgid "Remove shortcut"
+msgstr "Tastenkürzel entfernen"
+
+#: gtk2_ardour/keyeditor.cc:40
+msgid "Action"
+msgstr "Aktion"
+
+#: gtk2_ardour/keyeditor.cc:41
+msgid "Shortcut"
+msgstr "Tastenkürzel"
+
+#: gtk2_ardour/keyeditor.cc:61
+msgid "Select an action, then press the key(s) to (re)set its shortcut"
+msgstr ""
+"Wählen Sie eine Aktion und drücken Sie dann die Taste(n) \n"
+"um das Tastaturkürzel zu setzen"
+
+#: gtk2_ardour/keyeditor.cc:267
+msgid "Command-"
+msgstr "Befehl-"
+
+#: gtk2_ardour/keyeditor.cc:268
+msgid "Option-"
+msgstr "Option-"
+
+#: gtk2_ardour/keyeditor.cc:269
+msgid "Shift-"
+msgstr "Groß-"
+
+#: gtk2_ardour/keyeditor.cc:270
+msgid "Control-"
+msgstr "Strg-"
+
+#: gtk2_ardour/add_route_dialog.cc:62
+msgid "ardour: add track/bus"
+msgstr "ardour: Füge Spur/Bus hinzu"
+
+#: gtk2_ardour/add_route_dialog.cc:63
+msgid "Tracks"
+msgstr "Audiospuren"
+
+#: gtk2_ardour/add_route_dialog.cc:64
+msgid "Busses"
+msgstr "Busse"
+
+#: gtk2_ardour/add_route_dialog.cc:114
+#: gtk2_ardour/plugin_ui.cc:316
+msgid "Add"
+msgstr "Hinzufügen"
+
+#: gtk2_ardour/add_route_dialog.cc:132
+msgid "Name (template)"
+msgstr "Name für Mixer-Vorlage"
+
+#: gtk2_ardour/add_route_dialog.cc:138
+msgid "Channel Configuration"
+msgstr "Kanaleinstellungen"
+
+#: gtk2_ardour/add_route_dialog.cc:203
+msgid "Tape"
+msgstr "Tape"
+
+#: gtk2_ardour/add_route_dialog.cc:220
+msgid "Mono"
+msgstr "Mono"
+
+#: gtk2_ardour/add_route_dialog.cc:222
+msgid "Stereo"
+msgstr "Stereo"
+
+#: gtk2_ardour/export_region_dialog.cc:34
+msgid "ardour: export region"
+msgstr "ardour: Region Exportieren"
+
+#: gtk2_ardour/mixer_strip.cc:98
+#: gtk2_ardour/mixer_strip.cc:119
+#: gtk2_ardour/mixer_strip.cc:379
+#: gtk2_ardour/mixer_strip.cc:1287
+msgid "pre"
+msgstr "Pre"
+
+#: gtk2_ardour/mixer_strip.cc:99
+#: gtk2_ardour/mixer_strip.cc:120
+#: gtk2_ardour/mixer_strip.cc:848
+msgid "Comments"
+msgstr "Kommentare"
+
+#: gtk2_ardour/mixer_strip.cc:147
+msgid "Input"
+msgstr "Eingang"
+
+#: gtk2_ardour/mixer_strip.cc:152
+#: gtk2_ardour/mixer_strip.cc:794
+msgid "Output"
+msgstr "Ausgang"
+
+#: gtk2_ardour/mixer_strip.cc:164
+msgid "tupni"
+msgstr "tupni"
+
+#: gtk2_ardour/mixer_strip.cc:359
+msgid "Varispeed"
+msgstr "Varispeed"
+
+#: gtk2_ardour/mixer_strip.cc:375
+#: gtk2_ardour/mixer_strip.cc:1283
+msgid "input"
+msgstr "Input"
+
+#: gtk2_ardour/mixer_strip.cc:383
+#: gtk2_ardour/mixer_strip.cc:1291
+msgid "post"
+msgstr "Post"
+
+#: gtk2_ardour/mixer_strip.cc:388
+#: gtk2_ardour/mixer_strip.cc:864
+msgid "Click to Add/Edit Comments"
+msgstr "Kommentare hinzufügen/ändern"
+
+#: gtk2_ardour/mixer_strip.cc:484
+msgid "record"
+msgstr "Aufnahme"
+
+#: gtk2_ardour/mixer_strip.cc:491
+msgid "comments"
+msgstr "Kommentare"
+
+#: gtk2_ardour/mixer_strip.cc:494
+msgid "*comments*"
+msgstr "*Kommentare*"
+
+#: gtk2_ardour/mixer_strip.cc:506
+msgid "Rec"
+msgstr "Rec"
+
+#: gtk2_ardour/mixer_strip.cc:509
+msgid "S"
+msgstr "S"
+
+#: gtk2_ardour/mixer_strip.cc:513
+#: gtk2_ardour/mixer_strip.cc:858
+msgid "Cmt"
+msgstr "Kmt"
+
+#: gtk2_ardour/mixer_strip.cc:516
+#: gtk2_ardour/mixer_strip.cc:855
+msgid "*Cmt*"
+msgstr "*Kmt*"
+
+#: gtk2_ardour/mixer_strip.cc:655
+#: gtk2_ardour/mixer_strip.cc:671
+msgid "could not register new ports required for that connection"
+msgstr "Konnte die Ports, die diese Verbindung benötigt nicht registrieren"
+
+#: gtk2_ardour/mixer_strip.cc:774
+msgid " Input"
+msgstr "Eingang"
+
+#: gtk2_ardour/mixer_strip.cc:777
+msgid "I"
+msgstr "I"
+
+#: gtk2_ardour/mixer_strip.cc:797
+msgid "O"
+msgstr "O"
+
+#: gtk2_ardour/mixer_strip.cc:845
+msgid "*Comments*"
+msgstr "*Kommentare*"
+
+#: gtk2_ardour/mixer_strip.cc:900
+msgid ": comment editor"
+msgstr "Kommentare bearbeiten"
+
+#: gtk2_ardour/mixer_strip.cc:995
+msgid "Grp"
+msgstr "Grp"
+
+#: gtk2_ardour/mixer_strip.cc:998
+msgid "~G"
+msgstr "~G"
+
+#: gtk2_ardour/mixer_strip.cc:1046
+msgid "Invert Polarity"
+msgstr "Polarität umkehren"
+
+#: gtk2_ardour/mixer_strip.cc:1049
+msgid "Protect against denormals"
+msgstr "Schutz vor Denormals"
+
+#: gtk2_ardour/plugin_ui.cc:87
+msgid "Eh? LADSPA plugins don't have editors!"
+msgstr "Merkwürdig... LADSPA-Plugins sollten kein GUI haben!"
+
+#: gtk2_ardour/plugin_ui.cc:96
+#: gtk2_ardour/plugin_ui.cc:203
+msgid "unknown type of editor-supplying plugin (note: no VST support in this version of ardour)"
+msgstr "Unbekannter Plugintyp (Hinweis: diese Ardour-Version unterstützt keine VST-Plugins)"
+
+#: gtk2_ardour/plugin_ui.cc:99
+msgid "unknown type of editor-supplying plugin"
+msgstr "Unbekannter Plugintyp"
+
+#: gtk2_ardour/plugin_ui.cc:268
+msgid "create_lv2_editor called on non-LV2 plugin"
+msgstr "create_lv2_editor auf nicht-LV2-Plugin angewandt"
+
+#: gtk2_ardour/plugin_ui.cc:347
+msgid "Plugin preset %1 not found"
+msgstr "Plugin Preset %1 nicht gefunden"
+
+#: gtk2_ardour/plugin_ui.cc:356
+msgid "Name of New Preset:"
+msgstr "Name für neue Voreinstellung:"
+
+#: gtk2_ardour/imageframe_socket_handler.cc:126
+msgid "Image Compositor Socket has been shutdown/closed"
+msgstr ""
+
+#: gtk2_ardour/location_ui.cc:49
+#: gtk2_ardour/location_ui.cc:52
+msgid "Use PH"
+msgstr "zu PZ"
+
+#: gtk2_ardour/location_ui.cc:50
+#: gtk2_ardour/location_ui.cc:53
+msgid "Go"
+msgstr "Gehe zu"
+
+#: gtk2_ardour/location_ui.cc:56
+msgid "CD"
+msgstr "CD"
+
+#: gtk2_ardour/location_ui.cc:57
+msgid "Hidden"
+msgstr "Versteckt"
+
+#: gtk2_ardour/location_ui.cc:59
+msgid "SCMS"
+msgstr "SCMS"
+
+#: gtk2_ardour/location_ui.cc:60
+msgid "Pre-Emphasis"
+msgstr "Präemphase"
+
+#: gtk2_ardour/location_ui.cc:85
+#: gtk2_ardour/location_ui.cc:86
+msgid "Set value to Playhead"
+msgstr "Wert auf Positionszeiger setzen"
+
+#: gtk2_ardour/location_ui.cc:443
+msgid "You cannot put a CD marker at the start of the session"
+msgstr "Sie können keinen CD-Marker am Anfang des Projekts erstellen"
+
+#: gtk2_ardour/location_ui.cc:624
+msgid "Add New Location"
+msgstr "Neue Position hinzufügen"
+
+#: gtk2_ardour/location_ui.cc:625
+msgid "Add New Range"
+msgstr "Neuen Bereich hinzufügen"
+
+#: gtk2_ardour/location_ui.cc:663
+msgid "Location (CD Index) Markers"
+msgstr "Positionsmarker (CD Index)"
+
+#: gtk2_ardour/location_ui.cc:683
+msgid "Range (CD Track) Markers"
+msgstr "Bereiche (CD Tracks)"
+
+#: gtk2_ardour/location_ui.cc:720
+msgid "remove marker"
+msgstr "Marker entfernen"
+
+#: gtk2_ardour/location_ui.cc:851
+msgid "add marker"
+msgstr "Marker hinzufügen"
+
+#: gtk2_ardour/location_ui.cc:870
+msgid "add range marker"
+msgstr "Bereich hinzufügen"
+
+#: gtk2_ardour/sfdb_ui.cc:77
+#: gtk2_ardour/sfdb_ui.cc:97
+#: gtk2_ardour/sfdb_ui.cc:106
+msgid "as new tracks"
+msgstr "als neue Spuren"
+
+#: gtk2_ardour/sfdb_ui.cc:79
+#: gtk2_ardour/sfdb_ui.cc:99
+msgid "to selected tracks"
+msgstr "zu ausgewählten Spuren"
+
+#: gtk2_ardour/sfdb_ui.cc:81
+#: gtk2_ardour/sfdb_ui.cc:101
+msgid "to region list"
+msgstr "zur Liste der Regionen"
+
+#: gtk2_ardour/sfdb_ui.cc:83
+#: gtk2_ardour/sfdb_ui.cc:103
+msgid "as new tape tracks"
+msgstr "als neue Tape-Spuren"
+
+#: gtk2_ardour/sfdb_ui.cc:87
+msgid "programming error: unknown import mode string %1"
+msgstr "Programmierfehler: unbekannter Importmodus %1"
+
+#: gtk2_ardour/sfdb_ui.cc:115
+msgid "Auto-play"
+msgstr "Auto-Play"
+
+#: gtk2_ardour/sfdb_ui.cc:124
+#: gtk2_ardour/sfdb_ui.cc:234
+msgid "<b>Soundfile Info</b>"
+msgstr "<b>Eigenschaften der Audiodatei</b>"
+
+#: gtk2_ardour/sfdb_ui.cc:135
+msgid "Length:"
+msgstr "Länge:"
+
+#: gtk2_ardour/sfdb_ui.cc:136
+msgid "Timestamp:"
+msgstr "Zeitstempel:"
+
+#: gtk2_ardour/sfdb_ui.cc:137
+msgid "Format:"
+msgstr "Format:"
+
+#: gtk2_ardour/sfdb_ui.cc:138
+msgid "Channels:"
+msgstr "Kanäle:"
+
+#: gtk2_ardour/sfdb_ui.cc:139
+#: gtk2_ardour/sfdb_ui.cc:254
+#: gtk2_ardour/sfdb_ui.cc:259
+msgid "Sample rate:"
+msgstr "Samplerate:"
+
+#: gtk2_ardour/sfdb_ui.cc:171
+#: gtk2_ardour/sfdb_ui.cc:490
+msgid "Tags:"
+msgstr "Stichworte:"
+
+#: gtk2_ardour/sfdb_ui.cc:181
+msgid "Play (double click)"
+msgstr "Play"
+
+#: gtk2_ardour/sfdb_ui.cc:235
+#: gtk2_ardour/sfdb_ui.cc:236
+#: gtk2_ardour/sfdb_ui.cc:237
+msgid "n/a"
+msgstr "n/a"
+
+#: gtk2_ardour/sfdb_ui.cc:314
+msgid "Could not read file: %1 (%2)."
+msgstr "Konnte Datei nicht lesen: %1 (%2)."
+
+#: gtk2_ardour/sfdb_ui.cc:334
+msgid "Could not access soundfile: "
+msgstr "Konnte auf Audiodatei nicht zugreifen: "
+
+#: gtk2_ardour/sfdb_ui.cc:380
+msgid "SoundFileBox: Could not tokenize string: "
+msgstr "SoundFileBox: Konnte Zeichenkette nicht zerlegen: "
+
+#: gtk2_ardour/sfdb_ui.cc:400
+msgid "Search"
+msgstr "Suchen"
+
+#: gtk2_ardour/sfdb_ui.cc:402
+#: gtk2_ardour/sfdb_ui.cc:792
+msgid "Start Downloading"
+msgstr "Download beginnen"
+
+#: gtk2_ardour/sfdb_ui.cc:417
+msgid "Audio files"
+msgstr "Audiodateien"
+
+#: gtk2_ardour/sfdb_ui.cc:420
+msgid "All files"
+msgstr "Alle Dateien"
+
+#: gtk2_ardour/sfdb_ui.cc:431
+msgid "Browse Files"
+msgstr "Durchsuchen"
+
+#: gtk2_ardour/sfdb_ui.cc:458
+#: gtk2_ardour/sfdb_ui.cc:505
+msgid "Paths"
+msgstr "Pfade"
+
+#: gtk2_ardour/sfdb_ui.cc:467
+msgid "Search Tags"
+msgstr "Stichwortsuche"
+
+#: gtk2_ardour/sfdb_ui.cc:482
+msgid "User:"
+msgstr "Benutzer:"
+
+#: gtk2_ardour/sfdb_ui.cc:486
+msgid "Password:"
+msgstr "Passwort"
+
+#: gtk2_ardour/sfdb_ui.cc:515
+msgid "Search Freesound"
+msgstr "Freesound durchsuchen"
+
+#: gtk2_ardour/sfdb_ui.cc:698
+msgid "SoundFileBrowser: Could not tokenize string: "
+msgstr "SoundFileBrowser: Konnte Zeichenkete nicht zerlegen:"
+
+#: gtk2_ardour/sfdb_ui.cc:734
+msgid "Cancelling.."
+msgstr "Abbrechen..."
+
+#: gtk2_ardour/sfdb_ui.cc:959
+#: gtk2_ardour/sfdb_ui.cc:1238
+#: gtk2_ardour/sfdb_ui.cc:1280
+msgid "one track per file"
+msgstr "eine Spur pro Datei"
+
+#: gtk2_ardour/sfdb_ui.cc:962
+#: gtk2_ardour/sfdb_ui.cc:1281
+msgid "one track per channel"
+msgstr "eine Spur pro Kanal"
+
+#: gtk2_ardour/sfdb_ui.cc:970
+#: gtk2_ardour/sfdb_ui.cc:1283
+msgid "sequence files"
+msgstr "Dateien aneinanderreihen"
+
+#: gtk2_ardour/sfdb_ui.cc:973
+#: gtk2_ardour/sfdb_ui.cc:987
+#: gtk2_ardour/sfdb_ui.cc:1287
+msgid "all files in one region"
+msgstr "alle Dateien in einer Region"
+
+#: gtk2_ardour/sfdb_ui.cc:979
+#: gtk2_ardour/sfdb_ui.cc:1285
+msgid "one region per file"
+msgstr "eine Region pro Datei"
+
+#: gtk2_ardour/sfdb_ui.cc:982
+#: gtk2_ardour/sfdb_ui.cc:1286
+msgid "one region per channel"
+msgstr "eine Region pro Kanal"
+
+#: gtk2_ardour/sfdb_ui.cc:1040
+msgid ""
+"One or more of the selected files\n"
+"cannot be used by Ardour"
+msgstr ""
+"Eine oder mehrere der ausgewählten Dateien\n"
+"können nicht von Ardour benutzt werden"
+
+#: gtk2_ardour/sfdb_ui.cc:1167
+msgid "Copy files to session"
+msgstr "Kopiere Dateien zum Projekt"
+
+#: gtk2_ardour/sfdb_ui.cc:1183
+#: gtk2_ardour/sfdb_ui.cc:1318
+msgid "use file timestamp"
+msgstr "Zeitstempel"
+
+#: gtk2_ardour/sfdb_ui.cc:1184
+#: gtk2_ardour/sfdb_ui.cc:1320
+msgid "at edit point"
+msgstr "Arbeitspunkt"
+
+#: gtk2_ardour/sfdb_ui.cc:1185
+#: gtk2_ardour/sfdb_ui.cc:1322
+msgid "at playhead"
+msgstr "Positionszeiger"
+
+#: gtk2_ardour/sfdb_ui.cc:1186
+msgid "at session start"
+msgstr "Projektanfang"
+
+#: gtk2_ardour/sfdb_ui.cc:1191
+msgid "Add files:"
+msgstr "Hinzufügen:"
+
+#: gtk2_ardour/sfdb_ui.cc:1213
+msgid "Insert:"
+msgstr "Einfügepunkt:"
+
+#: gtk2_ardour/sfdb_ui.cc:1226
+msgid "Mapping:"
+msgstr "Zuordnung:"
+
+#: gtk2_ardour/sfdb_ui.cc:1244
+msgid "Conversion Quality:"
+msgstr "SR-Konvertierung:"
+
+#: gtk2_ardour/sfdb_ui.cc:1256
+#: gtk2_ardour/sfdb_ui.cc:1334
+msgid "Best"
+msgstr "bestmöglich"
+
+#: gtk2_ardour/sfdb_ui.cc:1257
+#: gtk2_ardour/sfdb_ui.cc:1336
+msgid "Good"
+msgstr "gut"
+
+#: gtk2_ardour/sfdb_ui.cc:1258
+#: gtk2_ardour/sfdb_ui.cc:1338
+msgid "Quick"
+msgstr "schnell"
+
+#: gtk2_ardour/sfdb_ui.cc:1282
+msgid "merge files"
+msgstr "Dateien zusammenfügen"
+
+#: gtk2_ardour/sfdb_ui.cc:1359
+msgid "programming error: %1 (%2)"
+msgstr "Programmierfehler: %1 (%2)"
+
+#: gtk2_ardour/editor_export_audio.cc:66
+msgid ""
+"There is no selection to export.\n"
+"\n"
+"Select a selection using the range mouse mode"
+msgstr ""
+"Es wurde keine Auswahlbereich zum Exportieren erstellt.\n"
+"\n"
+"Erstellen Sie eine Auswahl mit dem Bereichswerkzeug"
+
+#: gtk2_ardour/editor_export_audio.cc:109
+msgid ""
+"There are no ranges to export.\n"
+"\n"
+"Create 1 or more ranges by dragging the mouse in the range bar"
+msgstr ""
+"Es gibt keine Bereiche, die exportiert werden können.\n"
+"\n"
+"Erstellen Sie einen oder mehrere Bereiche, indem Sie den Mauszeiger in der Bereichleiste ziehen"
+
#: gtk2_ardour/editor_actions.cc:49
-msgid "Select Regions"
-msgstr "Region auswählen"
+msgid "Autoconnect"
+msgstr "Automatisch verbinden"
#: gtk2_ardour/editor_actions.cc:50
-msgid "Select Range Operations"
-msgstr "Bereichs"
+msgid "Crossfades"
+msgstr "Crossfades"
-#: gtk2_ardour/editor_actions.cc:51
+#: gtk2_ardour/editor_actions.cc:52
msgid "Move Selected Marker"
msgstr "Ausgewählten Positionsmarker verschieben"
-#: gtk2_ardour/editor_actions.cc:52
-msgid "Region operations"
-msgstr "Region(en)"
-
#: gtk2_ardour/editor_actions.cc:53
-msgid "Tools"
-msgstr "Werkzeuge"
+msgid "Select Range Operations"
+msgstr "Bereichs"
#: gtk2_ardour/editor_actions.cc:54
-msgid "View"
-msgstr "Ansicht"
+msgid "Select Regions"
+msgstr "Region auswählen"
#: gtk2_ardour/editor_actions.cc:55
-msgid "ZoomFocus"
-msgstr "Zoom-Mittelpunkt"
-
-#: gtk2_ardour/editor_actions.cc:56
-msgid "Meter hold"
-msgstr "Pegelanzeige halten"
+msgid "Edit Point"
+msgstr "Arbeitspunkt"
#: gtk2_ardour/editor_actions.cc:57
-msgid "Meter falloff"
-msgstr "Abfall der Pegelanzeigen"
+msgid "Latch"
+msgstr "Latch"
+
+#: gtk2_ardour/editor_actions.cc:58
+msgid "Layering"
+msgstr "Layering"
#: gtk2_ardour/editor_actions.cc:59
-msgid "Crossfades"
-msgstr "Crossfades"
+msgid "Link"
+msgstr "Link"
#: gtk2_ardour/editor_actions.cc:60
-msgid "Monitoring"
-msgstr "Monitoring"
+#, fuzzy
+msgid "Locate To Markers"
+msgstr "Positionsmarker"
#: gtk2_ardour/editor_actions.cc:61
-msgid "Autoconnect"
-msgstr "Automatisch verbinden"
+#: gtk2_ardour/editor_actions.cc:685
+msgid "Markers"
+msgstr "Marker"
#: gtk2_ardour/editor_actions.cc:62
-msgid "Layering"
-msgstr "Layering"
+msgid "Meter falloff"
+msgstr "Abfall der Pegelanzeigen"
#: gtk2_ardour/editor_actions.cc:63
-msgid "Timecode fps"
-msgstr "Timecode FPS"
+msgid "Meter hold"
+msgstr "Pegelanzeige halten"
#: gtk2_ardour/editor_actions.cc:64
+msgid "Misc Options"
+msgstr "Sonstiges"
+
+#: gtk2_ardour/editor_actions.cc:65
+msgid "Monitoring"
+msgstr "Monitoring"
+
+#: gtk2_ardour/editor_actions.cc:70
+msgid "Primary Clock"
+msgstr "Erste Zeitanzeige"
+
+#: gtk2_ardour/editor_actions.cc:71
msgid "Pullup / Pulldown"
msgstr "Pull-Up / Pull-Down"
-#: gtk2_ardour/editor_actions.cc:65
+#: gtk2_ardour/editor_actions.cc:72
+msgid "Region"
+msgstr "Region"
+
+#: gtk2_ardour/editor_actions.cc:73
+msgid "Region operations"
+msgstr "Region(en)"
+
+#: gtk2_ardour/editor_actions.cc:74
+msgid "Gain"
+msgstr "Gain"
+
+#: gtk2_ardour/editor_actions.cc:75
+msgid "Rulers"
+msgstr "Markierungsleisten"
+
+#: gtk2_ardour/editor_actions.cc:76
+msgid "Views"
+msgstr "Ansichten"
+
+#: gtk2_ardour/editor_actions.cc:77
+msgid "Scroll"
+msgstr "Scrollen"
+
+#: gtk2_ardour/editor_actions.cc:78
+msgid "Secondary Clock"
+msgstr "Zweite Zeitanzeige"
+
+#: gtk2_ardour/editor_actions.cc:81
+#: gtk2_ardour/editor_actions.cc:511
+msgid "Separate"
+msgstr "Teilen"
+
+#: gtk2_ardour/editor_actions.cc:85
msgid "Subframes"
msgstr "Subframes"
-#: gtk2_ardour/editor_actions.cc:66
-#, fuzzy
-msgid "Locate To Markers"
-msgstr "Positionsmarker"
+#: gtk2_ardour/editor_actions.cc:88
+msgid "Timecode fps"
+msgstr "Timecode FPS"
-#: gtk2_ardour/editor_actions.cc:70
+#: gtk2_ardour/editor_actions.cc:91
+msgid "Tools"
+msgstr "Werkzeuge"
+
+#: gtk2_ardour/editor_actions.cc:93
+msgid "View"
+msgstr "Ansicht"
+
+#: gtk2_ardour/editor_actions.cc:94
+msgid "Waveforms"
+msgstr "Wellenform"
+
+#: gtk2_ardour/editor_actions.cc:95
+msgid "Zoom Focus"
+msgstr "Zoom Fokus"
+
+#: gtk2_ardour/editor_actions.cc:96
+msgid "Zoom"
+msgstr "Zoom"
+
+#: gtk2_ardour/editor_actions.cc:98
msgid "Link Region/Track Selection"
msgstr "Spurauswahl folgt Auswahl der Region"
-#: gtk2_ardour/editor_actions.cc:72
+#: gtk2_ardour/editor_actions.cc:99
+msgid "Break drag"
+msgstr "Verschieben abbrechen"
+
+#: gtk2_ardour/editor_actions.cc:101
msgid "Show Editor Mixer"
msgstr "Mixer-Panel zeigen"
-#: gtk2_ardour/editor_actions.cc:77
+#: gtk2_ardour/editor_actions.cc:106
msgid "Span Entire Overlap"
msgstr "Gesamte Ãœberlappung"
-#: gtk2_ardour/editor_actions.cc:86
+#: gtk2_ardour/editor_actions.cc:115
msgid "Created Automatically"
msgstr "Automatisch erzeugen"
-#: gtk2_ardour/editor_actions.cc:89
+#: gtk2_ardour/editor_actions.cc:118
+msgid "Use Region Fades (global)"
+msgstr "Regionen-Fades global benutzen"
+
+#: gtk2_ardour/editor_actions.cc:120
+msgid "Show Region Fades"
+msgstr "Fades anzeigen"
+
+#: gtk2_ardour/editor_actions.cc:122
+msgid "Toggle Region Fade In"
+msgstr "Fade-In (de-)aktivieren"
+
+#: gtk2_ardour/editor_actions.cc:124
+msgid "Toggle Region Fade Out"
+msgstr "Fade-Out (de-)aktivieren"
+
+#: gtk2_ardour/editor_actions.cc:126
+msgid "Toggle Region Fades"
+msgstr "Ãœberblenden von Region (de-)aktivieren"
+
+#: gtk2_ardour/editor_actions.cc:129
msgid "Playhead to Next Region Boundary"
msgstr "Positionszeiger zur nächsten Regiongrenze"
-#: gtk2_ardour/editor_actions.cc:91
+#: gtk2_ardour/editor_actions.cc:131
msgid "Playhead to Previous Region Boundary"
msgstr "Positionszeiger zur vorherigen Regiongrenze"
-#: gtk2_ardour/editor_actions.cc:94
+#: gtk2_ardour/editor_actions.cc:134
msgid "Playhead to Next Region Start"
msgstr "Positionszeiger zum Anfang der nächsten Region"
-#: gtk2_ardour/editor_actions.cc:96
+#: gtk2_ardour/editor_actions.cc:136
msgid "Playhead to Next Region End"
msgstr "Positionszeiger zum Ende der nächsten Region"
-#: gtk2_ardour/editor_actions.cc:98
+#: gtk2_ardour/editor_actions.cc:138
msgid "Playhead to Next Region Sync"
msgstr "Positionszeiger zum Einrastpunkt der nächsten Region"
-#: gtk2_ardour/editor_actions.cc:101
+#: gtk2_ardour/editor_actions.cc:141
msgid "Playhead to Previous Region Start"
msgstr "Positionszeiger zum Anfang der vorherigen Region"
-#: gtk2_ardour/editor_actions.cc:103
+#: gtk2_ardour/editor_actions.cc:143
msgid "Playhead to Previous Region End"
msgstr "Positionszeiger zum Ende der vorherigen Region"
-#: gtk2_ardour/editor_actions.cc:105
+#: gtk2_ardour/editor_actions.cc:145
msgid "Playhead to Previous Region Sync"
msgstr "Positionszeiger zum Einrastpunkt der vorherigen Region"
-#: gtk2_ardour/editor_actions.cc:108
+#: gtk2_ardour/editor_actions.cc:148
msgid "to Next Region Boundary"
msgstr "zur nächsten Regiongrenze"
-#: gtk2_ardour/editor_actions.cc:110
+#: gtk2_ardour/editor_actions.cc:150
msgid "to Previous Region Boundary"
msgstr "zur vorherigen Regiongrenze"
-#: gtk2_ardour/editor_actions.cc:113
+#: gtk2_ardour/editor_actions.cc:153
msgid "to Next Region Start"
msgstr "zum Anfang der nächsten Region"
-#: gtk2_ardour/editor_actions.cc:115
+#: gtk2_ardour/editor_actions.cc:155
msgid "to Next Region End"
msgstr "zum Ende der nächsten Region"
-#: gtk2_ardour/editor_actions.cc:117
+#: gtk2_ardour/editor_actions.cc:157
msgid "to Next Region Sync"
msgstr "zum Einrastpunkt der nächsten Region"
-#: gtk2_ardour/editor_actions.cc:120
+#: gtk2_ardour/editor_actions.cc:160
msgid "to Previous Region Start"
msgstr "zum Anfang der vorherigen Region"
-#: gtk2_ardour/editor_actions.cc:122
+#: gtk2_ardour/editor_actions.cc:162
msgid "to Previous Region End"
msgstr "zum Ende der vorherigen Region"
-#: gtk2_ardour/editor_actions.cc:124
+#: gtk2_ardour/editor_actions.cc:164
msgid "to Previous Region Sync"
msgstr "zum Einrastpunkt der vorherigen Region"
-#: gtk2_ardour/editor_actions.cc:127
+#: gtk2_ardour/editor_actions.cc:167
msgid "to Range Start"
msgstr "zum Anfang des Auswahlbereichs"
-#: gtk2_ardour/editor_actions.cc:129
+#: gtk2_ardour/editor_actions.cc:169
msgid "to Range End"
msgstr "zum Ende des Auswahlbereichs"
-#: gtk2_ardour/editor_actions.cc:132
+#: gtk2_ardour/editor_actions.cc:172
msgid "Playhead to Range Start"
msgstr "Positionszeiger zum Anfang des Auswahlbereichs"
-#: gtk2_ardour/editor_actions.cc:134
+#: gtk2_ardour/editor_actions.cc:174
msgid "Playhead to Range End"
msgstr "Positionszeiger zum Ende des Auswahlbereichs"
-#: gtk2_ardour/editor_actions.cc:139
-#: gtk2_ardour/redirect_box.cc:1195
-msgid "Deselect All"
-msgstr "Nichts auswählen"
-
-#: gtk2_ardour/editor_actions.cc:141
+#: gtk2_ardour/editor_actions.cc:181
msgid "Invert Selection"
msgstr "Auswahl umkehren"
-#: gtk2_ardour/editor_actions.cc:160
+#: gtk2_ardour/editor_actions.cc:188
+msgid "Select All Overlapping Edit Range"
+msgstr "Alle Regionen des Bearbeitungsbereichs auswählen "
+
+#: gtk2_ardour/editor_actions.cc:190
+msgid "Select All Inside Edit Range"
+msgstr "Alles inerhalb des Bearbeitungsbereichs auswählen"
+
+#: gtk2_ardour/editor_actions.cc:193
+msgid "Select Edit Range"
+msgstr "Bearbeitungsbereich auswählen"
+
+#: gtk2_ardour/editor_actions.cc:196
msgid "Select All in Punch Range"
msgstr "Alle Regionen im Punch-Bereich auswählen"
-#: gtk2_ardour/editor_actions.cc:162
+#: gtk2_ardour/editor_actions.cc:198
msgid "Select All in Loop Range"
msgstr "Alle Regionen innerhalb der Schleife auswählen"
-#: gtk2_ardour/editor_actions.cc:165
+#: gtk2_ardour/editor_actions.cc:201
msgid "Select Next Track/Bus"
msgstr "Nächste Spur/Bus auswählen"
-#: gtk2_ardour/editor_actions.cc:167
+#: gtk2_ardour/editor_actions.cc:203
msgid "Select Previous Track/Bus"
msgstr "Vorherige Spur/Bus auswählen"
-#: gtk2_ardour/editor_actions.cc:171
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:207
+msgid "Save View 1"
+msgstr "Ansicht 1 speichern"
+
+#: gtk2_ardour/editor_actions.cc:209
+msgid "Goto View 1"
+msgstr "Ansicht 1 aufrufen"
+
+#: gtk2_ardour/editor_actions.cc:211
+msgid "Save View 2"
+msgstr "Ansicht 2 speichern"
+
+#: gtk2_ardour/editor_actions.cc:213
+msgid "Goto View 2"
+msgstr "Ansicht 2 aufrufen"
+
+#: gtk2_ardour/editor_actions.cc:215
+msgid "Save View 3"
+msgstr "Ansicht 3 speichern"
+
+#: gtk2_ardour/editor_actions.cc:217
+msgid "Goto View 3"
+msgstr "Ansicht 3 aufrufen"
+
+#: gtk2_ardour/editor_actions.cc:219
+msgid "Save View 4"
+msgstr "Ansicht 4 speichern"
+
+#: gtk2_ardour/editor_actions.cc:221
+msgid "Goto View 4"
+msgstr "Ansicht 4 aufrufen"
+
+#: gtk2_ardour/editor_actions.cc:223
+msgid "Save View 5"
+msgstr "Ansicht 5 speichern"
+
+#: gtk2_ardour/editor_actions.cc:225
+msgid "Goto View 5"
+msgstr "Ansicht 5 aufrufen"
+
+#: gtk2_ardour/editor_actions.cc:227
+msgid "Save View 6"
+msgstr "Ansicht 6 speichern"
+
+#: gtk2_ardour/editor_actions.cc:229
+msgid "Goto View 6"
+msgstr "Ansicht 6 aufrufen"
+
+#: gtk2_ardour/editor_actions.cc:231
+msgid "Save View 7"
+msgstr "Ansicht 7 speichern"
+
+#: gtk2_ardour/editor_actions.cc:233
+msgid "Goto View 7"
+msgstr "Ansicht 7 aufrufen"
+
+#: gtk2_ardour/editor_actions.cc:235
+msgid "Save View 8"
+msgstr "Ansicht 8 speichern"
+
+#: gtk2_ardour/editor_actions.cc:237
+msgid "Goto View 8"
+msgstr "Ansicht 8 aufrufen"
+
+#: gtk2_ardour/editor_actions.cc:239
+msgid "Save View 9"
+msgstr "Ansicht 9 speichern"
+
+#: gtk2_ardour/editor_actions.cc:241
+msgid "Goto View 9"
+msgstr "Ansicht 9 aufrufen"
+
+#: gtk2_ardour/editor_actions.cc:243
+msgid "Save View 10"
+msgstr "Ansicht 10 speichern"
+
+#: gtk2_ardour/editor_actions.cc:245
+msgid "Goto View 10"
+msgstr "Ansicht 10 aufrufen"
+
+#: gtk2_ardour/editor_actions.cc:247
+msgid "Save View 11"
+msgstr "Ansicht 11 speichern"
+
+#: gtk2_ardour/editor_actions.cc:249
+msgid "Goto View 11"
+msgstr "Ansicht 11 aufrufen"
+
+#: gtk2_ardour/editor_actions.cc:251
+msgid "Save View 12"
+msgstr "Ansicht 12 speichern"
+
+#: gtk2_ardour/editor_actions.cc:253
+msgid "Goto View 12"
+msgstr "Ansicht 12 aufrufen"
+
+#: gtk2_ardour/editor_actions.cc:257
msgid "Locate to Mark 1"
-msgstr "Zu Marker 1 "
+msgstr "Positionszeiger zu Marker 1 setzen"
-#: gtk2_ardour/editor_actions.cc:173
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:259
msgid "Locate to Mark 2"
-msgstr "Positionszeiger zu Marker setzen"
+msgstr "Positionszeiger zu Marker 2 setzen"
-#: gtk2_ardour/editor_actions.cc:175
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:261
msgid "Locate to Mark 3"
-msgstr "Positionszeiger zu Marker setzen"
+msgstr "Positionszeiger zu Marker 3 setzen"
-#: gtk2_ardour/editor_actions.cc:177
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:263
msgid "Locate to Mark 4"
-msgstr "Positionszeiger zu Marker setzen"
+msgstr "Positionszeiger zu Marker 4 setzen"
-#: gtk2_ardour/editor_actions.cc:179
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:265
msgid "Locate to Mark 5"
-msgstr "Positionszeiger zu Marker setzen"
+msgstr "Positionszeiger zu Marker 5 setzen"
-#: gtk2_ardour/editor_actions.cc:181
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:267
msgid "Locate to Mark 6"
-msgstr "Positionszeiger zu Marker setzen"
+msgstr "Positionszeiger zu Marker 6 setzen"
-#: gtk2_ardour/editor_actions.cc:183
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:269
msgid "Locate to Mark 7"
-msgstr "Positionszeiger zu Marker setzen"
+msgstr "Positionszeiger zu Marker 7 setzen"
-#: gtk2_ardour/editor_actions.cc:185
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:271
msgid "Locate to Mark 8"
-msgstr "Positionszeiger zu Marker setzen"
+msgstr "Positionszeiger zu Marker 8 setzen"
-#: gtk2_ardour/editor_actions.cc:187
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:273
msgid "Locate to Mark 9"
-msgstr "Positionszeiger zu Marker setzen"
+msgstr "Positionszeiger zu Marker 9 setzen"
-#: gtk2_ardour/editor_actions.cc:190
+#: gtk2_ardour/editor_actions.cc:276
msgid "Jump Forward to Mark"
msgstr "Zum nächsten Marker springen"
-#: gtk2_ardour/editor_actions.cc:192
+#: gtk2_ardour/editor_actions.cc:278
msgid "Jump Backward to Mark"
msgstr "Zum vorherigen Marker springen"
-#: gtk2_ardour/editor_actions.cc:194
+#: gtk2_ardour/editor_actions.cc:280
msgid "Add Mark from Playhead"
msgstr "Marker am Positionszeiger setzen"
-#: gtk2_ardour/editor_actions.cc:197
+#: gtk2_ardour/editor_actions.cc:283
msgid "Nudge Forward"
msgstr "Schritt nach vorne"
-#: gtk2_ardour/editor_actions.cc:199
+#: gtk2_ardour/editor_actions.cc:285
msgid "Nudge Next Forward"
msgstr "Nächste Region Schritt vorwärts"
-#: gtk2_ardour/editor_actions.cc:201
+#: gtk2_ardour/editor_actions.cc:287
msgid "Nudge Backward"
msgstr "Schritt nach Hinten"
-#: gtk2_ardour/editor_actions.cc:203
+#: gtk2_ardour/editor_actions.cc:289
msgid "Nudge Next Backward"
msgstr "Nächste Region Schritt rückwärts"
-#: gtk2_ardour/editor_actions.cc:213
+#: gtk2_ardour/editor_actions.cc:292
+msgid "Nudge Playhead Forward"
+msgstr "Positionszeiger vorwärts"
+
+#: gtk2_ardour/editor_actions.cc:294
+msgid "Nudge Playhead Backward"
+msgstr "Positionszeiger rückwärts"
+
+#: gtk2_ardour/editor_actions.cc:296
+msgid "Forward To Grid"
+msgstr "Vorwärts auf Raster"
+
+#: gtk2_ardour/editor_actions.cc:298
+msgid "Backward To Grid"
+msgstr "Rückwärts auf Raster"
+
+#: gtk2_ardour/editor_actions.cc:308
msgid "Zoom to Region"
msgstr "Auf Region zoomen"
-#: gtk2_ardour/editor_actions.cc:215
+#: gtk2_ardour/editor_actions.cc:310
+msgid "Zoom to Region (W&H)"
+msgstr "Auf Region zoomen (B&H)"
+
+#: gtk2_ardour/editor_actions.cc:312
msgid "Toggle Zoom State"
-msgstr ""
+msgstr "Letzten Zoom wählen"
+
+#: gtk2_ardour/editor_actions.cc:315
+msgid "Move Selected Tracks Up"
+msgstr "Ausgewählte Spuren nach oben verschieben"
+
+#: gtk2_ardour/editor_actions.cc:317
+msgid "Move Selected Tracks Down"
+msgstr "Ausgewählte Spuren nach unten verschieben"
-#: gtk2_ardour/editor_actions.cc:218
+#: gtk2_ardour/editor_actions.cc:320
msgid "Scroll Tracks Up"
msgstr "Spuren nach oben scrollen"
-#: gtk2_ardour/editor_actions.cc:220
+#: gtk2_ardour/editor_actions.cc:322
msgid "Scroll Tracks Down"
msgstr "Spuren nach unten scrollen"
-#: gtk2_ardour/editor_actions.cc:222
+#: gtk2_ardour/editor_actions.cc:324
msgid "Step Tracks Up"
msgstr "Spuren langsam nach oben scrollen"
-#: gtk2_ardour/editor_actions.cc:224
+#: gtk2_ardour/editor_actions.cc:326
msgid "Step Tracks Down"
msgstr "Spuren langsam nach unten scrollen"
-#: gtk2_ardour/editor_actions.cc:227
+#: gtk2_ardour/editor_actions.cc:329
msgid "Scroll Backward"
-msgstr "Vorwärts scrollen"
+msgstr "Nach rechts scrollen"
-#: gtk2_ardour/editor_actions.cc:229
+#: gtk2_ardour/editor_actions.cc:331
msgid "Scroll Forward"
-msgstr "Rückwärts scrollen"
+msgstr "Nach links scrollen"
-#: gtk2_ardour/editor_actions.cc:231
+#: gtk2_ardour/editor_actions.cc:333
msgid "goto"
msgstr "Gehe zu"
-#: gtk2_ardour/editor_actions.cc:233
-#: gtk2_ardour/editor_actions.cc:235
-msgid "to Center"
-msgstr "zur Mitte"
+#: gtk2_ardour/editor_actions.cc:335
+msgid "Center Playhead"
+msgstr "Positionszeiger zentrieren"
+
+#: gtk2_ardour/editor_actions.cc:337
+msgid "Center Active Marker"
+msgstr "Marker zentrieren"
-#: gtk2_ardour/editor_actions.cc:238
-msgid "Playhead forward"
+#: gtk2_ardour/editor_actions.cc:340
+msgid "Playhead Forward"
msgstr "Positionszeiger vorwärts"
-#: gtk2_ardour/editor_actions.cc:240
+#: gtk2_ardour/editor_actions.cc:342
msgid "Playhead Backward"
msgstr "Positionszeiger rückwärts"
-#: gtk2_ardour/editor_actions.cc:243
-msgid "to Edit"
-msgstr "Positionszeiger zum Arbeitspunkt"
+#: gtk2_ardour/editor_actions.cc:345
+msgid "Playhead To Active Mark"
+msgstr "Positionszeiger zur aktiven Markierung"
-#: gtk2_ardour/editor_actions.cc:245
-msgid "to Playhead"
-msgstr "zum Positionszeiger"
+#: gtk2_ardour/editor_actions.cc:347
+msgid "Active Mark To Playhead"
+msgstr "Aktiven Marker zum Positionszeiger verschieben"
+
+#: gtk2_ardour/editor_actions.cc:350
+msgid "Trim Start At Edit Point"
+msgstr "Schneide Anfang der Region am Arbeitspunkt"
+
+#: gtk2_ardour/editor_actions.cc:353
+msgid "Trim End At Edit Point"
+msgstr "Schneide Ende der Region am Arbeitspunkt"
-#: gtk2_ardour/editor_actions.cc:248
-msgid "Trim start at edit point"
-msgstr "Schneide Regionanfang am Arbeitspunkt"
+#: gtk2_ardour/editor_actions.cc:357
+msgid "Start To Edit Point"
+msgstr "Von Anfang bis Arbeitspunkt"
-#: gtk2_ardour/editor_actions.cc:250
-msgid "Trim end at edit point"
-msgstr "Schneide Regionende am Arbeitspunkt"
+#: gtk2_ardour/editor_actions.cc:360
+msgid "Edit Point To End"
+msgstr "Von Arbeitspunkt bis Ende"
-#: gtk2_ardour/editor_actions.cc:262
+#: gtk2_ardour/editor_actions.cc:370
msgid "Set Loop From Edit Range"
msgstr "Schleife aus Editierbereich erstellen"
-#: gtk2_ardour/editor_actions.cc:264
+#: gtk2_ardour/editor_actions.cc:372
msgid "Set Loop From Region"
msgstr "Schleife aus Region erstellen"
-#: gtk2_ardour/editor_actions.cc:268
+#: gtk2_ardour/editor_actions.cc:377
msgid "Set Punch From Edit Range"
msgstr "Punch-Bereich aus Editierbereich erstellen"
-#: gtk2_ardour/editor_actions.cc:272
+#: gtk2_ardour/editor_actions.cc:379
+msgid "Set Punch From Region"
+msgstr "Punch-Bereich aus Region erstellen"
+
+#: gtk2_ardour/editor_actions.cc:382
msgid "Transpose"
msgstr "Transponieren"
-#: gtk2_ardour/editor_actions.cc:275
+#: gtk2_ardour/editor_actions.cc:384
+msgid "Toggle Opaque"
+msgstr "Deckend"
+
+#: gtk2_ardour/editor_actions.cc:388
msgid "Set Fade In Length"
msgstr "Ändere Fade-In Länge"
-#: gtk2_ardour/editor_actions.cc:277
+#: gtk2_ardour/editor_actions.cc:390
msgid "Toggle Fade In Active"
msgstr "Fade-In aktivieren"
-#: gtk2_ardour/editor_actions.cc:279
+#: gtk2_ardour/editor_actions.cc:392
msgid "Set Fade Out Length"
msgstr "Fade-Out verändern"
-#: gtk2_ardour/editor_actions.cc:281
+#: gtk2_ardour/editor_actions.cc:394
msgid "Toggle Fade Out Active"
msgstr "Fade-Out aktivieren"
-#: gtk2_ardour/editor_actions.cc:284
+#: gtk2_ardour/editor_actions.cc:397
msgid "Align Regions Start"
msgstr "Anfang der Regionen ausrichten"
-#: gtk2_ardour/editor_actions.cc:286
+#: gtk2_ardour/editor_actions.cc:400
msgid "Align Regions Start Relative"
msgstr "Anfang der Regionen relativ ausrichten"
-#: gtk2_ardour/editor_actions.cc:288
+#: gtk2_ardour/editor_actions.cc:403
msgid "Align Regions End"
msgstr "Regionenenden ausrichten"
-#: gtk2_ardour/editor_actions.cc:290
+#: gtk2_ardour/editor_actions.cc:406
msgid "Align Regions End Relative"
msgstr "Regionenenden relativ ausrichten"
-#: gtk2_ardour/editor_actions.cc:293
+#: gtk2_ardour/editor_actions.cc:410
msgid "Align Regions Sync"
msgstr "Regionen-Einrastpunkt ausrichten"
-#: gtk2_ardour/editor_actions.cc:295
+#: gtk2_ardour/editor_actions.cc:413
msgid "Align Regions Sync Relative"
msgstr "Regionen-Einrastpunkt relativ ausrichten"
-#: gtk2_ardour/editor_actions.cc:298
+#: gtk2_ardour/editor_actions.cc:417
msgid "Play From Edit Point"
msgstr "Wiedergabe ab Arbeitspunkt"
-#: gtk2_ardour/editor_actions.cc:300
+#: gtk2_ardour/editor_actions.cc:419
msgid "Play from Edit Point & Return"
msgstr "Wiedergabe ab Arbeitspunkt & Return"
-#: gtk2_ardour/editor_actions.cc:303
+#: gtk2_ardour/editor_actions.cc:422
msgid "Play Edit Range"
msgstr "Editierbereich wiedergeben"
-#: gtk2_ardour/editor_actions.cc:304
+#: gtk2_ardour/editor_actions.cc:423
msgid "Play Selected Region(s)"
msgstr "Ausgewählte Regionen wiedergeben"
-#: gtk2_ardour/editor_actions.cc:306
+#: gtk2_ardour/editor_actions.cc:426
msgid "Brush at Mouse"
msgstr "Pinsel an Mausposition (Brush)"
-#: gtk2_ardour/editor_actions.cc:308
-msgid "Mute/Unmute Region"
-msgstr "Region Mute/Unmute"
+#: gtk2_ardour/editor_actions.cc:429
+msgid "Playhead to Mouse"
+msgstr "Positionszeiger zur Mausposition"
-#: gtk2_ardour/editor_actions.cc:311
-msgid "Set Playhead"
-msgstr "Positionszeiger setzen"
+#: gtk2_ardour/editor_actions.cc:431
+msgid "Active Marker to Mouse"
+msgstr "Akitven Marker zur Mausposition"
-#: gtk2_ardour/editor_actions.cc:313
-msgid "Set Edit Point"
-msgstr "Arbeitspunkt setzen"
+#: gtk2_ardour/editor_actions.cc:434
+msgid "Duplicate Region"
+msgstr "Region duplizieren"
-#: gtk2_ardour/editor_actions.cc:315
+#: gtk2_ardour/editor_actions.cc:437
+msgid "Multi-Duplicate Region"
+msgstr "Region mehrfach duplizieren"
+
+#: gtk2_ardour/editor_actions.cc:440
+msgid "Duplicate Range"
+msgstr "Bereich duplizieren"
+
+#: gtk2_ardour/editor_actions.cc:443
+msgid "Insert Region"
+msgstr "Einfügen"
+
+#: gtk2_ardour/editor_actions.cc:446
+msgid "Normalize Region"
+msgstr "Normalisieren"
+
+#: gtk2_ardour/editor_actions.cc:452
+msgid "Auto-Rename"
+msgstr "Automatisch umbenennen"
+
+#: gtk2_ardour/editor_actions.cc:455
+msgid "Boost Region Gain"
+msgstr "Lautstärke erhöhen"
+
+#: gtk2_ardour/editor_actions.cc:458
+msgid "Cut Region Gain"
+msgstr "Lautstärke erniedrigen"
+
+#: gtk2_ardour/editor_actions.cc:461
msgid "Split Region"
msgstr "Region teilen (Split)"
-#: gtk2_ardour/editor_actions.cc:317
+#: gtk2_ardour/editor_actions.cc:464
msgid "Set Region Sync Position"
msgstr "Einrastpunkt der Region setzen"
-#: gtk2_ardour/editor_actions.cc:325
+#: gtk2_ardour/editor_actions.cc:467
+msgid "Remove Region Sync"
+msgstr "Synchronisation entfernen"
+
+#: gtk2_ardour/editor_actions.cc:470
+msgid "Raise Region"
+msgstr "Region weiter nach oben"
+
+#: gtk2_ardour/editor_actions.cc:473
+msgid "Lower Region"
+msgstr "Region weiter nach unten"
+
+#: gtk2_ardour/editor_actions.cc:476
+msgid "Export Region"
+msgstr "Region exportieren"
+
+#: gtk2_ardour/editor_actions.cc:479
+msgid "Lock Region"
+msgstr "Region sperren"
+
+#: gtk2_ardour/editor_actions.cc:482
+msgid "Glue Region To Bars&Beats"
+msgstr "Region an an Takte und Schläge binden"
+
+#: gtk2_ardour/editor_actions.cc:485
+msgid "Move To Original Position"
+msgstr "Ursprungsposition"
+
+#: gtk2_ardour/editor_actions.cc:497
+msgid "Mute/Unmute Region"
+msgstr "Region stummschalten"
+
+#: gtk2_ardour/editor_actions.cc:506
msgid "Export Session"
msgstr "Projekt exportieren..."
-#: gtk2_ardour/editor_actions.cc:327
+#: gtk2_ardour/editor_actions.cc:508
msgid "Export Range"
msgstr "Bereiche exportieren..."
-#: gtk2_ardour/editor_actions.cc:330
-msgid "Separate"
-msgstr "Teilen"
+#: gtk2_ardour/editor_actions.cc:514
+msgid "Separate Using Punch Range"
+msgstr "an Punch-Bereichsgrenzen teilen"
-#: gtk2_ardour/editor_actions.cc:332
-#: gtk2_ardour/editor_actions.cc:355
-#, fuzzy
-msgid "Crop"
-msgstr "Kopieren"
+#: gtk2_ardour/editor_actions.cc:517
+msgid "Separate Using Loop Range"
+msgstr "an Schleifenenden teilen"
-#: gtk2_ardour/editor_actions.cc:337
-#: gtk2_ardour/redirect_box.cc:1188
-#: gtk2_ardour/connection_editor.cc:55
-msgid "Delete"
-msgstr "Löschen"
+#: gtk2_ardour/editor_actions.cc:520
+#: gtk2_ardour/editor_actions.cc:550
+msgid "Crop"
+msgstr "Beschneiden"
-#: gtk2_ardour/editor_actions.cc:343
-msgid "Duplicate Region"
-msgstr "Duplizieren"
+#: gtk2_ardour/editor_actions.cc:533
+msgid "Set Tempo from Region=Bar"
+msgstr "Tempo setzen mit \"Region=Takt\""
-#: gtk2_ardour/editor_actions.cc:345
-msgid "Multi-Duplicate Region"
-msgstr "Region mehrfach Duplizieren"
+#: gtk2_ardour/editor_actions.cc:536
+msgid "Set Tempo from Edit Range=Bar"
+msgstr "Tempo setzen mit \"Auswahl=Takt\""
-#: gtk2_ardour/editor_actions.cc:347
-msgid "Duplicate Range"
-msgstr "Bereich duplizieren"
+#: gtk2_ardour/editor_actions.cc:539
+msgid "Split Regions At Percussion Onsets"
+msgstr "Regionen an perkussiven Schlägen teilen"
-#: gtk2_ardour/editor_actions.cc:349
-msgid "Insert Region"
-msgstr "Einfügen"
+#: gtk2_ardour/editor_actions.cc:542
+msgid "Rhythm Ferret"
+msgstr "Rhythm Ferret"
-#: gtk2_ardour/editor_actions.cc:351
-msgid "Reverse Region"
-msgstr "Rückwärts"
+#: gtk2_ardour/editor_actions.cc:545
+msgid "Move Forward to Transient"
+msgstr "Zum nächsten Transienten"
-#: gtk2_ardour/editor_actions.cc:353
-msgid "Normalize Region"
-msgstr "Normalisieren"
+#: gtk2_ardour/editor_actions.cc:547
+msgid "Move Backwards to Transient"
+msgstr "Zum vorherigen Transienten"
-#: gtk2_ardour/editor_actions.cc:357
+#: gtk2_ardour/editor_actions.cc:552
msgid "Insert Chunk"
msgstr "Abschnitt einfügen"
-#: gtk2_ardour/editor_actions.cc:360
+#: gtk2_ardour/editor_actions.cc:555
msgid "Split At Edit Point"
msgstr "Am Arbeitspunkt trennen"
-#: gtk2_ardour/editor_actions.cc:363
+#: gtk2_ardour/editor_actions.cc:558
msgid "Start Range"
msgstr "Bereich beginnen"
-#: gtk2_ardour/editor_actions.cc:365
+#: gtk2_ardour/editor_actions.cc:560
msgid "Finish Range"
msgstr "Bereich beenden"
-#: gtk2_ardour/editor_actions.cc:367
+#: gtk2_ardour/editor_actions.cc:562
msgid "Finish add Range"
msgstr "Bereich hinzufügen beenden"
-#: gtk2_ardour/editor_actions.cc:375
+#: gtk2_ardour/editor_actions.cc:570
msgid "Follow Playhead"
msgstr "Positionszeiger folgen"
-#: gtk2_ardour/editor_actions.cc:383
+#: gtk2_ardour/editor_actions.cc:575
+msgid "Insert Time"
+msgstr "Stille Einfügen"
+
+#: gtk2_ardour/editor_actions.cc:579
+msgid "Toggle Active"
+msgstr "Spur Aktivieren / Deaktivieren"
+
+#: gtk2_ardour/editor_actions.cc:586
+msgid "Fit Selected Tracks"
+msgstr "An ausgewählte Spuren anpassen"
+
+#: gtk2_ardour/editor_actions.cc:611
msgid "Zoom Focus Left"
msgstr "Am linken Rand ausrichten"
-#: gtk2_ardour/editor_actions.cc:385
+#: gtk2_ardour/editor_actions.cc:613
msgid "Zoom Focus Right"
msgstr "Am rechten Rand ausrichten"
-#: gtk2_ardour/editor_actions.cc:387
+#: gtk2_ardour/editor_actions.cc:615
msgid "Zoom Focus Center"
msgstr "Zentriert ausrichten"
-#: gtk2_ardour/editor_actions.cc:389
+#: gtk2_ardour/editor_actions.cc:617
msgid "Zoom Focus Playhead"
msgstr "Am Positionszeiger ausrichten"
-#: gtk2_ardour/editor_actions.cc:391
+#: gtk2_ardour/editor_actions.cc:619
msgid "Zoom Focus Mouse"
msgstr "Zoom Fokus zur Maus"
-#: gtk2_ardour/editor_actions.cc:393
+#: gtk2_ardour/editor_actions.cc:621
msgid "Zoom Focus Edit"
msgstr "Am Editierzeiger ausrichten"
-#: gtk2_ardour/editor_actions.cc:399
+#: gtk2_ardour/editor_actions.cc:627
msgid "Object Tool"
msgstr "Objektwerkzeug"
-#: gtk2_ardour/editor_actions.cc:400
+#: gtk2_ardour/editor_actions.cc:628
msgid "Range Tool"
msgstr "Bereich-Werkzeug (Range)"
-#: gtk2_ardour/editor_actions.cc:401
+#: gtk2_ardour/editor_actions.cc:629
msgid "Gain Tool"
msgstr "Lautstärkewerkzeug (Gain)"
-#: gtk2_ardour/editor_actions.cc:402
+#: gtk2_ardour/editor_actions.cc:630
msgid "Zoom Tool"
msgstr "Zoom-Werkzeug"
-#: gtk2_ardour/editor_actions.cc:403
+#: gtk2_ardour/editor_actions.cc:631
msgid "Timefx Tool"
msgstr "Zeit-Werkzeug (Time)"
-#: gtk2_ardour/editor_actions.cc:410
+#: gtk2_ardour/editor_actions.cc:638
msgid "Change edit point"
msgstr "Arbeitspunkt ändern"
-#: gtk2_ardour/editor_actions.cc:411
+#: gtk2_ardour/editor_actions.cc:639
msgid "Change edit point (w/Marker)"
msgstr "Setze Arbeitspunkt (über Positionsmarker)"
-#: gtk2_ardour/editor_actions.cc:413
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:641
msgid "Splice"
msgstr "Teilen"
-#: gtk2_ardour/editor_actions.cc:414
+#: gtk2_ardour/editor_actions.cc:642
#, fuzzy
msgid "Slide"
msgstr "Verbergen"
-#: gtk2_ardour/editor_actions.cc:415
+#: gtk2_ardour/editor_actions.cc:644
msgid "Toggle Edit Mode"
-msgstr ""
+msgstr "Edit-Modus (de-) aktivieren"
-#: gtk2_ardour/editor_actions.cc:417
+#: gtk2_ardour/editor_actions.cc:646
msgid "Snap To"
msgstr "Raster"
-#: gtk2_ardour/editor_actions.cc:418
+#: gtk2_ardour/editor_actions.cc:647
msgid "Snap Mode"
msgstr "Einrastmodus"
-#: gtk2_ardour/editor_actions.cc:425
+#: gtk2_ardour/editor_actions.cc:654
msgid "Next Snap Mode"
msgstr "Nächster Einrastmodus"
-#: gtk2_ardour/editor_actions.cc:426
+#: gtk2_ardour/editor_actions.cc:655
msgid "Next Snap Choice"
-msgstr ""
+msgstr "Nächster Einrastmodus"
-#: gtk2_ardour/editor_actions.cc:431
+#: gtk2_ardour/editor_actions.cc:660
msgid "Snap to cd frame"
msgstr "An CD-Frames einrasten"
-#: gtk2_ardour/editor_actions.cc:432
+#: gtk2_ardour/editor_actions.cc:661
msgid "Snap to SMPTE frame"
msgstr "An SMPTE-Frames einrasten"
-#: gtk2_ardour/editor_actions.cc:433
+#: gtk2_ardour/editor_actions.cc:662
msgid "Snap to SMPTE seconds"
msgstr "An SMPTE-Sekunden einrasten"
-#: gtk2_ardour/editor_actions.cc:434
+#: gtk2_ardour/editor_actions.cc:663
msgid "Snap to SMPTE minutes"
msgstr "An SMPTE-Minuten einrasten"
-#: gtk2_ardour/editor_actions.cc:435
+#: gtk2_ardour/editor_actions.cc:664
msgid "Snap to seconds"
msgstr "An Sekunden einrasten"
-#: gtk2_ardour/editor_actions.cc:436
+#: gtk2_ardour/editor_actions.cc:665
msgid "Snap to minutes"
msgstr "An Minuten einrasten"
-#: gtk2_ardour/editor_actions.cc:437
+#: gtk2_ardour/editor_actions.cc:666
msgid "Snap to thirtyseconds"
msgstr "An halben Minuten einrasten"
-#: gtk2_ardour/editor_actions.cc:438
+#: gtk2_ardour/editor_actions.cc:667
msgid "Snap to asixteenthbeat"
msgstr "An Sechzehnteln einrasten"
-#: gtk2_ardour/editor_actions.cc:439
+#: gtk2_ardour/editor_actions.cc:668
msgid "Snap to eighths"
msgstr "An Achteln einrasten"
-#: gtk2_ardour/editor_actions.cc:440
+#: gtk2_ardour/editor_actions.cc:669
msgid "Snap to quarters"
msgstr "An Vierteln einrasten"
-#: gtk2_ardour/editor_actions.cc:441
+#: gtk2_ardour/editor_actions.cc:670
msgid "Snap to thirds"
msgstr "An Triolen einrasten"
-#: gtk2_ardour/editor_actions.cc:442
+#: gtk2_ardour/editor_actions.cc:671
msgid "Snap to beat"
msgstr "An Schlägen einrasten"
-#: gtk2_ardour/editor_actions.cc:443
+#: gtk2_ardour/editor_actions.cc:672
msgid "Snap to bar"
msgstr "An Takten einrasten"
-#: gtk2_ardour/editor_actions.cc:444
+#: gtk2_ardour/editor_actions.cc:673
msgid "Snap to mark"
msgstr "An Markern einrasten"
-#: gtk2_ardour/editor_actions.cc:445
+#: gtk2_ardour/editor_actions.cc:674
msgid "Snap to region start"
msgstr "Am Anfang der Regionen einrasten"
-#: gtk2_ardour/editor_actions.cc:446
+#: gtk2_ardour/editor_actions.cc:675
msgid "Snap to region end"
msgstr "Am Ende der Regionen einrasten"
-#: gtk2_ardour/editor_actions.cc:447
+#: gtk2_ardour/editor_actions.cc:676
msgid "Snap to region sync"
msgstr "Am Einrastpunkt der Regionen einrasten"
-#: gtk2_ardour/editor_actions.cc:448
+#: gtk2_ardour/editor_actions.cc:677
msgid "Snap to region boundary"
msgstr "An Grenzen der Regionen einrasten"
-#: gtk2_ardour/editor_actions.cc:457
+#: gtk2_ardour/editor_actions.cc:684
+msgid "Ranges"
+msgstr "Bereiche"
+
+#: gtk2_ardour/editor_actions.cc:687
+msgid "Loop/Punch"
+msgstr "Schleifen/Punch-Bereiche"
+
+#: gtk2_ardour/editor_actions.cc:691
+msgid "Min:Sec"
+msgstr "Min:Sek"
+
+#: gtk2_ardour/editor_actions.cc:719
msgid "Sort"
msgstr "Sortieren"
-#: gtk2_ardour/editor_actions.cc:465
+#: gtk2_ardour/editor_actions.cc:727
msgid "Show all"
msgstr "Alle zeigen"
-#: gtk2_ardour/editor_actions.cc:466
+#: gtk2_ardour/editor_actions.cc:728
msgid "Show automatic regions"
msgstr "Automatische Regionen zeigen"
-#: gtk2_ardour/editor_actions.cc:468
+#: gtk2_ardour/editor_actions.cc:730
msgid "Ascending"
msgstr "aufsteigend"
-#: gtk2_ardour/editor_actions.cc:470
+#: gtk2_ardour/editor_actions.cc:732
msgid "Descending"
msgstr "absteigend"
-#: gtk2_ardour/editor_actions.cc:473
+#: gtk2_ardour/editor_actions.cc:735
msgid "By Region Name"
msgstr "nach Name der Region"
-#: gtk2_ardour/editor_actions.cc:475
+#: gtk2_ardour/editor_actions.cc:737
msgid "By Region Length"
msgstr "nach Länge der Region"
-#: gtk2_ardour/editor_actions.cc:477
+#: gtk2_ardour/editor_actions.cc:739
msgid "By Region Position"
msgstr "nach Position der Region"
-#: gtk2_ardour/editor_actions.cc:479
+#: gtk2_ardour/editor_actions.cc:741
msgid "By Region Timestamp"
msgstr "nach Zeitstempel der Region"
-#: gtk2_ardour/editor_actions.cc:481
+#: gtk2_ardour/editor_actions.cc:743
msgid "By Region Start in File"
msgstr "nach Anfang der Region in der Datei"
-#: gtk2_ardour/editor_actions.cc:483
+#: gtk2_ardour/editor_actions.cc:745
msgid "By Region End in File"
msgstr "nach Ende der Region in der Datei"
-#: gtk2_ardour/editor_actions.cc:485
+#: gtk2_ardour/editor_actions.cc:747
msgid "By Source File Name"
msgstr "nach Namen der Quelldatei"
-#: gtk2_ardour/editor_actions.cc:487
+#: gtk2_ardour/editor_actions.cc:749
msgid "By Source File Length"
msgstr "nach Länge der Quelldatei"
-#: gtk2_ardour/editor_actions.cc:489
+#: gtk2_ardour/editor_actions.cc:751
msgid "By Source File Creation Date"
msgstr "nach Erstellungsdatum der Quelldatei"
-#: gtk2_ardour/editor_actions.cc:491
+#: gtk2_ardour/editor_actions.cc:753
msgid "By Source Filesystem"
msgstr "nach Dateisystem der Quelle"
-#: gtk2_ardour/editor_actions.cc:497
-msgid "Add Existing Audio"
-msgstr "Audio importieren"
+#: gtk2_ardour/editor_actions.cc:759
+msgid "Import"
+msgstr "Importieren"
-#: gtk2_ardour/editor_actions.cc:499
-msgid "Add External Audio"
-msgstr "Audio importieren..."
+#: gtk2_ardour/editor_actions.cc:761
+msgid "Import to Region List"
+msgstr "Regionen importieren"
-#: gtk2_ardour/editor_actions.cc:502
+#: gtk2_ardour/editor_actions.cc:764
msgid "Show Waveforms"
msgstr "Wellenformen zeigen"
-#: gtk2_ardour/editor_actions.cc:503
+#: gtk2_ardour/editor_actions.cc:767
msgid "Show Waveforms While Recording"
msgstr "Wellenformen beim Aufnehmen zeigen"
-#: gtk2_ardour/editor_actions.cc:504
+#: gtk2_ardour/editor_actions.cc:768
msgid "Show Measures"
-msgstr "Takte zeigen"
+msgstr "Takt-Raster einblenden"
-#: gtk2_ardour/editor_actions.cc:508
+#: gtk2_ardour/editor_actions.cc:779
msgid "Show Logo"
msgstr "Zeige Logo"
-#: gtk2_ardour/editor_actions.cc:514
+#: gtk2_ardour/editor_actions.cc:785
msgid "Later is Higher"
-msgstr "Neuste nach oben"
+msgstr "Spätere nach oben"
-#: gtk2_ardour/editor_actions.cc:515
+#: gtk2_ardour/editor_actions.cc:786
msgid "Most Recently Moved/Added is Higher"
msgstr "Zuletzt bewegte/hinzugefügte nach oben"
-#: gtk2_ardour/editor_actions.cc:516
+#: gtk2_ardour/editor_actions.cc:787
msgid "Most Recently Added is Higher"
msgstr "Zuletzt hinzugefügte nach oben"
-#: gtk2_ardour/editor_actions.cc:520
+#: gtk2_ardour/editor_actions.cc:791
msgid "23.976"
msgstr "23,976"
-#: gtk2_ardour/editor_actions.cc:521
+#: gtk2_ardour/editor_actions.cc:792
msgid "24"
msgstr "24"
-#: gtk2_ardour/editor_actions.cc:522
+#: gtk2_ardour/editor_actions.cc:793
msgid "24.976"
msgstr "24,976"
-#: gtk2_ardour/editor_actions.cc:523
+#: gtk2_ardour/editor_actions.cc:794
msgid "25"
msgstr "25"
-#: gtk2_ardour/editor_actions.cc:524
+#: gtk2_ardour/editor_actions.cc:795
msgid "29.97"
msgstr "29,97"
-#: gtk2_ardour/editor_actions.cc:525
+#: gtk2_ardour/editor_actions.cc:796
msgid "29.97 drop"
msgstr "29,97 (drop)"
-#: gtk2_ardour/editor_actions.cc:526
+#: gtk2_ardour/editor_actions.cc:797
msgid "30"
msgstr "30"
-#: gtk2_ardour/editor_actions.cc:527
+#: gtk2_ardour/editor_actions.cc:798
msgid "30 drop"
msgstr "30 (drop)"
-#: gtk2_ardour/editor_actions.cc:528
+#: gtk2_ardour/editor_actions.cc:799
msgid "59.94"
msgstr "59,94"
-#: gtk2_ardour/editor_actions.cc:529
+#: gtk2_ardour/editor_actions.cc:800
msgid "60"
msgstr "60"
-#: gtk2_ardour/editor_actions.cc:533
+#: gtk2_ardour/editor_actions.cc:804
msgid "+4.1667% + 0.1%"
msgstr "+4,1667% + 0,1%"
-#: gtk2_ardour/editor_actions.cc:534
+#: gtk2_ardour/editor_actions.cc:805
msgid "+4.1667%"
msgstr "+4,1667%"
-#: gtk2_ardour/editor_actions.cc:535
+#: gtk2_ardour/editor_actions.cc:806
msgid "+4.1667% - 0.1%"
msgstr "+4,1667% - 0,1%"
-#: gtk2_ardour/editor_actions.cc:536
+#: gtk2_ardour/editor_actions.cc:807
msgid "+ 0.1%"
msgstr "+ 0,1%"
-#: gtk2_ardour/editor_actions.cc:537
-#: gtk2_ardour/engine_dialog.cc:98
-#: gtk2_ardour/engine_dialog.cc:103
-#: gtk2_ardour/engine_dialog.cc:479
-#: gtk2_ardour/export_dialog.cc:78
-#: gtk2_ardour/export_dialog.cc:92
+#: gtk2_ardour/editor_actions.cc:808
+#: gtk2_ardour/route_ui.cc:604
#: gtk2_ardour/export_dialog.cc:956
-#: gtk2_ardour/export_dialog.cc:1294
-#: gtk2_ardour/route_ui.cc:513
+#: gtk2_ardour/export_dialog.cc:1291
msgid "None"
msgstr "Kein"
-#: gtk2_ardour/editor_actions.cc:538
+#: gtk2_ardour/editor_actions.cc:809
msgid "- 0.1%"
msgstr "- 0,1%"
-#: gtk2_ardour/editor_actions.cc:539
+#: gtk2_ardour/editor_actions.cc:810
msgid "-4.1667% + 0.1%"
msgstr "-4,1667% + 0,1%"
-#: gtk2_ardour/editor_actions.cc:540
+#: gtk2_ardour/editor_actions.cc:811
msgid "-4.1667%"
msgstr "-4,1667%"
-#: gtk2_ardour/editor_actions.cc:541
+#: gtk2_ardour/editor_actions.cc:812
msgid "-4.1667% - 0.1%"
msgstr "-4,1667% - 0,1%"
-#: gtk2_ardour/editor_actions.cc:545
+#: gtk2_ardour/editor_actions.cc:816
msgid "80 per frame"
msgstr "80 pro Frame"
-#: gtk2_ardour/editor_actions.cc:547
+#: gtk2_ardour/editor_actions.cc:818
msgid "100 per frame"
msgstr "100 pro Frame"
-#: gtk2_ardour/editor_actions.cc:863
-#: gtk2_ardour/editor_actions.cc:972
-#: gtk2_ardour/editor_actions.cc:983
-#: gtk2_ardour/editor_actions.cc:1036
-#: gtk2_ardour/editor_actions.cc:1047
-#: gtk2_ardour/editor_actions.cc:1094
-#: gtk2_ardour/editor_actions.cc:1104
+#: gtk2_ardour/editor_actions.cc:1212
+#: gtk2_ardour/editor_actions.cc:1321
+#: gtk2_ardour/editor_actions.cc:1332
+#: gtk2_ardour/editor_actions.cc:1385
+#: gtk2_ardour/editor_actions.cc:1396
+#: gtk2_ardour/editor_actions.cc:1443
+#: gtk2_ardour/editor_actions.cc:1453
msgid "programming error: %1: %2"
msgstr "Programmierfehler: %1: %2"
-#: gtk2_ardour/editor_actions.cc:1265
+#: gtk2_ardour/editor_actions.cc:1614
msgid "Configuraton is using unhandled subframes per frame value: %1"
msgstr "Diese Konfiguration benutzt einen unzulässigen Wert für Subframes pro Frame: %1"
-#: gtk2_ardour/editor_audio_import.cc:71
-#: gtk2_ardour/editor_audio_import.cc:92
-msgid "You can't import or embed an audiofile until you have a session loaded."
-msgstr "Sie können keine Audiodatei importieren, solange kein Projekt geladen ist."
+#: gtk2_ardour/keyboard.cc:81
+#: gtk2_ardour/keyboard.cc:592
+msgid "Unknown"
+msgstr "Unknown"
-#: gtk2_ardour/editor_audio_import.cc:77
-#: gtk2_ardour/editor_audio_import.cc:110
-msgid "Add existing audio"
-msgstr "Audio importieren"
+#: gtk2_ardour/keyboard.cc:473
+msgid "your own"
+msgstr ""
-#: gtk2_ardour/editor_audio_import.cc:370
-msgid "importing %1"
-msgstr "importiere %1"
+#: gtk2_ardour/keyboard.cc:537
+#: gtk2_ardour/keyboard.cc:561
+msgid "Default keybindings not found - Ardour will be hard to use!"
+msgstr "Keine Tastatur-Standardbelegung gefunden!"
-#: gtk2_ardour/editor_audio_import.cc:376
-msgid "Cancel Import"
-msgstr "Importieren Abbrechen"
+#: gtk2_ardour/keyboard.cc:540
+#: gtk2_ardour/keyboard.cc:564
+msgid "Key bindings file \"%1\" not found. Default bindings used instead"
+msgstr "Die Datei \"%1\" für Tastaturkürzel wurde nicht gefunden. Stattdessen wird die Standard-Belegung verwendet."
-#: gtk2_ardour/editor_audio_import.cc:479
-msgid "Editor: cannot open file \"%1\", (%2)"
-msgstr "Editor: kann die Datei \"%1\" nicht öffnen (%2)"
+#: gtk2_ardour/keyboard.cc:603
+msgid "Ardour key bindings file not found at \"%1\" or contains errors."
+msgstr "Konnte die Datei mit den Tastaturzuweisungen nicht an der Stelle \"%1\" finden, oder sie ist fehlerhaft."
-#: gtk2_ardour/editor_audio_import.cc:487
-msgid "Cancel entire import"
-msgstr "Importieren Abbrechen"
+#: gtk2_ardour/connection_editor.cc:50
+msgid "ardour: connections"
+msgstr "ardour: Verbindungen"
-#: gtk2_ardour/editor_audio_import.cc:488
-msgid "Don't embed it"
-msgstr "Nicht einbetten"
+#: gtk2_ardour/connection_editor.cc:51
+msgid "Input Connections"
+msgstr "Verbindungen der Eingänge"
-#: gtk2_ardour/editor_audio_import.cc:489
-msgid "Embed all without questions"
-msgstr "Alle Importieren ohne nachzufragen"
+#: gtk2_ardour/connection_editor.cc:52
+msgid "Output Connections"
+msgstr "Verbindungen der Ausgänge"
-#: gtk2_ardour/editor_audio_import.cc:492
-#: gtk2_ardour/editor_audio_import.cc:519
-msgid ""
-"%1\n"
-"This audiofile's sample rate doesn't match the session sample rate!"
-msgstr ""
-"%1\n"
-"Die Samplerate dieser Audiodatei unterscheidet sich von der Samplerate dieses Projekts."
+#: gtk2_ardour/connection_editor.cc:53
+msgid "New Input"
+msgstr "Neuer Eingang"
-#: gtk2_ardour/editor_audio_import.cc:516
-msgid "Embed it anyway"
-msgstr "Trotzdem importieren"
+#: gtk2_ardour/connection_editor.cc:54
+msgid "New Output"
+msgstr "Neuer Ausgang"
-#: gtk2_ardour/editor_audio_import.cc:561
-msgid "could not open %1"
-msgstr "Konnte \"%s\" nicht öffnen."
+#: gtk2_ardour/connection_editor.cc:57
+#: gtk2_ardour/connection_editor.cc:100
+msgid "Add Port"
+msgstr "Port hinzufügen"
-#: gtk2_ardour/editor_audio_import.cc:691
-msgid "insert sndfile"
-msgstr "Audiodatei einfügen"
+#: gtk2_ardour/connection_editor.cc:105
+msgid "Available Ports"
+msgstr "Verfügbare Verbindungen"
-#: gtk2_ardour/editor_canvas.cc:129
-msgid "VerboseCanvasCursor"
+#: gtk2_ardour/connection_editor.cc:500
+msgid "Connection \""
+msgstr "Verbindung \""
+
+#: gtk2_ardour/connection_editor.cc:502
+msgid "\""
msgstr ""
-#: gtk2_ardour/editor_edit_groups.cc:52
-#: gtk2_ardour/mixer_ui.cc:848
-msgid "Activate All"
-msgstr "Alle aktivieren"
+#: gtk2_ardour/connection_editor.cc:531
+#, c-format
+msgid "in %d"
+msgstr "In %d"
-#: gtk2_ardour/editor_edit_groups.cc:53
-#: gtk2_ardour/mixer_ui.cc:849
-msgid "Disable All"
-msgstr "Alle deaktivieren"
+#: gtk2_ardour/connection_editor.cc:533
+#, c-format
+msgid "out %d"
+msgstr "Out %d"
-#: gtk2_ardour/editor_edit_groups.cc:55
-#: gtk2_ardour/mixer_ui.cc:851
-msgid "Add group"
-msgstr "Gruppe hinzufügen"
+#: gtk2_ardour/connection_editor.cc:657
+msgid "Name for new connection:"
+msgstr "Name für neue Verbindung:"
-#: gtk2_ardour/editor_edit_groups.cc:228
-#: gtk2_ardour/mixer_ui.cc:1092
-msgid "unnamed"
-msgstr "unbenannt"
+#: gtk2_ardour/route_ui.cc:238
+msgid "mute change"
+msgstr "Mute ändern"
-#: gtk2_ardour/editor_edit_groups.cc:257
-#: gtk2_ardour/mixer_ui.cc:946
-msgid "-all-"
-msgstr "-alle-"
+#: gtk2_ardour/route_ui.cc:322
+#: gtk2_ardour/route_ui.cc:333
+msgid "solo change"
+msgstr "Solo ändern"
-#: gtk2_ardour/editor_export_audio.cc:66
+#: gtk2_ardour/route_ui.cc:394
+msgid "Not connected to JACK - cannot engage record"
+msgstr "Nicht mit JACK verbunden - konnte die Aufnahme nicht starten"
+
+#: gtk2_ardour/route_ui.cc:408
+msgid "rec-enable change"
+msgstr "Aufnahmestatus ändern"
+
+#: gtk2_ardour/route_ui.cc:646
+msgid "Solo-safe"
+msgstr "Solo-Safe"
+
+#: gtk2_ardour/route_ui.cc:668
+msgid "Pre Fader"
+msgstr "Pre Fader"
+
+#: gtk2_ardour/route_ui.cc:675
+msgid "Post Fader"
+msgstr "Post Fader"
+
+#: gtk2_ardour/route_ui.cc:682
+msgid "Control Outs"
+msgstr "Vorhörausgang"
+
+#: gtk2_ardour/route_ui.cc:689
+msgid "Main Outs"
+msgstr "Main Ausgänge"
+
+#: gtk2_ardour/route_ui.cc:726
+msgid "mix group solo change"
+msgstr "Mixergruppe Solo-Status ändern"
+
+#: gtk2_ardour/route_ui.cc:765
+msgid "mix group mute change"
+msgstr "Mixergruppe Mute-Status ändern"
+
+#: gtk2_ardour/route_ui.cc:782
+msgid "mix group rec-enable change"
+msgstr "Mixergruppe Aufnahmestatus ändern"
+
+#: gtk2_ardour/route_ui.cc:876
msgid ""
-"There is no selection to export.\n"
+"Do you really want to remove track \"%1\" ?\n"
"\n"
-"Select a selection using the range mouse mode"
+"You may also lose the playlist used by this track.\n"
+"(cannot be undone)"
msgstr ""
-"Es wurde keine Auswahlbereich zum Exportieren erstellt.\n"
+"Wollen Sie wirklich die Spur \"%1\" löschen?\n"
"\n"
-"Erstellen Sie eine Auswahl mit dem Bereichswerkzeug"
+"Sie werden auch die Wiedergabeliste, die diese Spur benutzt verlieren.\n"
+"(Dies kann nicht rückgängig gemacht werden!)"
-#: gtk2_ardour/editor_export_audio.cc:109
+#: gtk2_ardour/route_ui.cc:878
msgid ""
-"There are no ranges to export.\n"
-"\n"
-"Create 1 or more ranges by dragging the mouse in the range bar"
+"Do you really want to remove bus \"%1\" ?\n"
+"(cannot be undone)"
msgstr ""
-"Es gibt keine Bereiche, die exportiert werden können.\n"
-"\n"
-"Erstellen Sie einen oder mehrere Bereiche, indem Sie den Mauszeiger in der Bereichleiste ziehen"
+"Wollen Sie den Bus \"%1\" wirklich löschen?\n"
+"(Dies kann nicht rückgängig gemacht werden!)"
-#: gtk2_ardour/editor_imageframe.cc:622
-#: gtk2_ardour/editor_imageframe.cc:652
-msgid "programming error: no ImageFrameView selected"
-msgstr "Programmierfehler: kein ImageFrameView ausgewählt"
+#: gtk2_ardour/route_ui.cc:903
+msgid "New Name: "
+msgstr "Neuer Name: "
-#: gtk2_ardour/editor_imageframe.cc:845
-#: gtk2_ardour/editor_imageframe.cc:867
-msgid "programming error: no MarkerView selected"
-msgstr "Programmierfehler: kein MarkerView ausgewählt"
+#: gtk2_ardour/export_dialog.cc:102
+msgid "Format"
+msgstr "Format"
-#: gtk2_ardour/editor_keyboard.cc:82
-msgid "mute region"
-msgstr "Region stummschalten"
+#: gtk2_ardour/export_dialog.cc:103
+msgid "CD Marker File Type"
+msgstr "CD-Marker"
-#: gtk2_ardour/editor_markers.cc:399
-#: gtk2_ardour/editor_ops.cc:1794
-#: gtk2_ardour/editor_ops.cc:1811
-#: gtk2_ardour/editor_ops.cc:1836
-#: gtk2_ardour/location_ui.cc:821
-msgid "add marker"
-msgstr "Marker hinzufügen"
+#: gtk2_ardour/export_dialog.cc:104
+msgid "Channels"
+msgstr "Kanäle"
-#: gtk2_ardour/editor_markers.cc:423
-#: gtk2_ardour/editor_markers.cc:491
-#: gtk2_ardour/editor_markers.cc:676
-#: gtk2_ardour/editor_markers.cc:694
-#: gtk2_ardour/editor_markers.cc:712
-#: gtk2_ardour/editor_markers.cc:731
-#: gtk2_ardour/editor_markers.cc:750
-#: gtk2_ardour/editor_markers.cc:780
-#: gtk2_ardour/editor_markers.cc:808
-#: gtk2_ardour/editor_markers.cc:836
-#: gtk2_ardour/editor_markers.cc:874
-#: gtk2_ardour/editor_markers.cc:899
-#: gtk2_ardour/editor_markers.cc:926
-#: gtk2_ardour/editor_markers.cc:949
-#: gtk2_ardour/editor_markers.cc:969
-#: gtk2_ardour/editor_markers.cc:993
-#: gtk2_ardour/editor_mouse.cc:2139
-#: gtk2_ardour/editor_mouse.cc:4686
-msgid "programming error: marker canvas item has no marker object pointer!"
-msgstr "Programmierfehler: marker canvas item has no marker object pointer!"
+#: gtk2_ardour/export_dialog.cc:107
+msgid "Sample Endianness"
+msgstr "Bytefolge"
-#: gtk2_ardour/editor_markers.cc:441
-#: gtk2_ardour/location_ui.cc:699
-msgid "remove marker"
-msgstr "Marker entfernen"
+#: gtk2_ardour/export_dialog.cc:108
+msgid "Sample Rate"
+msgstr "Samplerate"
-#: gtk2_ardour/editor_markers.cc:582
-msgid "Locate to here"
-msgstr "Positionszeiger hierhin setzen"
+#: gtk2_ardour/export_dialog.cc:109
+msgid "Conversion Quality"
+msgstr "SR-Konvertierung"
-#: gtk2_ardour/editor_markers.cc:583
-msgid "Play from here"
-msgstr "Wiedergabe ab hier"
+#: gtk2_ardour/export_dialog.cc:110
+msgid "Dither Type"
+msgstr "Dithering"
-#: gtk2_ardour/editor_markers.cc:584
-msgid "Move Mark to Playhead"
-msgstr "Marker zum Positionszeiger verschieben"
+#: gtk2_ardour/export_dialog.cc:111
+msgid "Export CD Marker File Only"
+msgstr "Nur CD-Marker exportieren"
-#: gtk2_ardour/editor_markers.cc:592
-msgid "Unlock"
-msgstr "Entsperren"
+#: gtk2_ardour/export_dialog.cc:112
+msgid "Browse"
+msgstr "Durchsuchen"
-#: gtk2_ardour/editor_markers.cc:614
-msgid "Play Range"
-msgstr "Bereich wiedergeben"
+#: gtk2_ardour/export_dialog.cc:113
+msgid "Specific tracks ..."
+msgstr "Alle Spuren..."
-#: gtk2_ardour/editor_markers.cc:615
-msgid "Locate to Range Mark"
-msgstr "Positionszeiger zu Bereichsmarker"
+#: gtk2_ardour/export_dialog.cc:423
+msgid "22.05kHz"
+msgstr "22,05 kHz"
-#: gtk2_ardour/editor_markers.cc:616
-msgid "Play from Range Mark"
-msgstr "Wiedergabe ab Bereichsmarker"
+#: gtk2_ardour/export_dialog.cc:426
+#: gtk2_ardour/export_dialog.cc:441
+#: gtk2_ardour/export_dialog.cc:1089
+#: gtk2_ardour/export_dialog.cc:1259
+msgid "44.1kHz"
+msgstr "44,1 kHz"
-#: gtk2_ardour/editor_markers.cc:618
-msgid "Loop Range"
-msgstr "Bereich in Schleife wiedergeben"
+#: gtk2_ardour/export_dialog.cc:429
+#: gtk2_ardour/export_dialog.cc:1091
+#: gtk2_ardour/export_dialog.cc:1261
+msgid "48kHz"
+msgstr "48 kHz"
-#: gtk2_ardour/editor_markers.cc:620
-msgid "Set Range Mark from Playhead"
-msgstr "Bereichsmarker zum Positionszeiger verschieben"
+#: gtk2_ardour/export_dialog.cc:432
+#: gtk2_ardour/export_dialog.cc:1093
+#: gtk2_ardour/export_dialog.cc:1263
+msgid "88.2kHz"
+msgstr "88,2 kHz"
-#: gtk2_ardour/editor_markers.cc:622
-msgid "Set Range from Range Selection"
-msgstr "Bereichsmarker zum Auswahlbereich verschieben"
+#: gtk2_ardour/export_dialog.cc:435
+#: gtk2_ardour/export_dialog.cc:1095
+#: gtk2_ardour/export_dialog.cc:1265
+msgid "96kHz"
+msgstr "96 kHz"
-#: gtk2_ardour/editor_markers.cc:628
-msgid "Hide Range"
-msgstr "Bereich verbergen"
+#: gtk2_ardour/export_dialog.cc:438
+#: gtk2_ardour/export_dialog.cc:1097
+#: gtk2_ardour/export_dialog.cc:1267
+msgid "192kHz"
+msgstr "192 kHz"
-#: gtk2_ardour/editor_markers.cc:629
-#: gtk2_ardour/editor_markers.cc:1013
-msgid "Rename Range"
-msgstr "Bereich umbenennen"
+#: gtk2_ardour/export_dialog.cc:510
+#: gtk2_ardour/export_dialog.cc:1115
+#: gtk2_ardour/export_dialog.cc:1237
+msgid "mono"
+msgstr "Mono"
-#: gtk2_ardour/editor_markers.cc:630
-msgid "Remove Range"
-msgstr "Bereich entfernen"
+#: gtk2_ardour/export_dialog.cc:656
+msgid "Editor: cannot open \"%1\" as export file for CD toc file"
+msgstr "Editor: Kann \"%1\" nicht nicht zum Export für CD-Inhaltsverzeichnis (TOC) öffnen."
-#: gtk2_ardour/editor_markers.cc:635
-msgid "Separate Regions in Range"
-msgstr "Regionen an Bereichsgrenzen teilen"
+#: gtk2_ardour/export_dialog.cc:790
+msgid "Editor: cannot open \"%1\" as export file for CD cue file"
+msgstr "Editor: Kann \"%1\" nicht zum Export für CD CUE-Datei öffnen."
-#: gtk2_ardour/editor_markers.cc:636
-msgid "Select All in Range"
-msgstr "Alles im Bereich auswählen"
+#: gtk2_ardour/export_dialog.cc:926
+msgid "TOC"
+msgstr "TOC"
-#: gtk2_ardour/editor_markers.cc:638
-msgid "Select Range"
-msgstr "Bereich auswählen"
+#: gtk2_ardour/export_dialog.cc:941
+msgid "Not connected to audioengine"
+msgstr "Nicht mit JACK verbunden"
-#: gtk2_ardour/editor_markers.cc:664
-msgid "Set Loop Range"
-msgstr "Schleife erstellen"
+#: gtk2_ardour/export_dialog.cc:945
+msgid "Ardour cannot export audio when disconnected"
+msgstr "Ardour kann nicht exportieren, wenn keine Verbindung zu JACK besteht."
-#: gtk2_ardour/editor_markers.cc:665
-msgid "Set Punch Range"
-msgstr "Punch-Bereich erstellen"
+#: gtk2_ardour/export_dialog.cc:975
+msgid "Stop Export"
+msgstr "Export Abbrechen"
-#: gtk2_ardour/editor_markers.cc:1007
-msgid "New Name:"
-msgstr "Neuer Name: "
+#: gtk2_ardour/export_dialog.cc:1191
+msgid "Please enter a valid filename."
+msgstr "Bitte geben Sie einen gültigen Dateinamen ein."
-#: gtk2_ardour/editor_markers.cc:1011
-msgid "Rename Mark"
-msgstr "Marker umbenennen"
+#: gtk2_ardour/export_dialog.cc:1201
+msgid "Please specify a complete filename for the audio file."
+msgstr "Bitte geben Sie einen kompletten Dateinamen für die Audiodatei ein."
-#: gtk2_ardour/editor_markers.cc:1035
-msgid "rename marker"
-msgstr "Marker umbenennen"
+#: gtk2_ardour/export_dialog.cc:1207
+msgid "File already exists, do you want to overwrite it?"
+msgstr "Datei existiert bereits, wollen Sie sie überschreiben?"
-#: gtk2_ardour/editor_markers.cc:1059
-msgid "set loop range"
-msgstr "Loop-Bereich festlegen"
+#: gtk2_ardour/export_dialog.cc:1277
+msgid "fastest"
+msgstr "schnellstmöglich"
-#: gtk2_ardour/editor_markers.cc:1065
-msgid "set punch range"
-msgstr "Punch-Bereich festlegen"
+#: gtk2_ardour/export_dialog.cc:1279
+msgid "linear"
+msgstr "Linear"
-#: gtk2_ardour/editor_mouse.cc:144
-msgid "Editor::event_frame() used on unhandled event type %1"
-msgstr ""
+#: gtk2_ardour/export_dialog.cc:1281
+msgid "better"
+msgstr "besser"
-#: gtk2_ardour/editor_mouse.cc:1696
-msgid "programming error: start_grab called without drag item"
-msgstr "Programmierfehler: start_grab called without drag item"
+#: gtk2_ardour/export_dialog.cc:1283
+msgid "intermediate"
+msgstr "mittelmäßig"
-#: gtk2_ardour/editor_mouse.cc:1898
-msgid "change fade in length"
-msgstr "Ändere Fade-In Länge"
+#: gtk2_ardour/export_dialog.cc:1293
+msgid "Rectangular"
+msgstr "rechteckig"
-#: gtk2_ardour/editor_mouse.cc:1930
-msgid "programming error: fade out canvas item has no regionview data pointer!"
-msgstr "Programmierfehler: fade out canvas item has no regionview data pointer!"
+#: gtk2_ardour/export_dialog.cc:1295
+msgid "Triangular"
+msgstr "dreieckig"
-#: gtk2_ardour/editor_mouse.cc:2014
-msgid "change fade out length"
-msgstr "Fade-Out verändern"
+#: gtk2_ardour/audio_region_view.cc:975
+msgid "add gain control point"
+msgstr "Lautstärkekurve bearbeiten"
-#: gtk2_ardour/editor_mouse.cc:2046
-msgid "programming error: cursor canvas item has no cursor data pointer!"
-msgstr "Programmierfehler: cursor canvas item has no cursor data pointer!"
+#: gtk2_ardour/engine_dialog.cc:49
+msgid "Realtime"
+msgstr "Realtime"
-#: gtk2_ardour/editor_mouse.cc:2301
-msgid "move marker"
-msgstr "Marker bewegen"
+#: gtk2_ardour/engine_dialog.cc:50
+msgid "Do not lock memory"
+msgstr "Speicherzugriff nicht sperren"
-#: gtk2_ardour/editor_mouse.cc:2334
-#: gtk2_ardour/editor_mouse.cc:2366
-#: gtk2_ardour/editor_tempodisplay.cc:505
-msgid "programming error: meter marker canvas item has no marker object pointer!"
-msgstr "pProgrammierfehler: meter marker canvas item has no marker object pointer!"
+#: gtk2_ardour/engine_dialog.cc:51
+msgid "Unlock memory"
+msgstr "Speicherzugriff öffnen"
-#: gtk2_ardour/editor_mouse.cc:2434
-msgid "copy meter mark"
-msgstr "Taktmarker kopieren"
+#: gtk2_ardour/engine_dialog.cc:52
+msgid "No zombies"
+msgstr "Keine Zombies (Soft Mode)"
-#: gtk2_ardour/editor_mouse.cc:2445
-msgid "move meter mark"
-msgstr "Taktwechsel bewegen"
+#: gtk2_ardour/engine_dialog.cc:53
+msgid "Provide monitor ports"
+msgstr "Monitor-Ports erstellen"
-#: gtk2_ardour/editor_mouse.cc:2461
-#: gtk2_ardour/editor_mouse.cc:2495
-#: gtk2_ardour/editor_tempodisplay.cc:373
-#: gtk2_ardour/editor_tempodisplay.cc:454
-#: gtk2_ardour/editor_tempodisplay.cc:473
-msgid "programming error: tempo marker canvas item has no marker object pointer!"
-msgstr "Programmierfehler: tempo marker canvas item has no marker object pointer!"
+#: gtk2_ardour/engine_dialog.cc:54
+msgid "Force 16 bit"
+msgstr "Erzwinge 16 Bit"
-#: gtk2_ardour/editor_mouse.cc:2466
-#: gtk2_ardour/editor_mouse.cc:2500
-#: gtk2_ardour/editor_tempodisplay.cc:378
-#: gtk2_ardour/editor_tempodisplay.cc:459
-msgid "programming error: marker for tempo is not a tempo marker!"
-msgstr "Programmierfehler: marker for tempo is not a tempo marker!"
+#: gtk2_ardour/engine_dialog.cc:55
+msgid "H/W monitoring"
+msgstr "Hardware Monitoring"
-#: gtk2_ardour/editor_mouse.cc:2567
-msgid "copy tempo mark"
-msgstr "Tempomarker kopieren"
+#: gtk2_ardour/engine_dialog.cc:56
+msgid "H/W metering"
+msgstr "Hardware-Pegelanzeige"
-#: gtk2_ardour/editor_mouse.cc:2578
-msgid "move tempo mark"
-msgstr "Tempowechsel bewegen"
+#: gtk2_ardour/engine_dialog.cc:57
+msgid "Verbose output"
+msgstr "Ausführliche Statusmeldungen"
-#: gtk2_ardour/editor_mouse.cc:2593
-#: gtk2_ardour/editor_mouse.cc:2612
-#: gtk2_ardour/editor_mouse.cc:2625
-msgid "programming error: control point canvas item has no control point object pointer!"
-msgstr "Programmierfehler: control point canvas item has no control point object pointer!"
+#: gtk2_ardour/engine_dialog.cc:58
+msgid "Start"
+msgstr "Start"
-#: gtk2_ardour/editor_mouse.cc:2761
-msgid "programming error: line canvas item has no line pointer!"
-msgstr "Programmierfehler: line canvas item has no line pointer!"
+#: gtk2_ardour/engine_dialog.cc:77
+msgid "8000Hz"
+msgstr "8000 Hz"
-#: gtk2_ardour/editor_mouse.cc:2900
-msgid "move region(s)"
-msgstr "Region(en) bewegen"
+#: gtk2_ardour/engine_dialog.cc:78
+msgid "22050Hz"
+msgstr "22050 Hz"
-#: gtk2_ardour/editor_mouse.cc:2964
-msgid "Drag region brush"
-msgstr "Region Brush ziehen"
+#: gtk2_ardour/engine_dialog.cc:79
+msgid "44100Hz"
+msgstr "44100 Hz"
-#: gtk2_ardour/editor_mouse.cc:3595
-msgid "fixed time region copy"
-msgstr "Region zeitgleich kopieren"
+#: gtk2_ardour/engine_dialog.cc:80
+msgid "48000Hz"
+msgstr "48000 Hz"
-#: gtk2_ardour/editor_mouse.cc:3597
-msgid "region copy"
-msgstr "Region kopieren"
+#: gtk2_ardour/engine_dialog.cc:81
+msgid "88200Hz"
+msgstr "88200 Hz"
-#: gtk2_ardour/editor_mouse.cc:3601
-msgid "fixed time region drag"
-msgstr "Region zeitgleich verschieben"
+#: gtk2_ardour/engine_dialog.cc:82
+msgid "96000Hz"
+msgstr "96000 Hz"
-#: gtk2_ardour/editor_mouse.cc:3603
-msgid "region drag"
-msgstr "Region verschieben"
+#: gtk2_ardour/engine_dialog.cc:83
+msgid "192000Hz"
+msgstr "192000 Hz"
-#: gtk2_ardour/editor_mouse.cc:4007
-msgid "selection grab"
-msgstr "Auswählen"
+#: gtk2_ardour/engine_dialog.cc:104
+#: gtk2_ardour/engine_dialog.cc:515
+msgid "Shaped"
+msgstr "shaped"
-#: gtk2_ardour/editor_mouse.cc:4157
-msgid "range selection"
-msgstr "Auswahlbereich"
+#: gtk2_ardour/engine_dialog.cc:129
+#: gtk2_ardour/engine_dialog.cc:449
+#: gtk2_ardour/engine_dialog.cc:909
+msgid "Playback/Recording on 1 Device"
+msgstr "Wiedergabe/Aufnahme mit einem Gerät"
-#: gtk2_ardour/editor_mouse.cc:4173
-msgid "trim selection start"
-msgstr "Anfangspunkt der Auswahl abschneiden"
+#: gtk2_ardour/engine_dialog.cc:130
+#: gtk2_ardour/engine_dialog.cc:453
+#: gtk2_ardour/engine_dialog.cc:488
+#: gtk2_ardour/engine_dialog.cc:912
+msgid "Playback/Recording on 2 Devices"
+msgstr "Wiedergabe/Aufnahme mit zwei Geräten"
-#: gtk2_ardour/editor_mouse.cc:4189
-msgid "trim selection end"
-msgstr "Endpunkt der Auswahl abschneiden"
+#: gtk2_ardour/engine_dialog.cc:131
+#: gtk2_ardour/engine_dialog.cc:468
+#: gtk2_ardour/engine_dialog.cc:915
+msgid "Playback only"
+msgstr "Nur Wiedergabe"
-#: gtk2_ardour/editor_mouse.cc:4206
-msgid "move selection"
-msgstr "Auswahl bewegen"
+#: gtk2_ardour/engine_dialog.cc:132
+#: gtk2_ardour/engine_dialog.cc:470
+#: gtk2_ardour/engine_dialog.cc:917
+msgid "Recording only"
+msgstr "Nur Aufnahme"
-#: gtk2_ardour/editor_mouse.cc:4595
-msgid "Start point trim"
-msgstr "Anfangspunkt verändern"
+#: gtk2_ardour/engine_dialog.cc:141
+msgid "Driver"
+msgstr "Treiber"
-#: gtk2_ardour/editor_mouse.cc:4627
-msgid "End point trim"
-msgstr "Endpunkt verändern"
+#: gtk2_ardour/engine_dialog.cc:146
+msgid "Interface"
+msgstr "Gerät / Interface"
-#: gtk2_ardour/editor_mouse.cc:4670
-msgid "trimmed region"
-msgstr "Abgeschnittene Region"
+#: gtk2_ardour/engine_dialog.cc:156
+msgid "Buffer size"
+msgstr "Größe Buffer"
-#: gtk2_ardour/editor_mouse.cc:4817
-msgid "new range marker"
-msgstr "Neuer Bereich"
+#: gtk2_ardour/engine_dialog.cc:162
+msgid "Number of buffers"
+msgstr "Anzahl Buffer"
-#: gtk2_ardour/editor_mouse.cc:5065
-msgid "rubberband selection"
-msgstr "Bereichsauswahl"
+#: gtk2_ardour/engine_dialog.cc:169
+msgid "Approximate latency"
+msgstr "Latenz (ca.)"
-#: gtk2_ardour/editor_mouse.cc:5095
-msgid "Name for region:"
-msgstr "Name für Region:"
+#: gtk2_ardour/engine_dialog.cc:183
+msgid "Audio Mode"
+msgstr "Audio-Modus"
-#: gtk2_ardour/editor_mouse.cc:5168
-msgid "timestretch"
-msgstr "Time-Stretch"
+#: gtk2_ardour/engine_dialog.cc:222
+msgid "Realtime Priority"
+msgstr "Realtime Priorität"
-#: gtk2_ardour/editor_ops.cc:114
-msgid "split"
-msgstr "Teile"
+#: gtk2_ardour/engine_dialog.cc:251
+#: gtk2_ardour/engine_dialog.cc:375
+msgid "Ignore"
+msgstr "ignorieren"
-#: gtk2_ardour/editor_ops.cc:180
-msgid "remove region"
-msgstr "Region(en) löschen"
+#: gtk2_ardour/engine_dialog.cc:259
+msgid "Client timeout"
+msgstr "Client Timeout"
+
+#: gtk2_ardour/engine_dialog.cc:265
+msgid "Number of ports"
+msgstr "Anzahl Ports"
-#: gtk2_ardour/editor_ops.cc:200
+#: gtk2_ardour/engine_dialog.cc:272
+msgid "Dither"
+msgstr "Dithering"
+
+#: gtk2_ardour/engine_dialog.cc:282
+msgid "No JACK server found anywhere on this system. Please install JACK and restart"
+msgstr "Es wurde kein JACK Server auf diesem System gefunden. Bitte installieren Sie JACK und starten Sie Ardour neu."
+
+#: gtk2_ardour/engine_dialog.cc:290
+msgid "Server:"
+msgstr "Server:"
+
+#: gtk2_ardour/engine_dialog.cc:303
+msgid "Input device"
+msgstr "Eingangsgerät"
+
+#: gtk2_ardour/engine_dialog.cc:308
+msgid "Output device"
+msgstr "Ausgabegerät"
+
+#: gtk2_ardour/engine_dialog.cc:314
+msgid "Input channels"
+msgstr "Eingangskanäle"
+
+#: gtk2_ardour/engine_dialog.cc:319
+msgid "Output channels"
+msgstr "Ausgangskanäle"
+
+#: gtk2_ardour/engine_dialog.cc:324
+msgid "Hardware input latency (samples)"
+msgstr "Hardware Eingangslatenz (Samples)"
+
+#: gtk2_ardour/engine_dialog.cc:329
+msgid "Hardware output latency (samples)"
+msgstr "Hardware Ausgangslatenz (Samples)"
+
+#: gtk2_ardour/engine_dialog.cc:342
+msgid "Device"
+msgstr "Gerät"
+
+#: gtk2_ardour/engine_dialog.cc:344
+msgid "Advanced"
+msgstr "Erweitert"
+
+#: gtk2_ardour/engine_dialog.cc:579
+msgid "cannot open JACK rc file %1 to store parameters"
+msgstr "kann die JACK rc-Datei %1 nicht öffnen, um die Parameter zu sichern"
+
+#: gtk2_ardour/engine_dialog.cc:720
+#, fuzzy
msgid ""
-" This is destructive, will possibly delete audio files\n"
-"It cannot be undone\n"
-"Do you really want to destroy %1 ?"
-msgstr ""
-" Diese Aktion ist destruktiv und löscht möglicherweise Audiodateien\n"
-"Dies kann nicht rückgängig gemacht werden\n"
-"Wollen Sie %1 wirklich löschen ?"
+"You do not have any audio devices capable of\n"
+"simultaneous playback and recording.\n"
+"\n"
+"Please use Applications -> Utilities -> Audio MIDI Setup\n"
+"to create an \"aggregrate\" device, or install a suitable\n"
+"audio interface.\n"
+"\n"
+"Please send email to Apple and ask them why new Macs\n"
+"have no duplex audio device.\n"
+"\n"
+"Alternatively, if you really want just playback\n"
+"or recording but not both, start JACK before running\n"
+"Ardour and choose the relevant device then."
+msgstr " "
-#: gtk2_ardour/editor_ops.cc:204
-msgid "these regions"
-msgstr "diese Region"
+#: gtk2_ardour/engine_dialog.cc:733
+msgid "No suitable audio devices"
+msgstr "Keine passenden Audiogeräte."
-#: gtk2_ardour/editor_ops.cc:204
-msgid "this region"
-msgstr "diese Region"
+#: gtk2_ardour/engine_dialog.cc:845
+msgid "No devices found for driver \"%1\""
+msgstr "Keine Treiber für das Gerät \"%1\" gefunden."
-#: gtk2_ardour/editor_ops.cc:209
-msgid "Yes, destroy them."
-msgstr "Ja, entfernen."
+#: gtk2_ardour/engine_dialog.cc:950
+msgid "JACK appears to be missing from the Ardour bundle"
+msgstr "JACK scheint im Ardour-Paket zu fehlen."
-#: gtk2_ardour/editor_ops.cc:211
-#: gtk2_ardour/editor_ops.cc:3955
-msgid "Yes, destroy it."
-msgstr "Ja, entfernen."
+#: gtk2_ardour/engine_dialog.cc:1016
+msgid "You need to choose an audio device first."
+msgstr "Sie müssen zuerst ein Audiogerät auswählen."
+
+#: gtk2_ardour/engine_dialog.cc:1032
+msgid "Audio device \"%1\" not known on this computer."
+msgstr "Audiogerät %1 scheint auf diesem Computer nicht vorhanden zu sein."
+
+#: gtk2_ardour/engine_dialog.cc:1180
+msgid "AudioSetup value for %1 is missing data"
+msgstr "Es fehlen Daten zum AudioSetup-Wert von %1"
-#: gtk2_ardour/editor_ops.cc:297
-#: gtk2_ardour/editor_ops.cc:325
+#: gtk2_ardour/engine_dialog.cc:1260
+msgid "configuration files contain a JACK server path that doesn't exist (%1)"
+msgstr "die Konfiguration enthält einen JACK-Serverpfad, der nicht existiert (%1)"
+
+#: gtk2_ardour/editor_keyboard.cc:82
+msgid "mute region"
+msgstr "Region stummschalten"
+
+#: gtk2_ardour/editor_ops.cc:127
+msgid "split"
+msgstr "Teile"
+
+#: gtk2_ardour/editor_ops.cc:194
+#: gtk2_ardour/editor_ops.cc:217
+msgid "remove region"
+msgstr "Region(en) löschen"
+
+#: gtk2_ardour/editor_ops.cc:315
+#: gtk2_ardour/editor_ops.cc:343
msgid "extend selection"
msgstr "Auswahl erweitern"
-#: gtk2_ardour/editor_ops.cc:341
+#: gtk2_ardour/editor_ops.cc:384
msgid "nudge regions forward"
msgstr "Regionen Schritt vorwärts"
-#: gtk2_ardour/editor_ops.cc:368
-#: gtk2_ardour/editor_ops.cc:445
+#: gtk2_ardour/editor_ops.cc:408
+#: gtk2_ardour/editor_ops.cc:493
msgid "nudge location forward"
msgstr "Position Schritt vorwärts"
-#: gtk2_ardour/editor_ops.cc:414
+#: gtk2_ardour/editor_ops.cc:465
msgid "nudge regions backward"
msgstr "Regionen Schritt nach hinten"
-#: gtk2_ardour/editor_ops.cc:497
-#: gtk2_ardour/editor_ops.cc:524
+#: gtk2_ardour/editor_ops.cc:558
+#: gtk2_ardour/editor_ops.cc:588
msgid "nudge forward"
msgstr "Schritt vorwärts"
-#: gtk2_ardour/editor_ops.cc:591
+#: gtk2_ardour/editor_ops.cc:655
msgid "build_region_boundary_cache called with snap_type = %1"
-msgstr ""
+msgstr "build_region_boundary_cache wurde mit snap_type = %1 aufgerufen"
+
+#: gtk2_ardour/editor_ops.cc:1919
+#: gtk2_ardour/editor_markers.cc:1076
+msgid "New Name:"
+msgstr "Neuer Name: "
-#: gtk2_ardour/editor_ops.cc:1634
-#: gtk2_ardour/editor_ops.cc:4709
-msgid "cannot set loop: no region selected"
-msgstr "Kann keine Schleife erstellen: keine Region ausgewählt"
+#: gtk2_ardour/editor_ops.cc:1922
+msgid "Name New Location Marker"
+msgstr "Marker benennen"
-#: gtk2_ardour/editor_ops.cc:1957
+#: gtk2_ardour/editor_ops.cc:2140
msgid "clear markers"
msgstr "Marker zurücksetzen"
-#: gtk2_ardour/editor_ops.cc:1970
+#: gtk2_ardour/editor_ops.cc:2153
msgid "clear ranges"
msgstr "Bereiche zurücksetzen"
-#: gtk2_ardour/editor_ops.cc:1990
+#: gtk2_ardour/editor_ops.cc:2173
msgid "clear locations"
msgstr "Positionen zurücksetzen"
-#: gtk2_ardour/editor_ops.cc:2063
+#: gtk2_ardour/editor_ops.cc:2246
msgid "insert dragged region"
msgstr "Region ziehen"
-#: gtk2_ardour/editor_ops.cc:2110
+#: gtk2_ardour/editor_ops.cc:2293
msgid "insert region"
msgstr "Region einfügen"
-#: gtk2_ardour/editor_ops.cc:2321
+#: gtk2_ardour/editor_ops.cc:2517
msgid "Rename Region"
msgstr "Region umbenennen"
-#: gtk2_ardour/editor_ops.cc:2325
+#: gtk2_ardour/editor_ops.cc:2521
msgid "New name:"
msgstr "Neuer Name: "
-#: gtk2_ardour/editor_ops.cc:2624
+#: gtk2_ardour/editor_ops.cc:2859
msgid "separate"
msgstr "Teilen"
-#: gtk2_ardour/editor_ops.cc:2759
+#: gtk2_ardour/editor_ops.cc:3007
msgid "trim to selection"
msgstr "Auf Auswahl kürzen"
-#: gtk2_ardour/editor_ops.cc:2804
+#: gtk2_ardour/editor_ops.cc:3055
msgid "region fill"
msgstr "Region füllen"
-#: gtk2_ardour/editor_ops.cc:2868
+#: gtk2_ardour/editor_ops.cc:3119
msgid "fill selection"
msgstr "Auswahl füllen"
-#: gtk2_ardour/editor_ops.cc:2906
+#: gtk2_ardour/editor_ops.cc:3158
msgid "set sync point"
msgstr "Einrastpunkt definieren"
-#: gtk2_ardour/editor_ops.cc:2926
+#: gtk2_ardour/editor_ops.cc:3184
msgid "remove sync"
msgstr "Einrastpunkt entfernen"
-#: gtk2_ardour/editor_ops.cc:2941
+#: gtk2_ardour/editor_ops.cc:3206
msgid "naturalize"
msgstr "zur Ursprungsposition setzen"
-#: gtk2_ardour/editor_ops.cc:3026
+#: gtk2_ardour/editor_ops.cc:3306
msgid "align selection (relative)"
msgstr "Auswahl relativ ausrichten"
-#: gtk2_ardour/editor_ops.cc:3055
+#: gtk2_ardour/editor_ops.cc:3346
msgid "align selection"
msgstr "Auswahl ausrichten"
-#: gtk2_ardour/editor_ops.cc:3067
+#: gtk2_ardour/editor_ops.cc:3358
msgid "align region"
msgstr "Region ausrichten"
-#: gtk2_ardour/editor_ops.cc:3104
+#: gtk2_ardour/editor_ops.cc:3395
msgid "trim to loop"
msgstr "Auf Schleife kürzen"
-#: gtk2_ardour/editor_ops.cc:3114
+#: gtk2_ardour/editor_ops.cc:3405
msgid "trim to punch"
msgstr "Auf Punch-Bereich kürzen"
-#: gtk2_ardour/editor_ops.cc:3174
+#: gtk2_ardour/editor_ops.cc:3468
msgid "trim region start to edit point"
msgstr "Regionanfang bis Arbeitspunkt abschneiden"
-#: gtk2_ardour/editor_ops.cc:3216
+#: gtk2_ardour/editor_ops.cc:3513
msgid "trim region end to edit point"
msgstr "Regionende bis Arbeitspunkt abschneiden"
-#: gtk2_ardour/editor_ops.cc:3303
+#: gtk2_ardour/editor_ops.cc:3600
msgid "Cancel Freeze"
msgstr "Einfrieren abbrechen"
-#: gtk2_ardour/editor_ops.cc:3346
+#: gtk2_ardour/editor_ops.cc:3643
msgid "bounce range"
msgstr "Bereich Bouncen"
-#: gtk2_ardour/editor_ops.cc:3398
+#: gtk2_ardour/editor_ops.cc:3703
msgid "cut"
msgstr "Ausschneiden"
-#: gtk2_ardour/editor_ops.cc:3401
+#: gtk2_ardour/editor_ops.cc:3706
msgid "copy"
msgstr "Kopieren"
-#: gtk2_ardour/editor_ops.cc:3429
+#: gtk2_ardour/editor_ops.cc:3756
msgid " objects"
msgstr "Objekte"
-#: gtk2_ardour/editor_ops.cc:3469
+#: gtk2_ardour/editor_ops.cc:3792
msgid " range"
msgstr "Bereich"
-#: gtk2_ardour/editor_ops.cc:3698
+#: gtk2_ardour/editor_ops.cc:4031
msgid "paste"
msgstr "Einfügen"
-#: gtk2_ardour/editor_ops.cc:3747
+#: gtk2_ardour/editor_ops.cc:4080
msgid "paste chunk"
msgstr "Abschnitt einfügen"
-#: gtk2_ardour/editor_ops.cc:3791
+#: gtk2_ardour/editor_ops.cc:4124
msgid "duplicate region"
msgstr "Region duplizieren"
-#: gtk2_ardour/editor_ops.cc:3839
+#: gtk2_ardour/editor_ops.cc:4172
msgid "duplicate selection"
msgstr "Auswahl duplizieren"
-#: gtk2_ardour/editor_ops.cc:3893
+#: gtk2_ardour/editor_ops.cc:4226
msgid "clear playlist"
msgstr "Wiedergabeliste zurücksetzen"
-#: gtk2_ardour/editor_ops.cc:3923
+#: gtk2_ardour/editor_ops.cc:4256
msgid "nudge track"
msgstr "Spur verschieben"
-#: gtk2_ardour/editor_ops.cc:3951
+#: gtk2_ardour/editor_ops.cc:4284
msgid ""
"Do you really want to destroy the last capture?\n"
"(This is destructive and cannot be undone)"
@@ -4687,1454 +5884,1208 @@ msgstr ""
"Wollen Sie wirklich die letzte Aufnahme rückgängig machen?\n"
"(Dies kann nicht rückgängig gemacht werden!)"
-#: gtk2_ardour/editor_ops.cc:3979
+#: gtk2_ardour/editor_ops.cc:4288
+msgid "Yes, destroy it."
+msgstr "Ja, entfernen."
+
+#: gtk2_ardour/editor_ops.cc:4316
msgid "normalize"
msgstr "Normalisieren"
-#: gtk2_ardour/editor_ops.cc:4032
+#: gtk2_ardour/editor_ops.cc:4425
msgid "reverse regions"
msgstr "Regionen umkehren"
-#: gtk2_ardour/editor_ops.cc:4145
+#: gtk2_ardour/editor_ops.cc:4545
msgid "reset region gain"
msgstr "Lautstärkekurve zurücksetzen"
-#: gtk2_ardour/editor_ops.cc:4258
+#: gtk2_ardour/editor_ops.cc:4683
msgid "set fade in length"
msgstr "Ändere Fade-In Länge"
-#: gtk2_ardour/editor_ops.cc:4265
+#: gtk2_ardour/editor_ops.cc:4690
msgid "set fade out length"
msgstr "Ändere Fade-Out Länge"
-#: gtk2_ardour/editor_ops.cc:4305
+#: gtk2_ardour/editor_ops.cc:4738
msgid "toggle fade in active"
msgstr "Fade-In aktivieren"
-#: gtk2_ardour/editor_ops.cc:4305
+#: gtk2_ardour/editor_ops.cc:4738
msgid "toggle fade out active"
msgstr "Fade-Out aktivieren"
-#: gtk2_ardour/editor_ops.cc:4343
+#: gtk2_ardour/editor_ops.cc:4788
msgid "set fade in shape"
msgstr "Fade-In Kurve bearbeiten"
-#: gtk2_ardour/editor_ops.cc:4367
+#: gtk2_ardour/editor_ops.cc:4821
msgid "set fade out shape"
msgstr "Fade-Out Kurve ändern"
-#: gtk2_ardour/editor_ops.cc:4391
+#: gtk2_ardour/editor_ops.cc:4853
msgid "set fade in active"
msgstr "Fade-In aktivieren"
-#: gtk2_ardour/editor_ops.cc:4415
+#: gtk2_ardour/editor_ops.cc:4887
msgid "set fade out active"
msgstr "Fade-Out aktivieren"
-#: gtk2_ardour/editor_ops.cc:4589
+#: gtk2_ardour/editor_ops.cc:5097
msgid "trim front"
msgstr "vorne abschneiden"
-#: gtk2_ardour/editor_ops.cc:4589
+#: gtk2_ardour/editor_ops.cc:5097
msgid "trim back"
msgstr "hinten Abschneiden"
-#: gtk2_ardour/editor_ops.cc:4670
+#: gtk2_ardour/editor_ops.cc:5179
msgid "set loop range from selection"
msgstr "Schleife aus Auswahl erstellen"
-#: gtk2_ardour/editor_ops.cc:4692
+#: gtk2_ardour/editor_ops.cc:5201
msgid "set loop range from edit range"
msgstr "Schleife aus Editierbereich erstellen"
-#: gtk2_ardour/editor_ops.cc:4722
+#: gtk2_ardour/editor_ops.cc:5232
msgid "set loop range from region"
msgstr "Schleife aus Region erstellen"
-#: gtk2_ardour/editor_ops.cc:4740
+#: gtk2_ardour/editor_ops.cc:5250
msgid "set punch range from selection"
msgstr "Punch-Bereich aus Auswahl erstellen"
-#: gtk2_ardour/editor_ops.cc:4757
+#: gtk2_ardour/editor_ops.cc:5267
msgid "set punch range from edit range"
msgstr "Punch-Bereich aus Editierbereich erstellen"
-#: gtk2_ardour/editor_region_list.cc:109
-#: gtk2_ardour/editor_region_list.cc:113
-#: gtk2_ardour/editor_region_list.cc:116
-#: gtk2_ardour/location_ui.cc:57
-msgid "Hidden"
-msgstr "Versteckt"
+#: gtk2_ardour/editor_ops.cc:5293
+msgid "set punch range from region"
+msgstr "Punch-Bereich aus Region erstellen"
-#: gtk2_ardour/editor_region_list.cc:159
-msgid " (MISSING)"
-msgstr "(FEHLT)"
-
-#: gtk2_ardour/editor_route_list.cc:77
-#: gtk2_ardour/editor_route_list.cc:78
-#: gtk2_ardour/editor_route_list.cc:264
-msgid "editor"
-msgstr "Editor"
-
-#: gtk2_ardour/editor_route_list.cc:338
-#: gtk2_ardour/mixer_ui.cc:811
-msgid "Show All"
-msgstr "Alles zeigen"
-
-#: gtk2_ardour/editor_route_list.cc:339
-#: gtk2_ardour/mixer_ui.cc:812
-msgid "Hide All"
-msgstr "Alle verbergen"
-
-#: gtk2_ardour/editor_route_list.cc:340
-#: gtk2_ardour/mixer_ui.cc:813
-msgid "Show All Audio Tracks"
-msgstr "Zeige alle Audio-Spuren"
-
-#: gtk2_ardour/editor_route_list.cc:341
-#: gtk2_ardour/mixer_ui.cc:814
-msgid "Hide All Audio Tracks"
-msgstr "Verberge alle Audio-Spuren"
-
-#: gtk2_ardour/editor_route_list.cc:342
-#: gtk2_ardour/mixer_ui.cc:815
-msgid "Show All Audio Busses"
-msgstr "Zeige alle Audio-Busse"
-
-#: gtk2_ardour/editor_route_list.cc:343
-#: gtk2_ardour/mixer_ui.cc:816
-msgid "Hide All Audio Busses"
-msgstr "Verberge alle Audio-Busse"
-
-#: gtk2_ardour/editor_rulers.cc:366
-msgid "New location marker"
-msgstr "Neuer Positionsmarker"
-
-#: gtk2_ardour/editor_rulers.cc:367
-msgid "Clear all locations"
-msgstr "Alle Positionsmarker entfernen"
-
-#: gtk2_ardour/editor_rulers.cc:368
-msgid "Unhide locations"
-msgstr "Positionen anzeigen"
+#: gtk2_ardour/editor_ops.cc:5377
+msgid "Add new marker"
+msgstr "Marker hinzufügen"
-#: gtk2_ardour/editor_rulers.cc:373
-msgid "Clear all ranges"
-msgstr "Alle Bereiche entfernen"
+#: gtk2_ardour/editor_ops.cc:5378
+msgid "Set global tempo"
+msgstr "Globales tempo setzen"
-#: gtk2_ardour/editor_rulers.cc:374
-msgid "Unhide ranges"
-msgstr "Bereiche anzeigen"
+#: gtk2_ardour/editor_ops.cc:5379
+msgid "Do you want to set the global tempo or add new tempo marker?"
+msgstr "Möchten Sie das globale Tempo ändern oder einen neuen Tempo-Marker setzen?"
-#: gtk2_ardour/editor_rulers.cc:384
-msgid "New CD track marker"
-msgstr "Neuer CD-Track Marker"
+#: gtk2_ardour/editor_ops.cc:5403
+msgid "set tempo from region"
+msgstr "Tempo anhand von Region setzen"
-#: gtk2_ardour/editor_rulers.cc:389
-msgid "New Tempo"
-msgstr "Tempowechsel einfügen..."
+#: gtk2_ardour/editor_ops.cc:5437
+msgid "split regions"
+msgstr "Region teilen (Split)"
-#: gtk2_ardour/editor_rulers.cc:390
-msgid "Clear tempo"
-msgstr "Tempo zurücksetzen"
+#: gtk2_ardour/editor_ops.cc:5482
+msgid ""
+"You are about to split\n"
+"%1\n"
+"into %2 pieces.\n"
+"This could take a long time."
+msgstr ""
+"Sie versuchen %1 in %2 Teile zu teilen.\n"
+"Das könnte sehr lange dauern."
-#: gtk2_ardour/editor_rulers.cc:395
-msgid "New Meter"
-msgstr "Taktwechsel einfügen..."
+#: gtk2_ardour/editor_ops.cc:5489
+msgid "Call for the Ferret!"
+msgstr "Call for the Ferret!"
-#: gtk2_ardour/editor_rulers.cc:396
-msgid "Clear meter"
-msgstr "Taktart zurücksetzen"
+#: gtk2_ardour/editor_ops.cc:5490
+msgid ""
+"Press OK to continue with this split operation\n"
+"or ask the Ferret dialog to tune the analysis"
+msgstr ""
+"Drücken Sie OK um mit der aufteiloperation (Split) fortzufahren\n"
+"oder versuchen sie im Ferret-Fenster die Analyse zu verbessern."
-#: gtk2_ardour/editor_rulers.cc:404
-msgid "Min:Secs"
-msgstr "Min:Sek"
+#: gtk2_ardour/editor_ops.cc:5492
+msgid "Press OK to continue with this split operation"
+msgstr "Drücken Sie OK um mit der aufteiloperation (Split) fortzufahren"
-#: gtk2_ardour/editor_selection.cc:740
-msgid "set selected regions"
-msgstr "Regionen auswählen"
+#: gtk2_ardour/editor_ops.cc:5495
+msgid "Excessive split?"
+msgstr "Übermäßige Aufteilung?"
-#: gtk2_ardour/editor_selection.cc:850
-msgid "select all"
-msgstr "Alle Regionen auswählen"
+#: gtk2_ardour/editor_ops.cc:5798
+#: gtk2_ardour/ardour_ui.cc:1227
+msgid "tracks"
+msgstr "Spuren"
-#: gtk2_ardour/editor_selection.cc:939
-msgid "select all within"
-msgstr "Alle im Bereich auswählen"
+#: gtk2_ardour/editor_ops.cc:5800
+msgid "track"
+msgstr "Spur"
-#: gtk2_ardour/editor_selection.cc:970
-msgid "set selection from region"
-msgstr "Auswahlbereich von Region erstellen"
+#: gtk2_ardour/editor_ops.cc:5804
+#: gtk2_ardour/ardour_ui.cc:1227
+msgid "busses"
+msgstr "Audio-Bussen"
-#: gtk2_ardour/editor_selection.cc:1003
-msgid "set selection from range"
-msgstr "Auswahlbereich von Bereich erstellen"
+#: gtk2_ardour/editor_ops.cc:5806
+msgid "bus"
+msgstr "Bus"
-#: gtk2_ardour/editor_selection.cc:1033
-msgid "select all from range"
-msgstr "Alle im Bereich auswählen"
+#: gtk2_ardour/editor_ops.cc:5811
+msgid ""
+"Do you really want to remove %1 %2 and %3 %4?\n"
+"(You may also lose the playlists associated with the %2)\n"
+"\n"
+"This action cannot be undone!"
+msgstr ""
+"Wollen Sie wirklich die Spur \"%1\" löschen?\n"
+"\n"
+"Sie werden auch die Wiedergabeliste, die diese Spur benutzt verlieren.\n"
+"(Dies kann nicht rückgängig gemacht werden!)"
-#: gtk2_ardour/editor_selection.cc:1055
-msgid "select all from punch"
-msgstr "Alle im Punch-Bereich auswählen"
+#: gtk2_ardour/editor_ops.cc:5816
+msgid ""
+"Do you really want to remove %1 %2?\n"
+"(You may also lose the playlists associated with the %2)\n"
+"\n"
+"This action cannot be undone!"
+msgstr ""
+"Wollen Sie wirklich die Spur \"%1\" löschen?\n"
+"\n"
+"Sie werden auch die von dieser Spur benutzten Wiedergabelisten verlieren.\n"
+"(Dies kann nicht rückgängig gemacht werden!)"
-#: gtk2_ardour/editor_selection.cc:1077
-msgid "select all from loop"
-msgstr "Alle im Loop-Bereich auswählen"
+#: gtk2_ardour/editor_ops.cc:5822
+msgid "Do you really want to remove %1 %2?"
+msgstr ""
+"Wollen Sie den Bus \"%1\" wirklich löschen?\n"
+"(Dies kann nicht rückgängig gemacht werden!)"
-#: gtk2_ardour/editor_selection.cc:1091
-msgid "select all after cursor"
-msgstr "Alle nach Positionszeiger auswählen"
+#: gtk2_ardour/editor_ops.cc:5828
+msgid "Yes, remove them."
+msgstr "Ja, entfernen."
-#: gtk2_ardour/editor_selection.cc:1096
-msgid "select all before cursor"
-msgstr "Alle vor Positionszeiger auswählen"
+#: gtk2_ardour/editor_ops.cc:5873
+msgid "Stay in position"
+msgstr "Unverändert lassen"
-#: gtk2_ardour/editor_selection.cc:1122
-msgid "select all after edit"
-msgstr "Alles nach Arbeitspunkt auswählen"
+#: gtk2_ardour/editor_ops.cc:5874
+msgid "Move"
+msgstr "Verschieben"
-#: gtk2_ardour/editor_selection.cc:1127
-msgid "select all before edit"
-msgstr "Alles vor Arbeitspunkt auswählen"
+#: gtk2_ardour/editor_ops.cc:5875
+msgid "Split & Later Section Moves"
+msgstr "Teilen & hinteren Teil verschieben"
-#: gtk2_ardour/editor_selection.cc:1237
-msgid "No edit range defined"
-msgstr "Kein Editierbereich definiert"
+#: gtk2_ardour/editor_ops.cc:5876
+msgid "Intersected regions should:"
+msgstr "Regionen am Positionsmarker:"
-#: gtk2_ardour/editor_selection.cc:1243
-msgid ""
-"the edit point is Selected Marker\n"
-"but there is no selected marker."
-msgstr ""
-"der Arbeitspunkt ist der gewählte Positionsmarker,\n"
-"es ist aber kein Positionsmarker ausgewählt."
+#: gtk2_ardour/editor_ops.cc:5877
+msgid "Move Glued Regions"
+msgstr "Taktgebundene Regionen mitbewegen"
-#: gtk2_ardour/editor_selection_list.cc:180
-msgid "Name for Chunk:"
-msgstr "Name für Abschnitt:"
+#: gtk2_ardour/editor_ops.cc:5878
+msgid "Move Markers"
+msgstr "Marker mitbewegen"
-#: gtk2_ardour/editor_selection_list.cc:183
-msgid "Create Chunk"
-msgstr "Abschnitt erzeugen"
+#: gtk2_ardour/editor_ops.cc:5952
+msgid "insert time"
+msgstr "Stille einfügen"
-#: gtk2_ardour/editor_selection_list.cc:183
-msgid "Forget it"
-msgstr "Abbrechen"
+#: gtk2_ardour/editor_ops.cc:6026
+msgid "There are too many selected tracks to fit in the current window"
+msgstr "Es sind zu viele Spuren ausgewählt um in das aktuelle Fenster zu passen"
-#: gtk2_ardour/editor_selection_list.cc:206
-msgid "No selectable material found in the currently selected time range"
-msgstr "Konnte im ausgewählten Bereich kein auswählbares Material finden"
+#: gtk2_ardour/editor_ops.cc:6136
+#, c-format
+msgid "Saved view %u"
+msgstr "Ansicht %u gespeichert"
-#: gtk2_ardour/editor_tempodisplay.cc:293
-#: gtk2_ardour/editor_tempodisplay.cc:335
+#: gtk2_ardour/editor_tempodisplay.cc:213
+#: gtk2_ardour/editor_tempodisplay.cc:256
msgid "add"
msgstr "Hinzufügen"
-#: gtk2_ardour/editor_tempodisplay.cc:316
+#: gtk2_ardour/editor_tempodisplay.cc:237
msgid "add tempo mark"
msgstr "Tempowechsel einfügen"
-#: gtk2_ardour/editor_tempodisplay.cc:357
+#: gtk2_ardour/editor_tempodisplay.cc:280
msgid "add meter mark"
msgstr "Taktwechsel einfügen"
-#: gtk2_ardour/editor_tempodisplay.cc:390
-#: gtk2_ardour/editor_tempodisplay.cc:419
+#: gtk2_ardour/editor_tempodisplay.cc:313
+#: gtk2_ardour/editor_tempodisplay.cc:342
msgid "done"
msgstr "Fertig"
-#: gtk2_ardour/editor_tempodisplay.cc:408
-#: gtk2_ardour/editor_tempodisplay.cc:438
+#: gtk2_ardour/editor_tempodisplay.cc:331
+#: gtk2_ardour/editor_tempodisplay.cc:363
msgid "replace tempo mark"
msgstr "Tempowechsel ersetzen"
-#: gtk2_ardour/editor_tempodisplay.cc:478
-#: gtk2_ardour/editor_tempodisplay.cc:510
+#: gtk2_ardour/editor_tempodisplay.cc:405
+#: gtk2_ardour/editor_tempodisplay.cc:437
msgid "programming error: marker for meter is not a meter marker!"
msgstr "Programmierfehler: marker for meter is not a meter marker!"
-#: gtk2_ardour/editor_tempodisplay.cc:488
-#: gtk2_ardour/editor_tempodisplay.cc:522
+#: gtk2_ardour/editor_tempodisplay.cc:415
+#: gtk2_ardour/editor_tempodisplay.cc:449
msgid "remove tempo mark"
msgstr "Tempowechsel entfernen"
-#: gtk2_ardour/editor_timefx.cc:63
-msgid "Quick but Ugly"
-msgstr "Quick but Ugly"
-
-#: gtk2_ardour/editor_timefx.cc:64
-msgid "Skip Anti-aliasing"
-msgstr "Ãœberspringe Anti-Aliasing"
-
-#: gtk2_ardour/editor_timefx.cc:68
-msgid "TimeFXDialog"
-msgstr ""
-
-#: gtk2_ardour/editor_timefx.cc:72
-msgid "Pitch Shift"
-msgstr "Pitch-Shift"
-
-#: gtk2_ardour/editor_timefx.cc:74
-msgid "Time Stretch"
-msgstr "Time-Stretch"
-
-#: gtk2_ardour/editor_timefx.cc:92
-msgid "Octaves"
-msgstr "Oktaven"
-
-#: gtk2_ardour/editor_timefx.cc:96
-msgid "Semitones (12TET)"
-msgstr "Halbtöne"
-
-#: gtk2_ardour/editor_timefx.cc:100
-msgid "Cents"
-msgstr "Cents"
-
-#: gtk2_ardour/editor_timefx.cc:106
-msgid "Shift"
-msgstr "Shift"
-
-#: gtk2_ardour/editor_timefx.cc:116
-msgid "Stretch/Shrink"
-msgstr "Stretch/Shrink"
-
-#: gtk2_ardour/editor_timefx.cc:119
-#: gtk2_ardour/editor_timefx.cc:120
-msgid "TimeFXButton"
-msgstr ""
-
-#: gtk2_ardour/editor_timefx.cc:121
-msgid "TimeFXProgress"
-msgstr ""
-
-#: gtk2_ardour/editor_timefx.cc:234
-#, fuzzy
-msgid "timefx cannot be started - thread creation error"
-msgstr "Time-Stretch konnte nicht gestartet werden - Fehler beim erstellen des Threads"
-
-#: gtk2_ardour/editor_timefx.cc:315
-msgid "pitch shift"
-msgstr "pitch-shift"
-
-#: gtk2_ardour/editor_timefx.cc:315
-msgid "time stretch"
-msgstr "Time-Stretch"
-
-#: gtk2_ardour/engine_dialog.cc:46
-msgid "Realtime"
-msgstr "Realtime"
-
-#: gtk2_ardour/engine_dialog.cc:47
-msgid "Do not lock memory"
-msgstr "Speicherzugriff nicht sperren"
-
-#: gtk2_ardour/engine_dialog.cc:48
-msgid "Unlock memory"
-msgstr "Speicherzugriff öffnen"
-
-#: gtk2_ardour/engine_dialog.cc:49
-msgid "No zombies"
-msgstr "Keine Zombies (Soft Mode)"
-
-#: gtk2_ardour/engine_dialog.cc:50
-msgid "Provide monitor ports"
-msgstr "Monitor-Ports erstellen"
-
-#: gtk2_ardour/engine_dialog.cc:51
-msgid "Force 16 bit"
-msgstr "Erzwinge 16 Bit"
-
-#: gtk2_ardour/engine_dialog.cc:52
-msgid "H/W monitoring"
-msgstr "Hardware Monitoring"
-
-#: gtk2_ardour/engine_dialog.cc:53
-msgid "H/W metering"
-msgstr "Hardware-Pegelanzeige"
-
-#: gtk2_ardour/engine_dialog.cc:54
-msgid "Verbose output"
-msgstr "Ausführliche Statusmeldungen"
-
-#: gtk2_ardour/engine_dialog.cc:55
-msgid "Start"
-msgstr "Start"
-
-#: gtk2_ardour/engine_dialog.cc:74
-msgid "8000Hz"
-msgstr "8000 Hz"
-
-#: gtk2_ardour/engine_dialog.cc:75
-msgid "22050Hz"
-msgstr "22050 Hz"
-
-#: gtk2_ardour/engine_dialog.cc:76
-msgid "44100Hz"
-msgstr "44100 Hz"
-
-#: gtk2_ardour/engine_dialog.cc:77
-msgid "48000Hz"
-msgstr "48000 Hz"
-
-#: gtk2_ardour/engine_dialog.cc:78
-msgid "88200Hz"
-msgstr "88200 Hz"
-
-#: gtk2_ardour/engine_dialog.cc:79
-msgid "96000Hz"
-msgstr "96000 Hz"
-
-#: gtk2_ardour/engine_dialog.cc:80
-msgid "192000Hz"
-msgstr "192000 Hz"
-
-#: gtk2_ardour/engine_dialog.cc:99
-#: gtk2_ardour/engine_dialog.cc:480
-#: gtk2_ardour/export_dialog.cc:81
-#: gtk2_ardour/export_dialog.cc:1298
-msgid "Triangular"
-msgstr "dreieckig"
+#: gtk2_ardour/editor_region_list.cc:174
+msgid " (MISSING)"
+msgstr "(FEHLT)"
-#: gtk2_ardour/engine_dialog.cc:100
-#: gtk2_ardour/engine_dialog.cc:482
-#: gtk2_ardour/export_dialog.cc:79
-#: gtk2_ardour/export_dialog.cc:1296
-msgid "Rectangular"
-msgstr "rechteckig"
+#: gtk2_ardour/route_params_ui.cc:85
+msgid "Tracks/Buses"
+msgstr "Spuren/Busse"
-#: gtk2_ardour/engine_dialog.cc:101
-#: gtk2_ardour/engine_dialog.cc:484
-msgid "Shaped"
-msgstr "shaped"
+#: gtk2_ardour/route_params_ui.cc:105
+msgid "Pre-fader Redirects"
+msgstr "Pre-Fader Redirects"
-#: gtk2_ardour/engine_dialog.cc:129
-#: gtk2_ardour/engine_dialog.cc:435
-#: gtk2_ardour/engine_dialog.cc:803
-msgid "Playback/Recording on 1 Device"
-msgstr "Wiedergabe/Aufnahme mit einem Gerät"
+#: gtk2_ardour/route_params_ui.cc:106
+msgid "Post-fader Redirects"
+msgstr "Post-Fader Redirects"
-#: gtk2_ardour/engine_dialog.cc:130
-#: gtk2_ardour/engine_dialog.cc:439
-#: gtk2_ardour/engine_dialog.cc:464
-#: gtk2_ardour/engine_dialog.cc:806
-msgid "Playback/Recording on 2 Devices"
-msgstr "Wiedergabe/Aufnahme mit zwei Geräten"
+#: gtk2_ardour/route_params_ui.cc:205
+msgid "route display list item for renamed route not found!"
+msgstr "Konnte Bezeichnung für umbenannten Verbindung nicht in der Liste der Verbindungen finden!"
-#: gtk2_ardour/engine_dialog.cc:131
-#: gtk2_ardour/engine_dialog.cc:446
-#: gtk2_ardour/engine_dialog.cc:809
-msgid "Playback only"
-msgstr "Nur Wiedergabe"
+#: gtk2_ardour/route_params_ui.cc:455
+msgid "NO TRACK"
+msgstr "KEINE SPUR"
-#: gtk2_ardour/engine_dialog.cc:132
-#: gtk2_ardour/engine_dialog.cc:448
-#: gtk2_ardour/engine_dialog.cc:811
-msgid "Recording only"
-msgstr "Nur Aufnahme"
+#: gtk2_ardour/route_params_ui.cc:685
+#: gtk2_ardour/route_params_ui.cc:686
+msgid "No Route Selected"
+msgstr "Keine Route ausgewählt"
-#: gtk2_ardour/engine_dialog.cc:141
-msgid "Driver"
-msgstr "Treiber"
+#: gtk2_ardour/editor_markers.cc:594
+msgid "Locate to here"
+msgstr "Positionszeiger hierhin setzen"
-#: gtk2_ardour/engine_dialog.cc:146
-msgid "Interface"
-msgstr "Gerät / Interface"
+#: gtk2_ardour/editor_markers.cc:595
+msgid "Play from here"
+msgstr "Wiedergabe ab hier"
-#: gtk2_ardour/engine_dialog.cc:151
-#: gtk2_ardour/export_dialog.cc:108
-msgid "Sample Rate"
-msgstr "Samplerate"
+#: gtk2_ardour/editor_markers.cc:596
+msgid "Move Mark to Playhead"
+msgstr "Marker zum Positionszeiger verschieben"
-#: gtk2_ardour/engine_dialog.cc:156
-msgid "Buffer size"
-msgstr "Größe Buffer"
+#: gtk2_ardour/editor_markers.cc:600
+msgid "Create range to next marker"
+msgstr "Bereich bis zum nächsten Marker erstellen"
-#: gtk2_ardour/engine_dialog.cc:162
-msgid "Number of buffers"
-msgstr "Anzahl Buffer"
+#: gtk2_ardour/editor_markers.cc:606
+msgid "Unlock"
+msgstr "Entsperren"
-#: gtk2_ardour/engine_dialog.cc:169
-msgid "Approximate latency"
-msgstr "Latenz (ca.)"
+#: gtk2_ardour/editor_markers.cc:628
+msgid "Play Range"
+msgstr "Bereich wiedergeben"
-#: gtk2_ardour/engine_dialog.cc:183
-msgid "Audio Mode"
-msgstr "Audio-Modus"
+#: gtk2_ardour/editor_markers.cc:629
+msgid "Locate to Range Mark"
+msgstr "Positionszeiger zu Bereichsmarker"
-#: gtk2_ardour/engine_dialog.cc:222
-msgid "Realtime Priority"
-msgstr "Realtime Priorität"
+#: gtk2_ardour/editor_markers.cc:630
+msgid "Play from Range Mark"
+msgstr "Wiedergabe ab Bereichsmarker"
-#: gtk2_ardour/engine_dialog.cc:251
-#: gtk2_ardour/engine_dialog.cc:374
-msgid "Ignore"
-msgstr "ignorieren"
+#: gtk2_ardour/editor_markers.cc:632
+msgid "Loop Range"
+msgstr "Bereich in Schleife wiedergeben"
-#: gtk2_ardour/engine_dialog.cc:259
-msgid "Client timeout"
-msgstr "Client Timeout"
+#: gtk2_ardour/editor_markers.cc:634
+msgid "Set Range Mark from Playhead"
+msgstr "Bereichsmarker beim Positionszeiger erzeugen"
-#: gtk2_ardour/engine_dialog.cc:265
-msgid "Number of ports"
-msgstr "Anzahl Ports"
+#: gtk2_ardour/editor_markers.cc:636
+msgid "Set Range from Range Selection"
+msgstr "Bereichsmarker für Auswahl erzeugen"
-#: gtk2_ardour/engine_dialog.cc:272
-msgid "Dither"
-msgstr "Dithering"
+#: gtk2_ardour/editor_markers.cc:646
+msgid "Hide Range"
+msgstr "Bereich verbergen"
-#: gtk2_ardour/engine_dialog.cc:282
-msgid "No JACK server found anywhere on this system. Please install JACK and restart"
-msgstr "Es wurde kein JACK Server auf diesem System gefunden. Bitte installieren Sie JACK und starten Sie ardour neu."
+#: gtk2_ardour/editor_markers.cc:647
+#: gtk2_ardour/editor_markers.cc:1082
+msgid "Rename Range"
+msgstr "Bereich umbenennen"
-#: gtk2_ardour/engine_dialog.cc:290
-#, fuzzy
-msgid "Server:"
-msgstr "Stereo"
+#: gtk2_ardour/editor_markers.cc:648
+msgid "Remove Range"
+msgstr "Bereich entfernen"
-#: gtk2_ardour/engine_dialog.cc:303
-msgid "Input device"
-msgstr "Eingangsgerät"
+#: gtk2_ardour/editor_markers.cc:653
+msgid "Separate Regions in Range"
+msgstr "Regionen an Bereichsgrenzen teilen"
-#: gtk2_ardour/engine_dialog.cc:308
-msgid "Output device"
-msgstr "Ausgabegerät"
+#: gtk2_ardour/editor_markers.cc:654
+msgid "Select All in Range"
+msgstr "Alles im Bereich auswählen"
-#: gtk2_ardour/engine_dialog.cc:314
-msgid "Input channels"
-msgstr "Eingangskanäle"
+#: gtk2_ardour/editor_markers.cc:656
+msgid "Select Range"
+msgstr "Bereich auswählen"
-#: gtk2_ardour/engine_dialog.cc:319
-msgid "Output channels"
-msgstr "Ausgangskanäle"
+#: gtk2_ardour/editor_markers.cc:682
+msgid "Set Loop Range"
+msgstr "Schleife erstellen"
-#: gtk2_ardour/engine_dialog.cc:324
-msgid "Hardware input latency (samples)"
-msgstr "Hardware Eingangslatenz (Samples)"
+#: gtk2_ardour/editor_markers.cc:683
+msgid "Set Punch Range"
+msgstr "Punch-Bereich erstellen"
-#: gtk2_ardour/engine_dialog.cc:329
-msgid "Hardware output latency (samples)"
-msgstr "Hardware Ausgangslatenz (Samples)"
+#: gtk2_ardour/editor_markers.cc:1080
+msgid "Rename Mark"
+msgstr "Marker umbenennen"
-#: gtk2_ardour/engine_dialog.cc:342
-msgid "Device"
-msgstr "Gerät"
+#: gtk2_ardour/editor_markers.cc:1104
+msgid "rename marker"
+msgstr "Marker umbenennen"
-#: gtk2_ardour/engine_dialog.cc:344
-msgid "Advanced"
-msgstr "Erweitert"
+#: gtk2_ardour/editor_markers.cc:1126
+msgid "set loop range"
+msgstr "Loop-Bereich festlegen"
-#: gtk2_ardour/engine_dialog.cc:537
-msgid "cannot open JACK rc file %1 to store parameters"
-msgstr "kann die JACK rc-Datei %1 nicht öffnen, um die Parameter zu sichern"
+#: gtk2_ardour/editor_markers.cc:1132
+msgid "set punch range"
+msgstr "Punch-Bereich festlegen"
-#: gtk2_ardour/engine_dialog.cc:842
-msgid "JACK appears to be missing from the Ardour bundle"
+#: gtk2_ardour/ardour_ui.cc:115
+msgid ""
+"pre\n"
+"roll"
msgstr ""
+"pre\n"
+"roll"
-#: gtk2_ardour/engine_dialog.cc:1026
-msgid "AudioSetup value for %1 is missing data"
+#: gtk2_ardour/ardour_ui.cc:116
+msgid ""
+"post\n"
+"roll"
msgstr ""
+"post\n"
+"roll"
-#: gtk2_ardour/engine_dialog.cc:1106
-msgid "configuration files contain a JACK server path that doesn't exist (%1)"
-msgstr "die Konfiguration enthält einen JACK-Serverpfad, der nicht existiert (%1)"
-
-#: gtk2_ardour/export_dialog.cc:59
-#: gtk2_ardour/export_dialog.cc:423
-#: gtk2_ardour/export_dialog.cc:1090
-#: gtk2_ardour/export_dialog.cc:1260
-msgid "22.05kHz"
-msgstr "22,05 kHz"
-
-#: gtk2_ardour/export_dialog.cc:60
-#: gtk2_ardour/export_dialog.cc:426
-#: gtk2_ardour/export_dialog.cc:441
-#: gtk2_ardour/export_dialog.cc:1092
-#: gtk2_ardour/export_dialog.cc:1262
-msgid "44.1kHz"
-msgstr "44,1 kHz"
-
-#: gtk2_ardour/export_dialog.cc:61
-#: gtk2_ardour/export_dialog.cc:429
-#: gtk2_ardour/export_dialog.cc:1094
-#: gtk2_ardour/export_dialog.cc:1264
-msgid "48kHz"
-msgstr "4"
-
-#: gtk2_ardour/export_dialog.cc:62
-#: gtk2_ardour/export_dialog.cc:432
-#: gtk2_ardour/export_dialog.cc:1096
-#: gtk2_ardour/export_dialog.cc:1266
-msgid "88.2kHz"
-msgstr "88,2 kHz"
-
-#: gtk2_ardour/export_dialog.cc:63
-#: gtk2_ardour/export_dialog.cc:435
-#: gtk2_ardour/export_dialog.cc:1098
-#: gtk2_ardour/export_dialog.cc:1268
-msgid "96kHz"
-msgstr "96 kHz"
-
-#: gtk2_ardour/export_dialog.cc:64
-#: gtk2_ardour/export_dialog.cc:438
-#: gtk2_ardour/export_dialog.cc:1100
-#: gtk2_ardour/export_dialog.cc:1270
-msgid "192kHz"
-msgstr "192 kHz"
-
-#: gtk2_ardour/export_dialog.cc:69
-msgid "best"
-msgstr "bestmöglich"
-
-#: gtk2_ardour/export_dialog.cc:70
-#: gtk2_ardour/export_dialog.cc:1280
-msgid "fastest"
-msgstr "schnellstmöglich"
-
-#: gtk2_ardour/export_dialog.cc:71
-#: gtk2_ardour/export_dialog.cc:1282
-msgid "linear"
-msgstr "Linear"
-
-#: gtk2_ardour/export_dialog.cc:72
-#: gtk2_ardour/export_dialog.cc:1284
-msgid "better"
-msgstr "besser"
-
-#: gtk2_ardour/export_dialog.cc:73
-#: gtk2_ardour/export_dialog.cc:1286
-msgid "intermediate"
-msgstr "mittelmäßig"
-
-#: gtk2_ardour/export_dialog.cc:80
-msgid "Shaped Noise"
-msgstr "Shaped Noise"
-
-#: gtk2_ardour/export_dialog.cc:86
-msgid "stereo"
-msgstr "Stereo"
-
-#: gtk2_ardour/export_dialog.cc:87
-#: gtk2_ardour/export_dialog.cc:510
-#: gtk2_ardour/export_dialog.cc:1118
-#: gtk2_ardour/export_dialog.cc:1240
-msgid "mono"
-msgstr "Mono"
-
-#: gtk2_ardour/export_dialog.cc:93
-msgid "CUE"
-msgstr "CUE"
-
-#: gtk2_ardour/export_dialog.cc:94
-#: gtk2_ardour/export_dialog.cc:926
-msgid "TOC"
-msgstr "TOC"
-
-#: gtk2_ardour/export_dialog.cc:102
-msgid "Format"
-msgstr "Format"
-
-#: gtk2_ardour/export_dialog.cc:103
-msgid "CD Marker File Type"
-msgstr "CD-Marker"
-
-#: gtk2_ardour/export_dialog.cc:104
-msgid "Channels"
-msgstr "Kanäle"
-
-#: gtk2_ardour/export_dialog.cc:105
-msgid "File Type"
-msgstr "Dateiformat"
-
-#: gtk2_ardour/export_dialog.cc:106
-msgid "Sample Format"
-msgstr "Sampleformat"
-
-#: gtk2_ardour/export_dialog.cc:107
-msgid "Sample Endianness"
-msgstr "Bytefolge"
-
-#: gtk2_ardour/export_dialog.cc:109
-msgid "Conversion Quality"
-msgstr "Qualität"
-
-#: gtk2_ardour/export_dialog.cc:110
-msgid "Dither Type"
-msgstr "Dithering"
-
-#: gtk2_ardour/export_dialog.cc:111
-msgid "Export CD Marker File Only"
-msgstr "Nur CD-Marker exportieren"
-
-#: gtk2_ardour/export_dialog.cc:112
-#: gtk2_ardour/option_editor.cc:98
-#: gtk2_ardour/option_editor.cc:99
-msgid "Browse"
-msgstr "Durchsuchen"
-
-#: gtk2_ardour/export_dialog.cc:113
-msgid "Specific tracks ..."
-msgstr "Alle Spuren..."
-
-#: gtk2_ardour/export_dialog.cc:141
-#: gtk2_ardour/export_dialog.cc:157
-#: gtk2_ardour/mixer_strip.cc:127
-#: gtk2_ardour/mixer_strip.cc:733
-msgid "Output"
-msgstr "Ausgang"
-
-#: gtk2_ardour/export_dialog.cc:656
-msgid "Editor: cannot open \"%1\" as export file for CD toc file"
-msgstr "Editor: Kann \"%1\" nicht nicht zum Export für CD-Inhaltsverzeichnis (TOC) öffnen."
+#: gtk2_ardour/ardour_ui.cc:142
+msgid "% "
+msgstr ""
-#: gtk2_ardour/export_dialog.cc:790
-msgid "Editor: cannot open \"%1\" as export file for CD cue file"
-msgstr "Editor: Kann \"%1\" nicht zum Export für CD CUE-Datei öffnen."
+#: gtk2_ardour/ardour_ui.cc:150
+msgid ""
+"time\n"
+"master"
+msgstr ""
+"Time\n"
+"Master"
-#: gtk2_ardour/export_dialog.cc:809
-msgid "WAV"
-msgstr "WAV"
+#: gtk2_ardour/ardour_ui.cc:152
+msgid "AUDITION"
+msgstr "VORHÖREN"
-#: gtk2_ardour/export_dialog.cc:941
-#, fuzzy
-msgid "Not connected to audioengine"
-msgstr "Nicht mit JACK verbunden - konnte die Aufnahme nicht starten"
+#: gtk2_ardour/ardour_ui.cc:153
+msgid "SOLO"
+msgstr "SOLO"
-#: gtk2_ardour/export_dialog.cc:945
-msgid "Ardour cannot export audio when disconnected"
-msgstr "Ardour kann nicht exportieren, wenn keine Verbindung zu JACK besteht."
+#: gtk2_ardour/ardour_ui.cc:155
+msgid "Errors"
+msgstr "Fehlermeldungen"
-#: gtk2_ardour/export_dialog.cc:975
-msgid "Stop Export"
-msgstr "Export Abbrechen"
+#: gtk2_ardour/ardour_ui.cc:246
+msgid "could not initialize Ardour."
+msgstr "Konnte Ardour nicht initialisieren."
-#: gtk2_ardour/export_dialog.cc:1194
-msgid "Please enter a valid filename."
-msgstr "Bitte geben Sie einen gültigen Dateinamen ein."
+#: gtk2_ardour/ardour_ui.cc:272
+msgid "Starting audio engine"
+msgstr "Starte Audio Engine"
-#: gtk2_ardour/export_dialog.cc:1204
-msgid "Please specify a complete filename for the audio file."
-msgstr "Bitte geben Sie einen kompletten Dateinamen für die Audiodatei ein."
+#: gtk2_ardour/ardour_ui.cc:578
+msgid "Ardour could not start JACK"
+msgstr "Ardour konnte JACK nicht starten"
-#: gtk2_ardour/export_dialog.cc:1210
-msgid "File already exists, do you want to overwrite it?"
-msgstr "Datei existiert bereits, wollen Sie sie überschreiben?"
+#: gtk2_ardour/ardour_ui.cc:580
+msgid "Ardour could not connect to JACK."
+msgstr "Ardour konnte nicht zu JACK verbinden."
-#: gtk2_ardour/export_dialog.cc:1222
-#: gtk2_ardour/export_range_markers_dialog.cc:160
-msgid "Cannot write file in: "
-msgstr "Konnte Datei nicht in Verzeichnis schreiben:"
+#: gtk2_ardour/ardour_ui.cc:589
+msgid ""
+"There are several possible reasons:\n"
+"\n"
+"1) You requested audio parameters that are not supported..\n"
+"2) JACK is running as another user.\n"
+"\n"
+"Please consider the possibilities, and perhaps try different parameters."
+msgstr ""
+"Dafür kann es verschiedene Gründe geben:\n"
+"\n"
+"1) Sie haben nicht unterstützte Audioeinstellungen gewählt.\n"
+"2) JACK wurde unter einem anderen Benutzer gestartet.\n"
+"\n"
+"Betrachten Sie bitte diese Möglichkeiten und verwenden sie ggf. andere Einstellungen."
-#: gtk2_ardour/export_session_dialog.cc:29
-#: gtk2_ardour/export_region_dialog.cc:35
-msgid "Export to File"
-msgstr "Als Audiodatei exportieren"
+#: gtk2_ardour/ardour_ui.cc:596
+msgid ""
+"There are several possible reasons:\n"
+"\n"
+"1) JACK is not running.\n"
+"2) JACK is running as another user, perhaps root.\n"
+"3) There is already another client called \"ardour\".\n"
+"\n"
+"Please consider the possibilities, and perhaps (re)start JACK."
+msgstr ""
+"Dafür kann es verschiedene Gründe geben:\n"
+"\n"
+"1) JACK läuft nicht.\n"
+"2) JACK wurde unter einem anderen Benutzer gestartet, möglicherweise als root.\n"
+"3) Es gibt bereits einen anderen Client mit der Bezeichnung \"ardour\".\n"
+"\n"
+"Betrachten Sie bitte diese Möglichkeiten und starten Sie ggf. JACK neu."
-#: gtk2_ardour/export_region_dialog.cc:34
-msgid "ardour: export region"
-msgstr "ardour: Region Exportieren"
+#: gtk2_ardour/ardour_ui.cc:644
+msgid "Ardour is ready for use"
+msgstr "Ardour ist bereit"
-#: gtk2_ardour/export_range_markers_dialog.cc:41
-msgid "ardour: export ranges"
-msgstr "ardour: Bereiche Exportieren"
+#: gtk2_ardour/ardour_ui.cc:686
+msgid ""
+"WARNING: Your system has a limit for maximum amount of locked memory. This might cause Ardour to run out of memory before your system runs out of memory. \n"
+"\n"
+"You can view the memory limit with 'ulimit -l', and it is normally controlled by /etc/security/limits.conf"
+msgstr ""
+"WARNUNG: Ihr System hat eine Begrenzung für die Reservierung von Arbeitsspeicher eingestellt. Dies könnte dazu führen, dass Ardour zu schnell der Speicher ausgeht.\n"
+"\n"
+"Sie können die Speicherbegrenzung mit 'ulimit -l' einsehen und normalerweise in /etc/security/limits.conf verändern."
-#: gtk2_ardour/export_range_markers_dialog.cc:42
-msgid "Export to Directory"
-msgstr "In Verzeichnis exportieren"
+#: gtk2_ardour/ardour_ui.cc:694
+msgid "Do not show this window again"
+msgstr "Diese Meldung nicht wieder anzeigen"
-#: gtk2_ardour/export_range_markers_dialog.cc:143
-msgid "Please enter a valid target directory."
-msgstr "Bitte geben Sie ein gültiges Zielverzeichis an."
+#: gtk2_ardour/ardour_ui.cc:723
+msgid "quit"
+msgstr "Beenden"
-#: gtk2_ardour/export_range_markers_dialog.cc:151
-msgid "Please select an existing target directory. Files are not allowed!"
+#: gtk2_ardour/ardour_ui.cc:732
+msgid ""
+"Ardour was unable to save your session.\n"
+"\n"
+"If you still wish to quit, please use the\n"
+"\n"
+"\"Just quit\" option."
msgstr ""
-"Bitte wählen Sie ein vorhandenes Zielverzeichnis aus.\n"
-"Dateien sind nicht möglich."
-
-#: gtk2_ardour/gain_automation_time_axis.cc:64
-msgid "add gain automation event"
-msgstr "Punkt in die Lautstärkekurve einfügen"
-
-#: gtk2_ardour/gain_meter.cc:114
-#: gtk2_ardour/gain_meter.cc:345
-#: gtk2_ardour/gain_meter.cc:541
-#: gtk2_ardour/gain_meter.cc:612
-msgid "-inf"
-msgstr "-inf"
+"Ardour konnte das Projekt nicht speichern.\n
\n"
+"Wenn Sie trotzdem beenden wollen, wählen Sie bitte\n"
+"\n"
+"\"Trotzdem beenden\"."
-#: gtk2_ardour/gain_meter.cc:125
-msgid "Fader automation mode"
-msgstr "Fader Automationsmodus"
+#: gtk2_ardour/ardour_ui.cc:757
+msgid "ardour: save session?"
+msgstr "ardour: Projekt speichern?"
-#: gtk2_ardour/gain_meter.cc:126
-msgid "Fader automation type"
-msgstr "Fader-Automationstyp"
+#: gtk2_ardour/ardour_ui.cc:764
+msgid "Don't %1"
+msgstr "Abbrechen"
-#: gtk2_ardour/gain_meter.cc:170
-#: gtk2_ardour/gain_meter.cc:907
-#: gtk2_ardour/panner_ui.cc:98
-#: gtk2_ardour/panner_ui.cc:784
-msgid "Abs"
-msgstr "Abs"
+#: gtk2_ardour/ardour_ui.cc:766
+msgid "Just %1"
+msgstr "%1"
-#: gtk2_ardour/gain_meter.cc:519
-msgid "-Inf"
-msgstr "-Inf"
+#: gtk2_ardour/ardour_ui.cc:768
+msgid "Save and %1"
+msgstr "Speichern und %1"
-#: gtk2_ardour/gain_meter.cc:723
-#: gtk2_ardour/gain_meter.cc:738
-msgid "meter point change"
-msgstr "Taktwechsel ändern"
+#: gtk2_ardour/ardour_ui.cc:780
+msgid "session"
+msgstr "Das Projekt"
-#: gtk2_ardour/gain_meter.cc:871
-#: gtk2_ardour/mixer_strip.cc:443
-#: gtk2_ardour/panner_ui.cc:748
-msgid "M"
-msgstr "M"
+#: gtk2_ardour/ardour_ui.cc:782
+msgid "snapshot"
+msgstr "Der Schnappschuss"
-#: gtk2_ardour/gain_meter.cc:874
-#: gtk2_ardour/panner_ui.cc:751
-msgid "P"
-msgstr "P"
+#: gtk2_ardour/ardour_ui.cc:784
+msgid ""
+"The %1\"%2\"\n"
+"has not been saved.\n"
+"\n"
+"Any changes made this time\n"
+"will be lost unless you save it.\n"
+"\n"
+"What do you want to do?"
+msgstr ""
+"%1 \"%2\" wurde nicht gespeichert.\n"
+"\n"
+"Alle Änderungen werden verloren gehen wenn Sie nicht speichern.\n"
+"\n"
+"Wie wollen Sie vorgehen?"
-#: gtk2_ardour/gain_meter.cc:877
-#: gtk2_ardour/panner_ui.cc:754
-msgid "T"
-msgstr "T"
+#: gtk2_ardour/ardour_ui.cc:798
+msgid "Prompter"
+msgstr "Frage"
-#: gtk2_ardour/gain_meter.cc:880
-#: gtk2_ardour/panner_ui.cc:757
-msgid "W"
-msgstr "W"
+#: gtk2_ardour/ardour_ui.cc:858
+#, c-format
+msgid "disconnected"
+msgstr "getrennt"
-#: gtk2_ardour/generic_pluginui.cc:77
-msgid "<span size=\"large\">Presets</span>"
-msgstr "<span size=\"large\">Voreinstellungen</span>"
+#: gtk2_ardour/ardour_ui.cc:865
+#, c-format
+msgid "%.1f kHz / %4.1f ms"
+msgstr "%.1f kHz / %4.1f ms"
-#: gtk2_ardour/generic_pluginui.cc:205
-msgid "Plugin Editor: could not build control element for port %1"
-msgstr "Plugin Editor: konnte kein Steuerelement für Port %1 erzeugen"
+#: gtk2_ardour/ardour_ui.cc:869
+#, c-format
+msgid "%u kHz / %4.1f ms"
+msgstr "%u kHz / %4.1f ms"
-#: gtk2_ardour/generic_pluginui.cc:295
-msgid "Automation control"
-msgstr "Automation"
+#: gtk2_ardour/ardour_ui.cc:882
+#, c-format
+msgid "DSP: %5.1f%%"
+msgstr "DSP: %5.1f%%"
-#: gtk2_ardour/generic_pluginui.cc:302
-#, fuzzy
-msgid "Mgnual"
-msgstr "Manuell"
+#: gtk2_ardour/ardour_ui.cc:892
+#, c-format
+msgid "Buffers p:%<PRIu32>%% c:%<PRIu32>%%"
+msgstr "Buffer p:%<PRIu32>%% c:%<PRIu32>%%"
-#: gtk2_ardour/gtk-custom-ruler.c:126
-msgid "Lower"
-msgstr "Untergrenze"
+#: gtk2_ardour/ardour_ui.cc:920
+msgid "Disk: 24hrs+"
+msgstr "HD: >24 Std."
-#: gtk2_ardour/gtk-custom-ruler.c:127
-msgid "Lower limit of ruler"
-msgstr "Untere Grenze des Lineals"
+#: gtk2_ardour/ardour_ui.cc:940
+#, c-format
+msgid "Disk: %02dh:%02dm:%02ds"
+msgstr "HD: %02dh:%02dm:%02ds"
-#: gtk2_ardour/gtk-custom-ruler.c:136
-msgid "Upper"
-msgstr "Obergrenze"
+#: gtk2_ardour/ardour_ui.cc:1139
+msgid ""
+"Ardour is not connected to JACK\n"
+"You cannot open or close sessions in this condition"
+msgstr ""
+"Ardour ist derzeit nicht mit JACK verbunden.\n"
+"Es ist nicht möglich, neue Projekte zu erstellen."
-#: gtk2_ardour/gtk-custom-ruler.c:137
-msgid "Upper limit of ruler"
-msgstr "Obere Grenze für das Lineal"
+#: gtk2_ardour/ardour_ui.cc:1164
+msgid "open session"
+msgstr "Projekt öffnen"
-#: gtk2_ardour/gtk-custom-ruler.c:146
-msgid "Position"
-msgstr "Position"
+#: gtk2_ardour/ardour_ui.cc:1171
+msgid "Ardour sessions"
+msgstr "Ardour-Projekte"
-#: gtk2_ardour/gtk-custom-ruler.c:147
-msgid "Position of mark on the ruler"
-msgstr "Position der Markierung auf dem Lineal"
+#: gtk2_ardour/ardour_ui.cc:1204
+msgid "Patience is a virtue.\n"
+msgstr "Geduld ist eine Tugend.\n"
-#: gtk2_ardour/gtk-custom-ruler.c:156
-msgid "Max Size"
-msgstr "Maximale Größe"
+#: gtk2_ardour/ardour_ui.cc:1214
+msgid "You cannot add a track or bus without a session already loaded."
+msgstr "Sie können erst Spuren oder Busse hinzufügen, wenn ein Projekt geladen wurde."
-#: gtk2_ardour/gtk-custom-ruler.c:157
-msgid "Maximum size of the ruler"
-msgstr "Minimal Größe des Lineals"
+#: gtk2_ardour/ardour_ui.cc:1224
+#: gtk2_ardour/ardour_ui.cc:1237
+msgid "could not create a new audio track"
+msgstr "Konnte neue Spur nicht erstellen."
-#: gtk2_ardour/gtk-custom-ruler.c:166
-msgid "Show Position"
-msgstr "Zeige Position"
+#: gtk2_ardour/ardour_ui.cc:1226
+msgid "could only create %1 of %2 new audio %3"
+msgstr "Konnte nur %1 von %2 neuen %3 erstellen"
-#: gtk2_ardour/gtk-custom-ruler.c:167
-msgid "Draw current ruler position"
-msgstr "Zeige aktuelle Position des Lineals"
+#: gtk2_ardour/ardour_ui.cc:1239
+msgid "could not create %1 new audio tracks"
+msgstr "Konnte %1 neue Spuren nicht erstellen."
-#: gtk2_ardour/imageframe_socket_handler.cc:126
-msgid "Image Compositor Socket has been shutdown/closed"
+#: gtk2_ardour/ardour_ui.cc:1259
+msgid ""
+"There are insufficient JACK ports available\n"
+"to create a new track or bus.\n"
+"You should save Ardour, exit and\n"
+"restart JACK with more ports."
msgstr ""
+"Es sind nicht genügend JACK Ports verfügbar\n"
+"um neue Spuren oder Busse zu erstellen.\n"
+"Speichern Sie Ihr Projekt, beenden Sie\n"
+"Ardour und starten Sie JACK mit einer größeren\n"
+"Anzahl Ports neu."
-#: gtk2_ardour/imageframe_time_axis.cc:285
-msgid "0.5 seconds"
-msgstr "0,5 Sekunden"
-
-#: gtk2_ardour/imageframe_time_axis.cc:286
-#: gtk2_ardour/marker_time_axis.cc:241
-msgid "1 seconds"
-msgstr "1 Sekunde"
-
-#: gtk2_ardour/imageframe_time_axis.cc:287
-#: gtk2_ardour/marker_time_axis.cc:242
-msgid "1.5 seconds"
-msgstr "1,5 Sekunden"
-
-#: gtk2_ardour/imageframe_time_axis.cc:288
-#: gtk2_ardour/marker_time_axis.cc:243
-msgid "2 seconds"
-msgstr "2 Sekunden"
-
-#: gtk2_ardour/imageframe_time_axis.cc:289
-#: gtk2_ardour/marker_time_axis.cc:244
-msgid "2.5 seconds"
-msgstr "2,5 Sekunden"
-
-#: gtk2_ardour/imageframe_time_axis.cc:290
-#: gtk2_ardour/marker_time_axis.cc:245
-msgid "3 seconds"
-msgstr "3 Sekunden"
-
-#: gtk2_ardour/imageframe_time_axis.cc:295
-#: gtk2_ardour/marker_time_axis.cc:250
-msgid "Duration (sec)"
-msgstr "Dauer (Sek)"
-
-#: gtk2_ardour/imageframe_time_axis.cc:300
-msgid "Remove Frame"
-msgstr "Frame löschen"
+#: gtk2_ardour/ardour_ui.cc:1409
+msgid ""
+"Please create 1 or more track\n"
+"before trying to record.\n"
+"Check the Session menu."
+msgstr ""
+"Bitte fügen Sie mindestens eine weitere Spur hinzu,\n"
+"bevor Sie aufnehmen.\n"
+"Weitere Einstellungen finden Sie im Projektmenü."
-#: gtk2_ardour/imageframe_time_axis.cc:303
-msgid "Image Frame"
+#: gtk2_ardour/ardour_ui.cc:1667
+msgid ""
+"JACK has either been shutdown or it\n"
+"disconnected Ardour because Ardour\n"
+"was not fast enough. You can save the\n"
+"session and/or try to reconnect to JACK ."
msgstr ""
+"JACK wurde entweder beendet oder\n"
+"hat Ardour getrennt weil Ardour nicht\n"
+"schnell genug war. Sie sollten versuchen,\n"
+"das Projekt zu speichern und erneut mit JACK zu verbinden."
-#: gtk2_ardour/imageframe_time_axis.cc:304
-#: gtk2_ardour/marker_time_axis.cc:256
-msgid "Rename Track"
-msgstr "Spur umbenennen"
+#: gtk2_ardour/ardour_ui.cc:1685
+msgid "Unable to start the session running"
+msgstr "Konnte das aktuelle Projekt nicht starten"
-#: gtk2_ardour/io_selector.cc:59
-#: gtk2_ardour/io_selector.cc:747
-#: gtk2_ardour/connection_editor.cc:85
-msgid "OK"
-msgstr "OK"
+#: gtk2_ardour/ardour_ui.cc:1776
+#: gtk2_ardour/ardour_ui.cc:1795
+#: gtk2_ardour/audio_clock.cc:514
+#: gtk2_ardour/audio_clock.cc:515
+msgid "none"
+msgstr "keine"
-#: gtk2_ardour/io_selector.cc:61
-#: gtk2_ardour/io_selector.cc:749
-#: gtk2_ardour/connection_editor.cc:60
-#: gtk2_ardour/connection_editor.cc:109
-msgid "Rescan"
-msgstr "Auffrischen"
+#: gtk2_ardour/ardour_ui.cc:1785
+#: gtk2_ardour/ardour_ui.cc:1804
+msgid "off"
+msgstr "aus"
-#: gtk2_ardour/io_selector.cc:69
-msgid "%1 input"
-msgstr "%1 Eingang"
+#: gtk2_ardour/ardour_ui.cc:1830
+msgid "Name of New Snapshot"
+msgstr "Name für neuen Schnappschuss"
-#: gtk2_ardour/io_selector.cc:71
-msgid "%1 output"
-msgstr "%1 Ausgang"
+#: gtk2_ardour/ardour_ui.cc:1940
+msgid "Name for mix template:"
+msgstr "Name für Mixer-Vorlage"
-#: gtk2_ardour/io_selector.cc:143
-#: gtk2_ardour/route_params_ui.cc:103
-msgid "Inputs"
-msgstr "Eingänge"
+#: gtk2_ardour/ardour_ui.cc:1941
+msgid "-template"
+msgstr "Vorlage"
-#: gtk2_ardour/io_selector.cc:143
-#: gtk2_ardour/route_params_ui.cc:104
-msgid "Outputs"
-msgstr "Ausgänge"
+#: gtk2_ardour/ardour_ui.cc:1970
+msgid ""
+"Welcome to Ardour.\n"
+"\n"
+"The program will take a bit longer to start up\n"
+"while the system fonts are checked.\n"
+"\n"
+"This will only be done once, and you will\n"
+"not see this message again\n"
+msgstr ""
+"Willkommen bei Ardour.\n"
+"\n"
+"Der Programmstart wird etwas länger dauern,\n"
+"da die Systemschriften geprüft werden.\n"
+"\n"
+"Diese Meldung wird nur dieses eine Mal\n"
+"auftauchen.\n"
-#: gtk2_ardour/io_selector.cc:144
-msgid "Add Input"
-msgstr "Hinzufügen"
+#: gtk2_ardour/ardour_ui.cc:2057
+msgid ""
+"This session\n"
+"%1\n"
+"already exists. Do you want to open it?"
+msgstr ""
+"Das Projekt\n"
+"%1\n"
+"existiert bereits. Wollen Sie sie öffnen?"
-#: gtk2_ardour/io_selector.cc:144
-msgid "Add Output"
-msgstr "Hinzufügen"
+#: gtk2_ardour/ardour_ui.cc:2420
+msgid ""
+"You do not have write access to this session.\n"
+"This prevents the session from being loaded."
+msgstr ""
+"Sie haben keinen Schreibzugriff auf dieses Projekt.\n"
+"Dadurch kann das Projekt nicht geladen werden."
-#: gtk2_ardour/io_selector.cc:145
-msgid "Remove Input"
-msgstr "Entfernen"
+#: gtk2_ardour/ardour_ui.cc:2427
+msgid "Please wait while Ardour loads your session"
+msgstr "Bitte warten Sie, während Ardour das Projekt lädt"
-#: gtk2_ardour/io_selector.cc:145
-msgid "Remove Output"
-msgstr "Entfernen"
+#: gtk2_ardour/ardour_ui.cc:2442
+#: gtk2_ardour/ardour_ui.cc:2468
+msgid "Loading Error"
+msgstr "Fehler beim Laden"
-#: gtk2_ardour/io_selector.cc:146
-msgid "Disconnect All"
-msgstr "Alle trennen"
+#: gtk2_ardour/ardour_ui.cc:2443
+#: gtk2_ardour/ardour_ui.cc:2469
+msgid "Click the OK button to try again."
+msgstr "Klicken Sie auf OK, um es erneut zu versuchen."
-#: gtk2_ardour/io_selector.cc:160
-msgid "Available connections"
-msgstr "Verfügbare Verbindungen"
+#: gtk2_ardour/ardour_ui.cc:2463
+msgid "Session \"%1 (snapshot %2)\" did not load successfully"
+msgstr "Projekt \"%1 (Schnappschuss %2)\" konnte nicht geladen werden."
-#: gtk2_ardour/io_selector.cc:548
-#: gtk2_ardour/io_selector.cc:559
-msgid "There are no more JACK ports available."
-msgstr "Es sind keine weiteren JACK Ports verfügbar."
+#: gtk2_ardour/ardour_ui.cc:2542
+msgid "Could not create session in \"%1\""
+msgstr "Konnte kein Projekt in \"%1\" anlegen"
-#: gtk2_ardour/io_selector.cc:753
-msgid "ardour: "
-msgstr "ardour: "
+#: gtk2_ardour/ardour_ui.cc:2629
+msgid "No audio files were ready for cleanup"
+msgstr "Keine Audiodateien zum Aufräumen vorhanden"
-#: gtk2_ardour/keyeditor.cc:25
-msgid "Keybinding Editor"
+#: gtk2_ardour/ardour_ui.cc:2633
+msgid ""
+"If this seems suprising, \n"
+"check for any existing snapshots.\n"
+"These may still include regions that\n"
+"require some unused files to continue to exist."
msgstr ""
+"Falls trotzdem nicht benötigte Dateien\n"
+"existieren, welche hier nicht erkannt werden,\n"
+"sind sie wahrscheinlich noch in einem\n"
+"älteren Schnappschuss als Region eingebunden."
-#: gtk2_ardour/keyeditor.cc:33
-msgid "Action"
-msgstr "Aktion"
+#: gtk2_ardour/ardour_ui.cc:2642
+msgid "ardour: cleanup"
+msgstr "ardour: Aufräumen"
-#: gtk2_ardour/keyeditor.cc:34
-msgid "Binding"
-msgstr "Zugewiesene Taste"
+#: gtk2_ardour/ardour_ui.cc:2678
+#: gtk2_ardour/ardour_ui.cc:2684
+msgid "files were"
+msgstr "folgenden Dateien wurden"
-#: gtk2_ardour/keyeditor.cc:188
-msgid "Command-"
-msgstr "Befehl-"
+#: gtk2_ardour/ardour_ui.cc:2680
+#: gtk2_ardour/ardour_ui.cc:2686
+msgid "file was"
+msgstr "folgende Datei wurde"
-#: gtk2_ardour/keyeditor.cc:189
-msgid "Option-"
-msgstr "Option-"
+#: gtk2_ardour/ardour_ui.cc:2727
+msgid "Are you sure you want to cleanup?"
+msgstr "Sind Sie sicher, dass Sie aufräumen wollen?"
-#: gtk2_ardour/keyeditor.cc:190
-msgid "Shift-"
+#: gtk2_ardour/ardour_ui.cc:2732
+msgid ""
+"Cleanup is a destructive operation.\n"
+"ALL undo/redo information will be lost if you cleanup.\n"
+"After cleanup, unused audio files will be moved to a \"dead sounds\" location."
msgstr ""
+"Das Aufräumen ist eine destruktive Operation.\n"
+"Sämtliche Wiederherstellungsinformationen gehen verloren, wenn Sie aufräumen.\n"
+"Nach dem Aufräumen werden alle nicht benötigten Audiodateien in einen \"dead sounds\" Ordner verschoben."
-#: gtk2_ardour/location_ui.cc:49
-#: gtk2_ardour/location_ui.cc:52
-msgid "Set"
-msgstr "Setzen"
-
-#: gtk2_ardour/location_ui.cc:50
-#: gtk2_ardour/location_ui.cc:53
-msgid "Go"
-msgstr "Gehe zu"
-
-#: gtk2_ardour/location_ui.cc:56
-msgid "CD"
-msgstr "CD"
-
-#: gtk2_ardour/location_ui.cc:59
-msgid "SCMS"
-msgstr "SCMS"
-
-#: gtk2_ardour/location_ui.cc:60
-msgid "Pre-Emphasis"
-msgstr "Präemphase"
-
-#: gtk2_ardour/location_ui.cc:430
-msgid "You cannot put a CD marker at the start of the session"
-msgstr "Sie können keinen CD-Marker am Anfang des Projekts erstellen"
-
-#: gtk2_ardour/location_ui.cc:605
-msgid "Add New Location"
-msgstr "Neue Position hinzufügen"
-
-#: gtk2_ardour/location_ui.cc:606
-msgid "Add New Range"
-msgstr "Neuen Bereich hinzufügen"
+#: gtk2_ardour/ardour_ui.cc:2738
+msgid "Clean Up"
+msgstr "Aufräumen"
-#: gtk2_ardour/location_ui.cc:642
-msgid "Location (CD Index) Markers"
-msgstr "Positionsmarker (CD Index)"
+#: gtk2_ardour/ardour_ui.cc:2741
+msgid "CleanupDialog"
+msgstr "Aufräumdialog"
-#: gtk2_ardour/location_ui.cc:662
-msgid "Range (CD Track) Markers"
-msgstr "Bereiche (CD Tracks)"
+#: gtk2_ardour/ardour_ui.cc:2772
+msgid "cleaned files"
+msgstr "aufgeräumte Dateien"
-#: gtk2_ardour/location_ui.cc:840
-msgid "add range marker"
-msgstr "Bereich hinzufügen"
+#: gtk2_ardour/ardour_ui.cc:2773
+msgid ""
+"The following %1 %2 not in use and \n"
+"have been moved to:\n"
+"%3. \n"
+"\n"
+"Flushing the wastebasket will \n"
+"release an additional\n"
+"%4 %5bytes of disk space.\n"
+msgstr ""
+"Die %1 %2 nicht benötigt und\n"
+"verschoben nach:\n"
+"%3. \n"
+"\n"
+"Wenn Sie den Müll leeren werden weitere\n"
+"%4 %5byte Speicherplatz frei.\n"
-#: gtk2_ardour/main.cc:153
-msgid "cannot open pango.rc file %1"
-msgstr "kann die Datei pango.rc nicht öffnen %1"
+#: gtk2_ardour/ardour_ui.cc:2799
+msgid "deleted file"
+msgstr "gelöschte Datei"
-#: gtk2_ardour/main.cc:230
-msgid "Key bindings file \"%1\" not found. Default bindings used instead"
+#: gtk2_ardour/ardour_ui.cc:2800
+msgid ""
+"The following %1 %2 deleted from\n"
+"%3,\n"
+"releasing %4 %5bytes of disk space"
msgstr ""
+"Die %1 %2 gelöscht aus\n"
+"%3,\n"
+"und machten %4 %5byte Speicherplatz frei"
-#: gtk2_ardour/main.cc:292
-msgid "Ardour/GTK "
-msgstr "Ardour/GTK "
+#: gtk2_ardour/ardour_ui.cc:2924
+msgid "Recording was stopped because your system could not keep up."
+msgstr "Die Aufnahme wurde gestoppt, da Ihr System nicht schnell genug folgen konnte."
-#: gtk2_ardour/main.cc:294
+#: gtk2_ardour/ardour_ui.cc:2949
msgid ""
+"The disk system on your computer\n"
+"was not able to keep up with Ardour.\n"
"\n"
-" (built using "
+"Specifically, it failed to write data to disk\n"
+"quickly enough to keep up with recording.\n"
msgstr ""
+"Ihre Festplatte war nicht schnell genug,\n"
+"um Ardour zu folgen.\n"
"\n"
-" (kompiliert mit Version "
-
-#: gtk2_ardour/main.cc:297
-msgid " and GCC version "
-msgstr " und GCC Version"
-
-#: gtk2_ardour/main.cc:307
-msgid "Copyright (C) 1999-2007 Paul Davis"
-msgstr "Copyright (C) 1999-2007 Paul Davis"
-
-#: gtk2_ardour/main.cc:308
-msgid "Some portions Copyright (C) Steve Harris, Ari Johnson, Brett Viren, Joel Baker"
-msgstr "Einige Teile Copyright (C) Steve Harris, Ari Johnson, Brett Viren, Joel Baker"
-
-#: gtk2_ardour/main.cc:310
-msgid "Ardour comes with ABSOLUTELY NO WARRANTY"
-msgstr "Ardour wird Ihnen ohne jegliche Gewährleistung und ausdrücklich ohne die Zusicherung"
-
-#: gtk2_ardour/main.cc:311
-msgid "not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-msgstr "für allgemeine oder spezielle Gebrauchstauglichkeit zur Verfügung gestellt."
-
-#: gtk2_ardour/main.cc:312
-msgid "This is free software, and you are welcome to redistribute it "
-msgstr "Dies ist freie Software und Sie dürfen sie gerne weiterverbreiten,"
-
-#: gtk2_ardour/main.cc:313
-msgid "under certain conditions; see the source for copying conditions."
-msgstr "solange Sie sich an die Bedingungen, die in der Datei COPYING aufgeführt sind halten."
-
-#: gtk2_ardour/main.cc:324
-msgid "could not create ARDOUR GUI"
-msgstr "konnte das grafische Ardour User Interface nicht erstellen"
+"Die Daten konnten nicht schnell genug geschrieben\n"
+"werden, um die Aufnahme fortzuführen.\n"
-#: gtk2_ardour/marker.cc:244
-msgid "MarkerText"
+#: gtk2_ardour/ardour_ui.cc:2968
+msgid ""
+"The disk system on your computer\n"
+"was not able to keep up with Ardour.\n"
+"\n"
+"Specifically, it failed to read data from disk\n"
+"quickly enough to keep up with playback.\n"
msgstr ""
+"Ihre Festplatte war nicht schnell genug,\n"
+"um Ardour zu folgen.\n"
+"\n"
+"Die Daten konnten nicht schnell genug gelesen\n"
+"werden, um die Wiedergabe aufrechtzuerhalten.\n"
-#: gtk2_ardour/marker_time_axis.cc:253
-msgid "Remove Marker"
-msgstr "Marker entfernen"
-
-#: gtk2_ardour/midi_port_dialog.cc:22
-msgid "Port name"
-msgstr "Port Name"
-
-#: gtk2_ardour/mixer_strip.cc:97
-#: gtk2_ardour/mixer_strip.cc:143
-#: gtk2_ardour/mixer_strip.cc:1217
-msgid "pre"
-msgstr "Pre"
+#: gtk2_ardour/ardour_ui.cc:3008
+msgid "Crash Recovery"
+msgstr "Wiederherstellung"
-#: gtk2_ardour/mixer_strip.cc:98
-#: gtk2_ardour/mixer_strip.cc:786
-msgid "Comments"
-msgstr "Kommentare"
+#: gtk2_ardour/ardour_ui.cc:3009
+msgid ""
+"This session appears to have been in\n"
+"middle of recording when ardour or\n"
+"the computer was shutdown.\n"
+"\n"
+"Ardour can recover any captured audio for\n"
+"you, or it can ignore it. Please decide\n"
+"what you would like to do.\n"
+msgstr ""
+"Es scheint, dass dieses Projekt während\n"
+"einer Aufnahme abgebrochen oder\n"
+"geschlossen wurde.\n"
+"\n"
+"Ardour kann die Aufgenommenen Audiodaten\n"
+"für Sie wiederherstellen oder sie verwerfen.\n"
+"Bitte entscheiden Sie, wie Sie vorgehen möchten.\n"
-#: gtk2_ardour/mixer_strip.cc:122
-msgid "Input"
-msgstr "Eingang"
+#: gtk2_ardour/ardour_ui.cc:3021
+msgid "Ignore crash data"
+msgstr "Daten verwerfen"
-#: gtk2_ardour/mixer_strip.cc:139
-#: gtk2_ardour/mixer_strip.cc:1213
-#: gtk2_ardour/option_editor.cc:707
-msgid "input"
-msgstr "Input"
+#: gtk2_ardour/ardour_ui.cc:3022
+msgid "Recover from crash"
+msgstr "Daten wiederherstellen"
-#: gtk2_ardour/mixer_strip.cc:147
-#: gtk2_ardour/mixer_strip.cc:1221
-msgid "post"
-msgstr "Post"
+#: gtk2_ardour/ardour_ui.cc:3042
+msgid "Sample Rate Mismatch"
+msgstr "Samplerate passt nicht"
-#: gtk2_ardour/mixer_strip.cc:154
-msgid "tupni"
+#: gtk2_ardour/ardour_ui.cc:3043
+msgid ""
+"This session was created with a sample rate of %1 Hz\n"
+"\n"
+"The audioengine is currently running at %2 Hz\n"
msgstr ""
+"Dieses Projekt wurde mit einer Samplrate von %1 Hz erstellt.\n"
+"\n"
+"Die Audioengine läuft derzeit mit %2 Hz.\n"
-#: gtk2_ardour/mixer_strip.cc:202
-msgid "Varispeed"
-msgstr "Varispeed"
-
-#: gtk2_ardour/mixer_strip.cc:228
-#: gtk2_ardour/mixer_strip.cc:802
-msgid "Click to Add/Edit Comments"
-msgstr "Kommentare hinzufügen/ändern"
-
-#: gtk2_ardour/mixer_strip.cc:419
-msgid "record"
-msgstr "Aufnahme"
+#: gtk2_ardour/ardour_ui.cc:3052
+msgid "Do not load session"
+msgstr "Projekt nicht laden"
-#: gtk2_ardour/mixer_strip.cc:426
-msgid "comments"
-msgstr "Kommentare"
+#: gtk2_ardour/ardour_ui.cc:3053
+msgid "Load session anyway"
+msgstr "Projekt trotzdem laden"
-#: gtk2_ardour/mixer_strip.cc:429
-msgid "*comments*"
-msgstr "*Kommentare*"
+#: gtk2_ardour/ardour_ui.cc:3074
+msgid "Could not disconnect from JACK"
+msgstr "Konnte Verbindung mit JACK nicht trennen"
-#: gtk2_ardour/mixer_strip.cc:441
-msgid "Rec"
-msgstr "Rec"
+#: gtk2_ardour/ardour_ui.cc:3087
+msgid "Could not reconnect to JACK"
+msgstr "Konnte nicht erneut zu JACK verbinden"
-#: gtk2_ardour/mixer_strip.cc:444
-msgid "S"
-msgstr "S"
+#: gtk2_ardour/audio_clock.cc:1941
+msgid "Minutes:Seconds"
+msgstr "Minuten:Sekunden"
-#: gtk2_ardour/mixer_strip.cc:448
-#: gtk2_ardour/mixer_strip.cc:796
-msgid "Cmt"
-msgstr "Kmt"
+#: gtk2_ardour/time_selection.cc:40
+msgid "programming error: request for non-existent audio range (%1)!"
+msgstr "Programmierfehler: request for non-existent audio range (%1)!"
-#: gtk2_ardour/mixer_strip.cc:451
-#: gtk2_ardour/mixer_strip.cc:793
-msgid "*Cmt*"
-msgstr "*Kmt*"
+#: gtk2_ardour/plugin_selector.cc:60
+msgid "ardour: plugins"
+msgstr "ardour: Plugins"
-#: gtk2_ardour/mixer_strip.cc:490
-#: gtk2_ardour/mixer_strip.cc:556
-#: gtk2_ardour/redirect_box.cc:1124
-msgid "Not connected to JACK - no I/O changes are possible"
-msgstr "Nicht mit Jack verbunden - es sind keine Änderungen an Ein-/Ausgängen möglich"
+#: gtk2_ardour/plugin_selector.cc:77
+msgid "Fav"
+msgstr "Fav"
-#: gtk2_ardour/mixer_strip.cc:590
-#: gtk2_ardour/mixer_strip.cc:606
-msgid "could not register new ports required for that connection"
-msgstr "Konnte die Ports, die diese Verbindung benötigt nicht registrieren"
+#: gtk2_ardour/plugin_selector.cc:78
+msgid "Available Plugins"
+msgstr "Verfügbare Plugins"
-#: gtk2_ardour/mixer_strip.cc:713
-msgid " Input"
-msgstr "Eingang"
+#: gtk2_ardour/plugin_selector.cc:79
+msgid "Type"
+msgstr "Typ"
-#: gtk2_ardour/mixer_strip.cc:716
-msgid "I"
-msgstr "I"
+#: gtk2_ardour/plugin_selector.cc:80
+msgid "Category"
+msgstr "Kategorie"
-#: gtk2_ardour/mixer_strip.cc:736
-msgid "O"
-msgstr "O"
+#: gtk2_ardour/plugin_selector.cc:81
+msgid "Creator"
+msgstr "Ersteller"
-#: gtk2_ardour/mixer_strip.cc:783
-msgid "*Comments*"
-msgstr "*Kommentare*"
+#: gtk2_ardour/plugin_selector.cc:82
+msgid "# Inputs"
+msgstr "Eingänge"
-#: gtk2_ardour/mixer_strip.cc:838
-msgid ": comment editor"
-msgstr "Kommentare bearbeiten"
+#: gtk2_ardour/plugin_selector.cc:83
+msgid "# Outputs"
+msgstr "Ausgänge"
-#: gtk2_ardour/mixer_strip.cc:933
-msgid "Grp"
-msgstr "Grp"
+#: gtk2_ardour/plugin_selector.cc:100
+msgid "Plugins to be connected"
+msgstr "Plugins, die verbunden werden"
-#: gtk2_ardour/mixer_strip.cc:936
-msgid "~G"
-msgstr "~G"
+#: gtk2_ardour/plugin_selector.cc:113
+msgid "Add a plugin to the effect list"
+msgstr "Plugin zur Effektliste hinzufügen"
-#: gtk2_ardour/mixer_strip.cc:984
-msgid "Invert Polarity"
-msgstr "Polarität umkehren"
+#: gtk2_ardour/plugin_selector.cc:117
+msgid "Remove a plugin from the effect list"
+msgstr "Plugin aus der Effektliste entfernen"
-#: gtk2_ardour/mixer_strip.cc:987
-msgid "Protect against denormals"
-msgstr "Schutz vor Denormals"
+#: gtk2_ardour/plugin_selector.cc:119
+msgid "Update available plugins"
+msgstr "Verfügbare Plugins auffrischen"
-#: gtk2_ardour/mixer_ui.cc:89
-msgid "Strips"
-msgstr "Spur"
+#: gtk2_ardour/plugin_selector.cc:156
+msgid "Insert Plugin(s)"
+msgstr "Plugin(s) einfügen"
-#: gtk2_ardour/mixer_ui.cc:115
-msgid "Group"
-msgstr "Gruppe"
+#: gtk2_ardour/plugin_selector.cc:203
+#: gtk2_ardour/plugin_selector.cc:450
+msgid "Favorites only"
+msgstr "nur Favoriten"
-#: gtk2_ardour/mixer_ui.cc:215
-#: gtk2_ardour/mixer_ui.cc:425
-#: gtk2_ardour/mixer_ui.cc:457
-msgid "Mixer"
-msgstr "Mixer"
-
-#: gtk2_ardour/mixer_ui.cc:835
-msgid "track display list item for renamed strip not found!"
-msgstr "Konnte Bezeichnung für umbenannten Mixerkanal nicht in der Spurliste finden!"
+#: gtk2_ardour/plugin_selector.cc:209
+msgid "Name contains"
+msgstr "Name enthält"
-#: gtk2_ardour/new_session_dialog.cc:46
-msgid "Name :"
-msgstr "Name :"
+#: gtk2_ardour/plugin_selector.cc:211
+msgid "Type contains"
+msgstr "Typ enthält"
-#: gtk2_ardour/new_session_dialog.cc:50
-#: gtk2_ardour/new_session_dialog.cc:51
-#: gtk2_ardour/new_session_dialog.cc:52
-#: gtk2_ardour/new_session_dialog.cc:53
-msgid "channels"
-msgstr "Kanäle"
+#: gtk2_ardour/plugin_selector.cc:213
+msgid "Author contains"
+msgstr "Autor enthält"
-#: gtk2_ardour/new_session_dialog.cc:71
-msgid "<b>Busses</b>"
-msgstr "<b>Busse</b>"
+#: gtk2_ardour/plugin_selector.cc:215
+msgid "Library contains"
+msgstr "Kategorie enthält"
-#: gtk2_ardour/new_session_dialog.cc:72
-msgid "<b>Inputs</b>"
-msgstr "<b>Eingänge</b>"
+#: gtk2_ardour/plugin_selector.cc:502
+msgid "Favorites"
+msgstr "Favoriten"
-#: gtk2_ardour/new_session_dialog.cc:73
-msgid "<b>Outputs</b>"
-msgstr "<b>Ausgänge</b>"
+#: gtk2_ardour/plugin_selector.cc:503
+msgid "Plugin Manager"
+msgstr "Alle Plugins ..."
-#: gtk2_ardour/new_session_dialog.cc:75
-msgid "Create Folder In :"
-msgstr "Verzeichnis erstellen in:"
+#: gtk2_ardour/tempo_dialog.cc:36
+msgid "edit tempo"
+msgstr "Tempo bearbeiten"
-#: gtk2_ardour/new_session_dialog.cc:77
-msgid "Template :"
-msgstr "Vorlage :"
+#: gtk2_ardour/tempo_dialog.cc:42
+#: gtk2_ardour/tempo_dialog.cc:61
+msgid "Bar"
+msgstr "Takt"
-#: gtk2_ardour/new_session_dialog.cc:79
-msgid "Create Monitor Bus"
-msgstr "Monitor Bus erstellen"
+#: gtk2_ardour/tempo_dialog.cc:43
+#: gtk2_ardour/tempo_dialog.cc:62
+msgid "Beat"
+msgstr "Schlag"
-#: gtk2_ardour/new_session_dialog.cc:86
-msgid "Create Master Bus"
-msgstr "Master Bus erstellen"
+#: gtk2_ardour/tempo_dialog.cc:45
+#: gtk2_ardour/tempo_dialog.cc:64
+#: gtk2_ardour/tempo_dialog.cc:276
+#: gtk2_ardour/tempo_dialog.cc:291
+msgid "Location"
+msgstr "Position"
-#: gtk2_ardour/new_session_dialog.cc:88
-msgid "Automatically Connect to Physical Inputs"
-msgstr "Eingänge automatisch mit Audioeingängen verbinden"
+#: gtk2_ardour/tempo_dialog.cc:77
+#: gtk2_ardour/tempo_dialog.cc:94
+#: gtk2_ardour/tempo_dialog.cc:304
+#: gtk2_ardour/tempo_dialog.cc:322
+msgid "whole (1)"
+msgstr "Ganze (1)"
-#: gtk2_ardour/new_session_dialog.cc:89
-#: gtk2_ardour/new_session_dialog.cc:102
-msgid "Use only"
-msgstr "Benutze nur"
+#: gtk2_ardour/tempo_dialog.cc:78
+#: gtk2_ardour/tempo_dialog.cc:96
+#: gtk2_ardour/tempo_dialog.cc:305
+#: gtk2_ardour/tempo_dialog.cc:324
+msgid "second (2)"
+msgstr "Halbe (2)"
-#: gtk2_ardour/new_session_dialog.cc:101
-msgid "Automatically Connect Outputs"
-msgstr "Ausgänge automatisch verbinden"
+#: gtk2_ardour/tempo_dialog.cc:79
+#: gtk2_ardour/tempo_dialog.cc:98
+#: gtk2_ardour/tempo_dialog.cc:306
+#: gtk2_ardour/tempo_dialog.cc:326
+msgid "third (3)"
+msgstr "Triolen (3)"
-#: gtk2_ardour/new_session_dialog.cc:110
-msgid "... to Master Bus"
-msgstr "... mit Master Bus"
+#: gtk2_ardour/tempo_dialog.cc:80
+#: gtk2_ardour/tempo_dialog.cc:100
+#: gtk2_ardour/tempo_dialog.cc:108
+#: gtk2_ardour/tempo_dialog.cc:307
+#: gtk2_ardour/tempo_dialog.cc:328
+#: gtk2_ardour/tempo_dialog.cc:336
+msgid "quarter (4)"
+msgstr "Viertel (4)"
-#: gtk2_ardour/new_session_dialog.cc:111
-msgid "... to Physical Outputs"
-msgstr "... mit Audioausgängen"
+#: gtk2_ardour/tempo_dialog.cc:81
+#: gtk2_ardour/tempo_dialog.cc:102
+#: gtk2_ardour/tempo_dialog.cc:308
+#: gtk2_ardour/tempo_dialog.cc:330
+msgid "eighth (8)"
+msgstr "Achtel (8)"
-#: gtk2_ardour/new_session_dialog.cc:117
-msgid "Advanced Options"
-msgstr "Erweiterte Einstellungen"
+#: gtk2_ardour/tempo_dialog.cc:82
+#: gtk2_ardour/tempo_dialog.cc:104
+#: gtk2_ardour/tempo_dialog.cc:309
+#: gtk2_ardour/tempo_dialog.cc:332
+msgid "sixteenth (16)"
+msgstr "Sechzehntel (16)"
-#: gtk2_ardour/new_session_dialog.cc:125
-msgid "Recent:"
-msgstr "Zuletzt verwendet:"
+#: gtk2_ardour/tempo_dialog.cc:83
+#: gtk2_ardour/tempo_dialog.cc:106
+#: gtk2_ardour/tempo_dialog.cc:310
+#: gtk2_ardour/tempo_dialog.cc:334
+msgid "thirty-second (32)"
+msgstr "Zweiunddreissigstel (32)"
-#: gtk2_ardour/new_session_dialog.cc:162
-msgid "Browse:"
-msgstr "Durchsuchen:"
+#: gtk2_ardour/tempo_dialog.cc:110
+msgid "Beats Per Minute:"
+msgstr "Schläge pro Minute"
-#: gtk2_ardour/new_session_dialog.cc:350
-msgid "Session Control"
-msgstr "Projektübersicht"
+#: gtk2_ardour/tempo_dialog.cc:150
+msgid "Tempo Begins at:"
+msgstr "Tempo beginnt bei:"
-#: gtk2_ardour/new_session_dialog.cc:393
-msgid "select template"
-msgstr "Vorlage auswählen"
+#: gtk2_ardour/tempo_dialog.cc:246
+#: gtk2_ardour/tempo_dialog.cc:478
+msgid "garbaged note type entry (%1)"
+msgstr "Fehlerhafter Notentyp (%1)"
-#: gtk2_ardour/new_session_dialog.cc:399
-msgid "select session file"
-msgstr "Projektdatei auswählen"
+#: gtk2_ardour/tempo_dialog.cc:256
+#: gtk2_ardour/tempo_dialog.cc:488
+msgid "incomprehensible note type entry (%1)"
+msgstr "Unverständlicher Notentyp (%1)"
-#: gtk2_ardour/new_session_dialog.cc:408
-msgid "select directory"
-msgstr "Verzeichnis auswählen"
+#: gtk2_ardour/tempo_dialog.cc:317
+msgid "thirtq-second (32)"
+msgstr "Zweiunddreissigstel (32)"
-#: gtk2_ardour/new_session_dialog.cc:468
-msgid "Audio Setup"
-msgstr "Audio-Einstellungen"
+#: gtk2_ardour/tempo_dialog.cc:338
+msgid "Note Value:"
+msgstr "Notenwert"
-#: gtk2_ardour/new_session_dialog.cc:492
-msgid "New Session"
-msgstr "Neues Projekt"
+#: gtk2_ardour/tempo_dialog.cc:339
+msgid "Beats Per Bar:"
+msgstr "Schläge pro Takt"
-#: gtk2_ardour/new_session_dialog.cc:497
-msgid "Open Session"
-msgstr "Projekt öffnen"
+#: gtk2_ardour/tempo_dialog.cc:357
+msgid "Meter Begins at Bar:"
+msgstr "Neue Taktart beginnt bei Takt:"
-#: gtk2_ardour/option_editor.cc:77
+#: gtk2_ardour/option_editor.cc:82
msgid "Limit undo history"
msgstr "Begrenze Aktionsliste"
-#: gtk2_ardour/option_editor.cc:78
+#: gtk2_ardour/option_editor.cc:83
msgid "Save undo history"
msgstr "Aktionsliste speichern"
-#: gtk2_ardour/option_editor.cc:83
+#: gtk2_ardour/option_editor.cc:88
msgid "SMPTE offset is negative"
msgstr "Negatives SMPTE-Offset"
-#: gtk2_ardour/option_editor.cc:84
+#: gtk2_ardour/option_editor.cc:89
msgid "Timecode source is sample-clock synced"
-msgstr ""
+msgstr "Timecode-Quelle ist mit Sample-Clock synchronisiert"
-#: gtk2_ardour/option_editor.cc:93
+#: gtk2_ardour/option_editor.cc:98
msgid "Add new MIDI port"
msgstr "Neuen MIDI-Port hinzufügen"
-#: gtk2_ardour/option_editor.cc:145
+#: gtk2_ardour/option_editor.cc:154
msgid "Paths/Files"
msgstr "Pfade"
-#: gtk2_ardour/option_editor.cc:146
+#: gtk2_ardour/option_editor.cc:155
msgid "Kbd/Mouse"
msgstr "Tastatur/Maus"
-#: gtk2_ardour/option_editor.cc:149
+#: gtk2_ardour/option_editor.cc:159
msgid "Misc"
msgstr "Sonstiges"
-#: gtk2_ardour/option_editor.cc:152
+#: gtk2_ardour/option_editor.cc:162
msgid "MIDI"
msgstr "MIDI"
-#: gtk2_ardour/option_editor.cc:222
+#: gtk2_ardour/option_editor.cc:232
msgid "session RAID path"
msgstr "Projektverzeichnis (RAID)"
-#: gtk2_ardour/option_editor.cc:238
-#: gtk2_ardour/option_editor.cc:244
-#: gtk2_ardour/option_editor.cc:933
-#: gtk2_ardour/option_editor.cc:953
+#: gtk2_ardour/option_editor.cc:248
+#: gtk2_ardour/option_editor.cc:254
+#: gtk2_ardour/option_editor.cc:988
+#: gtk2_ardour/option_editor.cc:1008
msgid "internal"
msgstr "intern"
-#: gtk2_ardour/option_editor.cc:257
+#: gtk2_ardour/option_editor.cc:281
+msgid "Font Scaling"
+msgstr "Schriftskalierung"
+
+#: gtk2_ardour/option_editor.cc:295
msgid "Short crossfade length (msecs)"
msgstr "Länge für kurze Crossfades (ms)"
-#: gtk2_ardour/option_editor.cc:269
+#: gtk2_ardour/option_editor.cc:307
msgid "Destructive crossfade length (msecs)"
msgstr "Länge für destruktive Crossfades (ms)"
-#: gtk2_ardour/option_editor.cc:288
+#: gtk2_ardour/option_editor.cc:326
msgid "History depth (commands)"
msgstr "Anzahl der Befehle, die rückgängig gemacht werden können"
-#: gtk2_ardour/option_editor.cc:309
+#: gtk2_ardour/option_editor.cc:347
msgid "Saved history depth (commands)"
msgstr "Anzahl der Befehle, die im Verlauf gespeichert werden"
-#: gtk2_ardour/option_editor.cc:407
+#: gtk2_ardour/option_editor.cc:445
msgid "SMPTE Offset"
msgstr "SMPTE Offset"
-#: gtk2_ardour/option_editor.cc:480
-#, fuzzy
+#: gtk2_ardour/option_editor.cc:518
msgid "Inbound MMC Device ID"
-msgstr "MMC Gerät ID"
+msgstr "ID des ausgehenden MMC-Geräts"
-#: gtk2_ardour/option_editor.cc:490
-#, fuzzy
+#: gtk2_ardour/option_editor.cc:528
msgid "Outbound MMC Device ID"
-msgstr "MMC Gerät ID"
+msgstr "ID des eingehenden MMC-Geräts"
+
+#: gtk2_ardour/option_editor.cc:538
+#, fuzzy
+msgid "Startup program change"
+msgstr "Bereich beginnen"
-#: gtk2_ardour/option_editor.cc:522
+#: gtk2_ardour/option_editor.cc:577
msgid "Port"
msgstr "Port"
-#: gtk2_ardour/option_editor.cc:526
+#: gtk2_ardour/option_editor.cc:581
msgid "Offline"
msgstr "Offline"
-#: gtk2_ardour/option_editor.cc:530
+#: gtk2_ardour/option_editor.cc:585
msgid ""
"Trace\n"
"Input"
@@ -6142,7 +7093,7 @@ msgstr ""
"Verfolge\n"
"Eingang"
-#: gtk2_ardour/option_editor.cc:534
+#: gtk2_ardour/option_editor.cc:589
msgid ""
"Trace\n"
"Output"
@@ -6150,15 +7101,15 @@ msgstr ""
"Verfolge\n"
"Ausgang"
-#: gtk2_ardour/option_editor.cc:538
+#: gtk2_ardour/option_editor.cc:593
msgid "MTC"
msgstr "MTC"
-#: gtk2_ardour/option_editor.cc:542
+#: gtk2_ardour/option_editor.cc:597
msgid "MMC"
msgstr "MMC"
-#: gtk2_ardour/option_editor.cc:546
+#: gtk2_ardour/option_editor.cc:601
msgid ""
"MIDI Parameter\n"
"Control"
@@ -6166,40 +7117,40 @@ msgstr ""
"MIDI Parameter\n"
"Steuerung"
-#: gtk2_ardour/option_editor.cc:585
-#: gtk2_ardour/option_editor.cc:592
-#: gtk2_ardour/option_editor.cc:595
-#: gtk2_ardour/option_editor.cc:808
+#: gtk2_ardour/option_editor.cc:640
+#: gtk2_ardour/option_editor.cc:647
+#: gtk2_ardour/option_editor.cc:650
+#: gtk2_ardour/option_editor.cc:863
msgid "online"
msgstr "Online"
-#: gtk2_ardour/option_editor.cc:592
-#: gtk2_ardour/option_editor.cc:593
-#: gtk2_ardour/option_editor.cc:805
+#: gtk2_ardour/option_editor.cc:647
+#: gtk2_ardour/option_editor.cc:648
+#: gtk2_ardour/option_editor.cc:860
msgid "offline"
msgstr "Offline"
-#: gtk2_ardour/option_editor.cc:709
+#: gtk2_ardour/option_editor.cc:764
msgid "output"
msgstr "Ausgang"
-#: gtk2_ardour/option_editor.cc:880
+#: gtk2_ardour/option_editor.cc:935
msgid "Choose Click"
msgstr "Click auswählen"
-#: gtk2_ardour/option_editor.cc:902
+#: gtk2_ardour/option_editor.cc:957
msgid "Choose Click Emphasis"
msgstr "Click-Betonung auswählen"
-#: gtk2_ardour/option_editor.cc:1005
+#: gtk2_ardour/option_editor.cc:1056
msgid "Click audio file"
msgstr "Audiodatei für Click"
-#: gtk2_ardour/option_editor.cc:1011
+#: gtk2_ardour/option_editor.cc:1062
msgid "Click emphasis audiofile"
msgstr "Audiodatei für Click-Betonung"
-#: gtk2_ardour/option_editor.cc:1048
+#: gtk2_ardour/option_editor.cc:1111
msgid ""
"The auditioner is a dedicated mixer strip used\n"
"for listening to specific regions outside the context\n"
@@ -6212,130 +7163,98 @@ msgstr ""
"Dieser Bus lässt sich wie jeder andere Mixer-Kanal\n"
"verbinden."
-#: gtk2_ardour/option_editor.cc:1139
+#: gtk2_ardour/option_editor.cc:1203
msgid "Edit using"
msgstr "Bearbeiten mit"
-#: gtk2_ardour/option_editor.cc:1146
-#: gtk2_ardour/option_editor.cc:1173
+#: gtk2_ardour/option_editor.cc:1210
+#: gtk2_ardour/option_editor.cc:1237
msgid "+ button"
msgstr "und Maustaste"
-#: gtk2_ardour/option_editor.cc:1166
+#: gtk2_ardour/option_editor.cc:1230
msgid "Delete using"
msgstr "Entfernen mit"
-#: gtk2_ardour/option_editor.cc:1193
+#: gtk2_ardour/option_editor.cc:1257
msgid "Ignore snap using"
msgstr "Einrasten übergehen mit"
-#: gtk2_ardour/opts.cc:49
-msgid "Usage: "
-msgstr "Aufruf:"
-
-#: gtk2_ardour/opts.cc:50
-msgid " -v, --version Show version information\n"
-msgstr " -v, --version Versionsinformation ausgeben\n"
+#: gtk2_ardour/option_editor.cc:1274
+msgid "Keyboard layout"
+msgstr "Tastaturlayout"
-#: gtk2_ardour/opts.cc:51
-msgid " -h, --help Print this message\n"
-msgstr " -h, --help Diese Hinweise\n"
+#: gtk2_ardour/rhythm_ferret.cc:50
+msgid "Operation"
+msgstr "Aktionen"
-#: gtk2_ardour/opts.cc:52
-msgid " -b, --bindings Print all possible keyboard binding names\n"
-msgstr " -b, --bindings Alle möglichen Tastenzuweisungsnamen ausgeben\n"
-
-#: gtk2_ardour/opts.cc:53
-msgid " -c, --name name Use a specific jack client name, default is ardour\n"
-msgstr " -c, --name name Benutze spezielle JACK-Clientkennung, Standard: ardour\n"
-
-#: gtk2_ardour/opts.cc:54
-msgid " -d, --disable-plugins Disable all plugins in an existing session\n"
-msgstr ""
-
-#: gtk2_ardour/opts.cc:55
-msgid " -n, --show-splash Show splash screen\n"
-msgstr " -n, --show-splash Zeige Splashscreen\n"
-
-#: gtk2_ardour/opts.cc:56
-msgid " -m, --menus file Use \"file\" for Ardour menus\n"
-msgstr " -m, --menus file Benutze \"file\" für Ardour-Menüs\n"
-
-#: gtk2_ardour/opts.cc:57
-msgid " -N, --new session-name Create a new session from the command line\n"
-msgstr " -N, --new session-name Erstelle neues Projekt aus der Kommandozeile\n"
-
-#: gtk2_ardour/opts.cc:58
-msgid " -O, --no-hw-optimizations Disable h/w specific optimizations\n"
-msgstr " -O, --no-hw-optimizations Hardwarespezifische Optimierungen deaktivieren\n"
+#: gtk2_ardour/rhythm_ferret.cc:51
+msgid "Selection"
+msgstr "Auswahl"
-#: gtk2_ardour/opts.cc:59
-msgid " -S, --sync\t Draw the gui synchronously \n"
-msgstr " -S, --sync\t Zeichne die GUI synchron \n"
+#: gtk2_ardour/rhythm_ferret.cc:52
+msgid "Analysis"
+msgstr "Analyse"
-#: gtk2_ardour/opts.cc:61
-msgid " -V, --novst Do not use VST support\n"
-msgstr " -V, --novst VST-Unterstützung ausschalten\n"
+#: gtk2_ardour/rhythm_ferret.cc:55
+msgid "Set Tempo Map"
+msgstr "Tempowechsel einfügen"
-#: gtk2_ardour/opts.cc:63
-msgid " [session-name] Name of session to load\n"
-msgstr " [session-name] Name des zu ladenden Projekts\n"
+#: gtk2_ardour/rhythm_ferret.cc:56
+msgid "Conform Region"
+msgstr "Region angleichen"
-#: gtk2_ardour/opts.cc:64
-msgid " -C, --curvetest filename Curve algorithm debugger\n"
-msgstr " -C, --curvetest filename Kurvenalgorithmus debuggen\n"
+#: gtk2_ardour/rhythm_ferret.cc:57
+msgid "Mode"
+msgstr "Modus"
-#: gtk2_ardour/opts.cc:65
-msgid " -k, --keybindings filename Name of key bindings to load (default is ~/.ardour2/ardour.bindings)\n"
-msgstr " -k, --keybindings filename Dateiname für die Tastaturbelegungen (Standard: ~/.ardour2/ardour.bindings)\n"
+#: gtk2_ardour/rhythm_ferret.cc:60
+msgid "Threshold"
+msgstr "Schwellwert"
-#: gtk2_ardour/pan_automation_time_axis.cc:69
-msgid "You need to select which line to edit"
-msgstr "Sie müssen die entsprechende Automationslinie auswählen"
+#: gtk2_ardour/rhythm_ferret.cc:63
+msgid "Sensitivity"
+msgstr "Empfindlichkeit"
-#: gtk2_ardour/pan_automation_time_axis.cc:90
-msgid "add pan automation event"
-msgstr "Pan-Automationspunkt einfügen"
+#: gtk2_ardour/rhythm_ferret.cc:64
+msgid "Analyze"
+msgstr "Daten analysieren"
-#: gtk2_ardour/panner2d.cc:588
-#: gtk2_ardour/panner_ui.cc:412
-#: gtk2_ardour/plugin_ui.cc:221
-msgid "Bypass"
-msgstr "Bypass"
+#: gtk2_ardour/rhythm_ferret.cc:65
+msgid "Detection function"
+msgstr "Erkennungsfunktion"
-#: gtk2_ardour/panner_ui.cc:58
-#: gtk2_ardour/panner_ui.cc:217
-msgid "link"
-msgstr "link"
+#: gtk2_ardour/rhythm_ferret.cc:68
+msgid "Peak Threshold"
+msgstr "Laut-Schwellwert (dB)"
-#: gtk2_ardour/panner_ui.cc:69
-msgid "Pan automation mode"
-msgstr "Pan-Automationsmodus"
+#: gtk2_ardour/rhythm_ferret.cc:71
+msgid "Silent Threshold (dB)"
+msgstr "Ruhe-Schwellwert (dB)"
-#: gtk2_ardour/panner_ui.cc:70
-msgid "Pan automation type"
-msgstr "Pan-Automationstyp"
+#: gtk2_ardour/rhythm_ferret.cc:74
+msgid "Trigger gap (msecs)"
+msgstr "Mindestauslöseabstand (msec)"
-#: gtk2_ardour/panner_ui.cc:80
-msgid "panning link control"
-msgstr "Pan-Regler verbinden"
+#: gtk2_ardour/rhythm_ferret.cc:394
+msgid "split regions (rhythm ferret)"
+msgstr "Regionen teilen (rhythm ferret)"
-#: gtk2_ardour/panner_ui.cc:82
-msgid "panning link direction"
-msgstr "Richtung der Verbindung"
+#: gtk2_ardour/ardour_ui_dependents.cc:74
+msgid "Setup Editor"
+msgstr "Editor laden"
-#: gtk2_ardour/panner_ui.cc:220
-msgid "L"
-msgstr "L"
+#: gtk2_ardour/ardour_ui_dependents.cc:76
+msgid "Setup Mixer"
+msgstr "Mixer laden"
-#: gtk2_ardour/panner_ui.cc:333
-#, c-format
-msgid "panner for channel %zu"
-msgstr "Pan-Regler für Kanal %zu"
+#: gtk2_ardour/ardour_ui_dependents.cc:81
+msgid "Reload Session History"
+msgstr "Projektverlauf laden"
-#: gtk2_ardour/panner_ui.cc:422
-msgid "Reset all"
-msgstr "Alle zurücksetzen"
+#: gtk2_ardour/splash.cc:42
+msgid "Ardour loading ..."
+msgstr "Ardour startet ..."
#: gtk2_ardour/playlist_selector.cc:58
msgid "Playlists"
@@ -6345,6 +7264,11 @@ msgstr "Wiedergabelisten"
msgid "Playlists grouped by track"
msgstr "Wiedergabelisten, nach Spur gruppiert"
+#: gtk2_ardour/playlist_selector.cc:73
+#: gtk2_ardour/ardour_ui_dialogs.cc:169
+msgid "close"
+msgstr "Schließen"
+
#: gtk2_ardour/playlist_selector.cc:112
msgid "Playlist for %1"
msgstr "Wiedergabeliste für %1"
@@ -6357,925 +7281,340 @@ msgstr "Andere Spuren"
msgid "unassigned"
msgstr "nicht zugewiesen"
-#: gtk2_ardour/plugin_selector.cc:50
-#: gtk2_ardour/plugin_selector.cc:190
-msgid "Name contains"
-msgstr "Name enthält"
-
-#: gtk2_ardour/plugin_selector.cc:51
-#: gtk2_ardour/plugin_selector.cc:192
-msgid "Type contains"
-msgstr ""
-
-#: gtk2_ardour/plugin_selector.cc:52
-#: gtk2_ardour/plugin_selector.cc:194
-msgid "Author contains"
-msgstr "Autor enthält"
-
-#: gtk2_ardour/plugin_selector.cc:53
-#: gtk2_ardour/plugin_selector.cc:196
-msgid "Library contains"
-msgstr ""
-
-#: gtk2_ardour/plugin_selector.cc:58
-msgid "ardour: plugins"
-msgstr "ardour: Plugins"
-
-#: gtk2_ardour/plugin_selector.cc:70
-msgid "Available Plugins"
-msgstr "Verfügbare Plugins"
-
-#: gtk2_ardour/plugin_selector.cc:71
-msgid "Type"
-msgstr "Typ"
-
-#: gtk2_ardour/plugin_selector.cc:72
-msgid "Category"
-msgstr ""
-
-#: gtk2_ardour/plugin_selector.cc:73
-msgid "Creator"
-msgstr "Ersteller"
-
-#: gtk2_ardour/plugin_selector.cc:74
-msgid "# Inputs"
-msgstr "Eingänge"
-
-#: gtk2_ardour/plugin_selector.cc:75
-msgid "# Outputs"
-msgstr "Ausgänge"
-
-#: gtk2_ardour/plugin_selector.cc:85
-msgid "Plugins to be connected"
-msgstr "Plugins, die verbunden werden"
-
-#: gtk2_ardour/plugin_selector.cc:98
-msgid "Add a plugin to the effect list"
-msgstr "Plugin zur Effektliste hinzufügen"
-
-#: gtk2_ardour/plugin_selector.cc:102
-msgid "Remove a plugin from the effect list"
-msgstr "Plugin aus der Effektliste entfernen"
-
-#: gtk2_ardour/plugin_selector.cc:104
-msgid "Update available plugins"
-msgstr "Verfügbare Plugins auffrischen"
-
-#: gtk2_ardour/plugin_selector.cc:141
-msgid "Insert Plugin(s)"
-msgstr "Plugin(s) einfügen"
-
-#: gtk2_ardour/plugin_ui.cc:81
-msgid "Eh? LADSPA plugins don't have editors!"
-msgstr ""
-
-#: gtk2_ardour/plugin_ui.cc:85
-#: gtk2_ardour/plugin_ui.cc:141
-msgid "unknown type of editor-supplying plugin (note: no VST support in this version of ardour)"
-msgstr "Unbekannter Plugintyp (Hinweis: diese ardour-Version unterstützt keine VST-Plugins)"
-
-#: gtk2_ardour/plugin_ui.cc:241
-msgid "Plugin preset %1 not found"
-msgstr "Plugin Preset %1 nicht gefunden"
-
-#: gtk2_ardour/plugin_ui.cc:251
-msgid "Name of New Preset:"
-msgstr "Name für neue Voreinstellung:"
-
-#: gtk2_ardour/redirect_automation_line.cc:53
-msgid "redirect automation created for non-plugin"
-msgstr "Redirect-Automation für ein nicht-Plugin erstellt"
-
-#: gtk2_ardour/redirect_automation_time_axis.cc:95
-msgid "add automation event to "
-msgstr "Automationspunkt einfügen für"
-
-#: gtk2_ardour/redirect_box.cc:237
-msgid "New send"
-msgstr "Neuer Send"
-
-#: gtk2_ardour/redirect_box.cc:238
-msgid "Show send controls"
-msgstr "Zeige Send-Steuerung"
-
-#: gtk2_ardour/redirect_box.cc:413
-#: gtk2_ardour/redirect_box.cc:708
-msgid "ardour: weird plugin dialog"
-msgstr "ardour: Merkwürdiger Plugin-Dialog"
-
-#: gtk2_ardour/redirect_box.cc:420
-msgid ""
-"You attempted to add a plugin (%1).\n"
-"The plugin has %2 inputs\n"
-"but at the insertion point, there are\n"
-"%3 active signal streams.\n"
-"\n"
-"This makes no sense - you are throwing away\n"
-"part of the signal."
-msgstr ""
-"Sie möchten ein Plugin hinzufügen (%1).\n"
-"Dieses Plugin besitzt %2 Eingänge,\n"
-"doch an dieser Position existieren\n"
-"%3 aktive Signale.\n"
-"\n"
-"Das ist nicht möglich - es würden Teile\n"
-"des Signals fehlen."
-
-#: gtk2_ardour/redirect_box.cc:432
-msgid ""
-"You attempted to add a plugin (%1).\n"
-"The plugin has %2 inputs\n"
-"but at the insertion point there are\n"
-"only %3 active signal streams.\n"
-"\n"
-"This makes no sense - unless the plugin supports\n"
-"side-chain inputs. A future version of Ardour will\n"
-"support this type of configuration."
-msgstr ""
-"Sie möchten ein Plugin hinzufügen (%1).\n"
-"Dieses Plugin besitzt %2 Eingänge,\n"
-"doch an dieser Position existieren\n"
-"nur %3 aktive Signale.\n"
-"\n"
-"Das ist nicht möglich - außer, wenn dieses Plugin\n"
-"Side-Chain-Eingänge unterstützt. Dies wird in einer\n"
-"der nächsten Versionen von ardour möglich sein."
-
-#: gtk2_ardour/redirect_box.cc:445
-msgid ""
-"You attempted to add a plugin (%1).\n"
-"\n"
-"The I/O configuration doesn't make sense:\n"
-"\n"
-"The plugin has %2 inputs and %3 outputs.\n"
-"The track/bus has %4 inputs and %5 outputs.\n"
-"The insertion point, has %6 active signals.\n"
-"\n"
-"Ardour does not understand what to do in such situations.\n"
-msgstr ""
-"Sie möchten ein Plugin hinzufügen (%1).\n"
-"\n"
-"Die Ein-/Ausgangskonfiguration ist aber nicht möglich:\n"
-"\n"
-"Das Plugin besitzt %2 Eingänge und %3 Ausgänge.\n"
-"Diese Spur besitzt %4 Eingänge und %5 Ausgänge.\n"
-"An dieser Position existieren %6 aktive Signale.\n"
-"\n"
-"Ardour kann mit dieser Situation nicht umgehen.\n"
-
-#: gtk2_ardour/redirect_box.cc:542
-msgid "Pre-fader inserts, sends & plugins:"
-msgstr "Pre-Fader Inserts, Sends & Plugins:"
-
-#: gtk2_ardour/redirect_box.cc:545
-msgid "Post-fader inserts, sends & plugins:"
-msgstr "Post-Fader Inserts, Sends & Plugins:"
-
-#: gtk2_ardour/redirect_box.cc:711
-msgid ""
-"You cannot reorder this set of redirects\n"
-"in that way because the inputs and\n"
-"outputs do not work correctly."
-msgstr ""
-"Sie können diese Gruppe von Redirects\n"
-"nicht auf diese Weise verändern, denn\n"
-"die Ein-/Ausgänge arbeiten ncht korrekt."
-
-#: gtk2_ardour/redirect_box.cc:858
-msgid "rename redirect"
-msgstr "Redirect umbenennen"
-
-#: gtk2_ardour/redirect_box.cc:934
-#: gtk2_ardour/redirect_box.cc:983
-msgid ""
-"Copying the set of redirects on the clipboard failed,\n"
-"probably because the I/O configuration of the plugins\n"
-"could not match the configuration of this track."
-msgstr ""
-"Konnte diese Gruppe von Redirects nicht in die\n"
-"Zwischenablage kopieren. Wahrscheinlich passt die\n"
-"Ein-/Ausgangskonfiguration des Plugins nicht zu dieser Spur."
-
-#: gtk2_ardour/redirect_box.cc:1006
-msgid ""
-"Do you really want to remove all pre-fader redirects from this track?\n"
-"(this cannot be undone)"
-msgstr ""
-"Wollen Sie wirklich alle Pre-Fader-Redirects von dieser Spur entfernen?\n"
-"(Dies kann nicht rückgängig gemacht werden)"
-
-#: gtk2_ardour/redirect_box.cc:1009
-msgid ""
-"Do you really want to remove all post-fader redirects from this track?\n"
-"(this cannot be undone)"
-msgstr ""
-"Wollen Sie wirklich alle Post-Fader-Redirects von dieser Spur entfernen?\n"
-"(Dies kann nicht rückgängig gemacht werden)"
+#: gtk2_ardour/imageframe_time_axis.cc:285
+msgid "0.5 seconds"
+msgstr "0,5 Sekunden"
-#: gtk2_ardour/redirect_box.cc:1014
-msgid ""
-"Do you really want to remove all pre-fader redirects from this bus?\n"
-"(this cannot be undone)"
-msgstr ""
-"Wollen Sie wirklich alle Pre-Fader-Redirects von diesem Bus entfernen?\n"
-"(Dies kann nicht rückgängig gemacht werden)"
+#: gtk2_ardour/imageframe_time_axis.cc:300
+msgid "Remove Frame"
+msgstr "Frame löschen"
-#: gtk2_ardour/redirect_box.cc:1017
-msgid ""
-"Do you really want to remove all post-fader redirects from this bus?\n"
-"(this cannot be undone)"
+#: gtk2_ardour/imageframe_time_axis.cc:303
+#, fuzzy
+msgid "Image Frame"
msgstr ""
-"Wollen Sie wirklich alle Post-Fader-Redirects von diesem Bus entfernen?\n"
-"(Dies kann nicht rückgängig gemacht werden)"
-
-#: gtk2_ardour/redirect_box.cc:1023
-msgid "Yes, remove them all"
-msgstr "Ja, alle löschen"
-
-#: gtk2_ardour/redirect_box.cc:1173
-msgid "New Plugin ..."
-msgstr "Plugin einfügen..."
-
-#: gtk2_ardour/redirect_box.cc:1175
-msgid "New Insert"
-msgstr "Insert einfügen"
-
-#: gtk2_ardour/redirect_box.cc:1177
-msgid "New Send ..."
-msgstr "Send einfügen..."
-
-#: gtk2_ardour/redirect_box.cc:1202
-msgid "Activate all"
-msgstr "Alle aktivieren"
-
-#: gtk2_ardour/redirect_box.cc:1203
-msgid "Deactivate all"
-msgstr "Alle deaktivieren"
-
-#: gtk2_ardour/redirect_box.cc:1396
-msgid "%1: %2 (by %3)"
-msgstr "%1: %2 (by %3)"
-
-#: gtk2_ardour/audio_region_editor.cc:48
-msgid "NAME:"
-msgstr "Name:"
-
-#: gtk2_ardour/audio_region_editor.cc:49
-msgid "play"
-msgstr "Play"
-
-#: gtk2_ardour/audio_region_editor.cc:68
-msgid "audition this region"
-msgstr "Diese Region Vorhören"
-
-#: gtk2_ardour/audio_region_editor.cc:83
-msgid "START:"
-msgstr "Beginn:"
-
-#: gtk2_ardour/audio_region_editor.cc:85
-msgid "END:"
-msgstr "Ende:"
-
-#: gtk2_ardour/audio_region_editor.cc:87
-msgid "LENGTH:"
-msgstr "Längess:"
-
-#: gtk2_ardour/audio_region_editor.cc:123
-msgid "Region %1"
-msgstr "Region %1"
-
-#: gtk2_ardour/audio_region_editor.cc:204
-msgid "change region start position"
-msgstr "Startposition der Region ändern"
-
-#: gtk2_ardour/audio_region_editor.cc:221
-msgid "change region end position"
-msgstr "Endposition der Region ändern"
-
-#: gtk2_ardour/audio_region_editor.cc:242
-msgid "change region length"
-msgstr "Länge der Region verändern"
-
-#: gtk2_ardour/audio_region_view.cc:922
-msgid "add gain control point"
-msgstr "Lautstärkekurve bearbeiten"
-#: gtk2_ardour/route_params_ui.cc:85
-msgid "Tracks/Buses"
-msgstr "Spuren/Busse"
-
-#: gtk2_ardour/route_params_ui.cc:105
-msgid "Pre-fader Redirects"
-msgstr "Pre-Fader Redirects"
-
-#: gtk2_ardour/route_params_ui.cc:106
-msgid "Post-fader Redirects"
-msgstr "Post-Fader Redirects"
-
-#: gtk2_ardour/route_params_ui.cc:205
-msgid "route display list item for renamed route not found!"
-msgstr "Konnte Bezeichnung für umbenannten Verbindung nicht in der Liste der Verbindungen finden!"
-
-#: gtk2_ardour/route_params_ui.cc:452
-msgid "NO TRACK"
-msgstr "KEINE SPUR"
-
-#: gtk2_ardour/route_params_ui.cc:682
-#: gtk2_ardour/route_params_ui.cc:683
-msgid "No Route Selected"
-msgstr "Keine Route ausgewählt"
-
-#: gtk2_ardour/route_ui.cc:156
-msgid "mute change"
-msgstr "Mute ändern"
-
-#: gtk2_ardour/route_ui.cc:234
-#: gtk2_ardour/route_ui.cc:245
-msgid "solo change"
-msgstr "Solo ändern"
-
-#: gtk2_ardour/route_ui.cc:303
-msgid "Not connected to JACK - cannot engage record"
-msgstr "Nicht mit JACK verbunden - konnte die Aufnahme nicht starten"
-
-#: gtk2_ardour/route_ui.cc:317
-msgid "rec-enable change"
-msgstr "Aufnahmestatus ändern"
+#: gtk2_ardour/main.cc:187
+msgid "cannot create user ardour folder %1 (%2)"
+msgstr "Kann benutzerspezifischen Ardour-Ordner %1 nicht erstellen: %2"
-#: gtk2_ardour/route_ui.cc:555
-msgid "Solo-safe"
-msgstr "Solo-Safe"
-
-#: gtk2_ardour/route_ui.cc:577
-msgid "Pre Fader"
-msgstr "Pre Fader"
-
-#: gtk2_ardour/route_ui.cc:584
-msgid "Post Fader"
-msgstr "Post Fader"
-
-#: gtk2_ardour/route_ui.cc:591
-msgid "Control Outs"
-msgstr "Vorhörausgang"
-
-#: gtk2_ardour/route_ui.cc:598
-msgid "Main Outs"
-msgstr "Main Ausgänge"
-
-#: gtk2_ardour/route_ui.cc:635
-msgid "mix group solo change"
-msgstr "Mixergruppe Solo-Status ändern"
-
-#: gtk2_ardour/route_ui.cc:674
-msgid "mix group mute change"
-msgstr "Mixergruppe Mute-Status ändern"
+#: gtk2_ardour/main.cc:195
+msgid "cannot open pango.rc file %1"
+msgstr "kann die Datei pango.rc nicht öffnen %1"
-#: gtk2_ardour/route_ui.cc:691
-msgid "mix group rec-enable change"
-msgstr "Mixergruppe Aufnahmestatus ändern"
+#: gtk2_ardour/main.cc:244
+msgid "SIGPIPE received - JACK has probably died"
+msgstr "SIGPIPE empfangen - möglicherweise ist JACK abgestürzt"
-#: gtk2_ardour/route_ui.cc:709
-#: gtk2_ardour/visual_time_axis.cc:241
-msgid "ardour: color selection"
-msgstr "ardour: Farbe auswählen"
+#: gtk2_ardour/main.cc:292
+msgid "Ardour/GTK "
+msgstr "Ardour/GTK "
-#: gtk2_ardour/route_ui.cc:785
+#: gtk2_ardour/main.cc:294
msgid ""
-"Do you really want to remove track \"%1\" ?\n"
"\n"
-"You may also lose the playlist used by this track.\n"
-"(cannot be undone)"
+" (built using "
msgstr ""
-"Wollen Sie wirklich die Spur \"%1\" löschen?\n"
"\n"
-"Sie werden auch die Wiedergabeliste, die diese Spur benutzt verlieren.\n"
-"(Dies kann nicht rückgängig gemacht werden!)"
-
-#: gtk2_ardour/route_ui.cc:787
-msgid ""
-"Do you really want to remove bus \"%1\" ?\n"
-"(cannot be undone)"
-msgstr ""
-"Wollen Sie den Bus \"%1\" wirklich löschen?\n"
-"(Dies kann nicht rückgängig gemacht werden!)"
-
-#: gtk2_ardour/route_ui.cc:812
-msgid "New Name: "
-msgstr "Neuer Name: "
-
-#: gtk2_ardour/sfdb_ui.cc:81
-#, fuzzy
-msgid "programming error: unknown import mode string %1"
-msgstr "Programmierfehler: unbekanntes Fernsteuerungsmodell in ARDOUR_UI::set_remote_model: %1"
-
-#: gtk2_ardour/sfdb_ui.cc:91
-#: gtk2_ardour/sfdb_ui.cc:100
-msgid "as new tracks"
-msgstr "als neue Spuren"
-
-#: gtk2_ardour/sfdb_ui.cc:93
-msgid "to selected tracks"
-msgstr "zu ausgewählten Spuren"
-
-#: gtk2_ardour/sfdb_ui.cc:95
-msgid "to region list"
-msgstr "zur Liste der Regionen"
-
-#: gtk2_ardour/sfdb_ui.cc:97
-msgid "as new tape tracks"
-msgstr "als neue Tape-Spuren"
-
-#: gtk2_ardour/sfdb_ui.cc:109
-msgid "Auto-play"
-msgstr "Auto-Play"
-
-#: gtk2_ardour/sfdb_ui.cc:118
-#: gtk2_ardour/sfdb_ui.cc:228
-msgid "<b>Soundfile Info</b>"
-msgstr "<b>Eigenschaften der Audiodatei</b>"
-
-#: gtk2_ardour/sfdb_ui.cc:129
-msgid "Length:"
-msgstr "Länge:"
-
-#: gtk2_ardour/sfdb_ui.cc:130
-msgid "Timestamp:"
-msgstr "Zeitstempel:"
-
-#: gtk2_ardour/sfdb_ui.cc:131
-msgid "Format:"
-msgstr "Format:"
-
-#: gtk2_ardour/sfdb_ui.cc:132
-msgid "Channels:"
-msgstr "Kanäle:"
-
-#: gtk2_ardour/sfdb_ui.cc:133
-#: gtk2_ardour/sfdb_ui.cc:248
-#: gtk2_ardour/sfdb_ui.cc:253
-msgid "Sample rate:"
-msgstr "Samplerate:"
-
-#: gtk2_ardour/sfdb_ui.cc:165
-msgid "Tags:"
-msgstr "Stichworte:"
-
-#: gtk2_ardour/sfdb_ui.cc:175
-msgid "Play (double click)"
-msgstr "Wiedergabe (Doppelklick)"
-
-#: gtk2_ardour/sfdb_ui.cc:229
-#: gtk2_ardour/sfdb_ui.cc:230
-#: gtk2_ardour/sfdb_ui.cc:231
-msgid "n/a"
-msgstr ""
-
-#: gtk2_ardour/sfdb_ui.cc:306
-msgid "Could not read file: %1 (%2)."
-msgstr "Konnte Datei nicht lesen: %1 (%2)."
-
-#: gtk2_ardour/sfdb_ui.cc:326
-msgid "Could not access soundfile: "
-msgstr "Konnte auf Audiodatei nicht zugreifen: "
-
-#: gtk2_ardour/sfdb_ui.cc:372
-msgid "SoundFileBox: Could not tokenize string: "
-msgstr ""
-
-#: gtk2_ardour/sfdb_ui.cc:392
-msgid "Search"
-msgstr "Suchen"
-
-#: gtk2_ardour/sfdb_ui.cc:421
-msgid "Paths"
-msgstr "Pfade"
-
-#: gtk2_ardour/sfdb_ui.cc:425
-msgid "Browse Files"
-msgstr "Durchsuchen"
-
-#: gtk2_ardour/sfdb_ui.cc:426
-msgid "Search Tags"
-msgstr "Stichwortsuche"
-
-#: gtk2_ardour/sfdb_ui.cc:434
-msgid "Audio files"
-msgstr "Audiodateien"
-
-#: gtk2_ardour/sfdb_ui.cc:437
-msgid "All files"
-msgstr "Alle Dateien"
-
-#: gtk2_ardour/sfdb_ui.cc:598
-msgid "SoundFileBrowser: Could not tokenize string: "
-msgstr ""
-
-#: gtk2_ardour/sfdb_ui.cc:766
-#: gtk2_ardour/sfdb_ui.cc:1049
-#: gtk2_ardour/sfdb_ui.cc:1091
-msgid "one track per file"
-msgstr "eine Spur pro Datei"
-
-#: gtk2_ardour/sfdb_ui.cc:769
-#: gtk2_ardour/sfdb_ui.cc:1092
-msgid "one track per channel"
-msgstr "eine Spur pro Kanal"
-
-#: gtk2_ardour/sfdb_ui.cc:777
-#: gtk2_ardour/sfdb_ui.cc:1094
-#, fuzzy
-msgid "sequence files"
-msgstr "aufgeräumte Dateien"
-
-#: gtk2_ardour/sfdb_ui.cc:780
-#: gtk2_ardour/sfdb_ui.cc:794
-#: gtk2_ardour/sfdb_ui.cc:1098
-msgid "all files in one region"
-msgstr "alle Dateien in einer Region"
-
-#: gtk2_ardour/sfdb_ui.cc:786
-#: gtk2_ardour/sfdb_ui.cc:1096
-msgid "one region per file"
-msgstr "eine Region pro Datei"
-
-#: gtk2_ardour/sfdb_ui.cc:789
-#: gtk2_ardour/sfdb_ui.cc:1097
-msgid "one region per channel"
-msgstr "eine Region pro Kanal"
-
-#: gtk2_ardour/sfdb_ui.cc:847
-msgid ""
-"One or more of the selected files\n"
-"cannot be used by Ardour"
-msgstr ""
-"Eine oder mehrere der ausgewählten Dateien\n"
-"können nicht von Ardour benutzt werden"
-
-#: gtk2_ardour/sfdb_ui.cc:978
-msgid "Copy files to session"
-msgstr "Kopiere Dateien zum Projekt"
-
-#: gtk2_ardour/sfdb_ui.cc:994
-#: gtk2_ardour/sfdb_ui.cc:1129
-msgid "use file timestamp"
-msgstr "verwende Datei-Zeitstempel"
-
-#: gtk2_ardour/sfdb_ui.cc:995
-#: gtk2_ardour/sfdb_ui.cc:1131
-msgid "at edit point"
-msgstr "am Arbeitspunkt"
-
-#: gtk2_ardour/sfdb_ui.cc:996
-#: gtk2_ardour/sfdb_ui.cc:1133
-msgid "at playhead"
-msgstr "am Positionszeiger"
-
-#: gtk2_ardour/sfdb_ui.cc:997
-msgid "at session start"
-msgstr "am Projektanfang"
-
-#: gtk2_ardour/sfdb_ui.cc:1002
-msgid "Add files:"
-msgstr "Dateien hinzufügen:"
-
-#: gtk2_ardour/sfdb_ui.cc:1024
-msgid "Insert:"
-msgstr "Einfügen:"
-
-#: gtk2_ardour/sfdb_ui.cc:1037
-msgid "Mapping:"
-msgstr ""
-
-#: gtk2_ardour/sfdb_ui.cc:1055
-msgid "Conversion Quality:"
-msgstr "Konvertierungsqualität:"
-
-#: gtk2_ardour/sfdb_ui.cc:1067
-#: gtk2_ardour/sfdb_ui.cc:1145
-msgid "Best"
-msgstr "bestmöglich"
-
-#: gtk2_ardour/sfdb_ui.cc:1068
-#: gtk2_ardour/sfdb_ui.cc:1147
-msgid "Good"
-msgstr "gut"
-
-#: gtk2_ardour/sfdb_ui.cc:1069
-#: gtk2_ardour/sfdb_ui.cc:1149
-msgid "Quick"
-msgstr "schnell"
-
-#: gtk2_ardour/sfdb_ui.cc:1093
-msgid "merge files"
-msgstr "Dateien zusammenfügen"
-
-#: gtk2_ardour/sfdb_ui.cc:1170
-msgid "programming error: %1 (%2)"
-msgstr "Programmierfehler: %1 (%2)"
-
-#: gtk2_ardour/tempo_dialog.cc:36
-msgid "edit tempo"
-msgstr "Tempo bearbeiten"
-
-#: gtk2_ardour/tempo_dialog.cc:39
-#: gtk2_ardour/tempo_dialog.cc:59
-msgid "Beats per minute"
-msgstr "Schläge pro Minute"
-
-#: gtk2_ardour/tempo_dialog.cc:40
-msgid "BPM denominator"
-msgstr "BPM Zählzeit"
-
-#: gtk2_ardour/tempo_dialog.cc:43
-#: gtk2_ardour/tempo_dialog.cc:62
-#: gtk2_ardour/tempo_dialog.cc:257
-#: gtk2_ardour/tempo_dialog.cc:275
-msgid "Bar"
-msgstr "Takt"
-
-#: gtk2_ardour/tempo_dialog.cc:44
-#: gtk2_ardour/tempo_dialog.cc:63
-#: gtk2_ardour/tempo_dialog.cc:258
-#: gtk2_ardour/tempo_dialog.cc:276
-msgid "Beat"
-msgstr "Schlag"
-
-#: gtk2_ardour/tempo_dialog.cc:46
-#: gtk2_ardour/tempo_dialog.cc:65
-#: gtk2_ardour/tempo_dialog.cc:259
-#: gtk2_ardour/tempo_dialog.cc:277
-msgid "Location"
-msgstr "Position"
-
-#: gtk2_ardour/tempo_dialog.cc:78
-#: gtk2_ardour/tempo_dialog.cc:95
-#: gtk2_ardour/tempo_dialog.cc:290
-#: gtk2_ardour/tempo_dialog.cc:308
-msgid "whole (1)"
-msgstr "Ganze (1)"
-
-#: gtk2_ardour/tempo_dialog.cc:79
-#: gtk2_ardour/tempo_dialog.cc:97
-#: gtk2_ardour/tempo_dialog.cc:291
-#: gtk2_ardour/tempo_dialog.cc:310
-msgid "second (2)"
-msgstr "Halbe (2)"
-
-#: gtk2_ardour/tempo_dialog.cc:80
-#: gtk2_ardour/tempo_dialog.cc:99
-#: gtk2_ardour/tempo_dialog.cc:292
-#: gtk2_ardour/tempo_dialog.cc:312
-msgid "third (3)"
-msgstr "Triolen (3)"
-
-#: gtk2_ardour/tempo_dialog.cc:81
-#: gtk2_ardour/tempo_dialog.cc:101
-#: gtk2_ardour/tempo_dialog.cc:109
-#: gtk2_ardour/tempo_dialog.cc:293
-#: gtk2_ardour/tempo_dialog.cc:314
-#: gtk2_ardour/tempo_dialog.cc:322
-msgid "quarter (4)"
-msgstr "Viertel (4)"
-
-#: gtk2_ardour/tempo_dialog.cc:82
-#: gtk2_ardour/tempo_dialog.cc:103
-#: gtk2_ardour/tempo_dialog.cc:294
-#: gtk2_ardour/tempo_dialog.cc:316
-msgid "eighth (8)"
-msgstr "Achtel (8)"
-
-#: gtk2_ardour/tempo_dialog.cc:83
-#: gtk2_ardour/tempo_dialog.cc:105
-#: gtk2_ardour/tempo_dialog.cc:295
-#: gtk2_ardour/tempo_dialog.cc:318
-msgid "sixteenth (16)"
-msgstr "Sechzehntel (16)"
-
-#: gtk2_ardour/tempo_dialog.cc:84
-#: gtk2_ardour/tempo_dialog.cc:107
-#: gtk2_ardour/tempo_dialog.cc:296
-#: gtk2_ardour/tempo_dialog.cc:320
-msgid "thirty-second (32)"
-msgstr "Zweiunddreissigstel (32)"
-
-#: gtk2_ardour/tempo_dialog.cc:225
-#: gtk2_ardour/tempo_dialog.cc:479
-msgid "garbaged note type entry (%1)"
-msgstr "Fehlerhafter Notentyp (%1)"
-
-#: gtk2_ardour/tempo_dialog.cc:235
-#: gtk2_ardour/tempo_dialog.cc:489
-msgid "incomprehensible note type entry (%1)"
-msgstr "Unverständlicher Notentyp (%1)"
-
-#: gtk2_ardour/tempo_dialog.cc:253
-#: gtk2_ardour/tempo_dialog.cc:271
-msgid "Meter denominator"
-msgstr "Takteinteilung"
-
-#: gtk2_ardour/tempo_dialog.cc:254
-#: gtk2_ardour/tempo_dialog.cc:272
-msgid "Beats per bar"
-msgstr "Schläge pro Takt"
-
-#: gtk2_ardour/tempo_dialog.cc:303
-#, fuzzy
-msgid "thirtq-second (32)"
-msgstr "Zweiunddreissigstel (32)"
-
-#: gtk2_ardour/theme_manager.cc:51
-msgid "Object"
-msgstr ""
-
-#: gtk2_ardour/theme_manager.cc:182
-msgid "Unable to find UI style file %1. Ardour will look strange"
-msgstr "Kann die UI-Style Datei %1 nicht finden. Ardour wird merkwürdig aussehen."
-
-#: gtk2_ardour/time_axis_view.cc:111
-msgid "gTortnam"
-msgstr ""
+" (kompiliert mit Version "
-#: gtk2_ardour/time_axis_view.cc:589
-msgid "Largest"
-msgstr "Am größten"
+#: gtk2_ardour/main.cc:297
+msgid " and GCC version "
+msgstr " und GCC Version"
-#: gtk2_ardour/time_axis_view.cc:590
-msgid "Large"
-msgstr "Groß"
+#: gtk2_ardour/main.cc:307
+msgid "Copyright (C) 1999-2008 Paul Davis"
+msgstr "Copyright (C) 1999-2008 Paul Davis"
-#: gtk2_ardour/time_axis_view.cc:591
-msgid "Larger"
-msgstr "Größer"
+#: gtk2_ardour/main.cc:308
+msgid "Some portions Copyright (C) Steve Harris, Ari Johnson, Brett Viren, Joel Baker"
+msgstr "Einige Teile Copyright (C) Steve Harris, Ari Johnson, Brett Viren, Joel Baker"
-#: gtk2_ardour/time_axis_view.cc:593
-msgid "Smaller"
-msgstr "Kleiner"
+#: gtk2_ardour/main.cc:310
+msgid "Ardour comes with ABSOLUTELY NO WARRANTY"
+msgstr "Ardour wird Ihnen ohne jegliche Gewährleistung und ausdrücklich ohne die Zusicherung"
-#: gtk2_ardour/time_axis_view.cc:594
-msgid "Small"
-msgstr "Klein"
+#: gtk2_ardour/main.cc:311
+msgid "not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+msgstr "für allgemeine oder spezielle Gebrauchstauglichkeit zur Verfügung gestellt."
-#: gtk2_ardour/time_axis_view.cc:909
-msgid "unknown track height name \"%1\" in XML GUI information"
-msgstr "Unbekannte Spurhöhe \"%1\" in der XML GUI Information"
+#: gtk2_ardour/main.cc:312
+msgid "This is free software, and you are welcome to redistribute it "
+msgstr "Dies ist freie Software und Sie dürfen sie gerne weiterverbreiten,"
-#: gtk2_ardour/time_axis_view_item.cc:80
-msgid "TimeAxisViewItemName"
-msgstr ""
+#: gtk2_ardour/main.cc:313
+msgid "under certain conditions; see the source for copying conditions."
+msgstr "solange Sie sich an die Bedingungen, die in der Datei COPYING aufgeführt sind halten."
-#: gtk2_ardour/time_axis_view_item.cc:332
-msgid "new duration %1 frames is out of bounds for %2"
-msgstr "Neue Dauer %1 Frames ist außerhalb des erlaubten Bereichs %2"
+#: gtk2_ardour/main.cc:322
+msgid "Cannot install SIGPIPE error handler"
+msgstr "Kann keine Fehlerbehandlung via SIGPIPE initialisieren"
-#: gtk2_ardour/time_selection.cc:40
-msgid "programming error: request for non-existent audio range (%1)!"
-msgstr "Programmierfehler: request for non-existent audio range (%1)!"
+#: gtk2_ardour/main.cc:328
+msgid "could not create ARDOUR GUI"
+msgstr "konnte das grafische Ardour User Interface nicht erstellen"
-#: gtk2_ardour/ui_config.cc:68
+#: gtk2_ardour/ui_config.cc:78
msgid "loading default ui configuration file %1"
msgstr "lade voreingestellte UI-Konfigurationsdatei %1"
-#: gtk2_ardour/ui_config.cc:71
+#: gtk2_ardour/ui_config.cc:81
msgid "Ardour: cannot read default ui configuration file \"%1\""
msgstr "Ardour: kann die voreingestellte UI-Konfigurationsdatei \"%1\" nicht lesen"
-#: gtk2_ardour/ui_config.cc:76
+#: gtk2_ardour/ui_config.cc:86
msgid "Ardour: default ui configuration file \"%1\" not loaded successfully."
msgstr "Ardour: Die voreingestellte UI-Konfigurationsdatei \"%1\" konnte nicht geladen werden."
-#: gtk2_ardour/ui_config.cc:88
+#: gtk2_ardour/ui_config.cc:104
msgid "loading user ui configuration file %1"
msgstr "lade benutzerdefinierte UI-Konfigurationsdatei %1"
-#: gtk2_ardour/ui_config.cc:91
+#: gtk2_ardour/ui_config.cc:107
msgid "Ardour: cannot read ui configuration file \"%1\""
msgstr "Ardour: kann die UI-Konfigurationsdatei \"%1\" nicht lesen"
-#: gtk2_ardour/ui_config.cc:96
+#: gtk2_ardour/ui_config.cc:112
msgid "Ardour: user ui configuration file \"%1\" not loaded successfully."
msgstr "Ardour: Die benutzerdefinierte UI-Konfigurationsdatei \"%1\" konnte nicht geladen werden."
-#: gtk2_ardour/ui_config.cc:120
+#: gtk2_ardour/ui_config.cc:135
msgid "UI config file %1 not saved"
msgstr "UI-Konfigurationsdatei %1 nicht gespeichert."
-#: gtk2_ardour/utils.cc:132
-#: gtk2_ardour/utils.cc:175
-msgid "bad XPM header %1"
-msgstr "Fehlerhafter XPM Header %1"
-
-#: gtk2_ardour/utils.cc:314
-msgid "missing RGBA style for \"%1\""
-msgstr "Fehlender RGBA Style für \"%1\""
-
-#: gtk2_ardour/utils.cc:337
-msgid "no style found for %1, using red"
-msgstr ""
-
-#: gtk2_ardour/utils.cc:376
-msgid "unknown style attribute %1 requested for color; using \"red\""
-msgstr ""
-
-#: gtk2_ardour/utils.cc:581
-msgid "cannot find icon image for %1"
-msgstr "Konnte Icon-Bild für %1 nicht finden"
-
-#: gtk2_ardour/visual_time_axis.cc:280
-msgid ""
-"Do you really want to remove track \"%1\" ?\n"
-"(cannot be undone)"
-msgstr ""
-"Wollen Sie wirklich die Spur \"%1\" löschen?\n"
-"(Kann nicht rückgängig gemacht werden!)"
-
-#: gtk2_ardour/visual_time_axis.cc:329
-msgid "new name: "
-msgstr "Neuer Name: "
-
-#: gtk2_ardour/connection_editor.cc:50
-msgid "ardour: connections"
-msgstr "ardour: Verbindungen"
-
-#: gtk2_ardour/connection_editor.cc:51
-msgid "Input Connections"
-msgstr "Verbindungen der Eingänge"
-
-#: gtk2_ardour/connection_editor.cc:52
-msgid "Output Connections"
-msgstr "Verbindungen der Ausgänge"
-
-#: gtk2_ardour/connection_editor.cc:53
-msgid "New Input"
-msgstr "Neuer Eingang"
-
-#: gtk2_ardour/connection_editor.cc:54
-msgid "New Output"
-msgstr "Neuer Ausgang"
-
-#: gtk2_ardour/connection_editor.cc:57
-#: gtk2_ardour/connection_editor.cc:100
-msgid "Add Port"
-msgstr "Port hinzufügen"
-
-#: gtk2_ardour/connection_editor.cc:105
-msgid "Available Ports"
-msgstr "Verfügbare Verbindungen"
-
-#: gtk2_ardour/connection_editor.cc:500
-msgid "Connection \""
-msgstr "Verbindung \""
-
-#: gtk2_ardour/connection_editor.cc:502
-msgid "\""
-msgstr ""
-
-#: gtk2_ardour/connection_editor.cc:531
-#, c-format
-msgid "in %d"
-msgstr "In %d"
-
-#: gtk2_ardour/connection_editor.cc:533
-#, c-format
-msgid "out %d"
-msgstr "Out %d"
-
-#: gtk2_ardour/connection_editor.cc:657
-msgid "Name for new connection:"
-msgstr "Name für neue Verbindung:"
-
-#: gtk2_ardour/analysis_window.cc:45
-msgid "analysis window"
-msgstr "Analysefenster"
-
-#: gtk2_ardour/analysis_window.cc:47
-msgid "Signal source"
-msgstr "Signalquelle"
-
-#: gtk2_ardour/analysis_window.cc:48
-msgid "Selected ranges"
-msgstr "Ausgewählte Bereiche"
-
-#: gtk2_ardour/analysis_window.cc:49
-msgid "Selected regions"
-msgstr "Ausgewählte Regionen"
+#: gtk2_ardour/actions.cc:80
+#: gtk2_ardour/actions.cc:81
+msgid "badly formatted UI definition file: %1"
+msgstr "die UI Definitionsdatei %1 ist falsch formatiert"
-#: gtk2_ardour/analysis_window.cc:51
-msgid "Display model"
-msgstr "Anzeigetyp"
+#: gtk2_ardour/actions.cc:83
+msgid "Ardour menu definition file not found"
+msgstr "Konnte die Ardour Menü-Definition nicht finden"
-#: gtk2_ardour/analysis_window.cc:52
-msgid "Composite graphs for each track"
-msgstr "Graphen für jede Spur einzeln"
+#: gtk2_ardour/actions.cc:87
+msgid "ardour will not work without a valid ardour.menus file"
+msgstr "Ardour benötigt eine gültige ardour.menus Datei"
-#: gtk2_ardour/analysis_window.cc:53
-msgid "Composite graph of all tracks"
-msgstr "Graphen aller Spuren zusammenfassen"
+#: gtk2_ardour/actions.cc:325
+msgid "programmer error: %1 %2"
+msgstr "Programmierfehler: %1 %2"
-#: gtk2_ardour/analysis_window.cc:62
-msgid "Track"
-msgstr "Spur"
+#: gtk2_ardour/actions.cc:344
+msgid "Unknown action name: %1"
+msgstr "Unbekannte Aktionsbezeichnung: %1"
-#: gtk2_ardour/analysis_window.cc:130
-msgid "Analyze data"
-msgstr "Daten analysieren"
+#~ msgid "Paul Davis"
+#~ msgstr "Paul Davis"
+#~ msgid "Jesse Chappell"
+#~ msgstr "Jesse Chappell"
+#~ msgid "Taybin Rutkin"
+#~ msgstr "Taybin Rutkin"
+#~ msgid "Marcus Andersson"
+#~ msgstr "Marcus Andersson"
+#~ msgid "Jeremy Hall"
+#~ msgstr "Jeremy Hall"
+#~ msgid "Steve Harris"
+#~ msgstr "Steve Harris"
+#~ msgid "Tim Mayberry"
+#~ msgstr "Tim Mayberry"
+#~ msgid "Mark Stewart"
+#~ msgstr "Mark Stewart"
+#~ msgid "Sam Chessman"
+#~ msgstr "Sam Chessman"
+#~ msgid "Jack O'Quin"
+#~ msgstr "Jack O'Quin"
+#~ msgid "Matt Krai"
+#~ msgstr "Matt Krai"
+#~ msgid "Ben Bell"
+#~ msgstr "Ben Bell"
+#~ msgid "Gerard van Dongen"
+#~ msgstr "Gerard van Dongen"
+#~ msgid "Thomas Charbonnel"
+#~ msgstr "Thomas Charbonnel"
+#~ msgid "Nick Mainsbridge"
+#~ msgstr "Nick Mainsbridge"
+#~ msgid "Colin Law"
+#~ msgstr "Colin Law"
+#~ msgid "Sampo Savolainen"
+#~ msgstr "Sampo Savolainen"
+#~ msgid "Joshua Leach"
+#~ msgstr "Joshua Leach"
+#~ msgid "Rob Holland"
+#~ msgstr "Rob Holland"
+#~ msgid "Per Sigmond"
+#~ msgstr "Per Sigmond"
+#~ msgid "Doug Mclain"
+#~ msgstr "Doug Mclain"
+#~ msgid "Petter Sundlöf"
+#~ msgstr "Petter Sundlöf"
+#~ msgid "Thorsten Wilms"
+#~ msgstr "Thorsten Wilms"
+#~ msgid "Ben Loftis"
+#~ msgstr "Ben Loftis"
+#~ msgid "Stefan Kersten"
+#~ msgstr "Stefan Kersten"
+#~ msgid "Christopher George"
+#~ msgstr "Christopher George"
+#~ msgid "Robert Jordens"
+#~ msgstr "Robert Jordens"
+#~ msgid "Dave Robillard"
+#~ msgstr "Dave Robillard"
+#~ msgid "Hans Fugal"
+#~ msgstr "Hans Fugal"
+#~ msgid "Brian Ahr"
+#~ msgstr "Brian Ahr"
+#~ msgid "Nimal Ratnayake"
+#~ msgstr "Nimal Ratnayake"
+#~ msgid "Mike Täht"
+#~ msgstr "Mike Täht"
+#~ msgid "John Anderson"
+#~ msgstr "John Anderson"
+#~ msgid "Nedko Arnaudov"
+#~ msgstr "Nedko Arnaudov"
+#~ msgid "Carl Hetherington"
+#~ msgstr "Carl Hetherington"
+#~ msgid ""
+#~ "French:\n"
+#~ "\tAlain Fréhel <alain.frehel@free.fr>\n"
+#~ "\tChristophe Combelles <ccomb@free.fr>\n"
+#~ msgstr ""
+#~ "French:\n"
+#~ "\tAlain Fréhel <alain.frehel@free.fr>\n"
+#~ "\tChristophe Combelles <ccomb@free.fr>\n"
+#~ msgid ""
+#~ "German:\n"
+#~ "\tKarsten Petersen <kapet@kapet.de>\n"
+#~ "\tSebastian Arnold <mail@sebastian-arnold.net>\n"
+#~ msgstr ""
+#~ "Deutsch:\n"
+#~ "\tKarsten Petersen <kapet@kapet.de>\n"
+#~ "\tSebastian Arnold <mail@sebastian-arnold.net>\n"
+#~ msgid ""
+#~ "Italian:\n"
+#~ "\tFilippo Pappalardo <filippo@email.it>\n"
+#~ msgstr ""
+#~ "Italian:\n"
+#~ "\tFilippo Pappalardo <filippo@email.it>\n"
+#~ msgid ""
+#~ "Portuguese:\n"
+#~ "\tRui Nuno Capela <rncbc@rncbc.org>\n"
+#~ msgstr ""
+#~ "Portuguese:\n"
+#~ "\tRui Nuno Capela <rncbc@rncbc.org>\n"
+#~ msgid ""
+#~ "Brazilian Portuguese:\n"
+#~ "\tAlexander da Franca Fernandes <alexander@nautae.eti.br>\n"
+#~ "\tChris Ross <chris@tebibyte.org>\n"
+#~ msgstr ""
+#~ "Brazilian Portuguese:\n"
+#~ "\tAlexander da Franca Fernandes <alexander@nautae.eti.br>\n"
+#~ "\tChris Ross <chris@tebibyte.org>\n"
+#~ msgid ""
+#~ "Spanish:\n"
+#~ "\t Alex Krohn <alexkrohn@fastmail.fm>\n"
+#~ msgstr ""
+#~ "Spanish:\n"
+#~ "\t Alex Krohn <alexkrohn@fastmail.fm>\n"
+#~ msgid ""
+#~ "Russian:\n"
+#~ "\t Igor Blinov <pitstop@nm.ru>\n"
+#~ msgstr ""
+#~ "Russian:\n"
+#~ "\t Igor Blinov <pitstop@nm.ru>\n"
+#~ msgid ""
+#~ "Greek:\n"
+#~ "\t Klearchos Gourgourinis <muadib@in.gr>\n"
+#~ msgstr ""
+#~ "Greek:\n"
+#~ "\t Klearchos Gourgourinis <muadib@in.gr>\n"
+#~ msgid "3 Channels"
+#~ msgstr "3 Kanäle"
+#~ msgid "4 Channels"
+#~ msgstr "4 Kanäle"
+#~ msgid "6 Channels"
+#~ msgstr "6 Kanäle"
+#~ msgid "8 Channels"
+#~ msgstr "8 Kanäle"
+#~ msgid "Manual Setup"
+#~ msgstr "Manuell"
+#~ msgid "Could not find command line session \"%1\""
+#~ msgstr "Konnte das per Kommandozeile übergebene Projekt nicht laden: \"%1\""
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "No session named \"%1\" exists.\n"
+#~ "To create it from the command line, start ardour as:\n"
+#~ " ardour --new %1"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Es existiert kein Projekt mit dem Namen \"%1\".\n"
+#~ "Um es von der Kommandozeile aus zu erstellen, starten Sie ardour mit:\n"
+#~ " ardour --new %1"
+#~ msgid "Ardour cannot understand \"%1\" as a session name"
+#~ msgstr "Ardour kann \"%1\" nicht als Projektnamen benutzen"
+#~ msgid "KeyMouse Actions"
+#~ msgstr "Tastatur/Maus-Befehle"
+#~ msgid "Header"
+#~ msgstr "Header"
+#~ msgid "Data"
+#~ msgstr "Datenformat"
+#~ msgid "Software monitoring"
+#~ msgstr "Software Monitoring"
+#~ msgid "External monitoring"
+#~ msgstr "Externes Monitoring"
+#~ msgid "Analyze region"
+#~ msgstr "Analysiere Region"
+#~ msgid "Analyze range"
+#~ msgstr "Bereich analysieren"
+#~ msgid "Bounce range"
+#~ msgstr "Bereich Bouncen"
+#~ msgid "Duplicate how many times?"
+#~ msgstr "Wie häufig duplizieren?"
+#~ msgid "to Center"
+#~ msgstr "zur Mitte"
+#~ msgid "to Playhead"
+#~ msgstr "zum Positionszeiger"
+#~ msgid "Set Edit Point"
+#~ msgstr "Arbeitspunkt setzen"
+#~ msgid "Reverse Region"
+#~ msgstr "Rückwärts"
+#~ msgid "Add Existing Audio"
+#~ msgstr "Audio importieren"
+#~ msgid "Add External Audio"
+#~ msgstr "Audio importieren..."
+#~ msgid ""
+#~ " This is destructive, will possibly delete audio files\n"
+#~ "It cannot be undone\n"
+#~ "Do you really want to destroy %1 ?"
+#~ msgstr ""
+#~ " Diese Aktion ist destruktiv und löscht möglicherweise Audiodateien\n"
+#~ "Dies kann nicht rückgängig gemacht werden\n"
+#~ "Wollen Sie %1 wirklich löschen ?"
+#~ msgid "these regions"
+#~ msgstr "diese Region"
+#~ msgid "this region"
+#~ msgstr "diese Region"
+#~ msgid "Yes, destroy them."
+#~ msgstr "Ja, entfernen."
+#~ msgid "cannot set loop: no region selected"
+#~ msgstr "Kann keine Schleife erstellen: keine Region ausgewählt"
+#~ msgid "editor"
+#~ msgstr "Editor"
+#~ msgid "best"
+#~ msgstr "bestmöglich"
+#~ msgid "Shaped Noise"
+#~ msgstr "Shaped Noise"
+#~ msgid "stereo"
+#~ msgstr "Stereo"
+#~ msgid "CUE"
+#~ msgstr "CUE"
+#~ msgid "WAV"
+#~ msgstr "WAV"
+#~ msgid "Binding"
+#~ msgstr "Zugewiesene Taste"
+#~ msgid "Set"
+#~ msgstr "Setzen"
+#~ msgid "BPM denominator"
+#~ msgstr "BPM Zählzeit"
diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc
index 88bd7d0b15..fe648352d0 100644
--- a/gtk2_ardour/processor_box.cc
+++ b/gtk2_ardour/processor_box.cc
@@ -120,7 +120,7 @@ ProcessorBox::ProcessorBox (Placement pcmnt, Session& sess, PluginSelector &plug
processor_display.get_column(0)->set_sizing(TREE_VIEW_COLUMN_FIXED);
processor_display.get_column(0)->set_fixed_width(48);
processor_display.add_object_drag (columns.processor.index(), "processors");
- processor_display.signal_object_drop.connect (mem_fun (*this, &ProcessorBox::object_drop));
+ processor_display.signal_drop.connect (mem_fun (*this, &ProcessorBox::object_drop));
TreeViewColumn* name_col = processor_display.get_column(0);
CellRendererText* renderer = dynamic_cast<CellRendererText*>(processor_display.get_column_cell_renderer (0));
@@ -167,22 +167,11 @@ ProcessorBox::route_going_away ()
no_processor_redisplay = true;
}
+
void
-ProcessorBox::object_drop (string type, uint32_t cnt, const boost::shared_ptr<Processor>* ptr)
+ProcessorBox::object_drop (const list<boost::shared_ptr<Processor> >& procs)
{
- if (type != "processors" || cnt == 0 || !ptr) {
- return;
- }
-
- /* do something with the dropped processors */
-
- list<boost::shared_ptr<Processor> > processors;
-
- for (uint32_t n = 0; n < cnt; ++n) {
- processors.push_back (ptr[n]);
- }
-
- paste_processor_list (processors);
+ paste_processor_list (procs);
}
void
@@ -310,7 +299,13 @@ ProcessorBox::processor_button_press_event (GdkEventButton *ev)
// this is purely informational but necessary
ProcessorSelected (processor); // emit
+
+ } else if (!processor && ev->button == 1 && ev->type == GDK_2BUTTON_PRESS) {
+
+ choose_plugin ();
+ _plugin_selector.show_manager ();
}
+
return ret;
}
@@ -343,7 +338,7 @@ ProcessorBox::processor_button_release_event (GdkEventButton *ev)
show_processor_menu(ev->time);
ret = true;
- } else if (processor && (ev->button == 2) && (Keyboard::no_modifier_keys_pressed (ev) && ((ev->state & Gdk::BUTTON2_MASK) == Gdk::BUTTON2_MASK))) {
+ } else if (processor && Keyboard::is_button2_event (ev) && (Keyboard::no_modifier_keys_pressed (ev) && ((ev->state & Gdk::BUTTON2_MASK) == Gdk::BUTTON2_MASK))) {
/* button2-click with no modifiers */
@@ -399,6 +394,10 @@ ProcessorBox::use_plugins (const SelectedPlugins& plugins)
boost::shared_ptr<Processor> processor (new PluginInsert (_session, *p, _placement));
Route::ProcessorStreams err_streams;
+
+ if (Config->get_new_plugins_active()) {
+ processor->set_active (true);
+ }
if (_route->add_processor (processor, &err_streams)) {
weird_plugin_dialog (**p, err_streams, _route);
@@ -538,6 +537,9 @@ ProcessorBox::send_io_finished (IOSelector::Result r, boost::weak_ptr<Processor>
case IOSelector::Accepted:
_route->add_processor (processor);
+ if (Profile->get_sae()) {
+ processor->set_active (true);
+ }
break;
}
@@ -775,9 +777,10 @@ ProcessorBox::cut_processors ()
no_processor_redisplay = true;
for (vector<boost::shared_ptr<Processor> >::iterator i = to_be_removed.begin(); i != to_be_removed.end(); ++i) {
- // Do not cut inserts or sends
+ // Do not cut inserts
+ if (boost::dynamic_pointer_cast<PluginInsert>((*i)) != 0 ||
+ (boost::dynamic_pointer_cast<Send>((*i)) != 0)) {
- if (boost::dynamic_pointer_cast<PluginInsert>((*i)) != 0) {
void* gui = (*i)->get_gui ();
if (gui) {
@@ -814,8 +817,9 @@ ProcessorBox::copy_processors ()
}
for (vector<boost::shared_ptr<Processor> >::iterator i = to_be_copied.begin(); i != to_be_copied.end(); ++i) {
- // Do not copy processors or sends
- if (boost::dynamic_pointer_cast<PluginInsert>((*i)) != 0) {
+ // Do not copy inserts
+ if (boost::dynamic_pointer_cast<PluginInsert>((*i)) != 0 ||
+ (boost::dynamic_pointer_cast<Send>((*i)) != 0)) {
node->add_child_nocopy ((*i)->get_state());
}
}
@@ -905,11 +909,11 @@ ProcessorBox::paste_processors ()
}
void
-ProcessorBox::paste_processor_list (list<boost::shared_ptr<Processor> >& processors)
+ProcessorBox::paste_processor_list (const list<boost::shared_ptr<Processor> >& processors)
{
list<boost::shared_ptr<Processor> > copies;
- for (list<boost::shared_ptr<Processor> >::iterator i = processors.begin(); i != processors.end(); ++i) {
+ for (list<boost::shared_ptr<Processor> >::const_iterator i = processors.begin(); i != processors.end(); ++i) {
boost::shared_ptr<Processor> copy = Processor::clone (*i);
diff --git a/gtk2_ardour/processor_box.h b/gtk2_ardour/processor_box.h
index 74d781a0d4..92a301633a 100644
--- a/gtk2_ardour/processor_box.h
+++ b/gtk2_ardour/processor_box.h
@@ -126,7 +126,7 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject
Gtkmm2ext::DnDTreeView<boost::shared_ptr<ARDOUR::Processor> > processor_display;
Gtk::ScrolledWindow processor_scroller;
- void object_drop (std::string type, uint32_t cnt, const boost::shared_ptr<ARDOUR::Processor>*);
+ void object_drop (const std::list<boost::shared_ptr<ARDOUR::Processor> >&);
Width _width;
@@ -186,7 +186,7 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject
void get_selected_processors (vector<boost::shared_ptr<ARDOUR::Processor> >&);
static Glib::RefPtr<Gtk::Action> paste_action;
- void paste_processor_list (std::list<boost::shared_ptr<ARDOUR::Processor> >& processors);
+ void paste_processor_list (const std::list<boost::shared_ptr<ARDOUR::Processor> >& processors);
void paste_processor_state (const XMLNode&);
void activate_processor (boost::shared_ptr<ARDOUR::Processor>);
diff --git a/gtk2_ardour/public_editor.h b/gtk2_ardour/public_editor.h
index 253c033eb8..0af92a592a 100644
--- a/gtk2_ardour/public_editor.h
+++ b/gtk2_ardour/public_editor.h
@@ -244,6 +244,7 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulThingWithGoingAway
/** @return true if the playhead is currently being dragged, otherwise false */
virtual bool dragging_playhead () const = 0;
+ virtual double get_physical_screen_width() const = 0;
virtual void ensure_float (Gtk::Window&) = 0;
virtual void show_window () = 0;
virtual TrackViewList* get_valid_views (TimeAxisView*, ARDOUR::RouteGroup* grp = 0) = 0;
@@ -336,6 +337,8 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulThingWithGoingAway
virtual gdouble get_trackview_group_vertical_offset () const = 0;
+ virtual gdouble get_canvas_timebars_vsize () const = 0;
+ virtual ArdourCanvas::Group* get_background_group () const = 0;
virtual ArdourCanvas::Group* get_trackview_group () const = 0;
/// Singleton instance, set up by Editor::Editor()
diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc
index a36a6bc35a..8e462c984e 100644
--- a/gtk2_ardour/route_time_axis.cc
+++ b/gtk2_ardour/route_time_axis.cc
@@ -136,6 +136,13 @@ RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session& sess, boost::sh
visual_button.set_name ("TrackVisualButton");
hide_button.set_name ("TrackRemoveButton");
+ edit_group_button.unset_flags (Gtk::CAN_FOCUS);
+ playlist_button.unset_flags (Gtk::CAN_FOCUS);
+ automation_button.unset_flags (Gtk::CAN_FOCUS);
+ size_button.unset_flags (Gtk::CAN_FOCUS);
+ visual_button.unset_flags (Gtk::CAN_FOCUS);
+ hide_button.unset_flags (Gtk::CAN_FOCUS);
+
hide_button.add (*(manage (new Image (::get_icon("hide")))));
hide_button.show_all ();
@@ -147,9 +154,9 @@ RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session& sess, boost::sh
hide_button.signal_clicked().connect (mem_fun(*this, &RouteTimeAxisView::hide_click));
solo_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::solo_press), false);
- solo_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::solo_release));
+ solo_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::solo_release), false);
mute_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::mute_press), false);
- mute_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::mute_release));
+ mute_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::mute_release), false);
if (is_track()) {
@@ -502,11 +509,10 @@ RouteTimeAxisView::build_display_menu ()
items.push_back (SeparatorElem());
- build_remote_control_menu ();
- build_automation_action_menu ();
-
if (!Profile->get_sae()) {
+ build_remote_control_menu ();
items.push_back (MenuElem (_("Remote Control ID"), *remote_control_menu));
+ build_automation_action_menu ();
items.push_back (MenuElem (_("Automation"), *automation_action_menu));
items.push_back (SeparatorElem());
}
@@ -586,7 +592,12 @@ RouteTimeAxisView::build_display_menu ()
items.push_back (SeparatorElem());
items.push_back (MenuElem (_("Hide"), mem_fun(*this, &RouteTimeAxisView::hide_click)));
- items.push_back (MenuElem (_("Remove"), mem_fun(*this, &RouteUI::remove_this_route)));
+ if (!Profile->get_sae()) {
+ items.push_back (MenuElem (_("Remove"), mem_fun(*this, &RouteUI::remove_this_route)));
+ } else {
+ items.push_front (SeparatorElem());
+ items.push_front (MenuElem (_("Delete"), mem_fun(*this, &RouteUI::remove_this_route)));
+ }
}
static bool __reset_item (RadioMenuItem* item)
@@ -824,6 +835,18 @@ RouteTimeAxisView::set_height (uint32_t h)
} else {
+
+ /* don't allow name_entry to be hidden while
+ it has focus, otherwise the GUI becomes unusable.
+ */
+
+ if (name_entry.has_focus()) {
+ if (name_entry.get_text() != _route->name()) {
+ name_entry_changed ();
+ }
+ controls_ebox.grab_focus ();
+ }
+
hide_name_entry ();
show_name_label ();
@@ -2054,6 +2077,7 @@ RouteTimeAxisView::processor_menu_item_toggled (RouteTimeAxisView::ProcessorAuto
if (showit) {
pan->view->set_marked_for_display (true);
pan->view->canvas_display->show();
+ pan->view->canvas_background->show();
} else {
rai->processor->mark_automation_visible (pan->what, true);
pan->view->set_marked_for_display (false);
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc
index 26c99488cc..c53e205b49 100644
--- a/gtk2_ardour/route_ui.cc
+++ b/gtk2_ardour/route_ui.cc
@@ -23,6 +23,7 @@
#include <gtkmm2ext/doi.h>
#include <gtkmm2ext/bindable_button.h>
#include <gtkmm2ext/barcontroller.h>
+#include <gtkmm2ext/gtk_ui.h>
#include <ardour/route_group.h>
#include <pbd/memento_command.h>
@@ -46,6 +47,7 @@
#include <ardour/audio_diskstream.h>
#include <ardour/midi_track.h>
#include <ardour/midi_diskstream.h>
+#include <ardour/profile.h>
#include "i18n.h"
using namespace sigc;
@@ -92,19 +94,24 @@ RouteUI::init ()
was_solo_safe = false;
polarity_menu_item = 0;
denormal_menu_item = 0;
+ multiple_mute_change = false;
+ multiple_solo_change = false;
mute_button = manage (new BindableToggleButton (""));
mute_button->set_self_managed (true);
mute_button->set_name ("MuteButton");
+ UI::instance()->set_tip (mute_button, _("Mute this track"), "");
solo_button = manage (new BindableToggleButton (""));
solo_button->set_self_managed (true);
solo_button->set_name ("SoloButton");
+ UI::instance()->set_tip (solo_button, _("Mute other (non-soloed) tracks"), "");
rec_enable_button = manage (new BindableToggleButton (""));
rec_enable_button->set_name ("RecordEnableButton");
rec_enable_button->set_self_managed (true);
-
+ UI::instance()->set_tip (rec_enable_button, _("Enable recording on this track"), "");
+
_session.SoloChanged.connect (mem_fun(*this, &RouteUI::solo_changed_so_update_mute));
}
@@ -123,11 +130,6 @@ RouteUI::reset ()
mute_menu = 0;
}
- if (remote_control_menu) {
- delete remote_control_menu;
- remote_control_menu = 0;
- }
-
if (xml_node) {
/* do not delete the node - its owned by the route */
xml_node = 0;
@@ -207,10 +209,10 @@ RouteUI::set_route (boost::shared_ptr<Route> rp)
bool
RouteUI::mute_press(GdkEventButton* ev)
{
- if (ev->type == GDK_2BUTTON_PRESS) {
+ if (ev->type == GDK_2BUTTON_PRESS || ev->type == GDK_3BUTTON_PRESS ) {
return true;
}
-
+ multiple_mute_change = false;
if (!ignore_toggle) {
if (Keyboard::is_context_menu_event (ev)) {
@@ -223,7 +225,7 @@ RouteUI::mute_press(GdkEventButton* ev)
} else {
- if (ev->button == 2) {
+ if (Keyboard::is_button2_event (ev)) {
// Primary-button2 click is the midi binding click
// button2-click is "momentary"
@@ -234,7 +236,7 @@ RouteUI::mute_press(GdkEventButton* ev)
}
}
- if (ev->button == 1 || ev->button == 2) {
+ if (ev->button == 1 || Keyboard::is_button2_event (ev)) {
if (Keyboard::modifier_state_equals (ev->state, Keyboard::ModifierMask (Keyboard::PrimaryModifier|Keyboard::TertiaryModifier))) {
@@ -246,6 +248,7 @@ RouteUI::mute_press(GdkEventButton* ev)
cmd->mark();
_session.add_command(cmd);
_session.commit_reversible_command ();
+ multiple_mute_change = true;
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
@@ -260,8 +263,11 @@ RouteUI::mute_press(GdkEventButton* ev)
} else {
/* plain click applies change to this route */
-
- reversibly_apply_route_boolean ("mute change", &Route::set_mute, !_route->muted(), this);
+ if (wait_for_release) {
+ _route->set_mute (!_route->muted(), this);
+ } else {
+ reversibly_apply_route_boolean ("mute change", &Route::set_mute, !_route->muted(), this);
+ }
}
}
}
@@ -277,9 +283,14 @@ RouteUI::mute_release(GdkEventButton* ev)
if (!ignore_toggle) {
if (wait_for_release){
wait_for_release = false;
- // undo the last op
- // because the press was the last undoable thing we did
- _session.undo (1U);
+ if (multiple_mute_change) {
+ multiple_mute_change = false;
+ // undo the last op
+ // because the press was the last undoable thing we did
+ _session.undo (1U);
+ } else {
+ _route->set_mute (!_route->muted(), this);
+ }
}
}
return true;
@@ -288,16 +299,16 @@ RouteUI::mute_release(GdkEventButton* ev)
bool
RouteUI::solo_press(GdkEventButton* ev)
{
- /* ignore double clicks */
+ /* ignore double/triple clicks */
- if (ev->type == GDK_2BUTTON_PRESS) {
+ if (ev->type == GDK_2BUTTON_PRESS || ev->type == GDK_3BUTTON_PRESS ) {
return true;
}
-
+ multiple_solo_change = false;
if (!ignore_toggle) {
if (Keyboard::is_context_menu_event (ev)) {
-
+
if (solo_menu == 0) {
build_solo_menu ();
}
@@ -306,7 +317,7 @@ RouteUI::solo_press(GdkEventButton* ev)
} else {
- if (ev->button == 2) {
+ if (Keyboard::is_button2_event (ev)) {
// Primary-button2 click is the midi binding click
// button2-click is "momentary"
@@ -318,18 +329,31 @@ RouteUI::solo_press(GdkEventButton* ev)
}
}
- if (ev->button == 1 || ev->button == 2) {
+ if (ev->button == 1 || Keyboard::is_button2_event (ev)) {
if (Keyboard::modifier_state_equals (ev->state, Keyboard::ModifierMask (Keyboard::PrimaryModifier|Keyboard::TertiaryModifier))) {
/* Primary-Tertiary-click applies change to all routes */
-
+ bool was_not_latched = false;
+ if (!Config->get_solo_latched ()) {
+ was_not_latched = true;
+ /*
+ XXX it makes no sense to solo all tracks if we're
+ not in latched mode, but doing nothing feels like a bug,
+ so do it anyway
+ */
+ Config->set_solo_latched (true);
+ }
_session.begin_reversible_command (_("solo change"));
Session::GlobalSoloStateCommand *cmd = new Session::GlobalSoloStateCommand(_session, this);
_session.set_all_solo (!_route->soloed());
cmd->mark();
_session.add_command (cmd);
_session.commit_reversible_command ();
+ multiple_solo_change = true;
+ if (was_not_latched) {
+ Config->set_solo_latched (false);
+ }
} else if (Keyboard::modifier_state_contains (ev->state, Keyboard::ModifierMask (Keyboard::PrimaryModifier|Keyboard::SecondaryModifier))) {
@@ -347,8 +371,17 @@ RouteUI::solo_press(GdkEventButton* ev)
// shift-click: set this route to solo safe
- _route->set_solo_safe (!_route->solo_safe(), this);
- wait_for_release = false;
+ if (Profile->get_sae() && ev->button == 1) {
+ // button 1 and shift-click: disables solo_latched for this click
+ if (!Config->get_solo_latched ()) {
+ Config->set_solo_latched (true);
+ reversibly_apply_route_boolean ("solo change", &Route::set_solo, !_route->soloed(), this);
+ Config->set_solo_latched (false);
+ }
+ } else {
+ _route->set_solo_safe (!_route->solo_safe(), this);
+ wait_for_release = false;
+ }
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
@@ -363,7 +396,11 @@ RouteUI::solo_press(GdkEventButton* ev)
} else {
/* click: solo this route */
- reversibly_apply_route_boolean ("solo change", &Route::set_solo, !_route->soloed(), this);
+ if (wait_for_release) {
+ _route->set_solo (!_route->soloed(), this);
+ } else {
+ reversibly_apply_route_boolean ("solo change", &Route::set_solo, !_route->soloed(), this);
+ }
}
}
}
@@ -378,10 +415,16 @@ RouteUI::solo_release(GdkEventButton* ev)
if (!ignore_toggle) {
if (wait_for_release) {
wait_for_release = false;
- // undo the last op
- // because the press was the last undoable thing we did
-
- _session.undo (1U);
+ if (multiple_solo_change) {
+ multiple_solo_change = false;
+ // undo the last op
+ // because the press was the last undoable thing we did
+ _session.undo (1U);
+ } else {
+ // we don't use "undo the last op"
+ // here because its expensive for the GUI
+ _route->set_solo (!_route->soloed(), this);
+ }
}
}
@@ -391,7 +434,7 @@ RouteUI::solo_release(GdkEventButton* ev)
bool
RouteUI::rec_enable_press(GdkEventButton* ev)
{
- if (ev->type == GDK_2BUTTON_PRESS) {
+ if (ev->type == GDK_2BUTTON_PRESS || ev->type == GDK_3BUTTON_PRESS ) {
return true;
}
@@ -403,7 +446,7 @@ RouteUI::rec_enable_press(GdkEventButton* ev)
if (!ignore_toggle && is_track() && rec_enable_button) {
- if (ev->button == 2 && Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
+ if (Keyboard::is_button2_event (ev) && Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
// do nothing on midi bind event
return false;
@@ -449,6 +492,7 @@ RouteUI::rec_enable_release (GdkEventButton* ev)
void
RouteUI::solo_changed(void* src)
{
+
Gtkmm2ext::UI::instance()->call_slot (mem_fun (*this, &RouteUI::update_solo_display));
}
@@ -907,7 +951,7 @@ gint
RouteUI::idle_remove_this_route (RouteUI *rui)
{
rui->_session.remove_route (rui->_route);
- return FALSE;
+ return false;
}
void
diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h
index 67aa409dda..c784b97668 100644
--- a/gtk2_ardour/route_ui.h
+++ b/gtk2_ardour/route_ui.h
@@ -76,6 +76,8 @@ class RouteUI : public virtual AxisView
bool ignore_toggle;
bool wait_for_release;
+ bool multiple_mute_change;
+ bool multiple_solo_change;
BindableToggleButton* mute_button;
BindableToggleButton* solo_button;
diff --git a/gtk2_ardour/send_ui.cc b/gtk2_ardour/send_ui.cc
index 6ce6edd303..e99ea25cbd 100644
--- a/gtk2_ardour/send_ui.cc
+++ b/gtk2_ardour/send_ui.cc
@@ -113,22 +113,20 @@ SendUI::fast_update ()
}
SendUIWindow::SendUIWindow (boost::shared_ptr<Send> s, Session& ss)
+ : ArdourDialog (string("Ardour: send ") + s->name())
{
ui = new SendUI (s, ss);
- vpacker.set_border_width (5);
-
hpacker.pack_start (*ui, true, true);
- vpacker.pack_start (hpacker);
+ get_vbox()->set_border_width (5);
+ get_vbox()->pack_start (hpacker);
- add (vpacker);
set_name ("SendUIWindow");
going_away_connection = s->GoingAway.connect (mem_fun (*this, &SendUIWindow::send_going_away));
signal_delete_event().connect (bind (ptr_fun (just_hide_it), reinterpret_cast<Window *> (this)));
-
}
SendUIWindow::~SendUIWindow ()
diff --git a/gtk2_ardour/send_ui.h b/gtk2_ardour/send_ui.h
index 5a7298c515..0d6356970e 100644
--- a/gtk2_ardour/send_ui.h
+++ b/gtk2_ardour/send_ui.h
@@ -22,6 +22,7 @@
#include "gain_meter.h"
#include "panner_ui.h"
+#include "ardour_dialog.h"
namespace ARDOUR {
class Send;
@@ -59,7 +60,7 @@ class SendUI : public Gtk::HBox
void outs_changed (ARDOUR::IOChange, void*);
};
-class SendUIWindow : public Gtk::Window
+class SendUIWindow : public ArdourDialog
{
public:
SendUIWindow(boost::shared_ptr<ARDOUR::Send>, ARDOUR::Session&);
@@ -68,7 +69,6 @@ class SendUIWindow : public Gtk::Window
SendUI* ui;
private:
- Gtk::VBox vpacker;
Gtk::HBox hpacker;
void send_going_away ();
diff --git a/gtk2_ardour/sfdb_ui.cc b/gtk2_ardour/sfdb_ui.cc
index 915c3c6d3c..799e74898b 100644
--- a/gtk2_ardour/sfdb_ui.cc
+++ b/gtk2_ardour/sfdb_ui.cc
@@ -732,7 +732,7 @@ SoundFileBrowser::found_search_clicked ()
void*
freesound_search_thread_entry (void* arg)
{
- PBD::ThreadCreated (pthread_self(), X_("Freesound Search"));
+ PBD::notify_gui_about_thread_creation (pthread_self(), X_("Freesound Search"));
static_cast<SoundFileBrowser*>(arg)->freesound_search_thread ();
diff --git a/gtk2_ardour/streamview.cc b/gtk2_ardour/streamview.cc
index 8730c55f58..9658af06fc 100644
--- a/gtk2_ardour/streamview.cc
+++ b/gtk2_ardour/streamview.cc
@@ -48,6 +48,7 @@ using namespace Editing;
StreamView::StreamView (RouteTimeAxisView& tv, ArdourCanvas::Group* group)
: _trackview (tv)
, owns_canvas_group(group == 0)
+ , _background_group(new ArdourCanvas::Group(*_trackview.canvas_background))
, canvas_group(group ? group : new ArdourCanvas::Group(*_trackview.canvas_display))
, _samples_per_unit(_trackview.editor.get_current_zoom())
, rec_updating(false)
@@ -62,10 +63,10 @@ StreamView::StreamView (RouteTimeAxisView& tv, ArdourCanvas::Group* group)
{
/* set_position() will position the group */
- canvas_rect = new ArdourCanvas::SimpleRect (*canvas_group);
+ canvas_rect = new ArdourCanvas::SimpleRect (*_background_group);
canvas_rect->property_x1() = 0.0;
canvas_rect->property_y1() = 0.0;
- canvas_rect->property_x2() = _trackview.editor.frame_to_pixel (max_frames - 1);
+ canvas_rect->property_x2() = _trackview.editor.get_physical_screen_width();
canvas_rect->property_y2() = (double) tv.current_height();
canvas_rect->raise(1); // raise above tempo lines
@@ -301,10 +302,8 @@ StreamView::region_layered (RegionView* rv)
{
/* don't ever leave it at the bottom, since then it doesn't
get events - the parent group does instead ...
- we need to raise it above the streamview's
- canvas_rect, hence the layer+1 here
*/
- rv->get_canvas_group()->raise (rv->region()->layer() + 1);
+ rv->get_canvas_group()->raise (rv->region()->layer());
}
void
diff --git a/gtk2_ardour/streamview.h b/gtk2_ardour/streamview.h
index 3b1b4cb12b..fe97489241 100644
--- a/gtk2_ardour/streamview.h
+++ b/gtk2_ardour/streamview.h
@@ -74,6 +74,7 @@ public:
void set_layer_display (LayerDisplay);
+ ArdourCanvas::Group* background_group() { return _background_group; }
ArdourCanvas::Group* canvas_item() { return canvas_group; }
enum ColorTarget {
@@ -128,6 +129,7 @@ protected:
RouteTimeAxisView& _trackview;
bool owns_canvas_group;
+ ArdourCanvas::Group* _background_group;
ArdourCanvas::Group* canvas_group;
ArdourCanvas::SimpleRect* canvas_rect; /* frame around the whole thing */
diff --git a/gtk2_ardour/theme_manager.cc b/gtk2_ardour/theme_manager.cc
index 9968fa9ea0..3735791eb8 100644
--- a/gtk2_ardour/theme_manager.cc
+++ b/gtk2_ardour/theme_manager.cc
@@ -31,6 +31,7 @@
#include <ardour/configuration.h>
#include <ardour/filesystem_paths.h>
+#include <ardour/profile.h>
#include "theme_manager.h"
#include "rgb_macros.h"
@@ -207,12 +208,29 @@ load_rc_file (const string& filename, bool themechange)
Gtkmm2ext::UI::instance()->load_rcfile (rc_file_path.to_string(), themechange);
}
+/* hmm, this is a problem. the profile doesn't
+ exist when the theme manager is constructed
+ and toggles buttons during "normal" GTK setup.
+
+ a better solution will be to make all Profile
+ methods static or something.
+
+ XXX FIX ME
+*/
+
+#define HACK_PROFILE_IS_SAE() (getenv("ARDOUR_SAE")!=0)
+
void
ThemeManager::on_dark_theme_button_toggled()
{
if (!dark_button.get_active()) return;
- ARDOUR_UI::config()->ui_rc_file.set("ardour3_ui_dark.rc");
+ if (HACK_PROFILE_IS_SAE()){
+ ARDOUR_UI::config()->ui_rc_file.set("ardour3_ui_dark_sae.rc");
+ } else {
+ ARDOUR_UI::config()->ui_rc_file.set("ardour3_ui_dark.rc");
+ }
+
load_rc_file (ARDOUR_UI::config()->ui_rc_file.get(), true);
}
@@ -221,7 +239,12 @@ ThemeManager::on_light_theme_button_toggled()
{
if (!light_button.get_active()) return;
- ARDOUR_UI::config()->ui_rc_file.set("ardour3_ui_light.rc");
+ if (HACK_PROFILE_IS_SAE()){
+ ARDOUR_UI::config()->ui_rc_file.set("ardour3_ui_light_sae.rc");
+ } else {
+ ARDOUR_UI::config()->ui_rc_file.set("ardour3_ui_light.rc");
+ }
+
load_rc_file (ARDOUR_UI::config()->ui_rc_file.get(), true);
}
@@ -258,9 +281,9 @@ ThemeManager::setup_theme ()
rcfile = ARDOUR_UI::config()->ui_rc_file.get();
}
- if (rcfile == "ardour3_ui_dark.rc") {
+ if (rcfile == "ardour3_ui_dark.rc" || rcfile == "ardour3_ui_dark_sae.rc") {
dark_button.set_active();
- } else if (rcfile == "ardour3_ui_light.rc") {
+ } else if (rcfile == "ardour3_ui_light.rc" || "ardour3_ui_light_sae.rc") {
light_button.set_active();
}
diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc
index 1887c6d7ea..7da878b9f3 100644
--- a/gtk2_ardour/time_axis_view.cc
+++ b/gtk2_ardour/time_axis_view.cc
@@ -1,922 +1,935 @@
-/*
- Copyright (C) 2000 Paul Davis
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-
-#include <cstdlib>
-#include <cmath>
-#include <algorithm>
-#include <string>
-#include <list>
-
-#include <libgnomecanvasmm.h>
-#include <libgnomecanvasmm/canvas.h>
-#include <libgnomecanvasmm/item.h>
-
-#include <pbd/error.h>
-
-#include <gtkmm2ext/utils.h>
-#include <gtkmm2ext/selector.h>
-#include <gtkmm2ext/stop_signal.h>
-
-#include <ardour/session.h>
-#include <ardour/utils.h>
-#include <ardour/ladspa_plugin.h>
-#include <ardour/processor.h>
-#include <ardour/location.h>
-
-#include "ardour_ui.h"
-#include "public_editor.h"
-#include "time_axis_view.h"
-#include "region_view.h"
-#include "ghostregion.h"
-#include "simplerect.h"
-#include "simpleline.h"
-#include "selection.h"
-#include "keyboard.h"
-#include "rgb_macros.h"
-#include "utils.h"
-
-#include "i18n.h"
-
-using namespace Gtk;
-using namespace Gdk;
-using namespace sigc;
-using namespace ARDOUR;
-using namespace PBD;
-using namespace Editing;
-using namespace ArdourCanvas;
-
-const double trim_handle_size = 6.0; /* pixels */
-
-uint32_t TimeAxisView::hLargest = 0;
-uint32_t TimeAxisView::hLarge = 0;
-uint32_t TimeAxisView::hLarger = 0;
-uint32_t TimeAxisView::hNormal = 0;
-uint32_t TimeAxisView::hSmaller = 0;
-uint32_t TimeAxisView::hSmall = 0;
-bool TimeAxisView::need_size_info = true;
-
-TimeAxisView::TimeAxisView (ARDOUR::Session& sess, PublicEditor& ed, TimeAxisView* rent, Canvas& canvas)
- : AxisView (sess),
- editor (ed),
- y_position(0),
- order(0),
- controls_table (2, 8)
-{
- if (need_size_info) {
- compute_controls_size_info ();
- need_size_info = false;
- }
-
- canvas_display = new Group (*ed.get_trackview_group (), 0.0, 0.0);
-
- ghost_group = new Group (*canvas_display);
- ghost_group->lower_to_bottom();
- ghost_group->show();
-
- selection_group = new Group (*canvas_display);
- selection_group->hide();
-
- control_parent = 0;
- display_menu = 0;
- size_menu = 0;
- _hidden = false;
- in_destructor = false;
- height = 0;
- effective_height = 0;
- parent = rent;
- _has_state = false;
- last_name_entry_key_press_event = 0;
- name_packing = NamePackingBits (0);
- resize_drag_start = -1;
-
- /*
- Create the standard LHS Controls
- We create the top-level container and name add the name label here,
- subclasses can add to the layout as required
- */
-
- name_entry.set_name ("EditorTrackNameDisplay");
- name_entry.signal_button_release_event().connect (mem_fun (*this, &TimeAxisView::name_entry_button_release));
- name_entry.signal_button_press_event().connect (mem_fun (*this, &TimeAxisView::name_entry_button_press));
- name_entry.signal_key_release_event().connect (mem_fun (*this, &TimeAxisView::name_entry_key_release));
- name_entry.signal_activate().connect (mem_fun(*this, &TimeAxisView::name_entry_activated));
- name_entry.signal_focus_in_event().connect (mem_fun (*this, &TimeAxisView::name_entry_focus_in));
- name_entry.signal_focus_out_event().connect (mem_fun (*this, &TimeAxisView::name_entry_focus_out));
- Gtkmm2ext::set_size_request_to_display_given_text (name_entry, N_("gTortnam"), 10, 10); // just represents a short name
-
- name_label.set_name ("TrackLabel");
- name_label.set_alignment (0.0, 0.5);
-
- /* typically, either name_label OR name_entry are visible,
- but not both. its up to derived classes to show/hide them as they
- wish.
- */
-
- name_hbox.show ();
-
- controls_table.set_border_width (2);
- controls_table.set_row_spacings (0);
- controls_table.set_col_spacings (0);
- controls_table.set_homogeneous (true);
-
- controls_table.attach (name_hbox, 0, 5, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND, 3, 0);
- controls_table.show_all ();
- controls_table.set_no_show_all ();
-
- resizer.set_size_request (10, 10);
- resizer.set_name ("ResizeHandle");
- resizer.signal_expose_event().connect (mem_fun (*this, &TimeAxisView::resizer_expose));
- resizer.signal_button_press_event().connect (mem_fun (*this, &TimeAxisView::resizer_button_press));
- resizer.signal_button_release_event().connect (mem_fun (*this, &TimeAxisView::resizer_button_release));
- resizer.signal_motion_notify_event().connect (mem_fun (*this, &TimeAxisView::resizer_motion));
- resizer.set_events (Gdk::BUTTON_PRESS_MASK|
- Gdk::BUTTON_RELEASE_MASK|
- Gdk::POINTER_MOTION_MASK|
- Gdk::SCROLL_MASK);
-
- resizer_box.pack_start (resizer, false, false);
- resizer.show ();
- resizer_box.show();
-
- HSeparator* separator = manage (new HSeparator());
-
- controls_vbox.pack_start (controls_table, false, false);
- controls_vbox.pack_end (*separator, false, false);
- controls_vbox.pack_end (resizer_box, false, true);
- controls_vbox.show ();
-
- //controls_ebox.set_name ("TimeAxisViewControlsBaseUnselected");
- controls_ebox.add (controls_vbox);
- controls_ebox.add_events (BUTTON_PRESS_MASK|BUTTON_RELEASE_MASK|SCROLL_MASK);
- controls_ebox.set_flags (CAN_FOCUS);
-
- controls_ebox.signal_button_release_event().connect (mem_fun (*this, &TimeAxisView::controls_ebox_button_release));
- controls_ebox.signal_scroll_event().connect (mem_fun (*this, &TimeAxisView::controls_ebox_scroll), true);
-
- controls_hbox.pack_start (controls_ebox,true,true);
- controls_hbox.show ();
-
- // controls_frame.add (controls_hbox);
- // controls_frame.set_name ("TimeAxisViewControlsBaseUnselected");
- // controls_vbox.set_name ("TimeAxisViewControlsBaseUnselected");
- // controls_frame.set_shadow_type (Gtk::SHADOW_ETCHED_OUT);
-
- ColorsChanged.connect (mem_fun (*this, &TimeAxisView::color_handler));
-}
-
-TimeAxisView::~TimeAxisView()
-{
- in_destructor = true;
-
- for (list<GhostRegion*>::iterator i = ghosts.begin(); i != ghosts.end(); ++i) {
- delete *i;
- }
-
- for (list<SelectionRect*>::iterator i = free_selection_rects.begin(); i != free_selection_rects.end(); ++i) {
- delete (*i)->rect;
- delete (*i)->start_trim;
- delete (*i)->end_trim;
-
- }
-
- for (list<SelectionRect*>::iterator i = used_selection_rects.begin(); i != used_selection_rects.end(); ++i) {
- delete (*i)->rect;
- delete (*i)->start_trim;
- delete (*i)->end_trim;
- }
-
- for (list<SimpleLine*>::iterator i = feature_lines.begin(); i != feature_lines.end(); ++i) {
- delete (*i);
- }
-
- if (selection_group) {
- delete selection_group;
- selection_group = 0;
- }
-
- if (canvas_display) {
- delete canvas_display;
- canvas_display = 0;
- }
-
- if (display_menu) {
- delete display_menu;
- display_menu = 0;
- }
-}
-
-guint32
-TimeAxisView::show_at (double y, int& nth, VBox *parent)
-{
- if (control_parent) {
- control_parent->reorder_child (controls_hbox, nth);
- } else {
- control_parent = parent;
- parent->pack_start (controls_hbox, false, false);
- parent->reorder_child (controls_hbox, nth);
- }
-
- order = nth;
-
- if (y_position != y) {
- canvas_display->property_y () = y;
- canvas_display->move (0.0, 0.0);
- y_position = y;
-
- }
-
- canvas_display->raise_to_top ();
-
- if (_marked_for_display) {
- controls_hbox.show ();
- controls_ebox.show ();
- }
-
- _hidden = false;
-
- effective_height = current_height();
-
- /* now show children */
-
- for (Children::iterator i = children.begin(); i != children.end(); ++i) {
- if (canvas_item_visible ((*i)->canvas_display)) {
- ++nth;
- effective_height += (*i)->show_at (y + effective_height, nth, parent);
- }
- }
-
- return effective_height;
-}
-
-void
-TimeAxisView::clip_to_viewport ()
-{
- if (_marked_for_display) {
- if (y_position + effective_height < editor.get_trackview_group_vertical_offset () || y_position > editor.get_trackview_group_vertical_offset () + canvas_display->get_canvas()->get_height()) {
- canvas_display->hide ();
- return;
- }
- canvas_display->show ();
- }
- return;
-}
-
-bool
-TimeAxisView::controls_ebox_scroll (GdkEventScroll* ev)
-{
- switch (ev->direction) {
- case GDK_SCROLL_UP:
- if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
- step_height (true);
- return true;
- } else if (Keyboard::no_modifiers_active (ev->state)) {
- editor.scroll_tracks_up_line();
- return true;
- }
- break;
-
- case GDK_SCROLL_DOWN:
- if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
- step_height (false);
- return true;
- } else if (Keyboard::no_modifiers_active (ev->state)) {
- editor.scroll_tracks_down_line();
- return true;
- }
- break;
-
- default:
- /* no handling for left/right, yet */
- break;
- }
-
- return false;
-}
-
-bool
-TimeAxisView::controls_ebox_button_release (GdkEventButton* ev)
-{
- switch (ev->button) {
- case 1:
- selection_click (ev);
- break;
-
- case 3:
- popup_display_menu (ev->time);
- break;
- }
-
- return true;
-}
-
-void
-TimeAxisView::selection_click (GdkEventButton* ev)
-{
- Selection::Operation op = Keyboard::selection_type (ev->state);
- editor.set_selected_track (*this, op, false);
-}
-
-void
-TimeAxisView::hide ()
-{
- if (_hidden) {
- return;
- }
-
- canvas_display->hide();
- controls_hbox.hide ();
-
- if (control_parent) {
- control_parent->remove (controls_hbox);
- control_parent = 0;
- }
-
- y_position = -1;
- _hidden = true;
-
- /* now hide children */
-
- for (Children::iterator i = children.begin(); i != children.end(); ++i) {
- (*i)->hide ();
- }
-
- /* if its hidden, it cannot be selected */
-
- editor.get_selection().remove (this);
-
- Hiding ();
-}
-
-void
-TimeAxisView::step_height (bool bigger)
-{
- static const uint32_t step = 20;
-
- if (bigger) {
- set_height (height + step);
- } else {
- if (height > step) {
- set_height (std::max (height - step, hSmall));
- } else if (height != hSmall) {
- set_height (hSmall);
- }
- }
-}
-
-void
-TimeAxisView::set_heights (uint32_t h)
-{
- TrackSelection& ts (editor.get_selection().tracks);
-
- for (TrackSelection::iterator i = ts.begin(); i != ts.end(); ++i) {
- (*i)->set_height (h);
- }
-}
-
-void
-TimeAxisView::set_height(uint32_t h)
-{
- controls_ebox.property_height_request () = h;
- height = h;
-
- for (list<GhostRegion*>::iterator i = ghosts.begin(); i != ghosts.end(); ++i) {
- (*i)->set_height ();
- }
-
- if (canvas_item_visible (selection_group)) {
- /* resize the selection rect */
- show_selection (editor.get_selection().time);
- }
-
- reshow_feature_lines ();
-}
-
-bool
-TimeAxisView::name_entry_key_release (GdkEventKey* ev)
-{
- PublicEditor::TrackViewList *allviews = 0;
- PublicEditor::TrackViewList::iterator i;
-
- switch (ev->keyval) {
- case GDK_Escape:
- name_entry.select_region (0,0);
- controls_ebox.grab_focus ();
- name_entry_changed ();
- return true;
-
- /* Shift+Tab Keys Pressed. Note that for Shift+Tab, GDK actually
- * generates a different ev->keyval, rather than setting
- * ev->state.
+ /*
+ Copyright (C) 2000 Paul Davis
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ */
+
+ #include <cstdlib>
+ #include <cmath>
+ #include <algorithm>
+ #include <string>
+ #include <list>
+
+ #include <libgnomecanvasmm.h>
+ #include <libgnomecanvasmm/canvas.h>
+ #include <libgnomecanvasmm/item.h>
+
+ #include <pbd/error.h>
+
+ #include <gtkmm2ext/utils.h>
+ #include <gtkmm2ext/selector.h>
+ #include <gtkmm2ext/stop_signal.h>
+
+ #include <ardour/session.h>
+ #include <ardour/utils.h>
+ #include <ardour/ladspa_plugin.h>
+ #include <ardour/processor.h>
+ #include <ardour/location.h>
+
+ #include "ardour_ui.h"
+ #include "public_editor.h"
+ #include "time_axis_view.h"
+ #include "region_view.h"
+ #include "ghostregion.h"
+ #include "simplerect.h"
+ #include "simpleline.h"
+ #include "selection.h"
+ #include "keyboard.h"
+ #include "rgb_macros.h"
+ #include "utils.h"
+
+ #include "i18n.h"
+
+ using namespace Gtk;
+ using namespace Gdk;
+ using namespace sigc;
+ using namespace ARDOUR;
+ using namespace PBD;
+ using namespace Editing;
+ using namespace ArdourCanvas;
+
+ const double trim_handle_size = 6.0; /* pixels */
+
+ uint32_t TimeAxisView::hLargest = 0;
+ uint32_t TimeAxisView::hLarge = 0;
+ uint32_t TimeAxisView::hLarger = 0;
+ uint32_t TimeAxisView::hNormal = 0;
+ uint32_t TimeAxisView::hSmaller = 0;
+ uint32_t TimeAxisView::hSmall = 0;
+ bool TimeAxisView::need_size_info = true;
+
+ TimeAxisView::TimeAxisView (ARDOUR::Session& sess, PublicEditor& ed, TimeAxisView* rent, Canvas& canvas)
+ : AxisView (sess),
+ editor (ed),
+ y_position(0),
+ order(0),
+ controls_table (2, 8)
+ {
+ if (need_size_info) {
+ compute_controls_size_info ();
+ need_size_info = false;
+ }
+ canvas_background = new Group (*ed.get_background_group (), 0.0, 0.0);
+ canvas_display = new Group (*ed.get_trackview_group (), 0.0, 0.0);
+
+ selection_group = new Group (*canvas_display);
+ selection_group->hide();
+
+ ghost_group = new Group (*canvas_display);
+ ghost_group->lower_to_bottom();
+ ghost_group->show();
+
+ control_parent = 0;
+ display_menu = 0;
+ size_menu = 0;
+ _hidden = false;
+ in_destructor = false;
+ height = 0;
+ effective_height = 0;
+ parent = rent;
+ _has_state = false;
+ last_name_entry_key_press_event = 0;
+ name_packing = NamePackingBits (0);
+ resize_drag_start = -1;
+
+ /*
+ Create the standard LHS Controls
+ We create the top-level container and name add the name label here,
+ subclasses can add to the layout as required
*/
- case GDK_ISO_Left_Tab:
- case GDK_Tab:
- name_entry_changed ();
- allviews = editor.get_valid_views (0);
- if (allviews != 0) {
- i = find (allviews->begin(), allviews->end(), this);
- if (ev->keyval == GDK_Tab) {
- if (i != allviews->end()) {
- do {
- if (++i == allviews->end()) { return true; }
- } while((*i)->hidden());
- }
- } else {
- if (i != allviews->begin()) {
- do {
- if (--i == allviews->begin()) { return true; }
- } while ((*i)->hidden());
- }
- }
-
-
- /* resize to show editable name display */
-
- if ((*i)->current_height() >= hSmall && (*i)->current_height() < hNormal) {
- (*i)->set_height (hSmaller);
- }
-
- (*i)->name_entry.grab_focus();
- }
- return true;
- case GDK_Up:
- case GDK_Down:
- name_entry_changed ();
- return true;
-
- default:
- break;
- }
-
-#ifdef TIMEOUT_NAME_EDIT
- /* adapt the timeout to reflect the user's typing speed */
-
- guint32 name_entry_timeout;
-
- if (last_name_entry_key_press_event) {
- /* timeout is 1/2 second or 5 times their current inter-char typing speed */
- name_entry_timeout = std::max (500U, (5 * (ev->time - last_name_entry_key_press_event)));
- } else {
- /* start with a 1 second timeout */
- name_entry_timeout = 1000;
- }
-
- last_name_entry_key_press_event = ev->time;
-
- /* wait 1 seconds and if no more keys are pressed, act as if they pressed enter */
-
- name_entry_key_timeout.disconnect();
- name_entry_key_timeout = Glib::signal_timeout().connect (mem_fun (*this, &TimeAxisView::name_entry_key_timed_out), name_entry_timeout);
-#endif
-
- return false;
-}
-
-bool
-TimeAxisView::name_entry_focus_in (GdkEventFocus* ev)
-{
- name_entry.select_region (0, -1);
- name_entry.set_name ("EditorActiveTrackNameDisplay");
- return false;
-}
-
-bool
-TimeAxisView::name_entry_focus_out (GdkEventFocus* ev)
-{
- /* clean up */
-
- last_name_entry_key_press_event = 0;
- name_entry_key_timeout.disconnect ();
- name_entry.set_name ("EditorTrackNameDisplay");
- name_entry.select_region (0,0);
-
- /* do the real stuff */
-
- name_entry_changed ();
-
- return false;
-}
-
-bool
-TimeAxisView::name_entry_key_timed_out ()
-{
- name_entry_activated();
- return false;
-}
-
-void
-TimeAxisView::name_entry_activated ()
-{
- controls_ebox.grab_focus();
-}
-
-void
-TimeAxisView::name_entry_changed ()
-{
-}
-
-bool
-TimeAxisView::name_entry_button_press (GdkEventButton *ev)
-{
- if (ev->button == 3) {
- return true;
- }
- return false;
-}
-
-bool
-TimeAxisView::name_entry_button_release (GdkEventButton *ev)
-{
- if (ev->button == 3) {
- popup_display_menu (ev->time);
- return true;
- }
- return false;
-}
-
-void
-TimeAxisView::conditionally_add_to_selection ()
-{
- Selection& s (editor.get_selection());
-
- if (!s.selected (this)) {
- editor.set_selected_track (*this, Selection::Set);
- }
-}
-
-void
-TimeAxisView::popup_display_menu (guint32 when)
-{
- if (display_menu == 0) {
- build_display_menu ();
- }
-
- conditionally_add_to_selection ();
- display_menu->popup (1, when);
-}
-
-gint
-TimeAxisView::size_click (GdkEventButton *ev)
-{
- conditionally_add_to_selection ();
- popup_size_menu (ev->time);
- return TRUE;
-}
-
-void
-TimeAxisView::popup_size_menu (guint32 when)
-{
- if (size_menu == 0) {
- build_size_menu ();
- }
- size_menu->popup (1, when);
-}
-
-void
-TimeAxisView::set_selected (bool yn)
-{
- if (yn == _selected) {
- return;
- }
-
- Selectable::set_selected (yn);
-
- if (_selected) {
- controls_ebox.set_name (controls_base_selected_name);
- controls_hbox.set_name (controls_base_selected_name);
- controls_vbox.set_name (controls_base_selected_name);
- /* propagate any existing selection, if the mode is right */
-
- if (editor.current_mouse_mode() == Editing::MouseRange && !editor.get_selection().time.empty()) {
- show_selection (editor.get_selection().time);
- }
-
- } else {
- controls_ebox.set_name (controls_base_unselected_name);
- controls_hbox.set_name (controls_base_unselected_name);
- controls_vbox.set_name (controls_base_unselected_name);
- hide_selection ();
-
- /* children will be set for the yn=true case. but when deselecting
- the editor only has a list of top-level trackviews, so we
- have to do this here.
- */
-
- for (Children::iterator i = children.begin(); i != children.end(); ++i) {
- (*i)->set_selected (false);
- }
- }
-
- resizer.queue_draw ();
-}
-
-void
-TimeAxisView::build_size_menu ()
-{
- using namespace Menu_Helpers;
-
- size_menu = new Menu;
- size_menu->set_name ("ArdourContextMenu");
- MenuList& items = size_menu->items();
-
- items.push_back (MenuElem (_("Largest"), bind (mem_fun (*this, &TimeAxisView::set_heights), hLargest)));
- items.push_back (MenuElem (_("Large"), bind (mem_fun (*this, &TimeAxisView::set_heights), hLarge)));
- items.push_back (MenuElem (_("Larger"), bind (mem_fun (*this, &TimeAxisView::set_heights), hLarger)));
- items.push_back (MenuElem (_("Normal"), bind (mem_fun (*this, &TimeAxisView::set_heights), hNormal)));
- items.push_back (MenuElem (_("Smaller"), bind (mem_fun (*this, &TimeAxisView::set_heights),hSmaller)));
- items.push_back (MenuElem (_("Small"), bind (mem_fun (*this, &TimeAxisView::set_heights), hSmall)));
-}
-
-void
-TimeAxisView::build_display_menu ()
-{
- using namespace Menu_Helpers;
-
- display_menu = new Menu;
- display_menu->set_name ("ArdourContextMenu");
-
- // Just let implementing classes define what goes into the manu
-}
-
-void
-TimeAxisView::set_samples_per_unit (double spu)
-{
- for (Children::iterator i = children.begin(); i != children.end(); ++i) {
- (*i)->set_samples_per_unit (spu);
- }
-
- AnalysisFeatureList::const_iterator i;
- list<ArdourCanvas::SimpleLine*>::iterator l;
-
- for (i = analysis_features.begin(), l = feature_lines.begin(); i != analysis_features.end() && l != feature_lines.end(); ++i, ++l) {
- (*l)->property_x1() = editor.frame_to_pixel (*i);
- (*l)->property_x2() = editor.frame_to_pixel (*i);
- }
-}
-
-void
-TimeAxisView::show_timestretch (nframes_t start, nframes_t end)
-{
- for (Children::iterator i = children.begin(); i != children.end(); ++i) {
- (*i)->show_timestretch (start, end);
- }
-}
-
-void
-TimeAxisView::hide_timestretch ()
-{
- for (Children::iterator i = children.begin(); i != children.end(); ++i) {
- (*i)->hide_timestretch ();
- }
-}
-
-void
-TimeAxisView::show_selection (TimeSelection& ts)
-{
- double x1;
- double x2;
- double y2;
- SelectionRect *rect;
-
- for (Children::iterator i = children.begin(); i != children.end(); ++i) {
- (*i)->show_selection (ts);
- }
-
- if (canvas_item_visible (selection_group)) {
- while (!used_selection_rects.empty()) {
- free_selection_rects.push_front (used_selection_rects.front());
- used_selection_rects.pop_front();
- free_selection_rects.front()->rect->hide();
- free_selection_rects.front()->start_trim->hide();
- free_selection_rects.front()->end_trim->hide();
- }
- selection_group->hide();
- }
-
- selection_group->show();
- selection_group->raise_to_top();
-
- for (list<AudioRange>::iterator i = ts.begin(); i != ts.end(); ++i) {
- nframes_t start, end, cnt;
-
- start = (*i).start;
- end = (*i).end;
- cnt = end - start + 1;
-
- rect = get_selection_rect ((*i).id);
-
- x1 = editor.frame_to_unit (start);
- x2 = editor.frame_to_unit (start + cnt - 1);
- y2 = current_height();
-
- rect->rect->property_x1() = x1;
- rect->rect->property_y1() = 1.0;
- rect->rect->property_x2() = x2;
- rect->rect->property_y2() = y2;
-
- // trim boxes are at the top for selections
-
- if (x2 > x1) {
- rect->start_trim->property_x1() = x1;
- rect->start_trim->property_y1() = 1.0;
- rect->start_trim->property_x2() = x1 + trim_handle_size;
- rect->start_trim->property_y2() = 1.0 + trim_handle_size;
-
- rect->end_trim->property_x1() = x2 - trim_handle_size;
- rect->end_trim->property_y1() = 1.0;
- rect->end_trim->property_x2() = x2;
- rect->end_trim->property_y2() = 1.0 + trim_handle_size;
-
- rect->start_trim->show();
- rect->end_trim->show();
- } else {
- rect->start_trim->hide();
- rect->end_trim->hide();
- }
-
- rect->rect->show ();
- used_selection_rects.push_back (rect);
- }
-}
-
-void
-TimeAxisView::reshow_selection (TimeSelection& ts)
-{
- show_selection (ts);
-
- for (Children::iterator i = children.begin(); i != children.end(); ++i) {
- (*i)->show_selection (ts);
- }
-}
-
-void
-TimeAxisView::hide_selection ()
-{
- if (canvas_item_visible (selection_group)) {
- while (!used_selection_rects.empty()) {
- free_selection_rects.push_front (used_selection_rects.front());
- used_selection_rects.pop_front();
- free_selection_rects.front()->rect->hide();
- free_selection_rects.front()->start_trim->hide();
- free_selection_rects.front()->end_trim->hide();
- }
- selection_group->hide();
- }
-
- for (Children::iterator i = children.begin(); i != children.end(); ++i) {
- (*i)->hide_selection ();
- }
-}
-
-void
-TimeAxisView::order_selection_trims (ArdourCanvas::Item *item, bool put_start_on_top)
-{
- /* find the selection rect this is for. we have the item corresponding to one
- of the trim handles.
+ name_entry.set_name ("EditorTrackNameDisplay");
+ name_entry.signal_button_release_event().connect (mem_fun (*this, &TimeAxisView::name_entry_button_release));
+ name_entry.signal_button_press_event().connect (mem_fun (*this, &TimeAxisView::name_entry_button_press));
+ name_entry.signal_key_release_event().connect (mem_fun (*this, &TimeAxisView::name_entry_key_release));
+ name_entry.signal_activate().connect (mem_fun(*this, &TimeAxisView::name_entry_activated));
+ name_entry.signal_focus_in_event().connect (mem_fun (*this, &TimeAxisView::name_entry_focus_in));
+ name_entry.signal_focus_out_event().connect (mem_fun (*this, &TimeAxisView::name_entry_focus_out));
+ Gtkmm2ext::set_size_request_to_display_given_text (name_entry, N_("gTortnam"), 10, 10); // just represents a short name
+
+ name_label.set_name ("TrackLabel");
+ name_label.set_alignment (0.0, 0.5);
+
+ /* typically, either name_label OR name_entry are visible,
+ but not both. its up to derived classes to show/hide them as they
+ wish.
*/
- for (list<SelectionRect*>::iterator i = used_selection_rects.begin(); i != used_selection_rects.end(); ++i) {
- if ((*i)->start_trim == item || (*i)->end_trim == item) {
-
- /* make one trim handle be "above" the other so that if they overlap,
- the top one is the one last used.
- */
-
- (*i)->rect->raise_to_top ();
- (put_start_on_top ? (*i)->start_trim : (*i)->end_trim)->raise_to_top ();
- (put_start_on_top ? (*i)->end_trim : (*i)->start_trim)->raise_to_top ();
-
- break;
- }
- }
-}
-
-SelectionRect *
-TimeAxisView::get_selection_rect (uint32_t id)
-{
- SelectionRect *rect;
-
- /* check to see if we already have a visible rect for this particular selection ID */
-
- for (list<SelectionRect*>::iterator i = used_selection_rects.begin(); i != used_selection_rects.end(); ++i) {
- if ((*i)->id == id) {
- return (*i);
- }
- }
-
- /* ditto for the free rect list */
-
- for (list<SelectionRect*>::iterator i = free_selection_rects.begin(); i != free_selection_rects.end(); ++i) {
- if ((*i)->id == id) {
- SelectionRect* ret = (*i);
- free_selection_rects.erase (i);
- return ret;
- }
- }
-
- /* no existing matching rect, so go get a new one from the free list, or create one if there are none */
-
- if (free_selection_rects.empty()) {
-
- rect = new SelectionRect;
-
- rect->rect = new SimpleRect (*selection_group);
- rect->rect->property_x1() = 0.0;
- rect->rect->property_y1() = 0.0;
- rect->rect->property_x2() = 0.0;
- rect->rect->property_y2() = 0.0;
- rect->rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_SelectionRect.get();
- rect->rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_Selection.get();
-
- rect->start_trim = new SimpleRect (*selection_group);
- rect->start_trim->property_x1() = 0.0;
- rect->start_trim->property_x2() = 0.0;
- rect->start_trim->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_Selection.get();
- rect->start_trim->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_Selection.get();
-
- rect->end_trim = new SimpleRect (*selection_group);
- rect->end_trim->property_x1() = 0.0;
- rect->end_trim->property_x2() = 0.0;
- rect->end_trim->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_Selection.get();
- rect->end_trim->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_Selection.get();
-
- free_selection_rects.push_front (rect);
-
- rect->rect->signal_event().connect (bind (mem_fun (editor, &PublicEditor::canvas_selection_rect_event), rect->rect, rect));
- rect->start_trim->signal_event().connect (bind (mem_fun (editor, &PublicEditor::canvas_selection_start_trim_event), rect->rect, rect));
- rect->end_trim->signal_event().connect (bind (mem_fun (editor, &PublicEditor::canvas_selection_end_trim_event), rect->rect, rect));
- }
-
- rect = free_selection_rects.front();
- rect->id = id;
- free_selection_rects.pop_front();
- return rect;
-}
-
-struct null_deleter { void operator()(void const *) const {} };
-
-bool
-TimeAxisView::is_child (TimeAxisView* tav)
-{
- return find (children.begin(), children.end(), boost::shared_ptr<TimeAxisView>(tav, null_deleter())) != children.end();
-}
-
-void
-TimeAxisView::add_child (boost::shared_ptr<TimeAxisView> child)
-{
- children.push_back (child);
-}
-
-void
-TimeAxisView::remove_child (boost::shared_ptr<TimeAxisView> child)
-{
- Children::iterator i;
-
- if ((i = find (children.begin(), children.end(), child)) != children.end()) {
- children.erase (i);
- }
-}
-
-void
-TimeAxisView::get_selectables (nframes_t start, nframes_t end, double top, double bot, list<Selectable*>& result)
-{
- return;
-}
-
-void
-TimeAxisView::get_inverted_selectables (Selection& sel, list<Selectable*>& result)
-{
- return;
-}
-
-void
-TimeAxisView::add_ghost (RegionView* rv) {
- GhostRegion* gr = rv->add_ghost (*this);
-
- if(gr) {
- ghosts.push_back(gr);
- gr->GoingAway.connect (mem_fun(*this, &TimeAxisView::erase_ghost));
- }
-}
-
-void
-TimeAxisView::remove_ghost (RegionView* rv) {
+ name_hbox.show ();
+
+ controls_table.set_border_width (2);
+ controls_table.set_row_spacings (0);
+ controls_table.set_col_spacings (0);
+ controls_table.set_homogeneous (true);
+
+ controls_table.attach (name_hbox, 0, 5, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND, 3, 0);
+ controls_table.show_all ();
+ controls_table.set_no_show_all ();
+
+ resizer.set_size_request (10, 10);
+ resizer.set_name ("ResizeHandle");
+ resizer.signal_expose_event().connect (mem_fun (*this, &TimeAxisView::resizer_expose));
+ resizer.signal_button_press_event().connect (mem_fun (*this, &TimeAxisView::resizer_button_press));
+ resizer.signal_button_release_event().connect (mem_fun (*this, &TimeAxisView::resizer_button_release));
+ resizer.signal_motion_notify_event().connect (mem_fun (*this, &TimeAxisView::resizer_motion));
+ resizer.set_events (Gdk::BUTTON_PRESS_MASK|
+ Gdk::BUTTON_RELEASE_MASK|
+ Gdk::POINTER_MOTION_MASK|
+ Gdk::SCROLL_MASK);
+
+ resizer_box.pack_start (resizer, false, false);
+ resizer.show ();
+ resizer_box.show();
+
+ HSeparator* separator = manage (new HSeparator());
+
+ controls_vbox.pack_start (controls_table, false, false);
+ controls_vbox.pack_end (*separator, false, false);
+ controls_vbox.pack_end (resizer_box, false, true);
+ controls_vbox.show ();
+
+ //controls_ebox.set_name ("TimeAxisViewControlsBaseUnselected");
+ controls_ebox.add (controls_vbox);
+ controls_ebox.add_events (BUTTON_PRESS_MASK|BUTTON_RELEASE_MASK|SCROLL_MASK);
+ controls_ebox.set_flags (CAN_FOCUS);
+
+ controls_ebox.signal_button_release_event().connect (mem_fun (*this, &TimeAxisView::controls_ebox_button_release));
+ controls_ebox.signal_scroll_event().connect (mem_fun (*this, &TimeAxisView::controls_ebox_scroll), true);
+
+ controls_hbox.pack_start (controls_ebox,true,true);
+ controls_hbox.show ();
+
+ // controls_frame.add (controls_hbox);
+ // controls_frame.set_name ("TimeAxisViewControlsBaseUnselected");
+ // controls_vbox.set_name ("TimeAxisViewControlsBaseUnselected");
+ // controls_frame.set_shadow_type (Gtk::SHADOW_ETCHED_OUT);
+
+ ColorsChanged.connect (mem_fun (*this, &TimeAxisView::color_handler));
+ }
+
+ TimeAxisView::~TimeAxisView()
+ {
+ in_destructor = true;
+
+ for (list<GhostRegion*>::iterator i = ghosts.begin(); i != ghosts.end(); ++i) {
+ delete *i;
+ }
+
+ for (list<SelectionRect*>::iterator i = free_selection_rects.begin(); i != free_selection_rects.end(); ++i) {
+ delete (*i)->rect;
+ delete (*i)->start_trim;
+ delete (*i)->end_trim;
+
+ }
+
+ for (list<SelectionRect*>::iterator i = used_selection_rects.begin(); i != used_selection_rects.end(); ++i) {
+ delete (*i)->rect;
+ delete (*i)->start_trim;
+ delete (*i)->end_trim;
+ }
+
+ for (list<SimpleLine*>::iterator i = feature_lines.begin(); i != feature_lines.end(); ++i) {
+ delete (*i);
+ }
+
+ if (selection_group) {
+ delete selection_group;
+ selection_group = 0;
+ }
+
+ if (canvas_background) {
+ delete canvas_background;
+ canvas_background = 0;
+ }
+
+ if (canvas_display) {
+ delete canvas_display;
+ canvas_display = 0;
+ }
+
+ if (display_menu) {
+ delete display_menu;
+ display_menu = 0;
+ }
+ }
+
+ guint32
+ TimeAxisView::show_at (double y, int& nth, VBox *parent)
+ {
+ if (control_parent) {
+ control_parent->reorder_child (controls_hbox, nth);
+ } else {
+ control_parent = parent;
+ parent->pack_start (controls_hbox, false, false);
+ parent->reorder_child (controls_hbox, nth);
+ }
+
+ order = nth;
+
+ if (y_position != y) {
+ canvas_display->property_y () = y;
+ canvas_background->property_y () = y;
+ /* silly canvas */
+ canvas_display->move (0.0, 0.0);
+ canvas_background->move (0.0, 0.0);
+ y_position = y;
+
+ }
+
+ canvas_background->raise_to_top ();
+ canvas_display->raise_to_top ();
+
+ if (_marked_for_display) {
+ controls_hbox.show ();
+ controls_ebox.show ();
+ canvas_background->show ();
+ }
+
+ _hidden = false;
+
+ effective_height = current_height();
+
+ /* now show children */
+
+ for (Children::iterator i = children.begin(); i != children.end(); ++i) {
+ if (canvas_item_visible ((*i)->canvas_display)) {
+ ++nth;
+ effective_height += (*i)->show_at (y + effective_height, nth, parent);
+ }
+ }
+
+ return effective_height;
+ }
+
+ void
+ TimeAxisView::clip_to_viewport ()
+ {
+ if (_marked_for_display) {
+ if (y_position + effective_height < editor.get_trackview_group_vertical_offset () || y_position > editor.get_trackview_group_vertical_offset () + canvas_display->get_canvas()->get_height()) {
+ canvas_background->hide ();
+ canvas_display->hide ();
+ return;
+ }
+ canvas_background->show();
+ canvas_display->show ();
+ }
+ return;
+ }
+
+ bool
+ TimeAxisView::controls_ebox_scroll (GdkEventScroll* ev)
+ {
+ switch (ev->direction) {
+ case GDK_SCROLL_UP:
+ if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
+ step_height (true);
+ return true;
+ } else if (Keyboard::no_modifiers_active (ev->state)) {
+ editor.scroll_tracks_up_line();
+ return true;
+ }
+ break;
+
+ case GDK_SCROLL_DOWN:
+ if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
+ step_height (false);
+ return true;
+ } else if (Keyboard::no_modifiers_active (ev->state)) {
+ editor.scroll_tracks_down_line();
+ return true;
+ }
+ break;
+
+ default:
+ /* no handling for left/right, yet */
+ break;
+ }
+
+ return false;
+ }
+
+ bool
+ TimeAxisView::controls_ebox_button_release (GdkEventButton* ev)
+ {
+ switch (ev->button) {
+ case 1:
+ selection_click (ev);
+ break;
+
+ case 3:
+ popup_display_menu (ev->time);
+ break;
+ }
+
+ return true;
+ }
+
+ void
+ TimeAxisView::selection_click (GdkEventButton* ev)
+ {
+ Selection::Operation op = Keyboard::selection_type (ev->state);
+ editor.set_selected_track (*this, op, false);
+ }
+
+ void
+ TimeAxisView::hide ()
+ {
+ if (_hidden) {
+ return;
+ }
+
+ canvas_display->hide();
+ canvas_background->hide();
+ controls_frame.hide ();
+
+ if (control_parent) {
+ control_parent->remove (controls_hbox);
+ control_parent = 0;
+ }
+
+ y_position = -1;
+ _hidden = true;
+
+ /* now hide children */
+
+ for (Children::iterator i = children.begin(); i != children.end(); ++i) {
+ (*i)->hide ();
+ }
+
+ /* if its hidden, it cannot be selected */
+
+ editor.get_selection().remove (this);
+
+ Hiding ();
+ }
+
+ void
+ TimeAxisView::step_height (bool bigger)
+ {
+ static const uint32_t step = 20;
+
+ if (bigger) {
+ set_height (height + step);
+ } else {
+ if (height > step) {
+ set_height (std::max (height - step, hSmall));
+ } else if (height != hSmall) {
+ set_height (hSmall);
+ }
+ }
+ }
+
+ void
+ TimeAxisView::set_heights (uint32_t h)
+ {
+ TrackSelection& ts (editor.get_selection().tracks);
+
+ for (TrackSelection::iterator i = ts.begin(); i != ts.end(); ++i) {
+ (*i)->set_height (h);
+ }
+ }
+
+ void
+ TimeAxisView::set_height(uint32_t h)
+ {
+ controls_ebox.property_height_request () = h;
+ height = h;
+
+ for (list<GhostRegion*>::iterator i = ghosts.begin(); i != ghosts.end(); ++i) {
+ (*i)->set_height ();
+ }
+
+ if (canvas_item_visible (selection_group)) {
+ /* resize the selection rect */
+ show_selection (editor.get_selection().time);
+ }
+
+ reshow_feature_lines ();
+ }
+
+ bool
+ TimeAxisView::name_entry_key_release (GdkEventKey* ev)
+ {
+ PublicEditor::TrackViewList *allviews = 0;
+ PublicEditor::TrackViewList::iterator i;
+
+ switch (ev->keyval) {
+ case GDK_Escape:
+ name_entry.select_region (0,0);
+ controls_ebox.grab_focus ();
+ name_entry_changed ();
+ return true;
+
+ /* Shift+Tab Keys Pressed. Note that for Shift+Tab, GDK actually
+ * generates a different ev->keyval, rather than setting
+ * ev->state.
+ */
+ case GDK_ISO_Left_Tab:
+ case GDK_Tab:
+ name_entry_changed ();
+ allviews = editor.get_valid_views (0);
+ if (allviews != 0) {
+ i = find (allviews->begin(), allviews->end(), this);
+ if (ev->keyval == GDK_Tab) {
+ if (i != allviews->end()) {
+ do {
+ if (++i == allviews->end()) { return true; }
+ } while((*i)->hidden());
+ }
+ } else {
+ if (i != allviews->begin()) {
+ do {
+ if (--i == allviews->begin()) { return true; }
+ } while ((*i)->hidden());
+ }
+ }
+
+
+ /* resize to show editable name display */
+
+ if ((*i)->current_height() >= hSmall && (*i)->current_height() < hNormal) {
+ (*i)->set_height (hSmaller);
+ }
+
+ (*i)->name_entry.grab_focus();
+ }
+ return true;
+
+ case GDK_Up:
+ case GDK_Down:
+ name_entry_changed ();
+ return true;
+
+ default:
+ break;
+ }
+
+ #ifdef TIMEOUT_NAME_EDIT
+ /* adapt the timeout to reflect the user's typing speed */
+
+ guint32 name_entry_timeout;
+
+ if (last_name_entry_key_press_event) {
+ /* timeout is 1/2 second or 5 times their current inter-char typing speed */
+ name_entry_timeout = std::max (500U, (5 * (ev->time - last_name_entry_key_press_event)));
+ } else {
+ /* start with a 1 second timeout */
+ name_entry_timeout = 1000;
+ }
+
+ last_name_entry_key_press_event = ev->time;
+
+ /* wait 1 seconds and if no more keys are pressed, act as if they pressed enter */
+
+ name_entry_key_timeout.disconnect();
+ name_entry_key_timeout = Glib::signal_timeout().connect (mem_fun (*this, &TimeAxisView::name_entry_key_timed_out), name_entry_timeout);
+ #endif
+
+ return false;
+ }
+
+ bool
+ TimeAxisView::name_entry_focus_in (GdkEventFocus* ev)
+ {
+ name_entry.select_region (0, -1);
+ name_entry.set_name ("EditorActiveTrackNameDisplay");
+ return false;
+ }
+
+ bool
+ TimeAxisView::name_entry_focus_out (GdkEventFocus* ev)
+ {
+ /* clean up */
+
+ last_name_entry_key_press_event = 0;
+ name_entry_key_timeout.disconnect ();
+ name_entry.set_name ("EditorTrackNameDisplay");
+ name_entry.select_region (0,0);
+
+ /* do the real stuff */
+
+ name_entry_changed ();
+
+ return false;
+ }
+
+ bool
+ TimeAxisView::name_entry_key_timed_out ()
+ {
+ name_entry_activated();
+ return false;
+ }
+
+ void
+ TimeAxisView::name_entry_activated ()
+ {
+ controls_ebox.grab_focus();
+ }
+
+ void
+ TimeAxisView::name_entry_changed ()
+ {
+ }
+
+ bool
+ TimeAxisView::name_entry_button_press (GdkEventButton *ev)
+ {
+ if (ev->button == 3) {
+ return true;
+ }
+ return false;
+ }
+
+ bool
+ TimeAxisView::name_entry_button_release (GdkEventButton *ev)
+ {
+ if (ev->button == 3) {
+ popup_display_menu (ev->time);
+ return true;
+ }
+ return false;
+ }
+
+ void
+ TimeAxisView::conditionally_add_to_selection ()
+ {
+ Selection& s (editor.get_selection());
+
+ if (!s.selected (this)) {
+ editor.set_selected_track (*this, Selection::Set);
+ }
+ }
+
+ void
+ TimeAxisView::popup_display_menu (guint32 when)
+ {
+ if (display_menu == 0) {
+ build_display_menu ();
+ }
+
+ conditionally_add_to_selection ();
+ display_menu->popup (1, when);
+ }
+
+ gint
+ TimeAxisView::size_click (GdkEventButton *ev)
+ {
+ conditionally_add_to_selection ();
+ popup_size_menu (ev->time);
+ return TRUE;
+ }
+
+ void
+ TimeAxisView::popup_size_menu (guint32 when)
+ {
+ if (size_menu == 0) {
+ build_size_menu ();
+ }
+ size_menu->popup (1, when);
+ }
+
+ void
+ TimeAxisView::set_selected (bool yn)
+ {
+ if (yn == _selected) {
+ return;
+ }
+
+ Selectable::set_selected (yn);
+
+ if (_selected) {
+ controls_ebox.set_name (controls_base_selected_name);
+ controls_hbox.set_name (controls_base_selected_name);
+ controls_vbox.set_name (controls_base_selected_name);
+ /* propagate any existing selection, if the mode is right */
+
+ if (editor.current_mouse_mode() == Editing::MouseRange && !editor.get_selection().time.empty()) {
+ show_selection (editor.get_selection().time);
+ }
+
+ } else {
+ controls_ebox.set_name (controls_base_unselected_name);
+ controls_hbox.set_name (controls_base_unselected_name);
+ controls_vbox.set_name (controls_base_unselected_name);
+ hide_selection ();
+
+ /* children will be set for the yn=true case. but when deselecting
+ the editor only has a list of top-level trackviews, so we
+ have to do this here.
+ */
+
+ for (Children::iterator i = children.begin(); i != children.end(); ++i) {
+ (*i)->set_selected (false);
+ }
+ }
+
+ resizer.queue_draw ();
+ }
+
+ void
+ TimeAxisView::build_size_menu ()
+ {
+ using namespace Menu_Helpers;
+
+ size_menu = new Menu;
+ size_menu->set_name ("ArdourContextMenu");
+ MenuList& items = size_menu->items();
+
+ items.push_back (MenuElem (_("Largest"), bind (mem_fun (*this, &TimeAxisView::set_heights), hLargest)));
+ items.push_back (MenuElem (_("Large"), bind (mem_fun (*this, &TimeAxisView::set_heights), hLarge)));
+ items.push_back (MenuElem (_("Larger"), bind (mem_fun (*this, &TimeAxisView::set_heights), hLarger)));
+ items.push_back (MenuElem (_("Normal"), bind (mem_fun (*this, &TimeAxisView::set_heights), hNormal)));
+ items.push_back (MenuElem (_("Smaller"), bind (mem_fun (*this, &TimeAxisView::set_heights),hSmaller)));
+ items.push_back (MenuElem (_("Small"), bind (mem_fun (*this, &TimeAxisView::set_heights), hSmall)));
+ }
+
+ void
+ TimeAxisView::build_display_menu ()
+ {
+ using namespace Menu_Helpers;
+
+ display_menu = new Menu;
+ display_menu->set_name ("ArdourContextMenu");
+
+ // Just let implementing classes define what goes into the manu
+ }
+
+ void
+ TimeAxisView::set_samples_per_unit (double spu)
+ {
+ for (Children::iterator i = children.begin(); i != children.end(); ++i) {
+ (*i)->set_samples_per_unit (spu);
+ }
+
+ AnalysisFeatureList::const_iterator i;
+ list<ArdourCanvas::SimpleLine*>::iterator l;
+
+ for (i = analysis_features.begin(), l = feature_lines.begin(); i != analysis_features.end() && l != feature_lines.end(); ++i, ++l) {
+ (*l)->property_x1() = editor.frame_to_pixel (*i);
+ (*l)->property_x2() = editor.frame_to_pixel (*i);
+ }
+ }
+
+ void
+ TimeAxisView::show_timestretch (nframes_t start, nframes_t end)
+ {
+ for (Children::iterator i = children.begin(); i != children.end(); ++i) {
+ (*i)->show_timestretch (start, end);
+ }
+ }
+
+ void
+ TimeAxisView::hide_timestretch ()
+ {
+ for (Children::iterator i = children.begin(); i != children.end(); ++i) {
+ (*i)->hide_timestretch ();
+ }
+ }
+
+ void
+ TimeAxisView::show_selection (TimeSelection& ts)
+ {
+ double x1;
+ double x2;
+ double y2;
+ SelectionRect *rect;
+
+ for (Children::iterator i = children.begin(); i != children.end(); ++i) {
+ (*i)->show_selection (ts);
+ }
+
+ if (canvas_item_visible (selection_group)) {
+ while (!used_selection_rects.empty()) {
+ free_selection_rects.push_front (used_selection_rects.front());
+ used_selection_rects.pop_front();
+ free_selection_rects.front()->rect->hide();
+ free_selection_rects.front()->start_trim->hide();
+ free_selection_rects.front()->end_trim->hide();
+ }
+ selection_group->hide();
+ }
+
+ selection_group->show();
+ selection_group->raise_to_top();
+
+ for (list<AudioRange>::iterator i = ts.begin(); i != ts.end(); ++i) {
+ nframes_t start, end, cnt;
+
+ start = (*i).start;
+ end = (*i).end;
+ cnt = end - start + 1;
+
+ rect = get_selection_rect ((*i).id);
+
+ x1 = editor.frame_to_unit (start);
+ x2 = editor.frame_to_unit (start + cnt - 1);
+ y2 = current_height();
+
+ rect->rect->property_x1() = x1;
+ rect->rect->property_y1() = 1.0;
+ rect->rect->property_x2() = x2;
+ rect->rect->property_y2() = y2;
+
+ // trim boxes are at the top for selections
+
+ if (x2 > x1) {
+ rect->start_trim->property_x1() = x1;
+ rect->start_trim->property_y1() = 1.0;
+ rect->start_trim->property_x2() = x1 + trim_handle_size;
+ rect->start_trim->property_y2() = 1.0 + trim_handle_size;
+
+ rect->end_trim->property_x1() = x2 - trim_handle_size;
+ rect->end_trim->property_y1() = 1.0;
+ rect->end_trim->property_x2() = x2;
+ rect->end_trim->property_y2() = 1.0 + trim_handle_size;
+
+ rect->start_trim->show();
+ rect->end_trim->show();
+ } else {
+ rect->start_trim->hide();
+ rect->end_trim->hide();
+ }
+
+ rect->rect->show ();
+ used_selection_rects.push_back (rect);
+ }
+ }
+
+ void
+ TimeAxisView::reshow_selection (TimeSelection& ts)
+ {
+ show_selection (ts);
+
+ for (Children::iterator i = children.begin(); i != children.end(); ++i) {
+ (*i)->show_selection (ts);
+ }
+ }
+
+ void
+ TimeAxisView::hide_selection ()
+ {
+ if (canvas_item_visible (selection_group)) {
+ while (!used_selection_rects.empty()) {
+ free_selection_rects.push_front (used_selection_rects.front());
+ used_selection_rects.pop_front();
+ free_selection_rects.front()->rect->hide();
+ free_selection_rects.front()->start_trim->hide();
+ free_selection_rects.front()->end_trim->hide();
+ }
+ selection_group->hide();
+ }
+
+ for (Children::iterator i = children.begin(); i != children.end(); ++i) {
+ (*i)->hide_selection ();
+ }
+ }
+
+ void
+ TimeAxisView::order_selection_trims (ArdourCanvas::Item *item, bool put_start_on_top)
+ {
+ /* find the selection rect this is for. we have the item corresponding to one
+ of the trim handles.
+ */
+
+ for (list<SelectionRect*>::iterator i = used_selection_rects.begin(); i != used_selection_rects.end(); ++i) {
+ if ((*i)->start_trim == item || (*i)->end_trim == item) {
+
+ /* make one trim handle be "above" the other so that if they overlap,
+ the top one is the one last used.
+ */
+
+ (*i)->rect->raise_to_top ();
+ (put_start_on_top ? (*i)->start_trim : (*i)->end_trim)->raise_to_top ();
+ (put_start_on_top ? (*i)->end_trim : (*i)->start_trim)->raise_to_top ();
+
+ break;
+ }
+ }
+ }
+
+ SelectionRect *
+ TimeAxisView::get_selection_rect (uint32_t id)
+ {
+ SelectionRect *rect;
+
+ /* check to see if we already have a visible rect for this particular selection ID */
+
+ for (list<SelectionRect*>::iterator i = used_selection_rects.begin(); i != used_selection_rects.end(); ++i) {
+ if ((*i)->id == id) {
+ return (*i);
+ }
+ }
+
+ /* ditto for the free rect list */
+
+ for (list<SelectionRect*>::iterator i = free_selection_rects.begin(); i != free_selection_rects.end(); ++i) {
+ if ((*i)->id == id) {
+ SelectionRect* ret = (*i);
+ free_selection_rects.erase (i);
+ return ret;
+ }
+ }
+
+ /* no existing matching rect, so go get a new one from the free list, or create one if there are none */
+
+ if (free_selection_rects.empty()) {
+
+ rect = new SelectionRect;
+
+ rect->rect = new SimpleRect (*selection_group);
+ rect->rect->property_x1() = 0.0;
+ rect->rect->property_y1() = 0.0;
+ rect->rect->property_x2() = 0.0;
+ rect->rect->property_y2() = 0.0;
+ rect->rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_SelectionRect.get();
+ rect->rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_Selection.get();
+
+ rect->start_trim = new SimpleRect (*selection_group);
+ rect->start_trim->property_x1() = 0.0;
+ rect->start_trim->property_x2() = 0.0;
+ rect->start_trim->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_Selection.get();
+ rect->start_trim->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_Selection.get();
+
+ rect->end_trim = new SimpleRect (*selection_group);
+ rect->end_trim->property_x1() = 0.0;
+ rect->end_trim->property_x2() = 0.0;
+ rect->end_trim->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_Selection.get();
+ rect->end_trim->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_Selection.get();
+
+ free_selection_rects.push_front (rect);
+
+ rect->rect->signal_event().connect (bind (mem_fun (editor, &PublicEditor::canvas_selection_rect_event), rect->rect, rect));
+ rect->start_trim->signal_event().connect (bind (mem_fun (editor, &PublicEditor::canvas_selection_start_trim_event), rect->rect, rect));
+ rect->end_trim->signal_event().connect (bind (mem_fun (editor, &PublicEditor::canvas_selection_end_trim_event), rect->rect, rect));
+ }
+
+ rect = free_selection_rects.front();
+ rect->id = id;
+ free_selection_rects.pop_front();
+ return rect;
+ }
+
+ struct null_deleter { void operator()(void const *) const {} };
+
+ bool
+ TimeAxisView::is_child (TimeAxisView* tav)
+ {
+ return find (children.begin(), children.end(), boost::shared_ptr<TimeAxisView>(tav, null_deleter())) != children.end();
+ }
+
+ void
+ TimeAxisView::add_child (boost::shared_ptr<TimeAxisView> child)
+ {
+ children.push_back (child);
+ }
+
+ void
+ TimeAxisView::remove_child (boost::shared_ptr<TimeAxisView> child)
+ {
+ Children::iterator i;
+
+ if ((i = find (children.begin(), children.end(), child)) != children.end()) {
+ children.erase (i);
+ }
+ }
+
+ void
+ TimeAxisView::get_selectables (nframes_t start, nframes_t end, double top, double bot, list<Selectable*>& result)
+ {
+ return;
+ }
+
+ void
+ TimeAxisView::get_inverted_selectables (Selection& sel, list<Selectable*>& result)
+ {
+ return;
+ }
+
+ void
+ TimeAxisView::add_ghost (RegionView* rv) {
+ GhostRegion* gr = rv->add_ghost (*this);
+
+ if(gr) {
+ ghosts.push_back(gr);
+ gr->GoingAway.connect (mem_fun(*this, &TimeAxisView::erase_ghost));
+ }
+ }
+
+ void
+ TimeAxisView::remove_ghost (RegionView* rv) {
rv->remove_ghost_in (*this);
}
diff --git a/gtk2_ardour/time_axis_view.h b/gtk2_ardour/time_axis_view.h
index 277e4dba44..8c9576f951 100644
--- a/gtk2_ardour/time_axis_view.h
+++ b/gtk2_ardour/time_axis_view.h
@@ -104,6 +104,7 @@ class TimeAxisView : public virtual AxisView, public PBD::Stateful
uint32_t current_height() const { return height; }
+ ArdourCanvas::Group *canvas_background;
ArdourCanvas::Group *canvas_display;
Gtk::VBox *control_parent;
diff --git a/gtk2_ardour/time_axis_view_item.cc b/gtk2_ardour/time_axis_view_item.cc
index e02117385a..6469017469 100644
--- a/gtk2_ardour/time_axis_view_item.cc
+++ b/gtk2_ardour/time_axis_view_item.cc
@@ -165,6 +165,7 @@ TimeAxisViewItem::init (const string& it_name, double spu, Gdk::Color& base_colo
frame->property_y2() = (double) trackview.current_height();
frame->property_outline_pixels() = 1;
frame->property_outline_what() = 0xF;
+ frame->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_TimeAxisFrame.get();
/* by default draw all 4 edges */
@@ -230,12 +231,14 @@ TimeAxisViewItem::init (const string& it_name, double spu, Gdk::Color& base_colo
frame_handle_start->property_x2() = (double) TimeAxisViewItem::GRAB_HANDLE_LENGTH;
frame_handle_start->property_y1() = (double) 1.0;
frame_handle_start->property_y2() = (double) TimeAxisViewItem::GRAB_HANDLE_LENGTH+1;
+ frame_handle_start->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_FrameHandle.get();
frame_handle_end = new ArdourCanvas::SimpleRect (*group);
frame_handle_end->property_x1() = (double) (trackview.editor.frame_to_pixel(get_duration())) - (TimeAxisViewItem::GRAB_HANDLE_LENGTH);
frame_handle_end->property_x2() = (double) trackview.editor.frame_to_pixel(get_duration());
frame_handle_end->property_y1() = (double) 1;
frame_handle_end->property_y2() = (double) TimeAxisViewItem::GRAB_HANDLE_LENGTH + 1;
+ frame_handle_end->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_FrameHandle.get();
} else {
frame_handle_start = 0;
diff --git a/gtk2_ardour/ui_config.cc b/gtk2_ardour/ui_config.cc
index 37a0ade3fe..d7cf0974ab 100644
--- a/gtk2_ardour/ui_config.cc
+++ b/gtk2_ardour/ui_config.cc
@@ -62,10 +62,17 @@ int
UIConfiguration::load_defaults ()
{
int found = 0;
+
sys::path default_ui_rc_file;
-
- if ( find_file_in_search_path (ardour_search_path() + system_config_search_path(),
- "ardour3_ui_default.conf", default_ui_rc_file) )
+ std::string rcfile;
+
+ if (getenv ("ARDOUR_SAE")) {
+ rcfile = "ardour3_ui_sae.conf";
+ } else {
+ rcfile = "ardour3_ui_default.conf";
+ }
+ if ( !find_file_in_search_path (ardour_search_path() + system_config_search_path(),
+ rcfile, default_ui_rc_file) )
{
XMLTree tree;
found = 1;
diff --git a/gtk2_ardour/utils.cc b/gtk2_ardour/utils.cc
index d083b17a1e..f625ae958e 100644
--- a/gtk2_ardour/utils.cc
+++ b/gtk2_ardour/utils.cc
@@ -396,7 +396,7 @@ set_color (Gdk::Color& c, int rgb)
c.set_rgb((rgb >> 16)*256, ((rgb & 0xff00) >> 8)*256, (rgb & 0xff)*256);
}
-#ifdef GTKOSX_ARDOUR_EVENTS_PATCH
+#ifdef GTKOSX
extern "C" {
gboolean gdk_quartz_possibly_forward (GdkEvent*);
}
@@ -408,10 +408,12 @@ key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey* ev)
GtkWindow* win = window.gobj();
GtkWidget* focus = gtk_window_get_focus (win);
bool special_handling_of_unmodified_accelerators = false;
+ bool allow_activating = true;
#undef DEBUG_ACCELERATOR_HANDLING
#ifdef DEBUG_ACCELERATOR_HANDLING
- bool debug = (getenv ("ARDOUR_DEBUG_ACCELERATOR_HANDLING") != 0);
+ //bool debug = (getenv ("ARDOUR_DEBUG_ACCELERATOR_HANDLING") != 0);
+ bool debug=true;
#endif
if (focus) {
if (GTK_IS_ENTRY(focus) || Keyboard::some_magic_widget_has_focus()) {
@@ -419,10 +421,21 @@ key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey* ev)
}
}
+#ifdef GTKOSX
+ /* should this be universally true? */
+ if (Keyboard::some_magic_widget_has_focus ()) {
+ allow_activating = false;
+ }
+#endif
+
#ifdef DEBUG_ACCELERATOR_HANDLING
if (debug) {
cerr << "Win = " << win << " Key event: code = " << ev->keyval << " state = " << hex << ev->state << dec << " special handling ? "
<< special_handling_of_unmodified_accelerators
+ << " magic widget focus ? "
+ << Keyboard::some_magic_widget_has_focus()
+ << " allow_activation ? "
+ << allow_activating
<< endl;
}
#endif
@@ -469,17 +482,19 @@ key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey* ev)
uint32_t fakekey = ev->keyval;
if (possibly_translate_keyval_to_make_legal_accelerator (fakekey)) {
- if (gtk_accel_groups_activate(G_OBJECT(win), fakekey, GdkModifierType(ev->state))) {
+ if (allow_activating && gtk_accel_groups_activate(G_OBJECT(win), fakekey, GdkModifierType(ev->state))) {
return true;
}
-#ifdef GTKOSX_ARDOUR_EVENTS_PATCH
- int oldval = ev->keyval;
- ev->keyval = fakekey;
- if (gdk_quartz_possibly_forward ((GdkEvent*) ev)) {
- return true;
+#ifdef GTKOSX
+ if (allow_activating) {
+ int oldval = ev->keyval;
+ ev->keyval = fakekey;
+ if (gdk_quartz_possibly_forward ((GdkEvent*) ev)) {
+ return true;
+ }
+ ev->keyval = oldval;
}
- ev->keyval = oldval;
#endif
}
}
@@ -497,26 +512,24 @@ key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey* ev)
cerr << "\tactivate, then propagate\n";
}
#endif
-#ifdef GTKOSX_ARDOUR_EVENTS_PATCH
- if (gdk_quartz_possibly_forward ((GdkEvent*) ev)) {
- return true;
- }
-#endif
- if (!gtk_window_activate_key (win, ev)) {
-#ifdef DEBUG_ACCELERATOR_HANDLING
- if (debug) {
- cerr << "\tnot accelerated, now propagate\n";
+
+ if (allow_activating) {
+#ifdef GTKOSX
+ if (gdk_quartz_possibly_forward ((GdkEvent*) ev)) {
+ return true;
}
#endif
- return gtk_window_propagate_key_event (win, ev);
- } else {
-#ifdef DEBUG_ACCELERATOR_HANDLING
- if (debug) {
- cerr << "\taccelerated - done.\n";
+ if (gtk_window_activate_key (win, ev)) {
+ return true;
}
+ }
+
+#ifdef DEBUG_ACCELERATOR_HANDLING
+ if (debug) {
+ cerr << "\tnot accelerated, now propagate\n";
+ }
#endif
- return true;
- }
+ return gtk_window_propagate_key_event (win, ev);
}
/* no modifiers, propagate first */
@@ -532,12 +545,17 @@ key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey* ev)
cerr << "\tpropagation didn't handle, so activate\n";
}
#endif
-#ifdef GTKOSX_ARDOUR_EVENTS_PATCH
- if (gdk_quartz_possibly_forward ((GdkEvent*) ev)) {
- return true;
- }
+
+ if (allow_activating) {
+
+#ifdef GTKOSX
+ if (gdk_quartz_possibly_forward ((GdkEvent*) ev)) {
+ return true;
+ }
#endif
- return gtk_window_activate_key (win, ev);
+ return gtk_window_activate_key (win, ev);
+ }
+
} else {
#ifdef DEBUG_ACCELERATOR_HANDLING
if (debug) {