mirror of
https://github.com/acidanthera/OpenCorePkg.git
synced 2025-12-08 19:25:01 +00:00
117 lines
3.6 KiB
C
117 lines
3.6 KiB
C
/** @file
|
|
Apple High Definition Audio protocol.
|
|
|
|
Copyright (C) 2020, vit9696. 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.
|
|
|
|
**/
|
|
|
|
#ifndef APPLE_HIGH_DEFINITION_AUDIO_H
|
|
#define APPLE_HIGH_DEFINITION_AUDIO_H
|
|
|
|
#include <Protocol/PciIo.h>
|
|
|
|
/**
|
|
Apple High Definition Audio protocol GUID.
|
|
3224B169-EC34-46D2-B779-E1B1687F525F
|
|
**/
|
|
#define APPLE_HIGH_DEFINITION_AUDIO_PROTOCOL_GUID \
|
|
{ 0x3224B169, 0xEC34, 0x46D2, \
|
|
{ 0xB7, 0x79, 0xE1, 0xB1, 0x68, 0x7F, 0x52, 0x5F } }
|
|
|
|
#define APPLE_HIGH_DEFINITION_AUDIO_PROTOCOL_VERSION 0x40000
|
|
|
|
/**
|
|
Note, ToneLength and SilenceLength were in microseconds for older models:
|
|
- MacBookPro1,1
|
|
- MacBookPro1,1
|
|
- MacBookPro1,2
|
|
- MacBookPro2,1
|
|
- MacBookPro2,2
|
|
- MacBookP1,1
|
|
- MacBookP1,2
|
|
- MacBookP2,1
|
|
- MacBookP2,2
|
|
- MacBook1,1
|
|
- MacBook2,1
|
|
- Macmini1,1
|
|
- Macmini2,1
|
|
- iMac4,1
|
|
- iMac4,2
|
|
- iMac5,1
|
|
- iMac5,2
|
|
- iMac6,1
|
|
- MacPro1,1
|
|
- MacPro2,1
|
|
- XServe1,1
|
|
**/
|
|
|
|
typedef struct APPLE_HIGH_DEFINITION_AUDIO_PROTOCOL_ APPLE_HIGH_DEFINITION_AUDIO_PROTOCOL;
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *APPLE_HIGH_DEFINITION_AUDIO_UNKNOWN)(
|
|
VOID
|
|
);
|
|
|
|
/**
|
|
Generate cycles of beep signals with silence afterwards, blocking.
|
|
|
|
@param[in] This This protocol instance.
|
|
@param[in] ToneCount Number of signals to produce.
|
|
@param[in] ToneLength Signal length in milliseconds.
|
|
@param[in] SilenceLength Silence length in milliseconds.
|
|
@param[in] Frequency Tone frequency, up to 44100 Hz, can be 0 for default.
|
|
|
|
@retval EFI_SUCCESS after signal completion.
|
|
@retval EFI_SUCCESS if ToneCount or ToneLength is 0.
|
|
**/
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *APPLE_HIGH_DEFINITION_AUDIO_PLAY_TONE)(
|
|
IN APPLE_HIGH_DEFINITION_AUDIO_PROTOCOL *This,
|
|
IN UINT32 ToneCount,
|
|
IN UINTN ToneLength,
|
|
IN UINTN SilenceLength,
|
|
IN UINTN Frequency
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *APPLE_HIGH_DEFINITION_AUDIO_PLAY)(
|
|
IN APPLE_HIGH_DEFINITION_AUDIO_PROTOCOL *This,
|
|
IN OUT UINTN *Arg1,
|
|
IN OUT UINTN *Arg2,
|
|
IN OUT UINTN *Arg3
|
|
);
|
|
|
|
struct APPLE_HIGH_DEFINITION_AUDIO_PROTOCOL_ {
|
|
UINTN Revision;
|
|
EFI_PCI_IO_PROTOCOL *PciIo;
|
|
APPLE_HIGH_DEFINITION_AUDIO_UNKNOWN Unknown01;
|
|
APPLE_HIGH_DEFINITION_AUDIO_PLAY_TONE PlayTone; ///< Can be NULL.
|
|
APPLE_HIGH_DEFINITION_AUDIO_PLAY Play;
|
|
APPLE_HIGH_DEFINITION_AUDIO_UNKNOWN Unknown04;
|
|
APPLE_HIGH_DEFINITION_AUDIO_UNKNOWN Unknown05;
|
|
APPLE_HIGH_DEFINITION_AUDIO_UNKNOWN Unknown06;
|
|
APPLE_HIGH_DEFINITION_AUDIO_UNKNOWN Unknown07;
|
|
APPLE_HIGH_DEFINITION_AUDIO_UNKNOWN Unknown08;
|
|
APPLE_HIGH_DEFINITION_AUDIO_UNKNOWN Unknown09;
|
|
APPLE_HIGH_DEFINITION_AUDIO_UNKNOWN Unknown10;
|
|
APPLE_HIGH_DEFINITION_AUDIO_UNKNOWN Unknown11;
|
|
APPLE_HIGH_DEFINITION_AUDIO_UNKNOWN Unknown12;
|
|
APPLE_HIGH_DEFINITION_AUDIO_UNKNOWN Unknown13;
|
|
APPLE_HIGH_DEFINITION_AUDIO_UNKNOWN Unknown14;
|
|
APPLE_HIGH_DEFINITION_AUDIO_UNKNOWN Unknown15;
|
|
};
|
|
|
|
extern EFI_GUID gAppleHighDefinitionAudioProtocolGuid;
|
|
|
|
#endif // APPLE_HIGH_DEFINITION_AUDIO_H
|