void clickOk() { switch (isSettings) { case 0: { break; } case 1: { setCurrentDisplay(DISPLAY_SettingsMenu, 1000); break; } case 2: { if(getIsSongPlaying() == 0) { setCurrentDisplay(DISPLAY_Play, 1000); printf("to play"); } else { setCurrentDisplay(DISPLAY_Song, 1000); printf("to song"); } break; } } }
void parseTwitch(char* content) { if (!strcmp("null", content)) { printf("Nobody is streaming"); return; } int r; int i; jsmn_parser p; jsmntok_t token[20]; /* We expect no more than 20 tokens */ jsmn_init(&p); r = jsmn_parse(&p, content, strlen(content), token, sizeof(token) / sizeof(token[0])); if (r <= 0) { printf("Failed to parse JSON: %d \n", r); return; } else { printf("Aantal tokens found: %d \n", r); } char name[20]; char title[20]; char game[20]; char date[15]; memset(name, 0, 20); memset(title, 0, 20); memset(game, 0, 20); memset(date, 0, 15); for (i = 1; i < r; i++) { if (jsoneq(content, &token[i], "Name") == 0) { getStringToken(content, &token[i + 1], name, 20); i++; } else if (jsoneq(content, &token[i], "Title") == 0) { getStringToken(content, &token[i + 1], title, 20); i++; } else if (jsoneq(content, &token[i], "Game") == 0) { getStringToken(content, &token[i + 1], game, 20); i++; } else if (jsoneq(content, &token[i], "Date") == 0) { getStringToken(content, &token[i + 1], date, 15); i++; } } printf("%s", date); if(strncmp(date, streamid, 15) != 0) { strcpy(data.title, title); strcpy(data.game, game); strcpy(data.name, name); printf("%s - %s - %s", name, title, game); strcpy(streamid, date); setCurrentDisplay(DISPLAY_Twitch, 100); } }
THREAD(AlarmCheck, arg) { NutThreadSetPriority(100); for(;;){ if(checkAlarms() == 1){ setCurrentDisplay(DISPLAY_Alarm, 1000); } NutSleep(1000); } }
int main(void) { struct _tm timeCheck; WatchDogDisable(); NutDelay(100); SysInitIO(); SPIinit(); LedInit(); LcdLowLevelInit(); Uart0DriverInit(); Uart0DriverStart(); LogInit(); X12Init(); VsPlayerInit(); NtpInit(); NutThreadCreate("BackgroundThread", StartupInit, NULL, 1024); NutThreadCreate("BackgroundThread", AlarmSync, NULL, 2500); NutThreadCreate("BackgroundThread", AlarmCheck, NULL, 256); KbInit(); SysControlMainBeat(ON); // enable 4.4 msecs heartbeat interrupt /* * Increase our priority so we can feed the watchdog. */ NutThreadSetPriority(1); /* Enable global interrupts */ sei(); LcdBackLight(LCD_BACKLIGHT_ON); setCurrentDisplay(DISPLAY_DateTime, 5); X12RtcGetClock(&timeCheck); int hours; int mins; int secs; if(!NutNvMemLoad(100, &hours, sizeof(hours))) { printf("uren: %d", hours); } if(!NutNvMemLoad(105, &mins, sizeof(mins))) { printf(" minuten: %d", mins); } if(!NutNvMemLoad(110, &secs, sizeof(secs))) { printf(" seconden %d", secs); } printf("Welcome to Saltyradio.\nI'm using mac address: %s\n\n\n", getMacAdress()); for (;;) { //Key detecten if(KbGetKey() == KEY_01){ setCurrentDisplay(DISPLAY_DateTime, 5); } else if(KbGetKey() == KEY_OK) { if(getCurrentDisplay() == DISPLAY_MainMenu) { clickOk(); } else if(getCurrentDisplay() == DISPLAY_SettingsMenu) { clickOkSettings(); } else if(getCurrentDisplay() == DISPLAY_Play || getCurrentDisplay() == DISPLAY_Song) { clickOkPlay(); } else { setCurrentDisplay(DISPLAY_MainMenu, 10000); } } else if(KbGetKey() == KEY_LEFT) { switchLeft(); } else if(KbGetKey() == KEY_RIGHT) { switchItem(); } else if(KbGetKey() == KEY_DOWN){ setCurrentDisplay(DISPLAY_Volume, 5); volumeDown(); }else if(KbGetKey() == KEY_UP) { setCurrentDisplay(DISPLAY_Volume, 5); volumeUp(); } refreshScreen(); WatchDogRestart(); NutSleep(100); } return(0); }