Jump to content


Photo

Używanie funkcji TIMER-a w Elfach - opis - czyli po ludzku mówiąc zapętlenie kodu


  • Please log in to reply
No replies to this topic

#1 OFFLINE   mc_kibel

mc_kibel

    Proud Member of Sony.yt Community

  • User
  • 26 posts
    • Time Online: 1h 1m

Posted 29 October 2011 - 02:10

Witam!

Przedstawię być może banalną sprawę, ale na pewno przydatną - a ten opis się tutaj jeszcze nie pojawił.

Służy to do zapętlenia kodu. Powiedzmy, że chcemy sprawdzić, czy w danym momencie jest odtwarzana muzyka.
Jeśli dodamy funkcję do samego main, to kod zostanie wykonany tylko jednokrotnie - w momencie uruchomienia elfa.

Tak więc zaczniemy od dodania kodu do int main ();
timer=Timer_Set(500,onTimer,0);


W tym przypadku ta 500 oznacza odstęp w milisekundach między wykonywaniem kodu zawartym w funkcji timera.
Dodajemy więc ją chociażby przed int main.
void onTimer (u16 unk , void * data)
{
  {
		// Kod do wykonania, dla przykładu sprawdzanie, czy odtwarzacz jest włączony
		BOOK * Audio = FindBook(isAudioPlayerBook());
		if (Audio)
		{
		   DISPLAY_SetBrightness(0, 50); // Gdy muzyka zostanie włączona ustawia poziom podświetlenia na 50%
		}
		Timer_ReSet(&timer,500,onTimer,0); //Ta funkcja zawsze ma się pojawiać!
  }
}

W przypadku Timer_ReSet(&timer,500,onTimer,0); liczba (tutaj 500) powinna być taka sama jak w int main.

No i jeszcze na początku pod includami dopisujemy:
u16 timer;


A do OnCloseBook dorzucamy:
Timer_Kill(&timer);



I mamy w bardzo prosty sposób zapętlony kod. ;)
Pozdrawiam.

Edited by not found, 13 April 2012 - 19:12.
Poprawiłem literówki i emotikonkę, bo nie wyświetlało :)

  • 0
Sony Ericsson X8 || GingerDX v017 Android 2.3.7 || Sense Theme


1 user(s) are reading this topic