Merge "Audio HAL: extensions for new SoC features"
diff --git a/camera/device/1.0/types.hal b/camera/device/1.0/types.hal
index 4e5683a..83c0be4 100644
--- a/camera/device/1.0/types.hal
+++ b/camera/device/1.0/types.hal
@@ -89,7 +89,7 @@
* 4. 0x07 is enabling a callback with frame copied out only once. A typical
* use case is the Barcode scanner application.
*/
-enum FrameCallbackFlags : uint32_t {
+enum FrameCallbackFlag : uint32_t {
ENABLE_MASK = 0x01,
ONE_SHOT_MASK = 0x02,
COPY_OUT_MASK = 0x04,
@@ -100,6 +100,8 @@
BARCODE_SCANNER = 0x07
};
+typedef bitfield<FrameCallbackFlag> FrameCallbackFlags;
+
/**
* Subset of commands in /system/core/include/system/camera.h relevant for
* ICameraDevice@1.0::sendCommand()
diff --git a/vehicle/2.0/default/tests/SubscriptionManager_test.cpp b/vehicle/2.0/default/tests/SubscriptionManager_test.cpp
index 19b11e6..171a692 100644
--- a/vehicle/2.0/default/tests/SubscriptionManager_test.cpp
+++ b/vehicle/2.0/default/tests/SubscriptionManager_test.cpp
@@ -19,9 +19,6 @@
#include <gtest/gtest.h>
-#include <vehicle_hal_manager/VehiclePropConfigIndex.h>
-#include <VehicleHal.h>
-#include <vehicle_hal_manager/VehicleHalManager.h>
#include "vehicle_hal_manager/SubscriptionManager.h"
#include "VehicleHalTestUtils.h"
diff --git a/vehicle/2.0/default/tests/VehicleHalManager_test.cpp b/vehicle/2.0/default/tests/VehicleHalManager_test.cpp
index 6ef1205..d06f6f4 100644
--- a/vehicle/2.0/default/tests/VehicleHalManager_test.cpp
+++ b/vehicle/2.0/default/tests/VehicleHalManager_test.cpp
@@ -17,13 +17,11 @@
#include <unordered_map>
#include <iostream>
+#include <utils/SystemClock.h>
+
#include <gtest/gtest.h>
-#include <vehicle_hal_manager/VehiclePropConfigIndex.h>
-#include <VehicleHal.h>
-#include <vehicle_hal_manager/VehicleHalManager.h>
-#include <utils/SystemClock.h>
-#include "vehicle_hal_manager/SubscriptionManager.h"
+#include "vehicle_hal_manager/VehicleHalManager.h"
#include "VehicleHalTestUtils.h"
@@ -429,11 +427,11 @@
clients.addOrUpdate(c2);
ASSERT_EQ(2u, clients.size());
ASSERT_FALSE(clients.isEmpty());
- ASSERT_GE(0, clients.indexOf(c1));
- ASSERT_GE(0, clients.remove(c1));
- ASSERT_GE(0, clients.indexOf(c1));
- ASSERT_GE(0, clients.remove(c1));
- ASSERT_GE(0, clients.remove(c2));
+ ASSERT_LE(0, clients.indexOf(c1));
+ ASSERT_LE(0, clients.remove(c1));
+ ASSERT_GT(0, clients.indexOf(c1)); // c1 was already removed
+ ASSERT_GT(0, clients.remove(c1)); // attempt to remove c1 again
+ ASSERT_LE(0, clients.remove(c2));
ASSERT_TRUE(clients.isEmpty());
}
diff --git a/vehicle/2.0/default/tests/VehicleObjectPool_test.cpp b/vehicle/2.0/default/tests/VehicleObjectPool_test.cpp
index 88b1be0..135f9fa 100644
--- a/vehicle/2.0/default/tests/VehicleObjectPool_test.cpp
+++ b/vehicle/2.0/default/tests/VehicleObjectPool_test.cpp
@@ -18,9 +18,10 @@
#include <gtest/gtest.h>
-#include <vehicle_hal_manager/VehicleObjectPool.h>
#include <utils/SystemClock.h>
+#include "vehicle_hal_manager/VehicleObjectPool.h"
+
namespace android {
namespace hardware {
namespace vehicle {
diff --git a/vehicle/2.0/default/tests/VehiclePropConfigIndex_test.cpp b/vehicle/2.0/default/tests/VehiclePropConfigIndex_test.cpp
index aae7e62..28cdcbb 100644
--- a/vehicle/2.0/default/tests/VehiclePropConfigIndex_test.cpp
+++ b/vehicle/2.0/default/tests/VehiclePropConfigIndex_test.cpp
@@ -16,7 +16,7 @@
#include <gtest/gtest.h>
-#include <vehicle_hal_manager/VehiclePropConfigIndex.h>
+#include "vehicle_hal_manager/VehiclePropConfigIndex.h"
#include "VehicleHalTestUtils.h"
diff --git a/vehicle/2.0/default/vehicle_hal_manager/ConcurrentQueue.h b/vehicle/2.0/default/vehicle_hal_manager/ConcurrentQueue.h
index 485f3dc..8f575dc 100644
--- a/vehicle/2.0/default/vehicle_hal_manager/ConcurrentQueue.h
+++ b/vehicle/2.0/default/vehicle_hal_manager/ConcurrentQueue.h
@@ -108,20 +108,17 @@
mQueue = queue;
mBatchInterval = batchInterval;
- std::thread(&BatchingConsumer<T>::runInternal, this, func).detach();
+ mWorkerThread = std::thread(
+ &BatchingConsumer<T>::runInternal, this, func);
}
void requestStop() {
- if (mState.exchange(State::STOP_REQUESTED) != State::RUNNING) {
- mState = State::STOPPED;
- mCondStopped.notify_one();
- }
+ mState = State::STOP_REQUESTED;
}
void waitStopped() {
- std::unique_lock<std::mutex> g(mLock);
- while (State::STOPPED != mState) {
- mCondStopped.wait(g);
+ if (mWorkerThread.joinable()) {
+ mWorkerThread.join();
}
}
@@ -144,12 +141,10 @@
}
mState = State::STOPPED;
- mCondStopped.notify_one();
}
private:
- std::mutex mLock;
- std::condition_variable mCondStopped;
+ std::thread mWorkerThread;
std::atomic<State> mState;
std::chrono::nanoseconds mBatchInterval;