Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenmidiuart.c
Go to the documentation of this file.
00001 /* 00002 ReactOS Sound System 00003 MIDI UART support 00004 00005 Author: 00006 Andrew Greenwood (silverblade@reactos.org) 00007 00008 History: 00009 26 May 2008 - Created 00010 00011 Notes: 00012 Functions documented in midiuart.h 00013 */ 00014 00015 #include <ntddk.h> 00016 #include "midiuart.h" 00017 00018 BOOLEAN 00019 WaitForMidiUartStatus( 00020 IN PUCHAR UartBasePort, 00021 IN UCHAR StatusFlags, 00022 IN ULONG Timeout) 00023 { 00024 ULONG RemainingTime = Timeout; 00025 00026 while ( RemainingTime -- ) 00027 { 00028 if ( READ_MIDIUART_STATUS(UartBasePort) & StatusFlags ) 00029 { 00030 return TRUE; 00031 } 00032 } 00033 00034 return FALSE; 00035 } 00036 00037 BOOLEAN 00038 WriteMidiUartByte( 00039 IN PUCHAR UartBasePort, 00040 IN UCHAR Data, 00041 IN ULONG Timeout) 00042 { 00043 if ( ! WaitForMidiUartCTS(UartBasePort, Timeout) ) 00044 { 00045 return FALSE; 00046 } 00047 00048 WRITE_MIDIUART_DATA(UartBasePort, Data); 00049 00050 return TRUE; 00051 } 00052 00053 BOOLEAN 00054 WriteMidiUartMulti( 00055 IN PUCHAR UartBasePort, 00056 IN PUCHAR Data, 00057 IN ULONG DataLength, 00058 IN ULONG Timeout) 00059 { 00060 ULONG DataIndex; 00061 00062 for ( DataIndex = 0; DataIndex < DataLength; ++ DataIndex ) 00063 { 00064 if ( ! WriteMidiUartByte(UartBasePort, Data[DataIndex], Timeout) ) 00065 { 00066 /* We failed - don't try writing any more */ 00067 return FALSE; 00068 } 00069 } 00070 00071 return TRUE; 00072 } 00073 00074 BOOLEAN 00075 ReadMidiUartByte( 00076 IN PUCHAR UartBasePort, 00077 OUT UCHAR* Data, 00078 IN ULONG Timeout) 00079 { 00080 if ( ! Data ) 00081 { 00082 return FALSE; 00083 } 00084 00085 if ( ! WaitForMidiUartDTR(UartBasePort, Timeout) ) 00086 { 00087 return FALSE; 00088 } 00089 00090 *Data = READ_MIDIUART_DATA(UartBasePort); 00091 00092 return TRUE; 00093 } Generated on Sat May 26 2012 04:35:03 for ReactOS by
1.7.6.1
|