1 /*
2 * Copyright (c) 2015, The Linux Foundation. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above
10 * copyright notice, this list of conditions and the following
11 * disclaimer in the documentation and/or other materials provided
12 * with the distribution.
13 * * Neither the name of The Linux Foundation nor the names of its
14 * contributors may be used to endorse or promote products derived
15 * from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
18 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
21 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
26 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29
30 #include <utils/debug.h>
31 #include "hw_virtual.h"
32
33 #define __CLASS__ "HWVirtual"
34
35 namespace sdm {
36
Create(HWInterface ** intf,HWInfoInterface * hw_info_intf,BufferSyncHandler * buffer_sync_handler)37 DisplayError HWVirtual::Create(HWInterface **intf, HWInfoInterface *hw_info_intf,
38 BufferSyncHandler *buffer_sync_handler) {
39 DisplayError error = kErrorNone;
40 HWVirtual *hw_virtual = NULL;
41
42 hw_virtual = new HWVirtual(buffer_sync_handler, hw_info_intf);
43 error = hw_virtual->Init(NULL);
44 if (error != kErrorNone) {
45 delete hw_virtual;
46 } else {
47 *intf = hw_virtual;
48 }
49
50 return error;
51 }
52
Destroy(HWInterface * intf)53 DisplayError HWVirtual::Destroy(HWInterface *intf) {
54 HWVirtual *hw_virtual = static_cast<HWVirtual *>(intf);
55 hw_virtual->Deinit();
56 delete hw_virtual;
57
58 return kErrorNone;
59 }
60
HWVirtual(BufferSyncHandler * buffer_sync_handler,HWInfoInterface * hw_info_intf)61 HWVirtual::HWVirtual(BufferSyncHandler *buffer_sync_handler, HWInfoInterface *hw_info_intf)
62 : HWDevice(buffer_sync_handler) {
63 HWDevice::device_type_ = kDeviceVirtual;
64 HWDevice::device_name_ = "Virtual Display Device";
65 HWDevice::hw_info_intf_ = hw_info_intf;
66 }
67
Init(HWEventHandler * eventhandler)68 DisplayError HWVirtual::Init(HWEventHandler *eventhandler) {
69 return HWDevice::Init(eventhandler);
70 }
71
Validate(HWLayers * hw_layers)72 DisplayError HWVirtual::Validate(HWLayers *hw_layers) {
73 HWDevice::ResetDisplayParams();
74 return HWDevice::Validate(hw_layers);
75 }
76
77 } // namespace sdm
78
79