Parent Directory
|
Revision Log
| Links to HEAD: | (view) (download) (as text) (annotate) |
| Sticky Revision: |
Since *set_led_enabled() is actually an ata-specific feature, move it back to ata_* only
Apply FS#9500. This adds a storage_*() abstraction to replace ata_*(). To do that, it also introduces sd_*, nand_*, and mmc_*. This should be a good first step to allow multi-driver targets, like the Elio (ATA/SD), or the D2 (NAND/SD).
Moved pcm_record from firmware to apps. Cleaned up some. Now all code using struct mp3entry is in apps.
New recording setting to configure how mono recordings are made. Previously, this was always L+R, which was kinda silly if your signal was on L only. This setting allows for L, R or L+R. SWCODEC only for now, to be added for HWCODEC (although that will only be L and L+R probably)
Fix broken h1x0 sim build by providing a stub for pcm_sample_rate()
Recording screen: show spdif samplerate on SWCODEC targets (with spdif of course). To be adapted so this also works for HWCODEC. And to be tested as I have no cable around and a broken disk in my h120....
Recording screen: do not show L/R gain settings when recording mono; do not show gain (and AGC) at all when recording via spdif.
Adapt comment to the fact that the splash is removed
FS#9281 Rename of splash functions. * Remove gui_splash() * Rename gui_syncsplash() to splashf() and remove its voice capabilities. * Rename the internal splash() to splash_internal() and introduce an externally visible splash() that handles simple splashing without printf functionality e.g. splash(HZ, ID2P(LANG_FOO)); or splash(HZ, "foo"); if a LANG_* id is passed it will be voiced. * Adjust all places that called gui_syncsplash() to use the correct variant from above. * Export both new functions to plugins and adjust places calling rb->splash() to use the correct variant so that we now have naming consistency between the core and plugins. * Fix one latent bug that would cause my sim to crash with the above changes and correct P2STR and P2ID macros, thanks to pondlife.
Fix a small delay in updating the recording screen. This caused the screen not to update when changing settings fast (key repeat)
Adapt clip counter to compact view of recording screen
Recording screen: show a more compact view if 6 lines do not fit but 4 do. Should help things on small screens or with big fonts.
Style police, trigStat -> trig_stat
First step of the recording screen redesign. The screen is split into a fixed top part containing essential data and the peakmeters/triggerbar, and a bottom part that is in fact a list. The list contains the items that can be changed, and also some stuff that isn't important enough to be on the top part, like the filename. That filename is now shown completely. If the font is too big to have 6 lines on the display, sysfont is used.
fix FS#9146
Implement FS#8947 - Add a stub in the simulator for ata_disk_is_active. This make it possible to clean up some #ifdef SIMULATOR macros.
Remove a viewport ambiguity by changing the screens width/heigth members into lcdwidth/lcdheight. Normal usercode should always use getwidth()/getheigth() as that returns the viewport width/height. Fixes issues that would have appeared in many places when introducing viewports with sizes != lcd sizes.
Updated our source code header to explicitly mention that we are GPL v2 or 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
FS#9051 - remove LCD margins... use viewports if you need them... NOTE to WPS people.... %m has been removed, but (i think) because of the other %m tags it wont fail if you try loading a wps with %m|..|, it will just be ignored. Also note that if the statusbar is enabled the default viewport is 8 pixels shorter than when its not, i.e (0,0) is really (0,8) if the statusbar is shown... I dont think this will be a major issue because almost no WPS show the bar and use bitmaps... text only WPS shouldnt be affected. Please report problem screens in http://forums.rockbox.org/index.php?topic=17358.0
Updated recording trigger screen (seems to be a feature almost noone uses?) problems/complaints in http://forums.rockbox.org/index.php?topic=16837.0 there is a known issue that on this screen the stop icon wont update, I dont know why and noone else wants to look at it, so hopefully this will force another set of eyes on it.. this is only a graphical issue... recordings still work fine
Fix red
Accept FS #8994: add another recording filesplit option: stop recording and shutdown
Made source files #include the header file that they implement to make sure they are in sync. Made some local functions static.
Moved atoi declaration to stdlib.h. Deleted atoi.h
Simplify that clip indicator reset code a bit
Reset recording clipping indicators when changing gain. Solves FS #6147
Quick fix to prevent freezing of H10 (possibly others too) when left at the disk full message. Needs more investigation to find the cause of the freeze.
More code police
Code police
Fix gradient selection bar in recording screen
Repair the no-spinup on start/split feature of recording. Recording directory selection broke it. Please only look at the disk during encoder loading opportunities in future additions.
Make the recording screen handle button repeats correctly when changing gain. Fixes FS#8038.
Make the variable for numbers of screens to update const on non-remote-lcd targets.
make check_dir use dir_exists and slightly optimise the latter
Mop up some yellow.
FS#7994 - Rename talk.c API, make talk_disable() affect all talking (not just menus), hopefully save some space.
Voice the recording trigger settings screen. From FS#6325, with a slight coding improvement. Also take out a duplicated snprintf in there.
Unify PCM interface just above the hardware driver level for all targets including the sims. Perform lockout of audio callback when changing states. Weird new playback or recording trouble? Check before and after this revision first though things seem quite sound.
Make the gradient look better when more than one line is selected (running time, ID3 info, cuesheet viewer...). I haven't found a solution for scrolling yet, so that won't look too good. The recording screen code needs a bit of adapting too, but I don't have a target to test on, so leave it for now.
FS#7808 by Tom Ross, Ken Fazzone and me, with help from Antoine Cellerier. Add two new line selector types: solid colour and gradient. Solid colour only uses the primary colour setting. The secondary colour setting is used for the gradient. Text colour for the selected item is also changeable. These new settings are a bit controversial so they may be removed later.
small optimisation: make a locally used function static
The clipcount string used in the rec screen should have been named sysfont. Fix also the already translated ones.
Implement FS #2976: Clip Counter for recording screen. If enabled in peak meter settings, it shows the number of times clipping occurred (clip indicator going on). Count is reset on recording start and only counts during actual recording. Stays on screen when stopping or pauzing. Also fix a drawing bug when peakmeters start at a non-zero x offset.
*** Lang v2 cleanup (FS#6574) *** 1) Introduces apps/features.txt that controls which strings are included for each target based on defines. 2) .lng and .voice files are now target specific and the format versions of both these file types have been bumped, which means that new voice files are needed. 3) Use the 'features' mechanism to exclude strings for targets that didn't use them. 4) Delete unused and deprecated and duplicated strings, sort strings in english.lang Some string IDs were changed so translations will be slightly worse than before.
Final changes to the recording naming code, this should make jhMikeS happy ;)
Even more optimizing for the recording name change...
Simplify the source based recording file names a bit.
Let recording create filenames based on the recording source, closes FS #921 (yes, he waited 4 years for his feature request to make it)
Rearrange and cleanup settings code
User configurable recording path (my patch in FS#7201). path defaults to / and can be changed in the folder context menu (cleared in the recording settings menu)
Prevent initial spinup when starting first file when in a stopped state on non-RTC targets. Fix some states that are dangerous on SWCODEC and could result in data loss. Had to make plugin API incopatible since specified numbered filename creation is enabled now on all non-RTC targets with recording; increase version and sort the items that looked like they had a place to go.
When recording, disable voice menus without actually modifying user settings. Patch FS#7272, fixes bug FS #6163
Straighten out some audio path APIs and misc. audio stuff. Having recording is not a prerequisite to having input/output source selection which is probably most useful when adding a audio input features like FM to a new port without forcing recording to be implemented first.
e200: Fix errors from recording addition and a warning that comes up when fixing the errors.
Move the setvol wrapper function to misc.c and use it in more places instead of doing the same checks everywhere
Use bitmasks to define which inputs are available. Makes it easier to remove old assumptions of which are available. Inspired by e200 being unique in having FM Radio and Mic but no Line. Doesn't remove the assumption that Mic is available or that one of Mic and/or Line is available just to avoid excessive #ifdef'ing until needed.
Always save settings when leaving recording, not just when leaving recording settings. Should fix FS #7185
Get samplerate switching working in the sim to be similar to on target. Make all pcm functions available there as well.
Revert recording/repeat timer for now. It is useful as a feature, but didn't receive enough testing on multiple targets, and fixing it is non-trivial. Later reversal would be complicated because of .lng spreading. * The patch should probably redone in a different way, as it's huge for what it does... * Issues: (1) The repeat timer setting has NULL pointer hits. (2) The multi-int setting screen breaks with proportional fonts, and with somewhat larger fonts. (3) On some targets, all values except the leftmost one are unreachable. * Hint: The timer itself would be much simpler if it'd just store & compare ticks (497 days before it wraps).
Recording countdown timer and repeat timer - see FS #6297 for more details
Set CONFIG_RTC to 0 for non-RTC targets, and check with #if to profit from -Wundef. No code change.
Get rid of the 'center' parameter for splashes. There were only 2 of almost 500 splashes which were not centered.
Accept FS#6750, allow recording to start automatically (If alarm wakeup is set to recording)
remove runtime detection of h1x0 series RTC MOD, but leave driver code
FS#6419 - driver for H1x0 series RTC Mod with runtime detection
Do the CONFIG_LED define
really fix red builds this time
Fix most (all?) CONFIG_LED warnings.
Revert the changes using global status for the screen states. It should wait for a more comprehensive plan to maximize benefit if any can be had.
Change the radio screen and recording screen to use the global_status structure for state. I guess global_status had been added already and I missed it. :D
Don't save the in-out state of the recording screen as a setting. Fixes the statusbar icons if settings were saved while recording screen was on. Humbly may I suggest a global_state structure to do all this state checking more efficiently\? Ignore me if that's being worked on by someone.
Ifdef some remote lcd code in the recording screen that is not used for non lcd remote targets
Removed unused 'mode' parameter from mkdir() for consistency with creat().
Next round of static'ing and related fixes.
Sims hate me again (or is that the other way). Fixup the stubs.
The sims hate me again.
Place all recording functionality on pcmrec thread to serialize all recording operations. Button mash problems should be ruled out of pcm_record.c. Add additional lightweight checks by default and display any warnings that occurred during recording in first line of recording screen when they occur by blinking back and forth from warning display to normal line (Warning: <hex bitmask>). Warnings are cleared when beginning a new recording so write the number down if you see it and file a report. Add heavier checks when PCMREC_PARANOID is defined in the player config header (encoders and pcm_record must be aware of the define since it changes the chunk header format). These checks are mainly concerned with things that may cause skipping but also add unwanted overhead for normal operation. Best used with logf enabled.
Made the AGC functions compatible with non-latin languages following the 'NonLatinLanguages' wiki page. Please keep using separate LANG_SYSFONT_ strings when using the internal font, Which only supports latin charset, for easier translation. * Hebrew translation.
iRiver/iAudio: Added audio_set_recording gain and sound_default to plugin API. Simplified plugin recording by target/-ing some audio functions. UDA1380 records with WSPLL as a result.
H100/300: Fixed radio silence problem. Removed the wrong call in my last update. :P
H100/General: HAL for S/PDIF and refinement/bufixes in optical output powering/source selection.
Recording trigger for software codec targets
Big Patch adds primarily: Samplerate and format selection to recording for SWCODEC. Supprort for samplerates changing in playback (just goes with the recording part inseparably). Samplerates to all encoders. Encoders can be configured individually on a menu specific to the encoder in the recording menu. File creation is delayed until flush time to reduce spinups when splitting. Misc: statusbar icons for numbers are individual digits to display any number. Audio buffer was rearranged to maximize memory available to recording and properly reinitialized when trashed. ColdFire PCM stuff moved to target tree to avoid a complicated mess when adding samplerate switching. Some needed API changes and to neaten up growing gap between hardware and software codecs.
Prevent gain increase when using AGC in Safety mode
Oops, didnt mean to commit this
If a directory is created in the recording screen, the dir browser needs refreshing
Fixed the possiblity of fooling the recording screen into writing to a non existent directory.
Oops - put back a different #ifdef
Remove an #ifdef - simulators might talk too
Reverted the recording timer commit, as it has at least 2 major problems. (1) It uses the user timer, which interferes e.g. with backlight fading on H1x0 (and potentially other targets). Using the user timer here is a waste, as the required timing lies in the range of seconds to days. A tick task would be sufficient. (2) It draws to the LCD from within an ISR. This must not be done unless there's a mechanism to ensure it doesn't interfere with the main thread's drawing, otherwise garbage might be displayed and LCD updates might stop working.
Recording countdown timer: set timer in recording settings screen (max 1 week countdown), start/pause timer in recording screen by pressing the pause button. If you have a separate record button then this will override the timer and start to record. Icon at bottom right of screen indicates timer is ticking. If you are in the recording screen when the countdown is over, recording will start automatically, if not then the icon will flash to indicate you should return to the recording screen to begin recording.
Fix a possible division by zero which caused much "IO5: at 310205A0" type angst while recording
Make 'Filename:' on recording screen possible to translate. Also replace some hardcoded values with sizeof.
Fixed the warning.
Fixed cpu incorrectly unboosted at boot.
Display bitrate (Q value for Archos), samplerate, channels and recording format (M = MP3) in the statusbar in the recording screen. This is all new info for archos targets and I-river targets now have this info on the remote as well as the main screen
Fix a display issue for targets with AGC where filetype info was overwriting the samplerate. Also filetype always displayed directly below samplerate in all modes for all targets
Fix a small display issue in the FM recording mode
Added FS#2939 Encoder Codec Interface + Codecs by Antonius Hellmann with additional FM Recording support and my modifications
Button action code for recording screen. Shouldnt make any noticable difference in recording screen button operation except for H300 I-River remote, which should now work as expected, -10 button = LCD off
Automatic Gain Control during recording. At this point only compiled for iriver h1x0 and h3x0. Patch FS#4748 by Jvo Studer, Martin Scarratt and myself.
oops
FS#5587 Non-latin languages support update. Translators:Please change the 48 new LANG_SYSFONT_ strings at the end of your language file if they don't fit nicely with rockbox's internal font. (for more info http://www.rockbox.org/twiki/bin/view/Main/NonLatinLanguages) Developers:Please keep using LANG_SYSFONT strings when reffering to the internal font. * Hebrew update.
Fixed display issue if you disabled remote LCD in recording screen close to bootup time
I-River targets: A workaround for the recording interference hardware issue when recording with a remote. Disable remote LCD while recording by pressing vol- on the remote. All remote buttons and cliplight are still operational while lcd is disabled.
Added options to timesplit recording feature (now renamed filesplit). Choose to split file by either time or filesize. Also have the option to either start a new file or stop recording at split point. Bumped config version so save your settings before you update your build.
on-the-fly track split support for recording with IAudioX5. Also changed button mapping: short record-start new file, long record-settings, short play-pause/resume, long play-stop. Thanks to JhMikeS for testing
iAudio X5: allow recording of FM radio
Patch #5347 by Rani Hod - Adds FM radio and recording features to the iAudio X5. Also includes a rewrite of the Coldfire I2C driver to include both read and write.
On-the-fly filesplitting when recording for I-Rivers. Record button starts new file, Play/Pause button pauses/resumes recording. Also, Filename information for all screens > 80 pixels high.
Completed implementation of display GUI code for recording and peakmeter
Relocated the iriver remote button defines and added them to settings.h as well for use elsewhere (later). Uses part of patch 5615 by Martin Scarratt. Fixed also one typo.
Combine two ifdefs
Fix two warnings for h1x0 sim
For iriver recording: do not boost while recording unless source is spdif. When saving to disk, boost if needed. Decreased max file size a bit for safety. Increases runtime while recording analog sources.
Iriver: Moved the handling of the UDA1380 split gain (analog preamp + decimator gain) into the UDA driver. * All: Settings structure sorted & cleaned up.
Fix red sim.
Optical S/PDIF recording and monitoring for Iriver H1x0. Removed unsupported recording options on Iriver. Sample rate displayed in recording screen reflects the real S/PDIF sample rate when doing S/PDIF recording. Testing would be appreciated. Thanks to Jens Arnold for fixing the DMA hang issue. Will reset settings!
Fix red b