blob: a681579e34d9e7b83f4cb2dd267307a1366e2675 [file] [log] [blame]
/*
// Copyright (c) 2014 Intel Corporation 
//
// 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 <common/utils/HwcTrace.h>
#include <ips/tangier/TngDisplayContext.h>
#include <ips/anniedale/AnnPlaneManager.h>
#include <platforms/merrifield_plus/PlatfBufferManager.h>
#include <DummyDevice.h>
#include <IDisplayDevice.h>
#include <platforms/merrifield_plus/PlatfPrimaryDevice.h>
#include <platforms/merrifield_plus/PlatfExternalDevice.h>
#include <platforms/merrifield_plus/PlatfHwcomposer.h>
namespace android {
namespace intel {
PlatfHwcomposer::PlatfHwcomposer()
: Hwcomposer()
{
CTRACE();
}
PlatfHwcomposer::~PlatfHwcomposer()
{
CTRACE();
}
DisplayPlaneManager* PlatfHwcomposer::createDisplayPlaneManager()
{
CTRACE();
return (new AnnPlaneManager());
}
BufferManager* PlatfHwcomposer::createBufferManager()
{
CTRACE();
return (new PlatfBufferManager());
}
IDisplayDevice* PlatfHwcomposer::createDisplayDevice(int disp,
DisplayPlaneManager& dpm)
{
CTRACE();
switch (disp) {
case IDisplayDevice::DEVICE_PRIMARY:
#ifdef INTEL_SUPPORT_HDMI_PRIMARY
return new PlatfExternalDevice(*this, dpm);
#else
return new PlatfPrimaryDevice(*this, dpm);
#endif
case IDisplayDevice::DEVICE_EXTERNAL:
#ifdef INTEL_SUPPORT_HDMI_PRIMARY
return new DummyDevice((uint32_t)disp, *this);
#else
return new PlatfExternalDevice(*this, dpm);
#endif
case IDisplayDevice::DEVICE_VIRTUAL:
return new DummyDevice((uint32_t)disp, *this);
default:
ELOGTRACE("invalid display device %d", disp);
return NULL;
}
}
IDisplayContext* PlatfHwcomposer::createDisplayContext()
{
CTRACE();
return new TngDisplayContext();
}
Hwcomposer* Hwcomposer::createHwcomposer()
{
CTRACE();
return new PlatfHwcomposer();
}
} //namespace intel
} //namespace android