merge in jb-release history after reset to master
diff --git a/include/system/audio.h b/include/system/audio.h
index 4cadb67..382fc36 100644
--- a/include/system/audio.h
+++ b/include/system/audio.h
@@ -341,6 +341,28 @@
AUDIO_DEVICE_IN_ALL_SCO = AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET,
} audio_devices_t;
+/* the audio output flags serve two purposes:
+ * - when an AudioTrack is created they indicate a "wish" to be connected to an
+ * output stream with attributes corresponding to the specified flags
+ * - when present in an output profile descriptor listed for a particular audio
+ * hardware module, they indicate that an output stream can be opened that
+ * supports the attributes indicated by the flags.
+ * the audio policy manager will try to match the flags in the request
+ * (when getOuput() is called) to an available output stream.
+ */
+typedef enum {
+ AUDIO_OUTPUT_FLAG_NONE = 0x0, // no attributes
+ AUDIO_OUTPUT_FLAG_DIRECT = 0x1, // this output directly connects a track
+ // to one output stream: no software mixer
+ AUDIO_OUTPUT_FLAG_PRIMARY = 0x2, // this output is the primary output of
+ // the device. It is unique and must be
+ // present. It is opened by default and
+ // receives routing, audio mode and volume
+ // controls related to voice calls.
+ AUDIO_OUTPUT_FLAG_FAST = 0x4, // output supports "fast tracks",
+ // defined elsewhere
+} audio_output_flags_t;
+
static inline bool audio_is_output_device(audio_devices_t device)
{
if ((popcount(device) == 1) && ((device & ~AUDIO_DEVICE_OUT_ALL) == 0))
diff --git a/include/system/audio_policy.h b/include/system/audio_policy.h
index 641b177..701c86a 100644
--- a/include/system/audio_policy.h
+++ b/include/system/audio_policy.h
@@ -30,24 +30,13 @@
* frameworks/base/include/media/AudioSystem.h
*/
-/* the audio output flags serve two purposes:
- * - when an AudioTrack is created they indicate a "wish" to be connected to an output stream with
- * attributes corresponding to the specified flags
- * - when present in an output profile descriptor listed for a particular audio hardware module,
- * they indicate that an output stream can be opened that supports the attributes indicated by
- * the flags.
- * the audio policy manager will try to match the flags in the request (when getOuput() is called)
- * to an available output stream.
- */
+/* FIXME: temporary definitions to be removed once all projects have been changed
+ * to use audio_output_flags_t */
typedef enum {
- AUDIO_POLICY_OUTPUT_FLAG_NONE = 0x0, // no attributes
- AUDIO_POLICY_OUTPUT_FLAG_DIRECT = 0x1, // this output directly connects a track to one output
- // stream (no software mixer)
- AUDIO_POLICY_OUTPUT_FLAG_PRIMARY = 0x2, // this output is the primary output of the device.
- // it is unique and must be present. it is opened by
- // default and receives routing, audio mode and
- // volume controls related to voice calls.
- AUDIO_POLICY_OUTPUT_FLAG_FAST = 0x4, // output supports "fast tracks", defined elsewhere
+ AUDIO_POLICY_OUTPUT_FLAG_NONE = AUDIO_OUTPUT_FLAG_NONE,
+ AUDIO_POLICY_OUTPUT_FLAG_DIRECT = AUDIO_OUTPUT_FLAG_DIRECT,
+ AUDIO_POLICY_OUTPUT_FLAG_PRIMARY = AUDIO_OUTPUT_FLAG_PRIMARY,
+ AUDIO_POLICY_OUTPUT_FLAG_FAST = AUDIO_OUTPUT_FLAG_FAST,
} audio_policy_output_flags_t;
/* device categories used for audio_policy->set_force_use() */
diff --git a/rootdir/Android.mk b/rootdir/Android.mk
index 1a9e06f..e62c3ea 100644
--- a/rootdir/Android.mk
+++ b/rootdir/Android.mk
@@ -50,6 +50,8 @@
ALL_PREBUILT += $(file)
$(INSTALLED_RAMDISK_TARGET): $(file)
+# init.usb.rc is handled by build/target/product/core.rc
+
# Just like /system/etc/init.goldfish.sh, the /init.godlfish.rc is here
# to allow -user builds to properly run the dex pre-optimization pass in
# the emulator.
diff --git a/rootdir/init.rc b/rootdir/init.rc
index 90739c0..8f93b49 100644
--- a/rootdir/init.rc
+++ b/rootdir/init.rc
@@ -5,6 +5,7 @@
#
import /init.${ro.hardware}.rc
+import /init.usb.rc
on early-init
# Set init and its forked children's oom_adj.
@@ -201,11 +202,6 @@
# Set indication (checked by vold) that we have finished this action
#setprop vold.post_fs_data_done 1
- chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file
- chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file
- chown system system /sys/class/android_usb/android0/f_rndis/ethaddr
- chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr
-
on boot
# basic network init
ifup lo
@@ -325,49 +321,6 @@
class_reset late_start
class_reset main
-# Used to disable USB when switching states
-on property:sys.usb.config=none
- stop adbd
- write /sys/class/android_usb/android0/enable 0
- write /sys/class/android_usb/android0/bDeviceClass 0
- setprop sys.usb.state ${sys.usb.config}
-
-# adb only USB configuration
-# This should only be used during device bringup
-# and as a fallback if the USB manager fails to set a standard configuration
-on property:sys.usb.config=adb
- write /sys/class/android_usb/android0/enable 0
- write /sys/class/android_usb/android0/idVendor 18d1
- write /sys/class/android_usb/android0/idProduct D002
- write /sys/class/android_usb/android0/functions ${sys.usb.config}
- write /sys/class/android_usb/android0/enable 1
- start adbd
- setprop sys.usb.state ${sys.usb.config}
-
-# USB accessory configuration
-on property:sys.usb.config=accessory
- write /sys/class/android_usb/android0/enable 0
- write /sys/class/android_usb/android0/idVendor 18d1
- write /sys/class/android_usb/android0/idProduct 2d00
- write /sys/class/android_usb/android0/functions ${sys.usb.config}
- write /sys/class/android_usb/android0/enable 1
- setprop sys.usb.state ${sys.usb.config}
-
-# USB accessory configuration, with adb
-on property:sys.usb.config=accessory,adb
- write /sys/class/android_usb/android0/enable 0
- write /sys/class/android_usb/android0/idVendor 18d1
- write /sys/class/android_usb/android0/idProduct 2d01
- write /sys/class/android_usb/android0/functions ${sys.usb.config}
- write /sys/class/android_usb/android0/enable 1
- start adbd
- setprop sys.usb.state ${sys.usb.config}
-
-# Used to set USB configuration at boot and to switch the configuration
-# when changing the default configuration
-on property:persist.sys.usb.config=*
- setprop sys.usb.config ${persist.sys.usb.config}
-
## Daemon processes to be run by init.
##
service ueventd /sbin/ueventd
diff --git a/rootdir/init.usb.rc b/rootdir/init.usb.rc
new file mode 100644
index 0000000..15467cc
--- /dev/null
+++ b/rootdir/init.usb.rc
@@ -0,0 +1,91 @@
+# Copyright (C) 2012 The Android Open Source Project
+#
+# USB configuration common for all android devices
+#
+
+on post-fs-data
+ chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file
+ chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file
+ chown system system /sys/class/android_usb/android0/f_rndis/ethaddr
+ chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr
+
+# Used to disable USB when switching states
+on property:sys.usb.config=none
+ stop adbd
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/bDeviceClass 0
+ setprop sys.usb.state ${sys.usb.config}
+
+# adb only USB configuration
+# This should only be used during device bringup
+# and as a fallback if the USB manager fails to set a standard configuration
+on property:sys.usb.config=adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct D002
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
+
+# USB accessory configuration
+on property:sys.usb.config=accessory
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct 2d00
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
+ write /sys/class/android_usb/android0/enable 1
+ setprop sys.usb.state ${sys.usb.config}
+
+# USB accessory configuration, with adb
+on property:sys.usb.config=accessory,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct 2d01
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
+
+# audio accessory configuration
+on property:sys.usb.config=audio_source
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct 2d02
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
+ write /sys/class/android_usb/android0/enable 1
+ setprop sys.usb.state ${sys.usb.config}
+
+# audio accessory configuration, with adb
+on property:sys.usb.config=audio_source,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct 2d03
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
+
+# USB and audio accessory configuration
+on property:sys.usb.config=accessory,audio_source
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct 2d04
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
+ write /sys/class/android_usb/android0/enable 1
+ setprop sys.usb.state ${sys.usb.config}
+
+# USB and audio accessory configuration, with adb
+on property:sys.usb.config=accessory,audio_source,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct 2d05
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
+
+# Used to set USB configuration at boot and to switch the configuration
+# when changing the default configuration
+on property:persist.sys.usb.config=*
+ setprop sys.usb.config ${persist.sys.usb.config}