aboutsummaryrefslogtreecommitdiff
path: root/backends
AgeCommit message (Collapse)Author
2016-08-24CLOUD: Add object-oriented CallbacksAlexander Tkachev
These callbacks can call object's methods, not some global C functions. DropboxStorage::info2() and DropboxStorage::infoMethodCallback() demonstrate the idea.
2016-08-24CLOUD: Add complex callbacksAlexander Tkachev
Originally, I intended to add Storage API, StorageFile and StorageInfo stubs. When I tried to implement a simple info() call, I ended up fixing Request to contain some pointer field and all callbacks to have Request* parameter. And, now I have to place callback pointer into Request. which calls another callback. And, eventually, these "simple" callbacks would again require another pointer (to some caller class).
2016-08-24CLOUD: Add ConnectionManager hotfixAlexander Tkachev
Tried to compile these two last commits with GCC and found a few minor problems.
2016-08-24CLOUD: Make ConnectionManager singletonAlexander Tkachev
With ConnectionManager singleton one can start their Requests without creating Storage instance. Moreover, Storage instance should contain cloud API, not Requests-related handling and timer starting methods. Thus, these methods were moved into ConnectionManager itself.
2016-08-24CLOUD: Add Dropbox into CloudManager's configsAlexander Tkachev
This commit adds: * ConfMan's new "cloud" domain; * CloudManager's init() method, where it loads keys from "cloud" configs domain; * CurlJsonRequest's addHeader() and addPostField() methods; * temporary Storage's printInfo() method; * DropboxStorage's implementation of printInfo(), which is using access token and user id; * DropboxStorage's loadFromConfig() static method to load access token and user id from configs and create a Storage instance with those; * temporary DropboxStorage's authThroughConsole() static method, which guides user through auth process from the console. So, in CloudManager's init() implementation ScummVM checks that there is "current_storage_type" key in "cloud" domain of configs, and loads corresponding storage if there is such key. If there is no such key, ScummVM offers user to auth with Dropbox. That's done through console, and thus it's temporary (it also requires restarting ScummVM twice and manually editing config.ini file).
2016-08-24CLOUD: Fix CurlJsonRequestAlexander Tkachev
It's using MemoryWriteStreamDynamic instead of String and it prepares raw byte contents of this stream for JSON::parse().
2016-08-24CLOUD: Add CurlJsonRequestAlexander Tkachev
Now we can do REST API request by creating CurlJsonRequest and waiting for it to call our callback. Passed pointer is Common::JSONValue. This commit also does some minor variable renaming fixes.
2016-08-24CLOUD: Rewrite NetworkReadStreamAlexander Tkachev
Now it is based on MemoryReadWriteStream, which is introduced by this commit. This stream is using ring buffer and is dynamically increasing its size when necessary.
2016-08-24CLOUD: Add ConnectionManager and NetworkReadStreamAlexander Tkachev
NetworkReadStream actually saves whole response in the memory now. There is a pause mechanism in libcurl, but if libcurl is requesting something compressed, it would have to uncompress data as it goes even if we paused the request. Even though our own stream won't be notified about this data when when "pause" the request, libcurl's own buffer wound be expanding.
2016-08-24CLOUD: Add CurlRequestAlexander Tkachev
CurlRequest uses own multi_handle, in which it creates an easy_handle to make a request. Every time `handle()` is called it checks whether request is complete and, if it is, stops.
2016-08-24CLOUD: Fix GCC static cloudThread compile errorAlexander Tkachev
It's not static anymore.
2016-08-24CLOUD: Add first RequestAlexander Tkachev
Just fooling around with the example Request, but the idea works well.
2016-08-24CLOUD: Do minor fixesAlexander Tkachev
2016-08-24CLOUD: Add USE_CLOUD featureAlexander Tkachev
Adds USE_CLOUD in both configure and create_project.
2016-08-24CLOUD: Add Cloud::Manager and Cloud::StorageAlexander Tkachev
This commit introduces Common::CloudManager, which can be accessed from OSystem. The backend for this manager is Cloud::Manager (defined in backends/cloud/manager.h). It should load all users storages from configs and provide access to current Storage instance. For now it just creates a new one. Cloud::Storage (backends/cloud/storage.h) provides an API to interact with cloud storage, for example, create new directory or sync files. Right now it's not ready and has only two dummy methods: listDirectory() and syncSaves(). There is Cloud::Dropbox::DropboxStorage backend (backends/cloud/dropbox/dropboxstorage.h) for Cloud::Storage. Right now it implements both listDirectory() and syncSaves() with starting timer task and handling it by printing out some JSON examples.
2016-08-24CLOUD: Integrate CloudThread into OSystemAlexander Tkachev
Would be changed soon.
2016-08-24CLOUD: Refactor SimpleJSONAlexander Tkachev
2016-08-24CLOUD: SimpleJSON refactorAlexander Tkachev
Resharper + manual methods & fields renaming.
2016-08-24CLOUD: Add SimpleJSON library (module.mk hotfix)Alexander Tkachev
Forgot to edit those.
2016-08-24CLOUD: Add SimpleJSON library as Common::JSONAlexander Tkachev
This commit also adds CloudThread class, which work() method is called every second by TimerManager. Right now it prints JSON examples on the console, so that's why it's introduced with SimpleJSON library.
2016-08-13Merge pull request #790 from salty-horse/clang_fixesWillem Jan Palenstijn
ALL: Don't use 'defined' in macro definitions
2016-08-04POSIX: Add #ifdef guards for DATA_PATH.Alyssa Milburn
Thanks to snover for pointing out they should be there.
2016-08-04DC: Fix compilationEugene Sandulenko
2016-08-04N64: Added pos() method to another save classEugene Sandulenko
2016-08-04N64: Fix warningEugene Sandulenko
2016-08-04N64: Fix build adter WriteStream::pos() additionEugene Sandulenko
2016-08-04BACKENDS: Fix DC's OutVMSave to have pos()Alexander Tkachev
2016-08-02Merge pull request #795 from fuzzie/snapEugene Sandulenko
POSIX: Add $SNAP to search path if available.
2016-07-29POSIX: Add $SNAP to search path if available.Alyssa Milburn
This allows ScummVM to find data files while running in a snap (e.g. from the new Ubuntu store).
2016-07-28COMMON: Remove the EventRecorder dependency from OSystemBastien Bouclet
EventRecorder is in the gui lib which is not linked in the cxxtest suite.
2016-07-25SDL: Disable keycode remapping when building for WinCEBastien Bouclet
WinCE does not have MapVirtualKey.
2016-07-25Merge pull request #782 from bgK/sdl-win32-keycodeFilippos Karapetis
SDL: Fix Windows SDL1 keycodes to use the active keyboard layout
2016-07-25SDL: Fix Windows SDL1 keycodes to use the active keyboard layoutBastien Bouclet
2016-07-23ALL: Don't use 'defined' in macro definitionsOri Avtalion
This is undefined behavior and clang warns about it. See <http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20160118/147239.html>.
2016-07-10MACOS: Use 'unsigned int' instead of NSUIntegerColin Snover
NSUInteger apparently does not exist until macOS 10.5, but buildbot targets 10.4.
2016-07-10MACOS: Fix sign comparisonColin Snover
2016-07-03Revert "SDL: Fix keyboard on macOS, fix directional keypad"Martin Kiewitz
This reverts commit 9aa7174218983bb1cf6fd98325082ca7d37f50fb. For now.
2016-07-03SDL: Fix keyboard on macOS, when using SDL2, fix directional keypadMartin Kiewitz
This will hopefully fully fix keyboard issues for macOS / SDL2, for example when pressing "alt-x". Also reset .ascii to 0, when Num-Lock is NOT enabled and keypad directional keys are pressed. This was fixed inside AGI+SCI previously. The latter shouldn't cause issues, but in case it does, the affected engine should get fixed and use keycodes instead.
2016-07-01SDL: Fix mouse trailing part of bug #7141Ben Castricum
Overlays are shown with _currentShakePos offset too, so no need to compensate the mousepointer position for overlays. This compensation was done inconsistently in draw/undraw mouse causing the mouse trails.
2016-06-08WIN32: Fix taskbar detection under Windows 10 onwards.Kirben
2016-06-08WIN32: Fix taskbar detection under Windows 10 onwards.Kirben
2016-05-31ANDROID: Set version code to 16. 15 was 1.8.1Eugene Sandulenko
2016-05-29Merge pull request #763 from bluegr/winsparkleEugene Sandulenko
UPDATES: Add support for WinSparkle
2016-05-25JANITORIAL: Remove unnecessary semicolonsTorbjörn Andersson
2016-05-23ANDROID: Build against android-23 platform.Alyssa Milburn
We seem to need this for the new manifest elements.
2016-05-23UPDATES: Fix indentationFilippos Karapetis
2016-05-22ANDROID: Add support for ScummVM menu on Android TV devicesMatthew Garrett
Android TV devices don't have menu buttons. Remotes should have a play/pause button (which may send individual play and pause events rather than a combined event) and gamepads should have a Y button. Use these to open the menu.
2016-05-22ANDROID: Add support for Leanback Launcher on Android TVMatthew Garrett
Android TV needs some modifications to the manifest and a new icon in order for apps to appear in the launcher.
2016-05-22UPDATES: Add support for WinSparkleFilippos Karapetis
2016-05-22SDL: Make TEXTINPUT handling more reliable for SDL2.Johannes Schickel
This reduces the likelihood of entering two characters per keypress in our guy on Windows. In fact, during my brief testing with the filter widget in the launcher I was not able to trigger the former behavior at all anymore.