I promised :)

This commit is contained in:
bsongis@gmail.com
2013-06-18 18:16:47 +00:00
parent d38c32544c
commit 2a2840eb14
3 changed files with 75 additions and 57 deletions
+22 -4
View File
@@ -620,12 +620,12 @@ void menuGeneralSdManagerInfo(uint8_t event)
inline bool isFilenameGreater(bool isfile, const char * fn, const char * line)
{
return (isfile && !line[SD_SCREEN_FILE_LENGTH+1]) || (isfile==(bool)line[SD_SCREEN_FILE_LENGTH+1] && strcmp(fn, line) > 0);
return (isfile && !line[SD_SCREEN_FILE_LENGTH+1]) || (isfile==(bool)line[SD_SCREEN_FILE_LENGTH+1] && strcasecmp(fn, line) > 0);
}
inline bool isFilenameLower(bool isfile, const char * fn, const char * line)
{
return (!isfile && line[SD_SCREEN_FILE_LENGTH+1]) || (isfile==(bool)line[SD_SCREEN_FILE_LENGTH+1] && strcmp(fn, line) < 0);
return (!isfile && line[SD_SCREEN_FILE_LENGTH+1]) || (isfile==(bool)line[SD_SCREEN_FILE_LENGTH+1] && strcasecmp(fn, line) < 0);
}
void onSdManagerMenu(const char *result)
@@ -713,7 +713,7 @@ void menuGeneralSdManager(uint8_t event)
#endif
{
if (m_posVert > 0) {
uint8_t index = m_posVert-1-s_pgOfs;
vertpos_t index = m_posVert-1-s_pgOfs;
if (!reusableBuffer.sdmanager.lines[index][SD_SCREEN_FILE_LENGTH+1]) {
f_chdir(reusableBuffer.sdmanager.lines[index]);
s_pgOfs = 0;
@@ -741,7 +741,7 @@ void menuGeneralSdManager(uint8_t event)
/* TODO if (!strcmp(ext, MODELS_EXT)) {
s_menu[s_menu_count++] = STR_LOAD_FILE;
}
else */ if (!strcmp(ext, SOUNDS_EXT)) {
else */ if (!strcasecmp(ext, SOUNDS_EXT)) {
MENU_ADD_ITEM(STR_PLAY_FILE);
}
#endif
@@ -845,6 +845,24 @@ void menuGeneralSdManager(uint8_t event)
if (!reusableBuffer.sdmanager.lines[i][SD_SCREEN_FILE_LENGTH+1]) { lcd_putcAtt(lcdLastPos, y, ']', attr); }
}
}
#if defined(PCBTARANIS)
static vertpos_t sdBitmapIdx = 0xFFFF;
static uint8_t sdBitmap[MODEL_BITMAP_SIZE];
vertpos_t index = m_posVert-1-s_pgOfs;
if (m_posVert > 0) {
char * ext = reusableBuffer.sdmanager.lines[index];
ext += strlen(ext) - 4;
if (!strcasecmp(ext, BITMAPS_EXT)) {
if (sdBitmapIdx != m_posVert) {
sdBitmapIdx = m_posVert;
if (bmpLoad(sdBitmap, reusableBuffer.sdmanager.lines[index], MODEL_BITMAP_WIDTH, MODEL_BITMAP_HEIGHT))
memcpy(sdBitmap, logo_taranis, MODEL_BITMAP_SIZE);
}
lcd_bmp(22*FW+2, 2*FH+FH/2, sdBitmap);
}
}
#endif
}
#endif
+6 -6
View File
@@ -203,19 +203,19 @@ bool listSdFiles(const char *path, const char *extension, const uint8_t maxlen,
#endif
uint8_t len = strlen(fn);
if (len < 5 || len > maxlen+4 || strcmp(fn+len-4, extension) || (fno.fattrib & AM_DIR)) continue;
if (len < 5 || len > maxlen+4 || strcasecmp(fn+len-4, extension) || (fno.fattrib & AM_DIR)) continue;
s_menu_count++;
fn[len-4] = '\0';
if (s_menu_offset == 0) {
if (selection && strncmp(fn, selection, maxlen) < 0) {
if (selection && strncasecmp(fn, selection, maxlen) < 0) {
s_last_menu_offset++;
}
else {
for (uint8_t i=0; i<MENU_MAX_LINES; i++) {
char *line = reusableBuffer.modelsel.menu_bss[i];
if (line[0] == '\0' || strcmp(fn, line) < 0) {
if (line[0] == '\0' || strcasecmp(fn, line) < 0) {
if (i < MENU_MAX_LINES-1) memmove(reusableBuffer.modelsel.menu_bss[i+1], line, sizeof(reusableBuffer.modelsel.menu_bss[i]) * (MENU_MAX_LINES-1-i));
memset(line, 0, MENU_LINE_LENGTH);
strcpy(line, fn);
@@ -229,7 +229,7 @@ bool listSdFiles(const char *path, const char *extension, const uint8_t maxlen,
else if (s_last_menu_offset == 0xffff) {
for (int i=MENU_MAX_LINES-1; i>=0; i--) {
char *line = reusableBuffer.modelsel.menu_bss[i];
if (line[0] == '\0' || strcmp(fn, line) > 0) {
if (line[0] == '\0' || strcasecmp(fn, line) > 0) {
if (i > 0) memmove(reusableBuffer.modelsel.menu_bss[0], reusableBuffer.modelsel.menu_bss[1], sizeof(reusableBuffer.modelsel.menu_bss[i]) * i);
memset(line, 0, MENU_LINE_LENGTH);
strcpy(line, fn);
@@ -240,13 +240,13 @@ bool listSdFiles(const char *path, const char *extension, const uint8_t maxlen,
s_menu[i] = reusableBuffer.modelsel.menu_bss[i];
}
else if (s_menu_offset > s_last_menu_offset) {
if (strcmp(fn, reusableBuffer.modelsel.menu_bss[MENU_MAX_LINES-2]) > 0 && strcmp(fn, reusableBuffer.modelsel.menu_bss[MENU_MAX_LINES-1]) < 0) {
if (strcasecmp(fn, reusableBuffer.modelsel.menu_bss[MENU_MAX_LINES-2]) > 0 && strcasecmp(fn, reusableBuffer.modelsel.menu_bss[MENU_MAX_LINES-1]) < 0) {
memset(reusableBuffer.modelsel.menu_bss[MENU_MAX_LINES-1], 0, MENU_LINE_LENGTH);
strcpy(reusableBuffer.modelsel.menu_bss[MENU_MAX_LINES-1], fn);
}
}
else {
if (strcmp(fn, reusableBuffer.modelsel.menu_bss[1]) < 0 && strcmp(fn, reusableBuffer.modelsel.menu_bss[0]) > 0) {
if (strcasecmp(fn, reusableBuffer.modelsel.menu_bss[1]) < 0 && strcasecmp(fn, reusableBuffer.modelsel.menu_bss[0]) > 0) {
memset(reusableBuffer.modelsel.menu_bss[0], 0, MENU_LINE_LENGTH);
strcpy(reusableBuffer.modelsel.menu_bss[0], fn);
}
+47 -47
View File
@@ -37,48 +37,48 @@
#ifndef board_gruvin9x_h
#define board_gruvin9x_h
#define GPIO_BUTTON_MENU pinl
#define GPIO_BUTTON_EXIT pinl
#define GPIO_BUTTON_RIGHT pinl
#define GPIO_BUTTON_LEFT pinl
#define GPIO_BUTTON_UP pinl
#define GPIO_BUTTON_DOWN pinl
#define PIN_BUTTON_MENU (1<<INP_L_KEY_MEN)
#define PIN_BUTTON_EXIT (1<<INP_L_KEY_EXT)
#define PIN_BUTTON_UP (1<<INP_L_KEY_UP)
#define PIN_BUTTON_DOWN (1<<INP_L_KEY_DWN)
#define PIN_BUTTON_RIGHT (1<<INP_L_KEY_RGT)
#define PIN_BUTTON_LEFT (1<<INP_L_KEY_LFT)
#define GPIO_BUTTON_MENU pinl
#define GPIO_BUTTON_EXIT pinl
#define GPIO_BUTTON_RIGHT pinl
#define GPIO_BUTTON_LEFT pinl
#define GPIO_BUTTON_UP pinl
#define GPIO_BUTTON_DOWN pinl
#define PIN_BUTTON_MENU (1<<INP_L_KEY_MEN)
#define PIN_BUTTON_EXIT (1<<INP_L_KEY_EXT)
#define PIN_BUTTON_UP (1<<INP_L_KEY_UP)
#define PIN_BUTTON_DOWN (1<<INP_L_KEY_DWN)
#define PIN_BUTTON_RIGHT (1<<INP_L_KEY_RGT)
#define PIN_BUTTON_LEFT (1<<INP_L_KEY_LFT)
#define GPIO_TRIM_LH_L pinj
#define GPIO_TRIM_LV_DN pinj
#define GPIO_TRIM_RV_UP pinj
#define GPIO_TRIM_RH_L pinj
#define GPIO_TRIM_LH_R pinj
#define GPIO_TRIM_LV_UP pinj
#define GPIO_TRIM_RV_DN pinj
#define GPIO_TRIM_RH_R pinj
#define PIN_TRIM_LH_L (1<<INP_J_TRM_LH_DWN)
#define PIN_TRIM_LV_DN (1<<INP_J_TRM_LV_DWN)
#define PIN_TRIM_RV_UP (1<<INP_J_TRM_RV_UP)
#define PIN_TRIM_RH_L (1<<INP_J_TRM_RH_DWN)
#define PIN_TRIM_LH_R (1<<INP_J_TRM_LH_UP)
#define PIN_TRIM_LV_UP (1<<INP_J_TRM_LV_UP)
#define PIN_TRIM_RV_DN (1<<INP_J_TRM_RV_DWN)
#define PIN_TRIM_RH_R (1<<INP_J_TRM_RH_UP)
#define GPIO_TRIM_LH_L pinj
#define GPIO_TRIM_LV_DN pinj
#define GPIO_TRIM_RV_UP pinj
#define GPIO_TRIM_RH_L pinj
#define GPIO_TRIM_LH_R pinj
#define GPIO_TRIM_LV_UP pinj
#define GPIO_TRIM_RV_DN pinj
#define GPIO_TRIM_RH_R pinj
#define PIN_TRIM_LH_L (1<<INP_J_TRM_LH_DWN)
#define PIN_TRIM_LV_DN (1<<INP_J_TRM_LV_DWN)
#define PIN_TRIM_RV_UP (1<<INP_J_TRM_RV_UP)
#define PIN_TRIM_RH_L (1<<INP_J_TRM_RH_DWN)
#define PIN_TRIM_LH_R (1<<INP_J_TRM_LH_UP)
#define PIN_TRIM_LV_UP (1<<INP_J_TRM_LV_UP)
#define PIN_TRIM_RV_DN (1<<INP_J_TRM_RV_DWN)
#define PIN_TRIM_RH_R (1<<INP_J_TRM_RH_UP)
#define TIMER_16KHZ_VECT TIMER2_OVF_vect
#define COUNTER_16KHZ TCNT2
#define TIMER_10MS_VECT TIMER2_COMPA_vect
#define TIMER_10MS_COMPVAL OCR2A
#define PAUSE_10MS_INTERRUPT() TIMSK2 &= ~(1<<OCIE2A)
#define RESUME_10MS_INTERRUPT() TIMSK2 |= (1<<OCIE2A)
#define PAUSE_PPMIN_INTERRUPT() TIMSK3 &= ~(1<<ICIE3)
#define TIMER_16KHZ_VECT TIMER2_OVF_vect
#define COUNTER_16KHZ TCNT2
#define TIMER_10MS_VECT TIMER2_COMPA_vect
#define TIMER_10MS_COMPVAL OCR2A
#define PAUSE_10MS_INTERRUPT() TIMSK2 &= ~(1<<OCIE2A)
#define RESUME_10MS_INTERRUPT() TIMSK2 |= (1<<OCIE2A)
#define PAUSE_PPMIN_INTERRUPT() TIMSK3 &= ~(1<<ICIE3)
#define RESUME_PPMIN_INTERRUPT() TIMSK3 |= (1<<ICIE3)
#define SLAVE_MODE() (PING & (1<<INP_G_RF_POW))
#define JACK_PPM_OUT() PORTG |= (1<<OUT_G_SIM_CTL)
#define JACK_PPM_IN() PORTG &= ~(1<<OUT_G_SIM_CTL)
#define SLAVE_MODE() (PING & (1<<INP_G_RF_POW))
#define JACK_PPM_OUT() PORTG |= (1<<OUT_G_SIM_CTL)
#define JACK_PPM_IN() PORTG &= ~(1<<OUT_G_SIM_CTL)
// SD driver
#if !defined(SIMU)
@@ -86,17 +86,17 @@ bool sdMounted();
void sdMountPoll();
void sdPoll10ms();
#define SD_IS_HC() (0)
#define SD_GET_BLOCKNR() (0)
#define SD_GET_SIZE_MB() (0)
#define SD_GET_SPEED() (0)
#define SD_IS_HC() (0)
#define SD_GET_BLOCKNR() (0)
#define SD_GET_SIZE_MB() (0)
#define SD_GET_SPEED() (0)
#endif
#define SPEAKER_ON TCCR0A |= (1 << COM0A0)
#define SPEAKER_OFF TCCR0A &= ~(1 << COM0A0)
#define __BACKLIGHT_ON PORTC |= (1 << OUT_C_LIGHT)
#define __BACKLIGHT_OFF PORTC &= ~(1 << OUT_C_LIGHT)
#define IS_BACKLIGHT_ON() (PORTC & (1<<OUT_C_LIGHT))
#define SPEAKER_ON TCCR0A |= (1 << COM0A0)
#define SPEAKER_OFF TCCR0A &= ~(1 << COM0A0)
#define __BACKLIGHT_ON PORTC |= (1 << OUT_C_LIGHT)
#define __BACKLIGHT_OFF PORTC &= ~(1 << OUT_C_LIGHT)
#define IS_BACKLIGHT_ON() (PORTC & (1<<OUT_C_LIGHT))
# define INP_L_SPARE6 7