13
0
Commit Graph

5298 Commits

Author SHA1 Message Date
a13bdf4153 meter rounded rectangle 2013-07-10 15:27:04 +02:00
3823ffc942 configurable meter background color 2013-07-10 15:27:04 +02:00
e4d754390e meter border 2013-07-10 15:27:04 +02:00
5b6fd190cb remove border around meter gradients, again. 2013-07-10 15:27:04 +02:00
fdbb0ef780 meter background gradient (hardcoded colors so far)
this is a quick test w/black borders only left+right
for Mr oofus to assess.
2013-07-10 15:27:03 +02:00
d6d27f10cb fastmeter: 1px padding left&right 2013-07-10 15:27:03 +02:00
c23a537b61 session property - include busses in meterbridge 2013-07-10 15:27:02 +02:00
ben
04eaf7b418 add lib/LV2 path akin to lib/surfaces, to allow bundling of LV2 plugins in an ardour release. My first attempt to push... 2013-07-10 07:31:25 -05:00
38f2aa51bd Merge branch 'master' into cairocanvas 2013-07-09 09:11:52 -04:00
29108187ed fix metering when monitoring track input. (ran twice) 2013-07-07 04:16:54 +02:00
398839f6e1 reset meters when changing metering-point or ports 2013-07-05 10:44:09 +02:00
37743ea9b1 minor fixes for recent cairocanvas work so that it builds on OS X (64bit) 2013-07-01 12:04:02 -04:00
af3056769c changes to waveform clipping display
* clip level is now -0.9dbFS
   * display of clipping is optional (see Theme Manager window)
   * clipping is based on disk data, unscaled by region gain
2013-06-28 20:21:30 -04:00
aa480b8338 make clip indicators more visible (the smaller of 7 pixels or 5% of track height) 2013-06-28 17:09:39 -04:00
5b3ebe824e restore display of clipping in waveform displays 2013-06-28 13:40:51 -04:00
7a7e937d8e more waveform drawing/coloring changes
* move color-regions-using-track color into UI config, not RC config
   * consolidate all waveform coloring into AudioRegionView::set_one_waveform_color()
2013-06-28 11:31:26 -04:00
144fdfbbd0 fix drawing of rectangles larger than 2000 pixels, caused by silly hard-coding of width limit 2013-06-27 17:27:58 -04:00
c6fe6b0996 cleanup ArdourCanvas::WaveView
Mostly this just involved removing the private CacheEntry class that really served no further purpose once
the design reverted to a single cached image
2013-06-27 17:23:34 -04:00
0e656f0a13 workaround/hack/fix for cairo pattern gradient space exceeding 2^16 size limit 2013-06-27 10:41:00 -04:00
f9936d7d3c move text origin back down, since it was a mistake to move it; alter computation of text bounding box to more accurate and efficient (not done yet) 2013-06-26 17:55:42 -04:00
2c3d570582 tweak position of pango-rendered text image on canvas by 2 pixels upward
this is an arbitrary tweak but seems to work well thus far
2013-06-26 12:29:44 -04:00
3031a99364 Merge branch 'master' into cairocanvas 2013-06-25 22:24:47 -04:00
57ff5e3198 fix gradient pattern origin translation for time axis view items
note: the solution is non-obvious, but the obvious one of applying a translational Cairo::Matrix to the gradient
caused an exception to be thrown because of a non-invertible matrix.
2013-06-25 20:41:24 -04:00
2108525187 fix up size and drawing of measure lines, even when vertically scrolled 2013-06-24 23:03:11 -04:00
a1f858d3b2 an awful lot of tweaks to drawing details 2013-06-24 16:28:53 -04:00
0ce393f051 likely fix for Canvas::Image positioning under new coordinate/render rules 2013-06-22 14:59:43 -04:00
9a9f4276a0 Further Freesound import tweaks.
Make download of sound files multi-threaded. Each sound file download takes
place in its own thread, and has its own progress bar and cancel button,
which stack up from the bottom of the list of results.

Sound files download into a file with a '.part' suffix, which is then
renamed to the intended name on success.

Add a 'Similar' button, which searches Freesound for sounds similar to the
currently-selected sound in the results list.

Add a freesound-download-dir config variable to decide the location
of sound files downloaded from Freesound.

