240923a801
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
323 lines
5.1 KiB
C
323 lines
5.1 KiB
C
/***************************************************************************
|
|
* __________ __ ___.
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
* \/ \/ \/ \/ \/
|
|
* $Id$
|
|
*
|
|
* Copyright (C) 2002 by Björn Stenberg <bjorn@haxx.se>
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
* KIND, either express or implied.
|
|
*
|
|
****************************************************************************/
|
|
#include <stdio.h>
|
|
#include <time.h>
|
|
#include <stdbool.h>
|
|
#include "debug.h"
|
|
|
|
#include "screens.h"
|
|
#include "button.h"
|
|
|
|
#include "string.h"
|
|
#include "lcd.h"
|
|
|
|
#include "power.h"
|
|
|
|
#include "ata.h" /* for volume definitions */
|
|
|
|
static bool storage_spinning = false;
|
|
|
|
#if CONFIG_CODEC != SWCODEC
|
|
void audio_set_buffer_margin(int seconds)
|
|
{
|
|
(void)seconds;
|
|
}
|
|
#endif
|
|
|
|
int fat_startsector(void)
|
|
{
|
|
return 63;
|
|
}
|
|
|
|
bool fat_ismounted(int volume)
|
|
{
|
|
(void)volume;
|
|
return true;
|
|
}
|
|
|
|
int storage_spinup_time(void)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
int storage_init(void)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
int storage_write_sectors(IF_MV2(int drive,)
|
|
unsigned long start,
|
|
int count,
|
|
const void* buf)
|
|
{
|
|
IF_MV((void)drive;)
|
|
int i;
|
|
|
|
for (i=0; i<count; i++ ) {
|
|
FILE* f;
|
|
char name[32];
|
|
|
|
sprintf(name,"sector%lX.bin",start+i);
|
|
f=fopen(name,"wb");
|
|
if (f) {
|
|
fwrite(buf,512,1,f);
|
|
fclose(f);
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
int storage_read_sectors(IF_MV2(int drive,)
|
|
unsigned long start,
|
|
int count,
|
|
void* buf)
|
|
{
|
|
IF_MV((void)drive;)
|
|
int i;
|
|
|
|
for (i=0; i<count; i++ ) {
|
|
FILE* f;
|
|
char name[32];
|
|
|
|
DEBUGF("Reading sector %lX\n",start+i);
|
|
sprintf(name,"sector%lX.bin",start+i);
|
|
f=fopen(name,"rb");
|
|
if (f) {
|
|
fread(buf,512,1,f);
|
|
fclose(f);
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
void storage_spin(void)
|
|
{
|
|
storage_spinning = true;
|
|
}
|
|
|
|
void storage_sleep(void)
|
|
{
|
|
}
|
|
|
|
bool storage_disk_is_active(void)
|
|
{
|
|
return storage_spinning;
|
|
}
|
|
|
|
void storage_spindown(int s)
|
|
{
|
|
(void)s;
|
|
storage_spinning = false;
|
|
}
|
|
|
|
void rtc_init(void)
|
|
{
|
|
}
|
|
|
|
int rtc_read(int address)
|
|
{
|
|
return address ^ 0x55;
|
|
}
|
|
|
|
int rtc_write(int address, int value)
|
|
{
|
|
(void)address;
|
|
(void)value;
|
|
return 0;
|
|
}
|
|
|
|
int rtc_read_datetime(struct tm *tm)
|
|
{
|
|
time_t now = time(NULL);
|
|
*tm = *localtime(&now);
|
|
|
|
return 0;
|
|
}
|
|
|
|
int rtc_write_datetime(const struct tm *tm)
|
|
{
|
|
(void)tm;
|
|
return 0;
|
|
}
|
|
|
|
#ifdef HAVE_RTC_ALARM
|
|
void rtc_get_alarm(int *h, int *m)
|
|
{
|
|
*h = 11;
|
|
*m = 55;
|
|
}
|
|
|
|
void rtc_set_alarm(int h, int m)
|
|
{
|
|
(void)h;
|
|
(void)m;
|
|
}
|
|
|
|
void rtc_enable_alarm(bool enable)
|
|
{
|
|
(void)enable;
|
|
}
|
|
|
|
extern bool sim_alarm_wakeup;
|
|
bool rtc_check_alarm_started(bool release_alarm)
|
|
{
|
|
(void)release_alarm;
|
|
return sim_alarm_wakeup;
|
|
}
|
|
|
|
bool rtc_check_alarm_flag(void)
|
|
{
|
|
return true;
|
|
}
|
|
#endif
|
|
|
|
#ifdef HAVE_HEADPHONE_DETECTION
|
|
bool headphones_inserted(void)
|
|
{
|
|
return true;
|
|
}
|
|
#endif
|
|
|
|
#ifdef HAVE_SPDIF_POWER
|
|
void spdif_power_enable(bool on)
|
|
{
|
|
(void)on;
|
|
}
|
|
|
|
bool spdif_powered(void)
|
|
{
|
|
return false;
|
|
}
|
|
#endif
|
|
|
|
#ifdef ARCHOS_PLAYER
|
|
bool is_new_player(void)
|
|
{
|
|
extern char having_new_lcd;
|
|
return having_new_lcd;
|
|
}
|
|
#endif
|
|
|
|
#ifdef HAVE_USB_POWER
|
|
bool usb_powered(void)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
bool usb_charging_enable(bool on)
|
|
{
|
|
(void)on;
|
|
return false;
|
|
}
|
|
#endif
|
|
|
|
#if CONFIG_CHARGING
|
|
bool charger_inserted(void)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
bool power_input_present(void)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
unsigned int power_input_status(void)
|
|
{
|
|
#ifdef HAVE_BATTERY_SWITCH
|
|
return POWER_INPUT_BATTERY;
|
|
#else
|
|
return POWER_INPUT_NONE;
|
|
#endif
|
|
}
|
|
|
|
bool charging_state(void)
|
|
{
|
|
return false;
|
|
}
|
|
#endif /* CONFIG_CHARGING */
|
|
|
|
#ifndef USB_NONE
|
|
bool usb_inserted(void)
|
|
{
|
|
return false;
|
|
}
|
|
#endif
|
|
|
|
#ifdef HAVE_REMOTE_LCD_TICKING
|
|
void lcd_remote_emireduce(bool state)
|
|
{
|
|
(void)state;
|
|
}
|
|
#endif
|
|
|
|
void lcd_set_contrast( int x )
|
|
{
|
|
(void)x;
|
|
}
|
|
|
|
void mpeg_set_pitch(int pitch)
|
|
{
|
|
(void)pitch;
|
|
}
|
|
|
|
static int sleeptime;
|
|
void set_sleep_timer(int seconds)
|
|
{
|
|
sleeptime = seconds;
|
|
}
|
|
|
|
int get_sleep_timer(void)
|
|
{
|
|
return sleeptime;
|
|
}
|
|
|
|
#ifdef HAVE_LCD_CHARCELLS
|
|
void lcd_clearrect (int x, int y, int nx, int ny)
|
|
{
|
|
/* Reprint char if you want to change anything */
|
|
(void)x;
|
|
(void)y;
|
|
(void)nx;
|
|
(void)ny;
|
|
}
|
|
|
|
void lcd_fillrect (int x, int y, int nx, int ny)
|
|
{
|
|
/* Reprint char if you want to change display anything */
|
|
(void)x;
|
|
(void)y;
|
|
(void)nx;
|
|
(void)ny;
|
|
}
|
|
#endif
|
|
|
|
void cpu_sleep(bool enabled)
|
|
{
|
|
(void)enabled;
|
|
}
|
|
|
|
#ifdef HAVE_TOUCHPAD_SENSITIVITY_SETTING
|
|
void touchpad_set_sensitivity(int level)
|
|
{
|
|
(void)level;
|
|
}
|
|
#endif
|