summaryrefslogtreecommitdiff
path: root/uisimulator/common/stubs.c (follow)
Commit message (Collapse)AuthorAge
* Clarify usb_powered() and fix some code.Amaury Pouly2015-01-08
| | | | | | | | | | Either by mistake or because its meaning changed, usb_powered() doesn't mean what the name suggest, so clarify its meaning by renaming it to usb_powered_only. So use of usb_powered() are replaced by usb_inserted() when it makes more sense. Change-Id: I112887e2d8560e84587bee5f55c826dde8c806d8 Reviewed-on: http://gerrit.rockbox.org/1097 Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
* Rewrite filesystem code (WIP)Michael Sevakis2014-08-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch redoes the filesystem code from the FAT driver up to the clipboard code in onplay.c. Not every aspect of this is finished therefore it is still "WIP". I don't wish to do too much at once (haha!). What is left to do is get dircache back in the sim and find an implementation for the dircache indicies in the tagcache and playlist code or do something else that has the same benefit. Leaving these out for now does not make anything unusable. All the basics are done. Phone app code should probably get vetted (and app path handling just plain rewritten as environment expansions); the SDL app and Android run well. Main things addressed: 1) Thread safety: There is none right now in the trunk code. Most of what currently works is luck when multiple threads are involved or multiple descriptors to the same file are open. 2) POSIX compliance: Many of the functions behave nothing like their counterparts on a host system. This leads to inconsistent code or very different behavior from native to hosted. One huge offender was rename(). Going point by point would fill a book. 3) Actual running RAM usage: Many targets will use less RAM and less stack space (some more RAM because I upped the number of cache buffers for large memory). There's very little memory lying fallow in rarely-used areas (see 'Key core changes' below). Also, all targets may open the same number of directory streams whereas before those with less than 8MB RAM were limited to 8, not 12 implying those targets will save slightly less. 4) Performance: The test_disk plugin shows markedly improved performance, particularly in the area of (uncached) directory scanning, due partly to more optimal directory reading and to a better sector cache algorithm. Uncached times tend to be better while there is a bit of a slowdown in dircache due to it being a bit heavier of an implementation. It's not noticeable by a human as far as I can say. Key core changes: 1) Files and directories share core code and data structures. 2) The filesystem code knows which descriptors refer to same file. This ensures that changes from one stream are appropriately reflected in every open descriptor for that file (fileobj_mgr.c). 3) File and directory cache buffers are borrowed from the main sector cache. This means that when they are not in use by a file, they are not wasted, but used for the cache. Most of the time, only a few of them are needed. It also means that adding more file and directory handles is less expensive. All one must do in ensure a large enough cache to borrow from. 4) Relative path components are supported and the namespace is unified. It does not support full relative paths to an implied current directory; what is does support is use of "." and "..". Adding the former would not be very difficult. The namespace is unified in the sense that volumes may be specified several times along with relative parts, e.g.: "/<0>/foo/../../<1>/bar" :<=> "/<1>/bar". 5) Stack usage is down due to sharing of data, static allocation and less duplication of strings on the stack. This requires more serialization than I would like but since the number of threads is limited to a low number, the tradoff in favor of the stack seems reasonable. 6) Separates and heirarchicalizes (sic) the SIM and APP filesystem code. SIM path and volume handling is just like the target. Some aspects of the APP file code get more straightforward (e.g. no path hashing is needed). Dircache: Deserves its own section. Dircache is new but pays homage to the old. The old one was not compatible and so it, since it got redone, does all the stuff it always should have done such as: 1) It may be update and used at any time during the build process. No longer has one to wait for it to finish building to do basic file management (create, remove, rename, etc.). 2) It does not need to be either fully scanned or completely disabled; it can be incomplete (i.e. overfilled, missing paths), still be of benefit and be correct. 3) Handles mounting and dismounting of individual volumes which means a full rebuild is not needed just because you pop a new SD card in the slot. Now, because it reuses its freed entry data, may rebuild only that volume. 4) Much more fundamental to the file code. When it is built, it is the keeper of the master file list whether enabled or not ("disabled" is just a state of the cache). Its must always to ready to be started and bind all streams opened prior to being enabled. 5) Maintains any short filenames in OEM format which means that it does not need to be rebuilt when changing the default codepage. Miscellaneous Compatibility: 1) Update any other code that would otherwise not work such as the hotswap mounting code in various card drivers. 2) File management: Clipboard needed updating because of the behavioral changes. Still needs a little more work on some finer points. 3) Remove now-obsolete functionality such as the mutex's "no preempt" flag (which was only for the prior FAT driver). 4) struct dirinfo uses time_t rather than raw FAT directory entry time fields. I plan to follow up on genericizing everything there (i.e. no FAT attributes). 5) unicode.c needed some redoing so that the file code does not try try to load codepages during a scan, which is actually a problem with the current code. The default codepage, if any is required, is now kept in RAM separarately (bufalloced) from codepages specified to iso_decode() (which must not be bufalloced because the conversion may be done by playback threads). Brings with it some additional reusable core code: 1) Revised file functions: Reusable code that does things such as safe path concatenation and parsing without buffer limitations or data duplication. Variants that copy or alter the input path may be based off these. To do: 1) Put dircache functionality back in the sim. Treating it internally as a different kind of file system seems the best approach at this time. 2) Restore use of dircache indexes in the playlist and database or something effectively the same. Since the cache doesn't have to be complete in order to be used, not getting a hit on the cache doesn't unambiguously say if the path exists or not. Change-Id: Ia30f3082a136253e3a0eae0784e3091d138915c8 Reviewed-on: http://gerrit.rockbox.org/566 Reviewed-by: Michael Sevakis <jethead71@rockbox.org> Tested: Michael Sevakis <jethead71@rockbox.org>
* simulator: Simulate external storage for HAVE_MULTIDRIVE.Thomas Martitz2014-02-23
| | | | | | | | | The virtual external storage can be inserted/extracted with the e key. This has little effect because there is no way to access the storage (yet, a later commit will change this). Except on ondio where the mmc needs to be extracted before entering USB (like on real target). Change-Id: I523402832f3b4ae71e0603b281aba4fb8592a897
* storage: Add STORAGE_HOSTFSThomas Martitz2014-02-23
| | | | | | | | | | | | CONFIG_STORAGE & STORAGE_HOSTFS allows to use parts of the storage_* API to be compiled for application targets without compiling storage.c or performing actually raw storage access. This is primarily to enable application targets to implement HAVE_MULTIVOMULE/HAVE_HOTSWAP (in a later commit). SIMULATOR uses the same mechanism without explicitely defining STORAGE_HOSTFS (how to add a bit to an existing preprocessor token?). Change-Id: Ib3f8ee0d5231e2ed21ff00842d51e32bc4fc7292
* fix redAmaury Pouly2013-09-05
| | | | Change-Id: Ibca5879553a87e77014f850308d9b54cc339d474
* touch devices: Disable touch on softlock.Jean-Louis Biasini2013-09-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | Target that have a touchpad/touchscreen should disable it while being locked (In order to avoid LCD to drain battery power due to "key locked" constant reporting messages. If they a have a keylock button this was already handled at driver level. If not (e.g. fuze+), they will have to implement a switch at driver level that action.c can operate on softlock. This patch does the following for any target having a touchpad or a touchscreen and no HAS_BUTTON_HOLD (ie any softlock target) 1) it implements the code to call button_enable_touch(bool en) in action.c. 2) button_enable_touch is implemented in button.c and call either touchpad_enable or touchscreen_enable 3) those two function are implemented respectively in touchscreen.c and a new touchpad.c file. They provide a generic way to silents touch's device and call a function at driver level where target specific code can be implemented if possible/needed (for power saving for instance). Those function name are touchpad_enable_device and touchscreen_enable_device 4) we implement an empty function at driver level of targets that need it to have them still being able to compiled. Change-Id: I9ead78a25bd33466a8533f5b9f259b395cb5ce49 Reviewed-on: http://gerrit.rockbox.org/569 Reviewed-by: Thomas Martitz <kugel@rockbox.org> Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
* Cleanup MV/MD macros a little.Michael Sevakis2013-08-17
| | | | | | | | | | When using variadic macros there's no need for IF_MD2/IF_MV2 to deal with function parameters. IF_MD/IF_MV are enough. Throw in IF_MD_DRV/ID_MV_VOL that return the parameter if MD/MV, or 0 if not. Change-Id: I7605e6039f3be19cb47110c84dcb3c5516f2c3eb
* Keep fixing 0c7b787 stuffMichael Sevakis2013-04-15
| | | | Change-Id: I0678d3307fbcad32156f9f4e0f8b90eed5a20d92
* Tweak paramters of mp3_play_data and callback.Michael Sevakis2012-03-04
| | | | | | | | | Use generic void * and size_t and make mp3_play_data and its callback agree on types. Use mp3_play_callback_t instead of prototyping right in the function call (so it's not so messy to look at). Change doesn't appear to require plugin API version increment. Change-Id: Idcab2740ee316a2beb6e0a87b8f4934d9d6b3dd8
* Fix warn_unused_result warning.Dominik Riebeling2012-02-19
| | | | | | | | | | | A warning triggered by attribute warn_unused_result cannot be suppressed by casting the result to void. Properly check the return value and pass it to the caller. Fix the check for the number of bytes written. The return value of fread is the number of items written, not the number of bytes. Change-Id: I8c60e23ac549e22fd3f7dd5c51c5a8e6fc517cb1
* Another attempt at fixing storage_*_warnings. Correct return values also.Thomas Martitz2012-01-22
| | | | Change-Id: Ie04da59739f2ce31d5b777157b1214c921aa5615
* Attempt to fix remaining warnings.Thomas Martitz2012-01-22
| | | | Change-Id: I6c5b5b24db9f52272fc8765942ddcfff0eb3a8ab
* Fix reds by implementing a few more stubs, and undefining HAVE_STORAGE_FLUSH ↵Thomas Martitz2012-01-04
| | | | | | | | in the sim. Also slight change on how to measure seconds. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31550 a1c6a512-1295-4272-9138-f99709370657
* Rework powermgmt to enable code re-use on appliation and sims.Thomas Martitz2012-01-03
| | | | | | | | | | | | | | | | | | | | | * Introduce CONFIG_BATTERY_MEASURE define, to allow targets (application) to break powermgmt.c's assumption about the ability to read battery voltage. There's now additionally percentage (android) and remaining time measure (maemo). No measure at all also works (sdl app). If voltage can't be measured, then battery_level() is king and it'll be used for power_history and runtime estimation. * Implement target's API in the simulator, i.e. _battery_voltage(), so it doesn't need to implement it's own powermgmt.c and other stubs. Now the sim behaves much more like a native target, although it still changes the simulated battery voltage quickly, * Other changes include include renaming battery_adc_voltage() to _battery_voltage(), for consistency with the new target functions and making some of the apps code aware that voltage and runtime estimation is not always available. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31548 a1c6a512-1295-4272-9138-f99709370657
* RaaA: Add RTC supportThomas Jarosch2011-03-08
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29544 a1c6a512-1295-4272-9138-f99709370657
* Move sleep timer code outside of PLATFORM_NATIVE ifdef so RaaA can access itThomas Jarosch2011-02-28
| | | | | | Also remove redundant RaaA stubs for it. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29467 a1c6a512-1295-4272-9138-f99709370657
* Separate mas35xx lowlevel stuff. Move SH specific bits to target tree. ↵Marcin Bukat2010-10-31
| | | | | | FS#11189 by me. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28425 a1c6a512-1295-4272-9138-f99709370657
* Rockbox as an application: Commit current Android port progress.Thomas Martitz2010-08-02
| | | | | | | | | | | | | | | | General state is: Rockbox is usable (plays music, saves configuration, touchscreen works too). Problems: - Playing music in the background (i.e. when switching to another app) doesn't work reliably, but I'm working on that now. - no cabbiev2 (only some preliminary files for it), no other default theme. - screen flickers sometimes if the updates are too frequent - no multi screen apk/package - strange behavior when a phone call comes in The java files (and the eclipse project) resides in android/, which is also supposed to be the build folder. I've put a small README in there for instructions. There are some steps needed after the make part, which are described there, and which eclipse mostly handles. But there ought to be some script/makefile rules which do that instead in the future. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27668 a1c6a512-1295-4272-9138-f99709370657
* Simulator: build recording codeRafaël Carré2010-07-04
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27280 a1c6a512-1295-4272-9138-f99709370657
* rtc_enable_alarm() needs no return valueRafaël Carré2010-05-22
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26245 a1c6a512-1295-4272-9138-f99709370657
* Rename sdl lcd initialization to (remote_)lcd_init_device which enables ↵Thomas Martitz2010-05-18
| | | | | | removing two #ifdef SIMULATOR and makes it happen as on target. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26137 a1c6a512-1295-4272-9138-f99709370657
* - Move uisimulator/sdl/*.[ch] into the target tree, under ↵Thomas Martitz2010-05-15
| | | | | | | | | | firmware/target/hosted/sdl, uisdl.c is split up across button-sdl.c and system-sdl.c. - Refactor the program startup. main() is now in main.c like on target, and the implicit application thread will now act as our main thread (previously a separate one was created for this in thread initialization). This is part of Rockbox as an application and is the first step to make an application port from the uisimulator. In a further step the sim bits from the sdl build will be separated out. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26065 a1c6a512-1295-4272-9138-f99709370657
* UISimulator - prevent multiple definition of usb_inserted when USB_NONE is ↵Michael Chicoine2009-11-23
| | | | | | | | | defined This fixes simulator build errors on mini2440 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23723 a1c6a512-1295-4272-9138-f99709370657
* Fix red: Invert buttons in RTL modeTomer Shalev2009-10-05
| | | | | | | | | - Revert renaming of button_set_flip() - Moved rtl flipping logic to apps/actions.c as a static function - Joined rtl_button_flip_needed() and button_flip_horizontally() git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22962 a1c6a512-1295-4272-9138-f99709370657
* Invert buttons in RTL modeTomer Shalev2009-10-05
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22961 a1c6a512-1295-4272-9138-f99709370657
* FS#10569 RTC driver cleanupNils Wallménius2009-09-26
| | | | | | | | Change the RTC drivers so that the rtc_(read|write)_datetime functions now deal directly with the tm struct instead of passing a string of bcd digits to/from (set|get)_time . This simplifies drivers for rtc's that do not use a bcd representation internally and cleans up some target specific code and #ifdefs in generic code. Implement simple stubs for the sim to avoid #ifdefing for that too. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22839 a1c6a512-1295-4272-9138-f99709370657
* Slight cleanup in lcd.h: kill fixme and remove useless include, add some ↵Nils Wallménius2009-08-19
| | | | | | includes elsewhere and add a stub for sims instead of ifdef git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22431 a1c6a512-1295-4272-9138-f99709370657
* Simulate lcd_enable and lcd_sleep in the simulator. Therefore, turn ↵Thomas Martitz2009-04-29
| | | | | | backlight-sim.h into a .c too. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20829 a1c6a512-1295-4272-9138-f99709370657
* Actually do the renaming of the stub.Thomas Martitz2009-03-17
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20334 a1c6a512-1295-4272-9138-f99709370657
* Fix reds and yellows (hopefully). Some targets apparently didn't properly ↵Thomas Martitz2009-03-17
| | | | | | #ifdef lcd_enable and lcd_sleep code out, so that it got partly active in the bootloader; rename the ui simulator stub fixes most reds; for the clip: move the hook code into lcd-1bit-vert.c which should fix the bootloader red. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20333 a1c6a512-1295-4272-9138-f99709370657
* Small bit from my GSoC work: Unify the way the simulator accesses voice ↵Tom Ross2009-02-27
| | | | | | strings. In the future this will allow plugin menus to be translated and voiced. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20125 a1c6a512-1295-4272-9138-f99709370657
* Fix yellow. Don't know how I missed that testing sim build. :\Michael Sevakis2009-01-08
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19719 a1c6a512-1295-4272-9138-f99709370657
* Allow sims to shut down normally from panic code.Michael Sevakis2009-01-08
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19718 a1c6a512-1295-4272-9138-f99709370657
* Clean up panicf and introduce system_exception_wait to do further target ↵Michael Sevakis2009-01-08
| | | | | | tasks and wait for a button when an unrecoverable error has occurred (panic, UIE, etc.). Returning from that function should reboot or don't return from it. Move UIE and __div0 for ARM to its own file. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19716 a1c6a512-1295-4272-9138-f99709370657
* Fix remaining red.Nils Wallménius2009-01-03
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19661 a1c6a512-1295-4272-9138-f99709370657
* stop printing "storage_sleep()" in the sim outputJonathan Gordon2008-12-04
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19323 a1c6a512-1295-4272-9138-f99709370657
* Fix some red. The stubs in bootloaders are giving some trouble.Michael Sevakis2008-12-03
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19316 a1c6a512-1295-4272-9138-f99709370657
* Straighten out some powermanagement stuff. Give target complete control over ↵Michael Sevakis2008-12-03
| | | | | | how power inputs are sensed. Clean SIMULATOR stuff out of target files. Get rid of USB charging option on targets that don't support it or don't implement it yet. Menu string remains to avoid language incompatibility but should be removed on next cleanup for targets not using it (notice in english.lang). global_settings becomes incompatible for some builds and so plugin API version is incremented. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19315 a1c6a512-1295-4272-9138-f99709370657
* put stubs in the proper placeFrank Gevaerts2008-11-02
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18978 a1c6a512-1295-4272-9138-f99709370657
* Implement FS#8947 - Add a stub in the simulator for ata_disk_is_active. This ↵Bertrik Sikken2008-07-03
| | | | | | make it possible to clean up some #ifdef SIMULATOR macros. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17927 a1c6a512-1295-4272-9138-f99709370657
* Updated our source code header to explicitly mention that we are GPL v2 orDaniel Stenberg2008-06-28
| | | | | | | | | later. We still need to hunt down snippets used that are not. 1324 modified files... http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
* Fix red while keeping menu item.Michael Sevakis2008-05-29
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17658 a1c6a512-1295-4272-9138-f99709370657
* Convert the whole codebase to UTF-8, except docs/COMMITTERS and ↵Nicolas Pennequin2008-05-05
| | | | | | tools/creative.c, which need checking. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17369 a1c6a512-1295-4272-9138-f99709370657
* Make mpegplayer sleep the disk after buffering to save battery. * Add a ↵Jens Arnold2008-04-13
| | | | | | simulator stub for ata_sleep(), and un-ifdef most calls to it. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17096 a1c6a512-1295-4272-9138-f99709370657
* Revert my earlier const madness, we'll keep the parameter lists simple.Steve Bavin2008-03-28
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16863 a1c6a512-1295-4272-9138-f99709370657
* The const police raid playback.c, should be no change to behaviour.Steve Bavin2008-03-28
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16860 a1c6a512-1295-4272-9138-f99709370657
* compile talk.c on hwcodec sim. it wont actually talk thoughJonathan Gordon2007-11-07
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15512 a1c6a512-1295-4272-9138-f99709370657
* FS#7994 - Rename talk.c API, make talk_disable() affect all talking (not ↵Steve Bavin2007-10-19
| | | | | | just menus), hopefully save some space. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15206 a1c6a512-1295-4272-9138-f99709370657
* Fixes a problem where the sim would try to start the WPS on HAVE_RTC_ALARM ↵Jonathan Gordon2007-10-13
| | | | | | | | | sims (FS#7862 with a small addition by me) use the --alarm argument if you do want to simulate this behaviour git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15094 a1c6a512-1295-4272-9138-f99709370657
* Enable a lot more features for simulators and add stubs where necessary, ↵Nils Wallménius2007-08-12
| | | | | | simulators should now work with identical lng and voice files as the respective target git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14299 a1c6a512-1295-4272-9138-f99709370657