blob: 82ca60f7d371ef14de17fa7520734cf4bb93d362 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "fake_logical_buffer_collection.h"
#include <fuchsia/sysmem/cpp/fidl.h>
#include <lib/async-loop/cpp/loop.h>
#include <lib/fidl/cpp/binding.h>
#include <lib/syslog/cpp/macros.h>
namespace camera {
void FakeLogicalBufferCollection::WaitForBuffersAllocated(
fit::function<void(int32_t, fuchsia::sysmem::BufferCollectionInfo_2)> callback) {
fuchsia::sysmem::BufferCollectionInfo_2 buffers; // The buffers returned are empty.
if (give_error_) {
callback(ZX_ERR_NO_MEMORY, std::move(buffers));
} else {
callback(ZX_OK, std::move(buffers));
}
}
fidl::InterfaceHandle<fuchsia::sysmem::BufferCollection>
FakeLogicalBufferCollection::GetBufferCollection() {
ZX_ASSERT(!binding_.is_bound());
fidl::InterfaceHandle<fuchsia::sysmem::BufferCollection> client;
FX_CHECK(binding_.Bind(client.NewRequest(), dispatcher_) == ZX_OK);
closed_ = false;
return client;
}
} // namespace camera