Commit Graph

611 Commits

Author SHA1 Message Date
Kloen
2fa0971ceb common: switch ComputeHash64 len param to size_t instead of int, fix warning on MSVC on dsp_dsp.cpp 2017-01-28 14:47:14 +01:00
bunnei
7cfe3ef046 Merge pull request #1951 from wwylele/motion-sensor
Emulate motion sensor in frontend
2017-01-07 12:39:20 -05:00
mailwl
f2985f7080 Service/NFC: stub GetTagInRangeEvent
Fix Fatal Error in Mini-Mario & Friends - amiibo Challenge
2016-12-30 09:40:54 +03:00
wwylele
6479f63091 Common: add Quaternion 2016-12-26 10:41:26 +02:00
wwylele
2e6d8e1321 vector math: add implementation of Length and Normalize 2016-12-26 10:41:26 +02:00
wwylele
55f5d0f777 MathUtil: add PI constant 2016-12-26 10:41:26 +02:00
wwylele
2a069e76a5 Common::Event: add WaitUntil 2016-12-26 10:41:26 +02:00
bunnei
51dd13b8a0 Merge pull request #2369 from MerryMage/core-frontend
core: Move emu_window and key_map into core
2016-12-23 17:35:35 -05:00
wwylele
488b7a4041 file_util: fix missing sysdata path 2016-12-23 22:19:14 +02:00
MerryMage
64f98f4d0f core: Move emu_window and key_map into core
* Removes circular dependences (common should not depend on core)
2016-12-23 13:42:39 +00:00
bunnei
aa47af7fb6 Merge pull request #2343 from bunnei/core-cleanup
Core: Top-level consolidate & misc cleanup
2016-12-22 11:47:44 -05:00
bunnei
17d740299a Merge pull request #2285 from mailwl/csnd-format
csnd:SND: Reformat source code
2016-12-22 00:47:50 -05:00
bunnei
707cc66362 file_util: Remove unused paths. 2016-12-21 23:29:12 -05:00
Vamsi Krishna
0db22eadd5 Fixed GPLv2 license text in the start. 2016-12-19 00:06:27 +05:30
bunnei
a89471621b Merge pull request #2316 from endrift/macos-gcc
Common: Fix gcc build on macOS
2016-12-16 00:40:40 -05:00
Yuri Kunde Schlesner
f4e98ecf3f VideoCore: Convert x64 shader JIT to use Xbyak for assembly 2016-12-14 20:06:08 -08:00
Jeffrey Pfau
fb952c399e Common: Fix gcc build on macOS 2016-12-13 10:20:33 -08:00
mailwl
1238e48c58 csnd:SND reformat source code 2016-12-12 21:19:36 +03:00
Jannik Vogel
45d941d62e Support mingw cross-compile 2016-12-05 19:09:16 +01:00
Yuri Kunde Schlesner
68c00ee771 Merge pull request #2228 from freiro/winver_fix
Move WINVER definition to cmake and a bit of cleanup
2016-11-30 15:47:08 -08:00
freiro
0c22e52f52 WINVER definition moved to CMake and cleanup 2016-11-30 15:47:09 +01:00
mailwl
5b136aa211 Set client SDK version to Service APIs 2016-11-30 09:51:14 +03:00
Subv
aea9a91100 Build: Fixed a few warnings. 2016-11-29 16:51:53 -05:00
Sebastian Valle
d3b7f57b2b Merge pull request #2168 from mailwl/mic
MIC_U: Stub service funcions
2016-11-27 00:19:33 -05:00
freiro
593ec7fa74 Move to AppData/Roaming/Citra/ 2016-11-26 22:57:36 +01:00
freiro
972b289c78 Removed /user/ from path 2016-11-26 01:00:52 +01:00
mailwl
d4cadf11fc MIC_U: Stub service funcions 2016-11-25 09:37:19 +03:00
freiro
79317b63d9 Switch to AppData/Roaming 2016-11-24 16:42:31 +01:00
freiro
3d75e3cd07 Return by value and other fixes 2016-11-19 15:50:16 +01:00
freiro
29bb82cb8e Win32 move default user folder location to AppData 2016-11-19 15:49:52 +01:00
bunnei
fb13bfe693 Merge pull request #2172 from jroweboy/fix-mingw
Fix mingw compilation support
2016-11-15 20:07:23 -05:00
James Rowe
c3ea6f4ddb Add mingw compile support 2016-11-13 23:50:46 -07:00
James Rowe
793339b73a Round the rectangle size to prevent float to int casting issues
And other minor style changes
2016-11-12 10:49:47 -07:00
James Rowe
d9305b0a07 Add default hotkey to swap primary screens.
Also minor style changes
2016-11-05 03:46:43 -06:00
James Rowe
5f72aade77 Rework frame layouts to use a max rectangle instead of hardcoded calculations 2016-11-05 02:55:58 -06:00
SonofUgly
e40c23463f LargeFrameLayout + Swapped
Make small screen stay at 1x, and large screen maintain its aspect ratio.
2016-11-05 02:55:53 -06:00
James Rowe
2b1654ad9b Support additional screen layouts.
Allows users to choose a single screen layout or a large screen layout.
Adds a configuration option to change the prominent screen.
2016-11-05 02:55:41 -06:00
Jan Beich
94d23b480e common: use system bswap* functions on more BSDs 2016-10-27 23:28:30 +00:00
Jan Beich
ddd8709e14 common: use system CPUID routine on DragonFly as well 2016-10-27 23:28:30 +00:00
Jan Beich
3d801be97d common: some FreeBSD headers are incomplete to avoid namespace pollution
In file included from src/common/x64/cpu_detect.cpp:16:
/usr/include/machine/cpufunc.h:66:17: error: unknown type name 'u_int'
static __inline u_int
                ^
