Commit Graph

351 Commits

Author SHA1 Message Date
44e67c3566 small API change to provide (debug) name to canvas cursor items 2021-08-13 12:51:36 -06:00
52d41fa4e1 fix timeline type usage on macOS 2021-08-13 12:51:35 -06:00
4f1ad4ed0d start adding new BBT marker support 2021-08-13 12:51:34 -06:00
cce695d33a changes required by fixing ambiguities in timepos_t/timecnt_t API (GUI edition) 2021-08-13 12:51:31 -06:00
eec4addcd5 GUI side cleanup forced by explicit BBT_Offset (double) 2021-08-13 12:51:30 -06:00
7433bc27e0 intermediate, unfinished snapshot of ongoing timeline types work on GTK GUI 2021-08-13 12:51:29 -06:00
2b066293fb
Set playlist ID when importing to new tracks
This amends 730a0954 and b27bb586.
This also restores the original API for do_import()
and do_embed() as used by Lua scripts.

Note that this uses distinct IDs when importing both audio
and MIDI in the same DnD request.
2021-07-08 05:28:10 +02:00
730a0954d7
Playlist UI Tweaks: assign a pgroup_id on Import (gtk part) 2021-07-03 19:06:04 +02:00
1685843082 global marker objects do not need a canvas height, so remove member and API to manage it
They extend (down) from an origin to COORD_MAX. The height is irrelevant
2021-05-14 18:37:50 -06:00
3e47057609 import process now allows optional import of MIDI markers/cues 2021-05-07 14:58:16 -06:00
efd0d65acb when window size technically, just the window containing the editor canvas, or the canvas itself) changes, recompute BBT ruler stuff 2021-02-20 17:41:32 -07:00
aecd84e7fd
Update session extents calculation
* Expose API via Public Editor
* Skip hidden tracks in calculation
* Use a single call to query playlist extents.
  This way the playlist read-lock is needed at most once per track
  which speeds up calculation.
2021-01-08 18:39:57 +01:00
4769c387f3
Expose EditorCursor via public editor API
This is in preparation to subscribe to playhead cursor position
changes in the recorder-UI.

This change also clean up the API, replacing a public variable
with a const access method and follows #12 of
https://ardour.org/styleguide.html
2021-01-08 18:39:56 +01:00
e85ae7f9a6
Verbose cursor audio region peak display
https://discourse.ardour.org/t/is-it-possible-to-view-audio-levels-in-db-by-moving-cursor-over-a-waveform/105199
2020-12-30 13:42:42 +01:00
b9674115b7 when re-entering the track canvas in internal edit mode, ensure that kbd focus is set 2020-04-17 11:34:34 -06:00
701605129e
Drag/Drop import region to where it was dropped
Previously only drag/drop to existing tracks used the target
time-position and files imported as new tracks using the drop-zone
were placed at 00:00:00:00.
2020-04-14 17:58:28 +02:00
a8f9ba4a5e
Preview video frame when dragging 2019-11-09 06:00:01 +01:00
a701882e66
Add convenience methods to test for active drags 2019-11-09 05:59:55 +01:00
57e1b3219f
Fix cursor icon over region-bar (use trim) 2019-09-26 19:44:22 +02:00
4050ca5633
Update GPL boilerplate and (C)
Copyright-holder and year information is extracted from git log.

git history begins in 2005. So (C) from 1998..2005 is lost. Also some
(C) assignment of commits where the committer didn't use --author.
2019-08-03 15:53:15 +02:00
0b699ac9f7 (Source List) merge fixes 2019-08-01 12:11:31 -05:00
b409c58ee6 (Source List) Fix drag-n-drop. 2019-08-01 12:11:31 -05:00
Jean-Marie Favreau
1846476127
Fix a bug for drag and drop from nautilus/dolphin (more spectific format first in the
list of possible inputs)
2019-05-13 15:44:11 +02:00
31815b5f26
NO-OP: whitespace
This fixes mostly <tab> after <space> and similar <tab> not used
for indenting as well as some related code alignment issues.
2019-04-13 17:57:46 +02:00
245d48dbd0
NO-OP: Clarify function name 2018-11-28 15:16:25 +01:00
f150f6c074
Use central method to check for engine where required
These are generally places where tracks/busses are created or port
connections change.
2018-11-28 00:01:50 +01:00
ceac42cc03 NO-OP: whitespace
- remove trailing whitespace
- remove space after opening brackets and before closing brackets
- add space around operators
- do not use '//' for multi-line comments, do not use "//" on line-start
  to comment-out code breaking indenting (-Wmisleading-indent)
