diff options
| author | Björn Stenberg <bjorn@haxx.se> | 2011-03-14 12:25:48 +0000 |
|---|---|---|
| committer | Björn Stenberg <bjorn@haxx.se> | 2011-03-14 12:25:48 +0000 |
| commit | e50cc0e3d760d4fdb99f971070a6943ee15a9a98 (patch) | |
| tree | 9d22cde7d39a2aefbc75cd970916fbc161f53cac /firmware/target/hosted/android | |
| parent | 606bed035ed898df1d1bf4a8c7be904f76b118ff (diff) | |
| download | rockbox-e50cc0e3d760d4fdb99f971070a6943ee15a9a98.zip rockbox-e50cc0e3d760d4fdb99f971070a6943ee15a9a98.tar.gz rockbox-e50cc0e3d760d4fdb99f971070a6943ee15a9a98.tar.bz2 rockbox-e50cc0e3d760d4fdb99f971070a6943ee15a9a98.tar.xz | |
Listen to and follow external Android volume changes. (Based on FS#11914 by Maurus Cuelenaere)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29586 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/hosted/android')
| -rw-r--r-- | firmware/target/hosted/android/pcm-android.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/firmware/target/hosted/android/pcm-android.c b/firmware/target/hosted/android/pcm-android.c index 4c34e3c..24881bd 100644 --- a/firmware/target/hosted/android/pcm-android.c +++ b/firmware/target/hosted/android/pcm-android.c @@ -179,3 +179,28 @@ void pcm_set_mixer_volume(int volume) (*env_ptr)->CallVoidMethod(env_ptr, RockboxPCM_instance, set_volume_method, volume); } + +/* Due to limitations of default_event_handler(), parameters gets swallowed when + * being posted with queue_broadcast(), so workaround this by caching the last + * value. + */ +static int lastPostedVolume = -1; +int hosted_get_volume(void) +{ + return lastPostedVolume; +} + +JNIEXPORT void JNICALL +Java_org_rockbox_RockboxPCM_postVolumeChangedEvent(JNIEnv *env, + jobject this, + jint volume) +{ + (void) env; + (void) this; + + if (volume != lastPostedVolume) + { + lastPostedVolume = volume; + queue_broadcast(SYS_VOLUME_CHANGED, 0); + } +} |