/usr/include/machine/cpufunc.h:67:6: error: unknown type name 'u_int'
bsfl(u_int mask)
     ^
/usr/include/machine/cpufunc.h:69:2: error: unknown type name 'u_int'
        u_int   result;
        ^
/usr/include/machine/cpufunc.h:75:17: error: unknown type name 'u_long'; did you mean 'long'?
static __inline u_long
                ^
/usr/include/machine/cpufunc.h:76:6: error: unknown type name 'u_long'; did you mean 'long'?
bsfq(u_long mask)
     ^
/usr/include/machine/cpufunc.h:78:2: error: use of undeclared identifier 'u_long'; did you mean
      'long'?
        u_long  result;
        ^
[...]
2016-10-27 23:28:30 +00:00
Anthony J. Bentley
26af2b644c common: convert to standard stat()/fstat() interfaces
Most modern Unix environments use 64-bit off_t by default: OpenBSD,
FreeBSD, OS X, and Linux libc implementations such as Musl.

glibc is the lone exception; it can default to 32 bits but this is
configurable by setting _FILE_OFFSET_BITS.

Avoiding the stat64()/fstat64() interfaces is desirable because they
are nonstandard and not implemented on many systems (including
OpenBSD and FreeBSD), and using 64 bits for stat()/fstat() is either
the default or trivial to set up.
2016-10-27 23:28:30 +00:00
Jan Beich
51f92f0e4e common: stat64 is non-standard, hide on a random Unix
src/common/file_util.cpp:79:19: error: variable has incomplete type 'struct stat64'
    struct stat64 file_info;
                  ^
src/common/file_util.cpp:79:12: note: forward declaration of 'stat64'
    struct stat64 file_info;
           ^
src/common/file_util.cpp:99:19: error: variable has incomplete type 'struct stat64'
    struct stat64 file_info;
                  ^
src/common/file_util.cpp:99:12: note: forward declaration of 'stat64'
    struct stat64 file_info;
           ^
src/common/file_util.cpp:342:19: error: variable has incomplete type 'struct stat64'
    struct stat64 buf;
                  ^
src/common/file_util.cpp:342:12: note: forward declaration of 'stat64'
    struct stat64 buf;
           ^
src/common/file_util.cpp:359:19: error: variable has incomplete type 'struct stat64'
    struct stat64 buf;
                  ^
src/common/file_util.cpp:359:12: note: forward declaration of 'stat64'
    struct stat64 buf;
           ^
4 errors generated.
2016-10-27 23:28:29 +00:00
Jan Beich
8ce1ec7ffa common: only FreeBSD has thread affinity compatible with Linux
src/common/thread.cpp:90:5: error: unknown type name 'cpu_set_t'; did you mean 'cpuset_t'?
    cpu_set_t cpu_set;
    ^~~~~~~~~
    cpuset_t
