Mikko Rasa [Sun, 19 Oct 2014 17:23:02 +0000 (20:23 +0300)]
Expose the asset manager from Android::MainThread
AFAICT the asset manager is tied to the application and not the activity,
so this simple approach should be safe even if the activity gets destroyed
and recreated due to orientation change or whatever.
Mikko Rasa [Sun, 19 Oct 2014 13:33:01 +0000 (16:33 +0300)]
Synchronize access to the underlying object of Slice
This was prompted by the interactions between GL::ResourceManager and
some upcoming changes to DataFile::PackSource. If a new Slice object is
created and tries to connect to signal_flush_required at the exact moment
another Slice is seeking and causing the signal to be emitted, the emit
and connect calls step on each others' toes and corrupt the heap.
Mikko Rasa [Sun, 12 Oct 2014 11:35:05 +0000 (14:35 +0300)]
Add window and input management signals for Android
The onCreate handler will now wait until either the main Application
object is constructed or the MainThread's resume_startup function is
called. This ensures that the application (or a library such as mspgui)
can connect to the signals before they are emitted.
Mikko Rasa [Sat, 11 Oct 2014 10:32:23 +0000 (13:32 +0300)]
Minimalistic port for Android
Application startup through NativeActivity is provided and uncaught
exceptions are logged. A number of things are still in need of proper
implementations.
Mikko Rasa [Sun, 5 Oct 2014 10:48:57 +0000 (13:48 +0300)]
Use direct constant values for non-POSIX baud rates
Not all systems (particularly older ones) have #defines for the extended
baud rates, and the standard doesn't provide anything to check their
existence either.
Mikko Rasa [Mon, 6 Jan 2014 19:55:30 +0000 (21:55 +0200)]
Change get_bin_dir logic to assume exe in cwd if not otherwise found
Windows has an implicit . component in $PATH, which can cause programs
started from command line to not find their executable in $PATH. This
fixes the issue, and should not cause undue trouble on other systems.
Mikko Rasa [Sat, 5 Oct 2013 12:12:35 +0000 (15:12 +0300)]
Redesign uncaught exception handling to allow external reporters
This helps keep UI code out of the core library. It was becoming a
problem especially on OS X where including an Objective-C wrapper around
NSAlert would have broken Builder's bootstrap. Libmspgui will acquire
a class that will present graphical error dialogs on each platform.
Mikko Rasa [Fri, 3 May 2013 09:42:27 +0000 (12:42 +0300)]
Add support for positional arguments in GetOpt
This addresses the issue of any positional arguments recognized by an
application not showing up in the generated help text. It also reduces
the amount of processing and validation required from the application
itself and provides consistent error messages.
Mikko Rasa [Sat, 20 Apr 2013 14:47:50 +0000 (17:47 +0300)]
Fix Timer to use is Semaphore correctly
Besides still assuming the old condvar-style semantics, it was also
horribly broken and contained potential deadlocks and race conditions.
Not to mention unusable due to a missing constructor.
Mikko Rasa [Sat, 20 Apr 2013 14:19:55 +0000 (17:19 +0300)]
Add activation check to the rest of Filtered's virtual functions
This fixes a bug manifesting in builder where a put call that triggers a
BufferedFile's buffer flush causes the buffer contents to be written to
the file twice.
Mikko Rasa [Sat, 1 Dec 2012 20:50:39 +0000 (22:50 +0200)]
Filter the types that get fallback lexical conversion operators
Only enable the operators for types that already have iostream formatting
operators defined. Having them exist for everything would interfere with
some other stuff I'm going to commit in a moment.
Mikko Rasa [Sat, 1 Dec 2012 09:27:45 +0000 (11:27 +0200)]
Make lexical_cast symmetric
It has bugged me for a long time that lexical_cast took only the type of
the non-string side as a template argument. Fix it so that it always
takes both target and source types. The source type can be deduced, so
this only requires changes to invocations that cast things to strings.
Mikko Rasa [Thu, 27 Sep 2012 22:02:38 +0000 (01:02 +0300)]
Add an exclusive create flag to IO::File
This flag is important in creating temp files, as it allows atomic
creation of a new file. It also completes the set of create modes
available on Win32.
Mikko Rasa [Thu, 27 Sep 2012 20:41:20 +0000 (23:41 +0300)]
Add a mode parameter to Memory constructor with non-const pointers
This makes it possible to explicitly set the mode for a Memory, and in
particular to create a write-only Memory. ZlibCompressed does not work
with M_RDWR so writing compressed data to memory was impossible before
this commit.
Mikko Rasa [Fri, 3 Aug 2012 08:57:49 +0000 (11:57 +0300)]
The EOF logic wasn't quite correct
If the underlying object reported EOF after reading the last byte, then
ZlibCompressed would report EOF itself before giving out all data from
the buffers.