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