diff options
-rw-r--r-- | AriesParts/res/values-it/strings.xml | 6 | ||||
-rw-r--r-- | libaudio/Android.mk | 4 | ||||
-rw-r--r-- | libaudio/AudioHardware.cpp | 93 | ||||
-rw-r--r-- | libaudio/AudioHardware.h | 9 | ||||
-rwxr-xr-x | updater.sh | 6 |
5 files changed, 115 insertions, 3 deletions
diff --git a/AriesParts/res/values-it/strings.xml b/AriesParts/res/values-it/strings.xml index 548b306..4dadc61 100644 --- a/AriesParts/res/values-it/strings.xml +++ b/AriesParts/res/values-it/strings.xml @@ -2,7 +2,7 @@ <resources> <string name="app_name">Impostazioni Galaxy S</string> <string name="category_screen_title">Display</string> - <string name="color_tuning_title_head">Calibrazione Colori</string> + <string name="color_tuning_title_head">Calibrazione colori</string> <string name="color_tuning_summary_head">Calibra colori display</string> <string name="color_red_title">Rosso</string> <string name="color_green_title">Verde</string> @@ -43,4 +43,8 @@ <string name="deskdock_audio_title_head">Dock da tavolo</string> <string name="deskdock_audio_summary_on">Audio dock da tavolo attivato</string> <string name="deskdock_audio_summary_off">Audio dock da tavolo disattivato</string> + <string name="generic_warning_title">Attenzione</string> + <string name="imei_not_sane_title">Attenzione!</string> + <string name="imei_not_sane_message">È stato rilevato un problema con il dispositivo. Il numero IMEI del dispositivo non è valido. Un numero IMEI non valido potrebbe causare problemi di rete tra cui l\'impossibilità di chiamare numeri di emergenza.</string> + <string name="imei_not_sane_ok">OO</string> </resources>
\ No newline at end of file diff --git a/libaudio/Android.mk b/libaudio/Android.mk index 132ba9a..063374b 100644 --- a/libaudio/Android.mk +++ b/libaudio/Android.mk @@ -24,6 +24,10 @@ LOCAL_C_INCLUDES += \ $(call include-path-for, audio-effects) \ $(call include-path-for, audio-utils) +ifeq ($(BOARD_USES_FROYO_RILCLIENT),true) + LOCAL_CFLAGS += -DUSES_FROYO_RILCLIENT +endif + include $(BUILD_SHARED_LIBRARY) include $(CLEAR_VARS) diff --git a/libaudio/AudioHardware.cpp b/libaudio/AudioHardware.cpp index b14296e..8c8d46c 100644 --- a/libaudio/AudioHardware.cpp +++ b/libaudio/AudioHardware.cpp @@ -44,6 +44,27 @@ extern "C" { #define Si4709_IOC_VOLUME_SET _IOW(Si4709_IOC_MAGIC, 15, __u8) #endif +#ifdef USES_FROYO_RILCLIENT +#define OEM_FUNC_SOUND 0x08 + +#define OEM_SND_SET_VOLUME_CTRL 0x03 +#define OEM_SND_SET_AUDIO_PATH 0x05 +#define OEM_SND_SET_CLOCK_CTRL 0x0A + +#define OEM_SND_TYPE_VOICE 0x01 +#define OEM_SND_TYPE_SPEAKER 0x02 +#define OEM_SND_TYPE_HEADSET 0x03 +#define OEM_SND_TYPE_BTVOICE 0x04 + +#define OEM_SND_AUDIO_PATH_HANDSET 0x01 +#define OEM_SND_AUDIO_PATH_HEADSET 0x02 +#define OEM_SND_AUDIO_PATH_BLUETOOTH 0x04 +#define OEM_SND_AUDIO_PATH_STEREO_BLUETOOTH 0x05 +#define OEM_SND_AUDIO_PATH_SPEAKER 0x06 +#define OEM_SND_AUDIO_PATH_HEADPHONE 0x07 +#define OEM_SND_AUDIO_PATH_BT_NSEC_OFF 0x08 +#endif + namespace android_audio_legacy { const uint32_t AudioHardware::inputConfigTable[][AudioHardware::INPUT_CONFIG_CNT] = { @@ -170,16 +191,22 @@ void AudioHardware::loadRILD(void) dlsym(mSecRilLibHandle, "isConnected_RILD"); connectRILD = (int (*)(HRilClient)) dlsym(mSecRilLibHandle, "Connect_RILD"); +#ifdef USES_FROYO_RILCLIENT + invokeOemRequestHookRaw = (int (*)(HRilClient client, char *data, size_t len)) + dlsym(mSecRilLibHandle, "InvokeOemRequestHookRaw"); + bool rilFunctionsLoaded = invokeOemRequestHookRaw; +#else setCallVolume = (int (*)(HRilClient, SoundType, int)) dlsym(mSecRilLibHandle, "SetCallVolume"); setCallAudioPath = (int (*)(HRilClient, AudioPath)) dlsym(mSecRilLibHandle, "SetCallAudioPath"); setCallClockSync = (int (*)(HRilClient, SoundClockCondition)) dlsym(mSecRilLibHandle, "SetCallClockSync"); - + bool rilFunctionsLoaded = setCallVolume && setCallAudioPath && setCallClockSync; +#endif if (!openClientRILD || !disconnectRILD || !closeClientRILD || !isConnectedRILD || !connectRILD || - !setCallVolume || !setCallAudioPath || !setCallClockSync) { + !rilFunctionsLoaded) { ALOGE("Can't load all functions from libsecril-client.so"); dlclose(mSecRilLibHandle); @@ -217,6 +244,68 @@ status_t AudioHardware::connectRILDIfRequired(void) return OK; } +#ifdef USES_FROYO_RILCLIENT +int AudioHardware::convertSoundType(SoundType type) { + switch (type) { + case SOUND_TYPE_VOICE: return OEM_SND_TYPE_VOICE; + case SOUND_TYPE_SPEAKER: return OEM_SND_TYPE_SPEAKER; + case SOUND_TYPE_HEADSET: return OEM_SND_TYPE_HEADSET; + case SOUND_TYPE_BTVOICE: return OEM_SND_TYPE_BTVOICE; + default: + ALOGE("convertSoundType: unknown type! %d", type); + return OEM_SND_TYPE_VOICE; + } +} + +int AudioHardware::convertAudioPath(AudioPath path) { + switch (path) { + case SOUND_AUDIO_PATH_HANDSET: return OEM_SND_AUDIO_PATH_HANDSET; + case SOUND_AUDIO_PATH_SPEAKER: return OEM_SND_AUDIO_PATH_SPEAKER; + case SOUND_AUDIO_PATH_BLUETOOTH: return OEM_SND_AUDIO_PATH_BLUETOOTH; + case SOUND_AUDIO_PATH_BLUETOOTH_NO_NR: return OEM_SND_AUDIO_PATH_BT_NSEC_OFF; + case SOUND_AUDIO_PATH_HEADPHONE: return OEM_SND_AUDIO_PATH_HEADPHONE; + case SOUND_AUDIO_PATH_HEADSET: return OEM_SND_AUDIO_PATH_HEADSET; + default: + ALOGE("convertAudioPath: unknown path! %d", path); + return OEM_SND_AUDIO_PATH_HANDSET; + } +} + +int AudioHardware::setCallVolume(HRilClient client, SoundType type, int vol) { + char data[6] = {0,}; + data[0] = OEM_FUNC_SOUND; + data[1] = OEM_SND_SET_VOLUME_CTRL; + data[2] = 0x00; + data[3] = 0x06; + data[4] = convertSoundType(type); + data[5] = vol; + + return invokeOemRequestHookRaw(client, data, sizeof(data)); +} + +int AudioHardware::setCallAudioPath(HRilClient client, AudioPath path) { + char data[5] = {0,}; + data[0] = OEM_FUNC_SOUND; + data[1] = OEM_SND_SET_AUDIO_PATH; + data[2] = 0x00; + data[3] = 0x05; + data[4] = convertAudioPath(path); + + return invokeOemRequestHookRaw(client, data, sizeof(data)); +} + +int AudioHardware::setCallClockSync(HRilClient client, SoundClockCondition condition) { + char data[5] = {0,}; + data[0] = OEM_FUNC_SOUND; + data[1] = OEM_SND_SET_CLOCK_CTRL; + data[2] = 0x00; + data[3] = 0x05; + data[4] = condition; + + return invokeOemRequestHookRaw(client, data, sizeof(data)); +} +#endif + AudioStreamOut* AudioHardware::openOutputStream( uint32_t devices, int *format, uint32_t *channels, uint32_t *sampleRate, status_t *status) diff --git a/libaudio/AudioHardware.h b/libaudio/AudioHardware.h index 4d2e2eb..455da01 100644 --- a/libaudio/AudioHardware.h +++ b/libaudio/AudioHardware.h @@ -191,9 +191,18 @@ private: int (*closeClientRILD) (HRilClient); int (*isConnectedRILD) (HRilClient); int (*connectRILD) (HRilClient); +#ifdef USES_FROYO_RILCLIENT + int (*invokeOemRequestHookRaw) (HRilClient, char *, size_t); + int (convertSoundType) (SoundType); + int (convertAudioPath) (AudioPath); + int (setCallVolume) (HRilClient, SoundType, int); + int (setCallAudioPath) (HRilClient, AudioPath); + int (setCallClockSync) (HRilClient, SoundClockCondition); +#else int (*setCallVolume) (HRilClient, SoundType, int); int (*setCallAudioPath)(HRilClient, AudioPath); int (*setCallClockSync)(HRilClient, SoundClockCondition); +#endif void loadRILD(void); status_t connectRILDIfRequired(void); struct echo_reference_itfe *mEchoReference; @@ -39,6 +39,12 @@ else DATA_SIZE='442499072' fi +# check for old/non-cwm recovery. +if ! /tmp/busybox test -n "$UPDATE_PACKAGE" ; then + # scrape package location from /tmp/recovery.log + UPDATE_PACKAGE=`/tmp/busybox cat /tmp/recovery.log | /tmp/busybox grep 'Update location:' | /tmp/busybox tail -n 1 | /tmp/busybox cut -d ' ' -f 3-` +fi + # check if we're running on a bml, mtd (old) or mtd (current) device if /tmp/busybox test -e /dev/block/bml7 ; then # we're running on a bml device |