/usr/include/sys/_cpuset.h:48:24: note: 'cpuset_t' declared here
typedef struct _cpuset cpuset_t;
                       ^
1 error generated.
2016-10-27 23:28:29 +00:00
Jan Beich
1410bd3bd0 common: define routines to set thread name on more BSDs
src/common/thread.cpp:123:5: error: use of undeclared identifier 'pthread_setname_np'
    pthread_setname_np(pthread_self(), szThreadName);
    ^
1 error generated.
2016-10-27 23:28:29 +00:00
Ricardo de Almeida Gonzaga
13d46f6820 Fix typos 2016-10-20 12:26:59 -02:00
bunnei
cc7f1155a8 Merge pull request #2024 from JamePeng/update-boss-code
Update the stub code of BOSS
2016-10-07 23:02:39 -04:00
JamePeng
bd8c80a7b4 Update the stub code of BOSS 2016-10-02 17:36:57 +08:00
Yuri Kunde Schlesner
6219654ded Common: Remove dangerous Vec[234] array constructors
They're not currently used, and it's easy to accidentally pass a single
pointer argument to them, causing an out-of-bounds read.
2016-09-29 21:11:36 -07:00
Yuri Kunde Schlesner
f120e78b56 Remove special rules for Windows.h and library includes 2016-09-21 00:16:33 -07:00
Yuri Kunde Schlesner
84fbbe2629 Use negative priorities to avoid special-casing the self-include 2016-09-21 00:15:56 -07:00
Emmanuel Gil Peyrot
ebdae19fd2 Remove empty newlines in #include blocks.
This makes clang-format useful on those.

Also add a bunch of forgotten transitive includes, which otherwise
prevented compilation.
2016-09-21 11:15:47 +09:00
Yuri Kunde Schlesner
396a8d91a4 Manually tweak source formatting and then re-run clang-format 2016-09-18 21:14:25 -07:00
Emmanuel Gil Peyrot
dc8479928c Sources: Run clang-format on everything. 2016-09-18 09:38:01 +09:00
bunnei
57ce84d471 microprofile: Double buffer size to 16MB. 2016-09-15 17:49:31 -04:00
Emmanuel Gil Peyrot
519e7013be Common: readdir_r() is deprecated, switch to readdir(). 2016-09-13 22:11:23 +09:00
Alexandre LittleWhite Laurent
7331b79021 Protection against a resize of size 0 2016-07-23 21:02:05 +02:00
scurest
0f9274fe24 Remove superfluous std::move in return std::move(local_var) 2016-06-25 13:26:21 -05:00
Yuri Kunde Schlesner
d6792632f0 Fix recursive scanning of directories
ForeachDirectoryEntry didn't actually do anything with the `recursive`
parameter, and the corresponding callback parameter was shadowing the
actual recursion counters in the user functions.
2016-06-19 00:12:15 -07:00
bunnei
f99961581e Merge pull request #1789 from wwylele/input-refactor
Refactor input mapping & implement circle pad modifier
2016-06-10 22:28:58 -04:00
bunnei
08e09184df Merge pull request #1751 from linkmauve/no-recursive-readdir
Make recursive FileUtil functions take a maximum recursion
2016-05-30 20:59:10 -04:00
MerryMage
8e1768cf1d common_funcs: Provide rotr and rotl for MSVC 2016-05-27 10:42:06 +01:00
Emmanuel Gil Peyrot
8ab6f26c09 Common: Make recursive FileUtil functions take a maximum recursion
Fixes #1115.

Also improves the performances of DiskArchive’s directory
implementation a lot, simply by not going through the entire tree
instead of just listing the first level files.

Thanks to JayRoxFox for rebasing this on current master!
2016-05-21 16:41:02 +01:00
wwylele
6cccdcacd2 fixup! fixup! Refactor input system 2016-05-15 19:35:06 +03:00
wwylele
6d49e4621c fixup! Refactor input system 2016-05-15 13:35:45 +03:00
wwylele
416faa20d1 implement circle pad modifier 2016-05-15 13:24:22 +03:00
wwylele
03631f9b8f Refactor input subsystem 2016-05-15 13:24:22 +03:00
Lioncash
d5b983a8c0 swap: Get rid of pointer casting for swapping structs
These shouldn't haphazardly convert types
2016-05-08 23:33:52 -04:00
Lioncash
47ca79ba4b swap: Get rid of undefined behavior in swapf and swapd
This isn't well-defined in C++.
2016-05-08 23:21:47 -04:00
Lioncash
aef4630102 swap: Remove unused methods
Also gets rid of pointer data variants as this prevents the use of
the regular swapping routines as unary predicates in std lib functions.