Move Windows-specific logic to replace '/'s with '\'s from
Mootcher::changeWorkingDir() to Mootcher::ensureWorkingDir(), and remove
the now unused Mootcher::changeWorkingDir().

Use Glib::build_filename to construct paths.
2013-06-22 13:35:03 +01:00
11becd4a6b properly restore newer (cairo-canvas related) UI config parameters 2013-06-21 17:15:56 -04:00
48efe6c293 Add config variable for Freesound download folder location. 2013-06-21 21:30:52 +01:00
21914c884e Make scroll-wheel modifier keys consistent in main editor window.
Add constants for the keyboard modifiers that should be used for vertical
zoom, horizontal zoom, and horizontal scrolling in the main editor window,
and use these where appropriate rather than using Keyboard::PrimaryModifier
and friends directly.
2013-06-21 20:13:44 +01:00
a079118981 fix incorrect coordinate space when drawing first poly-curve line 2013-06-21 13:56:01 -04:00
1c74a3ab2d waveform drawing improvements
* handle logscaled and rectified
    * put dark tips in right places
    * improve color selection algorithm
2013-06-21 13:17:37 -04:00
68779e0c0a (working) start of an experiment with pyramix-style waveform drawing 2013-06-20 23:12:19 -04:00
27c943f1dd new image cache design for waveviews, with various fixes.
Rather than maintain a set of images in a cache, when we no longer have the required waveform data, create a new image that is appropriately centered and extends to roughly twice the screen width (or the limits of the region's source file(s), as necessary)
2013-06-20 14:37:31 -04:00
3604bf12a2 get wave drawing improved, but commit before i tear it all up and go back to a single cached image per waveview 2013-06-19 20:23:22 -04:00
f9d30cf41a inching pretty close to fully working waves now 2013-06-19 14:44:08 -04:00
79384aeb66 initial semi-working attempt at getting waveview cache to work correctly 2013-06-18 23:03:20 -04:00
691be68ac2 fix rect redraw problems caused by intersection requiring the usual 0.5 expansion (though consider a more general fix for this at teh group level) 2013-06-18 13:46:24 -04:00
77f5f4c4bf basically operational switch to canvas drawing coordinates, although text and waves don't work, and redraw areas are too small 2013-06-18 08:23:06 -04:00
cc960c4f07 remove executable mode-bit from files 2013-06-16 21:54:08 +02:00
11619a37bf Merge branch 'master' into cairocanvas
Conflicts:
	gtk2_ardour/editor_canvas.cc
	gtk2_ardour/imageframe_time_axis.cc
	gtk2_ardour/imageframe_time_axis.h
	gtk2_ardour/imageframe_time_axis_group.cc
	gtk2_ardour/imageframe_time_axis_group.h
	gtk2_ardour/imageframe_time_axis_view.cc
	gtk2_ardour/imageframe_time_axis_view.h
	gtk2_ardour/imageframe_view.cc
	gtk2_ardour/imageframe_view.h
	gtk2_ardour/marker_time_axis.cc
	gtk2_ardour/marker_time_axis.h
	gtk2_ardour/marker_time_axis_view.cc
	gtk2_ardour/marker_time_axis_view.h
	gtk2_ardour/marker_view.cc
	gtk2_ardour/marker_view.h
	gtk2_ardour/video_image_frame.cc
	gtk2_ardour/visual_time_axis.cc
	gtk2_ardour/visual_time_axis.h
	libs/canvas/canvas/circle.h
2013-06-14 21:09:24 +02:00
12584b7a7a don't display freewheeling & samplerate LV2 ports on GUI 2013-06-14 17:33:29 +02:00
f00b3b7f11 merge with master 2013-06-13 23:00:24 -04:00
80a13145f3 Generalize no-plugin-state from AudioUnits to all plugins
Replace AU_STATE_SUPPORT compile-time define with NO_PLUGIN_STATE and make it prevent plugin state setting, preset loading, preset saving and plugin state saving. Blocks on these actions exist partially in the backend and partially in the GUI (this latter class are not absolute, and should OSC or MIDI be able to drive Plugin::save_preset() the block could be circumvented). Set NO_PLUGIN_STATE if --freebie is used at waf-configure time
2013-06-13 22:50:54 -04:00
5d52ae1825 Update Russian translation of Ardour 3.2 2013-06-14 02:21:02 +02:00
e2df0413f4 fix up versioning stuff for libardour, which should track regular ardour release versions 2013-06-13 10:53:36 -04:00
31e8c77609 update .po files 2013-06-11 08:49:52 -04:00
298da23619 save and restore Generic MIDI threshold/smoothing value 2013-06-10 12:37:09 -04:00
4cb31ef74e Revert all close-on-exec changes from earlier today
with b26cc125 these are no longer needed.
2013-06-07 21:07:41 +02:00
fd5f1ef5f5 fix typo in SndFileDescriptor::open() -- check if file open succeeded. 2013-06-07 20:14:42 +02:00
07c6df00cc fix use of sf_open_fd() instad of sf_open() 2013-06-07 19:33:20 +02:00
31d234b48c Merge branch 'master' into cairocanvas 2013-06-07 13:18:48 -04:00
676a23e031 close audio-file if it cannot be opened 2013-06-07 18:56:48 +02:00
0761902b7e fix issue (creating new sound-files) in 92161b57 2013-06-07 18:09:15 +02:00
bdf91de8b7 more OSC socket fcntl() close-on-exec 2013-06-07 18:02:47 +02:00
6b19f5a444 OSC bail out if server cannot be started 2013-06-07 18:02:04 +02:00
92161b57ad mark more filedes as close-on-exec. - here audio+midi files! 2013-06-07 17:43:06 +02:00
df99859ad2 more sockets to close on fork() 2013-06-07 17:12:25 +02:00
024e556cb2 close network sockets on fork
fixes problem with external apps (ie. video-server) inheriting them.
2013-06-07 16:54:47 +02:00
7d8def38f4 fix compiler warnings 2013-06-06 21:00:34 +02:00
36359a7d8f correct previous premature commit re: OSC and send gain 2013-06-06 11:19:23 -04:00
addb33bc63 implement OSC /ardour/route/send/gainabs and /ardour/route/send/gainDB 2013-06-06 11:14:31 -04:00
ce8731b32d Merge branch 'master' into cairocanvas 2013-06-06 09:52:21 -04:00
8bfaa2d3d9 move control surface prefs onto their own tab in the user prefs; for Generic MIDI GUI, rename "Threshold" to "Smoothing" and add a tooltip to describe it; fix misuse of S_() in prefs editor 2013-06-06 08:31:46 -04:00
e9341a7de3 fix memory leaks and compiler warnings in LXVST code 2013-06-06 02:24:49 +02:00
cc8dafad4f lilv-backwards compatible min buffer-size implementation 2013-06-03 19:34:14 +02:00
1ee8f5c2e4 add forgotten free() -- fix tiny memory leak 2013-06-03 01:45:30 +02:00
6d33cd4362 fix typo in prev commit 2013-06-03 01:42:38 +02:00
b3014a63f1 lilv_port_get() for LV bufsize query requires new lilv 2013-06-03 01:40:10 +02:00
725e7443ad properly clean up LV2 world 2013-06-03 00:51:34 +02:00
a1d0093bfa honor LV2 rsz:minimumSize for Atom Event buffers 2013-06-03 00:48:17 +02:00
Sakari Bergen
b01ff11b04 Return null if deserializing an export timespan doesn't succeed with at least one range.
This should fix an issue with loading old sessions using the old way of
handling session ranges specially.
2013-05-26 21:25:22 +03:00
Sakari Bergen
0a364fd991 Remove special handling of session range in export. Fixes things when the session range is renamed. 2013-05-26 20:25:27 +03:00
13f51112c9 skip LV2 ports on GUI according to port-properties: notOnGUI and reportsLatency 2013-05-25 09:06:06 +02:00
db39613238 Forward midi feedback from LV2 plugins and allow to chain LV2 midi plugins. 2013-05-19 17:19:01 +02:00
126d592e8a simplify prev commit 2013-05-17 13:52:16 +02:00
jdekozak
e0971b2506 free buffer then set it to 0 2013-05-17 08:03:56 +02:00
jdekozak
ae74d66eb7 initialize ltc_enc_buf to 0 to fix crash in ltc_tx_cleanup at startup 2013-05-17 08:03:55 +02:00
31a05b01e6 fix jack session filename (colons are invalid) 2013-05-16 21:14:02 +02:00
bebe2af95a merge with master 2013-05-08 14:48:28 -04:00
eb5096bfc7 use hw.physicalcpu to get a more accurate CPU count on OS X (hw.ncpu includes hyperthreading cpus) 2013-05-08 10:47:23 -04:00
a902737db9 various changes to window visibility mgmt, including use of the mixbus2 code for toggling editor + mixer windows. no longer attempt to track changes made outside of ardour, which is a lost cause 2013-05-07 13:01:26 -04:00
ee426ca223 fix crash on export if no master bus is present in the session 2013-05-06 00:15:48 +02:00
074ef3c859 fix bigclockwindow's lack of hiding, set ArdourWindow to just-hide-on-delete and add a bit of visibility tracking debugging 2013-05-05 15:07:52 -04:00
e1b0f1bd0b merge with master 2013-05-04 22:41:10 -04:00
69a3310037 VisibilityTracker needs to inherit from sigc::tracker so that it can be used without combination with other sigc::trackable parents; fix partially_visible() logic 2013-05-04 22:01:32 -04:00
12d4c51023 forward port VST parameter name fix from mixbus: some/many VST plugins expect the buffer passed to them to be zero-filled, not just null-at-start. without this they can return garbage strings for parameter names 2013-05-02 20:29:03 -04:00
e2f0c5f91e merge resolution with master 2013-05-02 20:21:54 -04:00
c358e77e1e move setup_outline_context() to a more sensible shared location 2013-05-02 18:21:35 -04:00
f04c35cb1c reduce verbosity of DEBUG::Sequence traces 2013-05-02 10:11:31 -04:00
e1d331761f don't do debug trace output for every Render (process) call on an AU plugin 2013-05-02 10:11:06 -04:00
ebb1271b6f Merge branch 'license-fix' of https://github.com/adiknoth/ardour 2013-05-01 13:01:37 -04:00
c40accda42 don't print stacktraces to the supplied ostream AND cerr - a remnant from debugging wierd problems with stacktrace() on paul's system 2013-04-30 11:12:52 -04:00
63b02a265a Revert "fix LXVST support for plugins that make audioMaster callbacks from
within effOpen (e.g. glitch)"

This patch broke just about all other LVXST plugins. Glitch is doing something
wrong, or there is more magic about VST that we have yet to understand.

This reverts commit 56bc98f78b.
2013-04-28 20:31:25 -04:00
54bf06e63c Merge branch 'master' into cairocanvas 2013-04-26 14:20:11 -04:00
41d68e780f do not trigger visual changes when Fill::set_* methods don't change anything 2013-04-26 14:19:16 -04:00
db34831b18 redesign toggling of editor/mixer stacking to use Gtkmm2ext::VisibilityTracker 2013-04-26 14:12:52 -04:00
f9a46e78d6 fix incorrect 3rd arg to AudioRegion::read_peaks() - was passing end, not cnt. Fixes waveforms at high zoom 2013-04-26 11:10:19 -04:00
f8a37b197f tweak enter/leave code, remove debug output 2013-04-25 09:49:02 -04:00
fd7ac62ca5 don't invalidate image cache for every regionr esize, only region start changes 2013-04-25 09:48:38 -04:00
d0867e67e3 more tweaks for enter/leave events for canvas items 2013-04-24 22:57:23 -04:00
737433c446 tweaks to improve enter/leave event handling - fixes at least some crashes caused by this stuff 2013-04-24 18:31:00 -04:00
6f664c1f67 many pervasive changes primarily related to waveform drawing, particular content-dragging, colors, and more 2013-04-24 15:42:14 -04:00
Adrian Knoth
13ad68c73c Drop obsolete dmalloc.cc from libs/pbd.
The file relies on -DDEBUG_MALLOC and references

i   #include "/usr/local/src/dmalloc-4.1.2/return.h"

It is safe to assume that it's dead code.
2013-04-22 20:18:36 +02:00
Adrian Knoth
ef1fb4161a Disable obsolete compilation of libs/pds/dmalloc.cc
The file relies on -DDEBUG_MALLOC and references

  #include "/usr/local/src/dmalloc-4.1.2/return.h"

It is safe to assume that it's dead code.
2013-04-22 20:18:36 +02:00
Adrian Knoth
5aa8e8598c Delete *.bak files 2013-04-22 20:02:08 +02:00
Adrian Knoth
55e07a7243 Drop obsolete powermate code from libs/surface 2013-04-22 19:33:19 +02:00
Adrian Knoth
c72c7e6575 Fix license in fastlog.
Date: Mon, 22 Apr 2013 19:09:04 +0200
From: Laurent de Soras <laurent.de.soras@free.fr>
To: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Subject: Re: License of FastLog

Hi Adrian,

> Several open-source projects like Ardour use the code below which has
> no explicit license.
>
> If you agree (read: reply), we'd like to add the MIT license to this
> file, that is, change the copyright statement to the following text:

Nowadays I license my code under the WTFPL, which should
be compatible with the traditional open source licenses.
So please use this one instead:
<http://www.wtfpl.net/about/>

--
Laurent de Soras                  |               Ohm Force
DSP developer & Software designer |  Digital Audio Software
http://ldesoras.free.fr           | http://www.ohmforce.com
2013-04-22 19:21:16 +02:00
b36e085001 add back change lost during branch merging 2013-04-21 18:57:55 -04:00
eb23bd8102 add Group::clear(), do not clear _canvas member of Item when unparented (only the parent is changed) 2013-04-21 15:35:20 -04:00
b02a7445bf Revert "add Group::clear(), do not clear _canvas member of Item when unparented (only the parent is changed)"
This reverts commit a4df65a56f83823aba27432685977f420458a213.
2013-04-21 15:35:20 -04:00
fca81c9a6a add Group::clear(), do not clear _canvas member of Item when unparented (only the parent is changed) 2013-04-21 15:35:20 -04:00
fee8de9787 Revert "cairo image crash debugging" and "initialize image data"
This reverts commit dfdb91b429
and commit 188d766757.

despite earlier assumptions the code is correct and there is
likely a memory corruption elsewhere.
2013-04-20 23:36:13 +02:00
dfdb91b429 cairo image crash debugging 2013-04-20 22:51:37 +02:00
9a3bc39970 tweak event/leave event delivery so that it applies to items being deleted as well as motion events (hmm, needed for item addition too ...) 2013-04-20 16:11:40 -04:00
188d766757 initialize image data. 2013-04-20 22:07:43 +02:00
0c170b0897 no create cached waveview images that span from render-start to cache-start, but always clamp the end to render-end, to avoid creating over-sized images 2013-04-19 10:53:52 -04:00
907e7cd4af part two of ... add Canvas::Arc and derive Canvas::Circle from it 2013-04-18 21:29:13 -04:00
8482ce14ce add Canvas::Arc and derive Canvas::Circle from it 2013-04-18 21:28:11 -04:00
5bb213f53b add Canvas::Circle 2013-04-18 15:47:30 -04:00
74126c48c0 expand bbox for Canvas::Line to get rid of artifacts caused when moving them around, as is done for Rectangle and others 2013-04-18 15:47:10 -04:00
b7aeb147f2 display waveform polarity correctly
* cairo's Y axis points downward -> invert phase display
* fix logarithmic view for value.max < 0
2013-04-18 10:25:35 +02:00
3737f346ee Merge branch 'cairocanvas' of git.ardour.org:ardour/ardour into cairocanvas 2013-04-17 15:23:01 -04:00
ec102f94e1 various work waveview amplitude mgmt; fix playhead cursor drag from timebar click 2013-04-17 15:22:09 -04:00
8f2a2877b5 ArdourCanvas::Image allow to set custom data instead of class pre-allocated memory. 2013-04-17 20:26:09 +02:00
d1a05240ef fix clamping of line and rect coordinates to avoid issues with cairo when drawing way outside a surface's dimensions; move various coordinate methods down to Canvas, because they don't require GTK information; make visible_area() a Canvas virtual method so that we don't have to cast to call it 2013-04-17 10:53:17 -04:00
96eee9e7a1 change UIConfig to use accessor/setter methods like RCConfig so that ParameterChanged methods can actually be emitted; add variable (over a small range) background shading for all TimeAxisViewItems 2013-04-16 23:46:22 -04:00
381d4debf4 make waveform gradient depth continuously variable. color probably needs adjusting as do color stops to get a pleasing effect at most settings 2013-04-16 21:23:50 -04:00
c1df3295c1 virtual Fill:: and Outline:: methods so that Canvas::Items that cache image renderings of themselves can invalidate those caches when colors etc. change; add Item::{begin,end}_visual_change() so that we can notify the canvas more efficiently when *only* visual properties have changed and not the bounding box (probably needs to be used more widely) 2013-04-16 20:38:10 -04:00
81eed21dde some rationalization of how global WaveView properties and per-WaveView properties interact 2013-04-16 18:02:12 -04:00
a74743f551 somewhat restore ability to see rectified waveforms 2013-04-16 16:14:57 -04:00
33e09447e9 restore log-scaled waveform functionality 2013-04-16 15:38:18 -04:00
ef60401d92 (hopefully) fix double-buffering design of ArdourCanvas::Image 2013-04-16 14:20:04 -04:00
ccc9b6adee change rendering technique for waveforms, add back optional gradient, add back amplitude scaling, add rgb/hsv conversion utilities to canvas 2013-04-16 14:04:59 -04:00
a0044e5f71 add back various functionality to waveviews such as zero line, amplitude scaling 2013-04-16 10:07:52 -04:00
be23e48e7f add some comments to Canvas::Image and ensure that the canvas redraws after a put_image() call is handled in the GUI thread 2013-04-15 22:34:36 -04:00
37dd7e952b add headers to all canvas .cc and .h files 2013-04-15 22:10:18 -04:00
64d3763652 remove all xml++.h inclusion by canvas implementations 2013-04-15 22:00:13 -04:00
84fb0a8dce remove all XML related API from canvas. it may have been useful during development, but it is just a distraction - we will NEVER be saving or restoring canvas state via XML or any kind of serialized state 2013-04-15 21:57:08 -04:00
fe34485907 add new canvas Image item, with somewhat optimized API for asynchronous, threaded rendering directly into an image buffer suitable for use by cairo as a source surface (currently untested) 2013-04-15 21:40:15 -04:00
393ba98422 tweak time axis view item text positioning; allow ArdourCanvas::Text to have its width clamped, and use this as TAVI's get narrow so that text doesn't overflow 2013-04-15 14:45:22 -04:00
7e19053b88 Fix dragging objects on the canvas and remove redundant canvas groups
Delivery of fake motion events to the editor needed the event coordinates to be
in canvas space, as they are with "real" events. Editor and other objects had
many redundant groups from timbyr's work on gnomecanvas to scroll by moving
groups. We don't need this anymore with cairo-canvas (though possibly a
stationay background group for the canvas might be useful again one day as in
the SAE logo. Its implementation would be fairly different though, since we
would have to explicitly move the group on every scroll, since nothing else
ever moves on scroll).

