EFFECT_CMD_SET_AUDIO_SOURCE, // set the audio source (see audio.h, audio_source_t)
EFFECT_CMD_OFFLOAD, // set if effect thread is an offload one,
// send the ioHandle of the effect thread
+ EFFECT_CMD_DUMP, // dump effect current state, for debugging
EFFECT_CMD_FIRST_PROPRIETARY = 0x10000 // first proprietary command code
};
// reply format:
// size: sizeof(uint32_t)
// data: uint32_t
+//==================================================================================================
+// command: EFFECT_CMD_DUMP
+//--------------------------------------------------------------------------------------------------
+// description:
+// Output the current state description into the provided file descriptor for inclusion
+// into the audio service dump
+//--------------------------------------------------------------------------------------------------
+// command format:
+// size: sizeof(uint32_t)
+// data: uint32_t (which is in fact a file descriptor, int)
+//--------------------------------------------------------------------------------------------------
+// reply format:
+// size: 0
+// data: N/A
//--------------------------------------------------------------------------------------------------
// command: EFFECT_CMD_FIRST_PROPRIETARY
//--------------------------------------------------------------------------------------------------
#define NANOS_PER_MILLISECOND 1000000LL
#define NANOS_PER_SECOND 1000000000LL
+#define SECONDS_PER_MINUTE 60LL
+#define MINUTES_PER_HOUR 60LL
+
+#define MICROS_PER_MINUTE (MICROS_PER_SECOND * SECONDS_PER_MINUTE)
+#define MILLIS_PER_MINUTE (MILLIS_PER_SECOND * SECONDS_PER_MINUTE)
+#define NANOS_PER_MINUTE (NANOS_PER_SECOND * SECONDS_PER_MINUTE)
+
+#define MICROS_PER_HOUR (MICROS_PER_MINUTE * MINUTES_PER_HOUR)
+#define MILLIS_PER_HOUR (MILLIS_PER_MINUTE * MINUTES_PER_HOUR)
+#define NANOS_PER_HOUR (NANOS_PER_MINUTE * MINUTES_PER_HOUR)
+
/**
* \brief Converts time in ns to a time string, with format similar to logcat.
* \param ns input time in nanoseconds to convert.
% endif
% if entry.applied_visibility in ('public', 'java_public'):
@PublicKey
+ @NonNull
% endif
% if entry.synthetic:
@SyntheticKey
<td class="entry_details" colspan="6">
<p>The ID of the active physical camera that's backing the logical camera.<wbr/> All camera
streams and metadata that are not physical camera specific will be originating from this
-physical camera.<wbr/> This must be one of valid physical IDs advertised in the physicalIds
-static tag.<wbr/></p>
+physical camera.<wbr/></p>
<p>For a logical camera made up of physical cameras where each camera's lenses have
different characteristics,<wbr/> the camera device may choose to switch between the physical
cameras when application changes FOCAL_<wbr/>LENGTH or SCALER_<wbr/>CROP_<wbr/>REGION.<wbr/>
At the time of lens switch,<wbr/> this result metadata reflects the new active physical camera
ID.<wbr/></p>
+<p>This key will be available if the camera device advertises this key via <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureResultKeys">CameraCharacteristics#getAvailableCaptureResultKeys</a>.<wbr/>
+When available,<wbr/> this must be one of valid physical IDs backing this logical multi-camera.<wbr/>
+If this key is not available for a logical multi-camera,<wbr/> the camera device implementation
+may still switch between different active physical cameras based on use case,<wbr/> but the
+current active physical camera information won't be available to the application.<wbr/></p>
</td>
</tr>
<details>
The ID of the active physical camera that's backing the logical camera. All camera
streams and metadata that are not physical camera specific will be originating from this
- physical camera. This must be one of valid physical IDs advertised in the physicalIds
- static tag.
+ physical camera.
For a logical camera made up of physical cameras where each camera's lenses have
different characteristics, the camera device may choose to switch between the physical
cameras when application changes FOCAL_LENGTH or SCALER_CROP_REGION.
At the time of lens switch, this result metadata reflects the new active physical camera
ID.
+
+ This key will be available if the camera device advertises this key via {@link
+ android.hardware.camera2.CameraCharacteristics#getAvailableCaptureResultKeys|ACAMERA_REQUEST_AVAILABLE_RESULT_KEYS}.
+ When available, this must be one of valid physical IDs backing this logical multi-camera.
+ If this key is not available for a logical multi-camera, the camera device implementation
+ may still switch between different active physical cameras based on use case, but the
+ current active physical camera information won't be available to the application.
</details>
<hal_details>
Staring from HIDL ICameraDevice version 3.5, the tag must be available in the capture
text += '\n\n<b>Range of valid values:</b><br>\n'
text += '%s\n' % (dedent(entry.range))
if entry.hwlevel != 'legacy': # covers any of (None, 'limited', 'full')
- text += '\n\n<b>Optional</b> - This value may be {@code null} on some devices.\n'
+ text += '\n\n<b>Optional</b> - The value for this key may be {@code null} on some devices.\n'
if entry.hwlevel == 'full':
text += \
'\n<b>Full capability</b> - \n' + \