diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2018-06-21 12:36:02 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2018-06-21 12:36:02 +0000 |
| commit | 4ba6b96471b23008a2d4b6e0dff8fd9f194fb444 (patch) | |
| tree | 0b37815f18b176521b66c26bf3809190b10b43de /src/drivers/Android/Fl_Android_Screen_Driver.cxx | |
| parent | a119928455eaa84e87784e34b7b88935fecea4a2 (diff) | |
Android: Teaching FLTK to beep. test/button works.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12955 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers/Android/Fl_Android_Screen_Driver.cxx')
| -rw-r--r-- | src/drivers/Android/Fl_Android_Screen_Driver.cxx | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/drivers/Android/Fl_Android_Screen_Driver.cxx b/src/drivers/Android/Fl_Android_Screen_Driver.cxx index e295f5a1e..060cda304 100644 --- a/src/drivers/Android/Fl_Android_Screen_Driver.cxx +++ b/src/drivers/Android/Fl_Android_Screen_Driver.cxx @@ -442,6 +442,47 @@ void Fl_Android_Screen_Driver::remove_timeout(Fl_Timeout_Handler cb, void *data) } +void Fl_Android_Screen_Driver::beep(int type) +{ + // TODO: map FLTK sounds to Android sounds at https://developer.android.com/reference/android/media/ToneGenerator + int androidSoundID = 93; // TONE_CDMA_ALERT_CALL_GUARD + switch (type) { + case FL_BEEP_DEFAULT: + case FL_BEEP_MESSAGE: + case FL_BEEP_ERROR: + case FL_BEEP_QUESTION: + case FL_BEEP_PASSWORD: + case FL_BEEP_NOTIFICATION: androidSoundID = 93; break; + } + Fl_Android_Java java; + if (java.is_attached()) { + + jclass class_tone_generator = java.env()->FindClass("android/media/ToneGenerator"); + + jmethodID toneGeneratorConstructor = java.env()->GetMethodID( + class_tone_generator, "<init>", + "(II)V"); + + jobject toneGeneratorObj = java.env()->NewObject( + class_tone_generator, toneGeneratorConstructor, + 4, // STREAM_ALARM + 100); // volume + + jmethodID method_start_tone = java.env()->GetMethodID( + class_tone_generator, + "startTone", + "(I)Z"); + + java.env()->CallBooleanMethod( + toneGeneratorObj, method_start_tone, + androidSoundID); + + java.env()->DeleteLocalRef(class_tone_generator); + java.env()->DeleteLocalRef(toneGeneratorObj); + } + +} + // // End of "$Id$". // |