Also tweaks to text item placement, and switch TimeAxisViewItem from
name_pixbuf to name_text, since ArdourCanvas::Text is already "pixbuf optimized".
2013-04-15 13:50:05 -04:00
af4539f857 a few changes to fix region dragging, all related to coordinate system handling, which is now much simpler with the new canvas; more debugging output when asked for 2013-04-15 10:38:12 -04:00
90a4d01662 Revert "option to ignore feedback detection - /i know what i'm doing/ mode."
This reverts commit e17f75b351.
2013-04-15 16:02:57 +02:00
e17f75b351 option to ignore feedback detection - /i know what i'm doing/ mode.
This currently only has effect if the loop connection is
made/unmade while the option was set/unset.
Toggling the option itself won't trigger a graph re-order
2013-04-15 15:50:08 +02:00
4e84bc3a39 changes to get cairocanvas branch to build on OS X, with its stupid nil and Rect macros, plus some const_cast<> and unused variable fixes that should really be in master but will have to wait till we rebase master 2013-04-12 21:46:44 -04:00
e5a3747686 switch from frames_per_pixel to samples_per_pixel in the one canvas object that uses this 2013-04-12 11:31:17 -04:00
4258a34912 change all frame_to_pixel and pixel_to_frame to sample_to_pixel and pixel_to_sample 2013-04-12 11:15:45 -04:00
fcb423f3f6 slightly optimize drawing of rectangles with all 4 sides outlined to avoid multiple paths etc 2013-04-12 11:08:24 -04:00
f208593249 Merge branch 'cairocanvas' of git.ardour.org:ardour/ardour into cairocanvas 2013-04-11 22:54:22 -04:00