ardour.git
8 years agofirst compiling, mostly working version of group controls changes
Paul Davis [Thu, 21 Jan 2016 16:03:14 +0000 (11:03 -0500)]
first compiling, mostly working version of group controls changes

8 years agoNOOP: whitespace fixup
Paul Davis [Fri, 22 Jan 2016 16:44:26 +0000 (11:44 -0500)]
NOOP: whitespace fixup

8 years agowhen leaving an active automation state, update fader displays to show correct curren...
Paul Davis [Fri, 22 Jan 2016 16:43:27 +0000 (11:43 -0500)]
when leaving an active automation state, update fader displays to show correct current value

8 years agoModify our MSVC project to accommodate newly introduced source files (libardour)
John Emmas [Fri, 22 Jan 2016 12:29:30 +0000 (12:29 +0000)]
Modify our MSVC project to accommodate newly introduced source files (libardour)

8 years agoAdd a link library that's now needed when building ardour_cp
John Emmas [Fri, 22 Jan 2016 12:28:01 +0000 (12:28 +0000)]
Add a link library that's now needed when building ardour_cp

Now needs 'Timecode::BBT_Time' (from Ardour's 'timecode' lib).

8 years agoFix bug 6735, Take into account snap to when stretching regions in Editor
Tim Mayberry [Thu, 21 Jan 2016 04:00:54 +0000 (14:00 +1000)]
Fix bug 6735, Take into account snap to when stretching regions in Editor

8 years agoBug #6722, Add UI config option to always use mouse position as zoom focus on scroll
Tim Mayberry [Thu, 7 Jan 2016 11:55:22 +0000 (21:55 +1000)]
Bug #6722, Add UI config option to always use mouse position as zoom focus on scroll

This means that mouse zoom scrolling behaviour is consistent on the ruler
canvas area and track canvas area.

The config option defaults to true so this means the behaviour of Mixbus will
be unchanged but in Ardour the ruler area will now follow the option so by
default will use the mouse position as zoom focus when zooming rather than the
zoom focus setting.

8 years agoRefactor code into Editor::temporal_zoom_step_mouse_focus method
Tim Mayberry [Thu, 7 Jan 2016 11:19:09 +0000 (21:19 +1000)]
Refactor code into Editor::temporal_zoom_step_mouse_focus method

8 years agoFix/implement #6292, Shift + scroll wheel Scrolling in the ruler area
Tim Mayberry [Thu, 7 Jan 2016 06:33:51 +0000 (16:33 +1000)]
Fix/implement #6292, Shift + scroll wheel Scrolling in the ruler area

Keep the same scrolling distance per event as when scroll left/right is used.

Scrolling in the ruler area is different than the track canvas area which I'm
not sure is a great idea as there is not much delineation between the two areas
but as the ruler area has some other different behaviour it is probably
acceptable/useful.

8 years agoChange scrolling in the Editor track canvas summary area
Tim Mayberry [Thu, 7 Jan 2016 01:33:45 +0000 (11:33 +1000)]
Change scrolling in the Editor track canvas summary area

Keep scroll distance consistent when scrolling up and down with horizontal
modifier as when scrolling left to right.

Scroll horizonally by half a page so that no sections of the canvas are skipped
when scrolling.

Scroll by half a page rather than a step like when scrolling in the track
canvas area as it is a summary area so larger steps seem acceptable and having
it use the same scroll distance as when scrolling in the track canvas seems
pointless as you would then just scroll in the track canvas area.

8 years agoRefactor scrolling in Editor ruler canvas area into two utility methods
Tim Mayberry [Thu, 7 Jan 2016 01:26:22 +0000 (11:26 +1000)]
Refactor scrolling in Editor ruler canvas area into two utility methods

8 years agoRemove goto in Editor::track_canvas_scroll
Tim Mayberry [Thu, 7 Jan 2016 05:44:24 +0000 (15:44 +1000)]
Remove goto in Editor::track_canvas_scroll

8 years agoRefactor scrolling track canvas in Editor class into two utility methods
Tim Mayberry [Thu, 7 Jan 2016 00:30:29 +0000 (10:30 +1000)]
Refactor scrolling track canvas in Editor class into two utility methods

8 years agoCzech translation update #6739
Pavel Fric [Wed, 20 Jan 2016 23:49:10 +0000 (00:49 +0100)]
Czech translation update #6739

8 years agoTransport_play should not jump back.
Ben Loftis [Tue, 19 Jan 2016 20:00:51 +0000 (14:00 -0600)]
Transport_play should not jump back.

Typical use of transport controls is to ffwd and rewind, then "play".
This doesn't work well if the Play command always resets to starting position.

8 years agoAdd all_tracks_rec actions
Ben Loftis [Tue, 19 Jan 2016 20:00:03 +0000 (14:00 -0600)]
Add all_tracks_rec actions

8 years agomackie: remove unnecessary connection to route group property change signal
Paul Davis [Tue, 19 Jan 2016 19:25:48 +0000 (14:25 -0500)]
mackie: remove unnecessary connection to route group property change signal

8 years agoRevert "mackie: still respond to route groups visibility changes"
Paul Davis [Tue, 19 Jan 2016 19:16:49 +0000 (14:16 -0500)]
Revert "mackie: still respond to route groups visibility changes"

This reverts commit a9ec547457bfa65655ee946063426f1ba85b6f91.

8 years agomackie: still respond to route groups visibility changes
Paul Davis [Tue, 19 Jan 2016 18:38:29 +0000 (13:38 -0500)]
mackie: still respond to route groups visibility changes

8 years agomackie: remove changes to group activation status when fetching routes to display
Paul Davis [Tue, 19 Jan 2016 17:46:08 +0000 (12:46 -0500)]
mackie: remove changes to group activation status when fetching routes to display

This creates an activation loop, because we fetch new routes to display when
group active status is changed. This was done to provide individual access to
routes that are in a group. We plan to do this using a shift modifier instead.

8 years agoadd explanatory comment regarding IP_MULTICAST_LOOP, remove cout debug msg
Paul Davis [Mon, 18 Jan 2016 23:36:11 +0000 (18:36 -0500)]
add explanatory comment regarding IP_MULTICAST_LOOP, remove cout debug msg

8 years agotry using reversed IP_MULTICAST_LOOP semantics for windows
Paul Davis [Mon, 18 Jan 2016 23:15:48 +0000 (18:15 -0500)]
try using reversed IP_MULTICAST_LOOP semantics for windows

8 years agomomo ip midi debugging
Paul Davis [Mon, 18 Jan 2016 22:57:06 +0000 (17:57 -0500)]
momo ip midi debugging

8 years agomo' ip midi debugging
Paul Davis [Mon, 18 Jan 2016 22:18:44 +0000 (17:18 -0500)]
mo' ip midi debugging

8 years agoremove ipmidi debugging
Paul Davis [Mon, 18 Jan 2016 21:57:50 +0000 (16:57 -0500)]
remove ipmidi debugging

8 years agowindows, i love you, more
Paul Davis [Mon, 18 Jan 2016 21:43:27 +0000 (16:43 -0500)]
windows, i love you, more

8 years agowindows, i love you
Paul Davis [Mon, 18 Jan 2016 21:41:59 +0000 (16:41 -0500)]
windows, i love you

8 years agodebug IP multicast loopback
Paul Davis [Mon, 18 Jan 2016 21:38:25 +0000 (16:38 -0500)]
debug IP multicast loopback

8 years agouse cout instead of cerr, since this debugging is for windows
Paul Davis [Mon, 18 Jan 2016 20:53:28 +0000 (15:53 -0500)]
use cout instead of cerr, since this debugging is for windows

8 years agoIP MIDI debugging
Paul Davis [Mon, 18 Jan 2016 19:45:24 +0000 (14:45 -0500)]
IP MIDI debugging

8 years agoadd 10sec zoom action
Ben Loftis [Sun, 17 Jan 2016 03:30:00 +0000 (21:30 -0600)]
add 10sec zoom action

8 years agotrack scrolling and zooming
Ben Loftis [Sun, 17 Jan 2016 02:33:04 +0000 (20:33 -0600)]
track scrolling and zooming

8 years agoadd some horz and vert zoom actions; remove some whitespace from the code of the...
Ben Loftis [Sun, 17 Jan 2016 01:32:00 +0000 (19:32 -0600)]
add some horz and vert zoom actions;  remove some whitespace from the code of the ui-actions, so they are easier to see and maintain

8 years agoadd more remote transport toggles for touchOSC: midi_panic, toggle_roll, stop_forget...
Ben Loftis [Sat, 16 Jan 2016 18:33:49 +0000 (12:33 -0600)]
add more remote transport toggles for touchOSC:  midi_panic, toggle_roll, stop_forget, set_X_range, quick snapshots.  also add boilerplate for monitor controls, but those are not implemented yet

8 years agoimplement mark_in, mark_out, toggle_click
Ben Loftis [Fri, 15 Jan 2016 23:11:19 +0000 (17:11 -0600)]
implement mark_in, mark_out, toggle_click

8 years agoimplement remover_marker, jump_by_bars, and jump_by_seconds
Ben Loftis [Fri, 15 Jan 2016 22:40:46 +0000 (16:40 -0600)]
implement remover_marker, jump_by_bars, and jump_by_seconds

8 years agomackie: shift-fader overrides group settings
Paul Davis [Mon, 18 Jan 2016 16:59:06 +0000 (11:59 -0500)]
mackie: shift-fader overrides group settings

8 years agoremove shift-fader-touch as a way to reset gain to default
Paul Davis [Mon, 18 Jan 2016 16:58:49 +0000 (11:58 -0500)]
remove shift-fader-touch as a way to reset gain to default

8 years agoadd API to allow mackie controls to use GroupControlDisposition
Paul Davis [Mon, 18 Jan 2016 16:57:55 +0000 (11:57 -0500)]
add API to allow mackie controls to use GroupControlDisposition

8 years agoadd new enums to libs/pbd enums registration
Paul Davis [Mon, 18 Jan 2016 16:55:52 +0000 (11:55 -0500)]
add new enums to libs/pbd enums registration

8 years agoadd group disposition argument to Route::set_gain() and use it in various UIs
Paul Davis [Mon, 18 Jan 2016 15:52:15 +0000 (10:52 -0500)]
add group disposition argument to Route::set_gain() and use it in various UIs

Executive decisions were necessary in a couple of places about the correct group disposition
behaviour, notably faderport and OSC surfaces

8 years agoworking version of new gain control design
Paul Davis [Wed, 13 Jan 2016 21:32:24 +0000 (16:32 -0500)]
working version of new gain control design

8 years agomove Amp::GainControl out into its own source module and out of Amp
Paul Davis [Wed, 13 Jan 2016 03:04:18 +0000 (22:04 -0500)]
move Amp::GainControl out into its own source module and out of Amp

8 years agochange ownership of the AutomationControl used by Amp.
Paul Davis [Tue, 12 Jan 2016 19:09:24 +0000 (14:09 -0500)]
change ownership of the AutomationControl used by Amp.

It used to be owned by Amp. Now it is owned by Amp's owner

8 years agoMackie Control: Fix crash in multi-surface setup when add/remove tracks.
Len Ovens [Mon, 18 Jan 2016 16:58:07 +0000 (08:58 -0800)]
Mackie Control: Fix crash in multi-surface setup when add/remove tracks.

8 years agoGroups: Fix un/set hidden/show should reset RID for tracks involved.
Len Ovens [Sun, 17 Jan 2016 22:17:02 +0000 (14:17 -0800)]
Groups: Fix un/set hidden/show should reset RID for tracks involved.

8 years agoscrolling actions should not require that a track selection exists
Ben Loftis [Sun, 17 Jan 2016 02:29:14 +0000 (20:29 -0600)]
scrolling actions should not require that a track selection exists

8 years agoChange last commit to use it's own variable rather than borrowing solo's
Len Ovens [Sat, 16 Jan 2016 22:40:03 +0000 (14:40 -0800)]
Change last commit to use it's own variable rather than borrowing solo's

8 years agoMackie Control: fix global Solo lamp to get signalled for listens active too.
Len Ovens [Sat, 16 Jan 2016 21:53:52 +0000 (13:53 -0800)]
Mackie Control: fix global Solo lamp to get signalled for listens active too.

8 years agoMackie Control: fix math error that tried to change bank to very high number
Len Ovens [Sat, 16 Jan 2016 19:17:52 +0000 (11:17 -0800)]
Mackie Control: fix math error that tried to change bank to very high number

8 years agoMackie Control: Added hidden tracks view mode.
Len Ovens [Sat, 16 Jan 2016 15:32:30 +0000 (07:32 -0800)]
Mackie Control: Added hidden tracks view mode.

8 years agonewer, not-as-good boost shared ptr debug patch for boost 1.55 and maybe later
Paul Davis [Sat, 16 Jan 2016 15:03:42 +0000 (10:03 -0500)]
newer, not-as-good boost shared ptr debug patch for boost 1.55 and maybe later

8 years agoclean up functors used in cross-thread call_slot() messages, in case they contain...
Paul Davis [Sat, 16 Jan 2016 14:33:15 +0000 (09:33 -0500)]
clean up functors used in cross-thread call_slot() messages, in case they contain shared_ptr<T>, which could result in a dangling reference

8 years agoThe return of threaded waveform rendering and related crashes.
Robin Gareus [Sat, 16 Jan 2016 13:18:59 +0000 (14:18 +0100)]
The return of threaded waveform rendering and related crashes.

8 years agoMackie Control: Need signal from session if group parameters change so strips redispl...
Len Ovens [Sat, 16 Jan 2016 00:19:15 +0000 (16:19 -0800)]
Mackie Control: Need signal from session if group parameters change so strips redisplay if group un/hides.

8 years agoMackie Control: Don't show hidden groups either.
Len Ovens [Fri, 15 Jan 2016 21:58:08 +0000 (13:58 -0800)]
Mackie Control: Don't show hidden groups either.

8 years agoMackie Control: Don't show hidden routes.
Len Ovens [Fri, 15 Jan 2016 21:16:24 +0000 (13:16 -0800)]
Mackie Control: Don't show hidden routes.

8 years agoforce LV2 plugin-state save for templates - #6709
Robin Gareus [Fri, 15 Jan 2016 12:44:17 +0000 (13:44 +0100)]
force LV2 plugin-state save for templates - #6709

8 years agoAdd a newly introduced source file to our MSVC project (ardour_osc)
John Emmas [Fri, 15 Jan 2016 11:59:43 +0000 (11:59 +0000)]
Add a newly introduced source file to our MSVC project (ardour_osc)

8 years agoFix build of OSC surface caused by missing include of i18n/gettext header
Tim Mayberry [Fri, 15 Jan 2016 02:14:52 +0000 (12:14 +1000)]
Fix build of OSC surface caused by missing include of i18n/gettext header

8 years agotouchOSC compat for common route operations
Robin Gareus [Fri, 15 Jan 2016 00:31:12 +0000 (01:31 +0100)]
touchOSC compat for common route operations

8 years agofix OSC debug messages
Robin Gareus [Fri, 15 Jan 2016 00:29:44 +0000 (01:29 +0100)]
fix OSC debug messages

8 years agoOSC-debug: print argument
Robin Gareus [Thu, 14 Jan 2016 23:57:33 +0000 (00:57 +0100)]
OSC-debug: print argument

8 years agouse PBD instead of C++11.
Robin Gareus [Thu, 14 Jan 2016 22:46:33 +0000 (23:46 +0100)]
use PBD instead of C++11.

8 years agoGeneric MIDI: midi controller buttons should only trigger on the PUSH, not release...
Ben Loftis [Thu, 14 Jan 2016 22:39:50 +0000 (16:39 -0600)]
Generic MIDI:  midi controller buttons should only trigger on the PUSH, not release.  This might have to be reveisited later, but it looks right to me and it fixes operation on 2 different devices here

8 years agoGeneric MIDI: add ToggleRecEnable action, and change all maps to use that instead...
Ben Loftis [Thu, 14 Jan 2016 22:37:47 +0000 (16:37 -0600)]
Generic MIDI:  add ToggleRecEnable action, and change all maps to use that instead of separate rec-enable, rec-disable, which didnt work

8 years agoOSC debugging, allow to log incoming & unhandled messages
Robin Gareus [Thu, 14 Jan 2016 22:33:58 +0000 (23:33 +0100)]
OSC debugging, allow to log incoming & unhandled messages

8 years agoMackie Control: Remove unused global_solo_* functions, moved functionality to clearso...
Len Ovens [Thu, 14 Jan 2016 21:06:14 +0000 (13:06 -0800)]
Mackie Control: Remove unused global_solo_* functions, moved functionality to clearsolo_* functions.
Changed to clear only rather than toggle and added Listen Clear as well.

8 years agoGUI for latency-measurement signal-level
Robin Gareus [Thu, 14 Jan 2016 18:25:23 +0000 (19:25 +0100)]
GUI for latency-measurement signal-level

8 years agoNO-OP: enums implicitly start at zero
Robin Gareus [Wed, 13 Jan 2016 13:57:02 +0000 (14:57 +0100)]
NO-OP: enums implicitly start at zero

this allows this file to be included to look up enums (bindings)

8 years agoadd API to query signal value of audio-latency measurement
Robin Gareus [Thu, 14 Jan 2016 18:10:04 +0000 (19:10 +0100)]
add API to query signal value of audio-latency measurement

8 years agoremove debug output
Paul Davis [Thu, 14 Jan 2016 16:00:50 +0000 (11:00 -0500)]
remove debug output

8 years agouse correct type of lock when removing a thread request buffer
Paul Davis [Thu, 14 Jan 2016 16:00:40 +0000 (11:00 -0500)]
use correct type of lock when removing a thread request buffer

8 years agofaderport: stop event loop when destroying object
Paul Davis [Thu, 14 Jan 2016 15:59:27 +0000 (10:59 -0500)]
faderport: stop event loop when destroying object

8 years agofully clean up request buffers when a thread dies
Paul Davis [Thu, 14 Jan 2016 15:53:32 +0000 (10:53 -0500)]
fully clean up request buffers when a thread dies

8 years agomanually revert 4b3043cc and 141e6fb8181; add detailed explanatory comment
Paul Davis [Thu, 14 Jan 2016 14:04:59 +0000 (09:04 -0500)]
manually revert 4b3043cc and 141e6fb8181; add detailed explanatory comment

8 years agoensure that each and every audioengine-related thread has a unique name
Paul Davis [Thu, 14 Jan 2016 14:04:09 +0000 (09:04 -0500)]
ensure that each and every audioengine-related thread has a unique name

8 years agoChange handling of Midi note selection to eliminate signal emission/delays.
Tim Mayberry [Wed, 28 Oct 2015 02:58:55 +0000 (12:58 +1000)]
Change handling of Midi note selection to eliminate signal emission/delays.

Each MidiRegionView(MRV) is connected to the Selection::ClearMidiNoteSelection
signal that is used to notify the all MRV instances to clear their note
selection.

The MRV class also has a private static SelectionCleared signal that is used to
signal other MRV instances when their selection has been cleared. When the
Selection::ClearMidiNoteSelection signal is emitted it causes each MRV to also
emit the SelectionCleared signal. So the emission takes quadratic time.

With 1500 MRV instances emission takes about 2.2 seconds on my machine, and
some operations like track selection cause it to be emitted 3 times(another
issue).

The Selection class in the Editor knows which MRV instances have note
selections, as it is notified by MidiRegionView whenever the selection count
becomes zero or becomes non-zero. Clearing the Note selection should then just
be O(N) and direct calls can be used rather than signals.

This change removes both the signals and uses the existing references between
Selection and MRV class to control note selection. There should be no
behavioural changes in Midi note selection with this change.

8 years agoAdd debug bit for selection debugging output
Tim Mayberry [Tue, 5 Jan 2016 04:00:37 +0000 (14:00 +1000)]
Add debug bit for selection debugging output

8 years agodon't pick up already dead thread request buffers when setting up an event loop
Paul Davis [Thu, 14 Jan 2016 04:25:17 +0000 (23:25 -0500)]
don't pick up already dead thread request buffers when setting up an event loop

8 years agouse a unique key to store per-thread request buffers
Paul Davis [Thu, 14 Jan 2016 04:00:02 +0000 (23:00 -0500)]
use a unique key to store per-thread request buffers

8 years agoyet more event loop debug tracing
Paul Davis [Thu, 14 Jan 2016 02:13:55 +0000 (21:13 -0500)]
yet more event loop debug tracing

8 years agomore event loop debugging
Paul Davis [Thu, 14 Jan 2016 00:48:17 +0000 (19:48 -0500)]
more event loop debugging

8 years agotypo fix
Paul Davis [Wed, 13 Jan 2016 23:14:52 +0000 (18:14 -0500)]
typo fix

8 years agolots more DEBUG_TRACE statements for analysing malfunctioning system
Paul Davis [Wed, 13 Jan 2016 22:03:44 +0000 (17:03 -0500)]
lots more DEBUG_TRACE statements for analysing malfunctioning system

8 years agoFix bug 6725 regions incorrectly moved after tempo change when glued to BBT time
Tim Mayberry [Wed, 6 Jan 2016 13:36:33 +0000 (23:36 +1000)]
Fix bug 6725 regions incorrectly moved after tempo change when glued to BBT time

Playlist::_split_region copies the region and BBT_Time member is default
constructed so position is bar 1 beat 1.

The regions sample position is then initialized to the new position using the
property list.

Playlist::add_region_internal is then used to add new regions to the playlist
which calls region->set_position() but as the region position has already been
initialized it does not recompute the _bbt_time member based on the new sample
position.

Then when a tempo change occurs and Region::update_after_tempo_map_change is
called the default initialized _bbt_time member is used to incorrectly
determine the new sample position.

So the change removes the initialization of the new region position using the
property list initialization method and just lets the playlist set the position
of the region in Playlist::add_region_internal so that the region _bbt_time
member is recomputed in Region::set_position_internal.

8 years agodon't allow to delete AU presets in the UI
Robin Gareus [Wed, 13 Jan 2016 17:01:39 +0000 (18:01 +0100)]
don't allow to delete AU presets in the UI

because the backend is not ready for this.

8 years agoanother DEBUG_TRACE for mackie control x-thread requests
Paul Davis [Wed, 13 Jan 2016 04:30:14 +0000 (23:30 -0500)]
another DEBUG_TRACE for mackie control x-thread requests

8 years agoimproved debug trace messages from BaseUI class
Paul Davis [Wed, 13 Jan 2016 03:10:23 +0000 (22:10 -0500)]
improved debug trace messages from BaseUI class

8 years agoMackie Control, Fix sends after monitor not showing.
Len Ovens [Tue, 12 Jan 2016 16:15:57 +0000 (08:15 -0800)]
Mackie Control, Fix sends after monitor not showing.

8 years agospace bar action (Transport/ToggleRoll) should still start transport if synced to...
Paul Davis [Tue, 12 Jan 2016 13:28:54 +0000 (08:28 -0500)]
space bar action (Transport/ToggleRoll) should still start transport if synced to Engine (JACK)

8 years agoat the end of waf configure, when displaying selected options, break backend settings...
Paul Davis [Tue, 12 Jan 2016 13:06:41 +0000 (08:06 -0500)]
at the end of waf configure, when displaying selected options, break backend settings into their own "output block"

8 years agoadd relevant wscript visibility for the portaudio backend
Paul Davis [Tue, 12 Jan 2016 12:47:25 +0000 (07:47 -0500)]
add relevant wscript visibility for the portaudio backend

8 years agoremove wavesaudio backend
Paul Davis [Tue, 12 Jan 2016 12:45:46 +0000 (07:45 -0500)]
remove wavesaudio backend

8 years agoComment remaining unsolved bug.
André Nusser [Wed, 2 Dec 2015 13:45:11 +0000 (14:45 +0100)]
Comment remaining unsolved bug.

8 years agoDon't show a ghost note when draw mode is entered over a note.
André Nusser [Wed, 2 Dec 2015 10:20:56 +0000 (11:20 +0100)]
Don't show a ghost note when draw mode is entered over a note.

8 years agoClean enter_internal and leave_internal in MidiRegionView.
André Nusser [Mon, 30 Nov 2015 15:49:09 +0000 (16:49 +0100)]
Clean enter_internal and leave_internal in MidiRegionView.

8 years agoFix two ghost note drawing problems.
André Nusser [Mon, 30 Nov 2015 23:15:53 +0000 (00:15 +0100)]
Fix two ghost note drawing problems.

A ghost note could appear:
1) above the region.
2) inside another note even though we haven't yet entered it.

8 years agoHide MIDI ghost note when over existing note.
André Nusser [Sun, 29 Nov 2015 23:58:03 +0000 (00:58 +0100)]
Hide MIDI ghost note when over existing note.

8 years agoHide ghost note when switching from draw to internal edit mode.
André Nusser [Mon, 30 Nov 2015 10:44:41 +0000 (11:44 +0100)]
Hide ghost note when switching from draw to internal edit mode.

Before it was only hidden after moving the mouse.