Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2a9df16d authored by Eric Laurent's avatar Eric Laurent Committed by Automerger Merge Worker
Browse files

Merge "Spatializer: Deliver metrics to MediaMetrics" into tm-dev am: a6f8277b

parents 8aeb0557 a6f8277b
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -279,6 +279,20 @@ bool isValidEnum(T value) {
    return std::find(er.begin(), er.end(), value) != er.end();
}

// T is a "container" of enum binder types with a toString().
template <typename T>
std::string enumsToString(const T& t) {
    std::string s;
    for (const auto item : t) {
        if (s.empty()) {
            s = toString(item);
        } else {
            s.append("|").append(toString(item));
        }
    }
    return s;
}

/**
 * Return the equivalent Android status_t from a binder exception code.
 *
+1 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ cc_library {
    ],
    export_shared_lib_headers: [
        "libheadtracking",
        "libsensor",
    ],
}

+1 −2
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@

#include <android-base/thread_annotations.h>
#include <log/log_main.h>
#include <sensor/Sensor.h>
#include <sensor/SensorEventQueue.h>
#include <sensor/SensorManager.h>
#include <utils/Looper.h>
@@ -285,7 +284,7 @@ class SensorPoseProviderImpl : public SensorPoseProvider {
        return DataFormat::kUnknown;
    }

    std::optional<const Sensor> getSensorByHandle(int32_t handle) {
    std::optional<const Sensor> getSensorByHandle(int32_t handle) override {
        const Sensor* const* list;
        ssize_t size;

+9 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@
#include <optional>

#include <android/sensor.h>
#include <sensor/Sensor.h>

#include "Pose.h"
#include "Twist.h"
@@ -91,6 +92,14 @@ class SensorPoseProvider {
     * @param handle The sensor handle, as provided to startSensor().
     */
    virtual void stopSensor(int32_t handle) = 0;

    /**
     * Returns the sensor or nullopt if it does not exist.
     *
     * The Sensor object has const methods that can be used to
     * discover properties of the sensor.
     */
    virtual std::optional<const Sensor> getSensorByHandle(int32_t handle) = 0;
};

}  // namespace media
+15 −0
Original line number Diff line number Diff line
@@ -51,6 +51,12 @@
// The AudioRecord key appends the "trackId" to the prefix.
#define AMEDIAMETRICS_KEY_PREFIX_AUDIO_RECORD AMEDIAMETRICS_KEY_PREFIX_AUDIO "record."

// The Audio Sensor key appends the sensor handle integer.
#define AMEDIAMETRICS_KEY_PREFIX_AUDIO_SENSOR AMEDIAMETRICS_KEY_PREFIX_AUDIO "sensor."

// The Audio Spatializer key appends the spatializerId (currently 0)
#define AMEDIAMETRICS_KEY_PREFIX_AUDIO_SPATIALIZER AMEDIAMETRICS_KEY_PREFIX_AUDIO "spatializer."

// The AudioStream key appends the "streamId" to the prefix.
#define AMEDIAMETRICS_KEY_PREFIX_AUDIO_STREAM  AMEDIAMETRICS_KEY_PREFIX_AUDIO "stream."

@@ -135,13 +141,17 @@
#define AMEDIAMETRICS_PROP_FLAGS          "flags"

#define AMEDIAMETRICS_PROP_FRAMECOUNT     "frameCount"     // int32
#define AMEDIAMETRICS_PROP_HEADTRACKINGMODES "headTrackingModes" // string |, like modes.
#define AMEDIAMETRICS_PROP_INPUTDEVICES   "inputDevices"   // string value
#define AMEDIAMETRICS_PROP_INTERNALTRACKID "internalTrackId" // int32
#define AMEDIAMETRICS_PROP_INTERVALCOUNT  "intervalCount"  // int32
#define AMEDIAMETRICS_PROP_LATENCYMS      "latencyMs"      // double value
#define AMEDIAMETRICS_PROP_LEVELS         "levels"          // string | with levels
#define AMEDIAMETRICS_PROP_LOGSESSIONID   "logSessionId"   // hex string, "" none
#define AMEDIAMETRICS_PROP_METHODCODE     "methodCode"     // int64_t an int indicating method
#define AMEDIAMETRICS_PROP_METHODNAME     "methodName"     // string method name
#define AMEDIAMETRICS_PROP_MODE           "mode"           // string
#define AMEDIAMETRICS_PROP_MODES          "modes"          // string | with modes
#define AMEDIAMETRICS_PROP_NAME           "name"           // string value
#define AMEDIAMETRICS_PROP_ORIGINALFLAGS  "originalFlags"  // int32
#define AMEDIAMETRICS_PROP_OUTPUTDEVICES  "outputDevices"  // string value
@@ -241,6 +251,11 @@
#define AMEDIAMETRICS_PROP_CALLERNAME_VALUE_TONEGENERATOR "tonegenerator"  // dial tones
#define AMEDIAMETRICS_PROP_CALLERNAME_VALUE_UNKNOWN       "unknown"        // callerName not set

// Many properties are available for the sensor.
// The mode is how the sensor is being currently used.
#define AMEDIAMETRICS_PROP_MODE_VALUE_HEAD          "head"        // used for head tracking
#define AMEDIAMETRICS_PROP_MODE_VALUE_SCREEN        "screen"      // used for screen

// MediaMetrics errors are expected to cover the following sources:
// https://docs.oracle.com/javase/7/docs/api/java/lang/RuntimeException.html
// https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html
Loading