- do add a single space after comment-start /*{SPACE}... or //{SPACE}...
- reserve duplicate whitespace "  " for alignment, remove other duplicate
  whitespace
- use established "TODO" and "XXX" (highlighted keywords)
- remove equal-sign series "====" (those indicate merge conflicts)
2018-02-24 13:55:20 +01:00
dc61256466 new_grid: Rewrite of Snap and Grid. (squashed commit)
Separate Snap from Grid.  Lots of naming changes.
Multiple simultaneous snap options allowed. Grid is one of the possible Snap options.
Grid uses the same data as the rulers.  Replace complicated tempo_lines with simple grid_lines.
The Grid is zoom-scale-sensitive along with the rulers.  If you are zoomed out, grid becomes coarser.
2018-02-09 09:59:39 -06:00
c6eab71435 new_snap: Snapped Cursor ( squashed commit )
Snapped Cursor is a line that follows the edit point, and indicates where the operation will occur.
This replaces and extends the line that appears with the Cut tool.
New associated preferences:  snap_threshold and show_snap_cursor.
2018-02-09 08:21:45 -06:00
30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
631629b8e7 Editor zoom: add zoom_to_extents() 2017-08-26 23:06:29 -05:00
1c145ccfc3 Editor zooming: Config preference to define how much zooming will be easily allowed beyond the session_ui_extents() 2017-08-26 22:44:58 -05:00
49765f8897 Editor zooming:
Add config setting for playhead-scroll-speed.
Default to 100% for now, but for new users we might later default it to something slower.
If you want to scroll quickly, it is preferred to zoom out first, then scroll.
2017-08-26 22:44:58 -05:00
9b87279eca Editor zooming:
New function session_gui_extents() reports the extents of all playlists.
  ToDo: include region playlists, when they become available.
also:  slow-down autoscroll (ToDo:  make a config variable for this)
2017-08-26 22:44:58 -05:00
601c317d70 Clean up library inheritance (colors.h, utils.h)
make libwidget independent of libcanvas.
Confine basics to pbd and gtkmm2ext.
2017-07-17 21:06:04 +02:00
Thomas Brand
63ea7b6516 NO-OP whitespace (updated GH PR #357) 2017-07-01 19:28:26 +02:00
5f30d87fd0 Changes to Editor::visual_changer to support Item/Canvas::prepare_for_render
This is necessary to allow calculation of correct intersection of visible
canvas area and items for the new Item::prepare_for_render() API.

samples_per_pixel must be set first to calculate the new horizontal canvas
position in Editor::set_horizontal_position and then
WaveView::set_samples_per_pixel will eventually call
WaveView::prepare_for_render for those items that are visible on the new canvas
position at the new position.

Or if there is not a change to zoom state then call Canvas::prepare_for_render
explicitly.

Also changes so that each method is only called once during
Editor::visual_changer
2017-06-26 08:40:47 +10:00
265f52535a Coalesce visual changes to canvas/items and allow canvas to render
First visual change will be processed as normal and then blocked until the
canvas renders the change. If further visual changes need processing then
Editor::pre_render callback will schedule another expose/redraw/render.

This prevents an issue where idle_visual_changer is called many times in
response to events(keys/motion/etc) but the canvas does not get a chance to
render any but the last one which results in a big pause/jump.

This results in a more responsive canvas and in particular a smoother and more
predictable zooming experience.
2017-06-26 08:40:47 +10:00
de0e401214 Use NSGLView backed main editor canvas 2017-03-21 05:38:10 +01:00
d463720b6d simplify arguments to Editor::sensitize_the_right_region_actions() 2017-02-15 20:07:49 +01:00
3d3f2a79f6 use leave/enter from track canvas to be the primary driver of region action sensitivity
This works for context menus also, because GTK sends us leave/enter notify
events when they appear.
2017-02-15 20:07:49 +01:00
6e476c515d NO-OP: whitespace conversion 2017-02-09 16:27:34 +01:00
ab105314fb when considering whether or not to autoscroll teh canvas, first translate allocation boundary into toplevel coordinates 2017-02-09 16:27:16 +01:00
nick_m
59daffea1d rework snap
snap now fills in a struct (MusicFrame) which contins a snapped frame
along with a music divisor.
this gives useful information wrt magnetic snap which may or may not
have rounded to an exact musical position.

region position may now be set musically (using quarter notes for now).

this patch fixes several problems in the current code:

	- dragging a list of music-locked regions now maintains correct
	  musical offsets within the list.

	- splitting regions using magnetic snap works correctly (#7192)

	- cut drag should now work correctly with magnetic snap.

	- musical length of split midi regions is no longer frame based.
2017-02-04 22:57:36 +11:00
ebc7eabea2 add arguments (unusued) to control whether or not SMF tempo map is used during import 2016-12-16 14:57:14 +00:00
9e4b972286 GUI changes to allow user to specify how/if to use SMF track/instrument names during import 2016-12-14 12:31:16 +00:00
nick_m
bf5933add6 Performance: store NoteBase UIConfiguration colors between config changes.
Cumulative time in percent while wiggling the tempo lines rapidly.

Before:

MidiRegionview::update_sustained 12.02

 NoteBase::base_color             6.43
 MidiGhostRegion::update_note     3.12
 Note::set                        1.27
 TempoMap::frame_at_quarter_note  0.59
 _dynamic_cast                    0.13

After:

MidiRegionview::update_sustained  10.49

 MidiGhostRegion::update_note      5.57
 Note::set                         2.52
 TempoMap::frame_at_quarter_note   1.13
 NoteBase::base_color              0.17
 _dynamic_cast                     0.17
2016-10-17 03:19:02 +11:00
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
bf3719f63f get editor controls layout/midi track header/scroomer to be the correct height
Using is_mapped() is wrong, since if the editor was not visible (i.e. program has not yet shown the editor
"tab", then _group_tabs will have is_visible() == true but is_mapped() == false
2016-04-13 15:28:34 -04:00
9d5738dc55 reset autoscroll speed to minimum when scrolling stops
Reset the autoscroll counter when scrolling stops, and correct the check
when vertical autoscrolling is permitted for whether scrolling has stopped.
2016-03-19 13:44:18 +00:00