## @file
# USB Mouse Driver that manages USB mouse and produces Absolute Pointer Protocol.
#
# USB Mouse Driver consumes USB I/O Protocol and Device Path Protocol, and produces
# Absolute Pointer Protocol on USB mouse devices.
# It manages the USB mouse device via Asynchronous Interrupt Transfer of USB I/O Protocol,
# and parses the data according to USB HID Specification.
# This module refers to following specifications:
# 1. Universal Serial Bus HID Firmware Specification, ver 1.11
# 2. UEFI Specification, v2.1
#
# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
#
#  This program and the accompanying materials
#  are licensed and made available under the terms and conditions of the BSD License
#  which accompanies this distribution. The full text of the license may be found at
#  http://opensource.org/licenses/bsd-license.php
#
#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = UsbMouseAbsolutePointerDxe
  MODULE_UNI_FILE                = UsbMouseAbsolutePointerDxe.uni
  FILE_GUID                      = 4EA43463-747C-46eb-97FB-B0E5C5F05306
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = USBMouseAbsolutePointerDriverBindingEntryPoint

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#
#  DRIVER_BINDING                =  gUsbMouseAbsolutePointerDriverBinding                        
#  COMPONENT_NAME                =  gUsbMouseAbsolutePointerComponentName
#  COMPONENT_NAME2               =  gUsbMouseAbsolutePointerComponentName2
#

[Sources]
  ComponentName.c
  MouseHid.c
  UsbMouseAbsolutePointer.c
  UsbMouseAbsolutePointer.h

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  MemoryAllocationLib
  UefiLib
  UefiBootServicesTableLib
  UefiDriverEntryPoint
  BaseMemoryLib
  ReportStatusCodeLib
  UefiUsbLib

[Protocols]
  gEfiUsbIoProtocolGuid                         ## TO_START
  gEfiDevicePathProtocolGuid                    ## TO_START
  gEfiAbsolutePointerProtocolGuid               ## BY_START

# [Event]
# EVENT_TYPE_RELATIVE_TIMER        ## CONSUMES
#

[UserExtensions.TianoCore."ExtraFiles"]
  UsbMouseAbsolutePointerDxeExtra.uni
