// See IGraphicBufferProducer::setGenerationNumber
virtual status_t setGenerationNumber(uint32_t generationNumber);
- // See IGraphicBufferProducer::getConsumerName
- virtual String8 getConsumerName() const override;
-
private:
// This is required by the IBinder::DeathRecipient interface
virtual void binderDied(const wp<IBinder>& who);
// affected and will retain their current generation number. The generation
// number defaults to 0.
virtual status_t setGenerationNumber(uint32_t generationNumber) = 0;
-
- // Returns the name of the connected consumer.
- virtual String8 getConsumerName() const = 0;
};
// ----------------------------------------------------------------------------
* See IGBP::setGenerationNumber for more information. */
status_t setGenerationNumber(uint32_t generationNumber);
- // See IGraphicBufferProducer::getConsumerName
- String8 getConsumerName() const;
-
protected:
virtual ~Surface();
return NO_ERROR;
}
-String8 BufferQueueProducer::getConsumerName() const {
- ATRACE_CALL();
- BQ_LOGV("getConsumerName: %s", mConsumerName.string());
- return mConsumerName;
-}
-
void BufferQueueProducer::binderDied(const wp<android::IBinder>& /* who */) {
// If we're here, it means that a producer we were connected to died.
// We're guaranteed that we are still connected to it because we remove
ALLOCATE_BUFFERS,
ALLOW_ALLOCATION,
SET_GENERATION_NUMBER,
- GET_CONSUMER_NAME,
};
class BpGraphicBufferProducer : public BpInterface<IGraphicBufferProducer>
}
return result;
}
-
- virtual String8 getConsumerName() const {
- Parcel data, reply;
- data.writeInterfaceToken(IGraphicBufferProducer::getInterfaceDescriptor());
- status_t result = remote()->transact(GET_CONSUMER_NAME, data, &reply);
- if (result != NO_ERROR) {
- ALOGE("getConsumerName failed to transact: %d", result);
- return String8("TransactFailed");
- }
- return reply.readString8();
- }
};
// Out-of-line virtual method definition to trigger vtable emission in this
reply->writeInt32(result);
return NO_ERROR;
}
- case GET_CONSUMER_NAME: {
- CHECK_INTERFACE(IGraphicBufferProducer, data, reply);
- reply->writeString8(getConsumerName());
- return NO_ERROR;
- }
}
return BBinder::onTransact(code, data, reply, flags);
}
return result;
}
-String8 Surface::getConsumerName() const {
- return mGraphicBufferProducer->getConsumerName();
-}
-
int Surface::hook_setSwapInterval(ANativeWindow* window, int interval) {
Surface* c = getSelf(window);
return c->setSwapInterval(interval);
#define LOG_TAG "BufferQueue_test"
//#define LOG_NDEBUG 0
-#include "DummyConsumer.h"
-
#include <gui/BufferItem.h>
#include <gui/BufferQueue.h>
#include <gui/IProducerListener.h>
sp<IGraphicBufferConsumer> mConsumer;
};
+struct DummyConsumer : public BnConsumerListener {
+ virtual void onFrameAvailable(const BufferItem& /* item */) {}
+ virtual void onBuffersReleased() {}
+ virtual void onSidebandStreamChanged() {}
+};
+
static const uint32_t TEST_DATA = 0x12345678u;
// XXX: Tests that fork a process to hold the BufferQueue must run before tests
+++ /dev/null
-/*
- * Copyright 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <gui/IConsumerListener.h>
-
-namespace android {
-
-struct DummyConsumer : public BnConsumerListener {
- virtual void onFrameAvailable(const BufferItem& /* item */) {}
- virtual void onBuffersReleased() {}
- virtual void onSidebandStreamChanged() {}
-};
-
-} // namespace android
* limitations under the License.
*/
-#include "DummyConsumer.h"
-
#include <gtest/gtest.h>
#include <binder/IMemory.h>
ASSERT_EQ(1U, graphicBuffer->getGenerationNumber());
}
-TEST_F(SurfaceTest, GetConsumerName) {
- sp<IGraphicBufferProducer> producer;
- sp<IGraphicBufferConsumer> consumer;
- BufferQueue::createBufferQueue(&producer, &consumer);
-
- sp<DummyConsumer> dummyConsumer(new DummyConsumer);
- consumer->consumerConnect(dummyConsumer, false);
- consumer->setConsumerName(String8("TestConsumer"));
-
- sp<Surface> surface = new Surface(producer);
- sp<ANativeWindow> window(surface);
- native_window_api_connect(window.get(), NATIVE_WINDOW_API_CPU);
-
- EXPECT_STREQ("TestConsumer", surface->getConsumerName().string());
-}
-
}