They also cast to stricter alignment types, which is undefined behavior.
2016-05-08 23:12:04 -04:00
bunnei
c549c36076 Merge pull request #1736 from MerryMage/sdl2-sink
AudioCore: SDL2 Sink
2016-05-07 11:08:13 -04:00
MerryMage
920d2cf41d AudioCore: SDL2 Sink 2016-05-07 11:32:48 +01:00
Emmanuel Gil Peyrot
691a42fe98 VideoCore: Run include-what-you-use and fix most includes. 2016-04-30 17:02:41 +01:00
Yuri Kunde Schlesner
e3a8292495 Common: Remove section measurement from profiler (#1731)
This has been entirely superseded by MicroProfile. The rest of the code
can go when a simpler frametime/FPS meter is added to the GUI.
2016-04-29 00:07:10 -07:00
Henrik Rydgård
90501f20e6 Make Citra build with MICROPROFILE_ENABLED set to 0 (#1709)
* Make Citra build with MICROPROFILE_ENABLED set to 0

* Buildfix with microprofile kept on

* moc did not like a dialog to conditionally exist.

* Cleanup

* Fix end of line
2016-04-28 20:17:31 -04:00
Sam Spilsbury
ef6873980e assert: Allow UNREACHABLE_MSG to have just one argument 2016-04-24 23:40:14 +08:00
bunnei
0964a3ff53 Merge pull request #1576 from smspillaz/fix-build-errors-03272016
Fix various build errors encountered on Clang 3.9 on OS X
2016-04-24 02:02:45 -04:00
LittleWhite
9572652ddc Protect use of std::is_trivially_copyable to compile with GCC 4.9 2016-04-23 15:45:35 +02:00
Sam Spilsbury
205e8f9f9e assert: Add _MSG variations for UNREACHABLE and UNIMPLEMENTED 2016-04-23 11:54:02 +08:00
bunnei
6d29c20208 Merge pull request #1672 from wwylele/win-driver-fix
Fix driver root identification on Windows
2016-04-19 17:40:13 -04:00
wwylele
43b6cbd762 fix driver root identification on Windows 2016-04-15 14:50:34 +03:00
bunnei
23f967b0af Merge pull request #1666 from MerryMage/barrier
Thread: Correct Common::Barrier implementation
2016-04-14 22:03:17 -04:00
bunnei
aff35d3e58 Merge pull request #1665 from lioncash/file
IOFile: Minor API changes
2016-04-14 16:28:15 -04:00
MerryMage
3c710f9b10 Thread: Make Barrier reusable 2016-04-14 13:59:58 +01:00
MerryMage
8c50833445 common/thread: Correct code style 2016-04-14 13:58:28 +01:00
bunnei
507e0b5989 emitter: Add CALL that can be fixed up. 2016-04-13 23:04:50 -04:00
bunnei
e5d417213c emitter: Support arbitrary FixupBranch targets. 2016-04-13 23:04:42 -04:00
Lioncash
5f51622e9d file_util: In-class initialize data members 2016-04-13 20:17:24 -04:00
Lioncash
655623ebb2 file_util: const qualify IOFile's Tell and GetSize functions 2016-04-13 20:17:23 -04:00
Lioncash
a4120ca66c file_util: Don't expose IOFile internals through the API 2016-04-13 20:17:17 -04:00
Lioncash
bf9945b81b file_util: Check for is_trivially_copyable
Also applies the template checks to ReadArray as well.
2016-04-13 19:20:26 -04:00
Lioncash
3ee4432fe3 file_util: Make IOFile data members private 2016-04-13 19:10:54 -04:00
MerryMage
226c5546e2 FileUtil: Missing #include, Add const to IOFile methods 2016-04-12 14:50:20 +01:00
mailwl
61ec5fa776 cecd:u: stub GetCecStateAbbreviated (#1648) 2016-04-08 15:39:52 -04:00
bunnei
dccadce074 Merge pull request #1435 from mailwl/frd_u
frd:u: Initial stub some functions
2016-04-05 23:04:35 -04:00
Mathew Maidment
aa6380e5bc Merge pull request #1643 from MerryMage/make_unique
Common: Remove Common::make_unique, use std::make_unique
2016-04-05 20:10:11 -04:00
MerryMage
a06dcfeb61 Common: Remove Common::make_unique, use std::make_unique 2016-04-05 13:31:17 +01:00
bunnei
b393408496 Merge pull request #1620 from LFsWang/path
Fix filename&path encode problem on Windows
2016-04-04 21:55:08 -04:00
bunnei
6d24c73ea9 Merge pull request #1616 from exhalatio/dlp_dummy
Dummy implementation dlp:SRVR Service.
2016-04-03 10:10:58 -04:00
exhalatio
bbdfbe44e6 Dummy implementation dlp:SRVR Service. 2016-04-03 06:05:20 +09:00
LFsWang
87afef73b1 remove debug code 2016-03-31 20:29:39 +08:00
mailwl
cb8e85a37d cecd:u: stub GetCecInfoEventHandle, GetChangeStateEventHandle 2016-03-31 14:59:10 +03:00
LFsWang
be01912539 fix unicode url problem on windows 2016-03-31 19:21:03 +08:00
LFsWang
acfa76aa38 Fix encode problem On Windows 2016-03-31 18:58:37 +08:00
mailwl
81d988b022 frd:u: Initial stub some functions 2016-03-27 10:08:04 +03:00
wwylele
6bd5f98272 remove unnecessary const 2016-03-26 10:46:48 +03:00
wwylele
db151efd0a implement accel and gyro backend 2016-03-22 18:35:03 +02:00
Lioncash
1400aeceac vector_math: Add missing member in Vec4's SetZero function 2016-03-18 01:49:34 -04:00
JamePeng
dd0b8047eb Reorganize the ndm service path for dummy implement function
SuspendDaemons , ResumeDaemons , OverrideDefaultDaemons

The NDM file move to /core/hle/service/ndm/ now!
2016-03-15 00:42:47 +08:00
bunnei
a2024d7497 Merge pull request #1509 from lioncash/noncopy
common: Minor changes to NonCopyable
2016-03-13 16:47:44 -04:00
Jannik Vogel
a66c186e81 PICA: Align vertex attributes 2016-03-13 04:54:23 +01:00
Lioncash
38376b833e common_types: Make NonCopyable constructor constexpr 2016-03-12 21:57:18 -05:00
Lioncash
45e2fce7c0 common_types: Specify const in deleted copy constructor/assignment operator 2016-03-12 21:55:30 -05:00
bunnei
3789de6bd9 Merge pull request #1476 from lioncash/emit
emitter: constexpr/misc changes
2016-03-10 01:06:25 -05:00
Lioncash
e3f9d09b28 emitter: templatize ImmPtr 2016-03-09 03:13:01 -05:00
Lioncash
1351c0ce9f emitter: constexpr-ify helper functions 2016-03-09 03:13:00 -05:00
Lioncash
e66a6a2a1b emitter: Get rid of CanDoOpWith
This was removed in Dolphin as there were no particular uses for it.
I'm sure the same will apply to citra.
2016-03-09 03:12:59 -05:00
Lioncash
6085b419e5 emitter: constexpr-ify OpArg 2016-03-09 03:12:53 -05:00
Lioncash
77bcdafc94 emitter: friend class OpArg with XEmitter 2016-03-09 02:25:00 -05:00
Lioncash
450c84c990 emitter: Remove unimplemented prototype 2016-03-09 02:20:00 -05:00
Lioncash
88d604383e Common: Get rid of alignment macros
The gl rasterizer already uses alignas,
so we may as well move everything over.
2016-03-09 01:31:14 -05:00
bunnei
cddb9bd2aa Merge pull request #1297 from Subv/saves
DiskDirectory: Initialize the directory member with valid info.
2016-03-01 17:16:05 -05:00
Yuri Kunde Schlesner
ddcf2ef32a Merge pull request #1427 from MerryMage/emit-lbit
x64 Emitter: Fix L bit in VEX prefix
2016-02-28 03:12:57 -08:00
MerryMage
f73c39d573 x64 Emitter: Fix L bit in VEX prefix 2016-02-27 12:45:26 +00:00
mailwl
2e13b7f3ca Initial implementation ir:user 2016-02-26 18:39:28 +03:00
MerryMage
8b00954ec7 AudioCore: Skeleton Implementation
This commit:
* Adds a new subproject, audio_core.
* Defines structures that exist in DSP shared memory.
* Hooks up various other parts of the emulator into audio core.

This sets the foundation for a later HLE DSP implementation.
2016-02-21 13:13:52 +00:00
MerryMage
6c71858c5c BitField: Make trivially copyable and remove assignment operator 2016-02-12 19:51:16 +00:00
Lioncash
c89e3d5951 backend: defaulted move constructor/assignment 2016-02-04 22:39:33 -05:00
Lioncash
60fe45813b color: Make trivial helpers constexpr 2016-01-27 22:14:17 -05:00
Lioncash
3933b68c59 key_map: Use std::tie for comparisons 2016-01-25 01:19:21 -05:00
Subv
922b31ebbd DiskDirectory: Initialize the directory member with valid info. 2016-01-16 09:30:29 -05:00
LFsWang
8376821776 Add missing return values in ForeachDirectoryEntry
ForeachDirectoryEntry is changed by #1256 ,but return value at last line
was missing.
2015-12-23 16:26:38 +08:00
bunnei
87df493b5b Merge pull request #1252 from Subv/cam
Services/Cam: Added new log type and camera enums from 3dbrew.
2015-12-03 22:01:45 -05:00
archshift
b3cfcf55ea Refactor ScanDirectoryTreeAndCallback to separate errors and retvals
ScanDirectoryTreeAndCallback, before this change, coupled error/return
codes and actual return values (number of entries found). This caused
confusion and difficulty interpreting the precise way the function
worked.

Supersedes, and closes #1255.
2015-11-27 13:33:38 -08:00
Subv
434ae89a6a Services/Cam: Added new log type and camera enums from 3dbrew.
Followup to #1102
Original author @mailwl
2015-11-23 17:17:28 -05:00
wwylele
1f89d5d184 fix failure on gcc and clang 2015-11-12 20:39:30 +02:00
wwylele
8de154893c disable unary minus when the type is not signed
silent warning C4146 on msvc
2015-11-12 20:39:28 +02:00
polaris-
31dee93e84 Implement gdbstub 2015-10-04 11:16:59 -04:00
bunnei
5d635986bf Merge pull request #1176 from lioncash/vs2015-code-junking-day
Obligatory "Throw out workarounds VS2013 once limited us to" PR
2015-10-03 13:19:03 -04:00
bunnei
11a64acf23 Merge pull request #1095 from archshift/game-list
Initial implementation of a game list
2015-10-01 23:35:19 -04:00
Lioncash
845ac621b3 bit_field: Re-enable code on MSVC 2015-10-01 15:43:42 -04:00
archshift
7134a17fc6 Split up FileUtil::ScanDirectoryTree to be able to use callbacks for custom behavior
Converted FileUtil::ScanDirectoryTree and FileUtil::DeleteDirRecursively
to use the new ScanDirectoryTreeAndCallback function internally.
2015-09-30 21:04:47 -07:00
Lioncash
8cb2bc748d symbols: Replace an insert call with emplace 2015-09-30 11:55:58 -04:00
Lioncash
65d7a82db4 symbols: Get rid of initial underscores in variable names 2015-09-30 11:54:44 -04:00
Lioncash
7e143d4422 symbols: Directly initialize TSymbol members 2015-09-30 11:53:01 -04:00
Lioncash
052eacc3b9 symbols: Simplify GetSymbol 2015-09-30 11:51:06 -04:00
Lioncash
543192e045 hash: Get rid of unused functions 2015-09-16 08:54:28 -04:00
Lioncash
751fbfdcc3 general: Silence some warnings when using clang 2015-09-16 08:51:53 -04:00
Lioncash
13683a6a11 memory_util: Remove unnecessary assignment in FreeMemoryPages 2015-09-11 23:16:34 -04:00
Lioncash
3972ac40ef memory_util: Remove commented out printf statements 2015-09-11 23:12:28 -04:00
Lioncash
07bfe0abbb general: Replace 0 literals with nullptr where applicable 2015-09-11 23:11:01 -04:00